<?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>148971</bug_id>
          
          <creation_ts>2015-09-08 11:18:49 -0700</creation_ts>
          <short_desc>Node.appendChild(null) / replaceChild(null, null) / removeChild(null) / insertBefore(null, ref) should throw a TypeError</short_desc>
          <delta_ts>2015-09-10 11:02:39 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://dom.spec.whatwg.org/#node</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>148991</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>ap</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>kling</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1124311</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-08 11:18:49 -0700</bug_when>
    <thetext>Node.appendChild(null) / replaceChild(null, null) / removeChild(null) / insertBefore(null, ref) should throw a TypeError:
https://dom.spec.whatwg.org/#node (parameters are not nullable)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124313</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-08 11:19:22 -0700</bug_when>
    <thetext>rdar://problem/22560883</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124314</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-08 11:20:30 -0700</bug_when>
    <thetext>rdar://problem/22559225</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124462</commentid>
    <comment_count>3</comment_count>
      <attachid>260811</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-08 16:50:48 -0700</bug_when>
    <thetext>Created attachment 260811
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124463</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-08 16:52:52 -0700</bug_when>
    <thetext>Attachment 260811 did not pass style-queue:


ERROR: Source/WebCore/dom/Element.cpp:324:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 1 in 117 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124471</commentid>
    <comment_count>5</comment_count>
      <attachid>260814</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-08 17:08:54 -0700</bug_when>
    <thetext>Created attachment 260814
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124487</commentid>
    <comment_count>6</comment_count>
      <attachid>260818</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-08 17:26:26 -0700</bug_when>
    <thetext>Created attachment 260818
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124501</commentid>
    <comment_count>7</comment_count>
      <attachid>260818</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2015-09-08 18:32:11 -0700</bug_when>
    <thetext>Comment on attachment 260818
Patch

Attachment 260818 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.webkit.org/results/152475

New failing tests:
js/dom/dot-node-base-exception.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124502</commentid>
    <comment_count>8</comment_count>
      <attachid>260822</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2015-09-08 18:32:15 -0700</bug_when>
    <thetext>Created attachment 260822
Archive of layout-test-results from ews104 for mac-mavericks-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews104  Port: mac-mavericks-wk2  Platform: Mac OS X 10.9.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124510</commentid>
    <comment_count>9</comment_count>
      <attachid>260818</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2015-09-08 18:38:50 -0700</bug_when>
    <thetext>Comment on attachment 260818
Patch

Attachment 260818 did not pass mac-ews (mac):
Output: http://webkit-queues.webkit.org/results/152514

New failing tests:
js/dom/dot-node-base-exception.html
fast/events/remove-target-with-shadow-in-drag.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124511</commentid>
    <comment_count>10</comment_count>
      <attachid>260824</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2015-09-08 18:38:54 -0700</bug_when>
    <thetext>Created attachment 260824
Archive of layout-test-results from ews103 for mac-mavericks

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews103  Port: mac-mavericks  Platform: Mac OS X 10.9.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124565</commentid>
    <comment_count>11</comment_count>
      <attachid>260840</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-08 23:17:14 -0700</bug_when>
    <thetext>Created attachment 260840
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124569</commentid>
    <comment_count>12</comment_count>
      <attachid>260843</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-08 23:35:41 -0700</bug_when>
    <thetext>Created attachment 260843
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124617</commentid>
    <comment_count>13</comment_count>
      <attachid>260858</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-09 07:57:07 -0700</bug_when>
    <thetext>Created attachment 260858
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124618</commentid>
    <comment_count>14</comment_count>
      <attachid>260859</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-09 08:25:39 -0700</bug_when>
    <thetext>Created attachment 260859
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124639</commentid>
    <comment_count>15</comment_count>
      <attachid>260862</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-09 10:09:26 -0700</bug_when>
    <thetext>Created attachment 260862
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124836</commentid>
    <comment_count>16</comment_count>
      <attachid>260908</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-09 21:49:15 -0700</bug_when>
    <thetext>Created attachment 260908
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124909</commentid>
    <comment_count>17</comment_count>
      <attachid>260908</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-09-10 09:19:17 -0700</bug_when>
    <thetext>Comment on attachment 260908
Patch

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

&gt; Source/WebCore/editing/AppendNodeCommand.cpp:38
&gt; -AppendNodeCommand::AppendNodeCommand(PassRefPtr&lt;ContainerNode&gt; parent, PassRefPtr&lt;Node&gt; node, EditAction editingAction)
&gt; +AppendNodeCommand::AppendNodeCommand(PassRefPtr&lt;ContainerNode&gt; parent, Node&amp; node, EditAction editingAction)

I think this should be Ref&lt;Node&gt;.

&gt; Source/WebCore/editing/AppendNodeCommand.h:35
&gt; +    static Ref&lt;AppendNodeCommand&gt; create(PassRefPtr&lt;ContainerNode&gt; parent, Node&amp; node, EditAction editingAction)

Ditto.

&gt; Source/WebCore/editing/AppendNodeCommand.h:41
&gt; -    AppendNodeCommand(PassRefPtr&lt;ContainerNode&gt; parent, PassRefPtr&lt;Node&gt;, EditAction);
&gt; +    AppendNodeCommand(PassRefPtr&lt;ContainerNode&gt; parent, Node&amp;, EditAction);

Ditto.

&gt; Source/WebCore/editing/RemoveNodeCommand.cpp:37
&gt; +RemoveNodeCommand::RemoveNodeCommand(Node&amp; node, ShouldAssumeContentIsAlwaysEditable shouldAssumeContentIsAlwaysEditable)

Ditto.

&gt; Source/WebCore/editing/RemoveNodeCommand.h:35
&gt; -    static Ref&lt;RemoveNodeCommand&gt; create(PassRefPtr&lt;Node&gt; node, ShouldAssumeContentIsAlwaysEditable shouldAssumeContentIsAlwaysEditable)
&gt; +    static Ref&lt;RemoveNodeCommand&gt; create(Node&amp; node, ShouldAssumeContentIsAlwaysEditable shouldAssumeContentIsAlwaysEditable)

Ditto.

&gt; Source/WebCore/editing/RemoveNodeCommand.h:41
&gt; -    explicit RemoveNodeCommand(PassRefPtr&lt;Node&gt;, ShouldAssumeContentIsAlwaysEditable);
&gt; +    RemoveNodeCommand(Node&amp;, ShouldAssumeContentIsAlwaysEditable);

Ditto.

&gt; Source/WebCore/html/track/VTTRegion.h:92
&gt; -    PassRefPtr&lt;HTMLDivElement&gt; getDisplayTree();
&gt; +    HTMLDivElement&amp; getDisplayTree();

We should use Ref&lt;HTMLDivElement&gt; instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124910</commentid>
    <comment_count>18</comment_count>
      <attachid>260930</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-10 09:25:01 -0700</bug_when>
    <thetext>Created attachment 260930
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124916</commentid>
    <comment_count>19</comment_count>
      <attachid>260931</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-10 09:44:41 -0700</bug_when>
    <thetext>Created attachment 260931
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124946</commentid>
    <comment_count>20</comment_count>
      <attachid>260931</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-10 11:02:27 -0700</bug_when>
    <thetext>Comment on attachment 260931
Patch

Clearing flags on attachment: 260931

Committed r189576: &lt;http://trac.webkit.org/changeset/189576&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124947</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-10 11:02:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260811</attachid>
            <date>2015-09-08 16:50:48 -0700</date>
            <delta_ts>2015-09-08 17:08:49 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>148971_appendChild_typeError_wip.patch</filename>
            <type>text/plain</type>
            <size>222123</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50L3JlcGxhY2VDaGlsZC1u
dWxsLW9sZENoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50
L3JlcGxhY2VDaGlsZC1udWxsLW9sZENoaWxkLWV4cGVjdGVkLnR4dAppbmRleCBiYmIxNjZiLi5h
ZjVhNDY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Eb2N1bWVudC9yZXBsYWNl
Q2hpbGQtbnVsbC1vbGRDaGlsZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vRG9jdW1lbnQvcmVwbGFjZUNoaWxkLW51bGwtb2xkQ2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0z
LDcgKzMsNyBAQCBUZXN0IGJlaGF2aW9yIG9mIERvY3VtZW50LnJlcGxhY2VDaGlsZCgpIHdoZW4g
b2xkQ2hpbGQgaXMgbnVsbC4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIGRv
Y3VtZW50LnJlcGxhY2VDaGlsZChkb2N1bWVudC5maXJzdENoaWxkLCBudWxsKSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOC4KK1BBU1MgZG9jdW1l
bnQucmVwbGFjZUNoaWxkKGRvY3VtZW50LmZpcnN0Q2hpbGQsIG51bGwpIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RvY3Vt
ZW50L3NjcmlwdC10ZXN0cy9yZXBsYWNlQ2hpbGQtbnVsbC1vbGRDaGlsZC5qcyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0RvY3VtZW50L3NjcmlwdC10ZXN0cy9yZXBsYWNlQ2hpbGQtbnVsbC1vbGRD
aGlsZC5qcwppbmRleCBkYTkyNTI4Li5jMDliZjFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9Eb2N1bWVudC9zY3JpcHQtdGVzdHMvcmVwbGFjZUNoaWxkLW51bGwtb2xkQ2hpbGQu
anMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvc2NyaXB0LXRlc3RzL3JlcGxh
Y2VDaGlsZC1udWxsLW9sZENoaWxkLmpzCkBAIC0xLDMgKzEsMyBAQAogZGVzY3JpcHRpb24oJ1Rl
c3QgYmVoYXZpb3Igb2YgRG9jdW1lbnQucmVwbGFjZUNoaWxkKCkgd2hlbiBvbGRDaGlsZCBpcyBu
dWxsLicpOwogCi1zaG91bGRUaHJvdygnZG9jdW1lbnQucmVwbGFjZUNoaWxkKGRvY3VtZW50LmZp
cnN0Q2hpbGQsIG51bGwpJywgJyJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4
IicpOworc2hvdWxkVGhyb3coJ2RvY3VtZW50LnJlcGxhY2VDaGlsZChkb2N1bWVudC5maXJzdENo
aWxkLCBudWxsKScsICciVHlwZUVycm9yOiBUeXBlIGVycm9yIicpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vTm9kZS9mcmFnbWVudC1tdXRhdGlvbi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2ZyYWdtZW50LW11dGF0aW9uLWV4cGVjdGVkLnR4dApp
bmRleCAwZjA0ZTY2Li40YmE5NTI0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9O
b2RlL2ZyYWdtZW50LW11dGF0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9Ob2RlL2ZyYWdtZW50LW11dGF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMiwxMiArMiwxMiBA
QCBUaGlzIHRlc3QgY3JlYXRlcyBhIGZyYWdtZW50IGNvbnRhaW5pbmcgdGhyZWUgZWxlbWVudHM6
ICJCIiwgIlUiLCBhbmQgIlAiLCBhdHRlbQogCiBJbnNlcnRpbmcgYW4gZWxlbWVudCBpbiBmcm9u
dCBvZiB0aGUgbmV4dCBpdGVtIGluIGZyYWdtZW50IHNob3VsZCBub3QgYWZmZWN0IHRoZSByZXN1
bHQ6IFBBU1MKIEFwcGVuZGluZyBhbiBlbGVtZW50IGF0IHRoZSBlbmQgb2YgdGhlIGZyYWdtZW50
IHNob3VsZCBub3QgYWZmZWN0IHRoZSByZXN1bHQ6IFBBU1MKLUNvbnRpbnVhbGx5IHJlLWFwcGVu
ZGluZyByZW1vdmVkIGVsZW1lbnQgdG8gdGhlIGZyYWdtZW50IHNob3VsZCBldmVudHVhbGx5IHRo
cm93IE5PVF9GT1VORF9FUlI6IFBBU1MKK0NvbnRpbnVhbGx5IHJlLWFwcGVuZGluZyByZW1vdmVk
IGVsZW1lbnQgdG8gdGhlIGZyYWdtZW50IHNob3VsZCBldmVudHVhbGx5IHRocm93IGEgVHlwZUVy
cm9yOiBQQVNTCiAKIFRoaXMgdGVzdCBjcmVhdGVzIGEgZnJhZ21lbnQgY29udGFpbmluZyB0aHJl
ZSBlbGVtZW50czogIkIiLCAiVSIsIGFuZCAiUCIsIGF0dGVtcHRzIHRvIGluc2VydEJlZm9yZSB0
aGlzIGZyYWdtZW50IGFuZCBzdHVkaWVzIGVmZmVjdHMgb2YgbXV0YXRpb24gZXZlbnRzIG9uIHRo
ZSBmcmFnbWVudC4KIAogSW5zZXJ0aW5nIGFuIGVsZW1lbnQgaW4gZnJvbnQgb2YgdGhlIG5leHQg
aXRlbSBpbiBmcmFnbWVudCBzaG91bGQgbm90IGFmZmVjdCB0aGUgcmVzdWx0OiBQQVNTCiBBcHBl
bmRpbmcgYW4gZWxlbWVudCBhdCB0aGUgZW5kIG9mIHRoZSBmcmFnbWVudCBzaG91bGQgbm90IGFm
ZmVjdCB0aGUgcmVzdWx0OiBQQVNTCi1Db250aW51YWxseSByZS1hcHBlbmRpbmcgcmVtb3ZlZCBl
bGVtZW50IHRvIHRoZSBmcmFnbWVudCBzaG91bGQgZXZlbnR1YWxseSB0aHJvdyBOT1RfRk9VTkRf
RVJSOiBQQVNTCitDb250aW51YWxseSByZS1hcHBlbmRpbmcgcmVtb3ZlZCBlbGVtZW50IHRvIHRo
ZSBmcmFnbWVudCBzaG91bGQgZXZlbnR1YWxseSB0aHJvdyBhIFR5cGVFcnJvcjogUEFTUwogCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvZnJhZ21lbnQtbXV0YXRpb24u
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvZnJhZ21lbnQtbXV0YXRpb24uaHRtbApp
bmRleCA4NGU2N2Y2Li40ODk0OTdmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9O
b2RlL2ZyYWdtZW50LW11dGF0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vTm9k
ZS9mcmFnbWVudC1tdXRhdGlvbi5odG1sCkBAIC0zNiwxNSArMzYsMTUgQEAgZnVuY3Rpb24gcHJv
ZHVjZU5vZGVOYW1lU3RyaW5nKG5vZGVzKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLWZ1bmN0
aW9uIGV4cGVjdEV4Y2VwdGlvbihjb2RlKQorZnVuY3Rpb24gZXhwZWN0VHlwZUVycm9yKCkKIHsK
ICAgICByZXR1cm4gZnVuY3Rpb24oc3Rhc2gsIGV4Y2VwdGlvbikgewogICAgICAgICBpZiAoIWV4
Y2VwdGlvbikKLSAgICAgICAgICAgIHJldHVybiAiRkFJTCwgZXhwZWN0ZWQgZXhjZXB0aW9uIHdp
dGggY29kZSAiICsgY29kZSArICIuIFRoZSByZXN1bHRpbmcgZnJhZ21lbnQgd2FzOiBcIiIgKyBw
cm9kdWNlTm9kZU5hbWVTdHJpbmcoc3Rhc2gpICsgIlwiLiI7CisgICAgICAgICAgICByZXR1cm4g
IkZBSUwsIGV4cGVjdGVkIFR5cGVFcnJvci4gVGhlIHJlc3VsdGluZyBmcmFnbWVudCB3YXM6IFwi
IiArIHByb2R1Y2VOb2RlTmFtZVN0cmluZyhzdGFzaCkgKyAiXCIuIjsKIAotICAgICAgICBpZiAo
Y29kZSA9PSBleGNlcHRpb24uY29kZSkKKyAgICAgICAgaWYgKGV4Y2VwdGlvbi5uYW1lID0gIlR5
cGVFcnJvciIpCiAgICAgICAgICAgICByZXR1cm4gIlBBU1MiOwotICAgICAgICByZXR1cm4gIkZB
SUwsIGV4cGVjdGVkIGV4Y2VwdGlvbiBjb2RlOiAiICsgY29kZSArICIsIHdhczogIiArIGV4Y2Vw
dGlvbiArICIuIjsKKyAgICAgICAgcmV0dXJuICJGQUlMLCBleHBlY3RlZCBUeXBlRXJyb3IsIHdh
czogIiArIGV4Y2VwdGlvbi5uYW1lICsgIi4iOwogICAgIH0KIH0KIApAQCAtMTE5LDEwICsxMTks
MTAgQEAgZnVuY3Rpb24gcnVuVGVzdChtZXRob2ROYW1lLCBtZXRob2QpCiAgICAgICAgIGZyYWcu
YXBwZW5kQ2hpbGQoZXh0cmEpOwogICAgIH0sIGV4cGVjdE5vZGVzKCJCVVAiKSk7CiAKLSAgICB0
ZXN0RnJhZ21lbnQobWV0aG9kLCAiQ29udGludWFsbHkgcmUtYXBwZW5kaW5nIHJlbW92ZWQgZWxl
bWVudCB0byB0aGUgZnJhZ21lbnQgc2hvdWxkIGV2ZW50dWFsbHkgdGhyb3cgTk9UX0ZPVU5EX0VS
UiIsIGZ1bmN0aW9uKGV2dCwgZnJhZywgc3Rhc2gpCisgICAgdGVzdEZyYWdtZW50KG1ldGhvZCwg
IkNvbnRpbnVhbGx5IHJlLWFwcGVuZGluZyByZW1vdmVkIGVsZW1lbnQgdG8gdGhlIGZyYWdtZW50
IHNob3VsZCBldmVudHVhbGx5IHRocm93IGEgVHlwZUVycm9yIiwgZnVuY3Rpb24oZXZ0LCBmcmFn
LCBzdGFzaCkKICAgICB7CiAgICAgICAgIHN0YXNoLmluc2VydEJlZm9yZShmcmFnLmxhc3RDaGls
ZCwgc3Rhc2guZmlyc3RDaGlsZCk7Ci0gICAgfSwgZXhwZWN0RXhjZXB0aW9uKDgpLCB0cnVlKTsK
KyAgICB9LCBleHBlY3RUeXBlRXJyb3IoKSwgdHJ1ZSk7CiAgICAgcHJpbnRMb2cobWV0aG9kTmFt
ZSk7CiB9CiBmdW5jdGlvbiBydW5UZXN0cygpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9pbmNvbXBhdGlibGUtb3BlcmF0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9pbmNvbXBhdGlibGUtb3BlcmF0aW9ucy1leHBlY3RlZC50eHQKaW5kZXggZDU3NjRj
MS4uODVjY2Q1NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vaW5jb21wYXRpYmxl
LW9wZXJhdGlvbnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2luY29t
cGF0aWJsZS1vcGVyYXRpb25zLWV4cGVjdGVkLnR4dApAQCAtMyw5ICszLDkgQEAgVGhpcyB0ZXN0
IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgRE9NIG9wZXJhdGlvbnMgd2hlbiBjYWxsZWQgb24gbm9u
LURPTSBvciBpbmNvbXAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIGFOb2Rl
LmFwcGVuZENoaWxkKGFET01JbXBsZW1lbnRhdGlvbikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBO
b3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDguCi1QQVNTIGFOb2RlLmFwcGVuZENoaWxkKCdr
bm9ydCcpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlv
biA4LgotUEFTUyBhTm9kZS5hcHBlbmRDaGlsZCh2b2lkIDApIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4LgorUEFTUyBhTm9kZS5hcHBlbmRDaGls
ZChhRE9NSW1wbGVtZW50YXRpb24pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJy
b3IuCitQQVNTIGFOb2RlLmFwcGVuZENoaWxkKCdrbm9ydCcpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGFOb2RlLmFwcGVuZENoaWxkKHZvaWQgMCkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1MgYU5vZGUuaXNTYW1lTm9kZShh
RE9NSW1wbGVtZW50YXRpb24pIGlzIGZhbHNlCiBQQVNTIGFOb2RlLmlzU2FtZU5vZGUoJ2Zvbycp
IGlzIGZhbHNlCiBQQVNTIGFOb2RlLmlzU2FtZU5vZGUodm9pZCAwKSBpcyBmYWxzZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vaW5jb21wYXRpYmxlLW9wZXJhdGlvbnMuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL2luY29tcGF0aWJsZS1vcGVyYXRpb25zLmh0bWwKaW5kZXgg
MjFhYTcxYS4uMmYwZTRhZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vaW5jb21w
YXRpYmxlLW9wZXJhdGlvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pbmNvbXBh
dGlibGUtb3BlcmF0aW9ucy5odG1sCkBAIC0yOCwxMSArMjgsMTEgQEAgdmFyIGFOb2RlID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiB2YXIgYVNlY29uZE5vZGUgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJkaXYiKTsKIGFOb2RlLmFwcGVuZENoaWxkKGFTZWNvbmROb2RlKTsKIAot
c2hvdWxkVGhyb3coImFOb2RlLmFwcGVuZENoaWxkKGFET01JbXBsZW1lbnRhdGlvbikiLCAiJ0Vy
cm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgnIik7CitzaG91bGRUaHJvdygiYU5v
ZGUuYXBwZW5kQ2hpbGQoYURPTUltcGxlbWVudGF0aW9uKSIsICInVHlwZUVycm9yOiBUeXBlIGVy
cm9yJyIpOwogCi1zaG91bGRUaHJvdygiYU5vZGUuYXBwZW5kQ2hpbGQoJ2tub3J0JykiLCAiJ0Vy
cm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgnIik7CitzaG91bGRUaHJvdygiYU5v
ZGUuYXBwZW5kQ2hpbGQoJ2tub3J0JykiLCAiJ1R5cGVFcnJvcjogVHlwZSBlcnJvciciKTsKIAot
c2hvdWxkVGhyb3coImFOb2RlLmFwcGVuZENoaWxkKHZvaWQgMCkiLCAiJ0Vycm9yOiBOb3RGb3Vu
ZEVycm9yOiBET00gRXhjZXB0aW9uIDgnIik7CitzaG91bGRUaHJvdygiYU5vZGUuYXBwZW5kQ2hp
bGQodm9pZCAwKSIsICInVHlwZUVycm9yOiBUeXBlIGVycm9yJyIpOwogCiBzaG91bGRCZUZhbHNl
KCJhTm9kZS5pc1NhbWVOb2RlKGFET01JbXBsZW1lbnRhdGlvbikiKTsKIHNob3VsZEJlRmFsc2Uo
ImFOb2RlLmlzU2FtZU5vZGUoJ2ZvbycpIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9tb3ZlLW5vZGVzLWFjcm9zcy1kb2N1bWVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL21vdmUtbm9kZXMtYWNyb3NzLWRvY3VtZW50cy5odG1sCmluZGV4IGQzNTAxYTEuLjM4ODFm
MDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL21vdmUtbm9kZXMtYWNyb3NzLWRv
Y3VtZW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL21vdmUtbm9kZXMtYWNyb3Nz
LWRvY3VtZW50cy5odG1sCkBAIC0xNzksNyArMTc5LDcgQEAgZnVuY3Rpb24gcnVuKCkKICAgICBy
dW5UZXN0KGZ1bmN0aW9uKCkgewogICAgICAgICBpZnJhbWVEb2MuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuZG9jdHlwZSk7CiAgICAgICAgIGNvbnNvbGUubG9nKGRvY3VtZW50LmRvY3R5cGUpOwotICAg
IH0sICdOb3RGb3VuZEVycm9yJyk7CisgICAgfSwgJ1R5cGVFcnJvcicpOwogCiAgICAgLy8gV2hl
biBzZXR0aW5nIGEgYm91bmRhcnkgb2YgdGhlIHJhbmdlIGluIGEgZGlmZmVyZW50CiAgICAgLy8g
ZG9jdW1lbnQsIHRoZSBjYWxsIHNob3VsZCBzdWNjZWVkIGFuZCB0aGUgcmFuZ2Ugc2hvdWxkIGJl
IGNvbGxhcHNlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb2Nlc3Npbmct
aW5zdHJ1Y3Rpb24tYXBwZW5kQ2hpbGQtZXhjZXB0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9wcm9jZXNzaW5nLWluc3RydWN0aW9uLWFwcGVuZENoaWxkLWV4Y2VwdGlv
bnMtZXhwZWN0ZWQudHh0CmluZGV4IDdhMTM4NjguLjBlM2JkZjIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3Byb2Nlc3NpbmctaW5zdHJ1Y3Rpb24tYXBwZW5kQ2hpbGQtZXhjZXB0
aW9ucy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvY2Vzc2luZy1p
bnN0cnVjdGlvbi1hcHBlbmRDaGlsZC1leGNlcHRpb25zLWV4cGVjdGVkLnR4dApAQCAtMyw3ICsz
LDcgQEAgVGVzdCB0aGF0IGFwcHJvcHJpYXRlIGV4Y2VwdGlvbnMgYXJlIHRocm93biB3aGVuIGFk
ZGluZyBjaGlsZHJlbiB0byBhIFByb2Nlc3NpbmcKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
IAogCi1QQVNTIHBpLmFwcGVuZENoaWxkKG51bGwpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSGll
cmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMuCitQQVNTIHBpLmFwcGVuZENoaWxk
KG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNTIHBpLmFw
cGVuZENoaWxkKGRpdikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJy
b3I6IERPTSBFeGNlcHRpb24gMy4KIFBBU1MgcGkuYXBwZW5kQ2hpbGQodGV4dE5vZGUpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMu
CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9wcm9jZXNzaW5nLWluc3RydWN0aW9uLWFwcGVuZENoaWxkLWV4Y2VwdGlvbnMu
eGh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm9jZXNzaW5nLWluc3RydWN0aW9uLWFwcGVu
ZENoaWxkLWV4Y2VwdGlvbnMueGh0bWwKaW5kZXggYjAwMjg5OS4uYzkwMmJhNCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvY2Vzc2luZy1pbnN0cnVjdGlvbi1hcHBlbmRDaGls
ZC1leGNlcHRpb25zLnhodG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb2Nlc3Npbmct
aW5zdHJ1Y3Rpb24tYXBwZW5kQ2hpbGQtZXhjZXB0aW9ucy54aHRtbApAQCAtNSw3ICs1LDcgQEAK
IDwhW0NEQVRBWwogZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBhcHByb3ByaWF0ZSBleGNlcHRpb25z
IGFyZSB0aHJvd24gd2hlbiBhZGRpbmcgY2hpbGRyZW4gdG8gYSBQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24uIik7CiB2YXIgcGkgPSBkb2N1bWVudC5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oJ3Rh
cmdldCcsICdkYXRhJyk7Ci1zaG91bGRUaHJvdygicGkuYXBwZW5kQ2hpbGQobnVsbCkiLCAiJ0Vy
cm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyciKTsKK3Nob3VsZFRo
cm93KCJwaS5hcHBlbmRDaGlsZChudWxsKSIsICInVHlwZUVycm9yOiBUeXBlIGVycm9yJyIpOwog
dmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogc2hvdWxkVGhyb3coInBp
LmFwcGVuZENoaWxkKGRpdikiLCAiJ0Vycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBF
eGNlcHRpb24gMyciKTsKIHZhciB0ZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdz
b21ldGV4dCcpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2V0dGVyLXR5cGUt
ZW5mb3JjZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2V0dGVyLXR5
cGUtZW5mb3JjZW1lbnQtZXhwZWN0ZWQudHh0CmluZGV4IGM3YWI4ZTIuLjkxNzEyZDAgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NldHRlci10eXBlLWVuZm9yY2VtZW50LWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zZXR0ZXItdHlwZS1lbmZvcmNlbWVu
dC1leHBlY3RlZC50eHQKQEAgLTQsNyArNCw3IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAK
IAogUEFTUyBkb2N1bWVudC5ib2R5ID0gbm9kZWxpc3Q7IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
SGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMuCi1QQVNTIHRhYmxlLnRIZWFk
ID0gbm9kZWxpc3Q7IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4
Y2VwdGlvbiA4LgorUEFTUyB0YWJsZS50SGVhZCA9IG5vZGVsaXN0OyB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBUaGUgSFRNTFRhYmxlRWxlbWVudC50SGVhZCBhdHRyaWJ1dGUgbXVzdCBiZSBh
biBpbnN0YW5jZSBvZiBIVE1MVGFibGVTZWN0aW9uRWxlbWVudC4KIFBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vdGltZXItY2xlYXItaW50ZXJ2YWwtaW4taGFuZGxlci1hbmQtZ2VuZXJhdGUtZXJy
b3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vdGltZXItY2xlYXItaW50ZXJ2
YWwtaW4taGFuZGxlci1hbmQtZ2VuZXJhdGUtZXJyb3ItZXhwZWN0ZWQudHh0CmluZGV4IDk5YWFj
NmEuLjVmMmZkNTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3RpbWVyLWNsZWFy
LWludGVydmFsLWluLWhhbmRsZXItYW5kLWdlbmVyYXRlLWVycm9yLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS90aW1lci1jbGVhci1pbnRlcnZhbC1pbi1oYW5kbGVyLWFu
ZC1nZW5lcmF0ZS1lcnJvci1leHBlY3RlZC50eHQKQEAgLTEsMiArMSwyIEBACi1DT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTA6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gODogQW4gYXR0ZW1w
dCB3YXMgbWFkZSB0byByZWZlcmVuY2UgYSBOb2RlIGluIGEgY29udGV4dCB3aGVyZSBpdCBkb2Vz
IG5vdCBleGlzdC4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMDogVHlwZUVycm9yOiBUeXBlIGVy
cm9yCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW5zcGVjdG9yLXN1cHBvcnQvdW5j
YXVnaHQtZG9tOC1leGNlcHRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW5zcGVjdG9yLXN1
cHBvcnQvdW5jYXVnaHQtZG9tOC1leGNlcHRpb24uaHRtbAppbmRleCBiYzYwOGY0Li41ZmE0ZTVi
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2luc3BlY3Rvci1zdXBwb3J0L3VuY2F1Z2h0
LWRvbTgtZXhjZXB0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbnNwZWN0b3Itc3Vw
cG9ydC91bmNhdWdodC1kb204LWV4Y2VwdGlvbi5odG1sCkBAIC02LDcgKzYsNyBAQCBmdW5jdGlv
biBvbmxvYWQoKQogewogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICAgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgZG9jdW1lbnQuYXBwZW5kQ2hpbGQoKTsKKyAgICBkb2N1
bWVudC5ib2R5LnJlbW92ZUF0dHJpYnV0ZU5vZGUoZG9jdW1lbnQuY3JlYXRlQXR0cmlidXRlKCJk
b2VzTm90RXhpc3QiKSk7CiB9CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9pbnRl
cmZhY2VzLWV4cGVjdGVkLnR4dAppbmRleCBmZGIxOTgwLi5jZjdiMjNhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9pbnRlcmZhY2Vz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dApAQCAtNjM0LDIxICs2MzQsMTUgQEAg
RkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpc0RlZmF1bHROYW1lc3BhY2UoRE9NU3RyaW5n
KSBvbiB4bWxEb2Mgd2l0aCB0b28gZmUKICAgICBbbmF0aXZlIGNvZGVdCiB9IiBkaWQgbm90IHRo
cm93CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiB4bWxEb2MgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJp
bnNlcnRCZWZvcmUiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MCkgCi1GQUlMIE5vZGUgaW50ZXJm
YWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIHhtbERvYyB3aXRoIHRvbyBm
ZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3
aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CitGQUlMIE5vZGUgaW50ZXJm
YWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIHhtbERvYyB3aXRoIHRvbyBm
ZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3
aXRoIDEgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAgICAgW25hdGl2ZSBjb2Rl
XQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4
IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJy
b3IiKQorfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00g
RXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJU
eXBlRXJyb3IiICgiVHlwZUVycm9yIikKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IHhtbERvYyBtdXN0
IGluaGVyaXQgcHJvcGVydHkgImFwcGVuZENoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDEp
IAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiB4bWxE
b2Mgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhy
b3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAg
IFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERP
TSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJy
b3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hp
bGQoTm9kZSkgb24geG1sRG9jIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBl
RXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiB4bWxEb2MgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJyZXBsYWNlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MikgCi1GQUlMIE5vZGUgaW50
ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIHhtbERvYyB3aXRoIHRv
byBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxl
ZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBj
b2RlXQotfSIgZGlkIG5vdCB0aHJvdworUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBs
YWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiB4bWxEb2Mgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0
IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IHhtbERvYyBtdXN0IGluaGVy
aXQgcHJvcGVydHkgInJlbW92ZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDMpIAotRkFJ
TCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiB4bWxEb2Mgd2l0
aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBD
YWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRp
dmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNl
cHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgi
VHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9k
ZSkgb24geG1sRG9jIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3Ig
CiBQQVNTIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogeG1sRG9jIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAiYWRkRXZlbnRMaXN0ZW5lciIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDApIAogRkFJTCBFdmVu
dFRhcmdldCBpbnRlcmZhY2U6IGNhbGxpbmcgYWRkRXZlbnRMaXN0ZW5lcihET01TdHJpbmcsRXZl
bnRMaXN0ZW5lcixib29sZWFuKSBvbiB4bWxEb2Mgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0
IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBm
dW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KQEAgLTc5MywyMSArNzg3
LDE1IEBAIEZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaXNEZWZhdWx0TmFtZXNwYWNlKERP
TVN0cmluZykgb24gZG9jdW1lbnQuY3JlYXRlRG9jCiAgICAgW25hdGl2ZSBjb2RlXQogfSIgZGlk
IG5vdCB0aHJvdwogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRG
cmFnbWVudCgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5zZXJ0QmVmb3JlIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAoNDApIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZv
cmUoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkgd2l0aCB0
b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxs
ZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworRkFJTCBOb2RlIGlu
dGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5jcmVh
dGVEb2N1bWVudEZyYWdtZW50KCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5
cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAxIGFyZ3VtZW50cyBmdW5jdGlvbiAi
ZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6
IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0
ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK30iIGRpZCBub3QgdGhyb3cKIFBB
U1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgImFwcGVuZENoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDEp
IAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiBkb2N1
bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0
IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBm
dW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVj
dCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9y
IikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBp
bnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlRG9j
dW1lbnRGcmFnbWVudCgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJy
b3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50
KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZXBsYWNlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0
eXBlICg0MikgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2Rl
LE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSB3aXRoIHRvbyBmZXcg
YXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRo
IDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQot
fSIgZGlkIG5vdCB0aHJvdworUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hp
bGQoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkgd2l0aCB0
b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZh
Y2U6IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgInJlbW92ZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDMpIAotRkFJTCBOb2RlIGlu
dGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVEb2N1
bWVudEZyYWdtZW50KCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJv
ciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rp
b24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZv
dW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2Jq
ZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxp
bmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgp
IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIEV2ZW50
VGFyZ2V0IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAiYWRkRXZlbnRMaXN0ZW5lciIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
KDApIAogRkFJTCBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGNhbGxpbmcgYWRkRXZlbnRMaXN0ZW5l
cihET01TdHJpbmcsRXZlbnRMaXN0ZW5lcixib29sZWFuKSBvbiBkb2N1bWVudC5jcmVhdGVEb2N1
bWVudEZyYWdtZW50KCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJv
ciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rp
b24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KQEAgLTkxNSwyMSArOTAzLDE1IEBAIEZBSUwgTm9k
ZSBpbnRlcmZhY2U6IGNhbGxpbmcgaXNEZWZhdWx0TmFtZXNwYWNlKERPTVN0cmluZykgb24gZG9j
dW1lbnQuZG9jdHlwZSB3CiAgICAgW25hdGl2ZSBjb2RlXQogfSIgZGlkIG5vdCB0aHJvdwogUEFT
UyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuZG9jdHlwZSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
Imluc2VydEJlZm9yZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQwKSAKLUZBSUwgTm9kZSBpbnRl
cmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuZG9jdHlw
ZSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJv
d3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CitGQUlM
IE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGRvY3Vt
ZW50LmRvY3R5cGUgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBh
c3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAxIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24g
KCkgewogICAgIFtuYXRpdmUgY29kZV0KIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNo
eVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIp
IGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCiBQQVNTIE5vZGUgaW50
ZXJmYWNlOiBkb2N1bWVudC5kb2N0eXBlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXBwZW5kQ2hp
bGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MSkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxs
aW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmRvY3R5cGUgd2l0aCB0b28gZmV3IGFy
Z3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAw
IGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0i
IHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlv
biAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9y
IiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENoaWxk
KE5vZGUpIG9uIGRvY3VtZW50LmRvY3R5cGUgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRo
cm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmRvY3R5cGUgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJyZXBsYWNlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0
MikgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUp
IG9uIGRvY3VtZW50LmRvY3R5cGUgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5
cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAi
ZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6
IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVl
c3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNT
IE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIGRvY3Vt
ZW50LmRvY3R5cGUgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAK
IFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmRvY3R5cGUgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJyZW1vdmVDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQzKSAKLUZBSUwgTm9kZSBp
bnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuZG9jdHlwZSB3
aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6
IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25h
dGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4
Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIg
KCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChO
b2RlKSBvbiBkb2N1bWVudC5kb2N0eXBlIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgCiBQQVNTIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogZG9jdW1lbnQuZG9jdHlw
ZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFkZEV2ZW50TGlzdGVuZXIiIHdpdGggdGhlIHByb3Bl
ciB0eXBlICgwKSAKIEZBSUwgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBjYWxsaW5nIGFkZEV2ZW50
TGlzdGVuZXIoRE9NU3RyaW5nLEV2ZW50TGlzdGVuZXIsYm9vbGVhbikgb24gZG9jdW1lbnQuZG9j
dHlwZSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90
aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAg
ICAgW25hdGl2ZSBjb2RlXQpAQCAtMTE4NywyMSArMTE2OSwxNSBAQCBGQUlMIE5vZGUgaW50ZXJm
YWNlOiBjYWxsaW5nIGlzRGVmYXVsdE5hbWVzcGFjZShET01TdHJpbmcpIG9uIGVsZW1lbnQgd2l0
aCB0b28gZgogICAgIFtuYXRpdmUgY29kZV0KIH0iIGRpZCBub3QgdGhyb3cKIFBBU1MgTm9kZSBp
bnRlcmZhY2U6IGVsZW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJpbnNlcnRCZWZvcmUiIHdp
dGggdGhlIHByb3BlciB0eXBlICg0MCkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGlu
c2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGVsZW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBt
dXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50
cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBp
bnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBvbiBlbGVtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMg
bXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMSBhcmd1bWVu
dHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBv
YmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRF
cnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCit9IiBkaWQg
bm90IHRocm93CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBlbGVtZW50IG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAiYXBwZW5kQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MSkgCi1GQUlMIE5vZGUg
aW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGVsZW1lbnQgd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQg
d2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29k
ZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24g
OCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVy
cm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24g
ZWxlbWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFT
UyBOb2RlIGludGVyZmFjZTogZWxlbWVudCBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlcGxhY2VD
aGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQyKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNh
bGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24gZWxlbWVudCB3aXRoIHRvbyBmZXcgYXJn
dW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAg
YXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIg
ZGlkIG5vdCB0aHJvdworUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQo
Tm9kZSxOb2RlKSBvbiBlbGVtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBU
eXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBlbGVtZW50IG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAicmVtb3ZlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MykgCi1GQUlMIE5vZGUg
aW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIGVsZW1lbnQgd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQg
d2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29k
ZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24g
OCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVy
cm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24g
ZWxlbWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFT
UyBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGVsZW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJh
ZGRFdmVudExpc3RlbmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMCkgCiBGQUlMIEV2ZW50VGFy
Z2V0IGludGVyZmFjZTogY2FsbGluZyBhZGRFdmVudExpc3RlbmVyKERPTVN0cmluZyxFdmVudExp
c3RlbmVyLGJvb2xlYW4pIG9uIGVsZW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRo
cm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5j
dGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KQEAgLTE0MDksMjEgKzEzODUs
MTUgQEAgRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpc0RlZmF1bHROYW1lc3BhY2UoRE9N
U3RyaW5nKSBvbiBkb2N1bWVudC5jcmVhdGVUZXgKICAgICBbbmF0aXZlIGNvZGVdCiB9IiBkaWQg
bm90IHRocm93CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgi
YWJjIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJpbnNlcnRCZWZvcmUiIHdpdGggdGhlIHByb3Bl
ciB0eXBlICg0MCkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShO
b2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhYmMiKSB3aXRoIHRvbyBmZXcg
YXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRo
IDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CitGQUlMIE5vZGUgaW50ZXJmYWNl
OiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFz
c2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDEgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAo
KSB7CiAgICAgW25hdGl2ZSBjb2RlXQogfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5
UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikg
ZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKIFBBU1MgTm9kZSBpbnRl
cmZhY2U6IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhYmMiKSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgImFwcGVuZENoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDEpIAotRkFJTCBOb2RlIGlu
dGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVUZXh0
Tm9kZSgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBh
c3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24g
KCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNo
eVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIp
IGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50
ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAog
UEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoImFiYyIpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAicmVwbGFjZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDIp
IAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBv
biBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBt
dXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50
cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9i
amVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhp
ZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVF
cnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5v
ZGUpIG9uIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1l
bnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUoImFiYyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVtb3ZlQ2hpbGQi
IHdpdGggdGhlIHByb3BlciB0eXBlICg0MykgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5n
IHJlbW92ZUNoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhYmMiKSB3aXRo
IHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENh
bGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2
ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2Vw
dGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJU
eXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2Rl
KSBvbiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50
cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhZGRFdmVu
dExpc3RlbmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMCkgCiBGQUlMIEV2ZW50VGFyZ2V0IGlu
dGVyZmFjZTogY2FsbGluZyBhZGRFdmVudExpc3RlbmVyKERPTVN0cmluZyxFdmVudExpc3RlbmVy
LGJvb2xlYW4pIG9uIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhYmMiKSB3aXRoIHRvbyBmZXcg
YXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRo
IDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAgICAgW25hdGl2ZSBjb2RlXQpA
QCAtMTU0MywyMSArMTUxMywxNSBAQCBGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGlzRGVm
YXVsdE5hbWVzcGFjZShET01TdHJpbmcpIG9uIHhtbERvYy5jcmVhdGVQcm9jZQogICAgIFtuYXRp
dmUgY29kZV0KIH0iIGRpZCBub3QgdGhyb3cKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IHhtbERvYy5j
cmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oImFiYyIsICJkZWYiKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgImluc2VydEJlZm9yZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQwKSAKLUZBSUwgTm9k
ZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24geG1sRG9jLmNy
ZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiYWJjIiwgImRlZiIpIHdpdGggdG9vIGZldyBhcmd1
bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBh
cmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKK0ZBSUwgTm9kZSBpbnRlcmZhY2U6IGNh
bGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24geG1sRG9jLmNyZWF0ZVByb2Nlc3NpbmdJ
bnN0cnVjdGlvbigiYWJjIiwgImRlZiIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMSBhcmd1bWVudHMgZnVuY3Rp
b24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCiB9IiB0aHJldyBvYmplY3QgIkVy
cm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlS
ZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQog
UEFTUyBOb2RlIGludGVyZmFjZTogeG1sRG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigi
YWJjIiwgImRlZiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXBwZW5kQ2hpbGQiIHdpdGggdGhl
IHByb3BlciB0eXBlICg0MSkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENo
aWxkKE5vZGUpIG9uIHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oImFiYyIsICJk
ZWYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90
aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0g
ICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVz
dEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0
ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6
IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24geG1sRG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0
cnVjdGlvbigiYWJjIiwgImRlZiIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBU
eXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiB4bWxEb2MuY3JlYXRlUHJvY2Vzc2luZ0lu
c3RydWN0aW9uKCJhYmMiLCAiZGVmIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZXBsYWNlQ2hp
bGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MikgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxs
aW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24oImFiYyIsICJkZWYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cg
VHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9u
ICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJv
cjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVx
dWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BB
U1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24geG1s
RG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiYWJjIiwgImRlZiIpIHdpdGggdG9vIGZl
dyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiB4
bWxEb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJhYmMiLCAiZGVmIikgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJyZW1vdmVDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQzKSAKLUZB
SUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24geG1sRG9jLmNy
ZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiYWJjIiwgImRlZiIpIHdpdGggdG9vIGZldyBhcmd1
bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBh
cmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0
aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90
Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQ
QVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIHhtbERvYy5j
cmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oImFiYyIsICJkZWYiKSB3aXRoIHRvbyBmZXcgYXJn
dW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBFdmVudFRhcmdldCBpbnRlcmZhY2U6
IHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oImFiYyIsICJkZWYiKSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgImFkZEV2ZW50TGlzdGVuZXIiIHdpdGggdGhlIHByb3BlciB0eXBlICgw
KSAKIEZBSUwgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBjYWxsaW5nIGFkZEV2ZW50TGlzdGVuZXIo
RE9NU3RyaW5nLEV2ZW50TGlzdGVuZXIsYm9vbGVhbikgb24geG1sRG9jLmNyZWF0ZVByb2Nlc3Np
bmdJbnN0cnVjdGlvbigiYWJjIiwgImRlZiIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0
aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVu
Y3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCkBAIC0xNjczLDIxICsxNjM3
LDE1IEBAIEZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaXNEZWZhdWx0TmFtZXNwYWNlKERP
TVN0cmluZykgb24gZG9jdW1lbnQuY3JlYXRlQ29tCiAgICAgW25hdGl2ZSBjb2RlXQogfSIgZGlk
IG5vdCB0aHJvdwogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgi
YWJjIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJpbnNlcnRCZWZvcmUiIHdpdGggdGhlIHByb3Bl
ciB0eXBlICg0MCkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShO
b2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIpIHdpdGggdG9vIGZldyBh
cmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGgg
MCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKK0ZBSUwgTm9kZSBpbnRlcmZhY2U6
IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlQ29tbWVu
dCgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3Nl
cnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAxIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkg
ewogICAgIFtuYXRpdmUgY29kZV0KIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJl
cXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4
cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCiBQQVNTIE5vZGUgaW50ZXJm
YWNlOiBkb2N1bWVudC5jcmVhdGVDb21tZW50KCJhYmMiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
ImFwcGVuZENoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDEpIAotRkFJTCBOb2RlIGludGVy
ZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVDb21tZW50
KCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2Vy
dF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7
Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVx
dWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhw
ZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZh
Y2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgi
YWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1Mg
Tm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIpIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAicmVwbGFjZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDIpIAotRkFJ
TCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiBkb2N1
bWVudC5jcmVhdGVDb21tZW50KCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhy
b3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0
aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJF
cnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5
UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikK
K1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24g
ZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0
IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUNv
bW1lbnQoImFiYyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVtb3ZlQ2hpbGQiIHdpdGggdGhl
IHByb3BlciB0eXBlICg0MykgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNo
aWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIpIHdpdGggdG9vIGZldyBh
cmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGgg
MCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19
IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgi
Tm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIp
CitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIGRvY3Vt
ZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgCiBQQVNTIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRl
Q29tbWVudCgiYWJjIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhZGRFdmVudExpc3RlbmVyIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAoMCkgCiBGQUlMIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogY2Fs
bGluZyBhZGRFdmVudExpc3RlbmVyKERPTVN0cmluZyxFdmVudExpc3RlbmVyLGJvb2xlYW4pIG9u
IGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVz
dCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMg
ZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2Rl
LWFwcGVuZENoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtYXBwZW5kQ2hpbGQtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDNhMjg5ZTguLmIxMzBjYWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtYXBwZW5kQ2hpbGQtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9t
L25vZGVzL05vZGUtYXBwZW5kQ2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0xLDEyICsxLDEyIEBACiAK
IAotRkFJTCBXZWJJREwgdGVzdHMgYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gImZ1bmN0aW9uICgp
IHsgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChudWxsKSB9IiB0aHJldyBvYmplY3QgIkVycm9y
OiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVj
dGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIFdlYklETCB0ZXN0cyAK
IFBBU1MgQXBwZW5kaW5nIHRvIGEgbGVhZiBub2RlLiAKLUZBSUwgQXBwZW5kaW5nIG51bGwgdG8g
YSB0ZXh0IG5vZGUgYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgbm9kZS5h
cHBlbmRDaGlsZChudWxsKSB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0
RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3Rl
ZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBBcHBlbmRpbmcgbnVsbCB0
byBhIHRleHQgbm9kZSAKIFBBU1MgQXBwZW5kaW5nIHRvIGEgdGV4dCBub2RlIAotRkFJTCBBcHBl
bmRpbmcgbnVsbCB0byBhIGNvbW1lbnQgYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gImZ1bmN0aW9u
ICgpIHsgbm9kZS5hcHBlbmRDaGlsZChudWxsKSB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVy
YXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJy
b3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBBcHBl
bmRpbmcgbnVsbCB0byBhIGNvbW1lbnQgCiBQQVNTIEFwcGVuZGluZyB0byBhIGNvbW1lbnQgCi1G
QUlMIEFwcGVuZGluZyBudWxsIHRvIGEgZG9jdHlwZSBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAi
ZnVuY3Rpb24gKCkgeyBub2RlLmFwcGVuZENoaWxkKG51bGwpIH0iIHRocmV3IG9iamVjdCAiRXJy
b3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJl
cXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQ
QVNTIEFwcGVuZGluZyBudWxsIHRvIGEgZG9jdHlwZSAKIFBBU1MgQXBwZW5kaW5nIHRvIGEgZG9j
dHlwZSAKIFBBU1MgQXBwZW5kaW5nIGEgZG9jdW1lbnQgCiBQQVNTIEFkb3B0aW5nIGFuIG9ycGhh
biAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZG9tL25vZGVzL05vZGUtaW5zZXJ0QmVmb3JlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtaW5zZXJ0QmVm
b3JlLWV4cGVjdGVkLnR4dAppbmRleCA1NmJjZDJhLi5jNjYyMjMzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLWlu
c2VydEJlZm9yZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1pbnNlcnRCZWZvcmUtZXhwZWN0ZWQudHh0
CkBAIC0xLDEyICsxLDEyIEBACiAKLUZBSUwgQ2FsbGluZyBpbnNlcnRCZWZvcmUgd2l0aCBhIG5v
bi1Ob2RlIGZpcnN0IGFyZ3VtZW50IG11c3QgdGhyb3cgVHlwZUVycm9yLiBhc3NlcnRfdGhyb3dz
OiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyBkb2N1bWVudC5ib2R5Lmluc2VydEJlZm9yZShudWxs
LCBudWxsKSB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0
aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5
cGVFcnJvciIpCi1GQUlMIENhbGxpbmcgaW5zZXJ0QmVmb3JlIHdpdGggYSBub24tTm9kZSBmaXJz
dCBhcmd1bWVudCBvbiBhIGxlYWYgbm9kZSBEb2N1bWVudFR5cGUgbXVzdCB0aHJvdyBUeXBlRXJy
b3IuIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IG5vZGUuaW5zZXJ0QmVm
b3JlKG51bGwsIG51bGwpIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RF
cnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVk
IG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIENhbGxpbmcgaW5zZXJ0QmVm
b3JlIHdpdGggYSBub24tTm9kZSBmaXJzdCBhcmd1bWVudCBtdXN0IHRocm93IFR5cGVFcnJvci4g
CitQQVNTIENhbGxpbmcgaW5zZXJ0QmVmb3JlIHdpdGggYSBub24tTm9kZSBmaXJzdCBhcmd1bWVu
dCBvbiBhIGxlYWYgbm9kZSBEb2N1bWVudFR5cGUgbXVzdCB0aHJvdyBUeXBlRXJyb3IuIAogUEFT
UyBDYWxsaW5nIGluc2VydEJlZm9yZSBhbiBhIGxlYWYgbm9kZSBEb2N1bWVudFR5cGUgbXVzdCB0
aHJvdyBISUVSQVJDSFlfUkVRVUVTVF9FUlIuIAotRkFJTCBDYWxsaW5nIGluc2VydEJlZm9yZSB3
aXRoIGEgbm9uLU5vZGUgZmlyc3QgYXJndW1lbnQgb24gYSBsZWFmIG5vZGUgVGV4dCBtdXN0IHRo
cm93IFR5cGVFcnJvci4gYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgbm9k
ZS5pbnNlcnRCZWZvcmUobnVsbCwgbnVsbCkgfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFy
Y2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9y
IikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgQ2FsbGlu
ZyBpbnNlcnRCZWZvcmUgd2l0aCBhIG5vbi1Ob2RlIGZpcnN0IGFyZ3VtZW50IG9uIGEgbGVhZiBu
b2RlIFRleHQgbXVzdCB0aHJvdyBUeXBlRXJyb3IuIAogUEFTUyBDYWxsaW5nIGluc2VydEJlZm9y
ZSBhbiBhIGxlYWYgbm9kZSBUZXh0IG11c3QgdGhyb3cgSElFUkFSQ0hZX1JFUVVFU1RfRVJSLiAK
LUZBSUwgQ2FsbGluZyBpbnNlcnRCZWZvcmUgd2l0aCBhIG5vbi1Ob2RlIGZpcnN0IGFyZ3VtZW50
IG9uIGEgbGVhZiBub2RlIENvbW1lbnQgbXVzdCB0aHJvdyBUeXBlRXJyb3IuIGFzc2VydF90aHJv
d3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IG5vZGUuaW5zZXJ0QmVmb3JlKG51bGwsIG51bGwp
IH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2Vw
dGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVy
cm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIENhbGxpbmcgaW5zZXJ0QmVmb3JlIHdpdGggYSBub24t
Tm9kZSBmaXJzdCBhcmd1bWVudCBvbiBhIGxlYWYgbm9kZSBDb21tZW50IG11c3QgdGhyb3cgVHlw
ZUVycm9yLiAKIFBBU1MgQ2FsbGluZyBpbnNlcnRCZWZvcmUgYW4gYSBsZWFmIG5vZGUgQ29tbWVu
dCBtdXN0IHRocm93IEhJRVJBUkNIWV9SRVFVRVNUX0VSUi4gCi1GQUlMIENhbGxpbmcgaW5zZXJ0
QmVmb3JlIHdpdGggYSBub24tTm9kZSBmaXJzdCBhcmd1bWVudCBvbiBhIGxlYWYgbm9kZSBQcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24gbXVzdCB0aHJvdyBUeXBlRXJyb3IuIGFzc2VydF90aHJvd3M6IGZ1
bmN0aW9uICJmdW5jdGlvbiAoKSB7IG5vZGUuaW5zZXJ0QmVmb3JlKG51bGwsIG51bGwpIH0iIHRo
cmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAz
IiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAo
IlR5cGVFcnJvciIpCitQQVNTIENhbGxpbmcgaW5zZXJ0QmVmb3JlIHdpdGggYSBub24tTm9kZSBm
aXJzdCBhcmd1bWVudCBvbiBhIGxlYWYgbm9kZSBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gbXVzdCB0
aHJvdyBUeXBlRXJyb3IuIAogUEFTUyBDYWxsaW5nIGluc2VydEJlZm9yZSBhbiBhIGxlYWYgbm9k
ZSBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gbXVzdCB0aHJvdyBISUVSQVJDSFlfUkVRVUVTVF9FUlIu
IAogUEFTUyBDYWxsaW5nIGluc2VydEJlZm9yZSB3aXRoIGFuIGluY2x1c2l2ZSBhbmNlc3RvciBv
ZiB0aGUgY29udGV4dCBvYmplY3QgbXVzdCB0aHJvdyBISUVSQVJDSFlfUkVRVUVTVF9FUlIuIAog
UEFTUyBDYWxsaW5nIGluc2VydEJlZm9yZSB3aXRoIGEgcmVmZXJlbmNlIGNoaWxkIHdob3NlIHBh
cmVudCBpcyBub3QgdGhlIGNvbnRleHQgbm9kZSBtdXN0IHRocm93IGEgTm90Rm91bmRFcnJvci4g
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2RvbS9ub2Rlcy9Ob2RlLXJlbW92ZUNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtcmVtb3ZlQ2hpbGQt
ZXhwZWN0ZWQudHh0CmluZGV4IDAyOTEwYmYuLjEzOTdjNGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtcmVtb3Zl
Q2hpbGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtcmVtb3ZlQ2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0y
Nyw1ICsyNyw1IEBAIFBBU1MgQ2FsbGluZyByZW1vdmVDaGlsZCBvbiBhIHRleHQgZnJvbSBhIHN5
bnRoZXRpYyBkb2N1bWVudCB3aXRoIG5vIGNoaWxkcmVuIHNoCiBQQVNTIFBhc3NpbmcgYSBkZXRh
Y2hlZCBjb21tZW50IGZyb20gYSBzeW50aGV0aWMgZG9jdW1lbnQgdG8gcmVtb3ZlQ2hpbGQgc2hv
dWxkIG5vdCBhZmZlY3QgaXQuIAogUEFTUyBQYXNzaW5nIGEgbm9uLWRldGFjaGVkIGNvbW1lbnQg
ZnJvbSBhIHN5bnRoZXRpYyBkb2N1bWVudCB0byByZW1vdmVDaGlsZCBzaG91bGQgbm90IGFmZmVj
dCBpdC4gCiBQQVNTIENhbGxpbmcgcmVtb3ZlQ2hpbGQgb24gYSBjb21tZW50IGZyb20gYSBzeW50
aGV0aWMgZG9jdW1lbnQgd2l0aCBubyBjaGlsZHJlbiBzaG91bGQgdGhyb3cgTk9UX0ZPVU5EX0VS
Ui4gCi1GQUlMIFBhc3NpbmcgYSB2YWx1ZSB0aGF0IGlzIG5vdCBhIE5vZGUgcmVmZXJlbmNlIHRv
IHJlbW92ZUNoaWxkIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuIGFzc2VydF90aHJvd3M6IGZ1bmN0
aW9uICJmdW5jdGlvbiAoKSB7IGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobnVsbCkgfSIgdGhy
ZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZv
dW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFT
UyBQYXNzaW5nIGEgdmFsdWUgdGhhdCBpcyBub3QgYSBOb2RlIHJlZmVyZW5jZSB0byByZW1vdmVD
aGlsZCBzaG91bGQgdGhyb3cgVHlwZUVycm9yLiAKIGIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtcmVwbGFjZUNo
aWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZG9tL25vZGVzL05vZGUtcmVwbGFjZUNoaWxkLWV4cGVjdGVkLnR4dAppbmRleCBlN2Y3
MGZhLi5kMTdjOGI1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLXJlcGxhY2VDaGlsZC1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMv
Tm9kZS1yZXBsYWNlQ2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNSBAQAogCi1GQUlMIFBh
c3NpbmcgbnVsbCB0byByZXBsYWNlQ2hpbGQgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yLiBhc3Nl
cnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIGEucmVwbGFjZUNoaWxkKG51
bGwsIG51bGwpOwotICB9IiBkaWQgbm90IHRocm93CitQQVNTIFBhc3NpbmcgbnVsbCB0byByZXBs
YWNlQ2hpbGQgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yLiAKIEZBSUwgSWYgY2hpbGQncyBwYXJl
bnQgaXMgbm90IHRoZSBjb250ZXh0IG5vZGUsIGEgTm90Rm91bmRFcnJvciBleGNlcHRpb24gc2hv
dWxkIGJlIHRocm93biBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAg
IGEucmVwbGFjZUNoaWxkKGEsIGMpOwogICB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJj
aHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRp
b24gTm90Rm91bmRFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDMsIGV4cGVjdGVk
IDgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0
CmluZGV4IDJlNThhZTYuLjA0NjIyMDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Rv
bS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dApAQCAtMTIyNSwyMSArMTIyNSwxNSBAQCBGQUlMIE5v
ZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGlzRGVmYXVsdE5hbWVzcGFjZShET01TdHJpbmcpIG9uIGlm
cmFtZS5jb250ZW50RG9jdQogICAgIFtuYXRpdmUgY29kZV0KIH0iIGRpZCBub3QgdGhyb3cKIFBB
U1MgTm9kZSBpbnRlcmZhY2U6IGlmcmFtZS5jb250ZW50RG9jdW1lbnQgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJpbnNlcnRCZWZvcmUiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MCkgCi1GQUlMIE5v
ZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGlmcmFtZS5j
b250ZW50RG9jdW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJv
ciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rp
b24gKCkgeworRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZvcmUoTm9kZSxO
b2RlKSBvbiBpZnJhbWUuY29udGVudERvY3VtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVz
dCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMSBhcmd1bWVudHMg
ZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmpl
Y3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJv
ciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCit9IiB0aHJldyBv
YmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJI
aWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBl
RXJyb3IiKQogUEFTUyBOb2RlIGludGVyZmFjZTogaWZyYW1lLmNvbnRlbnREb2N1bWVudCBtdXN0
IGluaGVyaXQgcHJvcGVydHkgImFwcGVuZENoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDEp
IAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiBpZnJh
bWUuY29udGVudERvY3VtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBl
RXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1
bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBO
b3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVk
IG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBj
YWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGlmcmFtZS5jb250ZW50RG9jdW1lbnQgd2l0aCB0
b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZh
Y2U6IGlmcmFtZS5jb250ZW50RG9jdW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZXBsYWNl
Q2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MikgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBj
YWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIGlmcmFtZS5jb250ZW50RG9jdW1lbnQg
d2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dz
OiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtu
YXRpdmUgY29kZV0KLX0iIGRpZCBub3QgdGhyb3cKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxp
bmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24gaWZyYW1lLmNvbnRlbnREb2N1bWVudCB3aXRo
IHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGludGVy
ZmFjZTogaWZyYW1lLmNvbnRlbnREb2N1bWVudCBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlbW92
ZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDMpIAotRkFJTCBOb2RlIGludGVyZmFjZTog
Y2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiBpZnJhbWUuY29udGVudERvY3VtZW50IHdpdGgg
dG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2Fs
bGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZl
IGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0
aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5
cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUp
IG9uIGlmcmFtZS5jb250ZW50RG9jdW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRo
cm93IFR5cGVFcnJvciAKIFBBU1MgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBpZnJhbWUuY29udGVu
dERvY3VtZW50IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYWRkRXZlbnRMaXN0ZW5lciIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgKDApIAogRkFJTCBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGNhbGxpbmcg
YWRkRXZlbnRMaXN0ZW5lcihET01TdHJpbmcsRXZlbnRMaXN0ZW5lcixib29sZWFuKSBvbiBpZnJh
bWUuY29udGVudERvY3VtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBl
RXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1
bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCkBAIC0xNTUxLDIxICsxNTQ1LDE1IEBAIEZB
SUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaXNEZWZhdWx0TmFtZXNwYWNlKERPTVN0cmluZykg
b24gZG9jdW1lbnQuaW1wbGVtZW50CiAgICAgW25hdGl2ZSBjb2RlXQogfSIgZGlkIG5vdCB0aHJv
dwogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9j
dW1lbnQobnVsbCwgIiIsIG51bGwpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5zZXJ0QmVmb3Jl
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDApIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGlu
ZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVh
dGVEb2N1bWVudChudWxsLCAiIiwgbnVsbCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRo
cm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5j
dGlvbiAiZnVuY3Rpb24gKCkgeworRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRC
ZWZvcmUoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVu
dChudWxsLCAiIiwgbnVsbCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVF
cnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAxIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVu
Y3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5v
dEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQg
b2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK30iIHRocmV3IG9iamVjdCAiRXJyb3I6
IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVl
c3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCiBQQVNT
IE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudChu
dWxsLCAiIiwgbnVsbCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhcHBlbmRDaGlsZCIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgKDQxKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5k
Q2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVs
bCwgIiIsIG51bGwpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3Ig
YXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9u
ICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3Vu
ZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVj
dCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5n
IGFwcGVuZENoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3Vt
ZW50KG51bGwsICIiLCBudWxsKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlw
ZUVycm9yIAogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3Jl
YXRlRG9jdW1lbnQobnVsbCwgIiIsIG51bGwpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVwbGFj
ZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDIpIAotRkFJTCBOb2RlIGludGVyZmFjZTog
Y2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5pbXBsZW1lbnRhdGlv
bi5jcmVhdGVEb2N1bWVudChudWxsLCAiIiwgbnVsbCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBt
dXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50
cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIGRpZCBub3Qg
dGhyb3cKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9k
ZSkgb24gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwgIiIsIG51
bGwpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5v
ZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudChudWxs
LCAiIiwgbnVsbCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZW1vdmVDaGlsZCIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgKDQzKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hp
bGQoTm9kZSkgb24gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwg
IiIsIG51bGwpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNz
ZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgp
IHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVy
cm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAi
VHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJl
bW92ZUNoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50
KG51bGwsICIiLCBudWxsKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVy
cm9yIAogUEFTUyBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGRvY3VtZW50LmltcGxlbWVudGF0aW9u
LmNyZWF0ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFk
ZEV2ZW50TGlzdGVuZXIiIHdpdGggdGhlIHByb3BlciB0eXBlICgwKSAKIEZBSUwgRXZlbnRUYXJn
ZXQgaW50ZXJmYWNlOiBjYWxsaW5nIGFkZEV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nLEV2ZW50TGlz
dGVuZXIsYm9vbGVhbikgb24gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQo
bnVsbCwgIiIsIG51bGwpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJy
b3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0
aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCkBAIC0yMTcxLDIxICsyMTU5LDE1IEBAIEZBSUwg
Tm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaXNEZWZhdWx0TmFtZXNwYWNlKERPTVN0cmluZykgb24g
ZG9jdW1lbnQuY3JlYXRlRWxlCiAgICAgW25hdGl2ZSBjb2RlXQogfSIgZGlkIG5vdCB0aHJvdwog
UEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibm9zY3JpcHQiKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgImluc2VydEJlZm9yZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
KDQwKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9k
ZSkgb24gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibm9zY3JpcHQiKSB3aXRoIHRvbyBmZXcgYXJn
dW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAg
YXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CitGQUlMIE5vZGUgaW50ZXJmYWNlOiBj
YWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
Im5vc2NyaXB0Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBh
c3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAxIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24g
KCkgewogICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5k
RXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0
ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK30iIGRpZCBub3QgdGhyb3cKIFBBU1MgTm9kZSBp
bnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm5vc2NyaXB0IikgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJhcHBlbmRDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQxKSAKLUZBSUwg
Tm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgibm9zY3JpcHQiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cg
VHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9u
ICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJv
cjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBl
Y3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFj
ZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJu
b3NjcmlwdCIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQ
QVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJub3NjcmlwdCIpIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVwbGFjZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAo
NDIpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2Rl
KSBvbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJub3NjcmlwdCIpIHdpdGggdG9vIGZldyBhcmd1
bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBh
cmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiBk
aWQgbm90IHRocm93CitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChO
b2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm5vc2NyaXB0Iikgd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm5vc2NyaXB0IikgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJyZW1vdmVDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQzKSAKLUZBSUwgTm9kZSBpbnRl
cmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgibm9zY3JpcHQiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9y
IGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlv
biAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91
bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmpl
Y3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGlu
ZyByZW1vdmVDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJub3NjcmlwdCIp
IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIEV2ZW50
VGFyZ2V0IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibm9zY3JpcHQiKSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgImFkZEV2ZW50TGlzdGVuZXIiIHdpdGggdGhlIHByb3BlciB0eXBl
ICgwKSAKIEZBSUwgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBjYWxsaW5nIGFkZEV2ZW50TGlzdGVu
ZXIoRE9NU3RyaW5nLEV2ZW50TGlzdGVuZXIsYm9vbGVhbikgb24gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgibm9zY3JpcHQiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVy
cm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5j
dGlvbiAoKSB7CiAgICAgW25hdGl2ZSBjb2RlXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcAppbmRleCA4
Zjk2YzlmLi5iNDRjZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdp
bnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcApAQCAtODEsOSArODEsOSBA
QCBib29sIFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudDo6aW5zdGFsbFJlcGxhY2VtZW50KFNoYWRv
d1Jvb3QqIHJvb3QpCiB7CiAgICAgbV9lbWJlZFNoYWRvd0VsZW1lbnQgPSBZb3VUdWJlRW1iZWRT
aGFkb3dFbGVtZW50OjpjcmVhdGUobV9wYXJlbnRFbGVtZW50LT5kb2N1bWVudCgpKTsKIAotICAg
IHJvb3QtPmFwcGVuZENoaWxkKG1fZW1iZWRTaGFkb3dFbGVtZW50LmdldCgpKTsKKyAgICByb290
LT5hcHBlbmRDaGlsZCgqbV9lbWJlZFNoYWRvd0VsZW1lbnQpOwogCi0gICAgUmVmUHRyPEhUTUxJ
RnJhbWVFbGVtZW50PiBpZnJhbWVFbGVtZW50ID0gSFRNTElGcmFtZUVsZW1lbnQ6OmNyZWF0ZShI
VE1MTmFtZXM6OmlmcmFtZVRhZywgbV9wYXJlbnRFbGVtZW50LT5kb2N1bWVudCgpKTsKKyAgICBS
ZWY8SFRNTElGcmFtZUVsZW1lbnQ+IGlmcmFtZUVsZW1lbnQgPSBIVE1MSUZyYW1lRWxlbWVudDo6
Y3JlYXRlKEhUTUxOYW1lczo6aWZyYW1lVGFnLCBtX3BhcmVudEVsZW1lbnQtPmRvY3VtZW50KCkp
OwogICAgIGlmIChtX2F0dHJpYnV0ZXMuY29udGFpbnMoIndpZHRoIikpCiAgICAgICAgIGlmcmFt
ZUVsZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OndpZHRoQXR0ciwgQXRvbWljU3RyaW5n
KCIxMDAlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIApAQCAt
OTgsNyArOTgsNyBAQCBib29sIFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudDo6aW5zdGFsbFJlcGxh
Y2VtZW50KFNoYWRvd1Jvb3QqIHJvb3QpCiAgICAgCiAgICAgLy8gRGlzYWJsZSBmcmFtZSBmbGF0
dGVuaW5nIGZvciB0aGlzIGlmcmFtZS4KICAgICBpZnJhbWVFbGVtZW50LT5zZXRBdHRyaWJ1dGUo
SFRNTE5hbWVzOjpzY3JvbGxpbmdBdHRyLCBBdG9taWNTdHJpbmcoIm5vIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIG1fZW1iZWRTaGFkb3dFbGVtZW50LT5hcHBl
bmRDaGlsZChpZnJhbWVFbGVtZW50KTsKKyAgICBtX2VtYmVkU2hhZG93RWxlbWVudC0+YXBwZW5k
Q2hpbGQoV1RGOjptb3ZlKGlmcmFtZUVsZW1lbnQpKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0F0dHIuY3BwCmluZGV4IDE4NTcwZjEuLmFjN2I2NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9BdHRyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5jcHAKQEAg
LTEzOCwxMSArMTM4LDExIEBAIHZvaWQgQXR0cjo6c2V0Tm9kZVZhbHVlKGNvbnN0IFN0cmluZyYg
diwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgc2V0VmFsdWUodiwgZWMpOwogfQogCi1SZWZQdHI8
Tm9kZT4gQXR0cjo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBD
bG9uaW5nT3BlcmF0aW9uKQorUmVmPE5vZGU+IEF0dHI6OmNsb25lTm9kZUludGVybmFsKERvY3Vt
ZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikKIHsKLSAgICBSZWZQdHI8QXR0
cj4gY2xvbmUgPSBhZG9wdFJlZihuZXcgQXR0cih0YXJnZXREb2N1bWVudCwgcXVhbGlmaWVkTmFt
ZSgpLCB2YWx1ZSgpKSk7Ci0gICAgY2xvbmVDaGlsZE5vZGVzKGNsb25lLmdldCgpKTsKLSAgICBy
ZXR1cm4gY2xvbmUucmVsZWFzZSgpOworICAgIFJlZjxBdHRyPiBjbG9uZSA9IGFkb3B0UmVmKCpu
ZXcgQXR0cih0YXJnZXREb2N1bWVudCwgcXVhbGlmaWVkTmFtZSgpLCB2YWx1ZSgpKSk7CisgICAg
Y2xvbmVDaGlsZE5vZGVzKGNsb25lKTsKKyAgICByZXR1cm4gV1RGOjptb3ZlKGNsb25lKTsKIH0K
IAogLy8gRE9NIFNlY3Rpb24gMS4xLjEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9B
dHRyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5oCmluZGV4IGM3YTk0ZjkuLjEyNGM2ZDdh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9BdHRyLmgKQEAgLTgwLDcgKzgwLDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwg
U3RyaW5nIG5vZGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHZhbHVlKCk7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgc2V0Tm9kZVZhbHVlKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUm
KSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChE
b2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPE5v
ZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJp
ZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNBdHRyaWJ1dGVOb2RlKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFR5cGVBbGxvd2VkKE5vZGVU
eXBlKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DREFU
QVNlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NEQVRBU2VjdGlvbi5jcHAKaW5kZXgg
YzU5YmYxZS4uYWZkNzMyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NEQVRBU2Vj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NEQVRBU2VjdGlvbi5jcHAKQEAgLTQ2
LDcgKzQ2LDcgQEAgTm9kZTo6Tm9kZVR5cGUgQ0RBVEFTZWN0aW9uOjpub2RlVHlwZSgpIGNvbnN0
CiAgICAgcmV0dXJuIENEQVRBX1NFQ1RJT05fTk9ERTsKIH0KIAotUmVmUHRyPE5vZGU+IENEQVRB
U2VjdGlvbjo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9u
aW5nT3BlcmF0aW9uKQorUmVmPE5vZGU+IENEQVRBU2VjdGlvbjo6Y2xvbmVOb2RlSW50ZXJuYWwo
RG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uKQogewogICAgIHJldHVy
biBjcmVhdGUodGFyZ2V0RG9jdW1lbnQsIGRhdGEoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vQ0RBVEFTZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ0RBVEFTZWN0
aW9uLmgKaW5kZXggYmY1YTYxYy4uZDZiOTkzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0NEQVRBU2VjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DREFUQVNlY3Rpb24u
aApAQCAtMzYsNyArMzYsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBTdHJpbmcgbm9kZU5h
bWUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIE5vZGVUeXBlIG5vZGVUeXBlKCkgY29u
c3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZWZQdHI8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwo
RG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxO
b2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlKSBjb25zdCBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIFJlZjxUZXh0PiB2aXJ0dWFsQ3JlYXRlKGNvbnN0IFN0cmlu
ZyYpIG92ZXJyaWRlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21tZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21tZW50LmNwcAppbmRleCA0Yzc0YWFmLi40MTI1
YTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0NvbW1lbnQuY3BwCkBAIC00Niw3ICs0Niw3IEBAIE5vZGU6Ok5vZGVU
eXBlIENvbW1lbnQ6Om5vZGVUeXBlKCkgY29uc3QKICAgICByZXR1cm4gQ09NTUVOVF9OT0RFOwog
fQogCi1SZWZQdHI8Tm9kZT4gQ29tbWVudDo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRh
cmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uKQorUmVmPE5vZGU+IENvbW1lbnQ6OmNsb25l
Tm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikK
IHsKICAgICByZXR1cm4gY3JlYXRlKHRhcmdldERvY3VtZW50LCBkYXRhKCkpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9D
b21tZW50LmgKaW5kZXggZmNhYzYwYS4uMTU2NjMyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0NvbW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tbWVudC5oCkBAIC0z
Niw3ICszNiw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFN0cmluZyBub2RlTmFtZSgpIGNv
bnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgTm9kZVR5cGUgbm9kZVR5cGUoKSBjb25zdCBvdmVy
cmlkZTsKLSAgICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVu
dCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNs
b25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCBib29sIGNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUpIGNvbnN0IG92ZXJyaWRl
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCmluZGV4IGYwNjMxYjYuLjJj
M2I1ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKQEAgLTc2LDcgKzc2LDcg
QEAgc3RhdGljIHZvaWQgY29sbGVjdENoaWxkcmVuQW5kUmVtb3ZlRnJvbU9sZFBhcmVudChOb2Rl
JiBub2RlLCBOb2RlVmVjdG9yJiBub2RlcywKICAgICBpZiAoIWlzPERvY3VtZW50RnJhZ21lbnQ+
KG5vZGUpKSB7CiAgICAgICAgIG5vZGVzLmFwcGVuZChub2RlKTsKICAgICAgICAgaWYgKENvbnRh
aW5lck5vZGUqIG9sZFBhcmVudCA9IG5vZGUucGFyZW50Tm9kZSgpKQotICAgICAgICAgICAgb2xk
UGFyZW50LT5yZW1vdmVDaGlsZCgmbm9kZSwgZWMpOworICAgICAgICAgICAgb2xkUGFyZW50LT5y
ZW1vdmVDaGlsZChub2RlLCBlYyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE0Niwx
MyArMTQ2LDEzIEBAIENvbnRhaW5lck5vZGU6On5Db250YWluZXJOb2RlKCkKICAgICByZW1vdmVE
ZXRhY2hlZENoaWxkcmVuKCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBpc0NoaWxkVHlwZUFs
bG93ZWQoQ29udGFpbmVyTm9kZSogbmV3UGFyZW50LCBOb2RlKiBjaGlsZCkKK3N0YXRpYyBpbmxp
bmUgYm9vbCBpc0NoaWxkVHlwZUFsbG93ZWQoQ29udGFpbmVyTm9kZSYgbmV3UGFyZW50LCBOb2Rl
JiBjaGlsZCkKIHsKLSAgICBpZiAoIWNoaWxkLT5pc0RvY3VtZW50RnJhZ21lbnQoKSkKLSAgICAg
ICAgcmV0dXJuIG5ld1BhcmVudC0+Y2hpbGRUeXBlQWxsb3dlZChjaGlsZC0+bm9kZVR5cGUoKSk7
CisgICAgaWYgKCFjaGlsZC5pc0RvY3VtZW50RnJhZ21lbnQoKSkKKyAgICAgICAgcmV0dXJuIG5l
d1BhcmVudC5jaGlsZFR5cGVBbGxvd2VkKGNoaWxkLm5vZGVUeXBlKCkpOwogCi0gICAgZm9yIChO
b2RlKiBub2RlID0gY2hpbGQtPmZpcnN0Q2hpbGQoKTsgbm9kZTsgbm9kZSA9IG5vZGUtPm5leHRT
aWJsaW5nKCkpIHsKLSAgICAgICAgaWYgKCFuZXdQYXJlbnQtPmNoaWxkVHlwZUFsbG93ZWQobm9k
ZS0+bm9kZVR5cGUoKSkpCisgICAgZm9yIChOb2RlKiBub2RlID0gY2hpbGQuZmlyc3RDaGlsZCgp
OyBub2RlOyBub2RlID0gbm9kZS0+bmV4dFNpYmxpbmcoKSkgeworICAgICAgICBpZiAoIW5ld1Bh
cmVudC5jaGlsZFR5cGVBbGxvd2VkKG5vZGUtPm5vZGVUeXBlKCkpKQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE2OSwyMyArMTY5LDE5IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBpc0luVGVtcGxhdGVDb250ZW50KGNvbnN0IE5vZGUqIG5vZGUp
CiAjZW5kaWYKIH0KIAotc3RhdGljIGlubGluZSBib29sIGNvbnRhaW5zQ29uc2lkZXJpbmdIb3N0
RWxlbWVudHMoY29uc3QgTm9kZSogbmV3Q2hpbGQsIGNvbnN0IE5vZGUqIG5ld1BhcmVudCkKK3N0
YXRpYyBpbmxpbmUgYm9vbCBjb250YWluc0NvbnNpZGVyaW5nSG9zdEVsZW1lbnRzKGNvbnN0IE5v
ZGUmIG5ld0NoaWxkLCBjb25zdCBOb2RlJiBuZXdQYXJlbnQpCiB7Ci0gICAgcmV0dXJuIChuZXdQ
YXJlbnQtPmlzSW5TaGFkb3dUcmVlKCkgfHwgaXNJblRlbXBsYXRlQ29udGVudChuZXdQYXJlbnQp
KQotICAgICAgICA/IG5ld0NoaWxkLT5jb250YWluc0luY2x1ZGluZ0hvc3RFbGVtZW50cyhuZXdQ
YXJlbnQpCi0gICAgICAgIDogbmV3Q2hpbGQtPmNvbnRhaW5zKG5ld1BhcmVudCk7CisgICAgcmV0
dXJuIChuZXdQYXJlbnQuaXNJblNoYWRvd1RyZWUoKSB8fCBpc0luVGVtcGxhdGVDb250ZW50KCZu
ZXdQYXJlbnQpKQorICAgICAgICA/IG5ld0NoaWxkLmNvbnRhaW5zSW5jbHVkaW5nSG9zdEVsZW1l
bnRzKCZuZXdQYXJlbnQpCisgICAgICAgIDogbmV3Q2hpbGQuY29udGFpbnMoJm5ld1BhcmVudCk7
CiB9CiAKLXN0YXRpYyBpbmxpbmUgRXhjZXB0aW9uQ29kZSBjaGVja0FjY2VwdENoaWxkKENvbnRh
aW5lck5vZGUqIG5ld1BhcmVudCwgTm9kZSogbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkKQorc3Rh
dGljIGlubGluZSBFeGNlcHRpb25Db2RlIGNoZWNrQWNjZXB0Q2hpbGQoQ29udGFpbmVyTm9kZSYg
bmV3UGFyZW50LCBOb2RlJiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQpCiB7Ci0gICAgLy8gTm90
IG1lbnRpb25lZCBpbiBzcGVjOiB0aHJvdyBOT1RfRk9VTkRfRVJSIGlmIG5ld0NoaWxkIGlzIG51
bGwKLSAgICBpZiAoIW5ld0NoaWxkKQotICAgICAgICByZXR1cm4gTk9UX0ZPVU5EX0VSUjsKLQog
ICAgIC8vIFVzZSBjb21tb24gY2FzZSBmYXN0IHBhdGggaWYgcG9zc2libGUuCi0gICAgaWYgKChu
ZXdDaGlsZC0+aXNFbGVtZW50Tm9kZSgpIHx8IG5ld0NoaWxkLT5pc1RleHROb2RlKCkpICYmIG5l
d1BhcmVudC0+aXNFbGVtZW50Tm9kZSgpKSB7Ci0gICAgICAgIEFTU0VSVCghbmV3UGFyZW50LT5p
c1JlYWRPbmx5Tm9kZSgpKTsKLSAgICAgICAgQVNTRVJUKCFuZXdQYXJlbnQtPmlzRG9jdW1lbnRU
eXBlTm9kZSgpKTsKKyAgICBpZiAoKG5ld0NoaWxkLmlzRWxlbWVudE5vZGUoKSB8fCBuZXdDaGls
ZC5pc1RleHROb2RlKCkpICYmIG5ld1BhcmVudC5pc0VsZW1lbnROb2RlKCkpIHsKKyAgICAgICAg
QVNTRVJUKCFuZXdQYXJlbnQuaXNSZWFkT25seU5vZGUoKSk7CisgICAgICAgIEFTU0VSVCghbmV3
UGFyZW50LmlzRG9jdW1lbnRUeXBlTm9kZSgpKTsKICAgICAgICAgQVNTRVJUKGlzQ2hpbGRUeXBl
QWxsb3dlZChuZXdQYXJlbnQsIG5ld0NoaWxkKSk7CiAgICAgICAgIGlmIChjb250YWluc0NvbnNp
ZGVyaW5nSG9zdEVsZW1lbnRzKG5ld0NoaWxkLCBuZXdQYXJlbnQpKQogICAgICAgICAgICAgcmV0
dXJuIEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKQEAgLTE5MywxNyArMTg5LDE3IEBAIHN0YXRpYyBp
bmxpbmUgRXhjZXB0aW9uQ29kZSBjaGVja0FjY2VwdENoaWxkKENvbnRhaW5lck5vZGUqIG5ld1Bh
cmVudCwgTm9kZSogbmV3CiAgICAgfQogCiAgICAgLy8gVGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVu
LCBidXQgYWxzbyBwcm90ZWN0IHJlbGVhc2UgYnVpbGRzIGZyb20gdHJlZSBjb3JydXB0aW9uLgot
ICAgIEFTU0VSVCghbmV3Q2hpbGQtPmlzUHNldWRvRWxlbWVudCgpKTsKLSAgICBpZiAobmV3Q2hp
bGQtPmlzUHNldWRvRWxlbWVudCgpKQorICAgIEFTU0VSVCghbmV3Q2hpbGQuaXNQc2V1ZG9FbGVt
ZW50KCkpOworICAgIGlmIChuZXdDaGlsZC5pc1BzZXVkb0VsZW1lbnQoKSkKICAgICAgICAgcmV0
dXJuIEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKIAotICAgIGlmIChuZXdQYXJlbnQtPmlzUmVhZE9u
bHlOb2RlKCkpCisgICAgaWYgKG5ld1BhcmVudC5pc1JlYWRPbmx5Tm9kZSgpKQogICAgICAgICBy
ZXR1cm4gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOwogICAgIGlmIChjb250YWluc0NvbnNp
ZGVyaW5nSG9zdEVsZW1lbnRzKG5ld0NoaWxkLCBuZXdQYXJlbnQpKQogICAgICAgICByZXR1cm4g
SElFUkFSQ0hZX1JFUVVFU1RfRVJSOwogCi0gICAgaWYgKG9sZENoaWxkICYmIGlzPERvY3VtZW50
PigqbmV3UGFyZW50KSkgewotICAgICAgICBpZiAoIWRvd25jYXN0PERvY3VtZW50PigqbmV3UGFy
ZW50KS5jYW5SZXBsYWNlQ2hpbGQobmV3Q2hpbGQsIG9sZENoaWxkKSkKKyAgICBpZiAob2xkQ2hp
bGQgJiYgaXM8RG9jdW1lbnQ+KG5ld1BhcmVudCkpIHsKKyAgICAgICAgaWYgKCFkb3duY2FzdDxE
b2N1bWVudD4obmV3UGFyZW50KS5jYW5SZXBsYWNlQ2hpbGQobmV3Q2hpbGQsICpvbGRDaGlsZCkp
CiAgICAgICAgICAgICByZXR1cm4gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwogICAgIH0gZWxzZSBp
ZiAoIWlzQ2hpbGRUeXBlQWxsb3dlZChuZXdQYXJlbnQsIG5ld0NoaWxkKSkKICAgICAgICAgcmV0
dXJuIEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKQEAgLTIxMSwxMiArMjA3LDEyIEBAIHN0YXRpYyBp
bmxpbmUgRXhjZXB0aW9uQ29kZSBjaGVja0FjY2VwdENoaWxkKENvbnRhaW5lck5vZGUqIG5ld1Bh
cmVudCwgTm9kZSogbmV3CiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBj
aGVja0FjY2VwdENoaWxkR3VhcmFudGVlZE5vZGVUeXBlcyhDb250YWluZXJOb2RlKiBuZXdQYXJl
bnQsIE5vZGUqIG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKK3N0YXRpYyBpbmxpbmUgYm9v
bCBjaGVja0FjY2VwdENoaWxkR3VhcmFudGVlZE5vZGVUeXBlcyhDb250YWluZXJOb2RlJiBuZXdQ
YXJlbnQsIE5vZGUmIG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBBU1NFUlQo
IW5ld1BhcmVudC0+aXNSZWFkT25seU5vZGUoKSk7Ci0gICAgQVNTRVJUKCFuZXdQYXJlbnQtPmlz
RG9jdW1lbnRUeXBlTm9kZSgpKTsKKyAgICBBU1NFUlQoIW5ld1BhcmVudC5pc1JlYWRPbmx5Tm9k
ZSgpKTsKKyAgICBBU1NFUlQoIW5ld1BhcmVudC5pc0RvY3VtZW50VHlwZU5vZGUoKSk7CiAgICAg
QVNTRVJUKGlzQ2hpbGRUeXBlQWxsb3dlZChuZXdQYXJlbnQsIG5ld0NoaWxkKSk7Ci0gICAgaWYg
KG5ld0NoaWxkLT5jb250YWlucyhuZXdQYXJlbnQpKSB7CisgICAgaWYgKG5ld0NoaWxkLmNvbnRh
aW5zKCZuZXdQYXJlbnQpKSB7CiAgICAgICAgIGVjID0gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMjI0LDI1ICsyMjAsMjUgQEAgc3RhdGlj
IGlubGluZSBib29sIGNoZWNrQWNjZXB0Q2hpbGRHdWFyYW50ZWVkTm9kZVR5cGVzKENvbnRhaW5l
ck5vZGUqIG5ld1BhcmVudCwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGlubGluZSBi
b29sIGNoZWNrQWRkQ2hpbGQoQ29udGFpbmVyTm9kZSogbmV3UGFyZW50LCBOb2RlKiBuZXdDaGls
ZCwgRXhjZXB0aW9uQ29kZSYgZWMpCitzdGF0aWMgaW5saW5lIGJvb2wgY2hlY2tBZGRDaGlsZChD
b250YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5vZGUmIG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBl
YykKIHsKLSAgICBlYyA9IGNoZWNrQWNjZXB0Q2hpbGQobmV3UGFyZW50LCBuZXdDaGlsZCwgMCk7
CisgICAgZWMgPSBjaGVja0FjY2VwdENoaWxkKG5ld1BhcmVudCwgbmV3Q2hpbGQsIG51bGxwdHIp
OwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBjaGVja1JlcGxhY2VDaGlsZChDb250YWluZXJOb2Rl
KiBuZXdQYXJlbnQsIE5vZGUqIG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29k
ZSYgZWMpCitzdGF0aWMgaW5saW5lIGJvb2wgY2hlY2tSZXBsYWNlQ2hpbGQoQ29udGFpbmVyTm9k
ZSYgbmV3UGFyZW50LCBOb2RlJiBuZXdDaGlsZCwgTm9kZSYgb2xkQ2hpbGQsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogewotICAgIGVjID0gY2hlY2tBY2NlcHRDaGlsZChuZXdQYXJlbnQsIG5ld0NoaWxk
LCBvbGRDaGlsZCk7CisgICAgZWMgPSBjaGVja0FjY2VwdENoaWxkKG5ld1BhcmVudCwgbmV3Q2hp
bGQsICZvbGRDaGlsZCk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBDb250YWluZXJOb2RlOjppbnNlcnRCZWZvcmUoUGFz
c1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVj
KQorYm9vbCBDb250YWluZXJOb2RlOjppbnNlcnRCZWZvcmUoUmVmPE5vZGU+JiYgbmV3Q2hpbGQs
IE5vZGUqIHJlZkNoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICAvLyBDaGVjayB0aGF0
IHRoaXMgbm9kZSBpcyBub3QgImZsb2F0aW5nIi4KICAgICAvLyBJZiBpdCBpcywgaXQgY2FuIGJl
IGRlbGV0ZWQgYXMgYSBzaWRlIGVmZmVjdCBvZiBzZW5kaW5nIG11dGF0aW9uIGV2ZW50cy4KQEAg
LTI1NCwxMCArMjUwLDEwIEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6aW5zZXJ0QmVmb3JlKFBhc3NS
ZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIHJlZkNoaWxkLCBFeGNlCiAKICAgICAvLyBpbnNl
cnRCZWZvcmUobm9kZSwgMCkgaXMgZXF1aXZhbGVudCB0byBhcHBlbmRDaGlsZChub2RlKQogICAg
IGlmICghcmVmQ2hpbGQpCi0gICAgICAgIHJldHVybiBhcHBlbmRDaGlsZChuZXdDaGlsZCwgZWMp
OworICAgICAgICByZXR1cm4gYXBwZW5kQ2hpbGQoV1RGOjptb3ZlKG5ld0NoaWxkKSwgZWMpOwog
CiAgICAgLy8gTWFrZSBzdXJlIGFkZGluZyB0aGUgbmV3IGNoaWxkIGlzIE9LLgotICAgIGlmICgh
Y2hlY2tBZGRDaGlsZCh0aGlzLCBuZXdDaGlsZC5nZXQoKSwgZWMpKQorICAgIGlmICghY2hlY2tB
ZGRDaGlsZCgqdGhpcywgbmV3Q2hpbGQsIGVjKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgLy8gTk9UX0ZPVU5EX0VSUjogUmFpc2VkIGlmIHJlZkNoaWxkIGlzIG5vdCBhIGNoaWxkIG9m
IHRoaXMgbm9kZQpAQCAtMjY2LDIwICsyNjIsMjAgQEAgYm9vbCBDb250YWluZXJOb2RlOjppbnNl
cnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hpbGQsIEV4Y2UK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIGlmIChyZWZDaGlsZC0+cHJldmlv
dXNTaWJsaW5nKCkgPT0gbmV3Q2hpbGQgfHwgcmVmQ2hpbGQgPT0gbmV3Q2hpbGQpIC8vIG5vdGhp
bmcgdG8gZG8KKyAgICBpZiAocmVmQ2hpbGQtPnByZXZpb3VzU2libGluZygpID09IG5ld0NoaWxk
LnB0cigpIHx8IHJlZkNoaWxkID09IG5ld0NoaWxkLnB0cigpKSAvLyBub3RoaW5nIHRvIGRvCiAg
ICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgUmVmPE5vZGU+IG5leHQoKnJlZkNoaWxkKTsKIAog
ICAgIE5vZGVWZWN0b3IgdGFyZ2V0czsKLSAgICBjb2xsZWN0Q2hpbGRyZW5BbmRSZW1vdmVGcm9t
T2xkUGFyZW50KCpuZXdDaGlsZC5nZXQoKSwgdGFyZ2V0cywgZWMpOworICAgIGNvbGxlY3RDaGls
ZHJlbkFuZFJlbW92ZUZyb21PbGRQYXJlbnQobmV3Q2hpbGQsIHRhcmdldHMsIGVjKTsKICAgICBp
ZiAoZWMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAodGFyZ2V0cy5pc0VtcHR5KCkp
CiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgLy8gV2UgbmVlZCB0aGlzIGV4dHJhIGNoZWNr
IGJlY2F1c2UgY29sbGVjdENoaWxkcmVuQW5kUmVtb3ZlRnJvbU9sZFBhcmVudCgpIGNhbiBmaXJl
IG11dGF0aW9uIGV2ZW50cy4KLSAgICBpZiAoIWNoZWNrQWNjZXB0Q2hpbGRHdWFyYW50ZWVkTm9k
ZVR5cGVzKHRoaXMsIG5ld0NoaWxkLmdldCgpLCBlYykpCisgICAgaWYgKCFjaGVja0FjY2VwdENo
aWxkR3VhcmFudGVlZE5vZGVUeXBlcygqdGhpcywgbmV3Q2hpbGQsIGVjKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsSW5zZXJ0RE9N
Tm9kZShkb2N1bWVudCgpLCAqdGhpcyk7CkBAIC0zOTAsNyArMzg2LDcgQEAgdm9pZCBDb250YWlu
ZXJOb2RlOjpwYXJzZXJJbnNlcnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9k
ZSogbmV4dENoaWwKICAgICBuZXdDaGlsZC0+c2V0TmVlZHNTdHlsZVJlY2FsYyhSZWNvbnN0cnVj
dFJlbmRlclRyZWUpOwogfQogCi1ib29sIENvbnRhaW5lck5vZGU6OnJlcGxhY2VDaGlsZChQYXNz
UmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMp
Citib29sIENvbnRhaW5lck5vZGU6OnJlcGxhY2VDaGlsZChSZWY8Tm9kZT4mJiBuZXdDaGlsZCwg
Tm9kZSYgb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIC8vIENoZWNrIHRoYXQg
dGhpcyBub2RlIGlzIG5vdCAiZmxvYXRpbmciLgogICAgIC8vIElmIGl0IGlzLCBpdCBjYW4gYmUg
ZGVsZXRlZCBhcyBhIHNpZGUgZWZmZWN0IG9mIHNlbmRpbmcgbXV0YXRpb24gZXZlbnRzLgpAQCAt
NDAwLDQ4ICszOTYsNDMgQEAgYm9vbCBDb250YWluZXJOb2RlOjpyZXBsYWNlQ2hpbGQoUGFzc1Jl
ZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2UKIAogICAgIGVjID0gMDsK
IAotICAgIGlmIChvbGRDaGlsZCA9PSBuZXdDaGlsZCkgLy8gbm90aGluZyB0byBkbworICAgIGlm
ICgmb2xkQ2hpbGQgPT0gbmV3Q2hpbGQucHRyKCkpIC8vIG5vdGhpbmcgdG8gZG8KICAgICAgICAg
cmV0dXJuIHRydWU7CiAKLSAgICBpZiAoIW9sZENoaWxkKSB7Ci0gICAgICAgIGVjID0gTk9UX0ZP
VU5EX0VSUjsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQogICAgIC8vIE1ha2Ugc3Vy
ZSByZXBsYWNpbmcgdGhlIG9sZCBjaGlsZCB3aXRoIHRoZSBuZXcgaXMgb2sKLSAgICBpZiAoIWNo
ZWNrUmVwbGFjZUNoaWxkKHRoaXMsIG5ld0NoaWxkLmdldCgpLCBvbGRDaGlsZCwgZWMpKQorICAg
IGlmICghY2hlY2tSZXBsYWNlQ2hpbGQoKnRoaXMsIG5ld0NoaWxkLCBvbGRDaGlsZCwgZWMpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBOT1RfRk9VTkRfRVJSOiBSYWlzZWQgaWYg
b2xkQ2hpbGQgaXMgbm90IGEgY2hpbGQgb2YgdGhpcyBub2RlLgotICAgIGlmIChvbGRDaGlsZC0+
cGFyZW50Tm9kZSgpICE9IHRoaXMpIHsKKyAgICBpZiAob2xkQ2hpbGQucGFyZW50Tm9kZSgpICE9
IHRoaXMpIHsKICAgICAgICAgZWMgPSBOT1RfRk9VTkRfRVJSOwogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQogCiAgICAgQ2hpbGRMaXN0TXV0YXRpb25TY29wZSBtdXRhdGlvbigqdGhpcyk7
CiAKLSAgICBSZWZQdHI8Tm9kZT4gbmV4dCA9IG9sZENoaWxkLT5uZXh0U2libGluZygpOworICAg
IFJlZlB0cjxOb2RlPiBuZXh0ID0gb2xkQ2hpbGQubmV4dFNpYmxpbmcoKTsKIAogICAgIC8vIFJl
bW92ZSB0aGUgbm9kZSB3ZSdyZSByZXBsYWNpbmcKLSAgICBSZWY8Tm9kZT4gcmVtb3ZlZENoaWxk
KCpvbGRDaGlsZCk7CisgICAgUmVmPE5vZGU+IHJlbW92ZWRDaGlsZChvbGRDaGlsZCk7CiAgICAg
cmVtb3ZlQ2hpbGQob2xkQ2hpbGQsIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIGlmIChuZXh0ICYmIChuZXh0LT5wcmV2aW91c1NpYmxpbmcoKSA9PSBuZXdD
aGlsZCB8fCBuZXh0ID09IG5ld0NoaWxkKSkgLy8gbm90aGluZyB0byBkbworICAgIGlmIChuZXh0
ICYmIChuZXh0LT5wcmV2aW91c1NpYmxpbmcoKSA9PSBuZXdDaGlsZC5wdHIoKSB8fCBuZXh0ID09
IG5ld0NoaWxkLnB0cigpKSkgLy8gbm90aGluZyB0byBkbwogICAgICAgICByZXR1cm4gdHJ1ZTsK
IAogICAgIC8vIERvZXMgdGhpcyBvbmUgbW9yZSB0aW1lIGJlY2F1c2UgcmVtb3ZlQ2hpbGQoKSBm
aXJlcyBhIE11dGF0aW9uRXZlbnQuCi0gICAgaWYgKCFjaGVja1JlcGxhY2VDaGlsZCh0aGlzLCBu
ZXdDaGlsZC5nZXQoKSwgb2xkQ2hpbGQsIGVjKSkKKyAgICBpZiAoIWNoZWNrUmVwbGFjZUNoaWxk
KCp0aGlzLCBuZXdDaGlsZCwgb2xkQ2hpbGQsIGVjKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgTm9kZVZlY3RvciB0YXJnZXRzOwotICAgIGNvbGxlY3RDaGlsZHJlbkFuZFJlbW92ZUZy
b21PbGRQYXJlbnQoKm5ld0NoaWxkLmdldCgpLCB0YXJnZXRzLCBlYyk7CisgICAgY29sbGVjdENo
aWxkcmVuQW5kUmVtb3ZlRnJvbU9sZFBhcmVudChuZXdDaGlsZCwgdGFyZ2V0cywgZWMpOwogICAg
IGlmIChlYykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gRG9lcyB0aGlzIHlldCBh
bm90aGVyIGNoZWNrIGJlY2F1c2UgY29sbGVjdENoaWxkcmVuQW5kUmVtb3ZlRnJvbU9sZFBhcmVu
dCgpIGZpcmVzIGEgTXV0YXRpb25FdmVudC4KLSAgICBpZiAoIWNoZWNrUmVwbGFjZUNoaWxkKHRo
aXMsIG5ld0NoaWxkLmdldCgpLCBvbGRDaGlsZCwgZWMpKQorICAgIGlmICghY2hlY2tSZXBsYWNl
Q2hpbGQoKnRoaXMsIG5ld0NoaWxkLCBvbGRDaGlsZCwgZWMpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxJbnNlcnRET01Ob2RlKGRv
Y3VtZW50KCksICp0aGlzKTsKQEAgLTUxNSw3ICs1MDYsNyBAQCB2b2lkIENvbnRhaW5lck5vZGU6
OmRpc2Nvbm5lY3REZXNjZW5kYW50RnJhbWVzKCkKICAgICBkaXNjb25uZWN0U3ViZnJhbWVzSWZO
ZWVkZWQoKnRoaXMsIFJvb3RBbmREZXNjZW5kYW50cyk7CiB9CiAKLWJvb2wgQ29udGFpbmVyTm9k
ZTo6cmVtb3ZlQ2hpbGQoTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQorYm9vbCBD
b250YWluZXJOb2RlOjpyZW1vdmVDaGlsZChOb2RlJiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiB7CiAgICAgLy8gQ2hlY2sgdGhhdCB0aGlzIG5vZGUgaXMgbm90ICJmbG9hdGluZyIuCiAg
ICAgLy8gSWYgaXQgaXMsIGl0IGNhbiBiZSBkZWxldGVkIGFzIGEgc2lkZSBlZmZlY3Qgb2Ygc2Vu
ZGluZyBtdXRhdGlvbiBldmVudHMuCkBAIC01MzIsMTIgKzUyMywxMiBAQCBib29sIENvbnRhaW5l
ck5vZGU6OnJlbW92ZUNoaWxkKE5vZGUqIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKICAg
ICB9CiAKICAgICAvLyBOT1RfRk9VTkRfRVJSOiBSYWlzZWQgaWYgb2xkQ2hpbGQgaXMgbm90IGEg
Y2hpbGQgb2YgdGhpcyBub2RlLgotICAgIGlmICghb2xkQ2hpbGQgfHwgb2xkQ2hpbGQtPnBhcmVu
dE5vZGUoKSAhPSB0aGlzKSB7CisgICAgaWYgKG9sZENoaWxkLnBhcmVudE5vZGUoKSAhPSB0aGlz
KSB7CiAgICAgICAgIGVjID0gTk9UX0ZPVU5EX0VSUjsKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KIAotICAgIFJlZjxOb2RlPiBjaGlsZCgqb2xkQ2hpbGQpOworICAgIFJlZjxOb2RlPiBj
aGlsZChvbGRDaGlsZCk7CiAKICAgICBkb2N1bWVudCgpLnJlbW92ZUZvY3VzZWROb2RlT2ZTdWJ0
cmVlKGNoaWxkLnB0cigpKTsKIApAQCAtNjcwLDcgKzY2MSw3IEBAIHZvaWQgQ29udGFpbmVyTm9k
ZTo6cmVtb3ZlQ2hpbGRyZW4oKQogICAgIGRpc3BhdGNoU3VidHJlZU1vZGlmaWVkRXZlbnQoKTsK
IH0KIAotYm9vbCBDb250YWluZXJOb2RlOjphcHBlbmRDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5l
d0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKK2Jvb2wgQ29udGFpbmVyTm9kZTo6YXBwZW5kQ2hp
bGQoUmVmPE5vZGU+JiYgbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIFJlZjxD
b250YWluZXJOb2RlPiBwcm90ZWN0KCp0aGlzKTsKIApAQCAtNjgxLDE0ICs2NzIsMTQgQEAgYm9v
bCBDb250YWluZXJOb2RlOjphcHBlbmRDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBF
eGNlcHRpb25Db2RlJiBlYykKICAgICBlYyA9IDA7CiAKICAgICAvLyBNYWtlIHN1cmUgYWRkaW5n
IHRoZSBuZXcgY2hpbGQgaXMgb2sKLSAgICBpZiAoIWNoZWNrQWRkQ2hpbGQodGhpcywgbmV3Q2hp
bGQuZ2V0KCksIGVjKSkKKyAgICBpZiAoIWNoZWNrQWRkQ2hpbGQoKnRoaXMsIG5ld0NoaWxkLCBl
YykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChuZXdDaGlsZCA9PSBtX2xhc3RD
aGlsZCkgLy8gbm90aGluZyB0byBkbwotICAgICAgICByZXR1cm4gbmV3Q2hpbGQ7CisgICAgaWYg
KG5ld0NoaWxkLnB0cigpID09IG1fbGFzdENoaWxkKSAvLyBub3RoaW5nIHRvIGRvCisgICAgICAg
IHJldHVybiB0cnVlOwogCiAgICAgTm9kZVZlY3RvciB0YXJnZXRzOwotICAgIGNvbGxlY3RDaGls
ZHJlbkFuZFJlbW92ZUZyb21PbGRQYXJlbnQoKm5ld0NoaWxkLmdldCgpLCB0YXJnZXRzLCBlYyk7
CisgICAgY29sbGVjdENoaWxkcmVuQW5kUmVtb3ZlRnJvbU9sZFBhcmVudChuZXdDaGlsZCwgdGFy
Z2V0cywgZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC02OTYs
NyArNjg3LDcgQEAgYm9vbCBDb250YWluZXJOb2RlOjphcHBlbmRDaGlsZChQYXNzUmVmUHRyPE5v
ZGU+IG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgcmV0dXJuIHRydWU7CiAK
ICAgICAvLyBXZSBuZWVkIHRoaXMgZXh0cmEgY2hlY2sgYmVjYXVzZSBjb2xsZWN0Q2hpbGRyZW5B
bmRSZW1vdmVGcm9tT2xkUGFyZW50KCkgY2FuIGZpcmUgbXV0YXRpb24gZXZlbnRzLgotICAgIGlm
ICghY2hlY2tBY2NlcHRDaGlsZEd1YXJhbnRlZWROb2RlVHlwZXModGhpcywgbmV3Q2hpbGQuZ2V0
KCksIGVjKSkKKyAgICBpZiAoIWNoZWNrQWNjZXB0Q2hpbGRHdWFyYW50ZWVkTm9kZVR5cGVzKCp0
aGlzLCBuZXdDaGlsZCwgZWMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OndpbGxJbnNlcnRET01Ob2RlKGRvY3VtZW50KCksICp0aGlzKTsK
QEAgLTc1OSwxNiArNzUwLDE2IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6Y2hpbGRyZW5DaGFuZ2Vk
KGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2UpCiAgICAgaW52YWxpZGF0ZU5vZGVMaXN0QW5kQ29s
bGVjdGlvbkNhY2hlc0luQW5jZXN0b3JzKCk7CiB9CiAKLXZvaWQgQ29udGFpbmVyTm9kZTo6Y2xv
bmVDaGlsZE5vZGVzKENvbnRhaW5lck5vZGUqIGNsb25lKQordm9pZCBDb250YWluZXJOb2RlOjpj
bG9uZUNoaWxkTm9kZXMoQ29udGFpbmVyTm9kZSYgY2xvbmUpCiB7CiAgICAgRXhjZXB0aW9uQ29k
ZSBlYyA9IDA7Ci0gICAgRG9jdW1lbnQmIHRhcmdldERvY3VtZW50ID0gY2xvbmUtPmRvY3VtZW50
KCk7CisgICAgRG9jdW1lbnQmIHRhcmdldERvY3VtZW50ID0gY2xvbmUuZG9jdW1lbnQoKTsKICAg
ICBmb3IgKE5vZGUqIGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZCAmJiAhZWM7IGNoaWxkID0g
Y2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKLSAgICAgICAgUmVmUHRyPE5vZGU+IGNsb25lZENoaWxk
ID0gY2hpbGQtPmNsb25lTm9kZUludGVybmFsKHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0
aW9uOjpTZWxmV2l0aFRlbXBsYXRlQ29udGVudCk7Ci0gICAgICAgIGNsb25lLT5hcHBlbmRDaGls
ZChjbG9uZWRDaGlsZCwgZWMpOworICAgICAgICBSZWY8Tm9kZT4gY2xvbmVkQ2hpbGQgPSBjaGls
ZC0+Y2xvbmVOb2RlSW50ZXJuYWwodGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb246OlNl
bGZXaXRoVGVtcGxhdGVDb250ZW50KTsKKyAgICAgICAgY2xvbmUuYXBwZW5kQ2hpbGQoY2xvbmVk
Q2hpbGQuY29weVJlZigpLCBlYyk7CiAKLSAgICAgICAgaWYgKCFlYyAmJiBpczxDb250YWluZXJO
b2RlPihjaGlsZCkpCi0gICAgICAgICAgICBkb3duY2FzdDxDb250YWluZXJOb2RlPihjaGlsZCkt
PmNsb25lQ2hpbGROb2Rlcyhkb3duY2FzdDxDb250YWluZXJOb2RlPihjbG9uZWRDaGlsZC5nZXQo
KSkpOworICAgICAgICBpZiAoIWVjICYmIGlzPENvbnRhaW5lck5vZGU+KCpjaGlsZCkpCisgICAg
ICAgICAgICBkb3duY2FzdDxDb250YWluZXJOb2RlPigqY2hpbGQpLmNsb25lQ2hpbGROb2Rlcyhk
b3duY2FzdDxDb250YWluZXJOb2RlPihjbG9uZWRDaGlsZC5nZXQoKSkpOwogICAgIH0KIH0KIApA
QCAtOTQ3LDcgKzkzOCw3IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6YXBwZW5kKFZlY3RvcjxOb2Rl
T3JTdHJpbmc+JiYgbm9kZU9yU3RyaW5nVmVjdG9yLCBFeGNlcHRpb25DCiAgICAgaWYgKGVjIHx8
ICFub2RlKQogICAgICAgICByZXR1cm47CiAKLSAgICBhcHBlbmRDaGlsZChub2RlLnJlbGVhc2Uo
KSwgZWMpOworICAgIGFwcGVuZENoaWxkKG5vZGUucmVsZWFzZU5vbk51bGwoKSwgZWMpOwogfQog
CiB2b2lkIENvbnRhaW5lck5vZGU6OnByZXBlbmQoVmVjdG9yPE5vZGVPclN0cmluZz4mJiBub2Rl
T3JTdHJpbmdWZWN0b3IsIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtOTU2LDcgKzk0Nyw3IEBAIHZv
aWQgQ29udGFpbmVyTm9kZTo6cHJlcGVuZChWZWN0b3I8Tm9kZU9yU3RyaW5nPiYmIG5vZGVPclN0
cmluZ1ZlY3RvciwgRXhjZXB0aW9uCiAgICAgaWYgKGVjIHx8ICFub2RlKQogICAgICAgICByZXR1
cm47CiAKLSAgICBpbnNlcnRCZWZvcmUobm9kZS5yZWxlYXNlKCksIGZpcnN0Q2hpbGQoKSwgZWMp
OworICAgIGluc2VydEJlZm9yZShub2RlLnJlbGVhc2VOb25OdWxsKCksIGZpcnN0Q2hpbGQoKSwg
ZWMpOwogfQogCiBIVE1MQ29sbGVjdGlvbiogQ29udGFpbmVyTm9kZTo6Y2FjaGVkSFRNTENvbGxl
Y3Rpb24oQ29sbGVjdGlvblR5cGUgdHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Db250YWluZXJOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5oCmlu
ZGV4IDA0NTI0MDAuLmE2YjEwYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250
YWluZXJOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaApAQCAt
MTAyLDEwICsxMDIsMTAgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHVuc2lnbmVkIGNv
dW50Q2hpbGROb2RlcygpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIE5vZGUqIHRyYXZlcnNl
VG9DaGlsZEF0KHVuc2lnbmVkKSBjb25zdDsKIAotICAgIGJvb2wgaW5zZXJ0QmVmb3JlKFBhc3NS
ZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIHJlZkNoaWxkLCBFeGNlcHRpb25Db2RlJiA9IEFT
U0VSVF9OT19FWENFUFRJT04pOwotICAgIGJvb2wgcmVwbGFjZUNoaWxkKFBhc3NSZWZQdHI8Tm9k
ZT4gbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiA9IEFTU0VSVF9OT19F
WENFUFRJT04pOwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgcmVtb3ZlQ2hpbGQoTm9kZSogY2hp
bGQsIEV4Y2VwdGlvbkNvZGUmID0gQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBhcHBlbmRDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBFeGNlcHRp
b25Db2RlJiA9IEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIGJvb2wgaW5zZXJ0QmVmb3JlKFJl
ZjxOb2RlPiYmIG5ld0NoaWxkLCBOb2RlKiByZWZDaGlsZCwgRXhjZXB0aW9uQ29kZSYgPSBBU1NF
UlRfTk9fRVhDRVBUSU9OKTsKKyAgICBib29sIHJlcGxhY2VDaGlsZChSZWY8Tm9kZT4mJiBuZXdD
aGlsZCwgTm9kZSYgb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmID0gQVNTRVJUX05PX0VYQ0VQVElP
Tik7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCByZW1vdmVDaGlsZChOb2RlJiBjaGlsZCwgRXhj
ZXB0aW9uQ29kZSYgPSBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBi
b29sIGFwcGVuZENoaWxkKFJlZjxOb2RlPiYmIG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiA9IEFT
U0VSVF9OT19FWENFUFRJT04pOwogCiAgICAgLy8gVGhlc2UgbWV0aG9kcyBhcmUgb25seSB1c2Vk
IGR1cmluZyBwYXJzaW5nLgogICAgIC8vIFRoZXkgZG9uJ3Qgc2VuZCBET00gbXV0YXRpb24gZXZl
bnRzIG9yIGhhbmRsZSByZXBhcmVudGluZy4KQEAgLTExNyw3ICsxMTcsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCByZW1vdmVDaGlsZHJlbigpOwogICAgIHZvaWQgdGFrZUFsbENoaWxkcmVuRnJvbShD
b250YWluZXJOb2RlKik7CiAKLSAgICB2b2lkIGNsb25lQ2hpbGROb2RlcyhDb250YWluZXJOb2Rl
KiBjbG9uZSk7CisgICAgdm9pZCBjbG9uZUNoaWxkTm9kZXMoQ29udGFpbmVyTm9kZSYgY2xvbmUp
OwogCiAgICAgZW51bSBDaGlsZENoYW5nZVR5cGUgeyBFbGVtZW50SW5zZXJ0ZWQsIEVsZW1lbnRS
ZW1vdmVkLCBUZXh0SW5zZXJ0ZWQsIFRleHRSZW1vdmVkLCBUZXh0Q2hhbmdlZCwgQWxsQ2hpbGRy
ZW5SZW1vdmVkLCBOb25Db250ZW50c0NoaWxkQ2hhbmdlZCB9OwogICAgIGVudW0gQ2hpbGRDaGFu
Z2VTb3VyY2UgeyBDaGlsZENoYW5nZVNvdXJjZVBhcnNlciwgQ2hpbGRDaGFuZ2VTb3VyY2VBUEkg
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCmluZGV4IGE0YTNmOGQu
LjYzM2QyOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcApAQCAt
MjMxLDkgKzIzMSw5IEBAIFJlZlB0cjxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0
ZURvY3VtZW50KGNvbnN0IFN0cmluZyYgbmFtZXNwYWNlVVJJLAogICAgIH0KIAogICAgIGlmIChk
b2N0eXBlKQotICAgICAgICBkb2MtPmFwcGVuZENoaWxkKGRvY3R5cGUpOworICAgICAgICBkb2Mt
PmFwcGVuZENoaWxkKCpkb2N0eXBlKTsKICAgICBpZiAoZG9jdW1lbnRFbGVtZW50KQotICAgICAg
ICBkb2MtPmFwcGVuZENoaWxkKGRvY3VtZW50RWxlbWVudC5yZWxlYXNlKCkpOworICAgICAgICBk
b2MtPmFwcGVuZENoaWxkKGRvY3VtZW50RWxlbWVudC5yZWxlYXNlTm9uTnVsbCgpKTsKIAogICAg
IHJldHVybiBkb2M7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBjMDk0MWQyLi42MDMx
MmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTEwMDksNyArMTAwOSw3IEBAIFJlZlB0
cjxOb2RlPiBEb2N1bWVudDo6YWRvcHROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gc291cmNlLCBFeGNl
cHRpb25Db2RlJiBlYykKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBpZiAoc291
cmNlLT5wYXJlbnROb2RlKCkpIHsKLSAgICAgICAgICAgIHNvdXJjZS0+cGFyZW50Tm9kZSgpLT5y
ZW1vdmVDaGlsZChzb3VyY2UuZ2V0KCksIGVjKTsKKyAgICAgICAgICAgIHNvdXJjZS0+cGFyZW50
Tm9kZSgpLT5yZW1vdmVDaGlsZCgqc291cmNlLCBlYyk7CiAgICAgICAgICAgICBpZiAoZWMpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIH0KQEAgLTE1MzcsNyArMTUz
Nyw3IEBAIHZvaWQgRG9jdW1lbnQ6OnNldFRpdGxlKGNvbnN0IFN0cmluZyYgdGl0bGUpCiAgICAg
ZWxzZSBpZiAoIW1fdGl0bGVFbGVtZW50KSB7CiAgICAgICAgIGlmIChIVE1MRWxlbWVudCogaGVh
ZEVsZW1lbnQgPSBoZWFkKCkpIHsKICAgICAgICAgICAgIG1fdGl0bGVFbGVtZW50ID0gY3JlYXRl
RWxlbWVudCh0aXRsZVRhZywgZmFsc2UpOwotICAgICAgICAgICAgaGVhZEVsZW1lbnQtPmFwcGVu
ZENoaWxkKG1fdGl0bGVFbGVtZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgICAg
IGhlYWRFbGVtZW50LT5hcHBlbmRDaGlsZCgqbV90aXRsZUVsZW1lbnQsIEFTU0VSVF9OT19FWENF
UFRJT04pOwogICAgICAgICB9CiAgICAgfQogCkBAIC0yNTA5LDExICsyNTA5LDEwIEBAIHZvaWQg
RG9jdW1lbnQ6OnNldEJvZHlPckZyYW1lc2V0KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IHBycE5l
d0JvZHksIEV4Y2VwdGlvbkNvCiAgICAgICAgIG5ld0JvZHkgPSBkb3duY2FzdDxIVE1MRWxlbWVu
dD4obm9kZS5nZXQoKSk7CiAgICAgfQogCi0gICAgSFRNTEVsZW1lbnQqIGIgPSBib2R5T3JGcmFt
ZXNldCgpOwotICAgIGlmICghYikKLSAgICAgICAgZG9jdW1lbnRFbGVtZW50KCktPmFwcGVuZENo
aWxkKG5ld0JvZHkucmVsZWFzZSgpLCBlYyk7CisgICAgaWYgKGF1dG8qIGJvZHkgPSBib2R5T3JG
cmFtZXNldCgpKQorICAgICAgICBkb2N1bWVudEVsZW1lbnQoKS0+cmVwbGFjZUNoaWxkKG5ld0Jv
ZHkucmVsZWFzZU5vbk51bGwoKSwgKmJvZHksIGVjKTsKICAgICBlbHNlCi0gICAgICAgIGRvY3Vt
ZW50RWxlbWVudCgpLT5yZXBsYWNlQ2hpbGQobmV3Qm9keS5yZWxlYXNlKCksIGIsIGVjKTsKKyAg
ICAgICAgZG9jdW1lbnRFbGVtZW50KCktPmFwcGVuZENoaWxkKG5ld0JvZHkucmVsZWFzZU5vbk51
bGwoKSwgZWMpOwogfQogCiBIVE1MSGVhZEVsZW1lbnQqIERvY3VtZW50OjpoZWFkKCkKQEAgLTMz
MTcsMTMgKzMzMTYsOSBAQCBib29sIERvY3VtZW50OjpjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBl
IHR5cGUpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIERvY3VtZW50OjpjYW5S
ZXBsYWNlQ2hpbGQoTm9kZSogbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkKQorYm9vbCBEb2N1bWVu
dDo6Y2FuUmVwbGFjZUNoaWxkKE5vZGUmIG5ld0NoaWxkLCBOb2RlJiBvbGRDaGlsZCkKIHsKLSAg
ICBpZiAoIW9sZENoaWxkKQotICAgICAgICAvLyBDb250YWluZXJOb2RlOjpyZXBsYWNlQ2hpbGQg
d2lsbCByYWlzZSBhIE5PVF9GT1VORF9FUlIuCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAg
aWYgKG9sZENoaWxkLT5ub2RlVHlwZSgpID09IG5ld0NoaWxkLT5ub2RlVHlwZSgpKQorICAgIGlm
IChvbGRDaGlsZC5ub2RlVHlwZSgpID09IG5ld0NoaWxkLm5vZGVUeXBlKCkpCiAgICAgICAgIHJl
dHVybiB0cnVlOwogCiAgICAgaW50IG51bURvY3R5cGVzID0gMDsKQEAgLTMzMzIsNyArMzMyNyw3
IEBAIGJvb2wgRG9jdW1lbnQ6OmNhblJlcGxhY2VDaGlsZChOb2RlKiBuZXdDaGlsZCwgTm9kZSog
b2xkQ2hpbGQpCiAgICAgLy8gRmlyc3QsIGNoZWNrIGhvdyBtYW55IGRvY3R5cGVzIGFuZCBlbGVt
ZW50cyB3ZSBoYXZlLCBub3QgY291bnRpbmcKICAgICAvLyB0aGUgY2hpbGQgd2UncmUgYWJvdXQg
dG8gcmVtb3ZlLgogICAgIGZvciAoTm9kZSogYyA9IGZpcnN0Q2hpbGQoKTsgYzsgYyA9IGMtPm5l
eHRTaWJsaW5nKCkpIHsKLSAgICAgICAgaWYgKGMgPT0gb2xkQ2hpbGQpCisgICAgICAgIGlmIChj
ID09ICZvbGRDaGlsZCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAKICAgICAgICAg
c3dpdGNoIChjLT5ub2RlVHlwZSgpKSB7CkBAIC0zMzQ4LDggKzMzNDMsOCBAQCBib29sIERvY3Vt
ZW50OjpjYW5SZXBsYWNlQ2hpbGQoTm9kZSogbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkKQogICAg
IH0KICAgICAKICAgICAvLyBUaGVuLCBzZWUgaG93IG1hbnkgZG9jdHlwZXMgYW5kIGVsZW1lbnRz
IG1pZ2h0IGJlIGFkZGVkIGJ5IHRoZSBuZXcgY2hpbGQuCi0gICAgaWYgKG5ld0NoaWxkLT5pc0Rv
Y3VtZW50RnJhZ21lbnQoKSkgewotICAgICAgICBmb3IgKE5vZGUqIGMgPSBuZXdDaGlsZC0+Zmly
c3RDaGlsZCgpOyBjOyBjID0gYy0+bmV4dFNpYmxpbmcoKSkgeworICAgIGlmIChuZXdDaGlsZC5p
c0RvY3VtZW50RnJhZ21lbnQoKSkgeworICAgICAgICBmb3IgKE5vZGUqIGMgPSBuZXdDaGlsZC5m
aXJzdENoaWxkKCk7IGM7IGMgPSBjLT5uZXh0U2libGluZygpKSB7CiAgICAgICAgICAgICBzd2l0
Y2ggKGMtPm5vZGVUeXBlKCkpIHsKICAgICAgICAgICAgIGNhc2UgQVRUUklCVVRFX05PREU6CiAg
ICAgICAgICAgICBjYXNlIENEQVRBX1NFQ1RJT05fTk9ERToKQEAgLTMzNzIsNyArMzM2Nyw3IEBA
IGJvb2wgRG9jdW1lbnQ6OmNhblJlcGxhY2VDaGlsZChOb2RlKiBuZXdDaGlsZCwgTm9kZSogb2xk
Q2hpbGQpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9IGVsc2UgewotICAgICAgICBz
d2l0Y2ggKG5ld0NoaWxkLT5ub2RlVHlwZSgpKSB7CisgICAgICAgIHN3aXRjaCAobmV3Q2hpbGQu
bm9kZVR5cGUoKSkgewogICAgICAgICBjYXNlIEFUVFJJQlVURV9OT0RFOgogICAgICAgICBjYXNl
IENEQVRBX1NFQ1RJT05fTk9ERToKICAgICAgICAgY2FzZSBET0NVTUVOVF9GUkFHTUVOVF9OT0RF
OgpAQCAtMzQwMCw3ICszMzk1LDcgQEAgYm9vbCBEb2N1bWVudDo6Y2FuUmVwbGFjZUNoaWxkKE5v
ZGUqIG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotUmVm
UHRyPE5vZGU+IERvY3VtZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdP
cGVyYXRpb24gdHlwZSkKK1JlZjxOb2RlPiBEb2N1bWVudDo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9j
dW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uIHR5cGUpCiB7CiAgICAgUmVmPERvY3VtZW50PiBjbG9u
ZSA9IGNsb25lRG9jdW1lbnRXaXRob3V0Q2hpbGRyZW4oKTsKICAgICBjbG9uZS0+Y2xvbmVEYXRh
RnJvbURvY3VtZW50KCp0aGlzKTsKQEAgLTM0MDksNyArMzQwNCw3IEBAIFJlZlB0cjxOb2RlPiBE
b2N1bWVudDo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uIHR5
cGUpCiAgICAgY2FzZSBDbG9uaW5nT3BlcmF0aW9uOjpTZWxmV2l0aFRlbXBsYXRlQ29udGVudDoK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDbG9uaW5nT3BlcmF0aW9uOjpFdmVyeXRoaW5nOgot
ICAgICAgICBjbG9uZUNoaWxkTm9kZXMoY2xvbmUucHRyKCkpOworICAgICAgICBjbG9uZUNoaWxk
Tm9kZXMoY2xvbmUpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgcmV0dXJuIFdURjo6bW92
ZShjbG9uZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDllZjQ4YzkuLjEzNWM3ZTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCkBAIC03NDcsNyArNzQ3LDcgQEAgcHVibGljOgogICAgIHZvaWQgbm9k
ZUNoaWxkcmVuV2lsbEJlUmVtb3ZlZChDb250YWluZXJOb2RlJik7CiAgICAgLy8gbm9kZVdpbGxC
ZVJlbW92ZWQgaXMgb25seSBzYWZlIHdoZW4gcmVtb3Zpbmcgb25lIG5vZGUgYXQgYSB0aW1lLgog
ICAgIHZvaWQgbm9kZVdpbGxCZVJlbW92ZWQoTm9kZSYpOwotICAgIGJvb2wgY2FuUmVwbGFjZUNo
aWxkKE5vZGUqIG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCk7CisgICAgYm9vbCBjYW5SZXBsYWNl
Q2hpbGQoTm9kZSYgbmV3Q2hpbGQsIE5vZGUmIG9sZENoaWxkKTsKIAogICAgIHZvaWQgdGV4dElu
c2VydGVkKE5vZGUqLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgdm9p
ZCB0ZXh0UmVtb3ZlZChOb2RlKiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpOwpA
QCAtMTMxMSw3ICsxMzExLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFN0cmluZyBub2RlTmFt
ZSgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgTm9kZVR5cGUgbm9kZVR5cGUo
KSBjb25zdCBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRUeXBlQWxsb3dl
ZChOb2RlVHlwZSkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7Ci0gICAgdmlydHVhbCBSZWZQdHI8Tm9k
ZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlk
ZSBmaW5hbDsKKyAgICB2aXJ0dWFsIFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVu
dCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlIGZpbmFsOwogICAgIHZvaWQgY2xvbmVEYXRh
RnJvbURvY3VtZW50KGNvbnN0IERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVmU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpIG92ZXJyaWRlIGZpbmFsIHsgcmVmKCk7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcAppbmRleCA0ZmFiNThlLi5mOWIzOGEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCkBAIC02NywxOCArNjcsMTggQEAg
Ym9vbCBEb2N1bWVudEZyYWdtZW50OjpjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlIHR5cGUpIGNv
bnN0CiAgICAgfQogfQogCi1SZWZQdHI8Tm9kZT4gRG9jdW1lbnRGcmFnbWVudDo6Y2xvbmVOb2Rl
SW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uIHR5cGUp
CitSZWY8Tm9kZT4gRG9jdW1lbnRGcmFnbWVudDo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQm
IHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uIHR5cGUpCiB7Ci0gICAgUmVmUHRyPERv
Y3VtZW50RnJhZ21lbnQ+IGNsb25lID0gY3JlYXRlKHRhcmdldERvY3VtZW50KTsKKyAgICBSZWY8
RG9jdW1lbnRGcmFnbWVudD4gY2xvbmUgPSBjcmVhdGUodGFyZ2V0RG9jdW1lbnQpOwogICAgIHN3
aXRjaCAodHlwZSkgewogICAgIGNhc2UgQ2xvbmluZ09wZXJhdGlvbjo6T25seVNlbGY6CiAgICAg
Y2FzZSBDbG9uaW5nT3BlcmF0aW9uOjpTZWxmV2l0aFRlbXBsYXRlQ29udGVudDoKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBDbG9uaW5nT3BlcmF0aW9uOjpFdmVyeXRoaW5nOgotICAgICAgICBj
bG9uZUNoaWxkTm9kZXMoY2xvbmUuZ2V0KCkpOworICAgICAgICBjbG9uZUNoaWxkTm9kZXMoY2xv
bmUpOwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgcmV0dXJuIGNsb25lOworICAgIHJldHVy
biBXVEY6Om1vdmUoY2xvbmUpOwogfQogCiB2b2lkIERvY3VtZW50RnJhZ21lbnQ6OnBhcnNlSFRN
TChjb25zdCBTdHJpbmcmIHNvdXJjZSwgRWxlbWVudCogY29udGV4dEVsZW1lbnQsIFBhcnNlckNv
bnRlbnRQb2xpY3kgcGFyc2VyQ29udGVudFBvbGljeSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRG
cmFnbWVudC5oCmluZGV4IGQwN2UwMzQuLjZlYjFlZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50RnJhZ21lbnQuaApAQCAtNDgsNyArNDgsNyBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAg
ICAgdmlydHVhbCBOb2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOwotICAg
IHZpcnR1YWwgUmVmUHRyPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmlu
Z09wZXJhdGlvbikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50
ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IGJvb2wgY2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRUeXBlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudFR5cGUuY3BwCmluZGV4IDY3ZTNkNTMuLmMxOWQwMTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudFR5cGUuY3BwCkBAIC01MSw3ICs1MSw3IEBAIE5vZGU6Ok5vZGVU
eXBlIERvY3VtZW50VHlwZTo6bm9kZVR5cGUoKSBjb25zdAogICAgIHJldHVybiBET0NVTUVOVF9U
WVBFX05PREU7CiB9CiAKLVJlZlB0cjxOb2RlPiBEb2N1bWVudFR5cGU6OmNsb25lTm9kZUludGVy
bmFsKERvY3VtZW50JiBkb2N1bWVudFRhcmdldCwgQ2xvbmluZ09wZXJhdGlvbikKK1JlZjxOb2Rl
PiBEb2N1bWVudFR5cGU6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiBkb2N1bWVudFRhcmdl
dCwgQ2xvbmluZ09wZXJhdGlvbikKIHsKICAgICByZXR1cm4gY3JlYXRlKGRvY3VtZW50VGFyZ2V0
LCBtX25hbWUsIG1fcHVibGljSWQsIG1fc3lzdGVtSWQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
VHlwZS5oCmluZGV4IGM3YTFkOWIuLmM3OWMwY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRUeXBl
LmgKQEAgLTUyLDcgKzUyLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFVSTCBiYXNlVVJJKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBTdHJpbmcgbm9kZU5hbWUoKSBjb25zdCBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIE5vZGVUeXBlIG5vZGVUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0g
ICAgdmlydHVhbCBSZWZQdHI8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9u
aW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxOb2RlPiBjbG9uZU5vZGVJ
bnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOwogCiAgICAgU3Ry
aW5nIG1fbmFtZTsKICAgICBTdHJpbmcgbV9wdWJsaWNJZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApp
bmRleCA2NzUwMDBhLi5jNTViNmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0zMTIsMzgg
KzMxMiwzNyBAQCB2b2lkIEVsZW1lbnQ6OmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soRXZlbnQqIHVu
ZGVybHlpbmdFdmVudCwgU2ltdWxhdGVkQ2xpY2tNb3VzZQogICAgIEV2ZW50RGlzcGF0Y2hlcjo6
ZGlzcGF0Y2hTaW11bGF0ZWRDbGljayh0aGlzLCB1bmRlcmx5aW5nRXZlbnQsIGV2ZW50T3B0aW9u
cywgdmlzdWFsT3B0aW9ucyk7CiB9CiAKLVJlZlB0cjxOb2RlPiBFbGVtZW50OjpjbG9uZU5vZGVJ
bnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24gdHlwZSkK
K1JlZjxOb2RlPiBFbGVtZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9j
dW1lbnQsIENsb25pbmdPcGVyYXRpb24gdHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAg
ICBjYXNlIENsb25pbmdPcGVyYXRpb246Ok9ubHlTZWxmOgogICAgIGNhc2UgQ2xvbmluZ09wZXJh
dGlvbjo6U2VsZldpdGhUZW1wbGF0ZUNvbnRlbnQ6CiAgICAgICAgIHJldHVybiBjbG9uZUVsZW1l
bnRXaXRob3V0Q2hpbGRyZW4odGFyZ2V0RG9jdW1lbnQpOwogICAgIGNhc2UgQ2xvbmluZ09wZXJh
dGlvbjo6RXZlcnl0aGluZzoKLSAgICAgICAgcmV0dXJuIGNsb25lRWxlbWVudFdpdGhDaGlsZHJl
bih0YXJnZXREb2N1bWVudCk7CisgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gY2xvbmVFbGVtZW50
V2l0aENoaWxkcmVuKHRhcmdldERvY3VtZW50KTs7CiB9CiAKLVJlZlB0cjxFbGVtZW50PiBFbGVt
ZW50OjpjbG9uZUVsZW1lbnRXaXRoQ2hpbGRyZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50KQor
UmVmPEVsZW1lbnQ+IEVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhDaGlsZHJlbihEb2N1bWVudCYg
dGFyZ2V0RG9jdW1lbnQpCiB7Ci0gICAgUmVmUHRyPEVsZW1lbnQ+IGNsb25lID0gY2xvbmVFbGVt
ZW50V2l0aG91dENoaWxkcmVuKHRhcmdldERvY3VtZW50KTsKLSAgICBjbG9uZUNoaWxkTm9kZXMo
Y2xvbmUuZ2V0KCkpOwotICAgIHJldHVybiBjbG9uZS5yZWxlYXNlKCk7CisgICAgUmVmPEVsZW1l
bnQ+IGNsb25lID0gY2xvbmVFbGVtZW50V2l0aG91dENoaWxkcmVuKHRhcmdldERvY3VtZW50KTsK
KyAgICBjbG9uZUNoaWxkTm9kZXMoY2xvbmUpOworICAgIHJldHVybiBjbG9uZTsKIH0KIAotUmVm
UHRyPEVsZW1lbnQ+IEVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhvdXRDaGlsZHJlbihEb2N1bWVu
dCYgdGFyZ2V0RG9jdW1lbnQpCitSZWY8RWxlbWVudD4gRWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0
aG91dENoaWxkcmVuKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCkKIHsKLSAgICBSZWZQdHI8RWxl
bWVudD4gY2xvbmUgPSBjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKHRh
cmdldERvY3VtZW50KTsKKyAgICBSZWY8RWxlbWVudD4gY2xvbmUgPSBjbG9uZUVsZW1lbnRXaXRo
b3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKHRhcmdldERvY3VtZW50KTsKICAgICAvLyBUaGlzIHdp
bGwgY2F0Y2ggSFRNTCBlbGVtZW50cyBpbiB0aGUgd3JvbmcgbmFtZXNwYWNlIHRoYXQgYXJlIG5v
dCBjb3JyZWN0bHkgY29waWVkLgogICAgIC8vIFRoaXMgaXMgYSBzYW5pdHkgY2hlY2sgYXMgSFRN
TCBvdmVybG9hZHMgc29tZSBvZiB0aGUgRE9NIG1ldGhvZHMuCiAgICAgQVNTRVJUKGlzSFRNTEVs
ZW1lbnQoKSA9PSBjbG9uZS0+aXNIVE1MRWxlbWVudCgpKTsKIAogICAgIGNsb25lLT5jbG9uZURh
dGFGcm9tRWxlbWVudCgqdGhpcyk7Ci0gICAgcmV0dXJuIGNsb25lLnJlbGVhc2UoKTsKKyAgICBy
ZXR1cm4gY2xvbmU7CiB9CiAKLVJlZlB0cjxFbGVtZW50PiBFbGVtZW50OjpjbG9uZUVsZW1lbnRX
aXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCkKK1Jl
ZjxFbGVtZW50PiBFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxk
cmVuKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCkKIHsKICAgICByZXR1cm4gdGFyZ2V0RG9jdW1l
bnQuY3JlYXRlRWxlbWVudCh0YWdRTmFtZSgpLCBmYWxzZSk7CiB9CkBAIC0yMzE5LDcgKzIzMTgs
NyBAQCB2b2lkIEVsZW1lbnQ6OnNldE91dGVySFRNTChjb25zdCBTdHJpbmcmIGh0bWwsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIHBh
cmVudC0+cmVwbGFjZUNoaWxkKGZyYWdtZW50LnJlbGVhc2UoKSwgdGhpcywgZWMpOworICAgIHBh
cmVudC0+cmVwbGFjZUNoaWxkKGZyYWdtZW50LnJlbGVhc2VOb25OdWxsKCksICp0aGlzLCBlYyk7
CiAgICAgUmVmUHRyPE5vZGU+IG5vZGUgPSBuZXh0ID8gbmV4dC0+cHJldmlvdXNTaWJsaW5nKCkg
OiBudWxscHRyOwogICAgIGlmICghZWMgJiYgaXM8VGV4dD4obm9kZS5nZXQoKSkpCiAgICAgICAg
IG1lcmdlV2l0aE5leHRUZXh0Tm9kZShkb3duY2FzdDxUZXh0Pigqbm9kZSksIGVjKTsKQEAgLTIz
MzgsNyArMjMzNyw3IEBAIHZvaWQgRWxlbWVudDo6c2V0SW5uZXJIVE1MKGNvbnN0IFN0cmluZyYg
aHRtbCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgICAgICBjb250YWluZXIgPSBkb3duY2Fz
dDxIVE1MVGVtcGxhdGVFbGVtZW50PigqdGhpcykuY29udGVudCgpOwogI2VuZGlmCiAKLSAgICAg
ICAgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KCpjb250YWluZXIsIGZyYWdtZW50LnJlbGVh
c2UoKSwgZWMpOworICAgICAgICByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQoKmNvbnRhaW5l
ciwgZnJhZ21lbnQucmVsZWFzZU5vbk51bGwoKSwgZWMpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmgKaW5kZXggMWU2MDcwMy4uMDQ4MTBlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC0yMDEs
OCArMjAxLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBTdHJpbmcgbm9kZU5hbWUoKSBjb25z
dCBvdmVycmlkZTsKIAotICAgIFJlZlB0cjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRoQ2hpbGRy
ZW4oRG9jdW1lbnQmKTsKLSAgICBSZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dENo
aWxkcmVuKERvY3VtZW50Jik7CisgICAgUmVmPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhDaGls
ZHJlbihEb2N1bWVudCYpOworICAgIFJlZjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRob3V0Q2hp
bGRyZW4oRG9jdW1lbnQmKTsKIAogICAgIHZvaWQgbm9ybWFsaXplQXR0cmlidXRlcygpOwogICAg
IFN0cmluZyBub2RlTmFtZVByZXNlcnZpbmdDYXNlKCkgY29uc3Q7CkBAIC01NjMsOCArNTYzLDgg
QEAgcHJpdmF0ZToKIAogICAgIC8vIGNsb25lTm9kZSBpcyBwcml2YXRlIHNvIHRoYXQgbm9uLXZp
cnR1YWwgY2xvbmVFbGVtZW50V2l0aENoaWxkcmVuIGFuZCBjbG9uZUVsZW1lbnRXaXRob3V0Q2hp
bGRyZW4KICAgICAvLyBhcmUgdXNlZCBpbnN0ZWFkLgotICAgIHZpcnR1YWwgUmVmUHRyPE5vZGU+
IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7
Ci0gICAgdmlydHVhbCBSZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0
ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYpOworICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNsb25lTm9k
ZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBSZWY8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJl
bihEb2N1bWVudCYpOwogCiAgICAgdm9pZCBhZGRTaGFkb3dSb290KFJlZjxTaGFkb3dSb290PiYm
KTsKICAgICB2b2lkIHJlbW92ZVNoYWRvd1Jvb3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJl
ZmVyZW5jZS5jcHAKaW5kZXggYTJmZjYzYi4uN2U5MWE0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Vu
dGl0eVJlZmVyZW5jZS5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgTm9kZTo6Tm9kZVR5cGUgRW50aXR5
UmVmZXJlbmNlOjpub2RlVHlwZSgpIGNvbnN0CiAgICAgcmV0dXJuIEVOVElUWV9SRUZFUkVOQ0Vf
Tk9ERTsKIH0KIAotUmVmUHRyPE5vZGU+IEVudGl0eVJlZmVyZW5jZTo6Y2xvbmVOb2RlSW50ZXJu
YWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uKQorUmVmPE5vZGU+
IEVudGl0eVJlZmVyZW5jZTo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3Vt
ZW50LCBDbG9uaW5nT3BlcmF0aW9uKQogewogICAgIHJldHVybiBjcmVhdGUodGFyZ2V0RG9jdW1l
bnQsIG1fZW50aXR5TmFtZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRW50
aXR5UmVmZXJlbmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmgKaW5k
ZXggMDNmNDNjZC4uODZkZmViMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0
eVJlZmVyZW5jZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuaApA
QCAtMzUsNyArMzUsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBTdHJpbmcgbm9kZU5hbWUo
KSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIE5vZGVUeXBlIG5vZGVUeXBlKCkgY29uc3Qg
b3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZWZQdHI8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9j
dW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxOb2Rl
PiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRl
OwogCiAgICAgU3RyaW5nIG1fZW50aXR5TmFtZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggZmRj
N2ZiNS4uMjhmMjExNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtNDI5LDM4ICs0MjksNTQgQEAgRWxl
bWVudCogTm9kZTo6bmV4dEVsZW1lbnRTaWJsaW5nKCkgY29uc3QKIAogYm9vbCBOb2RlOjppbnNl
cnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hpbGQsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogeworICAgIGlmICghbmV3Q2hpbGQpIHsKKyAgICAgICAgZWMgPSBUeXBl
RXJyb3I7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAgICAgaWYgKCFpczxDb250YWlu
ZXJOb2RlPigqdGhpcykpIHsKICAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIGRvd25jYXN0PENvbnRhaW5l
ck5vZGU+KCp0aGlzKS5pbnNlcnRCZWZvcmUobmV3Q2hpbGQsIHJlZkNoaWxkLCBlYyk7CisgICAg
cmV0dXJuIGRvd25jYXN0PENvbnRhaW5lck5vZGU+KCp0aGlzKS5pbnNlcnRCZWZvcmUoKm5ld0No
aWxkLCByZWZDaGlsZCwgZWMpOwogfQogCiBib29sIE5vZGU6OnJlcGxhY2VDaGlsZChQYXNzUmVm
UHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
CisgICAgaWYgKCFuZXdDaGlsZCB8fCAhb2xkQ2hpbGQpIHsKKyAgICAgICAgZWMgPSBUeXBlRXJy
b3I7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAgICAgaWYgKCFpczxDb250YWluZXJO
b2RlPigqdGhpcykpIHsKICAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIGRvd25jYXN0PENvbnRhaW5lck5v
ZGU+KCp0aGlzKS5yZXBsYWNlQ2hpbGQobmV3Q2hpbGQsIG9sZENoaWxkLCBlYyk7CisgICAgcmV0
dXJuIGRvd25jYXN0PENvbnRhaW5lck5vZGU+KCp0aGlzKS5yZXBsYWNlQ2hpbGQoKm5ld0NoaWxk
LCAqb2xkQ2hpbGQsIGVjKTsKIH0KIAogYm9vbCBOb2RlOjpyZW1vdmVDaGlsZChOb2RlKiBvbGRD
aGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CisgICAgaWYgKCFvbGRDaGlsZCkgeworICAgICAg
ICBlYyA9IFR5cGVFcnJvcjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KICAgICBpZiAo
IWlzPENvbnRhaW5lck5vZGU+KCp0aGlzKSkgewogICAgICAgICBlYyA9IE5PVF9GT1VORF9FUlI7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIGRvd25jYXN0PENvbnRh
aW5lck5vZGU+KCp0aGlzKS5yZW1vdmVDaGlsZChvbGRDaGlsZCwgZWMpOworICAgIHJldHVybiBk
b3duY2FzdDxDb250YWluZXJOb2RlPigqdGhpcykucmVtb3ZlQ2hpbGQoKm9sZENoaWxkLCBlYyk7
CiB9CiAKIGJvb2wgTm9kZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7CisgICAgaWYgKCFuZXdDaGlsZCkgeworICAgICAgICBlYyA9
IFR5cGVFcnJvcjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KICAgICBpZiAoIWlzPENv
bnRhaW5lck5vZGU+KCp0aGlzKSkgewogICAgICAgICBlYyA9IEhJRVJBUkNIWV9SRVFVRVNUX0VS
UjsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICByZXR1cm4gZG93bmNhc3Q8Q29u
dGFpbmVyTm9kZT4oKnRoaXMpLmFwcGVuZENoaWxkKG5ld0NoaWxkLCBlYyk7CisgICAgcmV0dXJu
IGRvd25jYXN0PENvbnRhaW5lck5vZGU+KCp0aGlzKS5hcHBlbmRDaGlsZCgqbmV3Q2hpbGQsIGVj
KTsKIH0KIAogc3RhdGljIEhhc2hTZXQ8UmVmUHRyPE5vZGU+PiBub2RlU2V0UHJlVHJhbnNmb3Jt
ZWRGcm9tTm9kZU9yU3RyaW5nVmVjdG9yKGNvbnN0IFZlY3RvcjxOb2RlT3JTdHJpbmc+JiBub2Rl
T3JTdHJpbmdWZWN0b3IpCkBAIC01MTUsNyArNTMxLDcgQEAgdm9pZCBOb2RlOjpiZWZvcmUoVmVj
dG9yPE5vZGVPclN0cmluZz4mJiBub2RlT3JTdHJpbmdWZWN0b3IsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogICAgIGVsc2UKICAgICAgICAgdmlhYmxlUHJldmlvdXNTaWJsaW5nID0gcGFyZW50LT5maXJz
dENoaWxkKCk7CiAKLSAgICBwYXJlbnQtPmluc2VydEJlZm9yZShub2RlLnJlbGVhc2UoKSwgdmlh
YmxlUHJldmlvdXNTaWJsaW5nLmdldCgpLCBlYyk7CisgICAgcGFyZW50LT5pbnNlcnRCZWZvcmUo
bm9kZS5yZWxlYXNlTm9uTnVsbCgpLCB2aWFibGVQcmV2aW91c1NpYmxpbmcuZ2V0KCksIGVjKTsK
IH0KIAogdm9pZCBOb2RlOjphZnRlcihWZWN0b3I8Tm9kZU9yU3RyaW5nPiYmIG5vZGVPclN0cmlu
Z1ZlY3RvciwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC01MzEsNyArNTQ3LDcgQEAgdm9pZCBOb2Rl
OjphZnRlcihWZWN0b3I8Tm9kZU9yU3RyaW5nPiYmIG5vZGVPclN0cmluZ1ZlY3RvciwgRXhjZXB0
aW9uQ29kZSYgZWMpCiAgICAgaWYgKGVjIHx8ICFub2RlKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBwYXJlbnQtPmluc2VydEJlZm9yZShub2RlLnJlbGVhc2UoKSwgdmlhYmxlTmV4dFNpYmxpbmcu
Z2V0KCksIGVjKTsKKyAgICBwYXJlbnQtPmluc2VydEJlZm9yZShub2RlLnJlbGVhc2VOb25OdWxs
KCksIHZpYWJsZU5leHRTaWJsaW5nLmdldCgpLCBlYyk7CiB9CiAKIHZvaWQgTm9kZTo6cmVwbGFj
ZVdpdGgoVmVjdG9yPE5vZGVPclN0cmluZz4mJiBub2RlT3JTdHJpbmdWZWN0b3IsIEV4Y2VwdGlv
bkNvZGUmIGVjKQpAQCAtNTQ4LDE1ICs1NjQsMTUgQEAgdm9pZCBOb2RlOjpyZXBsYWNlV2l0aChW
ZWN0b3I8Tm9kZU9yU3RyaW5nPiYmIG5vZGVPclN0cmluZ1ZlY3RvciwgRXhjZXB0aW9uQ29kZSYK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKHBhcmVudE5vZGUoKSA9PSBwYXJlbnQpCi0gICAg
ICAgIHBhcmVudC0+cmVwbGFjZUNoaWxkKG5vZGUucmVsZWFzZSgpLCB0aGlzLCBlYyk7CisgICAg
ICAgIHBhcmVudC0+cmVwbGFjZUNoaWxkKG5vZGUucmVsZWFzZU5vbk51bGwoKSwgKnRoaXMsIGVj
KTsKICAgICBlbHNlCi0gICAgICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG5vZGUucmVsZWFzZSgp
LCB2aWFibGVOZXh0U2libGluZy5nZXQoKSwgZWMpOworICAgICAgICBwYXJlbnQtPmluc2VydEJl
Zm9yZShub2RlLnJlbGVhc2VOb25OdWxsKCksIHZpYWJsZU5leHRTaWJsaW5nLmdldCgpLCBlYyk7
CiB9CiAKIHZvaWQgTm9kZTo6cmVtb3ZlKEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmIChD
b250YWluZXJOb2RlKiBwYXJlbnQgPSBwYXJlbnROb2RlKCkpCi0gICAgICAgIHBhcmVudC0+cmVt
b3ZlQ2hpbGQodGhpcywgZWMpOworICAgICAgICBwYXJlbnQtPnJlbW92ZUNoaWxkKCp0aGlzLCBl
Yyk7CiB9CiAKIHZvaWQgTm9kZTo6bm9ybWFsaXplKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IDkyOWVjZTQu
LmE1MmYwZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtMjAxLDggKzIwMSw4IEBAIHB1YmxpYzoKICAgICAg
ICAgU2VsZldpdGhUZW1wbGF0ZUNvbnRlbnQsCiAgICAgICAgIEV2ZXJ5dGhpbmcsCiAgICAgfTsK
LSAgICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENs
b25pbmdPcGVyYXRpb24pID0gMDsKLSAgICBSZWZQdHI8Tm9kZT4gY2xvbmVOb2RlKGJvb2wgZGVl
cCkgeyByZXR1cm4gY2xvbmVOb2RlSW50ZXJuYWwoZG9jdW1lbnQoKSwgZGVlcCA/IENsb25pbmdP
cGVyYXRpb246OkV2ZXJ5dGhpbmcgOiBDbG9uaW5nT3BlcmF0aW9uOjpPbmx5U2VsZik7IH0KKyAg
ICB2aXJ0dWFsIFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdP
cGVyYXRpb24pID0gMDsKKyAgICBSZWY8Tm9kZT4gY2xvbmVOb2RlKGJvb2wgZGVlcCkgeyByZXR1
cm4gY2xvbmVOb2RlSW50ZXJuYWwoZG9jdW1lbnQoKSwgZGVlcCA/IENsb25pbmdPcGVyYXRpb246
OkV2ZXJ5dGhpbmcgOiBDbG9uaW5nT3BlcmF0aW9uOjpPbmx5U2VsZik7IH0KIAogICAgIHZpcnR1
YWwgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGNv
bnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlVVJJKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCmluZGV4IGIzNDNjYTMuLjMwMDA5YjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCkBAIC03OSw3
ICs3OSw3IEBAIE5vZGU6Ok5vZGVUeXBlIFByb2Nlc3NpbmdJbnN0cnVjdGlvbjo6bm9kZVR5cGUo
KSBjb25zdAogICAgIHJldHVybiBQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU7CiB9CiAKLVJl
ZlB0cjxOb2RlPiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb246OmNsb25lTm9kZUludGVybmFsKERvY3Vt
ZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikKK1JlZjxOb2RlPiBQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb246OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVu
dCwgQ2xvbmluZ09wZXJhdGlvbikKIHsKICAgICAvLyBGSVhNRTogSXMgaXQgYSBwcm9ibGVtIHRo
YXQgdGhpcyBkb2VzIG5vdCBjb3B5IG1fbG9jYWxIcmVmPwogICAgIC8vIFdoYXQgYWJvdXQgb3Ro
ZXIgZGF0YSBtZW1iZXJzPwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3Np
bmdJbnN0cnVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlv
bi5oCmluZGV4IDIxZmQ5ZTkuLmVmYTkwNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vz
c2luZ0luc3RydWN0aW9uLmgKQEAgLTU4LDcgKzU4LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1
YWwgU3RyaW5nIG5vZGVOYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBOb2RlVHlw
ZSBub2RlVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVmUHRyPE5vZGU+IGNs
b25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5n
T3BlcmF0aW9uKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9u
UmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSYpIG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgdm9pZCByZW1vdmVkRnJvbShDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Jhbmdl
LmNwcAppbmRleCA0ZDIyN2RhLi4yNjUwOGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vUmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKQEAgLTY2NSw3
ICs2NjUsNyBAQCBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gUmFuZ2U6OnByb2Nlc3NDb250ZW50
cyhBY3Rpb25UeXBlIGFjdGlvbiwgRXhjZXB0aW9uQ29kZQogICAgIC8vIChvciBqdXN0IGRlbGV0
ZSB0aGUgc3R1ZmYgaW4gYmV0d2VlbikKIAogICAgIGlmICgoYWN0aW9uID09IEV4dHJhY3QgfHwg
YWN0aW9uID09IENsb25lKSAmJiBsZWZ0Q29udGVudHMpCi0gICAgICAgIGZyYWdtZW50LT5hcHBl
bmRDaGlsZChsZWZ0Q29udGVudHMsIGVjKTsKKyAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxk
KCpsZWZ0Q29udGVudHMsIGVjKTsKIAogICAgIGlmIChwcm9jZXNzU3RhcnQpIHsKICAgICAgICAg
Tm9kZVZlY3RvciBub2RlczsKQEAgLTY3NSw3ICs2NzUsNyBAQCBSZWZQdHI8RG9jdW1lbnRGcmFn
bWVudD4gUmFuZ2U6OnByb2Nlc3NDb250ZW50cyhBY3Rpb25UeXBlIGFjdGlvbiwgRXhjZXB0aW9u
Q29kZQogICAgIH0KIAogICAgIGlmICgoYWN0aW9uID09IEV4dHJhY3QgfHwgYWN0aW9uID09IENs
b25lKSAmJiByaWdodENvbnRlbnRzKQotICAgICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQocmln
aHRDb250ZW50cywgZWMpOworICAgICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoKnJpZ2h0Q29u
dGVudHMsIGVjKTsKIAogICAgIHJldHVybiBmcmFnbWVudDsKIH0KQEAgLTcwMiw3ICs3MDIsNyBA
QCBSZWZQdHI8Tm9kZT4gUmFuZ2U6OnByb2Nlc3NDb250ZW50c0JldHdlZW5PZmZzZXRzKEFjdGlv
blR5cGUgYWN0aW9uLCBQYXNzUmVmUHRyPAogICAgICAgICBlbmRPZmZzZXQgPSBzdGQ6Om1pbihl
bmRPZmZzZXQsIHN0YXRpY19jYXN0PENoYXJhY3RlckRhdGEqPihjb250YWluZXIpLT5sZW5ndGgo
KSk7CiAgICAgICAgIHN0YXJ0T2Zmc2V0ID0gc3RkOjptaW4oc3RhcnRPZmZzZXQsIGVuZE9mZnNl
dCk7CiAgICAgICAgIGlmIChhY3Rpb24gPT0gRXh0cmFjdCB8fCBhY3Rpb24gPT0gQ2xvbmUpIHsK
LSAgICAgICAgICAgIFJlZlB0cjxDaGFyYWN0ZXJEYXRhPiBjID0gc3RhdGljX3BvaW50ZXJfY2Fz
dDxDaGFyYWN0ZXJEYXRhPihjb250YWluZXItPmNsb25lTm9kZSh0cnVlKSk7CisgICAgICAgICAg
ICBSZWZQdHI8Q2hhcmFjdGVyRGF0YT4gYyA9IHN0YXRpY19jYXN0PENoYXJhY3RlckRhdGEqPihj
b250YWluZXItPmNsb25lTm9kZSh0cnVlKS5wdHIoKSk7CiAgICAgICAgICAgICBkZWxldGVDaGFy
YWN0ZXJEYXRhKGMsIHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQsIGVjKTsKICAgICAgICAgICAgIGlm
IChmcmFnbWVudCkgewogICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZyYWdtZW50OwpAQCAtNzE3
LDcgKzcxNyw3IEBAIFJlZlB0cjxOb2RlPiBSYW5nZTo6cHJvY2Vzc0NvbnRlbnRzQmV0d2Vlbk9m
ZnNldHMoQWN0aW9uVHlwZSBhY3Rpb24sIFBhc3NSZWZQdHI8CiAgICAgICAgIGVuZE9mZnNldCA9
IHN0ZDo6bWluKGVuZE9mZnNldCwgc3RhdGljX2Nhc3Q8UHJvY2Vzc2luZ0luc3RydWN0aW9uKj4o
Y29udGFpbmVyKS0+ZGF0YSgpLmxlbmd0aCgpKTsKICAgICAgICAgc3RhcnRPZmZzZXQgPSBzdGQ6
Om1pbihzdGFydE9mZnNldCwgZW5kT2Zmc2V0KTsKICAgICAgICAgaWYgKGFjdGlvbiA9PSBFeHRy
YWN0IHx8IGFjdGlvbiA9PSBDbG9uZSkgewotICAgICAgICAgICAgUmVmUHRyPFByb2Nlc3NpbmdJ
bnN0cnVjdGlvbj4gYyA9IHN0YXRpY19wb2ludGVyX2Nhc3Q8UHJvY2Vzc2luZ0luc3RydWN0aW9u
Pihjb250YWluZXItPmNsb25lTm9kZSh0cnVlKSk7CisgICAgICAgICAgICBSZWZQdHI8UHJvY2Vz
c2luZ0luc3RydWN0aW9uPiBjID0gc3RhdGljX2Nhc3Q8UHJvY2Vzc2luZ0luc3RydWN0aW9uKj4o
Y29udGFpbmVyLT5jbG9uZU5vZGUodHJ1ZSkucHRyKCkpOwogICAgICAgICAgICAgYy0+c2V0RGF0
YShjLT5kYXRhKCkuc3Vic3RyaW5nKHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQgLSBzdGFydE9mZnNl
dCksIGVjKTsKICAgICAgICAgICAgIGlmIChmcmFnbWVudCkgewogICAgICAgICAgICAgICAgIHJl
c3VsdCA9IGZyYWdtZW50OwpAQCAtOTM1LDcgKzkzNSw3IEBAIHZvaWQgUmFuZ2U6Omluc2VydE5v
ZGUoUGFzc1JlZlB0cjxOb2RlPiBwcnBOZXdOb2RlLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgCiAgICAgICAgIGNvbnRhaW5lciA9ICZzdGFydENvbnRh
aW5lcigpOwotICAgICAgICBjb250YWluZXItPnBhcmVudE5vZGUoKS0+aW5zZXJ0QmVmb3JlKG5l
d05vZGUucmVsZWFzZSgpLCBuZXdUZXh0LmdldCgpLCBlYyk7CisgICAgICAgIGNvbnRhaW5lci0+
cGFyZW50Tm9kZSgpLT5pbnNlcnRCZWZvcmUobmV3Tm9kZS5yZWxlYXNlTm9uTnVsbCgpLCBuZXdU
ZXh0LmdldCgpLCBlYyk7CiAgICAgICAgIGlmIChlYykKICAgICAgICAgICAgIHJldHVybjsKIApA
QCAtMTMwMyw3ICsxMzAzLDcgQEAgdm9pZCBSYW5nZTo6c3Vycm91bmRDb250ZW50cyhQYXNzUmVm
UHRyPE5vZGU+IHBhc3NOZXdQYXJlbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogCiAgICAgZWMgPSAw
OwogICAgIHdoaWxlIChOb2RlKiBuID0gbmV3UGFyZW50LT5maXJzdENoaWxkKCkpIHsKLSAgICAg
ICAgZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4oKm5ld1BhcmVudCkucmVtb3ZlQ2hpbGQobiwgZWMp
OworICAgICAgICBkb3duY2FzdDxDb250YWluZXJOb2RlPigqbmV3UGFyZW50KS5yZW1vdmVDaGls
ZCgqbiwgZWMpOwogICAgICAgICBpZiAoZWMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCmluZGV4IGExMjI1N2YuLjg4NjEwMGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93Um9vdC5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgdm9pZCBTaGFkb3dSb290Ojpz
ZXRJbm5lckhUTUwoY29uc3QgU3RyaW5nJiBtYXJrdXAsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAg
IH0KIAogICAgIGlmIChSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVhdGVG
cmFnbWVudEZvcklubmVyT3V0ZXJIVE1MKG1hcmt1cCwgaG9zdCgpLCBBbGxvd1NjcmlwdGluZ0Nv
bnRlbnQsIGVjKSkKLSAgICAgICAgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KCp0aGlzLCBm
cmFnbWVudC5yZWxlYXNlKCksIGVjKTsKKyAgICAgICAgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdt
ZW50KCp0aGlzLCBmcmFnbWVudC5yZWxlYXNlTm9uTnVsbCgpLCBlYyk7CiB9CiAKIGJvb2wgU2hh
ZG93Um9vdDo6Y2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdApAQCAtMTMxLDkg
KzEzMSwxMCBAQCB2b2lkIFNoYWRvd1Jvb3Q6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENo
YW5nZSYgY2hhbmdlKQogICAgIGludmFsaWRhdGVEaXN0cmlidXRpb24oKTsKIH0KIAotUmVmUHRy
PE5vZGU+IFNoYWRvd1Jvb3Q6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09w
ZXJhdGlvbikKK1JlZjxOb2RlPiBTaGFkb3dSb290OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVu
dCYsIENsb25pbmdPcGVyYXRpb24pCiB7Ci0gICAgcmV0dXJuIG51bGxwdHI7IC8vIFNoYWRvd1Jv
b3RzIHNob3VsZCBuZXZlciBiZSBjbG9uZWQuCisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICByZXR1cm4gKnN0YXRpY19jYXN0PE5vZGUqPihudWxscHRyKTsgLy8gU2hhZG93
Um9vdHMgc2hvdWxkIG5ldmVyIGJlIGNsb25lZC4KIH0KIAogdm9pZCBTaGFkb3dSb290OjpyZW1v
dmVBbGxFdmVudExpc3RlbmVycygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hh
ZG93Um9vdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAppbmRleCA2ZDMxMWZk
Li42MzE2MDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKQEAgLTc2LDcgKzc2LDcgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENo
YW5nZSYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBSZWZQdHI8Tm9kZT4gY2xvbmVOb2RlSW50
ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24p
IG92ZXJyaWRlOwogCiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkbid0IGhhcHBlbi4gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4ODM0CiAgICAgYm9vbCBpc09ycGhh
bigpIGNvbnN0IHsgcmV0dXJuICFtX2hvc3Q7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9UZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcAppbmRleCBiMTE3MWQ3
Li42YzRjODlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCkBAIC03Myw3ICs3Myw3IEBAIFJlZlB0cjxUZXh0
PiBUZXh0OjpzcGxpdFRleHQodW5zaWduZWQgb2Zmc2V0LCBFeGNlcHRpb25Db2RlJiBlYykKICAg
ICBkaXNwYXRjaE1vZGlmaWVkRXZlbnQob2xkU3RyKTsKIAogICAgIGlmIChwYXJlbnROb2RlKCkp
Ci0gICAgICAgIHBhcmVudE5vZGUoKS0+aW5zZXJ0QmVmb3JlKG5ld1RleHQucHRyKCksIG5leHRT
aWJsaW5nKCksIGVjKTsKKyAgICAgICAgcGFyZW50Tm9kZSgpLT5pbnNlcnRCZWZvcmUobmV3VGV4
dC5jb3B5UmVmKCksIG5leHRTaWJsaW5nKCksIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJl
dHVybiAwOwogCkBAIC0xMzIsMjggKzEzMiwyOCBAQCBSZWZQdHI8VGV4dD4gVGV4dDo6cmVwbGFj
ZVdob2xlVGV4dChjb25zdCBTdHJpbmcmIG5ld1RleHQsIEV4Y2VwdGlvbkNvZGUmKQogICAgIFJl
ZlB0cjxUZXh0PiBwcm90ZWN0ZWRUaGlzKHRoaXMpOyAvLyBNdXRhdGlvbiBldmVudCBoYW5kbGVy
cyBjb3VsZCBjYXVzZSBvdXIgbGFzdCByZWYgdG8gZ28gYXdheQogICAgIFJlZlB0cjxDb250YWlu
ZXJOb2RlPiBwYXJlbnQgPSBwYXJlbnROb2RlKCk7IC8vIFByb3RlY3QgYWdhaW5zdCBtdXRhdGlv
biBoYW5kbGVycyBtb3ZpbmcgdGhpcyBub2RlIGR1cmluZyB0cmF2ZXJzYWwKICAgICBmb3IgKFJl
ZlB0cjxOb2RlPiBuID0gc3RhcnRUZXh0OyBuICYmIG4gIT0gdGhpcyAmJiBuLT5pc1RleHROb2Rl
KCkgJiYgbi0+cGFyZW50Tm9kZSgpID09IHBhcmVudDspIHsKLSAgICAgICAgUmVmUHRyPE5vZGU+
IG5vZGVUb1JlbW92ZShuLnJlbGVhc2UoKSk7CisgICAgICAgIFJlZjxOb2RlPiBub2RlVG9SZW1v
dmUobi5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICAgICAgbiA9IG5vZGVUb1JlbW92ZS0+bmV4dFNp
YmxpbmcoKTsKLSAgICAgICAgcGFyZW50LT5yZW1vdmVDaGlsZChub2RlVG9SZW1vdmUuZ2V0KCks
IElHTk9SRV9FWENFUFRJT04pOworICAgICAgICBwYXJlbnQtPnJlbW92ZUNoaWxkKFdURjo6bW92
ZShub2RlVG9SZW1vdmUpLCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICB9CiAKICAgICBpZiAodGhp
cyAhPSBlbmRUZXh0KSB7CiAgICAgICAgIE5vZGUqIG9uZVBhc3RFbmRUZXh0ID0gZW5kVGV4dC0+
bmV4dFNpYmxpbmcoKTsKICAgICAgICAgZm9yIChSZWZQdHI8Tm9kZT4gbiA9IG5leHRTaWJsaW5n
KCk7IG4gJiYgbiAhPSBvbmVQYXN0RW5kVGV4dCAmJiBuLT5pc1RleHROb2RlKCkgJiYgbi0+cGFy
ZW50Tm9kZSgpID09IHBhcmVudDspIHsKLSAgICAgICAgICAgIFJlZlB0cjxOb2RlPiBub2RlVG9S
ZW1vdmUobi5yZWxlYXNlKCkpOworICAgICAgICAgICAgUmVmPE5vZGU+IG5vZGVUb1JlbW92ZShu
LnJlbGVhc2VOb25OdWxsKCkpOwogICAgICAgICAgICAgbiA9IG5vZGVUb1JlbW92ZS0+bmV4dFNp
YmxpbmcoKTsKLSAgICAgICAgICAgIHBhcmVudC0+cmVtb3ZlQ2hpbGQobm9kZVRvUmVtb3ZlLmdl
dCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgICAgIHBhcmVudC0+cmVtb3ZlQ2hpbGQo
V1RGOjptb3ZlKG5vZGVUb1JlbW92ZSksIElHTk9SRV9FWENFUFRJT04pOwogICAgICAgICB9CiAg
ICAgfQogCiAgICAgaWYgKG5ld1RleHQuaXNFbXB0eSgpKSB7CiAgICAgICAgIGlmIChwYXJlbnQg
JiYgcGFyZW50Tm9kZSgpID09IHBhcmVudCkKLSAgICAgICAgICAgIHBhcmVudC0+cmVtb3ZlQ2hp
bGQodGhpcywgSUdOT1JFX0VYQ0VQVElPTik7Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICAg
ICAgcGFyZW50LT5yZW1vdmVDaGlsZCgqdGhpcywgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIHNldERhdGEobmV3VGV4dCwgSUdOT1JFX0VY
Q0VQVElPTik7Ci0gICAgcmV0dXJuIHByb3RlY3RlZFRoaXMucmVsZWFzZSgpOworICAgIHJldHVy
biBwcm90ZWN0ZWRUaGlzOwogfQogCiBTdHJpbmcgVGV4dDo6bm9kZU5hbWUoKSBjb25zdApAQCAt
MTY2LDcgKzE2Niw3IEBAIE5vZGU6Ok5vZGVUeXBlIFRleHQ6Om5vZGVUeXBlKCkgY29uc3QKICAg
ICByZXR1cm4gVEVYVF9OT0RFOwogfQogCi1SZWZQdHI8Tm9kZT4gVGV4dDo6Y2xvbmVOb2RlSW50
ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uKQorUmVmPE5v
ZGU+IFRleHQ6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xv
bmluZ09wZXJhdGlvbikKIHsKICAgICByZXR1cm4gY3JlYXRlKHRhcmdldERvY3VtZW50LCBkYXRh
KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9UZXh0LmgKaW5kZXggYTk2NzQzNi4uZWZkNmJkZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1RleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5oCkBA
IC02Miw3ICs2Miw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgdmlydHVhbCBTdHJpbmcg
bm9kZU5hbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIE5vZGVUeXBlIG5vZGVUeXBl
KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZWZQdHI8Tm9kZT4gY2xvbmVOb2RlSW50
ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24p
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlKSBj
b25zdCBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgUmVmPFRleHQ+IHZpcnR1YWxDcmVhdGUoY29u
c3QgU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5v
ZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQu
Y3BwCmluZGV4IDZhOGQ5ZTkuLmNlZWVkZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QXBwZW5kTm9kZUNvbW1hbmQuY3BwCkBAIC0zNSwxMyArMzUsMTIgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1BcHBlbmROb2RlQ29tbWFuZDo6QXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgRWRpdEFjdGlv
biBlZGl0aW5nQWN0aW9uKQorQXBwZW5kTm9kZUNvbW1hbmQ6OkFwcGVuZE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBOb2RlJiBub2RlLCBFZGl0QWN0aW9uIGVk
aXRpbmdBY3Rpb24pCiAgICAgOiBTaW1wbGVFZGl0Q29tbWFuZChwYXJlbnQtPmRvY3VtZW50KCks
IGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX3BhcmVudChwYXJlbnQpCiAgICAgLCBtX25vZGUobm9k
ZSkKIHsKICAgICBBU1NFUlQobV9wYXJlbnQpOwotICAgIEFTU0VSVChtX25vZGUpOwogICAgIEFT
U0VSVCghbV9ub2RlLT5wYXJlbnROb2RlKCkpOwogCiAgICAgQVNTRVJUKG1fcGFyZW50LT5oYXNF
ZGl0YWJsZVN0eWxlKCkgfHwgIW1fcGFyZW50LT5yZW5kZXJlcigpKTsKQEAgLTY4LDEwICs2Nywx
MSBAQCB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKICAgICBpZiAoIW1fcGFyZW50
LT5oYXNFZGl0YWJsZVN0eWxlKCkgJiYgbV9wYXJlbnQtPnJlbmRlcmVyKCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIG1fcGFyZW50LT5hcHBlbmRDaGlsZChtX25vZGUuZ2V0KCksIElHTk9SRV9F
WENFUFRJT04pOworICAgIFJlZjxOb2RlPiBub2RlVG9BcHBlbmQgPSBtX25vZGUuY29weVJlZigp
OworICAgIG1fcGFyZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUobm9kZVRvQXBwZW5kKSwgSUdO
T1JFX0VYQ0VQVElPTik7CiAKICAgICBpZiAoc2hvdWxkUG9zdEFjY2Vzc2liaWxpdHlOb3RpZmlj
YXRpb24oKSkKLSAgICAgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9u
b2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCkpOworICAgICAgICBzZW5kQVhUZXh0Q2hhbmdlZEln
bm9yaW5nTGluZUJyZWFrcyhtX25vZGUucHRyKCksIGFwcGx5RWRpdFR5cGUoKSk7CiB9CiAKIHZv
aWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCkBAIC04MSw3ICs4MSw3IEBAIHZvaWQg
QXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiAKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0
aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAogICAgIGlmIChzaG91bGRQb3N0
QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbigpKQotICAgICAgICBzZW5kQVhUZXh0Q2hhbmdlZEln
bm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpKTsKKyAgICAg
ICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLnB0cigpLCB1bmFw
cGx5RWRpdFR5cGUoKSk7CiAKICAgICBtX25vZGUtPnJlbW92ZShJR05PUkVfRVhDRVBUSU9OKTsK
IH0KQEAgLTkwLDcgKzkwLDcgQEAgdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkK
IHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+
JiBub2RlcykKIHsKICAgICBhZGROb2RlQW5kRGVzY2VuZGFudHMobV9wYXJlbnQuZ2V0KCksIG5v
ZGVzKTsKLSAgICBhZGROb2RlQW5kRGVzY2VuZGFudHMobV9ub2RlLmdldCgpLCBub2Rlcyk7Cisg
ICAgYWRkTm9kZUFuZERlc2NlbmRhbnRzKG1fbm9kZS5wdHIoKSwgbm9kZXMpOwogfQogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQu
aCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaAppbmRleCBmNzgy
OTc1Li5mNjRiYWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5v
ZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFu
ZC5oCkBAIC0zMiwxMyArMzIsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBcHBl
bmROb2RlQ29tbWFuZCA6IHB1YmxpYyBTaW1wbGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFJlZjxBcHBlbmROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Q29udGFpbmVy
Tm9kZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIEVkaXRBY3Rpb24gZWRpdGluZ0Fj
dGlvbikKKyAgICBzdGF0aWMgUmVmPEFwcGVuZE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0
cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIE5vZGUmIG5vZGUsIEVkaXRBY3Rpb24gZWRpdGluZ0Fj
dGlvbikKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFwcGVuZE5vZGVDb21t
YW5kKHBhcmVudCwgbm9kZSwgZWRpdGluZ0FjdGlvbikpOwogICAgIH0KIAogcHJpdmF0ZToKLSAg
ICBBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFz
c1JlZlB0cjxOb2RlPiwgRWRpdEFjdGlvbik7CisgICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIE5vZGUmLCBFZGl0QWN0aW9uKTsKIAogICAgIHZp
cnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBs
eSgpIG92ZXJyaWRlOwpAQCAtNDgsNyArNDgsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBS
ZWZQdHI8Q29udGFpbmVyTm9kZT4gbV9wYXJlbnQ7Ci0gICAgUmVmUHRyPE5vZGU+IG1fbm9kZTsK
KyAgICBSZWY8Tm9kZT4gbV9ub2RlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAppbmRleCAz
ZDc3OTQyLi41ZDlkMzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBv
c2l0ZUVkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0
ZUVkaXRDb21tYW5kLmNwcApAQCAtMzk1LDcgKzM5NSw4IEBAIHZvaWQgQ29tcG9zaXRlRWRpdENv
bW1hbmQ6Omluc2VydE5vZGVBdChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBjb25zdCBQ
b3NpCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjphcHBlbmROb2RlKFBhc3NSZWZQdHI8Tm9k
ZT4gbm9kZSwgUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQpCiB7CiAgICAgQVNTRVJU
KGNhbkhhdmVDaGlsZHJlbkZvckVkaXRpbmcocGFyZW50LmdldCgpKSk7Ci0gICAgYXBwbHlDb21t
YW5kVG9Db21wb3NpdGUoQXBwZW5kTm9kZUNvbW1hbmQ6OmNyZWF0ZShwYXJlbnQsIG5vZGUsIGVk
aXRpbmdBY3Rpb24oKSkpOworICAgIEFTU0VSVChub2RlKTsKKyAgICBhcHBseUNvbW1hbmRUb0Nv
bXBvc2l0ZShBcHBlbmROb2RlQ29tbWFuZDo6Y3JlYXRlKHBhcmVudCwgKm5vZGUsIGVkaXRpbmdB
Y3Rpb24oKSkpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVDaGlsZHJl
bkluUmFuZ2UoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0
bykKQEAgLTQxNCw3ICs0MTUsNyBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVO
b2RlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVudAogewogICAgIGlm
ICghbm9kZSB8fCAhbm9kZS0+bm9uU2hhZG93Qm91bmRhcnlQYXJlbnROb2RlKCkpCiAgICAgICAg
IHJldHVybjsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShSZW1vdmVOb2RlQ29tbWFuZDo6
Y3JlYXRlKG5vZGUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CisgICAg
YXBwbHlDb21tYW5kVG9Db21wb3NpdGUoUmVtb3ZlTm9kZUNvbW1hbmQ6OmNyZWF0ZSgqbm9kZSwg
c2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKIH0KIAogdm9pZCBDb21wb3Np
dGVFZGl0Q29tbWFuZDo6cmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbihQYXNzUmVmUHRyPE5v
ZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQpAQCAtMTU0MSw3ICsxNTQyLDcgQEAgUGFzc1JlZlB0
cjxOb2RlPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6c3BsaXRUcmVlVG9Ob2RlKE5vZGUqIHN0YXJ0
LCBOb2RlKiBlbmQsIGIKICAgICByZXR1cm4gbm9kZS5yZWxlYXNlKCk7CiB9CiAKLVBhc3NSZWZQ
dHI8RWxlbWVudD4gY3JlYXRlQmxvY2tQbGFjZWhvbGRlckVsZW1lbnQoRG9jdW1lbnQmIGRvY3Vt
ZW50KQorUmVmPEVsZW1lbnQ+IGNyZWF0ZUJsb2NrUGxhY2Vob2xkZXJFbGVtZW50KERvY3VtZW50
JiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChiclRhZywg
ZmFsc2UpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxl
Y3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5jcHAKaW5kZXggYzY0OTFkMi4uNTYwOTk3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC02MzIsNyArNjMyLDcg
QEAgdm9pZCBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjptZXJnZVBhcmFncmFwaHMoKQogICAgIAog
ICAgIC8vIFdlIG5lZWQgdG8gbWVyZ2UgaW50byBtX3Vwc3RyZWFtU3RhcnQncyBibG9jaywgYnV0
IGl0J3MgYmVlbiBlbXB0aWVkIG91dCBhbmQgY29sbGFwc2VkIGJ5IGRlbGV0aW9uLgogICAgIGlm
ICghbWVyZ2VEZXN0aW5hdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWROb2RlKCkgfHwg
IW1lcmdlRGVzdGluYXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkTm9kZSgpLT5pc0Rl
c2NlbmRhbnRPZihlbmNsb3NpbmdCbG9jayhtX3Vwc3RyZWFtU3RhcnQuY29udGFpbmVyTm9kZSgp
KSkgfHwgbV9zdGFydHNBdEVtcHR5TGluZSkgewotICAgICAgICBpbnNlcnROb2RlQXQoY3JlYXRl
QnJlYWtFbGVtZW50KGRvY3VtZW50KCkpLmdldCgpLCBtX3Vwc3RyZWFtU3RhcnQpOworICAgICAg
ICBpbnNlcnROb2RlQXQoY3JlYXRlQnJlYWtFbGVtZW50KGRvY3VtZW50KCkpLnB0cigpLCBtX3Vw
c3RyZWFtU3RhcnQpOwogICAgICAgICBtZXJnZURlc3RpbmF0aW9uID0gVmlzaWJsZVBvc2l0aW9u
KG1fdXBzdHJlYW1TdGFydCk7CiAgICAgfQogICAgIApAQCAtODU1LDcgKzg1NSw3IEBAIHZvaWQg
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgCiAgICAgcmVtb3ZlUHJldmlv
dXNseVNlbGVjdGVkRW1wdHlUYWJsZVJvd3MoKTsKICAgICAKLSAgICBSZWZQdHI8Tm9kZT4gcGxh
Y2Vob2xkZXIgPSBtX25lZWRQbGFjZWhvbGRlciA/IGNyZWF0ZUJyZWFrRWxlbWVudChkb2N1bWVu
dCgpKS5nZXQoKSA6IDA7CisgICAgUmVmUHRyPE5vZGU+IHBsYWNlaG9sZGVyID0gbV9uZWVkUGxh
Y2Vob2xkZXIgPyBjcmVhdGVCcmVha0VsZW1lbnQoZG9jdW1lbnQoKSkucHRyKCkgOiBudWxscHRy
OwogICAgIAogICAgIGlmIChwbGFjZWhvbGRlcikgewogICAgICAgICBpZiAobV9zYW5pdGl6ZU1h
cmt1cCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCmluZGV4IDBmOGY4
ODAuLjEyY2RkMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29t
bWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcApA
QCAtMTY1LDExICsxNjUsMTEgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZUluc2VydEZyYWdtZW50KEZy
YW1lJiBmcmFtZSwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmEKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotc3RhdGljIGJvb2wgZXhlY3V0ZUluc2VydE5vZGUoRnJhbWUmIGZyYW1lLCBQ
YXNzUmVmUHRyPE5vZGU+IGNvbnRlbnQpCitzdGF0aWMgYm9vbCBleGVjdXRlSW5zZXJ0Tm9kZShG
cmFtZSYgZnJhbWUsIFJlZjxOb2RlPiYmIGNvbnRlbnQpCiB7CiAgICAgUmVmUHRyPERvY3VtZW50
RnJhZ21lbnQ+IGZyYWdtZW50ID0gRG9jdW1lbnRGcmFnbWVudDo6Y3JlYXRlKCpmcmFtZS5kb2N1
bWVudCgpKTsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBmcmFnbWVudC0+YXBwZW5k
Q2hpbGQoY29udGVudCwgZWMpOworICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUo
Y29udGVudCksIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBy
ZXR1cm4gZXhlY3V0ZUluc2VydEZyYWdtZW50KGZyYW1lLCBmcmFnbWVudC5yZWxlYXNlKCkpOwpA
QCAtNDY0LDEwICs0NjQsMTAgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZUluc2VydEJhY2t0YWIoRnJh
bWUmIGZyYW1lLCBFdmVudCogZXZlbnQsIEVkaXRvckNvbW1hbmRTb3VyY2UKIAogc3RhdGljIGJv
b2wgZXhlY3V0ZUluc2VydEhvcml6b250YWxSdWxlKEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0
b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJpbmcmIHZhbHVlKQogewotICAgIFJlZlB0cjxIVE1M
SFJFbGVtZW50PiBydWxlID0gSFRNTEhSRWxlbWVudDo6Y3JlYXRlKCpmcmFtZS5kb2N1bWVudCgp
KTsKKyAgICBSZWY8SFRNTEhSRWxlbWVudD4gcnVsZSA9IEhUTUxIUkVsZW1lbnQ6OmNyZWF0ZSgq
ZnJhbWUuZG9jdW1lbnQoKSk7CiAgICAgaWYgKCF2YWx1ZS5pc0VtcHR5KCkpCiAgICAgICAgIHJ1
bGUtPnNldElkQXR0cmlidXRlKHZhbHVlKTsKLSAgICByZXR1cm4gZXhlY3V0ZUluc2VydE5vZGUo
ZnJhbWUsIHJ1bGUucmVsZWFzZSgpKTsKKyAgICByZXR1cm4gZXhlY3V0ZUluc2VydE5vZGUoZnJh
bWUsIFdURjo6bW92ZShydWxlKSk7CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVJbnNlcnRIVE1M
KEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJpbmcm
IHZhbHVlKQpAQCAtNDc4LDkgKzQ3OCw5IEBAIHN0YXRpYyBib29sIGV4ZWN1dGVJbnNlcnRIVE1M
KEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBTCiBzdGF0
aWMgYm9vbCBleGVjdXRlSW5zZXJ0SW1hZ2UoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNv
bW1hbmRTb3VyY2UsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7CiAgICAgLy8gRklYTUU6IElmIHVz
ZXJJbnRlcmZhY2UgaXMgdHJ1ZSwgd2Ugc2hvdWxkIGRpc3BsYXkgYSBkaWFsb2cgYm94IGFuZCBs
ZXQgdGhlIHVzZXIgY2hvb3NlIGEgbG9jYWwgaW1hZ2UuCi0gICAgUmVmUHRyPEhUTUxJbWFnZUVs
ZW1lbnQ+IGltYWdlID0gSFRNTEltYWdlRWxlbWVudDo6Y3JlYXRlKCpmcmFtZS5kb2N1bWVudCgp
KTsKKyAgICBSZWY8SFRNTEltYWdlRWxlbWVudD4gaW1hZ2UgPSBIVE1MSW1hZ2VFbGVtZW50Ojpj
cmVhdGUoKmZyYW1lLmRvY3VtZW50KCkpOwogICAgIGltYWdlLT5zZXRTcmModmFsdWUpOwotICAg
IHJldHVybiBleGVjdXRlSW5zZXJ0Tm9kZShmcmFtZSwgaW1hZ2UucmVsZWFzZSgpKTsKKyAgICBy
ZXR1cm4gZXhlY3V0ZUluc2VydE5vZGUoZnJhbWUsIFdURjo6bW92ZShpbWFnZSkpOwogfQogCiBz
dGF0aWMgYm9vbCBleGVjdXRlSW5zZXJ0TGluZUJyZWFrKEZyYW1lJiBmcmFtZSwgRXZlbnQqIGV2
ZW50LCBFZGl0b3JDb21tYW5kU291cmNlIHNvdXJjZSwgY29uc3QgU3RyaW5nJikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0TGluZUJyZWFrQ29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydExpbmVCcmVha0NvbW1hbmQuY3BwCmluZGV4IDZl
ZTIxZDkuLjI1YWIwNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0
TGluZUJyZWFrQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRM
aW5lQnJlYWtDb21tYW5kLmNwcApAQCAtMTI5LDcgKzEyOSw3IEBAIHZvaWQgSW5zZXJ0TGluZUJy
ZWFrQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgICAgIAogICAgICAgICAvLyBJbnNlcnQgYW4gZXh0
cmEgYnIgb3IgJ1xuJyBpZiB0aGUganVzdCBpbnNlcnRlZCBvbmUgY29sbGFwc2VkLgogICAgICAg
ICBpZiAoIWlzU3RhcnRPZlBhcmFncmFwaChwb3NpdGlvbkJlZm9yZU5vZGUobm9kZVRvSW5zZXJ0
LmdldCgpKSkpCi0gICAgICAgICAgICBpbnNlcnROb2RlQmVmb3JlKG5vZGVUb0luc2VydC0+Y2xv
bmVOb2RlKGZhbHNlKS5nZXQoKSwgbm9kZVRvSW5zZXJ0LmdldCgpKTsKKyAgICAgICAgICAgIGlu
c2VydE5vZGVCZWZvcmUobm9kZVRvSW5zZXJ0LT5jbG9uZU5vZGUoZmFsc2UpLCBub2RlVG9JbnNl
cnQuZ2V0KCkpOwogICAgICAgICAKICAgICAgICAgc2V0RW5kaW5nU2VsZWN0aW9uKFZpc2libGVT
ZWxlY3Rpb24ocG9zaXRpb25JblBhcmVudEFmdGVyTm9kZShub2RlVG9JbnNlcnQuZ2V0KCkpLCBE
T1dOU1RSRUFNLCBlbmRpbmdTZWxlY3Rpb24oKS5pc0RpcmVjdGlvbmFsKCkpKTsKICAgICAvLyBJ
ZiB3ZSdyZSBpbnNlcnRpbmcgYWZ0ZXIgYWxsIG9mIHRoZSByZW5kZXJlZCB0ZXh0IGluIGEgdGV4
dCBub2RlLCBvciBpbnRvIGEgbm9uLXRleHQgbm9kZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKaW5kZXggZmExNGQwNy4uNTBmNjU0
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6
ZG9BcHBseSgpCiAgICAgICAgIHJldHVybjsKICAgICBBU1NFUlQoaXNFZGl0YWJsZU5vZGUoKnBh
cmVudCkpOwogCi0gICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobV9pbnNlcnRDaGlsZC5nZXQoKSwg
bV9yZWZDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgcGFyZW50LT5pbnNlcnRC
ZWZvcmUoKm1faW5zZXJ0Q2hpbGQsIG1fcmVmQ2hpbGQuZ2V0KCksIElHTk9SRV9FWENFUFRJT04p
OwogCiAgICAgaWYgKHNob3VsZFBvc3RBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uKCkpIHsKICAg
ICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBpczxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSA/
IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpLCAwKSA6IGNyZWF0
ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihtX2luc2VydENoaWxkLmdldCgpLCAwKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFu
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNv
bW1hbmQuY3BwCmluZGV4IDdkZDAxNjAuLjE1MDMyMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcApA
QCAtMzY4LDcgKzM2OCw3IEBAIHZvaWQgSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6
ZG9BcHBseSgpCiAgICAgLy8gY3JlYXRlZC4gIEFsbCBvZiB0aGUgbm9kZXMsIHN0YXJ0aW5nIGF0
IHZpc2libGVQb3MsIGFyZSBhYm91dCB0byBiZSBhZGRlZCB0byB0aGUgbmV3IHBhcmFncmFwaCAK
ICAgICAvLyBlbGVtZW50LiAgSWYgdGhlIGZpcnN0IG5vZGUgdG8gYmUgaW5zZXJ0ZWQgd29uJ3Qg
YmUgb25lIHRoYXQgd2lsbCBob2xkIGFuIGVtcHR5IGxpbmUgb3BlbiwgYWRkIGEgYnIuCiAgICAg
aWYgKGlzRW5kT2ZQYXJhZ3JhcGgodmlzaWJsZVBvcykgJiYgIWxpbmVCcmVha0V4aXN0c0F0Vmlz
aWJsZVBvc2l0aW9uKHZpc2libGVQb3MpKQotICAgICAgICBhcHBlbmROb2RlKGNyZWF0ZUJyZWFr
RWxlbWVudChkb2N1bWVudCgpKS5nZXQoKSwgYmxvY2tUb0luc2VydC5nZXQoKSk7CisgICAgICAg
IGFwcGVuZE5vZGUoY3JlYXRlQnJlYWtFbGVtZW50KGRvY3VtZW50KCkpLCBibG9ja1RvSW5zZXJ0
LmdldCgpKTsKIAogICAgIC8vIE1vdmUgdGhlIHN0YXJ0IG5vZGUgYW5kIHRoZSBzaWJsaW5ncyBv
ZiB0aGUgc3RhcnQgbm9kZS4KICAgICBpZiAoVmlzaWJsZVBvc2l0aW9uKGluc2VydGlvblBvc2l0
aW9uKSAhPSBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb25CZWZvcmVOb2RlKGJsb2NrVG9JbnNlcnQu
Z2V0KCkpKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NZXJnZUlkZW50
aWNhbEVsZW1lbnRzQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01lcmdlSWRl
bnRpY2FsRWxlbWVudHNDb21tYW5kLmNwcAppbmRleCA0NjUxODg0Li40YTU5ZWY2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01lcmdlSWRlbnRpY2FsRWxlbWVudHND
b21tYW5kLmNwcApAQCAtNDcsMTMgKzQ3LDEzIEBAIHZvaWQgTWVyZ2VJZGVudGljYWxFbGVtZW50
c0NvbW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgbV9hdENoaWxkID0gbV9lbGVtZW50Mi0+Zmlyc3RD
aGlsZCgpOwogCi0gICAgVmVjdG9yPFJlZlB0cjxOb2RlPj4gY2hpbGRyZW47CisgICAgVmVjdG9y
PFJlZjxOb2RlPj4gY2hpbGRyZW47CiAgICAgZm9yIChOb2RlKiBjaGlsZCA9IG1fZWxlbWVudDEt
PmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCi0gICAg
ICAgIGNoaWxkcmVuLmFwcGVuZChjaGlsZCk7CisgICAgICAgIGNoaWxkcmVuLmFwcGVuZCgqY2hp
bGQpOwogCiAgICAgc2l6ZV90IHNpemUgPSBjaGlsZHJlbi5zaXplKCk7CiAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCi0gICAgICAgIG1fZWxlbWVudDItPmluc2VydEJlZm9y
ZShjaGlsZHJlbltpXS5yZWxlYXNlKCksIG1fYXRDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElP
Tik7CisgICAgICAgIG1fZWxlbWVudDItPmluc2VydEJlZm9yZShXVEY6Om1vdmUoY2hpbGRyZW5b
aV0pLCBtX2F0Q2hpbGQuZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOwogCiAgICAgbV9lbGVtZW50
MS0+cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwogfQpAQCAtNzEsMTcgKzcxLDE3IEBAIHZvaWQg
TWVyZ2VJZGVudGljYWxFbGVtZW50c0NvbW1hbmQ6OmRvVW5hcHBseSgpCiAKICAgICBFeGNlcHRp
b25Db2RlIGVjID0gMDsKIAotICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG1fZWxlbWVudDEuZ2V0
KCksIG1fZWxlbWVudDIuZ2V0KCksIGVjKTsKKyAgICBwYXJlbnQtPmluc2VydEJlZm9yZSgqbV9l
bGVtZW50MSwgbV9lbGVtZW50Mi5nZXQoKSwgZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0
dXJuOwogCi0gICAgVmVjdG9yPFJlZlB0cjxOb2RlPj4gY2hpbGRyZW47CisgICAgVmVjdG9yPFJl
ZjxOb2RlPj4gY2hpbGRyZW47CiAgICAgZm9yIChOb2RlKiBjaGlsZCA9IG1fZWxlbWVudDItPmZp
cnN0Q2hpbGQoKTsgY2hpbGQgJiYgY2hpbGQgIT0gYXRDaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4
dFNpYmxpbmcoKSkKLSAgICAgICAgY2hpbGRyZW4uYXBwZW5kKGNoaWxkKTsKKyAgICAgICAgY2hp
bGRyZW4uYXBwZW5kKCpjaGlsZCk7CiAKICAgICBzaXplX3Qgc2l6ZSA9IGNoaWxkcmVuLnNpemUo
KTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgbV9lbGVt
ZW50MS0+YXBwZW5kQ2hpbGQoY2hpbGRyZW5baV0ucmVsZWFzZSgpLCBlYyk7CisgICAgICAgIG1f
ZWxlbWVudDEtPmFwcGVuZENoaWxkKFdURjo6bW92ZShjaGlsZHJlbltpXSksIGVjKTsKIH0KIAog
I2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3Zl
Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFu
ZC5jcHAKaW5kZXggMzFjNTRkMS4uYmVlYzdlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZW1vdmVOb2RlQ29tbWFuZC5jcHAKQEAgLTM0LDEyICszNCwxMSBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLVJlbW92ZU5vZGVDb21tYW5kOjpSZW1vdmVOb2RlQ29tbWFuZChQYXNzUmVm
UHRyPE5vZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQotICAgIDogU2ltcGxlRWRpdENvbW1hbmQo
bm9kZS0+ZG9jdW1lbnQoKSkKK1JlbW92ZU5vZGVDb21tYW5kOjpSZW1vdmVOb2RlQ29tbWFuZChO
b2RlJiBub2RlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1
bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICA6IFNpbXBsZUVkaXRDb21tYW5kKG5vZGUu
ZG9jdW1lbnQoKSkKICAgICAsIG1fbm9kZShub2RlKQogICAgICwgbV9zaG91bGRBc3N1bWVDb250
ZW50SXNBbHdheXNFZGl0YWJsZShzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkK
IHsKLSAgICBBU1NFUlQobV9ub2RlKTsKICAgICBBU1NFUlQobV9ub2RlLT5wYXJlbnROb2RlKCkp
OwogfQogCkBAIC02NCw3ICs2Myw3IEBAIHZvaWQgUmVtb3ZlTm9kZUNvbW1hbmQ6OmRvVW5hcHBs
eSgpCiAgICAgaWYgKCFwYXJlbnQgfHwgIXBhcmVudC0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBwYXJlbnQtPmluc2VydEJlZm9yZShtX25vZGUuZ2V0KCksIHJl
ZkNoaWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBwYXJlbnQtPmluc2VydEJlZm9y
ZShtX25vZGUuY29weVJlZigpLCByZWZDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiB9
CiAKICNpZm5kZWYgTkRFQlVHCkBAIC03Miw3ICs3MSw3IEBAIHZvaWQgUmVtb3ZlTm9kZUNvbW1h
bmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIHsKICAgICBhZGRO
b2RlQW5kRGVzY2VuZGFudHMobV9wYXJlbnQuZ2V0KCksIG5vZGVzKTsKICAgICBhZGROb2RlQW5k
RGVzY2VuZGFudHMobV9yZWZDaGlsZC5nZXQoKSwgbm9kZXMpOwotICAgIGFkZE5vZGVBbmREZXNj
ZW5kYW50cyhtX25vZGUuZ2V0KCksIG5vZGVzKTsKKyAgICBhZGROb2RlQW5kRGVzY2VuZGFudHMo
bV9ub2RlLnB0cigpLCBub2Rlcyk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZW1vdmVOb2RlQ29tbWFuZC5oCmluZGV4IDE4MWU5ODUuLjAxMzUxN2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmgKQEAgLTMyLDEzICszMiwxMyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbW92ZU5vZGVDb21tYW5kIDogcHVibGljIFNp
bXBsZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFJlbW92ZU5vZGVDb21t
YW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBTaG91bGRBc3N1bWVDb250ZW50SXNB
bHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICBz
dGF0aWMgUmVmPFJlbW92ZU5vZGVDb21tYW5kPiBjcmVhdGUoTm9kZSYgbm9kZSwgU2hvdWxkQXNz
dW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRp
dGFibGUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdmVOb2RlQ29t
bWFuZChub2RlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOwogICAgIH0K
IAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBSZW1vdmVOb2RlQ29tbWFuZChQYXNzUmVmUHRyPE5v
ZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisgICAgUmVtb3ZlTm9k
ZUNvbW1hbmQoTm9kZSYsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRv
VW5hcHBseSgpIG92ZXJyaWRlOwpAQCAtNDcsNyArNDcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgogCi0g
ICAgUmVmUHRyPE5vZGU+IG1fbm9kZTsKKyAgICBSZWY8Tm9kZT4gbV9ub2RlOwogICAgIFJlZlB0
cjxDb250YWluZXJOb2RlPiBtX3BhcmVudDsKICAgICBSZWZQdHI8Tm9kZT4gbV9yZWZDaGlsZDsK
ICAgICBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBtX3Nob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1JlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcAppbmRleCAwZTE4OWJkLi4xMGJlZjNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VOb2RlV2l0aFNwYW5Db21t
YW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VOb2RlV2l0aFNwYW5D
b21tYW5kLmNwcApAQCAtNDgsMTkgKzQ4LDE5IEBAIFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5k
OjpSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZChQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlCiAg
ICAgQVNTRVJUKG1fZWxlbWVudFRvUmVwbGFjZSk7CiB9CiAKLXN0YXRpYyB2b2lkIHN3YXBJbk5v
ZGVQcmVzZXJ2aW5nQXR0cmlidXRlc0FuZENoaWxkcmVuKEhUTUxFbGVtZW50KiBuZXdOb2RlLCBI
VE1MRWxlbWVudCogbm9kZVRvUmVwbGFjZSkKK3N0YXRpYyB2b2lkIHN3YXBJbk5vZGVQcmVzZXJ2
aW5nQXR0cmlidXRlc0FuZENoaWxkcmVuKEhUTUxFbGVtZW50JiBuZXdOb2RlLCBIVE1MRWxlbWVu
dCYgbm9kZVRvUmVwbGFjZSkKIHsKLSAgICBBU1NFUlQobm9kZVRvUmVwbGFjZS0+aW5Eb2N1bWVu
dCgpKTsKLSAgICBSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50Tm9kZSA9IG5vZGVUb1JlcGxh
Y2UtPnBhcmVudE5vZGUoKTsKKyAgICBBU1NFUlQobm9kZVRvUmVwbGFjZS5pbkRvY3VtZW50KCkp
OworICAgIFJlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnROb2RlID0gbm9kZVRvUmVwbGFjZS5w
YXJlbnROb2RlKCk7CiAKICAgICAvLyBGSVhNRTogRml4IHRoaXMgdG8gc2VuZCB0aGUgcHJvcGVy
IE11dGF0aW9uUmVjb3JkcyB3aGVuIE11dGF0aW9uT2JzZXJ2ZXJzIGFyZSBwcmVzZW50LgotICAg
IG5ld05vZGUtPmNsb25lRGF0YUZyb21FbGVtZW50KCpub2RlVG9SZXBsYWNlKTsKKyAgICBuZXdO
b2RlLmNsb25lRGF0YUZyb21FbGVtZW50KG5vZGVUb1JlcGxhY2UpOwogICAgIE5vZGVWZWN0b3Ig
Y2hpbGRyZW47Ci0gICAgZ2V0Q2hpbGROb2Rlcygqbm9kZVRvUmVwbGFjZSwgY2hpbGRyZW4pOwor
ICAgIGdldENoaWxkTm9kZXMobm9kZVRvUmVwbGFjZSwgY2hpbGRyZW4pOwogICAgIGZvciAoYXV0
byYgY2hpbGQgOiBjaGlsZHJlbikKLSAgICAgICAgbmV3Tm9kZS0+YXBwZW5kQ2hpbGQoY2hpbGQu
cHRyKCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAgICBuZXdOb2RlLmFwcGVuZENoaWxk
KFdURjo6bW92ZShjaGlsZCksIEFTU0VSVF9OT19FWENFUFRJT04pOwogCi0gICAgcGFyZW50Tm9k
ZS0+aW5zZXJ0QmVmb3JlKG5ld05vZGUsIG5vZGVUb1JlcGxhY2UsIEFTU0VSVF9OT19FWENFUFRJ
T04pOworICAgIHBhcmVudE5vZGUtPmluc2VydEJlZm9yZShuZXdOb2RlLCAmbm9kZVRvUmVwbGFj
ZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgcGFyZW50Tm9kZS0+cmVtb3ZlQ2hpbGQobm9k
ZVRvUmVwbGFjZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiB9CiAKQEAgLTcwLDE0ICs3MCwxNCBA
QCB2b2lkIFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kOjpkb0FwcGx5KCkKICAgICAgICAgcmV0
dXJuOwogICAgIGlmICghbV9zcGFuRWxlbWVudCkKICAgICAgICAgbV9zcGFuRWxlbWVudCA9IGNy
ZWF0ZUhUTUxFbGVtZW50KG1fZWxlbWVudFRvUmVwbGFjZS0+ZG9jdW1lbnQoKSwgc3BhblRhZyk7
Ci0gICAgc3dhcEluTm9kZVByZXNlcnZpbmdBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4obV9zcGFuRWxl
bWVudC5nZXQoKSwgbV9lbGVtZW50VG9SZXBsYWNlLmdldCgpKTsKKyAgICBzd2FwSW5Ob2RlUHJl
c2VydmluZ0F0dHJpYnV0ZXNBbmRDaGlsZHJlbigqbV9zcGFuRWxlbWVudCwgKm1fZWxlbWVudFRv
UmVwbGFjZSk7CiB9CiAKIHZvaWQgUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQ6OmRvVW5hcHBs
eSgpCiB7CiAgICAgaWYgKCFtX3NwYW5FbGVtZW50LT5pbkRvY3VtZW50KCkpCiAgICAgICAgIHJl
dHVybjsKLSAgICBzd2FwSW5Ob2RlUHJlc2VydmluZ0F0dHJpYnV0ZXNBbmRDaGlsZHJlbihtX2Vs
ZW1lbnRUb1JlcGxhY2UuZ2V0KCksIG1fc3BhbkVsZW1lbnQuZ2V0KCkpOworICAgIHN3YXBJbk5v
ZGVQcmVzZXJ2aW5nQXR0cmlidXRlc0FuZENoaWxkcmVuKCptX2VsZW1lbnRUb1JlcGxhY2UsICpt
X3NwYW5FbGVtZW50KTsKIH0KIAogI2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggZWVlMjIwYy4uMDhj
NjI3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZC5jcHAKQEAgLTIzOCw3ICsyMzgsNyBAQCB2b2lkIFJlcGxhY2VtZW50RnJhZ21lbnQ6
OnJlbW92ZU5vZGUoUGFzc1JlZlB0cjxOb2RlPiBub2RlKQogICAgIGlmICghcGFyZW50KQogICAg
ICAgICByZXR1cm47CiAgICAgCi0gICAgcGFyZW50LT5yZW1vdmVDaGlsZChub2RlLmdldCgpLCBB
U1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBwYXJlbnQtPnJlbW92ZUNoaWxkKCpub2RlLCBBU1NF
UlRfTk9fRVhDRVBUSU9OKTsKIH0KIAogdm9pZCBSZXBsYWNlbWVudEZyYWdtZW50OjppbnNlcnRO
b2RlQmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgTm9kZSogcmVmTm9kZSkKQEAgLTI1MCwx
NCArMjUwLDE0IEBAIHZvaWQgUmVwbGFjZW1lbnRGcmFnbWVudDo6aW5zZXJ0Tm9kZUJlZm9yZShQ
YXNzUmVmUHRyPE5vZGU+IG5vZGUsIE5vZGUqIHJlZk5vZGUpCiAgICAgaWYgKCFwYXJlbnQpCiAg
ICAgICAgIHJldHVybjsKICAgICAgICAgCi0gICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobm9kZSwg
cmVmTm9kZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgcGFyZW50LT5pbnNlcnRCZWZvcmUo
Km5vZGUsIHJlZk5vZGUsIEFTU0VSVF9OT19FWENFUFRJT04pOwogfQogCiBQYXNzUmVmUHRyPFN0
eWxlZEVsZW1lbnQ+IFJlcGxhY2VtZW50RnJhZ21lbnQ6Omluc2VydEZyYWdtZW50Rm9yVGVzdFJl
bmRlcmluZyhOb2RlKiByb290RWRpdGFibGVFbGVtZW50KQogewogICAgIFJlZlB0cjxTdHlsZWRF
bGVtZW50PiBob2xkZXIgPSBjcmVhdGVEZWZhdWx0UGFyYWdyYXBoRWxlbWVudChkb2N1bWVudCgp
KTsKIAotICAgIGhvbGRlci0+YXBwZW5kQ2hpbGQobV9mcmFnbWVudCwgQVNTRVJUX05PX0VYQ0VQ
VElPTik7CisgICAgaG9sZGVyLT5hcHBlbmRDaGlsZCgqbV9mcmFnbWVudCwgQVNTRVJUX05PX0VY
Q0VQVElPTik7CiAgICAgcm9vdEVkaXRhYmxlRWxlbWVudC0+YXBwZW5kQ2hpbGQoaG9sZGVyLmdl
dCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dEln
bm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogCkBAIC0yNzAsOCArMjcwLDggQEAgdm9pZCBSZXBs
YWNlbWVudEZyYWdtZW50OjpyZXN0b3JlQW5kUmVtb3ZlVGVzdFJlbmRlcmluZ05vZGVzVG9GcmFn
bWVudChTdHlsZWRFbGUKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIHdoaWxlIChSZWZQdHI8
Tm9kZT4gbm9kZSA9IGhvbGRlci0+Zmlyc3RDaGlsZCgpKSB7Ci0gICAgICAgIGhvbGRlci0+cmVt
b3ZlQ2hpbGQobm9kZS5nZXQoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0gICAgICAgIG1fZnJh
Z21lbnQtPmFwcGVuZENoaWxkKG5vZGUuZ2V0KCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAg
ICAgICBob2xkZXItPnJlbW92ZUNoaWxkKCpub2RlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAg
ICAgICAgbV9mcmFnbWVudC0+YXBwZW5kQ2hpbGQoKm5vZGUsIEFTU0VSVF9OT19FWENFUFRJT04p
OwogICAgIH0KIAogICAgIHJlbW92ZU5vZGUoaG9sZGVyKTsKQEAgLTE0NTQsNyArMTQ1NCw3IEBA
IE5vZGUqIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjppbnNlcnRBc0xpc3RJdGVtcyhQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBwcnBMaXN0CiAgICAgfQogCiAgICAgd2hpbGUgKFJlZlB0cjxOb2Rl
PiBsaXN0SXRlbSA9IGxpc3RFbGVtZW50LT5maXJzdENoaWxkKCkpIHsKLSAgICAgICAgbGlzdEVs
ZW1lbnQtPnJlbW92ZUNoaWxkKGxpc3RJdGVtLmdldCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsK
KyAgICAgICAgbGlzdEVsZW1lbnQtPnJlbW92ZUNoaWxkKCpsaXN0SXRlbSwgQVNTRVJUX05PX0VY
Q0VQVElPTik7CiAgICAgICAgIGlmIChpc1N0YXJ0IHx8IGlzTWlkZGxlKSB7CiAgICAgICAgICAg
ICBpbnNlcnROb2RlQmVmb3JlKGxpc3RJdGVtLCBsYXN0Tm9kZSk7CiAgICAgICAgICAgICBpbnNl
cnRlZE5vZGVzLnJlc3BvbmRUb05vZGVJbnNlcnRpb24obGlzdEl0ZW0uZ2V0KCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGxpdEVsZW1lbnRDb21tYW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BsaXRFbGVtZW50Q29tbWFuZC5jcHAKaW5kZXggMDliZWI4
NS4uMzVkODIxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGxpdEVsZW1l
bnRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0RWxlbWVudENv
bW1hbmQuY3BwCkBAIC00NywxNiArNDcsMTYgQEAgdm9pZCBTcGxpdEVsZW1lbnRDb21tYW5kOjpl
eGVjdXRlQXBwbHkoKQogICAgIGlmIChtX2F0Q2hpbGQtPnBhcmVudE5vZGUoKSAhPSBtX2VsZW1l
bnQyKQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgVmVjdG9yPFJlZlB0cjxOb2RlPj4gY2hp
bGRyZW47CisgICAgVmVjdG9yPFJlZjxOb2RlPj4gY2hpbGRyZW47CiAgICAgZm9yIChOb2RlKiBu
b2RlID0gbV9lbGVtZW50Mi0+Zmlyc3RDaGlsZCgpOyBub2RlICE9IG1fYXRDaGlsZDsgbm9kZSA9
IG5vZGUtPm5leHRTaWJsaW5nKCkpCi0gICAgICAgIGNoaWxkcmVuLmFwcGVuZChub2RlKTsKKyAg
ICAgICAgY2hpbGRyZW4uYXBwZW5kKCpub2RlKTsKICAgICAKICAgICBFeGNlcHRpb25Db2RlIGVj
ID0gMDsKICAgICAKICAgICBDb250YWluZXJOb2RlKiBwYXJlbnQgPSBtX2VsZW1lbnQyLT5wYXJl
bnROb2RlKCk7CiAgICAgaWYgKCFwYXJlbnQgfHwgIXBhcmVudC0+aGFzRWRpdGFibGVTdHlsZSgp
KQogICAgICAgICByZXR1cm47Ci0gICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobV9lbGVtZW50MS5n
ZXQoKSwgbV9lbGVtZW50Mi5nZXQoKSwgZWMpOworICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKCpt
X2VsZW1lbnQxLCBtX2VsZW1lbnQyLmdldCgpLCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICBy
ZXR1cm47CiAKQEAgLTY1LDcgKzY1LDcgQEAgdm9pZCBTcGxpdEVsZW1lbnRDb21tYW5kOjpleGVj
dXRlQXBwbHkoKQogCiAgICAgc2l6ZV90IHNpemUgPSBjaGlsZHJlbi5zaXplKCk7CiAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCi0gICAgICAgIG1fZWxlbWVudDEtPmFwcGVu
ZENoaWxkKGNoaWxkcmVuW2ldLCBlYyk7CisgICAgICAgIG1fZWxlbWVudDEtPmFwcGVuZENoaWxk
KFdURjo6bW92ZShjaGlsZHJlbltpXSksIGVjKTsKIH0KICAgICAKIHZvaWQgU3BsaXRFbGVtZW50
Q29tbWFuZDo6ZG9BcHBseSgpCkBAIC04MCwxNSArODAsMTUgQEAgdm9pZCBTcGxpdEVsZW1lbnRD
b21tYW5kOjpkb1VuYXBwbHkoKQogICAgIGlmICghbV9lbGVtZW50MSB8fCAhbV9lbGVtZW50MS0+
aGFzRWRpdGFibGVTdHlsZSgpIHx8ICFtX2VsZW1lbnQyLT5oYXNFZGl0YWJsZVN0eWxlKCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIFZlY3RvcjxSZWZQdHI8Tm9kZT4+IGNoaWxkcmVuOworICAg
IFZlY3RvcjxSZWY8Tm9kZT4+IGNoaWxkcmVuOwogICAgIGZvciAoTm9kZSogbm9kZSA9IG1fZWxl
bWVudDEtPmZpcnN0Q2hpbGQoKTsgbm9kZTsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpCi0g
ICAgICAgIGNoaWxkcmVuLmFwcGVuZChub2RlKTsKKyAgICAgICAgY2hpbGRyZW4uYXBwZW5kKCpu
b2RlKTsKIAogICAgIFJlZlB0cjxOb2RlPiByZWZDaGlsZCA9IG1fZWxlbWVudDItPmZpcnN0Q2hp
bGQoKTsKIAogICAgIHNpemVfdCBzaXplID0gY2hpbGRyZW4uc2l6ZSgpOwogICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICBtX2VsZW1lbnQyLT5pbnNlcnRCZWZv
cmUoY2hpbGRyZW5baV0uZ2V0KCksIHJlZkNoaWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsK
KyAgICAgICAgbV9lbGVtZW50Mi0+aW5zZXJ0QmVmb3JlKFdURjo6bW92ZShjaGlsZHJlbltpXSks
IHJlZkNoaWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAogICAgIC8vIFJlY292ZXIgdGhl
IGlkIGF0dHJpYnV0ZSBvZiB0aGUgb3JpZ2luYWwgZWxlbWVudC4KICAgICBjb25zdCBBdG9taWNT
dHJpbmcmIGlkID0gbV9lbGVtZW50MS0+Z2V0SWRBdHRyaWJ1dGUoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BsaXRUZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggMTdhODE3Zi4uNjk5
OTEzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGxpdFRleHROb2RlQ29t
bWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFu
ZC5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgdm9pZCBTcGxpdFRleHROb2RlQ29tbWFuZDo6ZG9SZWFw
cGx5KCkKIHZvaWQgU3BsaXRUZXh0Tm9kZUNvbW1hbmQ6Omluc2VydFRleHQxQW5kVHJpbVRleHQy
KCkKIHsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBtX3RleHQyLT5wYXJlbnROb2Rl
KCktPmluc2VydEJlZm9yZShtX3RleHQxLmdldCgpLCBtX3RleHQyLmdldCgpLCBlYyk7CisgICAg
bV90ZXh0Mi0+cGFyZW50Tm9kZSgpLT5pbnNlcnRCZWZvcmUoKm1fdGV4dDEsIG1fdGV4dDIuZ2V0
KCksIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybjsKICAgICBtX3RleHQyLT5kZWxl
dGVEYXRhKDAsIG1fb2Zmc2V0LCBlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1dyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1dyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZC5jcHAKaW5kZXggNTY0NmYzNC4u
ZjgwYjc3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9XcmFwQ29udGVudHNJ
bkR1bW15U3BhbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvV3JhcENv
bnRlbnRzSW5EdW1teVNwYW5Db21tYW5kLmNwcApAQCAtNDAsMTUgKzQwLDE1IEBAIFdyYXBDb250
ZW50c0luRHVtbXlTcGFuQ29tbWFuZDo6V3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kKFBh
c3NSZWZQdHI8RWxlbWVuCiAKIHZvaWQgV3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kOjpl
eGVjdXRlQXBwbHkoKQogewotICAgIFZlY3RvcjxSZWZQdHI8Tm9kZT4+IGNoaWxkcmVuOworICAg
IFZlY3RvcjxSZWY8Tm9kZT4+IGNoaWxkcmVuOwogICAgIGZvciAoTm9kZSogY2hpbGQgPSBtX2Vs
ZW1lbnQtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkp
Ci0gICAgICAgIGNoaWxkcmVuLmFwcGVuZChjaGlsZCk7CisgICAgICAgIGNoaWxkcmVuLmFwcGVu
ZCgqY2hpbGQpOwogCiAgICAgc2l6ZV90IHNpemUgPSBjaGlsZHJlbi5zaXplKCk7CiAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCi0gICAgICAgIG1fZHVtbXlTcGFuLT5hcHBl
bmRDaGlsZChjaGlsZHJlbltpXS5yZWxlYXNlKCksIElHTk9SRV9FWENFUFRJT04pOworICAgICAg
ICBtX2R1bW15U3Bhbi0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNoaWxkcmVuW2ldKSwgSUdOT1JF
X0VYQ0VQVElPTik7CiAKLSAgICBtX2VsZW1lbnQtPmFwcGVuZENoaWxkKG1fZHVtbXlTcGFuLmdl
dCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBtX2VsZW1lbnQtPmFwcGVuZENoaWxkKCptX2R1
bW15U3BhbiwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CiAKIHZvaWQgV3JhcENvbnRlbnRzSW5EdW1t
eVNwYW5Db21tYW5kOjpkb0FwcGx5KCkKQEAgLTY1LDEzICs2NSwxMyBAQCB2b2lkIFdyYXBDb250
ZW50c0luRHVtbXlTcGFuQ29tbWFuZDo6ZG9VbmFwcGx5KCkKICAgICBpZiAoIW1fZHVtbXlTcGFu
IHx8ICFtX2VsZW1lbnQtPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgVmVjdG9yPFJlZlB0cjxOb2RlPj4gY2hpbGRyZW47CisgICAgVmVjdG9yPFJlZjxOb2RlPj4g
Y2hpbGRyZW47CiAgICAgZm9yIChOb2RlKiBjaGlsZCA9IG1fZHVtbXlTcGFuLT5maXJzdENoaWxk
KCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQotICAgICAgICBjaGlsZHJl
bi5hcHBlbmQoY2hpbGQpOworICAgICAgICBjaGlsZHJlbi5hcHBlbmQoKmNoaWxkKTsKIAogICAg
IHNpemVfdCBzaXplID0gY2hpbGRyZW4uc2l6ZSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgc2l6ZTsgKytpKQotICAgICAgICBtX2VsZW1lbnQtPmFwcGVuZENoaWxkKGNoaWxkcmVuW2ld
LnJlbGVhc2UoKSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgICAgIG1fZWxlbWVudC0+YXBwZW5k
Q2hpbGQoV1RGOjptb3ZlKGNoaWxkcmVuW2ldKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKICAgICBt
X2R1bW15U3Bhbi0+cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9FZGl0b3JDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvY29jb2EvRWRpdG9yQ29jb2EubW0KaW5kZXggY2U0YmNiYy4uOTVlNjZkYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9FZGl0b3JDb2NvYS5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0VkaXRvckNvY29hLm1tCkBAIC01NiwxNiAr
NTYsMTYgQEAgUmVuZGVyU3R5bGUqIEVkaXRvcjo6c3R5bGVGb3JTZWxlY3Rpb25TdGFydChGcmFt
ZSogZnJhbWUsIE5vZGUgKiZub2RlVG9SZW1vdmUpCiAgICAgaWYgKCF0eXBpbmdTdHlsZSB8fCAh
dHlwaW5nU3R5bGUtPnN0eWxlKCkpCiAgICAgICAgIHJldHVybiAmcG9zaXRpb24uZGVwcmVjYXRl
ZE5vZGUoKS0+cmVuZGVyZXIoKS0+c3R5bGUoKTsKIAotICAgIFJlZlB0cjxFbGVtZW50PiBzdHls
ZUVsZW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChIVE1MTmFtZXM6OnNw
YW5UYWcsIGZhbHNlKTsKKyAgICBSZWY8RWxlbWVudD4gc3R5bGVFbGVtZW50ID0gZnJhbWUtPmRv
Y3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoSFRNTE5hbWVzOjpzcGFuVGFnLCBmYWxzZSk7CiAKICAg
ICBTdHJpbmcgc3R5bGVUZXh0ID0gdHlwaW5nU3R5bGUtPnN0eWxlKCktPmFzVGV4dCgpICsgIiBk
aXNwbGF5OiBpbmxpbmUiOwogICAgIHN0eWxlRWxlbWVudC0+c2V0QXR0cmlidXRlKEhUTUxOYW1l
czo6c3R5bGVBdHRyLCBzdHlsZVRleHQpOwogCiAgICAgc3R5bGVFbGVtZW50LT5hcHBlbmRDaGls
ZChmcmFtZS0+ZG9jdW1lbnQoKS0+Y3JlYXRlRWRpdGluZ1RleHROb2RlKCIiKSwgQVNTRVJUX05P
X0VYQ0VQVElPTik7CiAKLSAgICBwb3NpdGlvbi5kZXByZWNhdGVkTm9kZSgpLT5wYXJlbnROb2Rl
KCktPmFwcGVuZENoaWxkKHN0eWxlRWxlbWVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAg
cG9zaXRpb24uZGVwcmVjYXRlZE5vZGUoKS0+cGFyZW50Tm9kZSgpLT5hcHBlbmRDaGlsZChzdHls
ZUVsZW1lbnQuY29weVJlZigpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAotICAgIG5vZGVUb1Jl
bW92ZSA9IHN0eWxlRWxlbWVudC5nZXQoKTsKKyAgICBub2RlVG9SZW1vdmUgPSBzdHlsZUVsZW1l
bnQucHRyKCk7CiAKICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+dXBkYXRlU3R5bGVJZk5lZWRlZCgp
OwogICAgIHJldHVybiBzdHlsZUVsZW1lbnQtPnJlbmRlcmVyKCkgPyAmc3R5bGVFbGVtZW50LT5y
ZW5kZXJlcigpLT5zdHlsZSgpIDogbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRp
dGluZy5jcHAKaW5kZXggOGYwNGQwOC4uN2NhYTE0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9o
dG1sZWRpdGluZy5jcHAKQEAgLTg5OSwyMCArODk5LDE4IEBAIGJvb2wgaXNFbXB0eVRhYmxlQ2Vs
bChjb25zdCBOb2RlKiBub2RlKQogICAgIHJldHVybiAhY2hpbGRSZW5kZXJlci0+bmV4dFNpYmxp
bmcoKTsKIH0KIAotUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRlRGVmYXVsdFBhcmFncmFw
aEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxFbGVtZW50PiBjcmVhdGVEZWZh
dWx0UGFyYWdyYXBoRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgc3dpdGNoIChk
b2N1bWVudC5mcmFtZSgpLT5lZGl0b3IoKS5kZWZhdWx0UGFyYWdyYXBoU2VwYXJhdG9yKCkpIHsK
ICAgICBjYXNlIEVkaXRvclBhcmFncmFwaFNlcGFyYXRvcklzRGl2OgogICAgICAgICByZXR1cm4g
SFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY2FzZSBFZGl0b3JQYXJhZ3Jh
cGhTZXBhcmF0b3JJc1A6Ci0gICAgICAgIHJldHVybiBIVE1MUGFyYWdyYXBoRWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50KTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQotCi0gICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIEhUTUxQYXJhZ3JhcGhFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQpOwogfQogCi1QYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVC
cmVha0VsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxFbGVtZW50PiBjcmVhdGVC
cmVha0VsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBIVE1MQlJFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogfQpAQCAtOTcxLDcgKzk2OSw3IEBAIFBvc2l0aW9uIHBv
c2l0aW9uT3V0c2lkZVRhYlNwYW4oY29uc3QgUG9zaXRpb24mIHBvcykKICAgICByZXR1cm4gcG9z
aXRpb25JblBhcmVudEJlZm9yZU5vZGUobm9kZSk7CiB9CiAKLVBhc3NSZWZQdHI8RWxlbWVudD4g
Y3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBQYXNzUmVmUHRyPE5vZGU+
IHBycFRhYlRleHROb2RlKQorUmVmPEVsZW1lbnQ+IGNyZWF0ZVRhYlNwYW5FbGVtZW50KERvY3Vt
ZW50JiBkb2N1bWVudCwgUGFzc1JlZlB0cjxOb2RlPiBwcnBUYWJUZXh0Tm9kZSkKIHsKICAgICBS
ZWZQdHI8Tm9kZT4gdGFiVGV4dE5vZGUgPSBwcnBUYWJUZXh0Tm9kZTsKIApAQCAtOTg0LDE3ICs5
ODIsMTcgQEAgUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVhdGVUYWJTcGFuRWxlbWVudChEb2N1bWVu
dCYgZG9jdW1lbnQsIFBhc3NSZWZQdHI8Tm9kZT4gcHIKICAgICBpZiAoIXRhYlRleHROb2RlKQog
ICAgICAgICB0YWJUZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVkaXRpbmdUZXh0Tm9kZSgiXHQi
KTsKIAotICAgIHNwYW5FbGVtZW50LT5hcHBlbmRDaGlsZCh0YWJUZXh0Tm9kZS5yZWxlYXNlKCks
IEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIHNwYW5FbGVtZW50LT5hcHBlbmRDaGlsZCh0YWJU
ZXh0Tm9kZS5yZWxlYXNlTm9uTnVsbCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAotICAgIHJl
dHVybiBzcGFuRWxlbWVudC5yZWxlYXNlKCk7CisgICAgcmV0dXJuIHNwYW5FbGVtZW50LnJlbGVh
c2VOb25OdWxsKCk7CiB9CiAKLVBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVsZW1l
bnQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRhYlRleHQpCitSZWY8RWxlbWVu
dD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcm
IHRhYlRleHQpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVRhYlNwYW5FbGVtZW50KGRvY3VtZW50LCBk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0YWJUZXh0KSk7CiB9CiAKLVBhc3NSZWZQdHI8RWxlbWVu
dD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEVsZW1lbnQ+
IGNyZWF0ZVRhYlNwYW5FbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4g
Y3JlYXRlVGFiU3BhbkVsZW1lbnQoZG9jdW1lbnQsIFBhc3NSZWZQdHI8Tm9kZT4oKSk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmggYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmgKaW5kZXggNzg4YWYzZi4uZjY5ZDlkOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuaApAQCAtMjA2LDggKzIwNiw4IEBAIFZpc2li
bGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb25Gb3JJbmRleFVzaW5nQ2hhcmFjdGVySXRlcmF0b3Io
Tm9kZSosIGludCBpbmRleCk7CiAgICAgCiAvLyBGdW5jdGlvbnMgcmV0dXJuaW5nIEhUTUxFbGVt
ZW50CiAgICAgCi1XRUJDT1JFX0VYUE9SVCBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVE
ZWZhdWx0UGFyYWdyYXBoRWxlbWVudChEb2N1bWVudCYpOwotUGFzc1JlZlB0cjxIVE1MRWxlbWVu
dD4gY3JlYXRlQnJlYWtFbGVtZW50KERvY3VtZW50Jik7CitXRUJDT1JFX0VYUE9SVCBSZWY8SFRN
TEVsZW1lbnQ+IGNyZWF0ZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50KERvY3VtZW50Jik7CitSZWY8
SFRNTEVsZW1lbnQ+IGNyZWF0ZUJyZWFrRWxlbWVudChEb2N1bWVudCYpOwogUGFzc1JlZlB0cjxI
VE1MRWxlbWVudD4gY3JlYXRlT3JkZXJlZExpc3RFbGVtZW50KERvY3VtZW50Jik7CiBQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBjcmVhdGVVbm9yZGVyZWRMaXN0RWxlbWVudChEb2N1bWVudCYpOwog
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRlTGlzdEl0ZW1FbGVtZW50KERvY3VtZW50Jik7
CkBAIC0yMjIsMTAgKzIyMiwxMCBAQCBOb2RlKiBlbmNsb3NpbmdMaXN0Q2hpbGQoTm9kZSopOwog
Ly8gRWxlbWVudAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1QYXNzUmVmUHRyPEVsZW1lbnQ+IGNy
ZWF0ZVRhYlNwYW5FbGVtZW50KERvY3VtZW50Jik7Ci1QYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0
ZVRhYlNwYW5FbGVtZW50KERvY3VtZW50JiwgUGFzc1JlZlB0cjxOb2RlPiB0YWJUZXh0Tm9kZSk7
Ci1QYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZVRhYlNwYW5FbGVtZW50KERvY3VtZW50JiwgY29u
c3QgU3RyaW5nJiB0YWJUZXh0KTsKLVBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlQmxvY2tQbGFj
ZWhvbGRlckVsZW1lbnQoRG9jdW1lbnQmKTsKK1JlZjxFbGVtZW50PiBjcmVhdGVUYWJTcGFuRWxl
bWVudChEb2N1bWVudCYpOworUmVmPEVsZW1lbnQ+IGNyZWF0ZVRhYlNwYW5FbGVtZW50KERvY3Vt
ZW50JiwgUGFzc1JlZlB0cjxOb2RlPiB0YWJUZXh0Tm9kZSk7CitSZWY8RWxlbWVudD4gY3JlYXRl
VGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRhYlRleHQpOworUmVmPEVs
ZW1lbnQ+IGNyZWF0ZUJsb2NrUGxhY2Vob2xkZXJFbGVtZW50KERvY3VtZW50Jik7CiAKIEVsZW1l
bnQqIGVkaXRhYmxlUm9vdEZvclBvc2l0aW9uKGNvbnN0IFBvc2l0aW9uJiwgRWRpdGFibGVUeXBl
ID0gQ29udGVudElzRWRpdGFibGUpOwogRWxlbWVudCogdW5zcGxpdHRhYmxlRWxlbWVudEZvclBv
c2l0aW9uKGNvbnN0IFBvc2l0aW9uJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL21hYy9FZGl0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JN
YWMubW0KaW5kZXggNmNlZjQ4OS4uY2QyNTJkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFj
L0VkaXRvck1hYy5tbQpAQCAtNTI3LDE1ICs1MjcsMTUgQEAgYm9vbCBFZGl0b3I6OldlYkNvbnRl
bnRSZWFkZXI6OnJlYWRGaWxlbmFtZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhzKQogICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CiAgICAgICAgIFN0cmluZyB0ZXh0
ID0gcGF0aHNbaV07CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKLSAgICAgICAgUmVm
UHRyPEhUTUxBdHRhY2htZW50RWxlbWVudD4gYXR0YWNobWVudCA9IEhUTUxBdHRhY2htZW50RWxl
bWVudDo6Y3JlYXRlKGF0dGFjaG1lbnRUYWcsIGRvY3VtZW50KTsKKyAgICAgICAgUmVmPEhUTUxB
dHRhY2htZW50RWxlbWVudD4gYXR0YWNobWVudCA9IEhUTUxBdHRhY2htZW50RWxlbWVudDo6Y3Jl
YXRlKGF0dGFjaG1lbnRUYWcsIGRvY3VtZW50KTsKICAgICAgICAgYXR0YWNobWVudC0+c2V0Rmls
ZShGaWxlOjpjcmVhdGUoW1tOU1VSTCBmaWxlVVJMV2l0aFBhdGg6dGV4dF0gcGF0aF0pLnB0cigp
KTsKLSAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKGF0dGFjaG1lbnQucmVsZWFzZSgpKTsK
KyAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShhdHRhY2htZW50KSk7CiAj
ZWxzZQogICAgICAgICB0ZXh0ID0gZnJhbWUuZWRpdG9yKCkuY2xpZW50KCktPnVzZXJWaXNpYmxl
U3RyaW5nKFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6dGV4dF0pOwogCi0gICAgICAgIFJlZlB0cjxI
VE1MRWxlbWVudD4gcGFyYWdyYXBoID0gY3JlYXRlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQoZG9j
dW1lbnQpOworICAgICAgICBSZWY8SFRNTEVsZW1lbnQ+IHBhcmFncmFwaCA9IGNyZWF0ZURlZmF1
bHRQYXJhZ3JhcGhFbGVtZW50KGRvY3VtZW50KTsKICAgICAgICAgcGFyYWdyYXBoLT5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KSk7Ci0gICAgICAgIGZyYWdtZW50LT5h
cHBlbmRDaGlsZChwYXJhZ3JhcGgucmVsZWFzZSgpKTsKKyAgICAgICAgZnJhZ21lbnQtPmFwcGVu
ZENoaWxkKFdURjo6bW92ZShwYXJhZ3JhcGgpKTsKICNlbmRpZgogICAgIH0KIApAQCAtNTk0LDEy
ICs1OTQsMTIgQEAgYm9vbCBFZGl0b3I6OldlYkNvbnRlbnRSZWFkZXI6OnJlYWRVUkwoY29uc3Qg
VVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUpCiAgICAgaWYgKHVybC5zdHJpbmcoKS5pc0Vt
cHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFJlZlB0cjxFbGVtZW50PiBhbmNo
b3IgPSBmcmFtZS5kb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KEhUTUxOYW1lczo6YVRhZywgZmFs
c2UpOworICAgIFJlZjxFbGVtZW50PiBhbmNob3IgPSBmcmFtZS5kb2N1bWVudCgpLT5jcmVhdGVF
bGVtZW50KEhUTUxOYW1lczo6YVRhZywgZmFsc2UpOwogICAgIGFuY2hvci0+c2V0QXR0cmlidXRl
KEhUTUxOYW1lczo6aHJlZkF0dHIsIHVybC5zdHJpbmcoKSk7CiAgICAgYW5jaG9yLT5hcHBlbmRD
aGlsZChmcmFtZS5kb2N1bWVudCgpLT5jcmVhdGVUZXh0Tm9kZShbdGl0bGUgcHJlY29tcG9zZWRT
dHJpbmdXaXRoQ2Fub25pY2FsTWFwcGluZ10pKTsKIAogICAgIGZyYWdtZW50ID0gZnJhbWUuZG9j
dW1lbnQoKS0+Y3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwotICAgIGZyYWdtZW50LT5hcHBlbmRD
aGlsZChhbmNob3IucmVsZWFzZSgpKTsKKyAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjpt
b3ZlKGFuY2hvcikpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC02MzUsMTEgKzYzNSwxMSBA
QCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IEVkaXRvcjo6Y3JlYXRlRnJhZ21lbnRGb3JJ
bWFnZVJlc291cmNlQW5kQWRkUmVzb3VyYwogICAgIGlmIChEb2N1bWVudExvYWRlciogbG9hZGVy
ID0gbV9mcmFtZS5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpKQogICAgICAgICBsb2FkZXItPmFk
ZEFyY2hpdmVSZXNvdXJjZShyZXNvdXJjZS5nZXQoKSk7CiAKLSAgICBSZWZQdHI8RWxlbWVudD4g
aW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQoKS5jcmVhdGVFbGVtZW50KEhUTUxOYW1lczo6aW1nVGFn
LCBmYWxzZSk7CisgICAgUmVmPEVsZW1lbnQ+IGltYWdlRWxlbWVudCA9IGRvY3VtZW50KCkuY3Jl
YXRlRWxlbWVudChIVE1MTmFtZXM6OmltZ1RhZywgZmFsc2UpOwogICAgIGltYWdlRWxlbWVudC0+
c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6c3JjQXR0ciwgcmVzb3VyY2UtPnVybCgpLnN0cmluZygp
KTsKIAogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGRvY3VtZW50KCku
Y3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwotICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChpbWFn
ZUVsZW1lbnQucmVsZWFzZSgpKTsKKyAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3Zl
KGltYWdlRWxlbWVudCkpOwogCiAgICAgcmV0dXJuIGZyYWdtZW50LnJlbGVhc2UoKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvbWFya3VwLmNwcAppbmRleCAwY2FjOGI0Li5jMGNmNzhkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9tYXJrdXAuY3BwCkBAIC03MjksOCArNzI5LDggQEAgc3RhdGljIHZvaWQgZmlsbENv
bnRhaW5lckZyb21TdHJpbmcoQ29udGFpbmVyTm9kZSogcGFyYWdyYXBoLCBjb25zdCBTdHJpbmcm
IHN0cmkKICAgICAgICAgICAgICAgICBwYXJhZ3JhcGgtPmFwcGVuZENoaWxkKGNyZWF0ZVRhYlNw
YW5FbGVtZW50KGRvY3VtZW50LCB0YWJUZXh0KSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAg
ICAgICAgICAgICAgdGFiVGV4dCA9IGVtcHR5U3RyaW5nKCk7CiAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBSZWZQdHI8Tm9kZT4gdGV4dE5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShz
dHJpbmdXaXRoUmViYWxhbmNlZFdoaXRlc3BhY2UocywgZmlyc3QsIGkgKyAxID09IG51bUVudHJp
ZXMpKTsKLSAgICAgICAgICAgIHBhcmFncmFwaC0+YXBwZW5kQ2hpbGQodGV4dE5vZGUucmVsZWFz
ZSgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgICAgIFJlZjxOb2RlPiB0ZXh0Tm9k
ZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cmluZ1dpdGhSZWJhbGFuY2VkV2hpdGVzcGFj
ZShzLCBmaXJzdCwgaSArIDEgPT0gbnVtRW50cmllcykpOworICAgICAgICAgICAgcGFyYWdyYXBo
LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUodGV4dE5vZGUpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsK
ICAgICAgICAgfQogCiAgICAgICAgIC8vIHRoZXJlIGlzIGEgdGFiIGFmdGVyIGV2ZXJ5IGVudHJ5
LCBleGNlcHQgdGhlIGxhc3QgZW50cnkKQEAgLTc5Myw5ICs3OTMsOSBAQCBQYXNzUmVmUHRyPERv
Y3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoUmFuZ2UmIGNvbnRleHQsIGNv
bnN0IFN0cmluZwogICAgIGlmIChjb250ZXh0UHJlc2VydmVzTmV3bGluZShjb250ZXh0KSkgewog
ICAgICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoc3Ry
aW5nKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgICAgIGlmIChzdHJpbmcuZW5kc1dpdGgo
J1xuJykpIHsKLSAgICAgICAgICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gY3JlYXRlQnJl
YWtFbGVtZW50KGRvY3VtZW50KTsKKyAgICAgICAgICAgIFJlZjxFbGVtZW50PiBlbGVtZW50ID0g
Y3JlYXRlQnJlYWtFbGVtZW50KGRvY3VtZW50KTsKICAgICAgICAgICAgIGVsZW1lbnQtPnNldEF0
dHJpYnV0ZShjbGFzc0F0dHIsIEFwcGxlSW50ZXJjaGFuZ2VOZXdsaW5lKTsgICAgICAgICAgICAK
LSAgICAgICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChlbGVtZW50LnJlbGVhc2UoKSwgQVNT
RVJUX05PX0VYQ0VQVElPTik7CisgICAgICAgICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoV1RG
Ojptb3ZlKGVsZW1lbnQpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICAgICAgfQogICAgICAg
ICByZXR1cm4gZnJhZ21lbnQucmVsZWFzZSgpOwogICAgIH0KQEAgLTgzNyw3ICs4MzcsNyBAQCBQ
YXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoUmFuZ2Um
IGNvbnRleHQsIGNvbnN0IFN0cmluZwogICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBjcmVhdGVE
ZWZhdWx0UGFyYWdyYXBoRWxlbWVudChkb2N1bWVudCk7CiAgICAgICAgICAgICBmaWxsQ29udGFp
bmVyRnJvbVN0cmluZyhlbGVtZW50LmdldCgpLCBzKTsKICAgICAgICAgfQotICAgICAgICBmcmFn
bWVudC0+YXBwZW5kQ2hpbGQoZWxlbWVudC5yZWxlYXNlKCksIEFTU0VSVF9OT19FWENFUFRJT04p
OworICAgICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoZWxlbWVudC5yZWxlYXNlTm9uTnVsbCgp
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICB9CiAgICAgcmV0dXJuIGZyYWdtZW50LnJlbGVh
c2UoKTsKIH0KQEAgLTk0NSwxMCArOTQ1LDEwIEBAIHN0YXRpYyB2b2lkIHJlbW92ZUVsZW1lbnRG
cm9tRnJhZ21lbnRQcmVzZXJ2aW5nQ2hpbGRyZW4oRG9jdW1lbnRGcmFnbWVudCYgZnJhZ21lCiAg
ICAgUmVmUHRyPE5vZGU+IG5leHRDaGlsZDsKICAgICBmb3IgKFJlZlB0cjxOb2RlPiBjaGlsZCA9
IGVsZW1lbnQuZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBuZXh0Q2hpbGQpIHsKICAgICAg
ICAgbmV4dENoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCk7Ci0gICAgICAgIGVsZW1lbnQucmVt
b3ZlQ2hpbGQoY2hpbGQuZ2V0KCksIEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgICAgICBmcmFn
bWVudC5pbnNlcnRCZWZvcmUoY2hpbGQsICZlbGVtZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsK
KyAgICAgICAgZWxlbWVudC5yZW1vdmVDaGlsZCgqY2hpbGQsIEFTU0VSVF9OT19FWENFUFRJT04p
OworICAgICAgICBmcmFnbWVudC5pbnNlcnRCZWZvcmUoKmNoaWxkLCAmZWxlbWVudCwgQVNTRVJU
X05PX0VYQ0VQVElPTik7CiAgICAgfQotICAgIGZyYWdtZW50LnJlbW92ZUNoaWxkKCZlbGVtZW50
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBmcmFnbWVudC5yZW1vdmVDaGlsZChlbGVtZW50
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIH0KIAogUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50
PiBjcmVhdGVDb250ZXh0dWFsRnJhZ21lbnQoY29uc3QgU3RyaW5nJiBtYXJrdXAsIEhUTUxFbGVt
ZW50KiBlbGVtZW50LCBQYXJzZXJDb250ZW50UG9saWN5IHBhcnNlckNvbnRlbnRQb2xpY3ksIEV4
Y2VwdGlvbkNvZGUmIGVjKQpAQCAtOTkwLDcgKzk5MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBo
YXNPbmVUZXh0Q2hpbGQoQ29udGFpbmVyTm9kZSYgbm9kZSkKICAgICByZXR1cm4gaGFzT25lQ2hp
bGQobm9kZSkgJiYgbm9kZS5maXJzdENoaWxkKCktPmlzVGV4dE5vZGUoKTsKIH0KIAotdm9pZCBy
ZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQoQ29udGFpbmVyTm9kZSYgY29udGFpbmVyLCBQYXNz
UmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LCBFeGNlcHRpb25Db2RlJiBlYykKK3Zv
aWQgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KENvbnRhaW5lck5vZGUmIGNvbnRhaW5lciwg
UmVmPERvY3VtZW50RnJhZ21lbnQ+JiYgZnJhZ21lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewog
ICAgIFJlZjxDb250YWluZXJOb2RlPiBjb250YWluZXJOb2RlKGNvbnRhaW5lcik7CiAgICAgQ2hp
bGRMaXN0TXV0YXRpb25TY29wZSBtdXRhdGlvbihjb250YWluZXJOb2RlKTsKQEAgLTEwMDAsMTgg
KzEwMDAsMTggQEAgdm9pZCByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQoQ29udGFpbmVyTm9k
ZSYgY29udGFpbmVyLCBQYXNzUmVmUHRyPERvY3VtZW50RnIKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIGlmIChoYXNPbmVUZXh0Q2hpbGQoY29udGFpbmVyTm9kZSkgJiYgaGFzT25lVGV4
dENoaWxkKCpmcmFnbWVudCkpIHsKKyAgICBpZiAoaGFzT25lVGV4dENoaWxkKGNvbnRhaW5lck5v
ZGUpICYmIGhhc09uZVRleHRDaGlsZChmcmFnbWVudCkpIHsKICAgICAgICAgZG93bmNhc3Q8VGV4
dD4oKmNvbnRhaW5lck5vZGUtPmZpcnN0Q2hpbGQoKSkuc2V0RGF0YShkb3duY2FzdDxUZXh0Pigq
ZnJhZ21lbnQtPmZpcnN0Q2hpbGQoKSkuZGF0YSgpLCBlYyk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKICAgICBpZiAoaGFzT25lQ2hpbGQoY29udGFpbmVyTm9kZSkpIHsKLSAgICAgICAgY29u
dGFpbmVyTm9kZS0+cmVwbGFjZUNoaWxkKGZyYWdtZW50LCBjb250YWluZXJOb2RlLT5maXJzdENo
aWxkKCksIGVjKTsKKyAgICAgICAgY29udGFpbmVyTm9kZS0+cmVwbGFjZUNoaWxkKFdURjo6bW92
ZShmcmFnbWVudCksICpjb250YWluZXJOb2RlLT5maXJzdENoaWxkKCksIGVjKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAogICAgIGNvbnRhaW5lck5vZGUtPnJlbW92ZUNoaWxkcmVuKCk7Ci0g
ICAgY29udGFpbmVyTm9kZS0+YXBwZW5kQ2hpbGQoZnJhZ21lbnQsIGVjKTsKKyAgICBjb250YWlu
ZXJOb2RlLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoZnJhZ21lbnQpLCBlYyk7CiB9CiAKIHZvaWQg
cmVwbGFjZUNoaWxkcmVuV2l0aFRleHQoQ29udGFpbmVyTm9kZSYgY29udGFpbmVyLCBjb25zdCBT
dHJpbmcmIHRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtMTAyNyw3ICsxMDI3LDcgQEAgdm9p
ZCByZXBsYWNlQ2hpbGRyZW5XaXRoVGV4dChDb250YWluZXJOb2RlJiBjb250YWluZXIsIGNvbnN0
IFN0cmluZyYgdGV4dCwgRXhjZXAKICAgICBSZWY8VGV4dD4gdGV4dE5vZGUgPSBUZXh0OjpjcmVh
dGUoY29udGFpbmVyTm9kZS0+ZG9jdW1lbnQoKSwgdGV4dCk7CiAKICAgICBpZiAoaGFzT25lQ2hp
bGQoY29udGFpbmVyTm9kZSkpIHsKLSAgICAgICAgY29udGFpbmVyTm9kZS0+cmVwbGFjZUNoaWxk
KFdURjo6bW92ZSh0ZXh0Tm9kZSksIGNvbnRhaW5lck5vZGUtPmZpcnN0Q2hpbGQoKSwgZWMpOwor
ICAgICAgICBjb250YWluZXJOb2RlLT5yZXBsYWNlQ2hpbGQoV1RGOjptb3ZlKHRleHROb2RlKSwg
KmNvbnRhaW5lck5vZGUtPmZpcnN0Q2hpbGQoKSwgZWMpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5oIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuaAppbmRleCBjNTUyMDEwLi43NmY2ZDMwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvbWFya3VwLmgKQEAgLTU5LDExICs1OSwxMSBAQCBib29sIGlzUGxhaW5UZXh0TWFy
a3VwKE5vZGUqKTsKIAogLy8gVGhlc2UgbWV0aG9kcyBhcmUgdXNlZCBieSBIVE1MRWxlbWVudCAm
IFNoYWRvd1Jvb3QgdG8gcmVwbGFjZSB0aGUKIC8vIGNoaWxkcmVuIHdpdGggcmVzcGVjdGVkIGZy
YWdtZW50L3RleHQuCi12b2lkIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudChDb250YWluZXJO
b2RlJiwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiwgRXhjZXB0aW9uQ29kZSYpOwordm9p
ZCByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQoQ29udGFpbmVyTm9kZSYsIFJlZjxEb2N1bWVu
dEZyYWdtZW50PiYmLCBFeGNlcHRpb25Db2RlJik7CiB2b2lkIHJlcGxhY2VDaGlsZHJlbldpdGhU
ZXh0KENvbnRhaW5lck5vZGUmLCBjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CiAKLVN0
cmluZyBjcmVhdGVNYXJrdXAoY29uc3QgUmFuZ2UmLCBWZWN0b3I8Tm9kZSo+KiA9IDAsIEVBbm5v
dGF0ZUZvckludGVyY2hhbmdlID0gRG9Ob3RBbm5vdGF0ZUZvckludGVyY2hhbmdlLCBib29sIGNv
bnZlcnRCbG9ja3NUb0lubGluZXMgPSBmYWxzZSwgRUFic29sdXRlVVJMcyA9IERvTm90UmVzb2x2
ZVVSTHMpOwotU3RyaW5nIGNyZWF0ZU1hcmt1cChjb25zdCBOb2RlJiwgRUNoaWxkcmVuT25seSA9
IEluY2x1ZGVOb2RlLCBWZWN0b3I8Tm9kZSo+KiA9IDAsIEVBYnNvbHV0ZVVSTHMgPSBEb05vdFJl
c29sdmVVUkxzLCBWZWN0b3I8UXVhbGlmaWVkTmFtZT4qIHRhZ05hbWVzVG9Ta2lwID0gMCwgRUZy
YWdtZW50U2VyaWFsaXphdGlvbiA9IEhUTUxGcmFnbWVudFNlcmlhbGl6YXRpb24pOworU3RyaW5n
IGNyZWF0ZU1hcmt1cChjb25zdCBSYW5nZSYsIFZlY3RvcjxOb2RlKj4qID0gbnVsbHB0ciwgRUFu
bm90YXRlRm9ySW50ZXJjaGFuZ2UgPSBEb05vdEFubm90YXRlRm9ySW50ZXJjaGFuZ2UsIGJvb2wg
Y29udmVydEJsb2Nrc1RvSW5saW5lcyA9IGZhbHNlLCBFQWJzb2x1dGVVUkxzID0gRG9Ob3RSZXNv
bHZlVVJMcyk7CitTdHJpbmcgY3JlYXRlTWFya3VwKGNvbnN0IE5vZGUmLCBFQ2hpbGRyZW5Pbmx5
ID0gSW5jbHVkZU5vZGUsIFZlY3RvcjxOb2RlKj4qID0gbnVsbHB0ciwgRUFic29sdXRlVVJMcyA9
IERvTm90UmVzb2x2ZVVSTHMsIFZlY3RvcjxRdWFsaWZpZWROYW1lPiogdGFnTmFtZXNUb1NraXAg
PSAwLCBFRnJhZ21lbnRTZXJpYWxpemF0aW9uID0gSFRNTEZyYWdtZW50U2VyaWFsaXphdGlvbik7
CiAKIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBjcmVhdGVGdWxsTWFya3VwKGNvbnN0IE5vZGUmKTsK
IFdFQkNPUkVfRVhQT1JUIFN0cmluZyBjcmVhdGVGdWxsTWFya3VwKGNvbnN0IFJhbmdlJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCmluZGV4IDhiYmRiOTcuLmM1Mzg1YTA0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcApAQCAtMTA3LDEyICsxMDcs
MTIgQEAgdm9pZCBDb2xvcklucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAgICAgQVNT
RVJUKGVsZW1lbnQoKS5zaGFkb3dSb290KCkpOwogCiAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0g
ZWxlbWVudCgpLmRvY3VtZW50KCk7Ci0gICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiB3cmFwcGVy
RWxlbWVudCA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIFJlZjxIVE1M
RGl2RWxlbWVudD4gd3JhcHBlckVsZW1lbnQgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KTsKICAgICB3cmFwcGVyRWxlbWVudC0+c2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtp
dC1jb2xvci1zd2F0Y2gtd3JhcHBlciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKLSAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IGNvbG9yU3dhdGNoID0gSFRNTERpdkVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgUmVmPEhUTUxEaXZFbGVtZW50PiBjb2xvclN3
YXRjaCA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGNvbG9yU3dhdGNo
LT5zZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LWNvbG9yLXN3YXRjaCIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICB3cmFwcGVyRWxlbWVudC0+YXBwZW5k
Q2hpbGQoY29sb3JTd2F0Y2gucmVsZWFzZSgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKLSAgICBl
bGVtZW50KCkudXNlckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZCh3cmFwcGVyRWxlbWVu
dC5yZWxlYXNlKCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIHdyYXBwZXJFbGVtZW50LT5h
cHBlbmRDaGlsZChXVEY6Om1vdmUoY29sb3JTd2F0Y2gpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsK
KyAgICBlbGVtZW50KCkudXNlckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChXVEY6Om1v
dmUod3JhcHBlckVsZW1lbnQpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICAKICAgICB1cGRh
dGVDb2xvclN3YXRjaCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GVFBE
aXJlY3RvcnlEb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVjdG9yeURv
Y3VtZW50LmNwcAppbmRleCA0MDY1YTE3Li4xNDQ3YTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcApAQCAtMTA0LDI3ICsxMDQsMjcgQEAgdm9pZCBG
VFBEaXJlY3RvcnlEb2N1bWVudFBhcnNlcjo6YXBwZW5kRW50cnkoY29uc3QgU3RyaW5nJiBmaWxl
bmFtZSwgY29uc3QgU3RyaW4KICAgICBSZWZQdHI8RWxlbWVudD4gcm93RWxlbWVudCA9IG1fdGFi
bGVFbGVtZW50LT5pbnNlcnRSb3coLTEsIElHTk9SRV9FWENFUFRJT04pOwogICAgIHJvd0VsZW1l
bnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNsYXNzQXR0ciwgImZ0cERpcmVjdG9yeUVudHJ5
Um93Iik7CiAKLSAgICBSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0
ZUVsZW1lbnQodGRUYWcsIGZhbHNlKTsKKyAgICBSZWY8RWxlbWVudD4gZWxlbWVudCA9IGRvY3Vt
ZW50KCktPmNyZWF0ZUVsZW1lbnQodGRUYWcsIGZhbHNlKTsKICAgICBlbGVtZW50LT5hcHBlbmRD
aGlsZChUZXh0OjpjcmVhdGUoKmRvY3VtZW50KCksIFN0cmluZygmbm9CcmVha1NwYWNlLCAxKSks
IElHTk9SRV9FWENFUFRJT04pOwogICAgIGlmIChpc0RpcmVjdG9yeSkKICAgICAgICAgZWxlbWVu
dC0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6Y2xhc3NBdHRyLCAiZnRwRGlyZWN0b3J5SWNvbiBm
dHBEaXJlY3RvcnlUeXBlRGlyZWN0b3J5Iik7CiAgICAgZWxzZQogICAgICAgICBlbGVtZW50LT5z
ZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpjbGFzc0F0dHIsICJmdHBEaXJlY3RvcnlJY29uIGZ0cERp
cmVjdG9yeVR5cGVGaWxlIik7Ci0gICAgcm93RWxlbWVudC0+YXBwZW5kQ2hpbGQoZWxlbWVudCwg
SUdOT1JFX0VYQ0VQVElPTik7CisgICAgcm93RWxlbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3Zl
KGVsZW1lbnQpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAogICAgIGVsZW1lbnQgPSBjcmVhdGVUREZv
ckZpbGVuYW1lKGZpbGVuYW1lKTsKICAgICBlbGVtZW50LT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVz
OjpjbGFzc0F0dHIsICJmdHBEaXJlY3RvcnlGaWxlTmFtZSIpOwotICAgIHJvd0VsZW1lbnQtPmFw
cGVuZENoaWxkKGVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOworICAgIHJvd0VsZW1lbnQtPmFw
cGVuZENoaWxkKFdURjo6bW92ZShlbGVtZW50KSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKICAgICBl
bGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudCh0ZFRhZywgZmFsc2UpOwogICAgIGVs
ZW1lbnQtPmFwcGVuZENoaWxkKFRleHQ6OmNyZWF0ZSgqZG9jdW1lbnQoKSwgZGF0ZSksIElHTk9S
RV9FWENFUFRJT04pOwogICAgIGVsZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNsYXNz
QXR0ciwgImZ0cERpcmVjdG9yeUZpbGVEYXRlIik7Ci0gICAgcm93RWxlbWVudC0+YXBwZW5kQ2hp
bGQoZWxlbWVudCwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgcm93RWxlbWVudC0+YXBwZW5kQ2hp
bGQoV1RGOjptb3ZlKGVsZW1lbnQpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAogICAgIGVsZW1lbnQg
PSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KHRkVGFnLCBmYWxzZSk7CiAgICAgZWxlbWVudC0+
YXBwZW5kQ2hpbGQoVGV4dDo6Y3JlYXRlKCpkb2N1bWVudCgpLCBzaXplKSwgSUdOT1JFX0VYQ0VQ
VElPTik7CiAgICAgZWxlbWVudC0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6Y2xhc3NBdHRyLCAi
ZnRwRGlyZWN0b3J5RmlsZVNpemUiKTsKLSAgICByb3dFbGVtZW50LT5hcHBlbmRDaGlsZChlbGVt
ZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICByb3dFbGVtZW50LT5hcHBlbmRDaGlsZChXVEY6
Om1vdmUoZWxlbWVudCksIElHTk9SRV9FWENFUFRJT04pOwogfQogCiBSZWY8RWxlbWVudD4gRlRQ
RGlyZWN0b3J5RG9jdW1lbnRQYXJzZXI6OmNyZWF0ZVRERm9yRmlsZW5hbWUoY29uc3QgU3RyaW5n
JiBmaWxlbmFtZSkKQEAgLTEzNSwxMiArMTM1LDEyIEBAIFJlZjxFbGVtZW50PiBGVFBEaXJlY3Rv
cnlEb2N1bWVudFBhcnNlcjo6Y3JlYXRlVERGb3JGaWxlbmFtZShjb25zdCBTdHJpbmcmIGZpbGVu
CiAgICAgZWxzZQogICAgICAgICBmdWxsVVJMID0gZnVsbFVSTCArICcvJyArIGZpbGVuYW1lOwog
Ci0gICAgUmVmUHRyPEVsZW1lbnQ+IGFuY2hvckVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVF
bGVtZW50KGFUYWcsIGZhbHNlKTsKKyAgICBSZWY8RWxlbWVudD4gYW5jaG9yRWxlbWVudCA9IGRv
Y3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoYVRhZywgZmFsc2UpOwogICAgIGFuY2hvckVsZW1lbnQt
PnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmhyZWZBdHRyLCBmdWxsVVJMKTsKICAgICBhbmNob3JF
bGVtZW50LT5hcHBlbmRDaGlsZChUZXh0OjpjcmVhdGUoKmRvY3VtZW50KCksIGZpbGVuYW1lKSwg
SUdOT1JFX0VYQ0VQVElPTik7CiAKICAgICBSZWY8RWxlbWVudD4gdGRFbGVtZW50ID0gZG9jdW1l
bnQoKS0+Y3JlYXRlRWxlbWVudCh0ZFRhZywgZmFsc2UpOwotICAgIHRkRWxlbWVudC0+YXBwZW5k
Q2hpbGQoYW5jaG9yRWxlbWVudCwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgdGRFbGVtZW50LT5h
cHBlbmRDaGlsZChXVEY6Om1vdmUoYW5jaG9yRWxlbWVudCksIElHTk9SRV9FWENFUFRJT04pOwog
CiAgICAgcmV0dXJuIHRkRWxlbWVudDsKIH0KQEAgLTMxMiw5ICszMTIsOSBAQCBib29sIEZUUERp
cmVjdG9yeURvY3VtZW50UGFyc2VyOjpsb2FkRG9jdW1lbnRUZW1wbGF0ZSgpCiAgICAgLy8gSWYg
dGhhdCBmYWlscyBmb3Igc29tZSByZWFzb24sIGNyYW0gaXQgb24gdGhlIGVuZCBvZiB0aGUgZG9j
dW1lbnQgYXMgYSBsYXN0CiAgICAgLy8gZGl0Y2ggZWZmb3J0CiAgICAgaWYgKGF1dG8qIGJvZHkg
PSBkb2N1bWVudCgpLT5ib2R5T3JGcmFtZXNldCgpKQotICAgICAgICBib2R5LT5hcHBlbmRDaGls
ZChtX3RhYmxlRWxlbWVudCwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgICAgIGJvZHktPmFwcGVu
ZENoaWxkKCptX3RhYmxlRWxlbWVudCwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgZWxzZQotICAg
ICAgICBkb2N1bWVudCgpLT5hcHBlbmRDaGlsZChtX3RhYmxlRWxlbWVudCwgSUdOT1JFX0VYQ0VQ
VElPTik7CisgICAgICAgIGRvY3VtZW50KCktPmFwcGVuZENoaWxkKCptX3RhYmxlRWxlbWVudCwg
SUdOT1JFX0VYQ0VQVElPTik7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTMyNSwxNiArMzI1
LDE2IEBAIHZvaWQgRlRQRGlyZWN0b3J5RG9jdW1lbnRQYXJzZXI6OmNyZWF0ZUJhc2ljRG9jdW1l
bnQoKQogCiAgICAgLy8gRklYTUU6IE1ha2UgdGhpcyAiYmFzaWMgZG9jdW1lbnQiIG1vcmUgYWNj
ZXB0YWJsZQogCi0gICAgUmVmUHRyPEVsZW1lbnQ+IGJvZHlFbGVtZW50ID0gZG9jdW1lbnQoKS0+
Y3JlYXRlRWxlbWVudChib2R5VGFnLCBmYWxzZSk7CisgICAgUmVmPEVsZW1lbnQ+IGJvZHlFbGVt
ZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChib2R5VGFnLCBmYWxzZSk7CiAKLSAgICBk
b2N1bWVudCgpLT5hcHBlbmRDaGlsZChib2R5RWxlbWVudCwgSUdOT1JFX0VYQ0VQVElPTik7Cisg
ICAgZG9jdW1lbnQoKS0+YXBwZW5kQ2hpbGQoYm9keUVsZW1lbnQuY29weVJlZigpLCBJR05PUkVf
RVhDRVBUSU9OKTsKIAotICAgIFJlZlB0cjxFbGVtZW50PiB0YWJsZUVsZW1lbnQgPSBkb2N1bWVu
dCgpLT5jcmVhdGVFbGVtZW50KHRhYmxlVGFnLCBmYWxzZSk7Ci0gICAgbV90YWJsZUVsZW1lbnQg
PSBkb3duY2FzdDxIVE1MVGFibGVFbGVtZW50Pih0YWJsZUVsZW1lbnQuZ2V0KCkpOworICAgIFJl
ZjxFbGVtZW50PiB0YWJsZUVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KHRhYmxl
VGFnLCBmYWxzZSk7CisgICAgbV90YWJsZUVsZW1lbnQgPSBkb3duY2FzdDxIVE1MVGFibGVFbGVt
ZW50Pih0YWJsZUVsZW1lbnQucHRyKCkpOwogICAgIG1fdGFibGVFbGVtZW50LT5zZXRBdHRyaWJ1
dGUoSFRNTE5hbWVzOjppZEF0dHIsICJmdHBEaXJlY3RvcnlUYWJsZSIpOwogICAgIG1fdGFibGVF
bGVtZW50LT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpzdHlsZUF0dHIsICJ3aWR0aDoxMDAlIik7
CiAKLSAgICBib2R5RWxlbWVudC0+YXBwZW5kQ2hpbGQobV90YWJsZUVsZW1lbnQsIElHTk9SRV9F
WENFUFRJT04pOworICAgIGJvZHlFbGVtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUodGFibGVF
bGVtZW50KSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKICAgICBkb2N1bWVudCgpLT5wcm9jZXNzVmll
d3BvcnQoIndpZHRoPWRldmljZS13aWR0aCIsIFZpZXdwb3J0QXJndW1lbnRzOjpWaWV3cG9ydE1l
dGEpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCmluZGV4
IDQzMDIxMmMuLjQ4Y2M5YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERl
dGFpbHNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxl
bWVudC5jcHAKQEAgLTkwLDExICs5MCwxMSBAQCBwcml2YXRlOgogCiBSZWY8RGV0YWlsc1N1bW1h
cnlFbGVtZW50PiBEZXRhaWxzU3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1l
bnQpCiB7Ci0gICAgUmVmUHRyPEhUTUxTdW1tYXJ5RWxlbWVudD4gc3VtbWFyeSA9IEhUTUxTdW1t
YXJ5RWxlbWVudDo6Y3JlYXRlKHN1bW1hcnlUYWcsIGRvY3VtZW50KTsKKyAgICBSZWY8SFRNTFN1
bW1hcnlFbGVtZW50PiBzdW1tYXJ5ID0gSFRNTFN1bW1hcnlFbGVtZW50OjpjcmVhdGUoc3VtbWFy
eVRhZywgZG9jdW1lbnQpOwogICAgIHN1bW1hcnktPmFwcGVuZENoaWxkKFRleHQ6OmNyZWF0ZShk
b2N1bWVudCwgZGVmYXVsdERldGFpbHNTdW1tYXJ5VGV4dCgpKSwgQVNTRVJUX05PX0VYQ0VQVElP
Tik7CiAKICAgICBSZWY8RGV0YWlsc1N1bW1hcnlFbGVtZW50PiBkZXRhaWxzU3VtbWFyeSA9IGFk
b3B0UmVmKCpuZXcgRGV0YWlsc1N1bW1hcnlFbGVtZW50KGRvY3VtZW50KSk7Ci0gICAgZGV0YWls
c1N1bW1hcnktPmFwcGVuZENoaWxkKHN1bW1hcnkpOworICAgIGRldGFpbHNTdW1tYXJ5LT5hcHBl
bmRDaGlsZChXVEY6Om1vdmUoc3VtbWFyeSkpOwogICAgIHJldHVybiBkZXRhaWxzU3VtbWFyeTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAppbmRleCA1MjBjZTAzLi4wNmQwYWNl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcApAQCAtNTg0LDkgKzU4NCw5IEBAIHZv
aWQgSFRNTEVsZW1lbnQ6OnNldElubmVyVGV4dChjb25zdCBTdHJpbmcmIHRleHQsIEV4Y2VwdGlv
bkNvZGUmIGVjKQogCiAgICAgLy8gQWRkIHRleHQgbm9kZXMgYW5kIDxicj4gZWxlbWVudHMuCiAg
ICAgZWMgPSAwOwotICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IHRleHRU
b0ZyYWdtZW50KHRleHQsIGVjKTsKKyAgICBSZWY8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQg
PSB0ZXh0VG9GcmFnbWVudCh0ZXh0LCBlYyk7CiAgICAgaWYgKCFlYykKLSAgICAgICAgcmVwbGFj
ZUNoaWxkcmVuV2l0aEZyYWdtZW50KCp0aGlzLCBmcmFnbWVudC5yZWxlYXNlKCksIGVjKTsKKyAg
ICAgICAgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KCp0aGlzLCBXVEY6Om1vdmUoZnJhZ21l
bnQpLCBlYyk7CiB9CiAKIHZvaWQgSFRNTEVsZW1lbnQ6OnNldE91dGVyVGV4dChjb25zdCBTdHJp
bmcmIHRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtNjA4LDIwICs2MDgsMTYgQEAgdm9pZCBI
VE1MRWxlbWVudDo6c2V0T3V0ZXJUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiAKICAgICBSZWZQdHI8Tm9kZT4gcHJldiA9IHByZXZpb3VzU2libGluZygpOwogICAg
IFJlZlB0cjxOb2RlPiBuZXh0ID0gbmV4dFNpYmxpbmcoKTsKLSAgICBSZWZQdHI8Tm9kZT4gbmV3
Q2hpbGQ7CiAgICAgZWMgPSAwOwogICAgIAogICAgIC8vIENvbnZlcnQgdGV4dCB0byBmcmFnbWVu
dCB3aXRoIDxicj4gdGFncyBpbnN0ZWFkIG9mIGxpbmVicmVha3MgaWYgbmVlZGVkLgotICAgIGlm
ICh0ZXh0LmNvbnRhaW5zKCdccicpIHx8IHRleHQuY29udGFpbnMoJ1xuJykpCi0gICAgICAgIG5l
d0NoaWxkID0gdGV4dFRvRnJhZ21lbnQodGV4dCwgZWMpOwotICAgIGVsc2UKLSAgICAgICAgbmV3
Q2hpbGQgPSBUZXh0OjpjcmVhdGUoZG9jdW1lbnQoKSwgdGV4dCk7CisgICAgUmVmPE5vZGU+IG5l
d0NoaWxkID0gdGV4dC5jb250YWlucygnXHInKSB8fCB0ZXh0LmNvbnRhaW5zKCdcbicpID8gUmVm
PE5vZGU+KHRleHRUb0ZyYWdtZW50KHRleHQsIGVjKSkgOiBSZWY8Tm9kZT4oVGV4dDo6Y3JlYXRl
KGRvY3VtZW50KCksIHRleHQpKTsKIAogICAgIGlmICghcGFyZW50Tm9kZSgpKQogICAgICAgICBl
YyA9IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybjsK
LSAgICBwYXJlbnQtPnJlcGxhY2VDaGlsZChuZXdDaGlsZC5yZWxlYXNlKCksIHRoaXMsIGVjKTsK
KyAgICBwYXJlbnQtPnJlcGxhY2VDaGlsZChXVEY6Om1vdmUobmV3Q2hpbGQpLCAqdGhpcywgZWMp
OwogCiAgICAgUmVmUHRyPE5vZGU+IG5vZGUgPSBuZXh0ID8gbmV4dC0+cHJldmlvdXNTaWJsaW5n
KCkgOiBudWxscHRyOwogICAgIGlmICghZWMgJiYgaXM8VGV4dD4obm9kZS5nZXQoKSkpCkBAIC02
MzAsNyArNjI2LDcgQEAgdm9pZCBIVE1MRWxlbWVudDo6c2V0T3V0ZXJUZXh0KGNvbnN0IFN0cmlu
ZyYgdGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgIG1lcmdlV2l0aE5leHRUZXh0Tm9k
ZShkb3duY2FzdDxUZXh0PigqcHJldiksIGVjKTsKIH0KIAotTm9kZSogSFRNTEVsZW1lbnQ6Omlu
c2VydEFkamFjZW50KGNvbnN0IFN0cmluZyYgd2hlcmUsIE5vZGUqIG5ld0NoaWxkLCBFeGNlcHRp
b25Db2RlJiBlYykKK05vZGUqIEhUTUxFbGVtZW50OjppbnNlcnRBZGphY2VudChjb25zdCBTdHJp
bmcmIHdoZXJlLCBSZWY8Tm9kZT4mJiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAg
ICAgLy8gSW4gSW50ZXJuZXQgRXhwbG9yZXIgaWYgdGhlIGVsZW1lbnQgaGFzIG5vIHBhcmVudCBh
bmQgd2hlcmUgaXMgImJlZm9yZUJlZ2luIiBvciAiYWZ0ZXJFbmQiLAogICAgIC8vIGEgZG9jdW1l
bnQgZnJhZ21lbnQgaXMgY3JlYXRlZCBhbmQgdGhlIGVsZW1lbnRzIGFwcGVuZGVkIGluIHRoZSBj
b3JyZWN0IG9yZGVyLiBUaGlzIGRvY3VtZW50CkBAIC02NDEsMTggKzYzNywxOCBAQCBOb2RlKiBI
VE1MRWxlbWVudDo6aW5zZXJ0QWRqYWNlbnQoY29uc3QgU3RyaW5nJiB3aGVyZSwgTm9kZSogbmV3
Q2hpbGQsIEV4Y2VwdGlvbgogCiAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHdoZXJlLCAiYmVm
b3JlQmVnaW4iKSkgewogICAgICAgICBDb250YWluZXJOb2RlKiBwYXJlbnQgPSB0aGlzLT5wYXJl
bnROb2RlKCk7Ci0gICAgICAgIHJldHVybiAocGFyZW50ICYmIHBhcmVudC0+aW5zZXJ0QmVmb3Jl
KG5ld0NoaWxkLCB0aGlzLCBlYykpID8gbmV3Q2hpbGQgOiBudWxscHRyOworICAgICAgICByZXR1
cm4gKHBhcmVudCAmJiBwYXJlbnQtPmluc2VydEJlZm9yZShuZXdDaGlsZC5jb3B5UmVmKCksIHRo
aXMsIGVjKSkgPyBuZXdDaGlsZC5wdHIoKSA6IG51bGxwdHI7CiAgICAgfQogCiAgICAgaWYgKGVx
dWFsSWdub3JpbmdDYXNlKHdoZXJlLCAiYWZ0ZXJCZWdpbiIpKQotICAgICAgICByZXR1cm4gaW5z
ZXJ0QmVmb3JlKG5ld0NoaWxkLCBmaXJzdENoaWxkKCksIGVjKSA/IG5ld0NoaWxkIDogbnVsbHB0
cjsKKyAgICAgICAgcmV0dXJuIGluc2VydEJlZm9yZShuZXdDaGlsZC5jb3B5UmVmKCksIGZpcnN0
Q2hpbGQoKSwgZWMpID8gbmV3Q2hpbGQucHRyKCkgOiBudWxscHRyOwogCiAgICAgaWYgKGVxdWFs
SWdub3JpbmdDYXNlKHdoZXJlLCAiYmVmb3JlRW5kIikpCi0gICAgICAgIHJldHVybiBhcHBlbmRD
aGlsZChuZXdDaGlsZCwgZWMpID8gbmV3Q2hpbGQgOiBudWxscHRyOworICAgICAgICByZXR1cm4g
YXBwZW5kQ2hpbGQobmV3Q2hpbGQuY29weVJlZigpLCBlYykgPyBuZXdDaGlsZC5wdHIoKSA6IG51
bGxwdHI7CiAKICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2Uod2hlcmUsICJhZnRlckVuZCIpKSB7
CiAgICAgICAgIENvbnRhaW5lck5vZGUqIHBhcmVudCA9IHRoaXMtPnBhcmVudE5vZGUoKTsKLSAg
ICAgICAgcmV0dXJuIChwYXJlbnQgJiYgcGFyZW50LT5pbnNlcnRCZWZvcmUobmV3Q2hpbGQsIG5l
eHRTaWJsaW5nKCksIGVjKSkgPyBuZXdDaGlsZCA6IG51bGxwdHI7CisgICAgICAgIHJldHVybiAo
cGFyZW50ICYmIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG5ld0NoaWxkLmNvcHlSZWYoKSwgbmV4dFNp
YmxpbmcoKSwgZWMpKSA/IG5ld0NoaWxkLnB0cigpIDogbnVsbHB0cjsKICAgICB9CiAgICAgCiAg
ICAgLy8gSUUgdGhyb3dzIENPTSBFeGNlcHRpb24gRV9JTlZBTElEQVJHOyB0aGlzIGlzIHRoZSBi
ZXN0IERPTSBleGNlcHRpb24gYWx0ZXJuYXRpdmUuCkBAIC02NjgsNyArNjY0LDcgQEAgRWxlbWVu
dCogSFRNTEVsZW1lbnQ6Omluc2VydEFkamFjZW50RWxlbWVudChjb25zdCBTdHJpbmcmIHdoZXJl
LCBFbGVtZW50KiBuZXdDaGkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAg
Tm9kZSogcmV0dXJuVmFsdWUgPSBpbnNlcnRBZGphY2VudCh3aGVyZSwgbmV3Q2hpbGQsIGVjKTsK
KyAgICBOb2RlKiByZXR1cm5WYWx1ZSA9IGluc2VydEFkamFjZW50KHdoZXJlLCAqbmV3Q2hpbGQs
IGVjKTsKICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighcmV0dXJuVmFsdWUg
fHwgaXM8RWxlbWVudD4oKnJldHVyblZhbHVlKSk7CiAgICAgcmV0dXJuIGRvd25jYXN0PEVsZW1l
bnQ+KHJldHVyblZhbHVlKTsgCiB9CkBAIC02OTksMTMgKzY5NSwxMiBAQCB2b2lkIEhUTUxFbGVt
ZW50OjppbnNlcnRBZGphY2VudEhUTUwoY29uc3QgU3RyaW5nJiB3aGVyZSwgY29uc3QgU3RyaW5n
JiBtYXJrdXAsCiAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gY3JlYXRl
RnJhZ21lbnRGb3JJbm5lck91dGVySFRNTChtYXJrdXAsIGNvbnRleHRFbGVtZW50LCBBbGxvd1Nj
cmlwdGluZ0NvbnRlbnQsIGVjKTsKICAgICBpZiAoIWZyYWdtZW50KQogICAgICAgICByZXR1cm47
Ci0gICAgaW5zZXJ0QWRqYWNlbnQod2hlcmUsIGZyYWdtZW50LmdldCgpLCBlYyk7CisgICAgaW5z
ZXJ0QWRqYWNlbnQod2hlcmUsIGZyYWdtZW50LnJlbGVhc2VOb25OdWxsKCksIGVjKTsKIH0KIAog
dm9pZCBIVE1MRWxlbWVudDo6aW5zZXJ0QWRqYWNlbnRUZXh0KGNvbnN0IFN0cmluZyYgd2hlcmUs
IGNvbnN0IFN0cmluZyYgdGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgUmVmUHRyPFRl
eHQ+IHRleHROb2RlID0gZG9jdW1lbnQoKS5jcmVhdGVUZXh0Tm9kZSh0ZXh0KTsKLSAgICBpbnNl
cnRBZGphY2VudCh3aGVyZSwgdGV4dE5vZGUuZ2V0KCksIGVjKTsKKyAgICBpbnNlcnRBZGphY2Vu
dCh3aGVyZSwgZG9jdW1lbnQoKS5jcmVhdGVUZXh0Tm9kZSh0ZXh0KSwgZWMpOwogfQogCiB2b2lk
IEhUTUxFbGVtZW50OjphcHBseUFsaWdubWVudEF0dHJpYnV0ZVRvU3R5bGUoY29uc3QgQXRvbWlj
U3RyaW5nJiBhbGlnbm1lbnQsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIHN0eWxlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRWxlbWVudC5oCmluZGV4IDMwZTM3NzUuLjcwZDQ5NjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50LmgKQEAgLTEzMCw3ICsxMzAsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVh
bCBIVE1MRm9ybUVsZW1lbnQqIHZpcnR1YWxGb3JtKCkgY29uc3Q7CiAKLSAgICBOb2RlKiBpbnNl
cnRBZGphY2VudChjb25zdCBTdHJpbmcmIHdoZXJlLCBOb2RlKiBuZXdDaGlsZCwgRXhjZXB0aW9u
Q29kZSYpOworICAgIE5vZGUqIGluc2VydEFkamFjZW50KGNvbnN0IFN0cmluZyYgd2hlcmUsIFJl
ZjxOb2RlPiYmIG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgUmVmPERvY3VtZW50RnJh
Z21lbnQ+IHRleHRUb0ZyYWdtZW50KGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKIAog
ICAgIHZvaWQgZGlyQXR0cmlidXRlQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCmluZGV4IGIyYTI3N2EuLmE0YTczY2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcApAQCAtNTA0LDcgKzUw
NCw3IEBAIHZvaWQgSFRNTEltYWdlRWxlbWVudDo6Y3JlYXRlSW1hZ2VDb250cm9scygpCiAgICAg
aWYgKCFpbWFnZUNvbnRyb2xzKQogICAgICAgICByZXR1cm47CiAKLSAgICBlbnN1cmVVc2VyQWdl
bnRTaGFkb3dSb290KCkuYXBwZW5kQ2hpbGQoaW1hZ2VDb250cm9scyk7CisgICAgZW5zdXJlVXNl
ckFnZW50U2hhZG93Um9vdCgpLmFwcGVuZENoaWxkKGltYWdlQ29udHJvbHMucmVsZWFzZU5vbk51
bGwoKSk7CiAKICAgICBhdXRvKiByZW5kZXJPYmplY3QgPSByZW5kZXJlcigpOwogICAgIGlmICgh
cmVuZGVyT2JqZWN0KQpAQCAtNTIxLDcgKzUyMSw3IEBAIHZvaWQgSFRNTEltYWdlRWxlbWVudDo6
ZGVzdHJveUltYWdlQ29udHJvbHMoKQogCiAgICAgaWYgKE5vZGUqIG5vZGUgPSBzaGFkb3dSb290
LT5maXJzdENoaWxkKCkpIHsKICAgICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJ
T04obm9kZS0+aXNJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQoKSk7Ci0gICAgICAgIHNoYWRvd1Jv
b3QtPnJlbW92ZUNoaWxkKG5vZGUpOworICAgICAgICBzaGFkb3dSb290LT5yZW1vdmVDaGlsZCgq
bm9kZSk7CiAgICAgfQogCiAgICAgYXV0byogcmVuZGVyT2JqZWN0ID0gcmVuZGVyZXIoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKaW5kZXggZTdkOTE0OC4uNGE2
M2IwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKQEAgLTU4
LDcgKzU4LDcgQEAgcHJvdGVjdGVkOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIFJl
ZlB0cjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERv
Y3VtZW50JiB0YXJnZXREb2N1bWVudCkgb3ZlcnJpZGUKKyAgICB2aXJ0dWFsIFJlZjxFbGVtZW50
PiBjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50JiB0YXJn
ZXREb2N1bWVudCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIHJldHVybiBjcmVhdGUodGFyZ2V0
RG9jdW1lbnQpOwogICAgIH0KQEAgLTczLDE0ICs3MywxNCBAQCBpbmxpbmUgSFRNTEtleWdlbkVs
ZW1lbnQ6OkhUTUxLZXlnZW5FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZQogICAgIFZlY3RvcjxTdHJpbmc+IGtleXM7CiAgICAgZ2V0U3VwcG9ydGVkS2V5U2l6ZXMo
a2V5cyk7CiAKLSAgICBSZWZQdHI8SFRNTFNlbGVjdEVsZW1lbnQ+IHNlbGVjdCA9IEtleWdlblNl
bGVjdEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgUmVmPEhUTUxTZWxlY3RFbGVtZW50
PiBzZWxlY3QgPSBLZXlnZW5TZWxlY3RFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwga2V5cy5zaXplKCk7ICsraSkgewotICAgICAgICBSZWZQdHI8
SFRNTE9wdGlvbkVsZW1lbnQ+IG9wdGlvbiA9IEhUTUxPcHRpb25FbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQpOwotICAgICAgICBzZWxlY3QtPmFwcGVuZENoaWxkKG9wdGlvbiwgSUdOT1JFX0VYQ0VQ
VElPTik7CisgICAgICAgIFJlZjxIVE1MT3B0aW9uRWxlbWVudD4gb3B0aW9uID0gSFRNTE9wdGlv
bkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgICAgIHNlbGVjdC0+YXBwZW5kQ2hpbGQo
b3B0aW9uLmNvcHlSZWYoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgICAgIG9wdGlvbi0+YXBw
ZW5kQ2hpbGQoVGV4dDo6Y3JlYXRlKGRvY3VtZW50LCBrZXlzW2ldKSwgSUdOT1JFX0VYQ0VQVElP
Tik7CiAgICAgfQogCi0gICAgZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCgpLmFwcGVuZENoaWxk
KHNlbGVjdCwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgZW5zdXJlVXNlckFnZW50U2hhZG93Um9v
dCgpLmFwcGVuZENoaWxkKFdURjo6bW92ZShzZWxlY3QpLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0K
IAogUmVmPEhUTUxLZXlnZW5FbGVtZW50PiBIVE1MS2V5Z2VuRWxlbWVudDo6Y3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCwgSFRNTEZvcm1FbGVt
ZW50KiBmb3JtKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAKaW5kZXgg
MjJiMmYzOS4uZTVlM2RlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0
ZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQu
Y3BwCkBAIC0yMjksMTYgKzIyOSwxNiBAQCB2b2lkIEhUTUxNZXRlckVsZW1lbnQ6OmRpZEFkZFVz
ZXJBZ2VudFNoYWRvd1Jvb3QoU2hhZG93Um9vdCogcm9vdCkKIHsKICAgICBBU1NFUlQoIW1fdmFs
dWUpOwogCi0gICAgUmVmUHRyPE1ldGVySW5uZXJFbGVtZW50PiBpbm5lciA9IE1ldGVySW5uZXJF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7Ci0gICAgcm9vdC0+YXBwZW5kQ2hpbGQoaW5uZXIp
OworICAgIFJlZjxNZXRlcklubmVyRWxlbWVudD4gaW5uZXIgPSBNZXRlcklubmVyRWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50KCkpOworICAgIHJvb3QtPmFwcGVuZENoaWxkKGlubmVyLmNvcHlSZWYo
KSk7CiAKLSAgICBSZWZQdHI8TWV0ZXJCYXJFbGVtZW50PiBiYXIgPSBNZXRlckJhckVsZW1lbnQ6
OmNyZWF0ZShkb2N1bWVudCgpKTsKKyAgICBSZWY8TWV0ZXJCYXJFbGVtZW50PiBiYXIgPSBNZXRl
ckJhckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKICAgICBtX3ZhbHVlID0gTWV0ZXJWYWx1
ZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKICAgICBtX3ZhbHVlLT5zZXRXaWR0aFBlcmNl
bnRhZ2UoMCk7CiAgICAgbV92YWx1ZS0+dXBkYXRlUHNldWRvKCk7Ci0gICAgYmFyLT5hcHBlbmRD
aGlsZChtX3ZhbHVlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBiYXItPmFwcGVuZENoaWxk
KCptX3ZhbHVlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAotICAgIGlubmVyLT5hcHBlbmRDaGls
ZChiYXIsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIGlubmVyLT5hcHBlbmRDaGlsZChXVEY6
Om1vdmUoYmFyKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCmluZGV4IDJkZmZmMjYuLmVk
OWNhZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCkBAIC03
MSwxMiArNzEsMTIgQEAgUmVmUHRyPEhUTUxPcHRpb25FbGVtZW50PiBIVE1MT3B0aW9uRWxlbWVu
dDo6Y3JlYXRlRm9ySlNDb25zdHJ1Y3RvcihEb2N1bWVudCYgZG8KIHsKICAgICBSZWZQdHI8SFRN
TE9wdGlvbkVsZW1lbnQ+IGVsZW1lbnQgPSBhZG9wdFJlZihuZXcgSFRNTE9wdGlvbkVsZW1lbnQo
b3B0aW9uVGFnLCBkb2N1bWVudCkpOwogCi0gICAgUmVmUHRyPFRleHQ+IHRleHQgPSBUZXh0Ojpj
cmVhdGUoZG9jdW1lbnQsIGRhdGEuaXNOdWxsKCkgPyAiIiA6IGRhdGEpOworICAgIFJlZjxUZXh0
PiB0ZXh0ID0gVGV4dDo6Y3JlYXRlKGRvY3VtZW50LCBkYXRhLmlzTnVsbCgpID8gIiIgOiBkYXRh
KTsKIAogICAgIGVjID0gMDsKLSAgICBlbGVtZW50LT5hcHBlbmRDaGlsZCh0ZXh0LnJlbGVhc2Uo
KSwgZWMpOworICAgIGVsZW1lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZSh0ZXh0KSwgZWMpOwog
ICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwog
CiAgICAgaWYgKCF2YWx1ZS5pc051bGwoKSkKICAgICAgICAgZWxlbWVudC0+c2V0VmFsdWUodmFs
dWUpOwpAQCAtODQsNyArODQsNyBAQCBSZWZQdHI8SFRNTE9wdGlvbkVsZW1lbnQ+IEhUTUxPcHRp
b25FbGVtZW50OjpjcmVhdGVGb3JKU0NvbnN0cnVjdG9yKERvY3VtZW50JiBkbwogICAgICAgICBl
bGVtZW50LT5zZXRBdHRyaWJ1dGUoc2VsZWN0ZWRBdHRyLCBlbXB0eUF0b20pOwogICAgIGVsZW1l
bnQtPnNldFNlbGVjdGVkKHNlbGVjdGVkKTsKIAotICAgIHJldHVybiBlbGVtZW50LnJlbGVhc2Uo
KTsKKyAgICByZXR1cm4gZWxlbWVudDsKIH0KIAogYm9vbCBIVE1MT3B0aW9uRWxlbWVudDo6aXNG
b2N1c2FibGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJv
Z3Jlc3NFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVu
dC5jcHAKaW5kZXggODdmMGUzNy4uZGI3ZDA2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQcm9ncmVzc0VsZW1lbnQuY3BwCkBAIC0xNDksMTYgKzE0OSwxNiBAQCB2b2lkIEhUTUxQcm9n
cmVzc0VsZW1lbnQ6OmRpZEFkZFVzZXJBZ2VudFNoYWRvd1Jvb3QoU2hhZG93Um9vdCogcm9vdCkK
IHsKICAgICBBU1NFUlQoIW1fdmFsdWUpOwogCi0gICAgUmVmUHRyPFByb2dyZXNzSW5uZXJFbGVt
ZW50PiBpbm5lciA9IFByb2dyZXNzSW5uZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7Ci0g
ICAgcm9vdC0+YXBwZW5kQ2hpbGQoaW5uZXIpOworICAgIFJlZjxQcm9ncmVzc0lubmVyRWxlbWVu
dD4gaW5uZXIgPSBQcm9ncmVzc0lubmVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOworICAg
IHJvb3QtPmFwcGVuZENoaWxkKGlubmVyLmNvcHlSZWYoKSk7CiAKLSAgICBSZWZQdHI8UHJvZ3Jl
c3NCYXJFbGVtZW50PiBiYXIgPSBQcm9ncmVzc0JhckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgp
KTsKLSAgICBSZWZQdHI8UHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ+IHZhbHVlID0gUHJvZ3Jlc3NWYWx1
ZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKLSAgICBtX3ZhbHVlID0gdmFsdWUuZ2V0KCk7
CisgICAgUmVmPFByb2dyZXNzQmFyRWxlbWVudD4gYmFyID0gUHJvZ3Jlc3NCYXJFbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQoKSk7CisgICAgUmVmPFByb2dyZXNzVmFsdWVFbGVtZW50PiB2YWx1ZSA9
IFByb2dyZXNzVmFsdWVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CisgICAgbV92YWx1ZSA9
IHZhbHVlLnB0cigpOwogICAgIG1fdmFsdWUtPnNldFdpZHRoUGVyY2VudGFnZShIVE1MUHJvZ3Jl
c3NFbGVtZW50OjpJbmRldGVybWluYXRlUG9zaXRpb24gKiAxMDApOwotICAgIGJhci0+YXBwZW5k
Q2hpbGQobV92YWx1ZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgYmFyLT5hcHBlbmRDaGls
ZCgqbV92YWx1ZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKLSAgICBpbm5lci0+YXBwZW5kQ2hp
bGQoYmFyLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBpbm5lci0+YXBwZW5kQ2hpbGQoV1RG
Ojptb3ZlKGJhciksIEFTU0VSVF9OT19FWENFUFRJT04pOwogfQogCiBib29sIEhUTUxQcm9ncmVz
c0VsZW1lbnQ6OnNob3VsZEFwcGVhckluZGV0ZXJtaW5hdGUoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcAppbmRleCA2OTUxMTQ2Li5lMTNhNWNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcApAQCAtMTY5LDkgKzE2OSw5
IEBAIHZvaWQgSFRNTFNjcmlwdEVsZW1lbnQ6OmRpc3BhdGNoTG9hZEV2ZW50KCkKICAgICBkaXNw
YXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmxvYWRFdmVudCwgZmFsc2UsIGZh
bHNlKSk7CiB9CiAKLVJlZlB0cjxFbGVtZW50PiBIVE1MU2NyaXB0RWxlbWVudDo6Y2xvbmVFbGVt
ZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQp
CitSZWY8RWxlbWVudD4gSFRNTFNjcmlwdEVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhvdXRBdHRy
aWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50KQogewotICAgIHJldHVy
biBhZG9wdFJlZihuZXcgSFRNTFNjcmlwdEVsZW1lbnQodGFnUU5hbWUoKSwgdGFyZ2V0RG9jdW1l
bnQsIGZhbHNlLCBhbHJlYWR5U3RhcnRlZCgpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
SFRNTFNjcmlwdEVsZW1lbnQodGFnUU5hbWUoKSwgdGFyZ2V0RG9jdW1lbnQsIGZhbHNlLCBhbHJl
YWR5U3RhcnRlZCgpKSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFNjcmlwdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1l
bnQuaAppbmRleCBlMzljMTBjLi4zMTJjNjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2Ny
aXB0RWxlbWVudC5oCkBAIC02NSw3ICs2NSw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZv
aWQgZGlzcGF0Y2hMb2FkRXZlbnQoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgUmVmUHRyPEVs
ZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQm
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRob3V0
QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50Jikgb3ZlcnJpZGU7CiB9OwogCiB9IC8vbmFt
ZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCmluZGV4IGVi
NzM5NDUuLjRmMTA0NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVj
dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQu
Y3BwCkBAIC0yMjcsNyArMjI3LDcgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6YWRkKEhUTUxF
bGVtZW50KiBlbGVtZW50LCBIVE1MRWxlbWVudCogYmVmb3JlRWxlbWVudCwgRXgKICAgICAvLyBN
YWtlIHN1cmUgdGhlIGVsZW1lbnQgaXMgcmVmJ2QgYW5kIGRlcmVmJ2Qgc28gd2UgZG9uJ3QgbGVh
ayBpdC4KICAgICBSZWY8SFRNTEVsZW1lbnQ+IHByb3RlY3ROZXdDaGlsZCgqZWxlbWVudCk7CiAK
LSAgICBpbnNlcnRCZWZvcmUoZWxlbWVudCwgYmVmb3JlRWxlbWVudCwgZWMpOworICAgIGluc2Vy
dEJlZm9yZSgqZWxlbWVudCwgYmVmb3JlRWxlbWVudCwgZWMpOwogICAgIHVwZGF0ZVZhbGlkaXR5
KCk7CiB9CiAKQEAgLTQ4NiwxMiArNDg2LDEyIEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnNl
dExlbmd0aCh1bnNpZ25lZCBuZXdMZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQogCiAgICAgICAgIC8v
IFJlbW92aW5nIGNoaWxkcmVuIGZpcmVzIG11dGF0aW9uIGV2ZW50cywgd2hpY2ggbWlnaHQgbXV0
YXRlIHRoZSBET00gZnVydGhlciwgc28gd2UgZmlyc3QgY29weSBvdXQgYSBsaXN0CiAgICAgICAg
IC8vIG9mIGVsZW1lbnRzIHRoYXQgd2UgaW50ZW5kIHRvIHJlbW92ZSB0aGVuIGF0dGVtcHQgdG8g
cmVtb3ZlIHRoZW0gb25lIGF0IGEgdGltZS4KLSAgICAgICAgVmVjdG9yPFJlZlB0cjxFbGVtZW50
Pj4gaXRlbXNUb1JlbW92ZTsKKyAgICAgICAgVmVjdG9yPFJlZjxFbGVtZW50Pj4gaXRlbXNUb1Jl
bW92ZTsKICAgICAgICAgc2l6ZV90IG9wdGlvbkluZGV4ID0gMDsKICAgICAgICAgZm9yIChhdXRv
JiBpdGVtIDogaXRlbXMpIHsKICAgICAgICAgICAgIGlmIChpczxIVE1MT3B0aW9uRWxlbWVudD4o
Kml0ZW0pICYmIG9wdGlvbkluZGV4KysgPj0gbmV3TGVuKSB7CiAgICAgICAgICAgICAgICAgQVNT
RVJUKGl0ZW0tPnBhcmVudE5vZGUoKSk7Ci0gICAgICAgICAgICAgICAgaXRlbXNUb1JlbW92ZS5h
cHBlbmQoaXRlbSk7CisgICAgICAgICAgICAgICAgaXRlbXNUb1JlbW92ZS5hcHBlbmQoKml0ZW0p
OwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJs
ZUVsZW1lbnQuY3BwCmluZGV4IGI5MjhlMGQuLjRmYTc2MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGFibGVFbGVtZW50LmNwcApAQCAtODAsNyArODAsOCBAQCBIVE1MVGFibGVDYXB0aW9u
RWxlbWVudCogSFRNTFRhYmxlRWxlbWVudDo6Y2FwdGlvbigpIGNvbnN0CiB2b2lkIEhUTUxUYWJs
ZUVsZW1lbnQ6OnNldENhcHRpb24oUGFzc1JlZlB0cjxIVE1MVGFibGVDYXB0aW9uRWxlbWVudD4g
bmV3Q2FwdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgZGVsZXRlQ2FwdGlvbigpOwot
ICAgIGluc2VydEJlZm9yZShuZXdDYXB0aW9uLCBmaXJzdENoaWxkKCksIGVjKTsKKyAgICBpZiAo
bmV3Q2FwdGlvbikKKyAgICAgICAgaW5zZXJ0QmVmb3JlKCpuZXdDYXB0aW9uLCBmaXJzdENoaWxk
KCksIGVjKTsKIH0KIAogSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqIEhUTUxUYWJsZUVsZW1lbnQ6
OnRIZWFkKCkgY29uc3QKQEAgLTEwMSw3ICsxMDIsOCBAQCB2b2lkIEhUTUxUYWJsZUVsZW1lbnQ6
OnNldFRIZWFkKFBhc3NSZWZQdHI8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+IG5ld0hlYWQsIEV4
YwogICAgICAgICBpZiAoY2hpbGQtPmlzRWxlbWVudE5vZGUoKSAmJiAhY2hpbGQtPmhhc1RhZ05h
bWUoY2FwdGlvblRhZykgJiYgIWNoaWxkLT5oYXNUYWdOYW1lKGNvbGdyb3VwVGFnKSkKICAgICAg
ICAgICAgIGJyZWFrOwogCi0gICAgaW5zZXJ0QmVmb3JlKG5ld0hlYWQsIGNoaWxkLCBlYyk7Cisg
ICAgaWYgKG5ld0hlYWQpCisgICAgICAgIGluc2VydEJlZm9yZSgqbmV3SGVhZCwgY2hpbGQsIGVj
KTsKIH0KIAogSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqIEhUTUxUYWJsZUVsZW1lbnQ6OnRGb290
KCkgY29uc3QKQEAgLTEyMiw3ICsxMjQsOCBAQCB2b2lkIEhUTUxUYWJsZUVsZW1lbnQ6OnNldFRG
b290KFBhc3NSZWZQdHI8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+IG5ld0Zvb3QsIEV4YwogICAg
ICAgICBpZiAoY2hpbGQtPmlzRWxlbWVudE5vZGUoKSAmJiAhY2hpbGQtPmhhc1RhZ05hbWUoY2Fw
dGlvblRhZykgJiYgIWNoaWxkLT5oYXNUYWdOYW1lKGNvbGdyb3VwVGFnKSAmJiAhY2hpbGQtPmhh
c1RhZ05hbWUodGhlYWRUYWcpKQogICAgICAgICAgICAgYnJlYWs7CiAKLSAgICBpbnNlcnRCZWZv
cmUobmV3Rm9vdCwgY2hpbGQsIGVjKTsKKyAgICBpZiAobmV3Rm9vdCkKKyAgICAgICAgaW5zZXJ0
QmVmb3JlKCpuZXdGb290LCBjaGlsZCwgZWMpOwogfQogCiBSZWZQdHI8SFRNTEVsZW1lbnQ+IEhU
TUxUYWJsZUVsZW1lbnQ6OmNyZWF0ZVRIZWFkKCkKQEAgLTEzNiw3ICsxMzksOCBAQCBSZWZQdHI8
SFRNTEVsZW1lbnQ+IEhUTUxUYWJsZUVsZW1lbnQ6OmNyZWF0ZVRIZWFkKCkKIAogdm9pZCBIVE1M
VGFibGVFbGVtZW50OjpkZWxldGVUSGVhZCgpCiB7Ci0gICAgcmVtb3ZlQ2hpbGQodEhlYWQoKSwg
SUdOT1JFX0VYQ0VQVElPTik7CisgICAgaWYgKGF1dG8qIHRIZWFkID0gdGhpcy0+dEhlYWQoKSkK
KyAgICAgICAgcmVtb3ZlQ2hpbGQoKnRIZWFkLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KIAogUmVm
UHRyPEhUTUxFbGVtZW50PiBIVE1MVGFibGVFbGVtZW50OjpjcmVhdGVURm9vdCgpCkBAIC0xNTAs
MTUgKzE1NCwxNiBAQCBSZWZQdHI8SFRNTEVsZW1lbnQ+IEhUTUxUYWJsZUVsZW1lbnQ6OmNyZWF0
ZVRGb290KCkKIAogdm9pZCBIVE1MVGFibGVFbGVtZW50OjpkZWxldGVURm9vdCgpCiB7Ci0gICAg
cmVtb3ZlQ2hpbGQodEZvb3QoKSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgaWYgKGF1dG8qIHRG
b290ID0gdGhpcy0+dEZvb3QoKSkKKyAgICAgICAgcmVtb3ZlQ2hpbGQoKnRGb290LCBJR05PUkVf
RVhDRVBUSU9OKTsKIH0KIAogUmVmUHRyPEhUTUxFbGVtZW50PiBIVE1MVGFibGVFbGVtZW50Ojpj
cmVhdGVUQm9keSgpCiB7Ci0gICAgUmVmUHRyPEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50PiBib2R5
ID0gSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ6OmNyZWF0ZSh0Ym9keVRhZywgZG9jdW1lbnQoKSk7
Ci0gICAgTm9kZSogcmVmZXJlbmNlRWxlbWVudCA9IGxhc3RCb2R5KCkgPyBsYXN0Qm9keSgpLT5u
ZXh0U2libGluZygpIDogMDsKLSAgICBpbnNlcnRCZWZvcmUoYm9keSwgcmVmZXJlbmNlRWxlbWVu
dCwgQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0gICAgcmV0dXJuIGJvZHk7CisgICAgUmVmPEhUTUxU
YWJsZVNlY3Rpb25FbGVtZW50PiBib2R5ID0gSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ6OmNyZWF0
ZSh0Ym9keVRhZywgZG9jdW1lbnQoKSk7CisgICAgTm9kZSogcmVmZXJlbmNlRWxlbWVudCA9IGxh
c3RCb2R5KCkgPyBsYXN0Qm9keSgpLT5uZXh0U2libGluZygpIDogbnVsbHB0cjsKKyAgICBpbnNl
cnRCZWZvcmUoYm9keS5jb3B5UmVmKCksIHJlZmVyZW5jZUVsZW1lbnQsIEFTU0VSVF9OT19FWENF
UFRJT04pOworICAgIHJldHVybiBXVEY6Om1vdmUoYm9keSk7CiB9CiAKIFJlZlB0cjxIVE1MRWxl
bWVudD4gSFRNTFRhYmxlRWxlbWVudDo6Y3JlYXRlQ2FwdGlvbigpCkBAIC0xNzIsNyArMTc3LDgg
QEAgUmVmUHRyPEhUTUxFbGVtZW50PiBIVE1MVGFibGVFbGVtZW50OjpjcmVhdGVDYXB0aW9uKCkK
IAogdm9pZCBIVE1MVGFibGVFbGVtZW50OjpkZWxldGVDYXB0aW9uKCkKIHsKLSAgICByZW1vdmVD
aGlsZChjYXB0aW9uKCksIElHTk9SRV9FWENFUFRJT04pOworICAgIGlmIChhdXRvKiBjYXB0aW9u
ID0gdGhpcy0+Y2FwdGlvbigpKQorICAgICAgICByZW1vdmVDaGlsZCgqY2FwdGlvbiwgSUdOT1JF
X0VYQ0VQVElPTik7CiB9CiAKIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KiBIVE1MVGFibGVFbGVt
ZW50OjpsYXN0Qm9keSgpIGNvbnN0CkBAIC0yMTcsMjIgKzIyMywyMiBAQCBSZWZQdHI8SFRNTEVs
ZW1lbnQ+IEhUTUxUYWJsZUVsZW1lbnQ6Omluc2VydFJvdyhpbnQgaW5kZXgsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogICAgIGVsc2UgewogICAgICAgICBwYXJlbnQgPSBsYXN0Qm9keSgpOwogICAgICAg
ICBpZiAoIXBhcmVudCkgewotICAgICAgICAgICAgUmVmUHRyPEhUTUxUYWJsZVNlY3Rpb25FbGVt
ZW50PiBuZXdCb2R5ID0gSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ6OmNyZWF0ZSh0Ym9keVRhZywg
ZG9jdW1lbnQoKSk7Ci0gICAgICAgICAgICBSZWZQdHI8SFRNTFRhYmxlUm93RWxlbWVudD4gbmV3
Um93ID0gSFRNTFRhYmxlUm93RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwotICAgICAgICAg
ICAgbmV3Qm9keS0+YXBwZW5kQ2hpbGQobmV3Um93LCBlYyk7Ci0gICAgICAgICAgICBhcHBlbmRD
aGlsZChuZXdCb2R5LnJlbGVhc2UoKSwgZWMpOwotICAgICAgICAgICAgcmV0dXJuIG5ld1JvdzsK
KyAgICAgICAgICAgIFJlZjxIVE1MVGFibGVTZWN0aW9uRWxlbWVudD4gbmV3Qm9keSA9IEhUTUxU
YWJsZVNlY3Rpb25FbGVtZW50OjpjcmVhdGUodGJvZHlUYWcsIGRvY3VtZW50KCkpOworICAgICAg
ICAgICAgUmVmPEhUTUxUYWJsZVJvd0VsZW1lbnQ+IG5ld1JvdyA9IEhUTUxUYWJsZVJvd0VsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKKyAgICAgICAgICAgIG5ld0JvZHktPmFwcGVuZENoaWxk
KG5ld1Jvdy5jb3B5UmVmKCksIGVjKTsKKyAgICAgICAgICAgIGFwcGVuZENoaWxkKFdURjo6bW92
ZShuZXdCb2R5KSwgZWMpOworICAgICAgICAgICAgcmV0dXJuIFdURjo6bW92ZShuZXdSb3cpOwog
ICAgICAgICB9CiAgICAgfQogCi0gICAgUmVmUHRyPEhUTUxUYWJsZVJvd0VsZW1lbnQ+IG5ld1Jv
dyA9IEhUTUxUYWJsZVJvd0VsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKLSAgICBwYXJlbnQt
Pmluc2VydEJlZm9yZShuZXdSb3csIHJvdy5nZXQoKSwgZWMpOwotICAgIHJldHVybiBuZXdSb3c7
CisgICAgUmVmPEhUTUxUYWJsZVJvd0VsZW1lbnQ+IG5ld1JvdyA9IEhUTUxUYWJsZVJvd0VsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKKyAgICBwYXJlbnQtPmluc2VydEJlZm9yZShuZXdSb3cu
Y29weVJlZigpLCByb3cuZ2V0KCksIGVjKTsKKyAgICByZXR1cm4gV1RGOjptb3ZlKG5ld1Jvdyk7
CiB9CiAKIHZvaWQgSFRNTFRhYmxlRWxlbWVudDo6ZGVsZXRlUm93KGludCBpbmRleCwgRXhjZXB0
aW9uQ29kZSYgZWMpCiB7Ci0gICAgSFRNTFRhYmxlUm93RWxlbWVudCogcm93ID0gMDsKKyAgICBI
VE1MVGFibGVSb3dFbGVtZW50KiByb3cgPSBudWxscHRyOwogICAgIGlmIChpbmRleCA9PSAtMSkK
ICAgICAgICAgcm93ID0gSFRNTFRhYmxlUm93c0NvbGxlY3Rpb246Omxhc3RSb3coKnRoaXMpOwog
ICAgIGVsc2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVt
ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5pZGwKaW5kZXgg
YTBhMWM2Yi4uZjI1NmVjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFi
bGVFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQu
aWRsCkBAIC0xOSw5ICsxOSw5IEBACiAgKi8KIAogaW50ZXJmYWNlIEhUTUxUYWJsZUVsZW1lbnQg
OiBIVE1MRWxlbWVudCB7Ci0gICAgW1NldHRlclJhaXNlc0V4Y2VwdGlvbl0gYXR0cmlidXRlIEhU
TUxUYWJsZUNhcHRpb25FbGVtZW50IGNhcHRpb247Ci0gICAgW1NldHRlclJhaXNlc0V4Y2VwdGlv
bl0gYXR0cmlidXRlIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50IHRIZWFkOwotICAgIFtTZXR0ZXJS
YWlzZXNFeGNlcHRpb25dIGF0dHJpYnV0ZSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCB0Rm9vdDsK
KyAgICBbU2V0dGVyUmFpc2VzRXhjZXB0aW9uLCBTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0
ZSBIVE1MVGFibGVDYXB0aW9uRWxlbWVudCBjYXB0aW9uOworICAgIFtTZXR0ZXJSYWlzZXNFeGNl
cHRpb24sIFN0cmljdFR5cGVDaGVja2luZ10gYXR0cmlidXRlIEhUTUxUYWJsZVNlY3Rpb25FbGVt
ZW50IHRIZWFkOworICAgIFtTZXR0ZXJSYWlzZXNFeGNlcHRpb24sIFN0cmljdFR5cGVDaGVja2lu
Z10gYXR0cmlidXRlIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50IHRGb290OwogCiAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIEhUTUxDb2xsZWN0aW9uIHJvd3M7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IEhUTUxDb2xsZWN0aW9uIHRCb2RpZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUYWJsZVJvd0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVS
b3dFbGVtZW50LmNwcAppbmRleCBjODcyNTlmLi45NWM2OTI5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5jcHAKQEAgLTEyNSwyMSArMTI1LDIxIEBAIFJlZlB0
cjxIVE1MRWxlbWVudD4gSFRNTFRhYmxlUm93RWxlbWVudDo6aW5zZXJ0Q2VsbChpbnQgaW5kZXgs
IEV4Y2VwdGlvbkNvZGUmIGVjCiAgICAgaW50IG51bUNlbGxzID0gY2hpbGRyZW4tPmxlbmd0aCgp
OwogICAgIGlmIChpbmRleCA8IC0xIHx8IGluZGV4ID4gbnVtQ2VsbHMpIHsKICAgICAgICAgZWMg
PSBJTkRFWF9TSVpFX0VSUjsKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIH0KIAotICAgIFJlZlB0cjxIVE1MVGFibGVDZWxsRWxlbWVudD4gY2VsbCA9IEhU
TUxUYWJsZUNlbGxFbGVtZW50OjpjcmVhdGUodGRUYWcsIGRvY3VtZW50KCkpOworICAgIFJlZjxI
VE1MVGFibGVDZWxsRWxlbWVudD4gY2VsbCA9IEhUTUxUYWJsZUNlbGxFbGVtZW50OjpjcmVhdGUo
dGRUYWcsIGRvY3VtZW50KCkpOwogICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gbnVtQ2Vs
bHMpCi0gICAgICAgIGFwcGVuZENoaWxkKGNlbGwsIGVjKTsKKyAgICAgICAgYXBwZW5kQ2hpbGQo
Y2VsbC5jb3B5UmVmKCksIGVjKTsKICAgICBlbHNlIHsKICAgICAgICAgTm9kZSogbjsKICAgICAg
ICAgaWYgKGluZGV4IDwgMSkKICAgICAgICAgICAgIG4gPSBmaXJzdENoaWxkKCk7CiAgICAgICAg
IGVsc2UKICAgICAgICAgICAgIG4gPSBjaGlsZHJlbi0+aXRlbShpbmRleCk7Ci0gICAgICAgIGlu
c2VydEJlZm9yZShjZWxsLCBuLCBlYyk7CisgICAgICAgIGluc2VydEJlZm9yZShjZWxsLmNvcHlS
ZWYoKSwgbiwgZWMpOwogICAgIH0KLSAgICByZXR1cm4gY2VsbDsKKyAgICByZXR1cm4gV1RGOjpt
b3ZlKGNlbGwpOwogfQogCiB2b2lkIEhUTUxUYWJsZVJvd0VsZW1lbnQ6OmRlbGV0ZUNlbGwoaW50
IGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTE1MCw3ICsxNTAsNyBAQCB2b2lkIEhUTUxU
YWJsZVJvd0VsZW1lbnQ6OmRlbGV0ZUNlbGwoaW50IGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykK
ICAgICAgICAgaW5kZXggPSBudW1DZWxscy0xOwogICAgIGlmIChpbmRleCA+PSAwICYmIGluZGV4
IDwgbnVtQ2VsbHMpIHsKICAgICAgICAgUmVmUHRyPE5vZGU+IGNlbGwgPSBjaGlsZHJlbi0+aXRl
bShpbmRleCk7Ci0gICAgICAgIEhUTUxFbGVtZW50OjpyZW1vdmVDaGlsZChjZWxsLmdldCgpLCBl
Yyk7CisgICAgICAgIEhUTUxFbGVtZW50OjpyZW1vdmVDaGlsZCgqY2VsbCwgZWMpOwogICAgIH0g
ZWxzZQogICAgICAgICBlYyA9IElOREVYX1NJWkVfRVJSOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcAppbmRleCA5ZTQ1MzE2Li5mZDAyYzYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNw
cApAQCAtNjgsMTQgKzY4LDE0IEBAIFJlZlB0cjxIVE1MRWxlbWVudD4gSFRNTFRhYmxlU2VjdGlv
bkVsZW1lbnQ6Omluc2VydFJvdyhpbnQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmCiAgICAgZWxzZSB7
CiAgICAgICAgIHJvdyA9IEhUTUxUYWJsZVJvd0VsZW1lbnQ6OmNyZWF0ZSh0clRhZywgZG9jdW1l
bnQoKSk7CiAgICAgICAgIGlmIChudW1Sb3dzID09IGluZGV4IHx8IGluZGV4ID09IC0xKQotICAg
ICAgICAgICAgYXBwZW5kQ2hpbGQocm93LCBlYyk7CisgICAgICAgICAgICBhcHBlbmRDaGlsZCgq
cm93LCBlYyk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgTm9kZSogbjsKICAgICAgICAg
ICAgIGlmIChpbmRleCA8IDEpCiAgICAgICAgICAgICAgICAgbiA9IGZpcnN0Q2hpbGQoKTsKICAg
ICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBuID0gY2hpbGRyZW4tPml0ZW0oaW5kZXgp
OwotICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKHJvdywgbiwgZWMpOworICAgICAgICAgICAgaW5z
ZXJ0QmVmb3JlKCpyb3csIG4sIGVjKTsKICAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4gcm93
OwpAQCAtODksNyArODksNyBAQCB2b2lkIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50OjpkZWxldGVS
b3coaW50IGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgaW5kZXggPSBudW1Sb3dz
IC0gMTsKICAgICBpZiAoaW5kZXggPj0gMCAmJiBpbmRleCA8IG51bVJvd3MpIHsKICAgICAgICAg
UmVmUHRyPE5vZGU+IHJvdyA9IGNoaWxkcmVuLT5pdGVtKGluZGV4KTsKLSAgICAgICAgSFRNTEVs
ZW1lbnQ6OnJlbW92ZUNoaWxkKHJvdy5nZXQoKSwgZWMpOworICAgICAgICBIVE1MRWxlbWVudDo6
cmVtb3ZlQ2hpbGQoKnJvdywgZWMpOwogICAgIH0gZWxzZQogICAgICAgICBlYyA9IElOREVYX1NJ
WkVfRVJSOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAK
aW5kZXggYWVjMzAxMC4uMmUxZWRiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGVtcGxhdGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1w
bGF0ZUVsZW1lbnQuY3BwCkBAIC02OCw3ICs2OCw3IEBAIERvY3VtZW50RnJhZ21lbnQqIEhUTUxU
ZW1wbGF0ZUVsZW1lbnQ6OmNvbnRlbnQoKSBjb25zdAogICAgIHJldHVybiBtX2NvbnRlbnQuZ2V0
KCk7CiB9CiAKLVJlZlB0cjxOb2RlPiBIVE1MVGVtcGxhdGVFbGVtZW50OjpjbG9uZU5vZGVJbnRl
cm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24gdHlwZSkKK1Jl
ZjxOb2RlPiBIVE1MVGVtcGxhdGVFbGVtZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYg
dGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24gdHlwZSkKIHsKICAgICBSZWZQdHI8Tm9k
ZT4gY2xvbmU7CiAgICAgc3dpdGNoICh0eXBlKSB7CkBAIC04Miw4ICs4Miw4IEBAIFJlZlB0cjxO
b2RlPiBIVE1MVGVtcGxhdGVFbGVtZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFy
Z2V0RG9jdW1lbnQsIENsCiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBpZiAobV9jb250ZW50
KQotICAgICAgICBjb250ZW50KCktPmNsb25lQ2hpbGROb2Rlcyhkb3duY2FzdDxIVE1MVGVtcGxh
dGVFbGVtZW50PihjbG9uZS5nZXQoKSktPmNvbnRlbnQoKSk7Ci0gICAgcmV0dXJuIGNsb25lLnJl
bGVhc2UoKTsKKyAgICAgICAgY29udGVudCgpLT5jbG9uZUNoaWxkTm9kZXMoKmRvd25jYXN0PEhU
TUxUZW1wbGF0ZUVsZW1lbnQ+KGNsb25lLmdldCgpKS0+Y29udGVudCgpKTsKKyAgICByZXR1cm4g
Y2xvbmUucmVsZWFzZU5vbk51bGwoKTsKIH0KIAogdm9pZCBIVE1MVGVtcGxhdGVFbGVtZW50Ojpk
aWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCogb2xkRG9jdW1lbnQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oCmluZGV4IDc2N2YyYTEuLmQxZmE4NjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oCkBAIC01MCw3ICs1MCw3IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTFRlbXBsYXRlRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1YWwgUmVmUHRyPE5vZGU+IGNsb25lTm9k
ZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0
aW9uKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9j
dW1lbnQqIG9sZERvY3VtZW50KSBvdmVycmlkZTsKIAogICAgIG11dGFibGUgUmVmUHRyPFRlbXBs
YXRlQ29udGVudERvY3VtZW50RnJhZ21lbnQ+IG1fY29udGVudDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCmluZGV4IDkzOTI5MTEuLmEyZGU3MzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcApAQCAtNDA2LDkgKzQw
Niw5IEBAIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6c2V0RGVmYXVsdFZhbHVlKGNvbnN0IFN0
cmluZyYgZGVmYXVsdFZhbHVlKQogICAgIFJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PiBwcm90ZWN0
RnJvbU11dGF0aW9uRXZlbnRzKCp0aGlzKTsKIAogICAgIC8vIFRvIHByZXNlcnZlIGNvbW1lbnRz
LCByZW1vdmUgb25seSB0aGUgdGV4dCBub2RlcywgdGhlbiBhZGQgYSBzaW5nbGUgdGV4dCBub2Rl
LgotICAgIFZlY3RvcjxSZWZQdHI8VGV4dD4+IHRleHROb2RlczsKKyAgICBWZWN0b3I8UmVmPFRl
eHQ+PiB0ZXh0Tm9kZXM7CiAgICAgZm9yIChUZXh0KiB0ZXh0Tm9kZSA9IFRleHROb2RlVHJhdmVy
c2FsOjpmaXJzdENoaWxkKCp0aGlzKTsgdGV4dE5vZGU7IHRleHROb2RlID0gVGV4dE5vZGVUcmF2
ZXJzYWw6Om5leHRTaWJsaW5nKCp0ZXh0Tm9kZSkpCi0gICAgICAgIHRleHROb2Rlcy5hcHBlbmQo
dGV4dE5vZGUpOworICAgICAgICB0ZXh0Tm9kZXMuYXBwZW5kKCp0ZXh0Tm9kZSk7CiAKICAgICBz
aXplX3Qgc2l6ZSA9IHRleHROb2Rlcy5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBzaXplOyArK2kpCkBAIC01MjMsOCArNTIzLDggQEAgdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50
Ojp1cGRhdGVQbGFjZWhvbGRlclRleHQoKQogICAgIFN0cmluZyBwbGFjZWhvbGRlclRleHQgPSBz
dHJpcHBlZFBsYWNlaG9sZGVyKCk7CiAgICAgaWYgKHBsYWNlaG9sZGVyVGV4dC5pc0VtcHR5KCkp
IHsKICAgICAgICAgaWYgKG1fcGxhY2Vob2xkZXIpIHsKLSAgICAgICAgICAgIHVzZXJBZ2VudFNo
YWRvd1Jvb3QoKS0+cmVtb3ZlQ2hpbGQobV9wbGFjZWhvbGRlciwgQVNTRVJUX05PX0VYQ0VQVElP
Tik7Ci0gICAgICAgICAgICBtX3BsYWNlaG9sZGVyID0gMDsKKyAgICAgICAgICAgIHVzZXJBZ2Vu
dFNoYWRvd1Jvb3QoKS0+cmVtb3ZlQ2hpbGQoKm1fcGxhY2Vob2xkZXIsIEFTU0VSVF9OT19FWENF
UFRJT04pOworICAgICAgICAgICAgbV9wbGFjZWhvbGRlciA9IG51bGxwdHI7CiAgICAgICAgIH0K
ICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTUzMyw3ICs1MzMsNyBAQCB2b2lkIEhUTUxUZXh0
QXJlYUVsZW1lbnQ6OnVwZGF0ZVBsYWNlaG9sZGVyVGV4dCgpCiAgICAgICAgIG1fcGxhY2Vob2xk
ZXIgPSBwbGFjZWhvbGRlci5nZXQoKTsKICAgICAgICAgbV9wbGFjZWhvbGRlci0+c2V0UHNldWRv
KEF0b21pY1N0cmluZygiLXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAgICAgbV9wbGFjZWhvbGRlci0+c2V0SW5saW5l
U3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eURpc3BsYXksIGlzUGxhY2Vob2xkZXJWaXNpYmxlKCkg
PyBDU1NWYWx1ZUJsb2NrIDogQ1NTVmFsdWVOb25lLCB0cnVlKTsKLSAgICAgICAgdXNlckFnZW50
U2hhZG93Um9vdCgpLT5pbnNlcnRCZWZvcmUobV9wbGFjZWhvbGRlciwgaW5uZXJUZXh0RWxlbWVu
dCgpLT5uZXh0U2libGluZygpKTsKKyAgICAgICAgdXNlckFnZW50U2hhZG93Um9vdCgpLT5pbnNl
cnRCZWZvcmUoKm1fcGxhY2Vob2xkZXIsIGlubmVyVGV4dEVsZW1lbnQoKS0+bmV4dFNpYmxpbmco
KSk7CiAgICAgfQogICAgIG1fcGxhY2Vob2xkZXItPnNldElubmVyVGV4dChwbGFjZWhvbGRlclRl
eHQsIEFTU0VSVF9OT19FWENFUFRJT04pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9JbWFnZURvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VEb2N1bWVu
dC5jcHAKaW5kZXggODFiNWVlZS4uMDNkYjM3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9JbWFnZURvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlRG9j
dW1lbnQuY3BwCkBAIC05Miw3ICs5Miw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIEltYWdlRG9jdW1l
bnRFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxJbWFnZUVsZW1lbnQgewogcHVibGljOgotICAg
IHN0YXRpYyBSZWZQdHI8SW1hZ2VEb2N1bWVudEVsZW1lbnQ+IGNyZWF0ZShJbWFnZURvY3VtZW50
Jik7CisgICAgc3RhdGljIFJlZjxJbWFnZURvY3VtZW50RWxlbWVudD4gY3JlYXRlKEltYWdlRG9j
dW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBJbWFnZURvY3VtZW50RWxlbWVudChJbWFnZURvY3Vt
ZW50JiBkb2N1bWVudCkKQEAgLTEwNyw5ICsxMDcsOSBAQCBwcml2YXRlOgogICAgIEltYWdlRG9j
dW1lbnQqIG1faW1hZ2VEb2N1bWVudDsKIH07CiAKLWlubGluZSBSZWZQdHI8SW1hZ2VEb2N1bWVu
dEVsZW1lbnQ+IEltYWdlRG9jdW1lbnRFbGVtZW50OjpjcmVhdGUoSW1hZ2VEb2N1bWVudCYgZG9j
dW1lbnQpCitpbmxpbmUgUmVmPEltYWdlRG9jdW1lbnRFbGVtZW50PiBJbWFnZURvY3VtZW50RWxl
bWVudDo6Y3JlYXRlKEltYWdlRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9w
dFJlZihuZXcgSW1hZ2VEb2N1bWVudEVsZW1lbnQoZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBJbWFnZURvY3VtZW50RWxlbWVudChkb2N1bWVudCkpOwogfQogCiAvLyAtLS0t
LS0tLQpAQCAtMjEwLDE5ICsyMTAsMTkgQEAgUmVmPERvY3VtZW50UGFyc2VyPiBJbWFnZURvY3Vt
ZW50OjpjcmVhdGVQYXJzZXIoKQogCiB2b2lkIEltYWdlRG9jdW1lbnQ6OmNyZWF0ZURvY3VtZW50
U3RydWN0dXJlKCkKIHsKLSAgICBSZWZQdHI8RWxlbWVudD4gcm9vdEVsZW1lbnQgPSBEb2N1bWVu
dDo6Y3JlYXRlRWxlbWVudChodG1sVGFnLCBmYWxzZSk7Ci0gICAgYXBwZW5kQ2hpbGQocm9vdEVs
ZW1lbnQpOwotICAgIGRvd25jYXN0PEhUTUxIdG1sRWxlbWVudD4oKnJvb3RFbGVtZW50KS5pbnNl
cnRlZEJ5UGFyc2VyKCk7CisgICAgUmVmPEVsZW1lbnQ+IHJvb3RFbGVtZW50ID0gRG9jdW1lbnQ6
OmNyZWF0ZUVsZW1lbnQoaHRtbFRhZywgZmFsc2UpOworICAgIGFwcGVuZENoaWxkKHJvb3RFbGVt
ZW50LmNvcHlSZWYoKSk7CisgICAgZG93bmNhc3Q8SFRNTEh0bWxFbGVtZW50Pihyb290RWxlbWVu
dC5nZXQoKSkuaW5zZXJ0ZWRCeVBhcnNlcigpOwogCiAgICAgZnJhbWUoKS0+aW5qZWN0VXNlclNj
cmlwdHMoSW5qZWN0QXREb2N1bWVudFN0YXJ0KTsKIAotICAgIFJlZlB0cjxFbGVtZW50PiBib2R5
ID0gRG9jdW1lbnQ6OmNyZWF0ZUVsZW1lbnQoYm9keVRhZywgZmFsc2UpOworICAgIFJlZjxFbGVt
ZW50PiBib2R5ID0gRG9jdW1lbnQ6OmNyZWF0ZUVsZW1lbnQoYm9keVRhZywgZmFsc2UpOwogICAg
IGJvZHktPnNldEF0dHJpYnV0ZShzdHlsZUF0dHIsICJtYXJnaW46IDBweCIpOwogICAgIGlmIChN
SU1FVHlwZVJlZ2lzdHJ5Ojppc1BERk1JTUVUeXBlKGRvY3VtZW50KCkubG9hZGVyKCktPnJlc3Bv
bnNlTUlNRVR5cGUoKSkpCi0gICAgICAgIGRvd25jYXN0PEhUTUxCb2R5RWxlbWVudD4oKmJvZHkp
LnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IsICJ3aGl0
ZSIsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfSURFTlQpOwotICAgIHJvb3RFbGVtZW50LT5hcHBl
bmRDaGlsZChib2R5KTsKKyAgICAgICAgZG93bmNhc3Q8SFRNTEJvZHlFbGVtZW50Pihib2R5Lmdl
dCgpKS5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yLCAi
d2hpdGUiLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0lERU5UKTsKKyAgICByb290RWxlbWVudC0+
YXBwZW5kQ2hpbGQoYm9keS5jb3B5UmVmKCkpOwogICAgIAotICAgIFJlZlB0cjxJbWFnZURvY3Vt
ZW50RWxlbWVudD4gaW1hZ2VFbGVtZW50ID0gSW1hZ2VEb2N1bWVudEVsZW1lbnQ6OmNyZWF0ZSgq
dGhpcyk7CisgICAgUmVmPEltYWdlRG9jdW1lbnRFbGVtZW50PiBpbWFnZUVsZW1lbnQgPSBJbWFn
ZURvY3VtZW50RWxlbWVudDo6Y3JlYXRlKCp0aGlzKTsKICAgICBpZiAobV9zaG91bGRTaHJpbmtJ
bWFnZSkKICAgICAgICAgaW1hZ2VFbGVtZW50LT5zZXRBdHRyaWJ1dGUoc3R5bGVBdHRyLCAiLXdl
YmtpdC11c2VyLXNlbGVjdDpub25lOyBkaXNwbGF5OmJsb2NrOyBtYXJnaW46YXV0bzsiKTsKICAg
ICBlbHNlCkBAIC0yMzAsNyArMjMwLDcgQEAgdm9pZCBJbWFnZURvY3VtZW50OjpjcmVhdGVEb2N1
bWVudFN0cnVjdHVyZSgpCiAgICAgaW1hZ2VFbGVtZW50LT5zZXRMb2FkTWFudWFsbHkodHJ1ZSk7
CiAgICAgaW1hZ2VFbGVtZW50LT5zZXRTcmModXJsKCkuc3RyaW5nKCkpOwogICAgIGltYWdlRWxl
bWVudC0+Y2FjaGVkSW1hZ2UoKS0+c2V0UmVzcG9uc2UobG9hZGVyKCktPnJlc3BvbnNlKCkpOwot
ICAgIGJvZHktPmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7CisgICAgYm9keS0+YXBwZW5kQ2hp
bGQoaW1hZ2VFbGVtZW50LmNvcHlSZWYoKSk7CiAgICAgCiAgICAgaWYgKG1fc2hvdWxkU2hyaW5r
SW1hZ2UpIHsKICNpZiBQTEFURk9STShJT1MpCkBAIC0yNDQsNyArMjQ0LDcgQEAgdm9pZCBJbWFn
ZURvY3VtZW50OjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCiAjZW5kaWYKICAgICB9CiAKLSAg
ICBtX2ltYWdlRWxlbWVudCA9IGltYWdlRWxlbWVudC5nZXQoKTsKKyAgICBtX2ltYWdlRWxlbWVu
dCA9IGltYWdlRWxlbWVudC5wdHIoKTsKIH0KIAogdm9pZCBJbWFnZURvY3VtZW50OjppbWFnZVVw
ZGF0ZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAKaW5kZXggMTg1YWJhOC4u
NjUxYzcyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCkBAIC03OCwxMCAr
NzgsMTAgQEAgcHJpdmF0ZToKICAgICAKIHZvaWQgTWVkaWFEb2N1bWVudFBhcnNlcjo6Y3JlYXRl
RG9jdW1lbnRTdHJ1Y3R1cmUoKQogewotICAgIFJlZlB0cjxFbGVtZW50PiByb290RWxlbWVudCA9
IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoaHRtbFRhZywgZmFsc2UpOwotICAgIGRvY3VtZW50
KCktPmFwcGVuZENoaWxkKHJvb3RFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKLSAgICBkb2N1
bWVudCgpLT5zZXRDU1NUYXJnZXQocm9vdEVsZW1lbnQuZ2V0KCkpOwotICAgIGRvd25jYXN0PEhU
TUxIdG1sRWxlbWVudD4oKnJvb3RFbGVtZW50KS5pbnNlcnRlZEJ5UGFyc2VyKCk7CisgICAgUmVm
PEVsZW1lbnQ+IHJvb3RFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChodG1sVGFn
LCBmYWxzZSk7CisgICAgZG9jdW1lbnQoKS0+YXBwZW5kQ2hpbGQocm9vdEVsZW1lbnQuY29weVJl
ZigpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBkb2N1bWVudCgpLT5zZXRDU1NUYXJnZXQocm9v
dEVsZW1lbnQucHRyKCkpOworICAgIGRvd25jYXN0PEhUTUxIdG1sRWxlbWVudD4ocm9vdEVsZW1l
bnQuZ2V0KCkpLmluc2VydGVkQnlQYXJzZXIoKTsKIAogICAgIGlmIChkb2N1bWVudCgpLT5mcmFt
ZSgpKQogICAgICAgICBkb2N1bWVudCgpLT5mcmFtZSgpLT5pbmplY3RVc2VyU2NyaXB0cyhJbmpl
Y3RBdERvY3VtZW50U3RhcnQpOwpAQCAtOTYsMTIgKzk2LDEyIEBAIHZvaWQgTWVkaWFEb2N1bWVu
dFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKQogICAgIGhlYWRFbGVtZW50LT5hcHBl
bmRDaGlsZChtZXRhRWxlbWVudCwgSUdOT1JFX0VYQ0VQVElPTik7CiAjZW5kaWYKIAotICAgIFJl
ZlB0cjxFbGVtZW50PiBib2R5ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChib2R5VGFnLCBm
YWxzZSk7Ci0gICAgcm9vdEVsZW1lbnQtPmFwcGVuZENoaWxkKGJvZHksIElHTk9SRV9FWENFUFRJ
T04pOworICAgIFJlZjxFbGVtZW50PiBib2R5ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChi
b2R5VGFnLCBmYWxzZSk7CisgICAgcm9vdEVsZW1lbnQtPmFwcGVuZENoaWxkKGJvZHkuY29weVJl
ZigpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIFJlZlB0cjxFbGVtZW50PiBtZWRpYUVsZW1l
bnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KHZpZGVvVGFnLCBmYWxzZSk7CisgICAgUmVm
PEVsZW1lbnQ+IG1lZGlhRWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQodmlkZW9U
YWcsIGZhbHNlKTsKIAotICAgIG1fbWVkaWFFbGVtZW50ID0gZG93bmNhc3Q8SFRNTFZpZGVvRWxl
bWVudD4obWVkaWFFbGVtZW50LmdldCgpKTsKKyAgICBtX21lZGlhRWxlbWVudCA9IGRvd25jYXN0
PEhUTUxWaWRlb0VsZW1lbnQ+KG1lZGlhRWxlbWVudC5wdHIoKSk7CiAgICAgbV9tZWRpYUVsZW1l
bnQtPnNldEF0dHJpYnV0ZShjb250cm9sc0F0dHIsIGVtcHR5QXRvbSk7CiAgICAgbV9tZWRpYUVs
ZW1lbnQtPnNldEF0dHJpYnV0ZShhdXRvcGxheUF0dHIsIGVtcHR5QXRvbSk7CiAKQEAgLTExNCwx
NSArMTE0LDE1IEBAIHZvaWQgTWVkaWFEb2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1
Y3R1cmUoKQogI2VuZGlmCiAgICAgbV9tZWRpYUVsZW1lbnQtPnNldEF0dHJpYnV0ZShzdHlsZUF0
dHIsIGVsZW1lbnRTdHlsZS50b1N0cmluZygpKTsKIAotICAgIFJlZlB0cjxFbGVtZW50PiBzb3Vy
Y2VFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChzb3VyY2VUYWcsIGZhbHNlKTsK
LSAgICBIVE1MU291cmNlRWxlbWVudCYgc291cmNlID0gZG93bmNhc3Q8SFRNTFNvdXJjZUVsZW1l
bnQ+KCpzb3VyY2VFbGVtZW50KTsKKyAgICBSZWY8RWxlbWVudD4gc291cmNlRWxlbWVudCA9IGRv
Y3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoc291cmNlVGFnLCBmYWxzZSk7CisgICAgSFRNTFNvdXJj
ZUVsZW1lbnQmIHNvdXJjZSA9IGRvd25jYXN0PEhUTUxTb3VyY2VFbGVtZW50Pihzb3VyY2VFbGVt
ZW50LmdldCgpKTsKICAgICBzb3VyY2Uuc2V0U3JjKGRvY3VtZW50KCktPnVybCgpKTsKIAogICAg
IGlmIChEb2N1bWVudExvYWRlciogbG9hZGVyID0gZG9jdW1lbnQoKS0+bG9hZGVyKCkpCiAgICAg
ICAgIHNvdXJjZS5zZXRUeXBlKGxvYWRlci0+cmVzcG9uc2VNSU1FVHlwZSgpKTsKIAotICAgIG1f
bWVkaWFFbGVtZW50LT5hcHBlbmRDaGlsZChzb3VyY2VFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9O
KTsKLSAgICBib2R5LT5hcHBlbmRDaGlsZChtZWRpYUVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04p
OworICAgIG1fbWVkaWFFbGVtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoc291cmNlRWxlbWVu
dCksIElHTk9SRV9FWENFUFRJT04pOworICAgIGJvZHktPmFwcGVuZENoaWxkKFdURjo6bW92ZSht
ZWRpYUVsZW1lbnQpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAogICAgIEZyYW1lKiBmcmFtZSA9IGRv
Y3VtZW50KCktPmZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkKQEAgLTI1Myw3ICsyNTMsNyBAQCB2
b2lkIE1lZGlhRG9jdW1lbnQ6OnJlcGxhY2VNZWRpYUVsZW1lbnRUaW1lckZpcmVkKCkKICAgICAg
ICAgaWYgKGRvY3VtZW50TG9hZGVyKQogICAgICAgICAgICAgZW1iZWRFbGVtZW50LnNldEF0dHJp
YnV0ZSh0eXBlQXR0ciwgZG9jdW1lbnRMb2FkZXItPndyaXRlcigpLm1pbWVUeXBlKCkpOwogCi0g
ICAgICAgIHZpZGVvRWxlbWVudC0+cGFyZW50Tm9kZSgpLT5yZXBsYWNlQ2hpbGQoJmVtYmVkRWxl
bWVudCwgdmlkZW9FbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgdmlkZW9FbGVt
ZW50LT5wYXJlbnROb2RlKCktPnJlcGxhY2VDaGlsZChlbWJlZEVsZW1lbnQsICp2aWRlb0VsZW1l
bnQsIElHTk9SRV9FWENFUFRJT04pOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdp
bkRvY3VtZW50LmNwcAppbmRleCBlOTY3NzA5Li5jMGE4MGJhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1BsdWdpbkRvY3VtZW50LmNwcApAQCAtNjcsOSArNjcsOSBAQCBwcml2YXRlOgogCiB2b2lkIFBs
dWdpbkRvY3VtZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCiB7Ci0gICAgUmVm
UHRyPEVsZW1lbnQ+IHJvb3RFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChodG1s
VGFnLCBmYWxzZSk7Ci0gICAgZG9jdW1lbnQoKS0+YXBwZW5kQ2hpbGQocm9vdEVsZW1lbnQsIElH
Tk9SRV9FWENFUFRJT04pOwotICAgIGRvd25jYXN0PEhUTUxIdG1sRWxlbWVudD4oKnJvb3RFbGVt
ZW50KS5pbnNlcnRlZEJ5UGFyc2VyKCk7CisgICAgUmVmPEVsZW1lbnQ+IHJvb3RFbGVtZW50ID0g
ZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChodG1sVGFnLCBmYWxzZSk7CisgICAgZG9jdW1lbnQo
KS0+YXBwZW5kQ2hpbGQocm9vdEVsZW1lbnQuY29weVJlZigpLCBJR05PUkVfRVhDRVBUSU9OKTsK
KyAgICBkb3duY2FzdDxIVE1MSHRtbEVsZW1lbnQ+KHJvb3RFbGVtZW50LmdldCgpKS5pbnNlcnRl
ZEJ5UGFyc2VyKCk7CiAKICAgICBpZiAoZG9jdW1lbnQoKS0+ZnJhbWUoKSkKICAgICAgICAgZG9j
dW1lbnQoKS0+ZnJhbWUoKS0+aW5qZWN0VXNlclNjcmlwdHMoSW5qZWN0QXREb2N1bWVudFN0YXJ0
KTsKQEAgLTc5LDcgKzc5LDcgQEAgdm9pZCBQbHVnaW5Eb2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9j
dW1lbnRTdHJ1Y3R1cmUoKQogICAgIGRvY3VtZW50KCktPnByb2Nlc3NWaWV3cG9ydChBU0NJSUxp
dGVyYWwoInVzZXItc2NhbGFibGU9bm8iKSwgVmlld3BvcnRBcmd1bWVudHM6OlBsdWdpbkRvY3Vt
ZW50KTsKICNlbmRpZgogCi0gICAgUmVmUHRyPEVsZW1lbnQ+IGJvZHkgPSBkb2N1bWVudCgpLT5j
cmVhdGVFbGVtZW50KGJvZHlUYWcsIGZhbHNlKTsKKyAgICBSZWY8RWxlbWVudD4gYm9keSA9IGRv
Y3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoYm9keVRhZywgZmFsc2UpOwogICAgIGJvZHktPnNldEF0
dHJpYnV0ZShtYXJnaW53aWR0aEF0dHIsIEF0b21pY1N0cmluZygiMCIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBib2R5LT5zZXRBdHRyaWJ1dGUobWFyZ2luaGVp
Z2h0QXR0ciwgQXRvbWljU3RyaW5nKCIwIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOwogI2lmIFBMQVRGT1JNKElPUykKQEAgLTg4LDExICs4OCwxMSBAQCB2b2lkIFBsdWdp
bkRvY3VtZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCiAgICAgYm9keS0+c2V0
QXR0cmlidXRlKHN0eWxlQXR0ciwgQXRvbWljU3RyaW5nKCJiYWNrZ3JvdW5kLWNvbG9yOiByZ2Io
MzgsMzgsMzgpIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogI2VuZGlm
CiAKLSAgICByb290RWxlbWVudC0+YXBwZW5kQ2hpbGQoYm9keSwgSUdOT1JFX0VYQ0VQVElPTik7
CisgICAgcm9vdEVsZW1lbnQtPmFwcGVuZENoaWxkKGJvZHkuY29weVJlZigpLCBJR05PUkVfRVhD
RVBUSU9OKTsKICAgICAgICAgCi0gICAgUmVmUHRyPEVsZW1lbnQ+IGVtYmVkRWxlbWVudCA9IGRv
Y3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoZW1iZWRUYWcsIGZhbHNlKTsKKyAgICBSZWY8RWxlbWVu
dD4gZW1iZWRFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChlbWJlZFRhZywgZmFs
c2UpOwogICAgICAgICAKLSAgICBtX2VtYmVkRWxlbWVudCA9IGRvd25jYXN0PEhUTUxFbWJlZEVs
ZW1lbnQ+KGVtYmVkRWxlbWVudC5nZXQoKSk7CisgICAgbV9lbWJlZEVsZW1lbnQgPSBkb3duY2Fz
dDxIVE1MRW1iZWRFbGVtZW50PihlbWJlZEVsZW1lbnQucHRyKCkpOwogICAgIG1fZW1iZWRFbGVt
ZW50LT5zZXRBdHRyaWJ1dGUod2lkdGhBdHRyLCAiMTAwJSIpOwogICAgIG1fZW1iZWRFbGVtZW50
LT5zZXRBdHRyaWJ1dGUoaGVpZ2h0QXR0ciwgIjEwMCUiKTsKICAgICAKQEAgLTEwNiw3ICsxMDYs
NyBAQCB2b2lkIFBsdWdpbkRvY3VtZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgp
CiAKICAgICBkb3duY2FzdDxQbHVnaW5Eb2N1bWVudD4oKmRvY3VtZW50KCkpLnNldFBsdWdpbkVs
ZW1lbnQobV9lbWJlZEVsZW1lbnQpOwogCi0gICAgYm9keS0+YXBwZW5kQ2hpbGQoZW1iZWRFbGVt
ZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBib2R5LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUo
ZW1iZWRFbGVtZW50KSwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CiAKIHZvaWQgUGx1Z2luRG9jdW1l
bnRQYXJzZXI6OmFwcGVuZEJ5dGVzKERvY3VtZW50V3JpdGVyJiwgY29uc3QgY2hhciosIHNpemVf
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKaW5kZXggYjViOWU3OS4uNjZh
NzQxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKQEAgLTI1MywxMiAr
MjUzLDEyIEBAIHZvaWQgUmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogICAg
IEFTU0VSVChlbGVtZW50KCkudXNlckFnZW50U2hhZG93Um9vdCgpKTsKIAogICAgIERvY3VtZW50
JiBkb2N1bWVudCA9IGVsZW1lbnQoKS5kb2N1bWVudCgpOwotICAgIFJlZlB0cjxIVE1MRGl2RWxl
bWVudD4gdHJhY2sgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBSZWY8
SFRNTERpdkVsZW1lbnQ+IHRyYWNrID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7
CiAgICAgdHJhY2stPnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtc2xpZGVyLXJ1bm5h
YmxlLXRyYWNrIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHRy
YWNrLT5hcHBlbmRDaGlsZChTbGlkZXJUaHVtYkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCksIElH
Tk9SRV9FWENFUFRJT04pOwotICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gY29udGFpbmVyID0gU2xp
ZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBjb250YWluZXItPmFw
cGVuZENoaWxkKHRyYWNrLnJlbGVhc2UoKSwgSUdOT1JFX0VYQ0VQVElPTik7Ci0gICAgZWxlbWVu
dCgpLnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoY29udGFpbmVyLnJlbGVhc2Uo
KSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgUmVmPEhUTUxFbGVtZW50PiBjb250YWluZXIgPSBT
bGlkZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNvbnRhaW5lci0+
YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHRyYWNrKSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgZWxl
bWVudCgpLnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNvbnRh
aW5lciksIElHTk9SRV9FWENFUFRJT04pOwogfQogCiBIVE1MRWxlbWVudCogUmFuZ2VJbnB1dFR5
cGU6OnNsaWRlclRyYWNrRWxlbWVudCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElu
cHV0VHlwZS5jcHAKaW5kZXggZGU0M2RiNS4uMzU3YzdhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
U2VhcmNoSW5wdXRUeXBlLmNwcApAQCAtMTA3LDE0ICsxMDcsMTQgQEAgdm9pZCBTZWFyY2hJbnB1
dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogICAgIEFTU0VSVChjb250YWluZXIpOwogICAg
IEFTU0VSVCh0ZXh0V3JhcHBlcik7CiAKLSAgICBSZWZQdHI8U2VhcmNoRmllbGRSZXN1bHRzQnV0
dG9uRWxlbWVudD4gcmVzdWx0c0J1dHRvbiA9IFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1l
bnQ6OmNyZWF0ZShlbGVtZW50KCkuZG9jdW1lbnQoKSk7Ci0gICAgbV9yZXN1bHRzQnV0dG9uID0g
cmVzdWx0c0J1dHRvbi5nZXQoKTsKLSAgICB1cGRhdGVSZXN1bHRCdXR0b25Qc2V1ZG9UeXBlKCpt
X3Jlc3VsdHNCdXR0b24sIGVsZW1lbnQoKS5tYXhSZXN1bHRzKCkpOwotICAgIGNvbnRhaW5lci0+
aW5zZXJ0QmVmb3JlKG1fcmVzdWx0c0J1dHRvbiwgdGV4dFdyYXBwZXIsIElHTk9SRV9FWENFUFRJ
T04pOwotCi0gICAgUmVmUHRyPFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudD4gY2FuY2Vs
QnV0dG9uID0gU2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50OjpjcmVhdGUoZWxlbWVudCgp
LmRvY3VtZW50KCkpOwotICAgIG1fY2FuY2VsQnV0dG9uID0gY2FuY2VsQnV0dG9uLmdldCgpOwot
ICAgIGNvbnRhaW5lci0+aW5zZXJ0QmVmb3JlKG1fY2FuY2VsQnV0dG9uLCB0ZXh0V3JhcHBlci0+
bmV4dFNpYmxpbmcoKSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgUmVmPFNlYXJjaEZpZWxkUmVz
dWx0c0J1dHRvbkVsZW1lbnQ+IHJlc3VsdHNCdXR0b24gPSBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0
b25FbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLmRvY3VtZW50KCkpOworICAgIG1fcmVzdWx0c0J1
dHRvbiA9IHJlc3VsdHNCdXR0b24ucHRyKCk7CisgICAgdXBkYXRlUmVzdWx0QnV0dG9uUHNldWRv
VHlwZShyZXN1bHRzQnV0dG9uLmdldCgpLCBlbGVtZW50KCkubWF4UmVzdWx0cygpKTsKKyAgICBj
b250YWluZXItPmluc2VydEJlZm9yZShXVEY6Om1vdmUocmVzdWx0c0J1dHRvbiksIHRleHRXcmFw
cGVyLCBJR05PUkVfRVhDRVBUSU9OKTsKKworICAgIFJlZjxTZWFyY2hGaWVsZENhbmNlbEJ1dHRv
bkVsZW1lbnQ+IGNhbmNlbEJ1dHRvbiA9IFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudDo6
Y3JlYXRlKGVsZW1lbnQoKS5kb2N1bWVudCgpKTsKKyAgICBtX2NhbmNlbEJ1dHRvbiA9IGNhbmNl
bEJ1dHRvbi5wdHIoKTsKKyAgICBjb250YWluZXItPmluc2VydEJlZm9yZShXVEY6Om1vdmUoY2Fu
Y2VsQnV0dG9uKSwgdGV4dFdyYXBwZXItPm5leHRTaWJsaW5nKCksIElHTk9SRV9FWENFUFRJT04p
OwogfQogCiBIVE1MRWxlbWVudCogU2VhcmNoSW5wdXRUeXBlOjpyZXN1bHRzQnV0dG9uRWxlbWVu
dCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0
VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKaW5k
ZXggZWFlM2RiMi4uMTM2ZjA5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0
RmllbGRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5w
dXRUeXBlLmNwcApAQCAtMjc0LDcgKzI3NCw3IEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpj
cmVhdGVTaGFkb3dTdWJ0cmVlKCkKICAgICBtX2lubmVyVGV4dCA9IFRleHRDb250cm9sSW5uZXJU
ZXh0RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKIAogICAgIGlmICghY3JlYXRlc0NvbnRhaW5l
cikgewotICAgICAgICBlbGVtZW50KCkudXNlckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGls
ZChtX2lubmVyVGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgICAgIGVsZW1lbnQoKS51c2Vy
QWdlbnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKCptX2lubmVyVGV4dCwgSUdOT1JFX0VYQ0VQ
VElPTik7CiAgICAgICAgIHVwZGF0ZVBsYWNlaG9sZGVyVGV4dCgpOwogICAgICAgICByZXR1cm47
CiAgICAgfQpAQCAtMjg0LDcgKzI4NCw3IEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVh
dGVTaGFkb3dTdWJ0cmVlKCkKIAogICAgIGlmIChzaG91bGRIYXZlU3BpbkJ1dHRvbikgewogICAg
ICAgICBtX2lubmVyU3BpbkJ1dHRvbiA9IFNwaW5CdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQsICp0aGlzKTsKLSAgICAgICAgbV9jb250YWluZXItPmFwcGVuZENoaWxkKG1faW5uZXJTcGlu
QnV0dG9uLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgbV9jb250YWluZXItPmFwcGVuZENo
aWxkKCptX2lubmVyU3BpbkJ1dHRvbiwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgfQogCiAgICAg
aWYgKHNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRvcikgewpAQCAtMjk0LDcgKzI5NCw3IEBAIHZv
aWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKICAgICAgICAgYm9v
bCBzaG91bGREcmF3Q2Fwc0xvY2tJbmRpY2F0b3IgPSB0aGlzLT5zaG91bGREcmF3Q2Fwc0xvY2tJ
bmRpY2F0b3IoKTsKICAgICAgICAgbV9jYXBzTG9ja0luZGljYXRvci0+c2V0SW5saW5lU3R5bGVQ
cm9wZXJ0eShDU1NQcm9wZXJ0eURpc3BsYXksIHNob3VsZERyYXdDYXBzTG9ja0luZGljYXRvciA/
IENTU1ZhbHVlQmxvY2sgOiBDU1NWYWx1ZU5vbmUsIHRydWUpOwogCi0gICAgICAgIG1fY29udGFp
bmVyLT5hcHBlbmRDaGlsZChtX2NhcHNMb2NrSW5kaWNhdG9yLCBJR05PUkVfRVhDRVBUSU9OKTsK
KyAgICAgICAgbV9jb250YWluZXItPmFwcGVuZENoaWxkKCptX2NhcHNMb2NrSW5kaWNhdG9yLCBJ
R05PUkVfRVhDRVBUSU9OKTsKICAgICB9CiAKICAgICB1cGRhdGVBdXRvRmlsbEJ1dHRvbigpOwpA
QCAtNDYxLDcgKzQ2MSw3IEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjp1cGRhdGVQbGFjZWhv
bGRlclRleHQoKQogICAgIFN0cmluZyBwbGFjZWhvbGRlclRleHQgPSBlbGVtZW50KCkuc3RyaXBw
ZWRQbGFjZWhvbGRlcigpOwogICAgIGlmIChwbGFjZWhvbGRlclRleHQuaXNFbXB0eSgpKSB7CiAg
ICAgICAgIGlmIChtX3BsYWNlaG9sZGVyKSB7Ci0gICAgICAgICAgICBtX3BsYWNlaG9sZGVyLT5w
YXJlbnROb2RlKCktPnJlbW92ZUNoaWxkKG1fcGxhY2Vob2xkZXIuZ2V0KCksIEFTU0VSVF9OT19F
WENFUFRJT04pOworICAgICAgICAgICAgbV9wbGFjZWhvbGRlci0+cGFyZW50Tm9kZSgpLT5yZW1v
dmVDaGlsZCgqbV9wbGFjZWhvbGRlciwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgICAgICAg
ICBtX3BsYWNlaG9sZGVyID0gbnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm47CkBA
IC00NzAsNyArNDcwLDcgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OnVwZGF0ZVBsYWNlaG9s
ZGVyVGV4dCgpCiAgICAgICAgIG1fcGxhY2Vob2xkZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRl
KGVsZW1lbnQoKS5kb2N1bWVudCgpKTsKICAgICAgICAgbV9wbGFjZWhvbGRlci0+c2V0UHNldWRv
KEF0b21pY1N0cmluZygiLXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAgICAgbV9wbGFjZWhvbGRlci0+c2V0SW5saW5l
U3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eURpc3BsYXksIGVsZW1lbnQoKS5pc1BsYWNlaG9sZGVy
VmlzaWJsZSgpID8gQ1NTVmFsdWVCbG9jayA6IENTU1ZhbHVlTm9uZSwgdHJ1ZSk7Ci0gICAgICAg
IGVsZW1lbnQoKS51c2VyQWdlbnRTaGFkb3dSb290KCktPmluc2VydEJlZm9yZShtX3BsYWNlaG9s
ZGVyLCBtX2NvbnRhaW5lciA/IG1fY29udGFpbmVyLmdldCgpIDogaW5uZXJUZXh0RWxlbWVudCgp
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgZWxlbWVudCgpLnVzZXJBZ2VudFNoYWRv
d1Jvb3QoKS0+aW5zZXJ0QmVmb3JlKCptX3BsYWNlaG9sZGVyLCBtX2NvbnRhaW5lciA/IG1fY29u
dGFpbmVyLmdldCgpIDogaW5uZXJUZXh0RWxlbWVudCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsK
ICAgICAgICAgCiAgICAgfQogICAgIG1fcGxhY2Vob2xkZXItPnNldElubmVyVGV4dChwbGFjZWhv
bGRlclRleHQsIEFTU0VSVF9OT19FWENFUFRJT04pOwpAQCAtNjAwLDEwICs2MDAsMTAgQEAgdm9p
ZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZUNvbnRhaW5lcigpCiAgICAgbV9jb250YWluZXIt
PnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtdGV4dGZpZWxkLWRlY29yYXRpb24tY29u
dGFpbmVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogCiAgICAgbV9p
bm5lckJsb2NrID0gVGV4dENvbnRyb2xJbm5lckVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCkuZG9j
dW1lbnQoKSk7Ci0gICAgbV9pbm5lckJsb2NrLT5hcHBlbmRDaGlsZChtX2lubmVyVGV4dCwgSUdO
T1JFX0VYQ0VQVElPTik7Ci0gICAgbV9jb250YWluZXItPmFwcGVuZENoaWxkKG1faW5uZXJCbG9j
aywgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgbV9pbm5lckJsb2NrLT5hcHBlbmRDaGlsZCgqbV9p
bm5lclRleHQsIElHTk9SRV9FWENFUFRJT04pOworICAgIG1fY29udGFpbmVyLT5hcHBlbmRDaGls
ZCgqbV9pbm5lckJsb2NrLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGVsZW1lbnQoKS51c2Vy
QWdlbnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKG1fY29udGFpbmVyLCBJR05PUkVfRVhDRVBU
SU9OKTsKKyAgICBlbGVtZW50KCkudXNlckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZCgq
bV9jb250YWluZXIsIElHTk9SRV9FWENFUFRJT04pOwogfQogCiB2b2lkIFRleHRGaWVsZElucHV0
VHlwZTo6Y3JlYXRlQXV0b0ZpbGxCdXR0b24oKQpAQCAtNjEyLDcgKzYxMiw3IEBAIHZvaWQgVGV4
dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVBdXRvRmlsbEJ1dHRvbigpCiAKICAgICBtX2F1dG9GaWxs
QnV0dG9uID0gQXV0b0ZpbGxCdXR0b25FbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLmRvY3VtZW50
KCksICp0aGlzKTsKICAgICBtX2F1dG9GaWxsQnV0dG9uLT5zZXRQc2V1ZG8oQXRvbWljU3RyaW5n
KCItd2Via2l0LWF1dG8tZmlsbC1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7Ci0gICAgbV9jb250YWluZXItPmFwcGVuZENoaWxkKG1fYXV0b0ZpbGxCdXR0b24s
IElHTk9SRV9FWENFUFRJT04pOworICAgIG1fY29udGFpbmVyLT5hcHBlbmRDaGlsZCgqbV9hdXRv
RmlsbEJ1dHRvbiwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CiAKIHZvaWQgVGV4dEZpZWxkSW5wdXRU
eXBlOjp1cGRhdGVBdXRvRmlsbEJ1dHRvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlv
bk1lc3NhZ2UuY3BwCmluZGV4IGY2MWUxYjUuLjkwNjI5NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCkBAIC0xODAsMzIgKzE4MCwzMiBAQCB2b2lkIFZhbGlk
YXRpb25NZXNzYWdlOjpidWlsZEJ1YmJsZVRyZWUoKQogICAgIC8vIE5lZWQgdG8gZm9yY2UgcG9z
aXRpb246YWJzb2x1dGUgYmVjYXVzZSBSZW5kZXJNZW51TGlzdCBkb2Vzbid0IGFzc3VtZSBpdAog
ICAgIC8vIGNvbnRhaW5zIG5vbi1hYnNvbHV0ZSBvciBub24tZml4ZWQgcmVuZGVyZXJzIGFzIGNo
aWxkcmVuLgogICAgIG1fYnViYmxlLT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5
UG9zaXRpb24sIENTU1ZhbHVlQWJzb2x1dGUpOwotICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQo
bV9idWJibGUuZ2V0KCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIHNoYWRvd1Jvb3QuYXBw
ZW5kQ2hpbGQoKm1fYnViYmxlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICBkb2N1bWVudC51
cGRhdGVMYXlvdXQoKTsKICAgICBhZGp1c3RCdWJibGVQb3NpdGlvbihtX2VsZW1lbnQtPnJlbmRl
cmVyKCktPmFic29sdXRlQm91bmRpbmdCb3hSZWN0KCksIG1fYnViYmxlLmdldCgpKTsKIAotICAg
IFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gY2xpcHBlciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQpOworICAgIFJlZjxIVE1MRGl2RWxlbWVudD4gY2xpcHBlciA9IEhUTUxEaXZFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGNsaXBwZXItPnNldFBzZXVkbyhBdG9taWNTdHJp
bmcoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtYXJyb3ctY2xpcHBlciIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IGJ1
YmJsZUFycm93ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgUmVmPEhU
TUxEaXZFbGVtZW50PiBidWJibGVBcnJvdyA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQpOwogICAgIGJ1YmJsZUFycm93LT5zZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LXZh
bGlkYXRpb24tYnViYmxlLWFycm93IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOwotICAgIGNsaXBwZXItPmFwcGVuZENoaWxkKGJ1YmJsZUFycm93LnJlbGVhc2UoKSwgQVNT
RVJUX05PX0VYQ0VQVElPTik7Ci0gICAgbV9idWJibGUtPmFwcGVuZENoaWxkKGNsaXBwZXIucmVs
ZWFzZSgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBjbGlwcGVyLT5hcHBlbmRDaGlsZChX
VEY6Om1vdmUoYnViYmxlQXJyb3cpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBtX2J1YmJs
ZS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNsaXBwZXIpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsK
IAotICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gbWVzc2FnZSA9IEhUTUxEaXZFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQpOworICAgIFJlZjxIVE1MRWxlbWVudD4gbWVzc2FnZSA9IEhUTUxEaXZFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIG1lc3NhZ2UtPnNldFBzZXVkbyhBdG9taWNTdHJp
bmcoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtbWVzc2FnZSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IGljb24gPSBIVE1M
RGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBSZWY8SFRNTEVsZW1lbnQ+IGljb24g
PSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBpY29uLT5zZXRQc2V1ZG8o
QXRvbWljU3RyaW5nKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLWljb24iLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgbWVzc2FnZS0+YXBwZW5kQ2hpbGQoaWNv
bi5yZWxlYXNlKCksIEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgIFJlZlB0cjxIVE1MRWxlbWVu
dD4gdGV4dEJsb2NrID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgbWVz
c2FnZS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGljb24pLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsK
KyAgICBSZWY8SFRNTEVsZW1lbnQ+IHRleHRCbG9jayA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQpOwogICAgIHRleHRCbG9jay0+c2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtp
dC12YWxpZGF0aW9uLWJ1YmJsZS10ZXh0LWJsb2NrIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOwogICAgIG1fbWVzc2FnZUhlYWRpbmcgPSBIVE1MRGl2RWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50KTsKICAgICBtX21lc3NhZ2VIZWFkaW5nLT5zZXRQc2V1ZG8oQXRvbWljU3Ry
aW5nKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLWhlYWRpbmciLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgdGV4dEJsb2NrLT5hcHBlbmRDaGlsZChtX21lc3Nh
Z2VIZWFkaW5nLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICB0ZXh0QmxvY2stPmFwcGVuZENo
aWxkKCptX21lc3NhZ2VIZWFkaW5nLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICBtX21lc3Nh
Z2VCb2R5ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgbV9tZXNzYWdl
Qm9keS0+c2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1i
b2R5IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIHRleHRCbG9j
ay0+YXBwZW5kQ2hpbGQobV9tZXNzYWdlQm9keSwgQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0gICAg
bWVzc2FnZS0+YXBwZW5kQ2hpbGQodGV4dEJsb2NrLnJlbGVhc2UoKSwgQVNTRVJUX05PX0VYQ0VQ
VElPTik7Ci0gICAgbV9idWJibGUtPmFwcGVuZENoaWxkKG1lc3NhZ2UucmVsZWFzZSgpLCBBU1NF
UlRfTk9fRVhDRVBUSU9OKTsKKyAgICB0ZXh0QmxvY2stPmFwcGVuZENoaWxkKCptX21lc3NhZ2VC
b2R5LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBtZXNzYWdlLT5hcHBlbmRDaGlsZChXVEY6
Om1vdmUodGV4dEJsb2NrKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgbV9idWJibGUtPmFw
cGVuZENoaWxkKFdURjo6bW92ZShtZXNzYWdlKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKICAg
ICBzZXRNZXNzYWdlRE9NQW5kU3RhcnRUaW1lcigpOwogCkBAIC0yMzcsNyArMjM3LDcgQEAgdm9p
ZCBWYWxpZGF0aW9uTWVzc2FnZTo6ZGVsZXRlQnViYmxlVHJlZSgpCiAgICAgaWYgKG1fYnViYmxl
KSB7CiAgICAgICAgIG1fbWVzc2FnZUhlYWRpbmcgPSBudWxscHRyOwogICAgICAgICBtX21lc3Nh
Z2VCb2R5ID0gbnVsbHB0cjsKLSAgICAgICAgbV9lbGVtZW50LT51c2VyQWdlbnRTaGFkb3dSb290
KCktPnJlbW92ZUNoaWxkKG1fYnViYmxlLmdldCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAg
ICAgICAgbV9lbGVtZW50LT51c2VyQWdlbnRTaGFkb3dSb290KCktPnJlbW92ZUNoaWxkKCptX2J1
YmJsZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgICAgIG1fYnViYmxlID0gbnVsbHB0cjsK
ICAgICB9CiAgICAgbV9tZXNzYWdlID0gU3RyaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKaW5kZXggOWU0ODNhOS4uMjJj
ZTMzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9s
RWxlbWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJv
bEVsZW1lbnRzLmNwcApAQCAtODA3LDIxICs4MDcsMjEgQEAgdm9pZCBNZWRpYUNvbnRyb2xDbG9z
ZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ6OnJlYnVpbGRUcmFja0xpc3RNZW51KCkKICAgICBD
YXB0aW9uVXNlclByZWZlcmVuY2VzKiBjYXB0aW9uUHJlZmVyZW5jZXMgPSBkb2N1bWVudCgpLnBh
Z2UoKS0+Z3JvdXAoKS5jYXB0aW9uUHJlZmVyZW5jZXMoKTsKICAgICBWZWN0b3I8UmVmUHRyPFRl
eHRUcmFjaz4+IHRyYWNrc0Zvck1lbnUgPSBjYXB0aW9uUHJlZmVyZW5jZXMtPnNvcnRlZFRyYWNr
TGlzdEZvck1lbnUodHJhY2tMaXN0KTsKIAotICAgIFJlZlB0cjxFbGVtZW50PiBjYXB0aW9uc0hl
YWRlciA9IGRvY3VtZW50KCkuY3JlYXRlRWxlbWVudChoM1RhZywgQVNTRVJUX05PX0VYQ0VQVElP
Tik7CisgICAgUmVmPEVsZW1lbnQ+IGNhcHRpb25zSGVhZGVyID0gZG9jdW1lbnQoKS5jcmVhdGVF
bGVtZW50KGgzVGFnLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICBjYXB0aW9uc0hlYWRlci0+
YXBwZW5kQ2hpbGQoZG9jdW1lbnQoKS5jcmVhdGVUZXh0Tm9kZSh0ZXh0VHJhY2tTdWJ0aXRsZXNU
ZXh0KCkpKTsKLSAgICBhcHBlbmRDaGlsZChjYXB0aW9uc0hlYWRlcik7Ci0gICAgUmVmUHRyPEVs
ZW1lbnQ+IGNhcHRpb25zTWVudUxpc3QgPSBkb2N1bWVudCgpLmNyZWF0ZUVsZW1lbnQodWxUYWcs
IEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIGFwcGVuZENoaWxkKFdURjo6bW92ZShjYXB0aW9u
c0hlYWRlcikpOworICAgIFJlZjxFbGVtZW50PiBjYXB0aW9uc01lbnVMaXN0ID0gZG9jdW1lbnQo
KS5jcmVhdGVFbGVtZW50KHVsVGFnLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAogICAgIGZvciAo
dW5zaWduZWQgaSA9IDAsIGxlbmd0aCA9IHRyYWNrc0Zvck1lbnUuc2l6ZSgpOyBpIDwgbGVuZ3Ro
OyArK2kpIHsKICAgICAgICAgUmVmUHRyPFRleHRUcmFjaz4gdGV4dFRyYWNrID0gdHJhY2tzRm9y
TWVudVtpXTsKLSAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IG1lbnVJdGVtID0gZG9jdW1lbnQoKS5j
cmVhdGVFbGVtZW50KGxpVGFnLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgUmVmPEVs
ZW1lbnQ+IG1lbnVJdGVtID0gZG9jdW1lbnQoKS5jcmVhdGVFbGVtZW50KGxpVGFnLCBBU1NFUlRf
Tk9fRVhDRVBUSU9OKTsKICAgICAgICAgbWVudUl0ZW0tPmFwcGVuZENoaWxkKGRvY3VtZW50KCku
Y3JlYXRlVGV4dE5vZGUoY2FwdGlvblByZWZlcmVuY2VzLT5kaXNwbGF5TmFtZUZvclRyYWNrKHRl
eHRUcmFjay5nZXQoKSkpKTsKLSAgICAgICAgY2FwdGlvbnNNZW51TGlzdC0+YXBwZW5kQ2hpbGQo
bWVudUl0ZW0pOwotICAgICAgICBtX21lbnVJdGVtcy5hcHBlbmQobWVudUl0ZW0pOwotICAgICAg
ICBtX21lbnVUb1RyYWNrTWFwLmFkZChtZW51SXRlbSwgdGV4dFRyYWNrKTsKKyAgICAgICAgY2Fw
dGlvbnNNZW51TGlzdC0+YXBwZW5kQ2hpbGQobWVudUl0ZW0uY29weVJlZigpKTsKKyAgICAgICAg
bV9tZW51SXRlbXMuYXBwZW5kKG1lbnVJdGVtLnB0cigpKTsKKyAgICAgICAgbV9tZW51VG9UcmFj
a01hcC5hZGQobWVudUl0ZW0ucHRyKCksIHRleHRUcmFjayk7CiAgICAgfQogCi0gICAgYXBwZW5k
Q2hpbGQoY2FwdGlvbnNNZW51TGlzdCk7CisgICAgYXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNhcHRp
b25zTWVudUxpc3QpKTsKICNlbmRpZgogfQogCkBAIC0xMTg2LDE2ICsxMTg2LDE2IEBAIHZvaWQg
TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6dXBkYXRlRGlzcGxheSgpCiAg
ICAgICAgICAgICAvLyB0cmFjayBjdWUgcmVnaW9uIGlkZW50aWZpZXIsIHJ1biB0aGUgZm9sbG93
aW5nIHN1YnN0ZXBzOgogICAgICAgICAgICAgaWYgKGRpc3BsYXlCb3gtPmhhc0NoaWxkTm9kZXMo
KSAmJiAhY29udGFpbnMoZGlzcGxheUJveC5nZXQoKSkpIHsKICAgICAgICAgICAgICAgICAvLyBO
b3RlOiB0aGUgZGlzcGxheSB0cmVlIG9mIGEgY3VlIGlzIHJlbW92ZWQgd2hlbiB0aGUgYWN0aXZl
IGZsYWcgb2YgdGhlIGN1ZSBpcyB1bnNldC4KLSAgICAgICAgICAgICAgICBhcHBlbmRDaGlsZChk
aXNwbGF5Qm94LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgICAgICAgICBhcHBlbmRD
aGlsZCgqZGlzcGxheUJveCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgICAgICAgICAgICAg
Y3VlLT5zZXRGb250U2l6ZShtX2ZvbnRTaXplLCBtX3ZpZGVvRGlzcGxheVNpemUuc2l6ZSgpLCBt
X2ZvbnRTaXplSXNJbXBvcnRhbnQpOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2Ugewog
ICAgICAgICAgICAgLy8gTGV0IHJlZ2lvbiBiZSB0aGUgV2ViVlRUIHJlZ2lvbiB3aG9zZSByZWdp
b24gaWRlbnRpZmllcgogICAgICAgICAgICAgLy8gbWF0Y2hlcyB0aGUgdGV4dCB0cmFjayBjdWUg
cmVnaW9uIGlkZW50aWZpZXIgb2YgY3VlLgotICAgICAgICAgICAgUmVmUHRyPEhUTUxEaXZFbGVt
ZW50PiByZWdpb25Ob2RlID0gcmVnaW9uLT5nZXREaXNwbGF5VHJlZSgpOworICAgICAgICAgICAg
UmVmPEhUTUxEaXZFbGVtZW50PiByZWdpb25Ob2RlID0gcmVnaW9uLT5nZXREaXNwbGF5VHJlZSgp
OwogCiAgICAgICAgICAgICAvLyBBcHBlbmQgdGhlIHJlZ2lvbiB0byB0aGUgdmlld3BvcnQsIGlm
IGl0IHdhcyBub3QgYWxyZWFkeS4KLSAgICAgICAgICAgIGlmICghY29udGFpbnMocmVnaW9uTm9k
ZS5nZXQoKSkpCisgICAgICAgICAgICBpZiAoIWNvbnRhaW5zKHJlZ2lvbk5vZGUucHRyKCkpKQog
ICAgICAgICAgICAgICAgIGFwcGVuZENoaWxkKHJlZ2lvbi0+Z2V0RGlzcGxheVRyZWUoKSk7CiAK
ICAgICAgICAgICAgIHJlZ2lvbi0+YXBwZW5kVGV4dFRyYWNrQ3VlQm94KGRpc3BsYXlCb3gpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmNwcAppbmRleCAzZGQ2
ZGU4Li45ZGY5OThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xzLmNwcApAQCAtMzgwLDE0ICszODAsMTQgQEAgdm9pZCBNZWRpYUNvbnRyb2xzOjpjcmVhdGVU
ZXh0VHJhY2tEaXNwbGF5KCkKICAgICBpZiAobV90ZXh0RGlzcGxheUNvbnRhaW5lcikKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVs
ZW1lbnQ+IHRleHREaXNwbGF5Q29udGFpbmVyID0gTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFp
bmVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwotICAgIG1fdGV4dERpc3BsYXlDb250YWlu
ZXIgPSB0ZXh0RGlzcGxheUNvbnRhaW5lci5nZXQoKTsKKyAgICBSZWY8TWVkaWFDb250cm9sVGV4
dFRyYWNrQ29udGFpbmVyRWxlbWVudD4gdGV4dERpc3BsYXlDb250YWluZXIgPSBNZWRpYUNvbnRy
b2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CisgICAgbV90
ZXh0RGlzcGxheUNvbnRhaW5lciA9IHRleHREaXNwbGF5Q29udGFpbmVyLnB0cigpOwogCiAgICAg
aWYgKG1fbWVkaWFDb250cm9sbGVyKQogICAgICAgICBtX3RleHREaXNwbGF5Q29udGFpbmVyLT5z
ZXRNZWRpYUNvbnRyb2xsZXIobV9tZWRpYUNvbnRyb2xsZXIpOwogCiAgICAgLy8gSW5zZXJ0IGl0
IGJlZm9yZSB0aGUgZmlyc3QgY29udHJvbGxlciBlbGVtZW50IHNvIGl0IGFsd2F5cyBkaXNwbGF5
cyBiZWhpbmQgdGhlIGNvbnRyb2xzLgotICAgIGluc2VydEJlZm9yZSh0ZXh0RGlzcGxheUNvbnRh
aW5lci5yZWxlYXNlKCksIG1fcGFuZWwsIElHTk9SRV9FWENFUFRJT04pOworICAgIGluc2VydEJl
Zm9yZShXVEY6Om1vdmUodGV4dERpc3BsYXlDb250YWluZXIpLCBtX3BhbmVsLCBJR05PUkVfRVhD
RVBUSU9OKTsKIH0KIAogdm9pZCBNZWRpYUNvbnRyb2xzOjpzaG93VGV4dFRyYWNrRGlzcGxheSgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQXBw
bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0FwcGxlLmNw
cAppbmRleCA4ZmRiYTBkLi4wOTI1NmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9NZWRpYUNvbnRyb2xzQXBwbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L01lZGlhQ29udHJvbHNBcHBsZS5jcHAKQEAgLTYzLDE2NSArNjMsMTY1IEBAIFBhc3NS
ZWZQdHI8TWVkaWFDb250cm9scz4gTWVkaWFDb250cm9sczo6Y3JlYXRlKERvY3VtZW50JiBkb2N1
bWVudCkKIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sc0FwcGxlPiBNZWRpYUNvbnRyb2xzQXBwbGU6
OmNyZWF0ZUNvbnRyb2xzKERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBpZiAoIWRvY3VtZW50
LnBhZ2UoKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAg
ICAgUmVmUHRyPE1lZGlhQ29udHJvbHNBcHBsZT4gY29udHJvbHMgPSBhZG9wdFJlZihuZXcgTWVk
aWFDb250cm9sc0FwcGxlKGRvY3VtZW50KSk7CiAKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sUGFu
ZWxFbGVtZW50PiBwYW5lbCA9IE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KTsKKyAgICBSZWY8TWVkaWFDb250cm9sUGFuZWxFbGVtZW50PiBwYW5lbCA9IE1lZGlhQ29u
dHJvbFBhbmVsRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKIAogICAgIEV4Y2VwdGlvbkNvZGUg
ZWM7CiAKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudD4gcmV3aW5k
QnV0dG9uID0gTWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
KTsKLSAgICBjb250cm9scy0+bV9yZXdpbmRCdXR0b24gPSByZXdpbmRCdXR0b24uZ2V0KCk7Ci0g
ICAgcGFuZWwtPmFwcGVuZENoaWxkKHJld2luZEJ1dHRvbi5yZWxlYXNlKCksIGVjKTsKKyAgICBS
ZWY8TWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudD4gcmV3aW5kQnV0dG9uID0gTWVkaWFD
b250cm9sUmV3aW5kQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBjb250cm9s
cy0+bV9yZXdpbmRCdXR0b24gPSByZXdpbmRCdXR0b24ucHRyKCk7CisgICAgcGFuZWwtPmFwcGVu
ZENoaWxkKFdURjo6bW92ZShyZXdpbmRCdXR0b24pLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAg
ICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBSZWZQdHI8TWVkaWFD
b250cm9sUGxheUJ1dHRvbkVsZW1lbnQ+IHBsYXlCdXR0b24gPSBNZWRpYUNvbnRyb2xQbGF5QnV0
dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBjb250cm9scy0+bV9wbGF5QnV0dG9u
ID0gcGxheUJ1dHRvbi5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQocGxheUJ1dHRvbi5y
ZWxlYXNlKCksIGVjKTsKKyAgICBSZWY8TWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ+IHBs
YXlCdXR0b24gPSBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
KTsKKyAgICBjb250cm9scy0+bV9wbGF5QnV0dG9uID0gcGxheUJ1dHRvbi5wdHIoKTsKKyAgICBw
YW5lbC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHBsYXlCdXR0b24pLCBlYyk7CiAgICAgaWYgKGVj
KQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBSZWZQ
dHI8TWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ+IHJldHVyblRvUmVh
bHRpbWVCdXR0b24gPSBNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBjb250cm9scy0+bV9yZXR1cm5Ub1JlYWxUaW1lQnV0dG9u
ID0gcmV0dXJuVG9SZWFsdGltZUJ1dHRvbi5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQo
cmV0dXJuVG9SZWFsdGltZUJ1dHRvbi5yZWxlYXNlKCksIGVjKTsKKyAgICBSZWY8TWVkaWFDb250
cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ+IHJldHVyblRvUmVhbHRpbWVCdXR0b24g
PSBNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KTsKKyAgICBjb250cm9scy0+bV9yZXR1cm5Ub1JlYWxUaW1lQnV0dG9uID0gcmV0dXJuVG9S
ZWFsdGltZUJ1dHRvbi5wdHIoKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHJl
dHVyblRvUmVhbHRpbWVCdXR0b24pLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBpZiAoZG9jdW1lbnQucGFnZSgpLT50
aGVtZSgpLnVzZXNNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5KCkpIHsKLSAgICAgICAgUmVmUHRy
PE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50PiBzdGF0dXNEaXNwbGF5ID0gTWVkaWFD
b250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgICAgIGNv
bnRyb2xzLT5tX3N0YXR1c0Rpc3BsYXkgPSBzdGF0dXNEaXNwbGF5LmdldCgpOwotICAgICAgICBw
YW5lbC0+YXBwZW5kQ2hpbGQoc3RhdHVzRGlzcGxheS5yZWxlYXNlKCksIGVjKTsKKyAgICAgICAg
UmVmPE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50PiBzdGF0dXNEaXNwbGF5ID0gTWVk
aWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgICAg
IGNvbnRyb2xzLT5tX3N0YXR1c0Rpc3BsYXkgPSBzdGF0dXNEaXNwbGF5LnB0cigpOworICAgICAg
ICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHN0YXR1c0Rpc3BsYXkpLCBlYyk7CiAgICAg
ICAgIGlmIChlYykKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgfQogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVy
RWxlbWVudD4gdGltZWxpbmVDb250YWluZXIgPSBNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5l
ckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgUmVmPE1lZGlhQ29udHJvbFRpbWVsaW5l
Q29udGFpbmVyRWxlbWVudD4gdGltZWxpbmVDb250YWluZXIgPSBNZWRpYUNvbnRyb2xUaW1lbGlu
ZUNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAKLSAgICBSZWZQdHI8TWVkaWFD
b250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudD4gY3VycmVudFRpbWVEaXNwbGF5ID0gTWVk
aWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAg
ICBjb250cm9scy0+bV9jdXJyZW50VGltZURpc3BsYXkgPSBjdXJyZW50VGltZURpc3BsYXkuZ2V0
KCk7Ci0gICAgdGltZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKGN1cnJlbnRUaW1lRGlzcGxh
eS5yZWxlYXNlKCksIGVjKTsKKyAgICBSZWY8TWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5
RWxlbWVudD4gY3VycmVudFRpbWVEaXNwbGF5ID0gTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNw
bGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBjb250cm9scy0+bV9jdXJyZW50VGlt
ZURpc3BsYXkgPSBjdXJyZW50VGltZURpc3BsYXkucHRyKCk7CisgICAgdGltZWxpbmVDb250YWlu
ZXItPmFwcGVuZENoaWxkKFdURjo6bW92ZShjdXJyZW50VGltZURpc3BsYXkpLCBlYyk7CiAgICAg
aWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAg
ICBSZWZQdHI8TWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50PiB0aW1lbGluZSA9IE1lZGlhQ29u
dHJvbFRpbWVsaW5lRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBjb250cm9scy5nZXQoKSk7Ci0g
ICAgY29udHJvbHMtPm1fdGltZWxpbmUgPSB0aW1lbGluZS5nZXQoKTsKLSAgICB0aW1lbGluZUNv
bnRhaW5lci0+YXBwZW5kQ2hpbGQodGltZWxpbmUucmVsZWFzZSgpLCBlYyk7CisgICAgUmVmPE1l
ZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudD4gdGltZWxpbmUgPSBNZWRpYUNvbnRyb2xUaW1lbGlu
ZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOworICAgIGNvbnRyb2xz
LT5tX3RpbWVsaW5lID0gdGltZWxpbmUucHRyKCk7CisgICAgdGltZWxpbmVDb250YWluZXItPmFw
cGVuZENoaWxkKFdURjo6bW92ZSh0aW1lbGluZSksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAg
IHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIFJlZlB0cjxNZWRpYUNv
bnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ+IHRpbWVSZW1haW5pbmdEaXNwbGF5ID0g
TWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQp
OwotICAgIGNvbnRyb2xzLT5tX3RpbWVSZW1haW5pbmdEaXNwbGF5ID0gdGltZVJlbWFpbmluZ0Rp
c3BsYXkuZ2V0KCk7Ci0gICAgdGltZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKHRpbWVSZW1h
aW5pbmdEaXNwbGF5LnJlbGVhc2UoKSwgZWMpOworICAgIFJlZjxNZWRpYUNvbnRyb2xUaW1lUmVt
YWluaW5nRGlzcGxheUVsZW1lbnQ+IHRpbWVSZW1haW5pbmdEaXNwbGF5ID0gTWVkaWFDb250cm9s
VGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNvbnRy
b2xzLT5tX3RpbWVSZW1haW5pbmdEaXNwbGF5ID0gdGltZVJlbWFpbmluZ0Rpc3BsYXkucHRyKCk7
CisgICAgdGltZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKFdURjo6bW92ZSh0aW1lUmVtYWlu
aW5nRGlzcGxheSksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGNvbnRyb2xzLT5tX3RpbWVsaW5lQ29udGFpbmVyID0g
dGltZWxpbmVDb250YWluZXIuZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKHRpbWVsaW5l
Q29udGFpbmVyLnJlbGVhc2UoKSwgZWMpOworICAgIGNvbnRyb2xzLT5tX3RpbWVsaW5lQ29udGFp
bmVyID0gdGltZWxpbmVDb250YWluZXIucHRyKCk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdU
Rjo6bW92ZSh0aW1lbGluZUNvbnRhaW5lciksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJl
dHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIC8vIEZJWE1FOiBPbmx5IGNy
ZWF0ZSB3aGVuIG5lZWRlZCA8aHR0cDovL3dlYmtpdC5vcmcvYi81NzE2Mz4KLSAgICBSZWZQdHI8
TWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50PiBzZWVrQmFja0J1dHRvbiA9IE1lZGlh
Q29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBjb250
cm9scy0+bV9zZWVrQmFja0J1dHRvbiA9IHNlZWtCYWNrQnV0dG9uLmdldCgpOwotICAgIHBhbmVs
LT5hcHBlbmRDaGlsZChzZWVrQmFja0J1dHRvbi5yZWxlYXNlKCksIGVjKTsKKyAgICBSZWY8TWVk
aWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50PiBzZWVrQmFja0J1dHRvbiA9IE1lZGlhQ29u
dHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBjb250cm9s
cy0+bV9zZWVrQmFja0J1dHRvbiA9IHNlZWtCYWNrQnV0dG9uLnB0cigpOworICAgIHBhbmVsLT5h
cHBlbmRDaGlsZChXVEY6Om1vdmUoc2Vla0JhY2tCdXR0b24pLCBlYyk7CiAgICAgaWYgKGVjKQot
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBGSVhN
RTogT25seSBjcmVhdGUgd2hlbiBuZWVkZWQgPGh0dHA6Ly93ZWJraXQub3JnL2IvNTcxNjM+Ci0g
ICAgUmVmUHRyPE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudD4gc2Vla0Zvcndh
cmRCdXR0b24gPSBNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCk7Ci0gICAgY29udHJvbHMtPm1fc2Vla0ZvcndhcmRCdXR0b24gPSBzZWVrRm9yd2Fy
ZEJ1dHRvbi5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoc2Vla0ZvcndhcmRCdXR0b24u
cmVsZWFzZSgpLCBlYyk7CisgICAgUmVmPE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxl
bWVudD4gc2Vla0ZvcndhcmRCdXR0b24gPSBNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgY29udHJvbHMtPm1fc2Vla0ZvcndhcmRCdXR0
b24gPSBzZWVrRm9yd2FyZEJ1dHRvbi5wdHIoKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RG
Ojptb3ZlKHNlZWtGb3J3YXJkQnV0dG9uKSwgZWMpOwogICAgIGlmIChlYykKLSAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgaWYgKGRvY3VtZW50LnBhZ2Uo
KS0+dGhlbWUoKS5zdXBwb3J0c0Nsb3NlZENhcHRpb25pbmcoKSkgewotICAgICAgICBSZWZQdHI8
TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50PiBjbG9zZWRDYXB0aW9u
c0NvbnRhaW5lciA9IE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50KTsKKyAgICAgICAgUmVmPE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25z
Q29udGFpbmVyRWxlbWVudD4gY2xvc2VkQ2FwdGlvbnNDb250YWluZXIgPSBNZWRpYUNvbnRyb2xD
bG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAKLSAgICAg
ICAgUmVmUHRyPE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudD4gY2xv
c2VkQ2FwdGlvbnNUcmFja0xpc3QgPSBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlz
dEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOwotICAgICAgICBjb250
cm9scy0+bV9jbG9zZWRDYXB0aW9uc1RyYWNrTGlzdCA9IGNsb3NlZENhcHRpb25zVHJhY2tMaXN0
LmdldCgpOwotICAgICAgICBjbG9zZWRDYXB0aW9uc0NvbnRhaW5lci0+YXBwZW5kQ2hpbGQoY2xv
c2VkQ2FwdGlvbnNUcmFja0xpc3QucmVsZWFzZSgpLCBlYyk7CisgICAgICAgIFJlZjxNZWRpYUNv
bnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ+IGNsb3NlZENhcHRpb25zVHJhY2tM
aXN0ID0gTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKKyAgICAgICAgY29udHJvbHMtPm1fY2xvc2VkQ2Fw
dGlvbnNUcmFja0xpc3QgPSBjbG9zZWRDYXB0aW9uc1RyYWNrTGlzdC5wdHIoKTsKKyAgICAgICAg
Y2xvc2VkQ2FwdGlvbnNDb250YWluZXItPmFwcGVuZENoaWxkKFdURjo6bW92ZShjbG9zZWRDYXB0
aW9uc1RyYWNrTGlzdCksIGVjKTsKICAgICAgICAgaWYgKGVjKQotICAgICAgICAgICAgcmV0dXJu
IDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICBSZWZQdHI8TWVkaWFD
b250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50PiB0b2dnbGVDbG9zZWRDYXB0
aW9uc0J1dHRvbiA9IE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50LCBjb250cm9scy5nZXQoKSk7Ci0gICAgICAgIGNvbnRyb2xzLT5t
X3RvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uID0gdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24u
Z2V0KCk7Ci0gICAgICAgIHBhbmVsLT5hcHBlbmRDaGlsZCh0b2dnbGVDbG9zZWRDYXB0aW9uc0J1
dHRvbi5yZWxlYXNlKCksIGVjKTsKKyAgICAgICAgUmVmPE1lZGlhQ29udHJvbFRvZ2dsZUNsb3Nl
ZENhcHRpb25zQnV0dG9uRWxlbWVudD4gdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24gPSBNZWRp
YUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCwgY29udHJvbHMuZ2V0KCkpOworICAgICAgICBjb250cm9scy0+bV90b2dnbGVDbG9zZWRDYXB0
aW9uc0J1dHRvbiA9IHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uLnB0cigpOworICAgICAgICBw
YW5lbC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uKSwg
ZWMpOwogICAgICAgICBpZiAoZWMpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAg
IHJldHVybiBudWxscHRyOwogCi0gICAgICAgIGNvbnRyb2xzLT5tX2Nsb3NlZENhcHRpb25zQ29u
dGFpbmVyID0gY2xvc2VkQ2FwdGlvbnNDb250YWluZXIuZ2V0KCk7Ci0gICAgICAgIGNvbnRyb2xz
LT5hcHBlbmRDaGlsZChjbG9zZWRDYXB0aW9uc0NvbnRhaW5lci5yZWxlYXNlKCksIGVjKTsKKyAg
ICAgICAgY29udHJvbHMtPm1fY2xvc2VkQ2FwdGlvbnNDb250YWluZXIgPSBjbG9zZWRDYXB0aW9u
c0NvbnRhaW5lci5wdHIoKTsKKyAgICAgICAgY29udHJvbHMtPmFwcGVuZENoaWxkKFdURjo6bW92
ZShjbG9zZWRDYXB0aW9uc0NvbnRhaW5lciksIGVjKTsKICAgICAgICAgaWYgKGVjKQotICAgICAg
ICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAg
ICAvLyBGSVhNRTogT25seSBjcmVhdGUgd2hlbiBuZWVkZWQgPGh0dHA6Ly93ZWJraXQub3JnL2Iv
NTcxNjM+Ci0gICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50PiBm
dWxsU2NyZWVuQnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJvbHMtPm1fZnVsbFNjcmVlbkJ1dHRvbiA9IGZ1bGxT
Y3JlZW5CdXR0b24uZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKGZ1bGxTY3JlZW5CdXR0
b24ucmVsZWFzZSgpLCBlYyk7CisgICAgUmVmPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25F
bGVtZW50PiBmdWxsU2NyZWVuQnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgY29udHJvbHMtPm1fZnVsbFNjcmVlbkJ1dHRv
biA9IGZ1bGxTY3JlZW5CdXR0b24ucHRyKCk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdURjo6
bW92ZShmdWxsU2NyZWVuQnV0dG9uKSwgZWMpOwogCiAgICAgLy8gVGhlIG11dGUgYnV0dG9uIGFu
ZCB0aGUgc2xpZGVyIGVsZW1lbnQgc2hvdWxkIGJlIGluIHRoZSBzYW1lIGRpdi4KLSAgICBSZWZQ
dHI8SFRNTERpdkVsZW1lbnQ+IHBhbmVsVm9sdW1lQ29udHJvbENvbnRhaW5lciA9IEhUTUxEaXZF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIFJlZjxIVE1MRGl2RWxlbWVudD4gcGFuZWxW
b2x1bWVDb250cm9sQ29udGFpbmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7
CiAKICAgICBpZiAoZG9jdW1lbnQucGFnZSgpLT50aGVtZSgpLnVzZXNNZWRpYUNvbnRyb2xWb2x1
bWVTbGlkZXIoKSkgewotICAgICAgICBSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29u
dGFpbmVyRWxlbWVudD4gdm9sdW1lU2xpZGVyQ29udGFpbmVyID0gTWVkaWFDb250cm9sVm9sdW1l
U2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICAgICAgUmVmPE1l
ZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ+IHZvbHVtZVNsaWRlckNvbnRh
aW5lciA9IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCk7CiAKLSAgICAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xpZGVy
RWxlbWVudD4gc2xpZGVyID0gTWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQpOwotICAgICAgICBjb250cm9scy0+bV92b2x1bWVTbGlkZXIgPSBzbGlk
ZXIuZ2V0KCk7Ci0gICAgICAgIHZvbHVtZVNsaWRlckNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoc2xp
ZGVyLnJlbGVhc2UoKSwgZWMpOworICAgICAgICBSZWY8TWVkaWFDb250cm9sUGFuZWxWb2x1bWVT
bGlkZXJFbGVtZW50PiBzbGlkZXIgPSBNZWRpYUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgICAgIGNvbnRyb2xzLT5tX3ZvbHVtZVNsaWRlciA9
IHNsaWRlci5wdHIoKTsKKyAgICAgICAgdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5hcHBlbmRDaGls
ZChXVEY6Om1vdmUoc2xpZGVyKSwgZWMpOwogICAgICAgICBpZiAoZWMpCi0gICAgICAgICAgICBy
ZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgICAgIC8vIFRoaXMg
aXMgYSBkdXBsaWNhdGUgbXV0ZSBidXR0b24sIHdoaWNoIGlzIHZpc2libGUgaW4gc29tZSBwb3J0
cyBhdCB0aGUgYm90dG9tIG9mIHRoZSB2b2x1bWUgYmFyLgogICAgICAgICAvLyBJdCdzIGltcG9y
dGFudCBvbmx5IHdoZW4gdGhlIHZvbHVtZSBiYXIgaXMgZGlzcGxheWVkIGJlbG93IHRoZSBjb250
cm9scy4KLSAgICAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25F
bGVtZW50PiB2b2x1bWVTbGlkZXJNdXRlQnV0dG9uID0gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVy
TXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgICAgIGNvbnRyb2xzLT5t
X3ZvbHVtZVNsaWRlck11dGVCdXR0b24gPSB2b2x1bWVTbGlkZXJNdXRlQnV0dG9uLmdldCgpOwot
ICAgICAgICB2b2x1bWVTbGlkZXJDb250YWluZXItPmFwcGVuZENoaWxkKHZvbHVtZVNsaWRlck11
dGVCdXR0b24ucmVsZWFzZSgpLCBlYyk7CisgICAgICAgIFJlZjxNZWRpYUNvbnRyb2xWb2x1bWVT
bGlkZXJNdXRlQnV0dG9uRWxlbWVudD4gdm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbiA9IE1lZGlhQ29u
dHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAg
ICAgICBjb250cm9scy0+bV92b2x1bWVTbGlkZXJNdXRlQnV0dG9uID0gdm9sdW1lU2xpZGVyTXV0
ZUJ1dHRvbi5wdHIoKTsKKyAgICAgICAgdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5hcHBlbmRDaGls
ZChXVEY6Om1vdmUodm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbiksIGVjKTsKIAogICAgICAgICBpZiAo
ZWMpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwog
Ci0gICAgICAgIGNvbnRyb2xzLT5tX3ZvbHVtZVNsaWRlckNvbnRhaW5lciA9IHZvbHVtZVNsaWRl
ckNvbnRhaW5lci5nZXQoKTsKLSAgICAgICAgcGFuZWxWb2x1bWVDb250cm9sQ29udGFpbmVyLT5h
cHBlbmRDaGlsZCh2b2x1bWVTbGlkZXJDb250YWluZXIucmVsZWFzZSgpLCBlYyk7CisgICAgICAg
IGNvbnRyb2xzLT5tX3ZvbHVtZVNsaWRlckNvbnRhaW5lciA9IHZvbHVtZVNsaWRlckNvbnRhaW5l
ci5wdHIoKTsKKyAgICAgICAgcGFuZWxWb2x1bWVDb250cm9sQ29udGFpbmVyLT5hcHBlbmRDaGls
ZChXVEY6Om1vdmUodm9sdW1lU2xpZGVyQ29udGFpbmVyKSwgZWMpOwogICAgICAgICBpZiAoZWMp
Ci0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
IH0KIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50PiBwYW5l
bE11dGVCdXR0b24gPSBNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKLSAgICBjb250cm9scy0+bV9wYW5lbE11dGVCdXR0
b24gPSBwYW5lbE11dGVCdXR0b24uZ2V0KCk7Ci0gICAgcGFuZWxWb2x1bWVDb250cm9sQ29udGFp
bmVyLT5hcHBlbmRDaGlsZChwYW5lbE11dGVCdXR0b24ucmVsZWFzZSgpLCBlYyk7CisgICAgUmVm
PE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ+IHBhbmVsTXV0ZUJ1dHRvbiA9IE1l
ZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJv
bHMuZ2V0KCkpOworICAgIGNvbnRyb2xzLT5tX3BhbmVsTXV0ZUJ1dHRvbiA9IHBhbmVsTXV0ZUJ1
dHRvbi5wdHIoKTsKKyAgICBwYW5lbFZvbHVtZUNvbnRyb2xDb250YWluZXItPmFwcGVuZENoaWxk
KFdURjo6bW92ZShwYW5lbE11dGVCdXR0b24pLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAgICBy
ZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBwYW5lbC0+YXBwZW5kQ2hp
bGQocGFuZWxWb2x1bWVDb250cm9sQ29udGFpbmVyLCBlYyk7CisgICAgcGFuZWwtPmFwcGVuZENo
aWxkKFdURjo6bW92ZShwYW5lbFZvbHVtZUNvbnRyb2xDb250YWluZXIpLCBlYyk7CiAgICAgaWYg
KGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAv
LyBGSVhNRTogT25seSBjcmVhdGUgd2hlbiBuZWVkZWQgPGh0dHA6Ly93ZWJraXQub3JnL2IvNTcx
NjM+Ci0gICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVt
ZW50PiBmdWxsU2NyZWVuTWluVm9sdW1lQnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNjcmVlblZv
bHVtZU1pbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJvbHMtPm1f
ZnVsbFNjcmVlbk1pblZvbHVtZUJ1dHRvbiA9IGZ1bGxTY3JlZW5NaW5Wb2x1bWVCdXR0b24uZ2V0
KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKGZ1bGxTY3JlZW5NaW5Wb2x1bWVCdXR0b24ucmVs
ZWFzZSgpLCBlYyk7CisgICAgUmVmPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0
b25FbGVtZW50PiBmdWxsU2NyZWVuTWluVm9sdW1lQnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNj
cmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgY29udHJv
bHMtPm1fZnVsbFNjcmVlbk1pblZvbHVtZUJ1dHRvbiA9IGZ1bGxTY3JlZW5NaW5Wb2x1bWVCdXR0
b24ucHRyKCk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdURjo6bW92ZShmdWxsU2NyZWVuTWlu
Vm9sdW1lQnV0dG9uKSwgZWMpOwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAg
ICAgIHJldHVybiBudWxscHRyOwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5W
b2x1bWVTbGlkZXJFbGVtZW50PiBmdWxsU2NyZWVuVm9sdW1lU2xpZGVyID0gTWVkaWFDb250cm9s
RnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgY29u
dHJvbHMtPm1fZnVsbFNjcmVlblZvbHVtZVNsaWRlciA9IGZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXIu
Z2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKGZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXIucmVs
ZWFzZSgpLCBlYyk7CisgICAgUmVmPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJF
bGVtZW50PiBmdWxsU2NyZWVuVm9sdW1lU2xpZGVyID0gTWVkaWFDb250cm9sRnVsbHNjcmVlblZv
bHVtZVNsaWRlckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgY29udHJvbHMtPm1fZnVs
bFNjcmVlblZvbHVtZVNsaWRlciA9IGZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXIucHRyKCk7CisgICAg
cGFuZWwtPmFwcGVuZENoaWxkKFdURjo6bW92ZShmdWxsU2NyZWVuVm9sdW1lU2xpZGVyKSwgZWMp
OwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRy
OwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVt
ZW50PiBmdWxsU2NyZWVuTWF4Vm9sdW1lQnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNjcmVlblZv
bHVtZU1heEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJvbHMtPm1f
ZnVsbFNjcmVlbk1heFZvbHVtZUJ1dHRvbiA9IGZ1bGxTY3JlZW5NYXhWb2x1bWVCdXR0b24uZ2V0
KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKGZ1bGxTY3JlZW5NYXhWb2x1bWVCdXR0b24ucmVs
ZWFzZSgpLCBlYyk7CisgICAgUmVmPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0
b25FbGVtZW50PiBmdWxsU2NyZWVuTWF4Vm9sdW1lQnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNj
cmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgY29udHJv
bHMtPm1fZnVsbFNjcmVlbk1heFZvbHVtZUJ1dHRvbiA9IGZ1bGxTY3JlZW5NYXhWb2x1bWVCdXR0
b24ucHRyKCk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdURjo6bW92ZShmdWxsU2NyZWVuTWF4
Vm9sdW1lQnV0dG9uKSwgZWMpOwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAg
ICAgIHJldHVybiBudWxscHRyOwogCi0gICAgY29udHJvbHMtPm1fcGFuZWwgPSBwYW5lbC5nZXQo
KTsKLSAgICBjb250cm9scy0+YXBwZW5kQ2hpbGQocGFuZWwucmVsZWFzZSgpLCBlYyk7CisgICAg
Y29udHJvbHMtPm1fcGFuZWwgPSBwYW5lbC5wdHIoKTsKKyAgICBjb250cm9scy0+YXBwZW5kQ2hp
bGQoV1RGOjptb3ZlKHBhbmVsKSwgZWMpOwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgcmV0dXJuIGNvbnRyb2xzLnJlbGVhc2Uo
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1i
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1l
bnQuY3BwCmluZGV4IDBhMWJiODMuLjlkZGQ1NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcApAQCAtNjExLDcgKzYxMSw3IEBAIGNv
bnN0IEF0b21pY1N0cmluZyYgU2xpZGVyVGh1bWJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNv
bnN0CiAgICAgfQogfQogCi1SZWZQdHI8RWxlbWVudD4gU2xpZGVyVGh1bWJFbGVtZW50OjpjbG9u
ZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50JiB0YXJnZXREb2N1
bWVudCkKK1JlZjxFbGVtZW50PiBTbGlkZXJUaHVtYkVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhv
dXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50KQogewogICAg
IHJldHVybiBjcmVhdGUodGFyZ2V0RG9jdW1lbnQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaAppbmRleCA0OGVjZDU1Li5jZjJmODVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaApA
QCAtNjIsNyArNjIsNyBAQCBwcml2YXRlOgogICAgIFNsaWRlclRodW1iRWxlbWVudChEb2N1bWVu
dCYpOwogCiAgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikg
b3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91
dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
UmVmPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9j
dW1lbnQmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNEaXNhYmxlZEZvcm1Db250cm9s
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIG1hdGNoZXNSZWFkV3JpdGVQc2V1
ZG9DbGFzcygpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgRWxlbWVudCogZm9jdXNEZWxl
Z2F0ZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
bWFjL0ltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcAppbmRleCBhNDRhNWRl
Li5jNDRjNTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1h
Z2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcApAQCAtODUsMTIgKzg1LDEz
IEBAIFJlZlB0cjxJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQ+IEltYWdlQ29udHJvbHNSb290RWxl
bWVudDo6bWF5YmVDcmVhdGUoRG9jdW1lbnQmCiAgICAgaWYgKCFkb2N1bWVudC5wYWdlKCkpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgUmVmUHRyPEltYWdlQ29udHJvbHNSb290RWxl
bWVudE1hYz4gY29udHJvbHMgPSBhZG9wdFJlZigqbmV3IEltYWdlQ29udHJvbHNSb290RWxlbWVu
dE1hYyhkb2N1bWVudCkpOworICAgIFJlZjxJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWM+IGNv
bnRyb2xzID0gYWRvcHRSZWYoKm5ldyBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMoZG9jdW1l
bnQpKTsKICAgICBjb250cm9scy0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6Y2xhc3NBdHRyLCAi
eC13ZWJraXQtaW1hZ2UtY29udHJvbHMiKTsKIAotICAgIGNvbnRyb2xzLT5hcHBlbmRDaGlsZChJ
bWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYzo6bWF5YmVDcmVhdGUoZG9jdW1lbnQpKTsKKyAg
ICBpZiAoUmVmUHRyPEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjPiBidXR0b24gPSBJbWFn
ZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYzo6bWF5YmVDcmVhdGUoZG9jdW1lbnQpKQorICAgICAg
ICBjb250cm9scy0+YXBwZW5kQ2hpbGQoYnV0dG9uLnJlbGVhc2VOb25OdWxsKCkpOwogCi0gICAg
cmV0dXJuIGNvbnRyb2xzLnJlbGVhc2UoKTsKKyAgICByZXR1cm4gV1RGOjptb3ZlKGNvbnRyb2xz
KTsKIH0KIAogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjOjpJbWFnZUNvbnRyb2xzUm9vdEVs
ZW1lbnRNYWMoRG9jdW1lbnQmIGRvY3VtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9WVFRDdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUu
Y3BwCmluZGV4IGE5NjkwZDYuLjlkNmNhNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svVlRUQ3VlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1
ZS5jcHAKQEAgLTQ5Niw3ICs0OTYsNyBAQCB2b2lkIFZUVEN1ZTo6Y29weVdlYlZUVE5vZGVUb0RP
TVRyZWUoQ29udGFpbmVyTm9kZSogd2ViVlRUTm9kZSwgQ29udGFpbmVyTm9kZSogcAogICAgICAg
ICAgICAgY2xvbmVkTm9kZSA9IGRvd25jYXN0PFdlYlZUVEVsZW1lbnQ+KCpub2RlKS5jcmVhdGVF
cXVpdmFsZW50SFRNTEVsZW1lbnQob3duZXJEb2N1bWVudCgpKTsKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgY2xvbmVkTm9kZSA9IG5vZGUtPmNsb25lTm9kZShmYWxzZSk7Ci0gICAgICAgIHBh
cmVudC0+YXBwZW5kQ2hpbGQoY2xvbmVkTm9kZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAg
ICAgIHBhcmVudC0+YXBwZW5kQ2hpbGQoKmNsb25lZE5vZGUsIEFTU0VSVF9OT19FWENFUFRJT04p
OwogICAgICAgICBpZiAoaXM8Q29udGFpbmVyTm9kZT4oKm5vZGUpKQogICAgICAgICAgICAgY29w
eVdlYlZUVE5vZGVUb0RPTVRyZWUoZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4obm9kZSksIGRvd25j
YXN0PENvbnRhaW5lck5vZGU+KGNsb25lZE5vZGUuZ2V0KCkpKTsKICAgICB9CkBAIC01MTgsMTAg
KzUxOCwxMCBAQCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFZUVEN1ZTo6Y3JlYXRlQ3Vl
UmVuZGVyaW5nVHJlZSgpCiAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNsb25lZEZyYWdt
ZW50OwogICAgIGNyZWF0ZVdlYlZUVE5vZGVUcmVlKCk7CiAgICAgaWYgKCFtX3dlYlZUVE5vZGVU
cmVlKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBj
bG9uZWRGcmFnbWVudCA9IERvY3VtZW50RnJhZ21lbnQ6OmNyZWF0ZShvd25lckRvY3VtZW50KCkp
OwotICAgIG1fd2ViVlRUTm9kZVRyZWUtPmNsb25lQ2hpbGROb2RlcyhjbG9uZWRGcmFnbWVudC5n
ZXQoKSk7CisgICAgbV93ZWJWVFROb2RlVHJlZS0+Y2xvbmVDaGlsZE5vZGVzKCpjbG9uZWRGcmFn
bWVudCk7CiAgICAgcmV0dXJuIGNsb25lZEZyYWdtZW50LnJlbGVhc2UoKTsKIH0KIApAQCAtNzg1
LDcgKzc4NSw3IEBAIHZvaWQgVlRUQ3VlOjp1cGRhdGVEaXNwbGF5VHJlZShjb25zdCBNZWRpYVRp
bWUmIG1vdmllVGltZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbWFya0Z1dHVyZUFuZFBhc3RO
b2RlcyhyZWZlcmVuY2VUcmVlLmdldCgpLCBzdGFydE1lZGlhVGltZSgpLCBtb3ZpZVRpbWUpOwot
ICAgIG1fY3VlSGlnaGxpZ2h0Qm94LT5hcHBlbmRDaGlsZChyZWZlcmVuY2VUcmVlKTsKKyAgICBt
X2N1ZUhpZ2hsaWdodEJveC0+YXBwZW5kQ2hpbGQocmVmZXJlbmNlVHJlZS5yZWxlYXNlTm9uTnVs
bCgpKTsKIH0KIAogVlRUQ3VlQm94KiBWVFRDdWU6OmdldERpc3BsYXlUcmVlKGNvbnN0IEludFNp
emUmIHZpZGVvU2l6ZSwgaW50IGZvbnRTaXplKQpAQCAtODEyLDggKzgxMiw4IEBAIFZUVEN1ZUJv
eCogVlRUQ3VlOjpnZXREaXNwbGF5VHJlZShjb25zdCBJbnRTaXplJiB2aWRlb1NpemUsIGludCBm
b250U2l6ZSkKICAgICBtX2N1ZUhpZ2hsaWdodEJveC0+c2V0UHNldWRvKGN1ZVNoYWRvd1BzZXVk
b0lkKCkpOwogCiAgICAgbV9jdWVCYWNrZHJvcEJveC0+c2V0UHNldWRvKGN1ZUJhY2tkcm9wU2hh
ZG93UHNldWRvSWQoKSk7Ci0gICAgbV9jdWVCYWNrZHJvcEJveC0+YXBwZW5kQ2hpbGQobV9jdWVI
aWdobGlnaHRCb3gsIEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgIGRpc3BsYXlUcmVlLT5hcHBl
bmRDaGlsZChtX2N1ZUJhY2tkcm9wQm94LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBtX2N1
ZUJhY2tkcm9wQm94LT5hcHBlbmRDaGlsZCgqbV9jdWVIaWdobGlnaHRCb3gsIEFTU0VSVF9OT19F
WENFUFRJT04pOworICAgIGRpc3BsYXlUcmVlLT5hcHBlbmRDaGlsZCgqbV9jdWVCYWNrZHJvcEJv
eCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKICAgICAvLyBGSVhNRShCVUcgNzk5MTYpOiBSdW5z
IG9mIGNoaWxkcmVuIG9mIFdlYlZUVCBSdWJ5IE9iamVjdHMgdGhhdCBhcmUgbm90CiAgICAgLy8g
V2ViVlRUIFJ1YnkgVGV4dCBPYmplY3RzIG11c3QgYmUgd3JhcHBlZCBpbiBhbm9ueW1vdXMgYm94
ZXMgd2hvc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmNwcAppbmRleCBjY2Iz
MmUwLi44NTc5ODY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJl
Z2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24uY3BwCkBA
IC0zNTQsNyArMzU0LDcgQEAgdm9pZCBWVFRSZWdpb246OmFwcGVuZFRleHRUcmFja0N1ZUJveChQ
YXNzUmVmUHRyPFZUVEN1ZUJveD4gZGlzcGxheUJveCkKICAgICBpZiAobV9jdWVDb250YWluZXIt
PmNvbnRhaW5zKGRpc3BsYXlCb3guZ2V0KCkpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2N1
ZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoZGlzcGxheUJveCwgQVNTRVJUX05PX0VYQ0VQVElPTik7
CisgICAgbV9jdWVDb250YWluZXItPmFwcGVuZENoaWxkKCpkaXNwbGF5Qm94LCBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKICAgICBkaXNwbGF5TGFzdFRleHRUcmFja0N1ZUJveCgpOwogfQogCkBAIC00
MDQsMTQgKzQwNCwxNCBAQCB2b2lkIFZUVFJlZ2lvbjo6d2lsbFJlbW92ZVRleHRUcmFja0N1ZUJv
eChWVFRDdWVCb3gqIGJveCkKICAgICBtX2N1ZUNvbnRhaW5lci0+c2V0SW5saW5lU3R5bGVQcm9w
ZXJ0eShDU1NQcm9wZXJ0eVRvcCwgbV9jdXJyZW50VG9wLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X1BYKTsKIH0KIAotUGFzc1JlZlB0cjxIVE1MRGl2RWxlbWVudD4gVlRUUmVnaW9uOjpnZXREaXNw
bGF5VHJlZSgpCitIVE1MRGl2RWxlbWVudCYgVlRUUmVnaW9uOjpnZXREaXNwbGF5VHJlZSgpCiB7
CiAgICAgaWYgKCFtX3JlZ2lvbkRpc3BsYXlUcmVlKSB7CiAgICAgICAgIG1fcmVnaW9uRGlzcGxh
eVRyZWUgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKCpvd25lckRvY3VtZW50KCkpOwogICAgICAg
ICBwcmVwYXJlUmVnaW9uRGlzcGxheVRyZWUoKTsKICAgICB9CiAKLSAgICByZXR1cm4gbV9yZWdp
b25EaXNwbGF5VHJlZTsKKyAgICByZXR1cm4gKm1fcmVnaW9uRGlzcGxheVRyZWU7CiB9CiAKIHZv
aWQgVlRUUmVnaW9uOjpwcmVwYXJlUmVnaW9uRGlzcGxheVRyZWUoKQpAQCAtNDUzLDcgKzQ1Myw3
IEBAIHZvaWQgVlRUUmVnaW9uOjpwcmVwYXJlUmVnaW9uRGlzcGxheVRyZWUoKQogICAgIG1fY3Vl
Q29udGFpbmVyLT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5VG9wLCAwLjBmLCBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BYKTsKIAogICAgIG1fY3VlQ29udGFpbmVyLT5zZXRQc2V1
ZG8odGV4dFRyYWNrQ3VlQ29udGFpbmVyU2hhZG93UHNldWRvSWQoKSk7Ci0gICAgbV9yZWdpb25E
aXNwbGF5VHJlZS0+YXBwZW5kQ2hpbGQobV9jdWVDb250YWluZXIpOworICAgIG1fcmVnaW9uRGlz
cGxheVRyZWUtPmFwcGVuZENoaWxkKCptX2N1ZUNvbnRhaW5lcik7CiAKICAgICAvLyA3LjUgRXZl
cnkgV2ViVlRUIHJlZ2lvbiBvYmplY3QgaXMgaW5pdGlhbGlzZWQgd2l0aCB0aGUgZm9sbG93aW5n
IENTUwogICAgIG1fcmVnaW9uRGlzcGxheVRyZWUtPnNldFBzZXVkbyh0ZXh0VHJhY2tSZWdpb25T
aGFkb3dQc2V1ZG9JZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
VlRUUmVnaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5oCmluZGV4
IDc3NzFlOGUuLjg5MjVhZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
VlRUUmVnaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24uaApA
QCAtODksNyArODksNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzU2Nyb2xsaW5nUmVnaW9uKCkg
eyByZXR1cm4gbV9zY3JvbGw7IH0KIAotICAgIFBhc3NSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IGdl
dERpc3BsYXlUcmVlKCk7CisgICAgSFRNTERpdkVsZW1lbnQmIGdldERpc3BsYXlUcmVlKCk7CiAg
ICAgCiAgICAgdm9pZCBhcHBlbmRUZXh0VHJhY2tDdWVCb3goUGFzc1JlZlB0cjxWVFRDdWVCb3g+
KTsKICAgICB2b2lkIGRpc3BsYXlMYXN0VGV4dFRyYWNrQ3VlQm94KCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmNwcAppbmRleCA0YTJmMzFiLi4xNDk2YmIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5jcHAKQEAgLTgwLDEx
ICs4MCwxMSBAQCBSZWY8V2ViVlRURWxlbWVudD4gV2ViVlRURWxlbWVudDo6Y3JlYXRlKFdlYlZU
VE5vZGVUeXBlIG5vZGVUeXBlLCBEb2N1bWVudCYgZG9jdQogICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFdlYlZUVEVsZW1lbnQobm9kZVR5cGUsIGRvY3VtZW50KSk7CiB9CiAKLVJlZlB0cjxFbGVt
ZW50PiBXZWJWVFRFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxk
cmVuKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCkKK1JlZjxFbGVtZW50PiBXZWJWVFRFbGVtZW50
OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50JiB0YXJn
ZXREb2N1bWVudCkKIHsKLSAgICBSZWZQdHI8V2ViVlRURWxlbWVudD4gY2xvbmUgPSBjcmVhdGUo
c3RhdGljX2Nhc3Q8V2ViVlRUTm9kZVR5cGU+KG1fd2ViVlRUTm9kZVR5cGUpLCB0YXJnZXREb2N1
bWVudCk7CisgICAgUmVmPFdlYlZUVEVsZW1lbnQ+IGNsb25lID0gY3JlYXRlKHN0YXRpY19jYXN0
PFdlYlZUVE5vZGVUeXBlPihtX3dlYlZUVE5vZGVUeXBlKSwgdGFyZ2V0RG9jdW1lbnQpOwogICAg
IGNsb25lLT5zZXRMYW5ndWFnZShtX2xhbmd1YWdlKTsKLSAgICByZXR1cm4gY2xvbmU7CisgICAg
cmV0dXJuIFdURjo6bW92ZShjbG9uZSk7CiB9CiAKIFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IFdl
YlZUVEVsZW1lbnQ6OmNyZWF0ZUVxdWl2YWxlbnRIVE1MRWxlbWVudChEb2N1bWVudCYgZG9jdW1l
bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5oCmluZGV4IDFiZTc2
MzYuLjg5ZDNkMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRU
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5o
CkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYlZUVEVsZW1lbnQ+
IGNyZWF0ZShjb25zdCBXZWJWVFROb2RlVHlwZSwgRG9jdW1lbnQmKTsKICAgICBQYXNzUmVmUHRy
PEhUTUxFbGVtZW50PiBjcmVhdGVFcXVpdmFsZW50SFRNTEVsZW1lbnQoRG9jdW1lbnQmKTsKIAot
ICAgIHZpcnR1YWwgUmVmUHRyPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVz
QW5kQ2hpbGRyZW4oRG9jdW1lbnQmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxFbGVtZW50
PiBjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50Jikgb3Zl
cnJpZGU7CiAKICAgICB2b2lkIHNldFdlYlZUVE5vZGVUeXBlKFdlYlZUVE5vZGVUeXBlIHR5cGUp
IHsgbV93ZWJWVFROb2RlVHlwZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPih0eXBlKTsgfQogICAg
IFdlYlZUVE5vZGVUeXBlIHdlYlZUVE5vZGVUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nh
c3Q8V2ViVlRUTm9kZVR5cGU+KG1fd2ViVlRUTm9kZVR5cGUpOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcAppbmRleCBiNmEzMTEzLi44NTdhZDE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAK
QEAgLTc5Niw3ICs3OTYsNyBAQCBJbnNwZWN0b3JTdHlsZVNoZWV0KiBJbnNwZWN0b3JDU1NBZ2Vu
dDo6Y3JlYXRlSW5zcGVjdG9yU3R5bGVTaGVldEZvckRvY3VtZW50KERvYwogICAgIC8vIFNldCB0
aGlzIGZsYWcsIHNvIHdoZW4gd2UgY3JlYXRlIGl0LCB3ZSBwdXQgaXQgaW50byB0aGUgdmlhIGlu
c3BlY3RvciBtYXAuCiAgICAgbV9jcmVhdGluZ1ZpYUluc3BlY3RvclN0eWxlU2hlZXQgPSB0cnVl
OwogICAgIElubGluZVN0eWxlT3ZlcnJpZGVTY29wZSBvdmVycmlkZVNjb3BlKGRvY3VtZW50KTsK
LSAgICB0YXJnZXROb2RlLT5hcHBlbmRDaGlsZChzdHlsZUVsZW1lbnQsIGVjKTsKKyAgICB0YXJn
ZXROb2RlLT5hcHBlbmRDaGlsZChzdHlsZUVsZW1lbnQucmVsZWFzZU5vbk51bGwoKSwgZWMpOwog
ICAgIG1fY3JlYXRpbmdWaWFJbnNwZWN0b3JTdHlsZVNoZWV0ID0gZmFsc2U7CiAgICAgaWYgKGVj
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxl
ci5jcHAKaW5kZXggY2ViNGFhMS4uODg3NzI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29u
dHJvbGxlci5jcHAKQEAgLTEzOCw3ICsxMzgsNyBAQCBzdGF0aWMgUGFzc1JlZlB0cjxEb2N1bWVu
dEZyYWdtZW50PiBkb2N1bWVudEZyYWdtZW50RnJvbURyYWdEYXRhKERyYWdEYXRhJiBkcmFnRAog
ICAgICAgICAgICAgU3RyaW5nIHRpdGxlOwogICAgICAgICAgICAgU3RyaW5nIHVybCA9IGRyYWdE
YXRhLmFzVVJMKERyYWdEYXRhOjpEb05vdENvbnZlcnRGaWxlbmFtZXMsICZ0aXRsZSk7CiAgICAg
ICAgICAgICBpZiAoIXVybC5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICBSZWZQdHI8SFRN
TEFuY2hvckVsZW1lbnQ+IGFuY2hvciA9IEhUTUxBbmNob3JFbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQpOworICAgICAgICAgICAgICAgIFJlZjxIVE1MQW5jaG9yRWxlbWVudD4gYW5jaG9yID0gSFRN
TEFuY2hvckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgICAgICAgICAgICAgYW5jaG9y
LT5zZXRIcmVmKHVybCk7CiAgICAgICAgICAgICAgICAgaWYgKHRpdGxlLmlzRW1wdHkoKSkgewog
ICAgICAgICAgICAgICAgICAgICAvLyBUcnkgdGhlIHBsYWluIHRleHQgZmlyc3QgYmVjYXVzZSB0
aGUgdXJsIG1pZ2h0IGJlIG5vcm1hbGl6ZWQgb3IgZXNjYXBlZC4KQEAgLTE0NywxMSArMTQ3LDEw
IEBAIHN0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGRvY3VtZW50RnJhZ21lbnRG
cm9tRHJhZ0RhdGEoRHJhZ0RhdGEmIGRyYWdECiAgICAgICAgICAgICAgICAgICAgIGlmICh0aXRs
ZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IHVybDsKICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgUmVmUHRyPE5vZGU+IGFuY2hvclRleHQgPSBk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0aXRsZSk7Ci0gICAgICAgICAgICAgICAgYW5jaG9yLT5h
cHBlbmRDaGlsZChhbmNob3JUZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKLSAgICAgICAgICAgICAg
ICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBkb2N1bWVudC5jcmVhdGVEb2N1
bWVudEZyYWdtZW50KCk7Ci0gICAgICAgICAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKGFu
Y2hvciwgSUdOT1JFX0VYQ0VQVElPTik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZyYWdtZW50
LmdldCgpOworICAgICAgICAgICAgICAgIGFuY2hvci0+YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlVGV4dE5vZGUodGl0bGUpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgICAgICAgICBS
ZWY8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZy
YWdtZW50KCk7CisgICAgICAgICAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92
ZShhbmNob3IpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZnJh
Z21lbnQucHRyKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CkBAIC0xNjAsNyAr
MTU5LDcgQEAgc3RhdGljIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZG9jdW1lbnRGcmFn
bWVudEZyb21EcmFnRGF0YShEcmFnRGF0YSYgZHJhZ0QKICAgICAgICAgcmV0dXJuIGNyZWF0ZUZy
YWdtZW50RnJvbVRleHQoY29udGV4dCwgZHJhZ0RhdGEuYXNQbGFpblRleHQoKSkuZ2V0KCk7CiAg
ICAgfQogCi0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIGJvb2wgRHJh
Z0NvbnRyb2xsZXI6OmRyYWdJc01vdmUoRnJhbWVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgRHJhZ0Rh
dGEmIGRyYWdEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4
IDZmM2NhODMuLjhhZGZjZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3Jp
cHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5j
cHAKQEAgLTE1Niw5ICsxNTYsOSBAQCBib29sIFNWR1NjcmlwdEVsZW1lbnQ6Omhhc1NvdXJjZUF0
dHJpYnV0ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGhhc0F0dHJpYnV0ZShYTGlua05hbWVzOjpocmVm
QXR0cik7CiB9CiAKLVJlZlB0cjxFbGVtZW50PiBTVkdTY3JpcHRFbGVtZW50OjpjbG9uZUVsZW1l
bnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCkK
K1JlZjxFbGVtZW50PiBTVkdTY3JpcHRFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmli
dXRlc0FuZENoaWxkcmVuKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFNWR1NjcmlwdEVsZW1lbnQodGFnUU5hbWUoKSwgdGFyZ2V0RG9jdW1lbnQs
IGZhbHNlLCBhbHJlYWR5U3RhcnRlZCgpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZH
U2NyaXB0RWxlbWVudCh0YWdRTmFtZSgpLCB0YXJnZXREb2N1bWVudCwgZmFsc2UsIGFscmVhZHlT
dGFydGVkKCkpKTsKIH0KIAogI2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0
RWxlbWVudC5oCmluZGV4IDRjMWFhMDhlLi41MzVlNDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
Y3JpcHRFbGVtZW50LmgKQEAgLTY1LDcgKzY1LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaExvYWRFdmVudCgpIG92ZXJyaWRlIHsgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNS
ZXF1aXJlZDo6ZGlzcGF0Y2hMb2FkRXZlbnQodGhpcyk7IH0KIAotICAgIHZpcnR1YWwgUmVmUHRy
PEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1l
bnQmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRo
b3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7IHJl
dHVybiBmYWxzZTsgfQogCiAgICAgLy8gU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCmluZGV4IDcwNGZlNGEuLjY0ZTEwYWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKQEAgLTMzMiw3ICszMzIsNyBAQCBzdGF0aWMg
dm9pZCByZW1vdmVEaXNhbGxvd2VkRWxlbWVudHNGcm9tU3VidHJlZShTVkdFbGVtZW50JiBzdWJ0
cmVlKQogICAgIGZvciAoYXV0byogZWxlbWVudCA6IGRpc2FsbG93ZWRFbGVtZW50cykgewogICAg
ICAgICBmb3IgKGF1dG8mIGRlc2NlbmRhbnQgOiBkZXNjZW5kYW50c09mVHlwZTxTVkdFbGVtZW50
PigqZWxlbWVudCkpCiAgICAgICAgICAgICBkZXNjZW5kYW50LnNldENvcnJlc3BvbmRpbmdFbGVt
ZW50KG51bGxwdHIpOwotICAgICAgICBlbGVtZW50LT5wYXJlbnROb2RlKCktPnJlbW92ZUNoaWxk
KGVsZW1lbnQpOworICAgICAgICBlbGVtZW50LT5wYXJlbnROb2RlKCktPnJlbW92ZUNoaWxkKCpl
bGVtZW50KTsKICAgICB9CiB9CiAKQEAgLTQwNSw3ICs0MDUsNyBAQCBTVkdFbGVtZW50KiBTVkdV
c2VFbGVtZW50OjpmaW5kVGFyZ2V0KFN0cmluZyogdGFyZ2V0SUQpIGNvbnN0CiAKIHZvaWQgU1ZH
VXNlRWxlbWVudDo6Y2xvbmVUYXJnZXQoQ29udGFpbmVyTm9kZSYgY29udGFpbmVyLCBTVkdFbGVt
ZW50JiB0YXJnZXQpIGNvbnN0CiB7Ci0gICAgUmVmPFNWR0VsZW1lbnQ+IHRhcmdldENsb25lID0g
c3RhdGljX3BvaW50ZXJfY2FzdDxTVkdFbGVtZW50Pih0YXJnZXQuY2xvbmVFbGVtZW50V2l0aENo
aWxkcmVuKGRvY3VtZW50KCkpKS5yZWxlYXNlTm9uTnVsbCgpOworICAgIFJlZjxTVkdFbGVtZW50
PiB0YXJnZXRDbG9uZSA9IHN0YXRpY19jYXN0PFNWR0VsZW1lbnQmPih0YXJnZXQuY2xvbmVFbGVt
ZW50V2l0aENoaWxkcmVuKGRvY3VtZW50KCkpLmdldCgpKTsKICAgICBhc3NvY2lhdGVDbG9uZXNX
aXRoT3JpZ2luYWxzKHRhcmdldENsb25lLmdldCgpLCB0YXJnZXQpOwogICAgIHJlbW92ZURpc2Fs
bG93ZWRFbGVtZW50c0Zyb21TdWJ0cmVlKHRhcmdldENsb25lLmdldCgpKTsKICAgICB0cmFuc2Zl
clNpemVBdHRyaWJ1dGVzVG9UYXJnZXRDbG9uZSh0YXJnZXRDbG9uZS5nZXQoKSk7CkBAIC00MTks
NyArNDE5LDcgQEAgc3RhdGljIHZvaWQgY2xvbmVEYXRhQW5kQ2hpbGRyZW4oU1ZHRWxlbWVudCYg
cmVwbGFjZW1lbnRDbG9uZSwgU1ZHRWxlbWVudCYgb3JpZ2kKICAgICBBU1NFUlQoIXJlcGxhY2Vt
ZW50Q2xvbmUucGFyZW50Tm9kZSgpKTsKIAogICAgIHJlcGxhY2VtZW50Q2xvbmUuY2xvbmVEYXRh
RnJvbUVsZW1lbnQob3JpZ2luYWxDbG9uZSk7Ci0gICAgb3JpZ2luYWxDbG9uZS5jbG9uZUNoaWxk
Tm9kZXMoJnJlcGxhY2VtZW50Q2xvbmUpOworICAgIG9yaWdpbmFsQ2xvbmUuY2xvbmVDaGlsZE5v
ZGVzKHJlcGxhY2VtZW50Q2xvbmUpOwogICAgIGFzc29jaWF0ZVJlcGxhY2VtZW50Q2xvbmVzV2l0
aE9yaWdpbmFscyhyZXBsYWNlbWVudENsb25lLCBvcmlnaW5hbENsb25lKTsKICAgICByZW1vdmVE
aXNhbGxvd2VkRWxlbWVudHNGcm9tU3VidHJlZShyZXBsYWNlbWVudENsb25lKTsKIH0KQEAgLTQ0
OCw3ICs0NDgsNyBAQCB2b2lkIFNWR1VzZUVsZW1lbnQ6OmV4cGFuZFVzZUVsZW1lbnRzSW5TaGFk
b3dUcmVlKCkgY29uc3QKICAgICAgICAgaWYgKHRhcmdldCkKICAgICAgICAgICAgIG9yaWdpbmFs
Q2xvbmUuY2xvbmVUYXJnZXQocmVwbGFjZW1lbnRDbG9uZS5nZXQoKSwgKnRhcmdldCk7CiAKLSAg
ICAgICAgb3JpZ2luYWxDbG9uZS5wYXJlbnROb2RlKCktPnJlcGxhY2VDaGlsZChyZXBsYWNlbWVu
dENsb25lLnB0cigpLCAmb3JpZ2luYWxDbG9uZSk7CisgICAgICAgIG9yaWdpbmFsQ2xvbmUucGFy
ZW50Tm9kZSgpLT5yZXBsYWNlQ2hpbGQocmVwbGFjZW1lbnRDbG9uZS5jb3B5UmVmKCksIG9yaWdp
bmFsQ2xvbmUpOwogCiAgICAgICAgIC8vIFJlc3VtZSBpdGVyYXRpbmcsIHN0YXJ0aW5nIGp1c3Qg
aW5zaWRlIHRoZSByZXBsYWNlbWVudCBjbG9uZS4KICAgICAgICAgaXQgPSBkZXNjZW5kYW50cy5m
cm9tKHJlcGxhY2VtZW50Q2xvbmUuZ2V0KCkpOwpAQCAtNDcyLDcgKzQ3Miw3IEBAIHZvaWQgU1ZH
VXNlRWxlbWVudDo6ZXhwYW5kU3ltYm9sRWxlbWVudHNJblNoYWRvd1RyZWUoKSBjb25zdAogICAg
ICAgICBhdXRvIHJlcGxhY2VtZW50Q2xvbmUgPSBTVkdTVkdFbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQoKSk7CiAgICAgICAgIGNsb25lRGF0YUFuZENoaWxkcmVuKHJlcGxhY2VtZW50Q2xvbmUuZ2V0
KCksIG9yaWdpbmFsQ2xvbmUpOwogCi0gICAgICAgIG9yaWdpbmFsQ2xvbmUucGFyZW50Tm9kZSgp
LT5yZXBsYWNlQ2hpbGQocmVwbGFjZW1lbnRDbG9uZS5wdHIoKSwgJm9yaWdpbmFsQ2xvbmUpOwor
ICAgICAgICBvcmlnaW5hbENsb25lLnBhcmVudE5vZGUoKS0+cmVwbGFjZUNoaWxkKHJlcGxhY2Vt
ZW50Q2xvbmUuY29weVJlZigpLCBvcmlnaW5hbENsb25lKTsKIAogICAgICAgICAvLyBSZXN1bWUg
aXRlcmF0aW5nLCBzdGFydGluZyBqdXN0IGluc2lkZSB0aGUgcmVwbGFjZW1lbnQgY2xvbmUuCiAg
ICAgICAgIGl0ID0gZGVzY2VuZGFudHMuZnJvbShyZXBsYWNlbWVudENsb25lLmdldCgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxUcmVlVmlld2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxUcmVlVmlld2VyLmNwcAppbmRleCA0MDk2ZTQzLi5hOWY3N2VhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MVHJlZVZpZXdlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUveG1sL1hNTFRyZWVWaWV3ZXIuY3BwCkBAIC02MSw4ICs2MSw4IEBAIHZvaWQgWE1M
VHJlZVZpZXdlcjo6dHJhbnNmb3JtRG9jdW1lbnRUb1RyZWVWaWV3KCkKICAgICBtX2RvY3VtZW50
LmZyYW1lKCktPnNjcmlwdCgpLmV2YWx1YXRlKFNjcmlwdFNvdXJjZUNvZGUoQXRvbWljU3RyaW5n
KCJwcmVwYXJlV2ViS2l0WE1MVmlld2VyKCdUaGlzIFhNTCBmaWxlIGRvZXMgbm90IGFwcGVhciB0
byBoYXZlIGFueSBzdHlsZSBpbmZvcm1hdGlvbiBhc3NvY2lhdGVkIHdpdGggaXQuIFRoZSBkb2N1
bWVudCB0cmVlIGlzIHNob3duIGJlbG93LicpOyIpKSk7CiAKICAgICBTdHJpbmcgY3NzU3RyaW5n
ID0gU3RyaW5nSW1wbDo6Y3JlYXRlV2l0aG91dENvcHlpbmcoWE1MVmlld2VyX2Nzcywgc2l6ZW9m
KFhNTFZpZXdlcl9jc3MpKTsKLSAgICBSZWZQdHI8VGV4dD4gdGV4dCA9IG1fZG9jdW1lbnQuY3Jl
YXRlVGV4dE5vZGUoY3NzU3RyaW5nKTsKLSAgICBtX2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKFN0
cmluZyhBU0NJSUxpdGVyYWwoInhtbC12aWV3ZXItc3R5bGUiKSkpLT5hcHBlbmRDaGlsZCh0ZXh0
LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBSZWY8VGV4dD4gdGV4dCA9IG1fZG9jdW1lbnQuY3Jl
YXRlVGV4dE5vZGUoY3NzU3RyaW5nKTsKKyAgICBtX2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKFN0
cmluZyhBU0NJSUxpdGVyYWwoInhtbC12aWV3ZXItc3R5bGUiKSkpLT5hcHBlbmRDaGlsZChXVEY6
Om1vdmUodGV4dCksIElHTk9SRV9FWENFUFRJT04pOwogICAgIG1fZG9jdW1lbnQuc3R5bGVSZXNv
bHZlckNoYW5nZWQoUmVjYWxjU3R5bGVJbW1lZGlhdGVseSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4IDBiMzIxMjAuLjY2MjUzOWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJGcmFtZS5tbQpAQCAtODkwLDkgKzg5MCw5IEBAIHN0YXRpYyBpbmxpbmUg
V2ViRGF0YVNvdXJjZSAqZGF0YVNvdXJjZShEb2N1bWVudExvYWRlciogbG9hZGVyKQogICAgIFJl
ZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGRvY3VtZW50LT5jcmVhdGVEb2N1bWVu
dEZyYWdtZW50KCk7CiAKICAgICBmb3IgKGF1dG8qIG5vZGUgOiBub2Rlc1ZlY3RvcikgewotICAg
ICAgICBSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IGNyZWF0ZURlZmF1bHRQYXJhZ3JhcGhFbGVt
ZW50KCpkb2N1bWVudCk7Ci0gICAgICAgIGVsZW1lbnQtPmFwcGVuZENoaWxkKG5vZGUpOwotICAg
ICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoZWxlbWVudC5yZWxlYXNlKCkpOworICAgICAgICBS
ZWY8RWxlbWVudD4gZWxlbWVudCA9IGNyZWF0ZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50KCpkb2N1
bWVudCk7CisgICAgICAgIGVsZW1lbnQtPmFwcGVuZENoaWxkKCpub2RlKTsKKyAgICAgICAgZnJh
Z21lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShlbGVtZW50KSk7CiAgICAgfQogCiAgICAgcmV0
dXJuIGtpdChmcmFnbWVudC5yZWxlYXNlKCkuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQppbmRleCA1M2RiZmE1Li4xNzM0
MGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BE
RlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BE
RlBsdWdpbi5tbQpAQCAtNTI1LDExICs1MjUsMTEgQEAgUERGUGx1Z2luOjpQREZQbHVnaW4oV2Vi
RnJhbWUqIGZyYW1lKQogICAgICAgICBtX2Fubm90YXRpb25Db250YWluZXIgPSBkb2N1bWVudC0+
Y3JlYXRlRWxlbWVudChkaXZUYWcsIGZhbHNlKTsKICAgICAgICAgbV9hbm5vdGF0aW9uQ29udGFp
bmVyLT5zZXRBdHRyaWJ1dGUoaWRBdHRyLCAiYW5ub3RhdGlvbkNvbnRhaW5lciIpOwogCi0gICAg
ICAgIFJlZlB0cjxFbGVtZW50PiBtX2Fubm90YXRpb25TdHlsZSA9IGRvY3VtZW50LT5jcmVhdGVF
bGVtZW50KHN0eWxlVGFnLCBmYWxzZSk7Ci0gICAgICAgIG1fYW5ub3RhdGlvblN0eWxlLT5zZXRU
ZXh0Q29udGVudChhbm5vdGF0aW9uU3R5bGUsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAg
ICBSZWY8RWxlbWVudD4gYW5ub3RhdGlvblN0eWxlRWxlbWVudCA9IGRvY3VtZW50LT5jcmVhdGVF
bGVtZW50KHN0eWxlVGFnLCBmYWxzZSk7CisgICAgICAgIGFubm90YXRpb25TdHlsZUVsZW1lbnQt
PnNldFRleHRDb250ZW50KGFubm90YXRpb25TdHlsZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAK
LSAgICAgICAgbV9hbm5vdGF0aW9uQ29udGFpbmVyLT5hcHBlbmRDaGlsZChtX2Fubm90YXRpb25T
dHlsZS5nZXQoKSk7Ci0gICAgICAgIGRvY3VtZW50LT5ib2R5T3JGcmFtZXNldCgpLT5hcHBlbmRD
aGlsZChtX2Fubm90YXRpb25Db250YWluZXIuZ2V0KCkpOworICAgICAgICBtX2Fubm90YXRpb25D
b250YWluZXItPmFwcGVuZENoaWxkKFdURjo6bW92ZShhbm5vdGF0aW9uU3R5bGVFbGVtZW50KSk7
CisgICAgICAgIGRvY3VtZW50LT5ib2R5T3JGcmFtZXNldCgpLT5hcHBlbmRDaGlsZCgqbV9hbm5v
dGF0aW9uQ29udGFpbmVyKTsKICAgICB9CiAKICAgICBtX2FjY2Vzc2liaWxpdHlPYmplY3QgPSBh
ZG9wdE5TKFtbV0tQREZQbHVnaW5BY2Nlc3NpYmlsaXR5T2JqZWN0IGFsbG9jXSBpbml0V2l0aFBE
RlBsdWdpbjp0aGlzXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvUERGL1BERlBsdWdpbkFubm90YXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkFubm90YXRpb24ubW0KaW5kZXggMzRiNTIyZC4uYTAy
OWQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9Q
REZQbHVnaW5Bbm5vdGF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QREYvUERGUGx1Z2luQW5ub3RhdGlvbi5tbQpAQCAtNzQsNyArNzQsNyBAQCB2b2lkIFBE
RlBsdWdpbkFubm90YXRpb246OmF0dGFjaChFbGVtZW50KiBwYXJlbnQpCiAKICAgICB1cGRhdGVH
ZW9tZXRyeSgpOwogCi0gICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKG1fZWxlbWVudCk7CisgICAg
bV9wYXJlbnQtPmFwcGVuZENoaWxkKCptX2VsZW1lbnQpOwogCiAgICAgLy8gRklYTUU6IFRoZSB0
ZXh0IGN1cnNvciBkb2Vzbid0IGJsaW5rIGFmdGVyIHRoaXMuIFdoeT8KICAgICBtX2VsZW1lbnQt
PmZvY3VzKCk7CkBAIC05Miw3ICs5Miw3IEBAIFBERlBsdWdpbkFubm90YXRpb246On5QREZQbHVn
aW5Bbm5vdGF0aW9uKCkKIAogICAgIG1fZXZlbnRMaXN0ZW5lci0+c2V0QW5ub3RhdGlvbigwKTsK
IAotICAgIG1fcGFyZW50LT5yZW1vdmVDaGlsZChlbGVtZW50KCkpOworICAgIG1fcGFyZW50LT5y
ZW1vdmVDaGlsZCgqZWxlbWVudCgpKTsKIH0KIAogdm9pZCBQREZQbHVnaW5Bbm5vdGF0aW9uOjp1
cGRhdGVHZW9tZXRyeSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24ubW0KaW5kZXgg
ZTFhOGU1OC4uNjIxZGMwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BERi9QREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbi5tbQpA
QCAtODMsMTQgKzgzLDE0IEBAIFBhc3NSZWZQdHI8RWxlbWVudD4gUERGUGx1Z2luQ2hvaWNlQW5u
b3RhdGlvbjo6Y3JlYXRlQW5ub3RhdGlvbkVsZW1lbnQoKQogICAgIE5TU3RyaW5nICpzZWxlY3Rl
ZENob2ljZSA9IGNob2ljZUFubm90YXRpb24uc3RyaW5nVmFsdWU7CiAKICAgICBmb3IgKE5TU3Ry
aW5nICpjaG9pY2UgaW4gY2hvaWNlcykgewotICAgICAgICBSZWZQdHI8RWxlbWVudD4gY2hvaWNl
T3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChvcHRpb25UYWcsIGZhbHNlKTsKKyAgICAg
ICAgUmVmPEVsZW1lbnQ+IGNob2ljZU9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQob3B0
aW9uVGFnLCBmYWxzZSk7CiAgICAgICAgIGNob2ljZU9wdGlvbi0+c2V0QXR0cmlidXRlKHZhbHVl
QXR0ciwgY2hvaWNlKTsKICAgICAgICAgY2hvaWNlT3B0aW9uLT5zZXRUZXh0Q29udGVudChjaG9p
Y2UsIEFTU0VSVF9OT19FWENFUFRJT04pOwogCiAgICAgICAgIGlmIChjaG9pY2UgPT0gc2VsZWN0
ZWRDaG9pY2UpCiAgICAgICAgICAgICBjaG9pY2VPcHRpb24tPnNldEF0dHJpYnV0ZShzZWxlY3Rl
ZEF0dHIsICJzZWxlY3RlZCIpOwogCi0gICAgICAgIHN0eWxlZEVsZW1lbnQtPmFwcGVuZENoaWxk
KGNob2ljZU9wdGlvbik7CisgICAgICAgIHN0eWxlZEVsZW1lbnQtPmFwcGVuZENoaWxkKFdURjo6
bW92ZShjaG9pY2VPcHRpb24pKTsKICAgICB9CiAKICAgICByZXR1cm4gZWxlbWVudDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260814</attachid>
            <date>2015-09-08 17:08:54 -0700</date>
            <delta_ts>2015-09-08 17:26:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148971-20150908170850.patch</filename>
            <type>text/plain</type>
            <size>238835</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWRkNmZlYmE0M2ZiZTA4
ZTM3MjkxNjc5YWI1Zjg0YThjNTM5OThiMi4uYmIyMjJkYTNjNDhmY2IzNTZmODUxNDM2MTg0OWVm
MGIzODVkMzkyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUwIEBACiAyMDE1LTA5LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgTm9kZS5hcHBlbmRDaGlsZChu
dWxsKSAvIHJlcGxhY2VDaGlsZChudWxsLCBudWxsKSAvIHJlbW92ZUNoaWxkKG51bGwpIC8gaW5z
ZXJ0QmVmb3JlKG51bGwsIHJlZikgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg5NzEKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzIyNTYwODgzPgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjI1NTkyMjU+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm9kZS5h
cHBlbmRDaGlsZChudWxsKSAvIHJlcGxhY2VDaGlsZChudWxsLCBudWxsKSAvIHJlbW92ZUNoaWxk
KG51bGwpCisgICAgICAgIGFuZCBpbnNlcnRCZWZvcmUobnVsbCwgcmVmKSBzaG91bGQgdGhyb3cg
YSBUeXBlRXJyb3IgaW5zdGVhZCBvZiBhCisgICAgICAgIE5vdEZvdW5kRXJyb3IsIGFzIHBlciB0
aGUgc3BlY2lmaWNhdGlvbjoKKyAgICAgICAgaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNu
b2RlCisKKyAgICAgICAgVGhlIHBhcmFtZXRlcnMgYXJlIG5vdCBudWxsYWJsZSBzbyB0aGUgV2Vi
IElETCBzcGVjaWZpY2F0aW9uIHNheXMKKyAgICAgICAgd2Ugc2hvdWxkIHRocm93IGEgVHlwZUVy
cm9yIGluIHRoaXMgY2FzZS4KKworICAgICAgICBUaGlzIHBhdGNoIG1vdmVzIHRoZSBudWxsLWNo
ZWNraW5nIGZyb20gQ29udGFpbmVyTm9kZSB0byB0aGUgbWV0aG9kcworICAgICAgICBvbiBOb2Rl
LiBUaGUgbnVsbC1jaGVja2luZyBpcyBzdXBwb3NlZCB0byBiZSBkb25lIGJ5IHRoZSBiaW5kaW5n
cyBjb2RlCisgICAgICAgIGJ1dCBvdXIgZ2VuZXJhdG9yIGN1cnJlbnRseSBkb2VzIG5vdCBzdXBw
b3J0IHRoaXMgc28gd2UgZG8gdGhlIG51bGwKKyAgICAgICAgY2hlY2tpbmcgYXMgY2xvc2UgdG8g
dGhlIGJpbmRpbmdzIGFzIHBvc3NpYmxlLiBUaGUgYmluZGluZ3MgY29kZSBpcworICAgICAgICBj
YWxsaW5nIHRoZSBtZXRob2RzIG9uIE5vZGUuIFRoaXMgYWxzbyBtYWtlcyBzdXJlIHdlIHRocm93
IGEgVHlwZUVycm9yCisgICAgICAgIGZvciBudWxsLWFyZ3VtZW50IHdoZW4gdGhlIE5vZGUgaXMg
bm90IGEgQ29udGFpbmVyTm9kZS4gRm9yIGUuZy4KKyAgICAgICAgVGV4dC5hcHBlbmRDaGlsZChu
dWxsKSBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3IgdG9vLgorCisgICAgICAgIFRoZSBtZXRob2Rz
IG9uIENvbnRhaW5lck5vZGUgbm93IHRha2UgcmVmZXJlbmNlcyBpbnN0ZWFhZCBvZiBwb2ludGVy
CisgICAgICAgIHBhcmFtZXRlcnMgbm93IHRoYXQgdGhlIG51bGwtY2hlY2tpbmcgaXMgZG9uZSBh
dCB0aGUgY2FsbCBzaXRlIGluCisgICAgICAgIE5vZGUuIFRoaXMgbGVhZCB0byBhIGxvdCBvZiBj
b2RlIHVwZGF0ZSBhcyB0aG9zZSBtZXRob2RzIGFyZSB1c2VkCisgICAgICAgIGEgbG90IHRocm91
Z2hvdXQgdGhlIGNvZGUgYmFzZS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGFscmVhZHkgY292
ZXJlZCBieSBwcmUtZXhpc3RpbmcgbGF5b3V0IHRlc3RzLgorCisgICAgICAgICogaHRtbC9IVE1M
VGFibGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUVsZW1lbnQ6OnNl
dENhcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRhYmxlRWxlbWVudDo6c2V0VEhlYWQp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRhYmxlRWxlbWVudDo6c2V0VEZvb3QpOgorICAgICAg
ICAqIGh0bWwvSFRNTFRhYmxlRWxlbWVudC5pZGw6CisgICAgICAgIERvIHRoZSB0eXBlIGNoZWNr
aW5nIGZvciBjYXB0aW9uL3RIZWFkL3RGb290IGF0dHJpYnV0ZSBzZXR0ZXJzIGF0CisgICAgICAg
IGJpbmRpbmdzIGxldmVsLiBUaGUgYmluZGluZ3MgY29kZSB3aWxsIG5vdCB0aHJvdyBhIFR5cGVF
cnJvciBmb3IgdXMKKyAgICAgICAgaWYgdGhlIEpTIHBhc3NlcyBhIHR5cGUgdGhhdCBpcyBub3Qg
YSBIVE1MVGFibGVDYXB0aW9uRWxlbWVudCAvCisgICAgICAgIEhUTUxUYWJsZVNlY3Rpb25FbGVt
ZW50LiBUaGlzIHdheSwgd2Ugbm93IHRoYXQgaWYgdGhlIGltcGxlbWVudGF0aW9uCisgICAgICAg
IGdldHMgbnVsbCwgaXQgaXMgYmVjYXVzZSB0aGUgSlMgcGFzc2VkIG51bGwuIFRoaXMgaXMgdmFs
aWQgYXMgdGhlc2UKKyAgICAgICAgYXR0cmlidXRlcyBhcmUgbnVsbGFibGUgaW4gdGhlIHNwZWNp
ZmljYXRpb246CisgICAgICAgIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdl
L3RhYmxlcy5odG1sI3RoZS10YWJsZS1lbGVtZW50CisKKzIwMTUtMDktMDggIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwogICAgICAgICBuZXcgQ29tbWVudCh1bmRlZmluZWQpIC8g
bmV3IFRleHQodW5kZWZpbmVkKSBzaG91bGQgdXNlIGRlZmF1bHQncyBlbXB0eSBzdHJpbmcKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODk3MwogICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMjI1NDgwNDI+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNjBhZGY3
MzJhYzg3YWJlMDQxMjI3MTNjZjM1OTE3MDgzMWRjOWUxNS4uZjgyNzk0Y2E1MDZjYzQyODM0NTA2
Y2IwNTZiY2RmMDZhNmNjNjJkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisy
MDE1LTA5LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTm9k
ZS5hcHBlbmRDaGlsZChudWxsKSAvIHJlcGxhY2VDaGlsZChudWxsLCBudWxsKSAvIHJlbW92ZUNo
aWxkKG51bGwpIC8gaW5zZXJ0QmVmb3JlKG51bGwsIHJlZikgc2hvdWxkIHRocm93IGEgVHlwZUVy
cm9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg5
NzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIyNTYwODgzPgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMjI1NTkyMjU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQ29udGFpbmVyTm9kZTo6YXBwZW5kQ2hpbGQoKSBub3cgdGFrZXMgYSBSZWY8Tm9k
ZT4mJiBwYXJhbWV0ZXIgc28gd2UKKyAgICAgICAgbmVlZCB0byB1cGRhdGUgdGhlIGNhbGwgc2l0
ZS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06CisgICAgICAgICgtW1dlYkZyYW1l
IF9kb2N1bWVudEZyYWdtZW50V2l0aE5vZGVzQXNQYXJhZ3JhcGhzOl0pOgorCiAyMDE1LTA5LTA3
ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjXSBEZWJ1Z1Jl
bGVhc2UgYnVpbGRzIHNob3VsZCBsaW5rIGFnYWluc3QgbGliV2ViS2l0U3lzdGVtSW50ZXJmYWNl
RWxDYXBpdGFuLmEgb24gMTAuMTEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBmZWM5YjhlMGM0NjUyMjhkMzc0NTc0
Zjc0NzVlZWVkMjNkZTU5YThkLi4wNGMxNDkwN2MzYmY3MjgwOGJjODI5M2Y2YmRhZWFkZjY5Zjgz
YjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTUtMDktMDggIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBOb2RlLmFwcGVuZENoaWxkKG51bGwpIC8g
cmVwbGFjZUNoaWxkKG51bGwsIG51bGwpIC8gcmVtb3ZlQ2hpbGQobnVsbCkgLyBpbnNlcnRCZWZv
cmUobnVsbCwgcmVmKSBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3IKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODk3MQorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMjI1NjA4ODM+CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjU1OTIyNT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb250YWluZXJOb2Rl
OjphcHBlbmRDaGlsZCgpIG5vdyB0YWtlcyBhIFJlZjxOb2RlPiYmIHBhcmFtZXRlciBzbyB3ZQor
ICAgICAgICBuZWVkIHRvIHVwZGF0ZSB0aGUgY2FsbCBzaXRlcy4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tOgorICAgICAgICAoV2ViS2l0OjpQREZQbHVn
aW46OlBERlBsdWdpbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVn
aW5Bbm5vdGF0aW9uLm1tOgorICAgICAgICAoV2ViS2l0OjpQREZQbHVnaW5Bbm5vdGF0aW9uOjph
dHRhY2gpOgorICAgICAgICAoV2ViS2l0OjpQREZQbHVnaW5Bbm5vdGF0aW9uOjp+UERGUGx1Z2lu
QW5ub3RhdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5D
aG9pY2VBbm5vdGF0aW9uLm1tOgorICAgICAgICAoV2ViS2l0OjpQREZQbHVnaW5DaG9pY2VBbm5v
dGF0aW9uOjpjcmVhdGVBbm5vdGF0aW9uRWxlbWVudCk6CisKIDIwMTUtMDktMDggIEpvc2VwaCBQ
ZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBS
ZW1vdmUgdW51c2VkIGZpbGU6IFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50LmgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBs
YWNlbWVudC5jcHAKaW5kZXggOGY5NmM5ZjAyOGM3MjhmZGEwM2JiNTBhN2VlOTZiYWZjM2RhOTA1
Yi4uYjQ0Y2ZkMjA4NTllNzRlMTMxN2E5MzRhMTVjNTc2Njk4YjdlMTdiOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBs
YWNlbWVudC5jcHAKQEAgLTgxLDkgKzgxLDkgQEAgYm9vbCBZb3VUdWJlUGx1Z2luUmVwbGFjZW1l
bnQ6Omluc3RhbGxSZXBsYWNlbWVudChTaGFkb3dSb290KiByb290KQogewogICAgIG1fZW1iZWRT
aGFkb3dFbGVtZW50ID0gWW91VHViZUVtYmVkU2hhZG93RWxlbWVudDo6Y3JlYXRlKG1fcGFyZW50
RWxlbWVudC0+ZG9jdW1lbnQoKSk7CiAKLSAgICByb290LT5hcHBlbmRDaGlsZChtX2VtYmVkU2hh
ZG93RWxlbWVudC5nZXQoKSk7CisgICAgcm9vdC0+YXBwZW5kQ2hpbGQoKm1fZW1iZWRTaGFkb3dF
bGVtZW50KTsKIAotICAgIFJlZlB0cjxIVE1MSUZyYW1lRWxlbWVudD4gaWZyYW1lRWxlbWVudCA9
IEhUTUxJRnJhbWVFbGVtZW50OjpjcmVhdGUoSFRNTE5hbWVzOjppZnJhbWVUYWcsIG1fcGFyZW50
RWxlbWVudC0+ZG9jdW1lbnQoKSk7CisgICAgUmVmPEhUTUxJRnJhbWVFbGVtZW50PiBpZnJhbWVF
bGVtZW50ID0gSFRNTElGcmFtZUVsZW1lbnQ6OmNyZWF0ZShIVE1MTmFtZXM6OmlmcmFtZVRhZywg
bV9wYXJlbnRFbGVtZW50LT5kb2N1bWVudCgpKTsKICAgICBpZiAobV9hdHRyaWJ1dGVzLmNvbnRh
aW5zKCJ3aWR0aCIpKQogICAgICAgICBpZnJhbWVFbGVtZW50LT5zZXRBdHRyaWJ1dGUoSFRNTE5h
bWVzOjp3aWR0aEF0dHIsIEF0b21pY1N0cmluZygiMTAwJSIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKICAgICAKQEAgLTk4LDcgKzk4LDcgQEAgYm9vbCBZb3VUdWJlUGx1
Z2luUmVwbGFjZW1lbnQ6Omluc3RhbGxSZXBsYWNlbWVudChTaGFkb3dSb290KiByb290KQogICAg
IAogICAgIC8vIERpc2FibGUgZnJhbWUgZmxhdHRlbmluZyBmb3IgdGhpcyBpZnJhbWUuCiAgICAg
aWZyYW1lRWxlbWVudC0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6c2Nyb2xsaW5nQXR0ciwgQXRv
bWljU3RyaW5nKCJubyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAg
ICBtX2VtYmVkU2hhZG93RWxlbWVudC0+YXBwZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAg
bV9lbWJlZFNoYWRvd0VsZW1lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShpZnJhbWVFbGVtZW50
KSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9BdHRyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmNwcAppbmRleCAxODU3MGYxZDg3
NDMxYTFmM2E0NGRhMDNlNThhMmVjNWZmNzFhNzhjLi5hYzdiNjZmOTk3MDVkODk5ZWVjZTNjMjg5
NGY4OWUxZjgwOWQxNWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwCkBAIC0xMzgsMTEgKzEzOCwxMSBAQCB2
b2lkIEF0dHI6OnNldE5vZGVWYWx1ZShjb25zdCBTdHJpbmcmIHYsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogICAgIHNldFZhbHVlKHYsIGVjKTsKIH0KIAotUmVmUHRyPE5vZGU+IEF0dHI6OmNsb25lTm9k
ZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikKK1Jl
ZjxOb2RlPiBBdHRyOjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQs
IENsb25pbmdPcGVyYXRpb24pCiB7Ci0gICAgUmVmUHRyPEF0dHI+IGNsb25lID0gYWRvcHRSZWYo
bmV3IEF0dHIodGFyZ2V0RG9jdW1lbnQsIHF1YWxpZmllZE5hbWUoKSwgdmFsdWUoKSkpOwotICAg
IGNsb25lQ2hpbGROb2RlcyhjbG9uZS5nZXQoKSk7Ci0gICAgcmV0dXJuIGNsb25lLnJlbGVhc2Uo
KTsKKyAgICBSZWY8QXR0cj4gY2xvbmUgPSBhZG9wdFJlZigqbmV3IEF0dHIodGFyZ2V0RG9jdW1l
bnQsIHF1YWxpZmllZE5hbWUoKSwgdmFsdWUoKSkpOworICAgIGNsb25lQ2hpbGROb2RlcyhjbG9u
ZSk7CisgICAgcmV0dXJuIFdURjo6bW92ZShjbG9uZSk7CiB9CiAKIC8vIERPTSBTZWN0aW9uIDEu
MS4xCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0F0dHIuaAppbmRleCBjN2E5NGY5OGYwYmZiNTdlYjBjM2FiNTE3OTg4YTQ0ODBiMzQ5
MDEwLi4xMjRjNmQ3YTJhYTI4NjgzMGZjYmEyOTYyODg4OGI3MjAyMjk5Mjg2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRy
LmgKQEAgLTgwLDcgKzgwLDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVW
YWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHZhbHVlKCk7IH0KICAgICB2aXJ0dWFsIHZv
aWQgc2V0Tm9kZVZhbHVlKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsK
LSAgICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENs
b25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNsb25lTm9k
ZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CiAKICAgICB2
aXJ0dWFsIGJvb2wgaXNBdHRyaWJ1dGVOb2RlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1
ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlKSBjb25zdCBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DREFUQVNlY3Rpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0NEQVRBU2VjdGlvbi5jcHAKaW5kZXggYzU5YmYxZTk1OGZk
YTQ1MGFlOTJkZjIyYjc0MDlmZmI5NjhhMGJlYi4uYWZkNzMyMjcwZjEyYzZkOGRjZmZiOGZmODI3
YTEzOWNjMzFhMzFlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NEQVRBU2VjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NEQVRBU2VjdGlvbi5jcHAKQEAgLTQ2LDcg
KzQ2LDcgQEAgTm9kZTo6Tm9kZVR5cGUgQ0RBVEFTZWN0aW9uOjpub2RlVHlwZSgpIGNvbnN0CiAg
ICAgcmV0dXJuIENEQVRBX1NFQ1RJT05fTk9ERTsKIH0KIAotUmVmUHRyPE5vZGU+IENEQVRBU2Vj
dGlvbjo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5n
T3BlcmF0aW9uKQorUmVmPE5vZGU+IENEQVRBU2VjdGlvbjo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9j
dW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uKQogewogICAgIHJldHVybiBj
cmVhdGUodGFyZ2V0RG9jdW1lbnQsIGRhdGEoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vQ0RBVEFTZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ0RBVEFTZWN0aW9u
LmgKaW5kZXggYmY1YTYxYzYyNjg1YjIzNzA1ZDY0YjRjZTM5NDZhNjM3ODQ5MjNhNy4uZDZiOTkz
N2RmYzc1YTU4ZTk2ZWFiNTJkZjI2YWQ5YjRiN2RlZjI2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0NEQVRBU2VjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DREFUQVNl
Y3Rpb24uaApAQCAtMzYsNyArMzYsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBTdHJpbmcg
bm9kZU5hbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIE5vZGVUeXBlIG5vZGVUeXBl
KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZWZQdHI8Tm9kZT4gY2xvbmVOb2RlSW50
ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24p
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlKSBj
b25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFJlZjxUZXh0PiB2aXJ0dWFsQ3JlYXRlKGNvbnN0
IFN0cmluZyYpIG92ZXJyaWRlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9D
b21tZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21tZW50LmNwcAppbmRleCA0Yzc0YWFm
NjNhZDkwNTNjNmFiZTU5NTU2MjMxODVkMjdkOTg5ZDZiLi40MTI1YTZlYWUxYWRmOWE4Zjg2NmZl
YjU0MjlmNGYzZDQyMGI3MjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbW1lbnQuY3BwCkBAIC00Niw3ICs0Niw3
IEBAIE5vZGU6Ok5vZGVUeXBlIENvbW1lbnQ6Om5vZGVUeXBlKCkgY29uc3QKICAgICByZXR1cm4g
Q09NTUVOVF9OT0RFOwogfQogCi1SZWZQdHI8Tm9kZT4gQ29tbWVudDo6Y2xvbmVOb2RlSW50ZXJu
YWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uKQorUmVmPE5vZGU+
IENvbW1lbnQ6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xv
bmluZ09wZXJhdGlvbikKIHsKICAgICByZXR1cm4gY3JlYXRlKHRhcmdldERvY3VtZW50LCBkYXRh
KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Db21tZW50LmgKaW5kZXggZmNhYzYwYTMzZTVlMzBhMWU1OWMxZGM5ZWYz
YjYzOTRhZGU3Yjc1OS4uMTU2NjMyMzMyYTIwNjhmM2E5Yjg1MjZjYmNjNzQ2NTQ4NjE1OTljMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vQ29tbWVudC5oCkBAIC0zNiw3ICszNiw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0
dWFsIFN0cmluZyBub2RlTmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgTm9kZVR5
cGUgbm9kZVR5cGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBj
bG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmlu
Z09wZXJhdGlvbikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGNoaWxkVHlwZUFsbG93ZWQo
Tm9kZVR5cGUpIGNvbnN0IG92ZXJyaWRlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5v
ZGUuY3BwCmluZGV4IGYwNjMxYjZiZGQ0ZGE3ZGEyZGE0YmQ0ZmE5OTRjMTljZjk5MGMzZDUuLjJj
M2I1ZWQzMTlmNjU4ODFlMWMzZWE4OGIxMjQ1YmJhMDBlN2M4MmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Q29udGFpbmVyTm9kZS5jcHAKQEAgLTc2LDcgKzc2LDcgQEAgc3RhdGljIHZvaWQgY29sbGVjdENo
aWxkcmVuQW5kUmVtb3ZlRnJvbU9sZFBhcmVudChOb2RlJiBub2RlLCBOb2RlVmVjdG9yJiBub2Rl
cywKICAgICBpZiAoIWlzPERvY3VtZW50RnJhZ21lbnQ+KG5vZGUpKSB7CiAgICAgICAgIG5vZGVz
LmFwcGVuZChub2RlKTsKICAgICAgICAgaWYgKENvbnRhaW5lck5vZGUqIG9sZFBhcmVudCA9IG5v
ZGUucGFyZW50Tm9kZSgpKQotICAgICAgICAgICAgb2xkUGFyZW50LT5yZW1vdmVDaGlsZCgmbm9k
ZSwgZWMpOworICAgICAgICAgICAgb2xkUGFyZW50LT5yZW1vdmVDaGlsZChub2RlLCBlYyk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE0NiwxMyArMTQ2LDEzIEBAIENvbnRhaW5lck5v
ZGU6On5Db250YWluZXJOb2RlKCkKICAgICByZW1vdmVEZXRhY2hlZENoaWxkcmVuKCk7CiB9CiAK
LXN0YXRpYyBpbmxpbmUgYm9vbCBpc0NoaWxkVHlwZUFsbG93ZWQoQ29udGFpbmVyTm9kZSogbmV3
UGFyZW50LCBOb2RlKiBjaGlsZCkKK3N0YXRpYyBpbmxpbmUgYm9vbCBpc0NoaWxkVHlwZUFsbG93
ZWQoQ29udGFpbmVyTm9kZSYgbmV3UGFyZW50LCBOb2RlJiBjaGlsZCkKIHsKLSAgICBpZiAoIWNo
aWxkLT5pc0RvY3VtZW50RnJhZ21lbnQoKSkKLSAgICAgICAgcmV0dXJuIG5ld1BhcmVudC0+Y2hp
bGRUeXBlQWxsb3dlZChjaGlsZC0+bm9kZVR5cGUoKSk7CisgICAgaWYgKCFjaGlsZC5pc0RvY3Vt
ZW50RnJhZ21lbnQoKSkKKyAgICAgICAgcmV0dXJuIG5ld1BhcmVudC5jaGlsZFR5cGVBbGxvd2Vk
KGNoaWxkLm5vZGVUeXBlKCkpOwogCi0gICAgZm9yIChOb2RlKiBub2RlID0gY2hpbGQtPmZpcnN0
Q2hpbGQoKTsgbm9kZTsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpIHsKLSAgICAgICAgaWYg
KCFuZXdQYXJlbnQtPmNoaWxkVHlwZUFsbG93ZWQobm9kZS0+bm9kZVR5cGUoKSkpCisgICAgZm9y
IChOb2RlKiBub2RlID0gY2hpbGQuZmlyc3RDaGlsZCgpOyBub2RlOyBub2RlID0gbm9kZS0+bmV4
dFNpYmxpbmcoKSkgeworICAgICAgICBpZiAoIW5ld1BhcmVudC5jaGlsZFR5cGVBbGxvd2VkKG5v
ZGUtPm5vZGVUeXBlKCkpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICBy
ZXR1cm4gdHJ1ZTsKQEAgLTE2OSwyMyArMTY5LDE5IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0lu
VGVtcGxhdGVDb250ZW50KGNvbnN0IE5vZGUqIG5vZGUpCiAjZW5kaWYKIH0KIAotc3RhdGljIGlu
bGluZSBib29sIGNvbnRhaW5zQ29uc2lkZXJpbmdIb3N0RWxlbWVudHMoY29uc3QgTm9kZSogbmV3
Q2hpbGQsIGNvbnN0IE5vZGUqIG5ld1BhcmVudCkKK3N0YXRpYyBpbmxpbmUgYm9vbCBjb250YWlu
c0NvbnNpZGVyaW5nSG9zdEVsZW1lbnRzKGNvbnN0IE5vZGUmIG5ld0NoaWxkLCBjb25zdCBOb2Rl
JiBuZXdQYXJlbnQpCiB7Ci0gICAgcmV0dXJuIChuZXdQYXJlbnQtPmlzSW5TaGFkb3dUcmVlKCkg
fHwgaXNJblRlbXBsYXRlQ29udGVudChuZXdQYXJlbnQpKQotICAgICAgICA/IG5ld0NoaWxkLT5j
b250YWluc0luY2x1ZGluZ0hvc3RFbGVtZW50cyhuZXdQYXJlbnQpCi0gICAgICAgIDogbmV3Q2hp
bGQtPmNvbnRhaW5zKG5ld1BhcmVudCk7CisgICAgcmV0dXJuIChuZXdQYXJlbnQuaXNJblNoYWRv
d1RyZWUoKSB8fCBpc0luVGVtcGxhdGVDb250ZW50KCZuZXdQYXJlbnQpKQorICAgICAgICA/IG5l
d0NoaWxkLmNvbnRhaW5zSW5jbHVkaW5nSG9zdEVsZW1lbnRzKCZuZXdQYXJlbnQpCisgICAgICAg
IDogbmV3Q2hpbGQuY29udGFpbnMoJm5ld1BhcmVudCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgRXhj
ZXB0aW9uQ29kZSBjaGVja0FjY2VwdENoaWxkKENvbnRhaW5lck5vZGUqIG5ld1BhcmVudCwgTm9k
ZSogbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkKQorc3RhdGljIGlubGluZSBFeGNlcHRpb25Db2Rl
IGNoZWNrQWNjZXB0Q2hpbGQoQ29udGFpbmVyTm9kZSYgbmV3UGFyZW50LCBOb2RlJiBuZXdDaGls
ZCwgTm9kZSogb2xkQ2hpbGQpCiB7Ci0gICAgLy8gTm90IG1lbnRpb25lZCBpbiBzcGVjOiB0aHJv
dyBOT1RfRk9VTkRfRVJSIGlmIG5ld0NoaWxkIGlzIG51bGwKLSAgICBpZiAoIW5ld0NoaWxkKQot
ICAgICAgICByZXR1cm4gTk9UX0ZPVU5EX0VSUjsKLQogICAgIC8vIFVzZSBjb21tb24gY2FzZSBm
YXN0IHBhdGggaWYgcG9zc2libGUuCi0gICAgaWYgKChuZXdDaGlsZC0+aXNFbGVtZW50Tm9kZSgp
IHx8IG5ld0NoaWxkLT5pc1RleHROb2RlKCkpICYmIG5ld1BhcmVudC0+aXNFbGVtZW50Tm9kZSgp
KSB7Ci0gICAgICAgIEFTU0VSVCghbmV3UGFyZW50LT5pc1JlYWRPbmx5Tm9kZSgpKTsKLSAgICAg
ICAgQVNTRVJUKCFuZXdQYXJlbnQtPmlzRG9jdW1lbnRUeXBlTm9kZSgpKTsKKyAgICBpZiAoKG5l
d0NoaWxkLmlzRWxlbWVudE5vZGUoKSB8fCBuZXdDaGlsZC5pc1RleHROb2RlKCkpICYmIG5ld1Bh
cmVudC5pc0VsZW1lbnROb2RlKCkpIHsKKyAgICAgICAgQVNTRVJUKCFuZXdQYXJlbnQuaXNSZWFk
T25seU5vZGUoKSk7CisgICAgICAgIEFTU0VSVCghbmV3UGFyZW50LmlzRG9jdW1lbnRUeXBlTm9k
ZSgpKTsKICAgICAgICAgQVNTRVJUKGlzQ2hpbGRUeXBlQWxsb3dlZChuZXdQYXJlbnQsIG5ld0No
aWxkKSk7CiAgICAgICAgIGlmIChjb250YWluc0NvbnNpZGVyaW5nSG9zdEVsZW1lbnRzKG5ld0No
aWxkLCBuZXdQYXJlbnQpKQogICAgICAgICAgICAgcmV0dXJuIEhJRVJBUkNIWV9SRVFVRVNUX0VS
UjsKQEAgLTE5MywxNyArMTg5LDE3IEBAIHN0YXRpYyBpbmxpbmUgRXhjZXB0aW9uQ29kZSBjaGVj
a0FjY2VwdENoaWxkKENvbnRhaW5lck5vZGUqIG5ld1BhcmVudCwgTm9kZSogbmV3CiAgICAgfQog
CiAgICAgLy8gVGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuLCBidXQgYWxzbyBwcm90ZWN0IHJlbGVh
c2UgYnVpbGRzIGZyb20gdHJlZSBjb3JydXB0aW9uLgotICAgIEFTU0VSVCghbmV3Q2hpbGQtPmlz
UHNldWRvRWxlbWVudCgpKTsKLSAgICBpZiAobmV3Q2hpbGQtPmlzUHNldWRvRWxlbWVudCgpKQor
ICAgIEFTU0VSVCghbmV3Q2hpbGQuaXNQc2V1ZG9FbGVtZW50KCkpOworICAgIGlmIChuZXdDaGls
ZC5pc1BzZXVkb0VsZW1lbnQoKSkKICAgICAgICAgcmV0dXJuIEhJRVJBUkNIWV9SRVFVRVNUX0VS
UjsKIAotICAgIGlmIChuZXdQYXJlbnQtPmlzUmVhZE9ubHlOb2RlKCkpCisgICAgaWYgKG5ld1Bh
cmVudC5pc1JlYWRPbmx5Tm9kZSgpKQogICAgICAgICByZXR1cm4gTk9fTU9ESUZJQ0FUSU9OX0FM
TE9XRURfRVJSOwogICAgIGlmIChjb250YWluc0NvbnNpZGVyaW5nSG9zdEVsZW1lbnRzKG5ld0No
aWxkLCBuZXdQYXJlbnQpKQogICAgICAgICByZXR1cm4gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwog
Ci0gICAgaWYgKG9sZENoaWxkICYmIGlzPERvY3VtZW50PigqbmV3UGFyZW50KSkgewotICAgICAg
ICBpZiAoIWRvd25jYXN0PERvY3VtZW50PigqbmV3UGFyZW50KS5jYW5SZXBsYWNlQ2hpbGQobmV3
Q2hpbGQsIG9sZENoaWxkKSkKKyAgICBpZiAob2xkQ2hpbGQgJiYgaXM8RG9jdW1lbnQ+KG5ld1Bh
cmVudCkpIHsKKyAgICAgICAgaWYgKCFkb3duY2FzdDxEb2N1bWVudD4obmV3UGFyZW50KS5jYW5S
ZXBsYWNlQ2hpbGQobmV3Q2hpbGQsICpvbGRDaGlsZCkpCiAgICAgICAgICAgICByZXR1cm4gSElF
UkFSQ0hZX1JFUVVFU1RfRVJSOwogICAgIH0gZWxzZSBpZiAoIWlzQ2hpbGRUeXBlQWxsb3dlZChu
ZXdQYXJlbnQsIG5ld0NoaWxkKSkKICAgICAgICAgcmV0dXJuIEhJRVJBUkNIWV9SRVFVRVNUX0VS
UjsKQEAgLTIxMSwxMiArMjA3LDEyIEBAIHN0YXRpYyBpbmxpbmUgRXhjZXB0aW9uQ29kZSBjaGVj
a0FjY2VwdENoaWxkKENvbnRhaW5lck5vZGUqIG5ld1BhcmVudCwgTm9kZSogbmV3CiAgICAgcmV0
dXJuIDA7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBjaGVja0FjY2VwdENoaWxkR3VhcmFudGVl
ZE5vZGVUeXBlcyhDb250YWluZXJOb2RlKiBuZXdQYXJlbnQsIE5vZGUqIG5ld0NoaWxkLCBFeGNl
cHRpb25Db2RlJiBlYykKK3N0YXRpYyBpbmxpbmUgYm9vbCBjaGVja0FjY2VwdENoaWxkR3VhcmFu
dGVlZE5vZGVUeXBlcyhDb250YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5vZGUmIG5ld0NoaWxkLCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBBU1NFUlQoIW5ld1BhcmVudC0+aXNSZWFkT25seU5v
ZGUoKSk7Ci0gICAgQVNTRVJUKCFuZXdQYXJlbnQtPmlzRG9jdW1lbnRUeXBlTm9kZSgpKTsKKyAg
ICBBU1NFUlQoIW5ld1BhcmVudC5pc1JlYWRPbmx5Tm9kZSgpKTsKKyAgICBBU1NFUlQoIW5ld1Bh
cmVudC5pc0RvY3VtZW50VHlwZU5vZGUoKSk7CiAgICAgQVNTRVJUKGlzQ2hpbGRUeXBlQWxsb3dl
ZChuZXdQYXJlbnQsIG5ld0NoaWxkKSk7Ci0gICAgaWYgKG5ld0NoaWxkLT5jb250YWlucyhuZXdQ
YXJlbnQpKSB7CisgICAgaWYgKG5ld0NoaWxkLmNvbnRhaW5zKCZuZXdQYXJlbnQpKSB7CiAgICAg
ICAgIGVjID0gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQpAQCAtMjI0LDI1ICsyMjAsMjUgQEAgc3RhdGljIGlubGluZSBib29sIGNoZWNrQWNjZXB0
Q2hpbGRHdWFyYW50ZWVkTm9kZVR5cGVzKENvbnRhaW5lck5vZGUqIG5ld1BhcmVudCwKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIGNoZWNrQWRkQ2hpbGQoQ29udGFp
bmVyTm9kZSogbmV3UGFyZW50LCBOb2RlKiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCitz
dGF0aWMgaW5saW5lIGJvb2wgY2hlY2tBZGRDaGlsZChDb250YWluZXJOb2RlJiBuZXdQYXJlbnQs
IE5vZGUmIG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBlYyA9IGNoZWNrQWNj
ZXB0Q2hpbGQobmV3UGFyZW50LCBuZXdDaGlsZCwgMCk7CisgICAgZWMgPSBjaGVja0FjY2VwdENo
aWxkKG5ld1BhcmVudCwgbmV3Q2hpbGQsIG51bGxwdHIpOwogICAgIGlmIChlYykKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9v
bCBjaGVja1JlcGxhY2VDaGlsZChDb250YWluZXJOb2RlKiBuZXdQYXJlbnQsIE5vZGUqIG5ld0No
aWxkLCBOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCitzdGF0aWMgaW5saW5lIGJv
b2wgY2hlY2tSZXBsYWNlQ2hpbGQoQ29udGFpbmVyTm9kZSYgbmV3UGFyZW50LCBOb2RlJiBuZXdD
aGlsZCwgTm9kZSYgb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIGVjID0gY2hl
Y2tBY2NlcHRDaGlsZChuZXdQYXJlbnQsIG5ld0NoaWxkLCBvbGRDaGlsZCk7CisgICAgZWMgPSBj
aGVja0FjY2VwdENoaWxkKG5ld1BhcmVudCwgbmV3Q2hpbGQsICZvbGRDaGlsZCk7CiAgICAgaWYg
KGVjKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9v
bCBDb250YWluZXJOb2RlOjppbnNlcnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwg
Tm9kZSogcmVmQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQorYm9vbCBDb250YWluZXJOb2RlOjpp
bnNlcnRCZWZvcmUoUmVmPE5vZGU+JiYgbmV3Q2hpbGQsIE5vZGUqIHJlZkNoaWxkLCBFeGNlcHRp
b25Db2RlJiBlYykKIHsKICAgICAvLyBDaGVjayB0aGF0IHRoaXMgbm9kZSBpcyBub3QgImZsb2F0
aW5nIi4KICAgICAvLyBJZiBpdCBpcywgaXQgY2FuIGJlIGRlbGV0ZWQgYXMgYSBzaWRlIGVmZmVj
dCBvZiBzZW5kaW5nIG11dGF0aW9uIGV2ZW50cy4KQEAgLTI1NCwxMCArMjUwLDEwIEBAIGJvb2wg
Q29udGFpbmVyTm9kZTo6aW5zZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5v
ZGUqIHJlZkNoaWxkLCBFeGNlCiAKICAgICAvLyBpbnNlcnRCZWZvcmUobm9kZSwgMCkgaXMgZXF1
aXZhbGVudCB0byBhcHBlbmRDaGlsZChub2RlKQogICAgIGlmICghcmVmQ2hpbGQpCi0gICAgICAg
IHJldHVybiBhcHBlbmRDaGlsZChuZXdDaGlsZCwgZWMpOworICAgICAgICByZXR1cm4gYXBwZW5k
Q2hpbGQoV1RGOjptb3ZlKG5ld0NoaWxkKSwgZWMpOwogCiAgICAgLy8gTWFrZSBzdXJlIGFkZGlu
ZyB0aGUgbmV3IGNoaWxkIGlzIE9LLgotICAgIGlmICghY2hlY2tBZGRDaGlsZCh0aGlzLCBuZXdD
aGlsZC5nZXQoKSwgZWMpKQorICAgIGlmICghY2hlY2tBZGRDaGlsZCgqdGhpcywgbmV3Q2hpbGQs
IGVjKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gTk9UX0ZPVU5EX0VSUjogUmFp
c2VkIGlmIHJlZkNoaWxkIGlzIG5vdCBhIGNoaWxkIG9mIHRoaXMgbm9kZQpAQCAtMjY2LDIwICsy
NjIsMjAgQEAgYm9vbCBDb250YWluZXJOb2RlOjppbnNlcnRCZWZvcmUoUGFzc1JlZlB0cjxOb2Rl
PiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hpbGQsIEV4Y2UKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KIAotICAgIGlmIChyZWZDaGlsZC0+cHJldmlvdXNTaWJsaW5nKCkgPT0gbmV3Q2hpbGQg
fHwgcmVmQ2hpbGQgPT0gbmV3Q2hpbGQpIC8vIG5vdGhpbmcgdG8gZG8KKyAgICBpZiAocmVmQ2hp
bGQtPnByZXZpb3VzU2libGluZygpID09IG5ld0NoaWxkLnB0cigpIHx8IHJlZkNoaWxkID09IG5l
d0NoaWxkLnB0cigpKSAvLyBub3RoaW5nIHRvIGRvCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAg
ICAgUmVmPE5vZGU+IG5leHQoKnJlZkNoaWxkKTsKIAogICAgIE5vZGVWZWN0b3IgdGFyZ2V0czsK
LSAgICBjb2xsZWN0Q2hpbGRyZW5BbmRSZW1vdmVGcm9tT2xkUGFyZW50KCpuZXdDaGlsZC5nZXQo
KSwgdGFyZ2V0cywgZWMpOworICAgIGNvbGxlY3RDaGlsZHJlbkFuZFJlbW92ZUZyb21PbGRQYXJl
bnQobmV3Q2hpbGQsIHRhcmdldHMsIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICBpZiAodGFyZ2V0cy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB0cnVlOwog
CiAgICAgLy8gV2UgbmVlZCB0aGlzIGV4dHJhIGNoZWNrIGJlY2F1c2UgY29sbGVjdENoaWxkcmVu
QW5kUmVtb3ZlRnJvbU9sZFBhcmVudCgpIGNhbiBmaXJlIG11dGF0aW9uIGV2ZW50cy4KLSAgICBp
ZiAoIWNoZWNrQWNjZXB0Q2hpbGRHdWFyYW50ZWVkTm9kZVR5cGVzKHRoaXMsIG5ld0NoaWxkLmdl
dCgpLCBlYykpCisgICAgaWYgKCFjaGVja0FjY2VwdENoaWxkR3VhcmFudGVlZE5vZGVUeXBlcygq
dGhpcywgbmV3Q2hpbGQsIGVjKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsSW5zZXJ0RE9NTm9kZShkb2N1bWVudCgpLCAqdGhpcyk7
CkBAIC0zOTAsNyArMzg2LDcgQEAgdm9pZCBDb250YWluZXJOb2RlOjpwYXJzZXJJbnNlcnRCZWZv
cmUoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogbmV4dENoaWwKICAgICBuZXdDaGls
ZC0+c2V0TmVlZHNTdHlsZVJlY2FsYyhSZWNvbnN0cnVjdFJlbmRlclRyZWUpOwogfQogCi1ib29s
IENvbnRhaW5lck5vZGU6OnJlcGxhY2VDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBO
b2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCitib29sIENvbnRhaW5lck5vZGU6OnJl
cGxhY2VDaGlsZChSZWY8Tm9kZT4mJiBuZXdDaGlsZCwgTm9kZSYgb2xkQ2hpbGQsIEV4Y2VwdGlv
bkNvZGUmIGVjKQogewogICAgIC8vIENoZWNrIHRoYXQgdGhpcyBub2RlIGlzIG5vdCAiZmxvYXRp
bmciLgogICAgIC8vIElmIGl0IGlzLCBpdCBjYW4gYmUgZGVsZXRlZCBhcyBhIHNpZGUgZWZmZWN0
IG9mIHNlbmRpbmcgbXV0YXRpb24gZXZlbnRzLgpAQCAtNDAwLDQ4ICszOTYsNDMgQEAgYm9vbCBD
b250YWluZXJOb2RlOjpyZXBsYWNlQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9k
ZSogb2xkQ2hpbGQsIEV4Y2UKIAogICAgIGVjID0gMDsKIAotICAgIGlmIChvbGRDaGlsZCA9PSBu
ZXdDaGlsZCkgLy8gbm90aGluZyB0byBkbworICAgIGlmICgmb2xkQ2hpbGQgPT0gbmV3Q2hpbGQu
cHRyKCkpIC8vIG5vdGhpbmcgdG8gZG8KICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBpZiAo
IW9sZENoaWxkKSB7Ci0gICAgICAgIGVjID0gTk9UX0ZPVU5EX0VSUjsKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIH0KLQogICAgIC8vIE1ha2Ugc3VyZSByZXBsYWNpbmcgdGhlIG9sZCBjaGls
ZCB3aXRoIHRoZSBuZXcgaXMgb2sKLSAgICBpZiAoIWNoZWNrUmVwbGFjZUNoaWxkKHRoaXMsIG5l
d0NoaWxkLmdldCgpLCBvbGRDaGlsZCwgZWMpKQorICAgIGlmICghY2hlY2tSZXBsYWNlQ2hpbGQo
KnRoaXMsIG5ld0NoaWxkLCBvbGRDaGlsZCwgZWMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICAvLyBOT1RfRk9VTkRfRVJSOiBSYWlzZWQgaWYgb2xkQ2hpbGQgaXMgbm90IGEgY2hpbGQg
b2YgdGhpcyBub2RlLgotICAgIGlmIChvbGRDaGlsZC0+cGFyZW50Tm9kZSgpICE9IHRoaXMpIHsK
KyAgICBpZiAob2xkQ2hpbGQucGFyZW50Tm9kZSgpICE9IHRoaXMpIHsKICAgICAgICAgZWMgPSBO
T1RfRk9VTkRfRVJSOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCiAgICAgQ2hpbGRM
aXN0TXV0YXRpb25TY29wZSBtdXRhdGlvbigqdGhpcyk7CiAKLSAgICBSZWZQdHI8Tm9kZT4gbmV4
dCA9IG9sZENoaWxkLT5uZXh0U2libGluZygpOworICAgIFJlZlB0cjxOb2RlPiBuZXh0ID0gb2xk
Q2hpbGQubmV4dFNpYmxpbmcoKTsKIAogICAgIC8vIFJlbW92ZSB0aGUgbm9kZSB3ZSdyZSByZXBs
YWNpbmcKLSAgICBSZWY8Tm9kZT4gcmVtb3ZlZENoaWxkKCpvbGRDaGlsZCk7CisgICAgUmVmPE5v
ZGU+IHJlbW92ZWRDaGlsZChvbGRDaGlsZCk7CiAgICAgcmVtb3ZlQ2hpbGQob2xkQ2hpbGQsIGVj
KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChuZXh0ICYm
IChuZXh0LT5wcmV2aW91c1NpYmxpbmcoKSA9PSBuZXdDaGlsZCB8fCBuZXh0ID09IG5ld0NoaWxk
KSkgLy8gbm90aGluZyB0byBkbworICAgIGlmIChuZXh0ICYmIChuZXh0LT5wcmV2aW91c1NpYmxp
bmcoKSA9PSBuZXdDaGlsZC5wdHIoKSB8fCBuZXh0ID09IG5ld0NoaWxkLnB0cigpKSkgLy8gbm90
aGluZyB0byBkbwogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIC8vIERvZXMgdGhpcyBvbmUg
bW9yZSB0aW1lIGJlY2F1c2UgcmVtb3ZlQ2hpbGQoKSBmaXJlcyBhIE11dGF0aW9uRXZlbnQuCi0g
ICAgaWYgKCFjaGVja1JlcGxhY2VDaGlsZCh0aGlzLCBuZXdDaGlsZC5nZXQoKSwgb2xkQ2hpbGQs
IGVjKSkKKyAgICBpZiAoIWNoZWNrUmVwbGFjZUNoaWxkKCp0aGlzLCBuZXdDaGlsZCwgb2xkQ2hp
bGQsIGVjKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgTm9kZVZlY3RvciB0YXJnZXRz
OwotICAgIGNvbGxlY3RDaGlsZHJlbkFuZFJlbW92ZUZyb21PbGRQYXJlbnQoKm5ld0NoaWxkLmdl
dCgpLCB0YXJnZXRzLCBlYyk7CisgICAgY29sbGVjdENoaWxkcmVuQW5kUmVtb3ZlRnJvbU9sZFBh
cmVudChuZXdDaGlsZCwgdGFyZ2V0cywgZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgLy8gRG9lcyB0aGlzIHlldCBhbm90aGVyIGNoZWNrIGJlY2F1c2UgY29s
bGVjdENoaWxkcmVuQW5kUmVtb3ZlRnJvbU9sZFBhcmVudCgpIGZpcmVzIGEgTXV0YXRpb25FdmVu
dC4KLSAgICBpZiAoIWNoZWNrUmVwbGFjZUNoaWxkKHRoaXMsIG5ld0NoaWxkLmdldCgpLCBvbGRD
aGlsZCwgZWMpKQorICAgIGlmICghY2hlY2tSZXBsYWNlQ2hpbGQoKnRoaXMsIG5ld0NoaWxkLCBv
bGRDaGlsZCwgZWMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OndpbGxJbnNlcnRET01Ob2RlKGRvY3VtZW50KCksICp0aGlzKTsKQEAgLTUx
NSw3ICs1MDYsNyBAQCB2b2lkIENvbnRhaW5lck5vZGU6OmRpc2Nvbm5lY3REZXNjZW5kYW50RnJh
bWVzKCkKICAgICBkaXNjb25uZWN0U3ViZnJhbWVzSWZOZWVkZWQoKnRoaXMsIFJvb3RBbmREZXNj
ZW5kYW50cyk7CiB9CiAKLWJvb2wgQ29udGFpbmVyTm9kZTo6cmVtb3ZlQ2hpbGQoTm9kZSogb2xk
Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQorYm9vbCBDb250YWluZXJOb2RlOjpyZW1vdmVDaGls
ZChOb2RlJiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgLy8gQ2hlY2sgdGhh
dCB0aGlzIG5vZGUgaXMgbm90ICJmbG9hdGluZyIuCiAgICAgLy8gSWYgaXQgaXMsIGl0IGNhbiBi
ZSBkZWxldGVkIGFzIGEgc2lkZSBlZmZlY3Qgb2Ygc2VuZGluZyBtdXRhdGlvbiBldmVudHMuCkBA
IC01MzIsMTIgKzUyMywxMiBAQCBib29sIENvbnRhaW5lck5vZGU6OnJlbW92ZUNoaWxkKE5vZGUq
IG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICB9CiAKICAgICAvLyBOT1RfRk9VTkRf
RVJSOiBSYWlzZWQgaWYgb2xkQ2hpbGQgaXMgbm90IGEgY2hpbGQgb2YgdGhpcyBub2RlLgotICAg
IGlmICghb2xkQ2hpbGQgfHwgb2xkQ2hpbGQtPnBhcmVudE5vZGUoKSAhPSB0aGlzKSB7CisgICAg
aWYgKG9sZENoaWxkLnBhcmVudE5vZGUoKSAhPSB0aGlzKSB7CiAgICAgICAgIGVjID0gTk9UX0ZP
VU5EX0VSUjsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIFJlZjxOb2RlPiBj
aGlsZCgqb2xkQ2hpbGQpOworICAgIFJlZjxOb2RlPiBjaGlsZChvbGRDaGlsZCk7CiAKICAgICBk
b2N1bWVudCgpLnJlbW92ZUZvY3VzZWROb2RlT2ZTdWJ0cmVlKGNoaWxkLnB0cigpKTsKIApAQCAt
NjcwLDcgKzY2MSw3IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6cmVtb3ZlQ2hpbGRyZW4oKQogICAg
IGRpc3BhdGNoU3VidHJlZU1vZGlmaWVkRXZlbnQoKTsKIH0KIAotYm9vbCBDb250YWluZXJOb2Rl
OjphcHBlbmRDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBl
YykKK2Jvb2wgQ29udGFpbmVyTm9kZTo6YXBwZW5kQ2hpbGQoUmVmPE5vZGU+JiYgbmV3Q2hpbGQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIFJlZjxDb250YWluZXJOb2RlPiBwcm90ZWN0KCp0
aGlzKTsKIApAQCAtNjgxLDE0ICs2NzIsMTQgQEAgYm9vbCBDb250YWluZXJOb2RlOjphcHBlbmRD
aGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBl
YyA9IDA7CiAKICAgICAvLyBNYWtlIHN1cmUgYWRkaW5nIHRoZSBuZXcgY2hpbGQgaXMgb2sKLSAg
ICBpZiAoIWNoZWNrQWRkQ2hpbGQodGhpcywgbmV3Q2hpbGQuZ2V0KCksIGVjKSkKKyAgICBpZiAo
IWNoZWNrQWRkQ2hpbGQoKnRoaXMsIG5ld0NoaWxkLCBlYykpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAotICAgIGlmIChuZXdDaGlsZCA9PSBtX2xhc3RDaGlsZCkgLy8gbm90aGluZyB0byBkbwot
ICAgICAgICByZXR1cm4gbmV3Q2hpbGQ7CisgICAgaWYgKG5ld0NoaWxkLnB0cigpID09IG1fbGFz
dENoaWxkKSAvLyBub3RoaW5nIHRvIGRvCisgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgTm9k
ZVZlY3RvciB0YXJnZXRzOwotICAgIGNvbGxlY3RDaGlsZHJlbkFuZFJlbW92ZUZyb21PbGRQYXJl
bnQoKm5ld0NoaWxkLmdldCgpLCB0YXJnZXRzLCBlYyk7CisgICAgY29sbGVjdENoaWxkcmVuQW5k
UmVtb3ZlRnJvbU9sZFBhcmVudChuZXdDaGlsZCwgdGFyZ2V0cywgZWMpOwogICAgIGlmIChlYykK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC02OTYsNyArNjg3LDcgQEAgYm9vbCBDb250YWlu
ZXJOb2RlOjphcHBlbmRDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBFeGNlcHRpb25D
b2RlJiBlYykKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAvLyBXZSBuZWVkIHRoaXMgZXh0
cmEgY2hlY2sgYmVjYXVzZSBjb2xsZWN0Q2hpbGRyZW5BbmRSZW1vdmVGcm9tT2xkUGFyZW50KCkg
Y2FuIGZpcmUgbXV0YXRpb24gZXZlbnRzLgotICAgIGlmICghY2hlY2tBY2NlcHRDaGlsZEd1YXJh
bnRlZWROb2RlVHlwZXModGhpcywgbmV3Q2hpbGQuZ2V0KCksIGVjKSkKKyAgICBpZiAoIWNoZWNr
QWNjZXB0Q2hpbGRHdWFyYW50ZWVkTm9kZVR5cGVzKCp0aGlzLCBuZXdDaGlsZCwgZWMpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxJ
bnNlcnRET01Ob2RlKGRvY3VtZW50KCksICp0aGlzKTsKQEAgLTc1OSwxNiArNzUwLDE2IEBAIHZv
aWQgQ29udGFpbmVyTm9kZTo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFu
Z2UpCiAgICAgaW52YWxpZGF0ZU5vZGVMaXN0QW5kQ29sbGVjdGlvbkNhY2hlc0luQW5jZXN0b3Jz
KCk7CiB9CiAKLXZvaWQgQ29udGFpbmVyTm9kZTo6Y2xvbmVDaGlsZE5vZGVzKENvbnRhaW5lck5v
ZGUqIGNsb25lKQordm9pZCBDb250YWluZXJOb2RlOjpjbG9uZUNoaWxkTm9kZXMoQ29udGFpbmVy
Tm9kZSYgY2xvbmUpCiB7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgRG9jdW1lbnQm
IHRhcmdldERvY3VtZW50ID0gY2xvbmUtPmRvY3VtZW50KCk7CisgICAgRG9jdW1lbnQmIHRhcmdl
dERvY3VtZW50ID0gY2xvbmUuZG9jdW1lbnQoKTsKICAgICBmb3IgKE5vZGUqIGNoaWxkID0gZmly
c3RDaGlsZCgpOyBjaGlsZCAmJiAhZWM7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsK
LSAgICAgICAgUmVmUHRyPE5vZGU+IGNsb25lZENoaWxkID0gY2hpbGQtPmNsb25lTm9kZUludGVy
bmFsKHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uOjpTZWxmV2l0aFRlbXBsYXRlQ29u
dGVudCk7Ci0gICAgICAgIGNsb25lLT5hcHBlbmRDaGlsZChjbG9uZWRDaGlsZCwgZWMpOworICAg
ICAgICBSZWY8Tm9kZT4gY2xvbmVkQ2hpbGQgPSBjaGlsZC0+Y2xvbmVOb2RlSW50ZXJuYWwodGFy
Z2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb246OlNlbGZXaXRoVGVtcGxhdGVDb250ZW50KTsK
KyAgICAgICAgY2xvbmUuYXBwZW5kQ2hpbGQoY2xvbmVkQ2hpbGQuY29weVJlZigpLCBlYyk7CiAK
LSAgICAgICAgaWYgKCFlYyAmJiBpczxDb250YWluZXJOb2RlPihjaGlsZCkpCi0gICAgICAgICAg
ICBkb3duY2FzdDxDb250YWluZXJOb2RlPihjaGlsZCktPmNsb25lQ2hpbGROb2Rlcyhkb3duY2Fz
dDxDb250YWluZXJOb2RlPihjbG9uZWRDaGlsZC5nZXQoKSkpOworICAgICAgICBpZiAoIWVjICYm
IGlzPENvbnRhaW5lck5vZGU+KCpjaGlsZCkpCisgICAgICAgICAgICBkb3duY2FzdDxDb250YWlu
ZXJOb2RlPigqY2hpbGQpLmNsb25lQ2hpbGROb2Rlcyhkb3duY2FzdDxDb250YWluZXJOb2RlPihj
bG9uZWRDaGlsZC5nZXQoKSkpOwogICAgIH0KIH0KIApAQCAtOTQ3LDcgKzkzOCw3IEBAIHZvaWQg
Q29udGFpbmVyTm9kZTo6YXBwZW5kKFZlY3RvcjxOb2RlT3JTdHJpbmc+JiYgbm9kZU9yU3RyaW5n
VmVjdG9yLCBFeGNlcHRpb25DCiAgICAgaWYgKGVjIHx8ICFub2RlKQogICAgICAgICByZXR1cm47
CiAKLSAgICBhcHBlbmRDaGlsZChub2RlLnJlbGVhc2UoKSwgZWMpOworICAgIGFwcGVuZENoaWxk
KG5vZGUucmVsZWFzZU5vbk51bGwoKSwgZWMpOwogfQogCiB2b2lkIENvbnRhaW5lck5vZGU6OnBy
ZXBlbmQoVmVjdG9yPE5vZGVPclN0cmluZz4mJiBub2RlT3JTdHJpbmdWZWN0b3IsIEV4Y2VwdGlv
bkNvZGUmIGVjKQpAQCAtOTU2LDcgKzk0Nyw3IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6cHJlcGVu
ZChWZWN0b3I8Tm9kZU9yU3RyaW5nPiYmIG5vZGVPclN0cmluZ1ZlY3RvciwgRXhjZXB0aW9uCiAg
ICAgaWYgKGVjIHx8ICFub2RlKQogICAgICAgICByZXR1cm47CiAKLSAgICBpbnNlcnRCZWZvcmUo
bm9kZS5yZWxlYXNlKCksIGZpcnN0Q2hpbGQoKSwgZWMpOworICAgIGluc2VydEJlZm9yZShub2Rl
LnJlbGVhc2VOb25OdWxsKCksIGZpcnN0Q2hpbGQoKSwgZWMpOwogfQogCiBIVE1MQ29sbGVjdGlv
biogQ29udGFpbmVyTm9kZTo6Y2FjaGVkSFRNTENvbGxlY3Rpb24oQ29sbGVjdGlvblR5cGUgdHlw
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5oCmluZGV4IDA0NTI0MDA0MWYyYjcxMzFmYjI2
YTRlOGYxOTE2YjlhNmNiOWIwYWUuLmE2YjEwYTc2NWYwZWU4YmNhNzJiOGZmZjAzNDMzYjczYjE4
N2JhM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaApAQCAtMTAyLDEwICsxMDIsMTAg
QEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHVuc2lnbmVkIGNvdW50Q2hpbGROb2Rlcygp
IGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIE5vZGUqIHRyYXZlcnNlVG9DaGlsZEF0KHVuc2ln
bmVkKSBjb25zdDsKIAotICAgIGJvb2wgaW5zZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3
Q2hpbGQsIE5vZGUqIHJlZkNoaWxkLCBFeGNlcHRpb25Db2RlJiA9IEFTU0VSVF9OT19FWENFUFRJ
T04pOwotICAgIGJvb2wgcmVwbGFjZUNoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5v
ZGUqIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiA9IEFTU0VSVF9OT19FWENFUFRJT04pOwotICAg
IFdFQkNPUkVfRVhQT1JUIGJvb2wgcmVtb3ZlQ2hpbGQoTm9kZSogY2hpbGQsIEV4Y2VwdGlvbkNv
ZGUmID0gQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBhcHBl
bmRDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiA9IEFTU0VS
VF9OT19FWENFUFRJT04pOworICAgIGJvb2wgaW5zZXJ0QmVmb3JlKFJlZjxOb2RlPiYmIG5ld0No
aWxkLCBOb2RlKiByZWZDaGlsZCwgRXhjZXB0aW9uQ29kZSYgPSBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKKyAgICBib29sIHJlcGxhY2VDaGlsZChSZWY8Tm9kZT4mJiBuZXdDaGlsZCwgTm9kZSYgb2xk
Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmID0gQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgV0VCQ09S
RV9FWFBPUlQgYm9vbCByZW1vdmVDaGlsZChOb2RlJiBjaGlsZCwgRXhjZXB0aW9uQ29kZSYgPSBB
U1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGFwcGVuZENoaWxk
KFJlZjxOb2RlPiYmIG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiA9IEFTU0VSVF9OT19FWENFUFRJ
T04pOwogCiAgICAgLy8gVGhlc2UgbWV0aG9kcyBhcmUgb25seSB1c2VkIGR1cmluZyBwYXJzaW5n
LgogICAgIC8vIFRoZXkgZG9uJ3Qgc2VuZCBET00gbXV0YXRpb24gZXZlbnRzIG9yIGhhbmRsZSBy
ZXBhcmVudGluZy4KQEAgLTExNyw3ICsxMTcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVD
aGlsZHJlbigpOwogICAgIHZvaWQgdGFrZUFsbENoaWxkcmVuRnJvbShDb250YWluZXJOb2RlKik7
CiAKLSAgICB2b2lkIGNsb25lQ2hpbGROb2RlcyhDb250YWluZXJOb2RlKiBjbG9uZSk7CisgICAg
dm9pZCBjbG9uZUNoaWxkTm9kZXMoQ29udGFpbmVyTm9kZSYgY2xvbmUpOwogCiAgICAgZW51bSBD
aGlsZENoYW5nZVR5cGUgeyBFbGVtZW50SW5zZXJ0ZWQsIEVsZW1lbnRSZW1vdmVkLCBUZXh0SW5z
ZXJ0ZWQsIFRleHRSZW1vdmVkLCBUZXh0Q2hhbmdlZCwgQWxsQ2hpbGRyZW5SZW1vdmVkLCBOb25D
b250ZW50c0NoaWxkQ2hhbmdlZCB9OwogICAgIGVudW0gQ2hpbGRDaGFuZ2VTb3VyY2UgeyBDaGls
ZENoYW5nZVNvdXJjZVBhcnNlciwgQ2hpbGRDaGFuZ2VTb3VyY2VBUEkgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCmluZGV4IGE0YTNmOGQ1OWFhMmExNjFmNjcyZjQ0
ZDYzZmY4NDg2NGI3YjIwMzMuLjYzM2QyOTEzZjcxNmVhODRiNjdmNmQyODA5M2U2OGQ0MTFlMzE5
YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcApAQCAtMjMxLDkg
KzIzMSw5IEBAIFJlZlB0cjxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3Vt
ZW50KGNvbnN0IFN0cmluZyYgbmFtZXNwYWNlVVJJLAogICAgIH0KIAogICAgIGlmIChkb2N0eXBl
KQotICAgICAgICBkb2MtPmFwcGVuZENoaWxkKGRvY3R5cGUpOworICAgICAgICBkb2MtPmFwcGVu
ZENoaWxkKCpkb2N0eXBlKTsKICAgICBpZiAoZG9jdW1lbnRFbGVtZW50KQotICAgICAgICBkb2Mt
PmFwcGVuZENoaWxkKGRvY3VtZW50RWxlbWVudC5yZWxlYXNlKCkpOworICAgICAgICBkb2MtPmFw
cGVuZENoaWxkKGRvY3VtZW50RWxlbWVudC5yZWxlYXNlTm9uTnVsbCgpKTsKIAogICAgIHJldHVy
biBkb2M7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBjMDk0MWQyNTE5MTQxNDU4MjBi
NWJkYzUzMDU4ZDY4Y2Q5M2YzNGFiLi42MDMxMmNhMzUwMTM2NTQyOTc3NDdjODE0ZjFiMzRmODdk
NDc0NTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTEwMDksNyArMTAwOSw3IEBAIFJl
ZlB0cjxOb2RlPiBEb2N1bWVudDo6YWRvcHROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gc291cmNlLCBF
eGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBpZiAo
c291cmNlLT5wYXJlbnROb2RlKCkpIHsKLSAgICAgICAgICAgIHNvdXJjZS0+cGFyZW50Tm9kZSgp
LT5yZW1vdmVDaGlsZChzb3VyY2UuZ2V0KCksIGVjKTsKKyAgICAgICAgICAgIHNvdXJjZS0+cGFy
ZW50Tm9kZSgpLT5yZW1vdmVDaGlsZCgqc291cmNlLCBlYyk7CiAgICAgICAgICAgICBpZiAoZWMp
CiAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIH0KQEAgLTE1MzcsNyAr
MTUzNyw3IEBAIHZvaWQgRG9jdW1lbnQ6OnNldFRpdGxlKGNvbnN0IFN0cmluZyYgdGl0bGUpCiAg
ICAgZWxzZSBpZiAoIW1fdGl0bGVFbGVtZW50KSB7CiAgICAgICAgIGlmIChIVE1MRWxlbWVudCog
aGVhZEVsZW1lbnQgPSBoZWFkKCkpIHsKICAgICAgICAgICAgIG1fdGl0bGVFbGVtZW50ID0gY3Jl
YXRlRWxlbWVudCh0aXRsZVRhZywgZmFsc2UpOwotICAgICAgICAgICAgaGVhZEVsZW1lbnQtPmFw
cGVuZENoaWxkKG1fdGl0bGVFbGVtZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAg
ICAgIGhlYWRFbGVtZW50LT5hcHBlbmRDaGlsZCgqbV90aXRsZUVsZW1lbnQsIEFTU0VSVF9OT19F
WENFUFRJT04pOwogICAgICAgICB9CiAgICAgfQogCkBAIC0yNTA5LDExICsyNTA5LDEwIEBAIHZv
aWQgRG9jdW1lbnQ6OnNldEJvZHlPckZyYW1lc2V0KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IHBy
cE5ld0JvZHksIEV4Y2VwdGlvbkNvCiAgICAgICAgIG5ld0JvZHkgPSBkb3duY2FzdDxIVE1MRWxl
bWVudD4obm9kZS5nZXQoKSk7CiAgICAgfQogCi0gICAgSFRNTEVsZW1lbnQqIGIgPSBib2R5T3JG
cmFtZXNldCgpOwotICAgIGlmICghYikKLSAgICAgICAgZG9jdW1lbnRFbGVtZW50KCktPmFwcGVu
ZENoaWxkKG5ld0JvZHkucmVsZWFzZSgpLCBlYyk7CisgICAgaWYgKGF1dG8qIGJvZHkgPSBib2R5
T3JGcmFtZXNldCgpKQorICAgICAgICBkb2N1bWVudEVsZW1lbnQoKS0+cmVwbGFjZUNoaWxkKG5l
d0JvZHkucmVsZWFzZU5vbk51bGwoKSwgKmJvZHksIGVjKTsKICAgICBlbHNlCi0gICAgICAgIGRv
Y3VtZW50RWxlbWVudCgpLT5yZXBsYWNlQ2hpbGQobmV3Qm9keS5yZWxlYXNlKCksIGIsIGVjKTsK
KyAgICAgICAgZG9jdW1lbnRFbGVtZW50KCktPmFwcGVuZENoaWxkKG5ld0JvZHkucmVsZWFzZU5v
bk51bGwoKSwgZWMpOwogfQogCiBIVE1MSGVhZEVsZW1lbnQqIERvY3VtZW50OjpoZWFkKCkKQEAg
LTMzMTcsMTMgKzMzMTYsOSBAQCBib29sIERvY3VtZW50OjpjaGlsZFR5cGVBbGxvd2VkKE5vZGVU
eXBlIHR5cGUpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIERvY3VtZW50Ojpj
YW5SZXBsYWNlQ2hpbGQoTm9kZSogbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkKQorYm9vbCBEb2N1
bWVudDo6Y2FuUmVwbGFjZUNoaWxkKE5vZGUmIG5ld0NoaWxkLCBOb2RlJiBvbGRDaGlsZCkKIHsK
LSAgICBpZiAoIW9sZENoaWxkKQotICAgICAgICAvLyBDb250YWluZXJOb2RlOjpyZXBsYWNlQ2hp
bGQgd2lsbCByYWlzZSBhIE5PVF9GT1VORF9FUlIuCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0g
ICAgaWYgKG9sZENoaWxkLT5ub2RlVHlwZSgpID09IG5ld0NoaWxkLT5ub2RlVHlwZSgpKQorICAg
IGlmIChvbGRDaGlsZC5ub2RlVHlwZSgpID09IG5ld0NoaWxkLm5vZGVUeXBlKCkpCiAgICAgICAg
IHJldHVybiB0cnVlOwogCiAgICAgaW50IG51bURvY3R5cGVzID0gMDsKQEAgLTMzMzIsNyArMzMy
Nyw3IEBAIGJvb2wgRG9jdW1lbnQ6OmNhblJlcGxhY2VDaGlsZChOb2RlKiBuZXdDaGlsZCwgTm9k
ZSogb2xkQ2hpbGQpCiAgICAgLy8gRmlyc3QsIGNoZWNrIGhvdyBtYW55IGRvY3R5cGVzIGFuZCBl
bGVtZW50cyB3ZSBoYXZlLCBub3QgY291bnRpbmcKICAgICAvLyB0aGUgY2hpbGQgd2UncmUgYWJv
dXQgdG8gcmVtb3ZlLgogICAgIGZvciAoTm9kZSogYyA9IGZpcnN0Q2hpbGQoKTsgYzsgYyA9IGMt
Pm5leHRTaWJsaW5nKCkpIHsKLSAgICAgICAgaWYgKGMgPT0gb2xkQ2hpbGQpCisgICAgICAgIGlm
IChjID09ICZvbGRDaGlsZCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAKICAgICAg
ICAgc3dpdGNoIChjLT5ub2RlVHlwZSgpKSB7CkBAIC0zMzQ4LDggKzMzNDMsOCBAQCBib29sIERv
Y3VtZW50OjpjYW5SZXBsYWNlQ2hpbGQoTm9kZSogbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkKQog
ICAgIH0KICAgICAKICAgICAvLyBUaGVuLCBzZWUgaG93IG1hbnkgZG9jdHlwZXMgYW5kIGVsZW1l
bnRzIG1pZ2h0IGJlIGFkZGVkIGJ5IHRoZSBuZXcgY2hpbGQuCi0gICAgaWYgKG5ld0NoaWxkLT5p
c0RvY3VtZW50RnJhZ21lbnQoKSkgewotICAgICAgICBmb3IgKE5vZGUqIGMgPSBuZXdDaGlsZC0+
Zmlyc3RDaGlsZCgpOyBjOyBjID0gYy0+bmV4dFNpYmxpbmcoKSkgeworICAgIGlmIChuZXdDaGls
ZC5pc0RvY3VtZW50RnJhZ21lbnQoKSkgeworICAgICAgICBmb3IgKE5vZGUqIGMgPSBuZXdDaGls
ZC5maXJzdENoaWxkKCk7IGM7IGMgPSBjLT5uZXh0U2libGluZygpKSB7CiAgICAgICAgICAgICBz
d2l0Y2ggKGMtPm5vZGVUeXBlKCkpIHsKICAgICAgICAgICAgIGNhc2UgQVRUUklCVVRFX05PREU6
CiAgICAgICAgICAgICBjYXNlIENEQVRBX1NFQ1RJT05fTk9ERToKQEAgLTMzNzIsNyArMzM2Nyw3
IEBAIGJvb2wgRG9jdW1lbnQ6OmNhblJlcGxhY2VDaGlsZChOb2RlKiBuZXdDaGlsZCwgTm9kZSog
b2xkQ2hpbGQpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9IGVsc2UgewotICAgICAg
ICBzd2l0Y2ggKG5ld0NoaWxkLT5ub2RlVHlwZSgpKSB7CisgICAgICAgIHN3aXRjaCAobmV3Q2hp
bGQubm9kZVR5cGUoKSkgewogICAgICAgICBjYXNlIEFUVFJJQlVURV9OT0RFOgogICAgICAgICBj
YXNlIENEQVRBX1NFQ1RJT05fTk9ERToKICAgICAgICAgY2FzZSBET0NVTUVOVF9GUkFHTUVOVF9O
T0RFOgpAQCAtMzQwMCw3ICszMzk1LDcgQEAgYm9vbCBEb2N1bWVudDo6Y2FuUmVwbGFjZUNoaWxk
KE5vZGUqIG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
UmVmUHRyPE5vZGU+IERvY3VtZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25p
bmdPcGVyYXRpb24gdHlwZSkKK1JlZjxOb2RlPiBEb2N1bWVudDo6Y2xvbmVOb2RlSW50ZXJuYWwo
RG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uIHR5cGUpCiB7CiAgICAgUmVmPERvY3VtZW50PiBj
bG9uZSA9IGNsb25lRG9jdW1lbnRXaXRob3V0Q2hpbGRyZW4oKTsKICAgICBjbG9uZS0+Y2xvbmVE
YXRhRnJvbURvY3VtZW50KCp0aGlzKTsKQEAgLTM0MDksNyArMzQwNCw3IEBAIFJlZlB0cjxOb2Rl
PiBEb2N1bWVudDo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9u
IHR5cGUpCiAgICAgY2FzZSBDbG9uaW5nT3BlcmF0aW9uOjpTZWxmV2l0aFRlbXBsYXRlQ29udGVu
dDoKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDbG9uaW5nT3BlcmF0aW9uOjpFdmVyeXRoaW5n
OgotICAgICAgICBjbG9uZUNoaWxkTm9kZXMoY2xvbmUucHRyKCkpOworICAgICAgICBjbG9uZUNo
aWxkTm9kZXMoY2xvbmUpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgcmV0dXJuIFdURjo6
bW92ZShjbG9uZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDllZjQ4YzkzMzgwNzNhZTAyOWMy
ZWEzN2M5Mzc1ZDVjZWI5OWE2ZDQuLjEzNWM3ZTYzOTU1MGFkMmM3NGU4ZDNmNzM2ZGZkMjgxYmJk
YWVjYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC03NDcsNyArNzQ3LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgbm9kZUNoaWxkcmVuV2lsbEJlUmVtb3ZlZChDb250YWluZXJOb2RlJik7CiAgICAg
Ly8gbm9kZVdpbGxCZVJlbW92ZWQgaXMgb25seSBzYWZlIHdoZW4gcmVtb3Zpbmcgb25lIG5vZGUg
YXQgYSB0aW1lLgogICAgIHZvaWQgbm9kZVdpbGxCZVJlbW92ZWQoTm9kZSYpOwotICAgIGJvb2wg
Y2FuUmVwbGFjZUNoaWxkKE5vZGUqIG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCk7CisgICAgYm9v
bCBjYW5SZXBsYWNlQ2hpbGQoTm9kZSYgbmV3Q2hpbGQsIE5vZGUmIG9sZENoaWxkKTsKIAogICAg
IHZvaWQgdGV4dEluc2VydGVkKE5vZGUqLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0
aCk7CiAgICAgdm9pZCB0ZXh0UmVtb3ZlZChOb2RlKiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25l
ZCBsZW5ndGgpOwpAQCAtMTMxMSw3ICsxMzExLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFN0
cmluZyBub2RlTmFtZSgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgTm9kZVR5
cGUgbm9kZVR5cGUoKSBjb25zdCBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIGJvb2wgY2hp
bGRUeXBlQWxsb3dlZChOb2RlVHlwZSkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7Ci0gICAgdmlydHVh
bCBSZWZQdHI8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0
aW9uKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRl
cm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlIGZpbmFsOwogICAgIHZv
aWQgY2xvbmVEYXRhRnJvbURvY3VtZW50KGNvbnN0IERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFs
IHZvaWQgcmVmU2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIG92ZXJyaWRlIGZpbmFsIHsgcmVmKCk7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcAppbmRleCA0ZmFiNThlMzRk
NDY1NWVjZjRlMzdkYTVkZDljM2M1NjIyZjQwNzY4Li5mOWIzOGEwYmQyOGU4ZTNjNjA5MzRhZmYx
YTYwMDU5MjcwOTAzZmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRG
cmFnbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3Bw
CkBAIC02NywxOCArNjcsMTggQEAgYm9vbCBEb2N1bWVudEZyYWdtZW50OjpjaGlsZFR5cGVBbGxv
d2VkKE5vZGVUeXBlIHR5cGUpIGNvbnN0CiAgICAgfQogfQogCi1SZWZQdHI8Tm9kZT4gRG9jdW1l
bnRGcmFnbWVudDo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBD
bG9uaW5nT3BlcmF0aW9uIHR5cGUpCitSZWY8Tm9kZT4gRG9jdW1lbnRGcmFnbWVudDo6Y2xvbmVO
b2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uIHR5
cGUpCiB7Ci0gICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNsb25lID0gY3JlYXRlKHRhcmdl
dERvY3VtZW50KTsKKyAgICBSZWY8RG9jdW1lbnRGcmFnbWVudD4gY2xvbmUgPSBjcmVhdGUodGFy
Z2V0RG9jdW1lbnQpOwogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgQ2xvbmluZ09wZXJh
dGlvbjo6T25seVNlbGY6CiAgICAgY2FzZSBDbG9uaW5nT3BlcmF0aW9uOjpTZWxmV2l0aFRlbXBs
YXRlQ29udGVudDoKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDbG9uaW5nT3BlcmF0aW9uOjpF
dmVyeXRoaW5nOgotICAgICAgICBjbG9uZUNoaWxkTm9kZXMoY2xvbmUuZ2V0KCkpOworICAgICAg
ICBjbG9uZUNoaWxkTm9kZXMoY2xvbmUpOwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgcmV0
dXJuIGNsb25lOworICAgIHJldHVybiBXVEY6Om1vdmUoY2xvbmUpOwogfQogCiB2b2lkIERvY3Vt
ZW50RnJhZ21lbnQ6OnBhcnNlSFRNTChjb25zdCBTdHJpbmcmIHNvdXJjZSwgRWxlbWVudCogY29u
dGV4dEVsZW1lbnQsIFBhcnNlckNvbnRlbnRQb2xpY3kgcGFyc2VyQ29udGVudFBvbGljeSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5oCmluZGV4IGQwN2UwMzRjMDA3ZTY2Mjk2MjUx
YmQwYzBiMTYwNmQ3MDlhMDVmNjUuLjZlYjFlZDYxYzQ2MjAxM2ZkMDU3NGQ0YWZlM2VjYzVlMjRj
ODQ1ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuaApAQCAtNDgsNyArNDgs
NyBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCBOb2RlVHlwZSBub2RlVHlw
ZSgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOwotICAgIHZpcnR1YWwgUmVmUHRyPE5vZGU+IGNsb25l
Tm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3Bl
cmF0aW9uKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRUeXBlQWxsb3dlZChOb2Rl
VHlwZSkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFR5cGUuY3Bw
CmluZGV4IDY3ZTNkNTM4NDNmODJhMGJjNTliOWQwZWZmY2FlMjdhZjMwYjk2MzQuLmMxOWQwMTgy
YWZhZmRhNWQ4YzIwZWNmZDdkMzlkMTViYTAxODdlYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dFR5cGUuY3BwCkBAIC01MSw3ICs1MSw3IEBAIE5vZGU6Ok5vZGVUeXBlIERvY3VtZW50VHlwZTo6
bm9kZVR5cGUoKSBjb25zdAogICAgIHJldHVybiBET0NVTUVOVF9UWVBFX05PREU7CiB9CiAKLVJl
ZlB0cjxOb2RlPiBEb2N1bWVudFR5cGU6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiBkb2N1
bWVudFRhcmdldCwgQ2xvbmluZ09wZXJhdGlvbikKK1JlZjxOb2RlPiBEb2N1bWVudFR5cGU6OmNs
b25lTm9kZUludGVybmFsKERvY3VtZW50JiBkb2N1bWVudFRhcmdldCwgQ2xvbmluZ09wZXJhdGlv
bikKIHsKICAgICByZXR1cm4gY3JlYXRlKGRvY3VtZW50VGFyZ2V0LCBtX25hbWUsIG1fcHVibGlj
SWQsIG1fc3lzdGVtSWQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50VHlwZS5oCmluZGV4IGM3YTFk
OWI1MjZmNmVlZWExMWNhM2E3Mjc1ZWIzMWY1YTZlMTMyYTUuLmM3OWMwY2VhODY5ZDIwNTliYmRi
YjgyMTU5YzhmZjEwNzg4MzhlZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRUeXBlLmgKQEAgLTUy
LDcgKzUyLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFVSTCBiYXNlVVJJKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCBTdHJpbmcgbm9kZU5hbWUoKSBjb25zdCBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIE5vZGVUeXBlIG5vZGVUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVh
bCBSZWZQdHI8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0
aW9uKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChE
b2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOwogCiAgICAgU3RyaW5nIG1fbmFt
ZTsKICAgICBTdHJpbmcgbV9wdWJsaWNJZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA2NzUw
MDBhNTRhNzA4MjljMGQxMTEyZDk4YmY4OWJjYWNkZDdjMzljLi4zYTg5MDYxN2ZhM2EwN2M3YTE5
Y2E3YTM0Mjk3YzE3MTkyODRiOTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0zMTIsMzgg
KzMxMiwzNyBAQCB2b2lkIEVsZW1lbnQ6OmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soRXZlbnQqIHVu
ZGVybHlpbmdFdmVudCwgU2ltdWxhdGVkQ2xpY2tNb3VzZQogICAgIEV2ZW50RGlzcGF0Y2hlcjo6
ZGlzcGF0Y2hTaW11bGF0ZWRDbGljayh0aGlzLCB1bmRlcmx5aW5nRXZlbnQsIGV2ZW50T3B0aW9u
cywgdmlzdWFsT3B0aW9ucyk7CiB9CiAKLVJlZlB0cjxOb2RlPiBFbGVtZW50OjpjbG9uZU5vZGVJ
bnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24gdHlwZSkK
K1JlZjxOb2RlPiBFbGVtZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9j
dW1lbnQsIENsb25pbmdPcGVyYXRpb24gdHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAg
ICBjYXNlIENsb25pbmdPcGVyYXRpb246Ok9ubHlTZWxmOgogICAgIGNhc2UgQ2xvbmluZ09wZXJh
dGlvbjo6U2VsZldpdGhUZW1wbGF0ZUNvbnRlbnQ6CiAgICAgICAgIHJldHVybiBjbG9uZUVsZW1l
bnRXaXRob3V0Q2hpbGRyZW4odGFyZ2V0RG9jdW1lbnQpOwogICAgIGNhc2UgQ2xvbmluZ09wZXJh
dGlvbjo6RXZlcnl0aGluZzoKLSAgICAgICAgcmV0dXJuIGNsb25lRWxlbWVudFdpdGhDaGlsZHJl
bih0YXJnZXREb2N1bWVudCk7CisgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gY2xvbmVFbGVtZW50
V2l0aENoaWxkcmVuKHRhcmdldERvY3VtZW50KTsKIH0KIAotUmVmUHRyPEVsZW1lbnQ+IEVsZW1l
bnQ6OmNsb25lRWxlbWVudFdpdGhDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQpCitS
ZWY8RWxlbWVudD4gRWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aENoaWxkcmVuKERvY3VtZW50JiB0
YXJnZXREb2N1bWVudCkKIHsKLSAgICBSZWZQdHI8RWxlbWVudD4gY2xvbmUgPSBjbG9uZUVsZW1l
bnRXaXRob3V0Q2hpbGRyZW4odGFyZ2V0RG9jdW1lbnQpOwotICAgIGNsb25lQ2hpbGROb2Rlcyhj
bG9uZS5nZXQoKSk7Ci0gICAgcmV0dXJuIGNsb25lLnJlbGVhc2UoKTsKKyAgICBSZWY8RWxlbWVu
dD4gY2xvbmUgPSBjbG9uZUVsZW1lbnRXaXRob3V0Q2hpbGRyZW4odGFyZ2V0RG9jdW1lbnQpOwor
ICAgIGNsb25lQ2hpbGROb2RlcyhjbG9uZSk7CisgICAgcmV0dXJuIGNsb25lOwogfQogCi1SZWZQ
dHI8RWxlbWVudD4gRWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aG91dENoaWxkcmVuKERvY3VtZW50
JiB0YXJnZXREb2N1bWVudCkKK1JlZjxFbGVtZW50PiBFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRo
b3V0Q2hpbGRyZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50KQogewotICAgIFJlZlB0cjxFbGVt
ZW50PiBjbG9uZSA9IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4odGFy
Z2V0RG9jdW1lbnQpOworICAgIFJlZjxFbGVtZW50PiBjbG9uZSA9IGNsb25lRWxlbWVudFdpdGhv
dXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4odGFyZ2V0RG9jdW1lbnQpOwogICAgIC8vIFRoaXMgd2ls
bCBjYXRjaCBIVE1MIGVsZW1lbnRzIGluIHRoZSB3cm9uZyBuYW1lc3BhY2UgdGhhdCBhcmUgbm90
IGNvcnJlY3RseSBjb3BpZWQuCiAgICAgLy8gVGhpcyBpcyBhIHNhbml0eSBjaGVjayBhcyBIVE1M
IG92ZXJsb2FkcyBzb21lIG9mIHRoZSBET00gbWV0aG9kcy4KICAgICBBU1NFUlQoaXNIVE1MRWxl
bWVudCgpID09IGNsb25lLT5pc0hUTUxFbGVtZW50KCkpOwogCiAgICAgY2xvbmUtPmNsb25lRGF0
YUZyb21FbGVtZW50KCp0aGlzKTsKLSAgICByZXR1cm4gY2xvbmUucmVsZWFzZSgpOworICAgIHJl
dHVybiBjbG9uZTsKIH0KIAotUmVmUHRyPEVsZW1lbnQ+IEVsZW1lbnQ6OmNsb25lRWxlbWVudFdp
dGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50KQorUmVm
PEVsZW1lbnQ+IEVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRy
ZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50KQogewogICAgIHJldHVybiB0YXJnZXREb2N1bWVu
dC5jcmVhdGVFbGVtZW50KHRhZ1FOYW1lKCksIGZhbHNlKTsKIH0KQEAgLTIzMTksNyArMjMxOCw3
IEBAIHZvaWQgRWxlbWVudDo6c2V0T3V0ZXJIVE1MKGNvbnN0IFN0cmluZyYgaHRtbCwgRXhjZXB0
aW9uQ29kZSYgZWMpCiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgcGFy
ZW50LT5yZXBsYWNlQ2hpbGQoZnJhZ21lbnQucmVsZWFzZSgpLCB0aGlzLCBlYyk7CisgICAgcGFy
ZW50LT5yZXBsYWNlQ2hpbGQoZnJhZ21lbnQucmVsZWFzZU5vbk51bGwoKSwgKnRoaXMsIGVjKTsK
ICAgICBSZWZQdHI8Tm9kZT4gbm9kZSA9IG5leHQgPyBuZXh0LT5wcmV2aW91c1NpYmxpbmcoKSA6
IG51bGxwdHI7CiAgICAgaWYgKCFlYyAmJiBpczxUZXh0Pihub2RlLmdldCgpKSkKICAgICAgICAg
bWVyZ2VXaXRoTmV4dFRleHROb2RlKGRvd25jYXN0PFRleHQ+KCpub2RlKSwgZWMpOwpAQCAtMjMz
OCw3ICsyMzM3LDcgQEAgdm9pZCBFbGVtZW50OjpzZXRJbm5lckhUTUwoY29uc3QgU3RyaW5nJiBo
dG1sLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgICAgIGNvbnRhaW5lciA9IGRvd25jYXN0
PEhUTUxUZW1wbGF0ZUVsZW1lbnQ+KCp0aGlzKS5jb250ZW50KCk7CiAjZW5kaWYKIAotICAgICAg
ICByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQoKmNvbnRhaW5lciwgZnJhZ21lbnQucmVsZWFz
ZSgpLCBlYyk7CisgICAgICAgIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudCgqY29udGFpbmVy
LCBmcmFnbWVudC5yZWxlYXNlTm9uTnVsbCgpLCBlYyk7CiAgICAgfQogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaAppbmRleCAxZTYwNzAzY2I2YjJmZDkzNjA3MWY4NWI5YjlkYTlkN2FhNDBjYzRiLi4wNDgx
MGUxY2Y4NDk1ZWQyNGZkODk0NTA1M2ZhZmJjZDQzMjJkMTFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgK
QEAgLTIwMSw4ICsyMDEsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFN0cmluZyBub2RlTmFt
ZSgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgUmVmUHRyPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdp
dGhDaGlsZHJlbihEb2N1bWVudCYpOwotICAgIFJlZlB0cjxFbGVtZW50PiBjbG9uZUVsZW1lbnRX
aXRob3V0Q2hpbGRyZW4oRG9jdW1lbnQmKTsKKyAgICBSZWY8RWxlbWVudD4gY2xvbmVFbGVtZW50
V2l0aENoaWxkcmVuKERvY3VtZW50Jik7CisgICAgUmVmPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdp
dGhvdXRDaGlsZHJlbihEb2N1bWVudCYpOwogCiAgICAgdm9pZCBub3JtYWxpemVBdHRyaWJ1dGVz
KCk7CiAgICAgU3RyaW5nIG5vZGVOYW1lUHJlc2VydmluZ0Nhc2UoKSBjb25zdDsKQEAgLTU2Myw4
ICs1NjMsOCBAQCBwcml2YXRlOgogCiAgICAgLy8gY2xvbmVOb2RlIGlzIHByaXZhdGUgc28gdGhh
dCBub24tdmlydHVhbCBjbG9uZUVsZW1lbnRXaXRoQ2hpbGRyZW4gYW5kIGNsb25lRWxlbWVudFdp
dGhvdXRDaGlsZHJlbgogICAgIC8vIGFyZSB1c2VkIGluc3RlYWQuCi0gICAgdmlydHVhbCBSZWZQ
dHI8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBv
dmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlZlB0cjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRob3V0
QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50Jik7CisgICAgdmlydHVhbCBSZWY8Tm9kZT4g
Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIFJlZjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0Fu
ZENoaWxkcmVuKERvY3VtZW50Jik7CiAKICAgICB2b2lkIGFkZFNoYWRvd1Jvb3QoUmVmPFNoYWRv
d1Jvb3Q+JiYpOwogICAgIHZvaWQgcmVtb3ZlU2hhZG93Um9vdCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RW50aXR5UmVmZXJlbmNlLmNwcAppbmRleCBhMmZmNjNiMDEwZTZlMjhlMGZjNGVhYWU4NWE3NGEx
M2ZlOWQ2YzdmLi43ZTkxYTQ2MmRhODIwOWQ5MjJjNDVkYzg0YzQxYTA4NTVhZDZiZTFhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmNwcApAQCAtNDYsNyArNDYsNyBAQCBOb2Rl
OjpOb2RlVHlwZSBFbnRpdHlSZWZlcmVuY2U6Om5vZGVUeXBlKCkgY29uc3QKICAgICByZXR1cm4g
RU5USVRZX1JFRkVSRU5DRV9OT0RFOwogfQogCi1SZWZQdHI8Tm9kZT4gRW50aXR5UmVmZXJlbmNl
OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVy
YXRpb24pCitSZWY8Tm9kZT4gRW50aXR5UmVmZXJlbmNlOjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1
bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24pCiB7CiAgICAgcmV0dXJuIGNy
ZWF0ZSh0YXJnZXREb2N1bWVudCwgbV9lbnRpdHlOYW1lKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRp
dHlSZWZlcmVuY2UuaAppbmRleCAwM2Y0M2NkZjk1ZWE2OGYwMDRkOWYxMTNiYTE2OGYwZjdiZmFm
Mzk2Li44NmRmZWIzOTgyNWIzNDUwZTc1MzU5MjUwNjg1MTEwYjNhZjBjYThmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VudGl0eVJlZmVyZW5jZS5oCkBAIC0zNSw3ICszNSw3IEBAIHByaXZhdGU6CiAKICAg
ICB2aXJ0dWFsIFN0cmluZyBub2RlTmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
Tm9kZVR5cGUgbm9kZVR5cGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlZlB0cjxO
b2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50Jiwg
Q2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CiAKICAgICBTdHJpbmcgbV9lbnRpdHlOYW1lOwog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmNwcAppbmRleCBmZGM3ZmI1NTBkYTE1ZjNjNTllNTk2ZDU2MTNmNzMyNTJj
OTUxOGJhLi4yOGYyMTE0NWUxNTJlYzQ5OTU1MjExZTNiMmZlODRkOGNmYmU0ODMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuY3BwCkBAIC00MjksMzggKzQyOSw1NCBAQCBFbGVtZW50KiBOb2RlOjpuZXh0RWxlbWVu
dFNpYmxpbmcoKSBjb25zdAogCiBib29sIE5vZGU6Omluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5v
ZGU+IG5ld0NoaWxkLCBOb2RlKiByZWZDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CisgICAg
aWYgKCFuZXdDaGlsZCkgeworICAgICAgICBlYyA9IFR5cGVFcnJvcjsKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIH0KICAgICBpZiAoIWlzPENvbnRhaW5lck5vZGU+KCp0aGlzKSkgewogICAg
ICAgICBlYyA9IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KLSAgICByZXR1cm4gZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4oKnRoaXMpLmluc2VydEJl
Zm9yZShuZXdDaGlsZCwgcmVmQ2hpbGQsIGVjKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8Q29udGFp
bmVyTm9kZT4oKnRoaXMpLmluc2VydEJlZm9yZSgqbmV3Q2hpbGQsIHJlZkNoaWxkLCBlYyk7CiB9
CiAKIGJvb2wgTm9kZTo6cmVwbGFjZUNoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5v
ZGUqIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKKyAgICBpZiAoIW5ld0NoaWxkIHx8
ICFvbGRDaGlsZCkgeworICAgICAgICBlYyA9IFR5cGVFcnJvcjsKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0KICAgICBpZiAoIWlzPENvbnRhaW5lck5vZGU+KCp0aGlzKSkgewogICAgICAg
ICBlYyA9IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KLSAgICByZXR1cm4gZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4oKnRoaXMpLnJlcGxhY2VDaGls
ZChuZXdDaGlsZCwgb2xkQ2hpbGQsIGVjKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8Q29udGFpbmVy
Tm9kZT4oKnRoaXMpLnJlcGxhY2VDaGlsZCgqbmV3Q2hpbGQsICpvbGRDaGlsZCwgZWMpOwogfQog
CiBib29sIE5vZGU6OnJlbW92ZUNoaWxkKE5vZGUqIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiBl
YykKIHsKKyAgICBpZiAoIW9sZENoaWxkKSB7CisgICAgICAgIGVjID0gVHlwZUVycm9yOworICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogICAgIGlmICghaXM8Q29udGFpbmVyTm9kZT4oKnRo
aXMpKSB7CiAgICAgICAgIGVjID0gTk9UX0ZPVU5EX0VSUjsKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KLSAgICByZXR1cm4gZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4oKnRoaXMpLnJlbW92
ZUNoaWxkKG9sZENoaWxkLCBlYyk7CisgICAgcmV0dXJuIGRvd25jYXN0PENvbnRhaW5lck5vZGU+
KCp0aGlzKS5yZW1vdmVDaGlsZCgqb2xkQ2hpbGQsIGVjKTsKIH0KIAogYm9vbCBOb2RlOjphcHBl
bmRDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsK
KyAgICBpZiAoIW5ld0NoaWxkKSB7CisgICAgICAgIGVjID0gVHlwZUVycm9yOworICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfQogICAgIGlmICghaXM8Q29udGFpbmVyTm9kZT4oKnRoaXMpKSB7
CiAgICAgICAgIGVjID0gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQotICAgIHJldHVybiBkb3duY2FzdDxDb250YWluZXJOb2RlPigqdGhpcykuYXBw
ZW5kQ2hpbGQobmV3Q2hpbGQsIGVjKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8Q29udGFpbmVyTm9k
ZT4oKnRoaXMpLmFwcGVuZENoaWxkKCpuZXdDaGlsZCwgZWMpOwogfQogCiBzdGF0aWMgSGFzaFNl
dDxSZWZQdHI8Tm9kZT4+IG5vZGVTZXRQcmVUcmFuc2Zvcm1lZEZyb21Ob2RlT3JTdHJpbmdWZWN0
b3IoY29uc3QgVmVjdG9yPE5vZGVPclN0cmluZz4mIG5vZGVPclN0cmluZ1ZlY3RvcikKQEAgLTUx
NSw3ICs1MzEsNyBAQCB2b2lkIE5vZGU6OmJlZm9yZShWZWN0b3I8Tm9kZU9yU3RyaW5nPiYmIG5v
ZGVPclN0cmluZ1ZlY3RvciwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgZWxzZQogICAgICAgICB2
aWFibGVQcmV2aW91c1NpYmxpbmcgPSBwYXJlbnQtPmZpcnN0Q2hpbGQoKTsKIAotICAgIHBhcmVu
dC0+aW5zZXJ0QmVmb3JlKG5vZGUucmVsZWFzZSgpLCB2aWFibGVQcmV2aW91c1NpYmxpbmcuZ2V0
KCksIGVjKTsKKyAgICBwYXJlbnQtPmluc2VydEJlZm9yZShub2RlLnJlbGVhc2VOb25OdWxsKCks
IHZpYWJsZVByZXZpb3VzU2libGluZy5nZXQoKSwgZWMpOwogfQogCiB2b2lkIE5vZGU6OmFmdGVy
KFZlY3RvcjxOb2RlT3JTdHJpbmc+JiYgbm9kZU9yU3RyaW5nVmVjdG9yLCBFeGNlcHRpb25Db2Rl
JiBlYykKQEAgLTUzMSw3ICs1NDcsNyBAQCB2b2lkIE5vZGU6OmFmdGVyKFZlY3RvcjxOb2RlT3JT
dHJpbmc+JiYgbm9kZU9yU3RyaW5nVmVjdG9yLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBpZiAo
ZWMgfHwgIW5vZGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIHBhcmVudC0+aW5zZXJ0QmVmb3Jl
KG5vZGUucmVsZWFzZSgpLCB2aWFibGVOZXh0U2libGluZy5nZXQoKSwgZWMpOworICAgIHBhcmVu
dC0+aW5zZXJ0QmVmb3JlKG5vZGUucmVsZWFzZU5vbk51bGwoKSwgdmlhYmxlTmV4dFNpYmxpbmcu
Z2V0KCksIGVjKTsKIH0KIAogdm9pZCBOb2RlOjpyZXBsYWNlV2l0aChWZWN0b3I8Tm9kZU9yU3Ry
aW5nPiYmIG5vZGVPclN0cmluZ1ZlY3RvciwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC01NDgsMTUg
KzU2NCwxNSBAQCB2b2lkIE5vZGU6OnJlcGxhY2VXaXRoKFZlY3RvcjxOb2RlT3JTdHJpbmc+JiYg
bm9kZU9yU3RyaW5nVmVjdG9yLCBFeGNlcHRpb25Db2RlJgogICAgICAgICByZXR1cm47CiAKICAg
ICBpZiAocGFyZW50Tm9kZSgpID09IHBhcmVudCkKLSAgICAgICAgcGFyZW50LT5yZXBsYWNlQ2hp
bGQobm9kZS5yZWxlYXNlKCksIHRoaXMsIGVjKTsKKyAgICAgICAgcGFyZW50LT5yZXBsYWNlQ2hp
bGQobm9kZS5yZWxlYXNlTm9uTnVsbCgpLCAqdGhpcywgZWMpOwogICAgIGVsc2UKLSAgICAgICAg
cGFyZW50LT5pbnNlcnRCZWZvcmUobm9kZS5yZWxlYXNlKCksIHZpYWJsZU5leHRTaWJsaW5nLmdl
dCgpLCBlYyk7CisgICAgICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG5vZGUucmVsZWFzZU5vbk51
bGwoKSwgdmlhYmxlTmV4dFNpYmxpbmcuZ2V0KCksIGVjKTsKIH0KIAogdm9pZCBOb2RlOjpyZW1v
dmUoRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKENvbnRhaW5lck5vZGUqIHBhcmVudCA9
IHBhcmVudE5vZGUoKSkKLSAgICAgICAgcGFyZW50LT5yZW1vdmVDaGlsZCh0aGlzLCBlYyk7Cisg
ICAgICAgIHBhcmVudC0+cmVtb3ZlQ2hpbGQoKnRoaXMsIGVjKTsKIH0KIAogdm9pZCBOb2RlOjpu
b3JtYWxpemUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggOTI5ZWNlNDJjOGViN2MyYjVhNDM4ZTU5ZjVlMTc3
NmFiMTg5ZDA2NS4uYTUyZjBmNDNmMTUxMDYxZTgyNmQ1YTU4OTU0M2Y5YTE1OTkzZDhiZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZS5oCkBAIC0yMDEsOCArMjAxLDggQEAgcHVibGljOgogICAgICAgICBTZWxmV2l0aFRl
bXBsYXRlQ29udGVudCwKICAgICAgICAgRXZlcnl0aGluZywKICAgICB9OwotICAgIHZpcnR1YWwg
UmVmUHRyPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlv
bikgPSAwOwotICAgIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGUoYm9vbCBkZWVwKSB7IHJldHVybiBj
bG9uZU5vZGVJbnRlcm5hbChkb2N1bWVudCgpLCBkZWVwID8gQ2xvbmluZ09wZXJhdGlvbjo6RXZl
cnl0aGluZyA6IENsb25pbmdPcGVyYXRpb246Ok9ubHlTZWxmKTsgfQorICAgIHZpcnR1YWwgUmVm
PE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgPSAw
OworICAgIFJlZjxOb2RlPiBjbG9uZU5vZGUoYm9vbCBkZWVwKSB7IHJldHVybiBjbG9uZU5vZGVJ
bnRlcm5hbChkb2N1bWVudCgpLCBkZWVwID8gQ2xvbmluZ09wZXJhdGlvbjo6RXZlcnl0aGluZyA6
IENsb25pbmdPcGVyYXRpb246Ok9ubHlTZWxmKTsgfQogCiAgICAgdmlydHVhbCBjb25zdCBBdG9t
aWNTdHJpbmcmIGxvY2FsTmFtZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3Ry
aW5nJiBuYW1lc3BhY2VVUkkoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3Np
bmdJbnN0cnVjdGlvbi5jcHAKaW5kZXggYjM0M2NhM2EwMWFlOGVlZmRiNTk3ZTVkNGUyMmUyN2I5
OTNmZWY5MC4uMzAwMDliN2IwZGZjZWE1NjllMmNjZWExODMxNWNiMjc1MTMxYzA1ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKQEAgLTc5LDcgKzc5
LDcgQEAgTm9kZTo6Tm9kZVR5cGUgUHJvY2Vzc2luZ0luc3RydWN0aW9uOjpub2RlVHlwZSgpIGNv
bnN0CiAgICAgcmV0dXJuIFBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERTsKIH0KIAotUmVmUHRy
PE5vZGU+IFByb2Nlc3NpbmdJbnN0cnVjdGlvbjo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQm
IHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uKQorUmVmPE5vZGU+IFByb2Nlc3NpbmdJ
bnN0cnVjdGlvbjo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBD
bG9uaW5nT3BlcmF0aW9uKQogewogICAgIC8vIEZJWE1FOiBJcyBpdCBhIHByb2JsZW0gdGhhdCB0
aGlzIGRvZXMgbm90IGNvcHkgbV9sb2NhbEhyZWY/CiAgICAgLy8gV2hhdCBhYm91dCBvdGhlciBk
YXRhIG1lbWJlcnM/CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0lu
c3RydWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgK
aW5kZXggMjFmZDllOTdjZDJmNzVjOGZkNzU4MDBlMDIyYWRhMjk1Mzk3NmY4ZS4uZWZhOTA1YjY2
NjNmM2EyOTNjOTc3MTA1MzRmZDZmZGE5ODQyZTk3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Q
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaApAQCAtNTgsNyArNTgsNyBAQCBwcml2YXRlOgogCiAgICAg
dmlydHVhbCBTdHJpbmcgbm9kZU5hbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIE5v
ZGVUeXBlIG5vZGVUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZWZQdHI8Tm9k
ZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENs
b25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmlj
YXRpb25SZXF1ZXN0IGluc2VydGVkSW50byhDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUmKSBvdmVycmlkZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
UmFuZ2UuY3BwCmluZGV4IDRkMjI3ZGFhZjRlNDQ4ODE4ODQyNzFjMWJkZTlmMTg4M2Y1YWM0YTQu
LjI2NTA4Y2YwNDcyZDRmMGVkZWZhNWQzNTU3Y2U5MjNjNzhiMWI5MjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Jhbmdl
LmNwcApAQCAtNjY1LDcgKzY2NSw3IEBAIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBSYW5nZTo6
cHJvY2Vzc0NvbnRlbnRzKEFjdGlvblR5cGUgYWN0aW9uLCBFeGNlcHRpb25Db2RlCiAgICAgLy8g
KG9yIGp1c3QgZGVsZXRlIHRoZSBzdHVmZiBpbiBiZXR3ZWVuKQogCiAgICAgaWYgKChhY3Rpb24g
PT0gRXh0cmFjdCB8fCBhY3Rpb24gPT0gQ2xvbmUpICYmIGxlZnRDb250ZW50cykKLSAgICAgICAg
ZnJhZ21lbnQtPmFwcGVuZENoaWxkKGxlZnRDb250ZW50cywgZWMpOworICAgICAgICBmcmFnbWVu
dC0+YXBwZW5kQ2hpbGQoKmxlZnRDb250ZW50cywgZWMpOwogCiAgICAgaWYgKHByb2Nlc3NTdGFy
dCkgewogICAgICAgICBOb2RlVmVjdG9yIG5vZGVzOwpAQCAtNjc1LDcgKzY3NSw3IEBAIFJlZlB0
cjxEb2N1bWVudEZyYWdtZW50PiBSYW5nZTo6cHJvY2Vzc0NvbnRlbnRzKEFjdGlvblR5cGUgYWN0
aW9uLCBFeGNlcHRpb25Db2RlCiAgICAgfQogCiAgICAgaWYgKChhY3Rpb24gPT0gRXh0cmFjdCB8
fCBhY3Rpb24gPT0gQ2xvbmUpICYmIHJpZ2h0Q29udGVudHMpCi0gICAgICAgIGZyYWdtZW50LT5h
cHBlbmRDaGlsZChyaWdodENvbnRlbnRzLCBlYyk7CisgICAgICAgIGZyYWdtZW50LT5hcHBlbmRD
aGlsZCgqcmlnaHRDb250ZW50cywgZWMpOwogCiAgICAgcmV0dXJuIGZyYWdtZW50OwogfQpAQCAt
NzAyLDcgKzcwMiw3IEBAIFJlZlB0cjxOb2RlPiBSYW5nZTo6cHJvY2Vzc0NvbnRlbnRzQmV0d2Vl
bk9mZnNldHMoQWN0aW9uVHlwZSBhY3Rpb24sIFBhc3NSZWZQdHI8CiAgICAgICAgIGVuZE9mZnNl
dCA9IHN0ZDo6bWluKGVuZE9mZnNldCwgc3RhdGljX2Nhc3Q8Q2hhcmFjdGVyRGF0YSo+KGNvbnRh
aW5lciktPmxlbmd0aCgpKTsKICAgICAgICAgc3RhcnRPZmZzZXQgPSBzdGQ6Om1pbihzdGFydE9m
ZnNldCwgZW5kT2Zmc2V0KTsKICAgICAgICAgaWYgKGFjdGlvbiA9PSBFeHRyYWN0IHx8IGFjdGlv
biA9PSBDbG9uZSkgewotICAgICAgICAgICAgUmVmUHRyPENoYXJhY3RlckRhdGE+IGMgPSBzdGF0
aWNfcG9pbnRlcl9jYXN0PENoYXJhY3RlckRhdGE+KGNvbnRhaW5lci0+Y2xvbmVOb2RlKHRydWUp
KTsKKyAgICAgICAgICAgIFJlZlB0cjxDaGFyYWN0ZXJEYXRhPiBjID0gc3RhdGljX2Nhc3Q8Q2hh
cmFjdGVyRGF0YSo+KGNvbnRhaW5lci0+Y2xvbmVOb2RlKHRydWUpLnB0cigpKTsKICAgICAgICAg
ICAgIGRlbGV0ZUNoYXJhY3RlckRhdGEoYywgc3RhcnRPZmZzZXQsIGVuZE9mZnNldCwgZWMpOwog
ICAgICAgICAgICAgaWYgKGZyYWdtZW50KSB7CiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZnJh
Z21lbnQ7CkBAIC03MTcsNyArNzE3LDcgQEAgUmVmUHRyPE5vZGU+IFJhbmdlOjpwcm9jZXNzQ29u
dGVudHNCZXR3ZWVuT2Zmc2V0cyhBY3Rpb25UeXBlIGFjdGlvbiwgUGFzc1JlZlB0cjwKICAgICAg
ICAgZW5kT2Zmc2V0ID0gc3RkOjptaW4oZW5kT2Zmc2V0LCBzdGF0aWNfY2FzdDxQcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24qPihjb250YWluZXIpLT5kYXRhKCkubGVuZ3RoKCkpOwogICAgICAgICBzdGFy
dE9mZnNldCA9IHN0ZDo6bWluKHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQpOwogICAgICAgICBpZiAo
YWN0aW9uID09IEV4dHJhY3QgfHwgYWN0aW9uID09IENsb25lKSB7Ci0gICAgICAgICAgICBSZWZQ
dHI8UHJvY2Vzc2luZ0luc3RydWN0aW9uPiBjID0gc3RhdGljX3BvaW50ZXJfY2FzdDxQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24+KGNvbnRhaW5lci0+Y2xvbmVOb2RlKHRydWUpKTsKKyAgICAgICAgICAg
IFJlZlB0cjxQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24+IGMgPSBzdGF0aWNfY2FzdDxQcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24qPihjb250YWluZXItPmNsb25lTm9kZSh0cnVlKS5wdHIoKSk7CiAgICAgICAg
ICAgICBjLT5zZXREYXRhKGMtPmRhdGEoKS5zdWJzdHJpbmcoc3RhcnRPZmZzZXQsIGVuZE9mZnNl
dCAtIHN0YXJ0T2Zmc2V0KSwgZWMpOwogICAgICAgICAgICAgaWYgKGZyYWdtZW50KSB7CiAgICAg
ICAgICAgICAgICAgcmVzdWx0ID0gZnJhZ21lbnQ7CkBAIC05MzUsNyArOTM1LDcgQEAgdm9pZCBS
YW5nZTo6aW5zZXJ0Tm9kZShQYXNzUmVmUHRyPE5vZGU+IHBycE5ld05vZGUsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAKICAgICAgICAgY29udGFpbmVy
ID0gJnN0YXJ0Q29udGFpbmVyKCk7Ci0gICAgICAgIGNvbnRhaW5lci0+cGFyZW50Tm9kZSgpLT5p
bnNlcnRCZWZvcmUobmV3Tm9kZS5yZWxlYXNlKCksIG5ld1RleHQuZ2V0KCksIGVjKTsKKyAgICAg
ICAgY29udGFpbmVyLT5wYXJlbnROb2RlKCktPmluc2VydEJlZm9yZShuZXdOb2RlLnJlbGVhc2VO
b25OdWxsKCksIG5ld1RleHQuZ2V0KCksIGVjKTsKICAgICAgICAgaWYgKGVjKQogICAgICAgICAg
ICAgcmV0dXJuOwogCkBAIC0xMzAzLDcgKzEzMDMsNyBAQCB2b2lkIFJhbmdlOjpzdXJyb3VuZENv
bnRlbnRzKFBhc3NSZWZQdHI8Tm9kZT4gcGFzc05ld1BhcmVudCwgRXhjZXB0aW9uQ29kZSYgZWMp
CiAKICAgICBlYyA9IDA7CiAgICAgd2hpbGUgKE5vZGUqIG4gPSBuZXdQYXJlbnQtPmZpcnN0Q2hp
bGQoKSkgewotICAgICAgICBkb3duY2FzdDxDb250YWluZXJOb2RlPigqbmV3UGFyZW50KS5yZW1v
dmVDaGlsZChuLCBlYyk7CisgICAgICAgIGRvd25jYXN0PENvbnRhaW5lck5vZGU+KCpuZXdQYXJl
bnQpLnJlbW92ZUNoaWxkKCpuLCBlYyk7CiAgICAgICAgIGlmIChlYykKICAgICAgICAgICAgIHJl
dHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKaW5kZXggYTEyMjU3ZjgyZGRh
ZGM4MDM4ZThhMzBhMzQyNTJmNjMyOWY3YmI2Yy4uODg2MTAwZGI0NjllMjQxZTQ2Yjk1NmJjNTcw
MWRhMGNjNWU2Njk1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcApAQCAtOTIsNyArOTIs
NyBAQCB2b2lkIFNoYWRvd1Jvb3Q6OnNldElubmVySFRNTChjb25zdCBTdHJpbmcmIG1hcmt1cCwg
RXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgfQogCiAgICAgaWYgKFJlZlB0cjxEb2N1bWVudEZyYWdt
ZW50PiBmcmFnbWVudCA9IGNyZWF0ZUZyYWdtZW50Rm9ySW5uZXJPdXRlckhUTUwobWFya3VwLCBo
b3N0KCksIEFsbG93U2NyaXB0aW5nQ29udGVudCwgZWMpKQotICAgICAgICByZXBsYWNlQ2hpbGRy
ZW5XaXRoRnJhZ21lbnQoKnRoaXMsIGZyYWdtZW50LnJlbGVhc2UoKSwgZWMpOworICAgICAgICBy
ZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQoKnRoaXMsIGZyYWdtZW50LnJlbGVhc2VOb25OdWxs
KCksIGVjKTsKIH0KIAogYm9vbCBTaGFkb3dSb290OjpjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBl
IHR5cGUpIGNvbnN0CkBAIC0xMzEsOSArMTMxLDEwIEBAIHZvaWQgU2hhZG93Um9vdDo6Y2hpbGRy
ZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2UpCiAgICAgaW52YWxpZGF0ZURpc3Ry
aWJ1dGlvbigpOwogfQogCi1SZWZQdHI8Tm9kZT4gU2hhZG93Um9vdDo6Y2xvbmVOb2RlSW50ZXJu
YWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKQorUmVmPE5vZGU+IFNoYWRvd1Jvb3Q6OmNs
b25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikKIHsKLSAgICByZXR1
cm4gbnVsbHB0cjsgLy8gU2hhZG93Um9vdHMgc2hvdWxkIG5ldmVyIGJlIGNsb25lZC4KKyAgICBS
RUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAqc3RhdGljX2Nhc3Q8Tm9k
ZSo+KG51bGxwdHIpOyAvLyBTaGFkb3dSb290cyBzaG91bGQgbmV2ZXIgYmUgY2xvbmVkLgogfQog
CiB2b2lkIFNoYWRvd1Jvb3Q6OnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hh
ZG93Um9vdC5oCmluZGV4IDZkMzExZmRiNjI2M2RhMTJkYzlkOTA0ZjcxMGQwN2I5ZWM4NWE4Y2Yu
LjYzMTYwOGFmMWFkNDQzNmEyNWJhNjFlYjM5ZGVkOGZmNmEyMmJiZDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1No
YWRvd1Jvb3QuaApAQCAtNzYsNyArNzYsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBj
aGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgb3ZlcnJpZGU7CiAKLSAgICB2
aXJ0dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdP
cGVyYXRpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNsb25lTm9kZUludGVy
bmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CiAKICAgICAvLyBGSVhN
RTogVGhpcyBzaG91bGRuJ3QgaGFwcGVuLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODg4MzQKICAgICBib29sIGlzT3JwaGFuKCkgY29uc3QgeyByZXR1cm4gIW1faG9z
dDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1RleHQuY3BwCmluZGV4IGIxMTcxZDc2MTFiZTZkZTY1MTZiNjA1ZGNmZTFiNmRj
MTlkNzEzNDMuLjZjNGM4OWRhOWViNmVmY2YwNmFiODQyOWVhNWM0ZDEyMjNlZTM0NjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVGV4dC5jcHAKQEAgLTczLDcgKzczLDcgQEAgUmVmUHRyPFRleHQ+IFRleHQ6OnNwbGl0VGV4
dCh1bnNpZ25lZCBvZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIGRpc3BhdGNoTW9kaWZp
ZWRFdmVudChvbGRTdHIpOwogCiAgICAgaWYgKHBhcmVudE5vZGUoKSkKLSAgICAgICAgcGFyZW50
Tm9kZSgpLT5pbnNlcnRCZWZvcmUobmV3VGV4dC5wdHIoKSwgbmV4dFNpYmxpbmcoKSwgZWMpOwor
ICAgICAgICBwYXJlbnROb2RlKCktPmluc2VydEJlZm9yZShuZXdUZXh0LmNvcHlSZWYoKSwgbmV4
dFNpYmxpbmcoKSwgZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTEz
MiwyOCArMTMyLDI4IEBAIFJlZlB0cjxUZXh0PiBUZXh0OjpyZXBsYWNlV2hvbGVUZXh0KGNvbnN0
IFN0cmluZyYgbmV3VGV4dCwgRXhjZXB0aW9uQ29kZSYpCiAgICAgUmVmUHRyPFRleHQ+IHByb3Rl
Y3RlZFRoaXModGhpcyk7IC8vIE11dGF0aW9uIGV2ZW50IGhhbmRsZXJzIGNvdWxkIGNhdXNlIG91
ciBsYXN0IHJlZiB0byBnbyBhd2F5CiAgICAgUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCA9
IHBhcmVudE5vZGUoKTsgLy8gUHJvdGVjdCBhZ2FpbnN0IG11dGF0aW9uIGhhbmRsZXJzIG1vdmlu
ZyB0aGlzIG5vZGUgZHVyaW5nIHRyYXZlcnNhbAogICAgIGZvciAoUmVmUHRyPE5vZGU+IG4gPSBz
dGFydFRleHQ7IG4gJiYgbiAhPSB0aGlzICYmIG4tPmlzVGV4dE5vZGUoKSAmJiBuLT5wYXJlbnRO
b2RlKCkgPT0gcGFyZW50OykgewotICAgICAgICBSZWZQdHI8Tm9kZT4gbm9kZVRvUmVtb3ZlKG4u
cmVsZWFzZSgpKTsKKyAgICAgICAgUmVmPE5vZGU+IG5vZGVUb1JlbW92ZShuLnJlbGVhc2VOb25O
dWxsKCkpOwogICAgICAgICBuID0gbm9kZVRvUmVtb3ZlLT5uZXh0U2libGluZygpOwotICAgICAg
ICBwYXJlbnQtPnJlbW92ZUNoaWxkKG5vZGVUb1JlbW92ZS5nZXQoKSwgSUdOT1JFX0VYQ0VQVElP
Tik7CisgICAgICAgIHBhcmVudC0+cmVtb3ZlQ2hpbGQoV1RGOjptb3ZlKG5vZGVUb1JlbW92ZSks
IElHTk9SRV9FWENFUFRJT04pOwogICAgIH0KIAogICAgIGlmICh0aGlzICE9IGVuZFRleHQpIHsK
ICAgICAgICAgTm9kZSogb25lUGFzdEVuZFRleHQgPSBlbmRUZXh0LT5uZXh0U2libGluZygpOwog
ICAgICAgICBmb3IgKFJlZlB0cjxOb2RlPiBuID0gbmV4dFNpYmxpbmcoKTsgbiAmJiBuICE9IG9u
ZVBhc3RFbmRUZXh0ICYmIG4tPmlzVGV4dE5vZGUoKSAmJiBuLT5wYXJlbnROb2RlKCkgPT0gcGFy
ZW50OykgewotICAgICAgICAgICAgUmVmUHRyPE5vZGU+IG5vZGVUb1JlbW92ZShuLnJlbGVhc2Uo
KSk7CisgICAgICAgICAgICBSZWY8Tm9kZT4gbm9kZVRvUmVtb3ZlKG4ucmVsZWFzZU5vbk51bGwo
KSk7CiAgICAgICAgICAgICBuID0gbm9kZVRvUmVtb3ZlLT5uZXh0U2libGluZygpOwotICAgICAg
ICAgICAgcGFyZW50LT5yZW1vdmVDaGlsZChub2RlVG9SZW1vdmUuZ2V0KCksIElHTk9SRV9FWENF
UFRJT04pOworICAgICAgICAgICAgcGFyZW50LT5yZW1vdmVDaGlsZChXVEY6Om1vdmUobm9kZVRv
UmVtb3ZlKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAo
bmV3VGV4dC5pc0VtcHR5KCkpIHsKICAgICAgICAgaWYgKHBhcmVudCAmJiBwYXJlbnROb2RlKCkg
PT0gcGFyZW50KQotICAgICAgICAgICAgcGFyZW50LT5yZW1vdmVDaGlsZCh0aGlzLCBJR05PUkVf
RVhDRVBUSU9OKTsKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICBwYXJlbnQtPnJlbW92
ZUNoaWxkKCp0aGlzLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgfQogCiAgICAgc2V0RGF0YShuZXdUZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKLSAgICBy
ZXR1cm4gcHJvdGVjdGVkVGhpcy5yZWxlYXNlKCk7CisgICAgcmV0dXJuIHByb3RlY3RlZFRoaXM7
CiB9CiAKIFN0cmluZyBUZXh0Ojpub2RlTmFtZSgpIGNvbnN0CkBAIC0xNjYsNyArMTY2LDcgQEAg
Tm9kZTo6Tm9kZVR5cGUgVGV4dDo6bm9kZVR5cGUoKSBjb25zdAogICAgIHJldHVybiBURVhUX05P
REU7CiB9CiAKLVJlZlB0cjxOb2RlPiBUZXh0OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYg
dGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24pCitSZWY8Tm9kZT4gVGV4dDo6Y2xvbmVO
b2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uKQog
ewogICAgIHJldHVybiBjcmVhdGUodGFyZ2V0RG9jdW1lbnQsIGRhdGEoKSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHQu
aAppbmRleCBhOTY3NDM2NGNkYTBkZWRiOGVjYTU5Y2MwYTI1YTUzNzJiYmE5N2Q0Li5lZmQ2YmRl
OTI3YzFmOTk5MzU3ZTI1MWVlNDU0MjA5YWQxY2Y1MGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vVGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmgKQEAgLTYyLDcg
KzYyLDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICB2aXJ0dWFsIFN0cmluZyBub2RlTmFt
ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgTm9kZVR5cGUgbm9kZVR5cGUoKSBjb25z
dCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChE
b2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPE5v
ZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCBib29sIGNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUpIGNvbnN0IG92
ZXJyaWRlOwogCiAgICAgdmlydHVhbCBSZWY8VGV4dD4gdmlydHVhbENyZWF0ZShjb25zdCBTdHJp
bmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1h
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKaW5k
ZXggNmE4ZDllOTFhMjUxYjFhYjk3YTE5ZTIzMjMyMGNiODQ2OGI1YzMwNC4uY2VlZWRmZDE3YTgz
MjExMDM0ZmU3NWU5ZTY1ZWFhMmJmZjg3ZmFjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKQEAgLTM1LDEzICszNSwxMiBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLUFwcGVuZE5vZGVDb21tYW5kOjpBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVm
UHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBFZGl0QWN0
aW9uIGVkaXRpbmdBY3Rpb24pCitBcHBlbmROb2RlQ29tbWFuZDo6QXBwZW5kTm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIE5vZGUmIG5vZGUsIEVkaXRBY3Rpb24g
ZWRpdGluZ0FjdGlvbikKICAgICA6IFNpbXBsZUVkaXRDb21tYW5kKHBhcmVudC0+ZG9jdW1lbnQo
KSwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1fcGFyZW50KHBhcmVudCkKICAgICAsIG1fbm9kZShu
b2RlKQogewogICAgIEFTU0VSVChtX3BhcmVudCk7Ci0gICAgQVNTRVJUKG1fbm9kZSk7CiAgICAg
QVNTRVJUKCFtX25vZGUtPnBhcmVudE5vZGUoKSk7CiAKICAgICBBU1NFUlQobV9wYXJlbnQtPmhh
c0VkaXRhYmxlU3R5bGUoKSB8fCAhbV9wYXJlbnQtPnJlbmRlcmVyKCkpOwpAQCAtNjgsMTAgKzY3
LDExIEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogICAgIGlmICghbV9wYXJl
bnQtPmhhc0VkaXRhYmxlU3R5bGUoKSAmJiBtX3BhcmVudC0+cmVuZGVyZXIoKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKG1fbm9kZS5nZXQoKSwgSUdOT1JF
X0VYQ0VQVElPTik7CisgICAgUmVmPE5vZGU+IG5vZGVUb0FwcGVuZCA9IG1fbm9kZS5jb3B5UmVm
KCk7CisgICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShub2RlVG9BcHBlbmQpLCBJ
R05PUkVfRVhDRVBUSU9OKTsKIAogICAgIGlmIChzaG91bGRQb3N0QWNjZXNzaWJpbGl0eU5vdGlm
aWNhdGlvbigpKQotICAgICAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyht
X25vZGUuZ2V0KCksIGFwcGx5RWRpdFR5cGUoKSk7CisgICAgICAgIHNlbmRBWFRleHRDaGFuZ2Vk
SWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5wdHIoKSwgYXBwbHlFZGl0VHlwZSgpKTsKIH0KIAog
dm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKQEAgLTgxLDcgKzgxLDcgQEAgdm9p
ZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIAogICAgIC8vIE5lZWQgdG8gbm90aWZ5
IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0CiAgICAgaWYgKHNob3VsZFBv
c3RBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uKCkpCi0gICAgICAgIHNlbmRBWFRleHRDaGFuZ2Vk
SWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCkpOworICAg
ICAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUucHRyKCksIHVu
YXBwbHlFZGl0VHlwZSgpKTsKIAogICAgIG1fbm9kZS0+cmVtb3ZlKElHTk9SRV9FWENFUFRJT04p
OwogfQpAQCAtOTAsNyArOTAsNyBAQCB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHko
KQogdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2Rl
Kj4mIG5vZGVzKQogewogICAgIGFkZE5vZGVBbmREZXNjZW5kYW50cyhtX3BhcmVudC5nZXQoKSwg
bm9kZXMpOwotICAgIGFkZE5vZGVBbmREZXNjZW5kYW50cyhtX25vZGUuZ2V0KCksIG5vZGVzKTsK
KyAgICBhZGROb2RlQW5kRGVzY2VuZGFudHMobV9ub2RlLnB0cigpLCBub2Rlcyk7CiB9CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFu
ZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCmluZGV4IGY3
ODI5NzViODkyMTUwYWUzNmQyOWE2YmJlY2E5ZjFkYzEzMDdjMzEuLmY2NGJhZGMwMGQwM2E5M2Yz
NzNkZTI3MTg2Yjg0ZjU0ZWQ0OWM5N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwZW5kTm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVu
ZE5vZGVDb21tYW5kLmgKQEAgLTMyLDEzICszMiwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIEFwcGVuZE5vZGVDb21tYW5kIDogcHVibGljIFNpbXBsZUVkaXRDb21tYW5kIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUmVmPEFwcGVuZE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0
cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgRWRpdEFjdGlv
biBlZGl0aW5nQWN0aW9uKQorICAgIHN0YXRpYyBSZWY8QXBwZW5kTm9kZUNvbW1hbmQ+IGNyZWF0
ZShQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgTm9kZSYgbm9kZSwgRWRpdEFjdGlv
biBlZGl0aW5nQWN0aW9uKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXBw
ZW5kTm9kZUNvbW1hbmQocGFyZW50LCBub2RlLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgfQogCiBw
cml2YXRlOgotICAgIEFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4g
cGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+LCBFZGl0QWN0aW9uKTsKKyAgICBBcHBlbmROb2RlQ29t
bWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgTm9kZSYsIEVkaXRBY3Rpb24p
OwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CkBAIC00OCw3ICs0OCw3IEBAIHByaXZhdGU6CiAjZW5k
aWYKIAogICAgIFJlZlB0cjxDb250YWluZXJOb2RlPiBtX3BhcmVudDsKLSAgICBSZWZQdHI8Tm9k
ZT4gbV9ub2RlOworICAgIFJlZjxOb2RlPiBtX25vZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRD
b21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQu
Y3BwCmluZGV4IDNkNzc5NDI0OGQyM2U5YjdhMjM5MTYyZjk3MWE0NDc0NzUxYjYzMDMuLjVkOWQz
NmZmNTBmNWRjZjY3ZDA4ZDBlNGE2MjUzNjM2ZTkxYjUwNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCkBAIC0zOTUsNyArMzk1LDggQEAg
dm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUF0KFBhc3NSZWZQdHI8Tm9kZT4g
aW5zZXJ0Q2hpbGQsIGNvbnN0IFBvc2kKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmFwcGVu
ZE5vZGUoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBh
cmVudCkKIHsKICAgICBBU1NFUlQoY2FuSGF2ZUNoaWxkcmVuRm9yRWRpdGluZyhwYXJlbnQuZ2V0
KCkpKTsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShBcHBlbmROb2RlQ29tbWFuZDo6Y3Jl
YXRlKHBhcmVudCwgbm9kZSwgZWRpdGluZ0FjdGlvbigpKSk7CisgICAgQVNTRVJUKG5vZGUpOwor
ICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEFwcGVuZE5vZGVDb21tYW5kOjpjcmVhdGUocGFy
ZW50LCAqbm9kZSwgZWRpdGluZ0FjdGlvbigpKSk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENv
bW1hbmQ6OnJlbW92ZUNoaWxkcmVuSW5SYW5nZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIHVuc2ln
bmVkIGZyb20sIHVuc2lnbmVkIHRvKQpAQCAtNDE0LDcgKzQxNSw3IEBAIHZvaWQgQ29tcG9zaXRl
RWRpdENvbW1hbmQ6OnJlbW92ZU5vZGUoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBTaG91bGRBc3N1
bWVDb250ZW50CiB7CiAgICAgaWYgKCFub2RlIHx8ICFub2RlLT5ub25TaGFkb3dCb3VuZGFyeVBh
cmVudE5vZGUoKSkKICAgICAgICAgcmV0dXJuOwotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRl
KFJlbW92ZU5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUpKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShSZW1vdmVOb2RlQ29t
bWFuZDo6Y3JlYXRlKCpub2RlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkp
OwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVOb2RlUHJlc2VydmluZ0No
aWxkcmVuKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCkBAIC0xNTQxLDcg
KzE1NDIsNyBAQCBQYXNzUmVmUHRyPE5vZGU+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjpzcGxpdFRy
ZWVUb05vZGUoTm9kZSogc3RhcnQsIE5vZGUqIGVuZCwgYgogICAgIHJldHVybiBub2RlLnJlbGVh
c2UoKTsKIH0KIAotUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVhdGVCbG9ja1BsYWNlaG9sZGVyRWxl
bWVudChEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8RWxlbWVudD4gY3JlYXRlQmxvY2tQbGFjZWhv
bGRlckVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KGJyVGFnLCBmYWxzZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCBjNjQ5MWQyNjkyNjVlNWFiNmNl
OTY1ZWFhOTUzNDFiNjU0NDdkMWFlLi41NjA5OTcxMzNmNjE5ZTNkMGE3MmRjYmRhZmJhYjE3OGQ4
ZjMwZDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5jcHAKQEAgLTYzMiw3ICs2MzIsNyBAQCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQ6Om1lcmdlUGFyYWdyYXBocygpCiAgICAgCiAgICAgLy8gV2UgbmVlZCB0byBtZXJnZSBpbnRv
IG1fdXBzdHJlYW1TdGFydCdzIGJsb2NrLCBidXQgaXQncyBiZWVuIGVtcHRpZWQgb3V0IGFuZCBj
b2xsYXBzZWQgYnkgZGVsZXRpb24uCiAgICAgaWYgKCFtZXJnZURlc3RpbmF0aW9uLmRlZXBFcXVp
dmFsZW50KCkuZGVwcmVjYXRlZE5vZGUoKSB8fCAhbWVyZ2VEZXN0aW5hdGlvbi5kZWVwRXF1aXZh
bGVudCgpLmRlcHJlY2F0ZWROb2RlKCktPmlzRGVzY2VuZGFudE9mKGVuY2xvc2luZ0Jsb2NrKG1f
dXBzdHJlYW1TdGFydC5jb250YWluZXJOb2RlKCkpKSB8fCBtX3N0YXJ0c0F0RW1wdHlMaW5lKSB7
Ci0gICAgICAgIGluc2VydE5vZGVBdChjcmVhdGVCcmVha0VsZW1lbnQoZG9jdW1lbnQoKSkuZ2V0
KCksIG1fdXBzdHJlYW1TdGFydCk7CisgICAgICAgIGluc2VydE5vZGVBdChjcmVhdGVCcmVha0Vs
ZW1lbnQoZG9jdW1lbnQoKSkucHRyKCksIG1fdXBzdHJlYW1TdGFydCk7CiAgICAgICAgIG1lcmdl
RGVzdGluYXRpb24gPSBWaXNpYmxlUG9zaXRpb24obV91cHN0cmVhbVN0YXJ0KTsKICAgICB9CiAg
ICAgCkBAIC04NTUsNyArODU1LDcgQEAgdm9pZCBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkb0Fw
cGx5KCkKICAgICAKICAgICByZW1vdmVQcmV2aW91c2x5U2VsZWN0ZWRFbXB0eVRhYmxlUm93cygp
OwogICAgIAotICAgIFJlZlB0cjxOb2RlPiBwbGFjZWhvbGRlciA9IG1fbmVlZFBsYWNlaG9sZGVy
ID8gY3JlYXRlQnJlYWtFbGVtZW50KGRvY3VtZW50KCkpLmdldCgpIDogMDsKKyAgICBSZWZQdHI8
Tm9kZT4gcGxhY2Vob2xkZXIgPSBtX25lZWRQbGFjZWhvbGRlciA/IGNyZWF0ZUJyZWFrRWxlbWVu
dChkb2N1bWVudCgpKS5wdHIoKSA6IG51bGxwdHI7CiAgICAgCiAgICAgaWYgKHBsYWNlaG9sZGVy
KSB7CiAgICAgICAgIGlmIChtX3Nhbml0aXplTWFya3VwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yQ29tbWFuZC5jcHAKaW5kZXggMGY4Zjg4MDMzYTRmZWZhMjNkNzUyNjg5OWVlNDc0MTlm
ZDQwNzIyYi4uMTJjZGQyMWQ4ZWMxM2Q3MGU1ZmIwMDNjZTg3ZjJkOTI1MTY4MmMyYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCkBAIC0xNjUsMTEgKzE2NSwxMSBA
QCBzdGF0aWMgYm9vbCBleGVjdXRlSW5zZXJ0RnJhZ21lbnQoRnJhbWUmIGZyYW1lLCBQYXNzUmVm
UHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYQogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMg
Ym9vbCBleGVjdXRlSW5zZXJ0Tm9kZShGcmFtZSYgZnJhbWUsIFBhc3NSZWZQdHI8Tm9kZT4gY29u
dGVudCkKK3N0YXRpYyBib29sIGV4ZWN1dGVJbnNlcnROb2RlKEZyYW1lJiBmcmFtZSwgUmVmPE5v
ZGU+JiYgY29udGVudCkKIHsKICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQg
PSBEb2N1bWVudEZyYWdtZW50OjpjcmVhdGUoKmZyYW1lLmRvY3VtZW50KCkpOwogICAgIEV4Y2Vw
dGlvbkNvZGUgZWMgPSAwOwotICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChjb250ZW50LCBlYyk7
CisgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShjb250ZW50KSwgZWMpOwogICAg
IGlmIChlYykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJldHVybiBleGVjdXRlSW5zZXJ0
RnJhZ21lbnQoZnJhbWUsIGZyYWdtZW50LnJlbGVhc2UoKSk7CkBAIC00NjQsMTAgKzQ2NCwxMCBA
QCBzdGF0aWMgYm9vbCBleGVjdXRlSW5zZXJ0QmFja3RhYihGcmFtZSYgZnJhbWUsIEV2ZW50KiBl
dmVudCwgRWRpdG9yQ29tbWFuZFNvdXJjZQogCiBzdGF0aWMgYm9vbCBleGVjdXRlSW5zZXJ0SG9y
aXpvbnRhbFJ1bGUoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2UsIGNv
bnN0IFN0cmluZyYgdmFsdWUpCiB7Ci0gICAgUmVmUHRyPEhUTUxIUkVsZW1lbnQ+IHJ1bGUgPSBI
VE1MSFJFbGVtZW50OjpjcmVhdGUoKmZyYW1lLmRvY3VtZW50KCkpOworICAgIFJlZjxIVE1MSFJF
bGVtZW50PiBydWxlID0gSFRNTEhSRWxlbWVudDo6Y3JlYXRlKCpmcmFtZS5kb2N1bWVudCgpKTsK
ICAgICBpZiAoIXZhbHVlLmlzRW1wdHkoKSkKICAgICAgICAgcnVsZS0+c2V0SWRBdHRyaWJ1dGUo
dmFsdWUpOwotICAgIHJldHVybiBleGVjdXRlSW5zZXJ0Tm9kZShmcmFtZSwgcnVsZS5yZWxlYXNl
KCkpOworICAgIHJldHVybiBleGVjdXRlSW5zZXJ0Tm9kZShmcmFtZSwgV1RGOjptb3ZlKHJ1bGUp
KTsKIH0KIAogc3RhdGljIGJvb2wgZXhlY3V0ZUluc2VydEhUTUwoRnJhbWUmIGZyYW1lLCBFdmVu
dCosIEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0cmluZyYgdmFsdWUpCkBAIC00NzgsOSAr
NDc4LDkgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZUluc2VydEhUTUwoRnJhbWUmIGZyYW1lLCBFdmVu
dCosIEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFMKIHN0YXRpYyBib29sIGV4ZWN1dGVJbnNl
cnRJbWFnZShGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29uc3Qg
U3RyaW5nJiB2YWx1ZSkKIHsKICAgICAvLyBGSVhNRTogSWYgdXNlckludGVyZmFjZSBpcyB0cnVl
LCB3ZSBzaG91bGQgZGlzcGxheSBhIGRpYWxvZyBib3ggYW5kIGxldCB0aGUgdXNlciBjaG9vc2Ug
YSBsb2NhbCBpbWFnZS4KLSAgICBSZWZQdHI8SFRNTEltYWdlRWxlbWVudD4gaW1hZ2UgPSBIVE1M
SW1hZ2VFbGVtZW50OjpjcmVhdGUoKmZyYW1lLmRvY3VtZW50KCkpOworICAgIFJlZjxIVE1MSW1h
Z2VFbGVtZW50PiBpbWFnZSA9IEhUTUxJbWFnZUVsZW1lbnQ6OmNyZWF0ZSgqZnJhbWUuZG9jdW1l
bnQoKSk7CiAgICAgaW1hZ2UtPnNldFNyYyh2YWx1ZSk7Ci0gICAgcmV0dXJuIGV4ZWN1dGVJbnNl
cnROb2RlKGZyYW1lLCBpbWFnZS5yZWxlYXNlKCkpOworICAgIHJldHVybiBleGVjdXRlSW5zZXJ0
Tm9kZShmcmFtZSwgV1RGOjptb3ZlKGltYWdlKSk7CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVJ
bnNlcnRMaW5lQnJlYWsoRnJhbWUmIGZyYW1lLCBFdmVudCogZXZlbnQsIEVkaXRvckNvbW1hbmRT
b3VyY2Ugc291cmNlLCBjb25zdCBTdHJpbmcmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnRMaW5lQnJlYWtDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvSW5zZXJ0TGluZUJyZWFrQ29tbWFuZC5jcHAKaW5kZXggNmVlMjFkOTIyNzNkY2U1NWYxMjQ4
NmY4Zjk3ODdhMjY4MGVlMzkwMC4uMjVhYjA3MTI0ZTc5Mjc3MjAyNDVlZTZkNmU0NmNlZDFjNmU5
Yzg1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRMaW5lQnJlYWtD
b21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydExpbmVCcmVha0Nv
bW1hbmQuY3BwCkBAIC0xMjksNyArMTI5LDcgQEAgdm9pZCBJbnNlcnRMaW5lQnJlYWtDb21tYW5k
Ojpkb0FwcGx5KCkKICAgICAgICAgCiAgICAgICAgIC8vIEluc2VydCBhbiBleHRyYSBiciBvciAn
XG4nIGlmIHRoZSBqdXN0IGluc2VydGVkIG9uZSBjb2xsYXBzZWQuCiAgICAgICAgIGlmICghaXNT
dGFydE9mUGFyYWdyYXBoKHBvc2l0aW9uQmVmb3JlTm9kZShub2RlVG9JbnNlcnQuZ2V0KCkpKSkK
LSAgICAgICAgICAgIGluc2VydE5vZGVCZWZvcmUobm9kZVRvSW5zZXJ0LT5jbG9uZU5vZGUoZmFs
c2UpLmdldCgpLCBub2RlVG9JbnNlcnQuZ2V0KCkpOworICAgICAgICAgICAgaW5zZXJ0Tm9kZUJl
Zm9yZShub2RlVG9JbnNlcnQtPmNsb25lTm9kZShmYWxzZSksIG5vZGVUb0luc2VydC5nZXQoKSk7
CiAgICAgICAgIAogICAgICAgICBzZXRFbmRpbmdTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihw
b3NpdGlvbkluUGFyZW50QWZ0ZXJOb2RlKG5vZGVUb0luc2VydC5nZXQoKSksIERPV05TVFJFQU0s
IGVuZGluZ1NlbGVjdGlvbigpLmlzRGlyZWN0aW9uYWwoKSkpOwogICAgIC8vIElmIHdlJ3JlIGlu
c2VydGluZyBhZnRlciBhbGwgb2YgdGhlIHJlbmRlcmVkIHRleHQgaW4gYSB0ZXh0IG5vZGUsIG9y
IGludG8gYSBub24tdGV4dCBub2RlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAppbmRleCBmYTE0ZDA3NjZlYWY3NWZhNDMxOWU2ZDg4
NTc0YWYzZDNhMDNlNDM2Li41MGY2NTQ1ZTYyZjdiZGI4NGZkMGM1ZWI1MzRlNGVjYzg2MWRiYTI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmNwcApAQCAtNTUsNyArNTUsNyBAQCB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpk
b0FwcGx5KCkKICAgICAgICAgcmV0dXJuOwogICAgIEFTU0VSVChpc0VkaXRhYmxlTm9kZSgqcGFy
ZW50KSk7CiAKLSAgICBwYXJlbnQtPmluc2VydEJlZm9yZShtX2luc2VydENoaWxkLmdldCgpLCBt
X3JlZkNoaWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBwYXJlbnQtPmluc2VydEJl
Zm9yZSgqbV9pbnNlcnRDaGlsZCwgbV9yZWZDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7
CiAKICAgICBpZiAoc2hvdWxkUG9zdEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24oKSkgewogICAg
ICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpID8g
UG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDogY3JlYXRl
TGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDApOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5k
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29t
bWFuZC5jcHAKaW5kZXggN2RkMDE2MGNkMDM0M2RhYWRmMTI0MzQxMmUzZWFhZmYxNjE3ZDY1YS4u
MTUwMzIyOTJhZGU2NTg4NDRhN2Y5MjA2Y2ZhYjcwOWZiNTY0MTBjZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1h
bmQuY3BwCkBAIC0zNjgsNyArMzY4LDcgQEAgdm9pZCBJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JD
b21tYW5kOjpkb0FwcGx5KCkKICAgICAvLyBjcmVhdGVkLiAgQWxsIG9mIHRoZSBub2Rlcywgc3Rh
cnRpbmcgYXQgdmlzaWJsZVBvcywgYXJlIGFib3V0IHRvIGJlIGFkZGVkIHRvIHRoZSBuZXcgcGFy
YWdyYXBoIAogICAgIC8vIGVsZW1lbnQuICBJZiB0aGUgZmlyc3Qgbm9kZSB0byBiZSBpbnNlcnRl
ZCB3b24ndCBiZSBvbmUgdGhhdCB3aWxsIGhvbGQgYW4gZW1wdHkgbGluZSBvcGVuLCBhZGQgYSBi
ci4KICAgICBpZiAoaXNFbmRPZlBhcmFncmFwaCh2aXNpYmxlUG9zKSAmJiAhbGluZUJyZWFrRXhp
c3RzQXRWaXNpYmxlUG9zaXRpb24odmlzaWJsZVBvcykpCi0gICAgICAgIGFwcGVuZE5vZGUoY3Jl
YXRlQnJlYWtFbGVtZW50KGRvY3VtZW50KCkpLmdldCgpLCBibG9ja1RvSW5zZXJ0LmdldCgpKTsK
KyAgICAgICAgYXBwZW5kTm9kZShjcmVhdGVCcmVha0VsZW1lbnQoZG9jdW1lbnQoKSksIGJsb2Nr
VG9JbnNlcnQuZ2V0KCkpOwogCiAgICAgLy8gTW92ZSB0aGUgc3RhcnQgbm9kZSBhbmQgdGhlIHNp
YmxpbmdzIG9mIHRoZSBzdGFydCBub2RlLgogICAgIGlmIChWaXNpYmxlUG9zaXRpb24oaW5zZXJ0
aW9uUG9zaXRpb24pICE9IFZpc2libGVQb3NpdGlvbihwb3NpdGlvbkJlZm9yZU5vZGUoYmxvY2tU
b0luc2VydC5nZXQoKSkpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01l
cmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
TWVyZ2VJZGVudGljYWxFbGVtZW50c0NvbW1hbmQuY3BwCmluZGV4IDQ2NTE4ODQ2MzY0ZmEzM2My
ODVjZjYwMDk3ZjA0M2IyYzJjZjM4N2UuLjRhNTllZjY4MGQ2YTBkZjIxNzM1YTllYjIwNTBhMThl
ZGY2NmYxY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWVyZ2VJZGVudGlj
YWxFbGVtZW50c0NvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWVyZ2VJ
ZGVudGljYWxFbGVtZW50c0NvbW1hbmQuY3BwCkBAIC00NywxMyArNDcsMTMgQEAgdm9pZCBNZXJn
ZUlkZW50aWNhbEVsZW1lbnRzQ29tbWFuZDo6ZG9BcHBseSgpCiAKICAgICBtX2F0Q2hpbGQgPSBt
X2VsZW1lbnQyLT5maXJzdENoaWxkKCk7CiAKLSAgICBWZWN0b3I8UmVmUHRyPE5vZGU+PiBjaGls
ZHJlbjsKKyAgICBWZWN0b3I8UmVmPE5vZGU+PiBjaGlsZHJlbjsKICAgICBmb3IgKE5vZGUqIGNo
aWxkID0gbV9lbGVtZW50MS0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4
dFNpYmxpbmcoKSkKLSAgICAgICAgY2hpbGRyZW4uYXBwZW5kKGNoaWxkKTsKKyAgICAgICAgY2hp
bGRyZW4uYXBwZW5kKCpjaGlsZCk7CiAKICAgICBzaXplX3Qgc2l6ZSA9IGNoaWxkcmVuLnNpemUo
KTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgbV9lbGVt
ZW50Mi0+aW5zZXJ0QmVmb3JlKGNoaWxkcmVuW2ldLnJlbGVhc2UoKSwgbV9hdENoaWxkLmdldCgp
LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgbV9lbGVtZW50Mi0+aW5zZXJ0QmVmb3JlKFdU
Rjo6bW92ZShjaGlsZHJlbltpXSksIG1fYXRDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7
CiAKICAgICBtX2VsZW1lbnQxLT5yZW1vdmUoSUdOT1JFX0VYQ0VQVElPTik7CiB9CkBAIC03MSwx
NyArNzEsMTcgQEAgdm9pZCBNZXJnZUlkZW50aWNhbEVsZW1lbnRzQ29tbWFuZDo6ZG9VbmFwcGx5
KCkKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogCi0gICAgcGFyZW50LT5pbnNlcnRCZWZv
cmUobV9lbGVtZW50MS5nZXQoKSwgbV9lbGVtZW50Mi5nZXQoKSwgZWMpOworICAgIHBhcmVudC0+
aW5zZXJ0QmVmb3JlKCptX2VsZW1lbnQxLCBtX2VsZW1lbnQyLmdldCgpLCBlYyk7CiAgICAgaWYg
KGVjKQogICAgICAgICByZXR1cm47CiAKLSAgICBWZWN0b3I8UmVmUHRyPE5vZGU+PiBjaGlsZHJl
bjsKKyAgICBWZWN0b3I8UmVmPE5vZGU+PiBjaGlsZHJlbjsKICAgICBmb3IgKE5vZGUqIGNoaWxk
ID0gbV9lbGVtZW50Mi0+Zmlyc3RDaGlsZCgpOyBjaGlsZCAmJiBjaGlsZCAhPSBhdENoaWxkOyBj
aGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQotICAgICAgICBjaGlsZHJlbi5hcHBlbmQoY2hp
bGQpOworICAgICAgICBjaGlsZHJlbi5hcHBlbmQoKmNoaWxkKTsKIAogICAgIHNpemVfdCBzaXpl
ID0gY2hpbGRyZW4uc2l6ZSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytp
KQotICAgICAgICBtX2VsZW1lbnQxLT5hcHBlbmRDaGlsZChjaGlsZHJlbltpXS5yZWxlYXNlKCks
IGVjKTsKKyAgICAgICAgbV9lbGVtZW50MS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNoaWxkcmVu
W2ldKSwgZWMpOwogfQogCiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1JlbW92ZU5vZGVDb21tYW5kLmNwcAppbmRleCAzMWM1NGQxZTg4MmUyZDQ2NTQwNDA4ZTQ1MDYw
YzQ5ZDkwOGJiZWM2Li5iZWVjN2U0ZGFlNDRiMTA0YzJiZDE1ZmFjMDlmZWQ3OTQ2OWRmYTBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmNwcApAQCAtMzQs
MTIgKzM0LDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVtb3ZlTm9kZUNvbW1hbmQ6
OlJlbW92ZU5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUp
Ci0gICAgOiBTaW1wbGVFZGl0Q29tbWFuZChub2RlLT5kb2N1bWVudCgpKQorUmVtb3ZlTm9kZUNv
bW1hbmQ6OlJlbW92ZU5vZGVDb21tYW5kKE5vZGUmIG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAg
IDogU2ltcGxlRWRpdENvbW1hbmQobm9kZS5kb2N1bWVudCgpKQogICAgICwgbV9ub2RlKG5vZGUp
CiAgICAgLCBtX3Nob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKHNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQogewotICAgIEFTU0VSVChtX25vZGUpOwogICAgIEFT
U0VSVChtX25vZGUtPnBhcmVudE5vZGUoKSk7CiB9CiAKQEAgLTY0LDcgKzYzLDcgQEAgdm9pZCBS
ZW1vdmVOb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKICAgICBpZiAoIXBhcmVudCB8fCAhcGFyZW50
LT5oYXNFZGl0YWJsZVN0eWxlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHBhcmVudC0+aW5z
ZXJ0QmVmb3JlKG1fbm9kZS5nZXQoKSwgcmVmQ2hpbGQuZ2V0KCksIElHTk9SRV9FWENFUFRJT04p
OworICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG1fbm9kZS5jb3B5UmVmKCksIHJlZkNoaWxkLmdl
dCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KIAogI2lmbmRlZiBOREVCVUcKQEAgLTcyLDcgKzcx
LDcgQEAgdm9pZCBSZW1vdmVOb2RlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxO
b2RlKj4mIG5vZGVzKQogewogICAgIGFkZE5vZGVBbmREZXNjZW5kYW50cyhtX3BhcmVudC5nZXQo
KSwgbm9kZXMpOwogICAgIGFkZE5vZGVBbmREZXNjZW5kYW50cyhtX3JlZkNoaWxkLmdldCgpLCBu
b2Rlcyk7Ci0gICAgYWRkTm9kZUFuZERlc2NlbmRhbnRzKG1fbm9kZS5nZXQoKSwgbm9kZXMpOwor
ICAgIGFkZE5vZGVBbmREZXNjZW5kYW50cyhtX25vZGUucHRyKCksIG5vZGVzKTsKIH0KICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5k
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmgKaW5kZXggMTgx
ZTk4NWQ3ZjMwY2Q0NDk2NjRlNmZmOGNjYTk0MmYyNmY2Y2Y2ZS4uMDEzNTE3ZmY3ZGYzZGFlZTgw
ZjRkNmYxYjEwZDgxODU5YWFkNmM3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZW1vdmVOb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3Zl
Tm9kZUNvbW1hbmQuaApAQCAtMzIsMTMgKzMyLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgUmVtb3ZlTm9kZUNvbW1hbmQgOiBwdWJsaWMgU2ltcGxlRWRpdENvbW1hbmQgewogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8UmVtb3ZlTm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRy
PE5vZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHN0YXRpYyBSZWY8UmVtb3ZlTm9kZUNv
bW1hbmQ+IGNyZWF0ZShOb2RlJiBub2RlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0
YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKICAgICB7CiAgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW92ZU5vZGVDb21tYW5kKG5vZGUsIHNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIGV4cGxp
Y2l0IFJlbW92ZU5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlKTsKKyAgICBSZW1vdmVOb2RlQ29tbWFuZChOb2RlJiwgU2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBw
bHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CkBA
IC00Nyw3ICs0Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNo
U2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCiAKLSAgICBSZWZQdHI8Tm9kZT4gbV9ub2Rl
OworICAgIFJlZjxOb2RlPiBtX25vZGU7CiAgICAgUmVmUHRyPENvbnRhaW5lck5vZGU+IG1fcGFy
ZW50OwogICAgIFJlZlB0cjxOb2RlPiBtX3JlZkNoaWxkOwogICAgIFNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlIG1fc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VOb2RlV2l0aFNwYW5D
b21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNv
bW1hbmQuY3BwCmluZGV4IDBlMTg5YmRlZjY3ZDNmM2RlNzI0NmQ3MWFhYzdkNDA4NzkwN2ZkZmUu
LjEwYmVmM2EwOWExY2M0MjFjYjc3ZTlhYjc4ZTAwY2Q2ZTIyMjMwYTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwCkBA
IC00OCwxOSArNDgsMTkgQEAgUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQ6OlJlcGxhY2VOb2Rl
V2l0aFNwYW5Db21tYW5kKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGUKICAgICBBU1NFUlQobV9l
bGVtZW50VG9SZXBsYWNlKTsKIH0KIAotc3RhdGljIHZvaWQgc3dhcEluTm9kZVByZXNlcnZpbmdB
dHRyaWJ1dGVzQW5kQ2hpbGRyZW4oSFRNTEVsZW1lbnQqIG5ld05vZGUsIEhUTUxFbGVtZW50KiBu
b2RlVG9SZXBsYWNlKQorc3RhdGljIHZvaWQgc3dhcEluTm9kZVByZXNlcnZpbmdBdHRyaWJ1dGVz
QW5kQ2hpbGRyZW4oSFRNTEVsZW1lbnQmIG5ld05vZGUsIEhUTUxFbGVtZW50JiBub2RlVG9SZXBs
YWNlKQogewotICAgIEFTU0VSVChub2RlVG9SZXBsYWNlLT5pbkRvY3VtZW50KCkpOwotICAgIFJl
ZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnROb2RlID0gbm9kZVRvUmVwbGFjZS0+cGFyZW50Tm9k
ZSgpOworICAgIEFTU0VSVChub2RlVG9SZXBsYWNlLmluRG9jdW1lbnQoKSk7CisgICAgUmVmUHRy
PENvbnRhaW5lck5vZGU+IHBhcmVudE5vZGUgPSBub2RlVG9SZXBsYWNlLnBhcmVudE5vZGUoKTsK
IAogICAgIC8vIEZJWE1FOiBGaXggdGhpcyB0byBzZW5kIHRoZSBwcm9wZXIgTXV0YXRpb25SZWNv
cmRzIHdoZW4gTXV0YXRpb25PYnNlcnZlcnMgYXJlIHByZXNlbnQuCi0gICAgbmV3Tm9kZS0+Y2xv
bmVEYXRhRnJvbUVsZW1lbnQoKm5vZGVUb1JlcGxhY2UpOworICAgIG5ld05vZGUuY2xvbmVEYXRh
RnJvbUVsZW1lbnQobm9kZVRvUmVwbGFjZSk7CiAgICAgTm9kZVZlY3RvciBjaGlsZHJlbjsKLSAg
ICBnZXRDaGlsZE5vZGVzKCpub2RlVG9SZXBsYWNlLCBjaGlsZHJlbik7CisgICAgZ2V0Q2hpbGRO
b2Rlcyhub2RlVG9SZXBsYWNlLCBjaGlsZHJlbik7CiAgICAgZm9yIChhdXRvJiBjaGlsZCA6IGNo
aWxkcmVuKQotICAgICAgICBuZXdOb2RlLT5hcHBlbmRDaGlsZChjaGlsZC5wdHIoKSwgQVNTRVJU
X05PX0VYQ0VQVElPTik7CisgICAgICAgIG5ld05vZGUuYXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNo
aWxkKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKLSAgICBwYXJlbnROb2RlLT5pbnNlcnRCZWZv
cmUobmV3Tm9kZSwgbm9kZVRvUmVwbGFjZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgcGFy
ZW50Tm9kZS0+aW5zZXJ0QmVmb3JlKG5ld05vZGUsICZub2RlVG9SZXBsYWNlLCBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKICAgICBwYXJlbnROb2RlLT5yZW1vdmVDaGlsZChub2RlVG9SZXBsYWNlLCBB
U1NFUlRfTk9fRVhDRVBUSU9OKTsKIH0KIApAQCAtNzAsMTQgKzcwLDE0IEBAIHZvaWQgUmVwbGFj
ZU5vZGVXaXRoU3BhbkNvbW1hbmQ6OmRvQXBwbHkoKQogICAgICAgICByZXR1cm47CiAgICAgaWYg
KCFtX3NwYW5FbGVtZW50KQogICAgICAgICBtX3NwYW5FbGVtZW50ID0gY3JlYXRlSFRNTEVsZW1l
bnQobV9lbGVtZW50VG9SZXBsYWNlLT5kb2N1bWVudCgpLCBzcGFuVGFnKTsKLSAgICBzd2FwSW5O
b2RlUHJlc2VydmluZ0F0dHJpYnV0ZXNBbmRDaGlsZHJlbihtX3NwYW5FbGVtZW50LmdldCgpLCBt
X2VsZW1lbnRUb1JlcGxhY2UuZ2V0KCkpOworICAgIHN3YXBJbk5vZGVQcmVzZXJ2aW5nQXR0cmli
dXRlc0FuZENoaWxkcmVuKCptX3NwYW5FbGVtZW50LCAqbV9lbGVtZW50VG9SZXBsYWNlKTsKIH0K
IAogdm9pZCBSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIHsKICAgICBp
ZiAoIW1fc3BhbkVsZW1lbnQtPmluRG9jdW1lbnQoKSkKICAgICAgICAgcmV0dXJuOwotICAgIHN3
YXBJbk5vZGVQcmVzZXJ2aW5nQXR0cmlidXRlc0FuZENoaWxkcmVuKG1fZWxlbWVudFRvUmVwbGFj
ZS5nZXQoKSwgbV9zcGFuRWxlbWVudC5nZXQoKSk7CisgICAgc3dhcEluTm9kZVByZXNlcnZpbmdB
dHRyaWJ1dGVzQW5kQ2hpbGRyZW4oKm1fZWxlbWVudFRvUmVwbGFjZSwgKm1fc3BhbkVsZW1lbnQp
OwogfQogCiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
cGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCBlZWUyMjBjODZmOThhNWU3ZDI4OTljNDMz
ZmE5MWYwMDAwNTQ2YmUzLi4wOGM2Mjc3ZGVmYzM0ZmEyMjM0YzJlNDYyZjIzNjQ3ZDZiYzk5YTNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21t
YW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21t
YW5kLmNwcApAQCAtMjM4LDcgKzIzOCw3IEBAIHZvaWQgUmVwbGFjZW1lbnRGcmFnbWVudDo6cmVt
b3ZlTm9kZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUpCiAgICAgaWYgKCFwYXJlbnQpCiAgICAgICAg
IHJldHVybjsKICAgICAKLSAgICBwYXJlbnQtPnJlbW92ZUNoaWxkKG5vZGUuZ2V0KCksIEFTU0VS
VF9OT19FWENFUFRJT04pOworICAgIHBhcmVudC0+cmVtb3ZlQ2hpbGQoKm5vZGUsIEFTU0VSVF9O
T19FWENFUFRJT04pOwogfQogCiB2b2lkIFJlcGxhY2VtZW50RnJhZ21lbnQ6Omluc2VydE5vZGVC
ZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBOb2RlKiByZWZOb2RlKQpAQCAtMjUwLDE0ICsy
NTAsMTQgQEAgdm9pZCBSZXBsYWNlbWVudEZyYWdtZW50OjppbnNlcnROb2RlQmVmb3JlKFBhc3NS
ZWZQdHI8Tm9kZT4gbm9kZSwgTm9kZSogcmVmTm9kZSkKICAgICBpZiAoIXBhcmVudCkKICAgICAg
ICAgcmV0dXJuOwogICAgICAgICAKLSAgICBwYXJlbnQtPmluc2VydEJlZm9yZShub2RlLCByZWZO
b2RlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBwYXJlbnQtPmluc2VydEJlZm9yZSgqbm9k
ZSwgcmVmTm9kZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiB9CiAKIFBhc3NSZWZQdHI8U3R5bGVk
RWxlbWVudD4gUmVwbGFjZW1lbnRGcmFnbWVudDo6aW5zZXJ0RnJhZ21lbnRGb3JUZXN0UmVuZGVy
aW5nKE5vZGUqIHJvb3RFZGl0YWJsZUVsZW1lbnQpCiB7CiAgICAgUmVmUHRyPFN0eWxlZEVsZW1l
bnQ+IGhvbGRlciA9IGNyZWF0ZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50KGRvY3VtZW50KCkpOwog
Ci0gICAgaG9sZGVyLT5hcHBlbmRDaGlsZChtX2ZyYWdtZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKKyAgICBob2xkZXItPmFwcGVuZENoaWxkKCptX2ZyYWdtZW50LCBBU1NFUlRfTk9fRVhDRVBU
SU9OKTsKICAgICByb290RWRpdGFibGVFbGVtZW50LT5hcHBlbmRDaGlsZChob2xkZXIuZ2V0KCks
IEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3Jl
UGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAKQEAgLTI3MCw4ICsyNzAsOCBAQCB2b2lkIFJlcGxhY2Vt
ZW50RnJhZ21lbnQ6OnJlc3RvcmVBbmRSZW1vdmVUZXN0UmVuZGVyaW5nTm9kZXNUb0ZyYWdtZW50
KFN0eWxlZEVsZQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgd2hpbGUgKFJlZlB0cjxOb2Rl
PiBub2RlID0gaG9sZGVyLT5maXJzdENoaWxkKCkpIHsKLSAgICAgICAgaG9sZGVyLT5yZW1vdmVD
aGlsZChub2RlLmdldCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKLSAgICAgICAgbV9mcmFnbWVu
dC0+YXBwZW5kQ2hpbGQobm9kZS5nZXQoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAg
IGhvbGRlci0+cmVtb3ZlQ2hpbGQoKm5vZGUsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAg
ICBtX2ZyYWdtZW50LT5hcHBlbmRDaGlsZCgqbm9kZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAg
ICAgfQogCiAgICAgcmVtb3ZlTm9kZShob2xkZXIpOwpAQCAtMTQ1NCw3ICsxNDU0LDcgQEAgTm9k
ZSogUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Omluc2VydEFzTGlzdEl0ZW1zKFBhc3NSZWZQdHI8
SFRNTEVsZW1lbnQ+IHBycExpc3QKICAgICB9CiAKICAgICB3aGlsZSAoUmVmUHRyPE5vZGU+IGxp
c3RJdGVtID0gbGlzdEVsZW1lbnQtPmZpcnN0Q2hpbGQoKSkgewotICAgICAgICBsaXN0RWxlbWVu
dC0+cmVtb3ZlQ2hpbGQobGlzdEl0ZW0uZ2V0KCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAg
ICAgICBsaXN0RWxlbWVudC0+cmVtb3ZlQ2hpbGQoKmxpc3RJdGVtLCBBU1NFUlRfTk9fRVhDRVBU
SU9OKTsKICAgICAgICAgaWYgKGlzU3RhcnQgfHwgaXNNaWRkbGUpIHsKICAgICAgICAgICAgIGlu
c2VydE5vZGVCZWZvcmUobGlzdEl0ZW0sIGxhc3ROb2RlKTsKICAgICAgICAgICAgIGluc2VydGVk
Tm9kZXMucmVzcG9uZFRvTm9kZUluc2VydGlvbihsaXN0SXRlbS5nZXQoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0RWxlbWVudENvbW1hbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9TcGxpdEVsZW1lbnRDb21tYW5kLmNwcAppbmRleCAwOWJlYjg1MTkz
MWVlYWI2NTFkMjE3MWU0N2Q4NzMyNDU1ZDFmMTA2Li4zNWQ4MjFiMmMxNmEyYmViMjc3MGE0ODE2
ZjdjOGNjODU5MGQwNTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0
RWxlbWVudENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BsaXRFbGVt
ZW50Q29tbWFuZC5jcHAKQEAgLTQ3LDE2ICs0NywxNiBAQCB2b2lkIFNwbGl0RWxlbWVudENvbW1h
bmQ6OmV4ZWN1dGVBcHBseSgpCiAgICAgaWYgKG1fYXRDaGlsZC0+cGFyZW50Tm9kZSgpICE9IG1f
ZWxlbWVudDIpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBWZWN0b3I8UmVmUHRyPE5vZGU+
PiBjaGlsZHJlbjsKKyAgICBWZWN0b3I8UmVmPE5vZGU+PiBjaGlsZHJlbjsKICAgICBmb3IgKE5v
ZGUqIG5vZGUgPSBtX2VsZW1lbnQyLT5maXJzdENoaWxkKCk7IG5vZGUgIT0gbV9hdENoaWxkOyBu
b2RlID0gbm9kZS0+bmV4dFNpYmxpbmcoKSkKLSAgICAgICAgY2hpbGRyZW4uYXBwZW5kKG5vZGUp
OworICAgICAgICBjaGlsZHJlbi5hcHBlbmQoKm5vZGUpOwogICAgIAogICAgIEV4Y2VwdGlvbkNv
ZGUgZWMgPSAwOwogICAgIAogICAgIENvbnRhaW5lck5vZGUqIHBhcmVudCA9IG1fZWxlbWVudDIt
PnBhcmVudE5vZGUoKTsKICAgICBpZiAoIXBhcmVudCB8fCAhcGFyZW50LT5oYXNFZGl0YWJsZVN0
eWxlKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBwYXJlbnQtPmluc2VydEJlZm9yZShtX2VsZW1l
bnQxLmdldCgpLCBtX2VsZW1lbnQyLmdldCgpLCBlYyk7CisgICAgcGFyZW50LT5pbnNlcnRCZWZv
cmUoKm1fZWxlbWVudDEsIG1fZWxlbWVudDIuZ2V0KCksIGVjKTsKICAgICBpZiAoZWMpCiAgICAg
ICAgIHJldHVybjsKIApAQCAtNjUsNyArNjUsNyBAQCB2b2lkIFNwbGl0RWxlbWVudENvbW1hbmQ6
OmV4ZWN1dGVBcHBseSgpCiAKICAgICBzaXplX3Qgc2l6ZSA9IGNoaWxkcmVuLnNpemUoKTsKICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgbV9lbGVtZW50MS0+
YXBwZW5kQ2hpbGQoY2hpbGRyZW5baV0sIGVjKTsKKyAgICAgICAgbV9lbGVtZW50MS0+YXBwZW5k
Q2hpbGQoV1RGOjptb3ZlKGNoaWxkcmVuW2ldKSwgZWMpOwogfQogICAgIAogdm9pZCBTcGxpdEVs
ZW1lbnRDb21tYW5kOjpkb0FwcGx5KCkKQEAgLTgwLDE1ICs4MCwxNSBAQCB2b2lkIFNwbGl0RWxl
bWVudENvbW1hbmQ6OmRvVW5hcHBseSgpCiAgICAgaWYgKCFtX2VsZW1lbnQxIHx8ICFtX2VsZW1l
bnQxLT5oYXNFZGl0YWJsZVN0eWxlKCkgfHwgIW1fZWxlbWVudDItPmhhc0VkaXRhYmxlU3R5bGUo
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgVmVjdG9yPFJlZlB0cjxOb2RlPj4gY2hpbGRyZW47
CisgICAgVmVjdG9yPFJlZjxOb2RlPj4gY2hpbGRyZW47CiAgICAgZm9yIChOb2RlKiBub2RlID0g
bV9lbGVtZW50MS0+Zmlyc3RDaGlsZCgpOyBub2RlOyBub2RlID0gbm9kZS0+bmV4dFNpYmxpbmco
KSkKLSAgICAgICAgY2hpbGRyZW4uYXBwZW5kKG5vZGUpOworICAgICAgICBjaGlsZHJlbi5hcHBl
bmQoKm5vZGUpOwogCiAgICAgUmVmUHRyPE5vZGU+IHJlZkNoaWxkID0gbV9lbGVtZW50Mi0+Zmly
c3RDaGlsZCgpOwogCiAgICAgc2l6ZV90IHNpemUgPSBjaGlsZHJlbi5zaXplKCk7CiAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCi0gICAgICAgIG1fZWxlbWVudDItPmluc2Vy
dEJlZm9yZShjaGlsZHJlbltpXS5nZXQoKSwgcmVmQ2hpbGQuZ2V0KCksIElHTk9SRV9FWENFUFRJ
T04pOworICAgICAgICBtX2VsZW1lbnQyLT5pbnNlcnRCZWZvcmUoV1RGOjptb3ZlKGNoaWxkcmVu
W2ldKSwgcmVmQ2hpbGQuZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOwogCiAgICAgLy8gUmVjb3Zl
ciB0aGUgaWQgYXR0cmlidXRlIG9mIHRoZSBvcmlnaW5hbCBlbGVtZW50LgogICAgIGNvbnN0IEF0
b21pY1N0cmluZyYgaWQgPSBtX2VsZW1lbnQxLT5nZXRJZEF0dHJpYnV0ZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0VGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCAxN2E4MTdm
OWFjMjZkZTk5NGQ0MThkNGQ2NDlhNmI4ZjZmOGM0ZjBiLi42OTk5MTM5OTVkZmZlM2EwMWUzZTAy
NWYwZDExMGI4YjZiNTBkNjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Nw
bGl0VGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0
VGV4dE5vZGVDb21tYW5kLmNwcApAQCAtOTUsNyArOTUsNyBAQCB2b2lkIFNwbGl0VGV4dE5vZGVD
b21tYW5kOjpkb1JlYXBwbHkoKQogdm9pZCBTcGxpdFRleHROb2RlQ29tbWFuZDo6aW5zZXJ0VGV4
dDFBbmRUcmltVGV4dDIoKQogewogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIG1fdGV4
dDItPnBhcmVudE5vZGUoKS0+aW5zZXJ0QmVmb3JlKG1fdGV4dDEuZ2V0KCksIG1fdGV4dDIuZ2V0
KCksIGVjKTsKKyAgICBtX3RleHQyLT5wYXJlbnROb2RlKCktPmluc2VydEJlZm9yZSgqbV90ZXh0
MSwgbV90ZXh0Mi5nZXQoKSwgZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuOwogICAg
IG1fdGV4dDItPmRlbGV0ZURhdGEoMCwgbV9vZmZzZXQsIGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvV3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvV3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kLmNwcApp
bmRleCA1NjQ2ZjM0MTZjODVmMmU2MDMwZjQ3NGQ0MzBiZjhmNzQyNWU3ZmQ2Li5mODBiNzczN2Y4
YWQ5NmUzZTc4ZjE0NTliZjU3ZTJmMzUxOWViOWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1dyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9XcmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1hbmQuY3BwCkBAIC00
MCwxNSArNDAsMTUgQEAgV3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kOjpXcmFwQ29udGVu
dHNJbkR1bW15U3BhbkNvbW1hbmQoUGFzc1JlZlB0cjxFbGVtZW4KIAogdm9pZCBXcmFwQ29udGVu
dHNJbkR1bW15U3BhbkNvbW1hbmQ6OmV4ZWN1dGVBcHBseSgpCiB7Ci0gICAgVmVjdG9yPFJlZlB0
cjxOb2RlPj4gY2hpbGRyZW47CisgICAgVmVjdG9yPFJlZjxOb2RlPj4gY2hpbGRyZW47CiAgICAg
Zm9yIChOb2RlKiBjaGlsZCA9IG1fZWxlbWVudC0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQg
PSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKLSAgICAgICAgY2hpbGRyZW4uYXBwZW5kKGNoaWxkKTsK
KyAgICAgICAgY2hpbGRyZW4uYXBwZW5kKCpjaGlsZCk7CiAKICAgICBzaXplX3Qgc2l6ZSA9IGNo
aWxkcmVuLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKLSAg
ICAgICAgbV9kdW1teVNwYW4tPmFwcGVuZENoaWxkKGNoaWxkcmVuW2ldLnJlbGVhc2UoKSwgSUdO
T1JFX0VYQ0VQVElPTik7CisgICAgICAgIG1fZHVtbXlTcGFuLT5hcHBlbmRDaGlsZChXVEY6Om1v
dmUoY2hpbGRyZW5baV0pLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIG1fZWxlbWVudC0+YXBw
ZW5kQ2hpbGQobV9kdW1teVNwYW4uZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOworICAgIG1fZWxl
bWVudC0+YXBwZW5kQ2hpbGQoKm1fZHVtbXlTcGFuLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KIAog
dm9pZCBXcmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1hbmQ6OmRvQXBwbHkoKQpAQCAtNjUsMTMg
KzY1LDEzIEBAIHZvaWQgV3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kOjpkb1VuYXBwbHko
KQogICAgIGlmICghbV9kdW1teVNwYW4gfHwgIW1fZWxlbWVudC0+aGFzRWRpdGFibGVTdHlsZSgp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBWZWN0b3I8UmVmUHRyPE5vZGU+PiBjaGlsZHJlbjsK
KyAgICBWZWN0b3I8UmVmPE5vZGU+PiBjaGlsZHJlbjsKICAgICBmb3IgKE5vZGUqIGNoaWxkID0g
bV9kdW1teVNwYW4tPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJs
aW5nKCkpCi0gICAgICAgIGNoaWxkcmVuLmFwcGVuZChjaGlsZCk7CisgICAgICAgIGNoaWxkcmVu
LmFwcGVuZCgqY2hpbGQpOwogCiAgICAgc2l6ZV90IHNpemUgPSBjaGlsZHJlbi5zaXplKCk7CiAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCi0gICAgICAgIG1fZWxlbWVudC0+
YXBwZW5kQ2hpbGQoY2hpbGRyZW5baV0ucmVsZWFzZSgpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAg
ICAgICAgbV9lbGVtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoY2hpbGRyZW5baV0pLCBJR05P
UkVfRVhDRVBUSU9OKTsKIAogICAgIG1fZHVtbXlTcGFuLT5yZW1vdmUoSUdOT1JFX0VYQ0VQVElP
Tik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0VkaXRvckNv
Y29hLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9FZGl0b3JDb2NvYS5tbQppbmRl
eCBjZTRiY2JjYTRiZjMyYTlkNTMzN2JlYjkyZGYxZjdlMGZhOWM5OGYzLi45NWU2NmRiMGRlYTc4
Mjk0NmVkNjAwNjEzZTZkN2M5MWM0ZDE2ZDE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL2NvY29hL0VkaXRvckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Y29jb2EvRWRpdG9yQ29jb2EubW0KQEAgLTU2LDE2ICs1NiwxNiBAQCBSZW5kZXJTdHlsZSogRWRp
dG9yOjpzdHlsZUZvclNlbGVjdGlvblN0YXJ0KEZyYW1lKiBmcmFtZSwgTm9kZSAqJm5vZGVUb1Jl
bW92ZSkKICAgICBpZiAoIXR5cGluZ1N0eWxlIHx8ICF0eXBpbmdTdHlsZS0+c3R5bGUoKSkKICAg
ICAgICAgcmV0dXJuICZwb3NpdGlvbi5kZXByZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigpLT5zdHls
ZSgpOwogCi0gICAgUmVmUHRyPEVsZW1lbnQ+IHN0eWxlRWxlbWVudCA9IGZyYW1lLT5kb2N1bWVu
dCgpLT5jcmVhdGVFbGVtZW50KEhUTUxOYW1lczo6c3BhblRhZywgZmFsc2UpOworICAgIFJlZjxF
bGVtZW50PiBzdHlsZUVsZW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChI
VE1MTmFtZXM6OnNwYW5UYWcsIGZhbHNlKTsKIAogICAgIFN0cmluZyBzdHlsZVRleHQgPSB0eXBp
bmdTdHlsZS0+c3R5bGUoKS0+YXNUZXh0KCkgKyAiIGRpc3BsYXk6IGlubGluZSI7CiAgICAgc3R5
bGVFbGVtZW50LT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpzdHlsZUF0dHIsIHN0eWxlVGV4dCk7
CiAKICAgICBzdHlsZUVsZW1lbnQtPmFwcGVuZENoaWxkKGZyYW1lLT5kb2N1bWVudCgpLT5jcmVh
dGVFZGl0aW5nVGV4dE5vZGUoIiIpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAotICAgIHBvc2l0
aW9uLmRlcHJlY2F0ZWROb2RlKCktPnBhcmVudE5vZGUoKS0+YXBwZW5kQ2hpbGQoc3R5bGVFbGVt
ZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBwb3NpdGlvbi5kZXByZWNhdGVkTm9kZSgp
LT5wYXJlbnROb2RlKCktPmFwcGVuZENoaWxkKHN0eWxlRWxlbWVudC5jb3B5UmVmKCksIEFTU0VS
VF9OT19FWENFUFRJT04pOwogCi0gICAgbm9kZVRvUmVtb3ZlID0gc3R5bGVFbGVtZW50LmdldCgp
OworICAgIG5vZGVUb1JlbW92ZSA9IHN0eWxlRWxlbWVudC5wdHIoKTsKIAogICAgIGZyYW1lLT5k
b2N1bWVudCgpLT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CiAgICAgcmV0dXJuIHN0eWxlRWxlbWVu
dC0+cmVuZGVyZXIoKSA/ICZzdHlsZUVsZW1lbnQtPnJlbmRlcmVyKCktPnN0eWxlKCkgOiBudWxs
cHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAppbmRleCA4ZjA0ZDA4MTM1
MmI5NjMyNTZmYmFkNzU3ZmUxMzVlNmRjZDNkNzUwLi43Y2FhMTRmNGJlMzdjNjEzNDQ5Yzk0YTZh
ZGRiYzU5ZWI1ZTZiZTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxl
ZGl0aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcApA
QCAtODk5LDIwICs4OTksMTggQEAgYm9vbCBpc0VtcHR5VGFibGVDZWxsKGNvbnN0IE5vZGUqIG5v
ZGUpCiAgICAgcmV0dXJuICFjaGlsZFJlbmRlcmVyLT5uZXh0U2libGluZygpOwogfQogCi1QYXNz
UmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVEZWZhdWx0UGFyYWdyYXBoRWxlbWVudChEb2N1bWVu
dCYgZG9jdW1lbnQpCitSZWY8SFRNTEVsZW1lbnQ+IGNyZWF0ZURlZmF1bHRQYXJhZ3JhcGhFbGVt
ZW50KERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBzd2l0Y2ggKGRvY3VtZW50LmZyYW1lKCkt
PmVkaXRvcigpLmRlZmF1bHRQYXJhZ3JhcGhTZXBhcmF0b3IoKSkgewogICAgIGNhc2UgRWRpdG9y
UGFyYWdyYXBoU2VwYXJhdG9ySXNEaXY6CiAgICAgICAgIHJldHVybiBIVE1MRGl2RWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjYXNlIEVkaXRvclBhcmFncmFwaFNlcGFyYXRvcklzUDoK
LSAgICAgICAgcmV0dXJuIEhUTUxQYXJhZ3JhcGhFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwor
ICAgICAgICBicmVhazsKICAgICB9Ci0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICBy
ZXR1cm4gMDsKKyAgICByZXR1cm4gSFRNTFBhcmFncmFwaEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCk7CiB9CiAKLVBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZUJyZWFrRWxlbWVudChEb2N1
bWVudCYgZG9jdW1lbnQpCitSZWY8SFRNTEVsZW1lbnQ+IGNyZWF0ZUJyZWFrRWxlbWVudChEb2N1
bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIEhUTUxCUkVsZW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCk7CiB9CkBAIC05NzEsNyArOTY5LDcgQEAgUG9zaXRpb24gcG9zaXRpb25PdXRzaWRlVGFi
U3Bhbihjb25zdCBQb3NpdGlvbiYgcG9zKQogICAgIHJldHVybiBwb3NpdGlvbkluUGFyZW50QmVm
b3JlTm9kZShub2RlKTsKIH0KIAotUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVhdGVUYWJTcGFuRWxl
bWVudChEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWZQdHI8Tm9kZT4gcHJwVGFiVGV4dE5vZGUp
CitSZWY8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBQ
YXNzUmVmUHRyPE5vZGU+IHBycFRhYlRleHROb2RlKQogewogICAgIFJlZlB0cjxOb2RlPiB0YWJU
ZXh0Tm9kZSA9IHBycFRhYlRleHROb2RlOwogCkBAIC05ODQsMTcgKzk4MiwxNyBAQCBQYXNzUmVm
UHRyPEVsZW1lbnQ+IGNyZWF0ZVRhYlNwYW5FbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwgUGFz
c1JlZlB0cjxOb2RlPiBwcgogICAgIGlmICghdGFiVGV4dE5vZGUpCiAgICAgICAgIHRhYlRleHRO
b2RlID0gZG9jdW1lbnQuY3JlYXRlRWRpdGluZ1RleHROb2RlKCJcdCIpOwogCi0gICAgc3BhbkVs
ZW1lbnQtPmFwcGVuZENoaWxkKHRhYlRleHROb2RlLnJlbGVhc2UoKSwgQVNTRVJUX05PX0VYQ0VQ
VElPTik7CisgICAgc3BhbkVsZW1lbnQtPmFwcGVuZENoaWxkKHRhYlRleHROb2RlLnJlbGVhc2VO
b25OdWxsKCksIEFTU0VSVF9OT19FWENFUFRJT04pOwogCi0gICAgcmV0dXJuIHNwYW5FbGVtZW50
LnJlbGVhc2UoKTsKKyAgICByZXR1cm4gc3BhbkVsZW1lbnQucmVsZWFzZU5vbk51bGwoKTsKIH0K
IAotUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVhdGVUYWJTcGFuRWxlbWVudChEb2N1bWVudCYgZG9j
dW1lbnQsIGNvbnN0IFN0cmluZyYgdGFiVGV4dCkKK1JlZjxFbGVtZW50PiBjcmVhdGVUYWJTcGFu
RWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGFiVGV4dCkKIHsKICAg
ICByZXR1cm4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoZG9jdW1lbnQsIGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKHRhYlRleHQpKTsKIH0KIAotUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVhdGVUYWJTcGFu
RWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVs
ZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBjcmVhdGVUYWJTcGFuRWxl
bWVudChkb2N1bWVudCwgUGFzc1JlZlB0cjxOb2RlPigpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
aHRtbGVkaXRpbmcuaAppbmRleCA3ODhhZjNmY2ZiOTVlN2QyZDIyODc2MmE1MTU1NjFlZjA4OTNk
MGVlLi5mNjlkOWQ4ZWM3NTE3ODExYjllZDRmM2M3MDc3NDUwYTE1ODExNTFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9odG1sZWRpdGluZy5oCkBAIC0yMDYsOCArMjA2LDggQEAgVmlzaWJsZVBvc2l0
aW9uIHZpc2libGVQb3NpdGlvbkZvckluZGV4VXNpbmdDaGFyYWN0ZXJJdGVyYXRvcihOb2RlKiwg
aW50IGluZGV4KTsKICAgICAKIC8vIEZ1bmN0aW9ucyByZXR1cm5pbmcgSFRNTEVsZW1lbnQKICAg
ICAKLVdFQkNPUkVfRVhQT1JUIFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZURlZmF1bHRQ
YXJhZ3JhcGhFbGVtZW50KERvY3VtZW50Jik7Ci1QYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVh
dGVCcmVha0VsZW1lbnQoRG9jdW1lbnQmKTsKK1dFQkNPUkVfRVhQT1JUIFJlZjxIVE1MRWxlbWVu
dD4gY3JlYXRlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQoRG9jdW1lbnQmKTsKK1JlZjxIVE1MRWxl
bWVudD4gY3JlYXRlQnJlYWtFbGVtZW50KERvY3VtZW50Jik7CiBQYXNzUmVmUHRyPEhUTUxFbGVt
ZW50PiBjcmVhdGVPcmRlcmVkTGlzdEVsZW1lbnQoRG9jdW1lbnQmKTsKIFBhc3NSZWZQdHI8SFRN
TEVsZW1lbnQ+IGNyZWF0ZVVub3JkZXJlZExpc3RFbGVtZW50KERvY3VtZW50Jik7CiBQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBjcmVhdGVMaXN0SXRlbUVsZW1lbnQoRG9jdW1lbnQmKTsKQEAgLTIy
MiwxMCArMjIyLDEwIEBAIE5vZGUqIGVuY2xvc2luZ0xpc3RDaGlsZChOb2RlKik7CiAvLyBFbGVt
ZW50CiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLVBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlVGFi
U3BhbkVsZW1lbnQoRG9jdW1lbnQmKTsKLVBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlVGFiU3Bh
bkVsZW1lbnQoRG9jdW1lbnQmLCBQYXNzUmVmUHRyPE5vZGU+IHRhYlRleHROb2RlKTsKLVBhc3NS
ZWZQdHI8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmLCBjb25zdCBTdHJp
bmcmIHRhYlRleHQpOwotUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVhdGVCbG9ja1BsYWNlaG9sZGVy
RWxlbWVudChEb2N1bWVudCYpOworUmVmPEVsZW1lbnQ+IGNyZWF0ZVRhYlNwYW5FbGVtZW50KERv
Y3VtZW50Jik7CitSZWY8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmLCBQ
YXNzUmVmUHRyPE5vZGU+IHRhYlRleHROb2RlKTsKK1JlZjxFbGVtZW50PiBjcmVhdGVUYWJTcGFu
RWxlbWVudChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGFiVGV4dCk7CitSZWY8RWxlbWVudD4g
Y3JlYXRlQmxvY2tQbGFjZWhvbGRlckVsZW1lbnQoRG9jdW1lbnQmKTsKIAogRWxlbWVudCogZWRp
dGFibGVSb290Rm9yUG9zaXRpb24oY29uc3QgUG9zaXRpb24mLCBFZGl0YWJsZVR5cGUgPSBDb250
ZW50SXNFZGl0YWJsZSk7CiBFbGVtZW50KiB1bnNwbGl0dGFibGVFbGVtZW50Rm9yUG9zaXRpb24o
Y29uc3QgUG9zaXRpb24mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFj
L0VkaXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbQpp
bmRleCA2Y2VmNDg5OTU5YjQ5NWQwNzY5OTAxNTNiYjk1YTFjMmYwOWZhZjA0Li5jZDI1MmRjZmQz
MWMzZTAwYzE1NzdkYmY5MzBjODY4M2I1MGRkMDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9t
YWMvRWRpdG9yTWFjLm1tCkBAIC01MjcsMTUgKzUyNywxNSBAQCBib29sIEVkaXRvcjo6V2ViQ29u
dGVudFJlYWRlcjo6cmVhZEZpbGVuYW1lcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGF0aHMpCiAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKICAgICAgICAgU3RyaW5nIHRl
eHQgPSBwYXRoc1tpXTsKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQotICAgICAgICBS
ZWZQdHI8SFRNTEF0dGFjaG1lbnRFbGVtZW50PiBhdHRhY2htZW50ID0gSFRNTEF0dGFjaG1lbnRF
bGVtZW50OjpjcmVhdGUoYXR0YWNobWVudFRhZywgZG9jdW1lbnQpOworICAgICAgICBSZWY8SFRN
TEF0dGFjaG1lbnRFbGVtZW50PiBhdHRhY2htZW50ID0gSFRNTEF0dGFjaG1lbnRFbGVtZW50Ojpj
cmVhdGUoYXR0YWNobWVudFRhZywgZG9jdW1lbnQpOwogICAgICAgICBhdHRhY2htZW50LT5zZXRG
aWxlKEZpbGU6OmNyZWF0ZShbW05TVVJMIGZpbGVVUkxXaXRoUGF0aDp0ZXh0XSBwYXRoXSkucHRy
KCkpOwotICAgICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoYXR0YWNobWVudC5yZWxlYXNlKCkp
OworICAgICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGF0dGFjaG1lbnQpKTsK
ICNlbHNlCiAgICAgICAgIHRleHQgPSBmcmFtZS5lZGl0b3IoKS5jbGllbnQoKS0+dXNlclZpc2li
bGVTdHJpbmcoW05TVVJMIGZpbGVVUkxXaXRoUGF0aDp0ZXh0XSk7CiAKLSAgICAgICAgUmVmUHRy
PEhUTUxFbGVtZW50PiBwYXJhZ3JhcGggPSBjcmVhdGVEZWZhdWx0UGFyYWdyYXBoRWxlbWVudChk
b2N1bWVudCk7CisgICAgICAgIFJlZjxIVE1MRWxlbWVudD4gcGFyYWdyYXBoID0gY3JlYXRlRGVm
YXVsdFBhcmFncmFwaEVsZW1lbnQoZG9jdW1lbnQpOwogICAgICAgICBwYXJhZ3JhcGgtPmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRleHQpKTsKLSAgICAgICAgZnJhZ21lbnQt
PmFwcGVuZENoaWxkKHBhcmFncmFwaC5yZWxlYXNlKCkpOworICAgICAgICBmcmFnbWVudC0+YXBw
ZW5kQ2hpbGQoV1RGOjptb3ZlKHBhcmFncmFwaCkpOwogI2VuZGlmCiAgICAgfQogCkBAIC01OTQs
MTIgKzU5NCwxMiBAQCBib29sIEVkaXRvcjo6V2ViQ29udGVudFJlYWRlcjo6cmVhZFVSTChjb25z
dCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSkKICAgICBpZiAodXJsLnN0cmluZygpLmlz
RW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgUmVmUHRyPEVsZW1lbnQ+IGFu
Y2hvciA9IGZyYW1lLmRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoSFRNTE5hbWVzOjphVGFnLCBm
YWxzZSk7CisgICAgUmVmPEVsZW1lbnQ+IGFuY2hvciA9IGZyYW1lLmRvY3VtZW50KCktPmNyZWF0
ZUVsZW1lbnQoSFRNTE5hbWVzOjphVGFnLCBmYWxzZSk7CiAgICAgYW5jaG9yLT5zZXRBdHRyaWJ1
dGUoSFRNTE5hbWVzOjpocmVmQXR0ciwgdXJsLnN0cmluZygpKTsKICAgICBhbmNob3ItPmFwcGVu
ZENoaWxkKGZyYW1lLmRvY3VtZW50KCktPmNyZWF0ZVRleHROb2RlKFt0aXRsZSBwcmVjb21wb3Nl
ZFN0cmluZ1dpdGhDYW5vbmljYWxNYXBwaW5nXSkpOwogCiAgICAgZnJhZ21lbnQgPSBmcmFtZS5k
b2N1bWVudCgpLT5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAgZnJhZ21lbnQtPmFwcGVu
ZENoaWxkKGFuY2hvci5yZWxlYXNlKCkpOworICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChXVEY6
Om1vdmUoYW5jaG9yKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTYzNSwxMSArNjM1LDEx
IEBAIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gRWRpdG9yOjpjcmVhdGVGcmFnbWVudEZv
ckltYWdlUmVzb3VyY2VBbmRBZGRSZXNvdXJjCiAgICAgaWYgKERvY3VtZW50TG9hZGVyKiBsb2Fk
ZXIgPSBtX2ZyYW1lLmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCkpCiAgICAgICAgIGxvYWRlci0+
YWRkQXJjaGl2ZVJlc291cmNlKHJlc291cmNlLmdldCgpKTsKIAotICAgIFJlZlB0cjxFbGVtZW50
PiBpbWFnZUVsZW1lbnQgPSBkb2N1bWVudCgpLmNyZWF0ZUVsZW1lbnQoSFRNTE5hbWVzOjppbWdU
YWcsIGZhbHNlKTsKKyAgICBSZWY8RWxlbWVudD4gaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQoKS5j
cmVhdGVFbGVtZW50KEhUTUxOYW1lczo6aW1nVGFnLCBmYWxzZSk7CiAgICAgaW1hZ2VFbGVtZW50
LT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpzcmNBdHRyLCByZXNvdXJjZS0+dXJsKCkuc3RyaW5n
KCkpOwogCiAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gZG9jdW1lbnQo
KS5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKGlt
YWdlRWxlbWVudC5yZWxlYXNlKCkpOworICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1v
dmUoaW1hZ2VFbGVtZW50KSk7CiAKICAgICByZXR1cm4gZnJhZ21lbnQucmVsZWFzZSgpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCmluZGV4IDBjYWM4YjQwZmQ4YTNjNjUxODA0MTU0OGVi
NjQ5ZDk0YjUzNmQyZDIuLmMwY2Y3OGQ5ZTdkMTQ1OGI1ZDUzYTQ2NWEyZTc0YzRhNTdjMzZjYWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKQEAgLTcyOSw4ICs3MjksOCBAQCBzdGF0aWMg
dm9pZCBmaWxsQ29udGFpbmVyRnJvbVN0cmluZyhDb250YWluZXJOb2RlKiBwYXJhZ3JhcGgsIGNv
bnN0IFN0cmluZyYgc3RyaQogICAgICAgICAgICAgICAgIHBhcmFncmFwaC0+YXBwZW5kQ2hpbGQo
Y3JlYXRlVGFiU3BhbkVsZW1lbnQoZG9jdW1lbnQsIHRhYlRleHQpLCBBU1NFUlRfTk9fRVhDRVBU
SU9OKTsKICAgICAgICAgICAgICAgICB0YWJUZXh0ID0gZW1wdHlTdHJpbmcoKTsKICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIFJlZlB0cjxOb2RlPiB0ZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKHN0cmluZ1dpdGhSZWJhbGFuY2VkV2hpdGVzcGFjZShzLCBmaXJzdCwgaSArIDEg
PT0gbnVtRW50cmllcykpOwotICAgICAgICAgICAgcGFyYWdyYXBoLT5hcHBlbmRDaGlsZCh0ZXh0
Tm9kZS5yZWxlYXNlKCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAgICAgICAgUmVmPE5v
ZGU+IHRleHROb2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoc3RyaW5nV2l0aFJlYmFsYW5j
ZWRXaGl0ZXNwYWNlKHMsIGZpcnN0LCBpICsgMSA9PSBudW1FbnRyaWVzKSk7CisgICAgICAgICAg
ICBwYXJhZ3JhcGgtPmFwcGVuZENoaWxkKFdURjo6bW92ZSh0ZXh0Tm9kZSksIEFTU0VSVF9OT19F
WENFUFRJT04pOwogICAgICAgICB9CiAKICAgICAgICAgLy8gdGhlcmUgaXMgYSB0YWIgYWZ0ZXIg
ZXZlcnkgZW50cnksIGV4Y2VwdCB0aGUgbGFzdCBlbnRyeQpAQCAtNzkzLDkgKzc5Myw5IEBAIFBh
c3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGcm9tVGV4dChSYW5nZSYg
Y29udGV4dCwgY29uc3QgU3RyaW5nCiAgICAgaWYgKGNvbnRleHRQcmVzZXJ2ZXNOZXdsaW5lKGNv
bnRleHQpKSB7CiAgICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZShzdHJpbmcpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICAgICAgaWYgKHN0cmlu
Zy5lbmRzV2l0aCgnXG4nKSkgewotICAgICAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQg
PSBjcmVhdGVCcmVha0VsZW1lbnQoZG9jdW1lbnQpOworICAgICAgICAgICAgUmVmPEVsZW1lbnQ+
IGVsZW1lbnQgPSBjcmVhdGVCcmVha0VsZW1lbnQoZG9jdW1lbnQpOwogICAgICAgICAgICAgZWxl
bWVudC0+c2V0QXR0cmlidXRlKGNsYXNzQXR0ciwgQXBwbGVJbnRlcmNoYW5nZU5ld2xpbmUpOyAg
ICAgICAgICAgIAotICAgICAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKGVsZW1lbnQucmVs
ZWFzZSgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgICAgIGZyYWdtZW50LT5hcHBl
bmRDaGlsZChXVEY6Om1vdmUoZWxlbWVudCksIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgICAg
ICB9CiAgICAgICAgIHJldHVybiBmcmFnbWVudC5yZWxlYXNlKCk7CiAgICAgfQpAQCAtODM3LDcg
KzgzNyw3IEBAIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGcm9t
VGV4dChSYW5nZSYgY29udGV4dCwgY29uc3QgU3RyaW5nCiAgICAgICAgICAgICAgICAgZWxlbWVu
dCA9IGNyZWF0ZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50KGRvY3VtZW50KTsKICAgICAgICAgICAg
IGZpbGxDb250YWluZXJGcm9tU3RyaW5nKGVsZW1lbnQuZ2V0KCksIHMpOwogICAgICAgICB9Ci0g
ICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChlbGVtZW50LnJlbGVhc2UoKSwgQVNTRVJUX05P
X0VYQ0VQVElPTik7CisgICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChlbGVtZW50LnJlbGVh
c2VOb25OdWxsKCksIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgIH0KICAgICByZXR1cm4gZnJh
Z21lbnQucmVsZWFzZSgpOwogfQpAQCAtOTQ1LDEwICs5NDUsMTAgQEAgc3RhdGljIHZvaWQgcmVt
b3ZlRWxlbWVudEZyb21GcmFnbWVudFByZXNlcnZpbmdDaGlsZHJlbihEb2N1bWVudEZyYWdtZW50
JiBmcmFnbWUKICAgICBSZWZQdHI8Tm9kZT4gbmV4dENoaWxkOwogICAgIGZvciAoUmVmUHRyPE5v
ZGU+IGNoaWxkID0gZWxlbWVudC5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IG5leHRDaGls
ZCkgewogICAgICAgICBuZXh0Q2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKTsKLSAgICAgICAg
ZWxlbWVudC5yZW1vdmVDaGlsZChjaGlsZC5nZXQoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0g
ICAgICAgIGZyYWdtZW50Lmluc2VydEJlZm9yZShjaGlsZCwgJmVsZW1lbnQsIEFTU0VSVF9OT19F
WENFUFRJT04pOworICAgICAgICBlbGVtZW50LnJlbW92ZUNoaWxkKCpjaGlsZCwgQVNTRVJUX05P
X0VYQ0VQVElPTik7CisgICAgICAgIGZyYWdtZW50Lmluc2VydEJlZm9yZSgqY2hpbGQsICZlbGVt
ZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICB9Ci0gICAgZnJhZ21lbnQucmVtb3ZlQ2hp
bGQoJmVsZW1lbnQsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIGZyYWdtZW50LnJlbW92ZUNo
aWxkKGVsZW1lbnQsIEFTU0VSVF9OT19FWENFUFRJT04pOwogfQogCiBQYXNzUmVmUHRyPERvY3Vt
ZW50RnJhZ21lbnQ+IGNyZWF0ZUNvbnRleHR1YWxGcmFnbWVudChjb25zdCBTdHJpbmcmIG1hcmt1
cCwgSFRNTEVsZW1lbnQqIGVsZW1lbnQsIFBhcnNlckNvbnRlbnRQb2xpY3kgcGFyc2VyQ29udGVu
dFBvbGljeSwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC05OTAsNyArOTkwLDcgQEAgc3RhdGljIGlu
bGluZSBib29sIGhhc09uZVRleHRDaGlsZChDb250YWluZXJOb2RlJiBub2RlKQogICAgIHJldHVy
biBoYXNPbmVDaGlsZChub2RlKSAmJiBub2RlLmZpcnN0Q2hpbGQoKS0+aXNUZXh0Tm9kZSgpOwog
fQogCi12b2lkIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudChDb250YWluZXJOb2RlJiBjb250
YWluZXIsIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQordm9pZCByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQoQ29udGFpbmVyTm9kZSYg
Y29udGFpbmVyLCBSZWY8RG9jdW1lbnRGcmFnbWVudD4mJiBmcmFnbWVudCwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7CiAgICAgUmVmPENvbnRhaW5lck5vZGU+IGNvbnRhaW5lck5vZGUoY29udGFpbmVy
KTsKICAgICBDaGlsZExpc3RNdXRhdGlvblNjb3BlIG11dGF0aW9uKGNvbnRhaW5lck5vZGUpOwpA
QCAtMTAwMCwxOCArMTAwMCwxOCBAQCB2b2lkIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudChD
b250YWluZXJOb2RlJiBjb250YWluZXIsIFBhc3NSZWZQdHI8RG9jdW1lbnRGcgogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgaWYgKGhhc09uZVRleHRDaGlsZChjb250YWluZXJOb2RlKSAm
JiBoYXNPbmVUZXh0Q2hpbGQoKmZyYWdtZW50KSkgeworICAgIGlmIChoYXNPbmVUZXh0Q2hpbGQo
Y29udGFpbmVyTm9kZSkgJiYgaGFzT25lVGV4dENoaWxkKGZyYWdtZW50KSkgewogICAgICAgICBk
b3duY2FzdDxUZXh0PigqY29udGFpbmVyTm9kZS0+Zmlyc3RDaGlsZCgpKS5zZXREYXRhKGRvd25j
YXN0PFRleHQ+KCpmcmFnbWVudC0+Zmlyc3RDaGlsZCgpKS5kYXRhKCksIGVjKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAogICAgIGlmIChoYXNPbmVDaGlsZChjb250YWluZXJOb2RlKSkgewot
ICAgICAgICBjb250YWluZXJOb2RlLT5yZXBsYWNlQ2hpbGQoZnJhZ21lbnQsIGNvbnRhaW5lck5v
ZGUtPmZpcnN0Q2hpbGQoKSwgZWMpOworICAgICAgICBjb250YWluZXJOb2RlLT5yZXBsYWNlQ2hp
bGQoV1RGOjptb3ZlKGZyYWdtZW50KSwgKmNvbnRhaW5lck5vZGUtPmZpcnN0Q2hpbGQoKSwgZWMp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgY29udGFpbmVyTm9kZS0+cmVtb3ZlQ2hp
bGRyZW4oKTsKLSAgICBjb250YWluZXJOb2RlLT5hcHBlbmRDaGlsZChmcmFnbWVudCwgZWMpOwor
ICAgIGNvbnRhaW5lck5vZGUtPmFwcGVuZENoaWxkKFdURjo6bW92ZShmcmFnbWVudCksIGVjKTsK
IH0KIAogdm9pZCByZXBsYWNlQ2hpbGRyZW5XaXRoVGV4dChDb250YWluZXJOb2RlJiBjb250YWlu
ZXIsIGNvbnN0IFN0cmluZyYgdGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC0xMDI3LDcgKzEw
MjcsNyBAQCB2b2lkIHJlcGxhY2VDaGlsZHJlbldpdGhUZXh0KENvbnRhaW5lck5vZGUmIGNvbnRh
aW5lciwgY29uc3QgU3RyaW5nJiB0ZXh0LCBFeGNlcAogICAgIFJlZjxUZXh0PiB0ZXh0Tm9kZSA9
IFRleHQ6OmNyZWF0ZShjb250YWluZXJOb2RlLT5kb2N1bWVudCgpLCB0ZXh0KTsKIAogICAgIGlm
IChoYXNPbmVDaGlsZChjb250YWluZXJOb2RlKSkgewotICAgICAgICBjb250YWluZXJOb2RlLT5y
ZXBsYWNlQ2hpbGQoV1RGOjptb3ZlKHRleHROb2RlKSwgY29udGFpbmVyTm9kZS0+Zmlyc3RDaGls
ZCgpLCBlYyk7CisgICAgICAgIGNvbnRhaW5lck5vZGUtPnJlcGxhY2VDaGlsZChXVEY6Om1vdmUo
dGV4dE5vZGUpLCAqY29udGFpbmVyTm9kZS0+Zmlyc3RDaGlsZCgpLCBlYyk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3Vw
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5oCmluZGV4IGM1NTIwMTA3NjYwNzJl
ZjVlNjFkMjZhMzEzYzFiMDAzYjFiODM0YjguLjc2ZjZkMzA2ODVlMjcwNDRhZTA1OTUzMzM2NGNm
ZTFjMGM2YzYxNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuaApAQCAtNTksMTEgKzU5LDExIEBA
IGJvb2wgaXNQbGFpblRleHRNYXJrdXAoTm9kZSopOwogCiAvLyBUaGVzZSBtZXRob2RzIGFyZSB1
c2VkIGJ5IEhUTUxFbGVtZW50ICYgU2hhZG93Um9vdCB0byByZXBsYWNlIHRoZQogLy8gY2hpbGRy
ZW4gd2l0aCByZXNwZWN0ZWQgZnJhZ21lbnQvdGV4dC4KLXZvaWQgcmVwbGFjZUNoaWxkcmVuV2l0
aEZyYWdtZW50KENvbnRhaW5lck5vZGUmLCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+LCBF
eGNlcHRpb25Db2RlJik7Cit2b2lkIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudChDb250YWlu
ZXJOb2RlJiwgUmVmPERvY3VtZW50RnJhZ21lbnQ+JiYsIEV4Y2VwdGlvbkNvZGUmKTsKIHZvaWQg
cmVwbGFjZUNoaWxkcmVuV2l0aFRleHQoQ29udGFpbmVyTm9kZSYsIGNvbnN0IFN0cmluZyYsIEV4
Y2VwdGlvbkNvZGUmKTsKIAotU3RyaW5nIGNyZWF0ZU1hcmt1cChjb25zdCBSYW5nZSYsIFZlY3Rv
cjxOb2RlKj4qID0gMCwgRUFubm90YXRlRm9ySW50ZXJjaGFuZ2UgPSBEb05vdEFubm90YXRlRm9y
SW50ZXJjaGFuZ2UsIGJvb2wgY29udmVydEJsb2Nrc1RvSW5saW5lcyA9IGZhbHNlLCBFQWJzb2x1
dGVVUkxzID0gRG9Ob3RSZXNvbHZlVVJMcyk7Ci1TdHJpbmcgY3JlYXRlTWFya3VwKGNvbnN0IE5v
ZGUmLCBFQ2hpbGRyZW5Pbmx5ID0gSW5jbHVkZU5vZGUsIFZlY3RvcjxOb2RlKj4qID0gMCwgRUFi
c29sdXRlVVJMcyA9IERvTm90UmVzb2x2ZVVSTHMsIFZlY3RvcjxRdWFsaWZpZWROYW1lPiogdGFn
TmFtZXNUb1NraXAgPSAwLCBFRnJhZ21lbnRTZXJpYWxpemF0aW9uID0gSFRNTEZyYWdtZW50U2Vy
aWFsaXphdGlvbik7CitTdHJpbmcgY3JlYXRlTWFya3VwKGNvbnN0IFJhbmdlJiwgVmVjdG9yPE5v
ZGUqPiogPSBudWxscHRyLCBFQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSA9IERvTm90QW5ub3RhdGVG
b3JJbnRlcmNoYW5nZSwgYm9vbCBjb252ZXJ0QmxvY2tzVG9JbmxpbmVzID0gZmFsc2UsIEVBYnNv
bHV0ZVVSTHMgPSBEb05vdFJlc29sdmVVUkxzKTsKK1N0cmluZyBjcmVhdGVNYXJrdXAoY29uc3Qg
Tm9kZSYsIEVDaGlsZHJlbk9ubHkgPSBJbmNsdWRlTm9kZSwgVmVjdG9yPE5vZGUqPiogPSBudWxs
cHRyLCBFQWJzb2x1dGVVUkxzID0gRG9Ob3RSZXNvbHZlVVJMcywgVmVjdG9yPFF1YWxpZmllZE5h
bWU+KiB0YWdOYW1lc1RvU2tpcCA9IDAsIEVGcmFnbWVudFNlcmlhbGl6YXRpb24gPSBIVE1MRnJh
Z21lbnRTZXJpYWxpemF0aW9uKTsKIAogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNyZWF0ZUZ1bGxN
YXJrdXAoY29uc3QgTm9kZSYpOwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNyZWF0ZUZ1bGxNYXJr
dXAoY29uc3QgUmFuZ2UmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNo
b29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKaW5kZXggZGJlYTBlOTliZDkz
NGM3ZGJkZWE1MmQyNWQwMWMyZjgxNzVkYzFkMC4uNTdlMzg4YmYxZGNlYTRiODE5NmI0NjBmMGNj
MzcxMWZmMGY4NzM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nl
ck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKQEAgLTYwLDkgKzYwLDkgQEAg
dm9pZCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3Vi
dHJlZSgpCiB7CiAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
ZywgdmFsdWVDb250YWluZXJQc2V1ZG8sICgiLXdlYmtpdC1kYXRlLWFuZC10aW1lLXZhbHVlIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogCi0gICAgUmVmUHRyPEhUTUxE
aXZFbGVtZW50PiB2YWx1ZUNvbnRhaW5lciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZWxlbWVu
dCgpLmRvY3VtZW50KCkpOworICAgIFJlZjxIVE1MRGl2RWxlbWVudD4gdmFsdWVDb250YWluZXIg
PSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS5kb2N1bWVudCgpKTsKICAgICB2YWx1
ZUNvbnRhaW5lci0+c2V0UHNldWRvKHZhbHVlQ29udGFpbmVyUHNldWRvKTsKLSAgICBlbGVtZW50
KCkudXNlckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZCh2YWx1ZUNvbnRhaW5lci5nZXQo
KSk7CisgICAgZWxlbWVudCgpLnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoV1RG
Ojptb3ZlKHZhbHVlQ29udGFpbmVyKSk7CiAgICAgdXBkYXRlQXBwZWFyYW5jZSgpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCmluZGV4IDhiYmRiOTdjMjUyNGI2MmFi
MzlhYTY0ZTY4NDA4NTVjYTQ2OTU1OWMuLmM1Mzg1YTA0YjY3NzhjNWVhMmQ0MzViNDM5YTk0YmYy
MDdiYjY2NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCkBAIC0xMDcs
MTIgKzEwNywxMiBAQCB2b2lkIENvbG9ySW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkK
ICAgICBBU1NFUlQoZWxlbWVudCgpLnNoYWRvd1Jvb3QoKSk7CiAKICAgICBEb2N1bWVudCYgZG9j
dW1lbnQgPSBlbGVtZW50KCkuZG9jdW1lbnQoKTsKLSAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+
IHdyYXBwZXJFbGVtZW50ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAg
UmVmPEhUTUxEaXZFbGVtZW50PiB3cmFwcGVyRWxlbWVudCA9IEhUTUxEaXZFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQpOwogICAgIHdyYXBwZXJFbGVtZW50LT5zZXRQc2V1ZG8oQXRvbWljU3RyaW5n
KCItd2Via2l0LWNvbG9yLXN3YXRjaC13cmFwcGVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOwotICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gY29sb3JTd2F0Y2ggPSBI
VE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBSZWY8SFRNTERpdkVsZW1lbnQ+
IGNvbG9yU3dhdGNoID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29s
b3JTd2F0Y2gtPnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtY29sb3Itc3dhdGNoIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIHdyYXBwZXJFbGVtZW50
LT5hcHBlbmRDaGlsZChjb2xvclN3YXRjaC5yZWxlYXNlKCksIEFTU0VSVF9OT19FWENFUFRJT04p
OwotICAgIGVsZW1lbnQoKS51c2VyQWdlbnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKHdyYXBw
ZXJFbGVtZW50LnJlbGVhc2UoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgd3JhcHBlckVs
ZW1lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShjb2xvclN3YXRjaCksIEFTU0VSVF9OT19FWENF
UFRJT04pOworICAgIGVsZW1lbnQoKS51c2VyQWdlbnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxk
KFdURjo6bW92ZSh3cmFwcGVyRWxlbWVudCksIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgIAog
ICAgIHVwZGF0ZUNvbG9yU3dhdGNoKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGly
ZWN0b3J5RG9jdW1lbnQuY3BwCmluZGV4IDQwNjVhMTc4ZDI4MmE5Mjk3MTQ1MTE1NWI2NmQ2M2Rk
MzRhMWYyZDUuLjE0NDdhNDYzNWY3MjEyZWZhOTJhMTFjMTdmOTJmN2Y2OTM3ZWFlZmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwCkBAIC0xMDQsMjcg
KzEwNCwyNyBAQCB2b2lkIEZUUERpcmVjdG9yeURvY3VtZW50UGFyc2VyOjphcHBlbmRFbnRyeShj
b25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBTdHJpbgogICAgIFJlZlB0cjxFbGVtZW50PiBy
b3dFbGVtZW50ID0gbV90YWJsZUVsZW1lbnQtPmluc2VydFJvdygtMSwgSUdOT1JFX0VYQ0VQVElP
Tik7CiAgICAgcm93RWxlbWVudC0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6Y2xhc3NBdHRyLCAi
ZnRwRGlyZWN0b3J5RW50cnlSb3ciKTsKIAotICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0g
ZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudCh0ZFRhZywgZmFsc2UpOworICAgIFJlZjxFbGVtZW50
PiBlbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudCh0ZFRhZywgZmFsc2UpOwogICAg
IGVsZW1lbnQtPmFwcGVuZENoaWxkKFRleHQ6OmNyZWF0ZSgqZG9jdW1lbnQoKSwgU3RyaW5nKCZu
b0JyZWFrU3BhY2UsIDEpKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgaWYgKGlzRGlyZWN0b3J5
KQogICAgICAgICBlbGVtZW50LT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpjbGFzc0F0dHIsICJm
dHBEaXJlY3RvcnlJY29uIGZ0cERpcmVjdG9yeVR5cGVEaXJlY3RvcnkiKTsKICAgICBlbHNlCiAg
ICAgICAgIGVsZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNsYXNzQXR0ciwgImZ0cERp
cmVjdG9yeUljb24gZnRwRGlyZWN0b3J5VHlwZUZpbGUiKTsKLSAgICByb3dFbGVtZW50LT5hcHBl
bmRDaGlsZChlbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICByb3dFbGVtZW50LT5hcHBl
bmRDaGlsZChXVEY6Om1vdmUoZWxlbWVudCksIElHTk9SRV9FWENFUFRJT04pOwogCiAgICAgZWxl
bWVudCA9IGNyZWF0ZVRERm9yRmlsZW5hbWUoZmlsZW5hbWUpOwogICAgIGVsZW1lbnQtPnNldEF0
dHJpYnV0ZShIVE1MTmFtZXM6OmNsYXNzQXR0ciwgImZ0cERpcmVjdG9yeUZpbGVOYW1lIik7Ci0g
ICAgcm93RWxlbWVudC0+YXBwZW5kQ2hpbGQoZWxlbWVudCwgSUdOT1JFX0VYQ0VQVElPTik7Cisg
ICAgcm93RWxlbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGVsZW1lbnQpLCBJR05PUkVfRVhD
RVBUSU9OKTsKIAogICAgIGVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KHRkVGFn
LCBmYWxzZSk7CiAgICAgZWxlbWVudC0+YXBwZW5kQ2hpbGQoVGV4dDo6Y3JlYXRlKCpkb2N1bWVu
dCgpLCBkYXRlKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgZWxlbWVudC0+c2V0QXR0cmlidXRl
KEhUTUxOYW1lczo6Y2xhc3NBdHRyLCAiZnRwRGlyZWN0b3J5RmlsZURhdGUiKTsKLSAgICByb3dF
bGVtZW50LT5hcHBlbmRDaGlsZChlbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICByb3dF
bGVtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoZWxlbWVudCksIElHTk9SRV9FWENFUFRJT04p
OwogCiAgICAgZWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQodGRUYWcsIGZhbHNl
KTsKICAgICBlbGVtZW50LT5hcHBlbmRDaGlsZChUZXh0OjpjcmVhdGUoKmRvY3VtZW50KCksIHNp
emUpLCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICBlbGVtZW50LT5zZXRBdHRyaWJ1dGUoSFRNTE5h
bWVzOjpjbGFzc0F0dHIsICJmdHBEaXJlY3RvcnlGaWxlU2l6ZSIpOwotICAgIHJvd0VsZW1lbnQt
PmFwcGVuZENoaWxkKGVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOworICAgIHJvd0VsZW1lbnQt
PmFwcGVuZENoaWxkKFdURjo6bW92ZShlbGVtZW50KSwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CiAK
IFJlZjxFbGVtZW50PiBGVFBEaXJlY3RvcnlEb2N1bWVudFBhcnNlcjo6Y3JlYXRlVERGb3JGaWxl
bmFtZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lKQpAQCAtMTM1LDEyICsxMzUsMTIgQEAgUmVmPEVs
ZW1lbnQ+IEZUUERpcmVjdG9yeURvY3VtZW50UGFyc2VyOjpjcmVhdGVUREZvckZpbGVuYW1lKGNv
bnN0IFN0cmluZyYgZmlsZW4KICAgICBlbHNlCiAgICAgICAgIGZ1bGxVUkwgPSBmdWxsVVJMICsg
Jy8nICsgZmlsZW5hbWU7CiAKLSAgICBSZWZQdHI8RWxlbWVudD4gYW5jaG9yRWxlbWVudCA9IGRv
Y3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoYVRhZywgZmFsc2UpOworICAgIFJlZjxFbGVtZW50PiBh
bmNob3JFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChhVGFnLCBmYWxzZSk7CiAg
ICAgYW5jaG9yRWxlbWVudC0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6aHJlZkF0dHIsIGZ1bGxV
UkwpOwogICAgIGFuY2hvckVsZW1lbnQtPmFwcGVuZENoaWxkKFRleHQ6OmNyZWF0ZSgqZG9jdW1l
bnQoKSwgZmlsZW5hbWUpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAogICAgIFJlZjxFbGVtZW50PiB0
ZEVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KHRkVGFnLCBmYWxzZSk7Ci0gICAg
dGRFbGVtZW50LT5hcHBlbmRDaGlsZChhbmNob3JFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsK
KyAgICB0ZEVsZW1lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShhbmNob3JFbGVtZW50KSwgSUdO
T1JFX0VYQ0VQVElPTik7CiAKICAgICByZXR1cm4gdGRFbGVtZW50OwogfQpAQCAtMzEyLDkgKzMx
Miw5IEBAIGJvb2wgRlRQRGlyZWN0b3J5RG9jdW1lbnRQYXJzZXI6OmxvYWREb2N1bWVudFRlbXBs
YXRlKCkKICAgICAvLyBJZiB0aGF0IGZhaWxzIGZvciBzb21lIHJlYXNvbiwgY3JhbSBpdCBvbiB0
aGUgZW5kIG9mIHRoZSBkb2N1bWVudCBhcyBhIGxhc3QKICAgICAvLyBkaXRjaCBlZmZvcnQKICAg
ICBpZiAoYXV0byogYm9keSA9IGRvY3VtZW50KCktPmJvZHlPckZyYW1lc2V0KCkpCi0gICAgICAg
IGJvZHktPmFwcGVuZENoaWxkKG1fdGFibGVFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAg
ICAgICAgYm9keS0+YXBwZW5kQ2hpbGQoKm1fdGFibGVFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9O
KTsKICAgICBlbHNlCi0gICAgICAgIGRvY3VtZW50KCktPmFwcGVuZENoaWxkKG1fdGFibGVFbGVt
ZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgZG9jdW1lbnQoKS0+YXBwZW5kQ2hpbGQo
Km1fdGFibGVFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKIAogICAgIHJldHVybiB0cnVlOwog
fQpAQCAtMzI1LDE2ICszMjUsMTYgQEAgdm9pZCBGVFBEaXJlY3RvcnlEb2N1bWVudFBhcnNlcjo6
Y3JlYXRlQmFzaWNEb2N1bWVudCgpCiAKICAgICAvLyBGSVhNRTogTWFrZSB0aGlzICJiYXNpYyBk
b2N1bWVudCIgbW9yZSBhY2NlcHRhYmxlCiAKLSAgICBSZWZQdHI8RWxlbWVudD4gYm9keUVsZW1l
bnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KGJvZHlUYWcsIGZhbHNlKTsKKyAgICBSZWY8
RWxlbWVudD4gYm9keUVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KGJvZHlUYWcs
IGZhbHNlKTsKIAotICAgIGRvY3VtZW50KCktPmFwcGVuZENoaWxkKGJvZHlFbGVtZW50LCBJR05P
UkVfRVhDRVBUSU9OKTsKKyAgICBkb2N1bWVudCgpLT5hcHBlbmRDaGlsZChib2R5RWxlbWVudC5j
b3B5UmVmKCksIElHTk9SRV9FWENFUFRJT04pOwogCi0gICAgUmVmUHRyPEVsZW1lbnQ+IHRhYmxl
RWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQodGFibGVUYWcsIGZhbHNlKTsKLSAg
ICBtX3RhYmxlRWxlbWVudCA9IGRvd25jYXN0PEhUTUxUYWJsZUVsZW1lbnQ+KHRhYmxlRWxlbWVu
dC5nZXQoKSk7CisgICAgUmVmPEVsZW1lbnQ+IHRhYmxlRWxlbWVudCA9IGRvY3VtZW50KCktPmNy
ZWF0ZUVsZW1lbnQodGFibGVUYWcsIGZhbHNlKTsKKyAgICBtX3RhYmxlRWxlbWVudCA9IGRvd25j
YXN0PEhUTUxUYWJsZUVsZW1lbnQ+KHRhYmxlRWxlbWVudC5wdHIoKSk7CiAgICAgbV90YWJsZUVs
ZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmlkQXR0ciwgImZ0cERpcmVjdG9yeVRhYmxl
Iik7CiAgICAgbV90YWJsZUVsZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OnN0eWxlQXR0
ciwgIndpZHRoOjEwMCUiKTsKIAotICAgIGJvZHlFbGVtZW50LT5hcHBlbmRDaGlsZChtX3RhYmxl
RWxlbWVudCwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgYm9keUVsZW1lbnQtPmFwcGVuZENoaWxk
KFdURjo6bW92ZSh0YWJsZUVsZW1lbnQpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAogICAgIGRvY3Vt
ZW50KCktPnByb2Nlc3NWaWV3cG9ydCgid2lkdGg9ZGV2aWNlLXdpZHRoIiwgVmlld3BvcnRBcmd1
bWVudHM6OlZpZXdwb3J0TWV0YSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxEZXRhaWxzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxz
RWxlbWVudC5jcHAKaW5kZXggNDMwMjEyYzFhYjgwNzA5MTYzZTU0ZjUzZDFkYmMyZjdjYWRhOGIx
Zi4uNDhjYzliODQ4ZTU0MTdhYzc5ZmE2NTAxOWU0ODcwNWUxNzEyN2EwOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcApAQCAtOTAsMTEgKzkwLDExIEBAIHBy
aXZhdGU6CiAKIFJlZjxEZXRhaWxzU3VtbWFyeUVsZW1lbnQ+IERldGFpbHNTdW1tYXJ5RWxlbWVu
dDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBSZWZQdHI8SFRNTFN1bW1hcnlF
bGVtZW50PiBzdW1tYXJ5ID0gSFRNTFN1bW1hcnlFbGVtZW50OjpjcmVhdGUoc3VtbWFyeVRhZywg
ZG9jdW1lbnQpOworICAgIFJlZjxIVE1MU3VtbWFyeUVsZW1lbnQ+IHN1bW1hcnkgPSBIVE1MU3Vt
bWFyeUVsZW1lbnQ6OmNyZWF0ZShzdW1tYXJ5VGFnLCBkb2N1bWVudCk7CiAgICAgc3VtbWFyeS0+
YXBwZW5kQ2hpbGQoVGV4dDo6Y3JlYXRlKGRvY3VtZW50LCBkZWZhdWx0RGV0YWlsc1N1bW1hcnlU
ZXh0KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAogICAgIFJlZjxEZXRhaWxzU3VtbWFyeUVs
ZW1lbnQ+IGRldGFpbHNTdW1tYXJ5ID0gYWRvcHRSZWYoKm5ldyBEZXRhaWxzU3VtbWFyeUVsZW1l
bnQoZG9jdW1lbnQpKTsKLSAgICBkZXRhaWxzU3VtbWFyeS0+YXBwZW5kQ2hpbGQoc3VtbWFyeSk7
CisgICAgZGV0YWlsc1N1bW1hcnktPmFwcGVuZENoaWxkKFdURjo6bW92ZShzdW1tYXJ5KSk7CiAg
ICAgcmV0dXJuIGRldGFpbHNTdW1tYXJ5OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQu
Y3BwCmluZGV4IDUyMGNlMDNlNzBjYzdhZDc4NmNiNTM3YTc3MzA5OTdmODYyM2MzNWUuLjA2ZDBh
Y2U5ZWY2NDRjNDdmNmFlNjI3YzViZTJhZjkwMjNlZmJkOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEVsZW1lbnQuY3BwCkBAIC01ODQsOSArNTg0LDkgQEAgdm9pZCBIVE1MRWxlbWVudDo6c2V0SW5u
ZXJUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAKICAgICAvLyBB
ZGQgdGV4dCBub2RlcyBhbmQgPGJyPiBlbGVtZW50cy4KICAgICBlYyA9IDA7Ci0gICAgUmVmUHRy
PERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gdGV4dFRvRnJhZ21lbnQodGV4dCwgZWMpOwor
ICAgIFJlZjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IHRleHRUb0ZyYWdtZW50KHRleHQs
IGVjKTsKICAgICBpZiAoIWVjKQotICAgICAgICByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQo
KnRoaXMsIGZyYWdtZW50LnJlbGVhc2UoKSwgZWMpOworICAgICAgICByZXBsYWNlQ2hpbGRyZW5X
aXRoRnJhZ21lbnQoKnRoaXMsIFdURjo6bW92ZShmcmFnbWVudCksIGVjKTsKIH0KIAogdm9pZCBI
VE1MRWxlbWVudDo6c2V0T3V0ZXJUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgRXhjZXB0aW9uQ29k
ZSYgZWMpCkBAIC02MDgsMjAgKzYwOCwxNiBAQCB2b2lkIEhUTUxFbGVtZW50OjpzZXRPdXRlclRl
eHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKIAogICAgIFJlZlB0cjxO
b2RlPiBwcmV2ID0gcHJldmlvdXNTaWJsaW5nKCk7CiAgICAgUmVmUHRyPE5vZGU+IG5leHQgPSBu
ZXh0U2libGluZygpOwotICAgIFJlZlB0cjxOb2RlPiBuZXdDaGlsZDsKICAgICBlYyA9IDA7CiAg
ICAgCiAgICAgLy8gQ29udmVydCB0ZXh0IHRvIGZyYWdtZW50IHdpdGggPGJyPiB0YWdzIGluc3Rl
YWQgb2YgbGluZWJyZWFrcyBpZiBuZWVkZWQuCi0gICAgaWYgKHRleHQuY29udGFpbnMoJ1xyJykg
fHwgdGV4dC5jb250YWlucygnXG4nKSkKLSAgICAgICAgbmV3Q2hpbGQgPSB0ZXh0VG9GcmFnbWVu
dCh0ZXh0LCBlYyk7Ci0gICAgZWxzZQotICAgICAgICBuZXdDaGlsZCA9IFRleHQ6OmNyZWF0ZShk
b2N1bWVudCgpLCB0ZXh0KTsKKyAgICBSZWY8Tm9kZT4gbmV3Q2hpbGQgPSB0ZXh0LmNvbnRhaW5z
KCdccicpIHx8IHRleHQuY29udGFpbnMoJ1xuJykgPyBSZWY8Tm9kZT4odGV4dFRvRnJhZ21lbnQo
dGV4dCwgZWMpKSA6IFJlZjxOb2RlPihUZXh0OjpjcmVhdGUoZG9jdW1lbnQoKSwgdGV4dCkpOwog
CiAgICAgaWYgKCFwYXJlbnROb2RlKCkpCiAgICAgICAgIGVjID0gSElFUkFSQ0hZX1JFUVVFU1Rf
RVJSOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuOwotICAgIHBhcmVudC0+cmVwbGFjZUNo
aWxkKG5ld0NoaWxkLnJlbGVhc2UoKSwgdGhpcywgZWMpOworICAgIHBhcmVudC0+cmVwbGFjZUNo
aWxkKFdURjo6bW92ZShuZXdDaGlsZCksICp0aGlzLCBlYyk7CiAKICAgICBSZWZQdHI8Tm9kZT4g
bm9kZSA9IG5leHQgPyBuZXh0LT5wcmV2aW91c1NpYmxpbmcoKSA6IG51bGxwdHI7CiAgICAgaWYg
KCFlYyAmJiBpczxUZXh0Pihub2RlLmdldCgpKSkKQEAgLTYzMCw3ICs2MjYsNyBAQCB2b2lkIEhU
TUxFbGVtZW50OjpzZXRPdXRlclRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBFeGNlcHRpb25Db2Rl
JiBlYykKICAgICAgICAgbWVyZ2VXaXRoTmV4dFRleHROb2RlKGRvd25jYXN0PFRleHQ+KCpwcmV2
KSwgZWMpOwogfQogCi1Ob2RlKiBIVE1MRWxlbWVudDo6aW5zZXJ0QWRqYWNlbnQoY29uc3QgU3Ry
aW5nJiB3aGVyZSwgTm9kZSogbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQorTm9kZSogSFRN
TEVsZW1lbnQ6Omluc2VydEFkamFjZW50KGNvbnN0IFN0cmluZyYgd2hlcmUsIFJlZjxOb2RlPiYm
IG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICAvLyBJbiBJbnRlcm5ldCBFeHBs
b3JlciBpZiB0aGUgZWxlbWVudCBoYXMgbm8gcGFyZW50IGFuZCB3aGVyZSBpcyAiYmVmb3JlQmVn
aW4iIG9yICJhZnRlckVuZCIsCiAgICAgLy8gYSBkb2N1bWVudCBmcmFnbWVudCBpcyBjcmVhdGVk
IGFuZCB0aGUgZWxlbWVudHMgYXBwZW5kZWQgaW4gdGhlIGNvcnJlY3Qgb3JkZXIuIFRoaXMgZG9j
dW1lbnQKQEAgLTY0MSwxOCArNjM3LDE4IEBAIE5vZGUqIEhUTUxFbGVtZW50OjppbnNlcnRBZGph
Y2VudChjb25zdCBTdHJpbmcmIHdoZXJlLCBOb2RlKiBuZXdDaGlsZCwgRXhjZXB0aW9uCiAKICAg
ICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2Uod2hlcmUsICJiZWZvcmVCZWdpbiIpKSB7CiAgICAgICAg
IENvbnRhaW5lck5vZGUqIHBhcmVudCA9IHRoaXMtPnBhcmVudE5vZGUoKTsKLSAgICAgICAgcmV0
dXJuIChwYXJlbnQgJiYgcGFyZW50LT5pbnNlcnRCZWZvcmUobmV3Q2hpbGQsIHRoaXMsIGVjKSkg
PyBuZXdDaGlsZCA6IG51bGxwdHI7CisgICAgICAgIHJldHVybiAocGFyZW50ICYmIHBhcmVudC0+
aW5zZXJ0QmVmb3JlKG5ld0NoaWxkLmNvcHlSZWYoKSwgdGhpcywgZWMpKSA/IG5ld0NoaWxkLnB0
cigpIDogbnVsbHB0cjsKICAgICB9CiAKICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2Uod2hlcmUs
ICJhZnRlckJlZ2luIikpCi0gICAgICAgIHJldHVybiBpbnNlcnRCZWZvcmUobmV3Q2hpbGQsIGZp
cnN0Q2hpbGQoKSwgZWMpID8gbmV3Q2hpbGQgOiBudWxscHRyOworICAgICAgICByZXR1cm4gaW5z
ZXJ0QmVmb3JlKG5ld0NoaWxkLmNvcHlSZWYoKSwgZmlyc3RDaGlsZCgpLCBlYykgPyBuZXdDaGls
ZC5wdHIoKSA6IG51bGxwdHI7CiAKICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2Uod2hlcmUsICJi
ZWZvcmVFbmQiKSkKLSAgICAgICAgcmV0dXJuIGFwcGVuZENoaWxkKG5ld0NoaWxkLCBlYykgPyBu
ZXdDaGlsZCA6IG51bGxwdHI7CisgICAgICAgIHJldHVybiBhcHBlbmRDaGlsZChuZXdDaGlsZC5j
b3B5UmVmKCksIGVjKSA/IG5ld0NoaWxkLnB0cigpIDogbnVsbHB0cjsKIAogICAgIGlmIChlcXVh
bElnbm9yaW5nQ2FzZSh3aGVyZSwgImFmdGVyRW5kIikpIHsKICAgICAgICAgQ29udGFpbmVyTm9k
ZSogcGFyZW50ID0gdGhpcy0+cGFyZW50Tm9kZSgpOwotICAgICAgICByZXR1cm4gKHBhcmVudCAm
JiBwYXJlbnQtPmluc2VydEJlZm9yZShuZXdDaGlsZCwgbmV4dFNpYmxpbmcoKSwgZWMpKSA/IG5l
d0NoaWxkIDogbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIChwYXJlbnQgJiYgcGFyZW50LT5pbnNl
cnRCZWZvcmUobmV3Q2hpbGQuY29weVJlZigpLCBuZXh0U2libGluZygpLCBlYykpID8gbmV3Q2hp
bGQucHRyKCkgOiBudWxscHRyOwogICAgIH0KICAgICAKICAgICAvLyBJRSB0aHJvd3MgQ09NIEV4
Y2VwdGlvbiBFX0lOVkFMSURBUkc7IHRoaXMgaXMgdGhlIGJlc3QgRE9NIGV4Y2VwdGlvbiBhbHRl
cm5hdGl2ZS4KQEAgLTY2OCw3ICs2NjQsNyBAQCBFbGVtZW50KiBIVE1MRWxlbWVudDo6aW5zZXJ0
QWRqYWNlbnRFbGVtZW50KGNvbnN0IFN0cmluZyYgd2hlcmUsIEVsZW1lbnQqIG5ld0NoaQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBOb2RlKiByZXR1cm5WYWx1ZSA9IGlu
c2VydEFkamFjZW50KHdoZXJlLCBuZXdDaGlsZCwgZWMpOworICAgIE5vZGUqIHJldHVyblZhbHVl
ID0gaW5zZXJ0QWRqYWNlbnQod2hlcmUsICpuZXdDaGlsZCwgZWMpOwogICAgIEFTU0VSVF9XSVRI
X1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFyZXR1cm5WYWx1ZSB8fCBpczxFbGVtZW50PigqcmV0dXJu
VmFsdWUpKTsKICAgICByZXR1cm4gZG93bmNhc3Q8RWxlbWVudD4ocmV0dXJuVmFsdWUpOyAKIH0K
QEAgLTY5OSwxMyArNjk1LDEyIEBAIHZvaWQgSFRNTEVsZW1lbnQ6Omluc2VydEFkamFjZW50SFRN
TChjb25zdCBTdHJpbmcmIHdoZXJlLCBjb25zdCBTdHJpbmcmIG1hcmt1cCwKICAgICBSZWZQdHI8
RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZvcklubmVyT3V0ZXJI
VE1MKG1hcmt1cCwgY29udGV4dEVsZW1lbnQsIEFsbG93U2NyaXB0aW5nQ29udGVudCwgZWMpOwog
ICAgIGlmICghZnJhZ21lbnQpCiAgICAgICAgIHJldHVybjsKLSAgICBpbnNlcnRBZGphY2VudCh3
aGVyZSwgZnJhZ21lbnQuZ2V0KCksIGVjKTsKKyAgICBpbnNlcnRBZGphY2VudCh3aGVyZSwgZnJh
Z21lbnQucmVsZWFzZU5vbk51bGwoKSwgZWMpOwogfQogCiB2b2lkIEhUTUxFbGVtZW50OjppbnNl
cnRBZGphY2VudFRleHQoY29uc3QgU3RyaW5nJiB3aGVyZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBSZWZQdHI8VGV4dD4gdGV4dE5vZGUgPSBkb2N1bWVu
dCgpLmNyZWF0ZVRleHROb2RlKHRleHQpOwotICAgIGluc2VydEFkamFjZW50KHdoZXJlLCB0ZXh0
Tm9kZS5nZXQoKSwgZWMpOworICAgIGluc2VydEFkamFjZW50KHdoZXJlLCBkb2N1bWVudCgpLmNy
ZWF0ZVRleHROb2RlKHRleHQpLCBlYyk7CiB9CiAKIHZvaWQgSFRNTEVsZW1lbnQ6OmFwcGx5QWxp
Z25tZW50QXR0cmlidXRlVG9TdHlsZShjb25zdCBBdG9taWNTdHJpbmcmIGFsaWdubWVudCwgTXV0
YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKaW5k
ZXggMzBlMzc3NWEwMDRlMzFiZWFlODM1Y2Y2OTBjYjQwOWIxZGZlYjc3YS4uNzBkNDk2MWNlZDJk
Y2U5NmQ0NTU0ZWMxNjY2OTBkMGQ4NWMwNjNlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQu
aApAQCAtMTMwLDcgKzEzMCw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIEhUTUxGb3JtRWxl
bWVudCogdmlydHVhbEZvcm0oKSBjb25zdDsKIAotICAgIE5vZGUqIGluc2VydEFkamFjZW50KGNv
bnN0IFN0cmluZyYgd2hlcmUsIE5vZGUqIG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJik7CisgICAg
Tm9kZSogaW5zZXJ0QWRqYWNlbnQoY29uc3QgU3RyaW5nJiB3aGVyZSwgUmVmPE5vZGU+JiYgbmV3
Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBSZWY8RG9jdW1lbnRGcmFnbWVudD4gdGV4dFRv
RnJhZ21lbnQoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgdm9pZCBkaXJB
dHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEltYWdlRWxlbWVudC5jcHAKaW5kZXggYjJhMjc3YTU1OWJhMzVkMWYzOTU1ZjQyODNjN2M4
MjkxMzRiMGEwNi4uYTRhNzNjYTZiNjA5N2RjNzhiZDY5ZjNiYjQxMjFlNGQyN2RlZDRiOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCkBAIC01MDQsNyArNTA0LDcg
QEAgdm9pZCBIVE1MSW1hZ2VFbGVtZW50OjpjcmVhdGVJbWFnZUNvbnRyb2xzKCkKICAgICBpZiAo
IWltYWdlQ29udHJvbHMpCiAgICAgICAgIHJldHVybjsKIAotICAgIGVuc3VyZVVzZXJBZ2VudFNo
YWRvd1Jvb3QoKS5hcHBlbmRDaGlsZChpbWFnZUNvbnRyb2xzKTsKKyAgICBlbnN1cmVVc2VyQWdl
bnRTaGFkb3dSb290KCkuYXBwZW5kQ2hpbGQoaW1hZ2VDb250cm9scy5yZWxlYXNlTm9uTnVsbCgp
KTsKIAogICAgIGF1dG8qIHJlbmRlck9iamVjdCA9IHJlbmRlcmVyKCk7CiAgICAgaWYgKCFyZW5k
ZXJPYmplY3QpCkBAIC01MjEsNyArNTIxLDcgQEAgdm9pZCBIVE1MSW1hZ2VFbGVtZW50OjpkZXN0
cm95SW1hZ2VDb250cm9scygpCiAKICAgICBpZiAoTm9kZSogbm9kZSA9IHNoYWRvd1Jvb3QtPmZp
cnN0Q2hpbGQoKSkgewogICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihu
b2RlLT5pc0ltYWdlQ29udHJvbHNSb290RWxlbWVudCgpKTsKLSAgICAgICAgc2hhZG93Um9vdC0+
cmVtb3ZlQ2hpbGQobm9kZSk7CisgICAgICAgIHNoYWRvd1Jvb3QtPnJlbW92ZUNoaWxkKCpub2Rl
KTsKICAgICB9CiAKICAgICBhdXRvKiByZW5kZXJPYmplY3QgPSByZW5kZXJlcigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcAppbmRleCBlN2Q5MTQ4MjVjNWViODEx
NGQ5YjJlZWExZmRjZjAzMDI2YWEwYmEyLi40YTYzYjAwYTRhNDEzNGI1OGNmMjQ1ZmViNjkyZjhh
NDY2MTZiZjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcApA
QCAtNTgsNyArNTgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgfQogCiBwcml2YXRlOgotICAgIHZpcnR1
YWwgUmVmUHRyPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRy
ZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50KSBvdmVycmlkZQorICAgIHZpcnR1YWwgUmVmPEVs
ZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQm
IHRhcmdldERvY3VtZW50KSBvdmVycmlkZQogICAgIHsKICAgICAgICAgcmV0dXJuIGNyZWF0ZSh0
YXJnZXREb2N1bWVudCk7CiAgICAgfQpAQCAtNzMsMTQgKzczLDE0IEBAIGlubGluZSBIVE1MS2V5
Z2VuRWxlbWVudDo6SFRNTEtleWdlbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lCiAgICAgVmVjdG9yPFN0cmluZz4ga2V5czsKICAgICBnZXRTdXBwb3J0ZWRLZXlT
aXplcyhrZXlzKTsKIAotICAgIFJlZlB0cjxIVE1MU2VsZWN0RWxlbWVudD4gc2VsZWN0ID0gS2V5
Z2VuU2VsZWN0RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBSZWY8SFRNTFNlbGVjdEVs
ZW1lbnQ+IHNlbGVjdCA9IEtleWdlblNlbGVjdEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBrZXlzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIFJl
ZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gb3B0aW9uID0gSFRNTE9wdGlvbkVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCk7Ci0gICAgICAgIHNlbGVjdC0+YXBwZW5kQ2hpbGQob3B0aW9uLCBJR05PUkVf
RVhDRVBUSU9OKTsKKyAgICAgICAgUmVmPEhUTUxPcHRpb25FbGVtZW50PiBvcHRpb24gPSBIVE1M
T3B0aW9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICAgICAgc2VsZWN0LT5hcHBlbmRD
aGlsZChvcHRpb24uY29weVJlZigpLCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICAgICAgb3B0aW9u
LT5hcHBlbmRDaGlsZChUZXh0OjpjcmVhdGUoZG9jdW1lbnQsIGtleXNbaV0pLCBJR05PUkVfRVhD
RVBUSU9OKTsKICAgICB9CiAKLSAgICBlbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCkuYXBwZW5k
Q2hpbGQoc2VsZWN0LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBlbnN1cmVVc2VyQWdlbnRTaGFk
b3dSb290KCkuYXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHNlbGVjdCksIElHTk9SRV9FWENFUFRJT04p
OwogfQogCiBSZWY8SFRNTEtleWdlbkVsZW1lbnQ+IEhUTUxLZXlnZW5FbGVtZW50OjpjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBIVE1MRm9y
bUVsZW1lbnQqIGZvcm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRl
ckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcApp
bmRleCAyMmIyZjM5ODFlMzk1MjM3OTNmNWUyYjMxZTZjYzVkMjhiZmE3NzgwLi5lNWUzZGUwMzY4
MzgxNTQ1ZWE3ODUwYzA4Zjk2YTdmMWJjMDc1OTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1ldGVyRWxlbWVudC5jcHAKQEAgLTIyOSwxNiArMjI5LDE2IEBAIHZvaWQgSFRNTE1ldGVyRWxl
bWVudDo6ZGlkQWRkVXNlckFnZW50U2hhZG93Um9vdChTaGFkb3dSb290KiByb290KQogewogICAg
IEFTU0VSVCghbV92YWx1ZSk7CiAKLSAgICBSZWZQdHI8TWV0ZXJJbm5lckVsZW1lbnQ+IGlubmVy
ID0gTWV0ZXJJbm5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKLSAgICByb290LT5hcHBl
bmRDaGlsZChpbm5lcik7CisgICAgUmVmPE1ldGVySW5uZXJFbGVtZW50PiBpbm5lciA9IE1ldGVy
SW5uZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CisgICAgcm9vdC0+YXBwZW5kQ2hpbGQo
aW5uZXIuY29weVJlZigpKTsKIAotICAgIFJlZlB0cjxNZXRlckJhckVsZW1lbnQ+IGJhciA9IE1l
dGVyQmFyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOworICAgIFJlZjxNZXRlckJhckVsZW1l
bnQ+IGJhciA9IE1ldGVyQmFyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwogICAgIG1fdmFs
dWUgPSBNZXRlclZhbHVlRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwogICAgIG1fdmFsdWUt
PnNldFdpZHRoUGVyY2VudGFnZSgwKTsKICAgICBtX3ZhbHVlLT51cGRhdGVQc2V1ZG8oKTsKLSAg
ICBiYXItPmFwcGVuZENoaWxkKG1fdmFsdWUsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIGJh
ci0+YXBwZW5kQ2hpbGQoKm1fdmFsdWUsIEFTU0VSVF9OT19FWENFUFRJT04pOwogCi0gICAgaW5u
ZXItPmFwcGVuZENoaWxkKGJhciwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgaW5uZXItPmFw
cGVuZENoaWxkKFdURjo6bW92ZShiYXIpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKaW5k
ZXggMmRmZmYyNjM1M2VmOTFmNDgxMGNlMTg3NzcwNmFkYzk1MGZjMzZhZS4uZWQ5Y2FlYTE1YTYy
MTMzODJjMjBkMWRmNjc0Y2FhOGUyYTlmMjJiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
T3B0aW9uRWxlbWVudC5jcHAKQEAgLTcxLDEyICs3MSwxMiBAQCBSZWZQdHI8SFRNTE9wdGlvbkVs
ZW1lbnQ+IEhUTUxPcHRpb25FbGVtZW50OjpjcmVhdGVGb3JKU0NvbnN0cnVjdG9yKERvY3VtZW50
JiBkbwogewogICAgIFJlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gZWxlbWVudCA9IGFkb3B0UmVm
KG5ldyBIVE1MT3B0aW9uRWxlbWVudChvcHRpb25UYWcsIGRvY3VtZW50KSk7CiAKLSAgICBSZWZQ
dHI8VGV4dD4gdGV4dCA9IFRleHQ6OmNyZWF0ZShkb2N1bWVudCwgZGF0YS5pc051bGwoKSA/ICIi
IDogZGF0YSk7CisgICAgUmVmPFRleHQ+IHRleHQgPSBUZXh0OjpjcmVhdGUoZG9jdW1lbnQsIGRh
dGEuaXNOdWxsKCkgPyAiIiA6IGRhdGEpOwogCiAgICAgZWMgPSAwOwotICAgIGVsZW1lbnQtPmFw
cGVuZENoaWxkKHRleHQucmVsZWFzZSgpLCBlYyk7CisgICAgZWxlbWVudC0+YXBwZW5kQ2hpbGQo
V1RGOjptb3ZlKHRleHQpLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBpZiAoIXZhbHVlLmlzTnVsbCgpKQogICAgICAg
ICBlbGVtZW50LT5zZXRWYWx1ZSh2YWx1ZSk7CkBAIC04NCw3ICs4NCw3IEBAIFJlZlB0cjxIVE1M
T3B0aW9uRWxlbWVudD4gSFRNTE9wdGlvbkVsZW1lbnQ6OmNyZWF0ZUZvckpTQ29uc3RydWN0b3Io
RG9jdW1lbnQmIGRvCiAgICAgICAgIGVsZW1lbnQtPnNldEF0dHJpYnV0ZShzZWxlY3RlZEF0dHIs
IGVtcHR5QXRvbSk7CiAgICAgZWxlbWVudC0+c2V0U2VsZWN0ZWQoc2VsZWN0ZWQpOwogCi0gICAg
cmV0dXJuIGVsZW1lbnQucmVsZWFzZSgpOworICAgIHJldHVybiBlbGVtZW50OwogfQogCiBib29s
IEhUTUxPcHRpb25FbGVtZW50Ojppc0ZvY3VzYWJsZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAppbmRleCA4N2YwZTM3MGNhMDJjM2FjOWJiMTQ2
ZmI5YmQwNzZlYmI0YTQ4NTM1Li5kYjdkMDZhOGI3OTMwNTIzZWFjNjljOTA3ZTQ3ZGM0ODI5NzMy
YzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAKQEAg
LTE0OSwxNiArMTQ5LDE2IEBAIHZvaWQgSFRNTFByb2dyZXNzRWxlbWVudDo6ZGlkQWRkVXNlckFn
ZW50U2hhZG93Um9vdChTaGFkb3dSb290KiByb290KQogewogICAgIEFTU0VSVCghbV92YWx1ZSk7
CiAKLSAgICBSZWZQdHI8UHJvZ3Jlc3NJbm5lckVsZW1lbnQ+IGlubmVyID0gUHJvZ3Jlc3NJbm5l
ckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKLSAgICByb290LT5hcHBlbmRDaGlsZChpbm5l
cik7CisgICAgUmVmPFByb2dyZXNzSW5uZXJFbGVtZW50PiBpbm5lciA9IFByb2dyZXNzSW5uZXJF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CisgICAgcm9vdC0+YXBwZW5kQ2hpbGQoaW5uZXIu
Y29weVJlZigpKTsKIAotICAgIFJlZlB0cjxQcm9ncmVzc0JhckVsZW1lbnQ+IGJhciA9IFByb2dy
ZXNzQmFyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwotICAgIFJlZlB0cjxQcm9ncmVzc1Zh
bHVlRWxlbWVudD4gdmFsdWUgPSBQcm9ncmVzc1ZhbHVlRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
KCkpOwotICAgIG1fdmFsdWUgPSB2YWx1ZS5nZXQoKTsKKyAgICBSZWY8UHJvZ3Jlc3NCYXJFbGVt
ZW50PiBiYXIgPSBQcm9ncmVzc0JhckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKKyAgICBS
ZWY8UHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ+IHZhbHVlID0gUHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCgpKTsKKyAgICBtX3ZhbHVlID0gdmFsdWUucHRyKCk7CiAgICAgbV92YWx1
ZS0+c2V0V2lkdGhQZXJjZW50YWdlKEhUTUxQcm9ncmVzc0VsZW1lbnQ6OkluZGV0ZXJtaW5hdGVQ
b3NpdGlvbiAqIDEwMCk7Ci0gICAgYmFyLT5hcHBlbmRDaGlsZChtX3ZhbHVlLCBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKKyAgICBiYXItPmFwcGVuZENoaWxkKCptX3ZhbHVlLCBBU1NFUlRfTk9fRVhD
RVBUSU9OKTsKIAotICAgIGlubmVyLT5hcHBlbmRDaGlsZChiYXIsIEFTU0VSVF9OT19FWENFUFRJ
T04pOworICAgIGlubmVyLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoYmFyKSwgQVNTRVJUX05PX0VY
Q0VQVElPTik7CiB9CiAKIGJvb2wgSFRNTFByb2dyZXNzRWxlbWVudDo6c2hvdWxkQXBwZWFySW5k
ZXRlcm1pbmF0ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
Y3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQu
Y3BwCmluZGV4IDY5NTExNDY2ODA0OTE0YjdhYjIwOWZiZTk2MWM1YmY4MzJlMTA3YTcuLmUxM2E1
Y2RkY2NhMmNiM2I3NTZhOGQzYTU3ZTIzZjgwYTliNDNlNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCkBAIC0xNjksOSArMTY5LDkgQEAgdm9pZCBIVE1MU2Ny
aXB0RWxlbWVudDo6ZGlzcGF0Y2hMb2FkRXZlbnQoKQogICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6
OmNyZWF0ZShldmVudE5hbWVzKCkubG9hZEV2ZW50LCBmYWxzZSwgZmFsc2UpKTsKIH0KIAotUmVm
UHRyPEVsZW1lbnQ+IEhUTUxTY3JpcHRFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmli
dXRlc0FuZENoaWxkcmVuKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCkKK1JlZjxFbGVtZW50PiBI
VE1MU2NyaXB0RWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJl
bihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBI
VE1MU2NyaXB0RWxlbWVudCh0YWdRTmFtZSgpLCB0YXJnZXREb2N1bWVudCwgZmFsc2UsIGFscmVh
ZHlTdGFydGVkKCkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MU2NyaXB0RWxlbWVu
dCh0YWdRTmFtZSgpLCB0YXJnZXREb2N1bWVudCwgZmFsc2UsIGFscmVhZHlTdGFydGVkKCkpKTsK
IH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCmluZGV4IGUzOWMx
MGNhNWU4NmMzNjZhNTM4ZDE3YzY2NDRiM2EyNGQxMzgyMDkuLjMxMmM2NjI2ZThiODMxNGU4NWUy
ZGY2ODdkYmYwOWYyYjJmZTM3YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFNjcmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVt
ZW50LmgKQEAgLTY1LDcgKzY1LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaExvYWRFdmVudCgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBSZWZQdHI8RWxlbWVudD4g
Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgUmVmPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1
dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmKSBvdmVycmlkZTsKIH07CiAKIH0gLy9uYW1lc3BhY2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKaW5kZXggZWI3Mzk0NTM1
ZDQ5NjM1MzQ2YzY1ODJkMTc1OTZkM2Q0M2YwNzk1ZS4uNGYxMDQ1ODAxMzIyNzNmZGVkZjEyNTc4
ZDRiMWJiNjEwZWNjYWYwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2Vs
ZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVu
dC5jcHAKQEAgLTIyNyw3ICsyMjcsNyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjphZGQoSFRN
TEVsZW1lbnQqIGVsZW1lbnQsIEhUTUxFbGVtZW50KiBiZWZvcmVFbGVtZW50LCBFeAogICAgIC8v
IE1ha2Ugc3VyZSB0aGUgZWxlbWVudCBpcyByZWYnZCBhbmQgZGVyZWYnZCBzbyB3ZSBkb24ndCBs
ZWFrIGl0LgogICAgIFJlZjxIVE1MRWxlbWVudD4gcHJvdGVjdE5ld0NoaWxkKCplbGVtZW50KTsK
IAotICAgIGluc2VydEJlZm9yZShlbGVtZW50LCBiZWZvcmVFbGVtZW50LCBlYyk7CisgICAgaW5z
ZXJ0QmVmb3JlKCplbGVtZW50LCBiZWZvcmVFbGVtZW50LCBlYyk7CiAgICAgdXBkYXRlVmFsaWRp
dHkoKTsKIH0KIApAQCAtNDg2LDEyICs0ODYsMTIgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6
c2V0TGVuZ3RoKHVuc2lnbmVkIG5ld0xlbiwgRXhjZXB0aW9uQ29kZSYgZWMpCiAKICAgICAgICAg
Ly8gUmVtb3ZpbmcgY2hpbGRyZW4gZmlyZXMgbXV0YXRpb24gZXZlbnRzLCB3aGljaCBtaWdodCBt
dXRhdGUgdGhlIERPTSBmdXJ0aGVyLCBzbyB3ZSBmaXJzdCBjb3B5IG91dCBhIGxpc3QKICAgICAg
ICAgLy8gb2YgZWxlbWVudHMgdGhhdCB3ZSBpbnRlbmQgdG8gcmVtb3ZlIHRoZW4gYXR0ZW1wdCB0
byByZW1vdmUgdGhlbSBvbmUgYXQgYSB0aW1lLgotICAgICAgICBWZWN0b3I8UmVmUHRyPEVsZW1l
bnQ+PiBpdGVtc1RvUmVtb3ZlOworICAgICAgICBWZWN0b3I8UmVmPEVsZW1lbnQ+PiBpdGVtc1Rv
UmVtb3ZlOwogICAgICAgICBzaXplX3Qgb3B0aW9uSW5kZXggPSAwOwogICAgICAgICBmb3IgKGF1
dG8mIGl0ZW0gOiBpdGVtcykgewogICAgICAgICAgICAgaWYgKGlzPEhUTUxPcHRpb25FbGVtZW50
PigqaXRlbSkgJiYgb3B0aW9uSW5kZXgrKyA+PSBuZXdMZW4pIHsKICAgICAgICAgICAgICAgICBB
U1NFUlQoaXRlbS0+cGFyZW50Tm9kZSgpKTsKLSAgICAgICAgICAgICAgICBpdGVtc1RvUmVtb3Zl
LmFwcGVuZChpdGVtKTsKKyAgICAgICAgICAgICAgICBpdGVtc1RvUmVtb3ZlLmFwcGVuZCgqaXRl
bSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRh
YmxlRWxlbWVudC5jcHAKaW5kZXggYjkyOGUwZDdhNDRjZTY1ZDk4MTc1M2IwMzExNmE3NTY2YzY0
MTBjYi4uNGZhNzYzMTgzZDRlYzg2MGY0NjkzNGFhY2ViZWI5N2EwZjFmYjg5MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwCkBAIC04MCw3ICs4MCw4IEBAIEhUTUxU
YWJsZUNhcHRpb25FbGVtZW50KiBIVE1MVGFibGVFbGVtZW50OjpjYXB0aW9uKCkgY29uc3QKIHZv
aWQgSFRNTFRhYmxlRWxlbWVudDo6c2V0Q2FwdGlvbihQYXNzUmVmUHRyPEhUTUxUYWJsZUNhcHRp
b25FbGVtZW50PiBuZXdDYXB0aW9uLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBkZWxldGVD
YXB0aW9uKCk7Ci0gICAgaW5zZXJ0QmVmb3JlKG5ld0NhcHRpb24sIGZpcnN0Q2hpbGQoKSwgZWMp
OworICAgIGlmIChuZXdDYXB0aW9uKQorICAgICAgICBpbnNlcnRCZWZvcmUoKm5ld0NhcHRpb24s
IGZpcnN0Q2hpbGQoKSwgZWMpOwogfQogCiBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCogSFRNTFRh
YmxlRWxlbWVudDo6dEhlYWQoKSBjb25zdApAQCAtMTAxLDcgKzEwMiw4IEBAIHZvaWQgSFRNTFRh
YmxlRWxlbWVudDo6c2V0VEhlYWQoUGFzc1JlZlB0cjxIVE1MVGFibGVTZWN0aW9uRWxlbWVudD4g
bmV3SGVhZCwgRXhjCiAgICAgICAgIGlmIChjaGlsZC0+aXNFbGVtZW50Tm9kZSgpICYmICFjaGls
ZC0+aGFzVGFnTmFtZShjYXB0aW9uVGFnKSAmJiAhY2hpbGQtPmhhc1RhZ05hbWUoY29sZ3JvdXBU
YWcpKQogICAgICAgICAgICAgYnJlYWs7CiAKLSAgICBpbnNlcnRCZWZvcmUobmV3SGVhZCwgY2hp
bGQsIGVjKTsKKyAgICBpZiAobmV3SGVhZCkKKyAgICAgICAgaW5zZXJ0QmVmb3JlKCpuZXdIZWFk
LCBjaGlsZCwgZWMpOwogfQogCiBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCogSFRNTFRhYmxlRWxl
bWVudDo6dEZvb3QoKSBjb25zdApAQCAtMTIyLDcgKzEyNCw4IEBAIHZvaWQgSFRNTFRhYmxlRWxl
bWVudDo6c2V0VEZvb3QoUGFzc1JlZlB0cjxIVE1MVGFibGVTZWN0aW9uRWxlbWVudD4gbmV3Rm9v
dCwgRXhjCiAgICAgICAgIGlmIChjaGlsZC0+aXNFbGVtZW50Tm9kZSgpICYmICFjaGlsZC0+aGFz
VGFnTmFtZShjYXB0aW9uVGFnKSAmJiAhY2hpbGQtPmhhc1RhZ05hbWUoY29sZ3JvdXBUYWcpICYm
ICFjaGlsZC0+aGFzVGFnTmFtZSh0aGVhZFRhZykpCiAgICAgICAgICAgICBicmVhazsKIAotICAg
IGluc2VydEJlZm9yZShuZXdGb290LCBjaGlsZCwgZWMpOworICAgIGlmIChuZXdGb290KQorICAg
ICAgICBpbnNlcnRCZWZvcmUoKm5ld0Zvb3QsIGNoaWxkLCBlYyk7CiB9CiAKIFJlZlB0cjxIVE1M
RWxlbWVudD4gSFRNTFRhYmxlRWxlbWVudDo6Y3JlYXRlVEhlYWQoKQpAQCAtMTM2LDcgKzEzOSw4
IEBAIFJlZlB0cjxIVE1MRWxlbWVudD4gSFRNTFRhYmxlRWxlbWVudDo6Y3JlYXRlVEhlYWQoKQog
CiB2b2lkIEhUTUxUYWJsZUVsZW1lbnQ6OmRlbGV0ZVRIZWFkKCkKIHsKLSAgICByZW1vdmVDaGls
ZCh0SGVhZCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBpZiAoYXV0byogdEhlYWQgPSB0aGlz
LT50SGVhZCgpKQorICAgICAgICByZW1vdmVDaGlsZCgqdEhlYWQsIElHTk9SRV9FWENFUFRJT04p
OwogfQogCiBSZWZQdHI8SFRNTEVsZW1lbnQ+IEhUTUxUYWJsZUVsZW1lbnQ6OmNyZWF0ZVRGb290
KCkKQEAgLTE1MCwxNSArMTU0LDE2IEBAIFJlZlB0cjxIVE1MRWxlbWVudD4gSFRNTFRhYmxlRWxl
bWVudDo6Y3JlYXRlVEZvb3QoKQogCiB2b2lkIEhUTUxUYWJsZUVsZW1lbnQ6OmRlbGV0ZVRGb290
KCkKIHsKLSAgICByZW1vdmVDaGlsZCh0Rm9vdCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBp
ZiAoYXV0byogdEZvb3QgPSB0aGlzLT50Rm9vdCgpKQorICAgICAgICByZW1vdmVDaGlsZCgqdEZv
b3QsIElHTk9SRV9FWENFUFRJT04pOwogfQogCiBSZWZQdHI8SFRNTEVsZW1lbnQ+IEhUTUxUYWJs
ZUVsZW1lbnQ6OmNyZWF0ZVRCb2R5KCkKIHsKLSAgICBSZWZQdHI8SFRNTFRhYmxlU2VjdGlvbkVs
ZW1lbnQ+IGJvZHkgPSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDo6Y3JlYXRlKHRib2R5VGFnLCBk
b2N1bWVudCgpKTsKLSAgICBOb2RlKiByZWZlcmVuY2VFbGVtZW50ID0gbGFzdEJvZHkoKSA/IGxh
c3RCb2R5KCktPm5leHRTaWJsaW5nKCkgOiAwOwotICAgIGluc2VydEJlZm9yZShib2R5LCByZWZl
cmVuY2VFbGVtZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKLSAgICByZXR1cm4gYm9keTsKKyAg
ICBSZWY8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+IGJvZHkgPSBIVE1MVGFibGVTZWN0aW9uRWxl
bWVudDo6Y3JlYXRlKHRib2R5VGFnLCBkb2N1bWVudCgpKTsKKyAgICBOb2RlKiByZWZlcmVuY2VF
bGVtZW50ID0gbGFzdEJvZHkoKSA/IGxhc3RCb2R5KCktPm5leHRTaWJsaW5nKCkgOiBudWxscHRy
OworICAgIGluc2VydEJlZm9yZShib2R5LmNvcHlSZWYoKSwgcmVmZXJlbmNlRWxlbWVudCwgQVNT
RVJUX05PX0VYQ0VQVElPTik7CisgICAgcmV0dXJuIFdURjo6bW92ZShib2R5KTsKIH0KIAogUmVm
UHRyPEhUTUxFbGVtZW50PiBIVE1MVGFibGVFbGVtZW50OjpjcmVhdGVDYXB0aW9uKCkKQEAgLTE3
Miw3ICsxNzcsOCBAQCBSZWZQdHI8SFRNTEVsZW1lbnQ+IEhUTUxUYWJsZUVsZW1lbnQ6OmNyZWF0
ZUNhcHRpb24oKQogCiB2b2lkIEhUTUxUYWJsZUVsZW1lbnQ6OmRlbGV0ZUNhcHRpb24oKQogewot
ICAgIHJlbW92ZUNoaWxkKGNhcHRpb24oKSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgaWYgKGF1
dG8qIGNhcHRpb24gPSB0aGlzLT5jYXB0aW9uKCkpCisgICAgICAgIHJlbW92ZUNoaWxkKCpjYXB0
aW9uLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KIAogSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqIEhU
TUxUYWJsZUVsZW1lbnQ6Omxhc3RCb2R5KCkgY29uc3QKQEAgLTIxNywyMiArMjIzLDIyIEBAIFJl
ZlB0cjxIVE1MRWxlbWVudD4gSFRNTFRhYmxlRWxlbWVudDo6aW5zZXJ0Um93KGludCBpbmRleCwg
RXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgZWxzZSB7CiAgICAgICAgIHBhcmVudCA9IGxhc3RCb2R5
KCk7CiAgICAgICAgIGlmICghcGFyZW50KSB7Ci0gICAgICAgICAgICBSZWZQdHI8SFRNTFRhYmxl
U2VjdGlvbkVsZW1lbnQ+IG5ld0JvZHkgPSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDo6Y3JlYXRl
KHRib2R5VGFnLCBkb2N1bWVudCgpKTsKLSAgICAgICAgICAgIFJlZlB0cjxIVE1MVGFibGVSb3dF
bGVtZW50PiBuZXdSb3cgPSBIVE1MVGFibGVSb3dFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7
Ci0gICAgICAgICAgICBuZXdCb2R5LT5hcHBlbmRDaGlsZChuZXdSb3csIGVjKTsKLSAgICAgICAg
ICAgIGFwcGVuZENoaWxkKG5ld0JvZHkucmVsZWFzZSgpLCBlYyk7Ci0gICAgICAgICAgICByZXR1
cm4gbmV3Um93OworICAgICAgICAgICAgUmVmPEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50PiBuZXdC
b2R5ID0gSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ6OmNyZWF0ZSh0Ym9keVRhZywgZG9jdW1lbnQo
KSk7CisgICAgICAgICAgICBSZWY8SFRNTFRhYmxlUm93RWxlbWVudD4gbmV3Um93ID0gSFRNTFRh
YmxlUm93RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOworICAgICAgICAgICAgbmV3Qm9keS0+
YXBwZW5kQ2hpbGQobmV3Um93LmNvcHlSZWYoKSwgZWMpOworICAgICAgICAgICAgYXBwZW5kQ2hp
bGQoV1RGOjptb3ZlKG5ld0JvZHkpLCBlYyk7CisgICAgICAgICAgICByZXR1cm4gV1RGOjptb3Zl
KG5ld1Jvdyk7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBSZWZQdHI8SFRNTFRhYmxlUm93RWxl
bWVudD4gbmV3Um93ID0gSFRNTFRhYmxlUm93RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwot
ICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG5ld1Jvdywgcm93LmdldCgpLCBlYyk7Ci0gICAgcmV0
dXJuIG5ld1JvdzsKKyAgICBSZWY8SFRNTFRhYmxlUm93RWxlbWVudD4gbmV3Um93ID0gSFRNTFRh
YmxlUm93RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOworICAgIHBhcmVudC0+aW5zZXJ0QmVm
b3JlKG5ld1Jvdy5jb3B5UmVmKCksIHJvdy5nZXQoKSwgZWMpOworICAgIHJldHVybiBXVEY6Om1v
dmUobmV3Um93KTsKIH0KIAogdm9pZCBIVE1MVGFibGVFbGVtZW50OjpkZWxldGVSb3coaW50IGlu
ZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBIVE1MVGFibGVSb3dFbGVtZW50KiByb3cg
PSAwOworICAgIEhUTUxUYWJsZVJvd0VsZW1lbnQqIHJvdyA9IG51bGxwdHI7CiAgICAgaWYgKGlu
ZGV4ID09IC0xKQogICAgICAgICByb3cgPSBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbjo6bGFzdFJv
dygqdGhpcyk7CiAgICAgZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUYWJsZUVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50
LmlkbAppbmRleCBhMGExYzZiMDM3OWMxMDY2MTJkMGZmOWZiM2UyYTNmOGJkYTUzN2JhLi5mMjU2
ZWMyN2I4YTM4NzQxOGU4NmRjODg5MTk1YWY4NmRkMGI2MzAwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRhYmxlRWxlbWVudC5pZGwKQEAgLTE5LDkgKzE5LDkgQEAKICAqLwogCiBpbnRlcmZh
Y2UgSFRNTFRhYmxlRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICBbU2V0dGVyUmFpc2VzRXhj
ZXB0aW9uXSBhdHRyaWJ1dGUgSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQgY2FwdGlvbjsKLSAgICBb
U2V0dGVyUmFpc2VzRXhjZXB0aW9uXSBhdHRyaWJ1dGUgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQg
dEhlYWQ7Ci0gICAgW1NldHRlclJhaXNlc0V4Y2VwdGlvbl0gYXR0cmlidXRlIEhUTUxUYWJsZVNl
Y3Rpb25FbGVtZW50IHRGb290OworICAgIFtTZXR0ZXJSYWlzZXNFeGNlcHRpb24sIFN0cmljdFR5
cGVDaGVja2luZ10gYXR0cmlidXRlIEhUTUxUYWJsZUNhcHRpb25FbGVtZW50IGNhcHRpb247Cisg
ICAgW1NldHRlclJhaXNlc0V4Y2VwdGlvbiwgU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUg
SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQgdEhlYWQ7CisgICAgW1NldHRlclJhaXNlc0V4Y2VwdGlv
biwgU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQg
dEZvb3Q7CiAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTENvbGxlY3Rpb24gcm93czsKICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTENvbGxlY3Rpb24gdEJvZGllczsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuY3BwCmluZGV4IGM4NzI1OWY1ZWNiOTZkMGFh
NjA0OGQ0ZDE0YWU4YjYwZjkzYjY4YjYuLjk1YzY5MjllMDEwM2FkOTNkMWIxMDAzMWYzZTEzNjlm
OTE2MGNkNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmNw
cApAQCAtMTI1LDIxICsxMjUsMjEgQEAgUmVmUHRyPEhUTUxFbGVtZW50PiBIVE1MVGFibGVSb3dF
bGVtZW50OjppbnNlcnRDZWxsKGludCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMKICAgICBpbnQg
bnVtQ2VsbHMgPSBjaGlsZHJlbi0+bGVuZ3RoKCk7CiAgICAgaWYgKGluZGV4IDwgLTEgfHwgaW5k
ZXggPiBudW1DZWxscykgewogICAgICAgICBlYyA9IElOREVYX1NJWkVfRVJSOwotICAgICAgICBy
ZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgUmVmUHRyPEhU
TUxUYWJsZUNlbGxFbGVtZW50PiBjZWxsID0gSFRNTFRhYmxlQ2VsbEVsZW1lbnQ6OmNyZWF0ZSh0
ZFRhZywgZG9jdW1lbnQoKSk7CisgICAgUmVmPEhUTUxUYWJsZUNlbGxFbGVtZW50PiBjZWxsID0g
SFRNTFRhYmxlQ2VsbEVsZW1lbnQ6OmNyZWF0ZSh0ZFRhZywgZG9jdW1lbnQoKSk7CiAgICAgaWYg
KGluZGV4IDwgMCB8fCBpbmRleCA+PSBudW1DZWxscykKLSAgICAgICAgYXBwZW5kQ2hpbGQoY2Vs
bCwgZWMpOworICAgICAgICBhcHBlbmRDaGlsZChjZWxsLmNvcHlSZWYoKSwgZWMpOwogICAgIGVs
c2UgewogICAgICAgICBOb2RlKiBuOwogICAgICAgICBpZiAoaW5kZXggPCAxKQogICAgICAgICAg
ICAgbiA9IGZpcnN0Q2hpbGQoKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbiA9IGNoaWxk
cmVuLT5pdGVtKGluZGV4KTsKLSAgICAgICAgaW5zZXJ0QmVmb3JlKGNlbGwsIG4sIGVjKTsKKyAg
ICAgICAgaW5zZXJ0QmVmb3JlKGNlbGwuY29weVJlZigpLCBuLCBlYyk7CiAgICAgfQotICAgIHJl
dHVybiBjZWxsOworICAgIHJldHVybiBXVEY6Om1vdmUoY2VsbCk7CiB9CiAKIHZvaWQgSFRNTFRh
YmxlUm93RWxlbWVudDo6ZGVsZXRlQ2VsbChpbnQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQpA
QCAtMTUwLDcgKzE1MCw3IEBAIHZvaWQgSFRNTFRhYmxlUm93RWxlbWVudDo6ZGVsZXRlQ2VsbChp
bnQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICBpbmRleCA9IG51bUNlbGxzLTE7
CiAgICAgaWYgKGluZGV4ID49IDAgJiYgaW5kZXggPCBudW1DZWxscykgewogICAgICAgICBSZWZQ
dHI8Tm9kZT4gY2VsbCA9IGNoaWxkcmVuLT5pdGVtKGluZGV4KTsKLSAgICAgICAgSFRNTEVsZW1l
bnQ6OnJlbW92ZUNoaWxkKGNlbGwuZ2V0KCksIGVjKTsKKyAgICAgICAgSFRNTEVsZW1lbnQ6OnJl
bW92ZUNoaWxkKCpjZWxsLCBlYyk7CiAgICAgfSBlbHNlCiAgICAgICAgIGVjID0gSU5ERVhfU0la
RV9FUlI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVNlY3Rp
b25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1l
bnQuY3BwCmluZGV4IDllNDUzMTZmOGYzZjRmYzZkYThlM2RjZGIxYjNlNGUyZGQ5MjdkODYuLmZk
MDJjNjAyZjk0NmNmMzRkMTBlODNjMjIyMjQ4ZmEzODgwMTIzZWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwCkBAIC02OCwxNCArNjgsMTQg
QEAgUmVmUHRyPEhUTUxFbGVtZW50PiBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDo6aW5zZXJ0Um93
KGludCBpbmRleCwgRXhjZXB0aW9uQ29kZSYKICAgICBlbHNlIHsKICAgICAgICAgcm93ID0gSFRN
TFRhYmxlUm93RWxlbWVudDo6Y3JlYXRlKHRyVGFnLCBkb2N1bWVudCgpKTsKICAgICAgICAgaWYg
KG51bVJvd3MgPT0gaW5kZXggfHwgaW5kZXggPT0gLTEpCi0gICAgICAgICAgICBhcHBlbmRDaGls
ZChyb3csIGVjKTsKKyAgICAgICAgICAgIGFwcGVuZENoaWxkKCpyb3csIGVjKTsKICAgICAgICAg
ZWxzZSB7CiAgICAgICAgICAgICBOb2RlKiBuOwogICAgICAgICAgICAgaWYgKGluZGV4IDwgMSkK
ICAgICAgICAgICAgICAgICBuID0gZmlyc3RDaGlsZCgpOwogICAgICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgICAgIG4gPSBjaGlsZHJlbi0+aXRlbShpbmRleCk7Ci0gICAgICAgICAgICBpbnNl
cnRCZWZvcmUocm93LCBuLCBlYyk7CisgICAgICAgICAgICBpbnNlcnRCZWZvcmUoKnJvdywgbiwg
ZWMpOwogICAgICAgICB9CiAgICAgfQogICAgIHJldHVybiByb3c7CkBAIC04OSw3ICs4OSw3IEBA
IHZvaWQgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ6OmRlbGV0ZVJvdyhpbnQgaW5kZXgsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogICAgICAgICBpbmRleCA9IG51bVJvd3MgLSAxOwogICAgIGlmIChpbmRl
eCA+PSAwICYmIGluZGV4IDwgbnVtUm93cykgewogICAgICAgICBSZWZQdHI8Tm9kZT4gcm93ID0g
Y2hpbGRyZW4tPml0ZW0oaW5kZXgpOwotICAgICAgICBIVE1MRWxlbWVudDo6cmVtb3ZlQ2hpbGQo
cm93LmdldCgpLCBlYyk7CisgICAgICAgIEhUTUxFbGVtZW50OjpyZW1vdmVDaGlsZCgqcm93LCBl
Yyk7CiAgICAgfSBlbHNlCiAgICAgICAgIGVjID0gSU5ERVhfU0laRV9FUlI7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmNwcAppbmRleCBhZWMzMDEwZjZkNmNm
ZTFiZWRiMzJjNDk3MDlhZWNhZDBiNmQ3ZjcyLi4yZTFlZGIyMzZjMDc4ZWViNmRlYmU2ZTllNTYx
MWU3MTdjZGM4MzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0
ZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVu
dC5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgRG9jdW1lbnRGcmFnbWVudCogSFRNTFRlbXBsYXRlRWxl
bWVudDo6Y29udGVudCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY29udGVudC5nZXQoKTsKIH0KIAot
UmVmUHRyPE5vZGU+IEhUTUxUZW1wbGF0ZUVsZW1lbnQ6OmNsb25lTm9kZUludGVybmFsKERvY3Vt
ZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbiB0eXBlKQorUmVmPE5vZGU+IEhU
TUxUZW1wbGF0ZUVsZW1lbnQ6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1
bWVudCwgQ2xvbmluZ09wZXJhdGlvbiB0eXBlKQogewogICAgIFJlZlB0cjxOb2RlPiBjbG9uZTsK
ICAgICBzd2l0Y2ggKHR5cGUpIHsKQEAgLTgyLDggKzgyLDggQEAgUmVmUHRyPE5vZGU+IEhUTUxU
ZW1wbGF0ZUVsZW1lbnQ6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVu
dCwgQ2wKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGlmIChtX2NvbnRlbnQpCi0gICAgICAg
IGNvbnRlbnQoKS0+Y2xvbmVDaGlsZE5vZGVzKGRvd25jYXN0PEhUTUxUZW1wbGF0ZUVsZW1lbnQ+
KGNsb25lLmdldCgpKS0+Y29udGVudCgpKTsKLSAgICByZXR1cm4gY2xvbmUucmVsZWFzZSgpOwor
ICAgICAgICBjb250ZW50KCktPmNsb25lQ2hpbGROb2RlcygqZG93bmNhc3Q8SFRNTFRlbXBsYXRl
RWxlbWVudD4oY2xvbmUuZ2V0KCkpLT5jb250ZW50KCkpOworICAgIHJldHVybiBjbG9uZS5yZWxl
YXNlTm9uTnVsbCgpOwogfQogCiB2b2lkIEhUTUxUZW1wbGF0ZUVsZW1lbnQ6OmRpZE1vdmVUb05l
d0RvY3VtZW50KERvY3VtZW50KiBvbGREb2N1bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGVtcGxhdGVFbGVtZW50LmgKaW5kZXggNzY3ZjJhMTg0ZWE4NTM3ZGJjMzY0NDVkYWI4MmM4NWUw
MDVmMDc0Yi4uZDFmYTg2NDA2OWRjYjc1MDljOWYxODc3MGRhYjUyZjFlODU2YmQxNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgKQEAgLTUwLDcgKzUwLDcgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MVGVtcGxhdGVFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgdmlydHVhbCBSZWZQdHI8Tm9kZT4gY2xvbmVOb2Rl
SW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRp
b24pIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1
bWVudCogb2xkRG9jdW1lbnQpIG92ZXJyaWRlOwogCiAgICAgbXV0YWJsZSBSZWZQdHI8VGVtcGxh
dGVDb250ZW50RG9jdW1lbnRGcmFnbWVudD4gbV9jb250ZW50OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKaW5kZXggOTM5MjkxMTU1MDkyNjE3N2ViMDZmYzQy
MWU1YTJkMDlkN2E5MjFlNi4uYTJkZTczMGM1ZTdjOWQxZTVjMjBkOTBiMmQ0MjNjMjhlZTRkYzVl
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCkBAIC00
MDYsOSArNDA2LDkgQEAgdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50OjpzZXREZWZhdWx0VmFsdWUo
Y29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUpCiAgICAgUmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+
IHByb3RlY3RGcm9tTXV0YXRpb25FdmVudHMoKnRoaXMpOwogCiAgICAgLy8gVG8gcHJlc2VydmUg
Y29tbWVudHMsIHJlbW92ZSBvbmx5IHRoZSB0ZXh0IG5vZGVzLCB0aGVuIGFkZCBhIHNpbmdsZSB0
ZXh0IG5vZGUuCi0gICAgVmVjdG9yPFJlZlB0cjxUZXh0Pj4gdGV4dE5vZGVzOworICAgIFZlY3Rv
cjxSZWY8VGV4dD4+IHRleHROb2RlczsKICAgICBmb3IgKFRleHQqIHRleHROb2RlID0gVGV4dE5v
ZGVUcmF2ZXJzYWw6OmZpcnN0Q2hpbGQoKnRoaXMpOyB0ZXh0Tm9kZTsgdGV4dE5vZGUgPSBUZXh0
Tm9kZVRyYXZlcnNhbDo6bmV4dFNpYmxpbmcoKnRleHROb2RlKSkKLSAgICAgICAgdGV4dE5vZGVz
LmFwcGVuZCh0ZXh0Tm9kZSk7CisgICAgICAgIHRleHROb2Rlcy5hcHBlbmQoKnRleHROb2RlKTsK
IAogICAgIHNpemVfdCBzaXplID0gdGV4dE5vZGVzLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHNpemU7ICsraSkKQEAgLTUyMyw4ICs1MjMsOCBAQCB2b2lkIEhUTUxUZXh0QXJl
YUVsZW1lbnQ6OnVwZGF0ZVBsYWNlaG9sZGVyVGV4dCgpCiAgICAgU3RyaW5nIHBsYWNlaG9sZGVy
VGV4dCA9IHN0cmlwcGVkUGxhY2Vob2xkZXIoKTsKICAgICBpZiAocGxhY2Vob2xkZXJUZXh0Lmlz
RW1wdHkoKSkgewogICAgICAgICBpZiAobV9wbGFjZWhvbGRlcikgewotICAgICAgICAgICAgdXNl
ckFnZW50U2hhZG93Um9vdCgpLT5yZW1vdmVDaGlsZChtX3BsYWNlaG9sZGVyLCBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKLSAgICAgICAgICAgIG1fcGxhY2Vob2xkZXIgPSAwOworICAgICAgICAgICAg
dXNlckFnZW50U2hhZG93Um9vdCgpLT5yZW1vdmVDaGlsZCgqbV9wbGFjZWhvbGRlciwgQVNTRVJU
X05PX0VYQ0VQVElPTik7CisgICAgICAgICAgICBtX3BsYWNlaG9sZGVyID0gbnVsbHB0cjsKICAg
ICAgICAgfQogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNTMzLDcgKzUzMyw3IEBAIHZvaWQg
SFRNTFRleHRBcmVhRWxlbWVudDo6dXBkYXRlUGxhY2Vob2xkZXJUZXh0KCkKICAgICAgICAgbV9w
bGFjZWhvbGRlciA9IHBsYWNlaG9sZGVyLmdldCgpOwogICAgICAgICBtX3BsYWNlaG9sZGVyLT5z
ZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAgICBtX3BsYWNlaG9sZGVyLT5z
ZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5RGlzcGxheSwgaXNQbGFjZWhvbGRlclZp
c2libGUoKSA/IENTU1ZhbHVlQmxvY2sgOiBDU1NWYWx1ZU5vbmUsIHRydWUpOwotICAgICAgICB1
c2VyQWdlbnRTaGFkb3dSb290KCktPmluc2VydEJlZm9yZShtX3BsYWNlaG9sZGVyLCBpbm5lclRl
eHRFbGVtZW50KCktPm5leHRTaWJsaW5nKCkpOworICAgICAgICB1c2VyQWdlbnRTaGFkb3dSb290
KCktPmluc2VydEJlZm9yZSgqbV9wbGFjZWhvbGRlciwgaW5uZXJUZXh0RWxlbWVudCgpLT5uZXh0
U2libGluZygpKTsKICAgICB9CiAgICAgbV9wbGFjZWhvbGRlci0+c2V0SW5uZXJUZXh0KHBsYWNl
aG9sZGVyVGV4dCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0ltYWdlRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFn
ZURvY3VtZW50LmNwcAppbmRleCA4MWI1ZWVlZDk1NTFiZmI2ZTMzM2Q0YzFkOWI3OTZjZDc5ZDYx
ZmNjLi4wM2RiMzc5NzdiMGZlMWFhODdkNmRhNjk0YzJiMzM2MTYxN2IxOTc3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW1hZ2VEb2N1bWVudC5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgcHJpdmF0ZToKIAog
Y2xhc3MgSW1hZ2VEb2N1bWVudEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEltYWdlRWxlbWVu
dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxJbWFnZURvY3VtZW50RWxlbWVudD4gY3Jl
YXRlKEltYWdlRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPEltYWdlRG9jdW1lbnRFbGVtZW50
PiBjcmVhdGUoSW1hZ2VEb2N1bWVudCYpOwogCiBwcml2YXRlOgogICAgIEltYWdlRG9jdW1lbnRF
bGVtZW50KEltYWdlRG9jdW1lbnQmIGRvY3VtZW50KQpAQCAtMTA3LDkgKzEwNyw5IEBAIHByaXZh
dGU6CiAgICAgSW1hZ2VEb2N1bWVudCogbV9pbWFnZURvY3VtZW50OwogfTsKIAotaW5saW5lIFJl
ZlB0cjxJbWFnZURvY3VtZW50RWxlbWVudD4gSW1hZ2VEb2N1bWVudEVsZW1lbnQ6OmNyZWF0ZShJ
bWFnZURvY3VtZW50JiBkb2N1bWVudCkKK2lubGluZSBSZWY8SW1hZ2VEb2N1bWVudEVsZW1lbnQ+
IEltYWdlRG9jdW1lbnRFbGVtZW50OjpjcmVhdGUoSW1hZ2VEb2N1bWVudCYgZG9jdW1lbnQpCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbWFnZURvY3VtZW50RWxlbWVudChkb2N1bWVudCkp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEltYWdlRG9jdW1lbnRFbGVtZW50KGRvY3VtZW50
KSk7CiB9CiAKIC8vIC0tLS0tLS0tCkBAIC0yMTAsMTkgKzIxMCwxOSBAQCBSZWY8RG9jdW1lbnRQ
YXJzZXI+IEltYWdlRG9jdW1lbnQ6OmNyZWF0ZVBhcnNlcigpCiAKIHZvaWQgSW1hZ2VEb2N1bWVu
dDo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKQogewotICAgIFJlZlB0cjxFbGVtZW50PiByb290
RWxlbWVudCA9IERvY3VtZW50OjpjcmVhdGVFbGVtZW50KGh0bWxUYWcsIGZhbHNlKTsKLSAgICBh
cHBlbmRDaGlsZChyb290RWxlbWVudCk7Ci0gICAgZG93bmNhc3Q8SFRNTEh0bWxFbGVtZW50Pigq
cm9vdEVsZW1lbnQpLmluc2VydGVkQnlQYXJzZXIoKTsKKyAgICBSZWY8RWxlbWVudD4gcm9vdEVs
ZW1lbnQgPSBEb2N1bWVudDo6Y3JlYXRlRWxlbWVudChodG1sVGFnLCBmYWxzZSk7CisgICAgYXBw
ZW5kQ2hpbGQocm9vdEVsZW1lbnQuY29weVJlZigpKTsKKyAgICBkb3duY2FzdDxIVE1MSHRtbEVs
ZW1lbnQ+KHJvb3RFbGVtZW50LmdldCgpKS5pbnNlcnRlZEJ5UGFyc2VyKCk7CiAKICAgICBmcmFt
ZSgpLT5pbmplY3RVc2VyU2NyaXB0cyhJbmplY3RBdERvY3VtZW50U3RhcnQpOwogCi0gICAgUmVm
UHRyPEVsZW1lbnQ+IGJvZHkgPSBEb2N1bWVudDo6Y3JlYXRlRWxlbWVudChib2R5VGFnLCBmYWxz
ZSk7CisgICAgUmVmPEVsZW1lbnQ+IGJvZHkgPSBEb2N1bWVudDo6Y3JlYXRlRWxlbWVudChib2R5
VGFnLCBmYWxzZSk7CiAgICAgYm9keS0+c2V0QXR0cmlidXRlKHN0eWxlQXR0ciwgIm1hcmdpbjog
MHB4Iik7CiAgICAgaWYgKE1JTUVUeXBlUmVnaXN0cnk6OmlzUERGTUlNRVR5cGUoZG9jdW1lbnQo
KS5sb2FkZXIoKS0+cmVzcG9uc2VNSU1FVHlwZSgpKSkKLSAgICAgICAgZG93bmNhc3Q8SFRNTEJv
ZHlFbGVtZW50PigqYm9keSkuc2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eUJhY2tn
cm91bmRDb2xvciwgIndoaXRlIiwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19JREVOVCk7Ci0gICAg
cm9vdEVsZW1lbnQtPmFwcGVuZENoaWxkKGJvZHkpOworICAgICAgICBkb3duY2FzdDxIVE1MQm9k
eUVsZW1lbnQ+KGJvZHkuZ2V0KCkpLnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlC
YWNrZ3JvdW5kQ29sb3IsICJ3aGl0ZSIsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfSURFTlQpOwor
ICAgIHJvb3RFbGVtZW50LT5hcHBlbmRDaGlsZChib2R5LmNvcHlSZWYoKSk7CiAgICAgCi0gICAg
UmVmUHRyPEltYWdlRG9jdW1lbnRFbGVtZW50PiBpbWFnZUVsZW1lbnQgPSBJbWFnZURvY3VtZW50
RWxlbWVudDo6Y3JlYXRlKCp0aGlzKTsKKyAgICBSZWY8SW1hZ2VEb2N1bWVudEVsZW1lbnQ+IGlt
YWdlRWxlbWVudCA9IEltYWdlRG9jdW1lbnRFbGVtZW50OjpjcmVhdGUoKnRoaXMpOwogICAgIGlm
IChtX3Nob3VsZFNocmlua0ltYWdlKQogICAgICAgICBpbWFnZUVsZW1lbnQtPnNldEF0dHJpYnV0
ZShzdHlsZUF0dHIsICItd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7IGRpc3BsYXk6YmxvY2s7IG1h
cmdpbjphdXRvOyIpOwogICAgIGVsc2UKQEAgLTIzMCw3ICsyMzAsNyBAQCB2b2lkIEltYWdlRG9j
dW1lbnQ6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCkKICAgICBpbWFnZUVsZW1lbnQtPnNldExv
YWRNYW51YWxseSh0cnVlKTsKICAgICBpbWFnZUVsZW1lbnQtPnNldFNyYyh1cmwoKS5zdHJpbmco
KSk7CiAgICAgaW1hZ2VFbGVtZW50LT5jYWNoZWRJbWFnZSgpLT5zZXRSZXNwb25zZShsb2FkZXIo
KS0+cmVzcG9uc2UoKSk7Ci0gICAgYm9keS0+YXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKKyAg
ICBib2R5LT5hcHBlbmRDaGlsZChpbWFnZUVsZW1lbnQuY29weVJlZigpKTsKICAgICAKICAgICBp
ZiAobV9zaG91bGRTaHJpbmtJbWFnZSkgewogI2lmIFBMQVRGT1JNKElPUykKQEAgLTI0NCw3ICsy
NDQsNyBAQCB2b2lkIEltYWdlRG9jdW1lbnQ6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCkKICNl
bmRpZgogICAgIH0KIAotICAgIG1faW1hZ2VFbGVtZW50ID0gaW1hZ2VFbGVtZW50LmdldCgpOwor
ICAgIG1faW1hZ2VFbGVtZW50ID0gaW1hZ2VFbGVtZW50LnB0cigpOwogfQogCiB2b2lkIEltYWdl
RG9jdW1lbnQ6OmltYWdlVXBkYXRlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L01lZGlhRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNw
cAppbmRleCAxODVhYmE4MzQwM2NlODIyYzc3NmVlMGMyOGRiYTczMDAxOTI5OTliLi42NTFjNzI5
ZDY0ZDc2YjUzNjk1ZjQ3NWMxYWFlNTBhNTc2NzNiOTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVk
aWFEb2N1bWVudC5jcHAKQEAgLTc4LDEwICs3OCwxMCBAQCBwcml2YXRlOgogICAgIAogdm9pZCBN
ZWRpYURvY3VtZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCiB7Ci0gICAgUmVm
UHRyPEVsZW1lbnQ+IHJvb3RFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChodG1s
VGFnLCBmYWxzZSk7Ci0gICAgZG9jdW1lbnQoKS0+YXBwZW5kQ2hpbGQocm9vdEVsZW1lbnQsIElH
Tk9SRV9FWENFUFRJT04pOwotICAgIGRvY3VtZW50KCktPnNldENTU1RhcmdldChyb290RWxlbWVu
dC5nZXQoKSk7Ci0gICAgZG93bmNhc3Q8SFRNTEh0bWxFbGVtZW50Pigqcm9vdEVsZW1lbnQpLmlu
c2VydGVkQnlQYXJzZXIoKTsKKyAgICBSZWY8RWxlbWVudD4gcm9vdEVsZW1lbnQgPSBkb2N1bWVu
dCgpLT5jcmVhdGVFbGVtZW50KGh0bWxUYWcsIGZhbHNlKTsKKyAgICBkb2N1bWVudCgpLT5hcHBl
bmRDaGlsZChyb290RWxlbWVudC5jb3B5UmVmKCksIElHTk9SRV9FWENFUFRJT04pOworICAgIGRv
Y3VtZW50KCktPnNldENTU1RhcmdldChyb290RWxlbWVudC5wdHIoKSk7CisgICAgZG93bmNhc3Q8
SFRNTEh0bWxFbGVtZW50Pihyb290RWxlbWVudC5nZXQoKSkuaW5zZXJ0ZWRCeVBhcnNlcigpOwog
CiAgICAgaWYgKGRvY3VtZW50KCktPmZyYW1lKCkpCiAgICAgICAgIGRvY3VtZW50KCktPmZyYW1l
KCktPmluamVjdFVzZXJTY3JpcHRzKEluamVjdEF0RG9jdW1lbnRTdGFydCk7CkBAIC05NiwxMiAr
OTYsMTIgQEAgdm9pZCBNZWRpYURvY3VtZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVudFN0cnVjdHVy
ZSgpCiAgICAgaGVhZEVsZW1lbnQtPmFwcGVuZENoaWxkKG1ldGFFbGVtZW50LCBJR05PUkVfRVhD
RVBUSU9OKTsKICNlbmRpZgogCi0gICAgUmVmUHRyPEVsZW1lbnQ+IGJvZHkgPSBkb2N1bWVudCgp
LT5jcmVhdGVFbGVtZW50KGJvZHlUYWcsIGZhbHNlKTsKLSAgICByb290RWxlbWVudC0+YXBwZW5k
Q2hpbGQoYm9keSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgUmVmPEVsZW1lbnQ+IGJvZHkgPSBk
b2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KGJvZHlUYWcsIGZhbHNlKTsKKyAgICByb290RWxlbWVu
dC0+YXBwZW5kQ2hpbGQoYm9keS5jb3B5UmVmKCksIElHTk9SRV9FWENFUFRJT04pOwogCi0gICAg
UmVmUHRyPEVsZW1lbnQ+IG1lZGlhRWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQo
dmlkZW9UYWcsIGZhbHNlKTsKKyAgICBSZWY8RWxlbWVudD4gbWVkaWFFbGVtZW50ID0gZG9jdW1l
bnQoKS0+Y3JlYXRlRWxlbWVudCh2aWRlb1RhZywgZmFsc2UpOwogCi0gICAgbV9tZWRpYUVsZW1l
bnQgPSBkb3duY2FzdDxIVE1MVmlkZW9FbGVtZW50PihtZWRpYUVsZW1lbnQuZ2V0KCkpOworICAg
IG1fbWVkaWFFbGVtZW50ID0gZG93bmNhc3Q8SFRNTFZpZGVvRWxlbWVudD4obWVkaWFFbGVtZW50
LnB0cigpKTsKICAgICBtX21lZGlhRWxlbWVudC0+c2V0QXR0cmlidXRlKGNvbnRyb2xzQXR0ciwg
ZW1wdHlBdG9tKTsKICAgICBtX21lZGlhRWxlbWVudC0+c2V0QXR0cmlidXRlKGF1dG9wbGF5QXR0
ciwgZW1wdHlBdG9tKTsKIApAQCAtMTE0LDE1ICsxMTQsMTUgQEAgdm9pZCBNZWRpYURvY3VtZW50
UGFyc2VyOjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCiAjZW5kaWYKICAgICBtX21lZGlhRWxl
bWVudC0+c2V0QXR0cmlidXRlKHN0eWxlQXR0ciwgZWxlbWVudFN0eWxlLnRvU3RyaW5nKCkpOwog
Ci0gICAgUmVmUHRyPEVsZW1lbnQ+IHNvdXJjZUVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVF
bGVtZW50KHNvdXJjZVRhZywgZmFsc2UpOwotICAgIEhUTUxTb3VyY2VFbGVtZW50JiBzb3VyY2Ug
PSBkb3duY2FzdDxIVE1MU291cmNlRWxlbWVudD4oKnNvdXJjZUVsZW1lbnQpOworICAgIFJlZjxF
bGVtZW50PiBzb3VyY2VFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChzb3VyY2VU
YWcsIGZhbHNlKTsKKyAgICBIVE1MU291cmNlRWxlbWVudCYgc291cmNlID0gZG93bmNhc3Q8SFRN
TFNvdXJjZUVsZW1lbnQ+KHNvdXJjZUVsZW1lbnQuZ2V0KCkpOwogICAgIHNvdXJjZS5zZXRTcmMo
ZG9jdW1lbnQoKS0+dXJsKCkpOwogCiAgICAgaWYgKERvY3VtZW50TG9hZGVyKiBsb2FkZXIgPSBk
b2N1bWVudCgpLT5sb2FkZXIoKSkKICAgICAgICAgc291cmNlLnNldFR5cGUobG9hZGVyLT5yZXNw
b25zZU1JTUVUeXBlKCkpOwogCi0gICAgbV9tZWRpYUVsZW1lbnQtPmFwcGVuZENoaWxkKHNvdXJj
ZUVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOwotICAgIGJvZHktPmFwcGVuZENoaWxkKG1lZGlh
RWxlbWVudCwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgbV9tZWRpYUVsZW1lbnQtPmFwcGVuZENo
aWxkKFdURjo6bW92ZShzb3VyY2VFbGVtZW50KSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgYm9k
eS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKG1lZGlhRWxlbWVudCksIElHTk9SRV9FWENFUFRJT04p
OwogCiAgICAgRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS0+ZnJhbWUoKTsKICAgICBpZiAoIWZy
YW1lKQpAQCAtMjUzLDcgKzI1Myw3IEBAIHZvaWQgTWVkaWFEb2N1bWVudDo6cmVwbGFjZU1lZGlh
RWxlbWVudFRpbWVyRmlyZWQoKQogICAgICAgICBpZiAoZG9jdW1lbnRMb2FkZXIpCiAgICAgICAg
ICAgICBlbWJlZEVsZW1lbnQuc2V0QXR0cmlidXRlKHR5cGVBdHRyLCBkb2N1bWVudExvYWRlci0+
d3JpdGVyKCkubWltZVR5cGUoKSk7CiAKLSAgICAgICAgdmlkZW9FbGVtZW50LT5wYXJlbnROb2Rl
KCktPnJlcGxhY2VDaGlsZCgmZW1iZWRFbGVtZW50LCB2aWRlb0VsZW1lbnQsIElHTk9SRV9FWENF
UFRJT04pOworICAgICAgICB2aWRlb0VsZW1lbnQtPnBhcmVudE5vZGUoKS0+cmVwbGFjZUNoaWxk
KGVtYmVkRWxlbWVudCwgKnZpZGVvRWxlbWVudCwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgfQog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCmluZGV4IGU5Njc3MDkwZjRj
Mzg1M2E3Y2ZmMjA4YjIzYzMxZGM5ZDI1NDQ4MjEuLmMwYTgwYmE1NTcxMzkwOWI5M2IxOGIxYmRh
ODgwM2ZmMTUyNzViZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9j
dW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCkBA
IC02Nyw5ICs2Nyw5IEBAIHByaXZhdGU6CiAKIHZvaWQgUGx1Z2luRG9jdW1lbnRQYXJzZXI6OmNy
ZWF0ZURvY3VtZW50U3RydWN0dXJlKCkKIHsKLSAgICBSZWZQdHI8RWxlbWVudD4gcm9vdEVsZW1l
bnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KGh0bWxUYWcsIGZhbHNlKTsKLSAgICBkb2N1
bWVudCgpLT5hcHBlbmRDaGlsZChyb290RWxlbWVudCwgSUdOT1JFX0VYQ0VQVElPTik7Ci0gICAg
ZG93bmNhc3Q8SFRNTEh0bWxFbGVtZW50Pigqcm9vdEVsZW1lbnQpLmluc2VydGVkQnlQYXJzZXIo
KTsKKyAgICBSZWY8RWxlbWVudD4gcm9vdEVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVt
ZW50KGh0bWxUYWcsIGZhbHNlKTsKKyAgICBkb2N1bWVudCgpLT5hcHBlbmRDaGlsZChyb290RWxl
bWVudC5jb3B5UmVmKCksIElHTk9SRV9FWENFUFRJT04pOworICAgIGRvd25jYXN0PEhUTUxIdG1s
RWxlbWVudD4ocm9vdEVsZW1lbnQuZ2V0KCkpLmluc2VydGVkQnlQYXJzZXIoKTsKIAogICAgIGlm
IChkb2N1bWVudCgpLT5mcmFtZSgpKQogICAgICAgICBkb2N1bWVudCgpLT5mcmFtZSgpLT5pbmpl
Y3RVc2VyU2NyaXB0cyhJbmplY3RBdERvY3VtZW50U3RhcnQpOwpAQCAtNzksNyArNzksNyBAQCB2
b2lkIFBsdWdpbkRvY3VtZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCiAgICAg
ZG9jdW1lbnQoKS0+cHJvY2Vzc1ZpZXdwb3J0KEFTQ0lJTGl0ZXJhbCgidXNlci1zY2FsYWJsZT1u
byIpLCBWaWV3cG9ydEFyZ3VtZW50czo6UGx1Z2luRG9jdW1lbnQpOwogI2VuZGlmCiAKLSAgICBS
ZWZQdHI8RWxlbWVudD4gYm9keSA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoYm9keVRhZywg
ZmFsc2UpOworICAgIFJlZjxFbGVtZW50PiBib2R5ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVu
dChib2R5VGFnLCBmYWxzZSk7CiAgICAgYm9keS0+c2V0QXR0cmlidXRlKG1hcmdpbndpZHRoQXR0
ciwgQXRvbWljU3RyaW5nKCIwIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OwogICAgIGJvZHktPnNldEF0dHJpYnV0ZShtYXJnaW5oZWlnaHRBdHRyLCBBdG9taWNTdHJpbmco
IjAiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAjaWYgUExBVEZPUk0o
SU9TKQpAQCAtODgsMTEgKzg4LDExIEBAIHZvaWQgUGx1Z2luRG9jdW1lbnRQYXJzZXI6OmNyZWF0
ZURvY3VtZW50U3RydWN0dXJlKCkKICAgICBib2R5LT5zZXRBdHRyaWJ1dGUoc3R5bGVBdHRyLCBB
dG9taWNTdHJpbmcoImJhY2tncm91bmQtY29sb3I6IHJnYigzOCwzOCwzOCkiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAjZW5kaWYKIAotICAgIHJvb3RFbGVtZW50LT5h
cHBlbmRDaGlsZChib2R5LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICByb290RWxlbWVudC0+YXBw
ZW5kQ2hpbGQoYm9keS5jb3B5UmVmKCksIElHTk9SRV9FWENFUFRJT04pOwogICAgICAgICAKLSAg
ICBSZWZQdHI8RWxlbWVudD4gZW1iZWRFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVu
dChlbWJlZFRhZywgZmFsc2UpOworICAgIFJlZjxFbGVtZW50PiBlbWJlZEVsZW1lbnQgPSBkb2N1
bWVudCgpLT5jcmVhdGVFbGVtZW50KGVtYmVkVGFnLCBmYWxzZSk7CiAgICAgICAgIAotICAgIG1f
ZW1iZWRFbGVtZW50ID0gZG93bmNhc3Q8SFRNTEVtYmVkRWxlbWVudD4oZW1iZWRFbGVtZW50Lmdl
dCgpKTsKKyAgICBtX2VtYmVkRWxlbWVudCA9IGRvd25jYXN0PEhUTUxFbWJlZEVsZW1lbnQ+KGVt
YmVkRWxlbWVudC5wdHIoKSk7CiAgICAgbV9lbWJlZEVsZW1lbnQtPnNldEF0dHJpYnV0ZSh3aWR0
aEF0dHIsICIxMDAlIik7CiAgICAgbV9lbWJlZEVsZW1lbnQtPnNldEF0dHJpYnV0ZShoZWlnaHRB
dHRyLCAiMTAwJSIpOwogICAgIApAQCAtMTA2LDcgKzEwNiw3IEBAIHZvaWQgUGx1Z2luRG9jdW1l
bnRQYXJzZXI6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCkKIAogICAgIGRvd25jYXN0PFBsdWdp
bkRvY3VtZW50PigqZG9jdW1lbnQoKSkuc2V0UGx1Z2luRWxlbWVudChtX2VtYmVkRWxlbWVudCk7
CiAKLSAgICBib2R5LT5hcHBlbmRDaGlsZChlbWJlZEVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04p
OworICAgIGJvZHktPmFwcGVuZENoaWxkKFdURjo6bW92ZShlbWJlZEVsZW1lbnQpLCBJR05PUkVf
RVhDRVBUSU9OKTsKIH0KIAogdm9pZCBQbHVnaW5Eb2N1bWVudFBhcnNlcjo6YXBwZW5kQnl0ZXMo
RG9jdW1lbnRXcml0ZXImLCBjb25zdCBjaGFyKiwgc2l6ZV90KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jh
bmdlSW5wdXRUeXBlLmNwcAppbmRleCBiNWI5ZTc5NDEzMTE5M2I1MGZlNzk3OWExNmExNGNiMzA4
MDRlN2Q3Li42NmE3NDE1ZThhNGNmMTFmOTFkYzY3YzE2YTFkOTA2MDI1Y2ZmZmQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcApAQCAtMjUzLDEyICsyNTMsMTIgQEAgdm9p
ZCBSYW5nZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAgICAgQVNTRVJUKGVsZW1l
bnQoKS51c2VyQWdlbnRTaGFkb3dSb290KCkpOwogCiAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0g
ZWxlbWVudCgpLmRvY3VtZW50KCk7Ci0gICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiB0cmFjayA9
IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIFJlZjxIVE1MRGl2RWxlbWVu
dD4gdHJhY2sgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICB0cmFjay0+
c2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2siLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgdHJhY2stPmFwcGVuZENo
aWxkKFNsaWRlclRodW1iRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KSwgSUdOT1JFX0VYQ0VQVElP
Tik7Ci0gICAgUmVmUHRyPEhUTUxFbGVtZW50PiBjb250YWluZXIgPSBTbGlkZXJDb250YWluZXJF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNvbnRhaW5lci0+YXBwZW5kQ2hpbGQodHJh
Y2sucmVsZWFzZSgpLCBJR05PUkVfRVhDRVBUSU9OKTsKLSAgICBlbGVtZW50KCkudXNlckFnZW50
U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChjb250YWluZXIucmVsZWFzZSgpLCBJR05PUkVfRVhD
RVBUSU9OKTsKKyAgICBSZWY8SFRNTEVsZW1lbnQ+IGNvbnRhaW5lciA9IFNsaWRlckNvbnRhaW5l
ckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgY29udGFpbmVyLT5hcHBlbmRDaGlsZChX
VEY6Om1vdmUodHJhY2spLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBlbGVtZW50KCkudXNlckFn
ZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoY29udGFpbmVyKSwgSUdOT1JF
X0VYQ0VQVElPTik7CiB9CiAKIEhUTUxFbGVtZW50KiBSYW5nZUlucHV0VHlwZTo6c2xpZGVyVHJh
Y2tFbGVtZW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNo
SW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcApp
bmRleCBkZTQzZGI1ODA0OTNiYzY1OTlmOWU3YWU4ODdlNzBjOTgxYzQyZTY3Li4zNTdjN2E2MDVi
NGRiNzJjMDBlN2I5NmRlZDZkZDY0NjIwZThkNmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFy
Y2hJbnB1dFR5cGUuY3BwCkBAIC0xMDcsMTQgKzEwNywxNCBAQCB2b2lkIFNlYXJjaElucHV0VHlw
ZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAgICAgQVNTRVJUKGNvbnRhaW5lcik7CiAgICAgQVNT
RVJUKHRleHRXcmFwcGVyKTsKIAotICAgIFJlZlB0cjxTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25F
bGVtZW50PiByZXN1bHRzQnV0dG9uID0gU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudDo6
Y3JlYXRlKGVsZW1lbnQoKS5kb2N1bWVudCgpKTsKLSAgICBtX3Jlc3VsdHNCdXR0b24gPSByZXN1
bHRzQnV0dG9uLmdldCgpOwotICAgIHVwZGF0ZVJlc3VsdEJ1dHRvblBzZXVkb1R5cGUoKm1fcmVz
dWx0c0J1dHRvbiwgZWxlbWVudCgpLm1heFJlc3VsdHMoKSk7Ci0gICAgY29udGFpbmVyLT5pbnNl
cnRCZWZvcmUobV9yZXN1bHRzQnV0dG9uLCB0ZXh0V3JhcHBlciwgSUdOT1JFX0VYQ0VQVElPTik7
Ci0KLSAgICBSZWZQdHI8U2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50PiBjYW5jZWxCdXR0
b24gPSBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCkuZG9j
dW1lbnQoKSk7Ci0gICAgbV9jYW5jZWxCdXR0b24gPSBjYW5jZWxCdXR0b24uZ2V0KCk7Ci0gICAg
Y29udGFpbmVyLT5pbnNlcnRCZWZvcmUobV9jYW5jZWxCdXR0b24sIHRleHRXcmFwcGVyLT5uZXh0
U2libGluZygpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBSZWY8U2VhcmNoRmllbGRSZXN1bHRz
QnV0dG9uRWxlbWVudD4gcmVzdWx0c0J1dHRvbiA9IFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVs
ZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCkuZG9jdW1lbnQoKSk7CisgICAgbV9yZXN1bHRzQnV0dG9u
ID0gcmVzdWx0c0J1dHRvbi5wdHIoKTsKKyAgICB1cGRhdGVSZXN1bHRCdXR0b25Qc2V1ZG9UeXBl
KHJlc3VsdHNCdXR0b24uZ2V0KCksIGVsZW1lbnQoKS5tYXhSZXN1bHRzKCkpOworICAgIGNvbnRh
aW5lci0+aW5zZXJ0QmVmb3JlKFdURjo6bW92ZShyZXN1bHRzQnV0dG9uKSwgdGV4dFdyYXBwZXIs
IElHTk9SRV9FWENFUFRJT04pOworCisgICAgUmVmPFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxl
bWVudD4gY2FuY2VsQnV0dG9uID0gU2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50OjpjcmVh
dGUoZWxlbWVudCgpLmRvY3VtZW50KCkpOworICAgIG1fY2FuY2VsQnV0dG9uID0gY2FuY2VsQnV0
dG9uLnB0cigpOworICAgIGNvbnRhaW5lci0+aW5zZXJ0QmVmb3JlKFdURjo6bW92ZShjYW5jZWxC
dXR0b24pLCB0ZXh0V3JhcHBlci0+bmV4dFNpYmxpbmcoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiB9
CiAKIEhUTUxFbGVtZW50KiBTZWFyY2hJbnB1dFR5cGU6OnJlc3VsdHNCdXR0b25FbGVtZW50KCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcAppbmRleCBl
YWUzZGIyOWVlZTNjMmRlOTVmZTcxODBjNTQ2ZmY4ZTdlMmE3NjdlLi4xMzZmMDk3NTFiNWRhNjEw
MDA2MTY0OWI1NWI1NDlhYzlkMjM0MmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1RleHRGaWVsZElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0Rmll
bGRJbnB1dFR5cGUuY3BwCkBAIC0yNzQsNyArMjc0LDcgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5
cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogICAgIG1faW5uZXJUZXh0ID0gVGV4dENvbnRyb2xJ
bm5lclRleHRFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogCiAgICAgaWYgKCFjcmVhdGVzQ29u
dGFpbmVyKSB7Ci0gICAgICAgIGVsZW1lbnQoKS51c2VyQWdlbnRTaGFkb3dSb290KCktPmFwcGVu
ZENoaWxkKG1faW5uZXJUZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgZWxlbWVudCgp
LnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoKm1faW5uZXJUZXh0LCBJR05PUkVf
RVhDRVBUSU9OKTsKICAgICAgICAgdXBkYXRlUGxhY2Vob2xkZXJUZXh0KCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CkBAIC0yODQsNyArMjg0LDcgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6
OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogCiAgICAgaWYgKHNob3VsZEhhdmVTcGluQnV0dG9uKSB7
CiAgICAgICAgIG1faW5uZXJTcGluQnV0dG9uID0gU3BpbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCwgKnRoaXMpOwotICAgICAgICBtX2NvbnRhaW5lci0+YXBwZW5kQ2hpbGQobV9pbm5l
clNwaW5CdXR0b24sIElHTk9SRV9FWENFUFRJT04pOworICAgICAgICBtX2NvbnRhaW5lci0+YXBw
ZW5kQ2hpbGQoKm1faW5uZXJTcGluQnV0dG9uLCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICB9CiAK
ICAgICBpZiAoc2hvdWxkSGF2ZUNhcHNMb2NrSW5kaWNhdG9yKSB7CkBAIC0yOTQsNyArMjk0LDcg
QEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogICAgICAg
ICBib29sIHNob3VsZERyYXdDYXBzTG9ja0luZGljYXRvciA9IHRoaXMtPnNob3VsZERyYXdDYXBz
TG9ja0luZGljYXRvcigpOwogICAgICAgICBtX2NhcHNMb2NrSW5kaWNhdG9yLT5zZXRJbmxpbmVT
dHlsZVByb3BlcnR5KENTU1Byb3BlcnR5RGlzcGxheSwgc2hvdWxkRHJhd0NhcHNMb2NrSW5kaWNh
dG9yID8gQ1NTVmFsdWVCbG9jayA6IENTU1ZhbHVlTm9uZSwgdHJ1ZSk7CiAKLSAgICAgICAgbV9j
b250YWluZXItPmFwcGVuZENoaWxkKG1fY2Fwc0xvY2tJbmRpY2F0b3IsIElHTk9SRV9FWENFUFRJ
T04pOworICAgICAgICBtX2NvbnRhaW5lci0+YXBwZW5kQ2hpbGQoKm1fY2Fwc0xvY2tJbmRpY2F0
b3IsIElHTk9SRV9FWENFUFRJT04pOwogICAgIH0KIAogICAgIHVwZGF0ZUF1dG9GaWxsQnV0dG9u
KCk7CkBAIC00NjEsNyArNDYxLDcgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OnVwZGF0ZVBs
YWNlaG9sZGVyVGV4dCgpCiAgICAgU3RyaW5nIHBsYWNlaG9sZGVyVGV4dCA9IGVsZW1lbnQoKS5z
dHJpcHBlZFBsYWNlaG9sZGVyKCk7CiAgICAgaWYgKHBsYWNlaG9sZGVyVGV4dC5pc0VtcHR5KCkp
IHsKICAgICAgICAgaWYgKG1fcGxhY2Vob2xkZXIpIHsKLSAgICAgICAgICAgIG1fcGxhY2Vob2xk
ZXItPnBhcmVudE5vZGUoKS0+cmVtb3ZlQ2hpbGQobV9wbGFjZWhvbGRlci5nZXQoKSwgQVNTRVJU
X05PX0VYQ0VQVElPTik7CisgICAgICAgICAgICBtX3BsYWNlaG9sZGVyLT5wYXJlbnROb2RlKCkt
PnJlbW92ZUNoaWxkKCptX3BsYWNlaG9sZGVyLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICAg
ICAgICAgIG1fcGxhY2Vob2xkZXIgPSBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVy
bjsKQEAgLTQ3MCw3ICs0NzAsNyBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6dXBkYXRlUGxh
Y2Vob2xkZXJUZXh0KCkKICAgICAgICAgbV9wbGFjZWhvbGRlciA9IEhUTUxEaXZFbGVtZW50Ojpj
cmVhdGUoZWxlbWVudCgpLmRvY3VtZW50KCkpOwogICAgICAgICBtX3BsYWNlaG9sZGVyLT5zZXRQ
c2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAgICBtX3BsYWNlaG9sZGVyLT5zZXRJ
bmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5RGlzcGxheSwgZWxlbWVudCgpLmlzUGxhY2Vo
b2xkZXJWaXNpYmxlKCkgPyBDU1NWYWx1ZUJsb2NrIDogQ1NTVmFsdWVOb25lLCB0cnVlKTsKLSAg
ICAgICAgZWxlbWVudCgpLnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+aW5zZXJ0QmVmb3JlKG1fcGxh
Y2Vob2xkZXIsIG1fY29udGFpbmVyID8gbV9jb250YWluZXIuZ2V0KCkgOiBpbm5lclRleHRFbGVt
ZW50KCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAgICBlbGVtZW50KCkudXNlckFnZW50
U2hhZG93Um9vdCgpLT5pbnNlcnRCZWZvcmUoKm1fcGxhY2Vob2xkZXIsIG1fY29udGFpbmVyID8g
bV9jb250YWluZXIuZ2V0KCkgOiBpbm5lclRleHRFbGVtZW50KCksIEFTU0VSVF9OT19FWENFUFRJ
T04pOwogICAgICAgICAKICAgICB9CiAgICAgbV9wbGFjZWhvbGRlci0+c2V0SW5uZXJUZXh0KHBs
YWNlaG9sZGVyVGV4dCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CkBAIC02MDAsMTAgKzYwMCwxMCBA
QCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlQ29udGFpbmVyKCkKICAgICBtX2NvbnRh
aW5lci0+c2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC10ZXh0ZmllbGQtZGVjb3JhdGlv
bi1jb250YWluZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAKICAg
ICBtX2lubmVyQmxvY2sgPSBUZXh0Q29udHJvbElubmVyRWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQo
KS5kb2N1bWVudCgpKTsKLSAgICBtX2lubmVyQmxvY2stPmFwcGVuZENoaWxkKG1faW5uZXJUZXh0
LCBJR05PUkVfRVhDRVBUSU9OKTsKLSAgICBtX2NvbnRhaW5lci0+YXBwZW5kQ2hpbGQobV9pbm5l
ckJsb2NrLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBtX2lubmVyQmxvY2stPmFwcGVuZENoaWxk
KCptX2lubmVyVGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgbV9jb250YWluZXItPmFwcGVu
ZENoaWxkKCptX2lubmVyQmxvY2ssIElHTk9SRV9FWENFUFRJT04pOwogCi0gICAgZWxlbWVudCgp
LnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQobV9jb250YWluZXIsIElHTk9SRV9F
WENFUFRJT04pOworICAgIGVsZW1lbnQoKS51c2VyQWdlbnRTaGFkb3dSb290KCktPmFwcGVuZENo
aWxkKCptX2NvbnRhaW5lciwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CiAKIHZvaWQgVGV4dEZpZWxk
SW5wdXRUeXBlOjpjcmVhdGVBdXRvRmlsbEJ1dHRvbigpCkBAIC02MTIsNyArNjEyLDcgQEAgdm9p
ZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZUF1dG9GaWxsQnV0dG9uKCkKIAogICAgIG1fYXV0
b0ZpbGxCdXR0b24gPSBBdXRvRmlsbEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCkuZG9j
dW1lbnQoKSwgKnRoaXMpOwogICAgIG1fYXV0b0ZpbGxCdXR0b24tPnNldFBzZXVkbyhBdG9taWNT
dHJpbmcoIi13ZWJraXQtYXV0by1maWxsLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKLSAgICBtX2NvbnRhaW5lci0+YXBwZW5kQ2hpbGQobV9hdXRvRmlsbEJ1
dHRvbiwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgbV9jb250YWluZXItPmFwcGVuZENoaWxkKCpt
X2F1dG9GaWxsQnV0dG9uLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KIAogdm9pZCBUZXh0RmllbGRJ
bnB1dFR5cGU6OnVwZGF0ZUF1dG9GaWxsQnV0dG9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxp
ZGF0aW9uTWVzc2FnZS5jcHAKaW5kZXggZjYxZTFiNWVmZTI3MDkzMWRhYjBlYzJlZWRmMGYzNGJk
Nzc4MmI5Ni4uOTA2Mjk1ZTE5OGY3ODQ1NjU2MTJhYTUyY2I5ZTZhYzRkNTMwZmFkYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKQEAgLTE4MCwzMiArMTgwLDMy
IEBAIHZvaWQgVmFsaWRhdGlvbk1lc3NhZ2U6OmJ1aWxkQnViYmxlVHJlZSgpCiAgICAgLy8gTmVl
ZCB0byBmb3JjZSBwb3NpdGlvbjphYnNvbHV0ZSBiZWNhdXNlIFJlbmRlck1lbnVMaXN0IGRvZXNu
J3QgYXNzdW1lIGl0CiAgICAgLy8gY29udGFpbnMgbm9uLWFic29sdXRlIG9yIG5vbi1maXhlZCBy
ZW5kZXJlcnMgYXMgY2hpbGRyZW4uCiAgICAgbV9idWJibGUtPnNldElubGluZVN0eWxlUHJvcGVy
dHkoQ1NTUHJvcGVydHlQb3NpdGlvbiwgQ1NTVmFsdWVBYnNvbHV0ZSk7Ci0gICAgc2hhZG93Um9v
dC5hcHBlbmRDaGlsZChtX2J1YmJsZS5nZXQoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAg
c2hhZG93Um9vdC5hcHBlbmRDaGlsZCgqbV9idWJibGUsIEFTU0VSVF9OT19FWENFUFRJT04pOwog
ICAgIGRvY3VtZW50LnVwZGF0ZUxheW91dCgpOwogICAgIGFkanVzdEJ1YmJsZVBvc2l0aW9uKG1f
ZWxlbWVudC0+cmVuZGVyZXIoKS0+YWJzb2x1dGVCb3VuZGluZ0JveFJlY3QoKSwgbV9idWJibGUu
Z2V0KCkpOwogCi0gICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBjbGlwcGVyID0gSFRNTERpdkVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgUmVmPEhUTUxEaXZFbGVtZW50PiBjbGlwcGVy
ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY2xpcHBlci0+c2V0UHNl
dWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1hcnJvdy1jbGlwcGVy
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIFJlZlB0cjxIVE1M
RGl2RWxlbWVudD4gYnViYmxlQXJyb3cgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
KTsKKyAgICBSZWY8SFRNTERpdkVsZW1lbnQ+IGJ1YmJsZUFycm93ID0gSFRNTERpdkVsZW1lbnQ6
OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgYnViYmxlQXJyb3ctPnNldFBzZXVkbyhBdG9taWNTdHJp
bmcoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtYXJyb3ciLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgY2xpcHBlci0+YXBwZW5kQ2hpbGQoYnViYmxlQXJyb3cu
cmVsZWFzZSgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKLSAgICBtX2J1YmJsZS0+YXBwZW5kQ2hp
bGQoY2xpcHBlci5yZWxlYXNlKCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIGNsaXBwZXIt
PmFwcGVuZENoaWxkKFdURjo6bW92ZShidWJibGVBcnJvdyksIEFTU0VSVF9OT19FWENFUFRJT04p
OworICAgIG1fYnViYmxlLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoY2xpcHBlciksIEFTU0VSVF9O
T19FWENFUFRJT04pOwogCi0gICAgUmVmUHRyPEhUTUxFbGVtZW50PiBtZXNzYWdlID0gSFRNTERp
dkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgUmVmPEhUTUxFbGVtZW50PiBtZXNzYWdl
ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgbWVzc2FnZS0+c2V0UHNl
dWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1tZXNzYWdlIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIFJlZlB0cjxIVE1MRWxlbWVu
dD4gaWNvbiA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIFJlZjxIVE1M
RWxlbWVudD4gaWNvbiA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGlj
b24tPnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtaWNv
biIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBtZXNzYWdlLT5h
cHBlbmRDaGlsZChpY29uLnJlbGVhc2UoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0gICAgUmVm
UHRyPEhUTUxFbGVtZW50PiB0ZXh0QmxvY2sgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KTsKKyAgICBtZXNzYWdlLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoaWNvbiksIEFTU0VSVF9O
T19FWENFUFRJT04pOworICAgIFJlZjxIVE1MRWxlbWVudD4gdGV4dEJsb2NrID0gSFRNTERpdkVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgdGV4dEJsb2NrLT5zZXRQc2V1ZG8oQXRvbWlj
U3RyaW5nKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLXRleHQtYmxvY2siLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgbV9tZXNzYWdlSGVhZGluZyA9IEhUTUxE
aXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIG1fbWVzc2FnZUhlYWRpbmctPnNldFBz
ZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtaGVhZGluZyIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICB0ZXh0QmxvY2stPmFwcGVu
ZENoaWxkKG1fbWVzc2FnZUhlYWRpbmcsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIHRleHRC
bG9jay0+YXBwZW5kQ2hpbGQoKm1fbWVzc2FnZUhlYWRpbmcsIEFTU0VSVF9OT19FWENFUFRJT04p
OwogICAgIG1fbWVzc2FnZUJvZHkgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsK
ICAgICBtX21lc3NhZ2VCb2R5LT5zZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LXZhbGlk
YXRpb24tYnViYmxlLWJvZHkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
Ci0gICAgdGV4dEJsb2NrLT5hcHBlbmRDaGlsZChtX21lc3NhZ2VCb2R5LCBBU1NFUlRfTk9fRVhD
RVBUSU9OKTsKLSAgICBtZXNzYWdlLT5hcHBlbmRDaGlsZCh0ZXh0QmxvY2sucmVsZWFzZSgpLCBB
U1NFUlRfTk9fRVhDRVBUSU9OKTsKLSAgICBtX2J1YmJsZS0+YXBwZW5kQ2hpbGQobWVzc2FnZS5y
ZWxlYXNlKCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIHRleHRCbG9jay0+YXBwZW5kQ2hp
bGQoKm1fbWVzc2FnZUJvZHksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIG1lc3NhZ2UtPmFw
cGVuZENoaWxkKFdURjo6bW92ZSh0ZXh0QmxvY2spLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAg
ICBtX2J1YmJsZS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKG1lc3NhZ2UpLCBBU1NFUlRfTk9fRVhD
RVBUSU9OKTsKIAogICAgIHNldE1lc3NhZ2VET01BbmRTdGFydFRpbWVyKCk7CiAKQEAgLTIzNyw3
ICsyMzcsNyBAQCB2b2lkIFZhbGlkYXRpb25NZXNzYWdlOjpkZWxldGVCdWJibGVUcmVlKCkKICAg
ICBpZiAobV9idWJibGUpIHsKICAgICAgICAgbV9tZXNzYWdlSGVhZGluZyA9IG51bGxwdHI7CiAg
ICAgICAgIG1fbWVzc2FnZUJvZHkgPSBudWxscHRyOwotICAgICAgICBtX2VsZW1lbnQtPnVzZXJB
Z2VudFNoYWRvd1Jvb3QoKS0+cmVtb3ZlQ2hpbGQobV9idWJibGUuZ2V0KCksIEFTU0VSVF9OT19F
WENFUFRJT04pOworICAgICAgICBtX2VsZW1lbnQtPnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+cmVt
b3ZlQ2hpbGQoKm1fYnViYmxlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICAgICAgbV9idWJi
bGUgPSBudWxscHRyOwogICAgIH0KICAgICBtX21lc3NhZ2UgPSBTdHJpbmcoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAppbmRl
eCA5ZTQ4M2E5OWQ0NTg5MGUwNjc2YzdmOGEyNjhmYmJhNGQ0MDU0MGMyLi4yMmNlMzM5ZDM0ODI1
ODRmY2YxM2Y0Y2FlZWQ4YTBiNDU2ZmZhN2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCkBAIC04MDcsMjEgKzgwNywyMSBA
QCB2b2lkIE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudDo6cmVidWls
ZFRyYWNrTGlzdE1lbnUoKQogICAgIENhcHRpb25Vc2VyUHJlZmVyZW5jZXMqIGNhcHRpb25QcmVm
ZXJlbmNlcyA9IGRvY3VtZW50KCkucGFnZSgpLT5ncm91cCgpLmNhcHRpb25QcmVmZXJlbmNlcygp
OwogICAgIFZlY3RvcjxSZWZQdHI8VGV4dFRyYWNrPj4gdHJhY2tzRm9yTWVudSA9IGNhcHRpb25Q
cmVmZXJlbmNlcy0+c29ydGVkVHJhY2tMaXN0Rm9yTWVudSh0cmFja0xpc3QpOwogCi0gICAgUmVm
UHRyPEVsZW1lbnQ+IGNhcHRpb25zSGVhZGVyID0gZG9jdW1lbnQoKS5jcmVhdGVFbGVtZW50KGgz
VGFnLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBSZWY8RWxlbWVudD4gY2FwdGlvbnNIZWFk
ZXIgPSBkb2N1bWVudCgpLmNyZWF0ZUVsZW1lbnQoaDNUYWcsIEFTU0VSVF9OT19FWENFUFRJT04p
OwogICAgIGNhcHRpb25zSGVhZGVyLT5hcHBlbmRDaGlsZChkb2N1bWVudCgpLmNyZWF0ZVRleHRO
b2RlKHRleHRUcmFja1N1YnRpdGxlc1RleHQoKSkpOwotICAgIGFwcGVuZENoaWxkKGNhcHRpb25z
SGVhZGVyKTsKLSAgICBSZWZQdHI8RWxlbWVudD4gY2FwdGlvbnNNZW51TGlzdCA9IGRvY3VtZW50
KCkuY3JlYXRlRWxlbWVudCh1bFRhZywgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgYXBwZW5k
Q2hpbGQoV1RGOjptb3ZlKGNhcHRpb25zSGVhZGVyKSk7CisgICAgUmVmPEVsZW1lbnQ+IGNhcHRp
b25zTWVudUxpc3QgPSBkb2N1bWVudCgpLmNyZWF0ZUVsZW1lbnQodWxUYWcsIEFTU0VSVF9OT19F
WENFUFRJT04pOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgbGVuZ3RoID0gdHJhY2tzRm9y
TWVudS5zaXplKCk7IGkgPCBsZW5ndGg7ICsraSkgewogICAgICAgICBSZWZQdHI8VGV4dFRyYWNr
PiB0ZXh0VHJhY2sgPSB0cmFja3NGb3JNZW51W2ldOwotICAgICAgICBSZWZQdHI8RWxlbWVudD4g
bWVudUl0ZW0gPSBkb2N1bWVudCgpLmNyZWF0ZUVsZW1lbnQobGlUYWcsIEFTU0VSVF9OT19FWENF
UFRJT04pOworICAgICAgICBSZWY8RWxlbWVudD4gbWVudUl0ZW0gPSBkb2N1bWVudCgpLmNyZWF0
ZUVsZW1lbnQobGlUYWcsIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgICAgICBtZW51SXRlbS0+
YXBwZW5kQ2hpbGQoZG9jdW1lbnQoKS5jcmVhdGVUZXh0Tm9kZShjYXB0aW9uUHJlZmVyZW5jZXMt
PmRpc3BsYXlOYW1lRm9yVHJhY2sodGV4dFRyYWNrLmdldCgpKSkpOwotICAgICAgICBjYXB0aW9u
c01lbnVMaXN0LT5hcHBlbmRDaGlsZChtZW51SXRlbSk7Ci0gICAgICAgIG1fbWVudUl0ZW1zLmFw
cGVuZChtZW51SXRlbSk7Ci0gICAgICAgIG1fbWVudVRvVHJhY2tNYXAuYWRkKG1lbnVJdGVtLCB0
ZXh0VHJhY2spOworICAgICAgICBjYXB0aW9uc01lbnVMaXN0LT5hcHBlbmRDaGlsZChtZW51SXRl
bS5jb3B5UmVmKCkpOworICAgICAgICBtX21lbnVJdGVtcy5hcHBlbmQobWVudUl0ZW0ucHRyKCkp
OworICAgICAgICBtX21lbnVUb1RyYWNrTWFwLmFkZChtZW51SXRlbS5wdHIoKSwgdGV4dFRyYWNr
KTsKICAgICB9CiAKLSAgICBhcHBlbmRDaGlsZChjYXB0aW9uc01lbnVMaXN0KTsKKyAgICBhcHBl
bmRDaGlsZChXVEY6Om1vdmUoY2FwdGlvbnNNZW51TGlzdCkpOwogI2VuZGlmCiB9CiAKQEAgLTEx
ODYsMTYgKzExODYsMTYgQEAgdm9pZCBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVt
ZW50Ojp1cGRhdGVEaXNwbGF5KCkKICAgICAgICAgICAgIC8vIHRyYWNrIGN1ZSByZWdpb24gaWRl
bnRpZmllciwgcnVuIHRoZSBmb2xsb3dpbmcgc3Vic3RlcHM6CiAgICAgICAgICAgICBpZiAoZGlz
cGxheUJveC0+aGFzQ2hpbGROb2RlcygpICYmICFjb250YWlucyhkaXNwbGF5Qm94LmdldCgpKSkg
ewogICAgICAgICAgICAgICAgIC8vIE5vdGU6IHRoZSBkaXNwbGF5IHRyZWUgb2YgYSBjdWUgaXMg
cmVtb3ZlZCB3aGVuIHRoZSBhY3RpdmUgZmxhZyBvZiB0aGUgY3VlIGlzIHVuc2V0LgotICAgICAg
ICAgICAgICAgIGFwcGVuZENoaWxkKGRpc3BsYXlCb3gsIEFTU0VSVF9OT19FWENFUFRJT04pOwor
ICAgICAgICAgICAgICAgIGFwcGVuZENoaWxkKCpkaXNwbGF5Qm94LCBBU1NFUlRfTk9fRVhDRVBU
SU9OKTsKICAgICAgICAgICAgICAgICBjdWUtPnNldEZvbnRTaXplKG1fZm9udFNpemUsIG1fdmlk
ZW9EaXNwbGF5U2l6ZS5zaXplKCksIG1fZm9udFNpemVJc0ltcG9ydGFudCk7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAvLyBMZXQgcmVnaW9uIGJlIHRoZSBX
ZWJWVFQgcmVnaW9uIHdob3NlIHJlZ2lvbiBpZGVudGlmaWVyCiAgICAgICAgICAgICAvLyBtYXRj
aGVzIHRoZSB0ZXh0IHRyYWNrIGN1ZSByZWdpb24gaWRlbnRpZmllciBvZiBjdWUuCi0gICAgICAg
ICAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IHJlZ2lvbk5vZGUgPSByZWdpb24tPmdldERpc3Bs
YXlUcmVlKCk7CisgICAgICAgICAgICBSZWY8SFRNTERpdkVsZW1lbnQ+IHJlZ2lvbk5vZGUgPSBy
ZWdpb24tPmdldERpc3BsYXlUcmVlKCk7CiAKICAgICAgICAgICAgIC8vIEFwcGVuZCB0aGUgcmVn
aW9uIHRvIHRoZSB2aWV3cG9ydCwgaWYgaXQgd2FzIG5vdCBhbHJlYWR5LgotICAgICAgICAgICAg
aWYgKCFjb250YWlucyhyZWdpb25Ob2RlLmdldCgpKSkKKyAgICAgICAgICAgIGlmICghY29udGFp
bnMocmVnaW9uTm9kZS5wdHIoKSkpCiAgICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQocmVnaW9u
LT5nZXREaXNwbGF5VHJlZSgpKTsKIAogICAgICAgICAgICAgcmVnaW9uLT5hcHBlbmRUZXh0VHJh
Y2tDdWVCb3goZGlzcGxheUJveCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlh
Q29udHJvbHMuY3BwCmluZGV4IDNkZDZkZTg2ZGExZmNjZDFmZTFhMDYwODUzZDQ3MTIzYTRhNzBk
OTguLjlkZjk5OGYxYTk4N2JjOTJmZjc4ODRkNTUzMzE4NjJhMTVjYjliMjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuY3BwCkBAIC0zODAsMTQgKzM4MCwx
NCBAQCB2b2lkIE1lZGlhQ29udHJvbHM6OmNyZWF0ZVRleHRUcmFja0Rpc3BsYXkoKQogICAgIGlm
IChtX3RleHREaXNwbGF5Q29udGFpbmVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBSZWZQdHI8
TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudD4gdGV4dERpc3BsYXlDb250YWlu
ZXIgPSBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQoKSk7Ci0gICAgbV90ZXh0RGlzcGxheUNvbnRhaW5lciA9IHRleHREaXNwbGF5Q29udGFpbmVy
LmdldCgpOworICAgIFJlZjxNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50PiB0
ZXh0RGlzcGxheUNvbnRhaW5lciA9IE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKKyAgICBtX3RleHREaXNwbGF5Q29udGFpbmVyID0gdGV4
dERpc3BsYXlDb250YWluZXIucHRyKCk7CiAKICAgICBpZiAobV9tZWRpYUNvbnRyb2xsZXIpCiAg
ICAgICAgIG1fdGV4dERpc3BsYXlDb250YWluZXItPnNldE1lZGlhQ29udHJvbGxlcihtX21lZGlh
Q29udHJvbGxlcik7CiAKICAgICAvLyBJbnNlcnQgaXQgYmVmb3JlIHRoZSBmaXJzdCBjb250cm9s
bGVyIGVsZW1lbnQgc28gaXQgYWx3YXlzIGRpc3BsYXlzIGJlaGluZCB0aGUgY29udHJvbHMuCi0g
ICAgaW5zZXJ0QmVmb3JlKHRleHREaXNwbGF5Q29udGFpbmVyLnJlbGVhc2UoKSwgbV9wYW5lbCwg
SUdOT1JFX0VYQ0VQVElPTik7CisgICAgaW5zZXJ0QmVmb3JlKFdURjo6bW92ZSh0ZXh0RGlzcGxh
eUNvbnRhaW5lciksIG1fcGFuZWwsIElHTk9SRV9FWENFUFRJT04pOwogfQogCiB2b2lkIE1lZGlh
Q29udHJvbHM6OnNob3dUZXh0VHJhY2tEaXNwbGF5KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNBcHBsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQXBwbGUuY3BwCmluZGV4IDhmZGJhMGQwMzQ4NTAzYTJh
NmU4ZTBkMGU4NjQ3ZTkzZjk2NjRmODMuLjA5MjU2ZDViNGVkYTdjOGY5NjM5ZWJlMjk3MmE3OGYw
OGEyNmQ4ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29u
dHJvbHNBcHBsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250
cm9sc0FwcGxlLmNwcApAQCAtNjMsMTY1ICs2MywxNjUgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRy
b2xzPiBNZWRpYUNvbnRyb2xzOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogUGFzc1JlZlB0
cjxNZWRpYUNvbnRyb2xzQXBwbGU+IE1lZGlhQ29udHJvbHNBcHBsZTo6Y3JlYXRlQ29udHJvbHMo
RG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIGlmICghZG9jdW1lbnQucGFnZSgpKQotICAgICAg
ICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBSZWZQdHI8TWVkaWFD
b250cm9sc0FwcGxlPiBjb250cm9scyA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xzQXBwbGUo
ZG9jdW1lbnQpKTsKIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ+IHBhbmVs
ID0gTWVkaWFDb250cm9sUGFuZWxFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIFJlZjxN
ZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ+IHBhbmVsID0gTWVkaWFDb250cm9sUGFuZWxFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQpOwogCiAgICAgRXhjZXB0aW9uQ29kZSBlYzsKIAotICAgIFJlZlB0
cjxNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50PiByZXdpbmRCdXR0b24gPSBNZWRpYUNv
bnRyb2xSZXdpbmRCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNvbnRyb2xz
LT5tX3Jld2luZEJ1dHRvbiA9IHJld2luZEJ1dHRvbi5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5k
Q2hpbGQocmV3aW5kQnV0dG9uLnJlbGVhc2UoKSwgZWMpOworICAgIFJlZjxNZWRpYUNvbnRyb2xS
ZXdpbmRCdXR0b25FbGVtZW50PiByZXdpbmRCdXR0b24gPSBNZWRpYUNvbnRyb2xSZXdpbmRCdXR0
b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNvbnRyb2xzLT5tX3Jld2luZEJ1dHRv
biA9IHJld2luZEJ1dHRvbi5wdHIoKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGOjptb3Zl
KHJld2luZEJ1dHRvbiksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQbGF5QnV0dG9u
RWxlbWVudD4gcGxheUJ1dHRvbiA9IE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQpOwotICAgIGNvbnRyb2xzLT5tX3BsYXlCdXR0b24gPSBwbGF5QnV0dG9uLmdl
dCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChwbGF5QnV0dG9uLnJlbGVhc2UoKSwgZWMpOwor
ICAgIFJlZjxNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudD4gcGxheUJ1dHRvbiA9IE1lZGlh
Q29udHJvbFBsYXlCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNvbnRyb2xz
LT5tX3BsYXlCdXR0b24gPSBwbGF5QnV0dG9uLnB0cigpOworICAgIHBhbmVsLT5hcHBlbmRDaGls
ZChXVEY6Om1vdmUocGxheUJ1dHRvbiksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVy
biAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xS
ZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudD4gcmV0dXJuVG9SZWFsdGltZUJ1dHRvbiA9IE1l
ZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQp
OwotICAgIGNvbnRyb2xzLT5tX3JldHVyblRvUmVhbFRpbWVCdXR0b24gPSByZXR1cm5Ub1JlYWx0
aW1lQnV0dG9uLmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChyZXR1cm5Ub1JlYWx0aW1l
QnV0dG9uLnJlbGVhc2UoKSwgZWMpOworICAgIFJlZjxNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0
aW1lQnV0dG9uRWxlbWVudD4gcmV0dXJuVG9SZWFsdGltZUJ1dHRvbiA9IE1lZGlhQ29udHJvbFJl
dHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNvbnRy
b2xzLT5tX3JldHVyblRvUmVhbFRpbWVCdXR0b24gPSByZXR1cm5Ub1JlYWx0aW1lQnV0dG9uLnB0
cigpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUocmV0dXJuVG9SZWFsdGltZUJ1
dHRvbiksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIAogICAgIGlmIChkb2N1bWVudC5wYWdlKCktPnRoZW1lKCkudXNlc01lZGlh
Q29udHJvbFN0YXR1c0Rpc3BsYXkoKSkgewotICAgICAgICBSZWZQdHI8TWVkaWFDb250cm9sU3Rh
dHVzRGlzcGxheUVsZW1lbnQ+IHN0YXR1c0Rpc3BsYXkgPSBNZWRpYUNvbnRyb2xTdGF0dXNEaXNw
bGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICAgICAgY29udHJvbHMtPm1fc3RhdHVz
RGlzcGxheSA9IHN0YXR1c0Rpc3BsYXkuZ2V0KCk7Ci0gICAgICAgIHBhbmVsLT5hcHBlbmRDaGls
ZChzdGF0dXNEaXNwbGF5LnJlbGVhc2UoKSwgZWMpOworICAgICAgICBSZWY8TWVkaWFDb250cm9s
U3RhdHVzRGlzcGxheUVsZW1lbnQ+IHN0YXR1c0Rpc3BsYXkgPSBNZWRpYUNvbnRyb2xTdGF0dXNE
aXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICAgICAgY29udHJvbHMtPm1fc3Rh
dHVzRGlzcGxheSA9IHN0YXR1c0Rpc3BsYXkucHRyKCk7CisgICAgICAgIHBhbmVsLT5hcHBlbmRD
aGlsZChXVEY6Om1vdmUoc3RhdHVzRGlzcGxheSksIGVjKTsKICAgICAgICAgaWYgKGVjKQotICAg
ICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAK
LSAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50PiB0aW1lbGlu
ZUNvbnRhaW5lciA9IE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KTsKKyAgICBSZWY8TWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50
PiB0aW1lbGluZUNvbnRhaW5lciA9IE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50KTsKIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xDdXJyZW50VGlt
ZURpc3BsYXlFbGVtZW50PiBjdXJyZW50VGltZURpc3BsYXkgPSBNZWRpYUNvbnRyb2xDdXJyZW50
VGltZURpc3BsYXlFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNvbnRyb2xzLT5tX2N1
cnJlbnRUaW1lRGlzcGxheSA9IGN1cnJlbnRUaW1lRGlzcGxheS5nZXQoKTsKLSAgICB0aW1lbGlu
ZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoY3VycmVudFRpbWVEaXNwbGF5LnJlbGVhc2UoKSwgZWMp
OworICAgIFJlZjxNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50PiBjdXJyZW50
VGltZURpc3BsYXkgPSBNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQpOworICAgIGNvbnRyb2xzLT5tX2N1cnJlbnRUaW1lRGlzcGxheSA9IGN1cnJl
bnRUaW1lRGlzcGxheS5wdHIoKTsKKyAgICB0aW1lbGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQo
V1RGOjptb3ZlKGN1cnJlbnRUaW1lRGlzcGxheSksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAg
IHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIFJlZlB0cjxNZWRpYUNv
bnRyb2xUaW1lbGluZUVsZW1lbnQ+IHRpbWVsaW5lID0gTWVkaWFDb250cm9sVGltZWxpbmVFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKLSAgICBjb250cm9scy0+bV90
aW1lbGluZSA9IHRpbWVsaW5lLmdldCgpOwotICAgIHRpbWVsaW5lQ29udGFpbmVyLT5hcHBlbmRD
aGlsZCh0aW1lbGluZS5yZWxlYXNlKCksIGVjKTsKKyAgICBSZWY8TWVkaWFDb250cm9sVGltZWxp
bmVFbGVtZW50PiB0aW1lbGluZSA9IE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50LCBjb250cm9scy5nZXQoKSk7CisgICAgY29udHJvbHMtPm1fdGltZWxpbmUgPSB0
aW1lbGluZS5wdHIoKTsKKyAgICB0aW1lbGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoV1RGOjpt
b3ZlKHRpbWVsaW5lKSwgZWMpOwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAg
ICAgIHJldHVybiBudWxscHRyOwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVSZW1haW5p
bmdEaXNwbGF5RWxlbWVudD4gdGltZVJlbWFpbmluZ0Rpc3BsYXkgPSBNZWRpYUNvbnRyb2xUaW1l
UmVtYWluaW5nRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJvbHMt
Pm1fdGltZVJlbWFpbmluZ0Rpc3BsYXkgPSB0aW1lUmVtYWluaW5nRGlzcGxheS5nZXQoKTsKLSAg
ICB0aW1lbGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQodGltZVJlbWFpbmluZ0Rpc3BsYXkucmVs
ZWFzZSgpLCBlYyk7CisgICAgUmVmPE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxl
bWVudD4gdGltZVJlbWFpbmluZ0Rpc3BsYXkgPSBNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlz
cGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgY29udHJvbHMtPm1fdGltZVJlbWFp
bmluZ0Rpc3BsYXkgPSB0aW1lUmVtYWluaW5nRGlzcGxheS5wdHIoKTsKKyAgICB0aW1lbGluZUNv
bnRhaW5lci0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHRpbWVSZW1haW5pbmdEaXNwbGF5KSwgZWMp
OwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRy
OwogCi0gICAgY29udHJvbHMtPm1fdGltZWxpbmVDb250YWluZXIgPSB0aW1lbGluZUNvbnRhaW5l
ci5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQodGltZWxpbmVDb250YWluZXIucmVsZWFz
ZSgpLCBlYyk7CisgICAgY29udHJvbHMtPm1fdGltZWxpbmVDb250YWluZXIgPSB0aW1lbGluZUNv
bnRhaW5lci5wdHIoKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHRpbWVsaW5l
Q29udGFpbmVyKSwgZWMpOwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAg
IHJldHVybiBudWxscHRyOwogCiAgICAgLy8gRklYTUU6IE9ubHkgY3JlYXRlIHdoZW4gbmVlZGVk
IDxodHRwOi8vd2Via2l0Lm9yZy9iLzU3MTYzPgotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xTZWVr
QmFja0J1dHRvbkVsZW1lbnQ+IHNlZWtCYWNrQnV0dG9uID0gTWVkaWFDb250cm9sU2Vla0JhY2tC
dXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNvbnRyb2xzLT5tX3NlZWtCYWNr
QnV0dG9uID0gc2Vla0JhY2tCdXR0b24uZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKHNl
ZWtCYWNrQnV0dG9uLnJlbGVhc2UoKSwgZWMpOworICAgIFJlZjxNZWRpYUNvbnRyb2xTZWVrQmFj
a0J1dHRvbkVsZW1lbnQ+IHNlZWtCYWNrQnV0dG9uID0gTWVkaWFDb250cm9sU2Vla0JhY2tCdXR0
b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNvbnRyb2xzLT5tX3NlZWtCYWNrQnV0
dG9uID0gc2Vla0JhY2tCdXR0b24ucHRyKCk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdURjo6
bW92ZShzZWVrQmFja0J1dHRvbiksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAw
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIC8vIEZJWE1FOiBPbmx5IGNyZWF0ZSB3
aGVuIG5lZWRlZCA8aHR0cDovL3dlYmtpdC5vcmcvYi81NzE2Mz4KLSAgICBSZWZQdHI8TWVkaWFD
b250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50PiBzZWVrRm9yd2FyZEJ1dHRvbiA9IE1lZGlh
Q29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBj
b250cm9scy0+bV9zZWVrRm9yd2FyZEJ1dHRvbiA9IHNlZWtGb3J3YXJkQnV0dG9uLmdldCgpOwot
ICAgIHBhbmVsLT5hcHBlbmRDaGlsZChzZWVrRm9yd2FyZEJ1dHRvbi5yZWxlYXNlKCksIGVjKTsK
KyAgICBSZWY8TWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50PiBzZWVrRm9yd2Fy
ZEJ1dHRvbiA9IE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50KTsKKyAgICBjb250cm9scy0+bV9zZWVrRm9yd2FyZEJ1dHRvbiA9IHNlZWtGb3J3YXJk
QnV0dG9uLnB0cigpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoc2Vla0Zvcndh
cmRCdXR0b24pLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKICAgICBpZiAoZG9jdW1lbnQucGFnZSgpLT50aGVtZSgpLnN1cHBv
cnRzQ2xvc2VkQ2FwdGlvbmluZygpKSB7Ci0gICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xDbG9z
ZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQ+IGNsb3NlZENhcHRpb25zQ29udGFpbmVyID0gTWVk
aWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQp
OworICAgICAgICBSZWY8TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50
PiBjbG9zZWRDYXB0aW9uc0NvbnRhaW5lciA9IE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29u
dGFpbmVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKIAotICAgICAgICBSZWZQdHI8TWVkaWFD
b250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50PiBjbG9zZWRDYXB0aW9uc1RyYWNr
TGlzdCA9IE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50LCBjb250cm9scy5nZXQoKSk7Ci0gICAgICAgIGNvbnRyb2xzLT5tX2Nsb3NlZENh
cHRpb25zVHJhY2tMaXN0ID0gY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QuZ2V0KCk7Ci0gICAgICAg
IGNsb3NlZENhcHRpb25zQ29udGFpbmVyLT5hcHBlbmRDaGlsZChjbG9zZWRDYXB0aW9uc1RyYWNr
TGlzdC5yZWxlYXNlKCksIGVjKTsKKyAgICAgICAgUmVmPE1lZGlhQ29udHJvbENsb3NlZENhcHRp
b25zVHJhY2tMaXN0RWxlbWVudD4gY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QgPSBNZWRpYUNvbnRy
b2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJv
bHMuZ2V0KCkpOworICAgICAgICBjb250cm9scy0+bV9jbG9zZWRDYXB0aW9uc1RyYWNrTGlzdCA9
IGNsb3NlZENhcHRpb25zVHJhY2tMaXN0LnB0cigpOworICAgICAgICBjbG9zZWRDYXB0aW9uc0Nv
bnRhaW5lci0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNsb3NlZENhcHRpb25zVHJhY2tMaXN0KSwg
ZWMpOwogICAgICAgICBpZiAoZWMpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAg
IHJldHVybiBudWxscHRyOwogCi0gICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUb2dnbGVDbG9z
ZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ+IHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uID0gTWVk
aWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQsIGNvbnRyb2xzLmdldCgpKTsKLSAgICAgICAgY29udHJvbHMtPm1fdG9nZ2xlQ2xvc2VkQ2Fw
dGlvbnNCdXR0b24gPSB0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbi5nZXQoKTsKLSAgICAgICAg
cGFuZWwtPmFwcGVuZENoaWxkKHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uLnJlbGVhc2UoKSwg
ZWMpOworICAgICAgICBSZWY8TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25F
bGVtZW50PiB0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbiA9IE1lZGlhQ29udHJvbFRvZ2dsZUNs
b3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBjb250cm9scy5nZXQo
KSk7CisgICAgICAgIGNvbnRyb2xzLT5tX3RvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uID0gdG9n
Z2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24ucHRyKCk7CisgICAgICAgIHBhbmVsLT5hcHBlbmRDaGls
ZChXVEY6Om1vdmUodG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24pLCBlYyk7CiAgICAgICAgIGlm
IChlYykKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKLSAgICAgICAgY29udHJvbHMtPm1fY2xvc2VkQ2FwdGlvbnNDb250YWluZXIgPSBjbG9zZWRD
YXB0aW9uc0NvbnRhaW5lci5nZXQoKTsKLSAgICAgICAgY29udHJvbHMtPmFwcGVuZENoaWxkKGNs
b3NlZENhcHRpb25zQ29udGFpbmVyLnJlbGVhc2UoKSwgZWMpOworICAgICAgICBjb250cm9scy0+
bV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5lciA9IGNsb3NlZENhcHRpb25zQ29udGFpbmVyLnB0cigp
OworICAgICAgICBjb250cm9scy0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNsb3NlZENhcHRpb25z
Q29udGFpbmVyKSwgZWMpOwogICAgICAgICBpZiAoZWMpCi0gICAgICAgICAgICByZXR1cm4gMDsK
KyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIC8vIEZJWE1FOiBPbmx5
IGNyZWF0ZSB3aGVuIG5lZWRlZCA8aHR0cDovL3dlYmtpdC5vcmcvYi81NzE2Mz4KLSAgICBSZWZQ
dHI8TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ+IGZ1bGxTY3JlZW5CdXR0b24g
PSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsK
LSAgICBjb250cm9scy0+bV9mdWxsU2NyZWVuQnV0dG9uID0gZnVsbFNjcmVlbkJ1dHRvbi5nZXQo
KTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoZnVsbFNjcmVlbkJ1dHRvbi5yZWxlYXNlKCksIGVj
KTsKKyAgICBSZWY8TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ+IGZ1bGxTY3Jl
ZW5CdXR0b24gPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50KTsKKyAgICBjb250cm9scy0+bV9mdWxsU2NyZWVuQnV0dG9uID0gZnVsbFNjcmVlbkJ1
dHRvbi5wdHIoKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGZ1bGxTY3JlZW5C
dXR0b24pLCBlYyk7CiAKICAgICAvLyBUaGUgbXV0ZSBidXR0b24gYW5kIHRoZSBzbGlkZXIgZWxl
bWVudCBzaG91bGQgYmUgaW4gdGhlIHNhbWUgZGl2LgotICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVu
dD4gcGFuZWxWb2x1bWVDb250cm9sQ29udGFpbmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCk7CisgICAgUmVmPEhUTUxEaXZFbGVtZW50PiBwYW5lbFZvbHVtZUNvbnRyb2xDb250
YWluZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKIAogICAgIGlmIChkb2N1
bWVudC5wYWdlKCktPnRoZW1lKCkudXNlc01lZGlhQ29udHJvbFZvbHVtZVNsaWRlcigpKSB7Ci0g
ICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50PiB2
b2x1bWVTbGlkZXJDb250YWluZXIgPSBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgICAgICBSZWY8TWVkaWFDb250cm9sVm9sdW1l
U2xpZGVyQ29udGFpbmVyRWxlbWVudD4gdm9sdW1lU2xpZGVyQ29udGFpbmVyID0gTWVkaWFDb250
cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKIAotICAg
ICAgICBSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50PiBzbGlkZXIg
PSBNZWRpYUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7
Ci0gICAgICAgIGNvbnRyb2xzLT5tX3ZvbHVtZVNsaWRlciA9IHNsaWRlci5nZXQoKTsKLSAgICAg
ICAgdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5hcHBlbmRDaGlsZChzbGlkZXIucmVsZWFzZSgpLCBl
Yyk7CisgICAgICAgIFJlZjxNZWRpYUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1lbnQ+IHNs
aWRlciA9IE1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xpZGVyRWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KTsKKyAgICAgICAgY29udHJvbHMtPm1fdm9sdW1lU2xpZGVyID0gc2xpZGVyLnB0cigpOwor
ICAgICAgICB2b2x1bWVTbGlkZXJDb250YWluZXItPmFwcGVuZENoaWxkKFdURjo6bW92ZShzbGlk
ZXIpLCBlYyk7CiAgICAgICAgIGlmIChlYykKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAgICAgLy8gVGhpcyBpcyBhIGR1cGxpY2F0ZSBt
dXRlIGJ1dHRvbiwgd2hpY2ggaXMgdmlzaWJsZSBpbiBzb21lIHBvcnRzIGF0IHRoZSBib3R0b20g
b2YgdGhlIHZvbHVtZSBiYXIuCiAgICAgICAgIC8vIEl0J3MgaW1wb3J0YW50IG9ubHkgd2hlbiB0
aGUgdm9sdW1lIGJhciBpcyBkaXNwbGF5ZWQgYmVsb3cgdGhlIGNvbnRyb2xzLgotICAgICAgICBS
ZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ+IHZvbHVtZVNs
aWRlck11dGVCdXR0b24gPSBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICAgICAgY29udHJvbHMtPm1fdm9sdW1lU2xpZGVyTXV0
ZUJ1dHRvbiA9IHZvbHVtZVNsaWRlck11dGVCdXR0b24uZ2V0KCk7Ci0gICAgICAgIHZvbHVtZVNs
aWRlckNvbnRhaW5lci0+YXBwZW5kQ2hpbGQodm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbi5yZWxlYXNl
KCksIGVjKTsKKyAgICAgICAgUmVmPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25F
bGVtZW50PiB2b2x1bWVTbGlkZXJNdXRlQnV0dG9uID0gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVy
TXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgICAgIGNvbnRyb2xzLT5t
X3ZvbHVtZVNsaWRlck11dGVCdXR0b24gPSB2b2x1bWVTbGlkZXJNdXRlQnV0dG9uLnB0cigpOwor
ICAgICAgICB2b2x1bWVTbGlkZXJDb250YWluZXItPmFwcGVuZENoaWxkKFdURjo6bW92ZSh2b2x1
bWVTbGlkZXJNdXRlQnV0dG9uKSwgZWMpOwogCiAgICAgICAgIGlmIChlYykKLSAgICAgICAgICAg
IHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICAgICAgY29udHJv
bHMtPm1fdm9sdW1lU2xpZGVyQ29udGFpbmVyID0gdm9sdW1lU2xpZGVyQ29udGFpbmVyLmdldCgp
OwotICAgICAgICBwYW5lbFZvbHVtZUNvbnRyb2xDb250YWluZXItPmFwcGVuZENoaWxkKHZvbHVt
ZVNsaWRlckNvbnRhaW5lci5yZWxlYXNlKCksIGVjKTsKKyAgICAgICAgY29udHJvbHMtPm1fdm9s
dW1lU2xpZGVyQ29udGFpbmVyID0gdm9sdW1lU2xpZGVyQ29udGFpbmVyLnB0cigpOworICAgICAg
ICBwYW5lbFZvbHVtZUNvbnRyb2xDb250YWluZXItPmFwcGVuZENoaWxkKFdURjo6bW92ZSh2b2x1
bWVTbGlkZXJDb250YWluZXIpLCBlYyk7CiAgICAgICAgIGlmIChlYykKLSAgICAgICAgICAgIHJl
dHVybiAwOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgUmVmUHRy
PE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ+IHBhbmVsTXV0ZUJ1dHRvbiA9IE1l
ZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJv
bHMuZ2V0KCkpOwotICAgIGNvbnRyb2xzLT5tX3BhbmVsTXV0ZUJ1dHRvbiA9IHBhbmVsTXV0ZUJ1
dHRvbi5nZXQoKTsKLSAgICBwYW5lbFZvbHVtZUNvbnRyb2xDb250YWluZXItPmFwcGVuZENoaWxk
KHBhbmVsTXV0ZUJ1dHRvbi5yZWxlYXNlKCksIGVjKTsKKyAgICBSZWY8TWVkaWFDb250cm9sUGFu
ZWxNdXRlQnV0dG9uRWxlbWVudD4gcGFuZWxNdXRlQnV0dG9uID0gTWVkaWFDb250cm9sUGFuZWxN
dXRlQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBjb250cm9scy5nZXQoKSk7CisgICAg
Y29udHJvbHMtPm1fcGFuZWxNdXRlQnV0dG9uID0gcGFuZWxNdXRlQnV0dG9uLnB0cigpOworICAg
IHBhbmVsVm9sdW1lQ29udHJvbENvbnRhaW5lci0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHBhbmVs
TXV0ZUJ1dHRvbiksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChwYW5lbFZvbHVtZUNv
bnRyb2xDb250YWluZXIsIGVjKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHBh
bmVsVm9sdW1lQ29udHJvbENvbnRhaW5lciksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJl
dHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIC8vIEZJWE1FOiBPbmx5IGNy
ZWF0ZSB3aGVuIG5lZWRlZCA8aHR0cDovL3dlYmtpdC5vcmcvYi81NzE2Mz4KLSAgICBSZWZQdHI8
TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQ+IGZ1bGxTY3JlZW5N
aW5Wb2x1bWVCdXR0b24gPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBjb250cm9scy0+bV9mdWxsU2NyZWVuTWluVm9s
dW1lQnV0dG9uID0gZnVsbFNjcmVlbk1pblZvbHVtZUJ1dHRvbi5nZXQoKTsKLSAgICBwYW5lbC0+
YXBwZW5kQ2hpbGQoZnVsbFNjcmVlbk1pblZvbHVtZUJ1dHRvbi5yZWxlYXNlKCksIGVjKTsKKyAg
ICBSZWY8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQ+IGZ1bGxT
Y3JlZW5NaW5Wb2x1bWVCdXR0b24gPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0
dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBjb250cm9scy0+bV9mdWxsU2NyZWVu
TWluVm9sdW1lQnV0dG9uID0gZnVsbFNjcmVlbk1pblZvbHVtZUJ1dHRvbi5wdHIoKTsKKyAgICBw
YW5lbC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGZ1bGxTY3JlZW5NaW5Wb2x1bWVCdXR0b24pLCBl
Yyk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1l
bnQ+IGZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXIgPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1l
U2xpZGVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBjb250cm9scy0+bV9mdWxsU2Ny
ZWVuVm9sdW1lU2xpZGVyID0gZnVsbFNjcmVlblZvbHVtZVNsaWRlci5nZXQoKTsKLSAgICBwYW5l
bC0+YXBwZW5kQ2hpbGQoZnVsbFNjcmVlblZvbHVtZVNsaWRlci5yZWxlYXNlKCksIGVjKTsKKyAg
ICBSZWY8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQ+IGZ1bGxTY3Jl
ZW5Wb2x1bWVTbGlkZXIgPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBjb250cm9scy0+bV9mdWxsU2NyZWVuVm9sdW1lU2xp
ZGVyID0gZnVsbFNjcmVlblZvbHVtZVNsaWRlci5wdHIoKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hp
bGQoV1RGOjptb3ZlKGZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXIpLCBlYyk7CiAgICAgaWYgKGVjKQot
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBSZWZQdHI8
TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQ+IGZ1bGxTY3JlZW5N
YXhWb2x1bWVCdXR0b24gPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBjb250cm9scy0+bV9mdWxsU2NyZWVuTWF4Vm9s
dW1lQnV0dG9uID0gZnVsbFNjcmVlbk1heFZvbHVtZUJ1dHRvbi5nZXQoKTsKLSAgICBwYW5lbC0+
YXBwZW5kQ2hpbGQoZnVsbFNjcmVlbk1heFZvbHVtZUJ1dHRvbi5yZWxlYXNlKCksIGVjKTsKKyAg
ICBSZWY8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQ+IGZ1bGxT
Y3JlZW5NYXhWb2x1bWVCdXR0b24gPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0
dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBjb250cm9scy0+bV9mdWxsU2NyZWVu
TWF4Vm9sdW1lQnV0dG9uID0gZnVsbFNjcmVlbk1heFZvbHVtZUJ1dHRvbi5wdHIoKTsKKyAgICBw
YW5lbC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGZ1bGxTY3JlZW5NYXhWb2x1bWVCdXR0b24pLCBl
Yyk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKLSAgICBjb250cm9scy0+bV9wYW5lbCA9IHBhbmVsLmdldCgpOwotICAgIGNvbnRyb2xz
LT5hcHBlbmRDaGlsZChwYW5lbC5yZWxlYXNlKCksIGVjKTsKKyAgICBjb250cm9scy0+bV9wYW5l
bCA9IHBhbmVsLnB0cigpOworICAgIGNvbnRyb2xzLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUocGFu
ZWwpLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKICAgICByZXR1cm4gY29udHJvbHMucmVsZWFzZSgpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKaW5kZXggMGEx
YmI4M2ZiMTljNzU1NmRhY2QxNmNmZGRjNzg2OTg0YmQ1MTc4My4uOWRkZDU1MmJkOGNlZTk2YzYx
ZmVhYjgxZmUzZDQ2YjZlMDBkZTliNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCkBAIC02MTEsNyArNjExLDcgQEAgY29uc3QgQXRv
bWljU3RyaW5nJiBTbGlkZXJUaHVtYkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKICAg
ICB9CiB9CiAKLVJlZlB0cjxFbGVtZW50PiBTbGlkZXJUaHVtYkVsZW1lbnQ6OmNsb25lRWxlbWVu
dFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50KQor
UmVmPEVsZW1lbnQ+IFNsaWRlclRodW1iRWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJp
YnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQpCiB7CiAgICAgcmV0dXJu
IGNyZWF0ZSh0YXJnZXREb2N1bWVudCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L1NsaWRlclRodW1iRWxlbWVudC5oCmluZGV4IDQ4ZWNkNTUyNmQwYjBhNTc4MTYwZjcyZDgy
NjJiMmYxN2JmZTZhYjguLmNmMmY4NWE3ZWRkZjc5NGU3ODVkZjc2YmFjMDlmOTM4NjU1ZmQyMTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5o
CkBAIC02Miw3ICs2Miw3IEBAIHByaXZhdGU6CiAgICAgU2xpZGVyVGh1bWJFbGVtZW50KERvY3Vt
ZW50Jik7CiAKICAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24m
KSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlZlB0cjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRo
b3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50Jikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBSZWY8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihE
b2N1bWVudCYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc0Rpc2FibGVkRm9ybUNvbnRy
b2woKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgbWF0Y2hlc1JlYWRXcml0ZVBz
ZXVkb0NsYXNzKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBFbGVtZW50KiBmb2N1c0Rl
bGVnYXRlKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwCmluZGV4IGE0NGE1
ZGUwNjkyYTE2YjNiNDlkYjg3NDExOTViYWFhZGU3ZjU5NmMuLmM0NGM1MTg4MmNiODE4Nzg2MWI2
NmI1NmNmYzVhOWMyMjhlMmFlZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwCkBAIC04
NSwxMiArODUsMTMgQEAgUmVmUHRyPEltYWdlQ29udHJvbHNSb290RWxlbWVudD4gSW1hZ2VDb250
cm9sc1Jvb3RFbGVtZW50OjptYXliZUNyZWF0ZShEb2N1bWVudCYKICAgICBpZiAoIWRvY3VtZW50
LnBhZ2UoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBSZWZQdHI8SW1hZ2VDb250
cm9sc1Jvb3RFbGVtZW50TWFjPiBjb250cm9scyA9IGFkb3B0UmVmKCpuZXcgSW1hZ2VDb250cm9s
c1Jvb3RFbGVtZW50TWFjKGRvY3VtZW50KSk7CisgICAgUmVmPEltYWdlQ29udHJvbHNSb290RWxl
bWVudE1hYz4gY29udHJvbHMgPSBhZG9wdFJlZigqbmV3IEltYWdlQ29udHJvbHNSb290RWxlbWVu
dE1hYyhkb2N1bWVudCkpOwogICAgIGNvbnRyb2xzLT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpj
bGFzc0F0dHIsICJ4LXdlYmtpdC1pbWFnZS1jb250cm9scyIpOwogCi0gICAgY29udHJvbHMtPmFw
cGVuZENoaWxkKEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjOjptYXliZUNyZWF0ZShkb2N1
bWVudCkpOworICAgIGlmIChSZWZQdHI8SW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWM+IGJ1
dHRvbiA9IEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjOjptYXliZUNyZWF0ZShkb2N1bWVu
dCkpCisgICAgICAgIGNvbnRyb2xzLT5hcHBlbmRDaGlsZChidXR0b24ucmVsZWFzZU5vbk51bGwo
KSk7CiAKLSAgICByZXR1cm4gY29udHJvbHMucmVsZWFzZSgpOworICAgIHJldHVybiBXVEY6Om1v
dmUoY29udHJvbHMpOwogfQogCiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWM6OkltYWdlQ29u
dHJvbHNSb290RWxlbWVudE1hYyhEb2N1bWVudCYgZG9jdW1lbnQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1ZUVEN1ZS5jcHAKaW5kZXggYTk2OTBkNmY5OTYxOWYzNzA5YTZiOGEyNWQ2YmZlMzE1MzUw
YWFlZC4uOWQ2Y2E3MmRhOGQ4MTViNzdmMDU5OGY4ZDlmMjMxMjM5YjlmNTY5OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcApAQCAtNDk2LDcgKzQ5Niw3IEBAIHZvaWQgVlRUQ3Vl
Ojpjb3B5V2ViVlRUTm9kZVRvRE9NVHJlZShDb250YWluZXJOb2RlKiB3ZWJWVFROb2RlLCBDb250
YWluZXJOb2RlKiBwCiAgICAgICAgICAgICBjbG9uZWROb2RlID0gZG93bmNhc3Q8V2ViVlRURWxl
bWVudD4oKm5vZGUpLmNyZWF0ZUVxdWl2YWxlbnRIVE1MRWxlbWVudChvd25lckRvY3VtZW50KCkp
OwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBjbG9uZWROb2RlID0gbm9kZS0+Y2xvbmVOb2Rl
KGZhbHNlKTsKLSAgICAgICAgcGFyZW50LT5hcHBlbmRDaGlsZChjbG9uZWROb2RlLCBBU1NFUlRf
Tk9fRVhDRVBUSU9OKTsKKyAgICAgICAgcGFyZW50LT5hcHBlbmRDaGlsZCgqY2xvbmVkTm9kZSwg
QVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgICAgIGlmIChpczxDb250YWluZXJOb2RlPigqbm9k
ZSkpCiAgICAgICAgICAgICBjb3B5V2ViVlRUTm9kZVRvRE9NVHJlZShkb3duY2FzdDxDb250YWlu
ZXJOb2RlPihub2RlKSwgZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4oY2xvbmVkTm9kZS5nZXQoKSkp
OwogICAgIH0KQEAgLTUxOCwxMCArNTE4LDEwIEBAIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVu
dD4gVlRUQ3VlOjpjcmVhdGVDdWVSZW5kZXJpbmdUcmVlKCkKICAgICBSZWZQdHI8RG9jdW1lbnRG
cmFnbWVudD4gY2xvbmVkRnJhZ21lbnQ7CiAgICAgY3JlYXRlV2ViVlRUTm9kZVRyZWUoKTsKICAg
ICBpZiAoIW1fd2ViVlRUTm9kZVRyZWUpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIAogICAgIGNsb25lZEZyYWdtZW50ID0gRG9jdW1lbnRGcmFnbWVudDo6Y3Jl
YXRlKG93bmVyRG9jdW1lbnQoKSk7Ci0gICAgbV93ZWJWVFROb2RlVHJlZS0+Y2xvbmVDaGlsZE5v
ZGVzKGNsb25lZEZyYWdtZW50LmdldCgpKTsKKyAgICBtX3dlYlZUVE5vZGVUcmVlLT5jbG9uZUNo
aWxkTm9kZXMoKmNsb25lZEZyYWdtZW50KTsKICAgICByZXR1cm4gY2xvbmVkRnJhZ21lbnQucmVs
ZWFzZSgpOwogfQogCkBAIC03ODUsNyArNzg1LDcgQEAgdm9pZCBWVFRDdWU6OnVwZGF0ZURpc3Bs
YXlUcmVlKGNvbnN0IE1lZGlhVGltZSYgbW92aWVUaW1lKQogICAgICAgICByZXR1cm47CiAKICAg
ICBtYXJrRnV0dXJlQW5kUGFzdE5vZGVzKHJlZmVyZW5jZVRyZWUuZ2V0KCksIHN0YXJ0TWVkaWFU
aW1lKCksIG1vdmllVGltZSk7Ci0gICAgbV9jdWVIaWdobGlnaHRCb3gtPmFwcGVuZENoaWxkKHJl
ZmVyZW5jZVRyZWUpOworICAgIG1fY3VlSGlnaGxpZ2h0Qm94LT5hcHBlbmRDaGlsZChyZWZlcmVu
Y2VUcmVlLnJlbGVhc2VOb25OdWxsKCkpOwogfQogCiBWVFRDdWVCb3gqIFZUVEN1ZTo6Z2V0RGlz
cGxheVRyZWUoY29uc3QgSW50U2l6ZSYgdmlkZW9TaXplLCBpbnQgZm9udFNpemUpCkBAIC04MTIs
OCArODEyLDggQEAgVlRUQ3VlQm94KiBWVFRDdWU6OmdldERpc3BsYXlUcmVlKGNvbnN0IEludFNp
emUmIHZpZGVvU2l6ZSwgaW50IGZvbnRTaXplKQogICAgIG1fY3VlSGlnaGxpZ2h0Qm94LT5zZXRQ
c2V1ZG8oY3VlU2hhZG93UHNldWRvSWQoKSk7CiAKICAgICBtX2N1ZUJhY2tkcm9wQm94LT5zZXRQ
c2V1ZG8oY3VlQmFja2Ryb3BTaGFkb3dQc2V1ZG9JZCgpKTsKLSAgICBtX2N1ZUJhY2tkcm9wQm94
LT5hcHBlbmRDaGlsZChtX2N1ZUhpZ2hsaWdodEJveCwgQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0g
ICAgZGlzcGxheVRyZWUtPmFwcGVuZENoaWxkKG1fY3VlQmFja2Ryb3BCb3gsIEFTU0VSVF9OT19F
WENFUFRJT04pOworICAgIG1fY3VlQmFja2Ryb3BCb3gtPmFwcGVuZENoaWxkKCptX2N1ZUhpZ2hs
aWdodEJveCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgZGlzcGxheVRyZWUtPmFwcGVuZENo
aWxkKCptX2N1ZUJhY2tkcm9wQm94LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAogICAgIC8vIEZJ
WE1FKEJVRyA3OTkxNik6IFJ1bnMgb2YgY2hpbGRyZW4gb2YgV2ViVlRUIFJ1YnkgT2JqZWN0cyB0
aGF0IGFyZSBub3QKICAgICAvLyBXZWJWVFQgUnVieSBUZXh0IE9iamVjdHMgbXVzdCBiZSB3cmFw
cGVkIGluIGFub255bW91cyBib3hlcyB3aG9zZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9WVFRSZWdpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRS
ZWdpb24uY3BwCmluZGV4IGNjYjMyZTAzOWQ1YzUzYWZlZWMwNTAyYjY1ZTAwYWMxZTZmZmRlZjMu
Ljg1Nzk4NjhlOTgxZmZiZjI5MTY2MmI2NTRkNTNlYjlhZGZiZGJiNTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5jcHAKQEAgLTM1NCw3ICszNTQsNyBAQCB2b2lkIFZUVFJl
Z2lvbjo6YXBwZW5kVGV4dFRyYWNrQ3VlQm94KFBhc3NSZWZQdHI8VlRUQ3VlQm94PiBkaXNwbGF5
Qm94KQogICAgIGlmIChtX2N1ZUNvbnRhaW5lci0+Y29udGFpbnMoZGlzcGxheUJveC5nZXQoKSkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIG1fY3VlQ29udGFpbmVyLT5hcHBlbmRDaGlsZChkaXNw
bGF5Qm94LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBtX2N1ZUNvbnRhaW5lci0+YXBwZW5k
Q2hpbGQoKmRpc3BsYXlCb3gsIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgIGRpc3BsYXlMYXN0
VGV4dFRyYWNrQ3VlQm94KCk7CiB9CiAKQEAgLTQwNCwxNCArNDA0LDE0IEBAIHZvaWQgVlRUUmVn
aW9uOjp3aWxsUmVtb3ZlVGV4dFRyYWNrQ3VlQm94KFZUVEN1ZUJveCogYm94KQogICAgIG1fY3Vl
Q29udGFpbmVyLT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5VG9wLCBtX2N1cnJl
bnRUb3AsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUFgpOwogfQogCi1QYXNzUmVmUHRyPEhUTUxE
aXZFbGVtZW50PiBWVFRSZWdpb246OmdldERpc3BsYXlUcmVlKCkKK0hUTUxEaXZFbGVtZW50JiBW
VFRSZWdpb246OmdldERpc3BsYXlUcmVlKCkKIHsKICAgICBpZiAoIW1fcmVnaW9uRGlzcGxheVRy
ZWUpIHsKICAgICAgICAgbV9yZWdpb25EaXNwbGF5VHJlZSA9IEhUTUxEaXZFbGVtZW50OjpjcmVh
dGUoKm93bmVyRG9jdW1lbnQoKSk7CiAgICAgICAgIHByZXBhcmVSZWdpb25EaXNwbGF5VHJlZSgp
OwogICAgIH0KIAotICAgIHJldHVybiBtX3JlZ2lvbkRpc3BsYXlUcmVlOworICAgIHJldHVybiAq
bV9yZWdpb25EaXNwbGF5VHJlZTsKIH0KIAogdm9pZCBWVFRSZWdpb246OnByZXBhcmVSZWdpb25E
aXNwbGF5VHJlZSgpCkBAIC00NTMsNyArNDUzLDcgQEAgdm9pZCBWVFRSZWdpb246OnByZXBhcmVS
ZWdpb25EaXNwbGF5VHJlZSgpCiAgICAgbV9jdWVDb250YWluZXItPnNldElubGluZVN0eWxlUHJv
cGVydHkoQ1NTUHJvcGVydHlUb3AsIDAuMGYsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUFgpOwog
CiAgICAgbV9jdWVDb250YWluZXItPnNldFBzZXVkbyh0ZXh0VHJhY2tDdWVDb250YWluZXJTaGFk
b3dQc2V1ZG9JZCgpKTsKLSAgICBtX3JlZ2lvbkRpc3BsYXlUcmVlLT5hcHBlbmRDaGlsZChtX2N1
ZUNvbnRhaW5lcik7CisgICAgbV9yZWdpb25EaXNwbGF5VHJlZS0+YXBwZW5kQ2hpbGQoKm1fY3Vl
Q29udGFpbmVyKTsKIAogICAgIC8vIDcuNSBFdmVyeSBXZWJWVFQgcmVnaW9uIG9iamVjdCBpcyBp
bml0aWFsaXNlZCB3aXRoIHRoZSBmb2xsb3dpbmcgQ1NTCiAgICAgbV9yZWdpb25EaXNwbGF5VHJl
ZS0+c2V0UHNldWRvKHRleHRUcmFja1JlZ2lvblNoYWRvd1BzZXVkb0lkKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVlRUUmVnaW9uLmgKaW5kZXggNzc3MWU4ZWIwMDg1N2JmNDMyYzFjZDU0YjQ4
NjE3NzM2ZDA0ZTY1ZC4uODkyNWFmMWJjMzcyMDVlYjA3YTVhN2I4ZThjZjY5NzIxODBjYTA1NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5oCkBAIC04OSw3ICs4OSw3IEBAIHB1
YmxpYzoKIAogICAgIGJvb2wgaXNTY3JvbGxpbmdSZWdpb24oKSB7IHJldHVybiBtX3Njcm9sbDsg
fQogCi0gICAgUGFzc1JlZlB0cjxIVE1MRGl2RWxlbWVudD4gZ2V0RGlzcGxheVRyZWUoKTsKKyAg
ICBIVE1MRGl2RWxlbWVudCYgZ2V0RGlzcGxheVRyZWUoKTsKICAgICAKICAgICB2b2lkIGFwcGVu
ZFRleHRUcmFja0N1ZUJveChQYXNzUmVmUHRyPFZUVEN1ZUJveD4pOwogICAgIHZvaWQgZGlzcGxh
eUxhc3RUZXh0VHJhY2tDdWVCb3goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svV2ViVlRURWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZU
VEVsZW1lbnQuY3BwCmluZGV4IDRhMmYzMWIzZTU2MzRmMzEwMmZmNTRlYmYwZmEwZDk2NmE5NTdh
MGUuLjE0OTZiYjAzYTZhNTAwZjViNzk2MTQwZDU5MGMzZDk1ZmVmYjIyMGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmNwcApAQCAtODAsMTEgKzgwLDExIEBA
IFJlZjxXZWJWVFRFbGVtZW50PiBXZWJWVFRFbGVtZW50OjpjcmVhdGUoV2ViVlRUTm9kZVR5cGUg
bm9kZVR5cGUsIERvY3VtZW50JiBkb2N1CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViVlRU
RWxlbWVudChub2RlVHlwZSwgZG9jdW1lbnQpKTsKIH0KIAotUmVmUHRyPEVsZW1lbnQ+IFdlYlZU
VEVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1l
bnQmIHRhcmdldERvY3VtZW50KQorUmVmPEVsZW1lbnQ+IFdlYlZUVEVsZW1lbnQ6OmNsb25lRWxl
bWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50
KQogewotICAgIFJlZlB0cjxXZWJWVFRFbGVtZW50PiBjbG9uZSA9IGNyZWF0ZShzdGF0aWNfY2Fz
dDxXZWJWVFROb2RlVHlwZT4obV93ZWJWVFROb2RlVHlwZSksIHRhcmdldERvY3VtZW50KTsKKyAg
ICBSZWY8V2ViVlRURWxlbWVudD4gY2xvbmUgPSBjcmVhdGUoc3RhdGljX2Nhc3Q8V2ViVlRUTm9k
ZVR5cGU+KG1fd2ViVlRUTm9kZVR5cGUpLCB0YXJnZXREb2N1bWVudCk7CiAgICAgY2xvbmUtPnNl
dExhbmd1YWdlKG1fbGFuZ3VhZ2UpOwotICAgIHJldHVybiBjbG9uZTsKKyAgICByZXR1cm4gV1RG
Ojptb3ZlKGNsb25lKTsKIH0KIAogUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gV2ViVlRURWxlbWVu
dDo6Y3JlYXRlRXF1aXZhbGVudEhUTUxFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmgKaW5kZXggMWJlNzYzNmMzNjYzZDg1
OGJkNzYzNmFlY2NjMTliNzA2ZGZjNmI4Yy4uODlkM2QyYzU0ZGJjNmI5ZTUyMDYyZmY0ZjJhY2Y3
NDk4YjlmYzdiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmgK
QEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2ViVlRURWxlbWVudD4g
Y3JlYXRlKGNvbnN0IFdlYlZUVE5vZGVUeXBlLCBEb2N1bWVudCYpOwogICAgIFBhc3NSZWZQdHI8
SFRNTEVsZW1lbnQ+IGNyZWF0ZUVxdWl2YWxlbnRIVE1MRWxlbWVudChEb2N1bWVudCYpOwogCi0g
ICAgdmlydHVhbCBSZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNB
bmRDaGlsZHJlbihEb2N1bWVudCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPEVsZW1lbnQ+
IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmKSBvdmVy
cmlkZTsKIAogICAgIHZvaWQgc2V0V2ViVlRUTm9kZVR5cGUoV2ViVlRUTm9kZVR5cGUgdHlwZSkg
eyBtX3dlYlZUVE5vZGVUeXBlID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHR5cGUpOyB9CiAgICAg
V2ViVlRUTm9kZVR5cGUgd2ViVlRUTm9kZVR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2Fz
dDxXZWJWVFROb2RlVHlwZT4obV93ZWJWVFROb2RlVHlwZSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmluZGV4IGI2YTMxMTNlZjdkNjc5OTQw
NWVhYTMxNDMwNjNmOGJiYWRlYTAyYjUuLjg1N2FkMTkxNzY3NTY3YTViYTE3NWI2OWNjYWYyMTRm
NDYwNjJiYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
U1NBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0Fn
ZW50LmNwcApAQCAtNzk2LDcgKzc5Niw3IEBAIEluc3BlY3RvclN0eWxlU2hlZXQqIEluc3BlY3Rv
ckNTU0FnZW50OjpjcmVhdGVJbnNwZWN0b3JTdHlsZVNoZWV0Rm9yRG9jdW1lbnQoRG9jCiAgICAg
Ly8gU2V0IHRoaXMgZmxhZywgc28gd2hlbiB3ZSBjcmVhdGUgaXQsIHdlIHB1dCBpdCBpbnRvIHRo
ZSB2aWEgaW5zcGVjdG9yIG1hcC4KICAgICBtX2NyZWF0aW5nVmlhSW5zcGVjdG9yU3R5bGVTaGVl
dCA9IHRydWU7CiAgICAgSW5saW5lU3R5bGVPdmVycmlkZVNjb3BlIG92ZXJyaWRlU2NvcGUoZG9j
dW1lbnQpOwotICAgIHRhcmdldE5vZGUtPmFwcGVuZENoaWxkKHN0eWxlRWxlbWVudCwgZWMpOwor
ICAgIHRhcmdldE5vZGUtPmFwcGVuZENoaWxkKHN0eWxlRWxlbWVudC5yZWxlYXNlTm9uTnVsbCgp
LCBlYyk7CiAgICAgbV9jcmVhdGluZ1ZpYUluc3BlY3RvclN0eWxlU2hlZXQgPSBmYWxzZTsKICAg
ICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdD
b250cm9sbGVyLmNwcAppbmRleCBjZWI0YWExYTUxNmY0N2Q1Njk4MDFiNTY2MGQ3OWYzZTY5MzI3
YzJmLi44ODc3MjlkMzhmMjE2MDFkNjc4NjhlOWNmZjUwN2ExYzFhNDMzNWE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcApAQCAtMTM4LDcgKzEzOCw3IEBAIHN0YXRpYyBQ
YXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGRvY3VtZW50RnJhZ21lbnRGcm9tRHJhZ0RhdGEo
RHJhZ0RhdGEmIGRyYWdECiAgICAgICAgICAgICBTdHJpbmcgdGl0bGU7CiAgICAgICAgICAgICBT
dHJpbmcgdXJsID0gZHJhZ0RhdGEuYXNVUkwoRHJhZ0RhdGE6OkRvTm90Q29udmVydEZpbGVuYW1l
cywgJnRpdGxlKTsKICAgICAgICAgICAgIGlmICghdXJsLmlzRW1wdHkoKSkgewotICAgICAgICAg
ICAgICAgIFJlZlB0cjxIVE1MQW5jaG9yRWxlbWVudD4gYW5jaG9yID0gSFRNTEFuY2hvckVsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgICAgICAgICAgICAgUmVmPEhUTUxBbmNob3JFbGVt
ZW50PiBhbmNob3IgPSBIVE1MQW5jaG9yRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICAg
ICAgICAgICAgICBhbmNob3ItPnNldEhyZWYodXJsKTsKICAgICAgICAgICAgICAgICBpZiAodGl0
bGUuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFRyeSB0aGUgcGxhaW4gdGV4
dCBmaXJzdCBiZWNhdXNlIHRoZSB1cmwgbWlnaHQgYmUgbm9ybWFsaXplZCBvciBlc2NhcGVkLgpA
QCAtMTQ3LDExICsxNDcsMTAgQEAgc3RhdGljIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4g
ZG9jdW1lbnRGcmFnbWVudEZyb21EcmFnRGF0YShEcmFnRGF0YSYgZHJhZ0QKICAgICAgICAgICAg
ICAgICAgICAgaWYgKHRpdGxlLmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICAgICAgICAgIHRp
dGxlID0gdXJsOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBSZWZQdHI8Tm9k
ZT4gYW5jaG9yVGV4dCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRpdGxlKTsKLSAgICAgICAg
ICAgICAgICBhbmNob3ItPmFwcGVuZENoaWxkKGFuY2hvclRleHQsIElHTk9SRV9FWENFUFRJT04p
OwotICAgICAgICAgICAgICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGRv
Y3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAgICAgICAgICAgICAgICBmcmFnbWVu
dC0+YXBwZW5kQ2hpbGQoYW5jaG9yLCBJR05PUkVfRVhDRVBUSU9OKTsKLSAgICAgICAgICAgICAg
ICByZXR1cm4gZnJhZ21lbnQuZ2V0KCk7CisgICAgICAgICAgICAgICAgYW5jaG9yLT5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0aXRsZSksIElHTk9SRV9FWENFUFRJT04pOwor
ICAgICAgICAgICAgICAgIFJlZjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGRvY3VtZW50
LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKKyAgICAgICAgICAgICAgICBmcmFnbWVudC0+YXBw
ZW5kQ2hpbGQoV1RGOjptb3ZlKGFuY2hvciksIElHTk9SRV9FWENFUFRJT04pOworICAgICAgICAg
ICAgICAgIHJldHVybiBmcmFnbWVudC5wdHIoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQog
ICAgIH0KQEAgLTE2MCw3ICsxNTksNyBAQCBzdGF0aWMgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdt
ZW50PiBkb2N1bWVudEZyYWdtZW50RnJvbURyYWdEYXRhKERyYWdEYXRhJiBkcmFnRAogICAgICAg
ICByZXR1cm4gY3JlYXRlRnJhZ21lbnRGcm9tVGV4dChjb250ZXh0LCBkcmFnRGF0YS5hc1BsYWlu
VGV4dCgpKS5nZXQoKTsKICAgICB9CiAKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0
cjsKIH0KIAogYm9vbCBEcmFnQ29udHJvbGxlcjo6ZHJhZ0lzTW92ZShGcmFtZVNlbGVjdGlvbiYg
c2VsZWN0aW9uLCBEcmFnRGF0YSYgZHJhZ0RhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0
RWxlbWVudC5jcHAKaW5kZXggNmYzY2E4M2U4NTMyMjJkZmQ1ZTgwNTI3MmYwZjVjOTQ2NDM0ZDIy
NC4uOGFkZmNmYTQxMGFiZTQ3ZTMzMjRhZTViOGQ5MjQzZjU2NjY0NWQ5NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcApAQCAtMTU2LDkgKzE1Niw5IEBAIGJvb2wgU1ZH
U2NyaXB0RWxlbWVudDo6aGFzU291cmNlQXR0cmlidXRlKCkgY29uc3QKICAgICByZXR1cm4gaGFz
QXR0cmlidXRlKFhMaW5rTmFtZXM6OmhyZWZBdHRyKTsKIH0KIAotUmVmUHRyPEVsZW1lbnQ+IFNW
R1NjcmlwdEVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4o
RG9jdW1lbnQmIHRhcmdldERvY3VtZW50KQorUmVmPEVsZW1lbnQ+IFNWR1NjcmlwdEVsZW1lbnQ6
OmNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmIHRhcmdl
dERvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHU2NyaXB0RWxlbWVudCh0
YWdRTmFtZSgpLCB0YXJnZXREb2N1bWVudCwgZmFsc2UsIGFscmVhZHlTdGFydGVkKCkpKTsKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdTY3JpcHRFbGVtZW50KHRhZ1FOYW1lKCksIHRhcmdl
dERvY3VtZW50LCBmYWxzZSwgYWxyZWFkeVN0YXJ0ZWQoKSkpOwogfQogCiAjaWZuZGVmIE5ERUJV
RwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKaW5kZXggNGMxYWEwOGU2ZDJmYzhm
ZjhkYTk5ZjQyN2NlYzdkNGYyYzY0ZTMwNS4uNTM1ZTQyZTZmMDY0NmQ4MDEwNDE5MDkzYzYyMjky
NGIzODNkNzEwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCkBAIC02NSw3
ICs2NSw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hMb2FkRXZlbnQo
KSBvdmVycmlkZSB7IFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmRpc3BhdGNoTG9hZEV2
ZW50KHRoaXMpOyB9CiAKLSAgICB2aXJ0dWFsIFJlZlB0cjxFbGVtZW50PiBjbG9uZUVsZW1lbnRX
aXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50Jikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBSZWY8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJl
bihEb2N1bWVudCYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVk
KGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIC8v
IFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdVc2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50
LmNwcAppbmRleCA3MDRmZTRhMjI5ODJlOWI0MDQ0MTU5MTIxN2QzNzVkNTU3NGQ1MzViLi42NGUx
MGFhNjAwNGY0NzAwNjFiZjM1YTYyOWEwNGQ4ODg3MmIyZDY1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1VzZUVsZW1lbnQuY3BwCkBAIC0zMzIsNyArMzMyLDcgQEAgc3RhdGljIHZvaWQgcmVtb3ZlRGlz
YWxsb3dlZEVsZW1lbnRzRnJvbVN1YnRyZWUoU1ZHRWxlbWVudCYgc3VidHJlZSkKICAgICBmb3Ig
KGF1dG8qIGVsZW1lbnQgOiBkaXNhbGxvd2VkRWxlbWVudHMpIHsKICAgICAgICAgZm9yIChhdXRv
JiBkZXNjZW5kYW50IDogZGVzY2VuZGFudHNPZlR5cGU8U1ZHRWxlbWVudD4oKmVsZW1lbnQpKQog
ICAgICAgICAgICAgZGVzY2VuZGFudC5zZXRDb3JyZXNwb25kaW5nRWxlbWVudChudWxscHRyKTsK
LSAgICAgICAgZWxlbWVudC0+cGFyZW50Tm9kZSgpLT5yZW1vdmVDaGlsZChlbGVtZW50KTsKKyAg
ICAgICAgZWxlbWVudC0+cGFyZW50Tm9kZSgpLT5yZW1vdmVDaGlsZCgqZWxlbWVudCk7CiAgICAg
fQogfQogCkBAIC00MDUsNyArNDA1LDcgQEAgU1ZHRWxlbWVudCogU1ZHVXNlRWxlbWVudDo6Zmlu
ZFRhcmdldChTdHJpbmcqIHRhcmdldElEKSBjb25zdAogCiB2b2lkIFNWR1VzZUVsZW1lbnQ6OmNs
b25lVGFyZ2V0KENvbnRhaW5lck5vZGUmIGNvbnRhaW5lciwgU1ZHRWxlbWVudCYgdGFyZ2V0KSBj
b25zdAogewotICAgIFJlZjxTVkdFbGVtZW50PiB0YXJnZXRDbG9uZSA9IHN0YXRpY19wb2ludGVy
X2Nhc3Q8U1ZHRWxlbWVudD4odGFyZ2V0LmNsb25lRWxlbWVudFdpdGhDaGlsZHJlbihkb2N1bWVu
dCgpKSkucmVsZWFzZU5vbk51bGwoKTsKKyAgICBSZWY8U1ZHRWxlbWVudD4gdGFyZ2V0Q2xvbmUg
PSBzdGF0aWNfY2FzdDxTVkdFbGVtZW50Jj4odGFyZ2V0LmNsb25lRWxlbWVudFdpdGhDaGlsZHJl
bihkb2N1bWVudCgpKS5nZXQoKSk7CiAgICAgYXNzb2NpYXRlQ2xvbmVzV2l0aE9yaWdpbmFscyh0
YXJnZXRDbG9uZS5nZXQoKSwgdGFyZ2V0KTsKICAgICByZW1vdmVEaXNhbGxvd2VkRWxlbWVudHNG
cm9tU3VidHJlZSh0YXJnZXRDbG9uZS5nZXQoKSk7CiAgICAgdHJhbnNmZXJTaXplQXR0cmlidXRl
c1RvVGFyZ2V0Q2xvbmUodGFyZ2V0Q2xvbmUuZ2V0KCkpOwpAQCAtNDE5LDcgKzQxOSw3IEBAIHN0
YXRpYyB2b2lkIGNsb25lRGF0YUFuZENoaWxkcmVuKFNWR0VsZW1lbnQmIHJlcGxhY2VtZW50Q2xv
bmUsIFNWR0VsZW1lbnQmIG9yaWdpCiAgICAgQVNTRVJUKCFyZXBsYWNlbWVudENsb25lLnBhcmVu
dE5vZGUoKSk7CiAKICAgICByZXBsYWNlbWVudENsb25lLmNsb25lRGF0YUZyb21FbGVtZW50KG9y
aWdpbmFsQ2xvbmUpOwotICAgIG9yaWdpbmFsQ2xvbmUuY2xvbmVDaGlsZE5vZGVzKCZyZXBsYWNl
bWVudENsb25lKTsKKyAgICBvcmlnaW5hbENsb25lLmNsb25lQ2hpbGROb2RlcyhyZXBsYWNlbWVu
dENsb25lKTsKICAgICBhc3NvY2lhdGVSZXBsYWNlbWVudENsb25lc1dpdGhPcmlnaW5hbHMocmVw
bGFjZW1lbnRDbG9uZSwgb3JpZ2luYWxDbG9uZSk7CiAgICAgcmVtb3ZlRGlzYWxsb3dlZEVsZW1l
bnRzRnJvbVN1YnRyZWUocmVwbGFjZW1lbnRDbG9uZSk7CiB9CkBAIC00NDgsNyArNDQ4LDcgQEAg
dm9pZCBTVkdVc2VFbGVtZW50OjpleHBhbmRVc2VFbGVtZW50c0luU2hhZG93VHJlZSgpIGNvbnN0
CiAgICAgICAgIGlmICh0YXJnZXQpCiAgICAgICAgICAgICBvcmlnaW5hbENsb25lLmNsb25lVGFy
Z2V0KHJlcGxhY2VtZW50Q2xvbmUuZ2V0KCksICp0YXJnZXQpOwogCi0gICAgICAgIG9yaWdpbmFs
Q2xvbmUucGFyZW50Tm9kZSgpLT5yZXBsYWNlQ2hpbGQocmVwbGFjZW1lbnRDbG9uZS5wdHIoKSwg
Jm9yaWdpbmFsQ2xvbmUpOworICAgICAgICBvcmlnaW5hbENsb25lLnBhcmVudE5vZGUoKS0+cmVw
bGFjZUNoaWxkKHJlcGxhY2VtZW50Q2xvbmUuY29weVJlZigpLCBvcmlnaW5hbENsb25lKTsKIAog
ICAgICAgICAvLyBSZXN1bWUgaXRlcmF0aW5nLCBzdGFydGluZyBqdXN0IGluc2lkZSB0aGUgcmVw
bGFjZW1lbnQgY2xvbmUuCiAgICAgICAgIGl0ID0gZGVzY2VuZGFudHMuZnJvbShyZXBsYWNlbWVu
dENsb25lLmdldCgpKTsKQEAgLTQ3Miw3ICs0NzIsNyBAQCB2b2lkIFNWR1VzZUVsZW1lbnQ6OmV4
cGFuZFN5bWJvbEVsZW1lbnRzSW5TaGFkb3dUcmVlKCkgY29uc3QKICAgICAgICAgYXV0byByZXBs
YWNlbWVudENsb25lID0gU1ZHU1ZHRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwogICAgICAg
ICBjbG9uZURhdGFBbmRDaGlsZHJlbihyZXBsYWNlbWVudENsb25lLmdldCgpLCBvcmlnaW5hbENs
b25lKTsKIAotICAgICAgICBvcmlnaW5hbENsb25lLnBhcmVudE5vZGUoKS0+cmVwbGFjZUNoaWxk
KHJlcGxhY2VtZW50Q2xvbmUucHRyKCksICZvcmlnaW5hbENsb25lKTsKKyAgICAgICAgb3JpZ2lu
YWxDbG9uZS5wYXJlbnROb2RlKCktPnJlcGxhY2VDaGlsZChyZXBsYWNlbWVudENsb25lLmNvcHlS
ZWYoKSwgb3JpZ2luYWxDbG9uZSk7CiAKICAgICAgICAgLy8gUmVzdW1lIGl0ZXJhdGluZywgc3Rh
cnRpbmcganVzdCBpbnNpZGUgdGhlIHJlcGxhY2VtZW50IGNsb25lLgogICAgICAgICBpdCA9IGRl
c2NlbmRhbnRzLmZyb20ocmVwbGFjZW1lbnRDbG9uZS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWE1MVHJlZVZpZXdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1M
VHJlZVZpZXdlci5jcHAKaW5kZXggNDA5NmU0MzVkNjNmNTcwODQ0ODAyYzIxNzcwOGFkZDllYjYw
NTE3NS4uYTlmNzdlYTE2Mzg0OGY4NTBiNjM1YzkyYjkwY2E5NDI3NzJmODhhYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTFRyZWVWaWV3ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3htbC9YTUxUcmVlVmlld2VyLmNwcApAQCAtNjEsOCArNjEsOCBAQCB2b2lkIFhNTFRyZWVW
aWV3ZXI6OnRyYW5zZm9ybURvY3VtZW50VG9UcmVlVmlldygpCiAgICAgbV9kb2N1bWVudC5mcmFt
ZSgpLT5zY3JpcHQoKS5ldmFsdWF0ZShTY3JpcHRTb3VyY2VDb2RlKEF0b21pY1N0cmluZygicHJl
cGFyZVdlYktpdFhNTFZpZXdlcignVGhpcyBYTUwgZmlsZSBkb2VzIG5vdCBhcHBlYXIgdG8gaGF2
ZSBhbnkgc3R5bGUgaW5mb3JtYXRpb24gYXNzb2NpYXRlZCB3aXRoIGl0LiBUaGUgZG9jdW1lbnQg
dHJlZSBpcyBzaG93biBiZWxvdy4nKTsiKSkpOwogCiAgICAgU3RyaW5nIGNzc1N0cmluZyA9IFN0
cmluZ0ltcGw6OmNyZWF0ZVdpdGhvdXRDb3B5aW5nKFhNTFZpZXdlcl9jc3MsIHNpemVvZihYTUxW
aWV3ZXJfY3NzKSk7Ci0gICAgUmVmUHRyPFRleHQ+IHRleHQgPSBtX2RvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKGNzc1N0cmluZyk7Ci0gICAgbV9kb2N1bWVudC5nZXRFbGVtZW50QnlJZChTdHJpbmco
QVNDSUlMaXRlcmFsKCJ4bWwtdmlld2VyLXN0eWxlIikpKS0+YXBwZW5kQ2hpbGQodGV4dCwgSUdO
T1JFX0VYQ0VQVElPTik7CisgICAgUmVmPFRleHQ+IHRleHQgPSBtX2RvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKGNzc1N0cmluZyk7CisgICAgbV9kb2N1bWVudC5nZXRFbGVtZW50QnlJZChTdHJpbmco
QVNDSUlMaXRlcmFsKCJ4bWwtdmlld2VyLXN0eWxlIikpKS0+YXBwZW5kQ2hpbGQoV1RGOjptb3Zl
KHRleHQpLCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICBtX2RvY3VtZW50LnN0eWxlUmVzb2x2ZXJD
aGFuZ2VkKFJlY2FsY1N0eWxlSW1tZWRpYXRlbHkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJGcmFtZS5tbQppbmRleCAwYjMyMTIwN2MzMjNlNGRhMDA5MzBlOWM4MDRlMGQyMzhhOTRj
ZGQ5Li42NjI1MzlmM2Y5NzJmMDE0ZjEzYWM3ODkwNjllMzdkMGYzNjM1M2NmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KQEAgLTg5MCw5ICs4OTAsOSBAQCBzdGF0aWMgaW5s
aW5lIFdlYkRhdGFTb3VyY2UgKmRhdGFTb3VyY2UoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKICAg
ICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBkb2N1bWVudC0+Y3JlYXRlRG9j
dW1lbnRGcmFnbWVudCgpOwogCiAgICAgZm9yIChhdXRvKiBub2RlIDogbm9kZXNWZWN0b3IpIHsK
LSAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSBjcmVhdGVEZWZhdWx0UGFyYWdyYXBo
RWxlbWVudCgqZG9jdW1lbnQpOwotICAgICAgICBlbGVtZW50LT5hcHBlbmRDaGlsZChub2RlKTsK
LSAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKGVsZW1lbnQucmVsZWFzZSgpKTsKKyAgICAg
ICAgUmVmPEVsZW1lbnQ+IGVsZW1lbnQgPSBjcmVhdGVEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCgq
ZG9jdW1lbnQpOworICAgICAgICBlbGVtZW50LT5hcHBlbmRDaGlsZCgqbm9kZSk7CisgICAgICAg
IGZyYWdtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoZWxlbWVudCkpOwogICAgIH0KIAogICAg
IHJldHVybiBraXQoZnJhZ21lbnQucmVsZWFzZSgpLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KaW5kZXggNTNkYmZhNTkw
NmUzNzJiMTM0ZjNlODljY2M0ZGIyYmFhMjAwYzBkYS4uMTczNDBkZTM2MzQ5NzI3OGEwZDg4ZGU0
NWQ1YzZiOTM5NDlmZGNiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BERi9QREZQbHVnaW4ubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BERi9QREZQbHVnaW4ubW0KQEAgLTUyNSwxMSArNTI1LDExIEBAIFBERlBsdWdpbjo6
UERGUGx1Z2luKFdlYkZyYW1lKiBmcmFtZSkKICAgICAgICAgbV9hbm5vdGF0aW9uQ29udGFpbmVy
ID0gZG9jdW1lbnQtPmNyZWF0ZUVsZW1lbnQoZGl2VGFnLCBmYWxzZSk7CiAgICAgICAgIG1fYW5u
b3RhdGlvbkNvbnRhaW5lci0+c2V0QXR0cmlidXRlKGlkQXR0ciwgImFubm90YXRpb25Db250YWlu
ZXIiKTsKIAotICAgICAgICBSZWZQdHI8RWxlbWVudD4gbV9hbm5vdGF0aW9uU3R5bGUgPSBkb2N1
bWVudC0+Y3JlYXRlRWxlbWVudChzdHlsZVRhZywgZmFsc2UpOwotICAgICAgICBtX2Fubm90YXRp
b25TdHlsZS0+c2V0VGV4dENvbnRlbnQoYW5ub3RhdGlvblN0eWxlLCBBU1NFUlRfTk9fRVhDRVBU
SU9OKTsKKyAgICAgICAgUmVmPEVsZW1lbnQ+IGFubm90YXRpb25TdHlsZUVsZW1lbnQgPSBkb2N1
bWVudC0+Y3JlYXRlRWxlbWVudChzdHlsZVRhZywgZmFsc2UpOworICAgICAgICBhbm5vdGF0aW9u
U3R5bGVFbGVtZW50LT5zZXRUZXh0Q29udGVudChhbm5vdGF0aW9uU3R5bGUsIEFTU0VSVF9OT19F
WENFUFRJT04pOwogCi0gICAgICAgIG1fYW5ub3RhdGlvbkNvbnRhaW5lci0+YXBwZW5kQ2hpbGQo
bV9hbm5vdGF0aW9uU3R5bGUuZ2V0KCkpOwotICAgICAgICBkb2N1bWVudC0+Ym9keU9yRnJhbWVz
ZXQoKS0+YXBwZW5kQ2hpbGQobV9hbm5vdGF0aW9uQ29udGFpbmVyLmdldCgpKTsKKyAgICAgICAg
bV9hbm5vdGF0aW9uQ29udGFpbmVyLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoYW5ub3RhdGlvblN0
eWxlRWxlbWVudCkpOworICAgICAgICBkb2N1bWVudC0+Ym9keU9yRnJhbWVzZXQoKS0+YXBwZW5k
Q2hpbGQoKm1fYW5ub3RhdGlvbkNvbnRhaW5lcik7CiAgICAgfQogCiAgICAgbV9hY2Nlc3NpYmls
aXR5T2JqZWN0ID0gYWRvcHROUyhbW1dLUERGUGx1Z2luQWNjZXNzaWJpbGl0eU9iamVjdCBhbGxv
Y10gaW5pdFdpdGhQREZQbHVnaW46dGhpc10pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5Bbm5vdGF0aW9uLm1tIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5Bbm5vdGF0aW9uLm1tCmluZGV4
IDM0YjUyMmQ4OWJhMzI5NmVmMWUwZWNlNWJiZTIyMTg2MThlNjM2ZjEuLmEwMjlkMjVmOTFlODJl
NmRiMWIyZjBmYTVhMmJlMzhkNmMxYzcyYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQW5ub3RhdGlvbi5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkFubm90YXRpb24ubW0KQEAg
LTc0LDcgKzc0LDcgQEAgdm9pZCBQREZQbHVnaW5Bbm5vdGF0aW9uOjphdHRhY2goRWxlbWVudCog
cGFyZW50KQogCiAgICAgdXBkYXRlR2VvbWV0cnkoKTsKIAotICAgIG1fcGFyZW50LT5hcHBlbmRD
aGlsZChtX2VsZW1lbnQpOworICAgIG1fcGFyZW50LT5hcHBlbmRDaGlsZCgqbV9lbGVtZW50KTsK
IAogICAgIC8vIEZJWE1FOiBUaGUgdGV4dCBjdXJzb3IgZG9lc24ndCBibGluayBhZnRlciB0aGlz
LiBXaHk/CiAgICAgbV9lbGVtZW50LT5mb2N1cygpOwpAQCAtOTIsNyArOTIsNyBAQCBQREZQbHVn
aW5Bbm5vdGF0aW9uOjp+UERGUGx1Z2luQW5ub3RhdGlvbigpCiAKICAgICBtX2V2ZW50TGlzdGVu
ZXItPnNldEFubm90YXRpb24oMCk7CiAKLSAgICBtX3BhcmVudC0+cmVtb3ZlQ2hpbGQoZWxlbWVu
dCgpKTsKKyAgICBtX3BhcmVudC0+cmVtb3ZlQ2hpbGQoKmVsZW1lbnQoKSk7CiB9CiAKIHZvaWQg
UERGUGx1Z2luQW5ub3RhdGlvbjo6dXBkYXRlR2VvbWV0cnkoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9u
Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5DaG9p
Y2VBbm5vdGF0aW9uLm1tCmluZGV4IGUxYThlNTgyMmIyNWU4NzkzNTFmMzQ5MGJlOTU0ZDFkYjgx
OWRkNGIuLjYyMWRjMDExZGI4NzRmZGYzZGYyMzA1YWU0MDczNjc5ZjM2ZjBmMzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hvaWNl
QW5ub3RhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERG
L1BERlBsdWdpbkNob2ljZUFubm90YXRpb24ubW0KQEAgLTgzLDE0ICs4MywxNCBAQCBQYXNzUmVm
UHRyPEVsZW1lbnQ+IFBERlBsdWdpbkNob2ljZUFubm90YXRpb246OmNyZWF0ZUFubm90YXRpb25F
bGVtZW50KCkKICAgICBOU1N0cmluZyAqc2VsZWN0ZWRDaG9pY2UgPSBjaG9pY2VBbm5vdGF0aW9u
LnN0cmluZ1ZhbHVlOwogCiAgICAgZm9yIChOU1N0cmluZyAqY2hvaWNlIGluIGNob2ljZXMpIHsK
LSAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IGNob2ljZU9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQob3B0aW9uVGFnLCBmYWxzZSk7CisgICAgICAgIFJlZjxFbGVtZW50PiBjaG9pY2VPcHRp
b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KG9wdGlvblRhZywgZmFsc2UpOwogICAgICAgICBj
aG9pY2VPcHRpb24tPnNldEF0dHJpYnV0ZSh2YWx1ZUF0dHIsIGNob2ljZSk7CiAgICAgICAgIGNo
b2ljZU9wdGlvbi0+c2V0VGV4dENvbnRlbnQoY2hvaWNlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsK
IAogICAgICAgICBpZiAoY2hvaWNlID09IHNlbGVjdGVkQ2hvaWNlKQogICAgICAgICAgICAgY2hv
aWNlT3B0aW9uLT5zZXRBdHRyaWJ1dGUoc2VsZWN0ZWRBdHRyLCAic2VsZWN0ZWQiKTsKIAotICAg
ICAgICBzdHlsZWRFbGVtZW50LT5hcHBlbmRDaGlsZChjaG9pY2VPcHRpb24pOworICAgICAgICBz
dHlsZWRFbGVtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoY2hvaWNlT3B0aW9uKSk7CiAgICAg
fQogCiAgICAgcmV0dXJuIGVsZW1lbnQ7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMGFjNzMwZjQwMWZiMjY2MzYwMjAxYWQz
ZWQxMzlmMzJjY2FlNWZkMC4uYjZhNmRiNjc5OTkyZmI3NTUxYWUyZWEwZjViYjM2ZGJkNDFlOTFk
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSw1ICsxLDI5IEBACiAyMDE1LTA5LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKKyAgICAgICAgTm9kZS5hcHBlbmRDaGlsZChudWxsKSAvIHJlcGxhY2VD
aGlsZChudWxsLCBudWxsKSAvIHJlbW92ZUNoaWxkKG51bGwpIC8gaW5zZXJ0QmVmb3JlKG51bGws
IHJlZikgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg5NzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIy
NTYwODgzPgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjI1NTkyMjU+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIC8gcmViYXNlbGluZSB0
ZXN0cyBub3cgdGhhdCB3ZSB0aHJvdyBhIGRpZmZlcmVudCBleGNlcHRpb24gdHlwZS4KKworICAg
ICAgICAqIGZhc3QvZG9tL0RvY3VtZW50L3JlcGxhY2VDaGlsZC1udWxsLW9sZENoaWxkLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9Eb2N1bWVudC9zY3JpcHQtdGVzdHMvcmVwbGFj
ZUNoaWxkLW51bGwtb2xkQ2hpbGQuanM6CisgICAgICAgICogZmFzdC9kb20vTm9kZS9mcmFnbWVu
dC1tdXRhdGlvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vTm9kZS9mcmFnbWVu
dC1tdXRhdGlvbi5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL2luY29tcGF0aWJsZS1vcGVyYXRp
b25zLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9pbmNvbXBhdGlibGUtb3BlcmF0
aW9ucy5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL21vdmUtbm9kZXMtYWNyb3NzLWRvY3VtZW50
cy5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL3Byb2Nlc3NpbmctaW5zdHJ1Y3Rpb24tYXBwZW5k
Q2hpbGQtZXhjZXB0aW9ucy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vcHJvY2Vz
c2luZy1pbnN0cnVjdGlvbi1hcHBlbmRDaGlsZC1leGNlcHRpb25zLnhodG1sOgorICAgICAgICAq
IGZhc3QvZG9tL3NldHRlci10eXBlLWVuZm9yY2VtZW50LWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBmYXN0L2RvbS90aW1lci1jbGVhci1pbnRlcnZhbC1pbi1oYW5kbGVyLWFuZC1nZW5lcmF0ZS1l
cnJvci1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9pbnNwZWN0b3Itc3VwcG9ydC91bmNh
dWdodC1kb204LWV4Y2VwdGlvbi5odG1sOgorCisyMDE1LTA5LTA4ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKICAgICAgICAgbmV3IENvbW1lbnQodW5kZWZpbmVkKSAvIG5ldyBU
ZXh0KHVuZGVmaW5lZCkgc2hvdWxkIHVzZSBkZWZhdWx0J3MgZW1wdHkgc3RyaW5nCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg5NzMKICAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzIyNTQ4MDQyPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5k
ZXggOGIxYzVhNTlmOWU4YzdhZmEzOTQ5MDFiZGNkZjc4NWViOWJmNTAxMi4uMzQ2NWQzMDk5ZmNm
ZWE2NmFlNmQwN2NmZWNlOTg5OGY2ZGY4NWQ0YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nCkBAIC0xLDUgKzEsMjMgQEAKIDIwMTUtMDktMDggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAorICAgICAgICBOb2RlLmFwcGVuZENoaWxkKG51bGwpIC8gcmVwbGFjZUNoaWxk
KG51bGwsIG51bGwpIC8gcmVtb3ZlQ2hpbGQobnVsbCkgLyBpbnNlcnRCZWZvcmUobnVsbCwgcmVm
KSBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0ODk3MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjI1NjA4
ODM+CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjU1OTIyNT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWJhc2VsaW5lIFczQyB0ZXN0cyBub3cg
dGhhdCBtb3JlIGNoZWNrcyBhcmUgcGFzc2luZy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLWFwcGVuZENoaWxkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtaW5zZXJ0QmVmb3JlLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtcmVtb3Zl
Q2hpbGQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9k
ZXMvTm9kZS1yZXBsYWNlQ2hpbGQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dDoKKworMjAxNS0wOS0wOCAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCiAgICAgICAgIG5ldyBDb21tZW50KHVu
ZGVmaW5lZCkgLyBuZXcgVGV4dCh1bmRlZmluZWQpIHNob3VsZCB1c2UgZGVmYXVsdCdzIGVtcHR5
IHN0cmluZwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTQ4OTczCiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjU0ODA0Mj4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50L3JlcGxhY2VDaGlsZC1udWxsLW9sZENoaWxkLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50L3JlcGxhY2VDaGlsZC1u
dWxsLW9sZENoaWxkLWV4cGVjdGVkLnR4dAppbmRleCBiYmIxNjZiMjI3YTUyZTY1MTQ1YWRiZjQw
NDg3ODUzYjBkMzY4ZDI0Li5hZjVhNDY5ZjVmOGNjNjk3MTAxYmM5MmE0MGY4MjQ1NWI4YmU1Y2Qw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Eb2N1bWVudC9yZXBsYWNlQ2hpbGQt
bnVsbC1vbGRDaGlsZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9j
dW1lbnQvcmVwbGFjZUNoaWxkLW51bGwtb2xkQ2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0zLDcgKzMs
NyBAQCBUZXN0IGJlaGF2aW9yIG9mIERvY3VtZW50LnJlcGxhY2VDaGlsZCgpIHdoZW4gb2xkQ2hp
bGQgaXMgbnVsbC4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIGRvY3VtZW50
LnJlcGxhY2VDaGlsZChkb2N1bWVudC5maXJzdENoaWxkLCBudWxsKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOC4KK1BBU1MgZG9jdW1lbnQucmVw
bGFjZUNoaWxkKGRvY3VtZW50LmZpcnN0Q2hpbGQsIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRF
U1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50L3Nj
cmlwdC10ZXN0cy9yZXBsYWNlQ2hpbGQtbnVsbC1vbGRDaGlsZC5qcyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0RvY3VtZW50L3NjcmlwdC10ZXN0cy9yZXBsYWNlQ2hpbGQtbnVsbC1vbGRDaGlsZC5q
cwppbmRleCBkYTkyNTI4MDA1MWUxOTdlMWFmNWM5ZWE0YTI1YjQxYjk2ZWMzYTVmLi5jMDliZjFi
MThkMjk5ZTY3NDUyMzA1MzY2N2E4YzI1ZDhhOTgwNzBlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9Eb2N1bWVudC9zY3JpcHQtdGVzdHMvcmVwbGFjZUNoaWxkLW51bGwtb2xkQ2hp
bGQuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvc2NyaXB0LXRlc3RzL3Jl
cGxhY2VDaGlsZC1udWxsLW9sZENoaWxkLmpzCkBAIC0xLDMgKzEsMyBAQAogZGVzY3JpcHRpb24o
J1Rlc3QgYmVoYXZpb3Igb2YgRG9jdW1lbnQucmVwbGFjZUNoaWxkKCkgd2hlbiBvbGRDaGlsZCBp
cyBudWxsLicpOwogCi1zaG91bGRUaHJvdygnZG9jdW1lbnQucmVwbGFjZUNoaWxkKGRvY3VtZW50
LmZpcnN0Q2hpbGQsIG51bGwpJywgJyJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlv
biA4IicpOworc2hvdWxkVGhyb3coJ2RvY3VtZW50LnJlcGxhY2VDaGlsZChkb2N1bWVudC5maXJz
dENoaWxkLCBudWxsKScsICciVHlwZUVycm9yOiBUeXBlIGVycm9yIicpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZS9mcmFnbWVudC1tdXRhdGlvbi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2ZyYWdtZW50LW11dGF0aW9uLWV4cGVjdGVkLnR4
dAppbmRleCAwZjA0ZTY2YTBlNTNlNmY1YjE5MDFjNWRjYjE3NmY2N2YyZTRmODY4Li40YmE5NTI0
YzcyY2Q1ZDdhMTEzMjk0NGQwNmRkZGJjNmY2YzdkODVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9Ob2RlL2ZyYWdtZW50LW11dGF0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2ZyYWdtZW50LW11dGF0aW9uLWV4cGVjdGVkLnR4dApAQCAt
MiwxMiArMiwxMiBAQCBUaGlzIHRlc3QgY3JlYXRlcyBhIGZyYWdtZW50IGNvbnRhaW5pbmcgdGhy
ZWUgZWxlbWVudHM6ICJCIiwgIlUiLCBhbmQgIlAiLCBhdHRlbQogCiBJbnNlcnRpbmcgYW4gZWxl
bWVudCBpbiBmcm9udCBvZiB0aGUgbmV4dCBpdGVtIGluIGZyYWdtZW50IHNob3VsZCBub3QgYWZm
ZWN0IHRoZSByZXN1bHQ6IFBBU1MKIEFwcGVuZGluZyBhbiBlbGVtZW50IGF0IHRoZSBlbmQgb2Yg
dGhlIGZyYWdtZW50IHNob3VsZCBub3QgYWZmZWN0IHRoZSByZXN1bHQ6IFBBU1MKLUNvbnRpbnVh
bGx5IHJlLWFwcGVuZGluZyByZW1vdmVkIGVsZW1lbnQgdG8gdGhlIGZyYWdtZW50IHNob3VsZCBl
dmVudHVhbGx5IHRocm93IE5PVF9GT1VORF9FUlI6IFBBU1MKK0NvbnRpbnVhbGx5IHJlLWFwcGVu
ZGluZyByZW1vdmVkIGVsZW1lbnQgdG8gdGhlIGZyYWdtZW50IHNob3VsZCBldmVudHVhbGx5IHRo
cm93IGEgVHlwZUVycm9yOiBQQVNTCiAKIFRoaXMgdGVzdCBjcmVhdGVzIGEgZnJhZ21lbnQgY29u
dGFpbmluZyB0aHJlZSBlbGVtZW50czogIkIiLCAiVSIsIGFuZCAiUCIsIGF0dGVtcHRzIHRvIGlu
c2VydEJlZm9yZSB0aGlzIGZyYWdtZW50IGFuZCBzdHVkaWVzIGVmZmVjdHMgb2YgbXV0YXRpb24g
ZXZlbnRzIG9uIHRoZSBmcmFnbWVudC4KIAogSW5zZXJ0aW5nIGFuIGVsZW1lbnQgaW4gZnJvbnQg
b2YgdGhlIG5leHQgaXRlbSBpbiBmcmFnbWVudCBzaG91bGQgbm90IGFmZmVjdCB0aGUgcmVzdWx0
OiBQQVNTCiBBcHBlbmRpbmcgYW4gZWxlbWVudCBhdCB0aGUgZW5kIG9mIHRoZSBmcmFnbWVudCBz
aG91bGQgbm90IGFmZmVjdCB0aGUgcmVzdWx0OiBQQVNTCi1Db250aW51YWxseSByZS1hcHBlbmRp
bmcgcmVtb3ZlZCBlbGVtZW50IHRvIHRoZSBmcmFnbWVudCBzaG91bGQgZXZlbnR1YWxseSB0aHJv
dyBOT1RfRk9VTkRfRVJSOiBQQVNTCitDb250aW51YWxseSByZS1hcHBlbmRpbmcgcmVtb3ZlZCBl
bGVtZW50IHRvIHRoZSBmcmFnbWVudCBzaG91bGQgZXZlbnR1YWxseSB0aHJvdyBhIFR5cGVFcnJv
cjogUEFTUwogCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvZnJhZ21l
bnQtbXV0YXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvZnJhZ21lbnQtbXV0
YXRpb24uaHRtbAppbmRleCA4NGU2N2Y2NTM5ZDY0YjczZTM1MTEwMjBjMDc2ZTA0YzllODAwY2Jm
Li40ODk0OTdmNTBhYzZiNmE4ZjgxMDA2YmI1OGU2YWMxNzU1N2M2Yjg0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2ZyYWdtZW50LW11dGF0aW9uLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vTm9kZS9mcmFnbWVudC1tdXRhdGlvbi5odG1sCkBAIC0zNiwxNSAr
MzYsMTUgQEAgZnVuY3Rpb24gcHJvZHVjZU5vZGVOYW1lU3RyaW5nKG5vZGVzKQogICAgIHJldHVy
biByZXN1bHQ7CiB9CiAKLWZ1bmN0aW9uIGV4cGVjdEV4Y2VwdGlvbihjb2RlKQorZnVuY3Rpb24g
ZXhwZWN0VHlwZUVycm9yKCkKIHsKICAgICByZXR1cm4gZnVuY3Rpb24oc3Rhc2gsIGV4Y2VwdGlv
bikgewogICAgICAgICBpZiAoIWV4Y2VwdGlvbikKLSAgICAgICAgICAgIHJldHVybiAiRkFJTCwg
ZXhwZWN0ZWQgZXhjZXB0aW9uIHdpdGggY29kZSAiICsgY29kZSArICIuIFRoZSByZXN1bHRpbmcg
ZnJhZ21lbnQgd2FzOiBcIiIgKyBwcm9kdWNlTm9kZU5hbWVTdHJpbmcoc3Rhc2gpICsgIlwiLiI7
CisgICAgICAgICAgICByZXR1cm4gIkZBSUwsIGV4cGVjdGVkIFR5cGVFcnJvci4gVGhlIHJlc3Vs
dGluZyBmcmFnbWVudCB3YXM6IFwiIiArIHByb2R1Y2VOb2RlTmFtZVN0cmluZyhzdGFzaCkgKyAi
XCIuIjsKIAotICAgICAgICBpZiAoY29kZSA9PSBleGNlcHRpb24uY29kZSkKKyAgICAgICAgaWYg
KGV4Y2VwdGlvbi5uYW1lID0gIlR5cGVFcnJvciIpCiAgICAgICAgICAgICByZXR1cm4gIlBBU1Mi
OwotICAgICAgICByZXR1cm4gIkZBSUwsIGV4cGVjdGVkIGV4Y2VwdGlvbiBjb2RlOiAiICsgY29k
ZSArICIsIHdhczogIiArIGV4Y2VwdGlvbiArICIuIjsKKyAgICAgICAgcmV0dXJuICJGQUlMLCBl
eHBlY3RlZCBUeXBlRXJyb3IsIHdhczogIiArIGV4Y2VwdGlvbi5uYW1lICsgIi4iOwogICAgIH0K
IH0KIApAQCAtMTE5LDEwICsxMTksMTAgQEAgZnVuY3Rpb24gcnVuVGVzdChtZXRob2ROYW1lLCBt
ZXRob2QpCiAgICAgICAgIGZyYWcuYXBwZW5kQ2hpbGQoZXh0cmEpOwogICAgIH0sIGV4cGVjdE5v
ZGVzKCJCVVAiKSk7CiAKLSAgICB0ZXN0RnJhZ21lbnQobWV0aG9kLCAiQ29udGludWFsbHkgcmUt
YXBwZW5kaW5nIHJlbW92ZWQgZWxlbWVudCB0byB0aGUgZnJhZ21lbnQgc2hvdWxkIGV2ZW50dWFs
bHkgdGhyb3cgTk9UX0ZPVU5EX0VSUiIsIGZ1bmN0aW9uKGV2dCwgZnJhZywgc3Rhc2gpCisgICAg
dGVzdEZyYWdtZW50KG1ldGhvZCwgIkNvbnRpbnVhbGx5IHJlLWFwcGVuZGluZyByZW1vdmVkIGVs
ZW1lbnQgdG8gdGhlIGZyYWdtZW50IHNob3VsZCBldmVudHVhbGx5IHRocm93IGEgVHlwZUVycm9y
IiwgZnVuY3Rpb24oZXZ0LCBmcmFnLCBzdGFzaCkKICAgICB7CiAgICAgICAgIHN0YXNoLmluc2Vy
dEJlZm9yZShmcmFnLmxhc3RDaGlsZCwgc3Rhc2guZmlyc3RDaGlsZCk7Ci0gICAgfSwgZXhwZWN0
RXhjZXB0aW9uKDgpLCB0cnVlKTsKKyAgICB9LCBleHBlY3RUeXBlRXJyb3IoKSwgdHJ1ZSk7CiAg
ICAgcHJpbnRMb2cobWV0aG9kTmFtZSk7CiB9CiBmdW5jdGlvbiBydW5UZXN0cygpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pbmNvbXBhdGlibGUtb3BlcmF0aW9ucy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pbmNvbXBhdGlibGUtb3BlcmF0aW9ucy1leHBl
Y3RlZC50eHQKaW5kZXggZDU3NjRjMWU1YWM2MjY0ZWUzYTRkZjViOTI0NWViZTE3N2Y2NTQ4MC4u
ODVjY2Q1NDRmYzllOTlhNzhkYWEyNzc1NWEzM2ZjODgwYTdmZjBkNiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vaW5jb21wYXRpYmxlLW9wZXJhdGlvbnMtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2luY29tcGF0aWJsZS1vcGVyYXRpb25zLWV4cGVjdGVk
LnR4dApAQCAtMyw5ICszLDkgQEAgVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgRE9N
IG9wZXJhdGlvbnMgd2hlbiBjYWxsZWQgb24gbm9uLURPTSBvciBpbmNvbXAKIE9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIGFOb2RlLmFwcGVuZENoaWxkKGFET01JbXBsZW1lbnRh
dGlvbikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9u
IDguCi1QQVNTIGFOb2RlLmFwcGVuZENoaWxkKCdrbm9ydCcpIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4LgotUEFTUyBhTm9kZS5hcHBlbmRDaGls
ZCh2b2lkIDApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2Vw
dGlvbiA4LgorUEFTUyBhTm9kZS5hcHBlbmRDaGlsZChhRE9NSW1wbGVtZW50YXRpb24pIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGFOb2RlLmFwcGVuZENoaWxk
KCdrbm9ydCcpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGFO
b2RlLmFwcGVuZENoaWxkKHZvaWQgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBl
cnJvci4KIFBBU1MgYU5vZGUuaXNTYW1lTm9kZShhRE9NSW1wbGVtZW50YXRpb24pIGlzIGZhbHNl
CiBQQVNTIGFOb2RlLmlzU2FtZU5vZGUoJ2ZvbycpIGlzIGZhbHNlCiBQQVNTIGFOb2RlLmlzU2Ft
ZU5vZGUodm9pZCAwKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
aW5jb21wYXRpYmxlLW9wZXJhdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2luY29t
cGF0aWJsZS1vcGVyYXRpb25zLmh0bWwKaW5kZXggMjFhYTcxYWZlOGUzZGVhYThjZThiMDRkM2Yz
Y2YyM2Q1ODI1NDIzMC4uMmYwZTRhZmU2Y2FjYmRjMmI4NTczNWU3NjYwZWU4ZjllNWQwMWIwZiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vaW5jb21wYXRpYmxlLW9wZXJhdGlvbnMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pbmNvbXBhdGlibGUtb3BlcmF0aW9ucy5o
dG1sCkBAIC0yOCwxMSArMjgsMTEgQEAgdmFyIGFOb2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiZGl2Iik7CiB2YXIgYVNlY29uZE5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKIGFOb2RlLmFwcGVuZENoaWxkKGFTZWNvbmROb2RlKTsKIAotc2hvdWxkVGhyb3coImFOb2Rl
LmFwcGVuZENoaWxkKGFET01JbXBsZW1lbnRhdGlvbikiLCAiJ0Vycm9yOiBOb3RGb3VuZEVycm9y
OiBET00gRXhjZXB0aW9uIDgnIik7CitzaG91bGRUaHJvdygiYU5vZGUuYXBwZW5kQ2hpbGQoYURP
TUltcGxlbWVudGF0aW9uKSIsICInVHlwZUVycm9yOiBUeXBlIGVycm9yJyIpOwogCi1zaG91bGRU
aHJvdygiYU5vZGUuYXBwZW5kQ2hpbGQoJ2tub3J0JykiLCAiJ0Vycm9yOiBOb3RGb3VuZEVycm9y
OiBET00gRXhjZXB0aW9uIDgnIik7CitzaG91bGRUaHJvdygiYU5vZGUuYXBwZW5kQ2hpbGQoJ2tu
b3J0JykiLCAiJ1R5cGVFcnJvcjogVHlwZSBlcnJvciciKTsKIAotc2hvdWxkVGhyb3coImFOb2Rl
LmFwcGVuZENoaWxkKHZvaWQgMCkiLCAiJ0Vycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0
aW9uIDgnIik7CitzaG91bGRUaHJvdygiYU5vZGUuYXBwZW5kQ2hpbGQodm9pZCAwKSIsICInVHlw
ZUVycm9yOiBUeXBlIGVycm9yJyIpOwogCiBzaG91bGRCZUZhbHNlKCJhTm9kZS5pc1NhbWVOb2Rl
KGFET01JbXBsZW1lbnRhdGlvbikiKTsKIHNob3VsZEJlRmFsc2UoImFOb2RlLmlzU2FtZU5vZGUo
J2ZvbycpIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9tb3ZlLW5vZGVzLWFj
cm9zcy1kb2N1bWVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL21vdmUtbm9kZXMtYWNy
b3NzLWRvY3VtZW50cy5odG1sCmluZGV4IGQzNTAxYTE3ZGI4NmM0ZWM4NjBmYjVmMTIyYzdkNWNk
YWU2ZjVhMzUuLjM4ODFmMDQ5OTIxYjEzZGQzZmI2NmZlNmQ3YTUyZWM3NGFmNjg1ODMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL21vdmUtbm9kZXMtYWNyb3NzLWRvY3VtZW50cy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL21vdmUtbm9kZXMtYWNyb3NzLWRvY3VtZW50
cy5odG1sCkBAIC0xNzksNyArMTc5LDcgQEAgZnVuY3Rpb24gcnVuKCkKICAgICBydW5UZXN0KGZ1
bmN0aW9uKCkgewogICAgICAgICBpZnJhbWVEb2MuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuZG9jdHlw
ZSk7CiAgICAgICAgIGNvbnNvbGUubG9nKGRvY3VtZW50LmRvY3R5cGUpOwotICAgIH0sICdOb3RG
b3VuZEVycm9yJyk7CisgICAgfSwgJ1R5cGVFcnJvcicpOwogCiAgICAgLy8gV2hlbiBzZXR0aW5n
IGEgYm91bmRhcnkgb2YgdGhlIHJhbmdlIGluIGEgZGlmZmVyZW50CiAgICAgLy8gZG9jdW1lbnQs
IHRoZSBjYWxsIHNob3VsZCBzdWNjZWVkIGFuZCB0aGUgcmFuZ2Ugc2hvdWxkIGJlIGNvbGxhcHNl
ZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb2Nlc3NpbmctaW5zdHJ1Y3Rp
b24tYXBwZW5kQ2hpbGQtZXhjZXB0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9wcm9jZXNzaW5nLWluc3RydWN0aW9uLWFwcGVuZENoaWxkLWV4Y2VwdGlvbnMtZXhwZWN0
ZWQudHh0CmluZGV4IDdhMTM4NjhhN2IyZmZmYTZkMjY0MmFiNjIxNzIyN2IyZGFiOTJmYjkuLjBl
M2JkZjIyNmUwYzVhNjU5MTcxMjA0NWMzNTU1ZDgzNmJjY2JiMmYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3Byb2Nlc3NpbmctaW5zdHJ1Y3Rpb24tYXBwZW5kQ2hpbGQtZXhjZXB0
aW9ucy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvY2Vzc2luZy1p
bnN0cnVjdGlvbi1hcHBlbmRDaGlsZC1leGNlcHRpb25zLWV4cGVjdGVkLnR4dApAQCAtMyw3ICsz
LDcgQEAgVGVzdCB0aGF0IGFwcHJvcHJpYXRlIGV4Y2VwdGlvbnMgYXJlIHRocm93biB3aGVuIGFk
ZGluZyBjaGlsZHJlbiB0byBhIFByb2Nlc3NpbmcKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
IAogCi1QQVNTIHBpLmFwcGVuZENoaWxkKG51bGwpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSGll
cmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMuCitQQVNTIHBpLmFwcGVuZENoaWxk
KG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNTIHBpLmFw
cGVuZENoaWxkKGRpdikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJy
b3I6IERPTSBFeGNlcHRpb24gMy4KIFBBU1MgcGkuYXBwZW5kQ2hpbGQodGV4dE5vZGUpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMu
CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9wcm9jZXNzaW5nLWluc3RydWN0aW9uLWFwcGVuZENoaWxkLWV4Y2VwdGlvbnMu
eGh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm9jZXNzaW5nLWluc3RydWN0aW9uLWFwcGVu
ZENoaWxkLWV4Y2VwdGlvbnMueGh0bWwKaW5kZXggYjAwMjg5OWMyMzIwNjdmYzE3MzNmYTkxZWFm
ZTEzMTQyMmM0OTk2MC4uYzkwMmJhNGIzNTk4OTdkOTM4YmQ0OWY4MGJjNmYyMmMyMDE5MmZkOCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvY2Vzc2luZy1pbnN0cnVjdGlvbi1h
cHBlbmRDaGlsZC1leGNlcHRpb25zLnhodG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3By
b2Nlc3NpbmctaW5zdHJ1Y3Rpb24tYXBwZW5kQ2hpbGQtZXhjZXB0aW9ucy54aHRtbApAQCAtNSw3
ICs1LDcgQEAKIDwhW0NEQVRBWwogZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBhcHByb3ByaWF0ZSBl
eGNlcHRpb25zIGFyZSB0aHJvd24gd2hlbiBhZGRpbmcgY2hpbGRyZW4gdG8gYSBQcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24uIik7CiB2YXIgcGkgPSBkb2N1bWVudC5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24oJ3RhcmdldCcsICdkYXRhJyk7Ci1zaG91bGRUaHJvdygicGkuYXBwZW5kQ2hpbGQobnVs
bCkiLCAiJ0Vycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyciKTsK
K3Nob3VsZFRocm93KCJwaS5hcHBlbmRDaGlsZChudWxsKSIsICInVHlwZUVycm9yOiBUeXBlIGVy
cm9yJyIpOwogdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogc2hvdWxk
VGhyb3coInBpLmFwcGVuZENoaWxkKGRpdikiLCAiJ0Vycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJy
b3I6IERPTSBFeGNlcHRpb24gMyciKTsKIHZhciB0ZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKCdzb21ldGV4dCcpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2V0
dGVyLXR5cGUtZW5mb3JjZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2V0dGVyLXR5cGUtZW5mb3JjZW1lbnQtZXhwZWN0ZWQudHh0CmluZGV4IGM3YWI4ZTJhOGQ1MjU2
OGMyMzZlMzFmN2QxNTczNzVlNzUyNTljMjMuLjkxNzEyZDA5NTRiZmE5Yzc5NTBmZmI2NWQ3ZTZh
MjViZTQ1ZTMxOGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NldHRlci10eXBl
LWVuZm9yY2VtZW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zZXR0
ZXItdHlwZS1lbmZvcmNlbWVudC1leHBlY3RlZC50eHQKQEAgLTQsNyArNCw3IEBAIE9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFCiAKIAogUEFTUyBkb2N1bWVudC5ib2R5ID0gbm9kZWxpc3Q7IHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMu
Ci1QQVNTIHRhYmxlLnRIZWFkID0gbm9kZWxpc3Q7IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm90
Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4LgorUEFTUyB0YWJsZS50SGVhZCA9IG5vZGVsaXN0
OyB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUaGUgSFRNTFRhYmxlRWxlbWVudC50SGVhZCBh
dHRyaWJ1dGUgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBIVE1MVGFibGVTZWN0aW9uRWxlbWVudC4K
IFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vdGltZXItY2xlYXItaW50ZXJ2YWwtaW4taGFuZGxl
ci1hbmQtZ2VuZXJhdGUtZXJyb3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
dGltZXItY2xlYXItaW50ZXJ2YWwtaW4taGFuZGxlci1hbmQtZ2VuZXJhdGUtZXJyb3ItZXhwZWN0
ZWQudHh0CmluZGV4IDk5YWFjNmEwNWRjYWU4ODYzMjY5YzY5YmI2ZGNiM2E5Mjk0YjY0NzcuLjVm
MmZkNTE0MTcwMGM4MzMzNDg5YjUwZTFhM2QyMjJiMjY5NDI1YTAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3RpbWVyLWNsZWFyLWludGVydmFsLWluLWhhbmRsZXItYW5kLWdlbmVy
YXRlLWVycm9yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS90aW1lci1j
bGVhci1pbnRlcnZhbC1pbi1oYW5kbGVyLWFuZC1nZW5lcmF0ZS1lcnJvci1leHBlY3RlZC50eHQK
QEAgLTEsMiArMSwyIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA6IE5vdEZvdW5kRXJyb3I6
IERPTSBFeGNlcHRpb24gODogQW4gYXR0ZW1wdCB3YXMgbWFkZSB0byByZWZlcmVuY2UgYSBOb2Rl
IGluIGEgY29udGV4dCB3aGVyZSBpdCBkb2VzIG5vdCBleGlzdC4KK0NPTlNPTEUgTUVTU0FHRTog
bGluZSAxMDogVHlwZUVycm9yOiBUeXBlIGVycm9yCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvaW5zcGVjdG9yLXN1cHBvcnQvdW5jYXVnaHQtZG9tOC1leGNlcHRpb24uaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvaW5zcGVjdG9yLXN1cHBvcnQvdW5jYXVnaHQtZG9tOC1leGNlcHRpb24u
aHRtbAppbmRleCBiYzYwOGY0ZmFlMDQ5MzcwNmM5Yjc5ZTUxMzdiY2ZlNzgzNDIyNWRiLi41ZmE0
ZTViOGI2NjY2Mzk0MjJkNWI0YWQ5YTY3ZmVhNjJkNGVlOTBhIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2luc3BlY3Rvci1zdXBwb3J0L3VuY2F1Z2h0LWRvbTgtZXhjZXB0aW9uLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbnNwZWN0b3Itc3VwcG9ydC91bmNhdWdodC1kb204LWV4
Y2VwdGlvbi5odG1sCkBAIC02LDcgKzYsNyBAQCBmdW5jdGlvbiBvbmxvYWQoKQogewogICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0g
ICAgZG9jdW1lbnQuYXBwZW5kQ2hpbGQoKTsKKyAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUF0dHJp
YnV0ZU5vZGUoZG9jdW1lbnQuY3JlYXRlQXR0cmlidXRlKCJkb2VzTm90RXhpc3QiKSk7CiB9CiAK
IDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dApp
bmRleCBmZGIxOTgwYThiY2ZjNGY5MWU1Y2E2ZjlkNTZjMGQ3MTJlNGE3MGVhLi5jZjdiMjNhMjc4
OTRhOTI5NmFhMzU5NmMwMmViZDY3ZDQ4MjQxMDc1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9p
bnRlcmZhY2VzLWV4cGVjdGVkLnR4dApAQCAtNjM0LDIxICs2MzQsMTUgQEAgRkFJTCBOb2RlIGlu
dGVyZmFjZTogY2FsbGluZyBpc0RlZmF1bHROYW1lc3BhY2UoRE9NU3RyaW5nKSBvbiB4bWxEb2Mg
d2l0aCB0b28gZmUKICAgICBbbmF0aXZlIGNvZGVdCiB9IiBkaWQgbm90IHRocm93CiBQQVNTIE5v
ZGUgaW50ZXJmYWNlOiB4bWxEb2MgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJpbnNlcnRCZWZvcmUi
IHdpdGggdGhlIHByb3BlciB0eXBlICg0MCkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5n
IGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIHhtbERvYyB3aXRoIHRvbyBmZXcgYXJndW1lbnRz
IG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1l
bnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CitGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5n
IGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIHhtbERvYyB3aXRoIHRvbyBmZXcgYXJndW1lbnRz
IG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDEgYXJndW1l
bnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAgICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcg
b2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5k
RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorfSIgdGhy
ZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMi
ICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgi
VHlwZUVycm9yIikKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IHhtbERvYyBtdXN0IGluaGVyaXQgcHJv
cGVydHkgImFwcGVuZENoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDEpIAotRkFJTCBOb2Rl
IGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiB4bWxEb2Mgd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQg
d2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29k
ZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24g
OCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVy
cm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24g
eG1sRG9jIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNT
IE5vZGUgaW50ZXJmYWNlOiB4bWxEb2MgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZXBsYWNlQ2hp
bGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MikgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxs
aW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIHhtbERvYyB3aXRoIHRvbyBmZXcgYXJndW1l
bnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJn
dW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgZGlk
IG5vdCB0aHJvdworUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9k
ZSxOb2RlKSBvbiB4bWxEb2Mgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVF
cnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IHhtbERvYyBtdXN0IGluaGVyaXQgcHJvcGVydHkg
InJlbW92ZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDMpIAotRkFJTCBOb2RlIGludGVy
ZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiB4bWxEb2Mgd2l0aCB0b28gZmV3IGFy
Z3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAw
IGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0i
IHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJO
b3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikK
K1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24geG1sRG9j
IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIEV2ZW50
VGFyZ2V0IGludGVyZmFjZTogeG1sRG9jIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYWRkRXZlbnRM
aXN0ZW5lciIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDApIAogRkFJTCBFdmVudFRhcmdldCBpbnRl
cmZhY2U6IGNhbGxpbmcgYWRkRXZlbnRMaXN0ZW5lcihET01TdHJpbmcsRXZlbnRMaXN0ZW5lcixi
b29sZWFuKSBvbiB4bWxEb2Mgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVF
cnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVu
Y3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KQEAgLTc5MywyMSArNzg3LDE1IEBAIEZBSUwg
Tm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaXNEZWZhdWx0TmFtZXNwYWNlKERPTVN0cmluZykgb24g
ZG9jdW1lbnQuY3JlYXRlRG9jCiAgICAgW25hdGl2ZSBjb2RlXQogfSIgZGlkIG5vdCB0aHJvdwog
UEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5zZXJ0QmVmb3JlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAo
NDApIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2Rl
KSBvbiBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkgd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFy
Z3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworRkFJTCBOb2RlIGludGVyZmFjZTogY2Fs
bGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZy
YWdtZW50KCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3Nl
cnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAxIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkg
ewogICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJy
b3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJU
eXBlRXJyb3IiICgiVHlwZUVycm9yIikKK30iIGRpZCBub3QgdGhyb3cKIFBBU1MgTm9kZSBpbnRl
cmZhY2U6IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgImFwcGVuZENoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDEpIAotRkFJTCBOb2Rl
IGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVE
b2N1bWVudEZyYWdtZW50KCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVF
cnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVu
Y3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5v
dEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQg
b2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNh
bGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVu
dCgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5v
ZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJyZXBsYWNlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MikgCi1G
QUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIGRv
Y3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11
c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRz
IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgZGlkIG5vdCB0
aHJvdworUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2Rl
KSBvbiBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkgd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50
LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlbW92ZUNo
aWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDMpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2Fs
bGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50
KCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhy
b3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAg
IFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERP
TSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJy
b3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hp
bGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpIHdpdGggdG9vIGZl
dyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIEV2ZW50VGFyZ2V0IGludGVy
ZmFjZTogZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAiYWRkRXZlbnRMaXN0ZW5lciIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDApIAogRkFJTCBF
dmVudFRhcmdldCBpbnRlcmZhY2U6IGNhbGxpbmcgYWRkRXZlbnRMaXN0ZW5lcihET01TdHJpbmcs
RXZlbnRMaXN0ZW5lcixib29sZWFuKSBvbiBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50
KCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhy
b3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAg
IFtuYXRpdmUgY29kZV0KQEAgLTkxNSwyMSArOTAzLDE1IEBAIEZBSUwgTm9kZSBpbnRlcmZhY2U6
IGNhbGxpbmcgaXNEZWZhdWx0TmFtZXNwYWNlKERPTVN0cmluZykgb24gZG9jdW1lbnQuZG9jdHlw
ZSB3CiAgICAgW25hdGl2ZSBjb2RlXQogfSIgZGlkIG5vdCB0aHJvdwogUEFTUyBOb2RlIGludGVy
ZmFjZTogZG9jdW1lbnQuZG9jdHlwZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImluc2VydEJlZm9y
ZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQwKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxp
bmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuZG9jdHlwZSB3aXRoIHRvbyBm
ZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3
aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CitGQUlMIE5vZGUgaW50ZXJm
YWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmRvY3R5cGUg
d2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dz
OiBDYWxsZWQgd2l0aCAxIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtu
YXRpdmUgY29kZV0KIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJv
cjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9i
amVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1
bWVudC5kb2N0eXBlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXBwZW5kQ2hpbGQiIHdpdGggdGhl
IHByb3BlciB0eXBlICg0MSkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENo
aWxkKE5vZGUpIG9uIGRvY3VtZW50LmRvY3R5cGUgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0
IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBm
dW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVj
dCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJh
cmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJv
ciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGRv
Y3VtZW50LmRvY3R5cGUgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJv
ciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmRvY3R5cGUgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJyZXBsYWNlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MikgCi1GQUlMIE5v
ZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIGRvY3VtZW50
LmRvY3R5cGUgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3Nl
cnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkg
ewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJl
cXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4
cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJm
YWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmRvY3R5cGUg
d2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBp
bnRlcmZhY2U6IGRvY3VtZW50LmRvY3R5cGUgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZW1vdmVD
aGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQzKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNh
bGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuZG9jdHlwZSB3aXRoIHRvbyBmZXcg
YXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRo
IDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQot
fSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAo
Ik5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3Ii
KQorUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiBkb2N1
bWVudC5kb2N0eXBlIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3Ig
CiBQQVNTIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogZG9jdW1lbnQuZG9jdHlwZSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgImFkZEV2ZW50TGlzdGVuZXIiIHdpdGggdGhlIHByb3BlciB0eXBlICgwKSAK
IEZBSUwgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBjYWxsaW5nIGFkZEV2ZW50TGlzdGVuZXIoRE9N
U3RyaW5nLEV2ZW50TGlzdGVuZXIsYm9vbGVhbikgb24gZG9jdW1lbnQuZG9jdHlwZSB3aXRoIHRv
byBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxl
ZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAgICAgW25hdGl2ZSBj
b2RlXQpAQCAtMTE4NywyMSArMTE2OSwxNSBAQCBGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5n
IGlzRGVmYXVsdE5hbWVzcGFjZShET01TdHJpbmcpIG9uIGVsZW1lbnQgd2l0aCB0b28gZgogICAg
IFtuYXRpdmUgY29kZV0KIH0iIGRpZCBub3QgdGhyb3cKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGVs
ZW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJpbnNlcnRCZWZvcmUiIHdpdGggdGhlIHByb3Bl
ciB0eXBlICg0MCkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShO
b2RlLE5vZGUpIG9uIGVsZW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5
cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAi
ZnVuY3Rpb24gKCkgeworRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZvcmUo
Tm9kZSxOb2RlKSBvbiBlbGVtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBU
eXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMSBhcmd1bWVudHMgZnVuY3Rpb24g
ImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9y
OiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVj
dGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCit9IiBkaWQgbm90IHRocm93CiBQ
QVNTIE5vZGUgaW50ZXJmYWNlOiBlbGVtZW50IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXBwZW5k
Q2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MSkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBj
YWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGVsZW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50
cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3Vt
ZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3
IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3Vu
ZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1Mg
Tm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24gZWxlbWVudCB3aXRo
IHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGludGVy
ZmFjZTogZWxlbWVudCBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlcGxhY2VDaGlsZCIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgKDQyKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFj
ZUNoaWxkKE5vZGUsTm9kZSkgb24gZWxlbWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3Qg
dGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1
bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgZGlkIG5vdCB0aHJv
dworUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBv
biBlbGVtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQ
QVNTIE5vZGUgaW50ZXJmYWNlOiBlbGVtZW50IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVtb3Zl
Q2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MykgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBj
YWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIGVsZW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50
cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3Vt
ZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3
IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3Vu
ZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1Mg
Tm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24gZWxlbWVudCB3aXRo
IHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBFdmVudFRhcmdl
dCBpbnRlcmZhY2U6IGVsZW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhZGRFdmVudExpc3Rl
bmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMCkgCiBGQUlMIEV2ZW50VGFyZ2V0IGludGVyZmFj
ZTogY2FsbGluZyBhZGRFdmVudExpc3RlbmVyKERPTVN0cmluZyxFdmVudExpc3RlbmVyLGJvb2xl
YW4pIG9uIGVsZW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJv
ciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rp
b24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KQEAgLTE0MDksMjEgKzEzODUsMTUgQEAgRkFJTCBO
b2RlIGludGVyZmFjZTogY2FsbGluZyBpc0RlZmF1bHROYW1lc3BhY2UoRE9NU3RyaW5nKSBvbiBk
b2N1bWVudC5jcmVhdGVUZXgKICAgICBbbmF0aXZlIGNvZGVdCiB9IiBkaWQgbm90IHRocm93CiBQ
QVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJpbnNlcnRCZWZvcmUiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MCkg
Ci1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9u
IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11
c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRz
IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CitGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGlu
c2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhYmMiKSB3
aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6
IENhbGxlZCB3aXRoIDEgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAgICAgW25h
dGl2ZSBjb2RlXQogfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9y
OiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2Jq
ZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKCJhYmMiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFwcGVuZENo
aWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDEpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2Fs
bGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikg
d2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dz
OiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtu
YXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJv
cjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9i
amVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxs
aW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhYmMiKSB3
aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGlu
dGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoImFiYyIpIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAicmVwbGFjZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDIpIAotRkFJTCBOb2Rl
IGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZSgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5
cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAi
ZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6
IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVl
c3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNT
IE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhy
b3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoImFiYyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVtb3ZlQ2hpbGQiIHdpdGggdGhlIHBy
b3BlciB0eXBlICg0MykgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxk
KE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJn
dW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAg
YXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIg
dGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5v
dEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQor
UEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiBkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93
IFR5cGVFcnJvciAKIFBBU1MgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZSgiYWJjIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhZGRFdmVudExpc3RlbmVyIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAoMCkgCiBGQUlMIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogY2Fs
bGluZyBhZGRFdmVudExpc3RlbmVyKERPTVN0cmluZyxFdmVudExpc3RlbmVyLGJvb2xlYW4pIG9u
IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11
c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRz
IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAgICAgW25hdGl2ZSBjb2RlXQpAQCAtMTU0MywyMSAr
MTUxMywxNSBAQCBGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGlzRGVmYXVsdE5hbWVzcGFj
ZShET01TdHJpbmcpIG9uIHhtbERvYy5jcmVhdGVQcm9jZQogICAgIFtuYXRpdmUgY29kZV0KIH0i
IGRpZCBub3QgdGhyb3cKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IHhtbERvYy5jcmVhdGVQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24oImFiYyIsICJkZWYiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImluc2Vy
dEJlZm9yZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQwKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6
IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24geG1sRG9jLmNyZWF0ZVByb2Nlc3Np
bmdJbnN0cnVjdGlvbigiYWJjIiwgImRlZiIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0
aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVu
Y3Rpb24gImZ1bmN0aW9uICgpIHsKK0ZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0
QmVmb3JlKE5vZGUsTm9kZSkgb24geG1sRG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigi
YWJjIiwgImRlZiIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3Ig
YXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMSBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9u
ICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCiB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJj
aHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3Ii
KSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQogUEFTUyBOb2RlIGlu
dGVyZmFjZTogeG1sRG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiYWJjIiwgImRlZiIp
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXBwZW5kQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBl
ICg0MSkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9u
IHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oImFiYyIsICJkZWYiKSB3aXRoIHRv
byBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxl
ZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBj
b2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00g
RXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJU
eXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBw
ZW5kQ2hpbGQoTm9kZSkgb24geG1sRG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiYWJj
IiwgImRlZiIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQ
QVNTIE5vZGUgaW50ZXJmYWNlOiB4bWxEb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJh
YmMiLCAiZGVmIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZXBsYWNlQ2hpbGQiIHdpdGggdGhl
IHByb3BlciB0eXBlICg0MikgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VD
aGlsZChOb2RlLE5vZGUpIG9uIHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oImFi
YyIsICJkZWYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFz
c2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAo
KSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5
UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikg
ZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRl
cmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24geG1sRG9jLmNyZWF0ZVBy
b2Nlc3NpbmdJbnN0cnVjdGlvbigiYWJjIiwgImRlZiIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMg
bXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiB4bWxEb2MuY3JlYXRl
UHJvY2Vzc2luZ0luc3RydWN0aW9uKCJhYmMiLCAiZGVmIikgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJyZW1vdmVDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQzKSAKLUZBSUwgTm9kZSBpbnRl
cmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24geG1sRG9jLmNyZWF0ZVByb2Nlc3Np
bmdJbnN0cnVjdGlvbigiYWJjIiwgImRlZiIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0
aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVu
Y3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3Qg
IkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIp
IGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50
ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIHhtbERvYy5jcmVhdGVQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24oImFiYyIsICJkZWYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3Qg
dGhyb3cgVHlwZUVycm9yIAogUEFTUyBFdmVudFRhcmdldCBpbnRlcmZhY2U6IHhtbERvYy5jcmVh
dGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oImFiYyIsICJkZWYiKSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgImFkZEV2ZW50TGlzdGVuZXIiIHdpdGggdGhlIHByb3BlciB0eXBlICgwKSAKIEZBSUwgRXZl
bnRUYXJnZXQgaW50ZXJmYWNlOiBjYWxsaW5nIGFkZEV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nLEV2
ZW50TGlzdGVuZXIsYm9vbGVhbikgb24geG1sRG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlv
bigiYWJjIiwgImRlZiIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJy
b3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0
aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCkBAIC0xNjczLDIxICsxNjM3LDE1IEBAIEZBSUwg
Tm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaXNEZWZhdWx0TmFtZXNwYWNlKERPTVN0cmluZykgb24g
ZG9jdW1lbnQuY3JlYXRlQ29tCiAgICAgW25hdGl2ZSBjb2RlXQogfSIgZGlkIG5vdCB0aHJvdwog
UEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiYWJjIikgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJpbnNlcnRCZWZvcmUiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MCkg
Ci1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9u
IGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVz
dCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMg
ZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKK0ZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5z
ZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiYWJjIikgd2l0
aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBD
YWxsZWQgd2l0aCAxIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRp
dmUgY29kZV0KIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjog
RE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVj
dCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVu
dC5jcmVhdGVDb21tZW50KCJhYmMiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFwcGVuZENoaWxk
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDEpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGlu
ZyBhcHBlbmRDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVDb21tZW50KCJhYmMiKSB3aXRo
IHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENh
bGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2
ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBE
T00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0
ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcg
YXBwZW5kQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiYWJjIikgd2l0aCB0
b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZh
Y2U6IGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
cmVwbGFjZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDIpIAotRkFJTCBOb2RlIGludGVy
ZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVD
b21tZW50KCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9y
IGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlv
biAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFy
Y2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9y
IikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBp
bnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuY3Jl
YXRlQ29tbWVudCgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVF
cnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIp
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVtb3ZlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBl
ICg0MykgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9u
IGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVz
dCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMg
ZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmpl
Y3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJv
ciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUg
aW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUNv
bW1lbnQoImFiYyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3Ig
CiBQQVNTIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiYWJj
IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhZGRFdmVudExpc3RlbmVyIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAoMCkgCiBGQUlMIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogY2FsbGluZyBhZGRFdmVu
dExpc3RlbmVyKERPTVN0cmluZyxFdmVudExpc3RlbmVyLGJvb2xlYW4pIG9uIGRvY3VtZW50LmNy
ZWF0ZUNvbW1lbnQoImFiYyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBl
RXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1
bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLWFwcGVuZENoaWxk
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZG9tL25vZGVzL05vZGUtYXBwZW5kQ2hpbGQtZXhwZWN0ZWQudHh0CmluZGV4IDNhMjg5ZTgz
MmU2YTJkOTQ4OTBjMDI0YTU2MTQ5NjhjMDE0NTkzYmQuLmIxMzBjYWZmZDg0ODI3NjRmNzBjMzQw
M2U0ZjA4MDI4OWEyYTkwZTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtYXBwZW5kQ2hpbGQtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25v
ZGVzL05vZGUtYXBwZW5kQ2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0xLDEyICsxLDEyIEBACiAKIAot
RkFJTCBXZWJJREwgdGVzdHMgYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChudWxsKSB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBO
b3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVk
IG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIFdlYklETCB0ZXN0cyAKIFBB
U1MgQXBwZW5kaW5nIHRvIGEgbGVhZiBub2RlLiAKLUZBSUwgQXBwZW5kaW5nIG51bGwgdG8gYSB0
ZXh0IG5vZGUgYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgbm9kZS5hcHBl
bmRDaGlsZChudWxsKSB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJy
b3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBv
YmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBBcHBlbmRpbmcgbnVsbCB0byBh
IHRleHQgbm9kZSAKIFBBU1MgQXBwZW5kaW5nIHRvIGEgdGV4dCBub2RlIAotRkFJTCBBcHBlbmRp
bmcgbnVsbCB0byBhIGNvbW1lbnQgYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gImZ1bmN0aW9uICgp
IHsgbm9kZS5hcHBlbmRDaGlsZChudWxsKSB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJj
aHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3Ii
KSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBBcHBlbmRp
bmcgbnVsbCB0byBhIGNvbW1lbnQgCiBQQVNTIEFwcGVuZGluZyB0byBhIGNvbW1lbnQgCi1GQUlM
IEFwcGVuZGluZyBudWxsIHRvIGEgZG9jdHlwZSBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVu
Y3Rpb24gKCkgeyBub2RlLmFwcGVuZENoaWxkKG51bGwpIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6
IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVl
c3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNT
IEFwcGVuZGluZyBudWxsIHRvIGEgZG9jdHlwZSAKIFBBU1MgQXBwZW5kaW5nIHRvIGEgZG9jdHlw
ZSAKIFBBU1MgQXBwZW5kaW5nIGEgZG9jdW1lbnQgCiBQQVNTIEFkb3B0aW5nIGFuIG9ycGhhbiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL25vZGVzL05vZGUtaW5zZXJ0QmVmb3JlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtaW5zZXJ0QmVmb3Jl
LWV4cGVjdGVkLnR4dAppbmRleCA1NmJjZDJhODBiYjM0ZDM3YWMwODRmNzc0MTY0ZjAxY2ZiZTk0
YTc4Li5jNjYyMjMzZGMwNTYzODU3ZjIzYjYwNjkwMzRhYzhmNzViOGNlYTZjIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9O
b2RlLWluc2VydEJlZm9yZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1pbnNlcnRCZWZvcmUtZXhwZWN0
ZWQudHh0CkBAIC0xLDEyICsxLDEyIEBACiAKLUZBSUwgQ2FsbGluZyBpbnNlcnRCZWZvcmUgd2l0
aCBhIG5vbi1Ob2RlIGZpcnN0IGFyZ3VtZW50IG11c3QgdGhyb3cgVHlwZUVycm9yLiBhc3NlcnRf
dGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyBkb2N1bWVudC5ib2R5Lmluc2VydEJlZm9y
ZShudWxsLCBudWxsKSB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00g
RXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9y
IiAoIlR5cGVFcnJvciIpCi1GQUlMIENhbGxpbmcgaW5zZXJ0QmVmb3JlIHdpdGggYSBub24tTm9k
ZSBmaXJzdCBhcmd1bWVudCBvbiBhIGxlYWYgbm9kZSBEb2N1bWVudFR5cGUgbXVzdCB0aHJvdyBU
eXBlRXJyb3IuIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IG5vZGUuaW5z
ZXJ0QmVmb3JlKG51bGwsIG51bGwpIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJl
cXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4
cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIENhbGxpbmcgaW5z
ZXJ0QmVmb3JlIHdpdGggYSBub24tTm9kZSBmaXJzdCBhcmd1bWVudCBtdXN0IHRocm93IFR5cGVF
cnJvci4gCitQQVNTIENhbGxpbmcgaW5zZXJ0QmVmb3JlIHdpdGggYSBub24tTm9kZSBmaXJzdCBh
cmd1bWVudCBvbiBhIGxlYWYgbm9kZSBEb2N1bWVudFR5cGUgbXVzdCB0aHJvdyBUeXBlRXJyb3Iu
IAogUEFTUyBDYWxsaW5nIGluc2VydEJlZm9yZSBhbiBhIGxlYWYgbm9kZSBEb2N1bWVudFR5cGUg
bXVzdCB0aHJvdyBISUVSQVJDSFlfUkVRVUVTVF9FUlIuIAotRkFJTCBDYWxsaW5nIGluc2VydEJl
Zm9yZSB3aXRoIGEgbm9uLU5vZGUgZmlyc3QgYXJndW1lbnQgb24gYSBsZWFmIG5vZGUgVGV4dCBt
dXN0IHRocm93IFR5cGVFcnJvci4gYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gImZ1bmN0aW9uICgp
IHsgbm9kZS5pbnNlcnRCZWZvcmUobnVsbCwgbnVsbCkgfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjog
SGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVz
dEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1Mg
Q2FsbGluZyBpbnNlcnRCZWZvcmUgd2l0aCBhIG5vbi1Ob2RlIGZpcnN0IGFyZ3VtZW50IG9uIGEg
bGVhZiBub2RlIFRleHQgbXVzdCB0aHJvdyBUeXBlRXJyb3IuIAogUEFTUyBDYWxsaW5nIGluc2Vy
dEJlZm9yZSBhbiBhIGxlYWYgbm9kZSBUZXh0IG11c3QgdGhyb3cgSElFUkFSQ0hZX1JFUVVFU1Rf
RVJSLiAKLUZBSUwgQ2FsbGluZyBpbnNlcnRCZWZvcmUgd2l0aCBhIG5vbi1Ob2RlIGZpcnN0IGFy
Z3VtZW50IG9uIGEgbGVhZiBub2RlIENvbW1lbnQgbXVzdCB0aHJvdyBUeXBlRXJyb3IuIGFzc2Vy
dF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IG5vZGUuaW5zZXJ0QmVmb3JlKG51bGws
IG51bGwpIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9N
IEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAi
VHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIENhbGxpbmcgaW5zZXJ0QmVmb3JlIHdpdGgg
YSBub24tTm9kZSBmaXJzdCBhcmd1bWVudCBvbiBhIGxlYWYgbm9kZSBDb21tZW50IG11c3QgdGhy
b3cgVHlwZUVycm9yLiAKIFBBU1MgQ2FsbGluZyBpbnNlcnRCZWZvcmUgYW4gYSBsZWFmIG5vZGUg
Q29tbWVudCBtdXN0IHRocm93IEhJRVJBUkNIWV9SRVFVRVNUX0VSUi4gCi1GQUlMIENhbGxpbmcg
aW5zZXJ0QmVmb3JlIHdpdGggYSBub24tTm9kZSBmaXJzdCBhcmd1bWVudCBvbiBhIGxlYWYgbm9k
ZSBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gbXVzdCB0aHJvdyBUeXBlRXJyb3IuIGFzc2VydF90aHJv
d3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IG5vZGUuaW5zZXJ0QmVmb3JlKG51bGwsIG51bGwp
IH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2Vw
dGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVy
cm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIENhbGxpbmcgaW5zZXJ0QmVmb3JlIHdpdGggYSBub24t
Tm9kZSBmaXJzdCBhcmd1bWVudCBvbiBhIGxlYWYgbm9kZSBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24g
bXVzdCB0aHJvdyBUeXBlRXJyb3IuIAogUEFTUyBDYWxsaW5nIGluc2VydEJlZm9yZSBhbiBhIGxl
YWYgbm9kZSBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gbXVzdCB0aHJvdyBISUVSQVJDSFlfUkVRVUVT
VF9FUlIuIAogUEFTUyBDYWxsaW5nIGluc2VydEJlZm9yZSB3aXRoIGFuIGluY2x1c2l2ZSBhbmNl
c3RvciBvZiB0aGUgY29udGV4dCBvYmplY3QgbXVzdCB0aHJvdyBISUVSQVJDSFlfUkVRVUVTVF9F
UlIuIAogUEFTUyBDYWxsaW5nIGluc2VydEJlZm9yZSB3aXRoIGEgcmVmZXJlbmNlIGNoaWxkIHdo
b3NlIHBhcmVudCBpcyBub3QgdGhlIGNvbnRleHQgbm9kZSBtdXN0IHRocm93IGEgTm90Rm91bmRF
cnJvci4gCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLXJlbW92ZUNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtcmVtb3Zl
Q2hpbGQtZXhwZWN0ZWQudHh0CmluZGV4IDAyOTEwYmY5Y2QyNDBhMGNkZDgzY2YxMzc2MGM0NTYw
ZGZkOTQzYTIuLjEzOTdjNGViZWY2Yzk3OGUxMDNhYjMxYTM4MTZmOTJkZWRjM2VmNTkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25v
ZGVzL05vZGUtcmVtb3ZlQ2hpbGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtcmVtb3ZlQ2hpbGQtZXhw
ZWN0ZWQudHh0CkBAIC0yNyw1ICsyNyw1IEBAIFBBU1MgQ2FsbGluZyByZW1vdmVDaGlsZCBvbiBh
IHRleHQgZnJvbSBhIHN5bnRoZXRpYyBkb2N1bWVudCB3aXRoIG5vIGNoaWxkcmVuIHNoCiBQQVNT
IFBhc3NpbmcgYSBkZXRhY2hlZCBjb21tZW50IGZyb20gYSBzeW50aGV0aWMgZG9jdW1lbnQgdG8g
cmVtb3ZlQ2hpbGQgc2hvdWxkIG5vdCBhZmZlY3QgaXQuIAogUEFTUyBQYXNzaW5nIGEgbm9uLWRl
dGFjaGVkIGNvbW1lbnQgZnJvbSBhIHN5bnRoZXRpYyBkb2N1bWVudCB0byByZW1vdmVDaGlsZCBz
aG91bGQgbm90IGFmZmVjdCBpdC4gCiBQQVNTIENhbGxpbmcgcmVtb3ZlQ2hpbGQgb24gYSBjb21t
ZW50IGZyb20gYSBzeW50aGV0aWMgZG9jdW1lbnQgd2l0aCBubyBjaGlsZHJlbiBzaG91bGQgdGhy
b3cgTk9UX0ZPVU5EX0VSUi4gCi1GQUlMIFBhc3NpbmcgYSB2YWx1ZSB0aGF0IGlzIG5vdCBhIE5v
ZGUgcmVmZXJlbmNlIHRvIHJlbW92ZUNoaWxkIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuIGFzc2Vy
dF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hp
bGQobnVsbCkgfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2Vw
dGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJU
eXBlRXJyb3IiKQorUEFTUyBQYXNzaW5nIGEgdmFsdWUgdGhhdCBpcyBub3QgYSBOb2RlIHJlZmVy
ZW5jZSB0byByZW1vdmVDaGlsZCBzaG91bGQgdGhyb3cgVHlwZUVycm9yLiAKIGIKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVz
L05vZGUtcmVwbGFjZUNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtcmVwbGFjZUNoaWxkLWV4cGVjdGVk
LnR4dAppbmRleCBlN2Y3MGZhMzZjNWMxY2JmOTJjN2U0YjdhNDlmYmY4YWRjYmM0ZjZkLi5kMTdj
OGI1NzBlYjEyMWU5NjczNmE5YzY5NGZiMjVmMTgxYWFmY2MwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLXJlcGxh
Y2VDaGlsZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1yZXBsYWNlQ2hpbGQtZXhwZWN0ZWQudHh0CkBA
IC0xLDcgKzEsNSBAQAogCi1GQUlMIFBhc3NpbmcgbnVsbCB0byByZXBsYWNlQ2hpbGQgc2hvdWxk
IHRocm93IGEgVHlwZUVycm9yLiBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkg
ewotICAgIGEucmVwbGFjZUNoaWxkKG51bGwsIG51bGwpOwotICB9IiBkaWQgbm90IHRocm93CitQ
QVNTIFBhc3NpbmcgbnVsbCB0byByZXBsYWNlQ2hpbGQgc2hvdWxkIHRocm93IGEgVHlwZUVycm9y
LiAKIEZBSUwgSWYgY2hpbGQncyBwYXJlbnQgaXMgbm90IHRoZSBjb250ZXh0IG5vZGUsIGEgTm90
Rm91bmRFcnJvciBleGNlcHRpb24gc2hvdWxkIGJlIHRocm93biBhc3NlcnRfdGhyb3dzOiBmdW5j
dGlvbiAiZnVuY3Rpb24gKCkgewogICAgIGEucmVwbGFjZUNoaWxkKGEsIGMpOwogICB9IiB0aHJl
dyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIg
dGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gTm90Rm91bmRFcnJvcjogcHJvcGVydHkgImNvZGUi
IGlzIGVxdWFsIHRvIDMsIGV4cGVjdGVkIDgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9t
L2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0CmluZGV4IDJlNThhZTYzNTE5YTc1NTM3ZWRkMmQ4OTc0
MTBmMjI1NjAwYzM2YzYuLjA0NjIyMDM1OWFhMTA4OGU5OTUwNjEwYjFmMTQ3NDZlMmJlMWQ2N2Mg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4
dApAQCAtMTIyNSwyMSArMTIyNSwxNSBAQCBGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGlz
RGVmYXVsdE5hbWVzcGFjZShET01TdHJpbmcpIG9uIGlmcmFtZS5jb250ZW50RG9jdQogICAgIFtu
YXRpdmUgY29kZV0KIH0iIGRpZCBub3QgdGhyb3cKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGlmcmFt
ZS5jb250ZW50RG9jdW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJpbnNlcnRCZWZvcmUiIHdp
dGggdGhlIHByb3BlciB0eXBlICg0MCkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGlu
c2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGlmcmFtZS5jb250ZW50RG9jdW1lbnQgd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQg
d2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworRkFJTCBOb2RlIGludGVy
ZmFjZTogY2FsbGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBvbiBpZnJhbWUuY29udGVudERv
Y3VtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0
X3Rocm93czogQ2FsbGVkIHdpdGggMSBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsK
ICAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9y
OiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlw
ZUVycm9yIiAoIlR5cGVFcnJvciIpCit9IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlS
ZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBl
eHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQogUEFTUyBOb2RlIGludGVy
ZmFjZTogaWZyYW1lLmNvbnRlbnREb2N1bWVudCBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFwcGVu
ZENoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDEpIAotRkFJTCBOb2RlIGludGVyZmFjZTog
Y2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiBpZnJhbWUuY29udGVudERvY3VtZW50IHdpdGgg
dG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2Fs
bGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZl
IGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0
aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5
cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUp
IG9uIGlmcmFtZS5jb250ZW50RG9jdW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRo
cm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGlmcmFtZS5jb250ZW50RG9jdW1l
bnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZXBsYWNlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0
eXBlICg0MikgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2Rl
LE5vZGUpIG9uIGlmcmFtZS5jb250ZW50RG9jdW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBt
dXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50
cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIGRpZCBub3Qg
dGhyb3cKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9k
ZSkgb24gaWZyYW1lLmNvbnRlbnREb2N1bWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3Qg
dGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGludGVyZmFjZTogaWZyYW1lLmNvbnRlbnREb2N1
bWVudCBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlbW92ZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAoNDMpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2Rl
KSBvbiBpZnJhbWUuY29udGVudERvY3VtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0
aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVu
Y3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3Qg
IkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIp
IGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50
ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIGlmcmFtZS5jb250ZW50RG9jdW1l
bnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgRXZl
bnRUYXJnZXQgaW50ZXJmYWNlOiBpZnJhbWUuY29udGVudERvY3VtZW50IG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAiYWRkRXZlbnRMaXN0ZW5lciIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDApIAogRkFJ
TCBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGNhbGxpbmcgYWRkRXZlbnRMaXN0ZW5lcihET01TdHJp
bmcsRXZlbnRMaXN0ZW5lcixib29sZWFuKSBvbiBpZnJhbWUuY29udGVudERvY3VtZW50IHdpdGgg
dG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2Fs
bGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZl
IGNvZGVdCkBAIC0xNTUxLDIxICsxNTQ1LDE1IEBAIEZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxp
bmcgaXNEZWZhdWx0TmFtZXNwYWNlKERPTVN0cmluZykgb24gZG9jdW1lbnQuaW1wbGVtZW50CiAg
ICAgW25hdGl2ZSBjb2RlXQogfSIgZGlkIG5vdCB0aHJvdwogUEFTUyBOb2RlIGludGVyZmFjZTog
ZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwgIiIsIG51bGwpIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5zZXJ0QmVmb3JlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAo
NDApIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2Rl
KSBvbiBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudChudWxsLCAiIiwgbnVs
bCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhy
b3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworRkFJ
TCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBvbiBkb2N1
bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudChudWxsLCAiIiwgbnVsbCkgd2l0aCB0
b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxs
ZWQgd2l0aCAxIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUg
Y29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRp
b24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlw
ZUVycm9yIikKK30iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjog
RE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVj
dCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVu
dC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudChudWxsLCAiIiwgbnVsbCkgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJhcHBlbmRDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQxKSAKLUZB
SUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQu
aW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwgIiIsIG51bGwpIHdpdGggdG9vIGZl
dyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdp
dGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVd
Ci19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgi
ICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJv
ciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGRv
Y3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSB3aXRo
IHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGludGVy
ZmFjZTogZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwgIiIsIG51
bGwpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVwbGFjZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAoNDIpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9k
ZSxOb2RlKSBvbiBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudChudWxsLCAi
IiwgbnVsbCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3Nl
cnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkg
ewotICAgIFtuYXRpdmUgY29kZV0KLX0iIGRpZCBub3QgdGhyb3cKK1BBU1MgTm9kZSBpbnRlcmZh
Y2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuaW1wbGVtZW50
YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwgIiIsIG51bGwpIHdpdGggdG9vIGZldyBhcmd1bWVu
dHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5p
bXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudChudWxsLCAiIiwgbnVsbCkgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJyZW1vdmVDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQzKSAKLUZBSUwg
Tm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuaW1w
bGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwgIiIsIG51bGwpIHdpdGggdG9vIGZldyBh
cmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGgg
MCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19
IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgi
Tm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIp
CitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIGRvY3Vt
ZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSB3aXRoIHRv
byBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBFdmVudFRhcmdldCBp
bnRlcmZhY2U6IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KG51bGwsICIi
LCBudWxsKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFkZEV2ZW50TGlzdGVuZXIiIHdpdGggdGhl
IHByb3BlciB0eXBlICgwKSAKIEZBSUwgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBjYWxsaW5nIGFk
ZEV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nLEV2ZW50TGlzdGVuZXIsYm9vbGVhbikgb24gZG9jdW1l
bnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwgIiIsIG51bGwpIHdpdGggdG9v
IGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVk
IHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNv
ZGVdCkBAIC0yMTcxLDIxICsyMTU5LDE1IEBAIEZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcg
aXNEZWZhdWx0TmFtZXNwYWNlKERPTVN0cmluZykgb24gZG9jdW1lbnQuY3JlYXRlRWxlCiAgICAg
W25hdGl2ZSBjb2RlXQogfSIgZGlkIG5vdCB0aHJvdwogUEFTUyBOb2RlIGludGVyZmFjZTogZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgibm9zY3JpcHQiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImlu
c2VydEJlZm9yZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQwKSAKLUZBSUwgTm9kZSBpbnRlcmZh
Y2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgibm9zY3JpcHQiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVy
cm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5j
dGlvbiAoKSB7CitGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2Rl
LE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm5vc2NyaXB0Iikgd2l0aCB0b28gZmV3
IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0
aCAxIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0K
LX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIg
KCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9y
IikKK30iIGRpZCBub3QgdGhyb3cKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoIm5vc2NyaXB0IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhcHBlbmRDaGlsZCIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQxKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcg
YXBwZW5kQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibm9zY3JpcHQiKSB3
aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6
IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25h
dGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4
Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIg
KCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChO
b2RlKSBvbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJub3NjcmlwdCIpIHdpdGggdG9vIGZldyBh
cmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJub3NjcmlwdCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVw
bGFjZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDIpIAotRkFJTCBOb2RlIGludGVyZmFj
ZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJub3NjcmlwdCIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJy
b3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0
aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiBkaWQgbm90IHRocm93CitQQVNTIE5vZGUg
aW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoIm5vc2NyaXB0Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93
IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
Im5vc2NyaXB0IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZW1vdmVDaGlsZCIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgKDQzKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hp
bGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibm9zY3JpcHQiKSB3aXRoIHRvbyBm
ZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3
aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2Rl
XQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4
IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJy
b3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJub3NjcmlwdCIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMg
bXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgibm9zY3JpcHQiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFkZEV2
ZW50TGlzdGVuZXIiIHdpdGggdGhlIHByb3BlciB0eXBlICgwKSAKIEZBSUwgRXZlbnRUYXJnZXQg
aW50ZXJmYWNlOiBjYWxsaW5nIGFkZEV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nLEV2ZW50TGlzdGVu
ZXIsYm9vbGVhbikgb24gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibm9zY3JpcHQiKSB3aXRoIHRv
byBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxl
ZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAgICAgW25hdGl2ZSBj
b2RlXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260818</attachid>
            <date>2015-09-08 17:26:26 -0700</date>
            <delta_ts>2015-09-08 23:17:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148971-20150908172621.patch</filename>
            <type>text/plain</type>
            <size>241233</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWNlN2I0YzhkODliNjUy
ZjkxMzA3NjljMDYyZTA0NGE2YTY5NGUyNi4uYWVlN2NiZDJlZGNjMmIwMmQzYTUyYTZjNGI2OTE4
MjdmMjQwYjYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE1LTA5LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTm9kZS5hcHBlbmRDaGlsZChu
dWxsKSAvIHJlcGxhY2VDaGlsZChudWxsLCBudWxsKSAvIHJlbW92ZUNoaWxkKG51bGwpIC8gaW5z
ZXJ0QmVmb3JlKG51bGwsIHJlZikgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg5NzEKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzIyNTYwODgzPgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjI1NTkyMjU+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm9kZS5h
cHBlbmRDaGlsZChudWxsKSAvIHJlcGxhY2VDaGlsZChudWxsLCBudWxsKSAvIHJlbW92ZUNoaWxk
KG51bGwpCisgICAgICAgIGFuZCBpbnNlcnRCZWZvcmUobnVsbCwgcmVmKSBzaG91bGQgdGhyb3cg
YSBUeXBlRXJyb3IgaW5zdGVhZCBvZiBhCisgICAgICAgIE5vdEZvdW5kRXJyb3IsIGFzIHBlciB0
aGUgc3BlY2lmaWNhdGlvbjoKKyAgICAgICAgaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNu
b2RlCisKKyAgICAgICAgVGhlIHBhcmFtZXRlcnMgYXJlIG5vdCBudWxsYWJsZSBzbyB0aGUgV2Vi
IElETCBzcGVjaWZpY2F0aW9uIHNheXMKKyAgICAgICAgd2Ugc2hvdWxkIHRocm93IGEgVHlwZUVy
cm9yIGluIHRoaXMgY2FzZS4KKworICAgICAgICBUaGlzIHBhdGNoIG1vdmVzIHRoZSBudWxsLWNo
ZWNraW5nIGZyb20gQ29udGFpbmVyTm9kZSB0byB0aGUgbWV0aG9kcworICAgICAgICBvbiBOb2Rl
LiBUaGUgbnVsbC1jaGVja2luZyBpcyBzdXBwb3NlZCB0byBiZSBkb25lIGJ5IHRoZSBiaW5kaW5n
cyBjb2RlCisgICAgICAgIGJ1dCBvdXIgZ2VuZXJhdG9yIGN1cnJlbnRseSBkb2VzIG5vdCBzdXBw
b3J0IHRoaXMgc28gd2UgZG8gdGhlIG51bGwKKyAgICAgICAgY2hlY2tpbmcgYXMgY2xvc2UgdG8g
dGhlIGJpbmRpbmdzIGFzIHBvc3NpYmxlLiBUaGUgYmluZGluZ3MgY29kZSBpcworICAgICAgICBj
YWxsaW5nIHRoZSBtZXRob2RzIG9uIE5vZGUuIFRoaXMgYWxzbyBtYWtlcyBzdXJlIHdlIHRocm93
IGEgVHlwZUVycm9yCisgICAgICAgIGZvciBudWxsLWFyZ3VtZW50IHdoZW4gdGhlIE5vZGUgaXMg
bm90IGEgQ29udGFpbmVyTm9kZS4gRm9yIGUuZy4KKyAgICAgICAgVGV4dC5hcHBlbmRDaGlsZChu
dWxsKSBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3IgdG9vLgorCisgICAgICAgIFRoZSBtZXRob2Rz
IG9uIENvbnRhaW5lck5vZGUgbm93IHRha2UgcmVmZXJlbmNlcyBpbnN0ZWFhZCBvZiBwb2ludGVy
CisgICAgICAgIHBhcmFtZXRlcnMgbm93IHRoYXQgdGhlIG51bGwtY2hlY2tpbmcgaXMgZG9uZSBh
dCB0aGUgY2FsbCBzaXRlIGluCisgICAgICAgIE5vZGUuIFRoaXMgbGVhZCB0byBhIGxvdCBvZiBj
b2RlIHVwZGF0ZSBhcyB0aG9zZSBtZXRob2RzIGFyZSB1c2VkCisgICAgICAgIGEgbG90IHRocm91
Z2hvdXQgdGhlIGNvZGUgYmFzZS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGFscmVhZHkgY292
ZXJlZCBieSBwcmUtZXhpc3RpbmcgbGF5b3V0IHRlc3RzLgorCisgICAgICAgICogaHRtbC9IVE1M
VGFibGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUVsZW1lbnQ6OnNl
dENhcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRhYmxlRWxlbWVudDo6c2V0VEhlYWQp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRhYmxlRWxlbWVudDo6c2V0VEZvb3QpOgorICAgICAg
ICAqIGh0bWwvSFRNTFRhYmxlRWxlbWVudC5pZGw6CisgICAgICAgIERvIHRoZSB0eXBlIGNoZWNr
aW5nIGZvciBjYXB0aW9uL3RIZWFkL3RGb290IGF0dHJpYnV0ZSBzZXR0ZXJzIGF0CisgICAgICAg
IGJpbmRpbmdzIGxldmVsLiBUaGUgYmluZGluZ3MgY29kZSB3aWxsIG5vdCB0aHJvdyBhIFR5cGVF
cnJvciBmb3IgdXMKKyAgICAgICAgaWYgdGhlIEpTIHBhc3NlcyBhIHR5cGUgdGhhdCBpcyBub3Qg
YSBIVE1MVGFibGVDYXB0aW9uRWxlbWVudCAvCisgICAgICAgIEhUTUxUYWJsZVNlY3Rpb25FbGVt
ZW50LiBUaGlzIHdheSwgd2Ugbm93IHRoYXQgaWYgdGhlIGltcGxlbWVudGF0aW9uCisgICAgICAg
IGdldHMgbnVsbCwgaXQgaXMgYmVjYXVzZSB0aGUgSlMgcGFzc2VkIG51bGwuIFRoaXMgaXMgdmFs
aWQgYXMgdGhlc2UKKyAgICAgICAgYXR0cmlidXRlcyBhcmUgbnVsbGFibGUgaW4gdGhlIHNwZWNp
ZmljYXRpb246CisgICAgICAgIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdl
L3RhYmxlcy5odG1sI3RoZS10YWJsZS1lbGVtZW50CisKIDIwMTUtMDktMDggIEJyaWFuIEJ1cmcg
IDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgU2V2ZXJhbCBpbnNwZWN0b3ItcHJvdG9jb2wg
dGVzdHMgYXJlIGZsYWt5IHdpdGggR3VhcmRNYWxsb2MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA2MGFk
ZjczMmFjODdhYmUwNDEyMjcxM2NmMzU5MTcwODMxZGM5ZTE1Li5mODI3OTRjYTUwNmNjNDI4MzQ1
MDZjYjA1NmJjZGYwNmE2Y2M2MmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTUtMDktMDggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBO
b2RlLmFwcGVuZENoaWxkKG51bGwpIC8gcmVwbGFjZUNoaWxkKG51bGwsIG51bGwpIC8gcmVtb3Zl
Q2hpbGQobnVsbCkgLyBpbnNlcnRCZWZvcmUobnVsbCwgcmVmKSBzaG91bGQgdGhyb3cgYSBUeXBl
RXJyb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
ODk3MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjI1NjA4ODM+CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS8yMjU1OTIyNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBDb250YWluZXJOb2RlOjphcHBlbmRDaGlsZCgpIG5vdyB0YWtlcyBhIFJlZjxO
b2RlPiYmIHBhcmFtZXRlciBzbyB3ZQorICAgICAgICBuZWVkIHRvIHVwZGF0ZSB0aGUgY2FsbCBz
aXRlLgorCisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZS5tbToKKyAgICAgICAgKC1bV2ViRnJh
bWUgX2RvY3VtZW50RnJhZ21lbnRXaXRoTm9kZXNBc1BhcmFncmFwaHM6XSk6CisKIDIwMTUtMDkt
MDcgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIERlYnVn
UmVsZWFzZSBidWlsZHMgc2hvdWxkIGxpbmsgYWdhaW5zdCBsaWJXZWJLaXRTeXN0ZW1JbnRlcmZh
Y2VFbENhcGl0YW4uYSBvbiAxMC4xMQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDI0MTkyNWQxMDkxYTZiNGQ4ZmRl
NGQ1Y2FiZTlmNzdlNjk0ZWMwY2UuLjhkOGM5YWEwMjA5YzNkYTdjMmZlZDgwMTRjMzQ1ZTUwZmI5
ZmYxNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxNS0wOS0wOCAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIE5vZGUuYXBwZW5kQ2hpbGQobnVsbCkg
LyByZXBsYWNlQ2hpbGQobnVsbCwgbnVsbCkgLyByZW1vdmVDaGlsZChudWxsKSAvIGluc2VydEJl
Zm9yZShudWxsLCByZWYpIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4OTcxCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS8yMjU2MDg4Mz4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIyNTU5MjI1PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbnRhaW5lck5v
ZGU6OmFwcGVuZENoaWxkKCkgbm93IHRha2VzIGEgUmVmPE5vZGU+JiYgcGFyYW1ldGVyIHNvIHdl
CisgICAgICAgIG5lZWQgdG8gdXBkYXRlIHRoZSBjYWxsIHNpdGVzLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW06CisgICAgICAgIChXZWJLaXQ6OlBERlBs
dWdpbjo6UERGUGx1Z2luKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBs
dWdpbkFubm90YXRpb24ubW06CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbkFubm90YXRpb246
OmF0dGFjaCk6CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbkFubm90YXRpb246On5QREZQbHVn
aW5Bbm5vdGF0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdp
bkNob2ljZUFubm90YXRpb24ubW06CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbkNob2ljZUFu
bm90YXRpb246OmNyZWF0ZUFubm90YXRpb25FbGVtZW50KToKKwogMjAxNS0wOS0wOCAgRGFuaWVs
IEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW01hY10gRXhwb3NlIEVuYWJs
ZS9EaXNhYmxlIEFjY2VsZXJhdGVkIERyYXdpbmcgaW4gTWluaUJyb3dzZXIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNl
bWVudC5jcHAKaW5kZXggOGY5NmM5ZjAyOGM3MjhmZGEwM2JiNTBhN2VlOTZiYWZjM2RhOTA1Yi4u
YjQ0Y2ZkMjA4NTllNzRlMTMxN2E5MzRhMTVjNTc2Njk4YjdlMTdiOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNl
bWVudC5jcHAKQEAgLTgxLDkgKzgxLDkgQEAgYm9vbCBZb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQ6
Omluc3RhbGxSZXBsYWNlbWVudChTaGFkb3dSb290KiByb290KQogewogICAgIG1fZW1iZWRTaGFk
b3dFbGVtZW50ID0gWW91VHViZUVtYmVkU2hhZG93RWxlbWVudDo6Y3JlYXRlKG1fcGFyZW50RWxl
bWVudC0+ZG9jdW1lbnQoKSk7CiAKLSAgICByb290LT5hcHBlbmRDaGlsZChtX2VtYmVkU2hhZG93
RWxlbWVudC5nZXQoKSk7CisgICAgcm9vdC0+YXBwZW5kQ2hpbGQoKm1fZW1iZWRTaGFkb3dFbGVt
ZW50KTsKIAotICAgIFJlZlB0cjxIVE1MSUZyYW1lRWxlbWVudD4gaWZyYW1lRWxlbWVudCA9IEhU
TUxJRnJhbWVFbGVtZW50OjpjcmVhdGUoSFRNTE5hbWVzOjppZnJhbWVUYWcsIG1fcGFyZW50RWxl
bWVudC0+ZG9jdW1lbnQoKSk7CisgICAgUmVmPEhUTUxJRnJhbWVFbGVtZW50PiBpZnJhbWVFbGVt
ZW50ID0gSFRNTElGcmFtZUVsZW1lbnQ6OmNyZWF0ZShIVE1MTmFtZXM6OmlmcmFtZVRhZywgbV9w
YXJlbnRFbGVtZW50LT5kb2N1bWVudCgpKTsKICAgICBpZiAobV9hdHRyaWJ1dGVzLmNvbnRhaW5z
KCJ3aWR0aCIpKQogICAgICAgICBpZnJhbWVFbGVtZW50LT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVz
Ojp3aWR0aEF0dHIsIEF0b21pY1N0cmluZygiMTAwJSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKICAgICAKQEAgLTk4LDcgKzk4LDcgQEAgYm9vbCBZb3VUdWJlUGx1Z2lu
UmVwbGFjZW1lbnQ6Omluc3RhbGxSZXBsYWNlbWVudChTaGFkb3dSb290KiByb290KQogICAgIAog
ICAgIC8vIERpc2FibGUgZnJhbWUgZmxhdHRlbmluZyBmb3IgdGhpcyBpZnJhbWUuCiAgICAgaWZy
YW1lRWxlbWVudC0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6c2Nyb2xsaW5nQXR0ciwgQXRvbWlj
U3RyaW5nKCJubyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBt
X2VtYmVkU2hhZG93RWxlbWVudC0+YXBwZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAgbV9l
bWJlZFNoYWRvd0VsZW1lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShpZnJhbWVFbGVtZW50KSk7
CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9B
dHRyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmNwcAppbmRleCAxODU3MGYxZDg3NDMx
YTFmM2E0NGRhMDNlNThhMmVjNWZmNzFhNzhjLi5hYzdiNjZmOTk3MDVkODk5ZWVjZTNjMjg5NGY4
OWUxZjgwOWQxNWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwCkBAIC0xMzgsMTEgKzEzOCwxMSBAQCB2b2lk
IEF0dHI6OnNldE5vZGVWYWx1ZShjb25zdCBTdHJpbmcmIHYsIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ICAgIHNldFZhbHVlKHYsIGVjKTsKIH0KIAotUmVmUHRyPE5vZGU+IEF0dHI6OmNsb25lTm9kZUlu
dGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikKK1JlZjxO
b2RlPiBBdHRyOjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENs
b25pbmdPcGVyYXRpb24pCiB7Ci0gICAgUmVmUHRyPEF0dHI+IGNsb25lID0gYWRvcHRSZWYobmV3
IEF0dHIodGFyZ2V0RG9jdW1lbnQsIHF1YWxpZmllZE5hbWUoKSwgdmFsdWUoKSkpOwotICAgIGNs
b25lQ2hpbGROb2RlcyhjbG9uZS5nZXQoKSk7Ci0gICAgcmV0dXJuIGNsb25lLnJlbGVhc2UoKTsK
KyAgICBSZWY8QXR0cj4gY2xvbmUgPSBhZG9wdFJlZigqbmV3IEF0dHIodGFyZ2V0RG9jdW1lbnQs
IHF1YWxpZmllZE5hbWUoKSwgdmFsdWUoKSkpOworICAgIGNsb25lQ2hpbGROb2RlcyhjbG9uZSk7
CisgICAgcmV0dXJuIFdURjo6bW92ZShjbG9uZSk7CiB9CiAKIC8vIERPTSBTZWN0aW9uIDEuMS4x
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0F0dHIuaAppbmRleCBjN2E5NGY5OGYwYmZiNTdlYjBjM2FiNTE3OTg4YTQ0ODBiMzQ5MDEw
Li4xMjRjNmQ3YTJhYTI4NjgzMGZjYmEyOTYyODg4OGI3MjAyMjk5Mjg2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vQXR0ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmgK
QEAgLTgwLDcgKzgwLDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVWYWx1
ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHZhbHVlKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQg
c2V0Tm9kZVZhbHVlKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKLSAg
ICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25p
bmdPcGVyYXRpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNsb25lTm9kZUlu
dGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0
dWFsIGJvb2wgaXNBdHRyaWJ1dGVOb2RlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsg
fQogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlKSBjb25zdCBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DREFUQVNlY3Rpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0NEQVRBU2VjdGlvbi5jcHAKaW5kZXggYzU5YmYxZTk1OGZkYTQ1
MGFlOTJkZjIyYjc0MDlmZmI5NjhhMGJlYi4uYWZkNzMyMjcwZjEyYzZkOGRjZmZiOGZmODI3YTEz
OWNjMzFhMzFlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NEQVRBU2VjdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NEQVRBU2VjdGlvbi5jcHAKQEAgLTQ2LDcgKzQ2
LDcgQEAgTm9kZTo6Tm9kZVR5cGUgQ0RBVEFTZWN0aW9uOjpub2RlVHlwZSgpIGNvbnN0CiAgICAg
cmV0dXJuIENEQVRBX1NFQ1RJT05fTk9ERTsKIH0KIAotUmVmUHRyPE5vZGU+IENEQVRBU2VjdGlv
bjo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3Bl
cmF0aW9uKQorUmVmPE5vZGU+IENEQVRBU2VjdGlvbjo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1l
bnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uKQogewogICAgIHJldHVybiBjcmVh
dGUodGFyZ2V0RG9jdW1lbnQsIGRhdGEoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ0RBVEFTZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ0RBVEFTZWN0aW9uLmgK
aW5kZXggYmY1YTYxYzYyNjg1YjIzNzA1ZDY0YjRjZTM5NDZhNjM3ODQ5MjNhNy4uZDZiOTkzN2Rm
Yzc1YTU4ZTk2ZWFiNTJkZjI2YWQ5YjRiN2RlZjI2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0NEQVRBU2VjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DREFUQVNlY3Rp
b24uaApAQCAtMzYsNyArMzYsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBTdHJpbmcgbm9k
ZU5hbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIE5vZGVUeXBlIG5vZGVUeXBlKCkg
Y29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZWZQdHI8Tm9kZT4gY2xvbmVOb2RlSW50ZXJu
YWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJl
ZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlKSBjb25z
dCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFJlZjxUZXh0PiB2aXJ0dWFsQ3JlYXRlKGNvbnN0IFN0
cmluZyYpIG92ZXJyaWRlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21t
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21tZW50LmNwcAppbmRleCA0Yzc0YWFmNjNh
ZDkwNTNjNmFiZTU5NTU2MjMxODVkMjdkOTg5ZDZiLi40MTI1YTZlYWUxYWRmOWE4Zjg2NmZlYjU0
MjlmNGYzZDQyMGI3MjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbW1lbnQuY3BwCkBAIC00Niw3ICs0Niw3IEBA
IE5vZGU6Ok5vZGVUeXBlIENvbW1lbnQ6Om5vZGVUeXBlKCkgY29uc3QKICAgICByZXR1cm4gQ09N
TUVOVF9OT0RFOwogfQogCi1SZWZQdHI8Tm9kZT4gQ29tbWVudDo6Y2xvbmVOb2RlSW50ZXJuYWwo
RG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uKQorUmVmPE5vZGU+IENv
bW1lbnQ6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmlu
Z09wZXJhdGlvbikKIHsKICAgICByZXR1cm4gY3JlYXRlKHRhcmdldERvY3VtZW50LCBkYXRhKCkp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Db21tZW50LmgKaW5kZXggZmNhYzYwYTMzZTVlMzBhMWU1OWMxZGM5ZWYzYjYz
OTRhZGU3Yjc1OS4uMTU2NjMyMzMyYTIwNjhmM2E5Yjg1MjZjYmNjNzQ2NTQ4NjE1OTljMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ29tbWVudC5oCkBAIC0zNiw3ICszNiw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFs
IFN0cmluZyBub2RlTmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgTm9kZVR5cGUg
bm9kZVR5cGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBjbG9u
ZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgUmVmPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09w
ZXJhdGlvbikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGNoaWxkVHlwZUFsbG93ZWQoTm9k
ZVR5cGUpIGNvbnN0IG92ZXJyaWRlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0NvbnRhaW5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUu
Y3BwCmluZGV4IGYwNjMxYjZiZGQ0ZGE3ZGEyZGE0YmQ0ZmE5OTRjMTljZjk5MGMzZDUuLjJjM2I1
ZWQzMTlmNjU4ODFlMWMzZWE4OGIxMjQ1YmJhMDBlN2M4MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29u
dGFpbmVyTm9kZS5jcHAKQEAgLTc2LDcgKzc2LDcgQEAgc3RhdGljIHZvaWQgY29sbGVjdENoaWxk
cmVuQW5kUmVtb3ZlRnJvbU9sZFBhcmVudChOb2RlJiBub2RlLCBOb2RlVmVjdG9yJiBub2RlcywK
ICAgICBpZiAoIWlzPERvY3VtZW50RnJhZ21lbnQ+KG5vZGUpKSB7CiAgICAgICAgIG5vZGVzLmFw
cGVuZChub2RlKTsKICAgICAgICAgaWYgKENvbnRhaW5lck5vZGUqIG9sZFBhcmVudCA9IG5vZGUu
cGFyZW50Tm9kZSgpKQotICAgICAgICAgICAgb2xkUGFyZW50LT5yZW1vdmVDaGlsZCgmbm9kZSwg
ZWMpOworICAgICAgICAgICAgb2xkUGFyZW50LT5yZW1vdmVDaGlsZChub2RlLCBlYyk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE0NiwxMyArMTQ2LDEzIEBAIENvbnRhaW5lck5vZGU6
On5Db250YWluZXJOb2RlKCkKICAgICByZW1vdmVEZXRhY2hlZENoaWxkcmVuKCk7CiB9CiAKLXN0
YXRpYyBpbmxpbmUgYm9vbCBpc0NoaWxkVHlwZUFsbG93ZWQoQ29udGFpbmVyTm9kZSogbmV3UGFy
ZW50LCBOb2RlKiBjaGlsZCkKK3N0YXRpYyBpbmxpbmUgYm9vbCBpc0NoaWxkVHlwZUFsbG93ZWQo
Q29udGFpbmVyTm9kZSYgbmV3UGFyZW50LCBOb2RlJiBjaGlsZCkKIHsKLSAgICBpZiAoIWNoaWxk
LT5pc0RvY3VtZW50RnJhZ21lbnQoKSkKLSAgICAgICAgcmV0dXJuIG5ld1BhcmVudC0+Y2hpbGRU
eXBlQWxsb3dlZChjaGlsZC0+bm9kZVR5cGUoKSk7CisgICAgaWYgKCFjaGlsZC5pc0RvY3VtZW50
RnJhZ21lbnQoKSkKKyAgICAgICAgcmV0dXJuIG5ld1BhcmVudC5jaGlsZFR5cGVBbGxvd2VkKGNo
aWxkLm5vZGVUeXBlKCkpOwogCi0gICAgZm9yIChOb2RlKiBub2RlID0gY2hpbGQtPmZpcnN0Q2hp
bGQoKTsgbm9kZTsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpIHsKLSAgICAgICAgaWYgKCFu
ZXdQYXJlbnQtPmNoaWxkVHlwZUFsbG93ZWQobm9kZS0+bm9kZVR5cGUoKSkpCisgICAgZm9yIChO
b2RlKiBub2RlID0gY2hpbGQuZmlyc3RDaGlsZCgpOyBub2RlOyBub2RlID0gbm9kZS0+bmV4dFNp
YmxpbmcoKSkgeworICAgICAgICBpZiAoIW5ld1BhcmVudC5jaGlsZFR5cGVBbGxvd2VkKG5vZGUt
Pm5vZGVUeXBlKCkpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICByZXR1
cm4gdHJ1ZTsKQEAgLTE2OSwyMyArMTY5LDE5IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0luVGVt
cGxhdGVDb250ZW50KGNvbnN0IE5vZGUqIG5vZGUpCiAjZW5kaWYKIH0KIAotc3RhdGljIGlubGlu
ZSBib29sIGNvbnRhaW5zQ29uc2lkZXJpbmdIb3N0RWxlbWVudHMoY29uc3QgTm9kZSogbmV3Q2hp
bGQsIGNvbnN0IE5vZGUqIG5ld1BhcmVudCkKK3N0YXRpYyBpbmxpbmUgYm9vbCBjb250YWluc0Nv
bnNpZGVyaW5nSG9zdEVsZW1lbnRzKGNvbnN0IE5vZGUmIG5ld0NoaWxkLCBjb25zdCBOb2RlJiBu
ZXdQYXJlbnQpCiB7Ci0gICAgcmV0dXJuIChuZXdQYXJlbnQtPmlzSW5TaGFkb3dUcmVlKCkgfHwg
aXNJblRlbXBsYXRlQ29udGVudChuZXdQYXJlbnQpKQotICAgICAgICA/IG5ld0NoaWxkLT5jb250
YWluc0luY2x1ZGluZ0hvc3RFbGVtZW50cyhuZXdQYXJlbnQpCi0gICAgICAgIDogbmV3Q2hpbGQt
PmNvbnRhaW5zKG5ld1BhcmVudCk7CisgICAgcmV0dXJuIChuZXdQYXJlbnQuaXNJblNoYWRvd1Ry
ZWUoKSB8fCBpc0luVGVtcGxhdGVDb250ZW50KCZuZXdQYXJlbnQpKQorICAgICAgICA/IG5ld0No
aWxkLmNvbnRhaW5zSW5jbHVkaW5nSG9zdEVsZW1lbnRzKCZuZXdQYXJlbnQpCisgICAgICAgIDog
bmV3Q2hpbGQuY29udGFpbnMoJm5ld1BhcmVudCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgRXhjZXB0
aW9uQ29kZSBjaGVja0FjY2VwdENoaWxkKENvbnRhaW5lck5vZGUqIG5ld1BhcmVudCwgTm9kZSog
bmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkKQorc3RhdGljIGlubGluZSBFeGNlcHRpb25Db2RlIGNo
ZWNrQWNjZXB0Q2hpbGQoQ29udGFpbmVyTm9kZSYgbmV3UGFyZW50LCBOb2RlJiBuZXdDaGlsZCwg
Tm9kZSogb2xkQ2hpbGQpCiB7Ci0gICAgLy8gTm90IG1lbnRpb25lZCBpbiBzcGVjOiB0aHJvdyBO
T1RfRk9VTkRfRVJSIGlmIG5ld0NoaWxkIGlzIG51bGwKLSAgICBpZiAoIW5ld0NoaWxkKQotICAg
ICAgICByZXR1cm4gTk9UX0ZPVU5EX0VSUjsKLQogICAgIC8vIFVzZSBjb21tb24gY2FzZSBmYXN0
IHBhdGggaWYgcG9zc2libGUuCi0gICAgaWYgKChuZXdDaGlsZC0+aXNFbGVtZW50Tm9kZSgpIHx8
IG5ld0NoaWxkLT5pc1RleHROb2RlKCkpICYmIG5ld1BhcmVudC0+aXNFbGVtZW50Tm9kZSgpKSB7
Ci0gICAgICAgIEFTU0VSVCghbmV3UGFyZW50LT5pc1JlYWRPbmx5Tm9kZSgpKTsKLSAgICAgICAg
QVNTRVJUKCFuZXdQYXJlbnQtPmlzRG9jdW1lbnRUeXBlTm9kZSgpKTsKKyAgICBpZiAoKG5ld0No
aWxkLmlzRWxlbWVudE5vZGUoKSB8fCBuZXdDaGlsZC5pc1RleHROb2RlKCkpICYmIG5ld1BhcmVu
dC5pc0VsZW1lbnROb2RlKCkpIHsKKyAgICAgICAgQVNTRVJUKCFuZXdQYXJlbnQuaXNSZWFkT25s
eU5vZGUoKSk7CisgICAgICAgIEFTU0VSVCghbmV3UGFyZW50LmlzRG9jdW1lbnRUeXBlTm9kZSgp
KTsKICAgICAgICAgQVNTRVJUKGlzQ2hpbGRUeXBlQWxsb3dlZChuZXdQYXJlbnQsIG5ld0NoaWxk
KSk7CiAgICAgICAgIGlmIChjb250YWluc0NvbnNpZGVyaW5nSG9zdEVsZW1lbnRzKG5ld0NoaWxk
LCBuZXdQYXJlbnQpKQogICAgICAgICAgICAgcmV0dXJuIEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsK
QEAgLTE5MywxNyArMTg5LDE3IEBAIHN0YXRpYyBpbmxpbmUgRXhjZXB0aW9uQ29kZSBjaGVja0Fj
Y2VwdENoaWxkKENvbnRhaW5lck5vZGUqIG5ld1BhcmVudCwgTm9kZSogbmV3CiAgICAgfQogCiAg
ICAgLy8gVGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuLCBidXQgYWxzbyBwcm90ZWN0IHJlbGVhc2Ug
YnVpbGRzIGZyb20gdHJlZSBjb3JydXB0aW9uLgotICAgIEFTU0VSVCghbmV3Q2hpbGQtPmlzUHNl
dWRvRWxlbWVudCgpKTsKLSAgICBpZiAobmV3Q2hpbGQtPmlzUHNldWRvRWxlbWVudCgpKQorICAg
IEFTU0VSVCghbmV3Q2hpbGQuaXNQc2V1ZG9FbGVtZW50KCkpOworICAgIGlmIChuZXdDaGlsZC5p
c1BzZXVkb0VsZW1lbnQoKSkKICAgICAgICAgcmV0dXJuIEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsK
IAotICAgIGlmIChuZXdQYXJlbnQtPmlzUmVhZE9ubHlOb2RlKCkpCisgICAgaWYgKG5ld1BhcmVu
dC5pc1JlYWRPbmx5Tm9kZSgpKQogICAgICAgICByZXR1cm4gTk9fTU9ESUZJQ0FUSU9OX0FMTE9X
RURfRVJSOwogICAgIGlmIChjb250YWluc0NvbnNpZGVyaW5nSG9zdEVsZW1lbnRzKG5ld0NoaWxk
LCBuZXdQYXJlbnQpKQogICAgICAgICByZXR1cm4gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwogCi0g
ICAgaWYgKG9sZENoaWxkICYmIGlzPERvY3VtZW50PigqbmV3UGFyZW50KSkgewotICAgICAgICBp
ZiAoIWRvd25jYXN0PERvY3VtZW50PigqbmV3UGFyZW50KS5jYW5SZXBsYWNlQ2hpbGQobmV3Q2hp
bGQsIG9sZENoaWxkKSkKKyAgICBpZiAob2xkQ2hpbGQgJiYgaXM8RG9jdW1lbnQ+KG5ld1BhcmVu
dCkpIHsKKyAgICAgICAgaWYgKCFkb3duY2FzdDxEb2N1bWVudD4obmV3UGFyZW50KS5jYW5SZXBs
YWNlQ2hpbGQobmV3Q2hpbGQsICpvbGRDaGlsZCkpCiAgICAgICAgICAgICByZXR1cm4gSElFUkFS
Q0hZX1JFUVVFU1RfRVJSOwogICAgIH0gZWxzZSBpZiAoIWlzQ2hpbGRUeXBlQWxsb3dlZChuZXdQ
YXJlbnQsIG5ld0NoaWxkKSkKICAgICAgICAgcmV0dXJuIEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsK
QEAgLTIxMSwxMiArMjA3LDEyIEBAIHN0YXRpYyBpbmxpbmUgRXhjZXB0aW9uQ29kZSBjaGVja0Fj
Y2VwdENoaWxkKENvbnRhaW5lck5vZGUqIG5ld1BhcmVudCwgTm9kZSogbmV3CiAgICAgcmV0dXJu
IDA7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBjaGVja0FjY2VwdENoaWxkR3VhcmFudGVlZE5v
ZGVUeXBlcyhDb250YWluZXJOb2RlKiBuZXdQYXJlbnQsIE5vZGUqIG5ld0NoaWxkLCBFeGNlcHRp
b25Db2RlJiBlYykKK3N0YXRpYyBpbmxpbmUgYm9vbCBjaGVja0FjY2VwdENoaWxkR3VhcmFudGVl
ZE5vZGVUeXBlcyhDb250YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5vZGUmIG5ld0NoaWxkLCBFeGNl
cHRpb25Db2RlJiBlYykKIHsKLSAgICBBU1NFUlQoIW5ld1BhcmVudC0+aXNSZWFkT25seU5vZGUo
KSk7Ci0gICAgQVNTRVJUKCFuZXdQYXJlbnQtPmlzRG9jdW1lbnRUeXBlTm9kZSgpKTsKKyAgICBB
U1NFUlQoIW5ld1BhcmVudC5pc1JlYWRPbmx5Tm9kZSgpKTsKKyAgICBBU1NFUlQoIW5ld1BhcmVu
dC5pc0RvY3VtZW50VHlwZU5vZGUoKSk7CiAgICAgQVNTRVJUKGlzQ2hpbGRUeXBlQWxsb3dlZChu
ZXdQYXJlbnQsIG5ld0NoaWxkKSk7Ci0gICAgaWYgKG5ld0NoaWxkLT5jb250YWlucyhuZXdQYXJl
bnQpKSB7CisgICAgaWYgKG5ld0NoaWxkLmNvbnRhaW5zKCZuZXdQYXJlbnQpKSB7CiAgICAgICAg
IGVjID0gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQpAQCAtMjI0LDI1ICsyMjAsMjUgQEAgc3RhdGljIGlubGluZSBib29sIGNoZWNrQWNjZXB0Q2hp
bGRHdWFyYW50ZWVkTm9kZVR5cGVzKENvbnRhaW5lck5vZGUqIG5ld1BhcmVudCwKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIGNoZWNrQWRkQ2hpbGQoQ29udGFpbmVy
Tm9kZSogbmV3UGFyZW50LCBOb2RlKiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCitzdGF0
aWMgaW5saW5lIGJvb2wgY2hlY2tBZGRDaGlsZChDb250YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5v
ZGUmIG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBlYyA9IGNoZWNrQWNjZXB0
Q2hpbGQobmV3UGFyZW50LCBuZXdDaGlsZCwgMCk7CisgICAgZWMgPSBjaGVja0FjY2VwdENoaWxk
KG5ld1BhcmVudCwgbmV3Q2hpbGQsIG51bGxwdHIpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBj
aGVja1JlcGxhY2VDaGlsZChDb250YWluZXJOb2RlKiBuZXdQYXJlbnQsIE5vZGUqIG5ld0NoaWxk
LCBOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCitzdGF0aWMgaW5saW5lIGJvb2wg
Y2hlY2tSZXBsYWNlQ2hpbGQoQ29udGFpbmVyTm9kZSYgbmV3UGFyZW50LCBOb2RlJiBuZXdDaGls
ZCwgTm9kZSYgb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIGVjID0gY2hlY2tB
Y2NlcHRDaGlsZChuZXdQYXJlbnQsIG5ld0NoaWxkLCBvbGRDaGlsZCk7CisgICAgZWMgPSBjaGVj
a0FjY2VwdENoaWxkKG5ld1BhcmVudCwgbmV3Q2hpbGQsICZvbGRDaGlsZCk7CiAgICAgaWYgKGVj
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBD
b250YWluZXJOb2RlOjppbnNlcnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9k
ZSogcmVmQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQorYm9vbCBDb250YWluZXJOb2RlOjppbnNl
cnRCZWZvcmUoUmVmPE5vZGU+JiYgbmV3Q2hpbGQsIE5vZGUqIHJlZkNoaWxkLCBFeGNlcHRpb25D
b2RlJiBlYykKIHsKICAgICAvLyBDaGVjayB0aGF0IHRoaXMgbm9kZSBpcyBub3QgImZsb2F0aW5n
Ii4KICAgICAvLyBJZiBpdCBpcywgaXQgY2FuIGJlIGRlbGV0ZWQgYXMgYSBzaWRlIGVmZmVjdCBv
ZiBzZW5kaW5nIG11dGF0aW9uIGV2ZW50cy4KQEAgLTI1NCwxMCArMjUwLDEwIEBAIGJvb2wgQ29u
dGFpbmVyTm9kZTo6aW5zZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUq
IHJlZkNoaWxkLCBFeGNlCiAKICAgICAvLyBpbnNlcnRCZWZvcmUobm9kZSwgMCkgaXMgZXF1aXZh
bGVudCB0byBhcHBlbmRDaGlsZChub2RlKQogICAgIGlmICghcmVmQ2hpbGQpCi0gICAgICAgIHJl
dHVybiBhcHBlbmRDaGlsZChuZXdDaGlsZCwgZWMpOworICAgICAgICByZXR1cm4gYXBwZW5kQ2hp
bGQoV1RGOjptb3ZlKG5ld0NoaWxkKSwgZWMpOwogCiAgICAgLy8gTWFrZSBzdXJlIGFkZGluZyB0
aGUgbmV3IGNoaWxkIGlzIE9LLgotICAgIGlmICghY2hlY2tBZGRDaGlsZCh0aGlzLCBuZXdDaGls
ZC5nZXQoKSwgZWMpKQorICAgIGlmICghY2hlY2tBZGRDaGlsZCgqdGhpcywgbmV3Q2hpbGQsIGVj
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gTk9UX0ZPVU5EX0VSUjogUmFpc2Vk
IGlmIHJlZkNoaWxkIGlzIG5vdCBhIGNoaWxkIG9mIHRoaXMgbm9kZQpAQCAtMjY2LDIwICsyNjIs
MjAgQEAgYm9vbCBDb250YWluZXJOb2RlOjppbnNlcnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBu
ZXdDaGlsZCwgTm9kZSogcmVmQ2hpbGQsIEV4Y2UKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KIAotICAgIGlmIChyZWZDaGlsZC0+cHJldmlvdXNTaWJsaW5nKCkgPT0gbmV3Q2hpbGQgfHwg
cmVmQ2hpbGQgPT0gbmV3Q2hpbGQpIC8vIG5vdGhpbmcgdG8gZG8KKyAgICBpZiAocmVmQ2hpbGQt
PnByZXZpb3VzU2libGluZygpID09IG5ld0NoaWxkLnB0cigpIHx8IHJlZkNoaWxkID09IG5ld0No
aWxkLnB0cigpKSAvLyBub3RoaW5nIHRvIGRvCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAg
UmVmPE5vZGU+IG5leHQoKnJlZkNoaWxkKTsKIAogICAgIE5vZGVWZWN0b3IgdGFyZ2V0czsKLSAg
ICBjb2xsZWN0Q2hpbGRyZW5BbmRSZW1vdmVGcm9tT2xkUGFyZW50KCpuZXdDaGlsZC5nZXQoKSwg
dGFyZ2V0cywgZWMpOworICAgIGNvbGxlY3RDaGlsZHJlbkFuZFJlbW92ZUZyb21PbGRQYXJlbnQo
bmV3Q2hpbGQsIHRhcmdldHMsIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICBpZiAodGFyZ2V0cy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAg
ICAgLy8gV2UgbmVlZCB0aGlzIGV4dHJhIGNoZWNrIGJlY2F1c2UgY29sbGVjdENoaWxkcmVuQW5k
UmVtb3ZlRnJvbU9sZFBhcmVudCgpIGNhbiBmaXJlIG11dGF0aW9uIGV2ZW50cy4KLSAgICBpZiAo
IWNoZWNrQWNjZXB0Q2hpbGRHdWFyYW50ZWVkTm9kZVR5cGVzKHRoaXMsIG5ld0NoaWxkLmdldCgp
LCBlYykpCisgICAgaWYgKCFjaGVja0FjY2VwdENoaWxkR3VhcmFudGVlZE5vZGVUeXBlcygqdGhp
cywgbmV3Q2hpbGQsIGVjKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjp3aWxsSW5zZXJ0RE9NTm9kZShkb2N1bWVudCgpLCAqdGhpcyk7CkBA
IC0zOTAsNyArMzg2LDcgQEAgdm9pZCBDb250YWluZXJOb2RlOjpwYXJzZXJJbnNlcnRCZWZvcmUo
UGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogbmV4dENoaWwKICAgICBuZXdDaGlsZC0+
c2V0TmVlZHNTdHlsZVJlY2FsYyhSZWNvbnN0cnVjdFJlbmRlclRyZWUpOwogfQogCi1ib29sIENv
bnRhaW5lck5vZGU6OnJlcGxhY2VDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2Rl
KiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCitib29sIENvbnRhaW5lck5vZGU6OnJlcGxh
Y2VDaGlsZChSZWY8Tm9kZT4mJiBuZXdDaGlsZCwgTm9kZSYgb2xkQ2hpbGQsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogewogICAgIC8vIENoZWNrIHRoYXQgdGhpcyBub2RlIGlzIG5vdCAiZmxvYXRpbmci
LgogICAgIC8vIElmIGl0IGlzLCBpdCBjYW4gYmUgZGVsZXRlZCBhcyBhIHNpZGUgZWZmZWN0IG9m
IHNlbmRpbmcgbXV0YXRpb24gZXZlbnRzLgpAQCAtNDAwLDQ4ICszOTYsNDMgQEAgYm9vbCBDb250
YWluZXJOb2RlOjpyZXBsYWNlQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSog
b2xkQ2hpbGQsIEV4Y2UKIAogICAgIGVjID0gMDsKIAotICAgIGlmIChvbGRDaGlsZCA9PSBuZXdD
aGlsZCkgLy8gbm90aGluZyB0byBkbworICAgIGlmICgmb2xkQ2hpbGQgPT0gbmV3Q2hpbGQucHRy
KCkpIC8vIG5vdGhpbmcgdG8gZG8KICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBpZiAoIW9s
ZENoaWxkKSB7Ci0gICAgICAgIGVjID0gTk9UX0ZPVU5EX0VSUjsKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIH0KLQogICAgIC8vIE1ha2Ugc3VyZSByZXBsYWNpbmcgdGhlIG9sZCBjaGlsZCB3
aXRoIHRoZSBuZXcgaXMgb2sKLSAgICBpZiAoIWNoZWNrUmVwbGFjZUNoaWxkKHRoaXMsIG5ld0No
aWxkLmdldCgpLCBvbGRDaGlsZCwgZWMpKQorICAgIGlmICghY2hlY2tSZXBsYWNlQ2hpbGQoKnRo
aXMsIG5ld0NoaWxkLCBvbGRDaGlsZCwgZWMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICAvLyBOT1RfRk9VTkRfRVJSOiBSYWlzZWQgaWYgb2xkQ2hpbGQgaXMgbm90IGEgY2hpbGQgb2Yg
dGhpcyBub2RlLgotICAgIGlmIChvbGRDaGlsZC0+cGFyZW50Tm9kZSgpICE9IHRoaXMpIHsKKyAg
ICBpZiAob2xkQ2hpbGQucGFyZW50Tm9kZSgpICE9IHRoaXMpIHsKICAgICAgICAgZWMgPSBOT1Rf
Rk9VTkRfRVJSOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCiAgICAgQ2hpbGRMaXN0
TXV0YXRpb25TY29wZSBtdXRhdGlvbigqdGhpcyk7CiAKLSAgICBSZWZQdHI8Tm9kZT4gbmV4dCA9
IG9sZENoaWxkLT5uZXh0U2libGluZygpOworICAgIFJlZlB0cjxOb2RlPiBuZXh0ID0gb2xkQ2hp
bGQubmV4dFNpYmxpbmcoKTsKIAogICAgIC8vIFJlbW92ZSB0aGUgbm9kZSB3ZSdyZSByZXBsYWNp
bmcKLSAgICBSZWY8Tm9kZT4gcmVtb3ZlZENoaWxkKCpvbGRDaGlsZCk7CisgICAgUmVmPE5vZGU+
IHJlbW92ZWRDaGlsZChvbGRDaGlsZCk7CiAgICAgcmVtb3ZlQ2hpbGQob2xkQ2hpbGQsIGVjKTsK
ICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChuZXh0ICYmIChu
ZXh0LT5wcmV2aW91c1NpYmxpbmcoKSA9PSBuZXdDaGlsZCB8fCBuZXh0ID09IG5ld0NoaWxkKSkg
Ly8gbm90aGluZyB0byBkbworICAgIGlmIChuZXh0ICYmIChuZXh0LT5wcmV2aW91c1NpYmxpbmco
KSA9PSBuZXdDaGlsZC5wdHIoKSB8fCBuZXh0ID09IG5ld0NoaWxkLnB0cigpKSkgLy8gbm90aGlu
ZyB0byBkbwogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIC8vIERvZXMgdGhpcyBvbmUgbW9y
ZSB0aW1lIGJlY2F1c2UgcmVtb3ZlQ2hpbGQoKSBmaXJlcyBhIE11dGF0aW9uRXZlbnQuCi0gICAg
aWYgKCFjaGVja1JlcGxhY2VDaGlsZCh0aGlzLCBuZXdDaGlsZC5nZXQoKSwgb2xkQ2hpbGQsIGVj
KSkKKyAgICBpZiAoIWNoZWNrUmVwbGFjZUNoaWxkKCp0aGlzLCBuZXdDaGlsZCwgb2xkQ2hpbGQs
IGVjKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgTm9kZVZlY3RvciB0YXJnZXRzOwot
ICAgIGNvbGxlY3RDaGlsZHJlbkFuZFJlbW92ZUZyb21PbGRQYXJlbnQoKm5ld0NoaWxkLmdldCgp
LCB0YXJnZXRzLCBlYyk7CisgICAgY29sbGVjdENoaWxkcmVuQW5kUmVtb3ZlRnJvbU9sZFBhcmVu
dChuZXdDaGlsZCwgdGFyZ2V0cywgZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgLy8gRG9lcyB0aGlzIHlldCBhbm90aGVyIGNoZWNrIGJlY2F1c2UgY29sbGVj
dENoaWxkcmVuQW5kUmVtb3ZlRnJvbU9sZFBhcmVudCgpIGZpcmVzIGEgTXV0YXRpb25FdmVudC4K
LSAgICBpZiAoIWNoZWNrUmVwbGFjZUNoaWxkKHRoaXMsIG5ld0NoaWxkLmdldCgpLCBvbGRDaGls
ZCwgZWMpKQorICAgIGlmICghY2hlY2tSZXBsYWNlQ2hpbGQoKnRoaXMsIG5ld0NoaWxkLCBvbGRD
aGlsZCwgZWMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OndpbGxJbnNlcnRET01Ob2RlKGRvY3VtZW50KCksICp0aGlzKTsKQEAgLTUxNSw3
ICs1MDYsNyBAQCB2b2lkIENvbnRhaW5lck5vZGU6OmRpc2Nvbm5lY3REZXNjZW5kYW50RnJhbWVz
KCkKICAgICBkaXNjb25uZWN0U3ViZnJhbWVzSWZOZWVkZWQoKnRoaXMsIFJvb3RBbmREZXNjZW5k
YW50cyk7CiB9CiAKLWJvb2wgQ29udGFpbmVyTm9kZTo6cmVtb3ZlQ2hpbGQoTm9kZSogb2xkQ2hp
bGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQorYm9vbCBDb250YWluZXJOb2RlOjpyZW1vdmVDaGlsZChO
b2RlJiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgLy8gQ2hlY2sgdGhhdCB0
aGlzIG5vZGUgaXMgbm90ICJmbG9hdGluZyIuCiAgICAgLy8gSWYgaXQgaXMsIGl0IGNhbiBiZSBk
ZWxldGVkIGFzIGEgc2lkZSBlZmZlY3Qgb2Ygc2VuZGluZyBtdXRhdGlvbiBldmVudHMuCkBAIC01
MzIsMTIgKzUyMywxMiBAQCBib29sIENvbnRhaW5lck5vZGU6OnJlbW92ZUNoaWxkKE5vZGUqIG9s
ZENoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICB9CiAKICAgICAvLyBOT1RfRk9VTkRfRVJS
OiBSYWlzZWQgaWYgb2xkQ2hpbGQgaXMgbm90IGEgY2hpbGQgb2YgdGhpcyBub2RlLgotICAgIGlm
ICghb2xkQ2hpbGQgfHwgb2xkQ2hpbGQtPnBhcmVudE5vZGUoKSAhPSB0aGlzKSB7CisgICAgaWYg
KG9sZENoaWxkLnBhcmVudE5vZGUoKSAhPSB0aGlzKSB7CiAgICAgICAgIGVjID0gTk9UX0ZPVU5E
X0VSUjsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIFJlZjxOb2RlPiBjaGls
ZCgqb2xkQ2hpbGQpOworICAgIFJlZjxOb2RlPiBjaGlsZChvbGRDaGlsZCk7CiAKICAgICBkb2N1
bWVudCgpLnJlbW92ZUZvY3VzZWROb2RlT2ZTdWJ0cmVlKGNoaWxkLnB0cigpKTsKIApAQCAtNjcw
LDcgKzY2MSw3IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6cmVtb3ZlQ2hpbGRyZW4oKQogICAgIGRp
c3BhdGNoU3VidHJlZU1vZGlmaWVkRXZlbnQoKTsKIH0KIAotYm9vbCBDb250YWluZXJOb2RlOjph
cHBlbmRDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykK
K2Jvb2wgQ29udGFpbmVyTm9kZTo6YXBwZW5kQ2hpbGQoUmVmPE5vZGU+JiYgbmV3Q2hpbGQsIEV4
Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIFJlZjxDb250YWluZXJOb2RlPiBwcm90ZWN0KCp0aGlz
KTsKIApAQCAtNjgxLDE0ICs2NzIsMTQgQEAgYm9vbCBDb250YWluZXJOb2RlOjphcHBlbmRDaGls
ZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBlYyA9
IDA7CiAKICAgICAvLyBNYWtlIHN1cmUgYWRkaW5nIHRoZSBuZXcgY2hpbGQgaXMgb2sKLSAgICBp
ZiAoIWNoZWNrQWRkQ2hpbGQodGhpcywgbmV3Q2hpbGQuZ2V0KCksIGVjKSkKKyAgICBpZiAoIWNo
ZWNrQWRkQ2hpbGQoKnRoaXMsIG5ld0NoaWxkLCBlYykpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIGlmIChuZXdDaGlsZCA9PSBtX2xhc3RDaGlsZCkgLy8gbm90aGluZyB0byBkbwotICAg
ICAgICByZXR1cm4gbmV3Q2hpbGQ7CisgICAgaWYgKG5ld0NoaWxkLnB0cigpID09IG1fbGFzdENo
aWxkKSAvLyBub3RoaW5nIHRvIGRvCisgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgTm9kZVZl
Y3RvciB0YXJnZXRzOwotICAgIGNvbGxlY3RDaGlsZHJlbkFuZFJlbW92ZUZyb21PbGRQYXJlbnQo
Km5ld0NoaWxkLmdldCgpLCB0YXJnZXRzLCBlYyk7CisgICAgY29sbGVjdENoaWxkcmVuQW5kUmVt
b3ZlRnJvbU9sZFBhcmVudChuZXdDaGlsZCwgdGFyZ2V0cywgZWMpOwogICAgIGlmIChlYykKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC02OTYsNyArNjg3LDcgQEAgYm9vbCBDb250YWluZXJO
b2RlOjphcHBlbmRDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBFeGNlcHRpb25Db2Rl
JiBlYykKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAvLyBXZSBuZWVkIHRoaXMgZXh0cmEg
Y2hlY2sgYmVjYXVzZSBjb2xsZWN0Q2hpbGRyZW5BbmRSZW1vdmVGcm9tT2xkUGFyZW50KCkgY2Fu
IGZpcmUgbXV0YXRpb24gZXZlbnRzLgotICAgIGlmICghY2hlY2tBY2NlcHRDaGlsZEd1YXJhbnRl
ZWROb2RlVHlwZXModGhpcywgbmV3Q2hpbGQuZ2V0KCksIGVjKSkKKyAgICBpZiAoIWNoZWNrQWNj
ZXB0Q2hpbGRHdWFyYW50ZWVkTm9kZVR5cGVzKCp0aGlzLCBuZXdDaGlsZCwgZWMpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxJbnNl
cnRET01Ob2RlKGRvY3VtZW50KCksICp0aGlzKTsKQEAgLTc1OSwxNiArNzUwLDE2IEBAIHZvaWQg
Q29udGFpbmVyTm9kZTo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2Up
CiAgICAgaW52YWxpZGF0ZU5vZGVMaXN0QW5kQ29sbGVjdGlvbkNhY2hlc0luQW5jZXN0b3JzKCk7
CiB9CiAKLXZvaWQgQ29udGFpbmVyTm9kZTo6Y2xvbmVDaGlsZE5vZGVzKENvbnRhaW5lck5vZGUq
IGNsb25lKQordm9pZCBDb250YWluZXJOb2RlOjpjbG9uZUNoaWxkTm9kZXMoQ29udGFpbmVyTm9k
ZSYgY2xvbmUpCiB7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgRG9jdW1lbnQmIHRh
cmdldERvY3VtZW50ID0gY2xvbmUtPmRvY3VtZW50KCk7CisgICAgRG9jdW1lbnQmIHRhcmdldERv
Y3VtZW50ID0gY2xvbmUuZG9jdW1lbnQoKTsKICAgICBmb3IgKE5vZGUqIGNoaWxkID0gZmlyc3RD
aGlsZCgpOyBjaGlsZCAmJiAhZWM7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKLSAg
ICAgICAgUmVmUHRyPE5vZGU+IGNsb25lZENoaWxkID0gY2hpbGQtPmNsb25lTm9kZUludGVybmFs
KHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uOjpTZWxmV2l0aFRlbXBsYXRlQ29udGVu
dCk7Ci0gICAgICAgIGNsb25lLT5hcHBlbmRDaGlsZChjbG9uZWRDaGlsZCwgZWMpOworICAgICAg
ICBSZWY8Tm9kZT4gY2xvbmVkQ2hpbGQgPSBjaGlsZC0+Y2xvbmVOb2RlSW50ZXJuYWwodGFyZ2V0
RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb246OlNlbGZXaXRoVGVtcGxhdGVDb250ZW50KTsKKyAg
ICAgICAgY2xvbmUuYXBwZW5kQ2hpbGQoY2xvbmVkQ2hpbGQuY29weVJlZigpLCBlYyk7CiAKLSAg
ICAgICAgaWYgKCFlYyAmJiBpczxDb250YWluZXJOb2RlPihjaGlsZCkpCi0gICAgICAgICAgICBk
b3duY2FzdDxDb250YWluZXJOb2RlPihjaGlsZCktPmNsb25lQ2hpbGROb2Rlcyhkb3duY2FzdDxD
b250YWluZXJOb2RlPihjbG9uZWRDaGlsZC5nZXQoKSkpOworICAgICAgICBpZiAoIWVjICYmIGlz
PENvbnRhaW5lck5vZGU+KCpjaGlsZCkpCisgICAgICAgICAgICBkb3duY2FzdDxDb250YWluZXJO
b2RlPigqY2hpbGQpLmNsb25lQ2hpbGROb2Rlcyhkb3duY2FzdDxDb250YWluZXJOb2RlPihjbG9u
ZWRDaGlsZC5nZXQoKSkpOwogICAgIH0KIH0KIApAQCAtOTQ3LDcgKzkzOCw3IEBAIHZvaWQgQ29u
dGFpbmVyTm9kZTo6YXBwZW5kKFZlY3RvcjxOb2RlT3JTdHJpbmc+JiYgbm9kZU9yU3RyaW5nVmVj
dG9yLCBFeGNlcHRpb25DCiAgICAgaWYgKGVjIHx8ICFub2RlKQogICAgICAgICByZXR1cm47CiAK
LSAgICBhcHBlbmRDaGlsZChub2RlLnJlbGVhc2UoKSwgZWMpOworICAgIGFwcGVuZENoaWxkKG5v
ZGUucmVsZWFzZU5vbk51bGwoKSwgZWMpOwogfQogCiB2b2lkIENvbnRhaW5lck5vZGU6OnByZXBl
bmQoVmVjdG9yPE5vZGVPclN0cmluZz4mJiBub2RlT3JTdHJpbmdWZWN0b3IsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQpAQCAtOTU2LDcgKzk0Nyw3IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6cHJlcGVuZChW
ZWN0b3I8Tm9kZU9yU3RyaW5nPiYmIG5vZGVPclN0cmluZ1ZlY3RvciwgRXhjZXB0aW9uCiAgICAg
aWYgKGVjIHx8ICFub2RlKQogICAgICAgICByZXR1cm47CiAKLSAgICBpbnNlcnRCZWZvcmUobm9k
ZS5yZWxlYXNlKCksIGZpcnN0Q2hpbGQoKSwgZWMpOworICAgIGluc2VydEJlZm9yZShub2RlLnJl
bGVhc2VOb25OdWxsKCksIGZpcnN0Q2hpbGQoKSwgZWMpOwogfQogCiBIVE1MQ29sbGVjdGlvbiog
Q29udGFpbmVyTm9kZTo6Y2FjaGVkSFRNTENvbGxlY3Rpb24oQ29sbGVjdGlvblR5cGUgdHlwZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5oCmluZGV4IDA0NTI0MDA0MWYyYjcxMzFmYjI2YTRl
OGYxOTE2YjlhNmNiOWIwYWUuLmE2YjEwYTc2NWYwZWU4YmNhNzJiOGZmZjAzNDMzYjczYjE4N2Jh
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaApAQCAtMTAyLDEwICsxMDIsMTAgQEAg
cHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHVuc2lnbmVkIGNvdW50Q2hpbGROb2RlcygpIGNv
bnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIE5vZGUqIHRyYXZlcnNlVG9DaGlsZEF0KHVuc2lnbmVk
KSBjb25zdDsKIAotICAgIGJvb2wgaW5zZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hp
bGQsIE5vZGUqIHJlZkNoaWxkLCBFeGNlcHRpb25Db2RlJiA9IEFTU0VSVF9OT19FWENFUFRJT04p
OwotICAgIGJvb2wgcmVwbGFjZUNoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUq
IG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiA9IEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgIFdF
QkNPUkVfRVhQT1JUIGJvb2wgcmVtb3ZlQ2hpbGQoTm9kZSogY2hpbGQsIEV4Y2VwdGlvbkNvZGUm
ID0gQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBhcHBlbmRD
aGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiA9IEFTU0VSVF9O
T19FWENFUFRJT04pOworICAgIGJvb2wgaW5zZXJ0QmVmb3JlKFJlZjxOb2RlPiYmIG5ld0NoaWxk
LCBOb2RlKiByZWZDaGlsZCwgRXhjZXB0aW9uQ29kZSYgPSBBU1NFUlRfTk9fRVhDRVBUSU9OKTsK
KyAgICBib29sIHJlcGxhY2VDaGlsZChSZWY8Tm9kZT4mJiBuZXdDaGlsZCwgTm9kZSYgb2xkQ2hp
bGQsIEV4Y2VwdGlvbkNvZGUmID0gQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCByZW1vdmVDaGlsZChOb2RlJiBjaGlsZCwgRXhjZXB0aW9uQ29kZSYgPSBBU1NF
UlRfTk9fRVhDRVBUSU9OKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGFwcGVuZENoaWxkKFJl
ZjxOb2RlPiYmIG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiA9IEFTU0VSVF9OT19FWENFUFRJT04p
OwogCiAgICAgLy8gVGhlc2UgbWV0aG9kcyBhcmUgb25seSB1c2VkIGR1cmluZyBwYXJzaW5nLgog
ICAgIC8vIFRoZXkgZG9uJ3Qgc2VuZCBET00gbXV0YXRpb24gZXZlbnRzIG9yIGhhbmRsZSByZXBh
cmVudGluZy4KQEAgLTExNyw3ICsxMTcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVDaGls
ZHJlbigpOwogICAgIHZvaWQgdGFrZUFsbENoaWxkcmVuRnJvbShDb250YWluZXJOb2RlKik7CiAK
LSAgICB2b2lkIGNsb25lQ2hpbGROb2RlcyhDb250YWluZXJOb2RlKiBjbG9uZSk7CisgICAgdm9p
ZCBjbG9uZUNoaWxkTm9kZXMoQ29udGFpbmVyTm9kZSYgY2xvbmUpOwogCiAgICAgZW51bSBDaGls
ZENoYW5nZVR5cGUgeyBFbGVtZW50SW5zZXJ0ZWQsIEVsZW1lbnRSZW1vdmVkLCBUZXh0SW5zZXJ0
ZWQsIFRleHRSZW1vdmVkLCBUZXh0Q2hhbmdlZCwgQWxsQ2hpbGRyZW5SZW1vdmVkLCBOb25Db250
ZW50c0NoaWxkQ2hhbmdlZCB9OwogICAgIGVudW0gQ2hpbGRDaGFuZ2VTb3VyY2UgeyBDaGlsZENo
YW5nZVNvdXJjZVBhcnNlciwgQ2hpbGRDaGFuZ2VTb3VyY2VBUEkgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NSW1wbGVtZW50YXRpb24uY3BwCmluZGV4IGE0YTNmOGQ1OWFhMmExNjFmNjcyZjQ0ZDYz
ZmY4NDg2NGI3YjIwMzMuLjYzM2QyOTEzZjcxNmVhODRiNjdmNmQyODA5M2U2OGQ0MTFlMzE5YjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcApAQCAtMjMxLDkgKzIz
MSw5IEBAIFJlZlB0cjxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50
KGNvbnN0IFN0cmluZyYgbmFtZXNwYWNlVVJJLAogICAgIH0KIAogICAgIGlmIChkb2N0eXBlKQot
ICAgICAgICBkb2MtPmFwcGVuZENoaWxkKGRvY3R5cGUpOworICAgICAgICBkb2MtPmFwcGVuZENo
aWxkKCpkb2N0eXBlKTsKICAgICBpZiAoZG9jdW1lbnRFbGVtZW50KQotICAgICAgICBkb2MtPmFw
cGVuZENoaWxkKGRvY3VtZW50RWxlbWVudC5yZWxlYXNlKCkpOworICAgICAgICBkb2MtPmFwcGVu
ZENoaWxkKGRvY3VtZW50RWxlbWVudC5yZWxlYXNlTm9uTnVsbCgpKTsKIAogICAgIHJldHVybiBk
b2M7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBjMDk0MWQyNTE5MTQxNDU4MjBiNWJk
YzUzMDU4ZDY4Y2Q5M2YzNGFiLi42MDMxMmNhMzUwMTM2NTQyOTc3NDdjODE0ZjFiMzRmODdkNDc0
NTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTEwMDksNyArMTAwOSw3IEBAIFJlZlB0
cjxOb2RlPiBEb2N1bWVudDo6YWRvcHROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gc291cmNlLCBFeGNl
cHRpb25Db2RlJiBlYykKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBpZiAoc291
cmNlLT5wYXJlbnROb2RlKCkpIHsKLSAgICAgICAgICAgIHNvdXJjZS0+cGFyZW50Tm9kZSgpLT5y
ZW1vdmVDaGlsZChzb3VyY2UuZ2V0KCksIGVjKTsKKyAgICAgICAgICAgIHNvdXJjZS0+cGFyZW50
Tm9kZSgpLT5yZW1vdmVDaGlsZCgqc291cmNlLCBlYyk7CiAgICAgICAgICAgICBpZiAoZWMpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIH0KQEAgLTE1MzcsNyArMTUz
Nyw3IEBAIHZvaWQgRG9jdW1lbnQ6OnNldFRpdGxlKGNvbnN0IFN0cmluZyYgdGl0bGUpCiAgICAg
ZWxzZSBpZiAoIW1fdGl0bGVFbGVtZW50KSB7CiAgICAgICAgIGlmIChIVE1MRWxlbWVudCogaGVh
ZEVsZW1lbnQgPSBoZWFkKCkpIHsKICAgICAgICAgICAgIG1fdGl0bGVFbGVtZW50ID0gY3JlYXRl
RWxlbWVudCh0aXRsZVRhZywgZmFsc2UpOwotICAgICAgICAgICAgaGVhZEVsZW1lbnQtPmFwcGVu
ZENoaWxkKG1fdGl0bGVFbGVtZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgICAg
IGhlYWRFbGVtZW50LT5hcHBlbmRDaGlsZCgqbV90aXRsZUVsZW1lbnQsIEFTU0VSVF9OT19FWENF
UFRJT04pOwogICAgICAgICB9CiAgICAgfQogCkBAIC0yNTA5LDExICsyNTA5LDEwIEBAIHZvaWQg
RG9jdW1lbnQ6OnNldEJvZHlPckZyYW1lc2V0KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IHBycE5l
d0JvZHksIEV4Y2VwdGlvbkNvCiAgICAgICAgIG5ld0JvZHkgPSBkb3duY2FzdDxIVE1MRWxlbWVu
dD4obm9kZS5nZXQoKSk7CiAgICAgfQogCi0gICAgSFRNTEVsZW1lbnQqIGIgPSBib2R5T3JGcmFt
ZXNldCgpOwotICAgIGlmICghYikKLSAgICAgICAgZG9jdW1lbnRFbGVtZW50KCktPmFwcGVuZENo
aWxkKG5ld0JvZHkucmVsZWFzZSgpLCBlYyk7CisgICAgaWYgKGF1dG8qIGJvZHkgPSBib2R5T3JG
cmFtZXNldCgpKQorICAgICAgICBkb2N1bWVudEVsZW1lbnQoKS0+cmVwbGFjZUNoaWxkKG5ld0Jv
ZHkucmVsZWFzZU5vbk51bGwoKSwgKmJvZHksIGVjKTsKICAgICBlbHNlCi0gICAgICAgIGRvY3Vt
ZW50RWxlbWVudCgpLT5yZXBsYWNlQ2hpbGQobmV3Qm9keS5yZWxlYXNlKCksIGIsIGVjKTsKKyAg
ICAgICAgZG9jdW1lbnRFbGVtZW50KCktPmFwcGVuZENoaWxkKG5ld0JvZHkucmVsZWFzZU5vbk51
bGwoKSwgZWMpOwogfQogCiBIVE1MSGVhZEVsZW1lbnQqIERvY3VtZW50OjpoZWFkKCkKQEAgLTMz
MTcsMTMgKzMzMTYsOSBAQCBib29sIERvY3VtZW50OjpjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBl
IHR5cGUpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIERvY3VtZW50OjpjYW5S
ZXBsYWNlQ2hpbGQoTm9kZSogbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkKQorYm9vbCBEb2N1bWVu
dDo6Y2FuUmVwbGFjZUNoaWxkKE5vZGUmIG5ld0NoaWxkLCBOb2RlJiBvbGRDaGlsZCkKIHsKLSAg
ICBpZiAoIW9sZENoaWxkKQotICAgICAgICAvLyBDb250YWluZXJOb2RlOjpyZXBsYWNlQ2hpbGQg
d2lsbCByYWlzZSBhIE5PVF9GT1VORF9FUlIuCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAg
aWYgKG9sZENoaWxkLT5ub2RlVHlwZSgpID09IG5ld0NoaWxkLT5ub2RlVHlwZSgpKQorICAgIGlm
IChvbGRDaGlsZC5ub2RlVHlwZSgpID09IG5ld0NoaWxkLm5vZGVUeXBlKCkpCiAgICAgICAgIHJl
dHVybiB0cnVlOwogCiAgICAgaW50IG51bURvY3R5cGVzID0gMDsKQEAgLTMzMzIsNyArMzMyNyw3
IEBAIGJvb2wgRG9jdW1lbnQ6OmNhblJlcGxhY2VDaGlsZChOb2RlKiBuZXdDaGlsZCwgTm9kZSog
b2xkQ2hpbGQpCiAgICAgLy8gRmlyc3QsIGNoZWNrIGhvdyBtYW55IGRvY3R5cGVzIGFuZCBlbGVt
ZW50cyB3ZSBoYXZlLCBub3QgY291bnRpbmcKICAgICAvLyB0aGUgY2hpbGQgd2UncmUgYWJvdXQg
dG8gcmVtb3ZlLgogICAgIGZvciAoTm9kZSogYyA9IGZpcnN0Q2hpbGQoKTsgYzsgYyA9IGMtPm5l
eHRTaWJsaW5nKCkpIHsKLSAgICAgICAgaWYgKGMgPT0gb2xkQ2hpbGQpCisgICAgICAgIGlmIChj
ID09ICZvbGRDaGlsZCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAKICAgICAgICAg
c3dpdGNoIChjLT5ub2RlVHlwZSgpKSB7CkBAIC0zMzQ4LDggKzMzNDMsOCBAQCBib29sIERvY3Vt
ZW50OjpjYW5SZXBsYWNlQ2hpbGQoTm9kZSogbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkKQogICAg
IH0KICAgICAKICAgICAvLyBUaGVuLCBzZWUgaG93IG1hbnkgZG9jdHlwZXMgYW5kIGVsZW1lbnRz
IG1pZ2h0IGJlIGFkZGVkIGJ5IHRoZSBuZXcgY2hpbGQuCi0gICAgaWYgKG5ld0NoaWxkLT5pc0Rv
Y3VtZW50RnJhZ21lbnQoKSkgewotICAgICAgICBmb3IgKE5vZGUqIGMgPSBuZXdDaGlsZC0+Zmly
c3RDaGlsZCgpOyBjOyBjID0gYy0+bmV4dFNpYmxpbmcoKSkgeworICAgIGlmIChuZXdDaGlsZC5p
c0RvY3VtZW50RnJhZ21lbnQoKSkgeworICAgICAgICBmb3IgKE5vZGUqIGMgPSBuZXdDaGlsZC5m
aXJzdENoaWxkKCk7IGM7IGMgPSBjLT5uZXh0U2libGluZygpKSB7CiAgICAgICAgICAgICBzd2l0
Y2ggKGMtPm5vZGVUeXBlKCkpIHsKICAgICAgICAgICAgIGNhc2UgQVRUUklCVVRFX05PREU6CiAg
ICAgICAgICAgICBjYXNlIENEQVRBX1NFQ1RJT05fTk9ERToKQEAgLTMzNzIsNyArMzM2Nyw3IEBA
IGJvb2wgRG9jdW1lbnQ6OmNhblJlcGxhY2VDaGlsZChOb2RlKiBuZXdDaGlsZCwgTm9kZSogb2xk
Q2hpbGQpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9IGVsc2UgewotICAgICAgICBz
d2l0Y2ggKG5ld0NoaWxkLT5ub2RlVHlwZSgpKSB7CisgICAgICAgIHN3aXRjaCAobmV3Q2hpbGQu
bm9kZVR5cGUoKSkgewogICAgICAgICBjYXNlIEFUVFJJQlVURV9OT0RFOgogICAgICAgICBjYXNl
IENEQVRBX1NFQ1RJT05fTk9ERToKICAgICAgICAgY2FzZSBET0NVTUVOVF9GUkFHTUVOVF9OT0RF
OgpAQCAtMzQwMCw3ICszMzk1LDcgQEAgYm9vbCBEb2N1bWVudDo6Y2FuUmVwbGFjZUNoaWxkKE5v
ZGUqIG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotUmVm
UHRyPE5vZGU+IERvY3VtZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdP
cGVyYXRpb24gdHlwZSkKK1JlZjxOb2RlPiBEb2N1bWVudDo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9j
dW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uIHR5cGUpCiB7CiAgICAgUmVmPERvY3VtZW50PiBjbG9u
ZSA9IGNsb25lRG9jdW1lbnRXaXRob3V0Q2hpbGRyZW4oKTsKICAgICBjbG9uZS0+Y2xvbmVEYXRh
RnJvbURvY3VtZW50KCp0aGlzKTsKQEAgLTM0MDksNyArMzQwNCw3IEBAIFJlZlB0cjxOb2RlPiBE
b2N1bWVudDo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uIHR5
cGUpCiAgICAgY2FzZSBDbG9uaW5nT3BlcmF0aW9uOjpTZWxmV2l0aFRlbXBsYXRlQ29udGVudDoK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDbG9uaW5nT3BlcmF0aW9uOjpFdmVyeXRoaW5nOgot
ICAgICAgICBjbG9uZUNoaWxkTm9kZXMoY2xvbmUucHRyKCkpOworICAgICAgICBjbG9uZUNoaWxk
Tm9kZXMoY2xvbmUpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgcmV0dXJuIFdURjo6bW92
ZShjbG9uZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDllZjQ4YzkzMzgwNzNhZTAyOWMyZWEz
N2M5Mzc1ZDVjZWI5OWE2ZDQuLjEzNWM3ZTYzOTU1MGFkMmM3NGU4ZDNmNzM2ZGZkMjgxYmJkYWVj
YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC03NDcsNyArNzQ3LDcgQEAgcHVibGljOgogICAg
IHZvaWQgbm9kZUNoaWxkcmVuV2lsbEJlUmVtb3ZlZChDb250YWluZXJOb2RlJik7CiAgICAgLy8g
bm9kZVdpbGxCZVJlbW92ZWQgaXMgb25seSBzYWZlIHdoZW4gcmVtb3Zpbmcgb25lIG5vZGUgYXQg
YSB0aW1lLgogICAgIHZvaWQgbm9kZVdpbGxCZVJlbW92ZWQoTm9kZSYpOwotICAgIGJvb2wgY2Fu
UmVwbGFjZUNoaWxkKE5vZGUqIG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCk7CisgICAgYm9vbCBj
YW5SZXBsYWNlQ2hpbGQoTm9kZSYgbmV3Q2hpbGQsIE5vZGUmIG9sZENoaWxkKTsKIAogICAgIHZv
aWQgdGV4dEluc2VydGVkKE5vZGUqLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCk7
CiAgICAgdm9pZCB0ZXh0UmVtb3ZlZChOb2RlKiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBs
ZW5ndGgpOwpAQCAtMTMxMSw3ICsxMzExLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFN0cmlu
ZyBub2RlTmFtZSgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgTm9kZVR5cGUg
bm9kZVR5cGUoKSBjb25zdCBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRU
eXBlQWxsb3dlZChOb2RlVHlwZSkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7Ci0gICAgdmlydHVhbCBS
ZWZQdHI8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9u
KSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5h
bChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlIGZpbmFsOwogICAgIHZvaWQg
Y2xvbmVEYXRhRnJvbURvY3VtZW50KGNvbnN0IERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIHZv
aWQgcmVmU2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIG92ZXJyaWRlIGZpbmFsIHsgcmVmKCk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcAppbmRleCA0ZmFiNThlMzRkNDY1
NWVjZjRlMzdkYTVkZDljM2M1NjIyZjQwNzY4Li5mOWIzOGEwYmQyOGU4ZTNjNjA5MzRhZmYxYTYw
MDU5MjcwOTAzZmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFn
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCkBA
IC02NywxOCArNjcsMTggQEAgYm9vbCBEb2N1bWVudEZyYWdtZW50OjpjaGlsZFR5cGVBbGxvd2Vk
KE5vZGVUeXBlIHR5cGUpIGNvbnN0CiAgICAgfQogfQogCi1SZWZQdHI8Tm9kZT4gRG9jdW1lbnRG
cmFnbWVudDo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9u
aW5nT3BlcmF0aW9uIHR5cGUpCitSZWY8Tm9kZT4gRG9jdW1lbnRGcmFnbWVudDo6Y2xvbmVOb2Rl
SW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uIHR5cGUp
CiB7Ci0gICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNsb25lID0gY3JlYXRlKHRhcmdldERv
Y3VtZW50KTsKKyAgICBSZWY8RG9jdW1lbnRGcmFnbWVudD4gY2xvbmUgPSBjcmVhdGUodGFyZ2V0
RG9jdW1lbnQpOwogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgQ2xvbmluZ09wZXJhdGlv
bjo6T25seVNlbGY6CiAgICAgY2FzZSBDbG9uaW5nT3BlcmF0aW9uOjpTZWxmV2l0aFRlbXBsYXRl
Q29udGVudDoKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDbG9uaW5nT3BlcmF0aW9uOjpFdmVy
eXRoaW5nOgotICAgICAgICBjbG9uZUNoaWxkTm9kZXMoY2xvbmUuZ2V0KCkpOworICAgICAgICBj
bG9uZUNoaWxkTm9kZXMoY2xvbmUpOwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgcmV0dXJu
IGNsb25lOworICAgIHJldHVybiBXVEY6Om1vdmUoY2xvbmUpOwogfQogCiB2b2lkIERvY3VtZW50
RnJhZ21lbnQ6OnBhcnNlSFRNTChjb25zdCBTdHJpbmcmIHNvdXJjZSwgRWxlbWVudCogY29udGV4
dEVsZW1lbnQsIFBhcnNlckNvbnRlbnRQb2xpY3kgcGFyc2VyQ29udGVudFBvbGljeSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5oCmluZGV4IGQwN2UwMzRjMDA3ZTY2Mjk2MjUxYmQw
YzBiMTYwNmQ3MDlhMDVmNjUuLjZlYjFlZDYxYzQ2MjAxM2ZkMDU3NGQ0YWZlM2VjYzVlMjRjODQ1
ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuaApAQCAtNDgsNyArNDgsNyBA
QCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCBOb2RlVHlwZSBub2RlVHlwZSgp
IGNvbnN0IG92ZXJyaWRlIGZpbmFsOwotICAgIHZpcnR1YWwgUmVmUHRyPE5vZGU+IGNsb25lTm9k
ZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0
aW9uKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRUeXBlQWxsb3dlZChOb2RlVHlw
ZSkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFR5cGUuY3BwCmlu
ZGV4IDY3ZTNkNTM4NDNmODJhMGJjNTliOWQwZWZmY2FlMjdhZjMwYjk2MzQuLmMxOWQwMTgyYWZh
ZmRhNWQ4YzIwZWNmZDdkMzlkMTViYTAxODdlYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFR5
cGUuY3BwCkBAIC01MSw3ICs1MSw3IEBAIE5vZGU6Ok5vZGVUeXBlIERvY3VtZW50VHlwZTo6bm9k
ZVR5cGUoKSBjb25zdAogICAgIHJldHVybiBET0NVTUVOVF9UWVBFX05PREU7CiB9CiAKLVJlZlB0
cjxOb2RlPiBEb2N1bWVudFR5cGU6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiBkb2N1bWVu
dFRhcmdldCwgQ2xvbmluZ09wZXJhdGlvbikKK1JlZjxOb2RlPiBEb2N1bWVudFR5cGU6OmNsb25l
Tm9kZUludGVybmFsKERvY3VtZW50JiBkb2N1bWVudFRhcmdldCwgQ2xvbmluZ09wZXJhdGlvbikK
IHsKICAgICByZXR1cm4gY3JlYXRlKGRvY3VtZW50VGFyZ2V0LCBtX25hbWUsIG1fcHVibGljSWQs
IG1fc3lzdGVtSWQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50VHlwZS5oCmluZGV4IGM3YTFkOWI1
MjZmNmVlZWExMWNhM2E3Mjc1ZWIzMWY1YTZlMTMyYTUuLmM3OWMwY2VhODY5ZDIwNTliYmRiYjgy
MTU5YzhmZjEwNzg4MzhlZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRUeXBlLmgKQEAgLTUyLDcg
KzUyLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFVSTCBiYXNlVVJJKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCBTdHJpbmcgbm9kZU5hbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIE5vZGVUeXBlIG5vZGVUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBS
ZWZQdHI8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9u
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1
bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOwogCiAgICAgU3RyaW5nIG1fbmFtZTsK
ICAgICBTdHJpbmcgbV9wdWJsaWNJZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA2NzUwMDBh
NTRhNzA4MjljMGQxMTEyZDk4YmY4OWJjYWNkZDdjMzljLi4zYTg5MDYxN2ZhM2EwN2M3YTE5Y2E3
YTM0Mjk3YzE3MTkyODRiOTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0zMTIsMzggKzMx
MiwzNyBAQCB2b2lkIEVsZW1lbnQ6OmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soRXZlbnQqIHVuZGVy
bHlpbmdFdmVudCwgU2ltdWxhdGVkQ2xpY2tNb3VzZQogICAgIEV2ZW50RGlzcGF0Y2hlcjo6ZGlz
cGF0Y2hTaW11bGF0ZWRDbGljayh0aGlzLCB1bmRlcmx5aW5nRXZlbnQsIGV2ZW50T3B0aW9ucywg
dmlzdWFsT3B0aW9ucyk7CiB9CiAKLVJlZlB0cjxOb2RlPiBFbGVtZW50OjpjbG9uZU5vZGVJbnRl
cm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24gdHlwZSkKK1Jl
ZjxOb2RlPiBFbGVtZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1l
bnQsIENsb25pbmdPcGVyYXRpb24gdHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICBj
YXNlIENsb25pbmdPcGVyYXRpb246Ok9ubHlTZWxmOgogICAgIGNhc2UgQ2xvbmluZ09wZXJhdGlv
bjo6U2VsZldpdGhUZW1wbGF0ZUNvbnRlbnQ6CiAgICAgICAgIHJldHVybiBjbG9uZUVsZW1lbnRX
aXRob3V0Q2hpbGRyZW4odGFyZ2V0RG9jdW1lbnQpOwogICAgIGNhc2UgQ2xvbmluZ09wZXJhdGlv
bjo6RXZlcnl0aGluZzoKLSAgICAgICAgcmV0dXJuIGNsb25lRWxlbWVudFdpdGhDaGlsZHJlbih0
YXJnZXREb2N1bWVudCk7CisgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gY2xvbmVFbGVtZW50V2l0
aENoaWxkcmVuKHRhcmdldERvY3VtZW50KTsKIH0KIAotUmVmUHRyPEVsZW1lbnQ+IEVsZW1lbnQ6
OmNsb25lRWxlbWVudFdpdGhDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQpCitSZWY8
RWxlbWVudD4gRWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aENoaWxkcmVuKERvY3VtZW50JiB0YXJn
ZXREb2N1bWVudCkKIHsKLSAgICBSZWZQdHI8RWxlbWVudD4gY2xvbmUgPSBjbG9uZUVsZW1lbnRX
aXRob3V0Q2hpbGRyZW4odGFyZ2V0RG9jdW1lbnQpOwotICAgIGNsb25lQ2hpbGROb2RlcyhjbG9u
ZS5nZXQoKSk7Ci0gICAgcmV0dXJuIGNsb25lLnJlbGVhc2UoKTsKKyAgICBSZWY8RWxlbWVudD4g
Y2xvbmUgPSBjbG9uZUVsZW1lbnRXaXRob3V0Q2hpbGRyZW4odGFyZ2V0RG9jdW1lbnQpOworICAg
IGNsb25lQ2hpbGROb2RlcyhjbG9uZSk7CisgICAgcmV0dXJuIGNsb25lOwogfQogCi1SZWZQdHI8
RWxlbWVudD4gRWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aG91dENoaWxkcmVuKERvY3VtZW50JiB0
YXJnZXREb2N1bWVudCkKK1JlZjxFbGVtZW50PiBFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0
Q2hpbGRyZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50KQogewotICAgIFJlZlB0cjxFbGVtZW50
PiBjbG9uZSA9IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4odGFyZ2V0
RG9jdW1lbnQpOworICAgIFJlZjxFbGVtZW50PiBjbG9uZSA9IGNsb25lRWxlbWVudFdpdGhvdXRB
dHRyaWJ1dGVzQW5kQ2hpbGRyZW4odGFyZ2V0RG9jdW1lbnQpOwogICAgIC8vIFRoaXMgd2lsbCBj
YXRjaCBIVE1MIGVsZW1lbnRzIGluIHRoZSB3cm9uZyBuYW1lc3BhY2UgdGhhdCBhcmUgbm90IGNv
cnJlY3RseSBjb3BpZWQuCiAgICAgLy8gVGhpcyBpcyBhIHNhbml0eSBjaGVjayBhcyBIVE1MIG92
ZXJsb2FkcyBzb21lIG9mIHRoZSBET00gbWV0aG9kcy4KICAgICBBU1NFUlQoaXNIVE1MRWxlbWVu
dCgpID09IGNsb25lLT5pc0hUTUxFbGVtZW50KCkpOwogCiAgICAgY2xvbmUtPmNsb25lRGF0YUZy
b21FbGVtZW50KCp0aGlzKTsKLSAgICByZXR1cm4gY2xvbmUucmVsZWFzZSgpOworICAgIHJldHVy
biBjbG9uZTsKIH0KIAotUmVmUHRyPEVsZW1lbnQ+IEVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhv
dXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50KQorUmVmPEVs
ZW1lbnQ+IEVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4o
RG9jdW1lbnQmIHRhcmdldERvY3VtZW50KQogewogICAgIHJldHVybiB0YXJnZXREb2N1bWVudC5j
cmVhdGVFbGVtZW50KHRhZ1FOYW1lKCksIGZhbHNlKTsKIH0KQEAgLTIzMTksNyArMjMxOCw3IEBA
IHZvaWQgRWxlbWVudDo6c2V0T3V0ZXJIVE1MKGNvbnN0IFN0cmluZyYgaHRtbCwgRXhjZXB0aW9u
Q29kZSYgZWMpCiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgcGFyZW50
LT5yZXBsYWNlQ2hpbGQoZnJhZ21lbnQucmVsZWFzZSgpLCB0aGlzLCBlYyk7CisgICAgcGFyZW50
LT5yZXBsYWNlQ2hpbGQoZnJhZ21lbnQucmVsZWFzZU5vbk51bGwoKSwgKnRoaXMsIGVjKTsKICAg
ICBSZWZQdHI8Tm9kZT4gbm9kZSA9IG5leHQgPyBuZXh0LT5wcmV2aW91c1NpYmxpbmcoKSA6IG51
bGxwdHI7CiAgICAgaWYgKCFlYyAmJiBpczxUZXh0Pihub2RlLmdldCgpKSkKICAgICAgICAgbWVy
Z2VXaXRoTmV4dFRleHROb2RlKGRvd25jYXN0PFRleHQ+KCpub2RlKSwgZWMpOwpAQCAtMjMzOCw3
ICsyMzM3LDcgQEAgdm9pZCBFbGVtZW50OjpzZXRJbm5lckhUTUwoY29uc3QgU3RyaW5nJiBodG1s
LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgICAgIGNvbnRhaW5lciA9IGRvd25jYXN0PEhU
TUxUZW1wbGF0ZUVsZW1lbnQ+KCp0aGlzKS5jb250ZW50KCk7CiAjZW5kaWYKIAotICAgICAgICBy
ZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQoKmNvbnRhaW5lciwgZnJhZ21lbnQucmVsZWFzZSgp
LCBlYyk7CisgICAgICAgIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudCgqY29udGFpbmVyLCBm
cmFnbWVudC5yZWxlYXNlTm9uTnVsbCgpLCBlYyk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
aAppbmRleCAxZTYwNzAzY2I2YjJmZDkzNjA3MWY4NWI5YjlkYTlkN2FhNDBjYzRiLi4wNDgxMGUx
Y2Y4NDk1ZWQyNGZkODk0NTA1M2ZhZmJjZDQzMjJkMTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAg
LTIwMSw4ICsyMDEsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFN0cmluZyBub2RlTmFtZSgp
IGNvbnN0IG92ZXJyaWRlOwogCi0gICAgUmVmUHRyPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhD
aGlsZHJlbihEb2N1bWVudCYpOwotICAgIFJlZlB0cjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRo
b3V0Q2hpbGRyZW4oRG9jdW1lbnQmKTsKKyAgICBSZWY8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0
aENoaWxkcmVuKERvY3VtZW50Jik7CisgICAgUmVmPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhv
dXRDaGlsZHJlbihEb2N1bWVudCYpOwogCiAgICAgdm9pZCBub3JtYWxpemVBdHRyaWJ1dGVzKCk7
CiAgICAgU3RyaW5nIG5vZGVOYW1lUHJlc2VydmluZ0Nhc2UoKSBjb25zdDsKQEAgLTU2Myw4ICs1
NjMsOCBAQCBwcml2YXRlOgogCiAgICAgLy8gY2xvbmVOb2RlIGlzIHByaXZhdGUgc28gdGhhdCBu
b24tdmlydHVhbCBjbG9uZUVsZW1lbnRXaXRoQ2hpbGRyZW4gYW5kIGNsb25lRWxlbWVudFdpdGhv
dXRDaGlsZHJlbgogICAgIC8vIGFyZSB1c2VkIGluc3RlYWQuCi0gICAgdmlydHVhbCBSZWZQdHI8
Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVy
cmlkZTsKLSAgICB2aXJ0dWFsIFJlZlB0cjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRob3V0QXR0
cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50Jik7CisgICAgdmlydHVhbCBSZWY8Tm9kZT4gY2xv
bmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIFJlZjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENo
aWxkcmVuKERvY3VtZW50Jik7CiAKICAgICB2b2lkIGFkZFNoYWRvd1Jvb3QoUmVmPFNoYWRvd1Jv
b3Q+JiYpOwogICAgIHZvaWQgcmVtb3ZlU2hhZG93Um9vdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRW50
aXR5UmVmZXJlbmNlLmNwcAppbmRleCBhMmZmNjNiMDEwZTZlMjhlMGZjNGVhYWU4NWE3NGExM2Zl
OWQ2YzdmLi43ZTkxYTQ2MmRhODIwOWQ5MjJjNDVkYzg0YzQxYTA4NTVhZDZiZTFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmNwcApAQCAtNDYsNyArNDYsNyBAQCBOb2RlOjpO
b2RlVHlwZSBFbnRpdHlSZWZlcmVuY2U6Om5vZGVUeXBlKCkgY29uc3QKICAgICByZXR1cm4gRU5U
SVRZX1JFRkVSRU5DRV9OT0RFOwogfQogCi1SZWZQdHI8Tm9kZT4gRW50aXR5UmVmZXJlbmNlOjpj
bG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRp
b24pCitSZWY8Tm9kZT4gRW50aXR5UmVmZXJlbmNlOjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVu
dCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24pCiB7CiAgICAgcmV0dXJuIGNyZWF0
ZSh0YXJnZXREb2N1bWVudCwgbV9lbnRpdHlOYW1lKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlS
ZWZlcmVuY2UuaAppbmRleCAwM2Y0M2NkZjk1ZWE2OGYwMDRkOWYxMTNiYTE2OGYwZjdiZmFmMzk2
Li44NmRmZWIzOTgyNWIzNDUwZTc1MzU5MjUwNjg1MTEwYjNhZjBjYThmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VudGl0eVJlZmVyZW5jZS5oCkBAIC0zNSw3ICszNSw3IEBAIHByaXZhdGU6CiAKICAgICB2
aXJ0dWFsIFN0cmluZyBub2RlTmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgTm9k
ZVR5cGUgbm9kZVR5cGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlZlB0cjxOb2Rl
PiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xv
bmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CiAKICAgICBTdHJpbmcgbV9lbnRpdHlOYW1lOwogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmNwcAppbmRleCBmZGM3ZmI1NTBkYTE1ZjNjNTllNTk2ZDU2MTNmNzMyNTJjOTUx
OGJhLi4yOGYyMTE0NWUxNTJlYzQ5OTU1MjExZTNiMmZlODRkOGNmYmU0ODMyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwCkBAIC00MjksMzggKzQyOSw1NCBAQCBFbGVtZW50KiBOb2RlOjpuZXh0RWxlbWVudFNp
YmxpbmcoKSBjb25zdAogCiBib29sIE5vZGU6Omluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5vZGU+
IG5ld0NoaWxkLCBOb2RlKiByZWZDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CisgICAgaWYg
KCFuZXdDaGlsZCkgeworICAgICAgICBlYyA9IFR5cGVFcnJvcjsKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0KICAgICBpZiAoIWlzPENvbnRhaW5lck5vZGU+KCp0aGlzKSkgewogICAgICAg
ICBlYyA9IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KLSAgICByZXR1cm4gZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4oKnRoaXMpLmluc2VydEJlZm9y
ZShuZXdDaGlsZCwgcmVmQ2hpbGQsIGVjKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8Q29udGFpbmVy
Tm9kZT4oKnRoaXMpLmluc2VydEJlZm9yZSgqbmV3Q2hpbGQsIHJlZkNoaWxkLCBlYyk7CiB9CiAK
IGJvb2wgTm9kZTo6cmVwbGFjZUNoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUq
IG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKKyAgICBpZiAoIW5ld0NoaWxkIHx8ICFv
bGRDaGlsZCkgeworICAgICAgICBlYyA9IFR5cGVFcnJvcjsKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KICAgICBpZiAoIWlzPENvbnRhaW5lck5vZGU+KCp0aGlzKSkgewogICAgICAgICBl
YyA9IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
LSAgICByZXR1cm4gZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4oKnRoaXMpLnJlcGxhY2VDaGlsZChu
ZXdDaGlsZCwgb2xkQ2hpbGQsIGVjKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8Q29udGFpbmVyTm9k
ZT4oKnRoaXMpLnJlcGxhY2VDaGlsZCgqbmV3Q2hpbGQsICpvbGRDaGlsZCwgZWMpOwogfQogCiBi
b29sIE5vZGU6OnJlbW92ZUNoaWxkKE5vZGUqIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykK
IHsKKyAgICBpZiAoIW9sZENoaWxkKSB7CisgICAgICAgIGVjID0gVHlwZUVycm9yOworICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQogICAgIGlmICghaXM8Q29udGFpbmVyTm9kZT4oKnRoaXMp
KSB7CiAgICAgICAgIGVjID0gTk9UX0ZPVU5EX0VSUjsKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KLSAgICByZXR1cm4gZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4oKnRoaXMpLnJlbW92ZUNo
aWxkKG9sZENoaWxkLCBlYyk7CisgICAgcmV0dXJuIGRvd25jYXN0PENvbnRhaW5lck5vZGU+KCp0
aGlzKS5yZW1vdmVDaGlsZCgqb2xkQ2hpbGQsIGVjKTsKIH0KIAogYm9vbCBOb2RlOjphcHBlbmRD
aGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKKyAg
ICBpZiAoIW5ld0NoaWxkKSB7CisgICAgICAgIGVjID0gVHlwZUVycm9yOworICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQogICAgIGlmICghaXM8Q29udGFpbmVyTm9kZT4oKnRoaXMpKSB7CiAg
ICAgICAgIGVjID0gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgfQotICAgIHJldHVybiBkb3duY2FzdDxDb250YWluZXJOb2RlPigqdGhpcykuYXBwZW5k
Q2hpbGQobmV3Q2hpbGQsIGVjKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4o
KnRoaXMpLmFwcGVuZENoaWxkKCpuZXdDaGlsZCwgZWMpOwogfQogCiBzdGF0aWMgSGFzaFNldDxS
ZWZQdHI8Tm9kZT4+IG5vZGVTZXRQcmVUcmFuc2Zvcm1lZEZyb21Ob2RlT3JTdHJpbmdWZWN0b3Io
Y29uc3QgVmVjdG9yPE5vZGVPclN0cmluZz4mIG5vZGVPclN0cmluZ1ZlY3RvcikKQEAgLTUxNSw3
ICs1MzEsNyBAQCB2b2lkIE5vZGU6OmJlZm9yZShWZWN0b3I8Tm9kZU9yU3RyaW5nPiYmIG5vZGVP
clN0cmluZ1ZlY3RvciwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgZWxzZQogICAgICAgICB2aWFi
bGVQcmV2aW91c1NpYmxpbmcgPSBwYXJlbnQtPmZpcnN0Q2hpbGQoKTsKIAotICAgIHBhcmVudC0+
aW5zZXJ0QmVmb3JlKG5vZGUucmVsZWFzZSgpLCB2aWFibGVQcmV2aW91c1NpYmxpbmcuZ2V0KCks
IGVjKTsKKyAgICBwYXJlbnQtPmluc2VydEJlZm9yZShub2RlLnJlbGVhc2VOb25OdWxsKCksIHZp
YWJsZVByZXZpb3VzU2libGluZy5nZXQoKSwgZWMpOwogfQogCiB2b2lkIE5vZGU6OmFmdGVyKFZl
Y3RvcjxOb2RlT3JTdHJpbmc+JiYgbm9kZU9yU3RyaW5nVmVjdG9yLCBFeGNlcHRpb25Db2RlJiBl
YykKQEAgLTUzMSw3ICs1NDcsNyBAQCB2b2lkIE5vZGU6OmFmdGVyKFZlY3RvcjxOb2RlT3JTdHJp
bmc+JiYgbm9kZU9yU3RyaW5nVmVjdG9yLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBpZiAoZWMg
fHwgIW5vZGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG5v
ZGUucmVsZWFzZSgpLCB2aWFibGVOZXh0U2libGluZy5nZXQoKSwgZWMpOworICAgIHBhcmVudC0+
aW5zZXJ0QmVmb3JlKG5vZGUucmVsZWFzZU5vbk51bGwoKSwgdmlhYmxlTmV4dFNpYmxpbmcuZ2V0
KCksIGVjKTsKIH0KIAogdm9pZCBOb2RlOjpyZXBsYWNlV2l0aChWZWN0b3I8Tm9kZU9yU3RyaW5n
PiYmIG5vZGVPclN0cmluZ1ZlY3RvciwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC01NDgsMTUgKzU2
NCwxNSBAQCB2b2lkIE5vZGU6OnJlcGxhY2VXaXRoKFZlY3RvcjxOb2RlT3JTdHJpbmc+JiYgbm9k
ZU9yU3RyaW5nVmVjdG9yLCBFeGNlcHRpb25Db2RlJgogICAgICAgICByZXR1cm47CiAKICAgICBp
ZiAocGFyZW50Tm9kZSgpID09IHBhcmVudCkKLSAgICAgICAgcGFyZW50LT5yZXBsYWNlQ2hpbGQo
bm9kZS5yZWxlYXNlKCksIHRoaXMsIGVjKTsKKyAgICAgICAgcGFyZW50LT5yZXBsYWNlQ2hpbGQo
bm9kZS5yZWxlYXNlTm9uTnVsbCgpLCAqdGhpcywgZWMpOwogICAgIGVsc2UKLSAgICAgICAgcGFy
ZW50LT5pbnNlcnRCZWZvcmUobm9kZS5yZWxlYXNlKCksIHZpYWJsZU5leHRTaWJsaW5nLmdldCgp
LCBlYyk7CisgICAgICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG5vZGUucmVsZWFzZU5vbk51bGwo
KSwgdmlhYmxlTmV4dFNpYmxpbmcuZ2V0KCksIGVjKTsKIH0KIAogdm9pZCBOb2RlOjpyZW1vdmUo
RXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKENvbnRhaW5lck5vZGUqIHBhcmVudCA9IHBh
cmVudE5vZGUoKSkKLSAgICAgICAgcGFyZW50LT5yZW1vdmVDaGlsZCh0aGlzLCBlYyk7CisgICAg
ICAgIHBhcmVudC0+cmVtb3ZlQ2hpbGQoKnRoaXMsIGVjKTsKIH0KIAogdm9pZCBOb2RlOjpub3Jt
YWxpemUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggOTI5ZWNlNDJjOGViN2MyYjVhNDM4ZTU5ZjVlMTc3NmFi
MTg5ZDA2NS4uYTUyZjBmNDNmMTUxMDYxZTgyNmQ1YTU4OTU0M2Y5YTE1OTkzZDhiZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5oCkBAIC0yMDEsOCArMjAxLDggQEAgcHVibGljOgogICAgICAgICBTZWxmV2l0aFRlbXBs
YXRlQ29udGVudCwKICAgICAgICAgRXZlcnl0aGluZywKICAgICB9OwotICAgIHZpcnR1YWwgUmVm
UHRyPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikg
PSAwOwotICAgIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGUoYm9vbCBkZWVwKSB7IHJldHVybiBjbG9u
ZU5vZGVJbnRlcm5hbChkb2N1bWVudCgpLCBkZWVwID8gQ2xvbmluZ09wZXJhdGlvbjo6RXZlcnl0
aGluZyA6IENsb25pbmdPcGVyYXRpb246Ok9ubHlTZWxmKTsgfQorICAgIHZpcnR1YWwgUmVmPE5v
ZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgPSAwOwor
ICAgIFJlZjxOb2RlPiBjbG9uZU5vZGUoYm9vbCBkZWVwKSB7IHJldHVybiBjbG9uZU5vZGVJbnRl
cm5hbChkb2N1bWVudCgpLCBkZWVwID8gQ2xvbmluZ09wZXJhdGlvbjo6RXZlcnl0aGluZyA6IENs
b25pbmdPcGVyYXRpb246Ok9ubHlTZWxmKTsgfQogCiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNT
dHJpbmcmIGxvY2FsTmFtZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5n
JiBuYW1lc3BhY2VVUkkoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Q
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJ
bnN0cnVjdGlvbi5jcHAKaW5kZXggYjM0M2NhM2EwMWFlOGVlZmRiNTk3ZTVkNGUyMmUyN2I5OTNm
ZWY5MC4uMzAwMDliN2IwZGZjZWE1NjllMmNjZWExODMxNWNiMjc1MTMxYzA1ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKQEAgLTc5LDcgKzc5LDcg
QEAgTm9kZTo6Tm9kZVR5cGUgUHJvY2Vzc2luZ0luc3RydWN0aW9uOjpub2RlVHlwZSgpIGNvbnN0
CiAgICAgcmV0dXJuIFBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERTsKIH0KIAotUmVmUHRyPE5v
ZGU+IFByb2Nlc3NpbmdJbnN0cnVjdGlvbjo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRh
cmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uKQorUmVmPE5vZGU+IFByb2Nlc3NpbmdJbnN0
cnVjdGlvbjo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9u
aW5nT3BlcmF0aW9uKQogewogICAgIC8vIEZJWE1FOiBJcyBpdCBhIHByb2JsZW0gdGhhdCB0aGlz
IGRvZXMgbm90IGNvcHkgbV9sb2NhbEhyZWY/CiAgICAgLy8gV2hhdCBhYm91dCBvdGhlciBkYXRh
IG1lbWJlcnM/CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgKaW5k
ZXggMjFmZDllOTdjZDJmNzVjOGZkNzU4MDBlMDIyYWRhMjk1Mzk3NmY4ZS4uZWZhOTA1YjY2NjNm
M2EyOTNjOTc3MTA1MzRmZDZmZGE5ODQyZTk3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24uaApAQCAtNTgsNyArNTgsNyBAQCBwcml2YXRlOgogCiAgICAgdmly
dHVhbCBTdHJpbmcgbm9kZU5hbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIE5vZGVU
eXBlIG5vZGVUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZWZQdHI8Tm9kZT4g
Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25p
bmdPcGVyYXRpb24pIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRp
b25SZXF1ZXN0IGluc2VydGVkSW50byhDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCB2b2lkIHJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUmKSBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFu
Z2UuY3BwCmluZGV4IDRkMjI3ZGFhZjRlNDQ4ODE4ODQyNzFjMWJkZTlmMTg4M2Y1YWM0YTQuLjI2
NTA4Y2YwNDcyZDRmMGVkZWZhNWQzNTU3Y2U5MjNjNzhiMWI5MjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNw
cApAQCAtNjY1LDcgKzY2NSw3IEBAIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBSYW5nZTo6cHJv
Y2Vzc0NvbnRlbnRzKEFjdGlvblR5cGUgYWN0aW9uLCBFeGNlcHRpb25Db2RlCiAgICAgLy8gKG9y
IGp1c3QgZGVsZXRlIHRoZSBzdHVmZiBpbiBiZXR3ZWVuKQogCiAgICAgaWYgKChhY3Rpb24gPT0g
RXh0cmFjdCB8fCBhY3Rpb24gPT0gQ2xvbmUpICYmIGxlZnRDb250ZW50cykKLSAgICAgICAgZnJh
Z21lbnQtPmFwcGVuZENoaWxkKGxlZnRDb250ZW50cywgZWMpOworICAgICAgICBmcmFnbWVudC0+
YXBwZW5kQ2hpbGQoKmxlZnRDb250ZW50cywgZWMpOwogCiAgICAgaWYgKHByb2Nlc3NTdGFydCkg
ewogICAgICAgICBOb2RlVmVjdG9yIG5vZGVzOwpAQCAtNjc1LDcgKzY3NSw3IEBAIFJlZlB0cjxE
b2N1bWVudEZyYWdtZW50PiBSYW5nZTo6cHJvY2Vzc0NvbnRlbnRzKEFjdGlvblR5cGUgYWN0aW9u
LCBFeGNlcHRpb25Db2RlCiAgICAgfQogCiAgICAgaWYgKChhY3Rpb24gPT0gRXh0cmFjdCB8fCBh
Y3Rpb24gPT0gQ2xvbmUpICYmIHJpZ2h0Q29udGVudHMpCi0gICAgICAgIGZyYWdtZW50LT5hcHBl
bmRDaGlsZChyaWdodENvbnRlbnRzLCBlYyk7CisgICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGls
ZCgqcmlnaHRDb250ZW50cywgZWMpOwogCiAgICAgcmV0dXJuIGZyYWdtZW50OwogfQpAQCAtNzAy
LDcgKzcwMiw3IEBAIFJlZlB0cjxOb2RlPiBSYW5nZTo6cHJvY2Vzc0NvbnRlbnRzQmV0d2Vlbk9m
ZnNldHMoQWN0aW9uVHlwZSBhY3Rpb24sIFBhc3NSZWZQdHI8CiAgICAgICAgIGVuZE9mZnNldCA9
IHN0ZDo6bWluKGVuZE9mZnNldCwgc3RhdGljX2Nhc3Q8Q2hhcmFjdGVyRGF0YSo+KGNvbnRhaW5l
ciktPmxlbmd0aCgpKTsKICAgICAgICAgc3RhcnRPZmZzZXQgPSBzdGQ6Om1pbihzdGFydE9mZnNl
dCwgZW5kT2Zmc2V0KTsKICAgICAgICAgaWYgKGFjdGlvbiA9PSBFeHRyYWN0IHx8IGFjdGlvbiA9
PSBDbG9uZSkgewotICAgICAgICAgICAgUmVmUHRyPENoYXJhY3RlckRhdGE+IGMgPSBzdGF0aWNf
cG9pbnRlcl9jYXN0PENoYXJhY3RlckRhdGE+KGNvbnRhaW5lci0+Y2xvbmVOb2RlKHRydWUpKTsK
KyAgICAgICAgICAgIFJlZlB0cjxDaGFyYWN0ZXJEYXRhPiBjID0gc3RhdGljX2Nhc3Q8Q2hhcmFj
dGVyRGF0YSo+KGNvbnRhaW5lci0+Y2xvbmVOb2RlKHRydWUpLnB0cigpKTsKICAgICAgICAgICAg
IGRlbGV0ZUNoYXJhY3RlckRhdGEoYywgc3RhcnRPZmZzZXQsIGVuZE9mZnNldCwgZWMpOwogICAg
ICAgICAgICAgaWYgKGZyYWdtZW50KSB7CiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZnJhZ21l
bnQ7CkBAIC03MTcsNyArNzE3LDcgQEAgUmVmUHRyPE5vZGU+IFJhbmdlOjpwcm9jZXNzQ29udGVu
dHNCZXR3ZWVuT2Zmc2V0cyhBY3Rpb25UeXBlIGFjdGlvbiwgUGFzc1JlZlB0cjwKICAgICAgICAg
ZW5kT2Zmc2V0ID0gc3RkOjptaW4oZW5kT2Zmc2V0LCBzdGF0aWNfY2FzdDxQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24qPihjb250YWluZXIpLT5kYXRhKCkubGVuZ3RoKCkpOwogICAgICAgICBzdGFydE9m
ZnNldCA9IHN0ZDo6bWluKHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQpOwogICAgICAgICBpZiAoYWN0
aW9uID09IEV4dHJhY3QgfHwgYWN0aW9uID09IENsb25lKSB7Ci0gICAgICAgICAgICBSZWZQdHI8
UHJvY2Vzc2luZ0luc3RydWN0aW9uPiBjID0gc3RhdGljX3BvaW50ZXJfY2FzdDxQcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24+KGNvbnRhaW5lci0+Y2xvbmVOb2RlKHRydWUpKTsKKyAgICAgICAgICAgIFJl
ZlB0cjxQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24+IGMgPSBzdGF0aWNfY2FzdDxQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24qPihjb250YWluZXItPmNsb25lTm9kZSh0cnVlKS5wdHIoKSk7CiAgICAgICAgICAg
ICBjLT5zZXREYXRhKGMtPmRhdGEoKS5zdWJzdHJpbmcoc3RhcnRPZmZzZXQsIGVuZE9mZnNldCAt
IHN0YXJ0T2Zmc2V0KSwgZWMpOwogICAgICAgICAgICAgaWYgKGZyYWdtZW50KSB7CiAgICAgICAg
ICAgICAgICAgcmVzdWx0ID0gZnJhZ21lbnQ7CkBAIC05MzUsNyArOTM1LDcgQEAgdm9pZCBSYW5n
ZTo6aW5zZXJ0Tm9kZShQYXNzUmVmUHRyPE5vZGU+IHBycE5ld05vZGUsIEV4Y2VwdGlvbkNvZGUm
IGVjKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAKICAgICAgICAgY29udGFpbmVyID0g
JnN0YXJ0Q29udGFpbmVyKCk7Ci0gICAgICAgIGNvbnRhaW5lci0+cGFyZW50Tm9kZSgpLT5pbnNl
cnRCZWZvcmUobmV3Tm9kZS5yZWxlYXNlKCksIG5ld1RleHQuZ2V0KCksIGVjKTsKKyAgICAgICAg
Y29udGFpbmVyLT5wYXJlbnROb2RlKCktPmluc2VydEJlZm9yZShuZXdOb2RlLnJlbGVhc2VOb25O
dWxsKCksIG5ld1RleHQuZ2V0KCksIGVjKTsKICAgICAgICAgaWYgKGVjKQogICAgICAgICAgICAg
cmV0dXJuOwogCkBAIC0xMzAzLDcgKzEzMDMsNyBAQCB2b2lkIFJhbmdlOjpzdXJyb3VuZENvbnRl
bnRzKFBhc3NSZWZQdHI8Tm9kZT4gcGFzc05ld1BhcmVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAK
ICAgICBlYyA9IDA7CiAgICAgd2hpbGUgKE5vZGUqIG4gPSBuZXdQYXJlbnQtPmZpcnN0Q2hpbGQo
KSkgewotICAgICAgICBkb3duY2FzdDxDb250YWluZXJOb2RlPigqbmV3UGFyZW50KS5yZW1vdmVD
aGlsZChuLCBlYyk7CisgICAgICAgIGRvd25jYXN0PENvbnRhaW5lck5vZGU+KCpuZXdQYXJlbnQp
LnJlbW92ZUNoaWxkKCpuLCBlYyk7CiAgICAgICAgIGlmIChlYykKICAgICAgICAgICAgIHJldHVy
bjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKaW5kZXggYTEyMjU3ZjgyZGRhZGM4
MDM4ZThhMzBhMzQyNTJmNjMyOWY3YmI2Yy4uODg2MTAwZGI0NjllMjQxZTQ2Yjk1NmJjNTcwMWRh
MGNjNWU2Njk1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcApAQCAtOTIsNyArOTIsNyBA
QCB2b2lkIFNoYWRvd1Jvb3Q6OnNldElubmVySFRNTChjb25zdCBTdHJpbmcmIG1hcmt1cCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiAgICAgfQogCiAgICAgaWYgKFJlZlB0cjxEb2N1bWVudEZyYWdtZW50
PiBmcmFnbWVudCA9IGNyZWF0ZUZyYWdtZW50Rm9ySW5uZXJPdXRlckhUTUwobWFya3VwLCBob3N0
KCksIEFsbG93U2NyaXB0aW5nQ29udGVudCwgZWMpKQotICAgICAgICByZXBsYWNlQ2hpbGRyZW5X
aXRoRnJhZ21lbnQoKnRoaXMsIGZyYWdtZW50LnJlbGVhc2UoKSwgZWMpOworICAgICAgICByZXBs
YWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQoKnRoaXMsIGZyYWdtZW50LnJlbGVhc2VOb25OdWxsKCks
IGVjKTsKIH0KIAogYm9vbCBTaGFkb3dSb290OjpjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlIHR5
cGUpIGNvbnN0CkBAIC0xMzEsOSArMTMxLDEwIEBAIHZvaWQgU2hhZG93Um9vdDo6Y2hpbGRyZW5D
aGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2UpCiAgICAgaW52YWxpZGF0ZURpc3RyaWJ1
dGlvbigpOwogfQogCi1SZWZQdHI8Tm9kZT4gU2hhZG93Um9vdDo6Y2xvbmVOb2RlSW50ZXJuYWwo
RG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKQorUmVmPE5vZGU+IFNoYWRvd1Jvb3Q6OmNsb25l
Tm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikKIHsKLSAgICByZXR1cm4g
bnVsbHB0cjsgLy8gU2hhZG93Um9vdHMgc2hvdWxkIG5ldmVyIGJlIGNsb25lZC4KKyAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAqc3RhdGljX2Nhc3Q8Tm9kZSo+
KG51bGxwdHIpOyAvLyBTaGFkb3dSb290cyBzaG91bGQgbmV2ZXIgYmUgY2xvbmVkLgogfQogCiB2
b2lkIFNoYWRvd1Jvb3Q6OnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93
Um9vdC5oCmluZGV4IDZkMzExZmRiNjI2M2RhMTJkYzlkOTA0ZjcxMGQwN2I5ZWM4NWE4Y2YuLjYz
MTYwOGFmMWFkNDQzNmEyNWJhNjFlYjM5ZGVkOGZmNmEyMmJiZDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d1Jvb3QuaApAQCAtNzYsNyArNzYsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBjaGls
ZFR5cGVBbGxvd2VkKE5vZGVUeXBlKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQg
Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0
dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVy
YXRpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNsb25lTm9kZUludGVybmFs
KERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CiAKICAgICAvLyBGSVhNRTog
VGhpcyBzaG91bGRuJ3QgaGFwcGVuLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODg4MzQKICAgICBib29sIGlzT3JwaGFuKCkgY29uc3QgeyByZXR1cm4gIW1faG9zdDsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL1RleHQuY3BwCmluZGV4IGIxMTcxZDc2MTFiZTZkZTY1MTZiNjA1ZGNmZTFiNmRjMTlk
NzEzNDMuLjZjNGM4OWRhOWViNmVmY2YwNmFiODQyOWVhNWM0ZDEyMjNlZTM0NjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
VGV4dC5jcHAKQEAgLTczLDcgKzczLDcgQEAgUmVmUHRyPFRleHQ+IFRleHQ6OnNwbGl0VGV4dCh1
bnNpZ25lZCBvZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIGRpc3BhdGNoTW9kaWZpZWRF
dmVudChvbGRTdHIpOwogCiAgICAgaWYgKHBhcmVudE5vZGUoKSkKLSAgICAgICAgcGFyZW50Tm9k
ZSgpLT5pbnNlcnRCZWZvcmUobmV3VGV4dC5wdHIoKSwgbmV4dFNpYmxpbmcoKSwgZWMpOworICAg
ICAgICBwYXJlbnROb2RlKCktPmluc2VydEJlZm9yZShuZXdUZXh0LmNvcHlSZWYoKSwgbmV4dFNp
YmxpbmcoKSwgZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTEzMiwy
OCArMTMyLDI4IEBAIFJlZlB0cjxUZXh0PiBUZXh0OjpyZXBsYWNlV2hvbGVUZXh0KGNvbnN0IFN0
cmluZyYgbmV3VGV4dCwgRXhjZXB0aW9uQ29kZSYpCiAgICAgUmVmUHRyPFRleHQ+IHByb3RlY3Rl
ZFRoaXModGhpcyk7IC8vIE11dGF0aW9uIGV2ZW50IGhhbmRsZXJzIGNvdWxkIGNhdXNlIG91ciBs
YXN0IHJlZiB0byBnbyBhd2F5CiAgICAgUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCA9IHBh
cmVudE5vZGUoKTsgLy8gUHJvdGVjdCBhZ2FpbnN0IG11dGF0aW9uIGhhbmRsZXJzIG1vdmluZyB0
aGlzIG5vZGUgZHVyaW5nIHRyYXZlcnNhbAogICAgIGZvciAoUmVmUHRyPE5vZGU+IG4gPSBzdGFy
dFRleHQ7IG4gJiYgbiAhPSB0aGlzICYmIG4tPmlzVGV4dE5vZGUoKSAmJiBuLT5wYXJlbnROb2Rl
KCkgPT0gcGFyZW50OykgewotICAgICAgICBSZWZQdHI8Tm9kZT4gbm9kZVRvUmVtb3ZlKG4ucmVs
ZWFzZSgpKTsKKyAgICAgICAgUmVmPE5vZGU+IG5vZGVUb1JlbW92ZShuLnJlbGVhc2VOb25OdWxs
KCkpOwogICAgICAgICBuID0gbm9kZVRvUmVtb3ZlLT5uZXh0U2libGluZygpOwotICAgICAgICBw
YXJlbnQtPnJlbW92ZUNoaWxkKG5vZGVUb1JlbW92ZS5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7
CisgICAgICAgIHBhcmVudC0+cmVtb3ZlQ2hpbGQoV1RGOjptb3ZlKG5vZGVUb1JlbW92ZSksIElH
Tk9SRV9FWENFUFRJT04pOwogICAgIH0KIAogICAgIGlmICh0aGlzICE9IGVuZFRleHQpIHsKICAg
ICAgICAgTm9kZSogb25lUGFzdEVuZFRleHQgPSBlbmRUZXh0LT5uZXh0U2libGluZygpOwogICAg
ICAgICBmb3IgKFJlZlB0cjxOb2RlPiBuID0gbmV4dFNpYmxpbmcoKTsgbiAmJiBuICE9IG9uZVBh
c3RFbmRUZXh0ICYmIG4tPmlzVGV4dE5vZGUoKSAmJiBuLT5wYXJlbnROb2RlKCkgPT0gcGFyZW50
OykgewotICAgICAgICAgICAgUmVmUHRyPE5vZGU+IG5vZGVUb1JlbW92ZShuLnJlbGVhc2UoKSk7
CisgICAgICAgICAgICBSZWY8Tm9kZT4gbm9kZVRvUmVtb3ZlKG4ucmVsZWFzZU5vbk51bGwoKSk7
CiAgICAgICAgICAgICBuID0gbm9kZVRvUmVtb3ZlLT5uZXh0U2libGluZygpOwotICAgICAgICAg
ICAgcGFyZW50LT5yZW1vdmVDaGlsZChub2RlVG9SZW1vdmUuZ2V0KCksIElHTk9SRV9FWENFUFRJ
T04pOworICAgICAgICAgICAgcGFyZW50LT5yZW1vdmVDaGlsZChXVEY6Om1vdmUobm9kZVRvUmVt
b3ZlKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAobmV3
VGV4dC5pc0VtcHR5KCkpIHsKICAgICAgICAgaWYgKHBhcmVudCAmJiBwYXJlbnROb2RlKCkgPT0g
cGFyZW50KQotICAgICAgICAgICAgcGFyZW50LT5yZW1vdmVDaGlsZCh0aGlzLCBJR05PUkVfRVhD
RVBUSU9OKTsKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICBwYXJlbnQtPnJlbW92ZUNo
aWxkKCp0aGlzLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgfQogCiAgICAgc2V0RGF0YShuZXdUZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKLSAgICByZXR1
cm4gcHJvdGVjdGVkVGhpcy5yZWxlYXNlKCk7CisgICAgcmV0dXJuIHByb3RlY3RlZFRoaXM7CiB9
CiAKIFN0cmluZyBUZXh0Ojpub2RlTmFtZSgpIGNvbnN0CkBAIC0xNjYsNyArMTY2LDcgQEAgTm9k
ZTo6Tm9kZVR5cGUgVGV4dDo6bm9kZVR5cGUoKSBjb25zdAogICAgIHJldHVybiBURVhUX05PREU7
CiB9CiAKLVJlZlB0cjxOb2RlPiBUZXh0OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFy
Z2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24pCitSZWY8Tm9kZT4gVGV4dDo6Y2xvbmVOb2Rl
SW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uKQogewog
ICAgIHJldHVybiBjcmVhdGUodGFyZ2V0RG9jdW1lbnQsIGRhdGEoKSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuaApp
bmRleCBhOTY3NDM2NGNkYTBkZWRiOGVjYTU5Y2MwYTI1YTUzNzJiYmE5N2Q0Li5lZmQ2YmRlOTI3
YzFmOTk5MzU3ZTI1MWVlNDU0MjA5YWQxY2Y1MGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vVGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmgKQEAgLTYyLDcgKzYy
LDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICB2aXJ0dWFsIFN0cmluZyBub2RlTmFtZSgp
IGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgTm9kZVR5cGUgbm9kZVR5cGUoKSBjb25zdCBv
dmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1
bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPE5vZGU+
IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCBib29sIGNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUpIGNvbnN0IG92ZXJy
aWRlOwogCiAgICAgdmlydHVhbCBSZWY8VGV4dD4gdmlydHVhbENyZWF0ZShjb25zdCBTdHJpbmcm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKaW5kZXgg
NmE4ZDllOTFhMjUxYjFhYjk3YTE5ZTIzMjMyMGNiODQ2OGI1YzMwNC4uY2VlZWRmZDE3YTgzMjEx
MDM0ZmU3NWU5ZTY1ZWFhMmJmZjg3ZmFjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9B
cHBlbmROb2RlQ29tbWFuZC5jcHAKQEAgLTM1LDEzICszNSwxMiBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLUFwcGVuZE5vZGVDb21tYW5kOjpBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRy
PENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBFZGl0QWN0aW9u
IGVkaXRpbmdBY3Rpb24pCitBcHBlbmROb2RlQ29tbWFuZDo6QXBwZW5kTm9kZUNvbW1hbmQoUGFz
c1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIE5vZGUmIG5vZGUsIEVkaXRBY3Rpb24gZWRp
dGluZ0FjdGlvbikKICAgICA6IFNpbXBsZUVkaXRDb21tYW5kKHBhcmVudC0+ZG9jdW1lbnQoKSwg
ZWRpdGluZ0FjdGlvbikKICAgICAsIG1fcGFyZW50KHBhcmVudCkKICAgICAsIG1fbm9kZShub2Rl
KQogewogICAgIEFTU0VSVChtX3BhcmVudCk7Ci0gICAgQVNTRVJUKG1fbm9kZSk7CiAgICAgQVNT
RVJUKCFtX25vZGUtPnBhcmVudE5vZGUoKSk7CiAKICAgICBBU1NFUlQobV9wYXJlbnQtPmhhc0Vk
aXRhYmxlU3R5bGUoKSB8fCAhbV9wYXJlbnQtPnJlbmRlcmVyKCkpOwpAQCAtNjgsMTAgKzY3LDEx
IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogICAgIGlmICghbV9wYXJlbnQt
Pmhhc0VkaXRhYmxlU3R5bGUoKSAmJiBtX3BhcmVudC0+cmVuZGVyZXIoKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKG1fbm9kZS5nZXQoKSwgSUdOT1JFX0VY
Q0VQVElPTik7CisgICAgUmVmPE5vZGU+IG5vZGVUb0FwcGVuZCA9IG1fbm9kZS5jb3B5UmVmKCk7
CisgICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShub2RlVG9BcHBlbmQpLCBJR05P
UkVfRVhDRVBUSU9OKTsKIAogICAgIGlmIChzaG91bGRQb3N0QWNjZXNzaWJpbGl0eU5vdGlmaWNh
dGlvbigpKQotICAgICAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25v
ZGUuZ2V0KCksIGFwcGx5RWRpdFR5cGUoKSk7CisgICAgICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdu
b3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5wdHIoKSwgYXBwbHlFZGl0VHlwZSgpKTsKIH0KIAogdm9p
ZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKQEAgLTgxLDcgKzgxLDcgQEAgdm9pZCBB
cHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIAogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRo
aXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0CiAgICAgaWYgKHNob3VsZFBvc3RB
Y2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uKCkpCi0gICAgICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdu
b3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCkpOworICAgICAg
ICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUucHRyKCksIHVuYXBw
bHlFZGl0VHlwZSgpKTsKIAogICAgIG1fbm9kZS0+cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwog
fQpAQCAtOTAsNyArOTAsNyBAQCB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQog
dm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4m
IG5vZGVzKQogewogICAgIGFkZE5vZGVBbmREZXNjZW5kYW50cyhtX3BhcmVudC5nZXQoKSwgbm9k
ZXMpOwotICAgIGFkZE5vZGVBbmREZXNjZW5kYW50cyhtX25vZGUuZ2V0KCksIG5vZGVzKTsKKyAg
ICBhZGROb2RlQW5kRGVzY2VuZGFudHMobV9ub2RlLnB0cigpLCBub2Rlcyk7CiB9CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5o
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCmluZGV4IGY3ODI5
NzViODkyMTUwYWUzNmQyOWE2YmJlY2E5ZjFkYzEzMDdjMzEuLmY2NGJhZGMwMGQwM2E5M2YzNzNk
ZTI3MTg2Yjg0ZjU0ZWQ0OWM5N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QXBwZW5kTm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5v
ZGVDb21tYW5kLmgKQEAgLTMyLDEzICszMiwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIEFwcGVuZE5vZGVDb21tYW5kIDogcHVibGljIFNpbXBsZUVkaXRDb21tYW5kIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmPEFwcGVuZE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxD
b250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgRWRpdEFjdGlvbiBl
ZGl0aW5nQWN0aW9uKQorICAgIHN0YXRpYyBSZWY8QXBwZW5kTm9kZUNvbW1hbmQ+IGNyZWF0ZShQ
YXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgTm9kZSYgbm9kZSwgRWRpdEFjdGlvbiBl
ZGl0aW5nQWN0aW9uKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXBwZW5k
Tm9kZUNvbW1hbmQocGFyZW50LCBub2RlLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgfQogCiBwcml2
YXRlOgotICAgIEFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFy
ZW50LCBQYXNzUmVmUHRyPE5vZGU+LCBFZGl0QWN0aW9uKTsKKyAgICBBcHBlbmROb2RlQ29tbWFu
ZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgTm9kZSYsIEVkaXRBY3Rpb24pOwog
CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQg
ZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CkBAIC00OCw3ICs0OCw3IEBAIHByaXZhdGU6CiAjZW5kaWYK
IAogICAgIFJlZlB0cjxDb250YWluZXJOb2RlPiBtX3BhcmVudDsKLSAgICBSZWZQdHI8Tm9kZT4g
bV9ub2RlOworICAgIFJlZjxOb2RlPiBtX25vZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21t
YW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3Bw
CmluZGV4IDNkNzc5NDI0OGQyM2U5YjdhMjM5MTYyZjk3MWE0NDc0NzUxYjYzMDMuLjVkOWQzNmZm
NTBmNWRjZjY3ZDA4ZDBlNGE2MjUzNjM2ZTkxYjUwNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCkBAIC0zOTUsNyArMzk1LDggQEAgdm9p
ZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUF0KFBhc3NSZWZQdHI8Tm9kZT4gaW5z
ZXJ0Q2hpbGQsIGNvbnN0IFBvc2kKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmFwcGVuZE5v
ZGUoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVu
dCkKIHsKICAgICBBU1NFUlQoY2FuSGF2ZUNoaWxkcmVuRm9yRWRpdGluZyhwYXJlbnQuZ2V0KCkp
KTsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShBcHBlbmROb2RlQ29tbWFuZDo6Y3JlYXRl
KHBhcmVudCwgbm9kZSwgZWRpdGluZ0FjdGlvbigpKSk7CisgICAgQVNTRVJUKG5vZGUpOworICAg
IGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEFwcGVuZE5vZGVDb21tYW5kOjpjcmVhdGUocGFyZW50
LCAqbm9kZSwgZWRpdGluZ0FjdGlvbigpKSk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1h
bmQ6OnJlbW92ZUNoaWxkcmVuSW5SYW5nZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIHVuc2lnbmVk
IGZyb20sIHVuc2lnbmVkIHRvKQpAQCAtNDE0LDcgKzQxNSw3IEBAIHZvaWQgQ29tcG9zaXRlRWRp
dENvbW1hbmQ6OnJlbW92ZU5vZGUoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBTaG91bGRBc3N1bWVD
b250ZW50CiB7CiAgICAgaWYgKCFub2RlIHx8ICFub2RlLT5ub25TaGFkb3dCb3VuZGFyeVBhcmVu
dE5vZGUoKSkKICAgICAgICAgcmV0dXJuOwotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKFJl
bW92ZU5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUpKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShSZW1vdmVOb2RlQ29tbWFu
ZDo6Y3JlYXRlKCpub2RlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOwog
fQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxk
cmVuKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRp
dGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCkBAIC0xNTQxLDcgKzE1
NDIsNyBAQCBQYXNzUmVmUHRyPE5vZGU+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjpzcGxpdFRyZWVU
b05vZGUoTm9kZSogc3RhcnQsIE5vZGUqIGVuZCwgYgogICAgIHJldHVybiBub2RlLnJlbGVhc2Uo
KTsKIH0KIAotUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVhdGVCbG9ja1BsYWNlaG9sZGVyRWxlbWVu
dChEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8RWxlbWVudD4gY3JlYXRlQmxvY2tQbGFjZWhvbGRl
ckVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KGJyVGFnLCBmYWxzZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCBjNjQ5MWQyNjkyNjVlNWFiNmNlOTY1
ZWFhOTUzNDFiNjU0NDdkMWFlLi41NjA5OTcxMzNmNjE5ZTNkMGE3MmRjYmRhZmJhYjE3OGQ4ZjMw
ZDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5jcHAKQEAgLTYzMiw3ICs2MzIsNyBAQCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6
Om1lcmdlUGFyYWdyYXBocygpCiAgICAgCiAgICAgLy8gV2UgbmVlZCB0byBtZXJnZSBpbnRvIG1f
dXBzdHJlYW1TdGFydCdzIGJsb2NrLCBidXQgaXQncyBiZWVuIGVtcHRpZWQgb3V0IGFuZCBjb2xs
YXBzZWQgYnkgZGVsZXRpb24uCiAgICAgaWYgKCFtZXJnZURlc3RpbmF0aW9uLmRlZXBFcXVpdmFs
ZW50KCkuZGVwcmVjYXRlZE5vZGUoKSB8fCAhbWVyZ2VEZXN0aW5hdGlvbi5kZWVwRXF1aXZhbGVu
dCgpLmRlcHJlY2F0ZWROb2RlKCktPmlzRGVzY2VuZGFudE9mKGVuY2xvc2luZ0Jsb2NrKG1fdXBz
dHJlYW1TdGFydC5jb250YWluZXJOb2RlKCkpKSB8fCBtX3N0YXJ0c0F0RW1wdHlMaW5lKSB7Ci0g
ICAgICAgIGluc2VydE5vZGVBdChjcmVhdGVCcmVha0VsZW1lbnQoZG9jdW1lbnQoKSkuZ2V0KCks
IG1fdXBzdHJlYW1TdGFydCk7CisgICAgICAgIGluc2VydE5vZGVBdChjcmVhdGVCcmVha0VsZW1l
bnQoZG9jdW1lbnQoKSkucHRyKCksIG1fdXBzdHJlYW1TdGFydCk7CiAgICAgICAgIG1lcmdlRGVz
dGluYXRpb24gPSBWaXNpYmxlUG9zaXRpb24obV91cHN0cmVhbVN0YXJ0KTsKICAgICB9CiAgICAg
CkBAIC04NTUsNyArODU1LDcgQEAgdm9pZCBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5
KCkKICAgICAKICAgICByZW1vdmVQcmV2aW91c2x5U2VsZWN0ZWRFbXB0eVRhYmxlUm93cygpOwog
ICAgIAotICAgIFJlZlB0cjxOb2RlPiBwbGFjZWhvbGRlciA9IG1fbmVlZFBsYWNlaG9sZGVyID8g
Y3JlYXRlQnJlYWtFbGVtZW50KGRvY3VtZW50KCkpLmdldCgpIDogMDsKKyAgICBSZWZQdHI8Tm9k
ZT4gcGxhY2Vob2xkZXIgPSBtX25lZWRQbGFjZWhvbGRlciA/IGNyZWF0ZUJyZWFrRWxlbWVudChk
b2N1bWVudCgpKS5wdHIoKSA6IG51bGxwdHI7CiAgICAgCiAgICAgaWYgKHBsYWNlaG9sZGVyKSB7
CiAgICAgICAgIGlmIChtX3Nhbml0aXplTWFya3VwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yQ29tbWFuZC5jcHAKaW5kZXggMGY4Zjg4MDMzYTRmZWZhMjNkNzUyNjg5OWVlNDc0MTlmZDQw
NzIyYi4uMTJjZGQyMWQ4ZWMxM2Q3MGU1ZmIwMDNjZTg3ZjJkOTI1MTY4MmMyYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCkBAIC0xNjUsMTEgKzE2NSwxMSBAQCBz
dGF0aWMgYm9vbCBleGVjdXRlSW5zZXJ0RnJhZ21lbnQoRnJhbWUmIGZyYW1lLCBQYXNzUmVmUHRy
PERvY3VtZW50RnJhZ21lbnQ+IGZyYQogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgYm9v
bCBleGVjdXRlSW5zZXJ0Tm9kZShGcmFtZSYgZnJhbWUsIFBhc3NSZWZQdHI8Tm9kZT4gY29udGVu
dCkKK3N0YXRpYyBib29sIGV4ZWN1dGVJbnNlcnROb2RlKEZyYW1lJiBmcmFtZSwgUmVmPE5vZGU+
JiYgY29udGVudCkKIHsKICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBE
b2N1bWVudEZyYWdtZW50OjpjcmVhdGUoKmZyYW1lLmRvY3VtZW50KCkpOwogICAgIEV4Y2VwdGlv
bkNvZGUgZWMgPSAwOwotICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChjb250ZW50LCBlYyk7Cisg
ICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShjb250ZW50KSwgZWMpOwogICAgIGlm
IChlYykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJldHVybiBleGVjdXRlSW5zZXJ0RnJh
Z21lbnQoZnJhbWUsIGZyYWdtZW50LnJlbGVhc2UoKSk7CkBAIC00NjQsMTAgKzQ2NCwxMCBAQCBz
dGF0aWMgYm9vbCBleGVjdXRlSW5zZXJ0QmFja3RhYihGcmFtZSYgZnJhbWUsIEV2ZW50KiBldmVu
dCwgRWRpdG9yQ29tbWFuZFNvdXJjZQogCiBzdGF0aWMgYm9vbCBleGVjdXRlSW5zZXJ0SG9yaXpv
bnRhbFJ1bGUoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0
IFN0cmluZyYgdmFsdWUpCiB7Ci0gICAgUmVmUHRyPEhUTUxIUkVsZW1lbnQ+IHJ1bGUgPSBIVE1M
SFJFbGVtZW50OjpjcmVhdGUoKmZyYW1lLmRvY3VtZW50KCkpOworICAgIFJlZjxIVE1MSFJFbGVt
ZW50PiBydWxlID0gSFRNTEhSRWxlbWVudDo6Y3JlYXRlKCpmcmFtZS5kb2N1bWVudCgpKTsKICAg
ICBpZiAoIXZhbHVlLmlzRW1wdHkoKSkKICAgICAgICAgcnVsZS0+c2V0SWRBdHRyaWJ1dGUodmFs
dWUpOwotICAgIHJldHVybiBleGVjdXRlSW5zZXJ0Tm9kZShmcmFtZSwgcnVsZS5yZWxlYXNlKCkp
OworICAgIHJldHVybiBleGVjdXRlSW5zZXJ0Tm9kZShmcmFtZSwgV1RGOjptb3ZlKHJ1bGUpKTsK
IH0KIAogc3RhdGljIGJvb2wgZXhlY3V0ZUluc2VydEhUTUwoRnJhbWUmIGZyYW1lLCBFdmVudCos
IEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0cmluZyYgdmFsdWUpCkBAIC00NzgsOSArNDc4
LDkgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZUluc2VydEhUTUwoRnJhbWUmIGZyYW1lLCBFdmVudCos
IEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFMKIHN0YXRpYyBib29sIGV4ZWN1dGVJbnNlcnRJ
bWFnZShGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29uc3QgU3Ry
aW5nJiB2YWx1ZSkKIHsKICAgICAvLyBGSVhNRTogSWYgdXNlckludGVyZmFjZSBpcyB0cnVlLCB3
ZSBzaG91bGQgZGlzcGxheSBhIGRpYWxvZyBib3ggYW5kIGxldCB0aGUgdXNlciBjaG9vc2UgYSBs
b2NhbCBpbWFnZS4KLSAgICBSZWZQdHI8SFRNTEltYWdlRWxlbWVudD4gaW1hZ2UgPSBIVE1MSW1h
Z2VFbGVtZW50OjpjcmVhdGUoKmZyYW1lLmRvY3VtZW50KCkpOworICAgIFJlZjxIVE1MSW1hZ2VF
bGVtZW50PiBpbWFnZSA9IEhUTUxJbWFnZUVsZW1lbnQ6OmNyZWF0ZSgqZnJhbWUuZG9jdW1lbnQo
KSk7CiAgICAgaW1hZ2UtPnNldFNyYyh2YWx1ZSk7Ci0gICAgcmV0dXJuIGV4ZWN1dGVJbnNlcnRO
b2RlKGZyYW1lLCBpbWFnZS5yZWxlYXNlKCkpOworICAgIHJldHVybiBleGVjdXRlSW5zZXJ0Tm9k
ZShmcmFtZSwgV1RGOjptb3ZlKGltYWdlKSk7CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVJbnNl
cnRMaW5lQnJlYWsoRnJhbWUmIGZyYW1lLCBFdmVudCogZXZlbnQsIEVkaXRvckNvbW1hbmRTb3Vy
Y2Ugc291cmNlLCBjb25zdCBTdHJpbmcmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnRMaW5lQnJlYWtDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
SW5zZXJ0TGluZUJyZWFrQ29tbWFuZC5jcHAKaW5kZXggNmVlMjFkOTIyNzNkY2U1NWYxMjQ4NmY4
Zjk3ODdhMjY4MGVlMzkwMC4uMjVhYjA3MTI0ZTc5Mjc3MjAyNDVlZTZkNmU0NmNlZDFjNmU5Yzg1
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRMaW5lQnJlYWtDb21t
YW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydExpbmVCcmVha0NvbW1h
bmQuY3BwCkBAIC0xMjksNyArMTI5LDcgQEAgdm9pZCBJbnNlcnRMaW5lQnJlYWtDb21tYW5kOjpk
b0FwcGx5KCkKICAgICAgICAgCiAgICAgICAgIC8vIEluc2VydCBhbiBleHRyYSBiciBvciAnXG4n
IGlmIHRoZSBqdXN0IGluc2VydGVkIG9uZSBjb2xsYXBzZWQuCiAgICAgICAgIGlmICghaXNTdGFy
dE9mUGFyYWdyYXBoKHBvc2l0aW9uQmVmb3JlTm9kZShub2RlVG9JbnNlcnQuZ2V0KCkpKSkKLSAg
ICAgICAgICAgIGluc2VydE5vZGVCZWZvcmUobm9kZVRvSW5zZXJ0LT5jbG9uZU5vZGUoZmFsc2Up
LmdldCgpLCBub2RlVG9JbnNlcnQuZ2V0KCkpOworICAgICAgICAgICAgaW5zZXJ0Tm9kZUJlZm9y
ZShub2RlVG9JbnNlcnQtPmNsb25lTm9kZShmYWxzZSksIG5vZGVUb0luc2VydC5nZXQoKSk7CiAg
ICAgICAgIAogICAgICAgICBzZXRFbmRpbmdTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihwb3Np
dGlvbkluUGFyZW50QWZ0ZXJOb2RlKG5vZGVUb0luc2VydC5nZXQoKSksIERPV05TVFJFQU0sIGVu
ZGluZ1NlbGVjdGlvbigpLmlzRGlyZWN0aW9uYWwoKSkpOwogICAgIC8vIElmIHdlJ3JlIGluc2Vy
dGluZyBhZnRlciBhbGwgb2YgdGhlIHJlbmRlcmVkIHRleHQgaW4gYSB0ZXh0IG5vZGUsIG9yIGlu
dG8gYSBub24tdGV4dCBub2RlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9J
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmNwcAppbmRleCBmYTE0ZDA3NjZlYWY3NWZhNDMxOWU2ZDg4NTc0
YWYzZDNhMDNlNDM2Li41MGY2NTQ1ZTYyZjdiZGI4NGZkMGM1ZWI1MzRlNGVjYzg2MWRiYTI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5k
LmNwcApAQCAtNTUsNyArNTUsNyBAQCB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb0Fw
cGx5KCkKICAgICAgICAgcmV0dXJuOwogICAgIEFTU0VSVChpc0VkaXRhYmxlTm9kZSgqcGFyZW50
KSk7CiAKLSAgICBwYXJlbnQtPmluc2VydEJlZm9yZShtX2luc2VydENoaWxkLmdldCgpLCBtX3Jl
ZkNoaWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBwYXJlbnQtPmluc2VydEJlZm9y
ZSgqbV9pbnNlcnRDaGlsZCwgbV9yZWZDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAK
ICAgICBpZiAoc2hvdWxkUG9zdEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24oKSkgewogICAgICAg
ICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpID8gUG9z
aXRpb24oZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDogY3JlYXRlTGVn
YWN5RWRpdGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDApOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFu
ZC5jcHAKaW5kZXggN2RkMDE2MGNkMDM0M2RhYWRmMTI0MzQxMmUzZWFhZmYxNjE3ZDY1YS4uMTUw
MzIyOTJhZGU2NTg4NDRhN2Y5MjA2Y2ZhYjcwOWZiNTY0MTBjZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQu
Y3BwCkBAIC0zNjgsNyArMzY4LDcgQEAgdm9pZCBJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21t
YW5kOjpkb0FwcGx5KCkKICAgICAvLyBjcmVhdGVkLiAgQWxsIG9mIHRoZSBub2Rlcywgc3RhcnRp
bmcgYXQgdmlzaWJsZVBvcywgYXJlIGFib3V0IHRvIGJlIGFkZGVkIHRvIHRoZSBuZXcgcGFyYWdy
YXBoIAogICAgIC8vIGVsZW1lbnQuICBJZiB0aGUgZmlyc3Qgbm9kZSB0byBiZSBpbnNlcnRlZCB3
b24ndCBiZSBvbmUgdGhhdCB3aWxsIGhvbGQgYW4gZW1wdHkgbGluZSBvcGVuLCBhZGQgYSBici4K
ICAgICBpZiAoaXNFbmRPZlBhcmFncmFwaCh2aXNpYmxlUG9zKSAmJiAhbGluZUJyZWFrRXhpc3Rz
QXRWaXNpYmxlUG9zaXRpb24odmlzaWJsZVBvcykpCi0gICAgICAgIGFwcGVuZE5vZGUoY3JlYXRl
QnJlYWtFbGVtZW50KGRvY3VtZW50KCkpLmdldCgpLCBibG9ja1RvSW5zZXJ0LmdldCgpKTsKKyAg
ICAgICAgYXBwZW5kTm9kZShjcmVhdGVCcmVha0VsZW1lbnQoZG9jdW1lbnQoKSksIGJsb2NrVG9J
bnNlcnQuZ2V0KCkpOwogCiAgICAgLy8gTW92ZSB0aGUgc3RhcnQgbm9kZSBhbmQgdGhlIHNpYmxp
bmdzIG9mIHRoZSBzdGFydCBub2RlLgogICAgIGlmIChWaXNpYmxlUG9zaXRpb24oaW5zZXJ0aW9u
UG9zaXRpb24pICE9IFZpc2libGVQb3NpdGlvbihwb3NpdGlvbkJlZm9yZU5vZGUoYmxvY2tUb0lu
c2VydC5nZXQoKSkpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01lcmdl
SWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWVy
Z2VJZGVudGljYWxFbGVtZW50c0NvbW1hbmQuY3BwCmluZGV4IDQ2NTE4ODQ2MzY0ZmEzM2MyODVj
ZjYwMDk3ZjA0M2IyYzJjZjM4N2UuLjRhNTllZjY4MGQ2YTBkZjIxNzM1YTllYjIwNTBhMThlZGY2
NmYxY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWVyZ2VJZGVudGljYWxF
bGVtZW50c0NvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWVyZ2VJZGVu
dGljYWxFbGVtZW50c0NvbW1hbmQuY3BwCkBAIC00NywxMyArNDcsMTMgQEAgdm9pZCBNZXJnZUlk
ZW50aWNhbEVsZW1lbnRzQ29tbWFuZDo6ZG9BcHBseSgpCiAKICAgICBtX2F0Q2hpbGQgPSBtX2Vs
ZW1lbnQyLT5maXJzdENoaWxkKCk7CiAKLSAgICBWZWN0b3I8UmVmUHRyPE5vZGU+PiBjaGlsZHJl
bjsKKyAgICBWZWN0b3I8UmVmPE5vZGU+PiBjaGlsZHJlbjsKICAgICBmb3IgKE5vZGUqIGNoaWxk
ID0gbV9lbGVtZW50MS0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNp
YmxpbmcoKSkKLSAgICAgICAgY2hpbGRyZW4uYXBwZW5kKGNoaWxkKTsKKyAgICAgICAgY2hpbGRy
ZW4uYXBwZW5kKCpjaGlsZCk7CiAKICAgICBzaXplX3Qgc2l6ZSA9IGNoaWxkcmVuLnNpemUoKTsK
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgbV9lbGVtZW50
Mi0+aW5zZXJ0QmVmb3JlKGNoaWxkcmVuW2ldLnJlbGVhc2UoKSwgbV9hdENoaWxkLmdldCgpLCBJ
R05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgbV9lbGVtZW50Mi0+aW5zZXJ0QmVmb3JlKFdURjo6
bW92ZShjaGlsZHJlbltpXSksIG1fYXRDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAK
ICAgICBtX2VsZW1lbnQxLT5yZW1vdmUoSUdOT1JFX0VYQ0VQVElPTik7CiB9CkBAIC03MSwxNyAr
NzEsMTcgQEAgdm9pZCBNZXJnZUlkZW50aWNhbEVsZW1lbnRzQ29tbWFuZDo6ZG9VbmFwcGx5KCkK
IAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogCi0gICAgcGFyZW50LT5pbnNlcnRCZWZvcmUo
bV9lbGVtZW50MS5nZXQoKSwgbV9lbGVtZW50Mi5nZXQoKSwgZWMpOworICAgIHBhcmVudC0+aW5z
ZXJ0QmVmb3JlKCptX2VsZW1lbnQxLCBtX2VsZW1lbnQyLmdldCgpLCBlYyk7CiAgICAgaWYgKGVj
KQogICAgICAgICByZXR1cm47CiAKLSAgICBWZWN0b3I8UmVmUHRyPE5vZGU+PiBjaGlsZHJlbjsK
KyAgICBWZWN0b3I8UmVmPE5vZGU+PiBjaGlsZHJlbjsKICAgICBmb3IgKE5vZGUqIGNoaWxkID0g
bV9lbGVtZW50Mi0+Zmlyc3RDaGlsZCgpOyBjaGlsZCAmJiBjaGlsZCAhPSBhdENoaWxkOyBjaGls
ZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQotICAgICAgICBjaGlsZHJlbi5hcHBlbmQoY2hpbGQp
OworICAgICAgICBjaGlsZHJlbi5hcHBlbmQoKmNoaWxkKTsKIAogICAgIHNpemVfdCBzaXplID0g
Y2hpbGRyZW4uc2l6ZSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQot
ICAgICAgICBtX2VsZW1lbnQxLT5hcHBlbmRDaGlsZChjaGlsZHJlbltpXS5yZWxlYXNlKCksIGVj
KTsKKyAgICAgICAgbV9lbGVtZW50MS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNoaWxkcmVuW2ld
KSwgZWMpOwogfQogCiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
bW92ZU5vZGVDb21tYW5kLmNwcAppbmRleCAzMWM1NGQxZTg4MmUyZDQ2NTQwNDA4ZTQ1MDYwYzQ5
ZDkwOGJiZWM2Li5iZWVjN2U0ZGFlNDRiMTA0YzJiZDE1ZmFjMDlmZWQ3OTQ2OWRmYTBhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmNwcApAQCAtMzQsMTIg
KzM0LDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVtb3ZlTm9kZUNvbW1hbmQ6OlJl
bW92ZU5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCi0g
ICAgOiBTaW1wbGVFZGl0Q29tbWFuZChub2RlLT5kb2N1bWVudCgpKQorUmVtb3ZlTm9kZUNvbW1h
bmQ6OlJlbW92ZU5vZGVDb21tYW5kKE5vZGUmIG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fs
d2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIDog
U2ltcGxlRWRpdENvbW1hbmQobm9kZS5kb2N1bWVudCgpKQogICAgICwgbV9ub2RlKG5vZGUpCiAg
ICAgLCBtX3Nob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKHNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQogewotICAgIEFTU0VSVChtX25vZGUpOwogICAgIEFTU0VS
VChtX25vZGUtPnBhcmVudE5vZGUoKSk7CiB9CiAKQEAgLTY0LDcgKzYzLDcgQEAgdm9pZCBSZW1v
dmVOb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKICAgICBpZiAoIXBhcmVudCB8fCAhcGFyZW50LT5o
YXNFZGl0YWJsZVN0eWxlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHBhcmVudC0+aW5zZXJ0
QmVmb3JlKG1fbm9kZS5nZXQoKSwgcmVmQ2hpbGQuZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOwor
ICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG1fbm9kZS5jb3B5UmVmKCksIHJlZkNoaWxkLmdldCgp
LCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KIAogI2lmbmRlZiBOREVCVUcKQEAgLTcyLDcgKzcxLDcg
QEAgdm9pZCBSZW1vdmVOb2RlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2Rl
Kj4mIG5vZGVzKQogewogICAgIGFkZE5vZGVBbmREZXNjZW5kYW50cyhtX3BhcmVudC5nZXQoKSwg
bm9kZXMpOwogICAgIGFkZE5vZGVBbmREZXNjZW5kYW50cyhtX3JlZkNoaWxkLmdldCgpLCBub2Rl
cyk7Ci0gICAgYWRkTm9kZUFuZERlc2NlbmRhbnRzKG1fbm9kZS5nZXQoKSwgbm9kZXMpOworICAg
IGFkZE5vZGVBbmREZXNjZW5kYW50cyhtX25vZGUucHRyKCksIG5vZGVzKTsKIH0KICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmgKaW5kZXggMTgxZTk4
NWQ3ZjMwY2Q0NDk2NjRlNmZmOGNjYTk0MmYyNmY2Y2Y2ZS4uMDEzNTE3ZmY3ZGYzZGFlZTgwZjRk
NmYxYjEwZDgxODU5YWFkNmM3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZW1vdmVOb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9k
ZUNvbW1hbmQuaApAQCAtMzIsMTMgKzMyLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgUmVtb3ZlTm9kZUNvbW1hbmQgOiBwdWJsaWMgU2ltcGxlRWRpdENvbW1hbmQgewogcHVibGlj
OgotICAgIHN0YXRpYyBSZWY8UmVtb3ZlTm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPE5v
ZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHN0YXRpYyBSZWY8UmVtb3ZlTm9kZUNvbW1h
bmQ+IGNyZWF0ZShOb2RlJiBub2RlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJs
ZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKICAgICB7CiAgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFJlbW92ZU5vZGVDb21tYW5kKG5vZGUsIHNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0
IFJlbW92ZU5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlKTsKKyAgICBSZW1vdmVOb2RlQ29tbWFuZChOb2RlJiwgU2hvdWxkQXNz
dW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHko
KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CkBAIC00
Nyw3ICs0Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0
PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCiAKLSAgICBSZWZQdHI8Tm9kZT4gbV9ub2RlOwor
ICAgIFJlZjxOb2RlPiBtX25vZGU7CiAgICAgUmVmUHRyPENvbnRhaW5lck5vZGU+IG1fcGFyZW50
OwogICAgIFJlZlB0cjxOb2RlPiBtX3JlZkNoaWxkOwogICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlIG1fc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VOb2RlV2l0aFNwYW5Db21t
YW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1h
bmQuY3BwCmluZGV4IDBlMTg5YmRlZjY3ZDNmM2RlNzI0NmQ3MWFhYzdkNDA4NzkwN2ZkZmUuLjEw
YmVmM2EwOWExY2M0MjFjYjc3ZTlhYjc4ZTAwY2Q2ZTIyMjMwYTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwCkBAIC00
OCwxOSArNDgsMTkgQEAgUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQ6OlJlcGxhY2VOb2RlV2l0
aFNwYW5Db21tYW5kKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGUKICAgICBBU1NFUlQobV9lbGVt
ZW50VG9SZXBsYWNlKTsKIH0KIAotc3RhdGljIHZvaWQgc3dhcEluTm9kZVByZXNlcnZpbmdBdHRy
aWJ1dGVzQW5kQ2hpbGRyZW4oSFRNTEVsZW1lbnQqIG5ld05vZGUsIEhUTUxFbGVtZW50KiBub2Rl
VG9SZXBsYWNlKQorc3RhdGljIHZvaWQgc3dhcEluTm9kZVByZXNlcnZpbmdBdHRyaWJ1dGVzQW5k
Q2hpbGRyZW4oSFRNTEVsZW1lbnQmIG5ld05vZGUsIEhUTUxFbGVtZW50JiBub2RlVG9SZXBsYWNl
KQogewotICAgIEFTU0VSVChub2RlVG9SZXBsYWNlLT5pbkRvY3VtZW50KCkpOwotICAgIFJlZlB0
cjxDb250YWluZXJOb2RlPiBwYXJlbnROb2RlID0gbm9kZVRvUmVwbGFjZS0+cGFyZW50Tm9kZSgp
OworICAgIEFTU0VSVChub2RlVG9SZXBsYWNlLmluRG9jdW1lbnQoKSk7CisgICAgUmVmUHRyPENv
bnRhaW5lck5vZGU+IHBhcmVudE5vZGUgPSBub2RlVG9SZXBsYWNlLnBhcmVudE5vZGUoKTsKIAog
ICAgIC8vIEZJWE1FOiBGaXggdGhpcyB0byBzZW5kIHRoZSBwcm9wZXIgTXV0YXRpb25SZWNvcmRz
IHdoZW4gTXV0YXRpb25PYnNlcnZlcnMgYXJlIHByZXNlbnQuCi0gICAgbmV3Tm9kZS0+Y2xvbmVE
YXRhRnJvbUVsZW1lbnQoKm5vZGVUb1JlcGxhY2UpOworICAgIG5ld05vZGUuY2xvbmVEYXRhRnJv
bUVsZW1lbnQobm9kZVRvUmVwbGFjZSk7CiAgICAgTm9kZVZlY3RvciBjaGlsZHJlbjsKLSAgICBn
ZXRDaGlsZE5vZGVzKCpub2RlVG9SZXBsYWNlLCBjaGlsZHJlbik7CisgICAgZ2V0Q2hpbGROb2Rl
cyhub2RlVG9SZXBsYWNlLCBjaGlsZHJlbik7CiAgICAgZm9yIChhdXRvJiBjaGlsZCA6IGNoaWxk
cmVuKQotICAgICAgICBuZXdOb2RlLT5hcHBlbmRDaGlsZChjaGlsZC5wdHIoKSwgQVNTRVJUX05P
X0VYQ0VQVElPTik7CisgICAgICAgIG5ld05vZGUuYXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNoaWxk
KSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKLSAgICBwYXJlbnROb2RlLT5pbnNlcnRCZWZvcmUo
bmV3Tm9kZSwgbm9kZVRvUmVwbGFjZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgcGFyZW50
Tm9kZS0+aW5zZXJ0QmVmb3JlKG5ld05vZGUsICZub2RlVG9SZXBsYWNlLCBBU1NFUlRfTk9fRVhD
RVBUSU9OKTsKICAgICBwYXJlbnROb2RlLT5yZW1vdmVDaGlsZChub2RlVG9SZXBsYWNlLCBBU1NF
UlRfTk9fRVhDRVBUSU9OKTsKIH0KIApAQCAtNzAsMTQgKzcwLDE0IEBAIHZvaWQgUmVwbGFjZU5v
ZGVXaXRoU3BhbkNvbW1hbmQ6OmRvQXBwbHkoKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKCFt
X3NwYW5FbGVtZW50KQogICAgICAgICBtX3NwYW5FbGVtZW50ID0gY3JlYXRlSFRNTEVsZW1lbnQo
bV9lbGVtZW50VG9SZXBsYWNlLT5kb2N1bWVudCgpLCBzcGFuVGFnKTsKLSAgICBzd2FwSW5Ob2Rl
UHJlc2VydmluZ0F0dHJpYnV0ZXNBbmRDaGlsZHJlbihtX3NwYW5FbGVtZW50LmdldCgpLCBtX2Vs
ZW1lbnRUb1JlcGxhY2UuZ2V0KCkpOworICAgIHN3YXBJbk5vZGVQcmVzZXJ2aW5nQXR0cmlidXRl
c0FuZENoaWxkcmVuKCptX3NwYW5FbGVtZW50LCAqbV9lbGVtZW50VG9SZXBsYWNlKTsKIH0KIAog
dm9pZCBSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIHsKICAgICBpZiAo
IW1fc3BhbkVsZW1lbnQtPmluRG9jdW1lbnQoKSkKICAgICAgICAgcmV0dXJuOwotICAgIHN3YXBJ
bk5vZGVQcmVzZXJ2aW5nQXR0cmlidXRlc0FuZENoaWxkcmVuKG1fZWxlbWVudFRvUmVwbGFjZS5n
ZXQoKSwgbV9zcGFuRWxlbWVudC5nZXQoKSk7CisgICAgc3dhcEluTm9kZVByZXNlcnZpbmdBdHRy
aWJ1dGVzQW5kQ2hpbGRyZW4oKm1fZWxlbWVudFRvUmVwbGFjZSwgKm1fc3BhbkVsZW1lbnQpOwog
fQogCiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCBlZWUyMjBjODZmOThhNWU3ZDI4OTljNDMzZmE5
MWYwMDAwNTQ2YmUzLi4wOGM2Mjc3ZGVmYzM0ZmEyMjM0YzJlNDYyZjIzNjQ3ZDZiYzk5YTNkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5k
LmNwcApAQCAtMjM4LDcgKzIzOCw3IEBAIHZvaWQgUmVwbGFjZW1lbnRGcmFnbWVudDo6cmVtb3Zl
Tm9kZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUpCiAgICAgaWYgKCFwYXJlbnQpCiAgICAgICAgIHJl
dHVybjsKICAgICAKLSAgICBwYXJlbnQtPnJlbW92ZUNoaWxkKG5vZGUuZ2V0KCksIEFTU0VSVF9O
T19FWENFUFRJT04pOworICAgIHBhcmVudC0+cmVtb3ZlQ2hpbGQoKm5vZGUsIEFTU0VSVF9OT19F
WENFUFRJT04pOwogfQogCiB2b2lkIFJlcGxhY2VtZW50RnJhZ21lbnQ6Omluc2VydE5vZGVCZWZv
cmUoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBOb2RlKiByZWZOb2RlKQpAQCAtMjUwLDE0ICsyNTAs
MTQgQEAgdm9pZCBSZXBsYWNlbWVudEZyYWdtZW50OjppbnNlcnROb2RlQmVmb3JlKFBhc3NSZWZQ
dHI8Tm9kZT4gbm9kZSwgTm9kZSogcmVmTm9kZSkKICAgICBpZiAoIXBhcmVudCkKICAgICAgICAg
cmV0dXJuOwogICAgICAgICAKLSAgICBwYXJlbnQtPmluc2VydEJlZm9yZShub2RlLCByZWZOb2Rl
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBwYXJlbnQtPmluc2VydEJlZm9yZSgqbm9kZSwg
cmVmTm9kZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiB9CiAKIFBhc3NSZWZQdHI8U3R5bGVkRWxl
bWVudD4gUmVwbGFjZW1lbnRGcmFnbWVudDo6aW5zZXJ0RnJhZ21lbnRGb3JUZXN0UmVuZGVyaW5n
KE5vZGUqIHJvb3RFZGl0YWJsZUVsZW1lbnQpCiB7CiAgICAgUmVmUHRyPFN0eWxlZEVsZW1lbnQ+
IGhvbGRlciA9IGNyZWF0ZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50KGRvY3VtZW50KCkpOwogCi0g
ICAgaG9sZGVyLT5hcHBlbmRDaGlsZChtX2ZyYWdtZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsK
KyAgICBob2xkZXItPmFwcGVuZENoaWxkKCptX2ZyYWdtZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKICAgICByb290RWRpdGFibGVFbGVtZW50LT5hcHBlbmRDaGlsZChob2xkZXIuZ2V0KCksIEFT
U0VSVF9OT19FWENFUFRJT04pOwogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVu
ZGluZ1N0eWxlc2hlZXRzKCk7CiAKQEAgLTI3MCw4ICsyNzAsOCBAQCB2b2lkIFJlcGxhY2VtZW50
RnJhZ21lbnQ6OnJlc3RvcmVBbmRSZW1vdmVUZXN0UmVuZGVyaW5nTm9kZXNUb0ZyYWdtZW50KFN0
eWxlZEVsZQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgd2hpbGUgKFJlZlB0cjxOb2RlPiBu
b2RlID0gaG9sZGVyLT5maXJzdENoaWxkKCkpIHsKLSAgICAgICAgaG9sZGVyLT5yZW1vdmVDaGls
ZChub2RlLmdldCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKLSAgICAgICAgbV9mcmFnbWVudC0+
YXBwZW5kQ2hpbGQobm9kZS5nZXQoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAgIGhv
bGRlci0+cmVtb3ZlQ2hpbGQoKm5vZGUsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAgICBt
X2ZyYWdtZW50LT5hcHBlbmRDaGlsZCgqbm9kZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAg
fQogCiAgICAgcmVtb3ZlTm9kZShob2xkZXIpOwpAQCAtMTQ1NCw3ICsxNDU0LDcgQEAgTm9kZSog
UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Omluc2VydEFzTGlzdEl0ZW1zKFBhc3NSZWZQdHI8SFRN
TEVsZW1lbnQ+IHBycExpc3QKICAgICB9CiAKICAgICB3aGlsZSAoUmVmUHRyPE5vZGU+IGxpc3RJ
dGVtID0gbGlzdEVsZW1lbnQtPmZpcnN0Q2hpbGQoKSkgewotICAgICAgICBsaXN0RWxlbWVudC0+
cmVtb3ZlQ2hpbGQobGlzdEl0ZW0uZ2V0KCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAg
ICBsaXN0RWxlbWVudC0+cmVtb3ZlQ2hpbGQoKmxpc3RJdGVtLCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKICAgICAgICAgaWYgKGlzU3RhcnQgfHwgaXNNaWRkbGUpIHsKICAgICAgICAgICAgIGluc2Vy
dE5vZGVCZWZvcmUobGlzdEl0ZW0sIGxhc3ROb2RlKTsKICAgICAgICAgICAgIGluc2VydGVkTm9k
ZXMucmVzcG9uZFRvTm9kZUluc2VydGlvbihsaXN0SXRlbS5nZXQoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0RWxlbWVudENvbW1hbmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9TcGxpdEVsZW1lbnRDb21tYW5kLmNwcAppbmRleCAwOWJlYjg1MTkzMWVl
YWI2NTFkMjE3MWU0N2Q4NzMyNDU1ZDFmMTA2Li4zNWQ4MjFiMmMxNmEyYmViMjc3MGE0ODE2Zjdj
OGNjODU5MGQwNTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0RWxl
bWVudENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BsaXRFbGVtZW50
Q29tbWFuZC5jcHAKQEAgLTQ3LDE2ICs0NywxNiBAQCB2b2lkIFNwbGl0RWxlbWVudENvbW1hbmQ6
OmV4ZWN1dGVBcHBseSgpCiAgICAgaWYgKG1fYXRDaGlsZC0+cGFyZW50Tm9kZSgpICE9IG1fZWxl
bWVudDIpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBWZWN0b3I8UmVmUHRyPE5vZGU+PiBj
aGlsZHJlbjsKKyAgICBWZWN0b3I8UmVmPE5vZGU+PiBjaGlsZHJlbjsKICAgICBmb3IgKE5vZGUq
IG5vZGUgPSBtX2VsZW1lbnQyLT5maXJzdENoaWxkKCk7IG5vZGUgIT0gbV9hdENoaWxkOyBub2Rl
ID0gbm9kZS0+bmV4dFNpYmxpbmcoKSkKLSAgICAgICAgY2hpbGRyZW4uYXBwZW5kKG5vZGUpOwor
ICAgICAgICBjaGlsZHJlbi5hcHBlbmQoKm5vZGUpOwogICAgIAogICAgIEV4Y2VwdGlvbkNvZGUg
ZWMgPSAwOwogICAgIAogICAgIENvbnRhaW5lck5vZGUqIHBhcmVudCA9IG1fZWxlbWVudDItPnBh
cmVudE5vZGUoKTsKICAgICBpZiAoIXBhcmVudCB8fCAhcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxl
KCkpCiAgICAgICAgIHJldHVybjsKLSAgICBwYXJlbnQtPmluc2VydEJlZm9yZShtX2VsZW1lbnQx
LmdldCgpLCBtX2VsZW1lbnQyLmdldCgpLCBlYyk7CisgICAgcGFyZW50LT5pbnNlcnRCZWZvcmUo
Km1fZWxlbWVudDEsIG1fZWxlbWVudDIuZ2V0KCksIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAg
IHJldHVybjsKIApAQCAtNjUsNyArNjUsNyBAQCB2b2lkIFNwbGl0RWxlbWVudENvbW1hbmQ6OmV4
ZWN1dGVBcHBseSgpCiAKICAgICBzaXplX3Qgc2l6ZSA9IGNoaWxkcmVuLnNpemUoKTsKICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgbV9lbGVtZW50MS0+YXBw
ZW5kQ2hpbGQoY2hpbGRyZW5baV0sIGVjKTsKKyAgICAgICAgbV9lbGVtZW50MS0+YXBwZW5kQ2hp
bGQoV1RGOjptb3ZlKGNoaWxkcmVuW2ldKSwgZWMpOwogfQogICAgIAogdm9pZCBTcGxpdEVsZW1l
bnRDb21tYW5kOjpkb0FwcGx5KCkKQEAgLTgwLDE1ICs4MCwxNSBAQCB2b2lkIFNwbGl0RWxlbWVu
dENvbW1hbmQ6OmRvVW5hcHBseSgpCiAgICAgaWYgKCFtX2VsZW1lbnQxIHx8ICFtX2VsZW1lbnQx
LT5oYXNFZGl0YWJsZVN0eWxlKCkgfHwgIW1fZWxlbWVudDItPmhhc0VkaXRhYmxlU3R5bGUoKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgVmVjdG9yPFJlZlB0cjxOb2RlPj4gY2hpbGRyZW47Cisg
ICAgVmVjdG9yPFJlZjxOb2RlPj4gY2hpbGRyZW47CiAgICAgZm9yIChOb2RlKiBub2RlID0gbV9l
bGVtZW50MS0+Zmlyc3RDaGlsZCgpOyBub2RlOyBub2RlID0gbm9kZS0+bmV4dFNpYmxpbmcoKSkK
LSAgICAgICAgY2hpbGRyZW4uYXBwZW5kKG5vZGUpOworICAgICAgICBjaGlsZHJlbi5hcHBlbmQo
Km5vZGUpOwogCiAgICAgUmVmUHRyPE5vZGU+IHJlZkNoaWxkID0gbV9lbGVtZW50Mi0+Zmlyc3RD
aGlsZCgpOwogCiAgICAgc2l6ZV90IHNpemUgPSBjaGlsZHJlbi5zaXplKCk7CiAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCi0gICAgICAgIG1fZWxlbWVudDItPmluc2VydEJl
Zm9yZShjaGlsZHJlbltpXS5nZXQoKSwgcmVmQ2hpbGQuZ2V0KCksIElHTk9SRV9FWENFUFRJT04p
OworICAgICAgICBtX2VsZW1lbnQyLT5pbnNlcnRCZWZvcmUoV1RGOjptb3ZlKGNoaWxkcmVuW2ld
KSwgcmVmQ2hpbGQuZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOwogCiAgICAgLy8gUmVjb3ZlciB0
aGUgaWQgYXR0cmlidXRlIG9mIHRoZSBvcmlnaW5hbCBlbGVtZW50LgogICAgIGNvbnN0IEF0b21p
Y1N0cmluZyYgaWQgPSBtX2VsZW1lbnQxLT5nZXRJZEF0dHJpYnV0ZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1NwbGl0VGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCAxN2E4MTdmOWFj
MjZkZTk5NGQ0MThkNGQ2NDlhNmI4ZjZmOGM0ZjBiLi42OTk5MTM5OTVkZmZlM2EwMWUzZTAyNWYw
ZDExMGI4YjZiNTBkNjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0
VGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0VGV4
dE5vZGVDb21tYW5kLmNwcApAQCAtOTUsNyArOTUsNyBAQCB2b2lkIFNwbGl0VGV4dE5vZGVDb21t
YW5kOjpkb1JlYXBwbHkoKQogdm9pZCBTcGxpdFRleHROb2RlQ29tbWFuZDo6aW5zZXJ0VGV4dDFB
bmRUcmltVGV4dDIoKQogewogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIG1fdGV4dDIt
PnBhcmVudE5vZGUoKS0+aW5zZXJ0QmVmb3JlKG1fdGV4dDEuZ2V0KCksIG1fdGV4dDIuZ2V0KCks
IGVjKTsKKyAgICBtX3RleHQyLT5wYXJlbnROb2RlKCktPmluc2VydEJlZm9yZSgqbV90ZXh0MSwg
bV90ZXh0Mi5nZXQoKSwgZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuOwogICAgIG1f
dGV4dDItPmRlbGV0ZURhdGEoMCwgbV9vZmZzZXQsIGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvV3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvV3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kLmNwcAppbmRl
eCA1NjQ2ZjM0MTZjODVmMmU2MDMwZjQ3NGQ0MzBiZjhmNzQyNWU3ZmQ2Li5mODBiNzczN2Y4YWQ5
NmUzZTc4ZjE0NTliZjU3ZTJmMzUxOWViOWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1dyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9XcmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1hbmQuY3BwCkBAIC00MCwx
NSArNDAsMTUgQEAgV3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kOjpXcmFwQ29udGVudHNJ
bkR1bW15U3BhbkNvbW1hbmQoUGFzc1JlZlB0cjxFbGVtZW4KIAogdm9pZCBXcmFwQ29udGVudHNJ
bkR1bW15U3BhbkNvbW1hbmQ6OmV4ZWN1dGVBcHBseSgpCiB7Ci0gICAgVmVjdG9yPFJlZlB0cjxO
b2RlPj4gY2hpbGRyZW47CisgICAgVmVjdG9yPFJlZjxOb2RlPj4gY2hpbGRyZW47CiAgICAgZm9y
IChOb2RlKiBjaGlsZCA9IG1fZWxlbWVudC0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBj
aGlsZC0+bmV4dFNpYmxpbmcoKSkKLSAgICAgICAgY2hpbGRyZW4uYXBwZW5kKGNoaWxkKTsKKyAg
ICAgICAgY2hpbGRyZW4uYXBwZW5kKCpjaGlsZCk7CiAKICAgICBzaXplX3Qgc2l6ZSA9IGNoaWxk
cmVuLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKLSAgICAg
ICAgbV9kdW1teVNwYW4tPmFwcGVuZENoaWxkKGNoaWxkcmVuW2ldLnJlbGVhc2UoKSwgSUdOT1JF
X0VYQ0VQVElPTik7CisgICAgICAgIG1fZHVtbXlTcGFuLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUo
Y2hpbGRyZW5baV0pLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIG1fZWxlbWVudC0+YXBwZW5k
Q2hpbGQobV9kdW1teVNwYW4uZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOworICAgIG1fZWxlbWVu
dC0+YXBwZW5kQ2hpbGQoKm1fZHVtbXlTcGFuLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KIAogdm9p
ZCBXcmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1hbmQ6OmRvQXBwbHkoKQpAQCAtNjUsMTMgKzY1
LDEzIEBAIHZvaWQgV3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kOjpkb1VuYXBwbHkoKQog
ICAgIGlmICghbV9kdW1teVNwYW4gfHwgIW1fZWxlbWVudC0+aGFzRWRpdGFibGVTdHlsZSgpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBWZWN0b3I8UmVmUHRyPE5vZGU+PiBjaGlsZHJlbjsKKyAg
ICBWZWN0b3I8UmVmPE5vZGU+PiBjaGlsZHJlbjsKICAgICBmb3IgKE5vZGUqIGNoaWxkID0gbV9k
dW1teVNwYW4tPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5n
KCkpCi0gICAgICAgIGNoaWxkcmVuLmFwcGVuZChjaGlsZCk7CisgICAgICAgIGNoaWxkcmVuLmFw
cGVuZCgqY2hpbGQpOwogCiAgICAgc2l6ZV90IHNpemUgPSBjaGlsZHJlbi5zaXplKCk7CiAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCi0gICAgICAgIG1fZWxlbWVudC0+YXBw
ZW5kQ2hpbGQoY2hpbGRyZW5baV0ucmVsZWFzZSgpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAg
ICAgbV9lbGVtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoY2hpbGRyZW5baV0pLCBJR05PUkVf
RVhDRVBUSU9OKTsKIAogICAgIG1fZHVtbXlTcGFuLT5yZW1vdmUoSUdOT1JFX0VYQ0VQVElPTik7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0VkaXRvckNvY29h
Lm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9FZGl0b3JDb2NvYS5tbQppbmRleCBj
ZTRiY2JjYTRiZjMyYTlkNTMzN2JlYjkyZGYxZjdlMGZhOWM5OGYzLi45NWU2NmRiMGRlYTc4Mjk0
NmVkNjAwNjEzZTZkN2M5MWM0ZDE2ZDE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2NvY29hL0VkaXRvckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29j
b2EvRWRpdG9yQ29jb2EubW0KQEAgLTU2LDE2ICs1NiwxNiBAQCBSZW5kZXJTdHlsZSogRWRpdG9y
OjpzdHlsZUZvclNlbGVjdGlvblN0YXJ0KEZyYW1lKiBmcmFtZSwgTm9kZSAqJm5vZGVUb1JlbW92
ZSkKICAgICBpZiAoIXR5cGluZ1N0eWxlIHx8ICF0eXBpbmdTdHlsZS0+c3R5bGUoKSkKICAgICAg
ICAgcmV0dXJuICZwb3NpdGlvbi5kZXByZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigpLT5zdHlsZSgp
OwogCi0gICAgUmVmUHRyPEVsZW1lbnQ+IHN0eWxlRWxlbWVudCA9IGZyYW1lLT5kb2N1bWVudCgp
LT5jcmVhdGVFbGVtZW50KEhUTUxOYW1lczo6c3BhblRhZywgZmFsc2UpOworICAgIFJlZjxFbGVt
ZW50PiBzdHlsZUVsZW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChIVE1M
TmFtZXM6OnNwYW5UYWcsIGZhbHNlKTsKIAogICAgIFN0cmluZyBzdHlsZVRleHQgPSB0eXBpbmdT
dHlsZS0+c3R5bGUoKS0+YXNUZXh0KCkgKyAiIGRpc3BsYXk6IGlubGluZSI7CiAgICAgc3R5bGVF
bGVtZW50LT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpzdHlsZUF0dHIsIHN0eWxlVGV4dCk7CiAK
ICAgICBzdHlsZUVsZW1lbnQtPmFwcGVuZENoaWxkKGZyYW1lLT5kb2N1bWVudCgpLT5jcmVhdGVF
ZGl0aW5nVGV4dE5vZGUoIiIpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAotICAgIHBvc2l0aW9u
LmRlcHJlY2F0ZWROb2RlKCktPnBhcmVudE5vZGUoKS0+YXBwZW5kQ2hpbGQoc3R5bGVFbGVtZW50
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBwb3NpdGlvbi5kZXByZWNhdGVkTm9kZSgpLT5w
YXJlbnROb2RlKCktPmFwcGVuZENoaWxkKHN0eWxlRWxlbWVudC5jb3B5UmVmKCksIEFTU0VSVF9O
T19FWENFUFRJT04pOwogCi0gICAgbm9kZVRvUmVtb3ZlID0gc3R5bGVFbGVtZW50LmdldCgpOwor
ICAgIG5vZGVUb1JlbW92ZSA9IHN0eWxlRWxlbWVudC5wdHIoKTsKIAogICAgIGZyYW1lLT5kb2N1
bWVudCgpLT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CiAgICAgcmV0dXJuIHN0eWxlRWxlbWVudC0+
cmVuZGVyZXIoKSA/ICZzdHlsZUVsZW1lbnQtPnJlbmRlcmVyKCktPnN0eWxlKCkgOiBudWxscHRy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAppbmRleCA4ZjA0ZDA4MTM1MmI5
NjMyNTZmYmFkNzU3ZmUxMzVlNmRjZDNkNzUwLi43Y2FhMTRmNGJlMzdjNjEzNDQ5Yzk0YTZhZGRi
YzU5ZWI1ZTZiZTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0
aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcApAQCAt
ODk5LDIwICs4OTksMTggQEAgYm9vbCBpc0VtcHR5VGFibGVDZWxsKGNvbnN0IE5vZGUqIG5vZGUp
CiAgICAgcmV0dXJuICFjaGlsZFJlbmRlcmVyLT5uZXh0U2libGluZygpOwogfQogCi1QYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBjcmVhdGVEZWZhdWx0UGFyYWdyYXBoRWxlbWVudChEb2N1bWVudCYg
ZG9jdW1lbnQpCitSZWY8SFRNTEVsZW1lbnQ+IGNyZWF0ZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50
KERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBzd2l0Y2ggKGRvY3VtZW50LmZyYW1lKCktPmVk
aXRvcigpLmRlZmF1bHRQYXJhZ3JhcGhTZXBhcmF0b3IoKSkgewogICAgIGNhc2UgRWRpdG9yUGFy
YWdyYXBoU2VwYXJhdG9ySXNEaXY6CiAgICAgICAgIHJldHVybiBIVE1MRGl2RWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50KTsKICAgICBjYXNlIEVkaXRvclBhcmFncmFwaFNlcGFyYXRvcklzUDoKLSAg
ICAgICAgcmV0dXJuIEhUTUxQYXJhZ3JhcGhFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAg
ICAgICBicmVhazsKICAgICB9Ci0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1
cm4gMDsKKyAgICByZXR1cm4gSFRNTFBhcmFncmFwaEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7
CiB9CiAKLVBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZUJyZWFrRWxlbWVudChEb2N1bWVu
dCYgZG9jdW1lbnQpCitSZWY8SFRNTEVsZW1lbnQ+IGNyZWF0ZUJyZWFrRWxlbWVudChEb2N1bWVu
dCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIEhUTUxCUkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCk7CiB9CkBAIC05NzEsNyArOTY5LDcgQEAgUG9zaXRpb24gcG9zaXRpb25PdXRzaWRlVGFiU3Bh
bihjb25zdCBQb3NpdGlvbiYgcG9zKQogICAgIHJldHVybiBwb3NpdGlvbkluUGFyZW50QmVmb3Jl
Tm9kZShub2RlKTsKIH0KIAotUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVhdGVUYWJTcGFuRWxlbWVu
dChEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWZQdHI8Tm9kZT4gcHJwVGFiVGV4dE5vZGUpCitS
ZWY8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBQYXNz
UmVmUHRyPE5vZGU+IHBycFRhYlRleHROb2RlKQogewogICAgIFJlZlB0cjxOb2RlPiB0YWJUZXh0
Tm9kZSA9IHBycFRhYlRleHROb2RlOwogCkBAIC05ODQsMTcgKzk4MiwxNyBAQCBQYXNzUmVmUHRy
PEVsZW1lbnQ+IGNyZWF0ZVRhYlNwYW5FbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1Jl
ZlB0cjxOb2RlPiBwcgogICAgIGlmICghdGFiVGV4dE5vZGUpCiAgICAgICAgIHRhYlRleHROb2Rl
ID0gZG9jdW1lbnQuY3JlYXRlRWRpdGluZ1RleHROb2RlKCJcdCIpOwogCi0gICAgc3BhbkVsZW1l
bnQtPmFwcGVuZENoaWxkKHRhYlRleHROb2RlLnJlbGVhc2UoKSwgQVNTRVJUX05PX0VYQ0VQVElP
Tik7CisgICAgc3BhbkVsZW1lbnQtPmFwcGVuZENoaWxkKHRhYlRleHROb2RlLnJlbGVhc2VOb25O
dWxsKCksIEFTU0VSVF9OT19FWENFUFRJT04pOwogCi0gICAgcmV0dXJuIHNwYW5FbGVtZW50LnJl
bGVhc2UoKTsKKyAgICByZXR1cm4gc3BhbkVsZW1lbnQucmVsZWFzZU5vbk51bGwoKTsKIH0KIAot
UGFzc1JlZlB0cjxFbGVtZW50PiBjcmVhdGVUYWJTcGFuRWxlbWVudChEb2N1bWVudCYgZG9jdW1l
bnQsIGNvbnN0IFN0cmluZyYgdGFiVGV4dCkKK1JlZjxFbGVtZW50PiBjcmVhdGVUYWJTcGFuRWxl
bWVudChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGFiVGV4dCkKIHsKICAgICBy
ZXR1cm4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoZG9jdW1lbnQsIGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKHRhYlRleHQpKTsKIH0KIAotUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVhdGVUYWJTcGFuRWxl
bWVudChEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVsZW1l
bnQoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBjcmVhdGVUYWJTcGFuRWxlbWVu
dChkb2N1bWVudCwgUGFzc1JlZlB0cjxOb2RlPigpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRt
bGVkaXRpbmcuaAppbmRleCA3ODhhZjNmY2ZiOTVlN2QyZDIyODc2MmE1MTU1NjFlZjA4OTNkMGVl
Li5mNjlkOWQ4ZWM3NTE3ODExYjllZDRmM2M3MDc3NDUwYTE1ODExNTFiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9odG1sZWRpdGluZy5oCkBAIC0yMDYsOCArMjA2LDggQEAgVmlzaWJsZVBvc2l0aW9u
IHZpc2libGVQb3NpdGlvbkZvckluZGV4VXNpbmdDaGFyYWN0ZXJJdGVyYXRvcihOb2RlKiwgaW50
IGluZGV4KTsKICAgICAKIC8vIEZ1bmN0aW9ucyByZXR1cm5pbmcgSFRNTEVsZW1lbnQKICAgICAK
LVdFQkNPUkVfRVhQT1JUIFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZURlZmF1bHRQYXJh
Z3JhcGhFbGVtZW50KERvY3VtZW50Jik7Ci1QYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVC
cmVha0VsZW1lbnQoRG9jdW1lbnQmKTsKK1dFQkNPUkVfRVhQT1JUIFJlZjxIVE1MRWxlbWVudD4g
Y3JlYXRlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQoRG9jdW1lbnQmKTsKK1JlZjxIVE1MRWxlbWVu
dD4gY3JlYXRlQnJlYWtFbGVtZW50KERvY3VtZW50Jik7CiBQYXNzUmVmUHRyPEhUTUxFbGVtZW50
PiBjcmVhdGVPcmRlcmVkTGlzdEVsZW1lbnQoRG9jdW1lbnQmKTsKIFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGNyZWF0ZVVub3JkZXJlZExpc3RFbGVtZW50KERvY3VtZW50Jik7CiBQYXNzUmVmUHRy
PEhUTUxFbGVtZW50PiBjcmVhdGVMaXN0SXRlbUVsZW1lbnQoRG9jdW1lbnQmKTsKQEAgLTIyMiwx
MCArMjIyLDEwIEBAIE5vZGUqIGVuY2xvc2luZ0xpc3RDaGlsZChOb2RlKik7CiAvLyBFbGVtZW50
CiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLVBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlVGFiU3Bh
bkVsZW1lbnQoRG9jdW1lbnQmKTsKLVBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVs
ZW1lbnQoRG9jdW1lbnQmLCBQYXNzUmVmUHRyPE5vZGU+IHRhYlRleHROb2RlKTsKLVBhc3NSZWZQ
dHI8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcm
IHRhYlRleHQpOwotUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVhdGVCbG9ja1BsYWNlaG9sZGVyRWxl
bWVudChEb2N1bWVudCYpOworUmVmPEVsZW1lbnQ+IGNyZWF0ZVRhYlNwYW5FbGVtZW50KERvY3Vt
ZW50Jik7CitSZWY8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmLCBQYXNz
UmVmUHRyPE5vZGU+IHRhYlRleHROb2RlKTsKK1JlZjxFbGVtZW50PiBjcmVhdGVUYWJTcGFuRWxl
bWVudChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGFiVGV4dCk7CitSZWY8RWxlbWVudD4gY3Jl
YXRlQmxvY2tQbGFjZWhvbGRlckVsZW1lbnQoRG9jdW1lbnQmKTsKIAogRWxlbWVudCogZWRpdGFi
bGVSb290Rm9yUG9zaXRpb24oY29uc3QgUG9zaXRpb24mLCBFZGl0YWJsZVR5cGUgPSBDb250ZW50
SXNFZGl0YWJsZSk7CiBFbGVtZW50KiB1bnNwbGl0dGFibGVFbGVtZW50Rm9yUG9zaXRpb24oY29u
c3QgUG9zaXRpb24mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0Vk
aXRvcklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbQppbmRl
eCAyMjZlYWQ1YTQzYmY1OTgyZDliMWJhODE0OWEyMDhlMTJhZTcwMTFmLi44MTUxOTg1ZjBiOTFl
NzZmMDAzMTU2YjFhNTIzNjJmNjI3MGFmMDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3Mv
RWRpdG9ySU9TLm1tCkBAIC0zOTcsNyArMzk3LDcgQEAgdm9pZCBFZGl0b3I6OldlYkNvbnRlbnRS
ZWFkZXI6OmFkZEZyYWdtZW50KFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gbmV3RnJhZ20K
ICAgICBpZiAoZnJhZ21lbnQpIHsKICAgICAgICAgaWYgKG5ld0ZyYWdtZW50ICYmIG5ld0ZyYWdt
ZW50LT5maXJzdENoaWxkKCkpIHsKICAgICAgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWM7Ci0gICAg
ICAgICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQobmV3RnJhZ21lbnQtPmZpcnN0Q2hpbGQoKSwg
ZWMpOworICAgICAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKCpuZXdGcmFnbWVudC0+Zmly
c3RDaGlsZCgpLCBlYyk7CiAgICAgICAgIH0KICAgICB9IGVsc2UKICAgICAgICAgZnJhZ21lbnQg
PSBuZXdGcmFnbWVudDsKQEAgLTQ5NCwxMiArNDk0LDEyIEBAIGJvb2wgRWRpdG9yOjpXZWJDb250
ZW50UmVhZGVyOjpyZWFkVVJMKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmKQogICAgICAg
ICAgICAgcmV0dXJuIGZyYWdtZW50OwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKLSAgICAgICAg
UmVmUHRyPEVsZW1lbnQ+IGFuY2hvciA9IGZyYW1lLmRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQo
SFRNTE5hbWVzOjphVGFnLCBmYWxzZSk7CisgICAgICAgIFJlZjxFbGVtZW50PiBhbmNob3IgPSBm
cmFtZS5kb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KEhUTUxOYW1lczo6YVRhZywgZmFsc2UpOwog
ICAgICAgICBhbmNob3ItPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmhyZWZBdHRyLCB1cmwuc3Ry
aW5nKCkpOwogICAgICAgICBhbmNob3ItPmFwcGVuZENoaWxkKGZyYW1lLmRvY3VtZW50KCktPmNy
ZWF0ZVRleHROb2RlKFtbKE5TVVJMICopdXJsIGFic29sdXRlU3RyaW5nXSBwcmVjb21wb3NlZFN0
cmluZ1dpdGhDYW5vbmljYWxNYXBwaW5nXSkpOwogCiAgICAgICAgIFJlZlB0cjxEb2N1bWVudEZy
YWdtZW50PiBuZXdGcmFnbWVudCA9IGZyYW1lLmRvY3VtZW50KCktPmNyZWF0ZURvY3VtZW50RnJh
Z21lbnQoKTsKLSAgICAgICAgbmV3RnJhZ21lbnQtPmFwcGVuZENoaWxkKGFuY2hvci5yZWxlYXNl
KCkpOworICAgICAgICBuZXdGcmFnbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGFuY2hvcikp
OwogICAgICAgICBhZGRGcmFnbWVudChuZXdGcmFnbWVudCk7CiAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIH0KQEAgLTU4Myw3ICs1ODMsNyBAQCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IEVkaXRvcjo6Y3JlYXRlRnJhZ21lbnRGb3JJbWFnZVJlc291cmNlQW5kQWRkUmVzb3VyYwogICAg
IGlmICghcmVzb3VyY2UpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgUmVmUHRyPEVs
ZW1lbnQ+IGltYWdlRWxlbWVudCA9IG1fZnJhbWUuZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChI
VE1MTmFtZXM6OmltZ1RhZywgZmFsc2UpOworICAgIFJlZjxFbGVtZW50PiBpbWFnZUVsZW1lbnQg
PSBtX2ZyYW1lLmRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoSFRNTE5hbWVzOjppbWdUYWcsIGZh
bHNlKTsKICAgICAvLyBGSVhNRTogVGhlIGNvZGUgaW4gY3JlYXRlRnJhZ21lbnRBbmRBZGRSZXNv
dXJjZXMgY2FsbHMgc2V0RGVmZXJzTG9hZGluZyh0cnVlKS4gRG9uJ3Qgd2UgbmVlZCB0aGF0IGhl
cmU/CiAgICAgaWYgKERvY3VtZW50TG9hZGVyKiBsb2FkZXIgPSBtX2ZyYW1lLmxvYWRlcigpLmRv
Y3VtZW50TG9hZGVyKCkpCiAgICAgICAgIGxvYWRlci0+YWRkQXJjaGl2ZVJlc291cmNlKHJlc291
cmNlLmdldCgpKTsKQEAgLTU5Miw3ICs1OTIsNyBAQCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21l
bnQ+IEVkaXRvcjo6Y3JlYXRlRnJhZ21lbnRGb3JJbWFnZVJlc291cmNlQW5kQWRkUmVzb3VyYwog
ICAgIGltYWdlRWxlbWVudC0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6c3JjQXR0ciwgW1VSTCBp
c0ZpbGVVUkxdID8gW1VSTCBhYnNvbHV0ZVN0cmluZ10gOiByZXNvdXJjZS0+dXJsKCkpOwogCiAg
ICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gbV9mcmFtZS5kb2N1bWVudCgp
LT5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKGlt
YWdlRWxlbWVudC5yZWxlYXNlKCkpOworICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1v
dmUoaW1hZ2VFbGVtZW50KSk7CiAKICAgICByZXR1cm4gZnJhZ21lbnQucmVsZWFzZSgpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCmluZGV4IDZjZWY0ODk5NTliNDk1
ZDA3Njk5MDE1M2JiOTVhMWMyZjA5ZmFmMDQuLmNkMjUyZGNmZDMxYzNlMDBjMTU3N2RiZjkzMGM4
NjgzYjUwZGQwMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRv
ck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KQEAg
LTUyNywxNSArNTI3LDE1IEBAIGJvb2wgRWRpdG9yOjpXZWJDb250ZW50UmVhZGVyOjpyZWFkRmls
ZW5hbWVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXRocykKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHNpemU7IGkrKykgewogICAgICAgICBTdHJpbmcgdGV4dCA9IHBhdGhzW2ldOwogI2lm
IEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCi0gICAgICAgIFJlZlB0cjxIVE1MQXR0YWNobWVu
dEVsZW1lbnQ+IGF0dGFjaG1lbnQgPSBIVE1MQXR0YWNobWVudEVsZW1lbnQ6OmNyZWF0ZShhdHRh
Y2htZW50VGFnLCBkb2N1bWVudCk7CisgICAgICAgIFJlZjxIVE1MQXR0YWNobWVudEVsZW1lbnQ+
IGF0dGFjaG1lbnQgPSBIVE1MQXR0YWNobWVudEVsZW1lbnQ6OmNyZWF0ZShhdHRhY2htZW50VGFn
LCBkb2N1bWVudCk7CiAgICAgICAgIGF0dGFjaG1lbnQtPnNldEZpbGUoRmlsZTo6Y3JlYXRlKFtb
TlNVUkwgZmlsZVVSTFdpdGhQYXRoOnRleHRdIHBhdGhdKS5wdHIoKSk7Ci0gICAgICAgIGZyYWdt
ZW50LT5hcHBlbmRDaGlsZChhdHRhY2htZW50LnJlbGVhc2UoKSk7CisgICAgICAgIGZyYWdtZW50
LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoYXR0YWNobWVudCkpOwogI2Vsc2UKICAgICAgICAgdGV4
dCA9IGZyYW1lLmVkaXRvcigpLmNsaWVudCgpLT51c2VyVmlzaWJsZVN0cmluZyhbTlNVUkwgZmls
ZVVSTFdpdGhQYXRoOnRleHRdKTsKIAotICAgICAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IHBhcmFn
cmFwaCA9IGNyZWF0ZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50KGRvY3VtZW50KTsKKyAgICAgICAg
UmVmPEhUTUxFbGVtZW50PiBwYXJhZ3JhcGggPSBjcmVhdGVEZWZhdWx0UGFyYWdyYXBoRWxlbWVu
dChkb2N1bWVudCk7CiAgICAgICAgIHBhcmFncmFwaC0+YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlVGV4dE5vZGUodGV4dCkpOwotICAgICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQocGFyYWdy
YXBoLnJlbGVhc2UoKSk7CisgICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUo
cGFyYWdyYXBoKSk7CiAjZW5kaWYKICAgICB9CiAKQEAgLTU5NCwxMiArNTk0LDEyIEBAIGJvb2wg
RWRpdG9yOjpXZWJDb250ZW50UmVhZGVyOjpyZWFkVVJMKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBT
dHJpbmcmIHRpdGxlKQogICAgIGlmICh1cmwuc3RyaW5nKCkuaXNFbXB0eSgpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICBSZWZQdHI8RWxlbWVudD4gYW5jaG9yID0gZnJhbWUuZG9jdW1l
bnQoKS0+Y3JlYXRlRWxlbWVudChIVE1MTmFtZXM6OmFUYWcsIGZhbHNlKTsKKyAgICBSZWY8RWxl
bWVudD4gYW5jaG9yID0gZnJhbWUuZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChIVE1MTmFtZXM6
OmFUYWcsIGZhbHNlKTsKICAgICBhbmNob3ItPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmhyZWZB
dHRyLCB1cmwuc3RyaW5nKCkpOwogICAgIGFuY2hvci0+YXBwZW5kQ2hpbGQoZnJhbWUuZG9jdW1l
bnQoKS0+Y3JlYXRlVGV4dE5vZGUoW3RpdGxlIHByZWNvbXBvc2VkU3RyaW5nV2l0aENhbm9uaWNh
bE1hcHBpbmddKSk7CiAKICAgICBmcmFnbWVudCA9IGZyYW1lLmRvY3VtZW50KCktPmNyZWF0ZURv
Y3VtZW50RnJhZ21lbnQoKTsKLSAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoYW5jaG9yLnJlbGVh
c2UoKSk7CisgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShhbmNob3IpKTsKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjM1LDExICs2MzUsMTEgQEAgUGFzc1JlZlB0cjxEb2N1
bWVudEZyYWdtZW50PiBFZGl0b3I6OmNyZWF0ZUZyYWdtZW50Rm9ySW1hZ2VSZXNvdXJjZUFuZEFk
ZFJlc291cmMKICAgICBpZiAoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciA9IG1fZnJhbWUubG9hZGVy
KCkuZG9jdW1lbnRMb2FkZXIoKSkKICAgICAgICAgbG9hZGVyLT5hZGRBcmNoaXZlUmVzb3VyY2Uo
cmVzb3VyY2UuZ2V0KCkpOwogCi0gICAgUmVmUHRyPEVsZW1lbnQ+IGltYWdlRWxlbWVudCA9IGRv
Y3VtZW50KCkuY3JlYXRlRWxlbWVudChIVE1MTmFtZXM6OmltZ1RhZywgZmFsc2UpOworICAgIFJl
ZjxFbGVtZW50PiBpbWFnZUVsZW1lbnQgPSBkb2N1bWVudCgpLmNyZWF0ZUVsZW1lbnQoSFRNTE5h
bWVzOjppbWdUYWcsIGZhbHNlKTsKICAgICBpbWFnZUVsZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1M
TmFtZXM6OnNyY0F0dHIsIHJlc291cmNlLT51cmwoKS5zdHJpbmcoKSk7CiAKICAgICBSZWZQdHI8
RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBkb2N1bWVudCgpLmNyZWF0ZURvY3VtZW50RnJh
Z21lbnQoKTsKLSAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50LnJlbGVhc2Uo
KSk7CisgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShpbWFnZUVsZW1lbnQpKTsK
IAogICAgIHJldHVybiBmcmFnbWVudC5yZWxlYXNlKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1
cC5jcHAKaW5kZXggMGNhYzhiNDBmZDhhM2M2NTE4MDQxNTQ4ZWI2NDlkOTRiNTM2ZDJkMi4uYzBj
Zjc4ZDllN2QxNDU4YjVkNTNhNDY1YTJlNzRjNGE1N2MzNmNhZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
bWFya3VwLmNwcApAQCAtNzI5LDggKzcyOSw4IEBAIHN0YXRpYyB2b2lkIGZpbGxDb250YWluZXJG
cm9tU3RyaW5nKENvbnRhaW5lck5vZGUqIHBhcmFncmFwaCwgY29uc3QgU3RyaW5nJiBzdHJpCiAg
ICAgICAgICAgICAgICAgcGFyYWdyYXBoLT5hcHBlbmRDaGlsZChjcmVhdGVUYWJTcGFuRWxlbWVu
dChkb2N1bWVudCwgdGFiVGV4dCksIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgICAgICAgICAg
ICAgIHRhYlRleHQgPSBlbXB0eVN0cmluZygpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAg
UmVmUHRyPE5vZGU+IHRleHROb2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoc3RyaW5nV2l0
aFJlYmFsYW5jZWRXaGl0ZXNwYWNlKHMsIGZpcnN0LCBpICsgMSA9PSBudW1FbnRyaWVzKSk7Ci0g
ICAgICAgICAgICBwYXJhZ3JhcGgtPmFwcGVuZENoaWxkKHRleHROb2RlLnJlbGVhc2UoKSwgQVNT
RVJUX05PX0VYQ0VQVElPTik7CisgICAgICAgICAgICBSZWY8Tm9kZT4gdGV4dE5vZGUgPSBkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZShzdHJpbmdXaXRoUmViYWxhbmNlZFdoaXRlc3BhY2UocywgZmly
c3QsIGkgKyAxID09IG51bUVudHJpZXMpKTsKKyAgICAgICAgICAgIHBhcmFncmFwaC0+YXBwZW5k
Q2hpbGQoV1RGOjptb3ZlKHRleHROb2RlKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgICAg
IH0KIAogICAgICAgICAvLyB0aGVyZSBpcyBhIHRhYiBhZnRlciBldmVyeSBlbnRyeSwgZXhjZXB0
IHRoZSBsYXN0IGVudHJ5CkBAIC03OTMsOSArNzkzLDkgQEAgUGFzc1JlZlB0cjxEb2N1bWVudEZy
YWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21UZXh0KFJhbmdlJiBjb250ZXh0LCBjb25zdCBTdHJp
bmcKICAgICBpZiAoY29udGV4dFByZXNlcnZlc05ld2xpbmUoY29udGV4dCkpIHsKICAgICAgICAg
ZnJhZ21lbnQtPmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cmluZyksIEFT
U0VSVF9OT19FWENFUFRJT04pOwogICAgICAgICBpZiAoc3RyaW5nLmVuZHNXaXRoKCdcbicpKSB7
Ci0gICAgICAgICAgICBSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IGNyZWF0ZUJyZWFrRWxlbWVu
dChkb2N1bWVudCk7CisgICAgICAgICAgICBSZWY8RWxlbWVudD4gZWxlbWVudCA9IGNyZWF0ZUJy
ZWFrRWxlbWVudChkb2N1bWVudCk7CiAgICAgICAgICAgICBlbGVtZW50LT5zZXRBdHRyaWJ1dGUo
Y2xhc3NBdHRyLCBBcHBsZUludGVyY2hhbmdlTmV3bGluZSk7ICAgICAgICAgICAgCi0gICAgICAg
ICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoZWxlbWVudC5yZWxlYXNlKCksIEFTU0VSVF9OT19F
WENFUFRJT04pOworICAgICAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShl
bGVtZW50KSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJu
IGZyYWdtZW50LnJlbGVhc2UoKTsKICAgICB9CkBAIC04MzcsNyArODM3LDcgQEAgUGFzc1JlZlB0
cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21UZXh0KFJhbmdlJiBjb250ZXh0
LCBjb25zdCBTdHJpbmcKICAgICAgICAgICAgICAgICBlbGVtZW50ID0gY3JlYXRlRGVmYXVsdFBh
cmFncmFwaEVsZW1lbnQoZG9jdW1lbnQpOwogICAgICAgICAgICAgZmlsbENvbnRhaW5lckZyb21T
dHJpbmcoZWxlbWVudC5nZXQoKSwgcyk7CiAgICAgICAgIH0KLSAgICAgICAgZnJhZ21lbnQtPmFw
cGVuZENoaWxkKGVsZW1lbnQucmVsZWFzZSgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAg
ICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKGVsZW1lbnQucmVsZWFzZU5vbk51bGwoKSwgQVNTRVJU
X05PX0VYQ0VQVElPTik7CiAgICAgfQogICAgIHJldHVybiBmcmFnbWVudC5yZWxlYXNlKCk7CiB9
CkBAIC05NDUsMTAgKzk0NSwxMCBAQCBzdGF0aWMgdm9pZCByZW1vdmVFbGVtZW50RnJvbUZyYWdt
ZW50UHJlc2VydmluZ0NoaWxkcmVuKERvY3VtZW50RnJhZ21lbnQmIGZyYWdtZQogICAgIFJlZlB0
cjxOb2RlPiBuZXh0Q2hpbGQ7CiAgICAgZm9yIChSZWZQdHI8Tm9kZT4gY2hpbGQgPSBlbGVtZW50
LmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gbmV4dENoaWxkKSB7CiAgICAgICAgIG5leHRD
aGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpOwotICAgICAgICBlbGVtZW50LnJlbW92ZUNoaWxk
KGNoaWxkLmdldCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKLSAgICAgICAgZnJhZ21lbnQuaW5z
ZXJ0QmVmb3JlKGNoaWxkLCAmZWxlbWVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAg
IGVsZW1lbnQucmVtb3ZlQ2hpbGQoKmNoaWxkLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAg
ICAgZnJhZ21lbnQuaW5zZXJ0QmVmb3JlKCpjaGlsZCwgJmVsZW1lbnQsIEFTU0VSVF9OT19FWENF
UFRJT04pOwogICAgIH0KLSAgICBmcmFnbWVudC5yZW1vdmVDaGlsZCgmZWxlbWVudCwgQVNTRVJU
X05PX0VYQ0VQVElPTik7CisgICAgZnJhZ21lbnQucmVtb3ZlQ2hpbGQoZWxlbWVudCwgQVNTRVJU
X05PX0VYQ0VQVElPTik7CiB9CiAKIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRl
Q29udGV4dHVhbEZyYWdtZW50KGNvbnN0IFN0cmluZyYgbWFya3VwLCBIVE1MRWxlbWVudCogZWxl
bWVudCwgUGFyc2VyQ29udGVudFBvbGljeSBwYXJzZXJDb250ZW50UG9saWN5LCBFeGNlcHRpb25D
b2RlJiBlYykKQEAgLTk5MCw3ICs5OTAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaGFzT25lVGV4
dENoaWxkKENvbnRhaW5lck5vZGUmIG5vZGUpCiAgICAgcmV0dXJuIGhhc09uZUNoaWxkKG5vZGUp
ICYmIG5vZGUuZmlyc3RDaGlsZCgpLT5pc1RleHROb2RlKCk7CiB9CiAKLXZvaWQgcmVwbGFjZUNo
aWxkcmVuV2l0aEZyYWdtZW50KENvbnRhaW5lck5vZGUmIGNvbnRhaW5lciwgUGFzc1JlZlB0cjxE
b2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIHJlcGxh
Y2VDaGlsZHJlbldpdGhGcmFnbWVudChDb250YWluZXJOb2RlJiBjb250YWluZXIsIFJlZjxEb2N1
bWVudEZyYWdtZW50PiYmIGZyYWdtZW50LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBSZWY8
Q29udGFpbmVyTm9kZT4gY29udGFpbmVyTm9kZShjb250YWluZXIpOwogICAgIENoaWxkTGlzdE11
dGF0aW9uU2NvcGUgbXV0YXRpb24oY29udGFpbmVyTm9kZSk7CkBAIC0xMDAwLDE4ICsxMDAwLDE4
IEBAIHZvaWQgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KENvbnRhaW5lck5vZGUmIGNvbnRh
aW5lciwgUGFzc1JlZlB0cjxEb2N1bWVudEZyCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBpZiAoaGFzT25lVGV4dENoaWxkKGNvbnRhaW5lck5vZGUpICYmIGhhc09uZVRleHRDaGlsZCgq
ZnJhZ21lbnQpKSB7CisgICAgaWYgKGhhc09uZVRleHRDaGlsZChjb250YWluZXJOb2RlKSAmJiBo
YXNPbmVUZXh0Q2hpbGQoZnJhZ21lbnQpKSB7CiAgICAgICAgIGRvd25jYXN0PFRleHQ+KCpjb250
YWluZXJOb2RlLT5maXJzdENoaWxkKCkpLnNldERhdGEoZG93bmNhc3Q8VGV4dD4oKmZyYWdtZW50
LT5maXJzdENoaWxkKCkpLmRhdGEoKSwgZWMpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAg
ICAgaWYgKGhhc09uZUNoaWxkKGNvbnRhaW5lck5vZGUpKSB7Ci0gICAgICAgIGNvbnRhaW5lck5v
ZGUtPnJlcGxhY2VDaGlsZChmcmFnbWVudCwgY29udGFpbmVyTm9kZS0+Zmlyc3RDaGlsZCgpLCBl
Yyk7CisgICAgICAgIGNvbnRhaW5lck5vZGUtPnJlcGxhY2VDaGlsZChXVEY6Om1vdmUoZnJhZ21l
bnQpLCAqY29udGFpbmVyTm9kZS0+Zmlyc3RDaGlsZCgpLCBlYyk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKICAgICBjb250YWluZXJOb2RlLT5yZW1vdmVDaGlsZHJlbigpOwotICAgIGNvbnRh
aW5lck5vZGUtPmFwcGVuZENoaWxkKGZyYWdtZW50LCBlYyk7CisgICAgY29udGFpbmVyTm9kZS0+
YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGZyYWdtZW50KSwgZWMpOwogfQogCiB2b2lkIHJlcGxhY2VD
aGlsZHJlbldpdGhUZXh0KENvbnRhaW5lck5vZGUmIGNvbnRhaW5lciwgY29uc3QgU3RyaW5nJiB0
ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTEwMjcsNyArMTAyNyw3IEBAIHZvaWQgcmVwbGFj
ZUNoaWxkcmVuV2l0aFRleHQoQ29udGFpbmVyTm9kZSYgY29udGFpbmVyLCBjb25zdCBTdHJpbmcm
IHRleHQsIEV4Y2VwCiAgICAgUmVmPFRleHQ+IHRleHROb2RlID0gVGV4dDo6Y3JlYXRlKGNvbnRh
aW5lck5vZGUtPmRvY3VtZW50KCksIHRleHQpOwogCiAgICAgaWYgKGhhc09uZUNoaWxkKGNvbnRh
aW5lck5vZGUpKSB7Ci0gICAgICAgIGNvbnRhaW5lck5vZGUtPnJlcGxhY2VDaGlsZChXVEY6Om1v
dmUodGV4dE5vZGUpLCBjb250YWluZXJOb2RlLT5maXJzdENoaWxkKCksIGVjKTsKKyAgICAgICAg
Y29udGFpbmVyTm9kZS0+cmVwbGFjZUNoaWxkKFdURjo6bW92ZSh0ZXh0Tm9kZSksICpjb250YWlu
ZXJOb2RlLT5maXJzdENoaWxkKCksIGVjKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvbWFya3VwLmgKaW5kZXggYzU1MjAxMDc2NjA3MmVmNWU2MWQyNmEzMTNjMWIwMDNi
MWI4MzRiOC4uNzZmNmQzMDY4NWUyNzA0NGFlMDU5NTMzMzY0Y2ZlMWMwYzZjNjE0NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL21hcmt1cC5oCkBAIC01OSwxMSArNTksMTEgQEAgYm9vbCBpc1BsYWluVGV4dE1h
cmt1cChOb2RlKik7CiAKIC8vIFRoZXNlIG1ldGhvZHMgYXJlIHVzZWQgYnkgSFRNTEVsZW1lbnQg
JiBTaGFkb3dSb290IHRvIHJlcGxhY2UgdGhlCiAvLyBjaGlsZHJlbiB3aXRoIHJlc3BlY3RlZCBm
cmFnbWVudC90ZXh0Lgotdm9pZCByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQoQ29udGFpbmVy
Tm9kZSYsIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4sIEV4Y2VwdGlvbkNvZGUmKTsKK3Zv
aWQgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KENvbnRhaW5lck5vZGUmLCBSZWY8RG9jdW1l
bnRGcmFnbWVudD4mJiwgRXhjZXB0aW9uQ29kZSYpOwogdm9pZCByZXBsYWNlQ2hpbGRyZW5XaXRo
VGV4dChDb250YWluZXJOb2RlJiwgY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwogCi1T
dHJpbmcgY3JlYXRlTWFya3VwKGNvbnN0IFJhbmdlJiwgVmVjdG9yPE5vZGUqPiogPSAwLCBFQW5u
b3RhdGVGb3JJbnRlcmNoYW5nZSA9IERvTm90QW5ub3RhdGVGb3JJbnRlcmNoYW5nZSwgYm9vbCBj
b252ZXJ0QmxvY2tzVG9JbmxpbmVzID0gZmFsc2UsIEVBYnNvbHV0ZVVSTHMgPSBEb05vdFJlc29s
dmVVUkxzKTsKLVN0cmluZyBjcmVhdGVNYXJrdXAoY29uc3QgTm9kZSYsIEVDaGlsZHJlbk9ubHkg
PSBJbmNsdWRlTm9kZSwgVmVjdG9yPE5vZGUqPiogPSAwLCBFQWJzb2x1dGVVUkxzID0gRG9Ob3RS
ZXNvbHZlVVJMcywgVmVjdG9yPFF1YWxpZmllZE5hbWU+KiB0YWdOYW1lc1RvU2tpcCA9IDAsIEVG
cmFnbWVudFNlcmlhbGl6YXRpb24gPSBIVE1MRnJhZ21lbnRTZXJpYWxpemF0aW9uKTsKK1N0cmlu
ZyBjcmVhdGVNYXJrdXAoY29uc3QgUmFuZ2UmLCBWZWN0b3I8Tm9kZSo+KiA9IG51bGxwdHIsIEVB
bm5vdGF0ZUZvckludGVyY2hhbmdlID0gRG9Ob3RBbm5vdGF0ZUZvckludGVyY2hhbmdlLCBib29s
IGNvbnZlcnRCbG9ja3NUb0lubGluZXMgPSBmYWxzZSwgRUFic29sdXRlVVJMcyA9IERvTm90UmVz
b2x2ZVVSTHMpOworU3RyaW5nIGNyZWF0ZU1hcmt1cChjb25zdCBOb2RlJiwgRUNoaWxkcmVuT25s
eSA9IEluY2x1ZGVOb2RlLCBWZWN0b3I8Tm9kZSo+KiA9IG51bGxwdHIsIEVBYnNvbHV0ZVVSTHMg
PSBEb05vdFJlc29sdmVVUkxzLCBWZWN0b3I8UXVhbGlmaWVkTmFtZT4qIHRhZ05hbWVzVG9Ta2lw
ID0gMCwgRUZyYWdtZW50U2VyaWFsaXphdGlvbiA9IEhUTUxGcmFnbWVudFNlcmlhbGl6YXRpb24p
OwogCiBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY3JlYXRlRnVsbE1hcmt1cChjb25zdCBOb2RlJik7
CiBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY3JlYXRlRnVsbE1hcmt1cChjb25zdCBSYW5nZSYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGlt
ZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVB
bmRUaW1lSW5wdXRUeXBlLmNwcAppbmRleCBkYmVhMGU5OWJkOTM0YzdkYmRlYTUyZDI1ZDAxYzJm
ODE3NWRjMWQwLi41N2UzODhiZjFkY2VhNGI4MTk2YjQ2MGYwY2MzNzExZmYwZjg3MzRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5w
dXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVB
bmRUaW1lSW5wdXRUeXBlLmNwcApAQCAtNjAsOSArNjAsOSBAQCB2b2lkIEJhc2VDaG9vc2VyT25s
eURhdGVBbmRUaW1lSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKICAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCB2YWx1ZUNvbnRhaW5lclBz
ZXVkbywgKCItd2Via2l0LWRhdGUtYW5kLXRpbWUtdmFsdWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CiAKLSAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IHZhbHVlQ29u
dGFpbmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCkuZG9jdW1lbnQoKSk7Cisg
ICAgUmVmPEhUTUxEaXZFbGVtZW50PiB2YWx1ZUNvbnRhaW5lciA9IEhUTUxEaXZFbGVtZW50Ojpj
cmVhdGUoZWxlbWVudCgpLmRvY3VtZW50KCkpOwogICAgIHZhbHVlQ29udGFpbmVyLT5zZXRQc2V1
ZG8odmFsdWVDb250YWluZXJQc2V1ZG8pOwotICAgIGVsZW1lbnQoKS51c2VyQWdlbnRTaGFkb3dS
b290KCktPmFwcGVuZENoaWxkKHZhbHVlQ29udGFpbmVyLmdldCgpKTsKKyAgICBlbGVtZW50KCku
dXNlckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUodmFsdWVDb250YWlu
ZXIpKTsKICAgICB1cGRhdGVBcHBlYXJhbmNlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xv
cklucHV0VHlwZS5jcHAKaW5kZXggOGJiZGI5N2MyNTI0YjYyYWIzOWFhNjRlNjg0MDg1NWNhNDY5
NTU5Yy4uYzUzODVhMDRiNjc3OGM1ZWEyZDQzNWI0MzlhOTRiZjIwN2JiNjY2MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKQEAgLTEwNywxMiArMTA3LDEyIEBAIHZvaWQg
Q29sb3JJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogICAgIEFTU0VSVChlbGVtZW50
KCkuc2hhZG93Um9vdCgpKTsKIAogICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGVsZW1lbnQoKS5k
b2N1bWVudCgpOwotICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gd3JhcHBlckVsZW1lbnQgPSBI
VE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBSZWY8SFRNTERpdkVsZW1lbnQ+
IHdyYXBwZXJFbGVtZW50ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAg
d3JhcHBlckVsZW1lbnQtPnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtY29sb3Itc3dh
dGNoLXdyYXBwZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAg
UmVmUHRyPEhUTUxEaXZFbGVtZW50PiBjb2xvclN3YXRjaCA9IEhUTUxEaXZFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQpOworICAgIFJlZjxIVE1MRGl2RWxlbWVudD4gY29sb3JTd2F0Y2ggPSBIVE1M
RGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb2xvclN3YXRjaC0+c2V0UHNldWRv
KEF0b21pY1N0cmluZygiLXdlYmtpdC1jb2xvci1zd2F0Y2giLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgd3JhcHBlckVsZW1lbnQtPmFwcGVuZENoaWxkKGNvbG9y
U3dhdGNoLnJlbGVhc2UoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0gICAgZWxlbWVudCgpLnVz
ZXJBZ2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQod3JhcHBlckVsZW1lbnQucmVsZWFzZSgp
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICB3cmFwcGVyRWxlbWVudC0+YXBwZW5kQ2hpbGQo
V1RGOjptb3ZlKGNvbG9yU3dhdGNoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgZWxlbWVu
dCgpLnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHdyYXBwZXJF
bGVtZW50KSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgCiAgICAgdXBkYXRlQ29sb3JTd2F0
Y2goKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5RG9j
dW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAK
aW5kZXggNDA2NWExNzhkMjgyYTkyOTcxNDUxMTU1YjY2ZDYzZGQzNGExZjJkNS4uMTQ0N2E0NjM1
ZjcyMTJlZmE5MmExMWMxN2Y5MmY3ZjY5MzdlYWVmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAKQEAgLTEwNCwyNyArMTA0LDI3IEBAIHZvaWQgRlRQ
RGlyZWN0b3J5RG9jdW1lbnRQYXJzZXI6OmFwcGVuZEVudHJ5KGNvbnN0IFN0cmluZyYgZmlsZW5h
bWUsIGNvbnN0IFN0cmluCiAgICAgUmVmUHRyPEVsZW1lbnQ+IHJvd0VsZW1lbnQgPSBtX3RhYmxl
RWxlbWVudC0+aW5zZXJ0Um93KC0xLCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICByb3dFbGVtZW50
LT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpjbGFzc0F0dHIsICJmdHBEaXJlY3RvcnlFbnRyeVJv
dyIpOwogCi0gICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVF
bGVtZW50KHRkVGFnLCBmYWxzZSk7CisgICAgUmVmPEVsZW1lbnQ+IGVsZW1lbnQgPSBkb2N1bWVu
dCgpLT5jcmVhdGVFbGVtZW50KHRkVGFnLCBmYWxzZSk7CiAgICAgZWxlbWVudC0+YXBwZW5kQ2hp
bGQoVGV4dDo6Y3JlYXRlKCpkb2N1bWVudCgpLCBTdHJpbmcoJm5vQnJlYWtTcGFjZSwgMSkpLCBJ
R05PUkVfRVhDRVBUSU9OKTsKICAgICBpZiAoaXNEaXJlY3RvcnkpCiAgICAgICAgIGVsZW1lbnQt
PnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNsYXNzQXR0ciwgImZ0cERpcmVjdG9yeUljb24gZnRw
RGlyZWN0b3J5VHlwZURpcmVjdG9yeSIpOwogICAgIGVsc2UKICAgICAgICAgZWxlbWVudC0+c2V0
QXR0cmlidXRlKEhUTUxOYW1lczo6Y2xhc3NBdHRyLCAiZnRwRGlyZWN0b3J5SWNvbiBmdHBEaXJl
Y3RvcnlUeXBlRmlsZSIpOwotICAgIHJvd0VsZW1lbnQtPmFwcGVuZENoaWxkKGVsZW1lbnQsIElH
Tk9SRV9FWENFUFRJT04pOworICAgIHJvd0VsZW1lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShl
bGVtZW50KSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKICAgICBlbGVtZW50ID0gY3JlYXRlVERGb3JG
aWxlbmFtZShmaWxlbmFtZSk7CiAgICAgZWxlbWVudC0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6
Y2xhc3NBdHRyLCAiZnRwRGlyZWN0b3J5RmlsZU5hbWUiKTsKLSAgICByb3dFbGVtZW50LT5hcHBl
bmRDaGlsZChlbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICByb3dFbGVtZW50LT5hcHBl
bmRDaGlsZChXVEY6Om1vdmUoZWxlbWVudCksIElHTk9SRV9FWENFUFRJT04pOwogCiAgICAgZWxl
bWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQodGRUYWcsIGZhbHNlKTsKICAgICBlbGVt
ZW50LT5hcHBlbmRDaGlsZChUZXh0OjpjcmVhdGUoKmRvY3VtZW50KCksIGRhdGUpLCBJR05PUkVf
RVhDRVBUSU9OKTsKICAgICBlbGVtZW50LT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpjbGFzc0F0
dHIsICJmdHBEaXJlY3RvcnlGaWxlRGF0ZSIpOwotICAgIHJvd0VsZW1lbnQtPmFwcGVuZENoaWxk
KGVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOworICAgIHJvd0VsZW1lbnQtPmFwcGVuZENoaWxk
KFdURjo6bW92ZShlbGVtZW50KSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKICAgICBlbGVtZW50ID0g
ZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudCh0ZFRhZywgZmFsc2UpOwogICAgIGVsZW1lbnQtPmFw
cGVuZENoaWxkKFRleHQ6OmNyZWF0ZSgqZG9jdW1lbnQoKSwgc2l6ZSksIElHTk9SRV9FWENFUFRJ
T04pOwogICAgIGVsZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNsYXNzQXR0ciwgImZ0
cERpcmVjdG9yeUZpbGVTaXplIik7Ci0gICAgcm93RWxlbWVudC0+YXBwZW5kQ2hpbGQoZWxlbWVu
dCwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgcm93RWxlbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjpt
b3ZlKGVsZW1lbnQpLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KIAogUmVmPEVsZW1lbnQ+IEZUUERp
cmVjdG9yeURvY3VtZW50UGFyc2VyOjpjcmVhdGVUREZvckZpbGVuYW1lKGNvbnN0IFN0cmluZyYg
ZmlsZW5hbWUpCkBAIC0xMzUsMTIgKzEzNSwxMiBAQCBSZWY8RWxlbWVudD4gRlRQRGlyZWN0b3J5
RG9jdW1lbnRQYXJzZXI6OmNyZWF0ZVRERm9yRmlsZW5hbWUoY29uc3QgU3RyaW5nJiBmaWxlbgog
ICAgIGVsc2UKICAgICAgICAgZnVsbFVSTCA9IGZ1bGxVUkwgKyAnLycgKyBmaWxlbmFtZTsKIAot
ICAgIFJlZlB0cjxFbGVtZW50PiBhbmNob3JFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxl
bWVudChhVGFnLCBmYWxzZSk7CisgICAgUmVmPEVsZW1lbnQ+IGFuY2hvckVsZW1lbnQgPSBkb2N1
bWVudCgpLT5jcmVhdGVFbGVtZW50KGFUYWcsIGZhbHNlKTsKICAgICBhbmNob3JFbGVtZW50LT5z
ZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpocmVmQXR0ciwgZnVsbFVSTCk7CiAgICAgYW5jaG9yRWxl
bWVudC0+YXBwZW5kQ2hpbGQoVGV4dDo6Y3JlYXRlKCpkb2N1bWVudCgpLCBmaWxlbmFtZSksIElH
Tk9SRV9FWENFUFRJT04pOwogCiAgICAgUmVmPEVsZW1lbnQ+IHRkRWxlbWVudCA9IGRvY3VtZW50
KCktPmNyZWF0ZUVsZW1lbnQodGRUYWcsIGZhbHNlKTsKLSAgICB0ZEVsZW1lbnQtPmFwcGVuZENo
aWxkKGFuY2hvckVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOworICAgIHRkRWxlbWVudC0+YXBw
ZW5kQ2hpbGQoV1RGOjptb3ZlKGFuY2hvckVsZW1lbnQpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAog
ICAgIHJldHVybiB0ZEVsZW1lbnQ7CiB9CkBAIC0zMTIsOSArMzEyLDkgQEAgYm9vbCBGVFBEaXJl
Y3RvcnlEb2N1bWVudFBhcnNlcjo6bG9hZERvY3VtZW50VGVtcGxhdGUoKQogICAgIC8vIElmIHRo
YXQgZmFpbHMgZm9yIHNvbWUgcmVhc29uLCBjcmFtIGl0IG9uIHRoZSBlbmQgb2YgdGhlIGRvY3Vt
ZW50IGFzIGEgbGFzdAogICAgIC8vIGRpdGNoIGVmZm9ydAogICAgIGlmIChhdXRvKiBib2R5ID0g
ZG9jdW1lbnQoKS0+Ym9keU9yRnJhbWVzZXQoKSkKLSAgICAgICAgYm9keS0+YXBwZW5kQ2hpbGQo
bV90YWJsZUVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOworICAgICAgICBib2R5LT5hcHBlbmRD
aGlsZCgqbV90YWJsZUVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOwogICAgIGVsc2UKLSAgICAg
ICAgZG9jdW1lbnQoKS0+YXBwZW5kQ2hpbGQobV90YWJsZUVsZW1lbnQsIElHTk9SRV9FWENFUFRJ
T04pOworICAgICAgICBkb2N1bWVudCgpLT5hcHBlbmRDaGlsZCgqbV90YWJsZUVsZW1lbnQsIElH
Tk9SRV9FWENFUFRJT04pOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0zMjUsMTYgKzMyNSwx
NiBAQCB2b2lkIEZUUERpcmVjdG9yeURvY3VtZW50UGFyc2VyOjpjcmVhdGVCYXNpY0RvY3VtZW50
KCkKIAogICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgImJhc2ljIGRvY3VtZW50IiBtb3JlIGFjY2Vw
dGFibGUKIAotICAgIFJlZlB0cjxFbGVtZW50PiBib2R5RWxlbWVudCA9IGRvY3VtZW50KCktPmNy
ZWF0ZUVsZW1lbnQoYm9keVRhZywgZmFsc2UpOworICAgIFJlZjxFbGVtZW50PiBib2R5RWxlbWVu
dCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoYm9keVRhZywgZmFsc2UpOwogCi0gICAgZG9j
dW1lbnQoKS0+YXBwZW5kQ2hpbGQoYm9keUVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOworICAg
IGRvY3VtZW50KCktPmFwcGVuZENoaWxkKGJvZHlFbGVtZW50LmNvcHlSZWYoKSwgSUdOT1JFX0VY
Q0VQVElPTik7CiAKLSAgICBSZWZQdHI8RWxlbWVudD4gdGFibGVFbGVtZW50ID0gZG9jdW1lbnQo
KS0+Y3JlYXRlRWxlbWVudCh0YWJsZVRhZywgZmFsc2UpOwotICAgIG1fdGFibGVFbGVtZW50ID0g
ZG93bmNhc3Q8SFRNTFRhYmxlRWxlbWVudD4odGFibGVFbGVtZW50LmdldCgpKTsKKyAgICBSZWY8
RWxlbWVudD4gdGFibGVFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudCh0YWJsZVRh
ZywgZmFsc2UpOworICAgIG1fdGFibGVFbGVtZW50ID0gZG93bmNhc3Q8SFRNTFRhYmxlRWxlbWVu
dD4odGFibGVFbGVtZW50LnB0cigpKTsKICAgICBtX3RhYmxlRWxlbWVudC0+c2V0QXR0cmlidXRl
KEhUTUxOYW1lczo6aWRBdHRyLCAiZnRwRGlyZWN0b3J5VGFibGUiKTsKICAgICBtX3RhYmxlRWxl
bWVudC0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6c3R5bGVBdHRyLCAid2lkdGg6MTAwJSIpOwog
Ci0gICAgYm9keUVsZW1lbnQtPmFwcGVuZENoaWxkKG1fdGFibGVFbGVtZW50LCBJR05PUkVfRVhD
RVBUSU9OKTsKKyAgICBib2R5RWxlbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHRhYmxlRWxl
bWVudCksIElHTk9SRV9FWENFUFRJT04pOwogCiAgICAgZG9jdW1lbnQoKS0+cHJvY2Vzc1ZpZXdw
b3J0KCJ3aWR0aD1kZXZpY2Utd2lkdGgiLCBWaWV3cG9ydEFyZ3VtZW50czo6Vmlld3BvcnRNZXRh
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAppbmRleCA0
MzAyMTJjMWFiODA3MDkxNjNlNTRmNTNkMWRiYzJmN2NhZGE4YjFmLi40OGNjOWI4NDhlNTQxN2Fj
NzlmYTY1MDE5ZTQ4NzA1ZTE3MTI3YTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0
YWlsc0VsZW1lbnQuY3BwCkBAIC05MCwxMSArOTAsMTEgQEAgcHJpdmF0ZToKIAogUmVmPERldGFp
bHNTdW1tYXJ5RWxlbWVudD4gRGV0YWlsc1N1bW1hcnlFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQm
IGRvY3VtZW50KQogewotICAgIFJlZlB0cjxIVE1MU3VtbWFyeUVsZW1lbnQ+IHN1bW1hcnkgPSBI
VE1MU3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZShzdW1tYXJ5VGFnLCBkb2N1bWVudCk7CisgICAgUmVm
PEhUTUxTdW1tYXJ5RWxlbWVudD4gc3VtbWFyeSA9IEhUTUxTdW1tYXJ5RWxlbWVudDo6Y3JlYXRl
KHN1bW1hcnlUYWcsIGRvY3VtZW50KTsKICAgICBzdW1tYXJ5LT5hcHBlbmRDaGlsZChUZXh0Ojpj
cmVhdGUoZG9jdW1lbnQsIGRlZmF1bHREZXRhaWxzU3VtbWFyeVRleHQoKSksIEFTU0VSVF9OT19F
WENFUFRJT04pOwogCiAgICAgUmVmPERldGFpbHNTdW1tYXJ5RWxlbWVudD4gZGV0YWlsc1N1bW1h
cnkgPSBhZG9wdFJlZigqbmV3IERldGFpbHNTdW1tYXJ5RWxlbWVudChkb2N1bWVudCkpOwotICAg
IGRldGFpbHNTdW1tYXJ5LT5hcHBlbmRDaGlsZChzdW1tYXJ5KTsKKyAgICBkZXRhaWxzU3VtbWFy
eS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHN1bW1hcnkpKTsKICAgICByZXR1cm4gZGV0YWlsc1N1
bW1hcnk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKaW5kZXggNTIwY2UwM2U3
MGNjN2FkNzg2Y2I1MzdhNzczMDk5N2Y4NjIzYzM1ZS4uMDZkMGFjZTllZjY0NGM0N2Y2YWU2Mjdj
NWJlMmFmOTAyM2VmYmQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKQEAgLTU4
NCw5ICs1ODQsOSBAQCB2b2lkIEhUTUxFbGVtZW50OjpzZXRJbm5lclRleHQoY29uc3QgU3RyaW5n
JiB0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKIAogICAgIC8vIEFkZCB0ZXh0IG5vZGVzIGFuZCA8
YnI+IGVsZW1lbnRzLgogICAgIGVjID0gMDsKLSAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4g
ZnJhZ21lbnQgPSB0ZXh0VG9GcmFnbWVudCh0ZXh0LCBlYyk7CisgICAgUmVmPERvY3VtZW50RnJh
Z21lbnQ+IGZyYWdtZW50ID0gdGV4dFRvRnJhZ21lbnQodGV4dCwgZWMpOwogICAgIGlmICghZWMp
Ci0gICAgICAgIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudCgqdGhpcywgZnJhZ21lbnQucmVs
ZWFzZSgpLCBlYyk7CisgICAgICAgIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudCgqdGhpcywg
V1RGOjptb3ZlKGZyYWdtZW50KSwgZWMpOwogfQogCiB2b2lkIEhUTUxFbGVtZW50OjpzZXRPdXRl
clRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTYwOCwyMCAr
NjA4LDE2IEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnNldE91dGVyVGV4dChjb25zdCBTdHJpbmcmIHRl
eHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogCiAgICAgUmVmUHRyPE5vZGU+IHByZXYgPSBwcmV2aW91
c1NpYmxpbmcoKTsKICAgICBSZWZQdHI8Tm9kZT4gbmV4dCA9IG5leHRTaWJsaW5nKCk7Ci0gICAg
UmVmUHRyPE5vZGU+IG5ld0NoaWxkOwogICAgIGVjID0gMDsKICAgICAKICAgICAvLyBDb252ZXJ0
IHRleHQgdG8gZnJhZ21lbnQgd2l0aCA8YnI+IHRhZ3MgaW5zdGVhZCBvZiBsaW5lYnJlYWtzIGlm
IG5lZWRlZC4KLSAgICBpZiAodGV4dC5jb250YWlucygnXHInKSB8fCB0ZXh0LmNvbnRhaW5zKCdc
bicpKQotICAgICAgICBuZXdDaGlsZCA9IHRleHRUb0ZyYWdtZW50KHRleHQsIGVjKTsKLSAgICBl
bHNlCi0gICAgICAgIG5ld0NoaWxkID0gVGV4dDo6Y3JlYXRlKGRvY3VtZW50KCksIHRleHQpOwor
ICAgIFJlZjxOb2RlPiBuZXdDaGlsZCA9IHRleHQuY29udGFpbnMoJ1xyJykgfHwgdGV4dC5jb250
YWlucygnXG4nKSA/IFJlZjxOb2RlPih0ZXh0VG9GcmFnbWVudCh0ZXh0LCBlYykpIDogUmVmPE5v
ZGU+KFRleHQ6OmNyZWF0ZShkb2N1bWVudCgpLCB0ZXh0KSk7CiAKICAgICBpZiAoIXBhcmVudE5v
ZGUoKSkKICAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAgICAgaWYgKGVjKQog
ICAgICAgICByZXR1cm47Ci0gICAgcGFyZW50LT5yZXBsYWNlQ2hpbGQobmV3Q2hpbGQucmVsZWFz
ZSgpLCB0aGlzLCBlYyk7CisgICAgcGFyZW50LT5yZXBsYWNlQ2hpbGQoV1RGOjptb3ZlKG5ld0No
aWxkKSwgKnRoaXMsIGVjKTsKIAogICAgIFJlZlB0cjxOb2RlPiBub2RlID0gbmV4dCA/IG5leHQt
PnByZXZpb3VzU2libGluZygpIDogbnVsbHB0cjsKICAgICBpZiAoIWVjICYmIGlzPFRleHQ+KG5v
ZGUuZ2V0KCkpKQpAQCAtNjMwLDcgKzYyNiw3IEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnNldE91dGVy
VGV4dChjb25zdCBTdHJpbmcmIHRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICBtZXJn
ZVdpdGhOZXh0VGV4dE5vZGUoZG93bmNhc3Q8VGV4dD4oKnByZXYpLCBlYyk7CiB9CiAKLU5vZGUq
IEhUTUxFbGVtZW50OjppbnNlcnRBZGphY2VudChjb25zdCBTdHJpbmcmIHdoZXJlLCBOb2RlKiBu
ZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCitOb2RlKiBIVE1MRWxlbWVudDo6aW5zZXJ0QWRq
YWNlbnQoY29uc3QgU3RyaW5nJiB3aGVyZSwgUmVmPE5vZGU+JiYgbmV3Q2hpbGQsIEV4Y2VwdGlv
bkNvZGUmIGVjKQogewogICAgIC8vIEluIEludGVybmV0IEV4cGxvcmVyIGlmIHRoZSBlbGVtZW50
IGhhcyBubyBwYXJlbnQgYW5kIHdoZXJlIGlzICJiZWZvcmVCZWdpbiIgb3IgImFmdGVyRW5kIiwK
ICAgICAvLyBhIGRvY3VtZW50IGZyYWdtZW50IGlzIGNyZWF0ZWQgYW5kIHRoZSBlbGVtZW50cyBh
cHBlbmRlZCBpbiB0aGUgY29ycmVjdCBvcmRlci4gVGhpcyBkb2N1bWVudApAQCAtNjQxLDE4ICs2
MzcsMTggQEAgTm9kZSogSFRNTEVsZW1lbnQ6Omluc2VydEFkamFjZW50KGNvbnN0IFN0cmluZyYg
d2hlcmUsIE5vZGUqIG5ld0NoaWxkLCBFeGNlcHRpb24KIAogICAgIGlmIChlcXVhbElnbm9yaW5n
Q2FzZSh3aGVyZSwgImJlZm9yZUJlZ2luIikpIHsKICAgICAgICAgQ29udGFpbmVyTm9kZSogcGFy
ZW50ID0gdGhpcy0+cGFyZW50Tm9kZSgpOwotICAgICAgICByZXR1cm4gKHBhcmVudCAmJiBwYXJl
bnQtPmluc2VydEJlZm9yZShuZXdDaGlsZCwgdGhpcywgZWMpKSA/IG5ld0NoaWxkIDogbnVsbHB0
cjsKKyAgICAgICAgcmV0dXJuIChwYXJlbnQgJiYgcGFyZW50LT5pbnNlcnRCZWZvcmUobmV3Q2hp
bGQuY29weVJlZigpLCB0aGlzLCBlYykpID8gbmV3Q2hpbGQucHRyKCkgOiBudWxscHRyOwogICAg
IH0KIAogICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh3aGVyZSwgImFmdGVyQmVnaW4iKSkKLSAg
ICAgICAgcmV0dXJuIGluc2VydEJlZm9yZShuZXdDaGlsZCwgZmlyc3RDaGlsZCgpLCBlYykgPyBu
ZXdDaGlsZCA6IG51bGxwdHI7CisgICAgICAgIHJldHVybiBpbnNlcnRCZWZvcmUobmV3Q2hpbGQu
Y29weVJlZigpLCBmaXJzdENoaWxkKCksIGVjKSA/IG5ld0NoaWxkLnB0cigpIDogbnVsbHB0cjsK
IAogICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh3aGVyZSwgImJlZm9yZUVuZCIpKQotICAgICAg
ICByZXR1cm4gYXBwZW5kQ2hpbGQobmV3Q2hpbGQsIGVjKSA/IG5ld0NoaWxkIDogbnVsbHB0cjsK
KyAgICAgICAgcmV0dXJuIGFwcGVuZENoaWxkKG5ld0NoaWxkLmNvcHlSZWYoKSwgZWMpID8gbmV3
Q2hpbGQucHRyKCkgOiBudWxscHRyOwogCiAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHdoZXJl
LCAiYWZ0ZXJFbmQiKSkgewogICAgICAgICBDb250YWluZXJOb2RlKiBwYXJlbnQgPSB0aGlzLT5w
YXJlbnROb2RlKCk7Ci0gICAgICAgIHJldHVybiAocGFyZW50ICYmIHBhcmVudC0+aW5zZXJ0QmVm
b3JlKG5ld0NoaWxkLCBuZXh0U2libGluZygpLCBlYykpID8gbmV3Q2hpbGQgOiBudWxscHRyOwor
ICAgICAgICByZXR1cm4gKHBhcmVudCAmJiBwYXJlbnQtPmluc2VydEJlZm9yZShuZXdDaGlsZC5j
b3B5UmVmKCksIG5leHRTaWJsaW5nKCksIGVjKSkgPyBuZXdDaGlsZC5wdHIoKSA6IG51bGxwdHI7
CiAgICAgfQogICAgIAogICAgIC8vIElFIHRocm93cyBDT00gRXhjZXB0aW9uIEVfSU5WQUxJREFS
RzsgdGhpcyBpcyB0aGUgYmVzdCBET00gZXhjZXB0aW9uIGFsdGVybmF0aXZlLgpAQCAtNjY4LDcg
KzY2NCw3IEBAIEVsZW1lbnQqIEhUTUxFbGVtZW50OjppbnNlcnRBZGphY2VudEVsZW1lbnQoY29u
c3QgU3RyaW5nJiB3aGVyZSwgRWxlbWVudCogbmV3Q2hpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIH0KIAotICAgIE5vZGUqIHJldHVyblZhbHVlID0gaW5zZXJ0QWRqYWNlbnQod2hlcmUs
IG5ld0NoaWxkLCBlYyk7CisgICAgTm9kZSogcmV0dXJuVmFsdWUgPSBpbnNlcnRBZGphY2VudCh3
aGVyZSwgKm5ld0NoaWxkLCBlYyk7CiAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJ
T04oIXJldHVyblZhbHVlIHx8IGlzPEVsZW1lbnQ+KCpyZXR1cm5WYWx1ZSkpOwogICAgIHJldHVy
biBkb3duY2FzdDxFbGVtZW50PihyZXR1cm5WYWx1ZSk7IAogfQpAQCAtNjk5LDEzICs2OTUsMTIg
QEAgdm9pZCBIVE1MRWxlbWVudDo6aW5zZXJ0QWRqYWNlbnRIVE1MKGNvbnN0IFN0cmluZyYgd2hl
cmUsIGNvbnN0IFN0cmluZyYgbWFya3VwLAogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBm
cmFnbWVudCA9IGNyZWF0ZUZyYWdtZW50Rm9ySW5uZXJPdXRlckhUTUwobWFya3VwLCBjb250ZXh0
RWxlbWVudCwgQWxsb3dTY3JpcHRpbmdDb250ZW50LCBlYyk7CiAgICAgaWYgKCFmcmFnbWVudCkK
ICAgICAgICAgcmV0dXJuOwotICAgIGluc2VydEFkamFjZW50KHdoZXJlLCBmcmFnbWVudC5nZXQo
KSwgZWMpOworICAgIGluc2VydEFkamFjZW50KHdoZXJlLCBmcmFnbWVudC5yZWxlYXNlTm9uTnVs
bCgpLCBlYyk7CiB9CiAKIHZvaWQgSFRNTEVsZW1lbnQ6Omluc2VydEFkamFjZW50VGV4dChjb25z
dCBTdHJpbmcmIHdoZXJlLCBjb25zdCBTdHJpbmcmIHRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ewotICAgIFJlZlB0cjxUZXh0PiB0ZXh0Tm9kZSA9IGRvY3VtZW50KCkuY3JlYXRlVGV4dE5vZGUo
dGV4dCk7Ci0gICAgaW5zZXJ0QWRqYWNlbnQod2hlcmUsIHRleHROb2RlLmdldCgpLCBlYyk7Cisg
ICAgaW5zZXJ0QWRqYWNlbnQod2hlcmUsIGRvY3VtZW50KCkuY3JlYXRlVGV4dE5vZGUodGV4dCks
IGVjKTsKIH0KIAogdm9pZCBIVE1MRWxlbWVudDo6YXBwbHlBbGlnbm1lbnRBdHRyaWJ1dGVUb1N0
eWxlKGNvbnN0IEF0b21pY1N0cmluZyYgYWxpZ25tZW50LCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVz
JiBzdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAppbmRleCAzMGUzNzc1YTAwNGUzMWJl
YWU4MzVjZjY5MGNiNDA5YjFkZmViNzdhLi43MGQ0OTYxY2VkMmRjZTk2ZDQ1NTRlYzE2NjY5MGQw
ZDg1YzA2M2ViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCkBAIC0xMzAsNyArMTMwLDcg
QEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgSFRNTEZvcm1FbGVtZW50KiB2aXJ0dWFsRm9ybSgp
IGNvbnN0OwogCi0gICAgTm9kZSogaW5zZXJ0QWRqYWNlbnQoY29uc3QgU3RyaW5nJiB3aGVyZSwg
Tm9kZSogbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBOb2RlKiBpbnNlcnRBZGphY2Vu
dChjb25zdCBTdHJpbmcmIHdoZXJlLCBSZWY8Tm9kZT4mJiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29k
ZSYpOwogICAgIFJlZjxEb2N1bWVudEZyYWdtZW50PiB0ZXh0VG9GcmFnbWVudChjb25zdCBTdHJp
bmcmLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICB2b2lkIGRpckF0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgQXRvbWljU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNw
cAppbmRleCBiMmEyNzdhNTU5YmEzNWQxZjM5NTVmNDI4M2M3YzgyOTEzNGIwYTA2Li5hNGE3M2Nh
NmI2MDk3ZGM3OGJkNjlmM2JiNDEyMWU0ZDI3ZGVkNGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEltYWdlRWxlbWVudC5jcHAKQEAgLTUwNCw3ICs1MDQsNyBAQCB2b2lkIEhUTUxJbWFnZUVs
ZW1lbnQ6OmNyZWF0ZUltYWdlQ29udHJvbHMoKQogICAgIGlmICghaW1hZ2VDb250cm9scykKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCgpLmFwcGVuZENo
aWxkKGltYWdlQ29udHJvbHMpOworICAgIGVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKS5hcHBl
bmRDaGlsZChpbWFnZUNvbnRyb2xzLnJlbGVhc2VOb25OdWxsKCkpOwogCiAgICAgYXV0byogcmVu
ZGVyT2JqZWN0ID0gcmVuZGVyZXIoKTsKICAgICBpZiAoIXJlbmRlck9iamVjdCkKQEAgLTUyMSw3
ICs1MjEsNyBAQCB2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OmRlc3Ryb3lJbWFnZUNvbnRyb2xzKCkK
IAogICAgIGlmIChOb2RlKiBub2RlID0gc2hhZG93Um9vdC0+Zmlyc3RDaGlsZCgpKSB7CiAgICAg
ICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG5vZGUtPmlzSW1hZ2VDb250cm9s
c1Jvb3RFbGVtZW50KCkpOwotICAgICAgICBzaGFkb3dSb290LT5yZW1vdmVDaGlsZChub2RlKTsK
KyAgICAgICAgc2hhZG93Um9vdC0+cmVtb3ZlQ2hpbGQoKm5vZGUpOwogICAgIH0KIAogICAgIGF1
dG8qIHJlbmRlck9iamVjdCA9IHJlbmRlcmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtl
eWdlbkVsZW1lbnQuY3BwCmluZGV4IGU3ZDkxNDgyNWM1ZWI4MTE0ZDliMmVlYTFmZGNmMDMwMjZh
YTBiYTIuLjRhNjNiMDBhNGE0MTM0YjU4Y2YyNDVmZWI2OTJmOGE0NjYxNmJmMTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCkBAIC01OCw3ICs1OCw3IEBAIHBy
b3RlY3RlZDoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBSZWZQdHI8RWxlbWVudD4g
Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0
RG9jdW1lbnQpIG92ZXJyaWRlCisgICAgdmlydHVhbCBSZWY8RWxlbWVudD4gY2xvbmVFbGVtZW50
V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQpIG92
ZXJyaWRlCiAgICAgewogICAgICAgICByZXR1cm4gY3JlYXRlKHRhcmdldERvY3VtZW50KTsKICAg
ICB9CkBAIC03MywxNCArNzMsMTQgQEAgaW5saW5lIEhUTUxLZXlnZW5FbGVtZW50OjpIVE1MS2V5
Z2VuRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWUKICAgICBWZWN0
b3I8U3RyaW5nPiBrZXlzOwogICAgIGdldFN1cHBvcnRlZEtleVNpemVzKGtleXMpOwogCi0gICAg
UmVmUHRyPEhUTUxTZWxlY3RFbGVtZW50PiBzZWxlY3QgPSBLZXlnZW5TZWxlY3RFbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQpOworICAgIFJlZjxIVE1MU2VsZWN0RWxlbWVudD4gc2VsZWN0ID0gS2V5
Z2VuU2VsZWN0RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGtleXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgUmVmUHRyPEhUTUxPcHRpb25FbGVt
ZW50PiBvcHRpb24gPSBIVE1MT3B0aW9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICAg
ICAgc2VsZWN0LT5hcHBlbmRDaGlsZChvcHRpb24sIElHTk9SRV9FWENFUFRJT04pOworICAgICAg
ICBSZWY8SFRNTE9wdGlvbkVsZW1lbnQ+IG9wdGlvbiA9IEhUTUxPcHRpb25FbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQpOworICAgICAgICBzZWxlY3QtPmFwcGVuZENoaWxkKG9wdGlvbi5jb3B5UmVm
KCksIElHTk9SRV9FWENFUFRJT04pOwogICAgICAgICBvcHRpb24tPmFwcGVuZENoaWxkKFRleHQ6
OmNyZWF0ZShkb2N1bWVudCwga2V5c1tpXSksIElHTk9SRV9FWENFUFRJT04pOwogICAgIH0KIAot
ICAgIGVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKS5hcHBlbmRDaGlsZChzZWxlY3QsIElHTk9S
RV9FWENFUFRJT04pOworICAgIGVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKS5hcHBlbmRDaGls
ZChXVEY6Om1vdmUoc2VsZWN0KSwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CiAKIFJlZjxIVE1MS2V5
Z2VuRWxlbWVudD4gSFRNTEtleWdlbkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCmluZGV4IDIyYjJmMzk4MWUzOTUy
Mzc5M2Y1ZTJiMzFlNmNjNWQyOGJmYTc3ODAuLmU1ZTNkZTAzNjgzODE1NDVlYTc4NTBjMDhmOTZh
N2YxYmMwNzU5OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcApA
QCAtMjI5LDE2ICsyMjksMTYgQEAgdm9pZCBIVE1MTWV0ZXJFbGVtZW50OjpkaWRBZGRVc2VyQWdl
bnRTaGFkb3dSb290KFNoYWRvd1Jvb3QqIHJvb3QpCiB7CiAgICAgQVNTRVJUKCFtX3ZhbHVlKTsK
IAotICAgIFJlZlB0cjxNZXRlcklubmVyRWxlbWVudD4gaW5uZXIgPSBNZXRlcklubmVyRWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50KCkpOwotICAgIHJvb3QtPmFwcGVuZENoaWxkKGlubmVyKTsKKyAg
ICBSZWY8TWV0ZXJJbm5lckVsZW1lbnQ+IGlubmVyID0gTWV0ZXJJbm5lckVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCgpKTsKKyAgICByb290LT5hcHBlbmRDaGlsZChpbm5lci5jb3B5UmVmKCkpOwog
Ci0gICAgUmVmUHRyPE1ldGVyQmFyRWxlbWVudD4gYmFyID0gTWV0ZXJCYXJFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQoKSk7CisgICAgUmVmPE1ldGVyQmFyRWxlbWVudD4gYmFyID0gTWV0ZXJCYXJF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CiAgICAgbV92YWx1ZSA9IE1ldGVyVmFsdWVFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CiAgICAgbV92YWx1ZS0+c2V0V2lkdGhQZXJjZW50YWdl
KDApOwogICAgIG1fdmFsdWUtPnVwZGF0ZVBzZXVkbygpOwotICAgIGJhci0+YXBwZW5kQ2hpbGQo
bV92YWx1ZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgYmFyLT5hcHBlbmRDaGlsZCgqbV92
YWx1ZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKLSAgICBpbm5lci0+YXBwZW5kQ2hpbGQoYmFy
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBpbm5lci0+YXBwZW5kQ2hpbGQoV1RGOjptb3Zl
KGJhciksIEFTU0VSVF9OT19FWENFUFRJT04pOwogfQogCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAppbmRleCAyZGZmZjI2MzUzZWY5MWY0
ODEwY2UxODc3NzA2YWRjOTUwZmMzNmFlLi5lZDljYWVhMTVhNjIxMzM4MmMyMGQxZGY2NzRjYWE4
ZTJhOWYyMmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcApA
QCAtNzEsMTIgKzcxLDEyIEBAIFJlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gSFRNTE9wdGlvbkVs
ZW1lbnQ6OmNyZWF0ZUZvckpTQ29uc3RydWN0b3IoRG9jdW1lbnQmIGRvCiB7CiAgICAgUmVmUHRy
PEhUTUxPcHRpb25FbGVtZW50PiBlbGVtZW50ID0gYWRvcHRSZWYobmV3IEhUTUxPcHRpb25FbGVt
ZW50KG9wdGlvblRhZywgZG9jdW1lbnQpKTsKIAotICAgIFJlZlB0cjxUZXh0PiB0ZXh0ID0gVGV4
dDo6Y3JlYXRlKGRvY3VtZW50LCBkYXRhLmlzTnVsbCgpID8gIiIgOiBkYXRhKTsKKyAgICBSZWY8
VGV4dD4gdGV4dCA9IFRleHQ6OmNyZWF0ZShkb2N1bWVudCwgZGF0YS5pc051bGwoKSA/ICIiIDog
ZGF0YSk7CiAKICAgICBlYyA9IDA7Ci0gICAgZWxlbWVudC0+YXBwZW5kQ2hpbGQodGV4dC5yZWxl
YXNlKCksIGVjKTsKKyAgICBlbGVtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUodGV4dCksIGVj
KTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIAogICAgIGlmICghdmFsdWUuaXNOdWxsKCkpCiAgICAgICAgIGVsZW1lbnQtPnNldFZhbHVl
KHZhbHVlKTsKQEAgLTg0LDcgKzg0LDcgQEAgUmVmUHRyPEhUTUxPcHRpb25FbGVtZW50PiBIVE1M
T3B0aW9uRWxlbWVudDo6Y3JlYXRlRm9ySlNDb25zdHJ1Y3RvcihEb2N1bWVudCYgZG8KICAgICAg
ICAgZWxlbWVudC0+c2V0QXR0cmlidXRlKHNlbGVjdGVkQXR0ciwgZW1wdHlBdG9tKTsKICAgICBl
bGVtZW50LT5zZXRTZWxlY3RlZChzZWxlY3RlZCk7CiAKLSAgICByZXR1cm4gZWxlbWVudC5yZWxl
YXNlKCk7CisgICAgcmV0dXJuIGVsZW1lbnQ7CiB9CiAKIGJvb2wgSFRNTE9wdGlvbkVsZW1lbnQ6
OmlzRm9jdXNhYmxlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFByb2dyZXNzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0Vs
ZW1lbnQuY3BwCmluZGV4IDg3ZjBlMzcwY2EwMmMzYWM5YmIxNDZmYjliZDA3NmViYjRhNDg1MzUu
LmRiN2QwNmE4Yjc5MzA1MjNlYWM2OWM5MDdlNDdkYzQ4Mjk3MzJjMTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcApAQCAtMTQ5LDE2ICsxNDksMTYgQEAg
dm9pZCBIVE1MUHJvZ3Jlc3NFbGVtZW50OjpkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KFNoYWRv
d1Jvb3QqIHJvb3QpCiB7CiAgICAgQVNTRVJUKCFtX3ZhbHVlKTsKIAotICAgIFJlZlB0cjxQcm9n
cmVzc0lubmVyRWxlbWVudD4gaW5uZXIgPSBQcm9ncmVzc0lubmVyRWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50KCkpOwotICAgIHJvb3QtPmFwcGVuZENoaWxkKGlubmVyKTsKKyAgICBSZWY8UHJvZ3Jl
c3NJbm5lckVsZW1lbnQ+IGlubmVyID0gUHJvZ3Jlc3NJbm5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCgpKTsKKyAgICByb290LT5hcHBlbmRDaGlsZChpbm5lci5jb3B5UmVmKCkpOwogCi0gICAg
UmVmUHRyPFByb2dyZXNzQmFyRWxlbWVudD4gYmFyID0gUHJvZ3Jlc3NCYXJFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQoKSk7Ci0gICAgUmVmUHRyPFByb2dyZXNzVmFsdWVFbGVtZW50PiB2YWx1ZSA9
IFByb2dyZXNzVmFsdWVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7Ci0gICAgbV92YWx1ZSA9
IHZhbHVlLmdldCgpOworICAgIFJlZjxQcm9ncmVzc0JhckVsZW1lbnQ+IGJhciA9IFByb2dyZXNz
QmFyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOworICAgIFJlZjxQcm9ncmVzc1ZhbHVlRWxl
bWVudD4gdmFsdWUgPSBQcm9ncmVzc1ZhbHVlRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwor
ICAgIG1fdmFsdWUgPSB2YWx1ZS5wdHIoKTsKICAgICBtX3ZhbHVlLT5zZXRXaWR0aFBlcmNlbnRh
Z2UoSFRNTFByb2dyZXNzRWxlbWVudDo6SW5kZXRlcm1pbmF0ZVBvc2l0aW9uICogMTAwKTsKLSAg
ICBiYXItPmFwcGVuZENoaWxkKG1fdmFsdWUsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIGJh
ci0+YXBwZW5kQ2hpbGQoKm1fdmFsdWUsIEFTU0VSVF9OT19FWENFUFRJT04pOwogCi0gICAgaW5u
ZXItPmFwcGVuZENoaWxkKGJhciwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgaW5uZXItPmFw
cGVuZENoaWxkKFdURjo6bW92ZShiYXIpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIH0KIAogYm9v
bCBIVE1MUHJvZ3Jlc3NFbGVtZW50OjpzaG91bGRBcHBlYXJJbmRldGVybWluYXRlKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggNjk1MTE0NjY4
MDQ5MTRiN2FiMjA5ZmJlOTYxYzViZjgzMmUxMDdhNy4uZTEzYTVjZGRjY2EyY2IzYjc1NmE4ZDNh
NTdlMjNmODBhOWI0M2U0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2Ny
aXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVu
dC5jcHAKQEAgLTE2OSw5ICsxNjksOSBAQCB2b2lkIEhUTUxTY3JpcHRFbGVtZW50OjpkaXNwYXRj
aExvYWRFdmVudCgpCiAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMo
KS5sb2FkRXZlbnQsIGZhbHNlLCBmYWxzZSkpOwogfQogCi1SZWZQdHI8RWxlbWVudD4gSFRNTFNj
cmlwdEVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9j
dW1lbnQmIHRhcmdldERvY3VtZW50KQorUmVmPEVsZW1lbnQ+IEhUTUxTY3JpcHRFbGVtZW50Ojpj
bG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50JiB0YXJnZXRE
b2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxTY3JpcHRFbGVtZW50KHRh
Z1FOYW1lKCksIHRhcmdldERvY3VtZW50LCBmYWxzZSwgYWxyZWFkeVN0YXJ0ZWQoKSkpOworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxTY3JpcHRFbGVtZW50KHRhZ1FOYW1lKCksIHRhcmdl
dERvY3VtZW50LCBmYWxzZSwgYWxyZWFkeVN0YXJ0ZWQoKSkpOwogfQogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKaW5kZXggZTM5YzEwY2E1ZTg2YzM2NmE1MzhkMTdj
NjY0NGIzYTI0ZDEzODIwOS4uMzEyYzY2MjZlOGI4MzE0ZTg1ZTJkZjY4N2RiZjA5ZjJiMmZlMzdi
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaApAQCAtNjUsNyArNjUs
NyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoTG9hZEV2ZW50KCkgb3Zl
cnJpZGU7CiAKLSAgICB2aXJ0dWFsIFJlZlB0cjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRob3V0
QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBS
ZWY8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1
bWVudCYpIG92ZXJyaWRlOwogfTsKIAogfSAvL25hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxTZWxlY3RFbGVtZW50LmNwcAppbmRleCBlYjczOTQ1MzVkNDk2MzUzNDZjNjU4MmQxNzU5
NmQzZDQzZjA3OTVlLi40ZjEwNDU4MDEzMjI3M2ZkZWRmMTI1NzhkNGIxYmI2MTBlY2NhZjA1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcApAQCAtMjI3LDcgKzIy
Nyw3IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmFkZChIVE1MRWxlbWVudCogZWxlbWVudCwg
SFRNTEVsZW1lbnQqIGJlZm9yZUVsZW1lbnQsIEV4CiAgICAgLy8gTWFrZSBzdXJlIHRoZSBlbGVt
ZW50IGlzIHJlZidkIGFuZCBkZXJlZidkIHNvIHdlIGRvbid0IGxlYWsgaXQuCiAgICAgUmVmPEhU
TUxFbGVtZW50PiBwcm90ZWN0TmV3Q2hpbGQoKmVsZW1lbnQpOwogCi0gICAgaW5zZXJ0QmVmb3Jl
KGVsZW1lbnQsIGJlZm9yZUVsZW1lbnQsIGVjKTsKKyAgICBpbnNlcnRCZWZvcmUoKmVsZW1lbnQs
IGJlZm9yZUVsZW1lbnQsIGVjKTsKICAgICB1cGRhdGVWYWxpZGl0eSgpOwogfQogCkBAIC00ODYs
MTIgKzQ4NiwxMiBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzZXRMZW5ndGgodW5zaWduZWQg
bmV3TGVuLCBFeGNlcHRpb25Db2RlJiBlYykKIAogICAgICAgICAvLyBSZW1vdmluZyBjaGlsZHJl
biBmaXJlcyBtdXRhdGlvbiBldmVudHMsIHdoaWNoIG1pZ2h0IG11dGF0ZSB0aGUgRE9NIGZ1cnRo
ZXIsIHNvIHdlIGZpcnN0IGNvcHkgb3V0IGEgbGlzdAogICAgICAgICAvLyBvZiBlbGVtZW50cyB0
aGF0IHdlIGludGVuZCB0byByZW1vdmUgdGhlbiBhdHRlbXB0IHRvIHJlbW92ZSB0aGVtIG9uZSBh
dCBhIHRpbWUuCi0gICAgICAgIFZlY3RvcjxSZWZQdHI8RWxlbWVudD4+IGl0ZW1zVG9SZW1vdmU7
CisgICAgICAgIFZlY3RvcjxSZWY8RWxlbWVudD4+IGl0ZW1zVG9SZW1vdmU7CiAgICAgICAgIHNp
emVfdCBvcHRpb25JbmRleCA9IDA7CiAgICAgICAgIGZvciAoYXV0byYgaXRlbSA6IGl0ZW1zKSB7
CiAgICAgICAgICAgICBpZiAoaXM8SFRNTE9wdGlvbkVsZW1lbnQ+KCppdGVtKSAmJiBvcHRpb25J
bmRleCsrID49IG5ld0xlbikgewogICAgICAgICAgICAgICAgIEFTU0VSVChpdGVtLT5wYXJlbnRO
b2RlKCkpOwotICAgICAgICAgICAgICAgIGl0ZW1zVG9SZW1vdmUuYXBwZW5kKGl0ZW0pOworICAg
ICAgICAgICAgICAgIGl0ZW1zVG9SZW1vdmUuYXBwZW5kKCppdGVtKTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcAppbmRl
eCBiOTI4ZTBkN2E0NGNlNjVkOTgxNzUzYjAzMTE2YTc1NjZjNjQxMGNiLi40ZmE3NjMxODNkNGVj
ODYwZjQ2OTM0YWFjZWJlYjk3YTBmMWZiODkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRh
YmxlRWxlbWVudC5jcHAKQEAgLTgwLDcgKzgwLDggQEAgSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQq
IEhUTUxUYWJsZUVsZW1lbnQ6OmNhcHRpb24oKSBjb25zdAogdm9pZCBIVE1MVGFibGVFbGVtZW50
OjpzZXRDYXB0aW9uKFBhc3NSZWZQdHI8SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQ+IG5ld0NhcHRp
b24sIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGRlbGV0ZUNhcHRpb24oKTsKLSAgICBpbnNl
cnRCZWZvcmUobmV3Q2FwdGlvbiwgZmlyc3RDaGlsZCgpLCBlYyk7CisgICAgaWYgKG5ld0NhcHRp
b24pCisgICAgICAgIGluc2VydEJlZm9yZSgqbmV3Q2FwdGlvbiwgZmlyc3RDaGlsZCgpLCBlYyk7
CiB9CiAKIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KiBIVE1MVGFibGVFbGVtZW50Ojp0SGVhZCgp
IGNvbnN0CkBAIC0xMDEsNyArMTAyLDggQEAgdm9pZCBIVE1MVGFibGVFbGVtZW50OjpzZXRUSGVh
ZChQYXNzUmVmUHRyPEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50PiBuZXdIZWFkLCBFeGMKICAgICAg
ICAgaWYgKGNoaWxkLT5pc0VsZW1lbnROb2RlKCkgJiYgIWNoaWxkLT5oYXNUYWdOYW1lKGNhcHRp
b25UYWcpICYmICFjaGlsZC0+aGFzVGFnTmFtZShjb2xncm91cFRhZykpCiAgICAgICAgICAgICBi
cmVhazsKIAotICAgIGluc2VydEJlZm9yZShuZXdIZWFkLCBjaGlsZCwgZWMpOworICAgIGlmIChu
ZXdIZWFkKQorICAgICAgICBpbnNlcnRCZWZvcmUoKm5ld0hlYWQsIGNoaWxkLCBlYyk7CiB9CiAK
IEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KiBIVE1MVGFibGVFbGVtZW50Ojp0Rm9vdCgpIGNvbnN0
CkBAIC0xMjIsNyArMTI0LDggQEAgdm9pZCBIVE1MVGFibGVFbGVtZW50OjpzZXRURm9vdChQYXNz
UmVmUHRyPEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50PiBuZXdGb290LCBFeGMKICAgICAgICAgaWYg
KGNoaWxkLT5pc0VsZW1lbnROb2RlKCkgJiYgIWNoaWxkLT5oYXNUYWdOYW1lKGNhcHRpb25UYWcp
ICYmICFjaGlsZC0+aGFzVGFnTmFtZShjb2xncm91cFRhZykgJiYgIWNoaWxkLT5oYXNUYWdOYW1l
KHRoZWFkVGFnKSkKICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgaW5zZXJ0QmVmb3JlKG5ld0Zv
b3QsIGNoaWxkLCBlYyk7CisgICAgaWYgKG5ld0Zvb3QpCisgICAgICAgIGluc2VydEJlZm9yZSgq
bmV3Rm9vdCwgY2hpbGQsIGVjKTsKIH0KIAogUmVmUHRyPEhUTUxFbGVtZW50PiBIVE1MVGFibGVF
bGVtZW50OjpjcmVhdGVUSGVhZCgpCkBAIC0xMzYsNyArMTM5LDggQEAgUmVmUHRyPEhUTUxFbGVt
ZW50PiBIVE1MVGFibGVFbGVtZW50OjpjcmVhdGVUSGVhZCgpCiAKIHZvaWQgSFRNTFRhYmxlRWxl
bWVudDo6ZGVsZXRlVEhlYWQoKQogewotICAgIHJlbW92ZUNoaWxkKHRIZWFkKCksIElHTk9SRV9F
WENFUFRJT04pOworICAgIGlmIChhdXRvKiB0SGVhZCA9IHRoaXMtPnRIZWFkKCkpCisgICAgICAg
IHJlbW92ZUNoaWxkKCp0SGVhZCwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CiAKIFJlZlB0cjxIVE1M
RWxlbWVudD4gSFRNTFRhYmxlRWxlbWVudDo6Y3JlYXRlVEZvb3QoKQpAQCAtMTUwLDE1ICsxNTQs
MTYgQEAgUmVmUHRyPEhUTUxFbGVtZW50PiBIVE1MVGFibGVFbGVtZW50OjpjcmVhdGVURm9vdCgp
CiAKIHZvaWQgSFRNTFRhYmxlRWxlbWVudDo6ZGVsZXRlVEZvb3QoKQogewotICAgIHJlbW92ZUNo
aWxkKHRGb290KCksIElHTk9SRV9FWENFUFRJT04pOworICAgIGlmIChhdXRvKiB0Rm9vdCA9IHRo
aXMtPnRGb290KCkpCisgICAgICAgIHJlbW92ZUNoaWxkKCp0Rm9vdCwgSUdOT1JFX0VYQ0VQVElP
Tik7CiB9CiAKIFJlZlB0cjxIVE1MRWxlbWVudD4gSFRNTFRhYmxlRWxlbWVudDo6Y3JlYXRlVEJv
ZHkoKQogewotICAgIFJlZlB0cjxIVE1MVGFibGVTZWN0aW9uRWxlbWVudD4gYm9keSA9IEhUTUxU
YWJsZVNlY3Rpb25FbGVtZW50OjpjcmVhdGUodGJvZHlUYWcsIGRvY3VtZW50KCkpOwotICAgIE5v
ZGUqIHJlZmVyZW5jZUVsZW1lbnQgPSBsYXN0Qm9keSgpID8gbGFzdEJvZHkoKS0+bmV4dFNpYmxp
bmcoKSA6IDA7Ci0gICAgaW5zZXJ0QmVmb3JlKGJvZHksIHJlZmVyZW5jZUVsZW1lbnQsIEFTU0VS
VF9OT19FWENFUFRJT04pOwotICAgIHJldHVybiBib2R5OworICAgIFJlZjxIVE1MVGFibGVTZWN0
aW9uRWxlbWVudD4gYm9keSA9IEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50OjpjcmVhdGUodGJvZHlU
YWcsIGRvY3VtZW50KCkpOworICAgIE5vZGUqIHJlZmVyZW5jZUVsZW1lbnQgPSBsYXN0Qm9keSgp
ID8gbGFzdEJvZHkoKS0+bmV4dFNpYmxpbmcoKSA6IG51bGxwdHI7CisgICAgaW5zZXJ0QmVmb3Jl
KGJvZHkuY29weVJlZigpLCByZWZlcmVuY2VFbGVtZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsK
KyAgICByZXR1cm4gV1RGOjptb3ZlKGJvZHkpOwogfQogCiBSZWZQdHI8SFRNTEVsZW1lbnQ+IEhU
TUxUYWJsZUVsZW1lbnQ6OmNyZWF0ZUNhcHRpb24oKQpAQCAtMTcyLDcgKzE3Nyw4IEBAIFJlZlB0
cjxIVE1MRWxlbWVudD4gSFRNTFRhYmxlRWxlbWVudDo6Y3JlYXRlQ2FwdGlvbigpCiAKIHZvaWQg
SFRNTFRhYmxlRWxlbWVudDo6ZGVsZXRlQ2FwdGlvbigpCiB7Ci0gICAgcmVtb3ZlQ2hpbGQoY2Fw
dGlvbigpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBpZiAoYXV0byogY2FwdGlvbiA9IHRoaXMt
PmNhcHRpb24oKSkKKyAgICAgICAgcmVtb3ZlQ2hpbGQoKmNhcHRpb24sIElHTk9SRV9FWENFUFRJ
T04pOwogfQogCiBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCogSFRNTFRhYmxlRWxlbWVudDo6bGFz
dEJvZHkoKSBjb25zdApAQCAtMjE3LDIyICsyMjMsMjIgQEAgUmVmUHRyPEhUTUxFbGVtZW50PiBI
VE1MVGFibGVFbGVtZW50OjppbnNlcnRSb3coaW50IGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykK
ICAgICBlbHNlIHsKICAgICAgICAgcGFyZW50ID0gbGFzdEJvZHkoKTsKICAgICAgICAgaWYgKCFw
YXJlbnQpIHsKLSAgICAgICAgICAgIFJlZlB0cjxIVE1MVGFibGVTZWN0aW9uRWxlbWVudD4gbmV3
Qm9keSA9IEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50OjpjcmVhdGUodGJvZHlUYWcsIGRvY3VtZW50
KCkpOwotICAgICAgICAgICAgUmVmUHRyPEhUTUxUYWJsZVJvd0VsZW1lbnQ+IG5ld1JvdyA9IEhU
TUxUYWJsZVJvd0VsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKLSAgICAgICAgICAgIG5ld0Jv
ZHktPmFwcGVuZENoaWxkKG5ld1JvdywgZWMpOwotICAgICAgICAgICAgYXBwZW5kQ2hpbGQobmV3
Qm9keS5yZWxlYXNlKCksIGVjKTsKLSAgICAgICAgICAgIHJldHVybiBuZXdSb3c7CisgICAgICAg
ICAgICBSZWY8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+IG5ld0JvZHkgPSBIVE1MVGFibGVTZWN0
aW9uRWxlbWVudDo6Y3JlYXRlKHRib2R5VGFnLCBkb2N1bWVudCgpKTsKKyAgICAgICAgICAgIFJl
ZjxIVE1MVGFibGVSb3dFbGVtZW50PiBuZXdSb3cgPSBIVE1MVGFibGVSb3dFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQoKSk7CisgICAgICAgICAgICBuZXdCb2R5LT5hcHBlbmRDaGlsZChuZXdSb3cu
Y29weVJlZigpLCBlYyk7CisgICAgICAgICAgICBhcHBlbmRDaGlsZChXVEY6Om1vdmUobmV3Qm9k
eSksIGVjKTsKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om1vdmUobmV3Um93KTsKICAgICAgICAg
fQogICAgIH0KIAotICAgIFJlZlB0cjxIVE1MVGFibGVSb3dFbGVtZW50PiBuZXdSb3cgPSBIVE1M
VGFibGVSb3dFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7Ci0gICAgcGFyZW50LT5pbnNlcnRC
ZWZvcmUobmV3Um93LCByb3cuZ2V0KCksIGVjKTsKLSAgICByZXR1cm4gbmV3Um93OworICAgIFJl
ZjxIVE1MVGFibGVSb3dFbGVtZW50PiBuZXdSb3cgPSBIVE1MVGFibGVSb3dFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQoKSk7CisgICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobmV3Um93LmNvcHlSZWYo
KSwgcm93LmdldCgpLCBlYyk7CisgICAgcmV0dXJuIFdURjo6bW92ZShuZXdSb3cpOwogfQogCiB2
b2lkIEhUTUxUYWJsZUVsZW1lbnQ6OmRlbGV0ZVJvdyhpbnQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUm
IGVjKQogewotICAgIEhUTUxUYWJsZVJvd0VsZW1lbnQqIHJvdyA9IDA7CisgICAgSFRNTFRhYmxl
Um93RWxlbWVudCogcm93ID0gbnVsbHB0cjsKICAgICBpZiAoaW5kZXggPT0gLTEpCiAgICAgICAg
IHJvdyA9IEhUTUxUYWJsZVJvd3NDb2xsZWN0aW9uOjpsYXN0Um93KCp0aGlzKTsKICAgICBlbHNl
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuaWRsCmluZGV4IGEwYTFjNmIw
Mzc5YzEwNjYxMmQwZmY5ZmIzZTJhM2Y4YmRhNTM3YmEuLmYyNTZlYzI3YjhhMzg3NDE4ZTg2ZGM4
ODkxOTVhZjg2ZGQwYjYzMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRh
YmxlRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50
LmlkbApAQCAtMTksOSArMTksOSBAQAogICovCiAKIGludGVyZmFjZSBIVE1MVGFibGVFbGVtZW50
IDogSFRNTEVsZW1lbnQgewotICAgIFtTZXR0ZXJSYWlzZXNFeGNlcHRpb25dIGF0dHJpYnV0ZSBI
VE1MVGFibGVDYXB0aW9uRWxlbWVudCBjYXB0aW9uOwotICAgIFtTZXR0ZXJSYWlzZXNFeGNlcHRp
b25dIGF0dHJpYnV0ZSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCB0SGVhZDsKLSAgICBbU2V0dGVy
UmFpc2VzRXhjZXB0aW9uXSBhdHRyaWJ1dGUgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQgdEZvb3Q7
CisgICAgW1NldHRlclJhaXNlc0V4Y2VwdGlvbiwgU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1
dGUgSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQgY2FwdGlvbjsKKyAgICBbU2V0dGVyUmFpc2VzRXhj
ZXB0aW9uLCBTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBIVE1MVGFibGVTZWN0aW9uRWxl
bWVudCB0SGVhZDsKKyAgICBbU2V0dGVyUmFpc2VzRXhjZXB0aW9uLCBTdHJpY3RUeXBlQ2hlY2tp
bmddIGF0dHJpYnV0ZSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCB0Rm9vdDsKIAogICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBIVE1MQ29sbGVjdGlvbiByb3dzOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBIVE1MQ29sbGVjdGlvbiB0Qm9kaWVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGFibGVSb3dFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxl
Um93RWxlbWVudC5jcHAKaW5kZXggYzg3MjU5ZjVlY2I5NmQwYWE2MDQ4ZDRkMTRhZThiNjBmOTNi
NjhiNi4uOTVjNjkyOWUwMTAzYWQ5M2QxYjEwMDMxZjNlMTM2OWY5MTYwY2Q2OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuY3BwCkBAIC0xMjUsMjEgKzEyNSwy
MSBAQCBSZWZQdHI8SFRNTEVsZW1lbnQ+IEhUTUxUYWJsZVJvd0VsZW1lbnQ6Omluc2VydENlbGwo
aW50IGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYwogICAgIGludCBudW1DZWxscyA9IGNoaWxkcmVu
LT5sZW5ndGgoKTsKICAgICBpZiAoaW5kZXggPCAtMSB8fCBpbmRleCA+IG51bUNlbGxzKSB7CiAg
ICAgICAgIGVjID0gSU5ERVhfU0laRV9FUlI7Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBSZWZQdHI8SFRNTFRhYmxlQ2VsbEVsZW1lbnQ+
IGNlbGwgPSBIVE1MVGFibGVDZWxsRWxlbWVudDo6Y3JlYXRlKHRkVGFnLCBkb2N1bWVudCgpKTsK
KyAgICBSZWY8SFRNTFRhYmxlQ2VsbEVsZW1lbnQ+IGNlbGwgPSBIVE1MVGFibGVDZWxsRWxlbWVu
dDo6Y3JlYXRlKHRkVGFnLCBkb2N1bWVudCgpKTsKICAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4
ID49IG51bUNlbGxzKQotICAgICAgICBhcHBlbmRDaGlsZChjZWxsLCBlYyk7CisgICAgICAgIGFw
cGVuZENoaWxkKGNlbGwuY29weVJlZigpLCBlYyk7CiAgICAgZWxzZSB7CiAgICAgICAgIE5vZGUq
IG47CiAgICAgICAgIGlmIChpbmRleCA8IDEpCiAgICAgICAgICAgICBuID0gZmlyc3RDaGlsZCgp
OwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBuID0gY2hpbGRyZW4tPml0ZW0oaW5kZXgpOwot
ICAgICAgICBpbnNlcnRCZWZvcmUoY2VsbCwgbiwgZWMpOworICAgICAgICBpbnNlcnRCZWZvcmUo
Y2VsbC5jb3B5UmVmKCksIG4sIGVjKTsKICAgICB9Ci0gICAgcmV0dXJuIGNlbGw7CisgICAgcmV0
dXJuIFdURjo6bW92ZShjZWxsKTsKIH0KIAogdm9pZCBIVE1MVGFibGVSb3dFbGVtZW50OjpkZWxl
dGVDZWxsKGludCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC0xNTAsNyArMTUwLDcgQEAg
dm9pZCBIVE1MVGFibGVSb3dFbGVtZW50OjpkZWxldGVDZWxsKGludCBpbmRleCwgRXhjZXB0aW9u
Q29kZSYgZWMpCiAgICAgICAgIGluZGV4ID0gbnVtQ2VsbHMtMTsKICAgICBpZiAoaW5kZXggPj0g
MCAmJiBpbmRleCA8IG51bUNlbGxzKSB7CiAgICAgICAgIFJlZlB0cjxOb2RlPiBjZWxsID0gY2hp
bGRyZW4tPml0ZW0oaW5kZXgpOwotICAgICAgICBIVE1MRWxlbWVudDo6cmVtb3ZlQ2hpbGQoY2Vs
bC5nZXQoKSwgZWMpOworICAgICAgICBIVE1MRWxlbWVudDo6cmVtb3ZlQ2hpbGQoKmNlbGwsIGVj
KTsKICAgICB9IGVsc2UKICAgICAgICAgZWMgPSBJTkRFWF9TSVpFX0VSUjsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAKaW5kZXggOWU0NTMx
NmY4ZjNmNGZjNmRhOGUzZGNkYjFiM2U0ZTJkZDkyN2Q4Ni4uZmQwMmM2MDJmOTQ2Y2YzNGQxMGU4
M2MyMjIyNDhmYTM4ODAxMjNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGFibGVTZWN0aW9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFi
bGVTZWN0aW9uRWxlbWVudC5jcHAKQEAgLTY4LDE0ICs2OCwxNCBAQCBSZWZQdHI8SFRNTEVsZW1l
bnQ+IEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50OjppbnNlcnRSb3coaW50IGluZGV4LCBFeGNlcHRp
b25Db2RlJgogICAgIGVsc2UgewogICAgICAgICByb3cgPSBIVE1MVGFibGVSb3dFbGVtZW50Ojpj
cmVhdGUodHJUYWcsIGRvY3VtZW50KCkpOwogICAgICAgICBpZiAobnVtUm93cyA9PSBpbmRleCB8
fCBpbmRleCA9PSAtMSkKLSAgICAgICAgICAgIGFwcGVuZENoaWxkKHJvdywgZWMpOworICAgICAg
ICAgICAgYXBwZW5kQ2hpbGQoKnJvdywgZWMpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAg
IE5vZGUqIG47CiAgICAgICAgICAgICBpZiAoaW5kZXggPCAxKQogICAgICAgICAgICAgICAgIG4g
PSBmaXJzdENoaWxkKCk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbiA9IGNo
aWxkcmVuLT5pdGVtKGluZGV4KTsKLSAgICAgICAgICAgIGluc2VydEJlZm9yZShyb3csIG4sIGVj
KTsKKyAgICAgICAgICAgIGluc2VydEJlZm9yZSgqcm93LCBuLCBlYyk7CiAgICAgICAgIH0KICAg
ICB9CiAgICAgcmV0dXJuIHJvdzsKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBIVE1MVGFibGVTZWN0
aW9uRWxlbWVudDo6ZGVsZXRlUm93KGludCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAg
ICAgIGluZGV4ID0gbnVtUm93cyAtIDE7CiAgICAgaWYgKGluZGV4ID49IDAgJiYgaW5kZXggPCBu
dW1Sb3dzKSB7CiAgICAgICAgIFJlZlB0cjxOb2RlPiByb3cgPSBjaGlsZHJlbi0+aXRlbShpbmRl
eCk7Ci0gICAgICAgIEhUTUxFbGVtZW50OjpyZW1vdmVDaGlsZChyb3cuZ2V0KCksIGVjKTsKKyAg
ICAgICAgSFRNTEVsZW1lbnQ6OnJlbW92ZUNoaWxkKCpyb3csIGVjKTsKICAgICB9IGVsc2UKICAg
ICAgICAgZWMgPSBJTkRFWF9TSVpFX0VSUjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZW1wbGF0ZUVsZW1lbnQuY3BwCmluZGV4IGFlYzMwMTBmNmQ2Y2ZlMWJlZGIzMmM0OTcwOWFlY2Fk
MGI2ZDdmNzIuLjJlMWVkYjIzNmMwNzhlZWI2ZGViZTZlOWU1NjExZTcxN2NkYzgzOTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmNwcApAQCAtNjgsNyArNjgs
NyBAQCBEb2N1bWVudEZyYWdtZW50KiBIVE1MVGVtcGxhdGVFbGVtZW50Ojpjb250ZW50KCkgY29u
c3QKICAgICByZXR1cm4gbV9jb250ZW50LmdldCgpOwogfQogCi1SZWZQdHI8Tm9kZT4gSFRNTFRl
bXBsYXRlRWxlbWVudDo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50
LCBDbG9uaW5nT3BlcmF0aW9uIHR5cGUpCitSZWY8Tm9kZT4gSFRNTFRlbXBsYXRlRWxlbWVudDo6
Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0
aW9uIHR5cGUpCiB7CiAgICAgUmVmUHRyPE5vZGU+IGNsb25lOwogICAgIHN3aXRjaCAodHlwZSkg
ewpAQCAtODIsOCArODIsOCBAQCBSZWZQdHI8Tm9kZT4gSFRNTFRlbXBsYXRlRWxlbWVudDo6Y2xv
bmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbAogICAgICAgICBicmVh
azsKICAgICB9CiAgICAgaWYgKG1fY29udGVudCkKLSAgICAgICAgY29udGVudCgpLT5jbG9uZUNo
aWxkTm9kZXMoZG93bmNhc3Q8SFRNTFRlbXBsYXRlRWxlbWVudD4oY2xvbmUuZ2V0KCkpLT5jb250
ZW50KCkpOwotICAgIHJldHVybiBjbG9uZS5yZWxlYXNlKCk7CisgICAgICAgIGNvbnRlbnQoKS0+
Y2xvbmVDaGlsZE5vZGVzKCpkb3duY2FzdDxIVE1MVGVtcGxhdGVFbGVtZW50PihjbG9uZS5nZXQo
KSktPmNvbnRlbnQoKSk7CisgICAgcmV0dXJuIGNsb25lLnJlbGVhc2VOb25OdWxsKCk7CiB9CiAK
IHZvaWQgSFRNTFRlbXBsYXRlRWxlbWVudDo6ZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQq
IG9sZERvY3VtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxh
dGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaApp
bmRleCA3NjdmMmExODRlYTg1MzdkYmMzNjQ0NWRhYjgyYzg1ZTAwNWYwNzRiLi5kMWZhODY0MDY5
ZGNiNzUwOWM5ZjE4NzcwZGFiNTJmMWU4NTZiZDE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUZW1wbGF0ZUVsZW1lbnQuaApAQCAtNTAsNyArNTAsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIEhUTUxUZW1wbGF0ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7
CiAKLSAgICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYs
IENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNsb25l
Tm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCB2b2lkIGRpZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50KiBvbGREb2N1bWVudCkg
b3ZlcnJpZGU7CiAKICAgICBtdXRhYmxlIFJlZlB0cjxUZW1wbGF0ZUNvbnRlbnREb2N1bWVudEZy
YWdtZW50PiBtX2NvbnRlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0QXJlYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVt
ZW50LmNwcAppbmRleCA5MzkyOTExNTUwOTI2MTc3ZWIwNmZjNDIxZTVhMmQwOWQ3YTkyMWU2Li5h
MmRlNzMwYzVlN2M5ZDFlNWMyMGQ5MGIyZDQyM2MyOGVlNGRjNWUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKQEAgLTQwNiw5ICs0MDYsOSBAQCB2b2lk
IEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNldERlZmF1bHRWYWx1ZShjb25zdCBTdHJpbmcmIGRlZmF1
bHRWYWx1ZSkKICAgICBSZWY8SFRNTFRleHRBcmVhRWxlbWVudD4gcHJvdGVjdEZyb21NdXRhdGlv
bkV2ZW50cygqdGhpcyk7CiAKICAgICAvLyBUbyBwcmVzZXJ2ZSBjb21tZW50cywgcmVtb3ZlIG9u
bHkgdGhlIHRleHQgbm9kZXMsIHRoZW4gYWRkIGEgc2luZ2xlIHRleHQgbm9kZS4KLSAgICBWZWN0
b3I8UmVmUHRyPFRleHQ+PiB0ZXh0Tm9kZXM7CisgICAgVmVjdG9yPFJlZjxUZXh0Pj4gdGV4dE5v
ZGVzOwogICAgIGZvciAoVGV4dCogdGV4dE5vZGUgPSBUZXh0Tm9kZVRyYXZlcnNhbDo6Zmlyc3RD
aGlsZCgqdGhpcyk7IHRleHROb2RlOyB0ZXh0Tm9kZSA9IFRleHROb2RlVHJhdmVyc2FsOjpuZXh0
U2libGluZygqdGV4dE5vZGUpKQotICAgICAgICB0ZXh0Tm9kZXMuYXBwZW5kKHRleHROb2RlKTsK
KyAgICAgICAgdGV4dE5vZGVzLmFwcGVuZCgqdGV4dE5vZGUpOwogCiAgICAgc2l6ZV90IHNpemUg
PSB0ZXh0Tm9kZXMuc2l6ZSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytp
KQpAQCAtNTIzLDggKzUyMyw4IEBAIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6dXBkYXRlUGxh
Y2Vob2xkZXJUZXh0KCkKICAgICBTdHJpbmcgcGxhY2Vob2xkZXJUZXh0ID0gc3RyaXBwZWRQbGFj
ZWhvbGRlcigpOwogICAgIGlmIChwbGFjZWhvbGRlclRleHQuaXNFbXB0eSgpKSB7CiAgICAgICAg
IGlmIChtX3BsYWNlaG9sZGVyKSB7Ci0gICAgICAgICAgICB1c2VyQWdlbnRTaGFkb3dSb290KCkt
PnJlbW92ZUNoaWxkKG1fcGxhY2Vob2xkZXIsIEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgICAg
ICAgICAgbV9wbGFjZWhvbGRlciA9IDA7CisgICAgICAgICAgICB1c2VyQWdlbnRTaGFkb3dSb290
KCktPnJlbW92ZUNoaWxkKCptX3BsYWNlaG9sZGVyLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAg
ICAgICAgICAgIG1fcGxhY2Vob2xkZXIgPSBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJl
dHVybjsKICAgICB9CkBAIC01MzMsNyArNTMzLDcgQEAgdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50
Ojp1cGRhdGVQbGFjZWhvbGRlclRleHQoKQogICAgICAgICBtX3BsYWNlaG9sZGVyID0gcGxhY2Vo
b2xkZXIuZ2V0KCk7CiAgICAgICAgIG1fcGxhY2Vob2xkZXItPnNldFBzZXVkbyhBdG9taWNTdHJp
bmcoIi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CiAgICAgICAgIG1fcGxhY2Vob2xkZXItPnNldElubGluZVN0eWxlUHJvcGVy
dHkoQ1NTUHJvcGVydHlEaXNwbGF5LCBpc1BsYWNlaG9sZGVyVmlzaWJsZSgpID8gQ1NTVmFsdWVC
bG9jayA6IENTU1ZhbHVlTm9uZSwgdHJ1ZSk7Ci0gICAgICAgIHVzZXJBZ2VudFNoYWRvd1Jvb3Qo
KS0+aW5zZXJ0QmVmb3JlKG1fcGxhY2Vob2xkZXIsIGlubmVyVGV4dEVsZW1lbnQoKS0+bmV4dFNp
YmxpbmcoKSk7CisgICAgICAgIHVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+aW5zZXJ0QmVmb3JlKCpt
X3BsYWNlaG9sZGVyLCBpbm5lclRleHRFbGVtZW50KCktPm5leHRTaWJsaW5nKCkpOwogICAgIH0K
ICAgICBtX3BsYWNlaG9sZGVyLT5zZXRJbm5lclRleHQocGxhY2Vob2xkZXJUZXh0LCBBU1NFUlRf
Tk9fRVhDRVBUSU9OKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VE
b2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlRG9jdW1lbnQuY3BwCmluZGV4
IDgxYjVlZWVkOTU1MWJmYjZlMzMzZDRjMWQ5Yjc5NmNkNzlkNjFmY2MuLjAzZGIzNzk3N2IwZmUx
YWE4N2Q2ZGE2OTRjMmIzMzYxNjE3YjE5NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW1hZ2VEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZURvY3Vt
ZW50LmNwcApAQCAtOTIsNyArOTIsNyBAQCBwcml2YXRlOgogCiBjbGFzcyBJbWFnZURvY3VtZW50
RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MSW1hZ2VFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmUHRyPEltYWdlRG9jdW1lbnRFbGVtZW50PiBjcmVhdGUoSW1hZ2VEb2N1bWVudCYp
OworICAgIHN0YXRpYyBSZWY8SW1hZ2VEb2N1bWVudEVsZW1lbnQ+IGNyZWF0ZShJbWFnZURvY3Vt
ZW50Jik7CiAKIHByaXZhdGU6CiAgICAgSW1hZ2VEb2N1bWVudEVsZW1lbnQoSW1hZ2VEb2N1bWVu
dCYgZG9jdW1lbnQpCkBAIC0xMDcsOSArMTA3LDkgQEAgcHJpdmF0ZToKICAgICBJbWFnZURvY3Vt
ZW50KiBtX2ltYWdlRG9jdW1lbnQ7CiB9OwogCi1pbmxpbmUgUmVmUHRyPEltYWdlRG9jdW1lbnRF
bGVtZW50PiBJbWFnZURvY3VtZW50RWxlbWVudDo6Y3JlYXRlKEltYWdlRG9jdW1lbnQmIGRvY3Vt
ZW50KQoraW5saW5lIFJlZjxJbWFnZURvY3VtZW50RWxlbWVudD4gSW1hZ2VEb2N1bWVudEVsZW1l
bnQ6OmNyZWF0ZShJbWFnZURvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEltYWdlRG9jdW1lbnRFbGVtZW50KGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgSW1hZ2VEb2N1bWVudEVsZW1lbnQoZG9jdW1lbnQpKTsKIH0KIAogLy8gLS0tLS0t
LS0KQEAgLTIxMCwxOSArMjEwLDE5IEBAIFJlZjxEb2N1bWVudFBhcnNlcj4gSW1hZ2VEb2N1bWVu
dDo6Y3JlYXRlUGFyc2VyKCkKIAogdm9pZCBJbWFnZURvY3VtZW50OjpjcmVhdGVEb2N1bWVudFN0
cnVjdHVyZSgpCiB7Ci0gICAgUmVmUHRyPEVsZW1lbnQ+IHJvb3RFbGVtZW50ID0gRG9jdW1lbnQ6
OmNyZWF0ZUVsZW1lbnQoaHRtbFRhZywgZmFsc2UpOwotICAgIGFwcGVuZENoaWxkKHJvb3RFbGVt
ZW50KTsKLSAgICBkb3duY2FzdDxIVE1MSHRtbEVsZW1lbnQ+KCpyb290RWxlbWVudCkuaW5zZXJ0
ZWRCeVBhcnNlcigpOworICAgIFJlZjxFbGVtZW50PiByb290RWxlbWVudCA9IERvY3VtZW50Ojpj
cmVhdGVFbGVtZW50KGh0bWxUYWcsIGZhbHNlKTsKKyAgICBhcHBlbmRDaGlsZChyb290RWxlbWVu
dC5jb3B5UmVmKCkpOworICAgIGRvd25jYXN0PEhUTUxIdG1sRWxlbWVudD4ocm9vdEVsZW1lbnQu
Z2V0KCkpLmluc2VydGVkQnlQYXJzZXIoKTsKIAogICAgIGZyYW1lKCktPmluamVjdFVzZXJTY3Jp
cHRzKEluamVjdEF0RG9jdW1lbnRTdGFydCk7CiAKLSAgICBSZWZQdHI8RWxlbWVudD4gYm9keSA9
IERvY3VtZW50OjpjcmVhdGVFbGVtZW50KGJvZHlUYWcsIGZhbHNlKTsKKyAgICBSZWY8RWxlbWVu
dD4gYm9keSA9IERvY3VtZW50OjpjcmVhdGVFbGVtZW50KGJvZHlUYWcsIGZhbHNlKTsKICAgICBi
b2R5LT5zZXRBdHRyaWJ1dGUoc3R5bGVBdHRyLCAibWFyZ2luOiAwcHgiKTsKICAgICBpZiAoTUlN
RVR5cGVSZWdpc3RyeTo6aXNQREZNSU1FVHlwZShkb2N1bWVudCgpLmxvYWRlcigpLT5yZXNwb25z
ZU1JTUVUeXBlKCkpKQotICAgICAgICBkb3duY2FzdDxIVE1MQm9keUVsZW1lbnQ+KCpib2R5KS5z
ZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yLCAid2hpdGUi
LCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0lERU5UKTsKLSAgICByb290RWxlbWVudC0+YXBwZW5k
Q2hpbGQoYm9keSk7CisgICAgICAgIGRvd25jYXN0PEhUTUxCb2R5RWxlbWVudD4oYm9keS5nZXQo
KSkuc2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvciwgIndo
aXRlIiwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19JREVOVCk7CisgICAgcm9vdEVsZW1lbnQtPmFw
cGVuZENoaWxkKGJvZHkuY29weVJlZigpKTsKICAgICAKLSAgICBSZWZQdHI8SW1hZ2VEb2N1bWVu
dEVsZW1lbnQ+IGltYWdlRWxlbWVudCA9IEltYWdlRG9jdW1lbnRFbGVtZW50OjpjcmVhdGUoKnRo
aXMpOworICAgIFJlZjxJbWFnZURvY3VtZW50RWxlbWVudD4gaW1hZ2VFbGVtZW50ID0gSW1hZ2VE
b2N1bWVudEVsZW1lbnQ6OmNyZWF0ZSgqdGhpcyk7CiAgICAgaWYgKG1fc2hvdWxkU2hyaW5rSW1h
Z2UpCiAgICAgICAgIGltYWdlRWxlbWVudC0+c2V0QXR0cmlidXRlKHN0eWxlQXR0ciwgIi13ZWJr
aXQtdXNlci1zZWxlY3Q6bm9uZTsgZGlzcGxheTpibG9jazsgbWFyZ2luOmF1dG87Iik7CiAgICAg
ZWxzZQpAQCAtMjMwLDcgKzIzMCw3IEBAIHZvaWQgSW1hZ2VEb2N1bWVudDo6Y3JlYXRlRG9jdW1l
bnRTdHJ1Y3R1cmUoKQogICAgIGltYWdlRWxlbWVudC0+c2V0TG9hZE1hbnVhbGx5KHRydWUpOwog
ICAgIGltYWdlRWxlbWVudC0+c2V0U3JjKHVybCgpLnN0cmluZygpKTsKICAgICBpbWFnZUVsZW1l
bnQtPmNhY2hlZEltYWdlKCktPnNldFJlc3BvbnNlKGxvYWRlcigpLT5yZXNwb25zZSgpKTsKLSAg
ICBib2R5LT5hcHBlbmRDaGlsZChpbWFnZUVsZW1lbnQpOworICAgIGJvZHktPmFwcGVuZENoaWxk
KGltYWdlRWxlbWVudC5jb3B5UmVmKCkpOwogICAgIAogICAgIGlmIChtX3Nob3VsZFNocmlua0lt
YWdlKSB7CiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtMjQ0LDcgKzI0NCw3IEBAIHZvaWQgSW1hZ2VE
b2N1bWVudDo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKQogI2VuZGlmCiAgICAgfQogCi0gICAg
bV9pbWFnZUVsZW1lbnQgPSBpbWFnZUVsZW1lbnQuZ2V0KCk7CisgICAgbV9pbWFnZUVsZW1lbnQg
PSBpbWFnZUVsZW1lbnQucHRyKCk7CiB9CiAKIHZvaWQgSW1hZ2VEb2N1bWVudDo6aW1hZ2VVcGRh
dGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCmluZGV4IDE4NWFiYTgzNDAz
Y2U4MjJjNzc2ZWUwYzI4ZGJhNzMwMDE5Mjk5OWIuLjY1MWM3MjlkNjRkNzZiNTM2OTVmNDc1YzFh
YWU1MGE1NzY3M2I5NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcApAQCAt
NzgsMTAgKzc4LDEwIEBAIHByaXZhdGU6CiAgICAgCiB2b2lkIE1lZGlhRG9jdW1lbnRQYXJzZXI6
OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCkKIHsKLSAgICBSZWZQdHI8RWxlbWVudD4gcm9vdEVs
ZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KGh0bWxUYWcsIGZhbHNlKTsKLSAgICBk
b2N1bWVudCgpLT5hcHBlbmRDaGlsZChyb290RWxlbWVudCwgSUdOT1JFX0VYQ0VQVElPTik7Ci0g
ICAgZG9jdW1lbnQoKS0+c2V0Q1NTVGFyZ2V0KHJvb3RFbGVtZW50LmdldCgpKTsKLSAgICBkb3du
Y2FzdDxIVE1MSHRtbEVsZW1lbnQ+KCpyb290RWxlbWVudCkuaW5zZXJ0ZWRCeVBhcnNlcigpOwor
ICAgIFJlZjxFbGVtZW50PiByb290RWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQo
aHRtbFRhZywgZmFsc2UpOworICAgIGRvY3VtZW50KCktPmFwcGVuZENoaWxkKHJvb3RFbGVtZW50
LmNvcHlSZWYoKSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgZG9jdW1lbnQoKS0+c2V0Q1NTVGFy
Z2V0KHJvb3RFbGVtZW50LnB0cigpKTsKKyAgICBkb3duY2FzdDxIVE1MSHRtbEVsZW1lbnQ+KHJv
b3RFbGVtZW50LmdldCgpKS5pbnNlcnRlZEJ5UGFyc2VyKCk7CiAKICAgICBpZiAoZG9jdW1lbnQo
KS0+ZnJhbWUoKSkKICAgICAgICAgZG9jdW1lbnQoKS0+ZnJhbWUoKS0+aW5qZWN0VXNlclNjcmlw
dHMoSW5qZWN0QXREb2N1bWVudFN0YXJ0KTsKQEAgLTk2LDEyICs5NiwxMiBAQCB2b2lkIE1lZGlh
RG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCkKICAgICBoZWFkRWxlbWVu
dC0+YXBwZW5kQ2hpbGQobWV0YUVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOwogI2VuZGlmCiAK
LSAgICBSZWZQdHI8RWxlbWVudD4gYm9keSA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoYm9k
eVRhZywgZmFsc2UpOwotICAgIHJvb3RFbGVtZW50LT5hcHBlbmRDaGlsZChib2R5LCBJR05PUkVf
RVhDRVBUSU9OKTsKKyAgICBSZWY8RWxlbWVudD4gYm9keSA9IGRvY3VtZW50KCktPmNyZWF0ZUVs
ZW1lbnQoYm9keVRhZywgZmFsc2UpOworICAgIHJvb3RFbGVtZW50LT5hcHBlbmRDaGlsZChib2R5
LmNvcHlSZWYoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBSZWZQdHI8RWxlbWVudD4gbWVk
aWFFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudCh2aWRlb1RhZywgZmFsc2UpOwor
ICAgIFJlZjxFbGVtZW50PiBtZWRpYUVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50
KHZpZGVvVGFnLCBmYWxzZSk7CiAKLSAgICBtX21lZGlhRWxlbWVudCA9IGRvd25jYXN0PEhUTUxW
aWRlb0VsZW1lbnQ+KG1lZGlhRWxlbWVudC5nZXQoKSk7CisgICAgbV9tZWRpYUVsZW1lbnQgPSBk
b3duY2FzdDxIVE1MVmlkZW9FbGVtZW50PihtZWRpYUVsZW1lbnQucHRyKCkpOwogICAgIG1fbWVk
aWFFbGVtZW50LT5zZXRBdHRyaWJ1dGUoY29udHJvbHNBdHRyLCBlbXB0eUF0b20pOwogICAgIG1f
bWVkaWFFbGVtZW50LT5zZXRBdHRyaWJ1dGUoYXV0b3BsYXlBdHRyLCBlbXB0eUF0b20pOwogCkBA
IC0xMTQsMTUgKzExNCwxNSBAQCB2b2lkIE1lZGlhRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURvY3Vt
ZW50U3RydWN0dXJlKCkKICNlbmRpZgogICAgIG1fbWVkaWFFbGVtZW50LT5zZXRBdHRyaWJ1dGUo
c3R5bGVBdHRyLCBlbGVtZW50U3R5bGUudG9TdHJpbmcoKSk7CiAKLSAgICBSZWZQdHI8RWxlbWVu
dD4gc291cmNlRWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoc291cmNlVGFnLCBm
YWxzZSk7Ci0gICAgSFRNTFNvdXJjZUVsZW1lbnQmIHNvdXJjZSA9IGRvd25jYXN0PEhUTUxTb3Vy
Y2VFbGVtZW50Pigqc291cmNlRWxlbWVudCk7CisgICAgUmVmPEVsZW1lbnQ+IHNvdXJjZUVsZW1l
bnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KHNvdXJjZVRhZywgZmFsc2UpOworICAgIEhU
TUxTb3VyY2VFbGVtZW50JiBzb3VyY2UgPSBkb3duY2FzdDxIVE1MU291cmNlRWxlbWVudD4oc291
cmNlRWxlbWVudC5nZXQoKSk7CiAgICAgc291cmNlLnNldFNyYyhkb2N1bWVudCgpLT51cmwoKSk7
CiAKICAgICBpZiAoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciA9IGRvY3VtZW50KCktPmxvYWRlcigp
KQogICAgICAgICBzb3VyY2Uuc2V0VHlwZShsb2FkZXItPnJlc3BvbnNlTUlNRVR5cGUoKSk7CiAK
LSAgICBtX21lZGlhRWxlbWVudC0+YXBwZW5kQ2hpbGQoc291cmNlRWxlbWVudCwgSUdOT1JFX0VY
Q0VQVElPTik7Ci0gICAgYm9keS0+YXBwZW5kQ2hpbGQobWVkaWFFbGVtZW50LCBJR05PUkVfRVhD
RVBUSU9OKTsKKyAgICBtX21lZGlhRWxlbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHNvdXJj
ZUVsZW1lbnQpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBib2R5LT5hcHBlbmRDaGlsZChXVEY6
Om1vdmUobWVkaWFFbGVtZW50KSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKICAgICBGcmFtZSogZnJh
bWUgPSBkb2N1bWVudCgpLT5mcmFtZSgpOwogICAgIGlmICghZnJhbWUpCkBAIC0yNTMsNyArMjUz
LDcgQEAgdm9pZCBNZWRpYURvY3VtZW50OjpyZXBsYWNlTWVkaWFFbGVtZW50VGltZXJGaXJlZCgp
CiAgICAgICAgIGlmIChkb2N1bWVudExvYWRlcikKICAgICAgICAgICAgIGVtYmVkRWxlbWVudC5z
ZXRBdHRyaWJ1dGUodHlwZUF0dHIsIGRvY3VtZW50TG9hZGVyLT53cml0ZXIoKS5taW1lVHlwZSgp
KTsKIAotICAgICAgICB2aWRlb0VsZW1lbnQtPnBhcmVudE5vZGUoKS0+cmVwbGFjZUNoaWxkKCZl
bWJlZEVsZW1lbnQsIHZpZGVvRWxlbWVudCwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgICAgIHZp
ZGVvRWxlbWVudC0+cGFyZW50Tm9kZSgpLT5yZXBsYWNlQ2hpbGQoZW1iZWRFbGVtZW50LCAqdmlk
ZW9FbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9QbHVnaW5Eb2N1bWVudC5jcHAKaW5kZXggZTk2NzcwOTBmNGMzODUzYTdjZmYyMDhiMjNjMzFk
YzlkMjU0NDgyMS4uYzBhODBiYTU1NzEzOTA5YjkzYjE4YjFiZGE4ODAzZmYxNTI3NWJmYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5jcHAKQEAgLTY3LDkgKzY3LDkgQEAgcHJp
dmF0ZToKIAogdm9pZCBQbHVnaW5Eb2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1
cmUoKQogewotICAgIFJlZlB0cjxFbGVtZW50PiByb290RWxlbWVudCA9IGRvY3VtZW50KCktPmNy
ZWF0ZUVsZW1lbnQoaHRtbFRhZywgZmFsc2UpOwotICAgIGRvY3VtZW50KCktPmFwcGVuZENoaWxk
KHJvb3RFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKLSAgICBkb3duY2FzdDxIVE1MSHRtbEVs
ZW1lbnQ+KCpyb290RWxlbWVudCkuaW5zZXJ0ZWRCeVBhcnNlcigpOworICAgIFJlZjxFbGVtZW50
PiByb290RWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoaHRtbFRhZywgZmFsc2Up
OworICAgIGRvY3VtZW50KCktPmFwcGVuZENoaWxkKHJvb3RFbGVtZW50LmNvcHlSZWYoKSwgSUdO
T1JFX0VYQ0VQVElPTik7CisgICAgZG93bmNhc3Q8SFRNTEh0bWxFbGVtZW50Pihyb290RWxlbWVu
dC5nZXQoKSkuaW5zZXJ0ZWRCeVBhcnNlcigpOwogCiAgICAgaWYgKGRvY3VtZW50KCktPmZyYW1l
KCkpCiAgICAgICAgIGRvY3VtZW50KCktPmZyYW1lKCktPmluamVjdFVzZXJTY3JpcHRzKEluamVj
dEF0RG9jdW1lbnRTdGFydCk7CkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgUGx1Z2luRG9jdW1lbnRQ
YXJzZXI6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCkKICAgICBkb2N1bWVudCgpLT5wcm9jZXNz
Vmlld3BvcnQoQVNDSUlMaXRlcmFsKCJ1c2VyLXNjYWxhYmxlPW5vIiksIFZpZXdwb3J0QXJndW1l
bnRzOjpQbHVnaW5Eb2N1bWVudCk7CiAjZW5kaWYKIAotICAgIFJlZlB0cjxFbGVtZW50PiBib2R5
ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChib2R5VGFnLCBmYWxzZSk7CisgICAgUmVmPEVs
ZW1lbnQ+IGJvZHkgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KGJvZHlUYWcsIGZhbHNlKTsK
ICAgICBib2R5LT5zZXRBdHRyaWJ1dGUobWFyZ2lud2lkdGhBdHRyLCBBdG9taWNTdHJpbmcoIjAi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgYm9keS0+c2V0QXR0
cmlidXRlKG1hcmdpbmhlaWdodEF0dHIsIEF0b21pY1N0cmluZygiMCIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICNpZiBQTEFURk9STShJT1MpCkBAIC04OCwxMSArODgs
MTEgQEAgdm9pZCBQbHVnaW5Eb2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUo
KQogICAgIGJvZHktPnNldEF0dHJpYnV0ZShzdHlsZUF0dHIsIEF0b21pY1N0cmluZygiYmFja2dy
b3VuZC1jb2xvcjogcmdiKDM4LDM4LDM4KSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKICNlbmRpZgogCi0gICAgcm9vdEVsZW1lbnQtPmFwcGVuZENoaWxkKGJvZHksIElH
Tk9SRV9FWENFUFRJT04pOworICAgIHJvb3RFbGVtZW50LT5hcHBlbmRDaGlsZChib2R5LmNvcHlS
ZWYoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgICAgIAotICAgIFJlZlB0cjxFbGVtZW50PiBl
bWJlZEVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KGVtYmVkVGFnLCBmYWxzZSk7
CisgICAgUmVmPEVsZW1lbnQ+IGVtYmVkRWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1l
bnQoZW1iZWRUYWcsIGZhbHNlKTsKICAgICAgICAgCi0gICAgbV9lbWJlZEVsZW1lbnQgPSBkb3du
Y2FzdDxIVE1MRW1iZWRFbGVtZW50PihlbWJlZEVsZW1lbnQuZ2V0KCkpOworICAgIG1fZW1iZWRF
bGVtZW50ID0gZG93bmNhc3Q8SFRNTEVtYmVkRWxlbWVudD4oZW1iZWRFbGVtZW50LnB0cigpKTsK
ICAgICBtX2VtYmVkRWxlbWVudC0+c2V0QXR0cmlidXRlKHdpZHRoQXR0ciwgIjEwMCUiKTsKICAg
ICBtX2VtYmVkRWxlbWVudC0+c2V0QXR0cmlidXRlKGhlaWdodEF0dHIsICIxMDAlIik7CiAgICAg
CkBAIC0xMDYsNyArMTA2LDcgQEAgdm9pZCBQbHVnaW5Eb2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9j
dW1lbnRTdHJ1Y3R1cmUoKQogCiAgICAgZG93bmNhc3Q8UGx1Z2luRG9jdW1lbnQ+KCpkb2N1bWVu
dCgpKS5zZXRQbHVnaW5FbGVtZW50KG1fZW1iZWRFbGVtZW50KTsKIAotICAgIGJvZHktPmFwcGVu
ZENoaWxkKGVtYmVkRWxlbWVudCwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgYm9keS0+YXBwZW5k
Q2hpbGQoV1RGOjptb3ZlKGVtYmVkRWxlbWVudCksIElHTk9SRV9FWENFUFRJT04pOwogfQogCiB2
b2lkIFBsdWdpbkRvY3VtZW50UGFyc2VyOjphcHBlbmRCeXRlcyhEb2N1bWVudFdyaXRlciYsIGNv
bnN0IGNoYXIqLCBzaXplX3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jhbmdl
SW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCmlu
ZGV4IGI1YjllNzk0MTMxMTkzYjUwZmU3OTc5YTE2YTE0Y2IzMDgwNGU3ZDcuLjY2YTc0MTVlOGE0
Y2YxMWY5MWRjNjdjMTZhMWQ5MDYwMjVjZmZmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJ
bnB1dFR5cGUuY3BwCkBAIC0yNTMsMTIgKzI1MywxMiBAQCB2b2lkIFJhbmdlSW5wdXRUeXBlOjpj
cmVhdGVTaGFkb3dTdWJ0cmVlKCkKICAgICBBU1NFUlQoZWxlbWVudCgpLnVzZXJBZ2VudFNoYWRv
d1Jvb3QoKSk7CiAKICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBlbGVtZW50KCkuZG9jdW1lbnQo
KTsKLSAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IHRyYWNrID0gSFRNTERpdkVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCk7CisgICAgUmVmPEhUTUxEaXZFbGVtZW50PiB0cmFjayA9IEhUTUxEaXZF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIHRyYWNrLT5zZXRQc2V1ZG8oQXRvbWljU3Ry
aW5nKCItd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKICAgICB0cmFjay0+YXBwZW5kQ2hpbGQoU2xpZGVyVGh1bWJFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpLCBJR05PUkVfRVhDRVBUSU9OKTsKLSAgICBSZWZQdHI8SFRN
TEVsZW1lbnQ+IGNvbnRhaW5lciA9IFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCk7Ci0gICAgY29udGFpbmVyLT5hcHBlbmRDaGlsZCh0cmFjay5yZWxlYXNlKCksIElHTk9S
RV9FWENFUFRJT04pOwotICAgIGVsZW1lbnQoKS51c2VyQWdlbnRTaGFkb3dSb290KCktPmFwcGVu
ZENoaWxkKGNvbnRhaW5lci5yZWxlYXNlKCksIElHTk9SRV9FWENFUFRJT04pOworICAgIFJlZjxI
VE1MRWxlbWVudD4gY29udGFpbmVyID0gU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50KTsKKyAgICBjb250YWluZXItPmFwcGVuZENoaWxkKFdURjo6bW92ZSh0cmFjayksIElH
Tk9SRV9FWENFUFRJT04pOworICAgIGVsZW1lbnQoKS51c2VyQWdlbnRTaGFkb3dSb290KCktPmFw
cGVuZENoaWxkKFdURjo6bW92ZShjb250YWluZXIpLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KIAog
SFRNTEVsZW1lbnQqIFJhbmdlSW5wdXRUeXBlOjpzbGlkZXJUcmFja0VsZW1lbnQoKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwCmluZGV4IGRlNDNkYjU4MDQ5M2Jj
NjU5OWY5ZTdhZTg4N2U3MGM5ODFjNDJlNjcuLjM1N2M3YTYwNWI0ZGI3MmMwMGU3Yjk2ZGVkNmRk
NjQ2MjBlOGQ2ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRU
eXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAKQEAg
LTEwNywxNCArMTA3LDE0IEBAIHZvaWQgU2VhcmNoSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0
cmVlKCkKICAgICBBU1NFUlQoY29udGFpbmVyKTsKICAgICBBU1NFUlQodGV4dFdyYXBwZXIpOwog
Ci0gICAgUmVmUHRyPFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ+IHJlc3VsdHNCdXR0
b24gPSBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLmRv
Y3VtZW50KCkpOwotICAgIG1fcmVzdWx0c0J1dHRvbiA9IHJlc3VsdHNCdXR0b24uZ2V0KCk7Ci0g
ICAgdXBkYXRlUmVzdWx0QnV0dG9uUHNldWRvVHlwZSgqbV9yZXN1bHRzQnV0dG9uLCBlbGVtZW50
KCkubWF4UmVzdWx0cygpKTsKLSAgICBjb250YWluZXItPmluc2VydEJlZm9yZShtX3Jlc3VsdHNC
dXR0b24sIHRleHRXcmFwcGVyLCBJR05PUkVfRVhDRVBUSU9OKTsKLQotICAgIFJlZlB0cjxTZWFy
Y2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ+IGNhbmNlbEJ1dHRvbiA9IFNlYXJjaEZpZWxkQ2Fu
Y2VsQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS5kb2N1bWVudCgpKTsKLSAgICBtX2Nh
bmNlbEJ1dHRvbiA9IGNhbmNlbEJ1dHRvbi5nZXQoKTsKLSAgICBjb250YWluZXItPmluc2VydEJl
Zm9yZShtX2NhbmNlbEJ1dHRvbiwgdGV4dFdyYXBwZXItPm5leHRTaWJsaW5nKCksIElHTk9SRV9F
WENFUFRJT04pOworICAgIFJlZjxTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50PiByZXN1
bHRzQnV0dG9uID0gU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGVsZW1l
bnQoKS5kb2N1bWVudCgpKTsKKyAgICBtX3Jlc3VsdHNCdXR0b24gPSByZXN1bHRzQnV0dG9uLnB0
cigpOworICAgIHVwZGF0ZVJlc3VsdEJ1dHRvblBzZXVkb1R5cGUocmVzdWx0c0J1dHRvbi5nZXQo
KSwgZWxlbWVudCgpLm1heFJlc3VsdHMoKSk7CisgICAgY29udGFpbmVyLT5pbnNlcnRCZWZvcmUo
V1RGOjptb3ZlKHJlc3VsdHNCdXR0b24pLCB0ZXh0V3JhcHBlciwgSUdOT1JFX0VYQ0VQVElPTik7
CisKKyAgICBSZWY8U2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50PiBjYW5jZWxCdXR0b24g
PSBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCkuZG9jdW1l
bnQoKSk7CisgICAgbV9jYW5jZWxCdXR0b24gPSBjYW5jZWxCdXR0b24ucHRyKCk7CisgICAgY29u
dGFpbmVyLT5pbnNlcnRCZWZvcmUoV1RGOjptb3ZlKGNhbmNlbEJ1dHRvbiksIHRleHRXcmFwcGVy
LT5uZXh0U2libGluZygpLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KIAogSFRNTEVsZW1lbnQqIFNl
YXJjaElucHV0VHlwZTo6cmVzdWx0c0J1dHRvbkVsZW1lbnQoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCmluZGV4IGVhZTNkYjI5ZWVlM2MyZGU5NWZl
NzE4MGM1NDZmZjhlN2UyYTc2N2UuLjEzNmYwOTc1MWI1ZGE2MTAwMDYxNjQ5YjU1YjU0OWFjOWQy
MzQyYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKQEAg
LTI3NCw3ICsyNzQsNyBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3Vi
dHJlZSgpCiAgICAgbV9pbm5lclRleHQgPSBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCk7CiAKICAgICBpZiAoIWNyZWF0ZXNDb250YWluZXIpIHsKLSAgICAgICAg
ZWxlbWVudCgpLnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQobV9pbm5lclRleHQs
IElHTk9SRV9FWENFUFRJT04pOworICAgICAgICBlbGVtZW50KCkudXNlckFnZW50U2hhZG93Um9v
dCgpLT5hcHBlbmRDaGlsZCgqbV9pbm5lclRleHQsIElHTk9SRV9FWENFUFRJT04pOwogICAgICAg
ICB1cGRhdGVQbGFjZWhvbGRlclRleHQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTI4
NCw3ICsyODQsNyBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJl
ZSgpCiAKICAgICBpZiAoc2hvdWxkSGF2ZVNwaW5CdXR0b24pIHsKICAgICAgICAgbV9pbm5lclNw
aW5CdXR0b24gPSBTcGluQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCAqdGhpcyk7Ci0g
ICAgICAgIG1fY29udGFpbmVyLT5hcHBlbmRDaGlsZChtX2lubmVyU3BpbkJ1dHRvbiwgSUdOT1JF
X0VYQ0VQVElPTik7CisgICAgICAgIG1fY29udGFpbmVyLT5hcHBlbmRDaGlsZCgqbV9pbm5lclNw
aW5CdXR0b24sIElHTk9SRV9FWENFUFRJT04pOwogICAgIH0KIAogICAgIGlmIChzaG91bGRIYXZl
Q2Fwc0xvY2tJbmRpY2F0b3IpIHsKQEAgLTI5NCw3ICsyOTQsNyBAQCB2b2lkIFRleHRGaWVsZElu
cHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAgICAgICAgIGJvb2wgc2hvdWxkRHJhd0Nh
cHNMb2NrSW5kaWNhdG9yID0gdGhpcy0+c2hvdWxkRHJhd0NhcHNMb2NrSW5kaWNhdG9yKCk7CiAg
ICAgICAgIG1fY2Fwc0xvY2tJbmRpY2F0b3ItPnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJv
cGVydHlEaXNwbGF5LCBzaG91bGREcmF3Q2Fwc0xvY2tJbmRpY2F0b3IgPyBDU1NWYWx1ZUJsb2Nr
IDogQ1NTVmFsdWVOb25lLCB0cnVlKTsKIAotICAgICAgICBtX2NvbnRhaW5lci0+YXBwZW5kQ2hp
bGQobV9jYXBzTG9ja0luZGljYXRvciwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgICAgIG1fY29u
dGFpbmVyLT5hcHBlbmRDaGlsZCgqbV9jYXBzTG9ja0luZGljYXRvciwgSUdOT1JFX0VYQ0VQVElP
Tik7CiAgICAgfQogCiAgICAgdXBkYXRlQXV0b0ZpbGxCdXR0b24oKTsKQEAgLTQ2MSw3ICs0NjEs
NyBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6dXBkYXRlUGxhY2Vob2xkZXJUZXh0KCkKICAg
ICBTdHJpbmcgcGxhY2Vob2xkZXJUZXh0ID0gZWxlbWVudCgpLnN0cmlwcGVkUGxhY2Vob2xkZXIo
KTsKICAgICBpZiAocGxhY2Vob2xkZXJUZXh0LmlzRW1wdHkoKSkgewogICAgICAgICBpZiAobV9w
bGFjZWhvbGRlcikgewotICAgICAgICAgICAgbV9wbGFjZWhvbGRlci0+cGFyZW50Tm9kZSgpLT5y
ZW1vdmVDaGlsZChtX3BsYWNlaG9sZGVyLmdldCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAg
ICAgICAgICAgIG1fcGxhY2Vob2xkZXItPnBhcmVudE5vZGUoKS0+cmVtb3ZlQ2hpbGQoKm1fcGxh
Y2Vob2xkZXIsIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgICAgICAgICAgbV9wbGFjZWhvbGRl
ciA9IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwpAQCAtNDcwLDcgKzQ3MCw3
IEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjp1cGRhdGVQbGFjZWhvbGRlclRleHQoKQogICAg
ICAgICBtX3BsYWNlaG9sZGVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCkuZG9j
dW1lbnQoKSk7CiAgICAgICAgIG1fcGxhY2Vob2xkZXItPnNldFBzZXVkbyhBdG9taWNTdHJpbmco
Ii13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CiAgICAgICAgIG1fcGxhY2Vob2xkZXItPnNldElubGluZVN0eWxlUHJvcGVydHko
Q1NTUHJvcGVydHlEaXNwbGF5LCBlbGVtZW50KCkuaXNQbGFjZWhvbGRlclZpc2libGUoKSA/IENT
U1ZhbHVlQmxvY2sgOiBDU1NWYWx1ZU5vbmUsIHRydWUpOwotICAgICAgICBlbGVtZW50KCkudXNl
ckFnZW50U2hhZG93Um9vdCgpLT5pbnNlcnRCZWZvcmUobV9wbGFjZWhvbGRlciwgbV9jb250YWlu
ZXIgPyBtX2NvbnRhaW5lci5nZXQoKSA6IGlubmVyVGV4dEVsZW1lbnQoKSwgQVNTRVJUX05PX0VY
Q0VQVElPTik7CisgICAgICAgIGVsZW1lbnQoKS51c2VyQWdlbnRTaGFkb3dSb290KCktPmluc2Vy
dEJlZm9yZSgqbV9wbGFjZWhvbGRlciwgbV9jb250YWluZXIgPyBtX2NvbnRhaW5lci5nZXQoKSA6
IGlubmVyVGV4dEVsZW1lbnQoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgICAgIAogICAg
IH0KICAgICBtX3BsYWNlaG9sZGVyLT5zZXRJbm5lclRleHQocGxhY2Vob2xkZXJUZXh0LCBBU1NF
UlRfTk9fRVhDRVBUSU9OKTsKQEAgLTYwMCwxMCArNjAwLDEwIEBAIHZvaWQgVGV4dEZpZWxkSW5w
dXRUeXBlOjpjcmVhdGVDb250YWluZXIoKQogICAgIG1fY29udGFpbmVyLT5zZXRQc2V1ZG8oQXRv
bWljU3RyaW5nKCItd2Via2l0LXRleHRmaWVsZC1kZWNvcmF0aW9uLWNvbnRhaW5lciIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIAogICAgIG1faW5uZXJCbG9jayA9IFRl
eHRDb250cm9sSW5uZXJFbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLmRvY3VtZW50KCkpOwotICAg
IG1faW5uZXJCbG9jay0+YXBwZW5kQ2hpbGQobV9pbm5lclRleHQsIElHTk9SRV9FWENFUFRJT04p
OwotICAgIG1fY29udGFpbmVyLT5hcHBlbmRDaGlsZChtX2lubmVyQmxvY2ssIElHTk9SRV9FWENF
UFRJT04pOworICAgIG1faW5uZXJCbG9jay0+YXBwZW5kQ2hpbGQoKm1faW5uZXJUZXh0LCBJR05P
UkVfRVhDRVBUSU9OKTsKKyAgICBtX2NvbnRhaW5lci0+YXBwZW5kQ2hpbGQoKm1faW5uZXJCbG9j
aywgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBlbGVtZW50KCkudXNlckFnZW50U2hhZG93Um9v
dCgpLT5hcHBlbmRDaGlsZChtX2NvbnRhaW5lciwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgZWxl
bWVudCgpLnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoKm1fY29udGFpbmVyLCBJ
R05PUkVfRVhDRVBUSU9OKTsKIH0KIAogdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZUF1
dG9GaWxsQnV0dG9uKCkKQEAgLTYxMiw3ICs2MTIsNyBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlw
ZTo6Y3JlYXRlQXV0b0ZpbGxCdXR0b24oKQogCiAgICAgbV9hdXRvRmlsbEJ1dHRvbiA9IEF1dG9G
aWxsQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS5kb2N1bWVudCgpLCAqdGhpcyk7CiAg
ICAgbV9hdXRvRmlsbEJ1dHRvbi0+c2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC1hdXRv
LWZpbGwtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAg
IG1fY29udGFpbmVyLT5hcHBlbmRDaGlsZChtX2F1dG9GaWxsQnV0dG9uLCBJR05PUkVfRVhDRVBU
SU9OKTsKKyAgICBtX2NvbnRhaW5lci0+YXBwZW5kQ2hpbGQoKm1fYXV0b0ZpbGxCdXR0b24sIElH
Tk9SRV9FWENFUFRJT04pOwogfQogCiB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6dXBkYXRlQXV0
b0ZpbGxCdXR0b24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9u
TWVzc2FnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcApp
bmRleCBmNjFlMWI1ZWZlMjcwOTMxZGFiMGVjMmVlZGYwZjM0YmQ3NzgyYjk2Li45MDYyOTVlMTk4
Zjc4NDU2NTYxMmFhNTJjYjllNmFjNGQ1MzBmYWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Zh
bGlkYXRpb25NZXNzYWdlLmNwcApAQCAtMTgwLDMyICsxODAsMzIgQEAgdm9pZCBWYWxpZGF0aW9u
TWVzc2FnZTo6YnVpbGRCdWJibGVUcmVlKCkKICAgICAvLyBOZWVkIHRvIGZvcmNlIHBvc2l0aW9u
OmFic29sdXRlIGJlY2F1c2UgUmVuZGVyTWVudUxpc3QgZG9lc24ndCBhc3N1bWUgaXQKICAgICAv
LyBjb250YWlucyBub24tYWJzb2x1dGUgb3Igbm9uLWZpeGVkIHJlbmRlcmVycyBhcyBjaGlsZHJl
bi4KICAgICBtX2J1YmJsZS0+c2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eVBvc2l0
aW9uLCBDU1NWYWx1ZUFic29sdXRlKTsKLSAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKG1fYnVi
YmxlLmdldCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBzaGFkb3dSb290LmFwcGVuZENo
aWxkKCptX2J1YmJsZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgZG9jdW1lbnQudXBkYXRl
TGF5b3V0KCk7CiAgICAgYWRqdXN0QnViYmxlUG9zaXRpb24obV9lbGVtZW50LT5yZW5kZXJlcigp
LT5hYnNvbHV0ZUJvdW5kaW5nQm94UmVjdCgpLCBtX2J1YmJsZS5nZXQoKSk7CiAKLSAgICBSZWZQ
dHI8SFRNTERpdkVsZW1lbnQ+IGNsaXBwZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KTsKKyAgICBSZWY8SFRNTERpdkVsZW1lbnQ+IGNsaXBwZXIgPSBIVE1MRGl2RWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjbGlwcGVyLT5zZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCIt
d2Via2l0LXZhbGlkYXRpb24tYnViYmxlLWFycm93LWNsaXBwZXIiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBidWJibGVB
cnJvdyA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIFJlZjxIVE1MRGl2
RWxlbWVudD4gYnViYmxlQXJyb3cgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsK
ICAgICBidWJibGVBcnJvdy0+c2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC12YWxpZGF0
aW9uLWJ1YmJsZS1hcnJvdyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
LSAgICBjbGlwcGVyLT5hcHBlbmRDaGlsZChidWJibGVBcnJvdy5yZWxlYXNlKCksIEFTU0VSVF9O
T19FWENFUFRJT04pOwotICAgIG1fYnViYmxlLT5hcHBlbmRDaGlsZChjbGlwcGVyLnJlbGVhc2Uo
KSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgY2xpcHBlci0+YXBwZW5kQ2hpbGQoV1RGOjpt
b3ZlKGJ1YmJsZUFycm93KSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgbV9idWJibGUtPmFw
cGVuZENoaWxkKFdURjo6bW92ZShjbGlwcGVyKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKLSAg
ICBSZWZQdHI8SFRNTEVsZW1lbnQ+IG1lc3NhZ2UgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50KTsKKyAgICBSZWY8SFRNTEVsZW1lbnQ+IG1lc3NhZ2UgPSBIVE1MRGl2RWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50KTsKICAgICBtZXNzYWdlLT5zZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCIt
d2Via2l0LXZhbGlkYXRpb24tYnViYmxlLW1lc3NhZ2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7Ci0gICAgUmVmUHRyPEhUTUxFbGVtZW50PiBpY29uID0gSFRNTERpdkVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgUmVmPEhUTUxFbGVtZW50PiBpY29uID0gSFRN
TERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgaWNvbi0+c2V0UHNldWRvKEF0b21p
Y1N0cmluZygiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1pY29uIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIG1lc3NhZ2UtPmFwcGVuZENoaWxkKGljb24ucmVs
ZWFzZSgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKLSAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IHRl
eHRCbG9jayA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIG1lc3NhZ2Ut
PmFwcGVuZENoaWxkKFdURjo6bW92ZShpY29uKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAg
UmVmPEhUTUxFbGVtZW50PiB0ZXh0QmxvY2sgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KTsKICAgICB0ZXh0QmxvY2stPnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtdmFs
aWRhdGlvbi1idWJibGUtdGV4dC1ibG9jayIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKICAgICBtX21lc3NhZ2VIZWFkaW5nID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCk7CiAgICAgbV9tZXNzYWdlSGVhZGluZy0+c2V0UHNldWRvKEF0b21pY1N0cmluZygi
LXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1oZWFkaW5nIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkpOwotICAgIHRleHRCbG9jay0+YXBwZW5kQ2hpbGQobV9tZXNzYWdlSGVh
ZGluZywgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgdGV4dEJsb2NrLT5hcHBlbmRDaGlsZCgq
bV9tZXNzYWdlSGVhZGluZywgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgbV9tZXNzYWdlQm9k
eSA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIG1fbWVzc2FnZUJvZHkt
PnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtYm9keSIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICB0ZXh0QmxvY2stPmFw
cGVuZENoaWxkKG1fbWVzc2FnZUJvZHksIEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgIG1lc3Nh
Z2UtPmFwcGVuZENoaWxkKHRleHRCbG9jay5yZWxlYXNlKCksIEFTU0VSVF9OT19FWENFUFRJT04p
OwotICAgIG1fYnViYmxlLT5hcHBlbmRDaGlsZChtZXNzYWdlLnJlbGVhc2UoKSwgQVNTRVJUX05P
X0VYQ0VQVElPTik7CisgICAgdGV4dEJsb2NrLT5hcHBlbmRDaGlsZCgqbV9tZXNzYWdlQm9keSwg
QVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgbWVzc2FnZS0+YXBwZW5kQ2hpbGQoV1RGOjptb3Zl
KHRleHRCbG9jayksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIG1fYnViYmxlLT5hcHBlbmRD
aGlsZChXVEY6Om1vdmUobWVzc2FnZSksIEFTU0VSVF9OT19FWENFUFRJT04pOwogCiAgICAgc2V0
TWVzc2FnZURPTUFuZFN0YXJ0VGltZXIoKTsKIApAQCAtMjM3LDcgKzIzNyw3IEBAIHZvaWQgVmFs
aWRhdGlvbk1lc3NhZ2U6OmRlbGV0ZUJ1YmJsZVRyZWUoKQogICAgIGlmIChtX2J1YmJsZSkgewog
ICAgICAgICBtX21lc3NhZ2VIZWFkaW5nID0gbnVsbHB0cjsKICAgICAgICAgbV9tZXNzYWdlQm9k
eSA9IG51bGxwdHI7Ci0gICAgICAgIG1fZWxlbWVudC0+dXNlckFnZW50U2hhZG93Um9vdCgpLT5y
ZW1vdmVDaGlsZChtX2J1YmJsZS5nZXQoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAg
IG1fZWxlbWVudC0+dXNlckFnZW50U2hhZG93Um9vdCgpLT5yZW1vdmVDaGlsZCgqbV9idWJibGUs
IEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgICAgICBtX2J1YmJsZSA9IG51bGxwdHI7CiAgICAg
fQogICAgIG1fbWVzc2FnZSA9IFN0cmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCmluZGV4IDllNDgzYTk5ZDQ1ODkwZTA2
NzZjN2Y4YTI2OGZiYmE0ZDQwNTQwYzIuLjIyY2UzMzlkMzQ4MjU4NGZjZjEzZjRjYWVlZDhhMGI0
NTZmZmE3ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29u
dHJvbEVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNv
bnRyb2xFbGVtZW50cy5jcHAKQEAgLTgwNywyMSArODA3LDIxIEBAIHZvaWQgTWVkaWFDb250cm9s
Q2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50OjpyZWJ1aWxkVHJhY2tMaXN0TWVudSgpCiAg
ICAgQ2FwdGlvblVzZXJQcmVmZXJlbmNlcyogY2FwdGlvblByZWZlcmVuY2VzID0gZG9jdW1lbnQo
KS5wYWdlKCktPmdyb3VwKCkuY2FwdGlvblByZWZlcmVuY2VzKCk7CiAgICAgVmVjdG9yPFJlZlB0
cjxUZXh0VHJhY2s+PiB0cmFja3NGb3JNZW51ID0gY2FwdGlvblByZWZlcmVuY2VzLT5zb3J0ZWRU
cmFja0xpc3RGb3JNZW51KHRyYWNrTGlzdCk7CiAKLSAgICBSZWZQdHI8RWxlbWVudD4gY2FwdGlv
bnNIZWFkZXIgPSBkb2N1bWVudCgpLmNyZWF0ZUVsZW1lbnQoaDNUYWcsIEFTU0VSVF9OT19FWENF
UFRJT04pOworICAgIFJlZjxFbGVtZW50PiBjYXB0aW9uc0hlYWRlciA9IGRvY3VtZW50KCkuY3Jl
YXRlRWxlbWVudChoM1RhZywgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgY2FwdGlvbnNIZWFk
ZXItPmFwcGVuZENoaWxkKGRvY3VtZW50KCkuY3JlYXRlVGV4dE5vZGUodGV4dFRyYWNrU3VidGl0
bGVzVGV4dCgpKSk7Ci0gICAgYXBwZW5kQ2hpbGQoY2FwdGlvbnNIZWFkZXIpOwotICAgIFJlZlB0
cjxFbGVtZW50PiBjYXB0aW9uc01lbnVMaXN0ID0gZG9jdW1lbnQoKS5jcmVhdGVFbGVtZW50KHVs
VGFnLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBhcHBlbmRDaGlsZChXVEY6Om1vdmUoY2Fw
dGlvbnNIZWFkZXIpKTsKKyAgICBSZWY8RWxlbWVudD4gY2FwdGlvbnNNZW51TGlzdCA9IGRvY3Vt
ZW50KCkuY3JlYXRlRWxlbWVudCh1bFRhZywgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwLCBsZW5ndGggPSB0cmFja3NGb3JNZW51LnNpemUoKTsgaSA8IGxl
bmd0aDsgKytpKSB7CiAgICAgICAgIFJlZlB0cjxUZXh0VHJhY2s+IHRleHRUcmFjayA9IHRyYWNr
c0Zvck1lbnVbaV07Ci0gICAgICAgIFJlZlB0cjxFbGVtZW50PiBtZW51SXRlbSA9IGRvY3VtZW50
KCkuY3JlYXRlRWxlbWVudChsaVRhZywgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAgIFJl
ZjxFbGVtZW50PiBtZW51SXRlbSA9IGRvY3VtZW50KCkuY3JlYXRlRWxlbWVudChsaVRhZywgQVNT
RVJUX05PX0VYQ0VQVElPTik7CiAgICAgICAgIG1lbnVJdGVtLT5hcHBlbmRDaGlsZChkb2N1bWVu
dCgpLmNyZWF0ZVRleHROb2RlKGNhcHRpb25QcmVmZXJlbmNlcy0+ZGlzcGxheU5hbWVGb3JUcmFj
ayh0ZXh0VHJhY2suZ2V0KCkpKSk7Ci0gICAgICAgIGNhcHRpb25zTWVudUxpc3QtPmFwcGVuZENo
aWxkKG1lbnVJdGVtKTsKLSAgICAgICAgbV9tZW51SXRlbXMuYXBwZW5kKG1lbnVJdGVtKTsKLSAg
ICAgICAgbV9tZW51VG9UcmFja01hcC5hZGQobWVudUl0ZW0sIHRleHRUcmFjayk7CisgICAgICAg
IGNhcHRpb25zTWVudUxpc3QtPmFwcGVuZENoaWxkKG1lbnVJdGVtLmNvcHlSZWYoKSk7CisgICAg
ICAgIG1fbWVudUl0ZW1zLmFwcGVuZChtZW51SXRlbS5wdHIoKSk7CisgICAgICAgIG1fbWVudVRv
VHJhY2tNYXAuYWRkKG1lbnVJdGVtLnB0cigpLCB0ZXh0VHJhY2spOwogICAgIH0KIAotICAgIGFw
cGVuZENoaWxkKGNhcHRpb25zTWVudUxpc3QpOworICAgIGFwcGVuZENoaWxkKFdURjo6bW92ZShj
YXB0aW9uc01lbnVMaXN0KSk7CiAjZW5kaWYKIH0KIApAQCAtMTE4NiwxNiArMTE4NiwxNiBAQCB2
b2lkIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OnVwZGF0ZURpc3BsYXko
KQogICAgICAgICAgICAgLy8gdHJhY2sgY3VlIHJlZ2lvbiBpZGVudGlmaWVyLCBydW4gdGhlIGZv
bGxvd2luZyBzdWJzdGVwczoKICAgICAgICAgICAgIGlmIChkaXNwbGF5Qm94LT5oYXNDaGlsZE5v
ZGVzKCkgJiYgIWNvbnRhaW5zKGRpc3BsYXlCb3guZ2V0KCkpKSB7CiAgICAgICAgICAgICAgICAg
Ly8gTm90ZTogdGhlIGRpc3BsYXkgdHJlZSBvZiBhIGN1ZSBpcyByZW1vdmVkIHdoZW4gdGhlIGFj
dGl2ZSBmbGFnIG9mIHRoZSBjdWUgaXMgdW5zZXQuCi0gICAgICAgICAgICAgICAgYXBwZW5kQ2hp
bGQoZGlzcGxheUJveCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAgICAgICAgICAgYXBw
ZW5kQ2hpbGQoKmRpc3BsYXlCb3gsIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgICAgICAgICAg
ICAgIGN1ZS0+c2V0Rm9udFNpemUobV9mb250U2l6ZSwgbV92aWRlb0Rpc3BsYXlTaXplLnNpemUo
KSwgbV9mb250U2l6ZUlzSW1wb3J0YW50KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAgIC8vIExldCByZWdpb24gYmUgdGhlIFdlYlZUVCByZWdpb24gd2hvc2Ug
cmVnaW9uIGlkZW50aWZpZXIKICAgICAgICAgICAgIC8vIG1hdGNoZXMgdGhlIHRleHQgdHJhY2sg
Y3VlIHJlZ2lvbiBpZGVudGlmaWVyIG9mIGN1ZS4KLSAgICAgICAgICAgIFJlZlB0cjxIVE1MRGl2
RWxlbWVudD4gcmVnaW9uTm9kZSA9IHJlZ2lvbi0+Z2V0RGlzcGxheVRyZWUoKTsKKyAgICAgICAg
ICAgIFJlZjxIVE1MRGl2RWxlbWVudD4gcmVnaW9uTm9kZSA9IHJlZ2lvbi0+Z2V0RGlzcGxheVRy
ZWUoKTsKIAogICAgICAgICAgICAgLy8gQXBwZW5kIHRoZSByZWdpb24gdG8gdGhlIHZpZXdwb3J0
LCBpZiBpdCB3YXMgbm90IGFscmVhZHkuCi0gICAgICAgICAgICBpZiAoIWNvbnRhaW5zKHJlZ2lv
bk5vZGUuZ2V0KCkpKQorICAgICAgICAgICAgaWYgKCFjb250YWlucyhyZWdpb25Ob2RlLnB0cigp
KSkKICAgICAgICAgICAgICAgICBhcHBlbmRDaGlsZChyZWdpb24tPmdldERpc3BsYXlUcmVlKCkp
OwogCiAgICAgICAgICAgICByZWdpb24tPmFwcGVuZFRleHRUcmFja0N1ZUJveChkaXNwbGF5Qm94
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5jcHAKaW5kZXgg
M2RkNmRlODZkYTFmY2NkMWZlMWEwNjA4NTNkNDcxMjNhNGE3MGQ5OC4uOWRmOTk4ZjFhOTg3YmM5
MmZmNzg4NGQ1NTMzMTg2MmExNWNiOWIyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvTWVkaWFDb250cm9scy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9scy5jcHAKQEAgLTM4MCwxNCArMzgwLDE0IEBAIHZvaWQgTWVkaWFDb250
cm9sczo6Y3JlYXRlVGV4dFRyYWNrRGlzcGxheSgpCiAgICAgaWYgKG1fdGV4dERpc3BsYXlDb250
YWluZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUZXh0VHJh
Y2tDb250YWluZXJFbGVtZW50PiB0ZXh0RGlzcGxheUNvbnRhaW5lciA9IE1lZGlhQ29udHJvbFRl
eHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKLSAgICBtX3RleHRE
aXNwbGF5Q29udGFpbmVyID0gdGV4dERpc3BsYXlDb250YWluZXIuZ2V0KCk7CisgICAgUmVmPE1l
ZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ+IHRleHREaXNwbGF5Q29udGFpbmVy
ID0gTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
KCkpOworICAgIG1fdGV4dERpc3BsYXlDb250YWluZXIgPSB0ZXh0RGlzcGxheUNvbnRhaW5lci5w
dHIoKTsKIAogICAgIGlmIChtX21lZGlhQ29udHJvbGxlcikKICAgICAgICAgbV90ZXh0RGlzcGxh
eUNvbnRhaW5lci0+c2V0TWVkaWFDb250cm9sbGVyKG1fbWVkaWFDb250cm9sbGVyKTsKIAogICAg
IC8vIEluc2VydCBpdCBiZWZvcmUgdGhlIGZpcnN0IGNvbnRyb2xsZXIgZWxlbWVudCBzbyBpdCBh
bHdheXMgZGlzcGxheXMgYmVoaW5kIHRoZSBjb250cm9scy4KLSAgICBpbnNlcnRCZWZvcmUodGV4
dERpc3BsYXlDb250YWluZXIucmVsZWFzZSgpLCBtX3BhbmVsLCBJR05PUkVfRVhDRVBUSU9OKTsK
KyAgICBpbnNlcnRCZWZvcmUoV1RGOjptb3ZlKHRleHREaXNwbGF5Q29udGFpbmVyKSwgbV9wYW5l
bCwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CiAKIHZvaWQgTWVkaWFDb250cm9sczo6c2hvd1RleHRU
cmFja0Rpc3BsYXkoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVk
aWFDb250cm9sc0FwcGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29u
dHJvbHNBcHBsZS5jcHAKaW5kZXggOGZkYmEwZDAzNDg1MDNhMmE2ZThlMGQwZTg2NDdlOTNmOTY2
NGY4My4uMDkyNTZkNWI0ZWRhN2M4Zjk2MzllYmUyOTcyYTc4ZjA4YTI2ZDhmZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0FwcGxlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQXBwbGUuY3BwCkBAIC02
MywxNjUgKzYzLDE2NSBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbHM+IE1lZGlhQ29udHJvbHM6
OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbHNBcHBs
ZT4gTWVkaWFDb250cm9sc0FwcGxlOjpjcmVhdGVDb250cm9scyhEb2N1bWVudCYgZG9jdW1lbnQp
CiB7CiAgICAgaWYgKCFkb2N1bWVudC5wYWdlKCkpCi0gICAgICAgIHJldHVybiAwOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xzQXBwbGU+IGNvbnRy
b2xzID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbHNBcHBsZShkb2N1bWVudCkpOwogCi0gICAg
UmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudD4gcGFuZWwgPSBNZWRpYUNvbnRyb2xQYW5l
bEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgUmVmPE1lZGlhQ29udHJvbFBhbmVsRWxl
bWVudD4gcGFuZWwgPSBNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7
CiAKICAgICBFeGNlcHRpb25Db2RlIGVjOwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFJld2lu
ZEJ1dHRvbkVsZW1lbnQ+IHJld2luZEJ1dHRvbiA9IE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJvbHMtPm1fcmV3aW5kQnV0dG9uID0g
cmV3aW5kQnV0dG9uLmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChyZXdpbmRCdXR0b24u
cmVsZWFzZSgpLCBlYyk7CisgICAgUmVmPE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ+
IHJld2luZEJ1dHRvbiA9IE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCk7CisgICAgY29udHJvbHMtPm1fcmV3aW5kQnV0dG9uID0gcmV3aW5kQnV0dG9uLnB0
cigpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUocmV3aW5kQnV0dG9uKSwgZWMp
OwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRy
OwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50PiBwbGF5QnV0dG9u
ID0gTWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAg
Y29udHJvbHMtPm1fcGxheUJ1dHRvbiA9IHBsYXlCdXR0b24uZ2V0KCk7Ci0gICAgcGFuZWwtPmFw
cGVuZENoaWxkKHBsYXlCdXR0b24ucmVsZWFzZSgpLCBlYyk7CisgICAgUmVmPE1lZGlhQ29udHJv
bFBsYXlCdXR0b25FbGVtZW50PiBwbGF5QnV0dG9uID0gTWVkaWFDb250cm9sUGxheUJ1dHRvbkVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgY29udHJvbHMtPm1fcGxheUJ1dHRvbiA9IHBs
YXlCdXR0b24ucHRyKCk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdURjo6bW92ZShwbGF5QnV0
dG9uKSwgZWMpOwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVy
biBudWxscHRyOwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0
b25FbGVtZW50PiByZXR1cm5Ub1JlYWx0aW1lQnV0dG9uID0gTWVkaWFDb250cm9sUmV0dXJuVG9S
ZWFsdGltZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJvbHMtPm1f
cmV0dXJuVG9SZWFsVGltZUJ1dHRvbiA9IHJldHVyblRvUmVhbHRpbWVCdXR0b24uZ2V0KCk7Ci0g
ICAgcGFuZWwtPmFwcGVuZENoaWxkKHJldHVyblRvUmVhbHRpbWVCdXR0b24ucmVsZWFzZSgpLCBl
Yyk7CisgICAgUmVmPE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50PiBy
ZXR1cm5Ub1JlYWx0aW1lQnV0dG9uID0gTWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRv
bkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgY29udHJvbHMtPm1fcmV0dXJuVG9SZWFs
VGltZUJ1dHRvbiA9IHJldHVyblRvUmVhbHRpbWVCdXR0b24ucHRyKCk7CisgICAgcGFuZWwtPmFw
cGVuZENoaWxkKFdURjo6bW92ZShyZXR1cm5Ub1JlYWx0aW1lQnV0dG9uKSwgZWMpOwogICAgIGlm
IChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAg
aWYgKGRvY3VtZW50LnBhZ2UoKS0+dGhlbWUoKS51c2VzTWVkaWFDb250cm9sU3RhdHVzRGlzcGxh
eSgpKSB7Ci0gICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudD4g
c3RhdHVzRGlzcGxheSA9IE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQpOwotICAgICAgICBjb250cm9scy0+bV9zdGF0dXNEaXNwbGF5ID0gc3RhdHVzRGlz
cGxheS5nZXQoKTsKLSAgICAgICAgcGFuZWwtPmFwcGVuZENoaWxkKHN0YXR1c0Rpc3BsYXkucmVs
ZWFzZSgpLCBlYyk7CisgICAgICAgIFJlZjxNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVu
dD4gc3RhdHVzRGlzcGxheSA9IE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQpOworICAgICAgICBjb250cm9scy0+bV9zdGF0dXNEaXNwbGF5ID0gc3RhdHVz
RGlzcGxheS5wdHIoKTsKKyAgICAgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdURjo6bW92ZShzdGF0
dXNEaXNwbGF5KSwgZWMpOwogICAgICAgICBpZiAoZWMpCi0gICAgICAgICAgICByZXR1cm4gMDsK
KyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIFJlZlB0cjxNZWRpYUNv
bnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ+IHRpbWVsaW5lQ29udGFpbmVyID0gTWVkaWFD
b250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIFJl
ZjxNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ+IHRpbWVsaW5lQ29udGFpbmVy
ID0gTWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQp
OwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ+IGN1
cnJlbnRUaW1lRGlzcGxheSA9IE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ6
OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJvbHMtPm1fY3VycmVudFRpbWVEaXNwbGF5ID0g
Y3VycmVudFRpbWVEaXNwbGF5LmdldCgpOwotICAgIHRpbWVsaW5lQ29udGFpbmVyLT5hcHBlbmRD
aGlsZChjdXJyZW50VGltZURpc3BsYXkucmVsZWFzZSgpLCBlYyk7CisgICAgUmVmPE1lZGlhQ29u
dHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ+IGN1cnJlbnRUaW1lRGlzcGxheSA9IE1lZGlh
Q29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAg
Y29udHJvbHMtPm1fY3VycmVudFRpbWVEaXNwbGF5ID0gY3VycmVudFRpbWVEaXNwbGF5LnB0cigp
OworICAgIHRpbWVsaW5lQ29udGFpbmVyLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoY3VycmVudFRp
bWVEaXNwbGF5KSwgZWMpOwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAg
IHJldHVybiBudWxscHRyOwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVu
dD4gdGltZWxpbmUgPSBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCwgY29udHJvbHMuZ2V0KCkpOwotICAgIGNvbnRyb2xzLT5tX3RpbWVsaW5lID0gdGltZWxpbmUu
Z2V0KCk7Ci0gICAgdGltZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKHRpbWVsaW5lLnJlbGVh
c2UoKSwgZWMpOworICAgIFJlZjxNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ+IHRpbWVsaW5l
ID0gTWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xz
LmdldCgpKTsKKyAgICBjb250cm9scy0+bV90aW1lbGluZSA9IHRpbWVsaW5lLnB0cigpOworICAg
IHRpbWVsaW5lQ29udGFpbmVyLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUodGltZWxpbmUpLCBlYyk7
CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50PiB0
aW1lUmVtYWluaW5nRGlzcGxheSA9IE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBjb250cm9scy0+bV90aW1lUmVtYWluaW5nRGlz
cGxheSA9IHRpbWVSZW1haW5pbmdEaXNwbGF5LmdldCgpOwotICAgIHRpbWVsaW5lQ29udGFpbmVy
LT5hcHBlbmRDaGlsZCh0aW1lUmVtYWluaW5nRGlzcGxheS5yZWxlYXNlKCksIGVjKTsKKyAgICBS
ZWY8TWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50PiB0aW1lUmVtYWluaW5n
RGlzcGxheSA9IE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KTsKKyAgICBjb250cm9scy0+bV90aW1lUmVtYWluaW5nRGlzcGxheSA9IHRpbWVS
ZW1haW5pbmdEaXNwbGF5LnB0cigpOworICAgIHRpbWVsaW5lQ29udGFpbmVyLT5hcHBlbmRDaGls
ZChXVEY6Om1vdmUodGltZVJlbWFpbmluZ0Rpc3BsYXkpLCBlYyk7CiAgICAgaWYgKGVjKQotICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBjb250cm9scy0+
bV90aW1lbGluZUNvbnRhaW5lciA9IHRpbWVsaW5lQ29udGFpbmVyLmdldCgpOwotICAgIHBhbmVs
LT5hcHBlbmRDaGlsZCh0aW1lbGluZUNvbnRhaW5lci5yZWxlYXNlKCksIGVjKTsKKyAgICBjb250
cm9scy0+bV90aW1lbGluZUNvbnRhaW5lciA9IHRpbWVsaW5lQ29udGFpbmVyLnB0cigpOworICAg
IHBhbmVsLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUodGltZWxpbmVDb250YWluZXIpLCBlYyk7CiAg
ICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
ICAgICAvLyBGSVhNRTogT25seSBjcmVhdGUgd2hlbiBuZWVkZWQgPGh0dHA6Ly93ZWJraXQub3Jn
L2IvNTcxNjM+Ci0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudD4g
c2Vla0JhY2tCdXR0b24gPSBNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCk7Ci0gICAgY29udHJvbHMtPm1fc2Vla0JhY2tCdXR0b24gPSBzZWVrQmFja0J1
dHRvbi5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoc2Vla0JhY2tCdXR0b24ucmVsZWFz
ZSgpLCBlYyk7CisgICAgUmVmPE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudD4gc2Vl
a0JhY2tCdXR0b24gPSBNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCk7CisgICAgY29udHJvbHMtPm1fc2Vla0JhY2tCdXR0b24gPSBzZWVrQmFja0J1dHRv
bi5wdHIoKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHNlZWtCYWNrQnV0dG9u
KSwgZWMpOwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBu
dWxscHRyOwogCiAgICAgLy8gRklYTUU6IE9ubHkgY3JlYXRlIHdoZW4gbmVlZGVkIDxodHRwOi8v
d2Via2l0Lm9yZy9iLzU3MTYzPgotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1
dHRvbkVsZW1lbnQ+IHNlZWtGb3J3YXJkQnV0dG9uID0gTWVkaWFDb250cm9sU2Vla0ZvcndhcmRC
dXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNvbnRyb2xzLT5tX3NlZWtGb3J3
YXJkQnV0dG9uID0gc2Vla0ZvcndhcmRCdXR0b24uZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENo
aWxkKHNlZWtGb3J3YXJkQnV0dG9uLnJlbGVhc2UoKSwgZWMpOworICAgIFJlZjxNZWRpYUNvbnRy
b2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQ+IHNlZWtGb3J3YXJkQnV0dG9uID0gTWVkaWFDb250
cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNvbnRy
b2xzLT5tX3NlZWtGb3J3YXJkQnV0dG9uID0gc2Vla0ZvcndhcmRCdXR0b24ucHRyKCk7CisgICAg
cGFuZWwtPmFwcGVuZENoaWxkKFdURjo6bW92ZShzZWVrRm9yd2FyZEJ1dHRvbiksIGVjKTsKICAg
ICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAog
ICAgIGlmIChkb2N1bWVudC5wYWdlKCktPnRoZW1lKCkuc3VwcG9ydHNDbG9zZWRDYXB0aW9uaW5n
KCkpIHsKLSAgICAgICAgUmVmUHRyPE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVy
RWxlbWVudD4gY2xvc2VkQ2FwdGlvbnNDb250YWluZXIgPSBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0
aW9uc0NvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgICAgIFJlZjxNZWRp
YUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQ+IGNsb3NlZENhcHRpb25zQ29u
dGFpbmVyID0gTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQpOwogCi0gICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9u
c1RyYWNrTGlzdEVsZW1lbnQ+IGNsb3NlZENhcHRpb25zVHJhY2tMaXN0ID0gTWVkaWFDb250cm9s
Q2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xz
LmdldCgpKTsKLSAgICAgICAgY29udHJvbHMtPm1fY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QgPSBj
bG9zZWRDYXB0aW9uc1RyYWNrTGlzdC5nZXQoKTsKLSAgICAgICAgY2xvc2VkQ2FwdGlvbnNDb250
YWluZXItPmFwcGVuZENoaWxkKGNsb3NlZENhcHRpb25zVHJhY2tMaXN0LnJlbGVhc2UoKSwgZWMp
OworICAgICAgICBSZWY8TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50
PiBjbG9zZWRDYXB0aW9uc1RyYWNrTGlzdCA9IE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJh
Y2tMaXN0RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBjb250cm9scy5nZXQoKSk7CisgICAgICAg
IGNvbnRyb2xzLT5tX2Nsb3NlZENhcHRpb25zVHJhY2tMaXN0ID0gY2xvc2VkQ2FwdGlvbnNUcmFj
a0xpc3QucHRyKCk7CisgICAgICAgIGNsb3NlZENhcHRpb25zQ29udGFpbmVyLT5hcHBlbmRDaGls
ZChXVEY6Om1vdmUoY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QpLCBlYyk7CiAgICAgICAgIGlmIChl
YykKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
LSAgICAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxl
bWVudD4gdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24gPSBNZWRpYUNvbnRyb2xUb2dnbGVDbG9z
ZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkp
OwotICAgICAgICBjb250cm9scy0+bV90b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbiA9IHRvZ2ds
ZUNsb3NlZENhcHRpb25zQnV0dG9uLmdldCgpOwotICAgICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQo
dG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24ucmVsZWFzZSgpLCBlYyk7CisgICAgICAgIFJlZjxN
ZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ+IHRvZ2dsZUNsb3Nl
ZENhcHRpb25zQnV0dG9uID0gTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25F
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKKyAgICAgICAgY29udHJv
bHMtPm1fdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24gPSB0b2dnbGVDbG9zZWRDYXB0aW9uc0J1
dHRvbi5wdHIoKTsKKyAgICAgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdURjo6bW92ZSh0b2dnbGVD
bG9zZWRDYXB0aW9uc0J1dHRvbiksIGVjKTsKICAgICAgICAgaWYgKGVjKQotICAgICAgICAgICAg
cmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICBjb250cm9s
cy0+bV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5lciA9IGNsb3NlZENhcHRpb25zQ29udGFpbmVyLmdl
dCgpOwotICAgICAgICBjb250cm9scy0+YXBwZW5kQ2hpbGQoY2xvc2VkQ2FwdGlvbnNDb250YWlu
ZXIucmVsZWFzZSgpLCBlYyk7CisgICAgICAgIGNvbnRyb2xzLT5tX2Nsb3NlZENhcHRpb25zQ29u
dGFpbmVyID0gY2xvc2VkQ2FwdGlvbnNDb250YWluZXIucHRyKCk7CisgICAgICAgIGNvbnRyb2xz
LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoY2xvc2VkQ2FwdGlvbnNDb250YWluZXIpLCBlYyk7CiAg
ICAgICAgIGlmIChlYykKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAgICAgfQogCiAgICAgLy8gRklYTUU6IE9ubHkgY3JlYXRlIHdoZW4gbmVlZGVk
IDxodHRwOi8vd2Via2l0Lm9yZy9iLzU3MTYzPgotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxs
c2NyZWVuQnV0dG9uRWxlbWVudD4gZnVsbFNjcmVlbkJ1dHRvbiA9IE1lZGlhQ29udHJvbEZ1bGxz
Y3JlZW5CdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNvbnRyb2xzLT5tX2Z1
bGxTY3JlZW5CdXR0b24gPSBmdWxsU2NyZWVuQnV0dG9uLmdldCgpOwotICAgIHBhbmVsLT5hcHBl
bmRDaGlsZChmdWxsU2NyZWVuQnV0dG9uLnJlbGVhc2UoKSwgZWMpOworICAgIFJlZjxNZWRpYUNv
bnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudD4gZnVsbFNjcmVlbkJ1dHRvbiA9IE1lZGlhQ29u
dHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNvbnRy
b2xzLT5tX2Z1bGxTY3JlZW5CdXR0b24gPSBmdWxsU2NyZWVuQnV0dG9uLnB0cigpOworICAgIHBh
bmVsLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoZnVsbFNjcmVlbkJ1dHRvbiksIGVjKTsKIAogICAg
IC8vIFRoZSBtdXRlIGJ1dHRvbiBhbmQgdGhlIHNsaWRlciBlbGVtZW50IHNob3VsZCBiZSBpbiB0
aGUgc2FtZSBkaXYuCi0gICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBwYW5lbFZvbHVtZUNvbnRy
b2xDb250YWluZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBSZWY8
SFRNTERpdkVsZW1lbnQ+IHBhbmVsVm9sdW1lQ29udHJvbENvbnRhaW5lciA9IEhUTUxEaXZFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogCiAgICAgaWYgKGRvY3VtZW50LnBhZ2UoKS0+dGhlbWUo
KS51c2VzTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyKCkpIHsKLSAgICAgICAgUmVmUHRyPE1lZGlh
Q29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ+IHZvbHVtZVNsaWRlckNvbnRhaW5l
ciA9IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCk7CisgICAgICAgIFJlZjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVt
ZW50PiB2b2x1bWVTbGlkZXJDb250YWluZXIgPSBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250
YWluZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogCi0gICAgICAgIFJlZlB0cjxNZWRpYUNv
bnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1lbnQ+IHNsaWRlciA9IE1lZGlhQ29udHJvbFBhbmVs
Vm9sdW1lU2xpZGVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICAgICAgY29udHJvbHMt
Pm1fdm9sdW1lU2xpZGVyID0gc2xpZGVyLmdldCgpOwotICAgICAgICB2b2x1bWVTbGlkZXJDb250
YWluZXItPmFwcGVuZENoaWxkKHNsaWRlci5yZWxlYXNlKCksIGVjKTsKKyAgICAgICAgUmVmPE1l
ZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xpZGVyRWxlbWVudD4gc2xpZGVyID0gTWVkaWFDb250cm9s
UGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgICAgICBjb250
cm9scy0+bV92b2x1bWVTbGlkZXIgPSBzbGlkZXIucHRyKCk7CisgICAgICAgIHZvbHVtZVNsaWRl
ckNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHNsaWRlciksIGVjKTsKICAgICAgICAg
aWYgKGVjKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIAogICAgICAgICAvLyBUaGlzIGlzIGEgZHVwbGljYXRlIG11dGUgYnV0dG9uLCB3aGljaCBp
cyB2aXNpYmxlIGluIHNvbWUgcG9ydHMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgdm9sdW1lIGJhci4K
ICAgICAgICAgLy8gSXQncyBpbXBvcnRhbnQgb25seSB3aGVuIHRoZSB2b2x1bWUgYmFyIGlzIGRp
c3BsYXllZCBiZWxvdyB0aGUgY29udHJvbHMuCi0gICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xW
b2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudD4gdm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbiA9IE1l
ZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQp
OwotICAgICAgICBjb250cm9scy0+bV92b2x1bWVTbGlkZXJNdXRlQnV0dG9uID0gdm9sdW1lU2xp
ZGVyTXV0ZUJ1dHRvbi5nZXQoKTsKLSAgICAgICAgdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5hcHBl
bmRDaGlsZCh2b2x1bWVTbGlkZXJNdXRlQnV0dG9uLnJlbGVhc2UoKSwgZWMpOworICAgICAgICBS
ZWY8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ+IHZvbHVtZVNsaWRl
ck11dGVCdXR0b24gPSBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50KTsKKyAgICAgICAgY29udHJvbHMtPm1fdm9sdW1lU2xpZGVyTXV0ZUJ1
dHRvbiA9IHZvbHVtZVNsaWRlck11dGVCdXR0b24ucHRyKCk7CisgICAgICAgIHZvbHVtZVNsaWRl
ckNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHZvbHVtZVNsaWRlck11dGVCdXR0b24p
LCBlYyk7CiAKICAgICAgICAgaWYgKGVjKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICBjb250cm9scy0+bV92b2x1bWVTbGlkZXJD
b250YWluZXIgPSB2b2x1bWVTbGlkZXJDb250YWluZXIuZ2V0KCk7Ci0gICAgICAgIHBhbmVsVm9s
dW1lQ29udHJvbENvbnRhaW5lci0+YXBwZW5kQ2hpbGQodm9sdW1lU2xpZGVyQ29udGFpbmVyLnJl
bGVhc2UoKSwgZWMpOworICAgICAgICBjb250cm9scy0+bV92b2x1bWVTbGlkZXJDb250YWluZXIg
PSB2b2x1bWVTbGlkZXJDb250YWluZXIucHRyKCk7CisgICAgICAgIHBhbmVsVm9sdW1lQ29udHJv
bENvbnRhaW5lci0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHZvbHVtZVNsaWRlckNvbnRhaW5lciks
IGVjKTsKICAgICAgICAgaWYgKGVjKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxN
dXRlQnV0dG9uRWxlbWVudD4gcGFuZWxNdXRlQnV0dG9uID0gTWVkaWFDb250cm9sUGFuZWxNdXRl
QnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBjb250cm9scy5nZXQoKSk7Ci0gICAgY29u
dHJvbHMtPm1fcGFuZWxNdXRlQnV0dG9uID0gcGFuZWxNdXRlQnV0dG9uLmdldCgpOwotICAgIHBh
bmVsVm9sdW1lQ29udHJvbENvbnRhaW5lci0+YXBwZW5kQ2hpbGQocGFuZWxNdXRlQnV0dG9uLnJl
bGVhc2UoKSwgZWMpOworICAgIFJlZjxNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50
PiBwYW5lbE11dGVCdXR0b24gPSBNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKKyAgICBjb250cm9scy0+bV9wYW5lbE11
dGVCdXR0b24gPSBwYW5lbE11dGVCdXR0b24ucHRyKCk7CisgICAgcGFuZWxWb2x1bWVDb250cm9s
Q29udGFpbmVyLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUocGFuZWxNdXRlQnV0dG9uKSwgZWMpOwog
ICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwog
Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKHBhbmVsVm9sdW1lQ29udHJvbENvbnRhaW5lciwgZWMp
OworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUocGFuZWxWb2x1bWVDb250cm9sQ29u
dGFpbmVyKSwgZWMpOwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJl
dHVybiBudWxscHRyOwogCiAgICAgLy8gRklYTUU6IE9ubHkgY3JlYXRlIHdoZW4gbmVlZGVkIDxo
dHRwOi8vd2Via2l0Lm9yZy9iLzU3MTYzPgotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2Ny
ZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudD4gZnVsbFNjcmVlbk1pblZvbHVtZUJ1dHRvbiA9IE1l
ZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQpOwotICAgIGNvbnRyb2xzLT5tX2Z1bGxTY3JlZW5NaW5Wb2x1bWVCdXR0b24gPSBmdWxsU2Ny
ZWVuTWluVm9sdW1lQnV0dG9uLmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChmdWxsU2Ny
ZWVuTWluVm9sdW1lQnV0dG9uLnJlbGVhc2UoKSwgZWMpOworICAgIFJlZjxNZWRpYUNvbnRyb2xG
dWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudD4gZnVsbFNjcmVlbk1pblZvbHVtZUJ1dHRv
biA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQpOworICAgIGNvbnRyb2xzLT5tX2Z1bGxTY3JlZW5NaW5Wb2x1bWVCdXR0b24gPSBm
dWxsU2NyZWVuTWluVm9sdW1lQnV0dG9uLnB0cigpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChX
VEY6Om1vdmUoZnVsbFNjcmVlbk1pblZvbHVtZUJ1dHRvbiksIGVjKTsKICAgICBpZiAoZWMpCi0g
ICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIFJlZlB0cjxN
ZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudD4gZnVsbFNjcmVlblZvbHVt
ZVNsaWRlciA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQpOwotICAgIGNvbnRyb2xzLT5tX2Z1bGxTY3JlZW5Wb2x1bWVTbGlkZXIgPSBm
dWxsU2NyZWVuVm9sdW1lU2xpZGVyLmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChmdWxs
U2NyZWVuVm9sdW1lU2xpZGVyLnJlbGVhc2UoKSwgZWMpOworICAgIFJlZjxNZWRpYUNvbnRyb2xG
dWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudD4gZnVsbFNjcmVlblZvbHVtZVNsaWRlciA9IE1l
ZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQp
OworICAgIGNvbnRyb2xzLT5tX2Z1bGxTY3JlZW5Wb2x1bWVTbGlkZXIgPSBmdWxsU2NyZWVuVm9s
dW1lU2xpZGVyLnB0cigpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoZnVsbFNj
cmVlblZvbHVtZVNsaWRlciksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2Ny
ZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVudD4gZnVsbFNjcmVlbk1heFZvbHVtZUJ1dHRvbiA9IE1l
ZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQpOwotICAgIGNvbnRyb2xzLT5tX2Z1bGxTY3JlZW5NYXhWb2x1bWVCdXR0b24gPSBmdWxsU2Ny
ZWVuTWF4Vm9sdW1lQnV0dG9uLmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChmdWxsU2Ny
ZWVuTWF4Vm9sdW1lQnV0dG9uLnJlbGVhc2UoKSwgZWMpOworICAgIFJlZjxNZWRpYUNvbnRyb2xG
dWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVudD4gZnVsbFNjcmVlbk1heFZvbHVtZUJ1dHRv
biA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQpOworICAgIGNvbnRyb2xzLT5tX2Z1bGxTY3JlZW5NYXhWb2x1bWVCdXR0b24gPSBm
dWxsU2NyZWVuTWF4Vm9sdW1lQnV0dG9uLnB0cigpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChX
VEY6Om1vdmUoZnVsbFNjcmVlbk1heFZvbHVtZUJ1dHRvbiksIGVjKTsKICAgICBpZiAoZWMpCi0g
ICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGNvbnRyb2xz
LT5tX3BhbmVsID0gcGFuZWwuZ2V0KCk7Ci0gICAgY29udHJvbHMtPmFwcGVuZENoaWxkKHBhbmVs
LnJlbGVhc2UoKSwgZWMpOworICAgIGNvbnRyb2xzLT5tX3BhbmVsID0gcGFuZWwucHRyKCk7Cisg
ICAgY29udHJvbHMtPmFwcGVuZENoaWxkKFdURjo6bW92ZShwYW5lbCksIGVjKTsKICAgICBpZiAo
ZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIHJl
dHVybiBjb250cm9scy5yZWxlYXNlKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAppbmRleCAwYTFiYjgzZmIxOWM3NTU2ZGFjZDE2
Y2ZkZGM3ODY5ODRiZDUxNzgzLi45ZGRkNTUyYmQ4Y2VlOTZjNjFmZWFiODFmZTNkNDZiNmUwMGRl
OWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxl
bWVudC5jcHAKQEAgLTYxMSw3ICs2MTEsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFNsaWRlclRo
dW1iRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogICAgIH0KIH0KIAotUmVmUHRyPEVs
ZW1lbnQ+IFNsaWRlclRodW1iRWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNB
bmRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQpCitSZWY8RWxlbWVudD4gU2xpZGVy
VGh1bWJFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERv
Y3VtZW50JiB0YXJnZXREb2N1bWVudCkKIHsKICAgICByZXR1cm4gY3JlYXRlKHRhcmdldERvY3Vt
ZW50KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRo
dW1iRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVt
ZW50LmgKaW5kZXggNDhlY2Q1NTI2ZDBiMGE1NzgxNjBmNzJkODI2MmIyZjE3YmZlNmFiOC4uY2Yy
Zjg1YTdlZGRmNzk0ZTc4NWRmNzZiYWMwOWY5Mzg2NTVmZDIxMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmgKQEAgLTYyLDcgKzYyLDcgQEAg
cHJpdmF0ZToKICAgICBTbGlkZXJUaHVtYkVsZW1lbnQoRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1
YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVu
ZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwotICAgIHZp
cnR1YWwgUmVmUHRyPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hp
bGRyZW4oRG9jdW1lbnQmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxFbGVtZW50PiBjbG9u
ZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50Jikgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCBib29sIGlzRGlzYWJsZWRGb3JtQ29udHJvbCgpIGNvbnN0IG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgYm9vbCBtYXRjaGVzUmVhZFdyaXRlUHNldWRvQ2xhc3MoKSBjb25zdCBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIEVsZW1lbnQqIGZvY3VzRGVsZWdhdGUoKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xz
Um9vdEVsZW1lbnRNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdl
Q29udHJvbHNSb290RWxlbWVudE1hYy5jcHAKaW5kZXggYTQ0YTVkZTA2OTJhMTZiM2I0OWRiODc0
MTE5NWJhYWFkZTdmNTk2Yy4uYzQ0YzUxODgyY2I4MTg3ODYxYjY2YjU2Y2ZjNWE5YzIyOGUyYWVk
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJv
bHNSb290RWxlbWVudE1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFj
L0ltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5jcHAKQEAgLTg1LDEyICs4NSwxMyBAQCBSZWZQ
dHI8SW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50PiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQ6Om1h
eWJlQ3JlYXRlKERvY3VtZW50JgogICAgIGlmICghZG9jdW1lbnQucGFnZSgpKQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAotICAgIFJlZlB0cjxJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWM+
IGNvbnRyb2xzID0gYWRvcHRSZWYoKm5ldyBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMoZG9j
dW1lbnQpKTsKKyAgICBSZWY8SW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjPiBjb250cm9scyA9
IGFkb3B0UmVmKCpuZXcgSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjKGRvY3VtZW50KSk7CiAg
ICAgY29udHJvbHMtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNsYXNzQXR0ciwgIngtd2Via2l0
LWltYWdlLWNvbnRyb2xzIik7CiAKLSAgICBjb250cm9scy0+YXBwZW5kQ2hpbGQoSW1hZ2VDb250
cm9sc0J1dHRvbkVsZW1lbnRNYWM6Om1heWJlQ3JlYXRlKGRvY3VtZW50KSk7CisgICAgaWYgKFJl
ZlB0cjxJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYz4gYnV0dG9uID0gSW1hZ2VDb250cm9s
c0J1dHRvbkVsZW1lbnRNYWM6Om1heWJlQ3JlYXRlKGRvY3VtZW50KSkKKyAgICAgICAgY29udHJv
bHMtPmFwcGVuZENoaWxkKGJ1dHRvbi5yZWxlYXNlTm9uTnVsbCgpKTsKIAotICAgIHJldHVybiBj
b250cm9scy5yZWxlYXNlKCk7CisgICAgcmV0dXJuIFdURjo6bW92ZShjb250cm9scyk7CiB9CiAK
IEltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYzo6SW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFj
KERvY3VtZW50JiBkb2N1bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svVlRUQ3VlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcAppbmRl
eCBhOTY5MGQ2Zjk5NjE5ZjM3MDlhNmI4YTI1ZDZiZmUzMTUzNTBhYWVkLi45ZDZjYTcyZGE4ZDgx
NWI3N2YwNTk4ZjhkOWYyMzEyMzliOWY1Njk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1ZUVEN1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRD
dWUuY3BwCkBAIC00OTYsNyArNDk2LDcgQEAgdm9pZCBWVFRDdWU6OmNvcHlXZWJWVFROb2RlVG9E
T01UcmVlKENvbnRhaW5lck5vZGUqIHdlYlZUVE5vZGUsIENvbnRhaW5lck5vZGUqIHAKICAgICAg
ICAgICAgIGNsb25lZE5vZGUgPSBkb3duY2FzdDxXZWJWVFRFbGVtZW50Pigqbm9kZSkuY3JlYXRl
RXF1aXZhbGVudEhUTUxFbGVtZW50KG93bmVyRG9jdW1lbnQoKSk7CiAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgIGNsb25lZE5vZGUgPSBub2RlLT5jbG9uZU5vZGUoZmFsc2UpOwotICAgICAgICBw
YXJlbnQtPmFwcGVuZENoaWxkKGNsb25lZE5vZGUsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAg
ICAgICBwYXJlbnQtPmFwcGVuZENoaWxkKCpjbG9uZWROb2RlLCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKICAgICAgICAgaWYgKGlzPENvbnRhaW5lck5vZGU+KCpub2RlKSkKICAgICAgICAgICAgIGNv
cHlXZWJWVFROb2RlVG9ET01UcmVlKGRvd25jYXN0PENvbnRhaW5lck5vZGU+KG5vZGUpLCBkb3du
Y2FzdDxDb250YWluZXJOb2RlPihjbG9uZWROb2RlLmdldCgpKSk7CiAgICAgfQpAQCAtNTE4LDEw
ICs1MTgsMTAgQEAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBWVFRDdWU6OmNyZWF0ZUN1
ZVJlbmRlcmluZ1RyZWUoKQogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjbG9uZWRGcmFn
bWVudDsKICAgICBjcmVhdGVXZWJWVFROb2RlVHJlZSgpOwogICAgIGlmICghbV93ZWJWVFROb2Rl
VHJlZSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAg
Y2xvbmVkRnJhZ21lbnQgPSBEb2N1bWVudEZyYWdtZW50OjpjcmVhdGUob3duZXJEb2N1bWVudCgp
KTsKLSAgICBtX3dlYlZUVE5vZGVUcmVlLT5jbG9uZUNoaWxkTm9kZXMoY2xvbmVkRnJhZ21lbnQu
Z2V0KCkpOworICAgIG1fd2ViVlRUTm9kZVRyZWUtPmNsb25lQ2hpbGROb2RlcygqY2xvbmVkRnJh
Z21lbnQpOwogICAgIHJldHVybiBjbG9uZWRGcmFnbWVudC5yZWxlYXNlKCk7CiB9CiAKQEAgLTc4
NSw3ICs3ODUsNyBAQCB2b2lkIFZUVEN1ZTo6dXBkYXRlRGlzcGxheVRyZWUoY29uc3QgTWVkaWFU
aW1lJiBtb3ZpZVRpbWUpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1hcmtGdXR1cmVBbmRQYXN0
Tm9kZXMocmVmZXJlbmNlVHJlZS5nZXQoKSwgc3RhcnRNZWRpYVRpbWUoKSwgbW92aWVUaW1lKTsK
LSAgICBtX2N1ZUhpZ2hsaWdodEJveC0+YXBwZW5kQ2hpbGQocmVmZXJlbmNlVHJlZSk7CisgICAg
bV9jdWVIaWdobGlnaHRCb3gtPmFwcGVuZENoaWxkKHJlZmVyZW5jZVRyZWUucmVsZWFzZU5vbk51
bGwoKSk7CiB9CiAKIFZUVEN1ZUJveCogVlRUQ3VlOjpnZXREaXNwbGF5VHJlZShjb25zdCBJbnRT
aXplJiB2aWRlb1NpemUsIGludCBmb250U2l6ZSkKQEAgLTgxMiw4ICs4MTIsOCBAQCBWVFRDdWVC
b3gqIFZUVEN1ZTo6Z2V0RGlzcGxheVRyZWUoY29uc3QgSW50U2l6ZSYgdmlkZW9TaXplLCBpbnQg
Zm9udFNpemUpCiAgICAgbV9jdWVIaWdobGlnaHRCb3gtPnNldFBzZXVkbyhjdWVTaGFkb3dQc2V1
ZG9JZCgpKTsKIAogICAgIG1fY3VlQmFja2Ryb3BCb3gtPnNldFBzZXVkbyhjdWVCYWNrZHJvcFNo
YWRvd1BzZXVkb0lkKCkpOwotICAgIG1fY3VlQmFja2Ryb3BCb3gtPmFwcGVuZENoaWxkKG1fY3Vl
SGlnaGxpZ2h0Qm94LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKLSAgICBkaXNwbGF5VHJlZS0+YXBw
ZW5kQ2hpbGQobV9jdWVCYWNrZHJvcEJveCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgbV9j
dWVCYWNrZHJvcEJveC0+YXBwZW5kQ2hpbGQoKm1fY3VlSGlnaGxpZ2h0Qm94LCBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKKyAgICBkaXNwbGF5VHJlZS0+YXBwZW5kQ2hpbGQoKm1fY3VlQmFja2Ryb3BC
b3gsIEFTU0VSVF9OT19FWENFUFRJT04pOwogCiAgICAgLy8gRklYTUUoQlVHIDc5OTE2KTogUnVu
cyBvZiBjaGlsZHJlbiBvZiBXZWJWVFQgUnVieSBPYmplY3RzIHRoYXQgYXJlIG5vdAogICAgIC8v
IFdlYlZUVCBSdWJ5IFRleHQgT2JqZWN0cyBtdXN0IGJlIHdyYXBwZWQgaW4gYW5vbnltb3VzIGJv
eGVzIHdob3NlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5jcHAKaW5kZXggY2Ni
MzJlMDM5ZDVjNTNhZmVlYzA1MDJiNjVlMDBhYzFlNmZmZGVmMy4uODU3OTg2OGU5ODFmZmJmMjkx
NjYyYjY1NGQ1M2ViOWFkZmJkYmI1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9WVFRSZWdpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVn
aW9uLmNwcApAQCAtMzU0LDcgKzM1NCw3IEBAIHZvaWQgVlRUUmVnaW9uOjphcHBlbmRUZXh0VHJh
Y2tDdWVCb3goUGFzc1JlZlB0cjxWVFRDdWVCb3g+IGRpc3BsYXlCb3gpCiAgICAgaWYgKG1fY3Vl
Q29udGFpbmVyLT5jb250YWlucyhkaXNwbGF5Qm94LmdldCgpKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgbV9jdWVDb250YWluZXItPmFwcGVuZENoaWxkKGRpc3BsYXlCb3gsIEFTU0VSVF9OT19F
WENFUFRJT04pOworICAgIG1fY3VlQ29udGFpbmVyLT5hcHBlbmRDaGlsZCgqZGlzcGxheUJveCwg
QVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgZGlzcGxheUxhc3RUZXh0VHJhY2tDdWVCb3goKTsK
IH0KIApAQCAtNDA0LDE0ICs0MDQsMTQgQEAgdm9pZCBWVFRSZWdpb246OndpbGxSZW1vdmVUZXh0
VHJhY2tDdWVCb3goVlRUQ3VlQm94KiBib3gpCiAgICAgbV9jdWVDb250YWluZXItPnNldElubGlu
ZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlUb3AsIG1fY3VycmVudFRvcCwgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU19QWCk7CiB9CiAKLVBhc3NSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IFZUVFJlZ2lv
bjo6Z2V0RGlzcGxheVRyZWUoKQorSFRNTERpdkVsZW1lbnQmIFZUVFJlZ2lvbjo6Z2V0RGlzcGxh
eVRyZWUoKQogewogICAgIGlmICghbV9yZWdpb25EaXNwbGF5VHJlZSkgewogICAgICAgICBtX3Jl
Z2lvbkRpc3BsYXlUcmVlID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZSgqb3duZXJEb2N1bWVudCgp
KTsKICAgICAgICAgcHJlcGFyZVJlZ2lvbkRpc3BsYXlUcmVlKCk7CiAgICAgfQogCi0gICAgcmV0
dXJuIG1fcmVnaW9uRGlzcGxheVRyZWU7CisgICAgcmV0dXJuICptX3JlZ2lvbkRpc3BsYXlUcmVl
OwogfQogCiB2b2lkIFZUVFJlZ2lvbjo6cHJlcGFyZVJlZ2lvbkRpc3BsYXlUcmVlKCkKQEAgLTQ1
Myw3ICs0NTMsNyBAQCB2b2lkIFZUVFJlZ2lvbjo6cHJlcGFyZVJlZ2lvbkRpc3BsYXlUcmVlKCkK
ICAgICBtX2N1ZUNvbnRhaW5lci0+c2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eVRv
cCwgMC4wZiwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QWCk7CiAKICAgICBtX2N1ZUNvbnRhaW5l
ci0+c2V0UHNldWRvKHRleHRUcmFja0N1ZUNvbnRhaW5lclNoYWRvd1BzZXVkb0lkKCkpOwotICAg
IG1fcmVnaW9uRGlzcGxheVRyZWUtPmFwcGVuZENoaWxkKG1fY3VlQ29udGFpbmVyKTsKKyAgICBt
X3JlZ2lvbkRpc3BsYXlUcmVlLT5hcHBlbmRDaGlsZCgqbV9jdWVDb250YWluZXIpOwogCiAgICAg
Ly8gNy41IEV2ZXJ5IFdlYlZUVCByZWdpb24gb2JqZWN0IGlzIGluaXRpYWxpc2VkIHdpdGggdGhl
IGZvbGxvd2luZyBDU1MKICAgICBtX3JlZ2lvbkRpc3BsYXlUcmVlLT5zZXRQc2V1ZG8odGV4dFRy
YWNrUmVnaW9uU2hhZG93UHNldWRvSWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1ZUVFJlZ2lvbi5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdp
b24uaAppbmRleCA3NzcxZThlYjAwODU3YmY0MzJjMWNkNTRiNDg2MTc3MzZkMDRlNjVkLi44OTI1
YWYxYmMzNzIwNWViMDdhNWE3YjhlOGNmNjk3MjE4MGNhMDU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVlRUUmVnaW9uLmgKQEAgLTg5LDcgKzg5LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBp
c1Njcm9sbGluZ1JlZ2lvbigpIHsgcmV0dXJuIG1fc2Nyb2xsOyB9CiAKLSAgICBQYXNzUmVmUHRy
PEhUTUxEaXZFbGVtZW50PiBnZXREaXNwbGF5VHJlZSgpOworICAgIEhUTUxEaXZFbGVtZW50JiBn
ZXREaXNwbGF5VHJlZSgpOwogICAgIAogICAgIHZvaWQgYXBwZW5kVGV4dFRyYWNrQ3VlQm94KFBh
c3NSZWZQdHI8VlRUQ3VlQm94Pik7CiAgICAgdm9pZCBkaXNwbGF5TGFzdFRleHRUcmFja0N1ZUJv
eCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5jcHAKaW5kZXgg
NGEyZjMxYjNlNTYzNGYzMTAyZmY1NGViZjBmYTBkOTY2YTk1N2EwZS4uMTQ5NmJiMDNhNmE1MDBm
NWI3OTYxNDBkNTkwYzNkOTVmZWZiMjIwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9XZWJWVFRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1dlYlZUVEVsZW1lbnQuY3BwCkBAIC04MCwxMSArODAsMTEgQEAgUmVmPFdlYlZUVEVsZW1lbnQ+
IFdlYlZUVEVsZW1lbnQ6OmNyZWF0ZShXZWJWVFROb2RlVHlwZSBub2RlVHlwZSwgRG9jdW1lbnQm
IGRvY3UKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJWVFRFbGVtZW50KG5vZGVUeXBlLCBk
b2N1bWVudCkpOwogfQogCi1SZWZQdHI8RWxlbWVudD4gV2ViVlRURWxlbWVudDo6Y2xvbmVFbGVt
ZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQp
CitSZWY8RWxlbWVudD4gV2ViVlRURWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0
ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQpCiB7Ci0gICAgUmVmUHRyPFdl
YlZUVEVsZW1lbnQ+IGNsb25lID0gY3JlYXRlKHN0YXRpY19jYXN0PFdlYlZUVE5vZGVUeXBlPiht
X3dlYlZUVE5vZGVUeXBlKSwgdGFyZ2V0RG9jdW1lbnQpOworICAgIFJlZjxXZWJWVFRFbGVtZW50
PiBjbG9uZSA9IGNyZWF0ZShzdGF0aWNfY2FzdDxXZWJWVFROb2RlVHlwZT4obV93ZWJWVFROb2Rl
VHlwZSksIHRhcmdldERvY3VtZW50KTsKICAgICBjbG9uZS0+c2V0TGFuZ3VhZ2UobV9sYW5ndWFn
ZSk7Ci0gICAgcmV0dXJuIGNsb25lOworICAgIHJldHVybiBXVEY6Om1vdmUoY2xvbmUpOwogfQog
CiBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBXZWJWVFRFbGVtZW50OjpjcmVhdGVFcXVpdmFsZW50
SFRNTEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1dlYlZUVEVsZW1lbnQuaAppbmRleCAxYmU3NjM2YzM2NjNkODU4YmQ3NjM2YWVjY2MxOWI3MDZk
ZmM2YjhjLi44OWQzZDJjNTRkYmM2YjllNTIwNjJmZjRmMmFjZjc0OThiOWZjN2I2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuaApAQCAtNDksNyArNDksNyBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJWVFRFbGVtZW50PiBjcmVhdGUoY29uc3QgV2ViVlRU
Tm9kZVR5cGUsIERvY3VtZW50Jik7CiAgICAgUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRl
RXF1aXZhbGVudEhUTUxFbGVtZW50KERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIFJlZlB0cjxF
bGVtZW50PiBjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50
Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91
dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBz
ZXRXZWJWVFROb2RlVHlwZShXZWJWVFROb2RlVHlwZSB0eXBlKSB7IG1fd2ViVlRUTm9kZVR5cGUg
PSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odHlwZSk7IH0KICAgICBXZWJWVFROb2RlVHlwZSB3ZWJW
VFROb2RlVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFdlYlZUVE5vZGVUeXBlPiht
X3dlYlZUVE5vZGVUeXBlKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNTU0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDU1NBZ2VudC5jcHAKaW5kZXggYjZhMzExM2VmN2Q2Nzk5NDA1ZWFhMzE0MzA2M2Y4YmJhZGVh
MDJiNS4uODU3YWQxOTE3Njc1NjdhNWJhMTc1YjY5Y2NhZjIxNGY0NjA2MmJjMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCkBAIC03OTYsNyAr
Nzk2LDcgQEAgSW5zcGVjdG9yU3R5bGVTaGVldCogSW5zcGVjdG9yQ1NTQWdlbnQ6OmNyZWF0ZUlu
c3BlY3RvclN0eWxlU2hlZXRGb3JEb2N1bWVudChEb2MKICAgICAvLyBTZXQgdGhpcyBmbGFnLCBz
byB3aGVuIHdlIGNyZWF0ZSBpdCwgd2UgcHV0IGl0IGludG8gdGhlIHZpYSBpbnNwZWN0b3IgbWFw
LgogICAgIG1fY3JlYXRpbmdWaWFJbnNwZWN0b3JTdHlsZVNoZWV0ID0gdHJ1ZTsKICAgICBJbmxp
bmVTdHlsZU92ZXJyaWRlU2NvcGUgb3ZlcnJpZGVTY29wZShkb2N1bWVudCk7Ci0gICAgdGFyZ2V0
Tm9kZS0+YXBwZW5kQ2hpbGQoc3R5bGVFbGVtZW50LCBlYyk7CisgICAgdGFyZ2V0Tm9kZS0+YXBw
ZW5kQ2hpbGQoc3R5bGVFbGVtZW50LnJlbGVhc2VOb25OdWxsKCksIGVjKTsKICAgICBtX2NyZWF0
aW5nVmlhSW5zcGVjdG9yU3R5bGVTaGVldCA9IGZhbHNlOwogICAgIGlmIChlYykKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250
cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCmluZGV4
IGNlYjRhYTFhNTE2ZjQ3ZDU2OTgwMWI1NjYwZDc5ZjNlNjkzMjdjMmYuLjg4NzcyOWQzOGYyMTYw
MWQ2Nzg2OGU5Y2ZmNTA3YTFjMWE0MzM1YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRy
b2xsZXIuY3BwCkBAIC0xMzgsNyArMTM4LDcgQEAgc3RhdGljIFBhc3NSZWZQdHI8RG9jdW1lbnRG
cmFnbWVudD4gZG9jdW1lbnRGcmFnbWVudEZyb21EcmFnRGF0YShEcmFnRGF0YSYgZHJhZ0QKICAg
ICAgICAgICAgIFN0cmluZyB0aXRsZTsKICAgICAgICAgICAgIFN0cmluZyB1cmwgPSBkcmFnRGF0
YS5hc1VSTChEcmFnRGF0YTo6RG9Ob3RDb252ZXJ0RmlsZW5hbWVzLCAmdGl0bGUpOwogICAgICAg
ICAgICAgaWYgKCF1cmwuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAgICAgUmVmUHRyPEhUTUxB
bmNob3JFbGVtZW50PiBhbmNob3IgPSBIVE1MQW5jaG9yRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
KTsKKyAgICAgICAgICAgICAgICBSZWY8SFRNTEFuY2hvckVsZW1lbnQ+IGFuY2hvciA9IEhUTUxB
bmNob3JFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgICAgICAgICAgICAgIGFuY2hvci0+
c2V0SHJlZih1cmwpOwogICAgICAgICAgICAgICAgIGlmICh0aXRsZS5pc0VtcHR5KCkpIHsKICAg
ICAgICAgICAgICAgICAgICAgLy8gVHJ5IHRoZSBwbGFpbiB0ZXh0IGZpcnN0IGJlY2F1c2UgdGhl
IHVybCBtaWdodCBiZSBub3JtYWxpemVkIG9yIGVzY2FwZWQuCkBAIC0xNDcsMTEgKzE0NywxMCBA
QCBzdGF0aWMgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBkb2N1bWVudEZyYWdtZW50RnJv
bURyYWdEYXRhKERyYWdEYXRhJiBkcmFnRAogICAgICAgICAgICAgICAgICAgICBpZiAodGl0bGUu
aXNFbXB0eSgpKQogICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGUgPSB1cmw7CiAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIFJlZlB0cjxOb2RlPiBhbmNob3JUZXh0ID0gZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUodGl0bGUpOwotICAgICAgICAgICAgICAgIGFuY2hvci0+YXBw
ZW5kQ2hpbGQoYW5jaG9yVGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7Ci0gICAgICAgICAgICAgICAg
UmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1l
bnRGcmFnbWVudCgpOwotICAgICAgICAgICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChhbmNo
b3IsIElHTk9SRV9FWENFUFRJT04pOwotICAgICAgICAgICAgICAgIHJldHVybiBmcmFnbWVudC5n
ZXQoKTsKKyAgICAgICAgICAgICAgICBhbmNob3ItPmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKHRpdGxlKSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgICAgICAgICAgICAgUmVm
PERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFn
bWVudCgpOworICAgICAgICAgICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUo
YW5jaG9yKSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZyYWdt
ZW50LnB0cigpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpAQCAtMTYwLDcgKzE1
OSw3IEBAIHN0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGRvY3VtZW50RnJhZ21l
bnRGcm9tRHJhZ0RhdGEoRHJhZ0RhdGEmIGRyYWdECiAgICAgICAgIHJldHVybiBjcmVhdGVGcmFn
bWVudEZyb21UZXh0KGNvbnRleHQsIGRyYWdEYXRhLmFzUGxhaW5UZXh0KCkpLmdldCgpOwogICAg
IH0KIAotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxscHRyOwogfQogCiBib29sIERyYWdD
b250cm9sbGVyOjpkcmFnSXNNb3ZlKEZyYW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24sIERyYWdEYXRh
JiBkcmFnRGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcAppbmRleCA2
ZjNjYTgzZTg1MzIyMmRmZDVlODA1MjcyZjBmNWM5NDY0MzRkMjI0Li44YWRmY2ZhNDEwYWJlNDdl
MzMyNGFlNWI4ZDkyNDNmNTY2NjQ1ZDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVs
ZW1lbnQuY3BwCkBAIC0xNTYsOSArMTU2LDkgQEAgYm9vbCBTVkdTY3JpcHRFbGVtZW50OjpoYXNT
b3VyY2VBdHRyaWJ1dGUoKSBjb25zdAogICAgIHJldHVybiBoYXNBdHRyaWJ1dGUoWExpbmtOYW1l
czo6aHJlZkF0dHIpOwogfQogCi1SZWZQdHI8RWxlbWVudD4gU1ZHU2NyaXB0RWxlbWVudDo6Y2xv
bmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9j
dW1lbnQpCitSZWY8RWxlbWVudD4gU1ZHU2NyaXB0RWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aG91
dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdTY3JpcHRFbGVtZW50KHRhZ1FOYW1lKCksIHRhcmdldERv
Y3VtZW50LCBmYWxzZSwgYWxyZWFkeVN0YXJ0ZWQoKSkpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFNWR1NjcmlwdEVsZW1lbnQodGFnUU5hbWUoKSwgdGFyZ2V0RG9jdW1lbnQsIGZhbHNlLCBh
bHJlYWR5U3RhcnRlZCgpKSk7CiB9CiAKICNpZm5kZWYgTkRFQlVHCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1NjcmlwdEVsZW1lbnQuaAppbmRleCA0YzFhYTA4ZTZkMmZjOGZmOGRhOTlmNDI3Y2VjN2Q0ZjJj
NjRlMzA1Li41MzVlNDJlNmYwNjQ2ZDgwMTA0MTkwOTNjNjIyOTI0YjM4M2Q3MTAxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKQEAgLTY1LDcgKzY1LDcgQEAgcHJpdmF0ZToK
IAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaExvYWRFdmVudCgpIG92ZXJyaWRlIHsgU1ZHRXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6ZGlzcGF0Y2hMb2FkRXZlbnQodGhpcyk7IH0KIAotICAg
IHZpcnR1YWwgUmVmUHRyPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5k
Q2hpbGRyZW4oRG9jdW1lbnQmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxFbGVtZW50PiBj
bG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50Jikgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUm
KSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgLy8gU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCmluZGV4IDcwNGZlNGEy
Mjk4MmU5YjQwNDQxNTkxMjE3ZDM3NWQ1NTc0ZDUzNWIuLjY0ZTEwYWE2MDA0ZjQ3MDA2MWJmMzVh
NjI5YTA0ZDg4ODcyYjJkNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKQEAg
LTMzMiw3ICszMzIsNyBAQCBzdGF0aWMgdm9pZCByZW1vdmVEaXNhbGxvd2VkRWxlbWVudHNGcm9t
U3VidHJlZShTVkdFbGVtZW50JiBzdWJ0cmVlKQogICAgIGZvciAoYXV0byogZWxlbWVudCA6IGRp
c2FsbG93ZWRFbGVtZW50cykgewogICAgICAgICBmb3IgKGF1dG8mIGRlc2NlbmRhbnQgOiBkZXNj
ZW5kYW50c09mVHlwZTxTVkdFbGVtZW50PigqZWxlbWVudCkpCiAgICAgICAgICAgICBkZXNjZW5k
YW50LnNldENvcnJlc3BvbmRpbmdFbGVtZW50KG51bGxwdHIpOwotICAgICAgICBlbGVtZW50LT5w
YXJlbnROb2RlKCktPnJlbW92ZUNoaWxkKGVsZW1lbnQpOworICAgICAgICBlbGVtZW50LT5wYXJl
bnROb2RlKCktPnJlbW92ZUNoaWxkKCplbGVtZW50KTsKICAgICB9CiB9CiAKQEAgLTQwNSw3ICs0
MDUsNyBAQCBTVkdFbGVtZW50KiBTVkdVc2VFbGVtZW50OjpmaW5kVGFyZ2V0KFN0cmluZyogdGFy
Z2V0SUQpIGNvbnN0CiAKIHZvaWQgU1ZHVXNlRWxlbWVudDo6Y2xvbmVUYXJnZXQoQ29udGFpbmVy
Tm9kZSYgY29udGFpbmVyLCBTVkdFbGVtZW50JiB0YXJnZXQpIGNvbnN0CiB7Ci0gICAgUmVmPFNW
R0VsZW1lbnQ+IHRhcmdldENsb25lID0gc3RhdGljX3BvaW50ZXJfY2FzdDxTVkdFbGVtZW50Pih0
YXJnZXQuY2xvbmVFbGVtZW50V2l0aENoaWxkcmVuKGRvY3VtZW50KCkpKS5yZWxlYXNlTm9uTnVs
bCgpOworICAgIFJlZjxTVkdFbGVtZW50PiB0YXJnZXRDbG9uZSA9IHN0YXRpY19jYXN0PFNWR0Vs
ZW1lbnQmPih0YXJnZXQuY2xvbmVFbGVtZW50V2l0aENoaWxkcmVuKGRvY3VtZW50KCkpLmdldCgp
KTsKICAgICBhc3NvY2lhdGVDbG9uZXNXaXRoT3JpZ2luYWxzKHRhcmdldENsb25lLmdldCgpLCB0
YXJnZXQpOwogICAgIHJlbW92ZURpc2FsbG93ZWRFbGVtZW50c0Zyb21TdWJ0cmVlKHRhcmdldENs
b25lLmdldCgpKTsKICAgICB0cmFuc2ZlclNpemVBdHRyaWJ1dGVzVG9UYXJnZXRDbG9uZSh0YXJn
ZXRDbG9uZS5nZXQoKSk7CkBAIC00MTksNyArNDE5LDcgQEAgc3RhdGljIHZvaWQgY2xvbmVEYXRh
QW5kQ2hpbGRyZW4oU1ZHRWxlbWVudCYgcmVwbGFjZW1lbnRDbG9uZSwgU1ZHRWxlbWVudCYgb3Jp
Z2kKICAgICBBU1NFUlQoIXJlcGxhY2VtZW50Q2xvbmUucGFyZW50Tm9kZSgpKTsKIAogICAgIHJl
cGxhY2VtZW50Q2xvbmUuY2xvbmVEYXRhRnJvbUVsZW1lbnQob3JpZ2luYWxDbG9uZSk7Ci0gICAg
b3JpZ2luYWxDbG9uZS5jbG9uZUNoaWxkTm9kZXMoJnJlcGxhY2VtZW50Q2xvbmUpOworICAgIG9y
aWdpbmFsQ2xvbmUuY2xvbmVDaGlsZE5vZGVzKHJlcGxhY2VtZW50Q2xvbmUpOwogICAgIGFzc29j
aWF0ZVJlcGxhY2VtZW50Q2xvbmVzV2l0aE9yaWdpbmFscyhyZXBsYWNlbWVudENsb25lLCBvcmln
aW5hbENsb25lKTsKICAgICByZW1vdmVEaXNhbGxvd2VkRWxlbWVudHNGcm9tU3VidHJlZShyZXBs
YWNlbWVudENsb25lKTsKIH0KQEAgLTQ0OCw3ICs0NDgsNyBAQCB2b2lkIFNWR1VzZUVsZW1lbnQ6
OmV4cGFuZFVzZUVsZW1lbnRzSW5TaGFkb3dUcmVlKCkgY29uc3QKICAgICAgICAgaWYgKHRhcmdl
dCkKICAgICAgICAgICAgIG9yaWdpbmFsQ2xvbmUuY2xvbmVUYXJnZXQocmVwbGFjZW1lbnRDbG9u
ZS5nZXQoKSwgKnRhcmdldCk7CiAKLSAgICAgICAgb3JpZ2luYWxDbG9uZS5wYXJlbnROb2RlKCkt
PnJlcGxhY2VDaGlsZChyZXBsYWNlbWVudENsb25lLnB0cigpLCAmb3JpZ2luYWxDbG9uZSk7Cisg
ICAgICAgIG9yaWdpbmFsQ2xvbmUucGFyZW50Tm9kZSgpLT5yZXBsYWNlQ2hpbGQocmVwbGFjZW1l
bnRDbG9uZS5jb3B5UmVmKCksIG9yaWdpbmFsQ2xvbmUpOwogCiAgICAgICAgIC8vIFJlc3VtZSBp
dGVyYXRpbmcsIHN0YXJ0aW5nIGp1c3QgaW5zaWRlIHRoZSByZXBsYWNlbWVudCBjbG9uZS4KICAg
ICAgICAgaXQgPSBkZXNjZW5kYW50cy5mcm9tKHJlcGxhY2VtZW50Q2xvbmUuZ2V0KCkpOwpAQCAt
NDcyLDcgKzQ3Miw3IEBAIHZvaWQgU1ZHVXNlRWxlbWVudDo6ZXhwYW5kU3ltYm9sRWxlbWVudHNJ
blNoYWRvd1RyZWUoKSBjb25zdAogICAgICAgICBhdXRvIHJlcGxhY2VtZW50Q2xvbmUgPSBTVkdT
VkdFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CiAgICAgICAgIGNsb25lRGF0YUFuZENoaWxk
cmVuKHJlcGxhY2VtZW50Q2xvbmUuZ2V0KCksIG9yaWdpbmFsQ2xvbmUpOwogCi0gICAgICAgIG9y
aWdpbmFsQ2xvbmUucGFyZW50Tm9kZSgpLT5yZXBsYWNlQ2hpbGQocmVwbGFjZW1lbnRDbG9uZS5w
dHIoKSwgJm9yaWdpbmFsQ2xvbmUpOworICAgICAgICBvcmlnaW5hbENsb25lLnBhcmVudE5vZGUo
KS0+cmVwbGFjZUNoaWxkKHJlcGxhY2VtZW50Q2xvbmUuY29weVJlZigpLCBvcmlnaW5hbENsb25l
KTsKIAogICAgICAgICAvLyBSZXN1bWUgaXRlcmF0aW5nLCBzdGFydGluZyBqdXN0IGluc2lkZSB0
aGUgcmVwbGFjZW1lbnQgY2xvbmUuCiAgICAgICAgIGl0ID0gZGVzY2VuZGFudHMuZnJvbShyZXBs
YWNlbWVudENsb25lLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxU
cmVlVmlld2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxUcmVlVmlld2VyLmNwcAppbmRl
eCA0MDk2ZTQzNWQ2M2Y1NzA4NDQ4MDJjMjE3NzA4YWRkOWViNjA1MTc1Li5hOWY3N2VhMTYzODQ4
Zjg1MGI2MzVjOTJiOTBjYTk0Mjc3MmY4OGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94
bWwvWE1MVHJlZVZpZXdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTFRyZWVWaWV3
ZXIuY3BwCkBAIC02MSw4ICs2MSw4IEBAIHZvaWQgWE1MVHJlZVZpZXdlcjo6dHJhbnNmb3JtRG9j
dW1lbnRUb1RyZWVWaWV3KCkKICAgICBtX2RvY3VtZW50LmZyYW1lKCktPnNjcmlwdCgpLmV2YWx1
YXRlKFNjcmlwdFNvdXJjZUNvZGUoQXRvbWljU3RyaW5nKCJwcmVwYXJlV2ViS2l0WE1MVmlld2Vy
KCdUaGlzIFhNTCBmaWxlIGRvZXMgbm90IGFwcGVhciB0byBoYXZlIGFueSBzdHlsZSBpbmZvcm1h
dGlvbiBhc3NvY2lhdGVkIHdpdGggaXQuIFRoZSBkb2N1bWVudCB0cmVlIGlzIHNob3duIGJlbG93
LicpOyIpKSk7CiAKICAgICBTdHJpbmcgY3NzU3RyaW5nID0gU3RyaW5nSW1wbDo6Y3JlYXRlV2l0
aG91dENvcHlpbmcoWE1MVmlld2VyX2Nzcywgc2l6ZW9mKFhNTFZpZXdlcl9jc3MpKTsKLSAgICBS
ZWZQdHI8VGV4dD4gdGV4dCA9IG1fZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzU3RyaW5nKTsK
LSAgICBtX2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKFN0cmluZyhBU0NJSUxpdGVyYWwoInhtbC12
aWV3ZXItc3R5bGUiKSkpLT5hcHBlbmRDaGlsZCh0ZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAg
ICBSZWY8VGV4dD4gdGV4dCA9IG1fZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzU3RyaW5nKTsK
KyAgICBtX2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKFN0cmluZyhBU0NJSUxpdGVyYWwoInhtbC12
aWV3ZXItc3R5bGUiKSkpLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUodGV4dCksIElHTk9SRV9FWENF
UFRJT04pOwogICAgIG1fZG9jdW1lbnQuc3R5bGVSZXNvbHZlckNoYW5nZWQoUmVjYWxjU3R5bGVJ
bW1lZGlhdGVseSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4
IDBiMzIxMjA3YzMyM2U0ZGEwMDkzMGU5YzgwNGUwZDIzOGE5NGNkZDkuLjY2MjUzOWYzZjk3MmYw
MTRmMTNhYzc4OTA2OWUzN2QwZjM2MzUzY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJG
cmFtZS5tbQpAQCAtODkwLDkgKzg5MCw5IEBAIHN0YXRpYyBpbmxpbmUgV2ViRGF0YVNvdXJjZSAq
ZGF0YVNvdXJjZShEb2N1bWVudExvYWRlciogbG9hZGVyKQogICAgIFJlZlB0cjxEb2N1bWVudEZy
YWdtZW50PiBmcmFnbWVudCA9IGRvY3VtZW50LT5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7CiAK
ICAgICBmb3IgKGF1dG8qIG5vZGUgOiBub2Rlc1ZlY3RvcikgewotICAgICAgICBSZWZQdHI8RWxl
bWVudD4gZWxlbWVudCA9IGNyZWF0ZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50KCpkb2N1bWVudCk7
Ci0gICAgICAgIGVsZW1lbnQtPmFwcGVuZENoaWxkKG5vZGUpOwotICAgICAgICBmcmFnbWVudC0+
YXBwZW5kQ2hpbGQoZWxlbWVudC5yZWxlYXNlKCkpOworICAgICAgICBSZWY8RWxlbWVudD4gZWxl
bWVudCA9IGNyZWF0ZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50KCpkb2N1bWVudCk7CisgICAgICAg
IGVsZW1lbnQtPmFwcGVuZENoaWxkKCpub2RlKTsKKyAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENo
aWxkKFdURjo6bW92ZShlbGVtZW50KSk7CiAgICAgfQogCiAgICAgcmV0dXJuIGtpdChmcmFnbWVu
dC5yZWxlYXNlKCkuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvUERGL1BERlBsdWdpbi5tbQppbmRleCA1M2RiZmE1OTA2ZTM3MmIxMzRmM2U4OWNjYzRk
YjJiYWEyMDBjMGRhLi4xNzM0MGRlMzYzNDk3Mjc4YTBkODhkZTQ1ZDVjNmI5Mzk0OWZkY2I3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdp
bi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdp
bi5tbQpAQCAtNTI1LDExICs1MjUsMTEgQEAgUERGUGx1Z2luOjpQREZQbHVnaW4oV2ViRnJhbWUq
IGZyYW1lKQogICAgICAgICBtX2Fubm90YXRpb25Db250YWluZXIgPSBkb2N1bWVudC0+Y3JlYXRl
RWxlbWVudChkaXZUYWcsIGZhbHNlKTsKICAgICAgICAgbV9hbm5vdGF0aW9uQ29udGFpbmVyLT5z
ZXRBdHRyaWJ1dGUoaWRBdHRyLCAiYW5ub3RhdGlvbkNvbnRhaW5lciIpOwogCi0gICAgICAgIFJl
ZlB0cjxFbGVtZW50PiBtX2Fubm90YXRpb25TdHlsZSA9IGRvY3VtZW50LT5jcmVhdGVFbGVtZW50
KHN0eWxlVGFnLCBmYWxzZSk7Ci0gICAgICAgIG1fYW5ub3RhdGlvblN0eWxlLT5zZXRUZXh0Q29u
dGVudChhbm5vdGF0aW9uU3R5bGUsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAgICBSZWY8
RWxlbWVudD4gYW5ub3RhdGlvblN0eWxlRWxlbWVudCA9IGRvY3VtZW50LT5jcmVhdGVFbGVtZW50
KHN0eWxlVGFnLCBmYWxzZSk7CisgICAgICAgIGFubm90YXRpb25TdHlsZUVsZW1lbnQtPnNldFRl
eHRDb250ZW50KGFubm90YXRpb25TdHlsZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKLSAgICAg
ICAgbV9hbm5vdGF0aW9uQ29udGFpbmVyLT5hcHBlbmRDaGlsZChtX2Fubm90YXRpb25TdHlsZS5n
ZXQoKSk7Ci0gICAgICAgIGRvY3VtZW50LT5ib2R5T3JGcmFtZXNldCgpLT5hcHBlbmRDaGlsZCht
X2Fubm90YXRpb25Db250YWluZXIuZ2V0KCkpOworICAgICAgICBtX2Fubm90YXRpb25Db250YWlu
ZXItPmFwcGVuZENoaWxkKFdURjo6bW92ZShhbm5vdGF0aW9uU3R5bGVFbGVtZW50KSk7CisgICAg
ICAgIGRvY3VtZW50LT5ib2R5T3JGcmFtZXNldCgpLT5hcHBlbmRDaGlsZCgqbV9hbm5vdGF0aW9u
Q29udGFpbmVyKTsKICAgICB9CiAKICAgICBtX2FjY2Vzc2liaWxpdHlPYmplY3QgPSBhZG9wdE5T
KFtbV0tQREZQbHVnaW5BY2Nlc3NpYmlsaXR5T2JqZWN0IGFsbG9jXSBpbml0V2l0aFBERlBsdWdp
bjp0aGlzXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1BERlBsdWdpbkFubm90YXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvUERGL1BERlBsdWdpbkFubm90YXRpb24ubW0KaW5kZXggMzRiNTIyZDg5YmEzMjk2ZWYx
ZTBlY2U1YmJlMjIxODYxOGU2MzZmMS4uYTAyOWQyNWY5MWU4MmU2ZGIxYjJmMGZhNWEyYmUzOGQ2
YzFjNzJiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9QREZQbHVnaW5Bbm5vdGF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvUERGUGx1Z2luQW5ub3RhdGlvbi5tbQpAQCAtNzQsNyArNzQsNyBAQCB2b2lk
IFBERlBsdWdpbkFubm90YXRpb246OmF0dGFjaChFbGVtZW50KiBwYXJlbnQpCiAKICAgICB1cGRh
dGVHZW9tZXRyeSgpOwogCi0gICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKG1fZWxlbWVudCk7Cisg
ICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKCptX2VsZW1lbnQpOwogCiAgICAgLy8gRklYTUU6IFRo
ZSB0ZXh0IGN1cnNvciBkb2Vzbid0IGJsaW5rIGFmdGVyIHRoaXMuIFdoeT8KICAgICBtX2VsZW1l
bnQtPmZvY3VzKCk7CkBAIC05Miw3ICs5Miw3IEBAIFBERlBsdWdpbkFubm90YXRpb246On5QREZQ
bHVnaW5Bbm5vdGF0aW9uKCkKIAogICAgIG1fZXZlbnRMaXN0ZW5lci0+c2V0QW5ub3RhdGlvbigw
KTsKIAotICAgIG1fcGFyZW50LT5yZW1vdmVDaGlsZChlbGVtZW50KCkpOworICAgIG1fcGFyZW50
LT5yZW1vdmVDaGlsZCgqZWxlbWVudCgpKTsKIH0KIAogdm9pZCBQREZQbHVnaW5Bbm5vdGF0aW9u
Ojp1cGRhdGVHZW9tZXRyeSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24ubW0KaW5k
ZXggZTFhOGU1ODIyYjI1ZTg3OTM1MWYzNDkwYmU5NTRkMWRiODE5ZGQ0Yi4uNjIxZGMwMTFkYjg3
NGZkZjNkZjIzMDVhZTQwNzM2NzlmMzZmMGYzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hvaWNlQW5u
b3RhdGlvbi5tbQpAQCAtODMsMTQgKzgzLDE0IEBAIFBhc3NSZWZQdHI8RWxlbWVudD4gUERGUGx1
Z2luQ2hvaWNlQW5ub3RhdGlvbjo6Y3JlYXRlQW5ub3RhdGlvbkVsZW1lbnQoKQogICAgIE5TU3Ry
aW5nICpzZWxlY3RlZENob2ljZSA9IGNob2ljZUFubm90YXRpb24uc3RyaW5nVmFsdWU7CiAKICAg
ICBmb3IgKE5TU3RyaW5nICpjaG9pY2UgaW4gY2hvaWNlcykgewotICAgICAgICBSZWZQdHI8RWxl
bWVudD4gY2hvaWNlT3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChvcHRpb25UYWcsIGZh
bHNlKTsKKyAgICAgICAgUmVmPEVsZW1lbnQ+IGNob2ljZU9wdGlvbiA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQob3B0aW9uVGFnLCBmYWxzZSk7CiAgICAgICAgIGNob2ljZU9wdGlvbi0+c2V0QXR0
cmlidXRlKHZhbHVlQXR0ciwgY2hvaWNlKTsKICAgICAgICAgY2hvaWNlT3B0aW9uLT5zZXRUZXh0
Q29udGVudChjaG9pY2UsIEFTU0VSVF9OT19FWENFUFRJT04pOwogCiAgICAgICAgIGlmIChjaG9p
Y2UgPT0gc2VsZWN0ZWRDaG9pY2UpCiAgICAgICAgICAgICBjaG9pY2VPcHRpb24tPnNldEF0dHJp
YnV0ZShzZWxlY3RlZEF0dHIsICJzZWxlY3RlZCIpOwogCi0gICAgICAgIHN0eWxlZEVsZW1lbnQt
PmFwcGVuZENoaWxkKGNob2ljZU9wdGlvbik7CisgICAgICAgIHN0eWxlZEVsZW1lbnQtPmFwcGVu
ZENoaWxkKFdURjo6bW92ZShjaG9pY2VPcHRpb24pKTsKICAgICB9CiAKICAgICByZXR1cm4gZWxl
bWVudDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCAwYWM3MzBmNDAxZmIyNjYzNjAyMDFhZDNlZDEzOWYzMmNjYWU1ZmQwLi5i
NmE2ZGI2Nzk5OTJmYjc1NTFhZTJlYTBmNWJiMzZkYmQ0MWU5MWQ2IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEs
MjkgQEAKIDIwMTUtMDktMDggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAorICAg
ICAgICBOb2RlLmFwcGVuZENoaWxkKG51bGwpIC8gcmVwbGFjZUNoaWxkKG51bGwsIG51bGwpIC8g
cmVtb3ZlQ2hpbGQobnVsbCkgLyBpbnNlcnRCZWZvcmUobnVsbCwgcmVmKSBzaG91bGQgdGhyb3cg
YSBUeXBlRXJyb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0ODk3MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjI1NjA4ODM+CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8yMjU1OTIyNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBVcGRhdGUgLyByZWJhc2VsaW5lIHRlc3RzIG5vdyB0aGF0IHdlIHRo
cm93IGEgZGlmZmVyZW50IGV4Y2VwdGlvbiB0eXBlLgorCisgICAgICAgICogZmFzdC9kb20vRG9j
dW1lbnQvcmVwbGFjZUNoaWxkLW51bGwtb2xkQ2hpbGQtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGZhc3QvZG9tL0RvY3VtZW50L3NjcmlwdC10ZXN0cy9yZXBsYWNlQ2hpbGQtbnVsbC1vbGRDaGls
ZC5qczoKKyAgICAgICAgKiBmYXN0L2RvbS9Ob2RlL2ZyYWdtZW50LW11dGF0aW9uLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9Ob2RlL2ZyYWdtZW50LW11dGF0aW9uLmh0bWw6Cisg
ICAgICAgICogZmFzdC9kb20vaW5jb21wYXRpYmxlLW9wZXJhdGlvbnMtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGZhc3QvZG9tL2luY29tcGF0aWJsZS1vcGVyYXRpb25zLmh0bWw6CisgICAgICAg
ICogZmFzdC9kb20vbW92ZS1ub2Rlcy1hY3Jvc3MtZG9jdW1lbnRzLmh0bWw6CisgICAgICAgICog
ZmFzdC9kb20vcHJvY2Vzc2luZy1pbnN0cnVjdGlvbi1hcHBlbmRDaGlsZC1leGNlcHRpb25zLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9wcm9jZXNzaW5nLWluc3RydWN0aW9uLWFw
cGVuZENoaWxkLWV4Y2VwdGlvbnMueGh0bWw6CisgICAgICAgICogZmFzdC9kb20vc2V0dGVyLXR5
cGUtZW5mb3JjZW1lbnQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL3RpbWVyLWNs
ZWFyLWludGVydmFsLWluLWhhbmRsZXItYW5kLWdlbmVyYXRlLWVycm9yLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBmYXN0L2luc3BlY3Rvci1zdXBwb3J0L3VuY2F1Z2h0LWRvbTgtZXhjZXB0aW9u
Lmh0bWw6CisKKzIwMTUtMDktMDggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwog
ICAgICAgICBuZXcgQ29tbWVudCh1bmRlZmluZWQpIC8gbmV3IFRleHQodW5kZWZpbmVkKSBzaG91
bGQgdXNlIGRlZmF1bHQncyBlbXB0eSBzdHJpbmcKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODk3MwogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjI1
NDgwNDI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA3Mjc4MmUwNTIwN2RlMzVh
ZjIxODkwYmY3MGM4MzJmOTFhNWIyZDE0Li43YWY2NTA1NzlmN2JhN2M2NGI3OWIzMzhmYTgwMmM4
OTc5MDJlYTA2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMyBA
QAogMjAxNS0wOS0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCisgICAgICAg
IE5vZGUuYXBwZW5kQ2hpbGQobnVsbCkgLyByZXBsYWNlQ2hpbGQobnVsbCwgbnVsbCkgLyByZW1v
dmVDaGlsZChudWxsKSAvIGluc2VydEJlZm9yZShudWxsLCByZWYpIHNob3VsZCB0aHJvdyBhIFR5
cGVFcnJvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTQ4OTcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjU2MDg4Mz4KKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzIyNTU5MjI1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlYmFzZWxpbmUgVzNDIHRlc3RzIG5vdyB0aGF0IG1vcmUgY2hlY2tzIGFy
ZSBwYXNzaW5nLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9pbnRlcmZhY2Vz
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05v
ZGUtYXBwZW5kQ2hpbGQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9kb20vbm9kZXMvTm9kZS1pbnNlcnRCZWZvcmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1yZW1vdmVDaGlsZC1leHBlY3RlZC50eHQ6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLXJlcGxhY2VDaGls
ZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2lu
dGVyZmFjZXMtZXhwZWN0ZWQudHh0OgorCisyMDE1LTA5LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CisKICAgICAgICAgVW5yZXZpZXdlZCwgZHJvcCBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxl
bWVudHMvbG9jYXRpb24tb2YtdGhlLW1lZGlhLXJlc291cmNlL2N1cnJlbnRTcmMuaHRtbC4KIAog
ICAgICAgICBUaGlzIHJlY2VudGx5IGltcG9ydGVkIHRlc3QgaXMgZmxha3kuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Eb2N1bWVudC9yZXBsYWNlQ2hpbGQtbnVsbC1vbGRDaGls
ZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Eb2N1bWVudC9yZXBsYWNlQ2hp
bGQtbnVsbC1vbGRDaGlsZC1leHBlY3RlZC50eHQKaW5kZXggYmJiMTY2YjIyN2E1MmU2NTE0NWFk
YmY0MDQ4Nzg1M2IwZDM2OGQyNC4uYWY1YTQ2OWY1ZjhjYzY5NzEwMWJjOTJhNDBmODI0NTViOGJl
NWNkMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvcmVwbGFjZUNo
aWxkLW51bGwtb2xkQ2hpbGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0RvY3VtZW50L3JlcGxhY2VDaGlsZC1udWxsLW9sZENoaWxkLWV4cGVjdGVkLnR4dApAQCAtMyw3
ICszLDcgQEAgVGVzdCBiZWhhdmlvciBvZiBEb2N1bWVudC5yZXBsYWNlQ2hpbGQoKSB3aGVuIG9s
ZENoaWxkIGlzIG51bGwuCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBkb2N1
bWVudC5yZXBsYWNlQ2hpbGQoZG9jdW1lbnQuZmlyc3RDaGlsZCwgbnVsbCkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDguCitQQVNTIGRvY3VtZW50
LnJlcGxhY2VDaGlsZChkb2N1bWVudC5maXJzdENoaWxkLCBudWxsKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBUeXBlIGVycm9yLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQog
CiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Eb2N1bWVu
dC9zY3JpcHQtdGVzdHMvcmVwbGFjZUNoaWxkLW51bGwtb2xkQ2hpbGQuanMgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9Eb2N1bWVudC9zY3JpcHQtdGVzdHMvcmVwbGFjZUNoaWxkLW51bGwtb2xkQ2hp
bGQuanMKaW5kZXggZGE5MjUyODAwNTFlMTk3ZTFhZjVjOWVhNGEyNWI0MWI5NmVjM2E1Zi4uYzA5
YmYxYjE4ZDI5OWU2NzQ1MjMwNTM2NjdhOGMyNWQ4YTk4MDcwZSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvc2NyaXB0LXRlc3RzL3JlcGxhY2VDaGlsZC1udWxsLW9s
ZENoaWxkLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50L3NjcmlwdC10ZXN0
cy9yZXBsYWNlQ2hpbGQtbnVsbC1vbGRDaGlsZC5qcwpAQCAtMSwzICsxLDMgQEAKIGRlc2NyaXB0
aW9uKCdUZXN0IGJlaGF2aW9yIG9mIERvY3VtZW50LnJlcGxhY2VDaGlsZCgpIHdoZW4gb2xkQ2hp
bGQgaXMgbnVsbC4nKTsKIAotc2hvdWxkVGhyb3coJ2RvY3VtZW50LnJlcGxhY2VDaGlsZChkb2N1
bWVudC5maXJzdENoaWxkLCBudWxsKScsICciRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNl
cHRpb24gOCInKTsKK3Nob3VsZFRocm93KCdkb2N1bWVudC5yZXBsYWNlQ2hpbGQoZG9jdW1lbnQu
Zmlyc3RDaGlsZCwgbnVsbCknLCAnIlR5cGVFcnJvcjogVHlwZSBlcnJvciInKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvZnJhZ21lbnQtbXV0YXRpb24tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZS9mcmFnbWVudC1tdXRhdGlvbi1leHBlY3Rl
ZC50eHQKaW5kZXggMGYwNGU2NmEwZTUzZTZmNWIxOTAxYzVkY2IxNzZmNjdmMmU0Zjg2OC4uNGJh
OTUyNGM3MmNkNWQ3YTExMzI5NDRkMDZkZGRiYzZmNmM3ZDg1YyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vTm9kZS9mcmFnbWVudC1tdXRhdGlvbi1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZS9mcmFnbWVudC1tdXRhdGlvbi1leHBlY3RlZC50eHQK
QEAgLTIsMTIgKzIsMTIgQEAgVGhpcyB0ZXN0IGNyZWF0ZXMgYSBmcmFnbWVudCBjb250YWluaW5n
IHRocmVlIGVsZW1lbnRzOiAiQiIsICJVIiwgYW5kICJQIiwgYXR0ZW0KIAogSW5zZXJ0aW5nIGFu
IGVsZW1lbnQgaW4gZnJvbnQgb2YgdGhlIG5leHQgaXRlbSBpbiBmcmFnbWVudCBzaG91bGQgbm90
IGFmZmVjdCB0aGUgcmVzdWx0OiBQQVNTCiBBcHBlbmRpbmcgYW4gZWxlbWVudCBhdCB0aGUgZW5k
IG9mIHRoZSBmcmFnbWVudCBzaG91bGQgbm90IGFmZmVjdCB0aGUgcmVzdWx0OiBQQVNTCi1Db250
aW51YWxseSByZS1hcHBlbmRpbmcgcmVtb3ZlZCBlbGVtZW50IHRvIHRoZSBmcmFnbWVudCBzaG91
bGQgZXZlbnR1YWxseSB0aHJvdyBOT1RfRk9VTkRfRVJSOiBQQVNTCitDb250aW51YWxseSByZS1h
cHBlbmRpbmcgcmVtb3ZlZCBlbGVtZW50IHRvIHRoZSBmcmFnbWVudCBzaG91bGQgZXZlbnR1YWxs
eSB0aHJvdyBhIFR5cGVFcnJvcjogUEFTUwogCiBUaGlzIHRlc3QgY3JlYXRlcyBhIGZyYWdtZW50
IGNvbnRhaW5pbmcgdGhyZWUgZWxlbWVudHM6ICJCIiwgIlUiLCBhbmQgIlAiLCBhdHRlbXB0cyB0
byBpbnNlcnRCZWZvcmUgdGhpcyBmcmFnbWVudCBhbmQgc3R1ZGllcyBlZmZlY3RzIG9mIG11dGF0
aW9uIGV2ZW50cyBvbiB0aGUgZnJhZ21lbnQuCiAKIEluc2VydGluZyBhbiBlbGVtZW50IGluIGZy
b250IG9mIHRoZSBuZXh0IGl0ZW0gaW4gZnJhZ21lbnQgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIHJl
c3VsdDogUEFTUwogQXBwZW5kaW5nIGFuIGVsZW1lbnQgYXQgdGhlIGVuZCBvZiB0aGUgZnJhZ21l
bnQgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIHJlc3VsdDogUEFTUwotQ29udGludWFsbHkgcmUtYXBw
ZW5kaW5nIHJlbW92ZWQgZWxlbWVudCB0byB0aGUgZnJhZ21lbnQgc2hvdWxkIGV2ZW50dWFsbHkg
dGhyb3cgTk9UX0ZPVU5EX0VSUjogUEFTUworQ29udGludWFsbHkgcmUtYXBwZW5kaW5nIHJlbW92
ZWQgZWxlbWVudCB0byB0aGUgZnJhZ21lbnQgc2hvdWxkIGV2ZW50dWFsbHkgdGhyb3cgYSBUeXBl
RXJyb3I6IFBBU1MKIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2Zy
YWdtZW50LW11dGF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2ZyYWdtZW50
LW11dGF0aW9uLmh0bWwKaW5kZXggODRlNjdmNjUzOWQ2NGI3M2UzNTExMDIwYzA3NmUwNGM5ZTgw
MGNiZi4uNDg5NDk3ZjUwYWM2YjZhOGY4MTAwNmJiNThlNmFjMTc1NTdjNmI4NCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZS9mcmFnbWVudC1tdXRhdGlvbi5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvZnJhZ21lbnQtbXV0YXRpb24uaHRtbApAQCAtMzYs
MTUgKzM2LDE1IEBAIGZ1bmN0aW9uIHByb2R1Y2VOb2RlTmFtZVN0cmluZyhub2RlcykKICAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCi1mdW5jdGlvbiBleHBlY3RFeGNlcHRpb24oY29kZSkKK2Z1bmN0
aW9uIGV4cGVjdFR5cGVFcnJvcigpCiB7CiAgICAgcmV0dXJuIGZ1bmN0aW9uKHN0YXNoLCBleGNl
cHRpb24pIHsKICAgICAgICAgaWYgKCFleGNlcHRpb24pCi0gICAgICAgICAgICByZXR1cm4gIkZB
SUwsIGV4cGVjdGVkIGV4Y2VwdGlvbiB3aXRoIGNvZGUgIiArIGNvZGUgKyAiLiBUaGUgcmVzdWx0
aW5nIGZyYWdtZW50IHdhczogXCIiICsgcHJvZHVjZU5vZGVOYW1lU3RyaW5nKHN0YXNoKSArICJc
Ii4iOworICAgICAgICAgICAgcmV0dXJuICJGQUlMLCBleHBlY3RlZCBUeXBlRXJyb3IuIFRoZSBy
ZXN1bHRpbmcgZnJhZ21lbnQgd2FzOiBcIiIgKyBwcm9kdWNlTm9kZU5hbWVTdHJpbmcoc3Rhc2gp
ICsgIlwiLiI7CiAKLSAgICAgICAgaWYgKGNvZGUgPT0gZXhjZXB0aW9uLmNvZGUpCisgICAgICAg
IGlmIChleGNlcHRpb24ubmFtZSA9ICJUeXBlRXJyb3IiKQogICAgICAgICAgICAgcmV0dXJuICJQ
QVNTIjsKLSAgICAgICAgcmV0dXJuICJGQUlMLCBleHBlY3RlZCBleGNlcHRpb24gY29kZTogIiAr
IGNvZGUgKyAiLCB3YXM6ICIgKyBleGNlcHRpb24gKyAiLiI7CisgICAgICAgIHJldHVybiAiRkFJ
TCwgZXhwZWN0ZWQgVHlwZUVycm9yLCB3YXM6ICIgKyBleGNlcHRpb24ubmFtZSArICIuIjsKICAg
ICB9CiB9CiAKQEAgLTExOSwxMCArMTE5LDEwIEBAIGZ1bmN0aW9uIHJ1blRlc3QobWV0aG9kTmFt
ZSwgbWV0aG9kKQogICAgICAgICBmcmFnLmFwcGVuZENoaWxkKGV4dHJhKTsKICAgICB9LCBleHBl
Y3ROb2RlcygiQlVQIikpOwogCi0gICAgdGVzdEZyYWdtZW50KG1ldGhvZCwgIkNvbnRpbnVhbGx5
IHJlLWFwcGVuZGluZyByZW1vdmVkIGVsZW1lbnQgdG8gdGhlIGZyYWdtZW50IHNob3VsZCBldmVu
dHVhbGx5IHRocm93IE5PVF9GT1VORF9FUlIiLCBmdW5jdGlvbihldnQsIGZyYWcsIHN0YXNoKQor
ICAgIHRlc3RGcmFnbWVudChtZXRob2QsICJDb250aW51YWxseSByZS1hcHBlbmRpbmcgcmVtb3Zl
ZCBlbGVtZW50IHRvIHRoZSBmcmFnbWVudCBzaG91bGQgZXZlbnR1YWxseSB0aHJvdyBhIFR5cGVF
cnJvciIsIGZ1bmN0aW9uKGV2dCwgZnJhZywgc3Rhc2gpCiAgICAgewogICAgICAgICBzdGFzaC5p
bnNlcnRCZWZvcmUoZnJhZy5sYXN0Q2hpbGQsIHN0YXNoLmZpcnN0Q2hpbGQpOwotICAgIH0sIGV4
cGVjdEV4Y2VwdGlvbig4KSwgdHJ1ZSk7CisgICAgfSwgZXhwZWN0VHlwZUVycm9yKCksIHRydWUp
OwogICAgIHByaW50TG9nKG1ldGhvZE5hbWUpOwogfQogZnVuY3Rpb24gcnVuVGVzdHMoKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vaW5jb21wYXRpYmxlLW9wZXJhdGlvbnMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaW5jb21wYXRpYmxlLW9wZXJhdGlvbnMt
ZXhwZWN0ZWQudHh0CmluZGV4IGQ1NzY0YzFlNWFjNjI2NGVlM2E0ZGY1YjkyNDVlYmUxNzdmNjU0
ODAuLjg1Y2NkNTQ0ZmM5ZTk5YTc4ZGFhMjc3NTVhMzNmYzg4MGE3ZmYwZDYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL2luY29tcGF0aWJsZS1vcGVyYXRpb25zLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pbmNvbXBhdGlibGUtb3BlcmF0aW9ucy1leHBl
Y3RlZC50eHQKQEAgLTMsOSArMyw5IEBAIFRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9m
IERPTSBvcGVyYXRpb25zIHdoZW4gY2FsbGVkIG9uIG5vbi1ET00gb3IgaW5jb21wCiBPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBhTm9kZS5hcHBlbmRDaGlsZChhRE9NSW1wbGVt
ZW50YXRpb24pIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2Vw
dGlvbiA4LgotUEFTUyBhTm9kZS5hcHBlbmRDaGlsZCgna25vcnQnKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOC4KLVBBU1MgYU5vZGUuYXBwZW5k
Q2hpbGQodm9pZCAwKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBF
eGNlcHRpb24gOC4KK1BBU1MgYU5vZGUuYXBwZW5kQ2hpbGQoYURPTUltcGxlbWVudGF0aW9uKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBhTm9kZS5hcHBlbmRD
aGlsZCgna25vcnQnKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFT
UyBhTm9kZS5hcHBlbmRDaGlsZCh2b2lkIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5
cGUgZXJyb3IuCiBQQVNTIGFOb2RlLmlzU2FtZU5vZGUoYURPTUltcGxlbWVudGF0aW9uKSBpcyBm
YWxzZQogUEFTUyBhTm9kZS5pc1NhbWVOb2RlKCdmb28nKSBpcyBmYWxzZQogUEFTUyBhTm9kZS5p
c1NhbWVOb2RlKHZvaWQgMCkgaXMgZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL2luY29tcGF0aWJsZS1vcGVyYXRpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9p
bmNvbXBhdGlibGUtb3BlcmF0aW9ucy5odG1sCmluZGV4IDIxYWE3MWFmZThlM2RlYWE4Y2U4YjA0
ZDNmM2NmMjNkNTgyNTQyMzAuLjJmMGU0YWZlNmNhY2JkYzJiODU3MzVlNzY2MGVlOGY5ZTVkMDFi
MGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2luY29tcGF0aWJsZS1vcGVyYXRp
b25zLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaW5jb21wYXRpYmxlLW9wZXJhdGlv
bnMuaHRtbApAQCAtMjgsMTEgKzI4LDExIEBAIHZhciBhTm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImRpdiIpOwogdmFyIGFTZWNvbmROb2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
ZGl2Iik7CiBhTm9kZS5hcHBlbmRDaGlsZChhU2Vjb25kTm9kZSk7CiAKLXNob3VsZFRocm93KCJh
Tm9kZS5hcHBlbmRDaGlsZChhRE9NSW1wbGVtZW50YXRpb24pIiwgIidFcnJvcjogTm90Rm91bmRF
cnJvcjogRE9NIEV4Y2VwdGlvbiA4JyIpOworc2hvdWxkVGhyb3coImFOb2RlLmFwcGVuZENoaWxk
KGFET01JbXBsZW1lbnRhdGlvbikiLCAiJ1R5cGVFcnJvcjogVHlwZSBlcnJvciciKTsKIAotc2hv
dWxkVGhyb3coImFOb2RlLmFwcGVuZENoaWxkKCdrbm9ydCcpIiwgIidFcnJvcjogTm90Rm91bmRF
cnJvcjogRE9NIEV4Y2VwdGlvbiA4JyIpOworc2hvdWxkVGhyb3coImFOb2RlLmFwcGVuZENoaWxk
KCdrbm9ydCcpIiwgIidUeXBlRXJyb3I6IFR5cGUgZXJyb3InIik7CiAKLXNob3VsZFRocm93KCJh
Tm9kZS5hcHBlbmRDaGlsZCh2b2lkIDApIiwgIidFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4
Y2VwdGlvbiA4JyIpOworc2hvdWxkVGhyb3coImFOb2RlLmFwcGVuZENoaWxkKHZvaWQgMCkiLCAi
J1R5cGVFcnJvcjogVHlwZSBlcnJvciciKTsKIAogc2hvdWxkQmVGYWxzZSgiYU5vZGUuaXNTYW1l
Tm9kZShhRE9NSW1wbGVtZW50YXRpb24pIik7CiBzaG91bGRCZUZhbHNlKCJhTm9kZS5pc1NhbWVO
b2RlKCdmb28nKSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbW92ZS1ub2Rl
cy1hY3Jvc3MtZG9jdW1lbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9tb3ZlLW5vZGVz
LWFjcm9zcy1kb2N1bWVudHMuaHRtbAppbmRleCBkMzUwMWExN2RiODZjNGVjODYwZmI1ZjEyMmM3
ZDVjZGFlNmY1YTM1Li4zODgxZjA0OTkyMWIxM2RkM2ZiNjZmZTZkN2E1MmVjNzRhZjY4NTgzIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9tb3ZlLW5vZGVzLWFjcm9zcy1kb2N1bWVu
dHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9tb3ZlLW5vZGVzLWFjcm9zcy1kb2N1
bWVudHMuaHRtbApAQCAtMTc5LDcgKzE3OSw3IEBAIGZ1bmN0aW9uIHJ1bigpCiAgICAgcnVuVGVz
dChmdW5jdGlvbigpIHsKICAgICAgICAgaWZyYW1lRG9jLmFwcGVuZENoaWxkKGRvY3VtZW50LmRv
Y3R5cGUpOwogICAgICAgICBjb25zb2xlLmxvZyhkb2N1bWVudC5kb2N0eXBlKTsKLSAgICB9LCAn
Tm90Rm91bmRFcnJvcicpOworICAgIH0sICdUeXBlRXJyb3InKTsKIAogICAgIC8vIFdoZW4gc2V0
dGluZyBhIGJvdW5kYXJ5IG9mIHRoZSByYW5nZSBpbiBhIGRpZmZlcmVudAogICAgIC8vIGRvY3Vt
ZW50LCB0aGUgY2FsbCBzaG91bGQgc3VjY2VlZCBhbmQgdGhlIHJhbmdlIHNob3VsZCBiZSBjb2xs
YXBzZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm9jZXNzaW5nLWluc3Ry
dWN0aW9uLWFwcGVuZENoaWxkLWV4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vcHJvY2Vzc2luZy1pbnN0cnVjdGlvbi1hcHBlbmRDaGlsZC1leGNlcHRpb25zLWV4
cGVjdGVkLnR4dAppbmRleCA3YTEzODY4YTdiMmZmZmE2ZDI2NDJhYjYyMTcyMjdiMmRhYjkyZmI5
Li4wZTNiZGYyMjZlMGM1YTY1OTE3MTIwNDVjMzU1NWQ4MzZiY2NiYjJmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9wcm9jZXNzaW5nLWluc3RydWN0aW9uLWFwcGVuZENoaWxkLWV4
Y2VwdGlvbnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb2Nlc3Np
bmctaW5zdHJ1Y3Rpb24tYXBwZW5kQ2hpbGQtZXhjZXB0aW9ucy1leHBlY3RlZC50eHQKQEAgLTMs
NyArMyw3IEBAIFRlc3QgdGhhdCBhcHByb3ByaWF0ZSBleGNlcHRpb25zIGFyZSB0aHJvd24gd2hl
biBhZGRpbmcgY2hpbGRyZW4gdG8gYSBQcm9jZXNzaW5nCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCiAKIAotUEFTUyBwaS5hcHBlbmRDaGlsZChudWxsKSB0aHJldyBleGNlcHRpb24gRXJyb3I6
IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzLgorUEFTUyBwaS5hcHBlbmRD
aGlsZChudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgogUEFTUyBw
aS5hcHBlbmRDaGlsZChkaXYpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSGllcmFyY2h5UmVxdWVz
dEVycm9yOiBET00gRXhjZXB0aW9uIDMuCiBQQVNTIHBpLmFwcGVuZENoaWxkKHRleHROb2RlKSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlv
biAzLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vcHJvY2Vzc2luZy1pbnN0cnVjdGlvbi1hcHBlbmRDaGlsZC1leGNlcHRp
b25zLnhodG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvY2Vzc2luZy1pbnN0cnVjdGlvbi1h
cHBlbmRDaGlsZC1leGNlcHRpb25zLnhodG1sCmluZGV4IGIwMDI4OTljMjMyMDY3ZmMxNzMzZmE5
MWVhZmUxMzE0MjJjNDk5NjAuLmM5MDJiYTRiMzU5ODk3ZDkzOGJkNDlmODBiYzZmMjJjMjAxOTJm
ZDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb2Nlc3NpbmctaW5zdHJ1Y3Rp
b24tYXBwZW5kQ2hpbGQtZXhjZXB0aW9ucy54aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9wcm9jZXNzaW5nLWluc3RydWN0aW9uLWFwcGVuZENoaWxkLWV4Y2VwdGlvbnMueGh0bWwKQEAg
LTUsNyArNSw3IEBACiA8IVtDREFUQVsKIGRlc2NyaXB0aW9uKCJUZXN0IHRoYXQgYXBwcm9wcmlh
dGUgZXhjZXB0aW9ucyBhcmUgdGhyb3duIHdoZW4gYWRkaW5nIGNoaWxkcmVuIHRvIGEgUHJvY2Vz
c2luZ0luc3RydWN0aW9uLiIpOwogdmFyIHBpID0gZG9jdW1lbnQuY3JlYXRlUHJvY2Vzc2luZ0lu
c3RydWN0aW9uKCd0YXJnZXQnLCAnZGF0YScpOwotc2hvdWxkVGhyb3coInBpLmFwcGVuZENoaWxk
KG51bGwpIiwgIidFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMn
Iik7CitzaG91bGRUaHJvdygicGkuYXBwZW5kQ2hpbGQobnVsbCkiLCAiJ1R5cGVFcnJvcjogVHlw
ZSBlcnJvciciKTsKIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKIHNo
b3VsZFRocm93KCJwaS5hcHBlbmRDaGlsZChkaXYpIiwgIidFcnJvcjogSGllcmFyY2h5UmVxdWVz
dEVycm9yOiBET00gRXhjZXB0aW9uIDMnIik7CiB2YXIgdGV4dE5vZGUgPSBkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZSgnc29tZXRleHQnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3NldHRlci10eXBlLWVuZm9yY2VtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NldHRlci10eXBlLWVuZm9yY2VtZW50LWV4cGVjdGVkLnR4dAppbmRleCBjN2FiOGUyYThk
NTI1NjhjMjM2ZTMxZjdkMTU3Mzc1ZTc1MjU5YzIzLi45MTcxMmQwOTU0YmZhOWM3OTUwZmZiNjVk
N2U2YTI1YmU0NWUzMThkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zZXR0ZXIt
dHlwZS1lbmZvcmNlbWVudC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2V0dGVyLXR5cGUtZW5mb3JjZW1lbnQtZXhwZWN0ZWQudHh0CkBAIC00LDcgKzQsNyBAQCBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURQogCiAKIFBBU1MgZG9jdW1lbnQuYm9keSA9IG5vZGVsaXN0OyB0
aHJldyBleGNlcHRpb24gRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlv
biAzLgotUEFTUyB0YWJsZS50SGVhZCA9IG5vZGVsaXN0OyB0aHJldyBleGNlcHRpb24gRXJyb3I6
IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOC4KK1BBU1MgdGFibGUudEhlYWQgPSBub2Rl
bGlzdDsgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVGhlIEhUTUxUYWJsZUVsZW1lbnQudEhl
YWQgYXR0cmlidXRlIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSFRNTFRhYmxlU2VjdGlvbkVsZW1l
bnQuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3RpbWVyLWNsZWFyLWludGVydmFsLWluLWhh
bmRsZXItYW5kLWdlbmVyYXRlLWVycm9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3RpbWVyLWNsZWFyLWludGVydmFsLWluLWhhbmRsZXItYW5kLWdlbmVyYXRlLWVycm9yLWV4
cGVjdGVkLnR4dAppbmRleCA5OWFhYzZhMDVkY2FlODg2MzI2OWM2OWJiNmRjYjNhOTI5NGI2NDc3
Li41ZjJmZDUxNDE3MDBjODMzMzQ4OWI1MGUxYTNkMjIyYjI2OTQyNWEwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS90aW1lci1jbGVhci1pbnRlcnZhbC1pbi1oYW5kbGVyLWFuZC1n
ZW5lcmF0ZS1lcnJvci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vdGlt
ZXItY2xlYXItaW50ZXJ2YWwtaW4taGFuZGxlci1hbmQtZ2VuZXJhdGUtZXJyb3ItZXhwZWN0ZWQu
dHh0CkBAIC0xLDIgKzEsMiBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwOiBOb3RGb3VuZEVy
cm9yOiBET00gRXhjZXB0aW9uIDg6IEFuIGF0dGVtcHQgd2FzIG1hZGUgdG8gcmVmZXJlbmNlIGEg
Tm9kZSBpbiBhIGNvbnRleHQgd2hlcmUgaXQgZG9lcyBub3QgZXhpc3QuCitDT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTA6IFR5cGVFcnJvcjogVHlwZSBlcnJvcgogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2luc3BlY3Rvci1zdXBwb3J0L3VuY2F1Z2h0LWRvbTgtZXhjZXB0aW9uLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2luc3BlY3Rvci1zdXBwb3J0L3VuY2F1Z2h0LWRvbTgtZXhjZXB0
aW9uLmh0bWwKaW5kZXggYmM2MDhmNGZhZTA0OTM3MDZjOWI3OWU1MTM3YmNmZTc4MzQyMjVkYi4u
NWZhNGU1YjhiNjY2NjM5NDIyZDViNGFkOWE2N2ZlYTYyZDRlZTkwYSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9pbnNwZWN0b3Itc3VwcG9ydC91bmNhdWdodC1kb204LWV4Y2VwdGlvbi5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW5zcGVjdG9yLXN1cHBvcnQvdW5jYXVnaHQtZG9t
OC1leGNlcHRpb24uaHRtbApAQCAtNiw3ICs2LDcgQEAgZnVuY3Rpb24gb25sb2FkKCkKIHsKICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OwotICAgIGRvY3VtZW50LmFwcGVuZENoaWxkKCk7CisgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVB
dHRyaWJ1dGVOb2RlKGRvY3VtZW50LmNyZWF0ZUF0dHJpYnV0ZSgiZG9lc05vdEV4aXN0IikpOwog
fQogCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50
eHQKaW5kZXggZmRiMTk4MGE4YmNmYzRmOTFlNWNhNmY5ZDU2YzBkNzEyZTRhNzBlYS4uY2Y3YjIz
YTI3ODk0YTkyOTZhYTM1OTZjMDJlYmQ2N2Q0ODI0MTA3NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaW50ZXJmYWNlcy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9k
b20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKQEAgLTYzNCwyMSArNjM0LDE1IEBAIEZBSUwgTm9k
ZSBpbnRlcmZhY2U6IGNhbGxpbmcgaXNEZWZhdWx0TmFtZXNwYWNlKERPTVN0cmluZykgb24geG1s
RG9jIHdpdGggdG9vIGZlCiAgICAgW25hdGl2ZSBjb2RlXQogfSIgZGlkIG5vdCB0aHJvdwogUEFT
UyBOb2RlIGludGVyZmFjZTogeG1sRG9jIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5zZXJ0QmVm
b3JlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDApIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2Fs
bGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBvbiB4bWxEb2Mgd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFy
Z3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworRkFJTCBOb2RlIGludGVyZmFjZTogY2Fs
bGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBvbiB4bWxEb2Mgd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAxIGFy
Z3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KLX0iIHRo
cmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RG
b3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK30i
IHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlv
biAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9y
IiAoIlR5cGVFcnJvciIpCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiB4bWxEb2MgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJhcHBlbmRDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQxKSAKLUZBSUwg
Tm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24geG1sRG9jIHdpdGgg
dG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2Fs
bGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZl
IGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0
aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5
cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUp
IG9uIHhtbERvYyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAog
UEFTUyBOb2RlIGludGVyZmFjZTogeG1sRG9jIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVwbGFj
ZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDIpIAotRkFJTCBOb2RlIGludGVyZmFjZTog
Y2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiB4bWxEb2Mgd2l0aCB0b28gZmV3IGFy
Z3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAw
IGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0i
IGRpZCBub3QgdGhyb3cKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxk
KE5vZGUsTm9kZSkgb24geG1sRG9jIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBU
eXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiB4bWxEb2MgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJyZW1vdmVDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQzKSAKLUZBSUwgTm9kZSBp
bnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24geG1sRG9jIHdpdGggdG9vIGZl
dyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdp
dGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVd
Ci19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgi
ICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJv
ciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIHht
bERvYyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBF
dmVudFRhcmdldCBpbnRlcmZhY2U6IHhtbERvYyBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFkZEV2
ZW50TGlzdGVuZXIiIHdpdGggdGhlIHByb3BlciB0eXBlICgwKSAKIEZBSUwgRXZlbnRUYXJnZXQg
aW50ZXJmYWNlOiBjYWxsaW5nIGFkZEV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nLEV2ZW50TGlzdGVu
ZXIsYm9vbGVhbikgb24geG1sRG9jIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBU
eXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24g
ImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCkBAIC03OTMsMjEgKzc4NywxNSBAQCBG
QUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGlzRGVmYXVsdE5hbWVzcGFjZShET01TdHJpbmcp
IG9uIGRvY3VtZW50LmNyZWF0ZURvYwogICAgIFtuYXRpdmUgY29kZV0KIH0iIGRpZCBub3QgdGhy
b3cKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQo
KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImluc2VydEJlZm9yZSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgKDQwKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUs
Tm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpIHdpdGggdG9vIGZldyBh
cmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGgg
MCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKK0ZBSUwgTm9kZSBpbnRlcmZhY2U6
IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlRG9jdW1l
bnRGcmFnbWVudCgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3Ig
YXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMSBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9u
ICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3Vu
ZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVj
dCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCit9IiBkaWQgbm90IHRocm93CiBQQVNTIE5vZGUg
aW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJhcHBlbmRDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQxKSAKLUZBSUwg
Tm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3Jl
YXRlRG9jdW1lbnRGcmFnbWVudCgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBU
eXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24g
ImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9y
OiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVj
dGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNl
OiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJh
Z21lbnQoKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFT
UyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAicmVwbGFjZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDIp
IAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBv
biBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50
cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3Vt
ZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIGRpZCBu
b3QgdGhyb3cKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUs
Tm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpIHdpdGggdG9vIGZldyBh
cmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1
bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZW1v
dmVDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQzKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6
IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFn
bWVudCgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0
X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsK
LSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9y
OiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlw
ZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92
ZUNoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSB3aXRoIHRv
byBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBFdmVudFRhcmdldCBp
bnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgImFkZEV2ZW50TGlzdGVuZXIiIHdpdGggdGhlIHByb3BlciB0eXBlICgwKSAKIEZB
SUwgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBjYWxsaW5nIGFkZEV2ZW50TGlzdGVuZXIoRE9NU3Ry
aW5nLEV2ZW50TGlzdGVuZXIsYm9vbGVhbikgb24gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFn
bWVudCgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0
X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsK
ICAgICBbbmF0aXZlIGNvZGVdCkBAIC05MTUsMjEgKzkwMywxNSBAQCBGQUlMIE5vZGUgaW50ZXJm
YWNlOiBjYWxsaW5nIGlzRGVmYXVsdE5hbWVzcGFjZShET01TdHJpbmcpIG9uIGRvY3VtZW50LmRv
Y3R5cGUgdwogICAgIFtuYXRpdmUgY29kZV0KIH0iIGRpZCBub3QgdGhyb3cKIFBBU1MgTm9kZSBp
bnRlcmZhY2U6IGRvY3VtZW50LmRvY3R5cGUgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJpbnNlcnRC
ZWZvcmUiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MCkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBj
YWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmRvY3R5cGUgd2l0aCB0
b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxs
ZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworRkFJTCBOb2RlIGlu
dGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5kb2N0
eXBlIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Ro
cm93czogQ2FsbGVkIHdpdGggMSBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAg
ICBbbmF0aXZlIGNvZGVdCiB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0
RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3Rl
ZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQogUEFTUyBOb2RlIGludGVyZmFjZTog
ZG9jdW1lbnQuZG9jdHlwZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFwcGVuZENoaWxkIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAoNDEpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBl
bmRDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5kb2N0eXBlIHdpdGggdG9vIGZldyBhcmd1bWVudHMg
bXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVu
dHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBv
YmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJI
aWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBl
RXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBv
biBkb2N1bWVudC5kb2N0eXBlIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBl
RXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5kb2N0eXBlIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAicmVwbGFjZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDIpIAotRkFJ
TCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiBkb2N1
bWVudC5kb2N0eXBlIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3Ig
YXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9u
ICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJj
aHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3Ii
KSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGlu
dGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5kb2N0
eXBlIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5v
ZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5kb2N0eXBlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVt
b3ZlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MykgCi1GQUlMIE5vZGUgaW50ZXJmYWNl
OiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmRvY3R5cGUgd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQg
d2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29k
ZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24g
OCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVy
cm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24g
ZG9jdW1lbnQuZG9jdHlwZSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVy
cm9yIAogUEFTUyBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGRvY3VtZW50LmRvY3R5cGUgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJhZGRFdmVudExpc3RlbmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAo
MCkgCiBGQUlMIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogY2FsbGluZyBhZGRFdmVudExpc3RlbmVy
KERPTVN0cmluZyxFdmVudExpc3RlbmVyLGJvb2xlYW4pIG9uIGRvY3VtZW50LmRvY3R5cGUgd2l0
aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBD
YWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRp
dmUgY29kZV0KQEAgLTExODcsMjEgKzExNjksMTUgQEAgRkFJTCBOb2RlIGludGVyZmFjZTogY2Fs
bGluZyBpc0RlZmF1bHROYW1lc3BhY2UoRE9NU3RyaW5nKSBvbiBlbGVtZW50IHdpdGggdG9vIGYK
ICAgICBbbmF0aXZlIGNvZGVdCiB9IiBkaWQgbm90IHRocm93CiBQQVNTIE5vZGUgaW50ZXJmYWNl
OiBlbGVtZW50IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5zZXJ0QmVmb3JlIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAoNDApIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZv
cmUoTm9kZSxOb2RlKSBvbiBlbGVtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rp
b24gImZ1bmN0aW9uICgpIHsKK0ZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVm
b3JlKE5vZGUsTm9kZSkgb24gZWxlbWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhy
b3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDEgYXJndW1lbnRzIGZ1bmN0
aW9uICJmdW5jdGlvbiAoKSB7CiAgICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJF
cnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBl
eHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorfSIgZGlkIG5vdCB0aHJv
dwogUEFTUyBOb2RlIGludGVyZmFjZTogZWxlbWVudCBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFw
cGVuZENoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDEpIAotRkFJTCBOb2RlIGludGVyZmFj
ZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiBlbGVtZW50IHdpdGggdG9vIGZldyBhcmd1
bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBh
cmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0
aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90
Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQ
QVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGVsZW1lbnQg
d2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBp
bnRlcmZhY2U6IGVsZW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZXBsYWNlQ2hpbGQiIHdp
dGggdGhlIHByb3BlciB0eXBlICg0MikgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJl
cGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIGVsZW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBt
dXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50
cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIGRpZCBub3Qg
dGhyb3cKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9k
ZSkgb24gZWxlbWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9y
IAogUEFTUyBOb2RlIGludGVyZmFjZTogZWxlbWVudCBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJl
bW92ZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDMpIAotRkFJTCBOb2RlIGludGVyZmFj
ZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiBlbGVtZW50IHdpdGggdG9vIGZldyBhcmd1
bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBh
cmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0
aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90
Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQ
QVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIGVsZW1lbnQg
d2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgRXZlbnRU
YXJnZXQgaW50ZXJmYWNlOiBlbGVtZW50IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYWRkRXZlbnRM
aXN0ZW5lciIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDApIAogRkFJTCBFdmVudFRhcmdldCBpbnRl
cmZhY2U6IGNhbGxpbmcgYWRkRXZlbnRMaXN0ZW5lcihET01TdHJpbmcsRXZlbnRMaXN0ZW5lcixi
b29sZWFuKSBvbiBlbGVtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBl
RXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1
bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCkBAIC0xNDA5LDIxICsxMzg1LDE1IEBAIEZB
SUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaXNEZWZhdWx0TmFtZXNwYWNlKERPTVN0cmluZykg
b24gZG9jdW1lbnQuY3JlYXRlVGV4CiAgICAgW25hdGl2ZSBjb2RlXQogfSIgZGlkIG5vdCB0aHJv
dwogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoImFiYyIpIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5zZXJ0QmVmb3JlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAo
NDApIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2Rl
KSBvbiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50
cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3Vt
ZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGlu
ZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJj
Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhy
b3dzOiBDYWxsZWQgd2l0aCAxIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAg
IFtuYXRpdmUgY29kZV0KIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RF
cnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVk
IG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhcHBl
bmRDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQxKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6
IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoImFi
YyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Ro
cm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAg
ICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0
RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3Rl
ZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTog
Y2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJj
Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9k
ZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhYmMiKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgInJlcGxhY2VDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQyKSAKLUZBSUwg
Tm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24gZG9jdW1l
bnQuY3JlYXRlVGV4dE5vZGUoImFiYyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rp
b24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVy
cm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlS
ZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQor
UEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiBk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0
IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKCJhYmMiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlbW92ZUNoaWxkIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAoNDMpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVD
aGlsZChOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgd2l0aCB0b28gZmV3
IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0
aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0K
LX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIg
KCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9y
IikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24gZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoImFiYyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0
aHJvdyBUeXBlRXJyb3IgCiBQQVNTIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogZG9jdW1lbnQuY3Jl
YXRlVGV4dE5vZGUoImFiYyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYWRkRXZlbnRMaXN0ZW5l
ciIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDApIAogRkFJTCBFdmVudFRhcmdldCBpbnRlcmZhY2U6
IGNhbGxpbmcgYWRkRXZlbnRMaXN0ZW5lcihET01TdHJpbmcsRXZlbnRMaXN0ZW5lcixib29sZWFu
KSBvbiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50
cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3Vt
ZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KQEAgLTE1NDMs
MjEgKzE1MTMsMTUgQEAgRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpc0RlZmF1bHROYW1l
c3BhY2UoRE9NU3RyaW5nKSBvbiB4bWxEb2MuY3JlYXRlUHJvY2UKICAgICBbbmF0aXZlIGNvZGVd
CiB9IiBkaWQgbm90IHRocm93CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiB4bWxEb2MuY3JlYXRlUHJv
Y2Vzc2luZ0luc3RydWN0aW9uKCJhYmMiLCAiZGVmIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJp
bnNlcnRCZWZvcmUiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MCkgCi1GQUlMIE5vZGUgaW50ZXJm
YWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIHhtbERvYy5jcmVhdGVQcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24oImFiYyIsICJkZWYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11
c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRz
IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CitGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGlu
c2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24oImFiYyIsICJkZWYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVy
cm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDEgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5j
dGlvbiAoKSB7CiAgICAgW25hdGl2ZSBjb2RlXQogfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGll
cmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVy
cm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKIFBBU1MgTm9k
ZSBpbnRlcmZhY2U6IHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oImFiYyIsICJk
ZWYiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFwcGVuZENoaWxkIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAoNDEpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2Rl
KSBvbiB4bWxEb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJhYmMiLCAiZGVmIikgd2l0
aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBD
YWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRp
dmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjog
RE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVj
dCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5n
IGFwcGVuZENoaWxkKE5vZGUpIG9uIHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24o
ImFiYyIsICJkZWYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9y
IAogUEFTUyBOb2RlIGludGVyZmFjZTogeG1sRG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlv
bigiYWJjIiwgImRlZiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVwbGFjZUNoaWxkIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAoNDIpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBs
YWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiB4bWxEb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9u
KCJhYmMiLCAiZGVmIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJv
ciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rp
b24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJh
cmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJv
ciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUg
aW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIHhtbERvYy5jcmVh
dGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oImFiYyIsICJkZWYiKSB3aXRoIHRvbyBmZXcgYXJndW1l
bnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGludGVyZmFjZTogeG1sRG9jLmNy
ZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiYWJjIiwgImRlZiIpIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAicmVtb3ZlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MykgCi1GQUlMIE5vZGUg
aW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIHhtbERvYy5jcmVhdGVQcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24oImFiYyIsICJkZWYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11
c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRz
IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2Jq
ZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJy
b3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2Rl
IGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiB4bWxEb2MuY3JlYXRlUHJv
Y2Vzc2luZ0luc3RydWN0aW9uKCJhYmMiLCAiZGVmIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBt
dXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiB4bWxEb2Mu
Y3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJhYmMiLCAiZGVmIikgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJhZGRFdmVudExpc3RlbmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMCkgCiBGQUlM
IEV2ZW50VGFyZ2V0IGludGVyZmFjZTogY2FsbGluZyBhZGRFdmVudExpc3RlbmVyKERPTVN0cmlu
ZyxFdmVudExpc3RlbmVyLGJvb2xlYW4pIG9uIHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24oImFiYyIsICJkZWYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlw
ZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJm
dW5jdGlvbiAoKSB7CiAgICAgW25hdGl2ZSBjb2RlXQpAQCAtMTY3MywyMSArMTYzNywxNSBAQCBG
QUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGlzRGVmYXVsdE5hbWVzcGFjZShET01TdHJpbmcp
IG9uIGRvY3VtZW50LmNyZWF0ZUNvbQogICAgIFtuYXRpdmUgY29kZV0KIH0iIGRpZCBub3QgdGhy
b3cKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIpIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5zZXJ0QmVmb3JlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAo
NDApIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2Rl
KSBvbiBkb2N1bWVudC5jcmVhdGVDb21tZW50KCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRz
IG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1l
bnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CitGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5n
IGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIp
IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93
czogQ2FsbGVkIHdpdGggMSBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBb
bmF0aXZlIGNvZGVdCiB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJy
b3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBv
YmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQogUEFTUyBOb2RlIGludGVyZmFjZTogZG9j
dW1lbnQuY3JlYXRlQ29tbWVudCgiYWJjIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhcHBlbmRD
aGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQxKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNh
bGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiYWJjIikg
d2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dz
OiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtu
YXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJv
cjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9i
amVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxs
aW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIpIHdp
dGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50
ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVDb21tZW50KCJhYmMiKSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgInJlcGxhY2VDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQyKSAKLUZBSUwgTm9kZSBp
bnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuY3Jl
YXRlQ29tbWVudCgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVF
cnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVu
Y3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhp
ZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RF
cnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5v
ZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIGRvY3VtZW50
LmNyZWF0ZUNvbW1lbnQoImFiYyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBU
eXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVDb21tZW50KCJh
YmMiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlbW92ZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAoNDMpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2Rl
KSBvbiBkb2N1bWVudC5jcmVhdGVDb21tZW50KCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRz
IG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1l
bnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcg
b2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5k
RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBO
b2RlIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5jcmVh
dGVDb21tZW50KCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVy
cm9yIAogUEFTUyBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQo
ImFiYyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYWRkRXZlbnRMaXN0ZW5lciIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgKDApIAogRkFJTCBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGNhbGxpbmcgYWRk
RXZlbnRMaXN0ZW5lcihET01TdHJpbmcsRXZlbnRMaXN0ZW5lcixib29sZWFuKSBvbiBkb2N1bWVu
dC5jcmVhdGVDb21tZW50KCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cg
VHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9u
ICJmdW5jdGlvbiAoKSB7CiAgICAgW25hdGl2ZSBjb2RlXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1hcHBlbmRD
aGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLWFwcGVuZENoaWxkLWV4cGVjdGVkLnR4dAppbmRleCAzYTI4
OWU4MzJlNmEyZDk0ODkwYzAyNGE1NjE0OTY4YzAxNDU5M2JkLi5iMTMwY2FmZmQ4NDgyNzY0Zjcw
YzM0MDNlNGYwODAyODlhMmE5MGUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLWFwcGVuZENoaWxkLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Rv
bS9ub2Rlcy9Ob2RlLWFwcGVuZENoaWxkLWV4cGVjdGVkLnR4dApAQCAtMSwxMiArMSwxMiBAQAog
CiAKLUZBSUwgV2ViSURMIHRlc3RzIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAo
KSB7IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobnVsbCkgfSIgdGhyZXcgb2JqZWN0ICJFcnJv
cjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBl
Y3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBXZWJJREwgdGVzdHMg
CiBQQVNTIEFwcGVuZGluZyB0byBhIGxlYWYgbm9kZS4gCi1GQUlMIEFwcGVuZGluZyBudWxsIHRv
IGEgdGV4dCBub2RlIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IG5vZGUu
YXBwZW5kQ2hpbGQobnVsbCkgfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVz
dEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0
ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgQXBwZW5kaW5nIG51bGwg
dG8gYSB0ZXh0IG5vZGUgCiBQQVNTIEFwcGVuZGluZyB0byBhIHRleHQgbm9kZSAKLUZBSUwgQXBw
ZW5kaW5nIG51bGwgdG8gYSBjb21tZW50IGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlv
biAoKSB7IG5vZGUuYXBwZW5kQ2hpbGQobnVsbCkgfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGll
cmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVy
cm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgQXBw
ZW5kaW5nIG51bGwgdG8gYSBjb21tZW50IAogUEFTUyBBcHBlbmRpbmcgdG8gYSBjb21tZW50IAot
RkFJTCBBcHBlbmRpbmcgbnVsbCB0byBhIGRvY3R5cGUgYXNzZXJ0X3Rocm93czogZnVuY3Rpb24g
ImZ1bmN0aW9uICgpIHsgbm9kZS5hcHBlbmRDaGlsZChudWxsKSB9IiB0aHJldyBvYmplY3QgIkVy
cm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlS
ZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQor
UEFTUyBBcHBlbmRpbmcgbnVsbCB0byBhIGRvY3R5cGUgCiBQQVNTIEFwcGVuZGluZyB0byBhIGRv
Y3R5cGUgCiBQQVNTIEFwcGVuZGluZyBhIGRvY3VtZW50IAogUEFTUyBBZG9wdGluZyBhbiBvcnBo
YW4gCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9ub2Rlcy9Ob2RlLWluc2VydEJlZm9yZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLWluc2VydEJl
Zm9yZS1leHBlY3RlZC50eHQKaW5kZXggNTZiY2QyYTgwYmIzNGQzN2FjMDg0Zjc3NDE2NGYwMWNm
YmU5NGE3OC4uYzY2MjIzM2RjMDU2Mzg1N2YyM2I2MDY5MDM0YWM4Zjc1YjhjZWE2YyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9k
ZXMvTm9kZS1pbnNlcnRCZWZvcmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtaW5zZXJ0QmVmb3JlLWV4
cGVjdGVkLnR4dApAQCAtMSwxMiArMSwxMiBAQAogCi1GQUlMIENhbGxpbmcgaW5zZXJ0QmVmb3Jl
IHdpdGggYSBub24tTm9kZSBmaXJzdCBhcmd1bWVudCBtdXN0IHRocm93IFR5cGVFcnJvci4gYXNz
ZXJ0X3Rocm93czogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgZG9jdW1lbnQuYm9keS5pbnNlcnRC
ZWZvcmUobnVsbCwgbnVsbCkgfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjog
RE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVF
cnJvciIgKCJUeXBlRXJyb3IiKQotRkFJTCBDYWxsaW5nIGluc2VydEJlZm9yZSB3aXRoIGEgbm9u
LU5vZGUgZmlyc3QgYXJndW1lbnQgb24gYSBsZWFmIG5vZGUgRG9jdW1lbnRUeXBlIG11c3QgdGhy
b3cgVHlwZUVycm9yLiBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyBub2Rl
Lmluc2VydEJlZm9yZShudWxsLCBudWxsKSB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJj
aHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3Ii
KSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBDYWxsaW5n
IGluc2VydEJlZm9yZSB3aXRoIGEgbm9uLU5vZGUgZmlyc3QgYXJndW1lbnQgbXVzdCB0aHJvdyBU
eXBlRXJyb3IuIAorUEFTUyBDYWxsaW5nIGluc2VydEJlZm9yZSB3aXRoIGEgbm9uLU5vZGUgZmly
c3QgYXJndW1lbnQgb24gYSBsZWFmIG5vZGUgRG9jdW1lbnRUeXBlIG11c3QgdGhyb3cgVHlwZUVy
cm9yLiAKIFBBU1MgQ2FsbGluZyBpbnNlcnRCZWZvcmUgYW4gYSBsZWFmIG5vZGUgRG9jdW1lbnRU
eXBlIG11c3QgdGhyb3cgSElFUkFSQ0hZX1JFUVVFU1RfRVJSLiAKLUZBSUwgQ2FsbGluZyBpbnNl
cnRCZWZvcmUgd2l0aCBhIG5vbi1Ob2RlIGZpcnN0IGFyZ3VtZW50IG9uIGEgbGVhZiBub2RlIFRl
eHQgbXVzdCB0aHJvdyBUeXBlRXJyb3IuIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlv
biAoKSB7IG5vZGUuaW5zZXJ0QmVmb3JlKG51bGwsIG51bGwpIH0iIHRocmV3IG9iamVjdCAiRXJy
b3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJl
cXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQ
QVNTIENhbGxpbmcgaW5zZXJ0QmVmb3JlIHdpdGggYSBub24tTm9kZSBmaXJzdCBhcmd1bWVudCBv
biBhIGxlYWYgbm9kZSBUZXh0IG11c3QgdGhyb3cgVHlwZUVycm9yLiAKIFBBU1MgQ2FsbGluZyBp
bnNlcnRCZWZvcmUgYW4gYSBsZWFmIG5vZGUgVGV4dCBtdXN0IHRocm93IEhJRVJBUkNIWV9SRVFV
RVNUX0VSUi4gCi1GQUlMIENhbGxpbmcgaW5zZXJ0QmVmb3JlIHdpdGggYSBub24tTm9kZSBmaXJz
dCBhcmd1bWVudCBvbiBhIGxlYWYgbm9kZSBDb21tZW50IG11c3QgdGhyb3cgVHlwZUVycm9yLiBh
c3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyBub2RlLmluc2VydEJlZm9yZShu
dWxsLCBudWxsKSB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6
IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmpl
Y3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBDYWxsaW5nIGluc2VydEJlZm9yZSB3
aXRoIGEgbm9uLU5vZGUgZmlyc3QgYXJndW1lbnQgb24gYSBsZWFmIG5vZGUgQ29tbWVudCBtdXN0
IHRocm93IFR5cGVFcnJvci4gCiBQQVNTIENhbGxpbmcgaW5zZXJ0QmVmb3JlIGFuIGEgbGVhZiBu
b2RlIENvbW1lbnQgbXVzdCB0aHJvdyBISUVSQVJDSFlfUkVRVUVTVF9FUlIuIAotRkFJTCBDYWxs
aW5nIGluc2VydEJlZm9yZSB3aXRoIGEgbm9uLU5vZGUgZmlyc3QgYXJndW1lbnQgb24gYSBsZWFm
IG5vZGUgUHJvY2Vzc2luZ0luc3RydWN0aW9uIG11c3QgdGhyb3cgVHlwZUVycm9yLiBhc3NlcnRf
dGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyBub2RlLmluc2VydEJlZm9yZShudWxsLCBu
dWxsKSB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBF
eGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5
cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBDYWxsaW5nIGluc2VydEJlZm9yZSB3aXRoIGEg
bm9uLU5vZGUgZmlyc3QgYXJndW1lbnQgb24gYSBsZWFmIG5vZGUgUHJvY2Vzc2luZ0luc3RydWN0
aW9uIG11c3QgdGhyb3cgVHlwZUVycm9yLiAKIFBBU1MgQ2FsbGluZyBpbnNlcnRCZWZvcmUgYW4g
YSBsZWFmIG5vZGUgUHJvY2Vzc2luZ0luc3RydWN0aW9uIG11c3QgdGhyb3cgSElFUkFSQ0hZX1JF
UVVFU1RfRVJSLiAKIFBBU1MgQ2FsbGluZyBpbnNlcnRCZWZvcmUgd2l0aCBhbiBpbmNsdXNpdmUg
YW5jZXN0b3Igb2YgdGhlIGNvbnRleHQgb2JqZWN0IG11c3QgdGhyb3cgSElFUkFSQ0hZX1JFUVVF
U1RfRVJSLiAKIFBBU1MgQ2FsbGluZyBpbnNlcnRCZWZvcmUgd2l0aCBhIHJlZmVyZW5jZSBjaGls
ZCB3aG9zZSBwYXJlbnQgaXMgbm90IHRoZSBjb250ZXh0IG5vZGUgbXVzdCB0aHJvdyBhIE5vdEZv
dW5kRXJyb3IuIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1yZW1vdmVDaGlsZC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLXJl
bW92ZUNoaWxkLWV4cGVjdGVkLnR4dAppbmRleCAwMjkxMGJmOWNkMjQwYTBjZGQ4M2NmMTM3NjBj
NDU2MGRmZDk0M2EyLi4xMzk3YzRlYmVmNmM5NzhlMTAzYWIzMWEzODE2ZjkyZGVkYzNlZjU5IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Rv
bS9ub2Rlcy9Ob2RlLXJlbW92ZUNoaWxkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLXJlbW92ZUNoaWxk
LWV4cGVjdGVkLnR4dApAQCAtMjcsNSArMjcsNSBAQCBQQVNTIENhbGxpbmcgcmVtb3ZlQ2hpbGQg
b24gYSB0ZXh0IGZyb20gYSBzeW50aGV0aWMgZG9jdW1lbnQgd2l0aCBubyBjaGlsZHJlbiBzaAog
UEFTUyBQYXNzaW5nIGEgZGV0YWNoZWQgY29tbWVudCBmcm9tIGEgc3ludGhldGljIGRvY3VtZW50
IHRvIHJlbW92ZUNoaWxkIHNob3VsZCBub3QgYWZmZWN0IGl0LiAKIFBBU1MgUGFzc2luZyBhIG5v
bi1kZXRhY2hlZCBjb21tZW50IGZyb20gYSBzeW50aGV0aWMgZG9jdW1lbnQgdG8gcmVtb3ZlQ2hp
bGQgc2hvdWxkIG5vdCBhZmZlY3QgaXQuIAogUEFTUyBDYWxsaW5nIHJlbW92ZUNoaWxkIG9uIGEg
Y29tbWVudCBmcm9tIGEgc3ludGhldGljIGRvY3VtZW50IHdpdGggbm8gY2hpbGRyZW4gc2hvdWxk
IHRocm93IE5PVF9GT1VORF9FUlIuIAotRkFJTCBQYXNzaW5nIGEgdmFsdWUgdGhhdCBpcyBub3Qg
YSBOb2RlIHJlZmVyZW5jZSB0byByZW1vdmVDaGlsZCBzaG91bGQgdGhyb3cgVHlwZUVycm9yLiBh
c3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyBkb2N1bWVudC5ib2R5LnJlbW92
ZUNoaWxkKG51bGwpIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBF
eGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3Ii
ICgiVHlwZUVycm9yIikKK1BBU1MgUGFzc2luZyBhIHZhbHVlIHRoYXQgaXMgbm90IGEgTm9kZSBy
ZWZlcmVuY2UgdG8gcmVtb3ZlQ2hpbGQgc2hvdWxkIHRocm93IFR5cGVFcnJvci4gCiBiCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9u
b2Rlcy9Ob2RlLXJlcGxhY2VDaGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLXJlcGxhY2VDaGlsZC1leHBl
Y3RlZC50eHQKaW5kZXggZTdmNzBmYTM2YzVjMWNiZjkyYzdlNGI3YTQ5ZmJmOGFkY2JjNGY2ZC4u
ZDE3YzhiNTcwZWIxMjFlOTY3MzZhOWM2OTRmYjI1ZjE4MWFhZmNjMCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1y
ZXBsYWNlQ2hpbGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtcmVwbGFjZUNoaWxkLWV4cGVjdGVkLnR4
dApAQCAtMSw3ICsxLDUgQEAKIAotRkFJTCBQYXNzaW5nIG51bGwgdG8gcmVwbGFjZUNoaWxkIHNo
b3VsZCB0aHJvdyBhIFR5cGVFcnJvci4gYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gImZ1bmN0aW9u
ICgpIHsKLSAgICBhLnJlcGxhY2VDaGlsZChudWxsLCBudWxsKTsKLSAgfSIgZGlkIG5vdCB0aHJv
dworUEFTUyBQYXNzaW5nIG51bGwgdG8gcmVwbGFjZUNoaWxkIHNob3VsZCB0aHJvdyBhIFR5cGVF
cnJvci4gCiBGQUlMIElmIGNoaWxkJ3MgcGFyZW50IGlzIG5vdCB0aGUgY29udGV4dCBub2RlLCBh
IE5vdEZvdW5kRXJyb3IgZXhjZXB0aW9uIHNob3VsZCBiZSB0aHJvd24gYXNzZXJ0X3Rocm93czog
ZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBhLnJlcGxhY2VDaGlsZChhLCBjKTsKICAgfSIg
dGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9u
IDMiIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIE5vdEZvdW5kRXJyb3I6IHByb3BlcnR5ICJj
b2RlIiBpcyBlcXVhbCB0byAzLCBleHBlY3RlZCA4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2ludGVyZmFjZXMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dAppbmRleCAyZTU4YWU2MzUxOWE3NTUzN2VkZDJk
ODk3NDEwZjIyNTYwMGMzNmM2Li4wNDYyMjAzNTlhYTEwODhlOTk1MDYxMGIxZjE0NzQ2ZTJiZTFk
NjdjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vaW50ZXJmYWNlcy1leHBlY3Rl
ZC50eHQKQEAgLTEyMjUsMjEgKzEyMjUsMTUgQEAgRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGlu
ZyBpc0RlZmF1bHROYW1lc3BhY2UoRE9NU3RyaW5nKSBvbiBpZnJhbWUuY29udGVudERvY3UKICAg
ICBbbmF0aXZlIGNvZGVdCiB9IiBkaWQgbm90IHRocm93CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBp
ZnJhbWUuY29udGVudERvY3VtZW50IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5zZXJ0QmVmb3Jl
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDApIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGlu
ZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBvbiBpZnJhbWUuY29udGVudERvY3VtZW50IHdpdGgg
dG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2Fs
bGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKK0ZBSUwgTm9kZSBp
bnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24gaWZyYW1lLmNvbnRl
bnREb2N1bWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFz
c2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDEgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAo
KSB7CiAgICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRF
cnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3Qg
IlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFy
Y2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9y
IikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKIFBBU1MgTm9kZSBp
bnRlcmZhY2U6IGlmcmFtZS5jb250ZW50RG9jdW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJh
cHBlbmRDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQxKSAKLUZBSUwgTm9kZSBpbnRlcmZh
Y2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24gaWZyYW1lLmNvbnRlbnREb2N1bWVudCB3
aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6
IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25h
dGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4
Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIg
KCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChO
b2RlKSBvbiBpZnJhbWUuY29udGVudERvY3VtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVz
dCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBpZnJhbWUuY29udGVudERv
Y3VtZW50IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVwbGFjZUNoaWxkIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAoNDIpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQo
Tm9kZSxOb2RlKSBvbiBpZnJhbWUuY29udGVudERvY3VtZW50IHdpdGggdG9vIGZldyBhcmd1bWVu
dHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1
bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiBkaWQg
bm90IHRocm93CitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2Rl
LE5vZGUpIG9uIGlmcmFtZS5jb250ZW50RG9jdW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBt
dXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGlmcmFtZS5jb250ZW50
RG9jdW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZW1vdmVDaGlsZCIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgKDQzKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQo
Tm9kZSkgb24gaWZyYW1lLmNvbnRlbnREb2N1bWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11
c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRz
IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2Jq
ZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJy
b3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2Rl
IGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiBpZnJhbWUuY29udGVudERv
Y3VtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNT
IEV2ZW50VGFyZ2V0IGludGVyZmFjZTogaWZyYW1lLmNvbnRlbnREb2N1bWVudCBtdXN0IGluaGVy
aXQgcHJvcGVydHkgImFkZEV2ZW50TGlzdGVuZXIiIHdpdGggdGhlIHByb3BlciB0eXBlICgwKSAK
IEZBSUwgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBjYWxsaW5nIGFkZEV2ZW50TGlzdGVuZXIoRE9N
U3RyaW5nLEV2ZW50TGlzdGVuZXIsYm9vbGVhbikgb24gaWZyYW1lLmNvbnRlbnREb2N1bWVudCB3
aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6
IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAgICAgW25h
dGl2ZSBjb2RlXQpAQCAtMTU1MSwyMSArMTU0NSwxNSBAQCBGQUlMIE5vZGUgaW50ZXJmYWNlOiBj
YWxsaW5nIGlzRGVmYXVsdE5hbWVzcGFjZShET01TdHJpbmcpIG9uIGRvY3VtZW50LmltcGxlbWVu
dAogICAgIFtuYXRpdmUgY29kZV0KIH0iIGRpZCBub3QgdGhyb3cKIFBBU1MgTm9kZSBpbnRlcmZh
Y2U6IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KG51bGwsICIiLCBudWxs
KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImluc2VydEJlZm9yZSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgKDQwKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUs
Tm9kZSkgb24gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwgIiIs
IG51bGwpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0
X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsK
K0ZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24g
ZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwgIiIsIG51bGwpIHdp
dGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czog
Q2FsbGVkIHdpdGggMSBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0
aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhj
ZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAo
IlR5cGVFcnJvciIpCit9IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJy
b3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBv
YmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQogUEFTUyBOb2RlIGludGVyZmFjZTogZG9j
dW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwgIiIsIG51bGwpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAiYXBwZW5kQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MSkg
Ci1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGRvY3Vt
ZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSB3aXRoIHRv
byBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxl
ZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBj
b2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlv
biA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBl
RXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBv
biBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudChudWxsLCAiIiwgbnVsbCkg
d2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBp
bnRlcmZhY2U6IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KG51bGwsICIi
LCBudWxsKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlcGxhY2VDaGlsZCIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgKDQyKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxk
KE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVs
bCwgIiIsIG51bGwpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3Ig
YXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9u
ICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiBkaWQgbm90IHRocm93CitQQVNTIE5vZGUgaW50
ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmltcGxl
bWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSB3aXRoIHRvbyBmZXcgYXJn
dW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1l
bnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwgIiIsIG51bGwpIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAicmVtb3ZlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MykgCi1G
QUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIGRvY3VtZW50
LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSB3aXRoIHRvbyBm
ZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3
aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2Rl
XQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4
IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJy
b3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiBk
b2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudChudWxsLCAiIiwgbnVsbCkgd2l0
aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgRXZlbnRUYXJn
ZXQgaW50ZXJmYWNlOiBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudChudWxs
LCAiIiwgbnVsbCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhZGRFdmVudExpc3RlbmVyIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAoMCkgCiBGQUlMIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogY2FsbGlu
ZyBhZGRFdmVudExpc3RlbmVyKERPTVN0cmluZyxFdmVudExpc3RlbmVyLGJvb2xlYW4pIG9uIGRv
Y3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSB3aXRo
IHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENh
bGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAgICAgW25hdGl2
ZSBjb2RlXQpAQCAtMjE3MSwyMSArMjE1OSwxNSBAQCBGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxs
aW5nIGlzRGVmYXVsdE5hbWVzcGFjZShET01TdHJpbmcpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZQog
ICAgIFtuYXRpdmUgY29kZV0KIH0iIGRpZCBub3QgdGhyb3cKIFBBU1MgTm9kZSBpbnRlcmZhY2U6
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm5vc2NyaXB0IikgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJpbnNlcnRCZWZvcmUiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MCkgCi1GQUlMIE5vZGUgaW50
ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoIm5vc2NyaXB0Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5
cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAi
ZnVuY3Rpb24gKCkgeworRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZvcmUo
Tm9kZSxOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJub3NjcmlwdCIpIHdpdGggdG9v
IGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVk
IHdpdGggMSBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNv
ZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9u
IDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVF
cnJvciIpCit9IiBkaWQgbm90IHRocm93CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJub3NjcmlwdCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXBwZW5kQ2hp
bGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MSkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxs
aW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm5vc2NyaXB0
Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhy
b3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAg
IFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERP
TSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJy
b3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hp
bGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibm9zY3JpcHQiKSB3aXRoIHRvbyBm
ZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGludGVyZmFjZTog
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibm9zY3JpcHQiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
InJlcGxhY2VDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQyKSAKLUZBSUwgTm9kZSBpbnRl
cmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgibm9zY3JpcHQiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlw
ZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJm
dW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgZGlkIG5vdCB0aHJvdworUEFTUyBO
b2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJub3NjcmlwdCIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0
aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJub3NjcmlwdCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVtb3ZlQ2hpbGQiIHdpdGgg
dGhlIHByb3BlciB0eXBlICg0MykgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92
ZUNoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm5vc2NyaXB0Iikgd2l0aCB0
b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxs
ZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUg
Y29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRp
b24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlw
ZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkg
b24gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibm9zY3JpcHQiKSB3aXRoIHRvbyBmZXcgYXJndW1l
bnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoIm5vc2NyaXB0IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJh
ZGRFdmVudExpc3RlbmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMCkgCiBGQUlMIEV2ZW50VGFy
Z2V0IGludGVyZmFjZTogY2FsbGluZyBhZGRFdmVudExpc3RlbmVyKERPTVN0cmluZyxFdmVudExp
c3RlbmVyLGJvb2xlYW4pIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm5vc2NyaXB0Iikgd2l0
aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBD
YWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRp
dmUgY29kZV0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>260822</attachid>
            <date>2015-09-08 18:32:15 -0700</date>
            <delta_ts>2015-09-08 23:17:19 -0700</delta_ts>
            <desc>Archive of layout-test-results from ews104 for mac-mavericks-wk2</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>753737</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">UEsDBAoAAAAAADmRKEcAAAAAAAAAAAAAAAALABwAX3dwdF9jZXJ0cy9VVAkAA92G71UIiO9VdXgL
AAEE9QEAAAQUAAAAUEsDBBQAAgAIAMSNKEfUa4ULBAkAACcRAAARABwAX3dwdF9jZXJ0cy8wMS5w
ZW1VVAkAA1CB71VQge9VdXgLAAEE9QEAAAQUAAAArVZZj+JKD33nV/B4r9CIyp5Yug9ZWAId9v0t
SwXC3kkgwK+/dnqmp1tNz5U+fRGN6FTZZR/b55TN0zyJk9DPOVSq+Dh+7r/9omfG0yw5HaEqVf9i
N/Hv94UxTxN/X+1dDgFPoSrQsvBhOVkf/fyS8qq5X5/SJN8coJptfFFR5/jPaGw2jmF6P+fo/N3I
zbILObN7/xQ8+HHe+3l8Sg8/cp7l2e+Q/H0SJfn9/QU9vVNetTju5oChnatVo8oYyCowvSoyQam2
vMkXAzPOeVqFaj/M/2wwvgRbHub/FdnPbdXBJdgnYbXL71X3GJ/g08EfFj9Ak2b+E0DoQag+2ED1
L5HJejVI8r8/baPHO0WX/SX7sAW+7KEHEw19EATQRdBDYBHEAYgRaD5wGZgEqgRaDIEIsfaNBx+k
GCQGTAQhAF+FMAIxAKbRB99zBQQJFB0U9tyDooKu0NGyAVIAkQGBBLpOJzIdQiyFBr4GkQSS8twD
Bi9KIGO0McQGxRwzUHXwY4jK8DiuMghCUP3nHjBsBEGOQUco0Ap3asDRm1pa4e8IAqVEhn8Tgw6G
ApoIYQgxB0Gmj6FRUkIEzICIET48hOibLGIRFAw+InNegoAO8VxVBS0AQwDDB4ODzkH5phaRSJt9
XtriNwdfAqYSgFQCxBarjN8axfbUA8IY6rQqyhD4VFNfpPQRBO5TVLEEQZlapD73IKhULMmndpJ9
CkDUIMSm0kEz6AfGL6NzRvV67kGnI1SRcFN8iEvMERkKXinT5yAahAZ22lMPBs0upRBi6ctO0DEv
jcCRsJcMQkAJCRb2TQzYt9ixkg5RDIpM3YXlw77CMNBtLFBXBwHNjvJNP2AJKP2YEJBwIrArygGR
sZQyFUgVCGrMQv7GA3oWOOB8MQEYNiF6iCkebFRNAxEbm9PY4uAExnMPWlnuUKE+1H3qTMxaiehE
I4IIzWWaUFxVvpkLI6ZQ3wAXDDo0Dqm1QolKqZW2ejnv8jddjT0sGl9WGrfz6ciPyKOqokhaKRmM
sQ+ysVCYcZWq/JbzI+lO9tn9z2XLz5ANbVzOUz855hlUv5xlmzAZTRvPzH/RdMnPEcaD+key88WH
ZYLpgKpQ0ypYUBUcEyyEt0GM0WyCJIDQgKZGPGOI0FTBboJugdx8dq55yTfE9/f/PnnH70kE/6/z
S1lP0p5/4FD/s4T9erJS3rEJK88yofinmb/mz4D/faEobwHP7BtU34hHf3Q0eRlX5zygm8YVZZrQ
I8TQ8S+J/J8uGShsOA9I68inKiepwD7GLmfIVjExL1KnoNHYIGVzgdgHoX0315GXdTInfhFpPnHY
tNKQxEYEOSTiYAqNEO7UZOK1d3PkF4MRUeIc4gAjNeBsh8hcMTEFsidqIX3wUJ2mVNfI1bs5TjWK
GXpGeYtkki40NAyiG+QU3CmFEBo/vYklg/sfyA4ZXFMoOyRitZRepEUkFCQ1ZAqdQYx8IRJJofAg
JrFMc/5ujlSIzrlIH2y9QAVFIKJEJJHUUIP9UsNQJDAp1A85okh+m2uAHB3ExPIIqfRG9ChLiFJI
MeCdANsc01HLeGLpk1qwMp1AIOgQQ6QklDekJEEsFUslPNG/iEqjE3GLwaergyiUEqgQMtgAGCoW
DsHEZDEAtfyNyCPlySU/IkRIwe/mKOGYL5I49gkyLDI7sTyj0hP4MSkl+kf5xJ7hqDfhp8LhRcEP
SId4GQDuxDRR1fDKgomjCWKFvM9LZscaYSfEH9oGGxXTFErcQk5y4kdExOhKLu8ZSimfvk9F10ol
Fj8Ej4qI8WCadM+TSiVAHSqlCC9JuP9N7fAlNkCgkVqgcr+b+0J5vVMIWIQaj5MkklhEGJEUGTlE
cDShvM+h3Mp0n/sNXUwXO5Vat/KDHqvRcntVuzGauE3XNieN8m3Fc11n8rBtc8vXZuFa5hr/JmbP
Wu9eN7ukZRTMModZ03TMyBtlRWu4dGbDoeNYHWk1d/NK2LptotbqGh5YHrVmj6jtFe1N2PMm06I/
MRXPMVlva8rzt3c3/P/3u60ZVZ55feZ0vW4knsla9vi1NXYDyRk2MLKpWTFl13IKkzZ0zROGP3S6
jWXXc+Is55ehs5Rqd6M41T3TDc4ZS60iLJRRbzlt+k1nutMqYtB3jWJrjtR40lu626FYV5Z165Qa
p7rMbN1/XY4mcmsgteKrkd6OWjBFGk9mYfaoNa3xojIesQ6zrpkQd1ZBrJ0zZZGvjpfR4az2Z0bn
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
jb54/YCNe/qgUW7KDxOXn6IIT0/T637caOxSL7oyETorjPViaHVjfMEANzsbnz5ZV34eOFa/R7Ec
9gc+Onj3t8PXP//4XeQGQ+/LazUl5iT/P/8fUEsDBAoAAAAAAPaNKEcAAAAAAAAAAAAAAAAFABwA
ZmFzdC9VVAkAA6+B71UIiO9VdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAOONKEcAAAAAAAAAAAAA
AAAMABwAZmFzdC9jYW52YXMvVVQJAAOKge9VCIjvVXV4CwABBPUBAAAEFAAAAFBLAwQUAAIACABZ
kShHKEt8YJUAAABKAQAAJgAcAGZhc3QvY2FudmFzL2NhbnZhcy1saW5lRGFzaC1zdGRlcnIudHh0
VVQJAAMZh+9VioHvVXV4CwABBPUBAAAEFAAAANWOTQrCMBSE955iLmBooYU2iJtWXOiuCxfi4rV9
YCDJC2msP6e39RauZuZjGKbjAFTIK51nuqjBzynPCmVlIItBnKIQLKsL9yeTVmnEJ/ZJtTyzleAW
fy3qsrxhd4hR4l6jOf5Kr9RxOhvPLU13DeNnsmbEuCRQjPTWoATLNCWIZ7DldQ3usYCe4cVvPxxF
bbp/OPkFUEsDBAoAAAAAAOGNKEcAAAAAAAAAAAAAAAAJABwAZmFzdC9jc3MvVVQJAAOFge9VCIjv
VXV4CwABBPUBAAAEFAAAAFBLAwQUAAIACABXkShH2wjTQjsAAAA/AAAAKQAcAGZhc3QvY3NzL2Nv
bXBhcmUtY29udGVudC1zdHlsZS1zdGRlcnIudHh0VVQJAAMWh+9VhYHvVXV4CwABBPUBAAAEFAAA
AHMsKUnNLShRKMlXSM0rLE0tTVVIVCjPL8pWyARKKJRnZOakKkDEM4sVklIz89IVCoryk1OLi1NT
9LgAUEsDBAoAAAAAAOiNKEcAAAAAAAAAAAAAAAAJABwAZmFzdC9kb20vVVQJAAOUge9VCIjvVXV4
CwABBPUBAAAEFAAAAFBLAwQUAAIACABhkShHhZINSOEAAABMAwAAMgAcAGZhc3QvZG9tL29iamVj
dC1wbHVnaW4taGlkZXMtcHJvcGVydGllcy1zdGRlcnIudHh0VVQJAAMmh+9VlIHvVXV4CwABBPUB
AAAEFAAAAO2Ru07EMBBFa/YrpgRp4yReEjZuWYoVIEAgUSAKP2azI+Jx5Ngg/p6A6KAEiYLqNldn
NPfIqm6KqiuqNdRrVdeqkqKRK7DBCz2OA4p7NOeUxPWQe2KxkmKDzziE0SOnh+Oua9WJq8wjnMUY
IgxBO+IeygsyUcfXcssJI2OCd0Cx5am8yWSf7sgjfDLHjyhPw1zlNJWX2l7dfqkpADefRT78efYS
ZNscKeAAU6akzYBAXvcIu5DZCYANOdgRO7U4+I3XvLb7IizB5AQvMcwD6mj3lNCmHHEhv7XU/lv6
U5beAFBLAwQKAAAAAADujShHAAAAAAAAAAAAAAAADAAcAGZhc3QvZXZlbnRzL1VUCQADoIHvVQiI
71V1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAYJEoR1gqZ3U5AAAAQwAAADIAHABmYXN0L2V2ZW50
cy9kaXNwbGF5LW5vbmUtb24tZm9jdXMtY3Jhc2gtc3RkZXJyLnR4dFVUCQADI4fvVZKB71V1eAsA
AQT1AQAABBQAAADLzS8tTvXNL0sNyVdIS8zMSU1RKAGyMvNSFBIVShKL0lNLFMoyU8sVEksUDA0M
DPQMwEDHFM7kAgBQSwMEFAACAAgAZpEoRzC1beM5AAAAQwAAACsAHABmYXN0L2V2ZW50cy9tb3Vz
ZS1mb2N1cy1pbWFnZW1hcC1zdGRlcnIudHh0VVQJAAMwh+9VnoHvVXV4CwABBPUBAAAEFAAAAMvN
Ly1O9c0vSw3JV0hLzMxJTVEoAbIy81IUEhVKEovSU0sUyjJTyxUSSxTMDQz0DMBAR9cQzuYCAFBL
AwQUAAIACABnkShH5669XzsAAABDAAAALwAcAGZhc3QvZXZlbnRzL21vdXNldXAtb3V0c2lkZS1k
b2N1bWVudC1zdGRlcnIudHh0VVQJAAMyh+9VoIHvVXV4CwABBPUBAAAEFAAAAMvNLy1O9c0vSw3J
V0hLzMxJTVEoAbIy81IUEhVKEovSU0sUyjJTyxUSSxRMDAwM9AzAQMfYwhTK5AIAUEsDBAoAAAAA
AOeNKEcAAAAAAAAAAAAAAAAMABwAZmFzdC9mcmFtZXMvVVQJAAORge9VCIjvVXV4CwABBPUBAAAE
FAAAAFBLAwQUAAIACABdkShH2wjTQjsAAAA/AAAALwAcAGZhc3QvZnJhbWVzL2ZyYW1lLWRpc3Bs
YXktbm9uZS1mb2N1cy1zdGRlcnIudHh0VVQJAAMih+9VkYHvVXV4CwABBPUBAAAEFAAAAHMsKUnN
LShRKMlXSM0rLE0tTVVIVCjPL8pWyARKKJRnZOakKkDEM4sVklIz89IVCoryk1OLi1NT9LgAUEsD
BAoAAAAAAO2NKEcAAAAAAAAAAAAAAAAMABwAZmFzdC9pbWFnZXMvVVQJAAOdge9VCIjvVXV4CwAB
BPUBAAAEFAAAAFBLAwQUAAIACABmkShHIY+9ODIAAAAzAAAALAAcAGZhc3QvaW1hZ2VzL3BkZi1h
cy1pbWFnZS1jcm9wLWJveC1zdGRlcnIudHh0VVQJAAMvh+9VnYHvVXV4CwABBPUBAAAEFAAAAHPL
SSxJdUlNzk9JtVJIAdGZeekKqUVF+UVWCpl5yflFRanJJQopiSWJCskZqcnZelwAUEsDBAoAAAAA
AO2NKEcAAAAAAAAAAAAAAAAMABwAZmFzdC9sb2FkZXIvVVQJAAOdge9VCIjvVXV4CwABBPUBAAAE
FAAAAFBLAwQUAAIACABdkShH2wjTQjsAAAA/AAAAUgAcAGZhc3QvbG9hZGVyL2Rpc3BsYXktaW1h
Z2UtdW5zZXQtY2FuLWJsb2NrLWltYWdlLWFuZC1jYW4tcmVsb2FkLWluLXBsYWNlLXN0ZGVyci50
eHRVVAkAAyGH71WQge9VdXgLAAEE9QEAAAQUAAAAcywpSc0tKFEoyVdIzSssTS1NVUhUKM8vylbI
BEoolGdk5qQqQMQzixWSUjPz0hUKivKTU4uLU1P0uABQSwMEFAACAAgAYJEoR9sI00I7AAAAPwAA
AFMAHABmYXN0L2xvYWRlci9pbWFnZXMtZW5hYmxlZC11bnNldC1jYW4tYmxvY2staW1hZ2UtYW5k
LWNhbi1yZWxvYWQtaW4tcGxhY2Utc3RkZXJyLnR4dFVUCQADJIfvVZOB71V1eAsAAQT1AQAABBQA
AABzLClJzS0oUSjJV0jNKyxNLU1VSFQozy/KVsgESiiUZ2TmpCpAxDOLFZJSM/PSFQqK8pNTi4tT
U/S4AFBLAwQUAAIACABlkShH2wjTQjsAAAA/AAAALQAcAGZhc3QvbG9hZGVyL3JlbG9hZC1wb2xp
Y3ktZGVsZWdhdGUtc3RkZXJyLnR4dFVUCQADLofvVZ2B71V1eAsAAQT1AQAABBQAAABzLClJzS0o
USjJV0jNKyxNLU1VSFQozy/KVsgESiiUZ2TmpCpAxDOLFZJSM/PSFQqK8pNTi4tTU/S4AFBLAwQK
AAAAAADwjShHAAAAAAAAAAAAAAAADQAcAGZhc3QvcmVnaW9ucy9VVAkAA6OB71UIiO9VdXgLAAEE
9QEAAAQUAAAAUEsDBAoAAAAAAPCNKEcAAAAAAAAAAAAAAAAXABwAZmFzdC9yZWdpb25zL3Njcm9s
bGluZy9VVAkAA6SB71UIiO9VdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAGiRKEc5AcvdQAAAAHoA
AAA1ABwAZmFzdC9yZWdpb25zL3Njcm9sbGluZy93aGVlbC1zY3JvbGwtYWJzcG9zLXN0ZGVyci50
eHRVVAkAAzOH71Wjge9VdXgLAAEE9QEAAAQUAAAAcy1LzSsJTs1LSS0KKMqvqLSySs7PK8nMK80v
LfYF4tTg5KL8nBynSoXMYoW8/BKFzNyCnNRcoKbUFC5XSjQDAFBLAwQUAAIACABokShHOQHL3UAA
AAB6AAAALgAcAGZhc3QvcmVnaW9ucy9zY3JvbGxpbmcvd2hlZWwtc2Nyb2xsLXN0ZGVyci50eHRV
VAkAAzSH71Wjge9VdXgLAAEE9QEAAAQUAAAAcy1LzSsJTs1LSS0KKMqvqLSySs7PK8nMK80vLfYF
4tTg5KL8nBynSoXMYoW8/BKFzNyCnNRcoKbUFC5XSjQDAFBLAwQUAAIACABokShH5IrHQzwAAAA9
AAAAQAAcAGZhc3QvcmVnaW9ucy9zY3JvbGxpbmcvd2hlZWwtc2Nyb2xsYWJsZS1zaW5nbGUtcmVn
aW9uLXN0ZGVyci50eHRVVAkAAzSH71Wkge9VdXgLAAEE9QEAAAQUAAAAcy1LzSsJTs1LSS0KKMqv
qLSySs7PK8nMK80vLfYF4tTg5KL8nBynSoXMYoW8/BKFzNyCnNRcoKbUFC4AUEsDBAoAAAAAAPaN
KEcAAAAAAAAAAAAAAAAKABwAZmFzdC90ZXh0L1VUCQADr4HvVQiI71V1eAsAAQT1AQAABBQAAABQ
SwMEFAACAAgAbpEoRyv701BLAQAAyAMAACQAHABmYXN0L3RleHQvZm9udC13ZWlnaHRzLXpoLXN0
ZGVyci50eHRVVAkAA0CH71Wvge9VdXgLAAEE9QEAAAQUAAAA5VE9a8MwFJzrXyGyZLGN5G+b1tA4
hJZCFgc6hAyyLKeitmRsOaQN/u+VEpIWGmjXUi3SO7133LtzIPItGFswAihKEEqcyEauC4hobNy2
NbWfafHEpL4ywSXl0p7THa1F26j32ovVWEhhuAGZ6OiK7mUCHvkO16wEU9yIbgryoZC4qKnCAccN
BXcgX+WCbyWz8sya1Zi8mqBn7/oHBTY8HhM0WHZsrzC4V1VJe9KxVopOIbfZaqHUzC9YoprCCsPQ
R15VujA9YKmmi0HS/ti/mOGekQfcv3x2+jD2IVjruqrCoCJuBeEmPci3VktphpPskhFpKkcGLrVA
01CLd0zzpsaNAxLNniuEb8GZKi5DN7pGTU4eak2TZa53WCpH7s9aJ+NJ7Bc6rdRzXL/4ie6bp5PR
GI10NJxrGQfeH844cFEQ/Spj1RkF/yDjD1BLAwQKAAAAAAD2jShHAAAAAAAAAAAAAAAACQAcAGZh
c3QveHNsL1VUCQADr4HvVQiI71V1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAbZEoR3L9ZfKFAAAA
6QAAACUAHABmYXN0L3hzbC90cmFuc2Zvcm0teGhyLWRvYy1zdGRlcnIudHh0VVQJAAM+h+9VrYHv
VXV4CwABBPUBAAAEFAAAAK1OMQ7CQAzb+4p8oGRguxkm2EB0TttUnJS7VLmc1P6eg36BxbJsy/ak
aY1CHjUDm6kFWKLwDwIivlRq4oIXcsLr8MCBx1t0vNOu1Z9cvOBCxXErgsZFq00tvr2tn3U6NRUk
ZoYzsHDi7BDTquZdc8JBIUDNNLZRVxCl+U/j/VHP8/dF9wFQSwMEFAACAAgAbZEoRwWPVY6TAAAA
0AIAACcAHABmYXN0L3hzbC94c2x0LWJhZC1pbXBvcnQtdXJpLXN0ZGVyci50eHRVVAkAAz6H71Wt
ge9VdXgLAAEE9QEAAAQUAAAA7U87DsIwDN17Cl+geGDLDBNsIDo7qSsiOXGVOBLcnkCPwIZYLNvv
o/eCpjUKWdQMXIoWB0sU/gyHiDeVlrjigYzwOF1wYn+Khmd6arMrV6u4UDV8VMHCVVsJnd4vGz3N
Y0yrFhtbibv+A4mZYQ8snDgbbOjQEbet4KBl8j2AKYjS/G2QrLWF+9uk60SG8O/7031fUEsDBBQA
AgAIAG2RKEfPj2YOUAAAAKAAAAAkABwAZmFzdC94c2wveHNsdC1jb250ZW50VHlwZS1zdGRlcnIu
dHh0VVQJAAM+h+9VrYHvVXV4CwABBPUBAAAEFAAAAK3MsQ3AIAwF0Z4p/gZR2myDwAhLNkaWiTJ+
yA5prrtXTCdLDrYBcje/0FgIEB6EEySkNAK2Yq5IPO4sXLG7CM0cStGt7ssslb+wp4fK8ZEvUEsD
BBQAAgAIAG6RKEeBSnetSwAAAKwAAAA0ABwAZmFzdC94c2wveHNsdC10cmFuc2Zvcm0tdG8tZnJh
Z21lbnQtY3Jhc2gtc3RkZXJyLnR4dFVUCQADP4fvVa+B71V1eAsAAQT1AQAABBQAAAC1zLENgDAM
RNE+U9wKtGzjwAVZcmxkLOZHomAD6q/3t5inmpSGg5mRK4YaAVMnFtA46YVbUqUbW3LnUNdXxMBh
0cW+juJVbfvl+gBQSwMEFAACAAgA15EoR8hqiCJEAQAA/AEAABEAHABmdWxsX3Jlc3VsdHMuanNv
blVUCQADBojvVQiI71V1eAsAAQT1AQAABBQAAACFkEFPwzAMhf8K8gmklsKG2CinSSto2mBo7Ric
qqx1t7C0jRIXrZr630lShJA4cIrlPL/PfpPpNF1F8XqRxOcnINSkITxBiTlntiDFssNP4fPK37Iq
9zW1Ai/3VAr7p1DWiiCEh8Vk/g4e4FFiRpib1sskjk2HZdQwI4Zk9hQt18mZ63dd58GHI+Z12T/k
V3WOBqPRx2OGknhd/UWtokezdzxbPv/Di94SyzEgfeBSWtFgPB54UDVlqnCnUGtDMEtce8ArQqUa
6bwKJjT2upIbUbWD8MoDwdq6odRlleZcGUjwWoumRB1MGbEg2sTBBrdzTsHCaRMXqwefqCwKwmHv
KpnWaMDD0d3o1gPJjyi+fbFiW/FriT3TqVRI1JopyvYQkmpMv+BHK3Q33fSuhWCH1l3TGPe0z4bZ
FHVacKu1o93F/RdQSwMECgAAAAAA/Y0oRwAAAAAAAAAAAAAAAAUAHABodHRwL1VUCQADvYHvVQiI
71V1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAGY4oRwAAAAAAAAAAAAAAAAsAHABodHRwL3Rlc3Rz
L1VUCQAD8YHvVQiI71V1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAGY4oRwAAAAAAAAAAAAAAABAA
HABodHRwL3Rlc3RzL21pc2MvVVQJAAPxge9VCIjvVXV4CwABBPUBAAAEFAAAAFBLAwQUAAIACACR
kShHFTU1knoAAAC8AAAAKgAcAGh0dHAvdGVzdHMvbWlzYy94c2x0LWJhZC1pbXBvcnQtc3RkZXJy
LnR4dFVUCQADgYfvVfGB71V1eAsAAQT1AQAABBQAAACNjkEOwyAMBO95hT9AIO2hFb8hxFUsGYyM
kfr8EuUD1V5WO4fZLKURJyOpgKqiET7ECKdZi95vj9caZrb4DiH4Qj17xS5DM3b/7WxuT4ej0kTN
DaV1bsBUEZ6AjAWrwU2XSeJdIcKoaZ8aE2BJx3+6Kn3k87qXLDEvP1BLAwQKAAAAAAD9jShHAAAA
AAAAAAAAAAAAFgAcAGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9VVAkAA72B71UIiO9VdXgLAAEE9QEA
AAQUAAAAUEsDBBQAAgAIAHWRKEfbCNNCOwAAAD8AAAA3ABwAaHR0cC90ZXN0cy9uYXZpZ2F0aW9u
L2ZhbGxiYWNrLWFuY2hvci1yZWxvYWQtc3RkZXJyLnR4dFVUCQADTYfvVb2B71V1eAsAAQT1AQAA
BBQAAABzLClJzS0oUSjJV0jNKyxNLU1VSFQozy/KVsgESiiUZ2TmpCpAxDOLFZJSM/PSFQqK8pNT
i4tTU/S4AFBLAwQKAAAAAAAHjihHAAAAAAAAAAAAAAAAFAAcAGh0dHAvdGVzdHMvc2VjdXJpdHkv
VVQJAAPOge9VCIjvVXV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAAAGjihHAAAAAAAAAAAAAAAAKgAc
AGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L1VUCQADzIHvVQiI71V1
eAsAAQT1AQAABBQAAABQSwMEFAACAAgAe5EoR2OqrGyCAAAAqAAAAEAAHABodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtYWxsb3dlZC1zdGRlcnIudHh0VVQJAANZ
h+9VzIHvVXV4CwABBPUBAAAEFAAAAC2NQQrDMAwE73mFXhA7vaT4FYW+ILgbYlAsIyml/n1NKXta
htnNcrbCmxepBFXRRHth0OHeUgjLbZ3jyJLuMcZgyJcW7yFLdVR//vtDuOQeFCaXZlgw74z5Y0xc
KmglMM4h0A/YAfg0aHpDbVwnksqdljnSjs2vMUSbguxqTdTxmr5QSwMEFAACAAgAe5EoR2OqrGyC
AAAAqAAAAFIAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wt
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
tVzOKMS/0EJ8A1BLAwQUAAIACADWkShHw41GzjMBAABsAgAALwAcAHJldHJpZXMvanMvZG9tL2Rv
dC1ub2RlLWJhc2UtZXhjZXB0aW9uLWRpZmYudHh0VVQJAAMDiO9VA4jvVXV4CwABBPUBAAAEFAAA
AL1QsWrDMBDd/RWHpwRH9tChpZPTxIHSpAm1aWbZOjcuis9IJxz/feVgAu2UqQidTnDvvXtPCAHJ
J2l3RpusJcskO+bJEcu3hqfnxTVaJR+oUVpMtBzIsWC0LAxap9kmBtk0Hv9tE0Vnf1m0pFCUHiDw
UmHHDbW+67BiVDFfOIii6N+EZcVO6qtsmoJ4WDxCNJY0DWDfgnVVhdYuwAtA32gNFhGkryM5UA3h
YZnnIfhVrfxCP1mT1tSjgnKAsMjyAlb73WGbFVkYB+CPGBEwU1R5gy3HsuuwVauTdzSbz+OaqJRm
Ngc+GezhtipkxpB5hnfiDblWTd/1fgfZbeYpDqLN8nV7B709kdNqVKH+Tm4o/qxUDB1Os2MLOPbe
5dXhlF3ttB4O0lgfSWOBjcMxhl/JBD9QSwMEFAACAAgA1pEoRwOJflDoAAAAUwEAADMAHAByZXRy
aWVzL2pzL2RvbS9kb3Qtbm9kZS1iYXNlLWV4Y2VwdGlvbi1leHBlY3RlZC50eHRVVAkAAwOI71UD
iO9VdXgLAAEE9QEAAAQUAAAAVZDBboQgEIbvPMXEkyaN52ZvzdaeutVEX2CEcSVlGTPAWt++kG6a
9gbk+37+mWm1ASKFCHol/ZnPK0ZA0CxCOgJ9adqiZQ+ZE7SBDOwredDodHIYrb9mh2DGQHBHlwh4
yQGGi7wJhVDsBa0LrVK9h5C0zq9PcHCC3ToHgSgbgcRSKHY1vIxjBbdM4ZUyubBzvOev5wOqqRsn
OPeX4b2buipnqoJDbVinG/nY4raRN+fVOlM3Tbswzyh1k2sK7X8m6kRYTvDB8Y2TN4/ra3+B7pd5
bn/SH6WX5NwxoJQ1lMVJIqX+FVLqG1BLAwQUAAIACADWkShHnhhITmkIAAC+HAAANwAcAHJldHJp
ZXMvanMvZG9tL2RvdC1ub2RlLWJhc2UtZXhjZXB0aW9uLXByZXR0eS1kaWZmLmh0bWxVVAkAAwOI
71UDiO9VdXgLAAEE9QEAAAQUAAAAvVlrb9s4Fv2eX0E02Ek7iGQnsVM/0izaxMEOtp0Gm2Dn44KS
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
9OKmPS4eHtHN1y/3nxePC9sVuvPBxCDsnxZ5dIDIo36RfyyY8QFgxoeDMY86pFos69lmeBf4YT5n
L8av+lxt3l7RLw8Q/acikqv5Hvnhln59DxLBw7TByewbepsAGWrODPEKLpDJjf6A+fbduzDlHO5C
b98BHQmzhtTWr1EVv26fhRA6Q/7K1Z1Ow+719usXtPAz0SR81RBNVQJXvK5HN2mvEvcoiB+gbatE
KEqu764G+mHaH3/5bN8OUKJZIDNesgTZRVqt+slrO67dfgcq08x9zASpmQM9QnHrFugmIrodukP+
yjj4Ubn3/QFme99vNp1QffZNS8Ze7vXfxhJEodASJfmxeWpyANbJX5U0pweAmfaDaVDMn/Gc1sMU
HkD15s+W/wdQSwMECgAAAAAAIY4oRwAAAAAAAAAAAAAAAAsAHABzY3JvbGxiYXJzL1VUCQAD/oHv
VQiI71V1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAlpEoR269I2E5AAAAQgAAADsAHABzY3JvbGxi
YXJzL3Njcm9sbGV2ZW50LWlmcmFtZS1uby1zY3JvbGxpbmctd2hlZWwtc3RkZXJyLnR4dFVUCQAD
jIfvVf6B71V1eAsAAQT1AQAABBQAAADLzS8tTg1OLsrPyXGqVEhLzMxJTVEoyVdIy8wD0hmpCiWJ
RempJQplmanlCoklCgZ6BmCgA2NwAQBQSwMEFAACAAgA15EoR7ZjlpJgcAcA6XIoAAoAHABzdGF0
cy5qc29uVVQJAAMGiO9VdYLvVXV4CwABBPUBAAAEFAAAAKT9a5MrSZIdCP4VCr8ukeL2cnPfb2QP
OeQIh+zp6tmdkRXKFQTgEYFKBBAFIO6jRvjf1x7upmbupsdwu7ulbmVmpRvczdT0cfSo6v/zb39M
L/uv4+n6b//f/+b/+bef+8tluu2mv33tz5/XH+4v74/pNl3/eH98nMO/cZvuX+fH3f31/0+of/dv
hLXdv/s3etTW/andf/r/8T//3b/5ty8nt8Jxd77+uL9P51fwuLLL434hK8Pj4YVevl5fp9v9+nU7
TLvL9LZ/nL5Pu8/z/tfL/vDnbf+YdqeLe7vP69n9tf+x6yf4oU4tP2TcexoTfujj9PN0eQNPmXF5
SnTa/9HTCx7e/W6dP6bb2zMbJeSy1CDcf1S20NV9x8+HW8J9CFqBXkb7f6ANrfG5v+0/dvevjw/3
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
Ce1qMnQsq9GU2KZwPGxsZKFyfq1KxNY4uGqzusKfbSKbeYTj8ir5a1sKycj4cIuu15XI0aCngTcm
bKjXtsNygDa/MRRM0vu3MEXD2Wr2ZzekTwups67jNF8DgYitOTm/X8aq0vTrEXxn3PoHdYuF1Kwh
YeAyArz5kET18Piizihwhn22S/Va644bX/H1PBIdjz8T8KI8vJ9m1/0YERAMYeQCy25KvzqAWSxl
ziv1dX553E+GNMKBkPSNNCdvQdRqMhTAzWohK/LXX/8HUEsDBAoAAAAAAE+OKEcAAAAAAAAAAAAA
AAAEABwAc3ZnL1VUCQADVYLvVQiI71V1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAMI4oRwAAAAAA
AAAAAAAAAA0AHABzdmcvYXMtaW1hZ2UvVVQJAAMbgu9VCIjvVXV4CwABBPUBAAAEFAAAAFBLAwQU
AAIACACnkShH2wjTQjsAAAA/AAAAPwAcAHN2Zy9hcy1pbWFnZS9zdmctaW1hZ2Utd2l0aC1kYXRh
LXVyaS1pbWFnZXMtZGlzYWJsZWQtc3RkZXJyLnR4dFVUCQADqofvVRuC71V1eAsAAQT1AQAABBQA
AABzLClJzS0oUSjJV0jNKyxNLU1VSFQozy/KVsgESiiUZ2TmpCpAxDOLFZJSM/PSFQqK8pNTi4tT
U/S4AFBLAwQKAAAAAABSjihHAAAAAAAAAAAAAAAACwAcAHN2Zy9jdXN0b20vVVQJAANcgu9VCIjv
VXV4CwABBPUBAAAEFAAAAFBLAwQUAAIACADBkShHIfT28DoAAABCAAAAMAAcAHN2Zy9jdXN0b20v
dXNlLWludmFsaWRhdGUtY2xpY2stY3Jhc2gtc3RkZXJyLnR4dFVUCQAD2ofvVVWC71V1eAsAAQT1
AQAABBQAAADLzS8tTvXNL0sNyVdIS8zMSU1RKAGyMvNSFBIVShKL0lNLFMoyU8sVEksUdA3N9AzA
QMfMwAjK5AIAUEsDBBQAAgAIAMSRKEc+uXHMlAAAAEoBAAAkABwAc3ZnL2N1c3RvbS96ZXJvLWRh
c2hhcnJheS1zdGRlcnIudHh0VVQJAAPfh+9VXILvVXV4CwABBPUBAAAEFAAAANWOTQrCMBSE955i
LmBoIWAN4qYVF7rrwoW4eG0fGEjzQhrrz+lNvYWrmfkYhmk5ABXKypTaFBvwcyoLrZz05NDLqCgE
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
AAQUAAAAUEsBAh4DFAACAAgAYZEoR4WSDUjhAAAATAMAADIAGAAAAAAAAQAAAKSBQt0CAGZhc3Qv
ZG9tL29iamVjdC1wbHVnaW4taGlkZXMtcHJvcGVydGllcy1zdGRlcnIudHh0VVQFAAMmh+9VdXgL
AAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA7o0oRwAAAAAAAAAAAAAAAAwAGAAAAAAAAAAQAO1Bj94C
AGZhc3QvZXZlbnRzL1VUBQADoIHvVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGCRKEdYKmd1
OQAAAEMAAAAyABgAAAAAAAEAAACkgdXeAgBmYXN0L2V2ZW50cy9kaXNwbGF5LW5vbmUtb24tZm9j
dXMtY3Jhc2gtc3RkZXJyLnR4dFVUBQADI4fvVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGaR
KEcwtW3jOQAAAEMAAAArABgAAAAAAAEAAACkgXrfAgBmYXN0L2V2ZW50cy9tb3VzZS1mb2N1cy1p
bWFnZW1hcC1zdGRlcnIudHh0VVQFAAMwh+9VdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAZ5Eo
R+euvV87AAAAQwAAAC8AGAAAAAAAAQAAAKSBGOACAGZhc3QvZXZlbnRzL21vdXNldXAtb3V0c2lk
ZS1kb2N1bWVudC1zdGRlcnIudHh0VVQFAAMyh+9VdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
540oRwAAAAAAAAAAAAAAAAwAGAAAAAAAAAAQAO1BvOACAGZhc3QvZnJhbWVzL1VUBQADkYHvVXV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAF2RKEfbCNNCOwAAAD8AAAAvABgAAAAAAAEAAACkgQLh
AgBmYXN0L2ZyYW1lcy9mcmFtZS1kaXNwbGF5LW5vbmUtZm9jdXMtc3RkZXJyLnR4dFVUBQADIofv
VXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAO2NKEcAAAAAAAAAAAAAAAAMABgAAAAAAAAAEADt
QabhAgBmYXN0L2ltYWdlcy9VVAUAA52B71V1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABmkShH
IY+9ODIAAAAzAAAALAAYAAAAAAABAAAApIHs4QIAZmFzdC9pbWFnZXMvcGRmLWFzLWltYWdlLWNy
b3AtYm94LXN0ZGVyci50eHRVVAUAAy+H71V1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADtjShH
AAAAAAAAAAAAAAAADAAYAAAAAAAAABAA7UGE4gIAZmFzdC9sb2FkZXIvVVQFAAOdge9VdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAXZEoR9sI00I7AAAAPwAAAFIAGAAAAAAAAQAAAKSByuICAGZh
c3QvbG9hZGVyL2Rpc3BsYXktaW1hZ2UtdW5zZXQtY2FuLWJsb2NrLWltYWdlLWFuZC1jYW4tcmVs
b2FkLWluLXBsYWNlLXN0ZGVyci50eHRVVAUAAyGH71V1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CABgkShH2wjTQjsAAAA/AAAAUwAYAAAAAAABAAAApIGR4wIAZmFzdC9sb2FkZXIvaW1hZ2VzLWVu
YWJsZWQtdW5zZXQtY2FuLWJsb2NrLWltYWdlLWFuZC1jYW4tcmVsb2FkLWluLXBsYWNlLXN0ZGVy
ci50eHRVVAUAAySH71V1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABlkShH2wjTQjsAAAA/AAAA
LQAYAAAAAAABAAAApIFZ5AIAZmFzdC9sb2FkZXIvcmVsb2FkLXBvbGljeS1kZWxlZ2F0ZS1zdGRl
cnIudHh0VVQFAAMuh+9VdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA8I0oRwAAAAAAAAAAAAAA
AA0AGAAAAAAAAAAQAO1B++QCAGZhc3QvcmVnaW9ucy9VVAUAA6OB71V1eAsAAQT1AQAABBQAAABQ
SwECHgMKAAAAAADwjShHAAAAAAAAAAAAAAAAFwAYAAAAAAAAABAA7UFC5QIAZmFzdC9yZWdpb25z
L3Njcm9sbGluZy9VVAUAA6SB71V1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABokShHOQHL3UAA
AAB6AAAANQAYAAAAAAABAAAApIGT5QIAZmFzdC9yZWdpb25zL3Njcm9sbGluZy93aGVlbC1zY3Jv
bGwtYWJzcG9zLXN0ZGVyci50eHRVVAUAAzOH71V1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABo
kShHOQHL3UAAAAB6AAAALgAYAAAAAAABAAAApIFC5gIAZmFzdC9yZWdpb25zL3Njcm9sbGluZy93
aGVlbC1zY3JvbGwtc3RkZXJyLnR4dFVUBQADNIfvVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AGiRKEfkisdDPAAAAD0AAABAABgAAAAAAAEAAACkgermAgBmYXN0L3JlZ2lvbnMvc2Nyb2xsaW5n
L3doZWVsLXNjcm9sbGFibGUtc2luZ2xlLXJlZ2lvbi1zdGRlcnIudHh0VVQFAAM0h+9VdXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAA9o0oRwAAAAAAAAAAAAAAAAoAGAAAAAAAAAAQAO1BoOcCAGZh
c3QvdGV4dC9VVAUAA6+B71V1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABukShHK/vTUEsBAADI
AwAAJAAYAAAAAAABAAAApIHk5wIAZmFzdC90ZXh0L2ZvbnQtd2VpZ2h0cy16aC1zdGRlcnIudHh0
VVQFAANAh+9VdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA9o0oRwAAAAAAAAAAAAAAAAkAGAAA
AAAAAAAQAO1BjekCAGZhc3QveHNsL1VUBQADr4HvVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AG2RKEdy/WXyhQAAAOkAAAAlABgAAAAAAAEAAACkgdDpAgBmYXN0L3hzbC90cmFuc2Zvcm0teGhy
LWRvYy1zdGRlcnIudHh0VVQFAAM+h+9VdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAbZEoRwWP
VY6TAAAA0AIAACcAGAAAAAAAAQAAAKSBtOoCAGZhc3QveHNsL3hzbHQtYmFkLWltcG9ydC11cmkt
c3RkZXJyLnR4dFVUBQADPofvVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAG2RKEfPj2YOUAAA
AKAAAAAkABgAAAAAAAEAAACkgajrAgBmYXN0L3hzbC94c2x0LWNvbnRlbnRUeXBlLXN0ZGVyci50
eHRVVAUAAz6H71V1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABukShHgUp3rUsAAACsAAAANAAY
AAAAAAABAAAApIFW7AIAZmFzdC94c2wveHNsdC10cmFuc2Zvcm0tdG8tZnJhZ21lbnQtY3Jhc2gt
c3RkZXJyLnR4dFVUBQADP4fvVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANeRKEfIaogiRAEA
APwBAAARABgAAAAAAAEAAACkgQ/tAgBmdWxsX3Jlc3VsdHMuanNvblVUBQADBojvVXV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAAP2NKEcAAAAAAAAAAAAAAAAFABgAAAAAAAAAEADtQZ7uAgBodHRw
L1VUBQADvYHvVXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAABmOKEcAAAAAAAAAAAAAAAALABgA
AAAAAAAAEADtQd3uAgBodHRwL3Rlc3RzL1VUBQAD8YHvVXV4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AAAAABmOKEcAAAAAAAAAAAAAAAAQABgAAAAAAAAAEADtQSLvAgBodHRwL3Rlc3RzL21pc2MvVVQF
AAPxge9VdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAkZEoRxU1NZJ6AAAAvAAAACoAGAAAAAAA
AQAAAKSBbO8CAGh0dHAvdGVzdHMvbWlzYy94c2x0LWJhZC1pbXBvcnQtc3RkZXJyLnR4dFVUBQAD
gYfvVXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAP2NKEcAAAAAAAAAAAAAAAAWABgAAAAAAAAA
EADtQUrwAgBodHRwL3Rlc3RzL25hdmlnYXRpb24vVVQFAAO9ge9VdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAdZEoR9sI00I7AAAAPwAAADcAGAAAAAAAAQAAAKSBmvACAGh0dHAvdGVzdHMvbmF2
aWdhdGlvbi9mYWxsYmFjay1hbmNob3ItcmVsb2FkLXN0ZGVyci50eHRVVAUAA02H71V1eAsAAQT1
AQAABBQAAABQSwECHgMKAAAAAAAHjihHAAAAAAAAAAAAAAAAFAAYAAAAAAAAABAA7UFG8QIAaHR0
cC90ZXN0cy9zZWN1cml0eS9VVAUAA86B71V1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAGjihH
AAAAAAAAAAAAAAAAKgAYAAAAAAAAABAA7UGU8QIAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50
U2VjdXJpdHlQb2xpY3kvVVQFAAPMge9VdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAe5EoR2Oq
rGyCAAAAqAAAAEAAGAAAAAAAAQAAAKSB+PECAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNl
Y3VyaXR5UG9saWN5L3hzbC1hbGxvd2VkLXN0ZGVyci50eHRVVAUAA1mH71V1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAB7kShHY6qsbIIAAACoAAAAUgAYAAAAAAABAAAApIH08gIAaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLXVuYWZmZWN0ZWQtYnktc3R5bGUt
c3JjLTItc3RkZXJyLnR4dFVUBQADWYfvVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAICRKEdg
S2YQkQAAAPsBAABFABgAAAAAAAEAAACkgQL0AgBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5J
RUQteHNsLWRvY3VtZW50LXNlY3VyaXR5T3JpZ2luLXN0ZGVyci50eHRVVAUAA2CH71V1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAA4kShH6op8QmEFAAAFDwAACgAYAAAAAAABAAAApIES9QIAaHR0
cGQuY29uZlVUBQAD24bvVXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAJSRKEcAAAAAAAAAAAAA
AAADABgAAAAAAAAAEADtQbf6AgBqcy9VVAUAA4iH71V1eAsAAQT1AQAABBQAAABQSwECHgMKAAAA
AACUkShHAAAAAAAAAAAAAAAABwAYAAAAAAAAABAA7UH0+gIAanMvZG9tL1VUBQADiIfvVXV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAJSRKEdQb+3W/gAAAHcBAAApABgAAAAAAAEAAACkgTX7AgBq
cy9kb20vZG90LW5vZGUtYmFzZS1leGNlcHRpb24tYWN0dWFsLnR4dFVUBQADiIfvVXV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAJSRKEdlvpEbLwEAAFwCAAAnABgAAAAAAAEAAACkgZb8AgBqcy9k
b20vZG90LW5vZGUtYmFzZS1leGNlcHRpb24tZGlmZi50eHRVVAUAA4iH71V1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACACUkShHA4l+UOgAAABTAQAAKwAYAAAAAAABAAAApIEm/gIAanMvZG9tL2Rv
dC1ub2RlLWJhc2UtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dFVUBQADiIfvVXV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAJSRKEfM8dDfZAgAALYcAAAvABgAAAAAAAEAAACkgXP/AgBqcy9kb20vZG90
LW5vZGUtYmFzZS1leGNlcHRpb24tcHJldHR5LWRpZmYuaHRtbFVUBQADiIfvVXV4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAADmOKEcAAAAAAAAAAAAAAAAGABgAAAAAAAAAEADtQUAIAwBtZWRpYS9V
VAUAAy6C71V1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAA6jihHAAAAAAAAAAAAAAAADAAYAAAA
AAAAABAA7UGACAMAbWVkaWEvdHJhY2svVVQFAAMvgu9VdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAC
AAAAsZEoR/4nOOA1AAAANQAAACoAGAAAAAAAAQAAAKSBxggDAG1lZGlhL3RyYWNrL3RyYWNrLWlu
LWJhbmQtc3R5bGUtYWN0dWFsLnR4dFVUBQADvofvVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
ALGRKEf9avM2xQEAAG4DAAAoABgAAAAAAAEAAACkgV8JAwBtZWRpYS90cmFjay90cmFjay1pbi1i
YW5kLXN0eWxlLWRpZmYudHh0VVQFAAO+h+9VdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAsZEo
Rwz65Oo2AQAAMwIAACwAGAAAAAAAAQAAAKSBhgsDAG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQt
c3R5bGUtZXhwZWN0ZWQudHh0VVQFAAO+h+9VdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAspEo
R9eck3ftCAAApSQAADAAGAAAAAAAAQAAAKSBIg0DAG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQt
c3R5bGUtcHJldHR5LWRpZmYuaHRtbFVUBQADv4fvVXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAA
ACCOKEcAAAAAAAAAAAAAAAAIABgAAAAAAAAAEADtQXkWAwBwbHVnaW5zL1VUBQAD/IHvVXV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAJeRKEfuXXJFhgAAAPYAAAA7ABgAAAAAAAEAAACkgbsWAwBw
bHVnaW5zL25wcC1zZXQtd2luZG93LWNhbGxlZC1kdXJpbmctZGVzdHJ1Y3Rpb24tc3RkZXJyLnR4
dFVUBQADjYfvVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAICRKEdqArvqmQIAAMsfAAArABgA
AAAAAAEAAACkgbYXAwBweXdlYnNvY2tldC53cy5sb2ctMDhTZXAyMDE1LTE4MDk0OC1lcnIudHh0
VVQFAANgh+9VdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAgJEoRz2PJeMEAQAAjwIAACsAGAAA
AAAAAQAAAKSBtBoDAHB5d2Vic29ja2V0LndzLmxvZy0wOFNlcDIwMTUtMTgwOTQ4LW91dC50eHRV
VAUAA2CH71V1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADXkShH5HxFo54mAADbpAAADAAYAAAA
AAABAAAApIEdHAMAcmVzdWx0cy5odG1sVVQFAAMGiO9VdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAA1pEoRwAAAAAAAAAAAAAAAAgAGAAAAAAAAAAQAO1BAUMDAHJldHJpZXMvVVQFAAMDiO9VdXgL
AAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA1pEoRwAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQAO1BQ0MD
AHJldHJpZXMvanMvVVQFAAMDiO9VdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA1pEoRwAAAAAA
AAAAAAAAAA8AGAAAAAAAAAAQAO1BiEMDAHJldHJpZXMvanMvZG9tL1VUBQADA4jvVXV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIANaRKEdQb+3W/gAAAHcBAAAxABgAAAAAAAEAAACkgdFDAwByZXRy
aWVzL2pzL2RvbS9kb3Qtbm9kZS1iYXNlLWV4Y2VwdGlvbi1hY3R1YWwudHh0VVQFAAMDiO9VdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA1pEoR8ONRs4zAQAAbAIAAC8AGAAAAAAAAQAAAKSBOkUD
AHJldHJpZXMvanMvZG9tL2RvdC1ub2RlLWJhc2UtZXhjZXB0aW9uLWRpZmYudHh0VVQFAAMDiO9V
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA1pEoRwOJflDoAAAAUwEAADMAGAAAAAAAAQAAAKSB
1kYDAHJldHJpZXMvanMvZG9tL2RvdC1ub2RlLWJhc2UtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dFVU
BQADA4jvVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANaRKEeeGEhOaQgAAL4cAAA3ABgAAAAA
AAEAAACkgStIAwByZXRyaWVzL2pzL2RvbS9kb3Qtbm9kZS1iYXNlLWV4Y2VwdGlvbi1wcmV0dHkt
ZGlmZi5odG1sVVQFAAMDiO9VdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAIY4oRwAAAAAAAAAA
AAAAAAsAGAAAAAAAAAAQAO1BBVEDAHNjcm9sbGJhcnMvVVQFAAP+ge9VdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAlpEoR269I2E5AAAAQgAAADsAGAAAAAAAAQAAAKSBSlEDAHNjcm9sbGJhcnMv
c2Nyb2xsZXZlbnQtaWZyYW1lLW5vLXNjcm9sbGluZy13aGVlbC1zdGRlcnIudHh0VVQFAAOMh+9V
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA15EoR7ZjlpJgcAcA6XIoAAoAGAAAAAAAAQAAAKSB
+FEDAHN0YXRzLmpzb25VVAUAAwaI71V1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABPjihHAAAA
AAAAAAAAAAAABAAYAAAAAAAAABAA7UGcwgoAc3ZnL1VUBQADVYLvVXV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAADCOKEcAAAAAAAAAAAAAAAANABgAAAAAAAAAEADtQdrCCgBzdmcvYXMtaW1hZ2Uv
VVQFAAMbgu9VdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAp5EoR9sI00I7AAAAPwAAAD8AGAAA
AAAAAQAAAKSBIcMKAHN2Zy9hcy1pbWFnZS9zdmctaW1hZ2Utd2l0aC1kYXRhLXVyaS1pbWFnZXMt
ZGlzYWJsZWQtc3RkZXJyLnR4dFVUBQADqofvVXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAFKO
KEcAAAAAAAAAAAAAAAALABgAAAAAAAAAEADtQdXDCgBzdmcvY3VzdG9tL1VUBQADXILvVXV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAMGRKEch9PbwOgAAAEIAAAAwABgAAAAAAAEAAACkgRrECgBz
dmcvY3VzdG9tL3VzZS1pbnZhbGlkYXRlLWNsaWNrLWNyYXNoLXN0ZGVyci50eHRVVAUAA9qH71V1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADEkShHPrlxzJQAAABKAQAAJAAYAAAAAAABAAAApIG+
xAoAc3ZnL2N1c3RvbS96ZXJvLWRhc2hhcnJheS1zdGRlcnIudHh0VVQFAAPfh+9VdXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAAMo4oRwAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQAO1BsMUKAHN2Zy9z
dHJva2UvVVQFAAMfgu9VdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAqZEoR8Fh5YiPAAAApQAA
ACUAGAAAAAAAAQAAAKSB9cUKAHN2Zy9zdHJva2UvemVyby13aWR0aC1oYW5nLXN0ZGVyci50eHRV
VAUAA62H71V1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADBkShH4r4wfnaSAAA+aQ8AGQAYAAAA
AAAAAAAApIHjxgoAd3B0d2tfcHJvY2Vzc19sb2cub3V0LnR4dFVUBQAD2YfvVXV4CwABBPUBAAAE
FAAAAFBLBQYAAAAAYgBiAIcmAACsWQsAAAA=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>260824</attachid>
            <date>2015-09-08 18:38:54 -0700</date>
            <delta_ts>2015-09-08 23:17:30 -0700</delta_ts>
            <desc>Archive of layout-test-results from ews103 for mac-mavericks</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>661526</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
tjV6gxYcoVs++0GUIIoKiEMrUe85isYRbuKAzh+hhMMBok5WGhUbNv6krFMm8EFh7FELTCqjzJIk
+Wt/rmXg9ts9z0nd3c4puZQ8n6mn9apav5W0LKtq8VJm1FoHmt9ntPLy7AdnyhB8yKhYL6kca/Ri
vaOHjBaOWARdL3TiSB0bkHgK2CPA1SCeXkwzO+mo9k4wTspmWpIVMh6RnBfCaKOk/ydI8nOQ7bnH
NcQFCRf+/QG9L6oqpWKzJWONuxGqA8cmnX0BUEsDBBQAAgAIAOGSKEdCbgMOjAAAACgBAAA6ABwA
ZmFzdC9ldmVudHMvcmVtb3ZlLXRhcmdldC13aXRoLXNoYWRvdy1pbi1kcmFnLWV4cGVjdGVkLnR4
dFVUCQAD9onvVfaJ71V1eAsAAQT1AQAABFAAAADNjjEOwjAQBPu8Yju6NFAgd1FiaEiCMB+w7EOx
RO4i+xB5Pn4G7exoNf08uflmMVrnuqs1eCcmHE8Gk+hFPhxtzpINhnmE3QNtmoRxNugYXpXWTfH1
BauPBBVkelEmDgRfLypL1UMQVtqrudQRSRGFClgUtKeibdP/Sce9c67F8HgipsgHRci+LG3zA1BL
AwQUAAIACADhkihHn2NWpyEIAACpGwAAPgAcAGZhc3QvZXZlbnRzL3JlbW92ZS10YXJnZXQtd2l0
aC1zaGFkb3ctaW4tZHJhZy1wcmV0dHktZGlmZi5odG1sVVQJAAP2ie9V9onvVXV4CwABBPUBAAAE
UAAAAO1ZbW/juBH+nl9BJOgFOESSHTvb2Mm62E2cFujt7uG86H0sKImyuKFEHUnHzrb97x2+yZIs
2Sl6Xwr0FreWyCE5L888M9Te56pgi7P7nOAUfgqiMEpyLCRR7y83KgtuL2FYqldGFmdzRsvnKzR/
oZIqkqJ/nCH4T5GdClKScIEV5eUclbwkd2Yq5iIlIoi5UryYo3G1Qyk8k/Tu7F9ndju3ScIZF3N0
MZrMzFz4RBl5pFnm5mOcPK8F35Rp4EWzW/2neZA9QXJGU3SRpqmdy3ipggwXlL3OUcFLLiucOAUL
LNYUVB6TAo3sUMXBOGOHIAwseiFGoXzc0XQymfTsL3EpA0kEzRqTkn4n5ozmoQEjmZqjUXjjx1Mq
K4ZhE1qCZ5yGW5qqHBaPRn9w+uE0peW6Xml1c6HRT+3oOHVpmYNSqhbP+QsRHYtubm7uhpxNiHVD
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
E7alXEQVRfF/zdRJJn/trSro+9kcxShVpdCOOKQnAeHK44dHTwldiHE4G7cs9EyWY6mg9KezHODD
sLCzX8P5D7pDs1ZFu9rUzVv7gMm/J+fZQiYSZyf98BjoCI4xxBLLx9WzQv2yQLNEW2/boesbUEsD
BBQAAgAIAOKSKEe5T0OrWwAAAGwAAAA0ABwAaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1kb2N1bWVu
dC1yZWZlcmVyLWV4cGVjdGVkLnR4dFVUCQAD94nvVQOG71V1eAsAAQT1AQAABFAAAABFyzEKg0AQ
heF+TvHsJaeIaYRYZC8w7LywQszC7KjX10rLn48/sUVDFA0oFtqssJrXhf9A0YZc3ZkDzi+djkI1
+kNkm40Vv3qm9Rfv99JhGmV4PzG9kIZPEjkAUEsDBBQAAgAIAOKSKEeCYKpBAggAAPEaAAA4ABwA
aHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1kb2N1bWVudC1yZWZlcmVyLXByZXR0eS1kaWZmLmh0bWxV
VAkAA/eJ71UDhu9VdXgLAAEE9QEAAARQAAAAvVlrb+O4Ff2eX8EmaAMsIsmO7WlsZ1zsJA662McU
Tdr9WFAmZXEiiV6Sip3p7n/v5UuWZMk20G0nmEh8n/s8l8p9qvJscXGfUkzgkVOF0SrFQlL18bpU
SXB3Dd1SvWd0cTHLWPF6g2ZvTDJFCfr3BYJ/iu5UQOiKC6wYL2ao4AWdm6GYC0JFEHOleD5Dw80O
EXinZH7x24Xdzm2y4hkXM3Q1GE3NWPjEMvrIksSNx3j1uha8LEjgpyZ3+qd+kD1B8owRdEUIsWMJ
L1SQ4Jxl7zOU84LLDV45gDkWawaQhzRHA9u14SCckUPQDCR6owZQOmwhHY1GHftLXMhAUsGS2qBk
X6k5o35okNFEzdAgnPh+wuQmw7AJK0AzDuGWEZXC4sHgjw4fJoQV62qlxeZMo9+a1nFwWZECKFVN
T/kbFS2JJpPJvE/ZlFo1hNomP8BZ0i1OMo5BDMHWqWpaTs96APExyOKP4qB6pkDEQUtkheOMBiua
ZQ0pA7NvQ0vbFKQLjA21q20F3uyRPdOVtl2v05jFTZdpu4vzWa93cKjBZmdPWO42YF7YH0SjNyjU
j7aEvfAkIzR+17+Rgfop46vXv2GhQhB1ljAhVbBKWUZ6FauPe4b1N8c2EzQH096cOM+d4dVvHS6I
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
wFQRnoCMBavBTZdJ4l0hwqhpnxoTYEnHf7oqfeTzupcsMS8/UEsDBAoAAAAAANaQKEcAAAAAAAAA
AAAAAAAUABwAaHR0cC90ZXN0cy9zZWN1cml0eS9VVAkAAySG71Wxiu9VdXgLAAEE9QEAAARQAAAA
UEsDBAoAAAAAAMuQKEcAAAAAAAAAAAAAAAAqABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50
U2VjdXJpdHlQb2xpY3kvVVQJAAMOhu9VsYrvVXV4CwABBPUBAAAEUAAAAFBLAwQUAAIACADnkihH
Y6qsbIIAAACoAAAAQAAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L3hzbC1hbGxvd2VkLXN0ZGVyci50eHRVVAkAAwKK71UOhu9VdXgLAAEE9QEAAARQAAAALY1BCsMw
DATveYVeEDu9pPgVhb4guBtiUCwjKaX+fU0pe1qG2c1ytsKbF6kEVdFEe2HQ4d5SCMttnePIku4x
xmDIlxbvIUt1VH/++0O45B4UJpdmWDDvjPljTFwqaCUwziHQD9gB+DRoekNtXCeSyp2WOdKOza8x
RJuC7GpN1PGavlBLAwQUAAIACADnkihHY6qsbIIAAACoAAAAUgAcAGh0dHAvdGVzdHMvc2VjdXJp
dHkvY29udGVudFNlY3VyaXR5UG9saWN5L3hzbC11bmFmZmVjdGVkLWJ5LXN0eWxlLXNyYy0yLXN0
ZGVyci50eHRVVAkAAwKK71UOhu9VdXgLAAEE9QEAAARQAAAALY1BCsMwDATveYVeEDu9pPgVhb4g
uBtiUCwjKaX+fU0pe1qG2c1ytsKbF6kEVdFEe2HQ4d5SCMttnePIku4xxmDIlxbvIUt1VH/++0O4
5B4UJpdmWDDvjPljTFwqaCUwziHQD9gB+DRoekNtXCeSyp2WOdKOza8xRJuC7GpN1PGavlBLAwQU
AAIACAD3kihHYEtmEJEAAAD7AQAARQAcAGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC14
c2wtZG9jdW1lbnQtc2VjdXJpdHlPcmlnaW4tc3RkZXJyLnR4dFVUCQADIYrvVSSG71V1eAsAAQT1
AQAABFAAAADtjjEOgzAMRXdO4QuEBJZWmWHo0p4BBVMimSSynQpuXzr0Bh2rv76v90LeSqRJY06A
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
bW92ZS10YXJnZXQtd2l0aC1zaGFkb3ctaW4tZHJhZy1hY3R1YWwudHh0VVQJAAOliu9VpYrvVXV4
CwABBPUBAAAEUAAAAHP29wv293FV8HUNDnZ0d7VSyMnMS1UwNrFSCKksSHUtKsovgjAVUkFsLmcS
1Qc4BgfrKbgEhSikZKbkqZcoJBclFmfocQEAUEsDBBQAAgAIAD2TKEeyxhelEgEAAKsCAAA+ABwA
cmV0cmllcy9mYXN0L2V2ZW50cy9yZW1vdmUtdGFyZ2V0LXdpdGgtc2hhZG93LWluLWRyYWctZGlm
Zi50eHRVVAkAA6WK71Wliu9VdXgLAAEE9QEAAARQAAAAzY6xbsJAEER7vmK7FM75FJEicmUITooE
iDAK9cY34JPsO+tuDebvYxBtilRJszuanVk9pRTpT9/0LaJesLAudqXe4evNym3Ne9sYvUEDjtAN
n30vShBFBcS+kagDJNixv+coGke4q9f6I5RwOEDUyUqtYs3Gn5R1ygQ+KAwdKoFJZZBJkiR/xcGV
9NxcKfKc1MP9lJLLyPOJel6vyvV7QcuiLGevRUaNdaDpY0YrLy++d6YIwYeMFuslFUOFTqx39JTR
zBGLoO2EThypZQMSTwF7BLgKxOOL0bNjjirvBMOYrMcjWSHjEcl5IQw2Svp/QJKfQbbnDjeIiyRc
9O8L9DEry5QWmy0Za9ydUBU41unkG1BLAwQUAAIACAA9kyhHQm4DDowAAAAoAQAAQgAcAHJldHJp
ZXMvZmFzdC9ldmVudHMvcmVtb3ZlLXRhcmdldC13aXRoLXNoYWRvdy1pbi1kcmFnLWV4cGVjdGVk
LnR4dFVUCQADpYrvVaWK71V1eAsAAQT1AQAABFAAAADNjjEOwjAQBPu8Yju6NFAgd1FiaEiCMB+w
7EOxRO4i+xB5Pn4G7exoNf08uflmMVrnuqs1eCcmHE8Gk+hFPhxtzpINhnmE3QNtmoRxNugYXpXW
TfH1BauPBBVkelEmDgRfLypL1UMQVtqrudQRSRGFClgUtKeibdP/Sce9c67F8HgipsgHRci+LG3z
A1BLAwQUAAIACAA9kyhHHjGz3yYIAACxGwAARgAcAHJldHJpZXMvZmFzdC9ldmVudHMvcmVtb3Zl
LXRhcmdldC13aXRoLXNoYWRvdy1pbi1kcmFnLXByZXR0eS1kaWZmLmh0bWxVVAkAA6WK71Wliu9V
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
FuL9NoQe3PaCOkALRNZTDIC2aCfjBANdjFNo97nDtpsOg5Wgn6MdtYuFlItwjlvIvWKakl0jIdDg
vvyXZko2VLyqx3bJUFxhXTLlwrGE0kEvB4SGTKJUs+b9IkILrcr5lGYabLKG8+tD9G6Bdfpn913u
28mCUmzjOPzgcp5vf3MNgKyCRlyRAmsvCUNTzdanLjWO8/58kdmMPX0Oki/3S19ec8Wm65IvRj9U
mUjFtc1YKuJWlX+JFkklQVvFXSuMb/Q3ZJM4fPfzz9AnYLazc83DFkIyizx+l4fPAoEzSSC8HM9P
IBwXRFLqDGplSHlSGuiwajhR39IJ2wooq21Cqwu8vYsp8Is7Skf1kuz24al3ltYnLZ2Sxd4Ez3L3
/qqcadXEnNzR6tBJdMrOPKX275Tj7Dl+br9Tvp+QpduEhcrd3UvCXFdHmsKN5o/NWVGLOz3ux4Pc
dQwnSY4TAhR5Fk3ThcnAM0aNrHM52Il2qS207atdB0mEQiimHU4yDAm2cdlGbVARMLcXEl1WZguu
vcy38enLBGF64Jv78TydLFPO+NfhQ2JAsaqjiUfLHwR3vH3vs08KCYuV3Y4bzFMarGqHtAexJM9Z
HVkszN202lbrG443lGx7qNj10NGN3ezL0KLUMuVnmNJ+EArZKi9JLGLbyhThJJz5tjFVqYn7fH9K
ySahxSdsNNF4ysaE20fjucYZA42vNxryAApedJw9an3sMQGMQ9npOL3+x+H6/en57MJOVruozdTK
0PRypfjwlP2dvV+16xqmAoG2flVqfv5yv2zTbaSvVYaNxzPpRU0Asux+t7EMRpEoGvm7QLpZnVmV
x60jWuZpmLA548JWpkhgrjx/TqL1PiAoimw3Cbhau+Vu6ftTkHmEiqq/Ura1xSpaBPN2/tk+8x75
7JIxh/F5Oo3/Uy8s7R4rQimOcfkRxID8/Xn9G9+kyH/hwrqPxbzpseUBW25Ar00t6fYyvJ3gP+Yd
xS/6vZJ+oslI0S8pyJM3fcs+lFzpr7gP8tyyePl1am7pDc23zUwSMX3ZWdx9sUoMLg9UcW0cEVME
uuJ8nV6mk1J53XG0B5tFfNM16muuul/+jc8M3X1a6OeEjNdxU6gArg345WcHP5xHeZggPHBCPTcx
90/sXVx+7Hkajwf5Z1ZapN20tbpk9pxkelPKDxjNfctRNVn5yQv6GTEoFDFYRl4JwrZZP45Mox9x
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
AAALABwAc3ZnL2N1c3RvbS9VVAkAA1eG71Wxiu9VdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIAA+T
KEddlAYxfgAAAI0AAAAkABwAc3ZnL2N1c3RvbS96ZXJvLWRhc2hhcnJheS1zdGRlcnIudHh0VVQJ
AANNiu9VV4bvVXV4CwABBPUBAAAEUAAAAA3IuwrCQBAF0N6vuD9gMA8wLGKTiI2VsROL0VwwsDsb
JhtfX2/KczqOQI28dkXlihp8T/mmzHx8iEc7h/FM7WkXI69VUebbG3YHs2h7h+bYRE38pI7pNChb
mZ4Og77EDz36RRAz+TpIgqdMCVEJegZqQpiXuBMadf2jxWz1B1BLAwQKAAAAAADkkChHAAAAAAAA
AAAAAAAACwAcAHN2Zy9zdHJva2UvVVQJAAM8hu9VsYrvVXV4CwABBPUBAAAEUAAAAFBLAwQUAAIA
CAABkyhH0P7tIn0AAACNAAAAJQAcAHN2Zy9zdHJva2UvemVyby13aWR0aC1oYW5nLXN0ZGVyci50
eHRVVAkAAzKK71U8hu9VdXgLAAEE9QEAAARQAAAADci7DoJAEAXQ3q+4PyDhVeDG2ACxsRI7YzHK
TSRZZsmw+Pp6Kc/pOAEVssrlpUtz8D1naZH48BCPZhmnM7WnXYy8lnmR7W7Yt2bBDg71sQ4a+Ykd
42lQNjI/HQZ9iR969KsgZvJ1kAhPmSOCEvQcqRHjssad0KDbHy0kmz9QSwMECgAAAAAAGpMoRwAA
AAAAAAAAAAAAAAYAHAB3ZWJnbC9VVAkAA2SK71Wxiu9VdXgLAAEE9QEAAARQAAAAUEsDBAoAAAAA
ABqTKEcAAAAAAAAAAAAAAAAMABwAd2ViZ2wvMS4wLjMvVVQJAANkiu9VsYrvVXV4CwABBPUBAAAE
UAAAAFBLAwQKAAAAAAAakyhHAAAAAAAAAAAAAAAAGAAcAHdlYmdsLzEuMC4zL2NvbmZvcm1hbmNl
L1VUCQADZIrvVbGK71V1eAsAAQT1AQAABFAAAABQSwMECgAAAAAAG5MoRwAAAAAAAAAAAAAAACEA
HAB3ZWJnbC8xLjAuMy9jb25mb3JtYW5jZS90ZXh0dXJlcy9VVAkAA2WK71Wxiu9VdXgLAAEE9QEA
AARQAAAAUEsDBBQAAgAIABqTKEfXK65xqgAAAN0AAAA/ABwAd2ViZ2wvMS4wLjMvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvdGV4dHVyZS11cGxvYWQtc2l6ZS1hY3R1YWwudHh0VVQJAANkiu9VZIrvVXV4
CwABBPUBAAAEUAAAADWOQQrCQAxF93OKfwHbvTtBKoILwYLLMm3TNjCdyEyGqqc3XQhZPD4/eWlO
19sRLa80Qopi86wcZ0ySEEV5+pwlElTQEwYfAo2uXThDKStSiUYL4Un95YZ2zwJntWM9BdnAET6C
p+RXMhqR6CVJM+6nxwPmaMxfObdvHlFVtU2iLCUNlOuN+jl0u6mbOFgwSLTHVh8HqpXeWqz7h0N5
BfHjIfOXqkXX4NwPUEsDBBQAAgAIABqTKEewGsIVCgEAAAQCAAA9ABwAd2ViZ2wvMS4wLjMvY29u
Zm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS11cGxvYWQtc2l6ZS1kaWZmLnR4dFVUCQADZIrvVWWK
71V1eAsAAQT1AQAABFAAAADFj0FPwzAMhe/9Fb6XJEyIy04dGiDEDohO7DhlrbtGcpMqcdSOX487
jTs3JCt+shy/9ymlwHwFygMms7VszfOhNgc8vTu+tafsqDWfSGgTGrKXkFkxJlYRUyZOZsLTmcxK
3+sH0wTfhThY36BhnDnL0q9QeaRgW5XcNyqcR2wYW80zF2VZ/lMM23C2dA1RVaBWd49QLk9VFeXL
5m23hr0bsAVxg8k6dv4Mchl8YNddtsEjcIATQmOJsC1g37sESy6I2YvqEQTgdQf7ZUYuCbPsU5jA
ebAeXBftgKJaiDiGyAk+NnUNYrIE0AUU179r0NpICUnIscEb8HHxOnaOZPBXat3zQIVabOT6D1BL
AwQUAAIACAAakyhHIrCpEIwAAACuAAAAQQAcAHdlYmdsLzEuMC4zL2NvbmZvcm1hbmNlL3RleHR1
cmVzL3RleHR1cmUtdXBsb2FkLXNpemUtZXhwZWN0ZWQudHh0VVQJAANkiu9VZIrvVXV4CwABBPUB
AAAEUAAAADWNwQqDMBBE7/mK/QHjvTcvloKHgkKPkuhaAzEruxss/fomh8IcHsMMb9qDgKIocE6F
doQX+vsAU+1iEMUVPEa6ICRwCcLG7sBCKzCexCrw7MYRiKHvHoM1pj5vYG1bwiiUeUFpL/TvOFfT
vIVYioXSRny4tGCr+NFctn9o8hnJrY2EL9pdj2iqw5gfUEsDBBQAAgAIABuTKEcpFLvW/gcAAO4a
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
KEdfWV9WRwAAAHgAAAA4ABgAAAAAAAEAAACkgY44AgBmYXN0L2V2ZW50cy9yZW1vdmUtdGFyZ2V0
LXdpdGgtc2hhZG93LWluLWRyYWctYWN0dWFsLnR4dFVUBQAD9onvVXV4CwABBPUBAAAEUAAAAFBL
AQIeAxQAAgAIAOGSKEczFgzlDwEAAJsCAAA2ABgAAAAAAAEAAACkgUc5AgBmYXN0L2V2ZW50cy9y
ZW1vdmUtdGFyZ2V0LXdpdGgtc2hhZG93LWluLWRyYWctZGlmZi50eHRVVAUAA/aJ71V1eAsAAQT1
AQAABFAAAABQSwECHgMUAAIACADhkihHQm4DDowAAAAoAQAAOgAYAAAAAAABAAAApIHGOgIAZmFz
dC9ldmVudHMvcmVtb3ZlLXRhcmdldC13aXRoLXNoYWRvdy1pbi1kcmFnLWV4cGVjdGVkLnR4dFVU
BQAD9onvVXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAOGSKEefY1anIQgAAKkbAAA+ABgAAAAA
AAEAAACkgcY7AgBmYXN0L2V2ZW50cy9yZW1vdmUtdGFyZ2V0LXdpdGgtc2hhZG93LWluLWRyYWct
cHJldHR5LWRpZmYuaHRtbFVUBQAD9onvVXV4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAMCQKEcA
AAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQV9EAgBmYXN0L2ltYWdlcy9VVAUAA/eF71V1eAsAAQT1
AQAABFAAAABQSwECHgMUAAIACADXkihHIY+9ODIAAAAzAAAALAAYAAAAAAABAAAApIGlRAIAZmFz
dC9pbWFnZXMvcGRmLWFzLWltYWdlLWNyb3AtYm94LXN0ZGVyci50eHRVVAUAA+aJ71V1eAsAAQT1
AQAABFAAAABQSwECHgMKAAAAAADBkChHAAAAAAAAAAAAAAAACgAYAAAAAAAAABAA7UE9RQIAZmFz
dC90ZXh0L1VUBQAD+oXvVXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANySKEdBx/e3QAEAAJYD
AAAkABgAAAAAAAEAAACkgYFFAgBmYXN0L3RleHQvZm9udC13ZWlnaHRzLXpoLXN0ZGVyci50eHRV
VAUAA++J71V1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAADAkChHAAAAAAAAAAAAAAAACQAYAAAA
AAAAABAA7UEfRwIAZmFzdC94c2wvVVQFAAP4he9VdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA
2pIoR3L9ZfKFAAAA6QAAACUAGAAAAAAAAQAAAKSBYkcCAGZhc3QveHNsL3RyYW5zZm9ybS14aHIt
ZG9jLXN0ZGVyci50eHRVVAUAA+uJ71V1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADakihHiR8h
/pcAAADAAwAAJwAYAAAAAAABAAAApIFGSAIAZmFzdC94c2wveHNsdC1iYWQtaW1wb3J0LXVyaS1z
dGRlcnIudHh0VVQFAAPrie9VdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA2pIoR8+PZg5QAAAA
oAAAACQAGAAAAAAAAQAAAKSBPkkCAGZhc3QveHNsL3hzbHQtY29udGVudFR5cGUtc3RkZXJyLnR4
dFVUBQAD64nvVXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANqSKEeBSnetSwAAAKwAAAA0ABgA
AAAAAAEAAACkgexJAgBmYXN0L3hzbC94c2x0LXRyYW5zZm9ybS10by1mcmFnbWVudC1jcmFzaC1z
dGRlcnIudHh0VVQFAAPsie9VdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgARJMoR90MQPvsAQAA
NQQAABEAGAAAAAAAAQAAAKSBpUoCAGZ1bGxfcmVzdWx0cy5qc29uVVQFAAOviu9VdXgLAAEE9QEA
AARQAAAAUEsBAh4DCgAAAAAAxpAoRwAAAAAAAAAAAAAAAAUAGAAAAAAAAAAQAO1B3EwCAGh0dHAv
VVQFAAMDhu9VdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAA4ZAoRwAAAAAAAAAAAAAAAAsAGAAA
AAAAAAAQAO1BG00CAGh0dHAvdGVzdHMvVVQFAAM2hu9VdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAA
AAAAxpAoRwAAAAAAAAAAAAAAABEAGAAAAAAAAAAQAO1BYE0CAGh0dHAvdGVzdHMvbWVkaWEvVVQF
AAMDhu9VdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA4pIoR+e4+QZsAAAAewAAADIAGAAAAAAA
AQAAAKSBq00CAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtZG9jdW1lbnQtcmVmZXJlci1hY3R1YWwu
dHh0VVQFAAP3ie9VdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA4pIoR/M4CbPiAAAAqQEAADAA
GAAAAAAAAQAAAKSBg04CAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtZG9jdW1lbnQtcmVmZXJlci1k
aWZmLnR4dFVUBQAD94nvVXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAOKSKEe5T0OrWwAAAGwA
AAA0ABgAAAAAAAEAAACkgc9PAgBodHRwL3Rlc3RzL21lZGlhL21lZGlhLWRvY3VtZW50LXJlZmVy
ZXItZXhwZWN0ZWQudHh0VVQFAAP3ie9VdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA4pIoR4Jg
qkECCAAA8RoAADgAGAAAAAAAAQAAAKSBmFACAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtZG9jdW1l
bnQtcmVmZXJlci1wcmV0dHktZGlmZi5odG1sVVQFAAP3ie9VdXgLAAEE9QEAAARQAAAAUEsBAh4D
CgAAAAAA4ZAoRwAAAAAAAAAAAAAAABAAGAAAAAAAAAAQAO1BDFkCAGh0dHAvdGVzdHMvbWlzYy9V
VAUAAzaG71V1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAAkyhHFTU1knoAAAC8AAAAKgAYAAAA
AAABAAAApIFWWQIAaHR0cC90ZXN0cy9taXNjL3hzbHQtYmFkLWltcG9ydC1zdGRlcnIudHh0VVQF
AAMwiu9VdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAA1pAoRwAAAAAAAAAAAAAAABQAGAAAAAAA
AAAQAO1BNFoCAGh0dHAvdGVzdHMvc2VjdXJpdHkvVVQFAAMkhu9VdXgLAAEE9QEAAARQAAAAUEsB
Ah4DCgAAAAAAy5AoRwAAAAAAAAAAAAAAACoAGAAAAAAAAAAQAO1BgloCAGh0dHAvdGVzdHMvc2Vj
dXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L1VUBQADDobvVXV4CwABBPUBAAAEUAAAAFBLAQIe
AxQAAgAIAOeSKEdjqqxsggAAAKgAAABAABgAAAAAAAEAAACkgeZaAgBodHRwL3Rlc3RzL3NlY3Vy
aXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtYWxsb3dlZC1zdGRlcnIudHh0VVQFAAMCiu9V
dXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA55IoR2OqrGyCAAAAqAAAAFIAGAAAAAAAAQAAAKSB
4lsCAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3hzbC11bmFmZmVj
dGVkLWJ5LXN0eWxlLXNyYy0yLXN0ZGVyci50eHRVVAUAAwKK71V1eAsAAQT1AQAABFAAAABQSwEC
HgMUAAIACAD3kihHYEtmEJEAAAD7AQAARQAYAAAAAAABAAAApIHwXAIAaHR0cC90ZXN0cy9zZWN1
cml0eS94c3MtREVOSUVELXhzbC1kb2N1bWVudC1zZWN1cml0eU9yaWdpbi1zdGRlcnIudHh0VVQF
AAMhiu9VdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAPJMoR+qKfEJhBQAABQ8AAAoAGAAAAAAA
AQAAAKSBAF4CAGh0dHBkLmNvbmZVVAUAA6OK71V1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAAD0
kihHAAAAAAAAAAAAAAAAAwAYAAAAAAAAABAA7UGlYwIAanMvVVQFAAMbiu9VdXgLAAEE9QEAAARQ
AAAAUEsBAh4DCgAAAAAA9JIoRwAAAAAAAAAAAAAAAAcAGAAAAAAAAAAQAO1B4mMCAGpzL2RvbS9V
VAUAAxuK71V1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAD0kihHUG/t1v4AAAB3AQAAKQAYAAAA
AAABAAAApIEjZAIAanMvZG9tL2RvdC1ub2RlLWJhc2UtZXhjZXB0aW9uLWFjdHVhbC50eHRVVAUA
AxuK71V1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAD0kihHZb6RGy8BAABcAgAAJwAYAAAAAAAB
AAAApIGEZQIAanMvZG9tL2RvdC1ub2RlLWJhc2UtZXhjZXB0aW9uLWRpZmYudHh0VVQFAAMbiu9V
dXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA9JIoRwOJflDoAAAAUwEAACsAGAAAAAAAAQAAAKSB
FGcCAGpzL2RvbS9kb3Qtbm9kZS1iYXNlLWV4Y2VwdGlvbi1leHBlY3RlZC50eHRVVAUAAxuK71V1
eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAD0kihHzPHQ32QIAAC2HAAALwAYAAAAAAABAAAApIFh
aAIAanMvZG9tL2RvdC1ub2RlLWJhc2UtZXhjZXB0aW9uLXByZXR0eS1kaWZmLmh0bWxVVAUAAxuK
71V1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAAD3kChHAAAAAAAAAAAAAAAABgAYAAAAAAAAABAA
7UEucQIAbWVkaWEvVVQFAANhhu9VdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAA95AoRwAAAAAA
AAAAAAAAAAwAGAAAAAAAAAAQAO1BbnECAG1lZGlhL3RyYWNrL1VUBQADYYbvVXV4CwABBPUBAAAE
UAAAAFBLAQIeAxQAAgAIABWTKEdplNGN8AAAAHcBAAAqABgAAAAAAAEAAACkgbRxAgBtZWRpYS90
cmFjay90cmFjay1pbi1iYW5kLXN0eWxlLWFjdHVhbC50eHRVVAUAA1qK71V1eAsAAQT1AQAABFAA
AABQSwECHgMUAAIACAAVkyhHDX/4hJwBAAD+AgAAKAAYAAAAAAABAAAApIEIcwIAbWVkaWEvdHJh
Y2svdHJhY2staW4tYmFuZC1zdHlsZS1kaWZmLnR4dFVUBQADWorvVXV4CwABBPUBAAAEUAAAAFBL
AQIeAxQAAgAIABWTKEcM+uTqNgEAADMCAAAsABgAAAAAAAEAAACkgQZ1AgBtZWRpYS90cmFjay90
cmFjay1pbi1iYW5kLXN0eWxlLWV4cGVjdGVkLnR4dFVUBQADWorvVXV4CwABBPUBAAAEUAAAAFBL
AQIeAxQAAgAIABWTKEcGcNfl0ggAANciAAAwABgAAAAAAAEAAACkgaJ2AgBtZWRpYS90cmFjay90
cmFjay1pbi1iYW5kLXN0eWxlLXByZXR0eS1kaWZmLmh0bWxVVAUAA1qK71V1eAsAAQT1AQAABFAA
AABQSwECHgMUAAIACADskihH2Ix3B2ACAACVEAAAKwAYAAAAAAABAAAApIHefwIAcHl3ZWJzb2Nr
ZXQud3MubG9nLTA4U2VwMjAxNS0xODIxNTktZXJyLnR4dFVUBQADDIrvVXV4CwABBPUBAAAEUAAA
AFBLAQIeAxQAAgAIAOySKEel0FCTCQEAAI8CAAArABgAAAAAAAEAAACkgaOCAgBweXdlYnNvY2tl
dC53cy5sb2ctMDhTZXAyMDE1LTE4MjE1OS1vdXQudHh0VVQFAAMMiu9VdXgLAAEE9QEAAARQAAAA
UEsBAh4DFAACAAgARJMoR+R8RaOeJgAA26QAAAwAGAAAAAAAAQAAAKSBEYQCAHJlc3VsdHMuaHRt
bFVUBQADr4rvVXV4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAEKTKEcAAAAAAAAAAAAAAAAIABgA
AAAAAAAAEADtQfWqAgByZXRyaWVzL1VUBQADq4rvVXV4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAA
AD2TKEcAAAAAAAAAAAAAAAANABgAAAAAAAAAEADtQTerAgByZXRyaWVzL2Zhc3QvVVQFAAOliu9V
dXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAPZMoRwAAAAAAAAAAAAAAABQAGAAAAAAAAAAQAO1B
fqsCAHJldHJpZXMvZmFzdC9ldmVudHMvVVQFAAOliu9VdXgLAAEE9QEAAARQAAAAUEsBAh4DFAAC
AAgAPZMoR19ZX1ZHAAAAeAAAAEAAGAAAAAAAAQAAAKSBzKsCAHJldHJpZXMvZmFzdC9ldmVudHMv
cmVtb3ZlLXRhcmdldC13aXRoLXNoYWRvdy1pbi1kcmFnLWFjdHVhbC50eHRVVAUAA6WK71V1eAsA
AQT1AQAABFAAAABQSwECHgMUAAIACAA9kyhHssYXpRIBAACrAgAAPgAYAAAAAAABAAAApIGNrAIA
cmV0cmllcy9mYXN0L2V2ZW50cy9yZW1vdmUtdGFyZ2V0LXdpdGgtc2hhZG93LWluLWRyYWctZGlm
Zi50eHRVVAUAA6WK71V1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAA9kyhHQm4DDowAAAAoAQAA
QgAYAAAAAAABAAAApIEXrgIAcmV0cmllcy9mYXN0L2V2ZW50cy9yZW1vdmUtdGFyZ2V0LXdpdGgt
c2hhZG93LWluLWRyYWctZXhwZWN0ZWQudHh0VVQFAAOliu9VdXgLAAEE9QEAAARQAAAAUEsBAh4D
FAACAAgAPZMoRx4xs98mCAAAsRsAAEYAGAAAAAAAAQAAAKSBH68CAHJldHJpZXMvZmFzdC9ldmVu
dHMvcmVtb3ZlLXRhcmdldC13aXRoLXNoYWRvdy1pbi1kcmFnLXByZXR0eS1kaWZmLmh0bWxVVAUA
A6WK71V1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAABCkyhHAAAAAAAAAAAAAAAACwAYAAAAAAAA
ABAA7UHFtwIAcmV0cmllcy9qcy9VVAUAA6uK71V1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAABC
kyhHAAAAAAAAAAAAAAAADwAYAAAAAAAAABAA7UEKuAIAcmV0cmllcy9qcy9kb20vVVQFAAOriu9V
dXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAQpMoR1Bv7db+AAAAdwEAADEAGAAAAAAAAQAAAKSB
U7gCAHJldHJpZXMvanMvZG9tL2RvdC1ub2RlLWJhc2UtZXhjZXB0aW9uLWFjdHVhbC50eHRVVAUA
A6uK71V1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABCkyhHw41GzjMBAABsAgAALwAYAAAAAAAB
AAAApIG8uQIAcmV0cmllcy9qcy9kb20vZG90LW5vZGUtYmFzZS1leGNlcHRpb24tZGlmZi50eHRV
VAUAA6uK71V1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABCkyhHA4l+UOgAAABTAQAAMwAYAAAA
AAABAAAApIFYuwIAcmV0cmllcy9qcy9kb20vZG90LW5vZGUtYmFzZS1leGNlcHRpb24tZXhwZWN0
ZWQudHh0VVQFAAOriu9VdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAQpMoR54YSE5pCAAAvhwA
ADcAGAAAAAAAAQAAAKSBrbwCAHJldHJpZXMvanMvZG9tL2RvdC1ub2RlLWJhc2UtZXhjZXB0aW9u
LXByZXR0eS1kaWZmLmh0bWxVVAUAA6uK71V1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABEkyhH
DIrqPz8bBwAw6igACgAYAAAAAAABAAAApIGHxQIAc3RhdHMuanNvblVUBQADr4rvVXV4CwABBPUB
AAAEUAAAAFBLAQIeAwoAAAAAAPKQKEcAAAAAAAAAAAAAAAAEABgAAAAAAAAAEADtQQrhCQBzdmcv
VVQFAANXhu9VdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAA8pAoRwAAAAAAAAAAAAAAAAsAGAAA
AAAAAAAQAO1BSOEJAHN2Zy9jdXN0b20vVVQFAANXhu9VdXgLAAEE9QEAAARQAAAAUEsBAh4DFAAC
AAgAD5MoR12UBjF+AAAAjQAAACQAGAAAAAAAAQAAAKSBjeEJAHN2Zy9jdXN0b20vemVyby1kYXNo
YXJyYXktc3RkZXJyLnR4dFVUBQADTYrvVXV4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAOSQKEcA
AAAAAAAAAAAAAAALABgAAAAAAAAAEADtQWniCQBzdmcvc3Ryb2tlL1VUBQADPIbvVXV4CwABBPUB
AAAEUAAAAFBLAQIeAxQAAgAIAAGTKEfQ/u0ifQAAAI0AAAAlABgAAAAAAAEAAACkga7iCQBzdmcv
c3Ryb2tlL3plcm8td2lkdGgtaGFuZy1zdGRlcnIudHh0VVQFAAMyiu9VdXgLAAEE9QEAAARQAAAA
UEsBAh4DCgAAAAAAGpMoRwAAAAAAAAAAAAAAAAYAGAAAAAAAAAAQAO1BiuMJAHdlYmdsL1VUBQAD
ZIrvVXV4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAABqTKEcAAAAAAAAAAAAAAAAMABgAAAAAAAAA
EADtQcrjCQB3ZWJnbC8xLjAuMy9VVAUAA2SK71V1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAAAa
kyhHAAAAAAAAAAAAAAAAGAAYAAAAAAAAABAA7UEQ5AkAd2ViZ2wvMS4wLjMvY29uZm9ybWFuY2Uv
VVQFAANkiu9VdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAG5MoRwAAAAAAAAAAAAAAACEAGAAA
AAAAAAAQAO1BYuQJAHdlYmdsLzEuMC4zL2NvbmZvcm1hbmNlL3RleHR1cmVzL1VUBQADZYrvVXV4
CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIABqTKEfXK65xqgAAAN0AAAA/ABgAAAAAAAEAAACkgb3k
CQB3ZWJnbC8xLjAuMy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLXVwbG9hZC1zaXplLWFj
dHVhbC50eHRVVAUAA2SK71V1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAakyhHsBrCFQoBAAAE
AgAAPQAYAAAAAAABAAAApIHg5QkAd2ViZ2wvMS4wLjMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4
dHVyZS11cGxvYWQtc2l6ZS1kaWZmLnR4dFVUBQADZIrvVXV4CwABBPUBAAAEUAAAAFBLAQIeAxQA
AgAIABqTKEcisKkQjAAAAK4AAABBABgAAAAAAAEAAACkgWHnCQB3ZWJnbC8xLjAuMy9jb25mb3Jt
YW5jZS90ZXh0dXJlcy90ZXh0dXJlLXVwbG9hZC1zaXplLWV4cGVjdGVkLnR4dFVUBQADZIrvVXV4
CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIABuTKEcpFLvW/gcAAO4aAABFABgAAAAAAAEAAACkgWjo
CQB3ZWJnbC8xLjAuMy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLXVwbG9hZC1zaXplLXBy
ZXR0eS1kaWZmLmh0bWxVVAUAA2WK71V1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABDkyhHNGeN
2GwCAACNEAAAGQAYAAAAAAABAAAApIHl8AkAd3B0d2tfcHJvY2Vzc19sb2cub3V0LnR4dFVUBQAD
rorvVXV4CwABBPUBAAAEUAAAAFBLBQYAAAAAWwBbAFwkAACk8wkAAAA=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260840</attachid>
            <date>2015-09-08 23:17:14 -0700</date>
            <delta_ts>2015-09-08 23:35:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148971-20150908231709.patch</filename>
            <type>text/plain</type>
            <size>249742</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTg3OTllM2U0M2I0OTAw
ZGYxYWJjMjgyZTExNGU5Y2Q1MjcxM2NmMS4uMmI1MWRjNTA5NGUzODI4MTg5YWFiM2I4NmIzMTA3
NzQyNDM2YmM2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE1LTA5LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTm9kZS5hcHBlbmRDaGlsZChu
dWxsKSAvIHJlcGxhY2VDaGlsZChudWxsLCBudWxsKSAvIHJlbW92ZUNoaWxkKG51bGwpIC8gaW5z
ZXJ0QmVmb3JlKG51bGwsIHJlZikgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg5NzEKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzIyNTYwODgzPgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjI1NTkyMjU+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm9kZS5h
cHBlbmRDaGlsZChudWxsKSAvIHJlcGxhY2VDaGlsZChudWxsLCBudWxsKSAvIHJlbW92ZUNoaWxk
KG51bGwpCisgICAgICAgIGFuZCBpbnNlcnRCZWZvcmUobnVsbCwgcmVmKSBzaG91bGQgdGhyb3cg
YSBUeXBlRXJyb3IgaW5zdGVhZCBvZiBhCisgICAgICAgIE5vdEZvdW5kRXJyb3IsIGFzIHBlciB0
aGUgc3BlY2lmaWNhdGlvbjoKKyAgICAgICAgaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNu
b2RlCisKKyAgICAgICAgVGhlIHBhcmFtZXRlcnMgYXJlIG5vdCBudWxsYWJsZSBzbyB0aGUgV2Vi
IElETCBzcGVjaWZpY2F0aW9uIHNheXMKKyAgICAgICAgd2Ugc2hvdWxkIHRocm93IGEgVHlwZUVy
cm9yIGluIHRoaXMgY2FzZS4KKworICAgICAgICBUaGlzIHBhdGNoIG1vdmVzIHRoZSBudWxsLWNo
ZWNraW5nIGZyb20gQ29udGFpbmVyTm9kZSB0byB0aGUgbWV0aG9kcworICAgICAgICBvbiBOb2Rl
LiBUaGUgbnVsbC1jaGVja2luZyBpcyBzdXBwb3NlZCB0byBiZSBkb25lIGJ5IHRoZSBiaW5kaW5n
cyBjb2RlCisgICAgICAgIGJ1dCBvdXIgZ2VuZXJhdG9yIGN1cnJlbnRseSBkb2VzIG5vdCBzdXBw
b3J0IHRoaXMgc28gd2UgZG8gdGhlIG51bGwKKyAgICAgICAgY2hlY2tpbmcgYXMgY2xvc2UgdG8g
dGhlIGJpbmRpbmdzIGFzIHBvc3NpYmxlLiBUaGUgYmluZGluZ3MgY29kZSBpcworICAgICAgICBj
YWxsaW5nIHRoZSBtZXRob2RzIG9uIE5vZGUuIFRoaXMgYWxzbyBtYWtlcyBzdXJlIHdlIHRocm93
IGEgVHlwZUVycm9yCisgICAgICAgIGZvciBudWxsLWFyZ3VtZW50IHdoZW4gdGhlIE5vZGUgaXMg
bm90IGEgQ29udGFpbmVyTm9kZS4gRm9yIGUuZy4KKyAgICAgICAgVGV4dC5hcHBlbmRDaGlsZChu
dWxsKSBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3IgdG9vLgorCisgICAgICAgIFRoZSBtZXRob2Rz
IG9uIENvbnRhaW5lck5vZGUgbm93IHRha2UgcmVmZXJlbmNlcyBpbnN0ZWFhZCBvZiBwb2ludGVy
CisgICAgICAgIHBhcmFtZXRlcnMgbm93IHRoYXQgdGhlIG51bGwtY2hlY2tpbmcgaXMgZG9uZSBh
dCB0aGUgY2FsbCBzaXRlIGluCisgICAgICAgIE5vZGUuIFRoaXMgbGVhZCB0byBhIGxvdCBvZiBj
b2RlIHVwZGF0ZSBhcyB0aG9zZSBtZXRob2RzIGFyZSB1c2VkCisgICAgICAgIGEgbG90IHRocm91
Z2hvdXQgdGhlIGNvZGUgYmFzZS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGFscmVhZHkgY292
ZXJlZCBieSBwcmUtZXhpc3RpbmcgbGF5b3V0IHRlc3RzLgorCiAyMDE1LTA5LTA4ICBKb3NlcGgg
UGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjog
Tm8gbmVlZCBmb3IgW0N1c3RvbV0gSW1wbGVtZW50YXRpb24gb2Ygc29tZSBJbnNwZWN0b3JGcm9u
dGVuZEhvc3QgbWV0aG9kcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDYwYWRmNzMyYWM4N2FiZTA0MTIy
NzEzY2YzNTkxNzA4MzFkYzllMTUuLmY4Mjc5NGNhNTA2Y2M0MjgzNDUwNmNiMDU2YmNkZjA2YTZj
YzYyZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxNS0wOS0wOCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIE5vZGUuYXBwZW5kQ2hpbGQo
bnVsbCkgLyByZXBsYWNlQ2hpbGQobnVsbCwgbnVsbCkgLyByZW1vdmVDaGlsZChudWxsKSAvIGlu
c2VydEJlZm9yZShudWxsLCByZWYpIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4OTcxCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8yMjU2MDg4Mz4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIyNTU5MjI1
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbnRh
aW5lck5vZGU6OmFwcGVuZENoaWxkKCkgbm93IHRha2VzIGEgUmVmPE5vZGU+JiYgcGFyYW1ldGVy
IHNvIHdlCisgICAgICAgIG5lZWQgdG8gdXBkYXRlIHRoZSBjYWxsIHNpdGUuCisKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkZyYW1lLm1tOgorICAgICAgICAoLVtXZWJGcmFtZSBfZG9jdW1lbnRGcmFn
bWVudFdpdGhOb2Rlc0FzUGFyYWdyYXBoczpdKToKKwogMjAxNS0wOS0wNyAgQW5keSBFc3RlcyAg
PGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW01hY10gRGVidWdSZWxlYXNlIGJ1aWxkcyBz
aG91bGQgbGluayBhZ2FpbnN0IGxpYldlYktpdFN5c3RlbUludGVyZmFjZUVsQ2FwaXRhbi5hIG9u
IDEwLjExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjQxOTI1ZDEwOTFhNmI0ZDhmZGU0ZDVjYWJlOWY3N2U2OTRl
YzBjZS4uOGQ4YzlhYTAyMDljM2RhN2MyZmVkODAxNGMzNDVlNTBmYjlmZjE1OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIzIEBACisyMDE1LTA5LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CisKKyAgICAgICAgTm9kZS5hcHBlbmRDaGlsZChudWxsKSAvIHJlcGxhY2VDaGlsZChu
dWxsLCBudWxsKSAvIHJlbW92ZUNoaWxkKG51bGwpIC8gaW5zZXJ0QmVmb3JlKG51bGwsIHJlZikg
c2hvdWxkIHRocm93IGEgVHlwZUVycm9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDg5NzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIyNTYwODgz
PgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjI1NTkyMjU+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29udGFpbmVyTm9kZTo6YXBwZW5kQ2hpbGQo
KSBub3cgdGFrZXMgYSBSZWY8Tm9kZT4mJiBwYXJhbWV0ZXIgc28gd2UKKyAgICAgICAgbmVlZCB0
byB1cGRhdGUgdGhlIGNhbGwgc2l0ZXMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1BERlBsdWdpbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjpQREZQbHVnaW4p
OgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQW5ub3RhdGlvbi5t
bToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luQW5ub3RhdGlvbjo6YXR0YWNoKToKKyAgICAg
ICAgKFdlYktpdDo6UERGUGx1Z2luQW5ub3RhdGlvbjo6flBERlBsdWdpbkFubm90YXRpb24pOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlv
bi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbjo6Y3JlYXRl
QW5ub3RhdGlvbkVsZW1lbnQpOgorCiAyMDE1LTA5LTA4ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVz
QGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjXSBFeHBvc2UgRW5hYmxlL0Rpc2FibGUgQWNjZWxl
cmF0ZWQgRHJhd2luZyBpbiBNaW5pQnJvd3NlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcAppbmRleCA4
Zjk2YzlmMDI4YzcyOGZkYTAzYmI1MGE3ZWU5NmJhZmMzZGE5MDViLi5iNDRjZmQyMDg1OWU3NGUx
MzE3YTkzNGExNWM1NzY2OThiN2UxN2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcApAQCAtODEs
OSArODEsOSBAQCBib29sIFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudDo6aW5zdGFsbFJlcGxhY2Vt
ZW50KFNoYWRvd1Jvb3QqIHJvb3QpCiB7CiAgICAgbV9lbWJlZFNoYWRvd0VsZW1lbnQgPSBZb3VU
dWJlRW1iZWRTaGFkb3dFbGVtZW50OjpjcmVhdGUobV9wYXJlbnRFbGVtZW50LT5kb2N1bWVudCgp
KTsKIAotICAgIHJvb3QtPmFwcGVuZENoaWxkKG1fZW1iZWRTaGFkb3dFbGVtZW50LmdldCgpKTsK
KyAgICByb290LT5hcHBlbmRDaGlsZCgqbV9lbWJlZFNoYWRvd0VsZW1lbnQpOwogCi0gICAgUmVm
UHRyPEhUTUxJRnJhbWVFbGVtZW50PiBpZnJhbWVFbGVtZW50ID0gSFRNTElGcmFtZUVsZW1lbnQ6
OmNyZWF0ZShIVE1MTmFtZXM6OmlmcmFtZVRhZywgbV9wYXJlbnRFbGVtZW50LT5kb2N1bWVudCgp
KTsKKyAgICBSZWY8SFRNTElGcmFtZUVsZW1lbnQ+IGlmcmFtZUVsZW1lbnQgPSBIVE1MSUZyYW1l
RWxlbWVudDo6Y3JlYXRlKEhUTUxOYW1lczo6aWZyYW1lVGFnLCBtX3BhcmVudEVsZW1lbnQtPmRv
Y3VtZW50KCkpOwogICAgIGlmIChtX2F0dHJpYnV0ZXMuY29udGFpbnMoIndpZHRoIikpCiAgICAg
ICAgIGlmcmFtZUVsZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OndpZHRoQXR0ciwgQXRv
bWljU3RyaW5nKCIxMDAlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwog
ICAgIApAQCAtOTgsNyArOTgsNyBAQCBib29sIFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudDo6aW5z
dGFsbFJlcGxhY2VtZW50KFNoYWRvd1Jvb3QqIHJvb3QpCiAgICAgCiAgICAgLy8gRGlzYWJsZSBm
cmFtZSBmbGF0dGVuaW5nIGZvciB0aGlzIGlmcmFtZS4KICAgICBpZnJhbWVFbGVtZW50LT5zZXRB
dHRyaWJ1dGUoSFRNTE5hbWVzOjpzY3JvbGxpbmdBdHRyLCBBdG9taWNTdHJpbmcoIm5vIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIG1fZW1iZWRTaGFkb3dFbGVt
ZW50LT5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsKKyAgICBtX2VtYmVkU2hhZG93RWxlbWVu
dC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGlmcmFtZUVsZW1lbnQpKTsKIAogICAgIHJldHVybiB0
cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1M
Lm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MLm1tCmluZGV4IDBkZTIy
Y2UzY2RhYzRmNzg4YTdmZGE3Y2YwNDU1NzA2YTA5MDViZmMuLjAyNzU5NWUxZTkxYjJmM2FhNjI4
ZTI5MzYxNWJhNTFkMmZmMDU5ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NSFRNTC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhU
TUwubW0KQEAgLTE1Miw3ICsxNTIsNyBAQCAtIChET01Eb2N1bWVudEZyYWdtZW50ICopY3JlYXRl
RG9jdW1lbnRGcmFnbWVudFdpdGhNYXJrdXBTdHJpbmc6KE5TU3RyaW5nICopbWFyawogLSAoRE9N
RG9jdW1lbnRGcmFnbWVudCAqKWNyZWF0ZURvY3VtZW50RnJhZ21lbnRXaXRoVGV4dDooTlNTdHJp
bmcgKil0ZXh0CiB7CiAgICAgLy8gRklYTUU6IFNpbmNlIHRoaXMgaXMgbm90IGEgY29udGV4dHVh
bCBmcmFnbWVudCwgaXQgd29uJ3QgaGFuZGxlIHdoaXRlc3BhY2UgcHJvcGVybHkuCi0gICAgcmV0
dXJuIGtpdChjcmVhdGVGcmFnbWVudEZyb21UZXh0KGNvcmUoc2VsZiktPmNyZWF0ZVJhbmdlKCks
IHRleHQpLmdldCgpKTsKKyAgICByZXR1cm4ga2l0KGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoY29y
ZShzZWxmKS0+Y3JlYXRlUmFuZ2UoKSwgdGV4dCkucHRyKCkpOwogfQogCiBAZW5kCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0
ci5jcHAKaW5kZXggMTg1NzBmMWQ4NzQzMWExZjNhNDRkYTAzZTU4YTJlYzVmZjcxYTc4Yy4uYWM3
YjY2Zjk5NzA1ZDg5OWVlY2UzYzI4OTRmODllMWY4MDlkMTVmOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0F0dHIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmNwcApA
QCAtMTM4LDExICsxMzgsMTEgQEAgdm9pZCBBdHRyOjpzZXROb2RlVmFsdWUoY29uc3QgU3RyaW5n
JiB2LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBzZXRWYWx1ZSh2LCBlYyk7CiB9CiAKLVJlZlB0
cjxOb2RlPiBBdHRyOjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQs
IENsb25pbmdPcGVyYXRpb24pCitSZWY8Tm9kZT4gQXR0cjo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9j
dW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uKQogewotICAgIFJlZlB0cjxB
dHRyPiBjbG9uZSA9IGFkb3B0UmVmKG5ldyBBdHRyKHRhcmdldERvY3VtZW50LCBxdWFsaWZpZWRO
YW1lKCksIHZhbHVlKCkpKTsKLSAgICBjbG9uZUNoaWxkTm9kZXMoY2xvbmUuZ2V0KCkpOwotICAg
IHJldHVybiBjbG9uZS5yZWxlYXNlKCk7CisgICAgUmVmPEF0dHI+IGNsb25lID0gYWRvcHRSZWYo
Km5ldyBBdHRyKHRhcmdldERvY3VtZW50LCBxdWFsaWZpZWROYW1lKCksIHZhbHVlKCkpKTsKKyAg
ICBjbG9uZUNoaWxkTm9kZXMoY2xvbmUpOworICAgIHJldHVybiBXVEY6Om1vdmUoY2xvbmUpOwog
fQogCiAvLyBET00gU2VjdGlvbiAxLjEuMQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0F0dHIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmgKaW5kZXggYzdhOTRmOThmMGJmYjU3
ZWIwYzNhYjUxNzk4OGE0NDgwYjM0OTAxMC4uMTI0YzZkN2EyYWEyODY4MzBmY2JhMjk2Mjg4ODhi
NzIwMjI5OTI4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vQXR0ci5oCkBAIC04MCw3ICs4MCw3IEBAIHByaXZhdGU6CiAKICAg
ICB2aXJ0dWFsIFN0cmluZyBub2RlVmFsdWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB2YWx1
ZSgpOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldE5vZGVWYWx1ZShjb25zdCBTdHJpbmcmLCBFeGNl
cHRpb25Db2RlJikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZWZQdHI8Tm9kZT4gY2xvbmVOb2Rl
SW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRp
b24pIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIGlzQXR0cmlidXRlTm9kZSgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRUeXBlQWxs
b3dlZChOb2RlVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ0RBVEFTZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DREFUQVNlY3Rpb24u
Y3BwCmluZGV4IGM1OWJmMWU5NThmZGE0NTBhZTkyZGYyMmI3NDA5ZmZiOTY4YTBiZWIuLmFmZDcz
MjI3MGYxMmM2ZDhkY2ZmYjhmZjgyN2ExMzljYzMxYTMxZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9DREFUQVNlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DREFU
QVNlY3Rpb24uY3BwCkBAIC00Niw3ICs0Niw3IEBAIE5vZGU6Ok5vZGVUeXBlIENEQVRBU2VjdGlv
bjo6bm9kZVR5cGUoKSBjb25zdAogICAgIHJldHVybiBDREFUQV9TRUNUSU9OX05PREU7CiB9CiAK
LVJlZlB0cjxOb2RlPiBDREFUQVNlY3Rpb246OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0
YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikKK1JlZjxOb2RlPiBDREFUQVNlY3Rpb246
OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJh
dGlvbikKIHsKICAgICByZXR1cm4gY3JlYXRlKHRhcmdldERvY3VtZW50LCBkYXRhKCkpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NEQVRBU2VjdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0NEQVRBU2VjdGlvbi5oCmluZGV4IGJmNWE2MWM2MjY4NWIyMzcwNWQ2NGI0Y2Uz
OTQ2YTYzNzg0OTIzYTcuLmQ2Yjk5MzdkZmM3NWE1OGU5NmVhYjUyZGYyNmFkOWI0YjdkZWYyNjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DREFUQVNlY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQ0RBVEFTZWN0aW9uLmgKQEAgLTM2LDcgKzM2LDcgQEAgcHJpdmF0ZToK
IAogICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCBOb2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVm
UHRyPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1l
bnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRU
eXBlQWxsb3dlZChOb2RlVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBSZWY8VGV4
dD4gdmlydHVhbENyZWF0ZShjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29t
bWVudC5jcHAKaW5kZXggNGM3NGFhZjYzYWQ5MDUzYzZhYmU1OTU1NjIzMTg1ZDI3ZDk4OWQ2Yi4u
NDEyNWE2ZWFlMWFkZjlhOGY4NjZmZWI1NDI5ZjRmM2Q0MjBiNzI0YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0NvbW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21t
ZW50LmNwcApAQCAtNDYsNyArNDYsNyBAQCBOb2RlOjpOb2RlVHlwZSBDb21tZW50Ojpub2RlVHlw
ZSgpIGNvbnN0CiAgICAgcmV0dXJuIENPTU1FTlRfTk9ERTsKIH0KIAotUmVmUHRyPE5vZGU+IENv
bW1lbnQ6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmlu
Z09wZXJhdGlvbikKK1JlZjxOb2RlPiBDb21tZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVu
dCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24pCiB7CiAgICAgcmV0dXJuIGNyZWF0
ZSh0YXJnZXREb2N1bWVudCwgZGF0YSgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Db21tZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tbWVudC5oCmluZGV4IGZjYWM2
MGEzM2U1ZTMwYTFlNTljMWRjOWVmM2I2Mzk0YWRlN2I3NTkuLjE1NjYzMjMzMmEyMDY4ZjNhOWI4
NTI2Y2JjYzc0NjU0ODYxNTk5YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21t
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbW1lbnQuaApAQCAtMzYsNyArMzYsNyBA
QCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBTdHJpbmcgbm9kZU5hbWUoKSBjb25zdCBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIE5vZGVUeXBlIG5vZGVUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAg
dmlydHVhbCBSZWZQdHI8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5n
T3BlcmF0aW9uKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRl
cm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
Ym9vbCBjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlKSBjb25zdCBvdmVycmlkZTsKIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAppbmRleCBmMDYzMWI2YmRkNGRhN2RhMmRhNGJk
NGZhOTk0YzE5Y2Y5OTBjM2Q1Li4yYzNiNWVkMzE5ZjY1ODgxZTFjM2VhODhiMTI0NWJiYTAwZTdj
ODJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCkBAIC03Niw3ICs3Niw3IEBA
IHN0YXRpYyB2b2lkIGNvbGxlY3RDaGlsZHJlbkFuZFJlbW92ZUZyb21PbGRQYXJlbnQoTm9kZSYg
bm9kZSwgTm9kZVZlY3RvciYgbm9kZXMsCiAgICAgaWYgKCFpczxEb2N1bWVudEZyYWdtZW50Pihu
b2RlKSkgewogICAgICAgICBub2Rlcy5hcHBlbmQobm9kZSk7CiAgICAgICAgIGlmIChDb250YWlu
ZXJOb2RlKiBvbGRQYXJlbnQgPSBub2RlLnBhcmVudE5vZGUoKSkKLSAgICAgICAgICAgIG9sZFBh
cmVudC0+cmVtb3ZlQ2hpbGQoJm5vZGUsIGVjKTsKKyAgICAgICAgICAgIG9sZFBhcmVudC0+cmVt
b3ZlQ2hpbGQobm9kZSwgZWMpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xNDYsMTMg
KzE0NiwxMyBAQCBDb250YWluZXJOb2RlOjp+Q29udGFpbmVyTm9kZSgpCiAgICAgcmVtb3ZlRGV0
YWNoZWRDaGlsZHJlbigpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgaXNDaGlsZFR5cGVBbGxv
d2VkKENvbnRhaW5lck5vZGUqIG5ld1BhcmVudCwgTm9kZSogY2hpbGQpCitzdGF0aWMgaW5saW5l
IGJvb2wgaXNDaGlsZFR5cGVBbGxvd2VkKENvbnRhaW5lck5vZGUmIG5ld1BhcmVudCwgTm9kZSYg
Y2hpbGQpCiB7Ci0gICAgaWYgKCFjaGlsZC0+aXNEb2N1bWVudEZyYWdtZW50KCkpCi0gICAgICAg
IHJldHVybiBuZXdQYXJlbnQtPmNoaWxkVHlwZUFsbG93ZWQoY2hpbGQtPm5vZGVUeXBlKCkpOwor
ICAgIGlmICghY2hpbGQuaXNEb2N1bWVudEZyYWdtZW50KCkpCisgICAgICAgIHJldHVybiBuZXdQ
YXJlbnQuY2hpbGRUeXBlQWxsb3dlZChjaGlsZC5ub2RlVHlwZSgpKTsKIAotICAgIGZvciAoTm9k
ZSogbm9kZSA9IGNoaWxkLT5maXJzdENoaWxkKCk7IG5vZGU7IG5vZGUgPSBub2RlLT5uZXh0U2li
bGluZygpKSB7Ci0gICAgICAgIGlmICghbmV3UGFyZW50LT5jaGlsZFR5cGVBbGxvd2VkKG5vZGUt
Pm5vZGVUeXBlKCkpKQorICAgIGZvciAoTm9kZSogbm9kZSA9IGNoaWxkLmZpcnN0Q2hpbGQoKTsg
bm9kZTsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgaWYgKCFuZXdQYXJl
bnQuY2hpbGRUeXBlQWxsb3dlZChub2RlLT5ub2RlVHlwZSgpKSkKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICB9CiAgICAgcmV0dXJuIHRydWU7CkBAIC0xNjksMjMgKzE2OSwxOSBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgaXNJblRlbXBsYXRlQ29udGVudChjb25zdCBOb2RlKiBub2RlKQog
I2VuZGlmCiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBjb250YWluc0NvbnNpZGVyaW5nSG9zdEVs
ZW1lbnRzKGNvbnN0IE5vZGUqIG5ld0NoaWxkLCBjb25zdCBOb2RlKiBuZXdQYXJlbnQpCitzdGF0
aWMgaW5saW5lIGJvb2wgY29udGFpbnNDb25zaWRlcmluZ0hvc3RFbGVtZW50cyhjb25zdCBOb2Rl
JiBuZXdDaGlsZCwgY29uc3QgTm9kZSYgbmV3UGFyZW50KQogewotICAgIHJldHVybiAobmV3UGFy
ZW50LT5pc0luU2hhZG93VHJlZSgpIHx8IGlzSW5UZW1wbGF0ZUNvbnRlbnQobmV3UGFyZW50KSkK
LSAgICAgICAgPyBuZXdDaGlsZC0+Y29udGFpbnNJbmNsdWRpbmdIb3N0RWxlbWVudHMobmV3UGFy
ZW50KQotICAgICAgICA6IG5ld0NoaWxkLT5jb250YWlucyhuZXdQYXJlbnQpOworICAgIHJldHVy
biAobmV3UGFyZW50LmlzSW5TaGFkb3dUcmVlKCkgfHwgaXNJblRlbXBsYXRlQ29udGVudCgmbmV3
UGFyZW50KSkKKyAgICAgICAgPyBuZXdDaGlsZC5jb250YWluc0luY2x1ZGluZ0hvc3RFbGVtZW50
cygmbmV3UGFyZW50KQorICAgICAgICA6IG5ld0NoaWxkLmNvbnRhaW5zKCZuZXdQYXJlbnQpOwog
fQogCi1zdGF0aWMgaW5saW5lIEV4Y2VwdGlvbkNvZGUgY2hlY2tBY2NlcHRDaGlsZChDb250YWlu
ZXJOb2RlKiBuZXdQYXJlbnQsIE5vZGUqIG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCkKK3N0YXRp
YyBpbmxpbmUgRXhjZXB0aW9uQ29kZSBjaGVja0FjY2VwdENoaWxkKENvbnRhaW5lck5vZGUmIG5l
d1BhcmVudCwgTm9kZSYgbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkKQogewotICAgIC8vIE5vdCBt
ZW50aW9uZWQgaW4gc3BlYzogdGhyb3cgTk9UX0ZPVU5EX0VSUiBpZiBuZXdDaGlsZCBpcyBudWxs
Ci0gICAgaWYgKCFuZXdDaGlsZCkKLSAgICAgICAgcmV0dXJuIE5PVF9GT1VORF9FUlI7Ci0KICAg
ICAvLyBVc2UgY29tbW9uIGNhc2UgZmFzdCBwYXRoIGlmIHBvc3NpYmxlLgotICAgIGlmICgobmV3
Q2hpbGQtPmlzRWxlbWVudE5vZGUoKSB8fCBuZXdDaGlsZC0+aXNUZXh0Tm9kZSgpKSAmJiBuZXdQ
YXJlbnQtPmlzRWxlbWVudE5vZGUoKSkgewotICAgICAgICBBU1NFUlQoIW5ld1BhcmVudC0+aXNS
ZWFkT25seU5vZGUoKSk7Ci0gICAgICAgIEFTU0VSVCghbmV3UGFyZW50LT5pc0RvY3VtZW50VHlw
ZU5vZGUoKSk7CisgICAgaWYgKChuZXdDaGlsZC5pc0VsZW1lbnROb2RlKCkgfHwgbmV3Q2hpbGQu
aXNUZXh0Tm9kZSgpKSAmJiBuZXdQYXJlbnQuaXNFbGVtZW50Tm9kZSgpKSB7CisgICAgICAgIEFT
U0VSVCghbmV3UGFyZW50LmlzUmVhZE9ubHlOb2RlKCkpOworICAgICAgICBBU1NFUlQoIW5ld1Bh
cmVudC5pc0RvY3VtZW50VHlwZU5vZGUoKSk7CiAgICAgICAgIEFTU0VSVChpc0NoaWxkVHlwZUFs
bG93ZWQobmV3UGFyZW50LCBuZXdDaGlsZCkpOwogICAgICAgICBpZiAoY29udGFpbnNDb25zaWRl
cmluZ0hvc3RFbGVtZW50cyhuZXdDaGlsZCwgbmV3UGFyZW50KSkKICAgICAgICAgICAgIHJldHVy
biBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CkBAIC0xOTMsMTcgKzE4OSwxNyBAQCBzdGF0aWMgaW5s
aW5lIEV4Y2VwdGlvbkNvZGUgY2hlY2tBY2NlcHRDaGlsZChDb250YWluZXJOb2RlKiBuZXdQYXJl
bnQsIE5vZGUqIG5ldwogICAgIH0KIAogICAgIC8vIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiwg
YnV0IGFsc28gcHJvdGVjdCByZWxlYXNlIGJ1aWxkcyBmcm9tIHRyZWUgY29ycnVwdGlvbi4KLSAg
ICBBU1NFUlQoIW5ld0NoaWxkLT5pc1BzZXVkb0VsZW1lbnQoKSk7Ci0gICAgaWYgKG5ld0NoaWxk
LT5pc1BzZXVkb0VsZW1lbnQoKSkKKyAgICBBU1NFUlQoIW5ld0NoaWxkLmlzUHNldWRvRWxlbWVu
dCgpKTsKKyAgICBpZiAobmV3Q2hpbGQuaXNQc2V1ZG9FbGVtZW50KCkpCiAgICAgICAgIHJldHVy
biBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAKLSAgICBpZiAobmV3UGFyZW50LT5pc1JlYWRPbmx5
Tm9kZSgpKQorICAgIGlmIChuZXdQYXJlbnQuaXNSZWFkT25seU5vZGUoKSkKICAgICAgICAgcmV0
dXJuIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjsKICAgICBpZiAoY29udGFpbnNDb25zaWRl
cmluZ0hvc3RFbGVtZW50cyhuZXdDaGlsZCwgbmV3UGFyZW50KSkKICAgICAgICAgcmV0dXJuIEhJ
RVJBUkNIWV9SRVFVRVNUX0VSUjsKIAotICAgIGlmIChvbGRDaGlsZCAmJiBpczxEb2N1bWVudD4o
Km5ld1BhcmVudCkpIHsKLSAgICAgICAgaWYgKCFkb3duY2FzdDxEb2N1bWVudD4oKm5ld1BhcmVu
dCkuY2FuUmVwbGFjZUNoaWxkKG5ld0NoaWxkLCBvbGRDaGlsZCkpCisgICAgaWYgKG9sZENoaWxk
ICYmIGlzPERvY3VtZW50PihuZXdQYXJlbnQpKSB7CisgICAgICAgIGlmICghZG93bmNhc3Q8RG9j
dW1lbnQ+KG5ld1BhcmVudCkuY2FuUmVwbGFjZUNoaWxkKG5ld0NoaWxkLCAqb2xkQ2hpbGQpKQog
ICAgICAgICAgICAgcmV0dXJuIEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKICAgICB9IGVsc2UgaWYg
KCFpc0NoaWxkVHlwZUFsbG93ZWQobmV3UGFyZW50LCBuZXdDaGlsZCkpCiAgICAgICAgIHJldHVy
biBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CkBAIC0yMTEsMTIgKzIwNywxMiBAQCBzdGF0aWMgaW5s
aW5lIEV4Y2VwdGlvbkNvZGUgY2hlY2tBY2NlcHRDaGlsZChDb250YWluZXJOb2RlKiBuZXdQYXJl
bnQsIE5vZGUqIG5ldwogICAgIHJldHVybiAwOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgY2hl
Y2tBY2NlcHRDaGlsZEd1YXJhbnRlZWROb2RlVHlwZXMoQ29udGFpbmVyTm9kZSogbmV3UGFyZW50
LCBOb2RlKiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCitzdGF0aWMgaW5saW5lIGJvb2wg
Y2hlY2tBY2NlcHRDaGlsZEd1YXJhbnRlZWROb2RlVHlwZXMoQ29udGFpbmVyTm9kZSYgbmV3UGFy
ZW50LCBOb2RlJiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgQVNTRVJUKCFu
ZXdQYXJlbnQtPmlzUmVhZE9ubHlOb2RlKCkpOwotICAgIEFTU0VSVCghbmV3UGFyZW50LT5pc0Rv
Y3VtZW50VHlwZU5vZGUoKSk7CisgICAgQVNTRVJUKCFuZXdQYXJlbnQuaXNSZWFkT25seU5vZGUo
KSk7CisgICAgQVNTRVJUKCFuZXdQYXJlbnQuaXNEb2N1bWVudFR5cGVOb2RlKCkpOwogICAgIEFT
U0VSVChpc0NoaWxkVHlwZUFsbG93ZWQobmV3UGFyZW50LCBuZXdDaGlsZCkpOwotICAgIGlmIChu
ZXdDaGlsZC0+Y29udGFpbnMobmV3UGFyZW50KSkgeworICAgIGlmIChuZXdDaGlsZC5jb250YWlu
cygmbmV3UGFyZW50KSkgewogICAgICAgICBlYyA9IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTIyNCwyNSArMjIwLDI1IEBAIHN0YXRpYyBp
bmxpbmUgYm9vbCBjaGVja0FjY2VwdENoaWxkR3VhcmFudGVlZE5vZGVUeXBlcyhDb250YWluZXJO
b2RlKiBuZXdQYXJlbnQsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9v
bCBjaGVja0FkZENoaWxkKENvbnRhaW5lck5vZGUqIG5ld1BhcmVudCwgTm9kZSogbmV3Q2hpbGQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQorc3RhdGljIGlubGluZSBib29sIGNoZWNrQWRkQ2hpbGQoQ29u
dGFpbmVyTm9kZSYgbmV3UGFyZW50LCBOb2RlJiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMp
CiB7Ci0gICAgZWMgPSBjaGVja0FjY2VwdENoaWxkKG5ld1BhcmVudCwgbmV3Q2hpbGQsIDApOwor
ICAgIGVjID0gY2hlY2tBY2NlcHRDaGlsZChuZXdQYXJlbnQsIG5ld0NoaWxkLCBudWxscHRyKTsK
ICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwog
fQogCi1zdGF0aWMgaW5saW5lIGJvb2wgY2hlY2tSZXBsYWNlQ2hpbGQoQ29udGFpbmVyTm9kZSog
bmV3UGFyZW50LCBOb2RlKiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUm
IGVjKQorc3RhdGljIGlubGluZSBib29sIGNoZWNrUmVwbGFjZUNoaWxkKENvbnRhaW5lck5vZGUm
IG5ld1BhcmVudCwgTm9kZSYgbmV3Q2hpbGQsIE5vZGUmIG9sZENoaWxkLCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKLSAgICBlYyA9IGNoZWNrQWNjZXB0Q2hpbGQobmV3UGFyZW50LCBuZXdDaGlsZCwg
b2xkQ2hpbGQpOworICAgIGVjID0gY2hlY2tBY2NlcHRDaGlsZChuZXdQYXJlbnQsIG5ld0NoaWxk
LCAmb2xkQ2hpbGQpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgQ29udGFpbmVyTm9kZTo6aW5zZXJ0QmVmb3JlKFBhc3NS
ZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIHJlZkNoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykK
K2Jvb2wgQ29udGFpbmVyTm9kZTo6aW5zZXJ0QmVmb3JlKFJlZjxOb2RlPiYmIG5ld0NoaWxkLCBO
b2RlKiByZWZDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgLy8gQ2hlY2sgdGhhdCB0
aGlzIG5vZGUgaXMgbm90ICJmbG9hdGluZyIuCiAgICAgLy8gSWYgaXQgaXMsIGl0IGNhbiBiZSBk
ZWxldGVkIGFzIGEgc2lkZSBlZmZlY3Qgb2Ygc2VuZGluZyBtdXRhdGlvbiBldmVudHMuCkBAIC0y
NTQsMTAgKzI1MCwxMCBAQCBib29sIENvbnRhaW5lck5vZGU6Omluc2VydEJlZm9yZShQYXNzUmVm
UHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiByZWZDaGlsZCwgRXhjZQogCiAgICAgLy8gaW5zZXJ0
QmVmb3JlKG5vZGUsIDApIGlzIGVxdWl2YWxlbnQgdG8gYXBwZW5kQ2hpbGQobm9kZSkKICAgICBp
ZiAoIXJlZkNoaWxkKQotICAgICAgICByZXR1cm4gYXBwZW5kQ2hpbGQobmV3Q2hpbGQsIGVjKTsK
KyAgICAgICAgcmV0dXJuIGFwcGVuZENoaWxkKFdURjo6bW92ZShuZXdDaGlsZCksIGVjKTsKIAog
ICAgIC8vIE1ha2Ugc3VyZSBhZGRpbmcgdGhlIG5ldyBjaGlsZCBpcyBPSy4KLSAgICBpZiAoIWNo
ZWNrQWRkQ2hpbGQodGhpcywgbmV3Q2hpbGQuZ2V0KCksIGVjKSkKKyAgICBpZiAoIWNoZWNrQWRk
Q2hpbGQoKnRoaXMsIG5ld0NoaWxkLCBlYykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IC8vIE5PVF9GT1VORF9FUlI6IFJhaXNlZCBpZiByZWZDaGlsZCBpcyBub3QgYSBjaGlsZCBvZiB0
aGlzIG5vZGUKQEAgLTI2NiwyMCArMjYyLDIwIEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6aW5zZXJ0
QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIHJlZkNoaWxkLCBFeGNlCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBpZiAocmVmQ2hpbGQtPnByZXZpb3Vz
U2libGluZygpID09IG5ld0NoaWxkIHx8IHJlZkNoaWxkID09IG5ld0NoaWxkKSAvLyBub3RoaW5n
IHRvIGRvCisgICAgaWYgKHJlZkNoaWxkLT5wcmV2aW91c1NpYmxpbmcoKSA9PSBuZXdDaGlsZC5w
dHIoKSB8fCByZWZDaGlsZCA9PSBuZXdDaGlsZC5wdHIoKSkgLy8gbm90aGluZyB0byBkbwogICAg
ICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIFJlZjxOb2RlPiBuZXh0KCpyZWZDaGlsZCk7CiAKICAg
ICBOb2RlVmVjdG9yIHRhcmdldHM7Ci0gICAgY29sbGVjdENoaWxkcmVuQW5kUmVtb3ZlRnJvbU9s
ZFBhcmVudCgqbmV3Q2hpbGQuZ2V0KCksIHRhcmdldHMsIGVjKTsKKyAgICBjb2xsZWN0Q2hpbGRy
ZW5BbmRSZW1vdmVGcm9tT2xkUGFyZW50KG5ld0NoaWxkLCB0YXJnZXRzLCBlYyk7CiAgICAgaWYg
KGVjKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKHRhcmdldHMuaXNFbXB0eSgpKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIC8vIFdlIG5lZWQgdGhpcyBleHRyYSBjaGVjayBi
ZWNhdXNlIGNvbGxlY3RDaGlsZHJlbkFuZFJlbW92ZUZyb21PbGRQYXJlbnQoKSBjYW4gZmlyZSBt
dXRhdGlvbiBldmVudHMuCi0gICAgaWYgKCFjaGVja0FjY2VwdENoaWxkR3VhcmFudGVlZE5vZGVU
eXBlcyh0aGlzLCBuZXdDaGlsZC5nZXQoKSwgZWMpKQorICAgIGlmICghY2hlY2tBY2NlcHRDaGls
ZEd1YXJhbnRlZWROb2RlVHlwZXMoKnRoaXMsIG5ld0NoaWxkLCBlYykpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEluc2VydERPTU5v
ZGUoZG9jdW1lbnQoKSwgKnRoaXMpOwpAQCAtMzkwLDcgKzM4Niw3IEBAIHZvaWQgQ29udGFpbmVy
Tm9kZTo6cGFyc2VySW5zZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUq
IG5leHRDaGlsCiAgICAgbmV3Q2hpbGQtPnNldE5lZWRzU3R5bGVSZWNhbGMoUmVjb25zdHJ1Y3RS
ZW5kZXJUcmVlKTsKIH0KIAotYm9vbCBDb250YWluZXJOb2RlOjpyZXBsYWNlQ2hpbGQoUGFzc1Jl
ZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQor
Ym9vbCBDb250YWluZXJOb2RlOjpyZXBsYWNlQ2hpbGQoUmVmPE5vZGU+JiYgbmV3Q2hpbGQsIE5v
ZGUmIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICAvLyBDaGVjayB0aGF0IHRo
aXMgbm9kZSBpcyBub3QgImZsb2F0aW5nIi4KICAgICAvLyBJZiBpdCBpcywgaXQgY2FuIGJlIGRl
bGV0ZWQgYXMgYSBzaWRlIGVmZmVjdCBvZiBzZW5kaW5nIG11dGF0aW9uIGV2ZW50cy4KQEAgLTQw
MCw0OCArMzk2LDQzIEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6cmVwbGFjZUNoaWxkKFBhc3NSZWZQ
dHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkLCBFeGNlCiAKICAgICBlYyA9IDA7CiAK
LSAgICBpZiAob2xkQ2hpbGQgPT0gbmV3Q2hpbGQpIC8vIG5vdGhpbmcgdG8gZG8KKyAgICBpZiAo
Jm9sZENoaWxkID09IG5ld0NoaWxkLnB0cigpKSAvLyBub3RoaW5nIHRvIGRvCiAgICAgICAgIHJl
dHVybiB0cnVlOwogCi0gICAgaWYgKCFvbGRDaGlsZCkgewotICAgICAgICBlYyA9IE5PVF9GT1VO
RF9FUlI7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KICAgICAvLyBNYWtlIHN1cmUg
cmVwbGFjaW5nIHRoZSBvbGQgY2hpbGQgd2l0aCB0aGUgbmV3IGlzIG9rCi0gICAgaWYgKCFjaGVj
a1JlcGxhY2VDaGlsZCh0aGlzLCBuZXdDaGlsZC5nZXQoKSwgb2xkQ2hpbGQsIGVjKSkKKyAgICBp
ZiAoIWNoZWNrUmVwbGFjZUNoaWxkKCp0aGlzLCBuZXdDaGlsZCwgb2xkQ2hpbGQsIGVjKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gTk9UX0ZPVU5EX0VSUjogUmFpc2VkIGlmIG9s
ZENoaWxkIGlzIG5vdCBhIGNoaWxkIG9mIHRoaXMgbm9kZS4KLSAgICBpZiAob2xkQ2hpbGQtPnBh
cmVudE5vZGUoKSAhPSB0aGlzKSB7CisgICAgaWYgKG9sZENoaWxkLnBhcmVudE5vZGUoKSAhPSB0
aGlzKSB7CiAgICAgICAgIGVjID0gTk9UX0ZPVU5EX0VSUjsKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KIAogICAgIENoaWxkTGlzdE11dGF0aW9uU2NvcGUgbXV0YXRpb24oKnRoaXMpOwog
Ci0gICAgUmVmUHRyPE5vZGU+IG5leHQgPSBvbGRDaGlsZC0+bmV4dFNpYmxpbmcoKTsKKyAgICBS
ZWZQdHI8Tm9kZT4gbmV4dCA9IG9sZENoaWxkLm5leHRTaWJsaW5nKCk7CiAKICAgICAvLyBSZW1v
dmUgdGhlIG5vZGUgd2UncmUgcmVwbGFjaW5nCi0gICAgUmVmPE5vZGU+IHJlbW92ZWRDaGlsZCgq
b2xkQ2hpbGQpOworICAgIFJlZjxOb2RlPiByZW1vdmVkQ2hpbGQob2xkQ2hpbGQpOwogICAgIHJl
bW92ZUNoaWxkKG9sZENoaWxkLCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICBpZiAobmV4dCAmJiAobmV4dC0+cHJldmlvdXNTaWJsaW5nKCkgPT0gbmV3Q2hp
bGQgfHwgbmV4dCA9PSBuZXdDaGlsZCkpIC8vIG5vdGhpbmcgdG8gZG8KKyAgICBpZiAobmV4dCAm
JiAobmV4dC0+cHJldmlvdXNTaWJsaW5nKCkgPT0gbmV3Q2hpbGQucHRyKCkgfHwgbmV4dCA9PSBu
ZXdDaGlsZC5wdHIoKSkpIC8vIG5vdGhpbmcgdG8gZG8KICAgICAgICAgcmV0dXJuIHRydWU7CiAK
ICAgICAvLyBEb2VzIHRoaXMgb25lIG1vcmUgdGltZSBiZWNhdXNlIHJlbW92ZUNoaWxkKCkgZmly
ZXMgYSBNdXRhdGlvbkV2ZW50LgotICAgIGlmICghY2hlY2tSZXBsYWNlQ2hpbGQodGhpcywgbmV3
Q2hpbGQuZ2V0KCksIG9sZENoaWxkLCBlYykpCisgICAgaWYgKCFjaGVja1JlcGxhY2VDaGlsZCgq
dGhpcywgbmV3Q2hpbGQsIG9sZENoaWxkLCBlYykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIE5vZGVWZWN0b3IgdGFyZ2V0czsKLSAgICBjb2xsZWN0Q2hpbGRyZW5BbmRSZW1vdmVGcm9t
T2xkUGFyZW50KCpuZXdDaGlsZC5nZXQoKSwgdGFyZ2V0cywgZWMpOworICAgIGNvbGxlY3RDaGls
ZHJlbkFuZFJlbW92ZUZyb21PbGRQYXJlbnQobmV3Q2hpbGQsIHRhcmdldHMsIGVjKTsKICAgICBp
ZiAoZWMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIERvZXMgdGhpcyB5ZXQgYW5v
dGhlciBjaGVjayBiZWNhdXNlIGNvbGxlY3RDaGlsZHJlbkFuZFJlbW92ZUZyb21PbGRQYXJlbnQo
KSBmaXJlcyBhIE11dGF0aW9uRXZlbnQuCi0gICAgaWYgKCFjaGVja1JlcGxhY2VDaGlsZCh0aGlz
LCBuZXdDaGlsZC5nZXQoKSwgb2xkQ2hpbGQsIGVjKSkKKyAgICBpZiAoIWNoZWNrUmVwbGFjZUNo
aWxkKCp0aGlzLCBuZXdDaGlsZCwgb2xkQ2hpbGQsIGVjKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsSW5zZXJ0RE9NTm9kZShkb2N1
bWVudCgpLCAqdGhpcyk7CkBAIC01MTUsNyArNTA2LDcgQEAgdm9pZCBDb250YWluZXJOb2RlOjpk
aXNjb25uZWN0RGVzY2VuZGFudEZyYW1lcygpCiAgICAgZGlzY29ubmVjdFN1YmZyYW1lc0lmTmVl
ZGVkKCp0aGlzLCBSb290QW5kRGVzY2VuZGFudHMpOwogfQogCi1ib29sIENvbnRhaW5lck5vZGU6
OnJlbW92ZUNoaWxkKE5vZGUqIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKK2Jvb2wgQ29u
dGFpbmVyTm9kZTo6cmVtb3ZlQ2hpbGQoTm9kZSYgb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogewogICAgIC8vIENoZWNrIHRoYXQgdGhpcyBub2RlIGlzIG5vdCAiZmxvYXRpbmciLgogICAg
IC8vIElmIGl0IGlzLCBpdCBjYW4gYmUgZGVsZXRlZCBhcyBhIHNpZGUgZWZmZWN0IG9mIHNlbmRp
bmcgbXV0YXRpb24gZXZlbnRzLgpAQCAtNTMyLDEyICs1MjMsMTIgQEAgYm9vbCBDb250YWluZXJO
b2RlOjpyZW1vdmVDaGlsZChOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAg
fQogCiAgICAgLy8gTk9UX0ZPVU5EX0VSUjogUmFpc2VkIGlmIG9sZENoaWxkIGlzIG5vdCBhIGNo
aWxkIG9mIHRoaXMgbm9kZS4KLSAgICBpZiAoIW9sZENoaWxkIHx8IG9sZENoaWxkLT5wYXJlbnRO
b2RlKCkgIT0gdGhpcykgeworICAgIGlmIChvbGRDaGlsZC5wYXJlbnROb2RlKCkgIT0gdGhpcykg
ewogICAgICAgICBlYyA9IE5PVF9GT1VORF9FUlI7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CiAKLSAgICBSZWY8Tm9kZT4gY2hpbGQoKm9sZENoaWxkKTsKKyAgICBSZWY8Tm9kZT4gY2hp
bGQob2xkQ2hpbGQpOwogCiAgICAgZG9jdW1lbnQoKS5yZW1vdmVGb2N1c2VkTm9kZU9mU3VidHJl
ZShjaGlsZC5wdHIoKSk7CiAKQEAgLTY3MCw3ICs2NjEsNyBAQCB2b2lkIENvbnRhaW5lck5vZGU6
OnJlbW92ZUNoaWxkcmVuKCkKICAgICBkaXNwYXRjaFN1YnRyZWVNb2RpZmllZEV2ZW50KCk7CiB9
CiAKLWJvb2wgQ29udGFpbmVyTm9kZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdD
aGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCitib29sIENvbnRhaW5lck5vZGU6OmFwcGVuZENoaWxk
KFJlZjxOb2RlPiYmIG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBSZWY8Q29u
dGFpbmVyTm9kZT4gcHJvdGVjdCgqdGhpcyk7CiAKQEAgLTY4MSwxNCArNjcyLDE0IEBAIGJvb2wg
Q29udGFpbmVyTm9kZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiAgICAgZWMgPSAwOwogCiAgICAgLy8gTWFrZSBzdXJlIGFkZGluZyB0
aGUgbmV3IGNoaWxkIGlzIG9rCi0gICAgaWYgKCFjaGVja0FkZENoaWxkKHRoaXMsIG5ld0NoaWxk
LmdldCgpLCBlYykpCisgICAgaWYgKCFjaGVja0FkZENoaWxkKCp0aGlzLCBuZXdDaGlsZCwgZWMp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAobmV3Q2hpbGQgPT0gbV9sYXN0Q2hp
bGQpIC8vIG5vdGhpbmcgdG8gZG8KLSAgICAgICAgcmV0dXJuIG5ld0NoaWxkOworICAgIGlmIChu
ZXdDaGlsZC5wdHIoKSA9PSBtX2xhc3RDaGlsZCkgLy8gbm90aGluZyB0byBkbworICAgICAgICBy
ZXR1cm4gdHJ1ZTsKIAogICAgIE5vZGVWZWN0b3IgdGFyZ2V0czsKLSAgICBjb2xsZWN0Q2hpbGRy
ZW5BbmRSZW1vdmVGcm9tT2xkUGFyZW50KCpuZXdDaGlsZC5nZXQoKSwgdGFyZ2V0cywgZWMpOwor
ICAgIGNvbGxlY3RDaGlsZHJlbkFuZFJlbW92ZUZyb21PbGRQYXJlbnQobmV3Q2hpbGQsIHRhcmdl
dHMsIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtNjk2LDcg
KzY4Nyw3IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2Rl
PiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAg
ICAgLy8gV2UgbmVlZCB0aGlzIGV4dHJhIGNoZWNrIGJlY2F1c2UgY29sbGVjdENoaWxkcmVuQW5k
UmVtb3ZlRnJvbU9sZFBhcmVudCgpIGNhbiBmaXJlIG11dGF0aW9uIGV2ZW50cy4KLSAgICBpZiAo
IWNoZWNrQWNjZXB0Q2hpbGRHdWFyYW50ZWVkTm9kZVR5cGVzKHRoaXMsIG5ld0NoaWxkLmdldCgp
LCBlYykpCisgICAgaWYgKCFjaGVja0FjY2VwdENoaWxkR3VhcmFudGVlZE5vZGVUeXBlcygqdGhp
cywgbmV3Q2hpbGQsIGVjKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjp3aWxsSW5zZXJ0RE9NTm9kZShkb2N1bWVudCgpLCAqdGhpcyk7CkBA
IC03NTksMTYgKzc1MCwxNiBAQCB2b2lkIENvbnRhaW5lck5vZGU6OmNoaWxkcmVuQ2hhbmdlZChj
b25zdCBDaGlsZENoYW5nZSYgY2hhbmdlKQogICAgIGludmFsaWRhdGVOb2RlTGlzdEFuZENvbGxl
Y3Rpb25DYWNoZXNJbkFuY2VzdG9ycygpOwogfQogCi12b2lkIENvbnRhaW5lck5vZGU6OmNsb25l
Q2hpbGROb2RlcyhDb250YWluZXJOb2RlKiBjbG9uZSkKK3ZvaWQgQ29udGFpbmVyTm9kZTo6Y2xv
bmVDaGlsZE5vZGVzKENvbnRhaW5lck5vZGUmIGNsb25lKQogewogICAgIEV4Y2VwdGlvbkNvZGUg
ZWMgPSAwOwotICAgIERvY3VtZW50JiB0YXJnZXREb2N1bWVudCA9IGNsb25lLT5kb2N1bWVudCgp
OworICAgIERvY3VtZW50JiB0YXJnZXREb2N1bWVudCA9IGNsb25lLmRvY3VtZW50KCk7CiAgICAg
Zm9yIChOb2RlKiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQgJiYgIWVjOyBjaGlsZCA9IGNo
aWxkLT5uZXh0U2libGluZygpKSB7Ci0gICAgICAgIFJlZlB0cjxOb2RlPiBjbG9uZWRDaGlsZCA9
IGNoaWxkLT5jbG9uZU5vZGVJbnRlcm5hbCh0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlv
bjo6U2VsZldpdGhUZW1wbGF0ZUNvbnRlbnQpOwotICAgICAgICBjbG9uZS0+YXBwZW5kQ2hpbGQo
Y2xvbmVkQ2hpbGQsIGVjKTsKKyAgICAgICAgUmVmPE5vZGU+IGNsb25lZENoaWxkID0gY2hpbGQt
PmNsb25lTm9kZUludGVybmFsKHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uOjpTZWxm
V2l0aFRlbXBsYXRlQ29udGVudCk7CisgICAgICAgIGNsb25lLmFwcGVuZENoaWxkKGNsb25lZENo
aWxkLmNvcHlSZWYoKSwgZWMpOwogCi0gICAgICAgIGlmICghZWMgJiYgaXM8Q29udGFpbmVyTm9k
ZT4oY2hpbGQpKQotICAgICAgICAgICAgZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4oY2hpbGQpLT5j
bG9uZUNoaWxkTm9kZXMoZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4oY2xvbmVkQ2hpbGQuZ2V0KCkp
KTsKKyAgICAgICAgaWYgKCFlYyAmJiBpczxDb250YWluZXJOb2RlPigqY2hpbGQpKQorICAgICAg
ICAgICAgZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4oKmNoaWxkKS5jbG9uZUNoaWxkTm9kZXMoZG93
bmNhc3Q8Q29udGFpbmVyTm9kZT4oY2xvbmVkQ2hpbGQuZ2V0KCkpKTsKICAgICB9CiB9CiAKQEAg
LTk0Nyw3ICs5MzgsNyBAQCB2b2lkIENvbnRhaW5lck5vZGU6OmFwcGVuZChWZWN0b3I8Tm9kZU9y
U3RyaW5nPiYmIG5vZGVPclN0cmluZ1ZlY3RvciwgRXhjZXB0aW9uQwogICAgIGlmIChlYyB8fCAh
bm9kZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXBwZW5kQ2hpbGQobm9kZS5yZWxlYXNlKCks
IGVjKTsKKyAgICBhcHBlbmRDaGlsZChub2RlLnJlbGVhc2VOb25OdWxsKCksIGVjKTsKIH0KIAog
dm9pZCBDb250YWluZXJOb2RlOjpwcmVwZW5kKFZlY3RvcjxOb2RlT3JTdHJpbmc+JiYgbm9kZU9y
U3RyaW5nVmVjdG9yLCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTk1Niw3ICs5NDcsNyBAQCB2b2lk
IENvbnRhaW5lck5vZGU6OnByZXBlbmQoVmVjdG9yPE5vZGVPclN0cmluZz4mJiBub2RlT3JTdHJp
bmdWZWN0b3IsIEV4Y2VwdGlvbgogICAgIGlmIChlYyB8fCAhbm9kZSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgaW5zZXJ0QmVmb3JlKG5vZGUucmVsZWFzZSgpLCBmaXJzdENoaWxkKCksIGVjKTsK
KyAgICBpbnNlcnRCZWZvcmUobm9kZS5yZWxlYXNlTm9uTnVsbCgpLCBmaXJzdENoaWxkKCksIGVj
KTsKIH0KIAogSFRNTENvbGxlY3Rpb24qIENvbnRhaW5lck5vZGU6OmNhY2hlZEhUTUxDb2xsZWN0
aW9uKENvbGxlY3Rpb25UeXBlIHR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Q29udGFpbmVyTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaAppbmRl
eCAwNDUyNDAwNDFmMmI3MTMxZmIyNmE0ZThmMTkxNmI5YTZjYjliMGFlLi5hNmIxMGE3NjVmMGVl
OGJjYTcyYjhmZmYwMzQzM2I3M2IxODdiYTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vQ29udGFpbmVyTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2Rl
LmgKQEAgLTEwMiwxMCArMTAyLDEwIEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB1bnNp
Z25lZCBjb3VudENoaWxkTm9kZXMoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBOb2RlKiB0
cmF2ZXJzZVRvQ2hpbGRBdCh1bnNpZ25lZCkgY29uc3Q7CiAKLSAgICBib29sIGluc2VydEJlZm9y
ZShQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiByZWZDaGlsZCwgRXhjZXB0aW9uQ29k
ZSYgPSBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKLSAgICBib29sIHJlcGxhY2VDaGlsZChQYXNzUmVm
UHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgPSBBU1NF
UlRfTk9fRVhDRVBUSU9OKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIHJlbW92ZUNoaWxkKE5v
ZGUqIGNoaWxkLCBFeGNlcHRpb25Db2RlJiA9IEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgIFdF
QkNPUkVfRVhQT1JUIGJvb2wgYXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwg
RXhjZXB0aW9uQ29kZSYgPSBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBib29sIGluc2VydEJl
Zm9yZShSZWY8Tm9kZT4mJiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hpbGQsIEV4Y2VwdGlvbkNvZGUm
ID0gQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgYm9vbCByZXBsYWNlQ2hpbGQoUmVmPE5vZGU+
JiYgbmV3Q2hpbGQsIE5vZGUmIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiA9IEFTU0VSVF9OT19F
WENFUFRJT04pOworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgcmVtb3ZlQ2hpbGQoTm9kZSYgY2hp
bGQsIEV4Y2VwdGlvbkNvZGUmID0gQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBhcHBlbmRDaGlsZChSZWY8Tm9kZT4mJiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29k
ZSYgPSBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAogICAgIC8vIFRoZXNlIG1ldGhvZHMgYXJlIG9u
bHkgdXNlZCBkdXJpbmcgcGFyc2luZy4KICAgICAvLyBUaGV5IGRvbid0IHNlbmQgRE9NIG11dGF0
aW9uIGV2ZW50cyBvciBoYW5kbGUgcmVwYXJlbnRpbmcuCkBAIC0xMTcsNyArMTE3LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgcmVtb3ZlQ2hpbGRyZW4oKTsKICAgICB2b2lkIHRha2VBbGxDaGlsZHJl
bkZyb20oQ29udGFpbmVyTm9kZSopOwogCi0gICAgdm9pZCBjbG9uZUNoaWxkTm9kZXMoQ29udGFp
bmVyTm9kZSogY2xvbmUpOworICAgIHZvaWQgY2xvbmVDaGlsZE5vZGVzKENvbnRhaW5lck5vZGUm
IGNsb25lKTsKIAogICAgIGVudW0gQ2hpbGRDaGFuZ2VUeXBlIHsgRWxlbWVudEluc2VydGVkLCBF
bGVtZW50UmVtb3ZlZCwgVGV4dEluc2VydGVkLCBUZXh0UmVtb3ZlZCwgVGV4dENoYW5nZWQsIEFs
bENoaWxkcmVuUmVtb3ZlZCwgTm9uQ29udGVudHNDaGlsZENoYW5nZWQgfTsKICAgICBlbnVtIENo
aWxkQ2hhbmdlU291cmNlIHsgQ2hpbGRDaGFuZ2VTb3VyY2VQYXJzZXIsIENoaWxkQ2hhbmdlU291
cmNlQVBJIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAppbmRleCBh
NGEzZjhkNTlhYTJhMTYxZjY3MmY0NGQ2M2ZmODQ4NjRiN2IyMDMzLi42MzNkMjkxM2Y3MTZlYTg0
YjY3ZjZkMjgwOTNlNjhkNDExZTMxOWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RE9NSW1wbGVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1l
bnRhdGlvbi5jcHAKQEAgLTIzMSw5ICsyMzEsOSBAQCBSZWZQdHI8RG9jdW1lbnQ+IERPTUltcGxl
bWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudChjb25zdCBTdHJpbmcmIG5hbWVzcGFjZVVSSSwKICAg
ICB9CiAKICAgICBpZiAoZG9jdHlwZSkKLSAgICAgICAgZG9jLT5hcHBlbmRDaGlsZChkb2N0eXBl
KTsKKyAgICAgICAgZG9jLT5hcHBlbmRDaGlsZCgqZG9jdHlwZSk7CiAgICAgaWYgKGRvY3VtZW50
RWxlbWVudCkKLSAgICAgICAgZG9jLT5hcHBlbmRDaGlsZChkb2N1bWVudEVsZW1lbnQucmVsZWFz
ZSgpKTsKKyAgICAgICAgZG9jLT5hcHBlbmRDaGlsZChkb2N1bWVudEVsZW1lbnQucmVsZWFzZU5v
bk51bGwoKSk7CiAKICAgICByZXR1cm4gZG9jOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5k
ZXggYzA5NDFkMjUxOTE0MTQ1ODIwYjViZGM1MzA1OGQ2OGNkOTNmMzRhYi4uNjAzMTJjYTM1MDEz
NjU0Mjk3NzQ3YzgxNGYxYjM0Zjg3ZDQ3NDU1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBA
IC0xMDA5LDcgKzEwMDksNyBAQCBSZWZQdHI8Tm9kZT4gRG9jdW1lbnQ6OmFkb3B0Tm9kZShQYXNz
UmVmUHRyPE5vZGU+IHNvdXJjZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0KICAgICAgICAgaWYgKHNvdXJjZS0+cGFyZW50Tm9kZSgpKSB7Ci0gICAgICAgICAg
ICBzb3VyY2UtPnBhcmVudE5vZGUoKS0+cmVtb3ZlQ2hpbGQoc291cmNlLmdldCgpLCBlYyk7Cisg
ICAgICAgICAgICBzb3VyY2UtPnBhcmVudE5vZGUoKS0+cmVtb3ZlQ2hpbGQoKnNvdXJjZSwgZWMp
OwogICAgICAgICAgICAgaWYgKGVjKQogICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgICAgICB9CkBAIC0xNTM3LDcgKzE1MzcsNyBAQCB2b2lkIERvY3VtZW50OjpzZXRUaXRsZShj
b25zdCBTdHJpbmcmIHRpdGxlKQogICAgIGVsc2UgaWYgKCFtX3RpdGxlRWxlbWVudCkgewogICAg
ICAgICBpZiAoSFRNTEVsZW1lbnQqIGhlYWRFbGVtZW50ID0gaGVhZCgpKSB7CiAgICAgICAgICAg
ICBtX3RpdGxlRWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQodGl0bGVUYWcsIGZhbHNlKTsKLSAgICAg
ICAgICAgIGhlYWRFbGVtZW50LT5hcHBlbmRDaGlsZChtX3RpdGxlRWxlbWVudCwgQVNTRVJUX05P
X0VYQ0VQVElPTik7CisgICAgICAgICAgICBoZWFkRWxlbWVudC0+YXBwZW5kQ2hpbGQoKm1fdGl0
bGVFbGVtZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICAgICAgfQogICAgIH0KIApAQCAt
MjUwOSwxMSArMjUwOSwxMCBAQCB2b2lkIERvY3VtZW50OjpzZXRCb2R5T3JGcmFtZXNldChQYXNz
UmVmUHRyPEhUTUxFbGVtZW50PiBwcnBOZXdCb2R5LCBFeGNlcHRpb25DbwogICAgICAgICBuZXdC
b2R5ID0gZG93bmNhc3Q8SFRNTEVsZW1lbnQ+KG5vZGUuZ2V0KCkpOwogICAgIH0KIAotICAgIEhU
TUxFbGVtZW50KiBiID0gYm9keU9yRnJhbWVzZXQoKTsKLSAgICBpZiAoIWIpCi0gICAgICAgIGRv
Y3VtZW50RWxlbWVudCgpLT5hcHBlbmRDaGlsZChuZXdCb2R5LnJlbGVhc2UoKSwgZWMpOworICAg
IGlmIChhdXRvKiBib2R5ID0gYm9keU9yRnJhbWVzZXQoKSkKKyAgICAgICAgZG9jdW1lbnRFbGVt
ZW50KCktPnJlcGxhY2VDaGlsZChuZXdCb2R5LnJlbGVhc2VOb25OdWxsKCksICpib2R5LCBlYyk7
CiAgICAgZWxzZQotICAgICAgICBkb2N1bWVudEVsZW1lbnQoKS0+cmVwbGFjZUNoaWxkKG5ld0Jv
ZHkucmVsZWFzZSgpLCBiLCBlYyk7CisgICAgICAgIGRvY3VtZW50RWxlbWVudCgpLT5hcHBlbmRD
aGlsZChuZXdCb2R5LnJlbGVhc2VOb25OdWxsKCksIGVjKTsKIH0KIAogSFRNTEhlYWRFbGVtZW50
KiBEb2N1bWVudDo6aGVhZCgpCkBAIC0zMzE3LDEzICszMzE2LDkgQEAgYm9vbCBEb2N1bWVudDo6
Y2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsK
IH0KIAotYm9vbCBEb2N1bWVudDo6Y2FuUmVwbGFjZUNoaWxkKE5vZGUqIG5ld0NoaWxkLCBOb2Rl
KiBvbGRDaGlsZCkKK2Jvb2wgRG9jdW1lbnQ6OmNhblJlcGxhY2VDaGlsZChOb2RlJiBuZXdDaGls
ZCwgTm9kZSYgb2xkQ2hpbGQpCiB7Ci0gICAgaWYgKCFvbGRDaGlsZCkKLSAgICAgICAgLy8gQ29u
dGFpbmVyTm9kZTo6cmVwbGFjZUNoaWxkIHdpbGwgcmFpc2UgYSBOT1RfRk9VTkRfRVJSLgotICAg
ICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGlmIChvbGRDaGlsZC0+bm9kZVR5cGUoKSA9PSBuZXdD
aGlsZC0+bm9kZVR5cGUoKSkKKyAgICBpZiAob2xkQ2hpbGQubm9kZVR5cGUoKSA9PSBuZXdDaGls
ZC5ub2RlVHlwZSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGludCBudW1Eb2N0eXBl
cyA9IDA7CkBAIC0zMzMyLDcgKzMzMjcsNyBAQCBib29sIERvY3VtZW50OjpjYW5SZXBsYWNlQ2hp
bGQoTm9kZSogbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkKQogICAgIC8vIEZpcnN0LCBjaGVjayBo
b3cgbWFueSBkb2N0eXBlcyBhbmQgZWxlbWVudHMgd2UgaGF2ZSwgbm90IGNvdW50aW5nCiAgICAg
Ly8gdGhlIGNoaWxkIHdlJ3JlIGFib3V0IHRvIHJlbW92ZS4KICAgICBmb3IgKE5vZGUqIGMgPSBm
aXJzdENoaWxkKCk7IGM7IGMgPSBjLT5uZXh0U2libGluZygpKSB7Ci0gICAgICAgIGlmIChjID09
IG9sZENoaWxkKQorICAgICAgICBpZiAoYyA9PSAmb2xkQ2hpbGQpCiAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgCiAgICAgICAgIHN3aXRjaCAoYy0+bm9kZVR5cGUoKSkgewpAQCAtMzM0
OCw4ICszMzQzLDggQEAgYm9vbCBEb2N1bWVudDo6Y2FuUmVwbGFjZUNoaWxkKE5vZGUqIG5ld0No
aWxkLCBOb2RlKiBvbGRDaGlsZCkKICAgICB9CiAgICAgCiAgICAgLy8gVGhlbiwgc2VlIGhvdyBt
YW55IGRvY3R5cGVzIGFuZCBlbGVtZW50cyBtaWdodCBiZSBhZGRlZCBieSB0aGUgbmV3IGNoaWxk
LgotICAgIGlmIChuZXdDaGlsZC0+aXNEb2N1bWVudEZyYWdtZW50KCkpIHsKLSAgICAgICAgZm9y
IChOb2RlKiBjID0gbmV3Q2hpbGQtPmZpcnN0Q2hpbGQoKTsgYzsgYyA9IGMtPm5leHRTaWJsaW5n
KCkpIHsKKyAgICBpZiAobmV3Q2hpbGQuaXNEb2N1bWVudEZyYWdtZW50KCkpIHsKKyAgICAgICAg
Zm9yIChOb2RlKiBjID0gbmV3Q2hpbGQuZmlyc3RDaGlsZCgpOyBjOyBjID0gYy0+bmV4dFNpYmxp
bmcoKSkgewogICAgICAgICAgICAgc3dpdGNoIChjLT5ub2RlVHlwZSgpKSB7CiAgICAgICAgICAg
ICBjYXNlIEFUVFJJQlVURV9OT0RFOgogICAgICAgICAgICAgY2FzZSBDREFUQV9TRUNUSU9OX05P
REU6CkBAIC0zMzcyLDcgKzMzNjcsNyBAQCBib29sIERvY3VtZW50OjpjYW5SZXBsYWNlQ2hpbGQo
Tm9kZSogbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkKQogICAgICAgICAgICAgfQogICAgICAgICB9
CiAgICAgfSBlbHNlIHsKLSAgICAgICAgc3dpdGNoIChuZXdDaGlsZC0+bm9kZVR5cGUoKSkgewor
ICAgICAgICBzd2l0Y2ggKG5ld0NoaWxkLm5vZGVUeXBlKCkpIHsKICAgICAgICAgY2FzZSBBVFRS
SUJVVEVfTk9ERToKICAgICAgICAgY2FzZSBDREFUQV9TRUNUSU9OX05PREU6CiAgICAgICAgIGNh
c2UgRE9DVU1FTlRfRlJBR01FTlRfTk9ERToKQEAgLTM0MDAsNyArMzM5NSw3IEBAIGJvb2wgRG9j
dW1lbnQ6OmNhblJlcGxhY2VDaGlsZChOb2RlKiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQpCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLVJlZlB0cjxOb2RlPiBEb2N1bWVudDo6Y2xvbmVOb2RlSW50
ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uIHR5cGUpCitSZWY8Tm9kZT4gRG9jdW1l
bnQ6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbiB0eXBlKQog
ewogICAgIFJlZjxEb2N1bWVudD4gY2xvbmUgPSBjbG9uZURvY3VtZW50V2l0aG91dENoaWxkcmVu
KCk7CiAgICAgY2xvbmUtPmNsb25lRGF0YUZyb21Eb2N1bWVudCgqdGhpcyk7CkBAIC0zNDA5LDcg
KzM0MDQsNyBAQCBSZWZQdHI8Tm9kZT4gRG9jdW1lbnQ6OmNsb25lTm9kZUludGVybmFsKERvY3Vt
ZW50JiwgQ2xvbmluZ09wZXJhdGlvbiB0eXBlKQogICAgIGNhc2UgQ2xvbmluZ09wZXJhdGlvbjo6
U2VsZldpdGhUZW1wbGF0ZUNvbnRlbnQ6CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2xvbmlu
Z09wZXJhdGlvbjo6RXZlcnl0aGluZzoKLSAgICAgICAgY2xvbmVDaGlsZE5vZGVzKGNsb25lLnB0
cigpKTsKKyAgICAgICAgY2xvbmVDaGlsZE5vZGVzKGNsb25lKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogICAgIHJldHVybiBXVEY6Om1vdmUoY2xvbmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRl
eCA5ZWY0OGM5MzM4MDczYWUwMjljMmVhMzdjOTM3NWQ1Y2ViOTlhNmQ0Li4xMzVjN2U2Mzk1NTBh
ZDJjNzRlOGQzZjczNmRmZDI4MWJiZGFlY2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtNzQ3
LDcgKzc0Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG5vZGVDaGlsZHJlbldpbGxCZVJlbW92ZWQo
Q29udGFpbmVyTm9kZSYpOwogICAgIC8vIG5vZGVXaWxsQmVSZW1vdmVkIGlzIG9ubHkgc2FmZSB3
aGVuIHJlbW92aW5nIG9uZSBub2RlIGF0IGEgdGltZS4KICAgICB2b2lkIG5vZGVXaWxsQmVSZW1v
dmVkKE5vZGUmKTsKLSAgICBib29sIGNhblJlcGxhY2VDaGlsZChOb2RlKiBuZXdDaGlsZCwgTm9k
ZSogb2xkQ2hpbGQpOworICAgIGJvb2wgY2FuUmVwbGFjZUNoaWxkKE5vZGUmIG5ld0NoaWxkLCBO
b2RlJiBvbGRDaGlsZCk7CiAKICAgICB2b2lkIHRleHRJbnNlcnRlZChOb2RlKiwgdW5zaWduZWQg
b2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpOwogICAgIHZvaWQgdGV4dFJlbW92ZWQoTm9kZSosIHVu
c2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKTsKQEAgLTEzMTEsNyArMTMxMSw3IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCBTdHJpbmcgbm9kZU5hbWUoKSBjb25zdCBvdmVycmlkZSBmaW5h
bDsKICAgICB2aXJ0dWFsIE5vZGVUeXBlIG5vZGVUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7
CiAgICAgdmlydHVhbCBib29sIGNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUpIGNvbnN0IG92ZXJy
aWRlIGZpbmFsOwotICAgIHZpcnR1YWwgUmVmUHRyPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERv
Y3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCBS
ZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBv
dmVycmlkZSBmaW5hbDsKICAgICB2b2lkIGNsb25lRGF0YUZyb21Eb2N1bWVudChjb25zdCBEb2N1
bWVudCYpOwogCiAgICAgdmlydHVhbCB2b2lkIHJlZlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBv
dmVycmlkZSBmaW5hbCB7IHJlZigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnRGcmFnbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVu
dC5jcHAKaW5kZXggNGZhYjU4ZTM0ZDQ2NTVlY2Y0ZTM3ZGE1ZGQ5YzNjNTYyMmY0MDc2OC4uZjli
MzhhMGJkMjhlOGUzYzYwOTM0YWZmMWE2MDA1OTI3MDkwM2ZlYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudEZyYWdtZW50LmNwcApAQCAtNjcsMTggKzY3LDE4IEBAIGJvb2wgRG9jdW1lbnRG
cmFnbWVudDo6Y2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdAogICAgIH0KIH0K
IAotUmVmUHRyPE5vZGU+IERvY3VtZW50RnJhZ21lbnQ6OmNsb25lTm9kZUludGVybmFsKERvY3Vt
ZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbiB0eXBlKQorUmVmPE5vZGU+IERv
Y3VtZW50RnJhZ21lbnQ6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVu
dCwgQ2xvbmluZ09wZXJhdGlvbiB0eXBlKQogewotICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50
PiBjbG9uZSA9IGNyZWF0ZSh0YXJnZXREb2N1bWVudCk7CisgICAgUmVmPERvY3VtZW50RnJhZ21l
bnQ+IGNsb25lID0gY3JlYXRlKHRhcmdldERvY3VtZW50KTsKICAgICBzd2l0Y2ggKHR5cGUpIHsK
ICAgICBjYXNlIENsb25pbmdPcGVyYXRpb246Ok9ubHlTZWxmOgogICAgIGNhc2UgQ2xvbmluZ09w
ZXJhdGlvbjo6U2VsZldpdGhUZW1wbGF0ZUNvbnRlbnQ6CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgQ2xvbmluZ09wZXJhdGlvbjo6RXZlcnl0aGluZzoKLSAgICAgICAgY2xvbmVDaGlsZE5vZGVz
KGNsb25lLmdldCgpKTsKKyAgICAgICAgY2xvbmVDaGlsZE5vZGVzKGNsb25lKTsKICAgICAgICAg
YnJlYWs7CiAgICAgfQotICAgIHJldHVybiBjbG9uZTsKKyAgICByZXR1cm4gV1RGOjptb3ZlKGNs
b25lKTsKIH0KIAogdm9pZCBEb2N1bWVudEZyYWdtZW50OjpwYXJzZUhUTUwoY29uc3QgU3RyaW5n
JiBzb3VyY2UsIEVsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBQYXJzZXJDb250ZW50UG9saWN5IHBh
cnNlckNvbnRlbnRQb2xpY3kpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnRGcmFnbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuaAppbmRl
eCBkMDdlMDM0YzAwN2U2NjI5NjI1MWJkMGMwYjE2MDZkNzA5YTA1ZjY1Li42ZWIxZWQ2MWM0NjIw
MTNmZDA1NzRkNGFmZTNlY2M1ZTI0Yzg0NWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnRGcmFnbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZy
YWdtZW50LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJvdGVjdGVkOgogCiBwcml2YXRlOgogICAgIHZp
cnR1YWwgTm9kZVR5cGUgbm9kZVR5cGUoKSBjb25zdCBvdmVycmlkZSBmaW5hbDsKLSAgICB2aXJ0
dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVy
YXRpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNsb25lTm9kZUludGVybmFs
KERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29s
IGNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUpIGNvbnN0IG92ZXJyaWRlOwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnRUeXBlLmNwcAppbmRleCA2N2UzZDUzODQzZjgyYTBiYzU5YjlkMGVmZmNh
ZTI3YWYzMGI5NjM0Li5jMTlkMDE4MmFmYWZkYTVkOGMyMGVjZmQ3ZDM5ZDE1YmEwMTg3ZWJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRUeXBlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnRUeXBlLmNwcApAQCAtNTEsNyArNTEsNyBAQCBOb2RlOjpO
b2RlVHlwZSBEb2N1bWVudFR5cGU6Om5vZGVUeXBlKCkgY29uc3QKICAgICByZXR1cm4gRE9DVU1F
TlRfVFlQRV9OT0RFOwogfQogCi1SZWZQdHI8Tm9kZT4gRG9jdW1lbnRUeXBlOjpjbG9uZU5vZGVJ
bnRlcm5hbChEb2N1bWVudCYgZG9jdW1lbnRUYXJnZXQsIENsb25pbmdPcGVyYXRpb24pCitSZWY8
Tm9kZT4gRG9jdW1lbnRUeXBlOjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgZG9jdW1lbnRU
YXJnZXQsIENsb25pbmdPcGVyYXRpb24pCiB7CiAgICAgcmV0dXJuIGNyZWF0ZShkb2N1bWVudFRh
cmdldCwgbV9uYW1lLCBtX3B1YmxpY0lkLCBtX3N5c3RlbUlkKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudFR5cGUuaAppbmRleCBjN2ExZDliNTI2ZjZlZWVhMTFjYTNhNzI3NWViMzFmNWE2ZTEzMmE1
Li5jNzljMGNlYTg2OWQyMDU5YmJkYmI4MjE1OWM4ZmYxMDc4ODM4ZWQ2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50VHlwZS5oCkBAIC01Miw3ICs1Miw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBV
UkwgYmFzZVVSSSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1l
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBOb2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0
IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVmUHRyPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERv
Y3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8Tm9k
ZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlk
ZTsKIAogICAgIFN0cmluZyBtX25hbWU7CiAgICAgU3RyaW5nIG1fcHVibGljSWQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKaW5kZXggNjc1MDAwYTU0YTcwODI5YzBkMTExMmQ5OGJmODliY2FjZGQ3YzM5
Yy4uM2E4OTA2MTdmYTNhMDdjN2ExOWNhN2EzNDI5N2MxNzE5Mjg0Yjk5YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcApAQCAtMzEyLDM4ICszMTIsMzcgQEAgdm9pZCBFbGVtZW50OjpkaXNwYXRjaFNp
bXVsYXRlZENsaWNrKEV2ZW50KiB1bmRlcmx5aW5nRXZlbnQsIFNpbXVsYXRlZENsaWNrTW91c2UK
ICAgICBFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2sodGhpcywgdW5kZXJs
eWluZ0V2ZW50LCBldmVudE9wdGlvbnMsIHZpc3VhbE9wdGlvbnMpOwogfQogCi1SZWZQdHI8Tm9k
ZT4gRWxlbWVudDo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBD
bG9uaW5nT3BlcmF0aW9uIHR5cGUpCitSZWY8Tm9kZT4gRWxlbWVudDo6Y2xvbmVOb2RlSW50ZXJu
YWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uIHR5cGUpCiB7CiAg
ICAgc3dpdGNoICh0eXBlKSB7CiAgICAgY2FzZSBDbG9uaW5nT3BlcmF0aW9uOjpPbmx5U2VsZjoK
ICAgICBjYXNlIENsb25pbmdPcGVyYXRpb246OlNlbGZXaXRoVGVtcGxhdGVDb250ZW50OgogICAg
ICAgICByZXR1cm4gY2xvbmVFbGVtZW50V2l0aG91dENoaWxkcmVuKHRhcmdldERvY3VtZW50KTsK
ICAgICBjYXNlIENsb25pbmdPcGVyYXRpb246OkV2ZXJ5dGhpbmc6Ci0gICAgICAgIHJldHVybiBj
bG9uZUVsZW1lbnRXaXRoQ2hpbGRyZW4odGFyZ2V0RG9jdW1lbnQpOworICAgICAgICBicmVhazsK
ICAgICB9Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgcmV0dXJuIGNsb25lRWxlbWVudFdpdGhDaGlsZHJlbih0YXJnZXREb2N1bWVudCk7CiB9CiAK
LVJlZlB0cjxFbGVtZW50PiBFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRoQ2hpbGRyZW4oRG9jdW1l
bnQmIHRhcmdldERvY3VtZW50KQorUmVmPEVsZW1lbnQ+IEVsZW1lbnQ6OmNsb25lRWxlbWVudFdp
dGhDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQpCiB7Ci0gICAgUmVmUHRyPEVsZW1l
bnQ+IGNsb25lID0gY2xvbmVFbGVtZW50V2l0aG91dENoaWxkcmVuKHRhcmdldERvY3VtZW50KTsK
LSAgICBjbG9uZUNoaWxkTm9kZXMoY2xvbmUuZ2V0KCkpOwotICAgIHJldHVybiBjbG9uZS5yZWxl
YXNlKCk7CisgICAgUmVmPEVsZW1lbnQ+IGNsb25lID0gY2xvbmVFbGVtZW50V2l0aG91dENoaWxk
cmVuKHRhcmdldERvY3VtZW50KTsKKyAgICBjbG9uZUNoaWxkTm9kZXMoY2xvbmUpOworICAgIHJl
dHVybiBjbG9uZTsKIH0KIAotUmVmUHRyPEVsZW1lbnQ+IEVsZW1lbnQ6OmNsb25lRWxlbWVudFdp
dGhvdXRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQpCitSZWY8RWxlbWVudD4gRWxl
bWVudDo6Y2xvbmVFbGVtZW50V2l0aG91dENoaWxkcmVuKERvY3VtZW50JiB0YXJnZXREb2N1bWVu
dCkKIHsKLSAgICBSZWZQdHI8RWxlbWVudD4gY2xvbmUgPSBjbG9uZUVsZW1lbnRXaXRob3V0QXR0
cmlidXRlc0FuZENoaWxkcmVuKHRhcmdldERvY3VtZW50KTsKKyAgICBSZWY8RWxlbWVudD4gY2xv
bmUgPSBjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKHRhcmdldERvY3Vt
ZW50KTsKICAgICAvLyBUaGlzIHdpbGwgY2F0Y2ggSFRNTCBlbGVtZW50cyBpbiB0aGUgd3Jvbmcg
bmFtZXNwYWNlIHRoYXQgYXJlIG5vdCBjb3JyZWN0bHkgY29waWVkLgogICAgIC8vIFRoaXMgaXMg
YSBzYW5pdHkgY2hlY2sgYXMgSFRNTCBvdmVybG9hZHMgc29tZSBvZiB0aGUgRE9NIG1ldGhvZHMu
CiAgICAgQVNTRVJUKGlzSFRNTEVsZW1lbnQoKSA9PSBjbG9uZS0+aXNIVE1MRWxlbWVudCgpKTsK
IAogICAgIGNsb25lLT5jbG9uZURhdGFGcm9tRWxlbWVudCgqdGhpcyk7Ci0gICAgcmV0dXJuIGNs
b25lLnJlbGVhc2UoKTsKKyAgICByZXR1cm4gY2xvbmU7CiB9CiAKLVJlZlB0cjxFbGVtZW50PiBF
bGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50
JiB0YXJnZXREb2N1bWVudCkKK1JlZjxFbGVtZW50PiBFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRo
b3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCkKIHsKICAg
ICByZXR1cm4gdGFyZ2V0RG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWdRTmFtZSgpLCBmYWxzZSk7
CiB9CkBAIC0yMzE5LDcgKzIzMTgsNyBAQCB2b2lkIEVsZW1lbnQ6OnNldE91dGVySFRNTChjb25z
dCBTdHJpbmcmIGh0bWwsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIGlmIChlYykKICAgICAgICAg
cmV0dXJuOwogICAgIAotICAgIHBhcmVudC0+cmVwbGFjZUNoaWxkKGZyYWdtZW50LnJlbGVhc2Uo
KSwgdGhpcywgZWMpOworICAgIHBhcmVudC0+cmVwbGFjZUNoaWxkKGZyYWdtZW50LnJlbGVhc2VO
b25OdWxsKCksICp0aGlzLCBlYyk7CiAgICAgUmVmUHRyPE5vZGU+IG5vZGUgPSBuZXh0ID8gbmV4
dC0+cHJldmlvdXNTaWJsaW5nKCkgOiBudWxscHRyOwogICAgIGlmICghZWMgJiYgaXM8VGV4dD4o
bm9kZS5nZXQoKSkpCiAgICAgICAgIG1lcmdlV2l0aE5leHRUZXh0Tm9kZShkb3duY2FzdDxUZXh0
Pigqbm9kZSksIGVjKTsKQEAgLTIzMzgsNyArMjMzNyw3IEBAIHZvaWQgRWxlbWVudDo6c2V0SW5u
ZXJIVE1MKGNvbnN0IFN0cmluZyYgaHRtbCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgICAg
ICBjb250YWluZXIgPSBkb3duY2FzdDxIVE1MVGVtcGxhdGVFbGVtZW50PigqdGhpcykuY29udGVu
dCgpOwogI2VuZGlmCiAKLSAgICAgICAgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KCpjb250
YWluZXIsIGZyYWdtZW50LnJlbGVhc2UoKSwgZWMpOworICAgICAgICByZXBsYWNlQ2hpbGRyZW5X
aXRoRnJhZ21lbnQoKmNvbnRhaW5lciwgZnJhZ21lbnQucmVsZWFzZU5vbk51bGwoKSwgZWMpOwog
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggMWU2MDcwM2NiNmIyZmQ5MzYwNzFmODVi
OWI5ZGE5ZDdhYTQwY2M0Yi4uMDQ4MTBlMWNmODQ5NWVkMjRmZDg5NDUwNTNmYWZiY2Q0MzIyZDEx
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC0yMDEsOCArMjAxLDggQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCBTdHJpbmcgbm9kZU5hbWUoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIFJlZlB0cjxF
bGVtZW50PiBjbG9uZUVsZW1lbnRXaXRoQ2hpbGRyZW4oRG9jdW1lbnQmKTsKLSAgICBSZWZQdHI8
RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dENoaWxkcmVuKERvY3VtZW50Jik7CisgICAgUmVm
PEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhDaGlsZHJlbihEb2N1bWVudCYpOworICAgIFJlZjxF
bGVtZW50PiBjbG9uZUVsZW1lbnRXaXRob3V0Q2hpbGRyZW4oRG9jdW1lbnQmKTsKIAogICAgIHZv
aWQgbm9ybWFsaXplQXR0cmlidXRlcygpOwogICAgIFN0cmluZyBub2RlTmFtZVByZXNlcnZpbmdD
YXNlKCkgY29uc3Q7CkBAIC01NjMsOCArNTYzLDggQEAgcHJpdmF0ZToKIAogICAgIC8vIGNsb25l
Tm9kZSBpcyBwcml2YXRlIHNvIHRoYXQgbm9uLXZpcnR1YWwgY2xvbmVFbGVtZW50V2l0aENoaWxk
cmVuIGFuZCBjbG9uZUVsZW1lbnRXaXRob3V0Q2hpbGRyZW4KICAgICAvLyBhcmUgdXNlZCBpbnN0
ZWFkLgotICAgIHZpcnR1YWwgUmVmUHRyPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50
JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZWZQdHI8RWxlbWVu
dD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYpOwor
ICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmlu
Z09wZXJhdGlvbikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8RWxlbWVudD4gY2xvbmVFbGVt
ZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYpOwogCiAgICAgdm9pZCBh
ZGRTaGFkb3dSb290KFJlZjxTaGFkb3dSb290PiYmKTsKICAgICB2b2lkIHJlbW92ZVNoYWRvd1Jv
b3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5jcHAKaW5kZXggYTJmZjYzYjAx
MGU2ZTI4ZTBmYzRlYWFlODVhNzRhMTNmZTlkNmM3Zi4uN2U5MWE0NjJkYTgyMDlkOTIyYzQ1ZGM4
NGM0MWEwODU1YWQ2YmUxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJl
ZmVyZW5jZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5jcHAK
QEAgLTQ2LDcgKzQ2LDcgQEAgTm9kZTo6Tm9kZVR5cGUgRW50aXR5UmVmZXJlbmNlOjpub2RlVHlw
ZSgpIGNvbnN0CiAgICAgcmV0dXJuIEVOVElUWV9SRUZFUkVOQ0VfTk9ERTsKIH0KIAotUmVmUHRy
PE5vZGU+IEVudGl0eVJlZmVyZW5jZTo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdl
dERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uKQorUmVmPE5vZGU+IEVudGl0eVJlZmVyZW5jZTo6
Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0
aW9uKQogewogICAgIHJldHVybiBjcmVhdGUodGFyZ2V0RG9jdW1lbnQsIG1fZW50aXR5TmFtZSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmgKaW5kZXggMDNmNDNjZGY5NWVhNjhm
MDA0ZDlmMTEzYmExNjhmMGY3YmZhZjM5Ni4uODZkZmViMzk4MjViMzQ1MGU3NTM1OTI1MDY4NTEx
MGIzYWYwY2E4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5j
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuaApAQCAtMzUsNyAr
MzUsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBTdHJpbmcgbm9kZU5hbWUoKSBjb25zdCBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIE5vZGVUeXBlIG5vZGVUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7
Ci0gICAgdmlydHVhbCBSZWZQdHI8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBD
bG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxOb2RlPiBjbG9uZU5v
ZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOwogCiAgICAg
U3RyaW5nIG1fZW50aXR5TmFtZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggZmRjN2ZiNTUwZGEx
NWYzYzU5ZTU5NmQ1NjEzZjczMjUyYzk1MThiYS4uMjhmMjExNDVlMTUyZWM0OTk1NTIxMWUzYjJm
ZTg0ZDhjZmJlNDgzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtNDI5LDM4ICs0MjksNTQgQEAgRWxl
bWVudCogTm9kZTo6bmV4dEVsZW1lbnRTaWJsaW5nKCkgY29uc3QKIAogYm9vbCBOb2RlOjppbnNl
cnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hpbGQsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogeworICAgIGlmICghbmV3Q2hpbGQpIHsKKyAgICAgICAgZWMgPSBUeXBl
RXJyb3I7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAgICAgaWYgKCFpczxDb250YWlu
ZXJOb2RlPigqdGhpcykpIHsKICAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIGRvd25jYXN0PENvbnRhaW5l
ck5vZGU+KCp0aGlzKS5pbnNlcnRCZWZvcmUobmV3Q2hpbGQsIHJlZkNoaWxkLCBlYyk7CisgICAg
cmV0dXJuIGRvd25jYXN0PENvbnRhaW5lck5vZGU+KCp0aGlzKS5pbnNlcnRCZWZvcmUoKm5ld0No
aWxkLCByZWZDaGlsZCwgZWMpOwogfQogCiBib29sIE5vZGU6OnJlcGxhY2VDaGlsZChQYXNzUmVm
UHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
CisgICAgaWYgKCFuZXdDaGlsZCB8fCAhb2xkQ2hpbGQpIHsKKyAgICAgICAgZWMgPSBUeXBlRXJy
b3I7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAgICAgaWYgKCFpczxDb250YWluZXJO
b2RlPigqdGhpcykpIHsKICAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIGRvd25jYXN0PENvbnRhaW5lck5v
ZGU+KCp0aGlzKS5yZXBsYWNlQ2hpbGQobmV3Q2hpbGQsIG9sZENoaWxkLCBlYyk7CisgICAgcmV0
dXJuIGRvd25jYXN0PENvbnRhaW5lck5vZGU+KCp0aGlzKS5yZXBsYWNlQ2hpbGQoKm5ld0NoaWxk
LCAqb2xkQ2hpbGQsIGVjKTsKIH0KIAogYm9vbCBOb2RlOjpyZW1vdmVDaGlsZChOb2RlKiBvbGRD
aGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CisgICAgaWYgKCFvbGRDaGlsZCkgeworICAgICAg
ICBlYyA9IFR5cGVFcnJvcjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KICAgICBpZiAo
IWlzPENvbnRhaW5lck5vZGU+KCp0aGlzKSkgewogICAgICAgICBlYyA9IE5PVF9GT1VORF9FUlI7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIGRvd25jYXN0PENvbnRh
aW5lck5vZGU+KCp0aGlzKS5yZW1vdmVDaGlsZChvbGRDaGlsZCwgZWMpOworICAgIHJldHVybiBk
b3duY2FzdDxDb250YWluZXJOb2RlPigqdGhpcykucmVtb3ZlQ2hpbGQoKm9sZENoaWxkLCBlYyk7
CiB9CiAKIGJvb2wgTm9kZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7CisgICAgaWYgKCFuZXdDaGlsZCkgeworICAgICAgICBlYyA9
IFR5cGVFcnJvcjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KICAgICBpZiAoIWlzPENv
bnRhaW5lck5vZGU+KCp0aGlzKSkgewogICAgICAgICBlYyA9IEhJRVJBUkNIWV9SRVFVRVNUX0VS
UjsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICByZXR1cm4gZG93bmNhc3Q8Q29u
dGFpbmVyTm9kZT4oKnRoaXMpLmFwcGVuZENoaWxkKG5ld0NoaWxkLCBlYyk7CisgICAgcmV0dXJu
IGRvd25jYXN0PENvbnRhaW5lck5vZGU+KCp0aGlzKS5hcHBlbmRDaGlsZCgqbmV3Q2hpbGQsIGVj
KTsKIH0KIAogc3RhdGljIEhhc2hTZXQ8UmVmUHRyPE5vZGU+PiBub2RlU2V0UHJlVHJhbnNmb3Jt
ZWRGcm9tTm9kZU9yU3RyaW5nVmVjdG9yKGNvbnN0IFZlY3RvcjxOb2RlT3JTdHJpbmc+JiBub2Rl
T3JTdHJpbmdWZWN0b3IpCkBAIC01MTUsNyArNTMxLDcgQEAgdm9pZCBOb2RlOjpiZWZvcmUoVmVj
dG9yPE5vZGVPclN0cmluZz4mJiBub2RlT3JTdHJpbmdWZWN0b3IsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogICAgIGVsc2UKICAgICAgICAgdmlhYmxlUHJldmlvdXNTaWJsaW5nID0gcGFyZW50LT5maXJz
dENoaWxkKCk7CiAKLSAgICBwYXJlbnQtPmluc2VydEJlZm9yZShub2RlLnJlbGVhc2UoKSwgdmlh
YmxlUHJldmlvdXNTaWJsaW5nLmdldCgpLCBlYyk7CisgICAgcGFyZW50LT5pbnNlcnRCZWZvcmUo
bm9kZS5yZWxlYXNlTm9uTnVsbCgpLCB2aWFibGVQcmV2aW91c1NpYmxpbmcuZ2V0KCksIGVjKTsK
IH0KIAogdm9pZCBOb2RlOjphZnRlcihWZWN0b3I8Tm9kZU9yU3RyaW5nPiYmIG5vZGVPclN0cmlu
Z1ZlY3RvciwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC01MzEsNyArNTQ3LDcgQEAgdm9pZCBOb2Rl
OjphZnRlcihWZWN0b3I8Tm9kZU9yU3RyaW5nPiYmIG5vZGVPclN0cmluZ1ZlY3RvciwgRXhjZXB0
aW9uQ29kZSYgZWMpCiAgICAgaWYgKGVjIHx8ICFub2RlKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBwYXJlbnQtPmluc2VydEJlZm9yZShub2RlLnJlbGVhc2UoKSwgdmlhYmxlTmV4dFNpYmxpbmcu
Z2V0KCksIGVjKTsKKyAgICBwYXJlbnQtPmluc2VydEJlZm9yZShub2RlLnJlbGVhc2VOb25OdWxs
KCksIHZpYWJsZU5leHRTaWJsaW5nLmdldCgpLCBlYyk7CiB9CiAKIHZvaWQgTm9kZTo6cmVwbGFj
ZVdpdGgoVmVjdG9yPE5vZGVPclN0cmluZz4mJiBub2RlT3JTdHJpbmdWZWN0b3IsIEV4Y2VwdGlv
bkNvZGUmIGVjKQpAQCAtNTQ4LDE1ICs1NjQsMTUgQEAgdm9pZCBOb2RlOjpyZXBsYWNlV2l0aChW
ZWN0b3I8Tm9kZU9yU3RyaW5nPiYmIG5vZGVPclN0cmluZ1ZlY3RvciwgRXhjZXB0aW9uQ29kZSYK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKHBhcmVudE5vZGUoKSA9PSBwYXJlbnQpCi0gICAg
ICAgIHBhcmVudC0+cmVwbGFjZUNoaWxkKG5vZGUucmVsZWFzZSgpLCB0aGlzLCBlYyk7CisgICAg
ICAgIHBhcmVudC0+cmVwbGFjZUNoaWxkKG5vZGUucmVsZWFzZU5vbk51bGwoKSwgKnRoaXMsIGVj
KTsKICAgICBlbHNlCi0gICAgICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG5vZGUucmVsZWFzZSgp
LCB2aWFibGVOZXh0U2libGluZy5nZXQoKSwgZWMpOworICAgICAgICBwYXJlbnQtPmluc2VydEJl
Zm9yZShub2RlLnJlbGVhc2VOb25OdWxsKCksIHZpYWJsZU5leHRTaWJsaW5nLmdldCgpLCBlYyk7
CiB9CiAKIHZvaWQgTm9kZTo6cmVtb3ZlKEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmIChD
b250YWluZXJOb2RlKiBwYXJlbnQgPSBwYXJlbnROb2RlKCkpCi0gICAgICAgIHBhcmVudC0+cmVt
b3ZlQ2hpbGQodGhpcywgZWMpOworICAgICAgICBwYXJlbnQtPnJlbW92ZUNoaWxkKCp0aGlzLCBl
Yyk7CiB9CiAKIHZvaWQgTm9kZTo6bm9ybWFsaXplKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IDkyOWVjZTQy
YzhlYjdjMmI1YTQzOGU1OWY1ZTE3NzZhYjE4OWQwNjUuLmE1MmYwZjQzZjE1MTA2MWU4MjZkNWE1
ODk1NDNmOWExNTk5M2Q4YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtMjAxLDggKzIwMSw4IEBAIHB1Ymxp
YzoKICAgICAgICAgU2VsZldpdGhUZW1wbGF0ZUNvbnRlbnQsCiAgICAgICAgIEV2ZXJ5dGhpbmcs
CiAgICAgfTsKLSAgICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1
bWVudCYsIENsb25pbmdPcGVyYXRpb24pID0gMDsKLSAgICBSZWZQdHI8Tm9kZT4gY2xvbmVOb2Rl
KGJvb2wgZGVlcCkgeyByZXR1cm4gY2xvbmVOb2RlSW50ZXJuYWwoZG9jdW1lbnQoKSwgZGVlcCA/
IENsb25pbmdPcGVyYXRpb246OkV2ZXJ5dGhpbmcgOiBDbG9uaW5nT3BlcmF0aW9uOjpPbmx5U2Vs
Zik7IH0KKyAgICB2aXJ0dWFsIFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYs
IENsb25pbmdPcGVyYXRpb24pID0gMDsKKyAgICBSZWY8Tm9kZT4gY2xvbmVOb2RlKGJvb2wgZGVl
cCkgeyByZXR1cm4gY2xvbmVOb2RlSW50ZXJuYWwoZG9jdW1lbnQoKSwgZGVlcCA/IENsb25pbmdP
cGVyYXRpb246OkV2ZXJ5dGhpbmcgOiBDbG9uaW5nT3BlcmF0aW9uOjpPbmx5U2VsZik7IH0KIAog
ICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWUoKSBjb25zdDsKICAgICB2
aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlVVJJKCkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCmluZGV4IGIzNDNjYTNhMDFh
ZThlZWZkYjU5N2U1ZDRlMjJlMjdiOTkzZmVmOTAuLjMwMDA5YjdiMGRmY2VhNTY5ZTJjY2VhMTgz
MTVjYjI3NTEzMWMwNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24uY3BwCkBAIC03OSw3ICs3OSw3IEBAIE5vZGU6Ok5vZGVUeXBlIFByb2Nlc3NpbmdJbnN0
cnVjdGlvbjo6bm9kZVR5cGUoKSBjb25zdAogICAgIHJldHVybiBQUk9DRVNTSU5HX0lOU1RSVUNU
SU9OX05PREU7CiB9CiAKLVJlZlB0cjxOb2RlPiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb246OmNsb25l
Tm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikK
K1JlZjxOb2RlPiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb246OmNsb25lTm9kZUludGVybmFsKERvY3Vt
ZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikKIHsKICAgICAvLyBGSVhNRTog
SXMgaXQgYSBwcm9ibGVtIHRoYXQgdGhpcyBkb2VzIG5vdCBjb3B5IG1fbG9jYWxIcmVmPwogICAg
IC8vIFdoYXQgYWJvdXQgb3RoZXIgZGF0YSBtZW1iZXJzPwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1By
b2Nlc3NpbmdJbnN0cnVjdGlvbi5oCmluZGV4IDIxZmQ5ZTk3Y2QyZjc1YzhmZDc1ODAwZTAyMmFk
YTI5NTM5NzZmOGUuLmVmYTkwNWI2NjYzZjNhMjkzYzk3NzEwNTM0ZmQ2ZmRhOTg0MmU5N2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgKQEAgLTU4LDcgKzU4
LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1lKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCBOb2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwot
ICAgIHZpcnR1YWwgUmVmUHRyPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xv
bmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2Rl
SW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKIAogICAgIHZp
cnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFpbmVy
Tm9kZSYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbShDb250YWluZXJO
b2RlJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcAppbmRleCA0ZDIyN2RhYWY0ZTQ0ODgxODg0
MjcxYzFiZGU5ZjE4ODNmNWFjNGE0Li4yNjUwOGNmMDQ3MmQ0ZjBlZGVmYTVkMzU1N2NlOTIzYzc4
YjFiOTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKQEAgLTY2NSw3ICs2NjUsNyBAQCBSZWZQdHI8RG9j
dW1lbnRGcmFnbWVudD4gUmFuZ2U6OnByb2Nlc3NDb250ZW50cyhBY3Rpb25UeXBlIGFjdGlvbiwg
RXhjZXB0aW9uQ29kZQogICAgIC8vIChvciBqdXN0IGRlbGV0ZSB0aGUgc3R1ZmYgaW4gYmV0d2Vl
bikKIAogICAgIGlmICgoYWN0aW9uID09IEV4dHJhY3QgfHwgYWN0aW9uID09IENsb25lKSAmJiBs
ZWZ0Q29udGVudHMpCi0gICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChsZWZ0Q29udGVudHMs
IGVjKTsKKyAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKCpsZWZ0Q29udGVudHMsIGVjKTsK
IAogICAgIGlmIChwcm9jZXNzU3RhcnQpIHsKICAgICAgICAgTm9kZVZlY3RvciBub2RlczsKQEAg
LTY3NSw3ICs2NzUsNyBAQCBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gUmFuZ2U6OnByb2Nlc3ND
b250ZW50cyhBY3Rpb25UeXBlIGFjdGlvbiwgRXhjZXB0aW9uQ29kZQogICAgIH0KIAogICAgIGlm
ICgoYWN0aW9uID09IEV4dHJhY3QgfHwgYWN0aW9uID09IENsb25lKSAmJiByaWdodENvbnRlbnRz
KQotICAgICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQocmlnaHRDb250ZW50cywgZWMpOworICAg
ICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoKnJpZ2h0Q29udGVudHMsIGVjKTsKIAogICAgIHJl
dHVybiBmcmFnbWVudDsKIH0KQEAgLTcwMiw3ICs3MDIsNyBAQCBSZWZQdHI8Tm9kZT4gUmFuZ2U6
OnByb2Nlc3NDb250ZW50c0JldHdlZW5PZmZzZXRzKEFjdGlvblR5cGUgYWN0aW9uLCBQYXNzUmVm
UHRyPAogICAgICAgICBlbmRPZmZzZXQgPSBzdGQ6Om1pbihlbmRPZmZzZXQsIHN0YXRpY19jYXN0
PENoYXJhY3RlckRhdGEqPihjb250YWluZXIpLT5sZW5ndGgoKSk7CiAgICAgICAgIHN0YXJ0T2Zm
c2V0ID0gc3RkOjptaW4oc3RhcnRPZmZzZXQsIGVuZE9mZnNldCk7CiAgICAgICAgIGlmIChhY3Rp
b24gPT0gRXh0cmFjdCB8fCBhY3Rpb24gPT0gQ2xvbmUpIHsKLSAgICAgICAgICAgIFJlZlB0cjxD
aGFyYWN0ZXJEYXRhPiBjID0gc3RhdGljX3BvaW50ZXJfY2FzdDxDaGFyYWN0ZXJEYXRhPihjb250
YWluZXItPmNsb25lTm9kZSh0cnVlKSk7CisgICAgICAgICAgICBSZWZQdHI8Q2hhcmFjdGVyRGF0
YT4gYyA9IHN0YXRpY19jYXN0PENoYXJhY3RlckRhdGEqPihjb250YWluZXItPmNsb25lTm9kZSh0
cnVlKS5wdHIoKSk7CiAgICAgICAgICAgICBkZWxldGVDaGFyYWN0ZXJEYXRhKGMsIHN0YXJ0T2Zm
c2V0LCBlbmRPZmZzZXQsIGVjKTsKICAgICAgICAgICAgIGlmIChmcmFnbWVudCkgewogICAgICAg
ICAgICAgICAgIHJlc3VsdCA9IGZyYWdtZW50OwpAQCAtNzE3LDcgKzcxNyw3IEBAIFJlZlB0cjxO
b2RlPiBSYW5nZTo6cHJvY2Vzc0NvbnRlbnRzQmV0d2Vlbk9mZnNldHMoQWN0aW9uVHlwZSBhY3Rp
b24sIFBhc3NSZWZQdHI8CiAgICAgICAgIGVuZE9mZnNldCA9IHN0ZDo6bWluKGVuZE9mZnNldCwg
c3RhdGljX2Nhc3Q8UHJvY2Vzc2luZ0luc3RydWN0aW9uKj4oY29udGFpbmVyKS0+ZGF0YSgpLmxl
bmd0aCgpKTsKICAgICAgICAgc3RhcnRPZmZzZXQgPSBzdGQ6Om1pbihzdGFydE9mZnNldCwgZW5k
T2Zmc2V0KTsKICAgICAgICAgaWYgKGFjdGlvbiA9PSBFeHRyYWN0IHx8IGFjdGlvbiA9PSBDbG9u
ZSkgewotICAgICAgICAgICAgUmVmUHRyPFByb2Nlc3NpbmdJbnN0cnVjdGlvbj4gYyA9IHN0YXRp
Y19wb2ludGVyX2Nhc3Q8UHJvY2Vzc2luZ0luc3RydWN0aW9uPihjb250YWluZXItPmNsb25lTm9k
ZSh0cnVlKSk7CisgICAgICAgICAgICBSZWZQdHI8UHJvY2Vzc2luZ0luc3RydWN0aW9uPiBjID0g
c3RhdGljX2Nhc3Q8UHJvY2Vzc2luZ0luc3RydWN0aW9uKj4oY29udGFpbmVyLT5jbG9uZU5vZGUo
dHJ1ZSkucHRyKCkpOwogICAgICAgICAgICAgYy0+c2V0RGF0YShjLT5kYXRhKCkuc3Vic3RyaW5n
KHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQgLSBzdGFydE9mZnNldCksIGVjKTsKICAgICAgICAgICAg
IGlmIChmcmFnbWVudCkgewogICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZyYWdtZW50OwpAQCAt
OTM1LDcgKzkzNSw3IEBAIHZvaWQgUmFuZ2U6Omluc2VydE5vZGUoUGFzc1JlZlB0cjxOb2RlPiBw
cnBOZXdOb2RlLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgCiAgICAgICAgIGNvbnRhaW5lciA9ICZzdGFydENvbnRhaW5lcigpOwotICAgICAgICBjb250
YWluZXItPnBhcmVudE5vZGUoKS0+aW5zZXJ0QmVmb3JlKG5ld05vZGUucmVsZWFzZSgpLCBuZXdU
ZXh0LmdldCgpLCBlYyk7CisgICAgICAgIGNvbnRhaW5lci0+cGFyZW50Tm9kZSgpLT5pbnNlcnRC
ZWZvcmUobmV3Tm9kZS5yZWxlYXNlTm9uTnVsbCgpLCBuZXdUZXh0LmdldCgpLCBlYyk7CiAgICAg
ICAgIGlmIChlYykKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMTMwMyw3ICsxMzAzLDcgQEAg
dm9pZCBSYW5nZTo6c3Vycm91bmRDb250ZW50cyhQYXNzUmVmUHRyPE5vZGU+IHBhc3NOZXdQYXJl
bnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogCiAgICAgZWMgPSAwOwogICAgIHdoaWxlIChOb2RlKiBu
ID0gbmV3UGFyZW50LT5maXJzdENoaWxkKCkpIHsKLSAgICAgICAgZG93bmNhc3Q8Q29udGFpbmVy
Tm9kZT4oKm5ld1BhcmVudCkucmVtb3ZlQ2hpbGQobiwgZWMpOworICAgICAgICBkb3duY2FzdDxD
b250YWluZXJOb2RlPigqbmV3UGFyZW50KS5yZW1vdmVDaGlsZCgqbiwgZWMpOwogICAgICAgICBp
ZiAoZWMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3Qu
Y3BwCmluZGV4IGExMjI1N2Y4MmRkYWRjODAzOGU4YTMwYTM0MjUyZjYzMjlmN2JiNmMuLjg4NjEw
MGRiNDY5ZTI0MWU0NmI5NTZiYzU3MDFkYTBjYzVlNjY5NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93
Um9vdC5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgdm9pZCBTaGFkb3dSb290OjpzZXRJbm5lckhUTUwo
Y29uc3QgU3RyaW5nJiBtYXJrdXAsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIH0KIAogICAgIGlm
IChSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZvcklu
bmVyT3V0ZXJIVE1MKG1hcmt1cCwgaG9zdCgpLCBBbGxvd1NjcmlwdGluZ0NvbnRlbnQsIGVjKSkK
LSAgICAgICAgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KCp0aGlzLCBmcmFnbWVudC5yZWxl
YXNlKCksIGVjKTsKKyAgICAgICAgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KCp0aGlzLCBm
cmFnbWVudC5yZWxlYXNlTm9uTnVsbCgpLCBlYyk7CiB9CiAKIGJvb2wgU2hhZG93Um9vdDo6Y2hp
bGRUeXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdApAQCAtMTMxLDkgKzEzMSwxMCBAQCB2
b2lkIFNoYWRvd1Jvb3Q6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYgY2hhbmdl
KQogICAgIGludmFsaWRhdGVEaXN0cmlidXRpb24oKTsKIH0KIAotUmVmUHRyPE5vZGU+IFNoYWRv
d1Jvb3Q6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikKK1Jl
ZjxOb2RlPiBTaGFkb3dSb290OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdP
cGVyYXRpb24pCiB7Ci0gICAgcmV0dXJuIG51bGxwdHI7IC8vIFNoYWRvd1Jvb3RzIHNob3VsZCBu
ZXZlciBiZSBjbG9uZWQuCisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBy
ZXR1cm4gKnN0YXRpY19jYXN0PE5vZGUqPihudWxscHRyKTsgLy8gU2hhZG93Um9vdHMgc2hvdWxk
IG5ldmVyIGJlIGNsb25lZC4KIH0KIAogdm9pZCBTaGFkb3dSb290OjpyZW1vdmVBbGxFdmVudExp
c3RlbmVycygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAppbmRleCA2ZDMxMWZkYjYyNjNkYTEyZGM5
ZDkwNGY3MTBkMDdiOWVjODVhOGNmLi42MzE2MDhhZjFhZDQ0MzZhMjViYTYxZWIzOWRlZDhmZjZh
MjJiYmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKQEAgLTc2LDcgKzc2LDcgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5n
ZSYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBSZWZQdHI8Tm9kZT4gY2xvbmVOb2RlSW50ZXJu
YWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJl
ZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92
ZXJyaWRlOwogCiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkbid0IGhhcHBlbi4gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4ODM0CiAgICAgYm9vbCBpc09ycGhhbigp
IGNvbnN0IHsgcmV0dXJuICFtX2hvc3Q7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcAppbmRleCBiMTE3MWQ3NjEx
YmU2ZGU2NTE2YjYwNWRjZmUxYjZkYzE5ZDcxMzQzLi42YzRjODlkYTllYjZlZmNmMDZhYjg0Mjll
YTVjNGQxMjIzZWUzNDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCkBAIC03Myw3ICs3Myw3IEBAIFJlZlB0
cjxUZXh0PiBUZXh0OjpzcGxpdFRleHQodW5zaWduZWQgb2Zmc2V0LCBFeGNlcHRpb25Db2RlJiBl
YykKICAgICBkaXNwYXRjaE1vZGlmaWVkRXZlbnQob2xkU3RyKTsKIAogICAgIGlmIChwYXJlbnRO
b2RlKCkpCi0gICAgICAgIHBhcmVudE5vZGUoKS0+aW5zZXJ0QmVmb3JlKG5ld1RleHQucHRyKCks
IG5leHRTaWJsaW5nKCksIGVjKTsKKyAgICAgICAgcGFyZW50Tm9kZSgpLT5pbnNlcnRCZWZvcmUo
bmV3VGV4dC5jb3B5UmVmKCksIG5leHRTaWJsaW5nKCksIGVjKTsKICAgICBpZiAoZWMpCiAgICAg
ICAgIHJldHVybiAwOwogCkBAIC0xMzIsMjggKzEzMiwyOCBAQCBSZWZQdHI8VGV4dD4gVGV4dDo6
cmVwbGFjZVdob2xlVGV4dChjb25zdCBTdHJpbmcmIG5ld1RleHQsIEV4Y2VwdGlvbkNvZGUmKQog
ICAgIFJlZlB0cjxUZXh0PiBwcm90ZWN0ZWRUaGlzKHRoaXMpOyAvLyBNdXRhdGlvbiBldmVudCBo
YW5kbGVycyBjb3VsZCBjYXVzZSBvdXIgbGFzdCByZWYgdG8gZ28gYXdheQogICAgIFJlZlB0cjxD
b250YWluZXJOb2RlPiBwYXJlbnQgPSBwYXJlbnROb2RlKCk7IC8vIFByb3RlY3QgYWdhaW5zdCBt
dXRhdGlvbiBoYW5kbGVycyBtb3ZpbmcgdGhpcyBub2RlIGR1cmluZyB0cmF2ZXJzYWwKICAgICBm
b3IgKFJlZlB0cjxOb2RlPiBuID0gc3RhcnRUZXh0OyBuICYmIG4gIT0gdGhpcyAmJiBuLT5pc1Rl
eHROb2RlKCkgJiYgbi0+cGFyZW50Tm9kZSgpID09IHBhcmVudDspIHsKLSAgICAgICAgUmVmUHRy
PE5vZGU+IG5vZGVUb1JlbW92ZShuLnJlbGVhc2UoKSk7CisgICAgICAgIFJlZjxOb2RlPiBub2Rl
VG9SZW1vdmUobi5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICAgICAgbiA9IG5vZGVUb1JlbW92ZS0+
bmV4dFNpYmxpbmcoKTsKLSAgICAgICAgcGFyZW50LT5yZW1vdmVDaGlsZChub2RlVG9SZW1vdmUu
Z2V0KCksIElHTk9SRV9FWENFUFRJT04pOworICAgICAgICBwYXJlbnQtPnJlbW92ZUNoaWxkKFdU
Rjo6bW92ZShub2RlVG9SZW1vdmUpLCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICB9CiAKICAgICBp
ZiAodGhpcyAhPSBlbmRUZXh0KSB7CiAgICAgICAgIE5vZGUqIG9uZVBhc3RFbmRUZXh0ID0gZW5k
VGV4dC0+bmV4dFNpYmxpbmcoKTsKICAgICAgICAgZm9yIChSZWZQdHI8Tm9kZT4gbiA9IG5leHRT
aWJsaW5nKCk7IG4gJiYgbiAhPSBvbmVQYXN0RW5kVGV4dCAmJiBuLT5pc1RleHROb2RlKCkgJiYg
bi0+cGFyZW50Tm9kZSgpID09IHBhcmVudDspIHsKLSAgICAgICAgICAgIFJlZlB0cjxOb2RlPiBu
b2RlVG9SZW1vdmUobi5yZWxlYXNlKCkpOworICAgICAgICAgICAgUmVmPE5vZGU+IG5vZGVUb1Jl
bW92ZShuLnJlbGVhc2VOb25OdWxsKCkpOwogICAgICAgICAgICAgbiA9IG5vZGVUb1JlbW92ZS0+
bmV4dFNpYmxpbmcoKTsKLSAgICAgICAgICAgIHBhcmVudC0+cmVtb3ZlQ2hpbGQobm9kZVRvUmVt
b3ZlLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgICAgIHBhcmVudC0+cmVtb3Zl
Q2hpbGQoV1RGOjptb3ZlKG5vZGVUb1JlbW92ZSksIElHTk9SRV9FWENFUFRJT04pOwogICAgICAg
ICB9CiAgICAgfQogCiAgICAgaWYgKG5ld1RleHQuaXNFbXB0eSgpKSB7CiAgICAgICAgIGlmIChw
YXJlbnQgJiYgcGFyZW50Tm9kZSgpID09IHBhcmVudCkKLSAgICAgICAgICAgIHBhcmVudC0+cmVt
b3ZlQ2hpbGQodGhpcywgSUdOT1JFX0VYQ0VQVElPTik7Ci0gICAgICAgIHJldHVybiAwOworICAg
ICAgICAgICAgcGFyZW50LT5yZW1vdmVDaGlsZCgqdGhpcywgSUdOT1JFX0VYQ0VQVElPTik7Cisg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIHNldERhdGEobmV3VGV4dCwgSUdO
T1JFX0VYQ0VQVElPTik7Ci0gICAgcmV0dXJuIHByb3RlY3RlZFRoaXMucmVsZWFzZSgpOworICAg
IHJldHVybiBwcm90ZWN0ZWRUaGlzOwogfQogCiBTdHJpbmcgVGV4dDo6bm9kZU5hbWUoKSBjb25z
dApAQCAtMTY2LDcgKzE2Niw3IEBAIE5vZGU6Ok5vZGVUeXBlIFRleHQ6Om5vZGVUeXBlKCkgY29u
c3QKICAgICByZXR1cm4gVEVYVF9OT0RFOwogfQogCi1SZWZQdHI8Tm9kZT4gVGV4dDo6Y2xvbmVO
b2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uKQor
UmVmPE5vZGU+IFRleHQ6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVu
dCwgQ2xvbmluZ09wZXJhdGlvbikKIHsKICAgICByZXR1cm4gY3JlYXRlKHRhcmdldERvY3VtZW50
LCBkYXRhKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9UZXh0LmgKaW5kZXggYTk2NzQzNjRjZGEwZGVkYjhlY2E1OWNjMGEy
NWE1MzcyYmJhOTdkNC4uZWZkNmJkZTkyN2MxZjk5OTM1N2UyNTFlZTQ1NDIwOWFkMWNmNTBmYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vVGV4dC5oCkBAIC02Miw3ICs2Miw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAg
dmlydHVhbCBTdHJpbmcgbm9kZU5hbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIE5v
ZGVUeXBlIG5vZGVUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZWZQdHI8Tm9k
ZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENs
b25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFR5cGVBbGxv
d2VkKE5vZGVUeXBlKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgUmVmPFRleHQ+IHZp
cnR1YWxDcmVhdGUoY29uc3QgU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBw
ZW5kTm9kZUNvbW1hbmQuY3BwCmluZGV4IDZhOGQ5ZTkxYTI1MWIxYWI5N2ExOWUyMzIzMjBjYjg0
NjhiNWMzMDQuLmNlZWVkZmQxN2E4MzIxMTAzNGZlNzVlOWU2NWVhYTJiZmY4N2ZhY2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCkBAIC0zNSwxMyAr
MzUsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1BcHBlbmROb2RlQ29tbWFuZDo6QXBw
ZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQ
dHI8Tm9kZT4gbm9kZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQorQXBwZW5kTm9kZUNvbW1h
bmQ6OkFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBO
b2RlJiBub2RlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiAgICAgOiBTaW1wbGVFZGl0Q29t
bWFuZChwYXJlbnQtPmRvY3VtZW50KCksIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX3BhcmVudChw
YXJlbnQpCiAgICAgLCBtX25vZGUobm9kZSkKIHsKICAgICBBU1NFUlQobV9wYXJlbnQpOwotICAg
IEFTU0VSVChtX25vZGUpOwogICAgIEFTU0VSVCghbV9ub2RlLT5wYXJlbnROb2RlKCkpOwogCiAg
ICAgQVNTRVJUKG1fcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxlKCkgfHwgIW1fcGFyZW50LT5yZW5k
ZXJlcigpKTsKQEAgLTY4LDEwICs2NywxMSBAQCB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb0Fw
cGx5KCkKICAgICBpZiAoIW1fcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxlKCkgJiYgbV9wYXJlbnQt
PnJlbmRlcmVyKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcGFyZW50LT5hcHBlbmRDaGls
ZChtX25vZGUuZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOworICAgIFJlZjxOb2RlPiBub2RlVG9B
cHBlbmQgPSBtX25vZGUuY29weVJlZigpOworICAgIG1fcGFyZW50LT5hcHBlbmRDaGlsZChXVEY6
Om1vdmUobm9kZVRvQXBwZW5kKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKICAgICBpZiAoc2hvdWxk
UG9zdEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24oKSkKLSAgICAgICAgc2VuZEFYVGV4dENoYW5n
ZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCkpOworICAg
ICAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUucHRyKCksIGFw
cGx5RWRpdFR5cGUoKSk7CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgp
CkBAIC04MSw3ICs4MSw3IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiAK
ICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUg
dGV4dAogICAgIGlmIChzaG91bGRQb3N0QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbigpKQotICAg
ICAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIHVu
YXBwbHlFZGl0VHlwZSgpKTsKKyAgICAgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVC
cmVha3MobV9ub2RlLnB0cigpLCB1bmFwcGx5RWRpdFR5cGUoKSk7CiAKICAgICBtX25vZGUtPnJl
bW92ZShJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTkwLDcgKzkwLDcgQEAgdm9pZCBBcHBlbmRO
b2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmdldE5vZGVz
SW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIHsKICAgICBhZGROb2RlQW5kRGVzY2Vu
ZGFudHMobV9wYXJlbnQuZ2V0KCksIG5vZGVzKTsKLSAgICBhZGROb2RlQW5kRGVzY2VuZGFudHMo
bV9ub2RlLmdldCgpLCBub2Rlcyk7CisgICAgYWRkTm9kZUFuZERlc2NlbmRhbnRzKG1fbm9kZS5w
dHIoKSwgbm9kZXMpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5k
Tm9kZUNvbW1hbmQuaAppbmRleCBmNzgyOTc1Yjg5MjE1MGFlMzZkMjlhNmJiZWNhOWYxZGMxMzA3
YzMxLi5mNjRiYWRjMDBkMDNhOTNmMzczZGUyNzE4NmI4NGY1NGVkNDljOTdlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCkBAIC0zMiwxMyArMzIsMTMgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBcHBlbmROb2RlQ29tbWFuZCA6IHB1YmxpYyBT
aW1wbGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxBcHBlbmROb2RlQ29t
bWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRy
PE5vZGU+IG5vZGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICBzdGF0aWMgUmVmPEFw
cGVuZE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQs
IE5vZGUmIG5vZGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKICAgICB7CiAgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEFwcGVuZE5vZGVDb21tYW5kKHBhcmVudCwgbm9kZSwgZWRpdGlu
Z0FjdGlvbikpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBBcHBlbmROb2RlQ29tbWFuZChQYXNz
UmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0cjxOb2RlPiwgRWRpdEFjdGlv
bik7CisgICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJl
bnQsIE5vZGUmLCBFZGl0QWN0aW9uKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwpAQCAtNDgsNyAr
NDgsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBSZWZQdHI8Q29udGFpbmVyTm9kZT4gbV9w
YXJlbnQ7Ci0gICAgUmVmUHRyPE5vZGU+IG1fbm9kZTsKKyAgICBSZWY8Tm9kZT4gbV9ub2RlOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAppbmRleCAzZDc3OTQyNDhkMjNlOWI3YTIzOTE2MmY5
NzFhNDQ3NDc1MWI2MzAzLi41ZDlkMzZmZjUwZjVkY2Y2N2QwOGQwZTRhNjI1MzYzNmU5MWI1MDYy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNw
cApAQCAtMzk1LDcgKzM5NSw4IEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5v
ZGVBdChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBjb25zdCBQb3NpCiB2b2lkIENvbXBv
c2l0ZUVkaXRDb21tYW5kOjphcHBlbmROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgUGFzc1Jl
ZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQpCiB7CiAgICAgQVNTRVJUKGNhbkhhdmVDaGlsZHJl
bkZvckVkaXRpbmcocGFyZW50LmdldCgpKSk7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUo
QXBwZW5kTm9kZUNvbW1hbmQ6OmNyZWF0ZShwYXJlbnQsIG5vZGUsIGVkaXRpbmdBY3Rpb24oKSkp
OworICAgIEFTU0VSVChub2RlKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShBcHBlbmRO
b2RlQ29tbWFuZDo6Y3JlYXRlKHBhcmVudCwgKm5vZGUsIGVkaXRpbmdBY3Rpb24oKSkpOwogfQog
CiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVDaGlsZHJlbkluUmFuZ2UoUGFzc1Jl
ZlB0cjxOb2RlPiBub2RlLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bykKQEAgLTQxNCw3ICs0
MTUsNyBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVOb2RlKFBhc3NSZWZQdHI8
Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVudAogewogICAgIGlmICghbm9kZSB8fCAhbm9k
ZS0+bm9uU2hhZG93Qm91bmRhcnlQYXJlbnROb2RlKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBh
cHBseUNvbW1hbmRUb0NvbXBvc2l0ZShSZW1vdmVOb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIHNo
b3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CisgICAgYXBwbHlDb21tYW5kVG9D
b21wb3NpdGUoUmVtb3ZlTm9kZUNvbW1hbmQ6OmNyZWF0ZSgqbm9kZSwgc2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUpKTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6
cmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbihQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlKQpAQCAtMTU0MSw3ICsxNTQyLDcgQEAgUGFzc1JlZlB0cjxOb2RlPiBDb21wb3Np
dGVFZGl0Q29tbWFuZDo6c3BsaXRUcmVlVG9Ob2RlKE5vZGUqIHN0YXJ0LCBOb2RlKiBlbmQsIGIK
ICAgICByZXR1cm4gbm9kZS5yZWxlYXNlKCk7CiB9CiAKLVBhc3NSZWZQdHI8RWxlbWVudD4gY3Jl
YXRlQmxvY2tQbGFjZWhvbGRlckVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEVsZW1l
bnQ+IGNyZWF0ZUJsb2NrUGxhY2Vob2xkZXJFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKIHsK
ICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChiclRhZywgZmFsc2UpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5k
ZXggYzY0OTFkMjY5MjY1ZTVhYjZjZTk2NWVhYTk1MzQxYjY1NDQ3ZDFhZS4uNTYwOTk3MTMzZjYx
OWUzZDBhNzJkY2JkYWZiYWIxNzhkOGYzMGQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC02MzIsNyArNjMyLDcgQEAgdm9p
ZCBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjptZXJnZVBhcmFncmFwaHMoKQogICAgIAogICAgIC8v
IFdlIG5lZWQgdG8gbWVyZ2UgaW50byBtX3Vwc3RyZWFtU3RhcnQncyBibG9jaywgYnV0IGl0J3Mg
YmVlbiBlbXB0aWVkIG91dCBhbmQgY29sbGFwc2VkIGJ5IGRlbGV0aW9uLgogICAgIGlmICghbWVy
Z2VEZXN0aW5hdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWROb2RlKCkgfHwgIW1lcmdl
RGVzdGluYXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkTm9kZSgpLT5pc0Rlc2NlbmRh
bnRPZihlbmNsb3NpbmdCbG9jayhtX3Vwc3RyZWFtU3RhcnQuY29udGFpbmVyTm9kZSgpKSkgfHwg
bV9zdGFydHNBdEVtcHR5TGluZSkgewotICAgICAgICBpbnNlcnROb2RlQXQoY3JlYXRlQnJlYWtF
bGVtZW50KGRvY3VtZW50KCkpLmdldCgpLCBtX3Vwc3RyZWFtU3RhcnQpOworICAgICAgICBpbnNl
cnROb2RlQXQoY3JlYXRlQnJlYWtFbGVtZW50KGRvY3VtZW50KCkpLnB0cigpLCBtX3Vwc3RyZWFt
U3RhcnQpOwogICAgICAgICBtZXJnZURlc3RpbmF0aW9uID0gVmlzaWJsZVBvc2l0aW9uKG1fdXBz
dHJlYW1TdGFydCk7CiAgICAgfQogICAgIApAQCAtODU1LDcgKzg1NSw3IEBAIHZvaWQgRGVsZXRl
U2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgCiAgICAgcmVtb3ZlUHJldmlvdXNseVNl
bGVjdGVkRW1wdHlUYWJsZVJvd3MoKTsKICAgICAKLSAgICBSZWZQdHI8Tm9kZT4gcGxhY2Vob2xk
ZXIgPSBtX25lZWRQbGFjZWhvbGRlciA/IGNyZWF0ZUJyZWFrRWxlbWVudChkb2N1bWVudCgpKS5n
ZXQoKSA6IDA7CisgICAgUmVmUHRyPE5vZGU+IHBsYWNlaG9sZGVyID0gbV9uZWVkUGxhY2Vob2xk
ZXIgPyBjcmVhdGVCcmVha0VsZW1lbnQoZG9jdW1lbnQoKSkucHRyKCkgOiBudWxscHRyOwogICAg
IAogICAgIGlmIChwbGFjZWhvbGRlcikgewogICAgICAgICBpZiAobV9zYW5pdGl6ZU1hcmt1cCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCAxNDhlMzVjOGNjZmE5NmM1YjEwODQyYWVm
NjFkYzZkN2UxODY2ODM0Li40NGIyYWM3MzgyMTZkODkzN2U0NTRiNDljYWM5ZDhkY2I3NTA2YWZh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC02MTMsOCArNjEzLDggQEAgdm9pZCBF
ZGl0b3I6OnNldFRleHRBc0NoaWxkT2ZFbGVtZW50KGNvbnN0IFN0cmluZyYgdGV4dCwgRWxlbWVu
dCogZWxlbSkKICAgICAgICAgICAgIAogICAgICAgICBSZWZQdHI8UmFuZ2U+IGNvbnRleHQgPSBk
b2N1bWVudCgpLmNyZWF0ZVJhbmdlKCk7CiAgICAgICAgIGNvbnRleHQtPnNlbGVjdE5vZGVDb250
ZW50cyhlbGVtLCBlYyk7Ci0gICAgICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVu
dCA9IGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoKmNvbnRleHQuZ2V0KCksIHRleHQpOwotICAgICAg
ICBlbGVtLT5hcHBlbmRDaGlsZChmcmFnbWVudCwgZWMpOworICAgICAgICBSZWY8RG9jdW1lbnRG
cmFnbWVudD4gZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21UZXh0KCpjb250ZXh0LmdldCgp
LCB0ZXh0KTsKKyAgICAgICAgZWxlbS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGZyYWdtZW50KSwg
ZWMpOwogICAgIAogICAgICAgICAvLyByZXN0b3JlIGVsZW1lbnQgdG8gZG9jdW1lbnQKICAgICAg
ICAgaWYgKHBhcmVudCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3JDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAK
aW5kZXggMGY4Zjg4MDMzYTRmZWZhMjNkNzUyNjg5OWVlNDc0MTlmZDQwNzIyYi4uMTJjZGQyMWQ4
ZWMxM2Q3MGU1ZmIwMDNjZTg3ZjJkOTI1MTY4MmMyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvckNvbW1hbmQuY3BwCkBAIC0xNjUsMTEgKzE2NSwxMSBAQCBzdGF0aWMgYm9vbCBleGVj
dXRlSW5zZXJ0RnJhZ21lbnQoRnJhbWUmIGZyYW1lLCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21l
bnQ+IGZyYQogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgYm9vbCBleGVjdXRlSW5zZXJ0
Tm9kZShGcmFtZSYgZnJhbWUsIFBhc3NSZWZQdHI8Tm9kZT4gY29udGVudCkKK3N0YXRpYyBib29s
IGV4ZWN1dGVJbnNlcnROb2RlKEZyYW1lJiBmcmFtZSwgUmVmPE5vZGU+JiYgY29udGVudCkKIHsK
ICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBEb2N1bWVudEZyYWdtZW50
OjpjcmVhdGUoKmZyYW1lLmRvY3VtZW50KCkpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwot
ICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChjb250ZW50LCBlYyk7CisgICAgZnJhZ21lbnQtPmFw
cGVuZENoaWxkKFdURjo6bW92ZShjb250ZW50KSwgZWMpOwogICAgIGlmIChlYykKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIHJldHVybiBleGVjdXRlSW5zZXJ0RnJhZ21lbnQoZnJhbWUsIGZy
YWdtZW50LnJlbGVhc2UoKSk7CkBAIC00NjQsMTAgKzQ2NCwxMCBAQCBzdGF0aWMgYm9vbCBleGVj
dXRlSW5zZXJ0QmFja3RhYihGcmFtZSYgZnJhbWUsIEV2ZW50KiBldmVudCwgRWRpdG9yQ29tbWFu
ZFNvdXJjZQogCiBzdGF0aWMgYm9vbCBleGVjdXRlSW5zZXJ0SG9yaXpvbnRhbFJ1bGUoRnJhbWUm
IGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0cmluZyYgdmFsdWUp
CiB7Ci0gICAgUmVmUHRyPEhUTUxIUkVsZW1lbnQ+IHJ1bGUgPSBIVE1MSFJFbGVtZW50OjpjcmVh
dGUoKmZyYW1lLmRvY3VtZW50KCkpOworICAgIFJlZjxIVE1MSFJFbGVtZW50PiBydWxlID0gSFRN
TEhSRWxlbWVudDo6Y3JlYXRlKCpmcmFtZS5kb2N1bWVudCgpKTsKICAgICBpZiAoIXZhbHVlLmlz
RW1wdHkoKSkKICAgICAgICAgcnVsZS0+c2V0SWRBdHRyaWJ1dGUodmFsdWUpOwotICAgIHJldHVy
biBleGVjdXRlSW5zZXJ0Tm9kZShmcmFtZSwgcnVsZS5yZWxlYXNlKCkpOworICAgIHJldHVybiBl
eGVjdXRlSW5zZXJ0Tm9kZShmcmFtZSwgV1RGOjptb3ZlKHJ1bGUpKTsKIH0KIAogc3RhdGljIGJv
b2wgZXhlY3V0ZUluc2VydEhUTUwoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRT
b3VyY2UsIGNvbnN0IFN0cmluZyYgdmFsdWUpCkBAIC00NzgsOSArNDc4LDkgQEAgc3RhdGljIGJv
b2wgZXhlY3V0ZUluc2VydEhUTUwoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRT
b3VyY2UsIGNvbnN0IFMKIHN0YXRpYyBib29sIGV4ZWN1dGVJbnNlcnRJbWFnZShGcmFtZSYgZnJh
bWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsK
ICAgICAvLyBGSVhNRTogSWYgdXNlckludGVyZmFjZSBpcyB0cnVlLCB3ZSBzaG91bGQgZGlzcGxh
eSBhIGRpYWxvZyBib3ggYW5kIGxldCB0aGUgdXNlciBjaG9vc2UgYSBsb2NhbCBpbWFnZS4KLSAg
ICBSZWZQdHI8SFRNTEltYWdlRWxlbWVudD4gaW1hZ2UgPSBIVE1MSW1hZ2VFbGVtZW50OjpjcmVh
dGUoKmZyYW1lLmRvY3VtZW50KCkpOworICAgIFJlZjxIVE1MSW1hZ2VFbGVtZW50PiBpbWFnZSA9
IEhUTUxJbWFnZUVsZW1lbnQ6OmNyZWF0ZSgqZnJhbWUuZG9jdW1lbnQoKSk7CiAgICAgaW1hZ2Ut
PnNldFNyYyh2YWx1ZSk7Ci0gICAgcmV0dXJuIGV4ZWN1dGVJbnNlcnROb2RlKGZyYW1lLCBpbWFn
ZS5yZWxlYXNlKCkpOworICAgIHJldHVybiBleGVjdXRlSW5zZXJ0Tm9kZShmcmFtZSwgV1RGOjpt
b3ZlKGltYWdlKSk7CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVJbnNlcnRMaW5lQnJlYWsoRnJh
bWUmIGZyYW1lLCBFdmVudCogZXZlbnQsIEVkaXRvckNvbW1hbmRTb3VyY2Ugc291cmNlLCBjb25z
dCBTdHJpbmcmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRMaW5l
QnJlYWtDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0TGluZUJyZWFr
Q29tbWFuZC5jcHAKaW5kZXggNmVlMjFkOTIyNzNkY2U1NWYxMjQ4NmY4Zjk3ODdhMjY4MGVlMzkw
MC4uMjVhYjA3MTI0ZTc5Mjc3MjAyNDVlZTZkNmU0NmNlZDFjNmU5Yzg1MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRMaW5lQnJlYWtDb21tYW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydExpbmVCcmVha0NvbW1hbmQuY3BwCkBAIC0xMjks
NyArMTI5LDcgQEAgdm9pZCBJbnNlcnRMaW5lQnJlYWtDb21tYW5kOjpkb0FwcGx5KCkKICAgICAg
ICAgCiAgICAgICAgIC8vIEluc2VydCBhbiBleHRyYSBiciBvciAnXG4nIGlmIHRoZSBqdXN0IGlu
c2VydGVkIG9uZSBjb2xsYXBzZWQuCiAgICAgICAgIGlmICghaXNTdGFydE9mUGFyYWdyYXBoKHBv
c2l0aW9uQmVmb3JlTm9kZShub2RlVG9JbnNlcnQuZ2V0KCkpKSkKLSAgICAgICAgICAgIGluc2Vy
dE5vZGVCZWZvcmUobm9kZVRvSW5zZXJ0LT5jbG9uZU5vZGUoZmFsc2UpLmdldCgpLCBub2RlVG9J
bnNlcnQuZ2V0KCkpOworICAgICAgICAgICAgaW5zZXJ0Tm9kZUJlZm9yZShub2RlVG9JbnNlcnQt
PmNsb25lTm9kZShmYWxzZSksIG5vZGVUb0luc2VydC5nZXQoKSk7CiAgICAgICAgIAogICAgICAg
ICBzZXRFbmRpbmdTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihwb3NpdGlvbkluUGFyZW50QWZ0
ZXJOb2RlKG5vZGVUb0luc2VydC5nZXQoKSksIERPV05TVFJFQU0sIGVuZGluZ1NlbGVjdGlvbigp
LmlzRGlyZWN0aW9uYWwoKSkpOwogICAgIC8vIElmIHdlJ3JlIGluc2VydGluZyBhZnRlciBhbGwg
b2YgdGhlIHJlbmRlcmVkIHRleHQgaW4gYSB0ZXh0IG5vZGUsIG9yIGludG8gYSBub24tdGV4dCBu
b2RlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmNwcAppbmRleCBmYTE0ZDA3NjZlYWY3NWZhNDMxOWU2ZDg4NTc0YWYzZDNhMDNlNDM2Li41
MGY2NTQ1ZTYyZjdiZGI4NGZkMGM1ZWI1MzRlNGVjYzg2MWRiYTI1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtNTUsNyAr
NTUsNyBAQCB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb0FwcGx5KCkKICAgICAgICAg
cmV0dXJuOwogICAgIEFTU0VSVChpc0VkaXRhYmxlTm9kZSgqcGFyZW50KSk7CiAKLSAgICBwYXJl
bnQtPmluc2VydEJlZm9yZShtX2luc2VydENoaWxkLmdldCgpLCBtX3JlZkNoaWxkLmdldCgpLCBJ
R05PUkVfRVhDRVBUSU9OKTsKKyAgICBwYXJlbnQtPmluc2VydEJlZm9yZSgqbV9pbnNlcnRDaGls
ZCwgbV9yZWZDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKICAgICBpZiAoc2hvdWxk
UG9zdEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24oKSkgewogICAgICAgICBQb3NpdGlvbiBwb3Np
dGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpID8gUG9zaXRpb24oZG93bmNhc3Q8
VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0
aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5jcHAKaW5kZXggN2Rk
MDE2MGNkMDM0M2RhYWRmMTI0MzQxMmUzZWFhZmYxNjE3ZDY1YS4uMTUwMzIyOTJhZGU2NTg4NDRh
N2Y5MjA2Y2ZhYjcwOWZiNTY0MTBjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuY3BwCkBAIC0zNjgsNyAr
MzY4LDcgQEAgdm9pZCBJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kOjpkb0FwcGx5KCkK
ICAgICAvLyBjcmVhdGVkLiAgQWxsIG9mIHRoZSBub2Rlcywgc3RhcnRpbmcgYXQgdmlzaWJsZVBv
cywgYXJlIGFib3V0IHRvIGJlIGFkZGVkIHRvIHRoZSBuZXcgcGFyYWdyYXBoIAogICAgIC8vIGVs
ZW1lbnQuICBJZiB0aGUgZmlyc3Qgbm9kZSB0byBiZSBpbnNlcnRlZCB3b24ndCBiZSBvbmUgdGhh
dCB3aWxsIGhvbGQgYW4gZW1wdHkgbGluZSBvcGVuLCBhZGQgYSBici4KICAgICBpZiAoaXNFbmRP
ZlBhcmFncmFwaCh2aXNpYmxlUG9zKSAmJiAhbGluZUJyZWFrRXhpc3RzQXRWaXNpYmxlUG9zaXRp
b24odmlzaWJsZVBvcykpCi0gICAgICAgIGFwcGVuZE5vZGUoY3JlYXRlQnJlYWtFbGVtZW50KGRv
Y3VtZW50KCkpLmdldCgpLCBibG9ja1RvSW5zZXJ0LmdldCgpKTsKKyAgICAgICAgYXBwZW5kTm9k
ZShjcmVhdGVCcmVha0VsZW1lbnQoZG9jdW1lbnQoKSksIGJsb2NrVG9JbnNlcnQuZ2V0KCkpOwog
CiAgICAgLy8gTW92ZSB0aGUgc3RhcnQgbm9kZSBhbmQgdGhlIHNpYmxpbmdzIG9mIHRoZSBzdGFy
dCBub2RlLgogICAgIGlmIChWaXNpYmxlUG9zaXRpb24oaW5zZXJ0aW9uUG9zaXRpb24pICE9IFZp
c2libGVQb3NpdGlvbihwb3NpdGlvbkJlZm9yZU5vZGUoYmxvY2tUb0luc2VydC5nZXQoKSkpKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01lcmdlSWRlbnRpY2FsRWxlbWVu
dHNDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWVyZ2VJZGVudGljYWxFbGVt
ZW50c0NvbW1hbmQuY3BwCmluZGV4IDQ2NTE4ODQ2MzY0ZmEzM2MyODVjZjYwMDk3ZjA0M2IyYzJj
ZjM4N2UuLjRhNTllZjY4MGQ2YTBkZjIxNzM1YTllYjIwNTBhMThlZGY2NmYxY2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWVyZ2VJZGVudGljYWxFbGVtZW50c0NvbW1hbmQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWVyZ2VJZGVudGljYWxFbGVtZW50c0Nv
bW1hbmQuY3BwCkBAIC00NywxMyArNDcsMTMgQEAgdm9pZCBNZXJnZUlkZW50aWNhbEVsZW1lbnRz
Q29tbWFuZDo6ZG9BcHBseSgpCiAKICAgICBtX2F0Q2hpbGQgPSBtX2VsZW1lbnQyLT5maXJzdENo
aWxkKCk7CiAKLSAgICBWZWN0b3I8UmVmUHRyPE5vZGU+PiBjaGlsZHJlbjsKKyAgICBWZWN0b3I8
UmVmPE5vZGU+PiBjaGlsZHJlbjsKICAgICBmb3IgKE5vZGUqIGNoaWxkID0gbV9lbGVtZW50MS0+
Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKLSAgICAg
ICAgY2hpbGRyZW4uYXBwZW5kKGNoaWxkKTsKKyAgICAgICAgY2hpbGRyZW4uYXBwZW5kKCpjaGls
ZCk7CiAKICAgICBzaXplX3Qgc2l6ZSA9IGNoaWxkcmVuLnNpemUoKTsKICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgbV9lbGVtZW50Mi0+aW5zZXJ0QmVmb3Jl
KGNoaWxkcmVuW2ldLnJlbGVhc2UoKSwgbV9hdENoaWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9O
KTsKKyAgICAgICAgbV9lbGVtZW50Mi0+aW5zZXJ0QmVmb3JlKFdURjo6bW92ZShjaGlsZHJlbltp
XSksIG1fYXRDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKICAgICBtX2VsZW1lbnQx
LT5yZW1vdmUoSUdOT1JFX0VYQ0VQVElPTik7CiB9CkBAIC03MSwxNyArNzEsMTcgQEAgdm9pZCBN
ZXJnZUlkZW50aWNhbEVsZW1lbnRzQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIAogICAgIEV4Y2VwdGlv
bkNvZGUgZWMgPSAwOwogCi0gICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobV9lbGVtZW50MS5nZXQo
KSwgbV9lbGVtZW50Mi5nZXQoKSwgZWMpOworICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKCptX2Vs
ZW1lbnQxLCBtX2VsZW1lbnQyLmdldCgpLCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1
cm47CiAKLSAgICBWZWN0b3I8UmVmUHRyPE5vZGU+PiBjaGlsZHJlbjsKKyAgICBWZWN0b3I8UmVm
PE5vZGU+PiBjaGlsZHJlbjsKICAgICBmb3IgKE5vZGUqIGNoaWxkID0gbV9lbGVtZW50Mi0+Zmly
c3RDaGlsZCgpOyBjaGlsZCAmJiBjaGlsZCAhPSBhdENoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0
U2libGluZygpKQotICAgICAgICBjaGlsZHJlbi5hcHBlbmQoY2hpbGQpOworICAgICAgICBjaGls
ZHJlbi5hcHBlbmQoKmNoaWxkKTsKIAogICAgIHNpemVfdCBzaXplID0gY2hpbGRyZW4uc2l6ZSgp
OwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICBtX2VsZW1l
bnQxLT5hcHBlbmRDaGlsZChjaGlsZHJlbltpXS5yZWxlYXNlKCksIGVjKTsKKyAgICAgICAgbV9l
bGVtZW50MS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNoaWxkcmVuW2ldKSwgZWMpOwogfQogCiAj
aWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVO
b2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5k
LmNwcAppbmRleCAzMWM1NGQxZTg4MmUyZDQ2NTQwNDA4ZTQ1MDYwYzQ5ZDkwOGJiZWM2Li5iZWVj
N2U0ZGFlNDRiMTA0YzJiZDE1ZmFjMDlmZWQ3OTQ2OWRmYTBhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmNwcApAQCAtMzQsMTIgKzM0LDExIEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotUmVtb3ZlTm9kZUNvbW1hbmQ6OlJlbW92ZU5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCi0gICAgOiBTaW1wbGVFZGl0
Q29tbWFuZChub2RlLT5kb2N1bWVudCgpKQorUmVtb3ZlTm9kZUNvbW1hbmQ6OlJlbW92ZU5vZGVD
b21tYW5kKE5vZGUmIG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNo
b3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIDogU2ltcGxlRWRpdENvbW1h
bmQobm9kZS5kb2N1bWVudCgpKQogICAgICwgbV9ub2RlKG5vZGUpCiAgICAgLCBtX3Nob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlKQogewotICAgIEFTU0VSVChtX25vZGUpOwogICAgIEFTU0VSVChtX25vZGUtPnBhcmVu
dE5vZGUoKSk7CiB9CiAKQEAgLTY0LDcgKzYzLDcgQEAgdm9pZCBSZW1vdmVOb2RlQ29tbWFuZDo6
ZG9VbmFwcGx5KCkKICAgICBpZiAoIXBhcmVudCB8fCAhcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxl
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG1fbm9kZS5n
ZXQoKSwgcmVmQ2hpbGQuZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOworICAgIHBhcmVudC0+aW5z
ZXJ0QmVmb3JlKG1fbm9kZS5jb3B5UmVmKCksIHJlZkNoaWxkLmdldCgpLCBJR05PUkVfRVhDRVBU
SU9OKTsKIH0KIAogI2lmbmRlZiBOREVCVUcKQEAgLTcyLDcgKzcxLDcgQEAgdm9pZCBSZW1vdmVO
b2RlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogewog
ICAgIGFkZE5vZGVBbmREZXNjZW5kYW50cyhtX3BhcmVudC5nZXQoKSwgbm9kZXMpOwogICAgIGFk
ZE5vZGVBbmREZXNjZW5kYW50cyhtX3JlZkNoaWxkLmdldCgpLCBub2Rlcyk7Ci0gICAgYWRkTm9k
ZUFuZERlc2NlbmRhbnRzKG1fbm9kZS5nZXQoKSwgbm9kZXMpOworICAgIGFkZE5vZGVBbmREZXNj
ZW5kYW50cyhtX25vZGUucHRyKCksIG5vZGVzKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmgKaW5kZXggMTgxZTk4NWQ3ZjMwY2Q0NDk2NjRl
NmZmOGNjYTk0MmYyNmY2Y2Y2ZS4uMDEzNTE3ZmY3ZGYzZGFlZTgwZjRkNmYxYjEwZDgxODU5YWFk
NmM3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFu
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuaApAQCAt
MzIsMTMgKzMyLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVtb3ZlTm9kZUNv
bW1hbmQgOiBwdWJsaWMgU2ltcGxlRWRpdENvbW1hbmQgewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWY8UmVtb3ZlTm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlKQorICAgIHN0YXRpYyBSZWY8UmVtb3ZlTm9kZUNvbW1hbmQ+IGNyZWF0ZShOb2Rl
JiBub2RlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFJlbW92ZU5vZGVDb21tYW5kKG5vZGUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFJlbW92ZU5vZGVDb21t
YW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
KTsKKyAgICBSZW1vdmVOb2RlQ29tbWFuZChOb2RlJiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUpOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CkBAIC00Nyw3ICs0Nyw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJy
aWRlOwogI2VuZGlmCiAKLSAgICBSZWZQdHI8Tm9kZT4gbV9ub2RlOworICAgIFJlZjxOb2RlPiBt
X25vZGU7CiAgICAgUmVmUHRyPENvbnRhaW5lck5vZGU+IG1fcGFyZW50OwogICAgIFJlZlB0cjxO
b2RlPiBtX3JlZkNoaWxkOwogICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
IG1fc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwCmluZGV4IDBl
MTg5YmRlZjY3ZDNmM2RlNzI0NmQ3MWFhYzdkNDA4NzkwN2ZkZmUuLjEwYmVmM2EwOWExY2M0MjFj
Yjc3ZTlhYjc4ZTAwY2Q2ZTIyMjMwYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwCkBAIC00OCwxOSArNDgsMTkgQEAg
UmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQ6OlJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kKFBh
c3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGUKICAgICBBU1NFUlQobV9lbGVtZW50VG9SZXBsYWNlKTsK
IH0KIAotc3RhdGljIHZvaWQgc3dhcEluTm9kZVByZXNlcnZpbmdBdHRyaWJ1dGVzQW5kQ2hpbGRy
ZW4oSFRNTEVsZW1lbnQqIG5ld05vZGUsIEhUTUxFbGVtZW50KiBub2RlVG9SZXBsYWNlKQorc3Rh
dGljIHZvaWQgc3dhcEluTm9kZVByZXNlcnZpbmdBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oSFRNTEVs
ZW1lbnQmIG5ld05vZGUsIEhUTUxFbGVtZW50JiBub2RlVG9SZXBsYWNlKQogewotICAgIEFTU0VS
VChub2RlVG9SZXBsYWNlLT5pbkRvY3VtZW50KCkpOwotICAgIFJlZlB0cjxDb250YWluZXJOb2Rl
PiBwYXJlbnROb2RlID0gbm9kZVRvUmVwbGFjZS0+cGFyZW50Tm9kZSgpOworICAgIEFTU0VSVChu
b2RlVG9SZXBsYWNlLmluRG9jdW1lbnQoKSk7CisgICAgUmVmUHRyPENvbnRhaW5lck5vZGU+IHBh
cmVudE5vZGUgPSBub2RlVG9SZXBsYWNlLnBhcmVudE5vZGUoKTsKIAogICAgIC8vIEZJWE1FOiBG
aXggdGhpcyB0byBzZW5kIHRoZSBwcm9wZXIgTXV0YXRpb25SZWNvcmRzIHdoZW4gTXV0YXRpb25P
YnNlcnZlcnMgYXJlIHByZXNlbnQuCi0gICAgbmV3Tm9kZS0+Y2xvbmVEYXRhRnJvbUVsZW1lbnQo
Km5vZGVUb1JlcGxhY2UpOworICAgIG5ld05vZGUuY2xvbmVEYXRhRnJvbUVsZW1lbnQobm9kZVRv
UmVwbGFjZSk7CiAgICAgTm9kZVZlY3RvciBjaGlsZHJlbjsKLSAgICBnZXRDaGlsZE5vZGVzKCpu
b2RlVG9SZXBsYWNlLCBjaGlsZHJlbik7CisgICAgZ2V0Q2hpbGROb2Rlcyhub2RlVG9SZXBsYWNl
LCBjaGlsZHJlbik7CiAgICAgZm9yIChhdXRvJiBjaGlsZCA6IGNoaWxkcmVuKQotICAgICAgICBu
ZXdOb2RlLT5hcHBlbmRDaGlsZChjaGlsZC5wdHIoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7Cisg
ICAgICAgIG5ld05vZGUuYXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNoaWxkKSwgQVNTRVJUX05PX0VY
Q0VQVElPTik7CiAKLSAgICBwYXJlbnROb2RlLT5pbnNlcnRCZWZvcmUobmV3Tm9kZSwgbm9kZVRv
UmVwbGFjZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgcGFyZW50Tm9kZS0+aW5zZXJ0QmVm
b3JlKG5ld05vZGUsICZub2RlVG9SZXBsYWNlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICBw
YXJlbnROb2RlLT5yZW1vdmVDaGlsZChub2RlVG9SZXBsYWNlLCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKIH0KIApAQCAtNzAsMTQgKzcwLDE0IEBAIHZvaWQgUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1h
bmQ6OmRvQXBwbHkoKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKCFtX3NwYW5FbGVtZW50KQog
ICAgICAgICBtX3NwYW5FbGVtZW50ID0gY3JlYXRlSFRNTEVsZW1lbnQobV9lbGVtZW50VG9SZXBs
YWNlLT5kb2N1bWVudCgpLCBzcGFuVGFnKTsKLSAgICBzd2FwSW5Ob2RlUHJlc2VydmluZ0F0dHJp
YnV0ZXNBbmRDaGlsZHJlbihtX3NwYW5FbGVtZW50LmdldCgpLCBtX2VsZW1lbnRUb1JlcGxhY2Uu
Z2V0KCkpOworICAgIHN3YXBJbk5vZGVQcmVzZXJ2aW5nQXR0cmlidXRlc0FuZENoaWxkcmVuKCpt
X3NwYW5FbGVtZW50LCAqbV9lbGVtZW50VG9SZXBsYWNlKTsKIH0KIAogdm9pZCBSZXBsYWNlTm9k
ZVdpdGhTcGFuQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIHsKICAgICBpZiAoIW1fc3BhbkVsZW1lbnQt
PmluRG9jdW1lbnQoKSkKICAgICAgICAgcmV0dXJuOwotICAgIHN3YXBJbk5vZGVQcmVzZXJ2aW5n
QXR0cmlidXRlc0FuZENoaWxkcmVuKG1fZWxlbWVudFRvUmVwbGFjZS5nZXQoKSwgbV9zcGFuRWxl
bWVudC5nZXQoKSk7CisgICAgc3dhcEluTm9kZVByZXNlcnZpbmdBdHRyaWJ1dGVzQW5kQ2hpbGRy
ZW4oKm1fZWxlbWVudFRvUmVwbGFjZSwgKm1fc3BhbkVsZW1lbnQpOwogfQogCiAjaWZuZGVmIE5E
RUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21t
YW5kLmNwcAppbmRleCBlZWUyMjBjODZmOThhNWU3ZDI4OTljNDMzZmE5MWYwMDAwNTQ2YmUzLi4w
OGM2Mjc3ZGVmYzM0ZmEyMjM0YzJlNDYyZjIzNjQ3ZDZiYzk5YTNkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtMjM4LDcg
KzIzOCw3IEBAIHZvaWQgUmVwbGFjZW1lbnRGcmFnbWVudDo6cmVtb3ZlTm9kZShQYXNzUmVmUHRy
PE5vZGU+IG5vZGUpCiAgICAgaWYgKCFwYXJlbnQpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAg
ICBwYXJlbnQtPnJlbW92ZUNoaWxkKG5vZGUuZ2V0KCksIEFTU0VSVF9OT19FWENFUFRJT04pOwor
ICAgIHBhcmVudC0+cmVtb3ZlQ2hpbGQoKm5vZGUsIEFTU0VSVF9OT19FWENFUFRJT04pOwogfQog
CiB2b2lkIFJlcGxhY2VtZW50RnJhZ21lbnQ6Omluc2VydE5vZGVCZWZvcmUoUGFzc1JlZlB0cjxO
b2RlPiBub2RlLCBOb2RlKiByZWZOb2RlKQpAQCAtMjUwLDE0ICsyNTAsMTQgQEAgdm9pZCBSZXBs
YWNlbWVudEZyYWdtZW50OjppbnNlcnROb2RlQmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwg
Tm9kZSogcmVmTm9kZSkKICAgICBpZiAoIXBhcmVudCkKICAgICAgICAgcmV0dXJuOwogICAgICAg
ICAKLSAgICBwYXJlbnQtPmluc2VydEJlZm9yZShub2RlLCByZWZOb2RlLCBBU1NFUlRfTk9fRVhD
RVBUSU9OKTsKKyAgICBwYXJlbnQtPmluc2VydEJlZm9yZSgqbm9kZSwgcmVmTm9kZSwgQVNTRVJU
X05PX0VYQ0VQVElPTik7CiB9CiAKIFBhc3NSZWZQdHI8U3R5bGVkRWxlbWVudD4gUmVwbGFjZW1l
bnRGcmFnbWVudDo6aW5zZXJ0RnJhZ21lbnRGb3JUZXN0UmVuZGVyaW5nKE5vZGUqIHJvb3RFZGl0
YWJsZUVsZW1lbnQpCiB7CiAgICAgUmVmUHRyPFN0eWxlZEVsZW1lbnQ+IGhvbGRlciA9IGNyZWF0
ZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50KGRvY3VtZW50KCkpOwogCi0gICAgaG9sZGVyLT5hcHBl
bmRDaGlsZChtX2ZyYWdtZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBob2xkZXItPmFw
cGVuZENoaWxkKCptX2ZyYWdtZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICByb290RWRp
dGFibGVFbGVtZW50LT5hcHBlbmRDaGlsZChob2xkZXIuZ2V0KCksIEFTU0VSVF9OT19FWENFUFRJ
T04pOwogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRz
KCk7CiAKQEAgLTI3MCw4ICsyNzAsOCBAQCB2b2lkIFJlcGxhY2VtZW50RnJhZ21lbnQ6OnJlc3Rv
cmVBbmRSZW1vdmVUZXN0UmVuZGVyaW5nTm9kZXNUb0ZyYWdtZW50KFN0eWxlZEVsZQogICAgICAg
ICByZXR1cm47CiAgICAgCiAgICAgd2hpbGUgKFJlZlB0cjxOb2RlPiBub2RlID0gaG9sZGVyLT5m
aXJzdENoaWxkKCkpIHsKLSAgICAgICAgaG9sZGVyLT5yZW1vdmVDaGlsZChub2RlLmdldCgpLCBB
U1NFUlRfTk9fRVhDRVBUSU9OKTsKLSAgICAgICAgbV9mcmFnbWVudC0+YXBwZW5kQ2hpbGQobm9k
ZS5nZXQoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAgIGhvbGRlci0+cmVtb3ZlQ2hp
bGQoKm5vZGUsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAgICBtX2ZyYWdtZW50LT5hcHBl
bmRDaGlsZCgqbm9kZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgfQogCiAgICAgcmVtb3Zl
Tm9kZShob2xkZXIpOwpAQCAtMTQ1NCw3ICsxNDU0LDcgQEAgTm9kZSogUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQ6Omluc2VydEFzTGlzdEl0ZW1zKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IHBycExp
c3QKICAgICB9CiAKICAgICB3aGlsZSAoUmVmUHRyPE5vZGU+IGxpc3RJdGVtID0gbGlzdEVsZW1l
bnQtPmZpcnN0Q2hpbGQoKSkgewotICAgICAgICBsaXN0RWxlbWVudC0+cmVtb3ZlQ2hpbGQobGlz
dEl0ZW0uZ2V0KCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAgICBsaXN0RWxlbWVudC0+
cmVtb3ZlQ2hpbGQoKmxpc3RJdGVtLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICAgICAgaWYg
KGlzU3RhcnQgfHwgaXNNaWRkbGUpIHsKICAgICAgICAgICAgIGluc2VydE5vZGVCZWZvcmUobGlz
dEl0ZW0sIGxhc3ROb2RlKTsKICAgICAgICAgICAgIGluc2VydGVkTm9kZXMucmVzcG9uZFRvTm9k
ZUluc2VydGlvbihsaXN0SXRlbS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1NwbGl0RWxlbWVudENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9T
cGxpdEVsZW1lbnRDb21tYW5kLmNwcAppbmRleCAwOWJlYjg1MTkzMWVlYWI2NTFkMjE3MWU0N2Q4
NzMyNDU1ZDFmMTA2Li4zNWQ4MjFiMmMxNmEyYmViMjc3MGE0ODE2ZjdjOGNjODU5MGQwNTNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0RWxlbWVudENvbW1hbmQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BsaXRFbGVtZW50Q29tbWFuZC5jcHAKQEAg
LTQ3LDE2ICs0NywxNiBAQCB2b2lkIFNwbGl0RWxlbWVudENvbW1hbmQ6OmV4ZWN1dGVBcHBseSgp
CiAgICAgaWYgKG1fYXRDaGlsZC0+cGFyZW50Tm9kZSgpICE9IG1fZWxlbWVudDIpCiAgICAgICAg
IHJldHVybjsKICAgICAKLSAgICBWZWN0b3I8UmVmUHRyPE5vZGU+PiBjaGlsZHJlbjsKKyAgICBW
ZWN0b3I8UmVmPE5vZGU+PiBjaGlsZHJlbjsKICAgICBmb3IgKE5vZGUqIG5vZGUgPSBtX2VsZW1l
bnQyLT5maXJzdENoaWxkKCk7IG5vZGUgIT0gbV9hdENoaWxkOyBub2RlID0gbm9kZS0+bmV4dFNp
YmxpbmcoKSkKLSAgICAgICAgY2hpbGRyZW4uYXBwZW5kKG5vZGUpOworICAgICAgICBjaGlsZHJl
bi5hcHBlbmQoKm5vZGUpOwogICAgIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIAog
ICAgIENvbnRhaW5lck5vZGUqIHBhcmVudCA9IG1fZWxlbWVudDItPnBhcmVudE5vZGUoKTsKICAg
ICBpZiAoIXBhcmVudCB8fCAhcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxlKCkpCiAgICAgICAgIHJl
dHVybjsKLSAgICBwYXJlbnQtPmluc2VydEJlZm9yZShtX2VsZW1lbnQxLmdldCgpLCBtX2VsZW1l
bnQyLmdldCgpLCBlYyk7CisgICAgcGFyZW50LT5pbnNlcnRCZWZvcmUoKm1fZWxlbWVudDEsIG1f
ZWxlbWVudDIuZ2V0KCksIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybjsKIApAQCAt
NjUsNyArNjUsNyBAQCB2b2lkIFNwbGl0RWxlbWVudENvbW1hbmQ6OmV4ZWN1dGVBcHBseSgpCiAK
ICAgICBzaXplX3Qgc2l6ZSA9IGNoaWxkcmVuLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgbV9lbGVtZW50MS0+YXBwZW5kQ2hpbGQoY2hpbGRy
ZW5baV0sIGVjKTsKKyAgICAgICAgbV9lbGVtZW50MS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNo
aWxkcmVuW2ldKSwgZWMpOwogfQogICAgIAogdm9pZCBTcGxpdEVsZW1lbnRDb21tYW5kOjpkb0Fw
cGx5KCkKQEAgLTgwLDE1ICs4MCwxNSBAQCB2b2lkIFNwbGl0RWxlbWVudENvbW1hbmQ6OmRvVW5h
cHBseSgpCiAgICAgaWYgKCFtX2VsZW1lbnQxIHx8ICFtX2VsZW1lbnQxLT5oYXNFZGl0YWJsZVN0
eWxlKCkgfHwgIW1fZWxlbWVudDItPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgVmVjdG9yPFJlZlB0cjxOb2RlPj4gY2hpbGRyZW47CisgICAgVmVjdG9yPFJlZjxO
b2RlPj4gY2hpbGRyZW47CiAgICAgZm9yIChOb2RlKiBub2RlID0gbV9lbGVtZW50MS0+Zmlyc3RD
aGlsZCgpOyBub2RlOyBub2RlID0gbm9kZS0+bmV4dFNpYmxpbmcoKSkKLSAgICAgICAgY2hpbGRy
ZW4uYXBwZW5kKG5vZGUpOworICAgICAgICBjaGlsZHJlbi5hcHBlbmQoKm5vZGUpOwogCiAgICAg
UmVmUHRyPE5vZGU+IHJlZkNoaWxkID0gbV9lbGVtZW50Mi0+Zmlyc3RDaGlsZCgpOwogCiAgICAg
c2l6ZV90IHNpemUgPSBjaGlsZHJlbi5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBzaXplOyArK2kpCi0gICAgICAgIG1fZWxlbWVudDItPmluc2VydEJlZm9yZShjaGlsZHJlbltp
XS5nZXQoKSwgcmVmQ2hpbGQuZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOworICAgICAgICBtX2Vs
ZW1lbnQyLT5pbnNlcnRCZWZvcmUoV1RGOjptb3ZlKGNoaWxkcmVuW2ldKSwgcmVmQ2hpbGQuZ2V0
KCksIElHTk9SRV9FWENFUFRJT04pOwogCiAgICAgLy8gUmVjb3ZlciB0aGUgaWQgYXR0cmlidXRl
IG9mIHRoZSBvcmlnaW5hbCBlbGVtZW50LgogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgaWQgPSBt
X2VsZW1lbnQxLT5nZXRJZEF0dHJpYnV0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1NwbGl0VGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCAxN2E4MTdmOWFjMjZkZTk5NGQ0MThkNGQ2
NDlhNmI4ZjZmOGM0ZjBiLi42OTk5MTM5OTVkZmZlM2EwMWUzZTAyNWYwZDExMGI4YjZiNTBkNjBj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0VGV4dE5vZGVDb21tYW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0VGV4dE5vZGVDb21tYW5kLmNw
cApAQCAtOTUsNyArOTUsNyBAQCB2b2lkIFNwbGl0VGV4dE5vZGVDb21tYW5kOjpkb1JlYXBwbHko
KQogdm9pZCBTcGxpdFRleHROb2RlQ29tbWFuZDo6aW5zZXJ0VGV4dDFBbmRUcmltVGV4dDIoKQog
ewogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIG1fdGV4dDItPnBhcmVudE5vZGUoKS0+
aW5zZXJ0QmVmb3JlKG1fdGV4dDEuZ2V0KCksIG1fdGV4dDIuZ2V0KCksIGVjKTsKKyAgICBtX3Rl
eHQyLT5wYXJlbnROb2RlKCktPmluc2VydEJlZm9yZSgqbV90ZXh0MSwgbV90ZXh0Mi5nZXQoKSwg
ZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuOwogICAgIG1fdGV4dDItPmRlbGV0ZURh
dGEoMCwgbV9vZmZzZXQsIGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
V3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvV3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kLmNwcAppbmRleCA1NjQ2ZjM0MTZjODVm
MmU2MDMwZjQ3NGQ0MzBiZjhmNzQyNWU3ZmQ2Li5mODBiNzczN2Y4YWQ5NmUzZTc4ZjE0NTliZjU3
ZTJmMzUxOWViOWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1dyYXBDb250
ZW50c0luRHVtbXlTcGFuQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9X
cmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1hbmQuY3BwCkBAIC00MCwxNSArNDAsMTUgQEAgV3Jh
cENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kOjpXcmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1h
bmQoUGFzc1JlZlB0cjxFbGVtZW4KIAogdm9pZCBXcmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1h
bmQ6OmV4ZWN1dGVBcHBseSgpCiB7Ci0gICAgVmVjdG9yPFJlZlB0cjxOb2RlPj4gY2hpbGRyZW47
CisgICAgVmVjdG9yPFJlZjxOb2RlPj4gY2hpbGRyZW47CiAgICAgZm9yIChOb2RlKiBjaGlsZCA9
IG1fZWxlbWVudC0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxp
bmcoKSkKLSAgICAgICAgY2hpbGRyZW4uYXBwZW5kKGNoaWxkKTsKKyAgICAgICAgY2hpbGRyZW4u
YXBwZW5kKCpjaGlsZCk7CiAKICAgICBzaXplX3Qgc2l6ZSA9IGNoaWxkcmVuLnNpemUoKTsKICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgbV9kdW1teVNwYW4t
PmFwcGVuZENoaWxkKGNoaWxkcmVuW2ldLnJlbGVhc2UoKSwgSUdOT1JFX0VYQ0VQVElPTik7Cisg
ICAgICAgIG1fZHVtbXlTcGFuLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoY2hpbGRyZW5baV0pLCBJ
R05PUkVfRVhDRVBUSU9OKTsKIAotICAgIG1fZWxlbWVudC0+YXBwZW5kQ2hpbGQobV9kdW1teVNw
YW4uZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOworICAgIG1fZWxlbWVudC0+YXBwZW5kQ2hpbGQo
Km1fZHVtbXlTcGFuLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KIAogdm9pZCBXcmFwQ29udGVudHNJ
bkR1bW15U3BhbkNvbW1hbmQ6OmRvQXBwbHkoKQpAQCAtNjUsMTMgKzY1LDEzIEBAIHZvaWQgV3Jh
cENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kOjpkb1VuYXBwbHkoKQogICAgIGlmICghbV9kdW1t
eVNwYW4gfHwgIW1fZWxlbWVudC0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBWZWN0b3I8UmVmUHRyPE5vZGU+PiBjaGlsZHJlbjsKKyAgICBWZWN0b3I8UmVmPE5v
ZGU+PiBjaGlsZHJlbjsKICAgICBmb3IgKE5vZGUqIGNoaWxkID0gbV9kdW1teVNwYW4tPmZpcnN0
Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCi0gICAgICAgIGNo
aWxkcmVuLmFwcGVuZChjaGlsZCk7CisgICAgICAgIGNoaWxkcmVuLmFwcGVuZCgqY2hpbGQpOwog
CiAgICAgc2l6ZV90IHNpemUgPSBjaGlsZHJlbi5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBzaXplOyArK2kpCi0gICAgICAgIG1fZWxlbWVudC0+YXBwZW5kQ2hpbGQoY2hpbGRy
ZW5baV0ucmVsZWFzZSgpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgbV9lbGVtZW50LT5h
cHBlbmRDaGlsZChXVEY6Om1vdmUoY2hpbGRyZW5baV0pLCBJR05PUkVfRVhDRVBUSU9OKTsKIAog
ICAgIG1fZHVtbXlTcGFuLT5yZW1vdmUoSUdOT1JFX0VYQ0VQVElPTik7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0VkaXRvckNvY29hLm1tIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9jb2NvYS9FZGl0b3JDb2NvYS5tbQppbmRleCBjZTRiY2JjYTRiZjMyYTlk
NTMzN2JlYjkyZGYxZjdlMGZhOWM5OGYzLi45NWU2NmRiMGRlYTc4Mjk0NmVkNjAwNjEzZTZkN2M5
MWM0ZDE2ZDE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0VkaXRv
ckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRWRpdG9yQ29jb2Eu
bW0KQEAgLTU2LDE2ICs1NiwxNiBAQCBSZW5kZXJTdHlsZSogRWRpdG9yOjpzdHlsZUZvclNlbGVj
dGlvblN0YXJ0KEZyYW1lKiBmcmFtZSwgTm9kZSAqJm5vZGVUb1JlbW92ZSkKICAgICBpZiAoIXR5
cGluZ1N0eWxlIHx8ICF0eXBpbmdTdHlsZS0+c3R5bGUoKSkKICAgICAgICAgcmV0dXJuICZwb3Np
dGlvbi5kZXByZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigpLT5zdHlsZSgpOwogCi0gICAgUmVmUHRy
PEVsZW1lbnQ+IHN0eWxlRWxlbWVudCA9IGZyYW1lLT5kb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50
KEhUTUxOYW1lczo6c3BhblRhZywgZmFsc2UpOworICAgIFJlZjxFbGVtZW50PiBzdHlsZUVsZW1l
bnQgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChIVE1MTmFtZXM6OnNwYW5UYWcs
IGZhbHNlKTsKIAogICAgIFN0cmluZyBzdHlsZVRleHQgPSB0eXBpbmdTdHlsZS0+c3R5bGUoKS0+
YXNUZXh0KCkgKyAiIGRpc3BsYXk6IGlubGluZSI7CiAgICAgc3R5bGVFbGVtZW50LT5zZXRBdHRy
aWJ1dGUoSFRNTE5hbWVzOjpzdHlsZUF0dHIsIHN0eWxlVGV4dCk7CiAKICAgICBzdHlsZUVsZW1l
bnQtPmFwcGVuZENoaWxkKGZyYW1lLT5kb2N1bWVudCgpLT5jcmVhdGVFZGl0aW5nVGV4dE5vZGUo
IiIpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAotICAgIHBvc2l0aW9uLmRlcHJlY2F0ZWROb2Rl
KCktPnBhcmVudE5vZGUoKS0+YXBwZW5kQ2hpbGQoc3R5bGVFbGVtZW50LCBBU1NFUlRfTk9fRVhD
RVBUSU9OKTsKKyAgICBwb3NpdGlvbi5kZXByZWNhdGVkTm9kZSgpLT5wYXJlbnROb2RlKCktPmFw
cGVuZENoaWxkKHN0eWxlRWxlbWVudC5jb3B5UmVmKCksIEFTU0VSVF9OT19FWENFUFRJT04pOwog
Ci0gICAgbm9kZVRvUmVtb3ZlID0gc3R5bGVFbGVtZW50LmdldCgpOworICAgIG5vZGVUb1JlbW92
ZSA9IHN0eWxlRWxlbWVudC5wdHIoKTsKIAogICAgIGZyYW1lLT5kb2N1bWVudCgpLT51cGRhdGVT
dHlsZUlmTmVlZGVkKCk7CiAgICAgcmV0dXJuIHN0eWxlRWxlbWVudC0+cmVuZGVyZXIoKSA/ICZz
dHlsZUVsZW1lbnQtPnJlbmRlcmVyKCktPnN0eWxlKCkgOiBudWxscHRyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAppbmRleCA4ZjA0ZDA4MTM1MmI5NjMyNTZmYmFkNzU3ZmUx
MzVlNmRjZDNkNzUwLi43Y2FhMTRmNGJlMzdjNjEzNDQ5Yzk0YTZhZGRiYzU5ZWI1ZTZiZTUzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcApAQCAtODk5LDIwICs4OTksMTgg
QEAgYm9vbCBpc0VtcHR5VGFibGVDZWxsKGNvbnN0IE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuICFj
aGlsZFJlbmRlcmVyLT5uZXh0U2libGluZygpOwogfQogCi1QYXNzUmVmUHRyPEhUTUxFbGVtZW50
PiBjcmVhdGVEZWZhdWx0UGFyYWdyYXBoRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8
SFRNTEVsZW1lbnQ+IGNyZWF0ZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50KERvY3VtZW50JiBkb2N1
bWVudCkKIHsKICAgICBzd2l0Y2ggKGRvY3VtZW50LmZyYW1lKCktPmVkaXRvcigpLmRlZmF1bHRQ
YXJhZ3JhcGhTZXBhcmF0b3IoKSkgewogICAgIGNhc2UgRWRpdG9yUGFyYWdyYXBoU2VwYXJhdG9y
SXNEaXY6CiAgICAgICAgIHJldHVybiBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsK
ICAgICBjYXNlIEVkaXRvclBhcmFncmFwaFNlcGFyYXRvcklzUDoKLSAgICAgICAgcmV0dXJuIEhU
TUxQYXJhZ3JhcGhFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgICAgICBicmVhazsKICAg
ICB9Ci0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1
cm4gSFRNTFBhcmFncmFwaEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiB9CiAKLVBhc3NSZWZQ
dHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZUJyZWFrRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCitS
ZWY8SFRNTEVsZW1lbnQ+IGNyZWF0ZUJyZWFrRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiB7
CiAgICAgcmV0dXJuIEhUTUxCUkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiB9CkBAIC05NzEs
NyArOTY5LDcgQEAgUG9zaXRpb24gcG9zaXRpb25PdXRzaWRlVGFiU3Bhbihjb25zdCBQb3NpdGlv
biYgcG9zKQogICAgIHJldHVybiBwb3NpdGlvbkluUGFyZW50QmVmb3JlTm9kZShub2RlKTsKIH0K
IAotUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVhdGVUYWJTcGFuRWxlbWVudChEb2N1bWVudCYgZG9j
dW1lbnQsIFBhc3NSZWZQdHI8Tm9kZT4gcHJwVGFiVGV4dE5vZGUpCitSZWY8RWxlbWVudD4gY3Jl
YXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBQYXNzUmVmUHRyPE5vZGU+IHBy
cFRhYlRleHROb2RlKQogewogICAgIFJlZlB0cjxOb2RlPiB0YWJUZXh0Tm9kZSA9IHBycFRhYlRl
eHROb2RlOwogCkBAIC05ODQsMTcgKzk4MiwxNyBAQCBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0
ZVRhYlNwYW5FbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZlB0cjxOb2RlPiBwcgog
ICAgIGlmICghdGFiVGV4dE5vZGUpCiAgICAgICAgIHRhYlRleHROb2RlID0gZG9jdW1lbnQuY3Jl
YXRlRWRpdGluZ1RleHROb2RlKCJcdCIpOwogCi0gICAgc3BhbkVsZW1lbnQtPmFwcGVuZENoaWxk
KHRhYlRleHROb2RlLnJlbGVhc2UoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgc3BhbkVs
ZW1lbnQtPmFwcGVuZENoaWxkKHRhYlRleHROb2RlLnJlbGVhc2VOb25OdWxsKCksIEFTU0VSVF9O
T19FWENFUFRJT04pOwogCi0gICAgcmV0dXJuIHNwYW5FbGVtZW50LnJlbGVhc2UoKTsKKyAgICBy
ZXR1cm4gc3BhbkVsZW1lbnQucmVsZWFzZU5vbk51bGwoKTsKIH0KIAotUGFzc1JlZlB0cjxFbGVt
ZW50PiBjcmVhdGVUYWJTcGFuRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmlu
ZyYgdGFiVGV4dCkKK1JlZjxFbGVtZW50PiBjcmVhdGVUYWJTcGFuRWxlbWVudChEb2N1bWVudCYg
ZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGFiVGV4dCkKIHsKICAgICByZXR1cm4gY3JlYXRlVGFi
U3BhbkVsZW1lbnQoZG9jdW1lbnQsIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRhYlRleHQpKTsK
IH0KIAotUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVhdGVUYWJTcGFuRWxlbWVudChEb2N1bWVudCYg
ZG9jdW1lbnQpCitSZWY8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmIGRv
Y3VtZW50KQogewogICAgIHJldHVybiBjcmVhdGVUYWJTcGFuRWxlbWVudChkb2N1bWVudCwgUGFz
c1JlZlB0cjxOb2RlPigpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
aHRtbGVkaXRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuaAppbmRl
eCA3ODhhZjNmY2ZiOTVlN2QyZDIyODc2MmE1MTU1NjFlZjA4OTNkMGVlLi5mNjlkOWQ4ZWM3NTE3
ODExYjllZDRmM2M3MDc3NDUwYTE1ODExNTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL2h0bWxlZGl0aW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRp
dGluZy5oCkBAIC0yMDYsOCArMjA2LDggQEAgVmlzaWJsZVBvc2l0aW9uIHZpc2libGVQb3NpdGlv
bkZvckluZGV4VXNpbmdDaGFyYWN0ZXJJdGVyYXRvcihOb2RlKiwgaW50IGluZGV4KTsKICAgICAK
IC8vIEZ1bmN0aW9ucyByZXR1cm5pbmcgSFRNTEVsZW1lbnQKICAgICAKLVdFQkNPUkVfRVhQT1JU
IFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50KERv
Y3VtZW50Jik7Ci1QYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVCcmVha0VsZW1lbnQoRG9j
dW1lbnQmKTsKK1dFQkNPUkVfRVhQT1JUIFJlZjxIVE1MRWxlbWVudD4gY3JlYXRlRGVmYXVsdFBh
cmFncmFwaEVsZW1lbnQoRG9jdW1lbnQmKTsKK1JlZjxIVE1MRWxlbWVudD4gY3JlYXRlQnJlYWtF
bGVtZW50KERvY3VtZW50Jik7CiBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVPcmRlcmVk
TGlzdEVsZW1lbnQoRG9jdW1lbnQmKTsKIFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZVVu
b3JkZXJlZExpc3RFbGVtZW50KERvY3VtZW50Jik7CiBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBj
cmVhdGVMaXN0SXRlbUVsZW1lbnQoRG9jdW1lbnQmKTsKQEAgLTIyMiwxMCArMjIyLDEwIEBAIE5v
ZGUqIGVuY2xvc2luZ0xpc3RDaGlsZChOb2RlKik7CiAvLyBFbGVtZW50CiAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCiAKLVBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1l
bnQmKTsKLVBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQm
LCBQYXNzUmVmUHRyPE5vZGU+IHRhYlRleHROb2RlKTsKLVBhc3NSZWZQdHI8RWxlbWVudD4gY3Jl
YXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRhYlRleHQpOwotUGFz
c1JlZlB0cjxFbGVtZW50PiBjcmVhdGVCbG9ja1BsYWNlaG9sZGVyRWxlbWVudChEb2N1bWVudCYp
OworUmVmPEVsZW1lbnQ+IGNyZWF0ZVRhYlNwYW5FbGVtZW50KERvY3VtZW50Jik7CitSZWY8RWxl
bWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmLCBQYXNzUmVmUHRyPE5vZGU+IHRh
YlRleHROb2RlKTsKK1JlZjxFbGVtZW50PiBjcmVhdGVUYWJTcGFuRWxlbWVudChEb2N1bWVudCYs
IGNvbnN0IFN0cmluZyYgdGFiVGV4dCk7CitSZWY8RWxlbWVudD4gY3JlYXRlQmxvY2tQbGFjZWhv
bGRlckVsZW1lbnQoRG9jdW1lbnQmKTsKIAogRWxlbWVudCogZWRpdGFibGVSb290Rm9yUG9zaXRp
b24oY29uc3QgUG9zaXRpb24mLCBFZGl0YWJsZVR5cGUgPSBDb250ZW50SXNFZGl0YWJsZSk7CiBF
bGVtZW50KiB1bnNwbGl0dGFibGVFbGVtZW50Rm9yUG9zaXRpb24oY29uc3QgUG9zaXRpb24mKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbQppbmRleCAyMjZlYWQ1YTQzYmY1
OTgyZDliMWJhODE0OWEyMDhlMTJhZTcwMTFmLi44MTUxOTg1ZjBiOTFlNzZmMDAzMTU2YjFhNTIz
NjJmNjI3MGFmMDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0
b3JJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tCkBA
IC0zOTcsNyArMzk3LDcgQEAgdm9pZCBFZGl0b3I6OldlYkNvbnRlbnRSZWFkZXI6OmFkZEZyYWdt
ZW50KFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gbmV3RnJhZ20KICAgICBpZiAoZnJhZ21l
bnQpIHsKICAgICAgICAgaWYgKG5ld0ZyYWdtZW50ICYmIG5ld0ZyYWdtZW50LT5maXJzdENoaWxk
KCkpIHsKICAgICAgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWM7Ci0gICAgICAgICAgICBmcmFnbWVu
dC0+YXBwZW5kQ2hpbGQobmV3RnJhZ21lbnQtPmZpcnN0Q2hpbGQoKSwgZWMpOworICAgICAgICAg
ICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKCpuZXdGcmFnbWVudC0+Zmlyc3RDaGlsZCgpLCBlYyk7
CiAgICAgICAgIH0KICAgICB9IGVsc2UKICAgICAgICAgZnJhZ21lbnQgPSBuZXdGcmFnbWVudDsK
QEAgLTQ5NCwxMiArNDk0LDEyIEBAIGJvb2wgRWRpdG9yOjpXZWJDb250ZW50UmVhZGVyOjpyZWFk
VVJMKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmKQogICAgICAgICAgICAgcmV0dXJuIGZy
YWdtZW50OwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKLSAgICAgICAgUmVmUHRyPEVsZW1lbnQ+
IGFuY2hvciA9IGZyYW1lLmRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoSFRNTE5hbWVzOjphVGFn
LCBmYWxzZSk7CisgICAgICAgIFJlZjxFbGVtZW50PiBhbmNob3IgPSBmcmFtZS5kb2N1bWVudCgp
LT5jcmVhdGVFbGVtZW50KEhUTUxOYW1lczo6YVRhZywgZmFsc2UpOwogICAgICAgICBhbmNob3It
PnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmhyZWZBdHRyLCB1cmwuc3RyaW5nKCkpOwogICAgICAg
ICBhbmNob3ItPmFwcGVuZENoaWxkKGZyYW1lLmRvY3VtZW50KCktPmNyZWF0ZVRleHROb2RlKFtb
KE5TVVJMICopdXJsIGFic29sdXRlU3RyaW5nXSBwcmVjb21wb3NlZFN0cmluZ1dpdGhDYW5vbmlj
YWxNYXBwaW5nXSkpOwogCiAgICAgICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBuZXdGcmFn
bWVudCA9IGZyYW1lLmRvY3VtZW50KCktPmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAgICAg
ICAgbmV3RnJhZ21lbnQtPmFwcGVuZENoaWxkKGFuY2hvci5yZWxlYXNlKCkpOworICAgICAgICBu
ZXdGcmFnbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGFuY2hvcikpOwogICAgICAgICBhZGRG
cmFnbWVudChuZXdGcmFnbWVudCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KQEAgLTU4
Myw3ICs1ODMsNyBAQCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IEVkaXRvcjo6Y3JlYXRl
RnJhZ21lbnRGb3JJbWFnZVJlc291cmNlQW5kQWRkUmVzb3VyYwogICAgIGlmICghcmVzb3VyY2Up
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgUmVmUHRyPEVsZW1lbnQ+IGltYWdlRWxl
bWVudCA9IG1fZnJhbWUuZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChIVE1MTmFtZXM6OmltZ1Rh
ZywgZmFsc2UpOworICAgIFJlZjxFbGVtZW50PiBpbWFnZUVsZW1lbnQgPSBtX2ZyYW1lLmRvY3Vt
ZW50KCktPmNyZWF0ZUVsZW1lbnQoSFRNTE5hbWVzOjppbWdUYWcsIGZhbHNlKTsKICAgICAvLyBG
SVhNRTogVGhlIGNvZGUgaW4gY3JlYXRlRnJhZ21lbnRBbmRBZGRSZXNvdXJjZXMgY2FsbHMgc2V0
RGVmZXJzTG9hZGluZyh0cnVlKS4gRG9uJ3Qgd2UgbmVlZCB0aGF0IGhlcmU/CiAgICAgaWYgKERv
Y3VtZW50TG9hZGVyKiBsb2FkZXIgPSBtX2ZyYW1lLmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCkp
CiAgICAgICAgIGxvYWRlci0+YWRkQXJjaGl2ZVJlc291cmNlKHJlc291cmNlLmdldCgpKTsKQEAg
LTU5Miw3ICs1OTIsNyBAQCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IEVkaXRvcjo6Y3Jl
YXRlRnJhZ21lbnRGb3JJbWFnZVJlc291cmNlQW5kQWRkUmVzb3VyYwogICAgIGltYWdlRWxlbWVu
dC0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6c3JjQXR0ciwgW1VSTCBpc0ZpbGVVUkxdID8gW1VS
TCBhYnNvbHV0ZVN0cmluZ10gOiByZXNvdXJjZS0+dXJsKCkpOwogCiAgICAgUmVmUHRyPERvY3Vt
ZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gbV9mcmFtZS5kb2N1bWVudCgpLT5jcmVhdGVEb2N1bWVu
dEZyYWdtZW50KCk7Ci0gICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKGltYWdlRWxlbWVudC5yZWxl
YXNlKCkpOworICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoaW1hZ2VFbGVtZW50
KSk7CiAKICAgICByZXR1cm4gZnJhZ21lbnQucmVsZWFzZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9tYWMvRWRpdG9yTWFjLm1tCmluZGV4IDZjZWY0ODk5NTliNDk1ZDA3Njk5MDE1M2JiOTVh
MWMyZjA5ZmFmMDQuLmNkMjUyZGNmZDMxYzNlMDBjMTU3N2RiZjkzMGM4NjgzYjUwZGQwMGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KQEAgLTUyNywxNSArNTI3LDE1
IEBAIGJvb2wgRWRpdG9yOjpXZWJDb250ZW50UmVhZGVyOjpyZWFkRmlsZW5hbWVzKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBwYXRocykKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7IGkr
KykgewogICAgICAgICBTdHJpbmcgdGV4dCA9IHBhdGhzW2ldOwogI2lmIEVOQUJMRShBVFRBQ0hN
RU5UX0VMRU1FTlQpCi0gICAgICAgIFJlZlB0cjxIVE1MQXR0YWNobWVudEVsZW1lbnQ+IGF0dGFj
aG1lbnQgPSBIVE1MQXR0YWNobWVudEVsZW1lbnQ6OmNyZWF0ZShhdHRhY2htZW50VGFnLCBkb2N1
bWVudCk7CisgICAgICAgIFJlZjxIVE1MQXR0YWNobWVudEVsZW1lbnQ+IGF0dGFjaG1lbnQgPSBI
VE1MQXR0YWNobWVudEVsZW1lbnQ6OmNyZWF0ZShhdHRhY2htZW50VGFnLCBkb2N1bWVudCk7CiAg
ICAgICAgIGF0dGFjaG1lbnQtPnNldEZpbGUoRmlsZTo6Y3JlYXRlKFtbTlNVUkwgZmlsZVVSTFdp
dGhQYXRoOnRleHRdIHBhdGhdKS5wdHIoKSk7Ci0gICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGls
ZChhdHRhY2htZW50LnJlbGVhc2UoKSk7CisgICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChX
VEY6Om1vdmUoYXR0YWNobWVudCkpOwogI2Vsc2UKICAgICAgICAgdGV4dCA9IGZyYW1lLmVkaXRv
cigpLmNsaWVudCgpLT51c2VyVmlzaWJsZVN0cmluZyhbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOnRl
eHRdKTsKIAotICAgICAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IHBhcmFncmFwaCA9IGNyZWF0ZURl
ZmF1bHRQYXJhZ3JhcGhFbGVtZW50KGRvY3VtZW50KTsKKyAgICAgICAgUmVmPEhUTUxFbGVtZW50
PiBwYXJhZ3JhcGggPSBjcmVhdGVEZWZhdWx0UGFyYWdyYXBoRWxlbWVudChkb2N1bWVudCk7CiAg
ICAgICAgIHBhcmFncmFwaC0+YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGV4
dCkpOwotICAgICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQocGFyYWdyYXBoLnJlbGVhc2UoKSk7
CisgICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUocGFyYWdyYXBoKSk7CiAj
ZW5kaWYKICAgICB9CiAKQEAgLTU5NCwxMiArNTk0LDEyIEBAIGJvb2wgRWRpdG9yOjpXZWJDb250
ZW50UmVhZGVyOjpyZWFkVVJMKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlKQog
ICAgIGlmICh1cmwuc3RyaW5nKCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICBSZWZQdHI8RWxlbWVudD4gYW5jaG9yID0gZnJhbWUuZG9jdW1lbnQoKS0+Y3JlYXRlRWxl
bWVudChIVE1MTmFtZXM6OmFUYWcsIGZhbHNlKTsKKyAgICBSZWY8RWxlbWVudD4gYW5jaG9yID0g
ZnJhbWUuZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChIVE1MTmFtZXM6OmFUYWcsIGZhbHNlKTsK
ICAgICBhbmNob3ItPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmhyZWZBdHRyLCB1cmwuc3RyaW5n
KCkpOwogICAgIGFuY2hvci0+YXBwZW5kQ2hpbGQoZnJhbWUuZG9jdW1lbnQoKS0+Y3JlYXRlVGV4
dE5vZGUoW3RpdGxlIHByZWNvbXBvc2VkU3RyaW5nV2l0aENhbm9uaWNhbE1hcHBpbmddKSk7CiAK
ICAgICBmcmFnbWVudCA9IGZyYW1lLmRvY3VtZW50KCktPmNyZWF0ZURvY3VtZW50RnJhZ21lbnQo
KTsKLSAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoYW5jaG9yLnJlbGVhc2UoKSk7CisgICAgZnJh
Z21lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShhbmNob3IpKTsKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIApAQCAtNjM1LDExICs2MzUsMTEgQEAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBF
ZGl0b3I6OmNyZWF0ZUZyYWdtZW50Rm9ySW1hZ2VSZXNvdXJjZUFuZEFkZFJlc291cmMKICAgICBp
ZiAoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciA9IG1fZnJhbWUubG9hZGVyKCkuZG9jdW1lbnRMb2Fk
ZXIoKSkKICAgICAgICAgbG9hZGVyLT5hZGRBcmNoaXZlUmVzb3VyY2UocmVzb3VyY2UuZ2V0KCkp
OwogCi0gICAgUmVmUHRyPEVsZW1lbnQ+IGltYWdlRWxlbWVudCA9IGRvY3VtZW50KCkuY3JlYXRl
RWxlbWVudChIVE1MTmFtZXM6OmltZ1RhZywgZmFsc2UpOworICAgIFJlZjxFbGVtZW50PiBpbWFn
ZUVsZW1lbnQgPSBkb2N1bWVudCgpLmNyZWF0ZUVsZW1lbnQoSFRNTE5hbWVzOjppbWdUYWcsIGZh
bHNlKTsKICAgICBpbWFnZUVsZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OnNyY0F0dHIs
IHJlc291cmNlLT51cmwoKS5zdHJpbmcoKSk7CiAKICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVu
dD4gZnJhZ21lbnQgPSBkb2N1bWVudCgpLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAgICBm
cmFnbWVudC0+YXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50LnJlbGVhc2UoKSk7CisgICAgZnJhZ21l
bnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShpbWFnZUVsZW1lbnQpKTsKIAogICAgIHJldHVybiBm
cmFnbWVudC5yZWxlYXNlKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L21hcmt1cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKaW5kZXggMGNh
YzhiNDBmZDhhM2M2NTE4MDQxNTQ4ZWI2NDlkOTRiNTM2ZDJkMi4uMjA1NGM0ZThkYmZiNjFlMWIz
NzUyZDhlYWFiYzIyYTA4MTMxMGQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9tYXJrdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcApAQCAt
NzA0LDEyICs3MDQsMTIgQEAgU3RyaW5nIGNyZWF0ZU1hcmt1cChjb25zdCBOb2RlJiBub2RlLCBF
Q2hpbGRyZW5Pbmx5IGNoaWxkcmVuT25seSwgVmVjdG9yPE5vZGUqPioKICAgICByZXR1cm4gYWNj
dW11bGF0b3Iuc2VyaWFsaXplTm9kZXMoY29uc3RfY2FzdDxOb2RlJj4obm9kZSksIGNoaWxkcmVu
T25seSwgdGFnTmFtZXNUb1NraXApOwogfQogCi1zdGF0aWMgdm9pZCBmaWxsQ29udGFpbmVyRnJv
bVN0cmluZyhDb250YWluZXJOb2RlKiBwYXJhZ3JhcGgsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQor
c3RhdGljIHZvaWQgZmlsbENvbnRhaW5lckZyb21TdHJpbmcoQ29udGFpbmVyTm9kZSYgcGFyYWdy
YXBoLCBjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBw
YXJhZ3JhcGgtPmRvY3VtZW50KCk7CisgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gcGFyYWdyYXBo
LmRvY3VtZW50KCk7CiAKICAgICBpZiAoc3RyaW5nLmlzRW1wdHkoKSkgewotICAgICAgICBwYXJh
Z3JhcGgtPmFwcGVuZENoaWxkKGNyZWF0ZUJsb2NrUGxhY2Vob2xkZXJFbGVtZW50KGRvY3VtZW50
KSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAgIHBhcmFncmFwaC5hcHBlbmRDaGlsZChj
cmVhdGVCbG9ja1BsYWNlaG9sZGVyRWxlbWVudChkb2N1bWVudCksIEFTU0VSVF9OT19FWENFUFRJ
T04pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC03MjYsMTEgKzcyNiwxMSBAQCBzdGF0
aWMgdm9pZCBmaWxsQ29udGFpbmVyRnJvbVN0cmluZyhDb250YWluZXJOb2RlKiBwYXJhZ3JhcGgs
IGNvbnN0IFN0cmluZyYgc3RyaQogICAgICAgICAvLyBhcHBlbmQgdGhlIG5vbi10YWIgdGV4dHVh
bCBwYXJ0CiAgICAgICAgIGlmICghcy5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIGlmICghdGFi
VGV4dC5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICBwYXJhZ3JhcGgtPmFwcGVuZENoaWxk
KGNyZWF0ZVRhYlNwYW5FbGVtZW50KGRvY3VtZW50LCB0YWJUZXh0KSwgQVNTRVJUX05PX0VYQ0VQ
VElPTik7CisgICAgICAgICAgICAgICAgcGFyYWdyYXBoLmFwcGVuZENoaWxkKGNyZWF0ZVRhYlNw
YW5FbGVtZW50KGRvY3VtZW50LCB0YWJUZXh0KSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAg
ICAgICAgICAgICAgdGFiVGV4dCA9IGVtcHR5U3RyaW5nKCk7CiAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBSZWZQdHI8Tm9kZT4gdGV4dE5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShz
dHJpbmdXaXRoUmViYWxhbmNlZFdoaXRlc3BhY2UocywgZmlyc3QsIGkgKyAxID09IG51bUVudHJp
ZXMpKTsKLSAgICAgICAgICAgIHBhcmFncmFwaC0+YXBwZW5kQ2hpbGQodGV4dE5vZGUucmVsZWFz
ZSgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgICAgIFJlZjxOb2RlPiB0ZXh0Tm9k
ZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cmluZ1dpdGhSZWJhbGFuY2VkV2hpdGVzcGFj
ZShzLCBmaXJzdCwgaSArIDEgPT0gbnVtRW50cmllcykpOworICAgICAgICAgICAgcGFyYWdyYXBo
LmFwcGVuZENoaWxkKFdURjo6bW92ZSh0ZXh0Tm9kZSksIEFTU0VSVF9OT19FWENFUFRJT04pOwog
ICAgICAgICB9CiAKICAgICAgICAgLy8gdGhlcmUgaXMgYSB0YWIgYWZ0ZXIgZXZlcnkgZW50cnks
IGV4Y2VwdCB0aGUgbGFzdCBlbnRyeQpAQCAtNzM4LDcgKzczOCw3IEBAIHN0YXRpYyB2b2lkIGZp
bGxDb250YWluZXJGcm9tU3RyaW5nKENvbnRhaW5lck5vZGUqIHBhcmFncmFwaCwgY29uc3QgU3Ry
aW5nJiBzdHJpCiAgICAgICAgIGlmIChpICsgMSAhPSBudW1FbnRyaWVzKQogICAgICAgICAgICAg
dGFiVGV4dC5hcHBlbmQoJ1x0Jyk7CiAgICAgICAgIGVsc2UgaWYgKCF0YWJUZXh0LmlzRW1wdHko
KSkKLSAgICAgICAgICAgIHBhcmFncmFwaC0+YXBwZW5kQ2hpbGQoY3JlYXRlVGFiU3BhbkVsZW1l
bnQoZG9jdW1lbnQsIHRhYlRleHQpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgICAg
IHBhcmFncmFwaC5hcHBlbmRDaGlsZChjcmVhdGVUYWJTcGFuRWxlbWVudChkb2N1bWVudCwgdGFi
VGV4dCksIEFTU0VSVF9OT19FWENFUFRJT04pOwogCiAgICAgICAgIGZpcnN0ID0gZmFsc2U7CiAg
ICAgfQpAQCAtNzc4LDEzICs3NzgsMTMgQEAgc3RhdGljIGJvb2wgY29udGV4dFByZXNlcnZlc05l
d2xpbmUoY29uc3QgUmFuZ2UmIGNvbnRleHQpCiAgICAgcmV0dXJuIGNvbnRhaW5lci0+cmVuZGVy
ZXIoKS0+c3R5bGUoKS5wcmVzZXJ2ZU5ld2xpbmUoKTsKIH0KIAotUGFzc1JlZlB0cjxEb2N1bWVu
dEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21UZXh0KFJhbmdlJiBjb250ZXh0LCBjb25zdCBT
dHJpbmcmIHRleHQpCitSZWY8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGcm9tVGV4
dChSYW5nZSYgY29udGV4dCwgY29uc3QgU3RyaW5nJiB0ZXh0KQogewogICAgIERvY3VtZW50JiBk
b2N1bWVudCA9IGNvbnRleHQub3duZXJEb2N1bWVudCgpOwotICAgIFJlZlB0cjxEb2N1bWVudEZy
YWdtZW50PiBmcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKKyAg
ICBSZWY8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVu
dEZyYWdtZW50KCk7CiAgICAgCiAgICAgaWYgKHRleHQuaXNFbXB0eSgpKQotICAgICAgICByZXR1
cm4gZnJhZ21lbnQucmVsZWFzZSgpOworICAgICAgICByZXR1cm4gZnJhZ21lbnQ7CiAKICAgICBT
dHJpbmcgc3RyaW5nID0gdGV4dDsKICAgICBzdHJpbmcucmVwbGFjZSgiXHJcbiIsICJcbiIpOwpA
QCAtNzkzLDE3ICs3OTMsMTcgQEAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVG
cmFnbWVudEZyb21UZXh0KFJhbmdlJiBjb250ZXh0LCBjb25zdCBTdHJpbmcKICAgICBpZiAoY29u
dGV4dFByZXNlcnZlc05ld2xpbmUoY29udGV4dCkpIHsKICAgICAgICAgZnJhZ21lbnQtPmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cmluZyksIEFTU0VSVF9OT19FWENFUFRJ
T04pOwogICAgICAgICBpZiAoc3RyaW5nLmVuZHNXaXRoKCdcbicpKSB7Ci0gICAgICAgICAgICBS
ZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IGNyZWF0ZUJyZWFrRWxlbWVudChkb2N1bWVudCk7Cisg
ICAgICAgICAgICBSZWY8RWxlbWVudD4gZWxlbWVudCA9IGNyZWF0ZUJyZWFrRWxlbWVudChkb2N1
bWVudCk7CiAgICAgICAgICAgICBlbGVtZW50LT5zZXRBdHRyaWJ1dGUoY2xhc3NBdHRyLCBBcHBs
ZUludGVyY2hhbmdlTmV3bGluZSk7ICAgICAgICAgICAgCi0gICAgICAgICAgICBmcmFnbWVudC0+
YXBwZW5kQ2hpbGQoZWxlbWVudC5yZWxlYXNlKCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAg
ICAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShlbGVtZW50KSwgQVNTRVJU
X05PX0VYQ0VQVElPTik7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGZyYWdtZW50LnJlbGVh
c2UoKTsKKyAgICAgICAgcmV0dXJuIGZyYWdtZW50OwogICAgIH0KIAogICAgIC8vIEEgc3RyaW5n
IHdpdGggbm8gbmV3bGluZXMgZ2V0cyBhZGRlZCBpbmxpbmUsIHJhdGhlciB0aGFuIGJlaW5nIHB1
dCBpbnRvIGEgcGFyYWdyYXBoLgogICAgIGlmIChzdHJpbmcuZmluZCgnXG4nKSA9PSBub3RGb3Vu
ZCkgewotICAgICAgICBmaWxsQ29udGFpbmVyRnJvbVN0cmluZyhmcmFnbWVudC5nZXQoKSwgc3Ry
aW5nKTsKLSAgICAgICAgcmV0dXJuIGZyYWdtZW50LnJlbGVhc2UoKTsKKyAgICAgICAgZmlsbENv
bnRhaW5lckZyb21TdHJpbmcoZnJhZ21lbnQsIHN0cmluZyk7CisgICAgICAgIHJldHVybiBmcmFn
bWVudDsKICAgICB9CiAKICAgICAvLyBCcmVhayBzdHJpbmcgaW50byBwYXJhZ3JhcGhzLiBFeHRy
YSBsaW5lIGJyZWFrcyB0dXJuIGludG8gZW1wdHkgcGFyYWdyYXBocy4KQEAgLTgyOSwxNyArODI5
LDE3IEBAIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGcm9tVGV4
dChSYW5nZSYgY29udGV4dCwgY29uc3QgU3RyaW5nCiAgICAgICAgICAgICBlbGVtZW50LT5zZXRB
dHRyaWJ1dGUoY2xhc3NBdHRyLCBBcHBsZUludGVyY2hhbmdlTmV3bGluZSk7CiAgICAgICAgIH0g
ZWxzZSBpZiAodXNlTGluZUJyZWFrKSB7CiAgICAgICAgICAgICBlbGVtZW50ID0gY3JlYXRlQnJl
YWtFbGVtZW50KGRvY3VtZW50KTsKLSAgICAgICAgICAgIGZpbGxDb250YWluZXJGcm9tU3RyaW5n
KGZyYWdtZW50LmdldCgpLCBzKTsKKyAgICAgICAgICAgIGZpbGxDb250YWluZXJGcm9tU3RyaW5n
KGZyYWdtZW50LCBzKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmICh1c2VDbG9u
ZXNPZkVuY2xvc2luZ0Jsb2NrKQogICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBibG9jay0+Y2xv
bmVFbGVtZW50V2l0aG91dENoaWxkcmVuKGRvY3VtZW50KTsKICAgICAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgICAgICBlbGVtZW50ID0gY3JlYXRlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQoZG9j
dW1lbnQpOwotICAgICAgICAgICAgZmlsbENvbnRhaW5lckZyb21TdHJpbmcoZWxlbWVudC5nZXQo
KSwgcyk7CisgICAgICAgICAgICBmaWxsQ29udGFpbmVyRnJvbVN0cmluZygqZWxlbWVudCwgcyk7
CiAgICAgICAgIH0KLSAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKGVsZW1lbnQucmVsZWFz
ZSgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxk
KGVsZW1lbnQucmVsZWFzZU5vbk51bGwoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgfQot
ICAgIHJldHVybiBmcmFnbWVudC5yZWxlYXNlKCk7CisgICAgcmV0dXJuIGZyYWdtZW50OwogfQog
CiBTdHJpbmcgZG9jdW1lbnRUeXBlU3RyaW5nKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkKQEAg
LTk0NSwxMCArOTQ1LDEwIEBAIHN0YXRpYyB2b2lkIHJlbW92ZUVsZW1lbnRGcm9tRnJhZ21lbnRQ
cmVzZXJ2aW5nQ2hpbGRyZW4oRG9jdW1lbnRGcmFnbWVudCYgZnJhZ21lCiAgICAgUmVmUHRyPE5v
ZGU+IG5leHRDaGlsZDsKICAgICBmb3IgKFJlZlB0cjxOb2RlPiBjaGlsZCA9IGVsZW1lbnQuZmly
c3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBuZXh0Q2hpbGQpIHsKICAgICAgICAgbmV4dENoaWxk
ID0gY2hpbGQtPm5leHRTaWJsaW5nKCk7Ci0gICAgICAgIGVsZW1lbnQucmVtb3ZlQ2hpbGQoY2hp
bGQuZ2V0KCksIEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgICAgICBmcmFnbWVudC5pbnNlcnRC
ZWZvcmUoY2hpbGQsICZlbGVtZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgZWxl
bWVudC5yZW1vdmVDaGlsZCgqY2hpbGQsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAgICBm
cmFnbWVudC5pbnNlcnRCZWZvcmUoKmNoaWxkLCAmZWxlbWVudCwgQVNTRVJUX05PX0VYQ0VQVElP
Tik7CiAgICAgfQotICAgIGZyYWdtZW50LnJlbW92ZUNoaWxkKCZlbGVtZW50LCBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKKyAgICBmcmFnbWVudC5yZW1vdmVDaGlsZChlbGVtZW50LCBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKIH0KIAogUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVDb250
ZXh0dWFsRnJhZ21lbnQoY29uc3QgU3RyaW5nJiBtYXJrdXAsIEhUTUxFbGVtZW50KiBlbGVtZW50
LCBQYXJzZXJDb250ZW50UG9saWN5IHBhcnNlckNvbnRlbnRQb2xpY3ksIEV4Y2VwdGlvbkNvZGUm
IGVjKQpAQCAtOTkwLDcgKzk5MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBoYXNPbmVUZXh0Q2hp
bGQoQ29udGFpbmVyTm9kZSYgbm9kZSkKICAgICByZXR1cm4gaGFzT25lQ2hpbGQobm9kZSkgJiYg
bm9kZS5maXJzdENoaWxkKCktPmlzVGV4dE5vZGUoKTsKIH0KIAotdm9pZCByZXBsYWNlQ2hpbGRy
ZW5XaXRoRnJhZ21lbnQoQ29udGFpbmVyTm9kZSYgY29udGFpbmVyLCBQYXNzUmVmUHRyPERvY3Vt
ZW50RnJhZ21lbnQ+IGZyYWdtZW50LCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgcmVwbGFjZUNo
aWxkcmVuV2l0aEZyYWdtZW50KENvbnRhaW5lck5vZGUmIGNvbnRhaW5lciwgUmVmPERvY3VtZW50
RnJhZ21lbnQ+JiYgZnJhZ21lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIFJlZjxDb250
YWluZXJOb2RlPiBjb250YWluZXJOb2RlKGNvbnRhaW5lcik7CiAgICAgQ2hpbGRMaXN0TXV0YXRp
b25TY29wZSBtdXRhdGlvbihjb250YWluZXJOb2RlKTsKQEAgLTEwMDAsMTggKzEwMDAsMTggQEAg
dm9pZCByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQoQ29udGFpbmVyTm9kZSYgY29udGFpbmVy
LCBQYXNzUmVmUHRyPERvY3VtZW50RnIKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlm
IChoYXNPbmVUZXh0Q2hpbGQoY29udGFpbmVyTm9kZSkgJiYgaGFzT25lVGV4dENoaWxkKCpmcmFn
bWVudCkpIHsKKyAgICBpZiAoaGFzT25lVGV4dENoaWxkKGNvbnRhaW5lck5vZGUpICYmIGhhc09u
ZVRleHRDaGlsZChmcmFnbWVudCkpIHsKICAgICAgICAgZG93bmNhc3Q8VGV4dD4oKmNvbnRhaW5l
ck5vZGUtPmZpcnN0Q2hpbGQoKSkuc2V0RGF0YShkb3duY2FzdDxUZXh0PigqZnJhZ21lbnQtPmZp
cnN0Q2hpbGQoKSkuZGF0YSgpLCBlYyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBp
ZiAoaGFzT25lQ2hpbGQoY29udGFpbmVyTm9kZSkpIHsKLSAgICAgICAgY29udGFpbmVyTm9kZS0+
cmVwbGFjZUNoaWxkKGZyYWdtZW50LCBjb250YWluZXJOb2RlLT5maXJzdENoaWxkKCksIGVjKTsK
KyAgICAgICAgY29udGFpbmVyTm9kZS0+cmVwbGFjZUNoaWxkKFdURjo6bW92ZShmcmFnbWVudCks
ICpjb250YWluZXJOb2RlLT5maXJzdENoaWxkKCksIGVjKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAogICAgIGNvbnRhaW5lck5vZGUtPnJlbW92ZUNoaWxkcmVuKCk7Ci0gICAgY29udGFpbmVy
Tm9kZS0+YXBwZW5kQ2hpbGQoZnJhZ21lbnQsIGVjKTsKKyAgICBjb250YWluZXJOb2RlLT5hcHBl
bmRDaGlsZChXVEY6Om1vdmUoZnJhZ21lbnQpLCBlYyk7CiB9CiAKIHZvaWQgcmVwbGFjZUNoaWxk
cmVuV2l0aFRleHQoQ29udGFpbmVyTm9kZSYgY29udGFpbmVyLCBjb25zdCBTdHJpbmcmIHRleHQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtMTAyNyw3ICsxMDI3LDcgQEAgdm9pZCByZXBsYWNlQ2hp
bGRyZW5XaXRoVGV4dChDb250YWluZXJOb2RlJiBjb250YWluZXIsIGNvbnN0IFN0cmluZyYgdGV4
dCwgRXhjZXAKICAgICBSZWY8VGV4dD4gdGV4dE5vZGUgPSBUZXh0OjpjcmVhdGUoY29udGFpbmVy
Tm9kZS0+ZG9jdW1lbnQoKSwgdGV4dCk7CiAKICAgICBpZiAoaGFzT25lQ2hpbGQoY29udGFpbmVy
Tm9kZSkpIHsKLSAgICAgICAgY29udGFpbmVyTm9kZS0+cmVwbGFjZUNoaWxkKFdURjo6bW92ZSh0
ZXh0Tm9kZSksIGNvbnRhaW5lck5vZGUtPmZpcnN0Q2hpbGQoKSwgZWMpOworICAgICAgICBjb250
YWluZXJOb2RlLT5yZXBsYWNlQ2hpbGQoV1RGOjptb3ZlKHRleHROb2RlKSwgKmNvbnRhaW5lck5v
ZGUtPmZpcnN0Q2hpbGQoKSwgZWMpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9tYXJrdXAuaAppbmRleCBjNTUyMDEwNzY2MDcyZWY1ZTYxZDI2YTMxM2MxYjAwM2IxYjgz
NGI4Li5hNTQ1YmE1NDY2ZjJmZDE4M2Q1NWJiNGU4MzIwOTQ0OGM4OGYzNzkzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvbWFya3VwLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgZW51bSBFQ2hpbGRyZW5Pbmx5IHsgSW5j
bHVkZU5vZGUsIENoaWxkcmVuT25seSB9OwogZW51bSBFQWJzb2x1dGVVUkxzIHsgRG9Ob3RSZXNv
bHZlVVJMcywgUmVzb2x2ZUFsbFVSTHMsIFJlc29sdmVOb25Mb2NhbFVSTHMgfTsKIGVudW0gRUZy
YWdtZW50U2VyaWFsaXphdGlvbiB7IEhUTUxGcmFnbWVudFNlcmlhbGl6YXRpb24sIFhNTEZyYWdt
ZW50U2VyaWFsaXphdGlvbiB9OwogCi1XRUJDT1JFX0VYUE9SVCBQYXNzUmVmUHRyPERvY3VtZW50
RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoUmFuZ2UmIGNvbnRleHQsIGNvbnN0IFN0
cmluZyYgdGV4dCk7CitXRUJDT1JFX0VYUE9SVCBSZWY8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRl
RnJhZ21lbnRGcm9tVGV4dChSYW5nZSYgY29udGV4dCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKIFdF
QkNPUkVfRVhQT1JUIFJlZjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21NYXJr
dXAoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIG1hcmt1cCwgY29uc3QgU3RyaW5nJiBiYXNlVVJM
LCBQYXJzZXJDb250ZW50UG9saWN5ID0gQWxsb3dTY3JpcHRpbmdDb250ZW50KTsKIFBhc3NSZWZQ
dHI8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGb3JJbm5lck91dGVySFRNTChjb25z
dCBTdHJpbmcmLCBFbGVtZW50KiwgUGFyc2VyQ29udGVudFBvbGljeSwgRXhjZXB0aW9uQ29kZSYp
OwogUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZvclRyYW5zZm9y
bVRvRnJhZ21lbnQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBzb3VyY2VNSU1FVHlwZSwg
RG9jdW1lbnQqIG91dHB1dERvYyk7CkBAIC01OSwxMSArNTksMTEgQEAgYm9vbCBpc1BsYWluVGV4
dE1hcmt1cChOb2RlKik7CiAKIC8vIFRoZXNlIG1ldGhvZHMgYXJlIHVzZWQgYnkgSFRNTEVsZW1l
bnQgJiBTaGFkb3dSb290IHRvIHJlcGxhY2UgdGhlCiAvLyBjaGlsZHJlbiB3aXRoIHJlc3BlY3Rl
ZCBmcmFnbWVudC90ZXh0Lgotdm9pZCByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQoQ29udGFp
bmVyTm9kZSYsIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4sIEV4Y2VwdGlvbkNvZGUmKTsK
K3ZvaWQgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KENvbnRhaW5lck5vZGUmLCBSZWY8RG9j
dW1lbnRGcmFnbWVudD4mJiwgRXhjZXB0aW9uQ29kZSYpOwogdm9pZCByZXBsYWNlQ2hpbGRyZW5X
aXRoVGV4dChDb250YWluZXJOb2RlJiwgY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwog
Ci1TdHJpbmcgY3JlYXRlTWFya3VwKGNvbnN0IFJhbmdlJiwgVmVjdG9yPE5vZGUqPiogPSAwLCBF
QW5ub3RhdGVGb3JJbnRlcmNoYW5nZSA9IERvTm90QW5ub3RhdGVGb3JJbnRlcmNoYW5nZSwgYm9v
bCBjb252ZXJ0QmxvY2tzVG9JbmxpbmVzID0gZmFsc2UsIEVBYnNvbHV0ZVVSTHMgPSBEb05vdFJl
c29sdmVVUkxzKTsKLVN0cmluZyBjcmVhdGVNYXJrdXAoY29uc3QgTm9kZSYsIEVDaGlsZHJlbk9u
bHkgPSBJbmNsdWRlTm9kZSwgVmVjdG9yPE5vZGUqPiogPSAwLCBFQWJzb2x1dGVVUkxzID0gRG9O
b3RSZXNvbHZlVVJMcywgVmVjdG9yPFF1YWxpZmllZE5hbWU+KiB0YWdOYW1lc1RvU2tpcCA9IDAs
IEVGcmFnbWVudFNlcmlhbGl6YXRpb24gPSBIVE1MRnJhZ21lbnRTZXJpYWxpemF0aW9uKTsKK1N0
cmluZyBjcmVhdGVNYXJrdXAoY29uc3QgUmFuZ2UmLCBWZWN0b3I8Tm9kZSo+KiA9IG51bGxwdHIs
IEVBbm5vdGF0ZUZvckludGVyY2hhbmdlID0gRG9Ob3RBbm5vdGF0ZUZvckludGVyY2hhbmdlLCBi
b29sIGNvbnZlcnRCbG9ja3NUb0lubGluZXMgPSBmYWxzZSwgRUFic29sdXRlVVJMcyA9IERvTm90
UmVzb2x2ZVVSTHMpOworU3RyaW5nIGNyZWF0ZU1hcmt1cChjb25zdCBOb2RlJiwgRUNoaWxkcmVu
T25seSA9IEluY2x1ZGVOb2RlLCBWZWN0b3I8Tm9kZSo+KiA9IG51bGxwdHIsIEVBYnNvbHV0ZVVS
THMgPSBEb05vdFJlc29sdmVVUkxzLCBWZWN0b3I8UXVhbGlmaWVkTmFtZT4qIHRhZ05hbWVzVG9T
a2lwID0gMCwgRUZyYWdtZW50U2VyaWFsaXphdGlvbiA9IEhUTUxGcmFnbWVudFNlcmlhbGl6YXRp
b24pOwogCiBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY3JlYXRlRnVsbE1hcmt1cChjb25zdCBOb2Rl
Jik7CiBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY3JlYXRlRnVsbE1hcmt1cChjb25zdCBSYW5nZSYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5k
VGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURh
dGVBbmRUaW1lSW5wdXRUeXBlLmNwcAppbmRleCBkYmVhMGU5OWJkOTM0YzdkYmRlYTUyZDI1ZDAx
YzJmODE3NWRjMWQwLi41N2UzODhiZjFkY2VhNGI4MTk2YjQ2MGYwY2MzNzExZmYwZjg3MzRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1l
SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURh
dGVBbmRUaW1lSW5wdXRUeXBlLmNwcApAQCAtNjAsOSArNjAsOSBAQCB2b2lkIEJhc2VDaG9vc2Vy
T25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKICAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCB2YWx1ZUNvbnRhaW5l
clBzZXVkbywgKCItd2Via2l0LWRhdGUtYW5kLXRpbWUtdmFsdWUiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CiAKLSAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IHZhbHVl
Q29udGFpbmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCkuZG9jdW1lbnQoKSk7
CisgICAgUmVmPEhUTUxEaXZFbGVtZW50PiB2YWx1ZUNvbnRhaW5lciA9IEhUTUxEaXZFbGVtZW50
OjpjcmVhdGUoZWxlbWVudCgpLmRvY3VtZW50KCkpOwogICAgIHZhbHVlQ29udGFpbmVyLT5zZXRQ
c2V1ZG8odmFsdWVDb250YWluZXJQc2V1ZG8pOwotICAgIGVsZW1lbnQoKS51c2VyQWdlbnRTaGFk
b3dSb290KCktPmFwcGVuZENoaWxkKHZhbHVlQ29udGFpbmVyLmdldCgpKTsKKyAgICBlbGVtZW50
KCkudXNlckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUodmFsdWVDb250
YWluZXIpKTsKICAgICB1cGRhdGVBcHBlYXJhbmNlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9D
b2xvcklucHV0VHlwZS5jcHAKaW5kZXggOGJiZGI5N2MyNTI0YjYyYWIzOWFhNjRlNjg0MDg1NWNh
NDY5NTU5Yy4uYzUzODVhMDRiNjc3OGM1ZWEyZDQzNWI0MzlhOTRiZjIwN2JiNjY2MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKQEAgLTEwNywxMiArMTA3LDEyIEBAIHZv
aWQgQ29sb3JJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogICAgIEFTU0VSVChlbGVt
ZW50KCkuc2hhZG93Um9vdCgpKTsKIAogICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGVsZW1lbnQo
KS5kb2N1bWVudCgpOwotICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gd3JhcHBlckVsZW1lbnQg
PSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBSZWY8SFRNTERpdkVsZW1l
bnQ+IHdyYXBwZXJFbGVtZW50ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAg
ICAgd3JhcHBlckVsZW1lbnQtPnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtY29sb3It
c3dhdGNoLXdyYXBwZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0g
ICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBjb2xvclN3YXRjaCA9IEhUTUxEaXZFbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQpOworICAgIFJlZjxIVE1MRGl2RWxlbWVudD4gY29sb3JTd2F0Y2ggPSBI
VE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb2xvclN3YXRjaC0+c2V0UHNl
dWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC1jb2xvci1zd2F0Y2giLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgd3JhcHBlckVsZW1lbnQtPmFwcGVuZENoaWxkKGNv
bG9yU3dhdGNoLnJlbGVhc2UoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0gICAgZWxlbWVudCgp
LnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQod3JhcHBlckVsZW1lbnQucmVsZWFz
ZSgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICB3cmFwcGVyRWxlbWVudC0+YXBwZW5kQ2hp
bGQoV1RGOjptb3ZlKGNvbG9yU3dhdGNoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgZWxl
bWVudCgpLnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHdyYXBw
ZXJFbGVtZW50KSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgCiAgICAgdXBkYXRlQ29sb3JT
d2F0Y2goKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5
RG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5j
cHAKaW5kZXggNDA2NWExNzhkMjgyYTkyOTcxNDUxMTU1YjY2ZDYzZGQzNGExZjJkNS4uMTQ0N2E0
NjM1ZjcyMTJlZmE5MmExMWMxN2Y5MmY3ZjY5MzdlYWVmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAKQEAgLTEwNCwyNyArMTA0LDI3IEBAIHZvaWQg
RlRQRGlyZWN0b3J5RG9jdW1lbnRQYXJzZXI6OmFwcGVuZEVudHJ5KGNvbnN0IFN0cmluZyYgZmls
ZW5hbWUsIGNvbnN0IFN0cmluCiAgICAgUmVmUHRyPEVsZW1lbnQ+IHJvd0VsZW1lbnQgPSBtX3Rh
YmxlRWxlbWVudC0+aW5zZXJ0Um93KC0xLCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICByb3dFbGVt
ZW50LT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpjbGFzc0F0dHIsICJmdHBEaXJlY3RvcnlFbnRy
eVJvdyIpOwogCi0gICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVh
dGVFbGVtZW50KHRkVGFnLCBmYWxzZSk7CisgICAgUmVmPEVsZW1lbnQ+IGVsZW1lbnQgPSBkb2N1
bWVudCgpLT5jcmVhdGVFbGVtZW50KHRkVGFnLCBmYWxzZSk7CiAgICAgZWxlbWVudC0+YXBwZW5k
Q2hpbGQoVGV4dDo6Y3JlYXRlKCpkb2N1bWVudCgpLCBTdHJpbmcoJm5vQnJlYWtTcGFjZSwgMSkp
LCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICBpZiAoaXNEaXJlY3RvcnkpCiAgICAgICAgIGVsZW1l
bnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNsYXNzQXR0ciwgImZ0cERpcmVjdG9yeUljb24g
ZnRwRGlyZWN0b3J5VHlwZURpcmVjdG9yeSIpOwogICAgIGVsc2UKICAgICAgICAgZWxlbWVudC0+
c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6Y2xhc3NBdHRyLCAiZnRwRGlyZWN0b3J5SWNvbiBmdHBE
aXJlY3RvcnlUeXBlRmlsZSIpOwotICAgIHJvd0VsZW1lbnQtPmFwcGVuZENoaWxkKGVsZW1lbnQs
IElHTk9SRV9FWENFUFRJT04pOworICAgIHJvd0VsZW1lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92
ZShlbGVtZW50KSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKICAgICBlbGVtZW50ID0gY3JlYXRlVERG
b3JGaWxlbmFtZShmaWxlbmFtZSk7CiAgICAgZWxlbWVudC0+c2V0QXR0cmlidXRlKEhUTUxOYW1l
czo6Y2xhc3NBdHRyLCAiZnRwRGlyZWN0b3J5RmlsZU5hbWUiKTsKLSAgICByb3dFbGVtZW50LT5h
cHBlbmRDaGlsZChlbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICByb3dFbGVtZW50LT5h
cHBlbmRDaGlsZChXVEY6Om1vdmUoZWxlbWVudCksIElHTk9SRV9FWENFUFRJT04pOwogCiAgICAg
ZWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQodGRUYWcsIGZhbHNlKTsKICAgICBl
bGVtZW50LT5hcHBlbmRDaGlsZChUZXh0OjpjcmVhdGUoKmRvY3VtZW50KCksIGRhdGUpLCBJR05P
UkVfRVhDRVBUSU9OKTsKICAgICBlbGVtZW50LT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpjbGFz
c0F0dHIsICJmdHBEaXJlY3RvcnlGaWxlRGF0ZSIpOwotICAgIHJvd0VsZW1lbnQtPmFwcGVuZENo
aWxkKGVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOworICAgIHJvd0VsZW1lbnQtPmFwcGVuZENo
aWxkKFdURjo6bW92ZShlbGVtZW50KSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKICAgICBlbGVtZW50
ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudCh0ZFRhZywgZmFsc2UpOwogICAgIGVsZW1lbnQt
PmFwcGVuZENoaWxkKFRleHQ6OmNyZWF0ZSgqZG9jdW1lbnQoKSwgc2l6ZSksIElHTk9SRV9FWENF
UFRJT04pOwogICAgIGVsZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNsYXNzQXR0ciwg
ImZ0cERpcmVjdG9yeUZpbGVTaXplIik7Ci0gICAgcm93RWxlbWVudC0+YXBwZW5kQ2hpbGQoZWxl
bWVudCwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgcm93RWxlbWVudC0+YXBwZW5kQ2hpbGQoV1RG
Ojptb3ZlKGVsZW1lbnQpLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KIAogUmVmPEVsZW1lbnQ+IEZU
UERpcmVjdG9yeURvY3VtZW50UGFyc2VyOjpjcmVhdGVUREZvckZpbGVuYW1lKGNvbnN0IFN0cmlu
ZyYgZmlsZW5hbWUpCkBAIC0xMzUsMTIgKzEzNSwxMiBAQCBSZWY8RWxlbWVudD4gRlRQRGlyZWN0
b3J5RG9jdW1lbnRQYXJzZXI6OmNyZWF0ZVRERm9yRmlsZW5hbWUoY29uc3QgU3RyaW5nJiBmaWxl
bgogICAgIGVsc2UKICAgICAgICAgZnVsbFVSTCA9IGZ1bGxVUkwgKyAnLycgKyBmaWxlbmFtZTsK
IAotICAgIFJlZlB0cjxFbGVtZW50PiBhbmNob3JFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRl
RWxlbWVudChhVGFnLCBmYWxzZSk7CisgICAgUmVmPEVsZW1lbnQ+IGFuY2hvckVsZW1lbnQgPSBk
b2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KGFUYWcsIGZhbHNlKTsKICAgICBhbmNob3JFbGVtZW50
LT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpocmVmQXR0ciwgZnVsbFVSTCk7CiAgICAgYW5jaG9y
RWxlbWVudC0+YXBwZW5kQ2hpbGQoVGV4dDo6Y3JlYXRlKCpkb2N1bWVudCgpLCBmaWxlbmFtZSks
IElHTk9SRV9FWENFUFRJT04pOwogCiAgICAgUmVmPEVsZW1lbnQ+IHRkRWxlbWVudCA9IGRvY3Vt
ZW50KCktPmNyZWF0ZUVsZW1lbnQodGRUYWcsIGZhbHNlKTsKLSAgICB0ZEVsZW1lbnQtPmFwcGVu
ZENoaWxkKGFuY2hvckVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOworICAgIHRkRWxlbWVudC0+
YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGFuY2hvckVsZW1lbnQpLCBJR05PUkVfRVhDRVBUSU9OKTsK
IAogICAgIHJldHVybiB0ZEVsZW1lbnQ7CiB9CkBAIC0zMTIsOSArMzEyLDkgQEAgYm9vbCBGVFBE
aXJlY3RvcnlEb2N1bWVudFBhcnNlcjo6bG9hZERvY3VtZW50VGVtcGxhdGUoKQogICAgIC8vIElm
IHRoYXQgZmFpbHMgZm9yIHNvbWUgcmVhc29uLCBjcmFtIGl0IG9uIHRoZSBlbmQgb2YgdGhlIGRv
Y3VtZW50IGFzIGEgbGFzdAogICAgIC8vIGRpdGNoIGVmZm9ydAogICAgIGlmIChhdXRvKiBib2R5
ID0gZG9jdW1lbnQoKS0+Ym9keU9yRnJhbWVzZXQoKSkKLSAgICAgICAgYm9keS0+YXBwZW5kQ2hp
bGQobV90YWJsZUVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOworICAgICAgICBib2R5LT5hcHBl
bmRDaGlsZCgqbV90YWJsZUVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOwogICAgIGVsc2UKLSAg
ICAgICAgZG9jdW1lbnQoKS0+YXBwZW5kQ2hpbGQobV90YWJsZUVsZW1lbnQsIElHTk9SRV9FWENF
UFRJT04pOworICAgICAgICBkb2N1bWVudCgpLT5hcHBlbmRDaGlsZCgqbV90YWJsZUVsZW1lbnQs
IElHTk9SRV9FWENFUFRJT04pOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0zMjUsMTYgKzMy
NSwxNiBAQCB2b2lkIEZUUERpcmVjdG9yeURvY3VtZW50UGFyc2VyOjpjcmVhdGVCYXNpY0RvY3Vt
ZW50KCkKIAogICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgImJhc2ljIGRvY3VtZW50IiBtb3JlIGFj
Y2VwdGFibGUKIAotICAgIFJlZlB0cjxFbGVtZW50PiBib2R5RWxlbWVudCA9IGRvY3VtZW50KCkt
PmNyZWF0ZUVsZW1lbnQoYm9keVRhZywgZmFsc2UpOworICAgIFJlZjxFbGVtZW50PiBib2R5RWxl
bWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoYm9keVRhZywgZmFsc2UpOwogCi0gICAg
ZG9jdW1lbnQoKS0+YXBwZW5kQ2hpbGQoYm9keUVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOwor
ICAgIGRvY3VtZW50KCktPmFwcGVuZENoaWxkKGJvZHlFbGVtZW50LmNvcHlSZWYoKSwgSUdOT1JF
X0VYQ0VQVElPTik7CiAKLSAgICBSZWZQdHI8RWxlbWVudD4gdGFibGVFbGVtZW50ID0gZG9jdW1l
bnQoKS0+Y3JlYXRlRWxlbWVudCh0YWJsZVRhZywgZmFsc2UpOwotICAgIG1fdGFibGVFbGVtZW50
ID0gZG93bmNhc3Q8SFRNTFRhYmxlRWxlbWVudD4odGFibGVFbGVtZW50LmdldCgpKTsKKyAgICBS
ZWY8RWxlbWVudD4gdGFibGVFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudCh0YWJs
ZVRhZywgZmFsc2UpOworICAgIG1fdGFibGVFbGVtZW50ID0gZG93bmNhc3Q8SFRNTFRhYmxlRWxl
bWVudD4odGFibGVFbGVtZW50LnB0cigpKTsKICAgICBtX3RhYmxlRWxlbWVudC0+c2V0QXR0cmli
dXRlKEhUTUxOYW1lczo6aWRBdHRyLCAiZnRwRGlyZWN0b3J5VGFibGUiKTsKICAgICBtX3RhYmxl
RWxlbWVudC0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6c3R5bGVBdHRyLCAid2lkdGg6MTAwJSIp
OwogCi0gICAgYm9keUVsZW1lbnQtPmFwcGVuZENoaWxkKG1fdGFibGVFbGVtZW50LCBJR05PUkVf
RVhDRVBUSU9OKTsKKyAgICBib2R5RWxlbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHRhYmxl
RWxlbWVudCksIElHTk9SRV9FWENFUFRJT04pOwogCiAgICAgZG9jdW1lbnQoKS0+cHJvY2Vzc1Zp
ZXdwb3J0KCJ3aWR0aD1kZXZpY2Utd2lkdGgiLCBWaWV3cG9ydEFyZ3VtZW50czo6Vmlld3BvcnRN
ZXRhKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAppbmRl
eCA0MzAyMTJjMWFiODA3MDkxNjNlNTRmNTNkMWRiYzJmN2NhZGE4YjFmLi40OGNjOWI4NDhlNTQx
N2FjNzlmYTY1MDE5ZTQ4NzA1ZTE3MTI3YTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RGV0YWlsc0VsZW1lbnQuY3BwCkBAIC05MCwxMSArOTAsMTEgQEAgcHJpdmF0ZToKIAogUmVmPERl
dGFpbHNTdW1tYXJ5RWxlbWVudD4gRGV0YWlsc1N1bW1hcnlFbGVtZW50OjpjcmVhdGUoRG9jdW1l
bnQmIGRvY3VtZW50KQogewotICAgIFJlZlB0cjxIVE1MU3VtbWFyeUVsZW1lbnQ+IHN1bW1hcnkg
PSBIVE1MU3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZShzdW1tYXJ5VGFnLCBkb2N1bWVudCk7CisgICAg
UmVmPEhUTUxTdW1tYXJ5RWxlbWVudD4gc3VtbWFyeSA9IEhUTUxTdW1tYXJ5RWxlbWVudDo6Y3Jl
YXRlKHN1bW1hcnlUYWcsIGRvY3VtZW50KTsKICAgICBzdW1tYXJ5LT5hcHBlbmRDaGlsZChUZXh0
OjpjcmVhdGUoZG9jdW1lbnQsIGRlZmF1bHREZXRhaWxzU3VtbWFyeVRleHQoKSksIEFTU0VSVF9O
T19FWENFUFRJT04pOwogCiAgICAgUmVmPERldGFpbHNTdW1tYXJ5RWxlbWVudD4gZGV0YWlsc1N1
bW1hcnkgPSBhZG9wdFJlZigqbmV3IERldGFpbHNTdW1tYXJ5RWxlbWVudChkb2N1bWVudCkpOwot
ICAgIGRldGFpbHNTdW1tYXJ5LT5hcHBlbmRDaGlsZChzdW1tYXJ5KTsKKyAgICBkZXRhaWxzU3Vt
bWFyeS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHN1bW1hcnkpKTsKICAgICByZXR1cm4gZGV0YWls
c1N1bW1hcnk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKaW5kZXggNTIwY2Uw
M2U3MGNjN2FkNzg2Y2I1MzdhNzczMDk5N2Y4NjIzYzM1ZS4uMDZkMGFjZTllZjY0NGM0N2Y2YWU2
MjdjNWJlMmFmOTAyM2VmYmQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKQEAg
LTU4NCw5ICs1ODQsOSBAQCB2b2lkIEhUTUxFbGVtZW50OjpzZXRJbm5lclRleHQoY29uc3QgU3Ry
aW5nJiB0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKIAogICAgIC8vIEFkZCB0ZXh0IG5vZGVzIGFu
ZCA8YnI+IGVsZW1lbnRzLgogICAgIGVjID0gMDsKLSAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVu
dD4gZnJhZ21lbnQgPSB0ZXh0VG9GcmFnbWVudCh0ZXh0LCBlYyk7CisgICAgUmVmPERvY3VtZW50
RnJhZ21lbnQ+IGZyYWdtZW50ID0gdGV4dFRvRnJhZ21lbnQodGV4dCwgZWMpOwogICAgIGlmICgh
ZWMpCi0gICAgICAgIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudCgqdGhpcywgZnJhZ21lbnQu
cmVsZWFzZSgpLCBlYyk7CisgICAgICAgIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudCgqdGhp
cywgV1RGOjptb3ZlKGZyYWdtZW50KSwgZWMpOwogfQogCiB2b2lkIEhUTUxFbGVtZW50OjpzZXRP
dXRlclRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTYwOCwy
MCArNjA4LDE2IEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnNldE91dGVyVGV4dChjb25zdCBTdHJpbmcm
IHRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogCiAgICAgUmVmUHRyPE5vZGU+IHByZXYgPSBwcmV2
aW91c1NpYmxpbmcoKTsKICAgICBSZWZQdHI8Tm9kZT4gbmV4dCA9IG5leHRTaWJsaW5nKCk7Ci0g
ICAgUmVmUHRyPE5vZGU+IG5ld0NoaWxkOwogICAgIGVjID0gMDsKICAgICAKICAgICAvLyBDb252
ZXJ0IHRleHQgdG8gZnJhZ21lbnQgd2l0aCA8YnI+IHRhZ3MgaW5zdGVhZCBvZiBsaW5lYnJlYWtz
IGlmIG5lZWRlZC4KLSAgICBpZiAodGV4dC5jb250YWlucygnXHInKSB8fCB0ZXh0LmNvbnRhaW5z
KCdcbicpKQotICAgICAgICBuZXdDaGlsZCA9IHRleHRUb0ZyYWdtZW50KHRleHQsIGVjKTsKLSAg
ICBlbHNlCi0gICAgICAgIG5ld0NoaWxkID0gVGV4dDo6Y3JlYXRlKGRvY3VtZW50KCksIHRleHQp
OworICAgIFJlZjxOb2RlPiBuZXdDaGlsZCA9IHRleHQuY29udGFpbnMoJ1xyJykgfHwgdGV4dC5j
b250YWlucygnXG4nKSA/IFJlZjxOb2RlPih0ZXh0VG9GcmFnbWVudCh0ZXh0LCBlYykpIDogUmVm
PE5vZGU+KFRleHQ6OmNyZWF0ZShkb2N1bWVudCgpLCB0ZXh0KSk7CiAKICAgICBpZiAoIXBhcmVu
dE5vZGUoKSkKICAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAgICAgaWYgKGVj
KQogICAgICAgICByZXR1cm47Ci0gICAgcGFyZW50LT5yZXBsYWNlQ2hpbGQobmV3Q2hpbGQucmVs
ZWFzZSgpLCB0aGlzLCBlYyk7CisgICAgcGFyZW50LT5yZXBsYWNlQ2hpbGQoV1RGOjptb3ZlKG5l
d0NoaWxkKSwgKnRoaXMsIGVjKTsKIAogICAgIFJlZlB0cjxOb2RlPiBub2RlID0gbmV4dCA/IG5l
eHQtPnByZXZpb3VzU2libGluZygpIDogbnVsbHB0cjsKICAgICBpZiAoIWVjICYmIGlzPFRleHQ+
KG5vZGUuZ2V0KCkpKQpAQCAtNjMwLDcgKzYyNiw3IEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnNldE91
dGVyVGV4dChjb25zdCBTdHJpbmcmIHRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICBt
ZXJnZVdpdGhOZXh0VGV4dE5vZGUoZG93bmNhc3Q8VGV4dD4oKnByZXYpLCBlYyk7CiB9CiAKLU5v
ZGUqIEhUTUxFbGVtZW50OjppbnNlcnRBZGphY2VudChjb25zdCBTdHJpbmcmIHdoZXJlLCBOb2Rl
KiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCitOb2RlKiBIVE1MRWxlbWVudDo6aW5zZXJ0
QWRqYWNlbnQoY29uc3QgU3RyaW5nJiB3aGVyZSwgUmVmPE5vZGU+JiYgbmV3Q2hpbGQsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogewogICAgIC8vIEluIEludGVybmV0IEV4cGxvcmVyIGlmIHRoZSBlbGVt
ZW50IGhhcyBubyBwYXJlbnQgYW5kIHdoZXJlIGlzICJiZWZvcmVCZWdpbiIgb3IgImFmdGVyRW5k
IiwKICAgICAvLyBhIGRvY3VtZW50IGZyYWdtZW50IGlzIGNyZWF0ZWQgYW5kIHRoZSBlbGVtZW50
cyBhcHBlbmRlZCBpbiB0aGUgY29ycmVjdCBvcmRlci4gVGhpcyBkb2N1bWVudApAQCAtNjQxLDE4
ICs2MzcsMTggQEAgTm9kZSogSFRNTEVsZW1lbnQ6Omluc2VydEFkamFjZW50KGNvbnN0IFN0cmlu
ZyYgd2hlcmUsIE5vZGUqIG5ld0NoaWxkLCBFeGNlcHRpb24KIAogICAgIGlmIChlcXVhbElnbm9y
aW5nQ2FzZSh3aGVyZSwgImJlZm9yZUJlZ2luIikpIHsKICAgICAgICAgQ29udGFpbmVyTm9kZSog
cGFyZW50ID0gdGhpcy0+cGFyZW50Tm9kZSgpOwotICAgICAgICByZXR1cm4gKHBhcmVudCAmJiBw
YXJlbnQtPmluc2VydEJlZm9yZShuZXdDaGlsZCwgdGhpcywgZWMpKSA/IG5ld0NoaWxkIDogbnVs
bHB0cjsKKyAgICAgICAgcmV0dXJuIChwYXJlbnQgJiYgcGFyZW50LT5pbnNlcnRCZWZvcmUobmV3
Q2hpbGQuY29weVJlZigpLCB0aGlzLCBlYykpID8gbmV3Q2hpbGQucHRyKCkgOiBudWxscHRyOwog
ICAgIH0KIAogICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh3aGVyZSwgImFmdGVyQmVnaW4iKSkK
LSAgICAgICAgcmV0dXJuIGluc2VydEJlZm9yZShuZXdDaGlsZCwgZmlyc3RDaGlsZCgpLCBlYykg
PyBuZXdDaGlsZCA6IG51bGxwdHI7CisgICAgICAgIHJldHVybiBpbnNlcnRCZWZvcmUobmV3Q2hp
bGQuY29weVJlZigpLCBmaXJzdENoaWxkKCksIGVjKSA/IG5ld0NoaWxkLnB0cigpIDogbnVsbHB0
cjsKIAogICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh3aGVyZSwgImJlZm9yZUVuZCIpKQotICAg
ICAgICByZXR1cm4gYXBwZW5kQ2hpbGQobmV3Q2hpbGQsIGVjKSA/IG5ld0NoaWxkIDogbnVsbHB0
cjsKKyAgICAgICAgcmV0dXJuIGFwcGVuZENoaWxkKG5ld0NoaWxkLmNvcHlSZWYoKSwgZWMpID8g
bmV3Q2hpbGQucHRyKCkgOiBudWxscHRyOwogCiAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHdo
ZXJlLCAiYWZ0ZXJFbmQiKSkgewogICAgICAgICBDb250YWluZXJOb2RlKiBwYXJlbnQgPSB0aGlz
LT5wYXJlbnROb2RlKCk7Ci0gICAgICAgIHJldHVybiAocGFyZW50ICYmIHBhcmVudC0+aW5zZXJ0
QmVmb3JlKG5ld0NoaWxkLCBuZXh0U2libGluZygpLCBlYykpID8gbmV3Q2hpbGQgOiBudWxscHRy
OworICAgICAgICByZXR1cm4gKHBhcmVudCAmJiBwYXJlbnQtPmluc2VydEJlZm9yZShuZXdDaGls
ZC5jb3B5UmVmKCksIG5leHRTaWJsaW5nKCksIGVjKSkgPyBuZXdDaGlsZC5wdHIoKSA6IG51bGxw
dHI7CiAgICAgfQogICAgIAogICAgIC8vIElFIHRocm93cyBDT00gRXhjZXB0aW9uIEVfSU5WQUxJ
REFSRzsgdGhpcyBpcyB0aGUgYmVzdCBET00gZXhjZXB0aW9uIGFsdGVybmF0aXZlLgpAQCAtNjY4
LDcgKzY2NCw3IEBAIEVsZW1lbnQqIEhUTUxFbGVtZW50OjppbnNlcnRBZGphY2VudEVsZW1lbnQo
Y29uc3QgU3RyaW5nJiB3aGVyZSwgRWxlbWVudCogbmV3Q2hpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIH0KIAotICAgIE5vZGUqIHJldHVyblZhbHVlID0gaW5zZXJ0QWRqYWNlbnQod2hl
cmUsIG5ld0NoaWxkLCBlYyk7CisgICAgTm9kZSogcmV0dXJuVmFsdWUgPSBpbnNlcnRBZGphY2Vu
dCh3aGVyZSwgKm5ld0NoaWxkLCBlYyk7CiAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElD
QVRJT04oIXJldHVyblZhbHVlIHx8IGlzPEVsZW1lbnQ+KCpyZXR1cm5WYWx1ZSkpOwogICAgIHJl
dHVybiBkb3duY2FzdDxFbGVtZW50PihyZXR1cm5WYWx1ZSk7IAogfQpAQCAtNjk5LDEzICs2OTUs
MTIgQEAgdm9pZCBIVE1MRWxlbWVudDo6aW5zZXJ0QWRqYWNlbnRIVE1MKGNvbnN0IFN0cmluZyYg
d2hlcmUsIGNvbnN0IFN0cmluZyYgbWFya3VwLAogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50
PiBmcmFnbWVudCA9IGNyZWF0ZUZyYWdtZW50Rm9ySW5uZXJPdXRlckhUTUwobWFya3VwLCBjb250
ZXh0RWxlbWVudCwgQWxsb3dTY3JpcHRpbmdDb250ZW50LCBlYyk7CiAgICAgaWYgKCFmcmFnbWVu
dCkKICAgICAgICAgcmV0dXJuOwotICAgIGluc2VydEFkamFjZW50KHdoZXJlLCBmcmFnbWVudC5n
ZXQoKSwgZWMpOworICAgIGluc2VydEFkamFjZW50KHdoZXJlLCBmcmFnbWVudC5yZWxlYXNlTm9u
TnVsbCgpLCBlYyk7CiB9CiAKIHZvaWQgSFRNTEVsZW1lbnQ6Omluc2VydEFkamFjZW50VGV4dChj
b25zdCBTdHJpbmcmIHdoZXJlLCBjb25zdCBTdHJpbmcmIHRleHQsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogewotICAgIFJlZlB0cjxUZXh0PiB0ZXh0Tm9kZSA9IGRvY3VtZW50KCkuY3JlYXRlVGV4dE5v
ZGUodGV4dCk7Ci0gICAgaW5zZXJ0QWRqYWNlbnQod2hlcmUsIHRleHROb2RlLmdldCgpLCBlYyk7
CisgICAgaW5zZXJ0QWRqYWNlbnQod2hlcmUsIGRvY3VtZW50KCkuY3JlYXRlVGV4dE5vZGUodGV4
dCksIGVjKTsKIH0KIAogdm9pZCBIVE1MRWxlbWVudDo6YXBwbHlBbGlnbm1lbnRBdHRyaWJ1dGVU
b1N0eWxlKGNvbnN0IEF0b21pY1N0cmluZyYgYWxpZ25tZW50LCBNdXRhYmxlU3R5bGVQcm9wZXJ0
aWVzJiBzdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAppbmRleCAzMGUzNzc1YTAwNGUz
MWJlYWU4MzVjZjY5MGNiNDA5YjFkZmViNzdhLi43MGQ0OTYxY2VkMmRjZTk2ZDQ1NTRlYzE2NjY5
MGQwZDg1YzA2M2ViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCkBAIC0xMzAsNyArMTMw
LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgSFRNTEZvcm1FbGVtZW50KiB2aXJ0dWFsRm9y
bSgpIGNvbnN0OwogCi0gICAgTm9kZSogaW5zZXJ0QWRqYWNlbnQoY29uc3QgU3RyaW5nJiB3aGVy
ZSwgTm9kZSogbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBOb2RlKiBpbnNlcnRBZGph
Y2VudChjb25zdCBTdHJpbmcmIHdoZXJlLCBSZWY8Tm9kZT4mJiBuZXdDaGlsZCwgRXhjZXB0aW9u
Q29kZSYpOwogICAgIFJlZjxEb2N1bWVudEZyYWdtZW50PiB0ZXh0VG9GcmFnbWVudChjb25zdCBT
dHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICB2b2lkIGRpckF0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgQXRvbWljU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50
LmNwcAppbmRleCBiMmEyNzdhNTU5YmEzNWQxZjM5NTVmNDI4M2M3YzgyOTEzNGIwYTA2Li5hNGE3
M2NhNmI2MDk3ZGM3OGJkNjlmM2JiNDEyMWU0ZDI3ZGVkNGI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKQEAgLTUwNCw3ICs1MDQsNyBAQCB2b2lkIEhUTUxJbWFn
ZUVsZW1lbnQ6OmNyZWF0ZUltYWdlQ29udHJvbHMoKQogICAgIGlmICghaW1hZ2VDb250cm9scykK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCgpLmFwcGVu
ZENoaWxkKGltYWdlQ29udHJvbHMpOworICAgIGVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKS5h
cHBlbmRDaGlsZChpbWFnZUNvbnRyb2xzLnJlbGVhc2VOb25OdWxsKCkpOwogCiAgICAgYXV0byog
cmVuZGVyT2JqZWN0ID0gcmVuZGVyZXIoKTsKICAgICBpZiAoIXJlbmRlck9iamVjdCkKQEAgLTUy
MSw3ICs1MjEsNyBAQCB2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OmRlc3Ryb3lJbWFnZUNvbnRyb2xz
KCkKIAogICAgIGlmIChOb2RlKiBub2RlID0gc2hhZG93Um9vdC0+Zmlyc3RDaGlsZCgpKSB7CiAg
ICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG5vZGUtPmlzSW1hZ2VDb250
cm9sc1Jvb3RFbGVtZW50KCkpOwotICAgICAgICBzaGFkb3dSb290LT5yZW1vdmVDaGlsZChub2Rl
KTsKKyAgICAgICAgc2hhZG93Um9vdC0+cmVtb3ZlQ2hpbGQoKm5vZGUpOwogICAgIH0KIAogICAg
IGF1dG8qIHJlbmRlck9iamVjdCA9IHJlbmRlcmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEtleWdlbkVsZW1lbnQuY3BwCmluZGV4IGU3ZDkxNDgyNWM1ZWI4MTE0ZDliMmVlYTFmZGNmMDMw
MjZhYTBiYTIuLjRhNjNiMDBhNGE0MTM0YjU4Y2YyNDVmZWI2OTJmOGE0NjYxNmJmMTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCkBAIC01OCw3ICs1OCw3IEBA
IHByb3RlY3RlZDoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBSZWZQdHI8RWxlbWVu
dD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYgdGFy
Z2V0RG9jdW1lbnQpIG92ZXJyaWRlCisgICAgdmlydHVhbCBSZWY8RWxlbWVudD4gY2xvbmVFbGVt
ZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQp
IG92ZXJyaWRlCiAgICAgewogICAgICAgICByZXR1cm4gY3JlYXRlKHRhcmdldERvY3VtZW50KTsK
ICAgICB9CkBAIC03MywxNCArNzMsMTQgQEAgaW5saW5lIEhUTUxLZXlnZW5FbGVtZW50OjpIVE1M
S2V5Z2VuRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWUKICAgICBW
ZWN0b3I8U3RyaW5nPiBrZXlzOwogICAgIGdldFN1cHBvcnRlZEtleVNpemVzKGtleXMpOwogCi0g
ICAgUmVmUHRyPEhUTUxTZWxlY3RFbGVtZW50PiBzZWxlY3QgPSBLZXlnZW5TZWxlY3RFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIFJlZjxIVE1MU2VsZWN0RWxlbWVudD4gc2VsZWN0ID0g
S2V5Z2VuU2VsZWN0RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IGtleXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgUmVmUHRyPEhUTUxPcHRpb25F
bGVtZW50PiBvcHRpb24gPSBIVE1MT3B0aW9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAg
ICAgICAgc2VsZWN0LT5hcHBlbmRDaGlsZChvcHRpb24sIElHTk9SRV9FWENFUFRJT04pOworICAg
ICAgICBSZWY8SFRNTE9wdGlvbkVsZW1lbnQ+IG9wdGlvbiA9IEhUTUxPcHRpb25FbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQpOworICAgICAgICBzZWxlY3QtPmFwcGVuZENoaWxkKG9wdGlvbi5jb3B5
UmVmKCksIElHTk9SRV9FWENFUFRJT04pOwogICAgICAgICBvcHRpb24tPmFwcGVuZENoaWxkKFRl
eHQ6OmNyZWF0ZShkb2N1bWVudCwga2V5c1tpXSksIElHTk9SRV9FWENFUFRJT04pOwogICAgIH0K
IAotICAgIGVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKS5hcHBlbmRDaGlsZChzZWxlY3QsIElH
Tk9SRV9FWENFUFRJT04pOworICAgIGVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKS5hcHBlbmRD
aGlsZChXVEY6Om1vdmUoc2VsZWN0KSwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CiAKIFJlZjxIVE1M
S2V5Z2VuRWxlbWVudD4gSFRNTEtleWdlbkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCmluZGV4IDIyYjJmMzk4MWUz
OTUyMzc5M2Y1ZTJiMzFlNmNjNWQyOGJmYTc3ODAuLmU1ZTNkZTAzNjgzODE1NDVlYTc4NTBjMDhm
OTZhN2YxYmMwNzU5OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVy
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNw
cApAQCAtMjI5LDE2ICsyMjksMTYgQEAgdm9pZCBIVE1MTWV0ZXJFbGVtZW50OjpkaWRBZGRVc2Vy
QWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QqIHJvb3QpCiB7CiAgICAgQVNTRVJUKCFtX3ZhbHVl
KTsKIAotICAgIFJlZlB0cjxNZXRlcklubmVyRWxlbWVudD4gaW5uZXIgPSBNZXRlcklubmVyRWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwotICAgIHJvb3QtPmFwcGVuZENoaWxkKGlubmVyKTsK
KyAgICBSZWY8TWV0ZXJJbm5lckVsZW1lbnQ+IGlubmVyID0gTWV0ZXJJbm5lckVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCgpKTsKKyAgICByb290LT5hcHBlbmRDaGlsZChpbm5lci5jb3B5UmVmKCkp
OwogCi0gICAgUmVmUHRyPE1ldGVyQmFyRWxlbWVudD4gYmFyID0gTWV0ZXJCYXJFbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQoKSk7CisgICAgUmVmPE1ldGVyQmFyRWxlbWVudD4gYmFyID0gTWV0ZXJC
YXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CiAgICAgbV92YWx1ZSA9IE1ldGVyVmFsdWVF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CiAgICAgbV92YWx1ZS0+c2V0V2lkdGhQZXJjZW50
YWdlKDApOwogICAgIG1fdmFsdWUtPnVwZGF0ZVBzZXVkbygpOwotICAgIGJhci0+YXBwZW5kQ2hp
bGQobV92YWx1ZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgYmFyLT5hcHBlbmRDaGlsZCgq
bV92YWx1ZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKLSAgICBpbm5lci0+YXBwZW5kQ2hpbGQo
YmFyLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBpbm5lci0+YXBwZW5kQ2hpbGQoV1RGOjpt
b3ZlKGJhciksIEFTU0VSVF9OT19FWENFUFRJT04pOwogfQogCiB9IC8vIG5hbWVzcGFjZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAppbmRleCAyZGZmZjI2MzUzZWY5
MWY0ODEwY2UxODc3NzA2YWRjOTUwZmMzNmFlLi5lZDljYWVhMTVhNjIxMzM4MmMyMGQxZGY2NzRj
YWE4ZTJhOWYyMmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25F
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNw
cApAQCAtNzEsMTIgKzcxLDEyIEBAIFJlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gSFRNTE9wdGlv
bkVsZW1lbnQ6OmNyZWF0ZUZvckpTQ29uc3RydWN0b3IoRG9jdW1lbnQmIGRvCiB7CiAgICAgUmVm
UHRyPEhUTUxPcHRpb25FbGVtZW50PiBlbGVtZW50ID0gYWRvcHRSZWYobmV3IEhUTUxPcHRpb25F
bGVtZW50KG9wdGlvblRhZywgZG9jdW1lbnQpKTsKIAotICAgIFJlZlB0cjxUZXh0PiB0ZXh0ID0g
VGV4dDo6Y3JlYXRlKGRvY3VtZW50LCBkYXRhLmlzTnVsbCgpID8gIiIgOiBkYXRhKTsKKyAgICBS
ZWY8VGV4dD4gdGV4dCA9IFRleHQ6OmNyZWF0ZShkb2N1bWVudCwgZGF0YS5pc051bGwoKSA/ICIi
IDogZGF0YSk7CiAKICAgICBlYyA9IDA7Ci0gICAgZWxlbWVudC0+YXBwZW5kQ2hpbGQodGV4dC5y
ZWxlYXNlKCksIGVjKTsKKyAgICBlbGVtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUodGV4dCks
IGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIAogICAgIGlmICghdmFsdWUuaXNOdWxsKCkpCiAgICAgICAgIGVsZW1lbnQtPnNldFZh
bHVlKHZhbHVlKTsKQEAgLTg0LDcgKzg0LDcgQEAgUmVmUHRyPEhUTUxPcHRpb25FbGVtZW50PiBI
VE1MT3B0aW9uRWxlbWVudDo6Y3JlYXRlRm9ySlNDb25zdHJ1Y3RvcihEb2N1bWVudCYgZG8KICAg
ICAgICAgZWxlbWVudC0+c2V0QXR0cmlidXRlKHNlbGVjdGVkQXR0ciwgZW1wdHlBdG9tKTsKICAg
ICBlbGVtZW50LT5zZXRTZWxlY3RlZChzZWxlY3RlZCk7CiAKLSAgICByZXR1cm4gZWxlbWVudC5y
ZWxlYXNlKCk7CisgICAgcmV0dXJuIGVsZW1lbnQ7CiB9CiAKIGJvb2wgSFRNTE9wdGlvbkVsZW1l
bnQ6OmlzRm9jdXNhYmxlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFByb2dyZXNzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVz
c0VsZW1lbnQuY3BwCmluZGV4IDg3ZjBlMzcwY2EwMmMzYWM5YmIxNDZmYjliZDA3NmViYjRhNDg1
MzUuLmRiN2QwNmE4Yjc5MzA1MjNlYWM2OWM5MDdlNDdkYzQ4Mjk3MzJjMTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcApAQCAtMTQ5LDE2ICsxNDksMTYg
QEAgdm9pZCBIVE1MUHJvZ3Jlc3NFbGVtZW50OjpkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KFNo
YWRvd1Jvb3QqIHJvb3QpCiB7CiAgICAgQVNTRVJUKCFtX3ZhbHVlKTsKIAotICAgIFJlZlB0cjxQ
cm9ncmVzc0lubmVyRWxlbWVudD4gaW5uZXIgPSBQcm9ncmVzc0lubmVyRWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KCkpOwotICAgIHJvb3QtPmFwcGVuZENoaWxkKGlubmVyKTsKKyAgICBSZWY8UHJv
Z3Jlc3NJbm5lckVsZW1lbnQ+IGlubmVyID0gUHJvZ3Jlc3NJbm5lckVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCgpKTsKKyAgICByb290LT5hcHBlbmRDaGlsZChpbm5lci5jb3B5UmVmKCkpOwogCi0g
ICAgUmVmUHRyPFByb2dyZXNzQmFyRWxlbWVudD4gYmFyID0gUHJvZ3Jlc3NCYXJFbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQoKSk7Ci0gICAgUmVmUHRyPFByb2dyZXNzVmFsdWVFbGVtZW50PiB2YWx1
ZSA9IFByb2dyZXNzVmFsdWVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7Ci0gICAgbV92YWx1
ZSA9IHZhbHVlLmdldCgpOworICAgIFJlZjxQcm9ncmVzc0JhckVsZW1lbnQ+IGJhciA9IFByb2dy
ZXNzQmFyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOworICAgIFJlZjxQcm9ncmVzc1ZhbHVl
RWxlbWVudD4gdmFsdWUgPSBQcm9ncmVzc1ZhbHVlRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkp
OworICAgIG1fdmFsdWUgPSB2YWx1ZS5wdHIoKTsKICAgICBtX3ZhbHVlLT5zZXRXaWR0aFBlcmNl
bnRhZ2UoSFRNTFByb2dyZXNzRWxlbWVudDo6SW5kZXRlcm1pbmF0ZVBvc2l0aW9uICogMTAwKTsK
LSAgICBiYXItPmFwcGVuZENoaWxkKG1fdmFsdWUsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAg
IGJhci0+YXBwZW5kQ2hpbGQoKm1fdmFsdWUsIEFTU0VSVF9OT19FWENFUFRJT04pOwogCi0gICAg
aW5uZXItPmFwcGVuZENoaWxkKGJhciwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgaW5uZXIt
PmFwcGVuZENoaWxkKFdURjo6bW92ZShiYXIpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIH0KIAog
Ym9vbCBIVE1MUHJvZ3Jlc3NFbGVtZW50OjpzaG91bGRBcHBlYXJJbmRldGVybWluYXRlKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggNjk1MTE0
NjY4MDQ5MTRiN2FiMjA5ZmJlOTYxYzViZjgzMmUxMDdhNy4uZTEzYTVjZGRjY2EyY2IzYjc1NmE4
ZDNhNTdlMjNmODBhOWI0M2U0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxl
bWVudC5jcHAKQEAgLTE2OSw5ICsxNjksOSBAQCB2b2lkIEhUTUxTY3JpcHRFbGVtZW50OjpkaXNw
YXRjaExvYWRFdmVudCgpCiAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5sb2FkRXZlbnQsIGZhbHNlLCBmYWxzZSkpOwogfQogCi1SZWZQdHI8RWxlbWVudD4gSFRN
TFNjcmlwdEVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4o
RG9jdW1lbnQmIHRhcmdldERvY3VtZW50KQorUmVmPEVsZW1lbnQ+IEhUTUxTY3JpcHRFbGVtZW50
OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50JiB0YXJn
ZXREb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxTY3JpcHRFbGVtZW50
KHRhZ1FOYW1lKCksIHRhcmdldERvY3VtZW50LCBmYWxzZSwgYWxyZWFkeVN0YXJ0ZWQoKSkpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxTY3JpcHRFbGVtZW50KHRhZ1FOYW1lKCksIHRh
cmdldERvY3VtZW50LCBmYWxzZSwgYWxyZWFkeVN0YXJ0ZWQoKSkpOwogfQogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKaW5kZXggZTM5YzEwY2E1ZTg2YzM2NmE1Mzhk
MTdjNjY0NGIzYTI0ZDEzODIwOS4uMzEyYzY2MjZlOGI4MzE0ZTg1ZTJkZjY4N2RiZjA5ZjJiMmZl
MzdiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaApAQCAtNjUsNyAr
NjUsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoTG9hZEV2ZW50KCkg
b3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFJlZlB0cjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRo
b3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50Jikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBSZWY8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihE
b2N1bWVudCYpIG92ZXJyaWRlOwogfTsKIAogfSAvL25hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAppbmRleCBlYjczOTQ1MzVkNDk2MzUzNDZjNjU4MmQx
NzU5NmQzZDQzZjA3OTVlLi40ZjEwNDU4MDEzMjI3M2ZkZWRmMTI1NzhkNGIxYmI2MTBlY2NhZjA1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcApAQCAtMjI3LDcg
KzIyNyw3IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmFkZChIVE1MRWxlbWVudCogZWxlbWVu
dCwgSFRNTEVsZW1lbnQqIGJlZm9yZUVsZW1lbnQsIEV4CiAgICAgLy8gTWFrZSBzdXJlIHRoZSBl
bGVtZW50IGlzIHJlZidkIGFuZCBkZXJlZidkIHNvIHdlIGRvbid0IGxlYWsgaXQuCiAgICAgUmVm
PEhUTUxFbGVtZW50PiBwcm90ZWN0TmV3Q2hpbGQoKmVsZW1lbnQpOwogCi0gICAgaW5zZXJ0QmVm
b3JlKGVsZW1lbnQsIGJlZm9yZUVsZW1lbnQsIGVjKTsKKyAgICBpbnNlcnRCZWZvcmUoKmVsZW1l
bnQsIGJlZm9yZUVsZW1lbnQsIGVjKTsKICAgICB1cGRhdGVWYWxpZGl0eSgpOwogfQogCkBAIC00
ODYsMTIgKzQ4NiwxMiBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzZXRMZW5ndGgodW5zaWdu
ZWQgbmV3TGVuLCBFeGNlcHRpb25Db2RlJiBlYykKIAogICAgICAgICAvLyBSZW1vdmluZyBjaGls
ZHJlbiBmaXJlcyBtdXRhdGlvbiBldmVudHMsIHdoaWNoIG1pZ2h0IG11dGF0ZSB0aGUgRE9NIGZ1
cnRoZXIsIHNvIHdlIGZpcnN0IGNvcHkgb3V0IGEgbGlzdAogICAgICAgICAvLyBvZiBlbGVtZW50
cyB0aGF0IHdlIGludGVuZCB0byByZW1vdmUgdGhlbiBhdHRlbXB0IHRvIHJlbW92ZSB0aGVtIG9u
ZSBhdCBhIHRpbWUuCi0gICAgICAgIFZlY3RvcjxSZWZQdHI8RWxlbWVudD4+IGl0ZW1zVG9SZW1v
dmU7CisgICAgICAgIFZlY3RvcjxSZWY8RWxlbWVudD4+IGl0ZW1zVG9SZW1vdmU7CiAgICAgICAg
IHNpemVfdCBvcHRpb25JbmRleCA9IDA7CiAgICAgICAgIGZvciAoYXV0byYgaXRlbSA6IGl0ZW1z
KSB7CiAgICAgICAgICAgICBpZiAoaXM8SFRNTE9wdGlvbkVsZW1lbnQ+KCppdGVtKSAmJiBvcHRp
b25JbmRleCsrID49IG5ld0xlbikgewogICAgICAgICAgICAgICAgIEFTU0VSVChpdGVtLT5wYXJl
bnROb2RlKCkpOwotICAgICAgICAgICAgICAgIGl0ZW1zVG9SZW1vdmUuYXBwZW5kKGl0ZW0pOwor
ICAgICAgICAgICAgICAgIGl0ZW1zVG9SZW1vdmUuYXBwZW5kKCppdGVtKTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJs
ZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcApp
bmRleCBiOTI4ZTBkN2E0NGNlNjVkOTgxNzUzYjAzMTE2YTc1NjZjNjQxMGNiLi4zOGVhZjIyY2Yz
OTliZDBmMjQ2YjA1NmNhNzY2ODlmZmY4N2I4MWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlRWxlbWVudC5jcHAKQEAgLTgwLDcgKzgwLDggQEAgSFRNTFRhYmxlQ2FwdGlvbkVsZW1l
bnQqIEhUTUxUYWJsZUVsZW1lbnQ6OmNhcHRpb24oKSBjb25zdAogdm9pZCBIVE1MVGFibGVFbGVt
ZW50OjpzZXRDYXB0aW9uKFBhc3NSZWZQdHI8SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQ+IG5ld0Nh
cHRpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGRlbGV0ZUNhcHRpb24oKTsKLSAgICBp
bnNlcnRCZWZvcmUobmV3Q2FwdGlvbiwgZmlyc3RDaGlsZCgpLCBlYyk7CisgICAgaWYgKG5ld0Nh
cHRpb24pCisgICAgICAgIGluc2VydEJlZm9yZSgqbmV3Q2FwdGlvbiwgZmlyc3RDaGlsZCgpLCBl
Yyk7CiB9CiAKIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KiBIVE1MVGFibGVFbGVtZW50Ojp0SGVh
ZCgpIGNvbnN0CkBAIC05NiwxMiArOTcsMTUgQEAgdm9pZCBIVE1MVGFibGVFbGVtZW50OjpzZXRU
SGVhZChQYXNzUmVmUHRyPEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50PiBuZXdIZWFkLCBFeGMKIHsK
ICAgICBkZWxldGVUSGVhZCgpOwogCisgICAgaWYgKCFuZXdIZWFkKQorICAgICAgICByZXR1cm47
CisKICAgICBOb2RlKiBjaGlsZDsKICAgICBmb3IgKGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGls
ZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKICAgICAgICAgaWYgKGNoaWxkLT5pc0Vs
ZW1lbnROb2RlKCkgJiYgIWNoaWxkLT5oYXNUYWdOYW1lKGNhcHRpb25UYWcpICYmICFjaGlsZC0+
aGFzVGFnTmFtZShjb2xncm91cFRhZykpCiAgICAgICAgICAgICBicmVhazsKIAotICAgIGluc2Vy
dEJlZm9yZShuZXdIZWFkLCBjaGlsZCwgZWMpOworICAgIGluc2VydEJlZm9yZSgqbmV3SGVhZCwg
Y2hpbGQsIGVjKTsKIH0KIAogSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqIEhUTUxUYWJsZUVsZW1l
bnQ6OnRGb290KCkgY29uc3QKQEAgLTExNywxMiArMTIxLDE1IEBAIHZvaWQgSFRNTFRhYmxlRWxl
bWVudDo6c2V0VEZvb3QoUGFzc1JlZlB0cjxIVE1MVGFibGVTZWN0aW9uRWxlbWVudD4gbmV3Rm9v
dCwgRXhjCiB7CiAgICAgZGVsZXRlVEZvb3QoKTsKIAorICAgIGlmICghbmV3Rm9vdCkKKyAgICAg
ICAgcmV0dXJuOworCiAgICAgTm9kZSogY2hpbGQ7CiAgICAgZm9yIChjaGlsZCA9IGZpcnN0Q2hp
bGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCiAgICAgICAgIGlmIChj
aGlsZC0+aXNFbGVtZW50Tm9kZSgpICYmICFjaGlsZC0+aGFzVGFnTmFtZShjYXB0aW9uVGFnKSAm
JiAhY2hpbGQtPmhhc1RhZ05hbWUoY29sZ3JvdXBUYWcpICYmICFjaGlsZC0+aGFzVGFnTmFtZSh0
aGVhZFRhZykpCiAgICAgICAgICAgICBicmVhazsKIAotICAgIGluc2VydEJlZm9yZShuZXdGb290
LCBjaGlsZCwgZWMpOworICAgIGluc2VydEJlZm9yZSgqbmV3Rm9vdCwgY2hpbGQsIGVjKTsKIH0K
IAogUmVmUHRyPEhUTUxFbGVtZW50PiBIVE1MVGFibGVFbGVtZW50OjpjcmVhdGVUSGVhZCgpCkBA
IC0xMzYsNyArMTQzLDggQEAgUmVmUHRyPEhUTUxFbGVtZW50PiBIVE1MVGFibGVFbGVtZW50Ojpj
cmVhdGVUSGVhZCgpCiAKIHZvaWQgSFRNTFRhYmxlRWxlbWVudDo6ZGVsZXRlVEhlYWQoKQogewot
ICAgIHJlbW92ZUNoaWxkKHRIZWFkKCksIElHTk9SRV9FWENFUFRJT04pOworICAgIGlmIChhdXRv
KiB0SGVhZCA9IHRoaXMtPnRIZWFkKCkpCisgICAgICAgIHJlbW92ZUNoaWxkKCp0SGVhZCwgSUdO
T1JFX0VYQ0VQVElPTik7CiB9CiAKIFJlZlB0cjxIVE1MRWxlbWVudD4gSFRNTFRhYmxlRWxlbWVu
dDo6Y3JlYXRlVEZvb3QoKQpAQCAtMTUwLDE1ICsxNTgsMTYgQEAgUmVmUHRyPEhUTUxFbGVtZW50
PiBIVE1MVGFibGVFbGVtZW50OjpjcmVhdGVURm9vdCgpCiAKIHZvaWQgSFRNTFRhYmxlRWxlbWVu
dDo6ZGVsZXRlVEZvb3QoKQogewotICAgIHJlbW92ZUNoaWxkKHRGb290KCksIElHTk9SRV9FWENF
UFRJT04pOworICAgIGlmIChhdXRvKiB0Rm9vdCA9IHRoaXMtPnRGb290KCkpCisgICAgICAgIHJl
bW92ZUNoaWxkKCp0Rm9vdCwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CiAKIFJlZlB0cjxIVE1MRWxl
bWVudD4gSFRNTFRhYmxlRWxlbWVudDo6Y3JlYXRlVEJvZHkoKQogewotICAgIFJlZlB0cjxIVE1M
VGFibGVTZWN0aW9uRWxlbWVudD4gYm9keSA9IEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50OjpjcmVh
dGUodGJvZHlUYWcsIGRvY3VtZW50KCkpOwotICAgIE5vZGUqIHJlZmVyZW5jZUVsZW1lbnQgPSBs
YXN0Qm9keSgpID8gbGFzdEJvZHkoKS0+bmV4dFNpYmxpbmcoKSA6IDA7Ci0gICAgaW5zZXJ0QmVm
b3JlKGJvZHksIHJlZmVyZW5jZUVsZW1lbnQsIEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgIHJl
dHVybiBib2R5OworICAgIFJlZjxIVE1MVGFibGVTZWN0aW9uRWxlbWVudD4gYm9keSA9IEhUTUxU
YWJsZVNlY3Rpb25FbGVtZW50OjpjcmVhdGUodGJvZHlUYWcsIGRvY3VtZW50KCkpOworICAgIE5v
ZGUqIHJlZmVyZW5jZUVsZW1lbnQgPSBsYXN0Qm9keSgpID8gbGFzdEJvZHkoKS0+bmV4dFNpYmxp
bmcoKSA6IG51bGxwdHI7CisgICAgaW5zZXJ0QmVmb3JlKGJvZHkuY29weVJlZigpLCByZWZlcmVu
Y2VFbGVtZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICByZXR1cm4gV1RGOjptb3ZlKGJv
ZHkpOwogfQogCiBSZWZQdHI8SFRNTEVsZW1lbnQ+IEhUTUxUYWJsZUVsZW1lbnQ6OmNyZWF0ZUNh
cHRpb24oKQpAQCAtMTcyLDcgKzE4MSw4IEBAIFJlZlB0cjxIVE1MRWxlbWVudD4gSFRNTFRhYmxl
RWxlbWVudDo6Y3JlYXRlQ2FwdGlvbigpCiAKIHZvaWQgSFRNTFRhYmxlRWxlbWVudDo6ZGVsZXRl
Q2FwdGlvbigpCiB7Ci0gICAgcmVtb3ZlQ2hpbGQoY2FwdGlvbigpLCBJR05PUkVfRVhDRVBUSU9O
KTsKKyAgICBpZiAoYXV0byogY2FwdGlvbiA9IHRoaXMtPmNhcHRpb24oKSkKKyAgICAgICAgcmVt
b3ZlQ2hpbGQoKmNhcHRpb24sIElHTk9SRV9FWENFUFRJT04pOwogfQogCiBIVE1MVGFibGVTZWN0
aW9uRWxlbWVudCogSFRNTFRhYmxlRWxlbWVudDo6bGFzdEJvZHkoKSBjb25zdApAQCAtMjE3LDIy
ICsyMjcsMjIgQEAgUmVmUHRyPEhUTUxFbGVtZW50PiBIVE1MVGFibGVFbGVtZW50OjppbnNlcnRS
b3coaW50IGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBlbHNlIHsKICAgICAgICAgcGFy
ZW50ID0gbGFzdEJvZHkoKTsKICAgICAgICAgaWYgKCFwYXJlbnQpIHsKLSAgICAgICAgICAgIFJl
ZlB0cjxIVE1MVGFibGVTZWN0aW9uRWxlbWVudD4gbmV3Qm9keSA9IEhUTUxUYWJsZVNlY3Rpb25F
bGVtZW50OjpjcmVhdGUodGJvZHlUYWcsIGRvY3VtZW50KCkpOwotICAgICAgICAgICAgUmVmUHRy
PEhUTUxUYWJsZVJvd0VsZW1lbnQ+IG5ld1JvdyA9IEhUTUxUYWJsZVJvd0VsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCgpKTsKLSAgICAgICAgICAgIG5ld0JvZHktPmFwcGVuZENoaWxkKG5ld1Jvdywg
ZWMpOwotICAgICAgICAgICAgYXBwZW5kQ2hpbGQobmV3Qm9keS5yZWxlYXNlKCksIGVjKTsKLSAg
ICAgICAgICAgIHJldHVybiBuZXdSb3c7CisgICAgICAgICAgICBSZWY8SFRNTFRhYmxlU2VjdGlv
bkVsZW1lbnQ+IG5ld0JvZHkgPSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDo6Y3JlYXRlKHRib2R5
VGFnLCBkb2N1bWVudCgpKTsKKyAgICAgICAgICAgIFJlZjxIVE1MVGFibGVSb3dFbGVtZW50PiBu
ZXdSb3cgPSBIVE1MVGFibGVSb3dFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CisgICAgICAg
ICAgICBuZXdCb2R5LT5hcHBlbmRDaGlsZChuZXdSb3cuY29weVJlZigpLCBlYyk7CisgICAgICAg
ICAgICBhcHBlbmRDaGlsZChXVEY6Om1vdmUobmV3Qm9keSksIGVjKTsKKyAgICAgICAgICAgIHJl
dHVybiBXVEY6Om1vdmUobmV3Um93KTsKICAgICAgICAgfQogICAgIH0KIAotICAgIFJlZlB0cjxI
VE1MVGFibGVSb3dFbGVtZW50PiBuZXdSb3cgPSBIVE1MVGFibGVSb3dFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQoKSk7Ci0gICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobmV3Um93LCByb3cuZ2V0KCks
IGVjKTsKLSAgICByZXR1cm4gbmV3Um93OworICAgIFJlZjxIVE1MVGFibGVSb3dFbGVtZW50PiBu
ZXdSb3cgPSBIVE1MVGFibGVSb3dFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CisgICAgcGFy
ZW50LT5pbnNlcnRCZWZvcmUobmV3Um93LmNvcHlSZWYoKSwgcm93LmdldCgpLCBlYyk7CisgICAg
cmV0dXJuIFdURjo6bW92ZShuZXdSb3cpOwogfQogCiB2b2lkIEhUTUxUYWJsZUVsZW1lbnQ6OmRl
bGV0ZVJvdyhpbnQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIEhUTUxUYWJsZVJv
d0VsZW1lbnQqIHJvdyA9IDA7CisgICAgSFRNTFRhYmxlUm93RWxlbWVudCogcm93ID0gbnVsbHB0
cjsKICAgICBpZiAoaW5kZXggPT0gLTEpCiAgICAgICAgIHJvdyA9IEhUTUxUYWJsZVJvd3NDb2xs
ZWN0aW9uOjpsYXN0Um93KCp0aGlzKTsKICAgICBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUYWJsZUVsZW1lbnQuaWRsCmluZGV4IGEwYTFjNmIwMzc5YzEwNjYxMmQwZmY5ZmIzZTJhM2Y4
YmRhNTM3YmEuLmYyNTZlYzI3YjhhMzg3NDE4ZTg2ZGM4ODkxOTVhZjg2ZGQwYjYzMDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmlkbApAQCAtMTksOSArMTksOSBAQAog
ICovCiAKIGludGVyZmFjZSBIVE1MVGFibGVFbGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgIFtT
ZXR0ZXJSYWlzZXNFeGNlcHRpb25dIGF0dHJpYnV0ZSBIVE1MVGFibGVDYXB0aW9uRWxlbWVudCBj
YXB0aW9uOwotICAgIFtTZXR0ZXJSYWlzZXNFeGNlcHRpb25dIGF0dHJpYnV0ZSBIVE1MVGFibGVT
ZWN0aW9uRWxlbWVudCB0SGVhZDsKLSAgICBbU2V0dGVyUmFpc2VzRXhjZXB0aW9uXSBhdHRyaWJ1
dGUgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQgdEZvb3Q7CisgICAgW1NldHRlclJhaXNlc0V4Y2Vw
dGlvbiwgU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgSFRNTFRhYmxlQ2FwdGlvbkVsZW1l
bnQgY2FwdGlvbjsKKyAgICBbU2V0dGVyUmFpc2VzRXhjZXB0aW9uLCBTdHJpY3RUeXBlQ2hlY2tp
bmddIGF0dHJpYnV0ZSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCB0SGVhZDsKKyAgICBbU2V0dGVy
UmFpc2VzRXhjZXB0aW9uLCBTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBIVE1MVGFibGVT
ZWN0aW9uRWxlbWVudCB0Rm9vdDsKIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MQ29sbGVj
dGlvbiByb3dzOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MQ29sbGVjdGlvbiB0Qm9kaWVz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5jcHAKaW5kZXggYzg3
MjU5ZjVlY2I5NmQwYWE2MDQ4ZDRkMTRhZThiNjBmOTNiNjhiNi4uOTVjNjkyOWUwMTAzYWQ5M2Qx
YjEwMDMxZjNlMTM2OWY5MTYwY2Q2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGFibGVSb3dFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJs
ZVJvd0VsZW1lbnQuY3BwCkBAIC0xMjUsMjEgKzEyNSwyMSBAQCBSZWZQdHI8SFRNTEVsZW1lbnQ+
IEhUTUxUYWJsZVJvd0VsZW1lbnQ6Omluc2VydENlbGwoaW50IGluZGV4LCBFeGNlcHRpb25Db2Rl
JiBlYwogICAgIGludCBudW1DZWxscyA9IGNoaWxkcmVuLT5sZW5ndGgoKTsKICAgICBpZiAoaW5k
ZXggPCAtMSB8fCBpbmRleCA+IG51bUNlbGxzKSB7CiAgICAgICAgIGVjID0gSU5ERVhfU0laRV9F
UlI7Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAK
LSAgICBSZWZQdHI8SFRNTFRhYmxlQ2VsbEVsZW1lbnQ+IGNlbGwgPSBIVE1MVGFibGVDZWxsRWxl
bWVudDo6Y3JlYXRlKHRkVGFnLCBkb2N1bWVudCgpKTsKKyAgICBSZWY8SFRNTFRhYmxlQ2VsbEVs
ZW1lbnQ+IGNlbGwgPSBIVE1MVGFibGVDZWxsRWxlbWVudDo6Y3JlYXRlKHRkVGFnLCBkb2N1bWVu
dCgpKTsKICAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID49IG51bUNlbGxzKQotICAgICAgICBh
cHBlbmRDaGlsZChjZWxsLCBlYyk7CisgICAgICAgIGFwcGVuZENoaWxkKGNlbGwuY29weVJlZigp
LCBlYyk7CiAgICAgZWxzZSB7CiAgICAgICAgIE5vZGUqIG47CiAgICAgICAgIGlmIChpbmRleCA8
IDEpCiAgICAgICAgICAgICBuID0gZmlyc3RDaGlsZCgpOwogICAgICAgICBlbHNlCiAgICAgICAg
ICAgICBuID0gY2hpbGRyZW4tPml0ZW0oaW5kZXgpOwotICAgICAgICBpbnNlcnRCZWZvcmUoY2Vs
bCwgbiwgZWMpOworICAgICAgICBpbnNlcnRCZWZvcmUoY2VsbC5jb3B5UmVmKCksIG4sIGVjKTsK
ICAgICB9Ci0gICAgcmV0dXJuIGNlbGw7CisgICAgcmV0dXJuIFdURjo6bW92ZShjZWxsKTsKIH0K
IAogdm9pZCBIVE1MVGFibGVSb3dFbGVtZW50OjpkZWxldGVDZWxsKGludCBpbmRleCwgRXhjZXB0
aW9uQ29kZSYgZWMpCkBAIC0xNTAsNyArMTUwLDcgQEAgdm9pZCBIVE1MVGFibGVSb3dFbGVtZW50
OjpkZWxldGVDZWxsKGludCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgIGluZGV4
ID0gbnVtQ2VsbHMtMTsKICAgICBpZiAoaW5kZXggPj0gMCAmJiBpbmRleCA8IG51bUNlbGxzKSB7
CiAgICAgICAgIFJlZlB0cjxOb2RlPiBjZWxsID0gY2hpbGRyZW4tPml0ZW0oaW5kZXgpOwotICAg
ICAgICBIVE1MRWxlbWVudDo6cmVtb3ZlQ2hpbGQoY2VsbC5nZXQoKSwgZWMpOworICAgICAgICBI
VE1MRWxlbWVudDo6cmVtb3ZlQ2hpbGQoKmNlbGwsIGVjKTsKICAgICB9IGVsc2UKICAgICAgICAg
ZWMgPSBJTkRFWF9TSVpFX0VSUjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFi
bGVTZWN0aW9uRWxlbWVudC5jcHAKaW5kZXggOWU0NTMxNmY4ZjNmNGZjNmRhOGUzZGNkYjFiM2U0
ZTJkZDkyN2Q4Ni4uZmQwMmM2MDJmOTQ2Y2YzNGQxMGU4M2MyMjIyNDhmYTM4ODAxMjNlYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAKQEAg
LTY4LDE0ICs2OCwxNCBAQCBSZWZQdHI8SFRNTEVsZW1lbnQ+IEhUTUxUYWJsZVNlY3Rpb25FbGVt
ZW50OjppbnNlcnRSb3coaW50IGluZGV4LCBFeGNlcHRpb25Db2RlJgogICAgIGVsc2UgewogICAg
ICAgICByb3cgPSBIVE1MVGFibGVSb3dFbGVtZW50OjpjcmVhdGUodHJUYWcsIGRvY3VtZW50KCkp
OwogICAgICAgICBpZiAobnVtUm93cyA9PSBpbmRleCB8fCBpbmRleCA9PSAtMSkKLSAgICAgICAg
ICAgIGFwcGVuZENoaWxkKHJvdywgZWMpOworICAgICAgICAgICAgYXBwZW5kQ2hpbGQoKnJvdywg
ZWMpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIE5vZGUqIG47CiAgICAgICAgICAgICBp
ZiAoaW5kZXggPCAxKQogICAgICAgICAgICAgICAgIG4gPSBmaXJzdENoaWxkKCk7CiAgICAgICAg
ICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbiA9IGNoaWxkcmVuLT5pdGVtKGluZGV4KTsKLSAg
ICAgICAgICAgIGluc2VydEJlZm9yZShyb3csIG4sIGVjKTsKKyAgICAgICAgICAgIGluc2VydEJl
Zm9yZSgqcm93LCBuLCBlYyk7CiAgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIHJvdzsKQEAg
LTg5LDcgKzg5LDcgQEAgdm9pZCBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDo6ZGVsZXRlUm93KGlu
dCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgIGluZGV4ID0gbnVtUm93cyAtIDE7
CiAgICAgaWYgKGluZGV4ID49IDAgJiYgaW5kZXggPCBudW1Sb3dzKSB7CiAgICAgICAgIFJlZlB0
cjxOb2RlPiByb3cgPSBjaGlsZHJlbi0+aXRlbShpbmRleCk7Ci0gICAgICAgIEhUTUxFbGVtZW50
OjpyZW1vdmVDaGlsZChyb3cuZ2V0KCksIGVjKTsKKyAgICAgICAgSFRNTEVsZW1lbnQ6OnJlbW92
ZUNoaWxkKCpyb3csIGVjKTsKICAgICB9IGVsc2UKICAgICAgICAgZWMgPSBJTkRFWF9TSVpFX0VS
UjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwCmluZGV4
IGFlYzMwMTBmNmQ2Y2ZlMWJlZGIzMmM0OTcwOWFlY2FkMGI2ZDdmNzIuLjJlMWVkYjIzNmMwNzhl
ZWI2ZGViZTZlOWU1NjExZTcxN2NkYzgzOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGVtcGxhdGVFbGVtZW50LmNwcApAQCAtNjgsNyArNjgsNyBAQCBEb2N1bWVudEZyYWdtZW50KiBI
VE1MVGVtcGxhdGVFbGVtZW50Ojpjb250ZW50KCkgY29uc3QKICAgICByZXR1cm4gbV9jb250ZW50
LmdldCgpOwogfQogCi1SZWZQdHI8Tm9kZT4gSFRNTFRlbXBsYXRlRWxlbWVudDo6Y2xvbmVOb2Rl
SW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uIHR5cGUp
CitSZWY8Tm9kZT4gSFRNTFRlbXBsYXRlRWxlbWVudDo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1l
bnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uIHR5cGUpCiB7CiAgICAgUmVmUHRy
PE5vZGU+IGNsb25lOwogICAgIHN3aXRjaCAodHlwZSkgewpAQCAtODIsOCArODIsOCBAQCBSZWZQ
dHI8Tm9kZT4gSFRNTFRlbXBsYXRlRWxlbWVudDo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQm
IHRhcmdldERvY3VtZW50LCBDbAogICAgICAgICBicmVhazsKICAgICB9CiAgICAgaWYgKG1fY29u
dGVudCkKLSAgICAgICAgY29udGVudCgpLT5jbG9uZUNoaWxkTm9kZXMoZG93bmNhc3Q8SFRNTFRl
bXBsYXRlRWxlbWVudD4oY2xvbmUuZ2V0KCkpLT5jb250ZW50KCkpOwotICAgIHJldHVybiBjbG9u
ZS5yZWxlYXNlKCk7CisgICAgICAgIGNvbnRlbnQoKS0+Y2xvbmVDaGlsZE5vZGVzKCpkb3duY2Fz
dDxIVE1MVGVtcGxhdGVFbGVtZW50PihjbG9uZS5nZXQoKSktPmNvbnRlbnQoKSk7CisgICAgcmV0
dXJuIGNsb25lLnJlbGVhc2VOb25OdWxsKCk7CiB9CiAKIHZvaWQgSFRNTFRlbXBsYXRlRWxlbWVu
dDo6ZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQqIG9sZERvY3VtZW50KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaAppbmRleCA3NjdmMmExODRlYTg1MzdkYmMz
NjQ0NWRhYjgyYzg1ZTAwNWYwNzRiLi5kMWZhODY0MDY5ZGNiNzUwOWM5ZjE4NzcwZGFiNTJmMWU4
NTZiZDE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaApAQCAt
NTAsNyArNTAsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxUZW1wbGF0ZUVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIFJlZlB0cjxO
b2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50Jiwg
Q2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRpZE1vdmVUb05l
d0RvY3VtZW50KERvY3VtZW50KiBvbGREb2N1bWVudCkgb3ZlcnJpZGU7CiAKICAgICBtdXRhYmxl
IFJlZlB0cjxUZW1wbGF0ZUNvbnRlbnREb2N1bWVudEZyYWdtZW50PiBtX2NvbnRlbnQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAppbmRleCA5MzkyOTExNTUw
OTI2MTc3ZWIwNmZjNDIxZTVhMmQwOWQ3YTkyMWU2Li5hMmRlNzMwYzVlN2M5ZDFlNWMyMGQ5MGIy
ZDQyM2MyOGVlNGRjNWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0
QXJlYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxl
bWVudC5jcHAKQEAgLTQwNiw5ICs0MDYsOSBAQCB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNl
dERlZmF1bHRWYWx1ZShjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSkKICAgICBSZWY8SFRNTFRl
eHRBcmVhRWxlbWVudD4gcHJvdGVjdEZyb21NdXRhdGlvbkV2ZW50cygqdGhpcyk7CiAKICAgICAv
LyBUbyBwcmVzZXJ2ZSBjb21tZW50cywgcmVtb3ZlIG9ubHkgdGhlIHRleHQgbm9kZXMsIHRoZW4g
YWRkIGEgc2luZ2xlIHRleHQgbm9kZS4KLSAgICBWZWN0b3I8UmVmUHRyPFRleHQ+PiB0ZXh0Tm9k
ZXM7CisgICAgVmVjdG9yPFJlZjxUZXh0Pj4gdGV4dE5vZGVzOwogICAgIGZvciAoVGV4dCogdGV4
dE5vZGUgPSBUZXh0Tm9kZVRyYXZlcnNhbDo6Zmlyc3RDaGlsZCgqdGhpcyk7IHRleHROb2RlOyB0
ZXh0Tm9kZSA9IFRleHROb2RlVHJhdmVyc2FsOjpuZXh0U2libGluZygqdGV4dE5vZGUpKQotICAg
ICAgICB0ZXh0Tm9kZXMuYXBwZW5kKHRleHROb2RlKTsKKyAgICAgICAgdGV4dE5vZGVzLmFwcGVu
ZCgqdGV4dE5vZGUpOwogCiAgICAgc2l6ZV90IHNpemUgPSB0ZXh0Tm9kZXMuc2l6ZSgpOwogICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQpAQCAtNTIzLDggKzUyMyw4IEBAIHZv
aWQgSFRNTFRleHRBcmVhRWxlbWVudDo6dXBkYXRlUGxhY2Vob2xkZXJUZXh0KCkKICAgICBTdHJp
bmcgcGxhY2Vob2xkZXJUZXh0ID0gc3RyaXBwZWRQbGFjZWhvbGRlcigpOwogICAgIGlmIChwbGFj
ZWhvbGRlclRleHQuaXNFbXB0eSgpKSB7CiAgICAgICAgIGlmIChtX3BsYWNlaG9sZGVyKSB7Ci0g
ICAgICAgICAgICB1c2VyQWdlbnRTaGFkb3dSb290KCktPnJlbW92ZUNoaWxkKG1fcGxhY2Vob2xk
ZXIsIEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgICAgICAgICAgbV9wbGFjZWhvbGRlciA9IDA7
CisgICAgICAgICAgICB1c2VyQWdlbnRTaGFkb3dSb290KCktPnJlbW92ZUNoaWxkKCptX3BsYWNl
aG9sZGVyLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgICAgIG1fcGxhY2Vob2xkZXIg
PSBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC01MzMsNyAr
NTMzLDcgQEAgdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50Ojp1cGRhdGVQbGFjZWhvbGRlclRleHQo
KQogICAgICAgICBtX3BsYWNlaG9sZGVyID0gcGxhY2Vob2xkZXIuZ2V0KCk7CiAgICAgICAgIG1f
cGxhY2Vob2xkZXItPnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtaW5wdXQtcGxhY2Vo
b2xkZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgICAgIG1f
cGxhY2Vob2xkZXItPnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlEaXNwbGF5LCBp
c1BsYWNlaG9sZGVyVmlzaWJsZSgpID8gQ1NTVmFsdWVCbG9jayA6IENTU1ZhbHVlTm9uZSwgdHJ1
ZSk7Ci0gICAgICAgIHVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+aW5zZXJ0QmVmb3JlKG1fcGxhY2Vo
b2xkZXIsIGlubmVyVGV4dEVsZW1lbnQoKS0+bmV4dFNpYmxpbmcoKSk7CisgICAgICAgIHVzZXJB
Z2VudFNoYWRvd1Jvb3QoKS0+aW5zZXJ0QmVmb3JlKCptX3BsYWNlaG9sZGVyLCBpbm5lclRleHRF
bGVtZW50KCktPm5leHRTaWJsaW5nKCkpOwogICAgIH0KICAgICBtX3BsYWNlaG9sZGVyLT5zZXRJ
bm5lclRleHQocGxhY2Vob2xkZXJUZXh0LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VEb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0ltYWdlRG9jdW1lbnQuY3BwCmluZGV4IDgxYjVlZWVkOTU1MWJmYjZlMzMzZDRj
MWQ5Yjc5NmNkNzlkNjFmY2MuLjAzZGIzNzk3N2IwZmUxYWE4N2Q2ZGE2OTRjMmIzMzYxNjE3YjE5
NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VEb2N1bWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZURvY3VtZW50LmNwcApAQCAtOTIsNyArOTIsNyBA
QCBwcml2YXRlOgogCiBjbGFzcyBJbWFnZURvY3VtZW50RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBI
VE1MSW1hZ2VFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEltYWdlRG9jdW1l
bnRFbGVtZW50PiBjcmVhdGUoSW1hZ2VEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8SW1hZ2VE
b2N1bWVudEVsZW1lbnQ+IGNyZWF0ZShJbWFnZURvY3VtZW50Jik7CiAKIHByaXZhdGU6CiAgICAg
SW1hZ2VEb2N1bWVudEVsZW1lbnQoSW1hZ2VEb2N1bWVudCYgZG9jdW1lbnQpCkBAIC0xMDcsOSAr
MTA3LDkgQEAgcHJpdmF0ZToKICAgICBJbWFnZURvY3VtZW50KiBtX2ltYWdlRG9jdW1lbnQ7CiB9
OwogCi1pbmxpbmUgUmVmUHRyPEltYWdlRG9jdW1lbnRFbGVtZW50PiBJbWFnZURvY3VtZW50RWxl
bWVudDo6Y3JlYXRlKEltYWdlRG9jdW1lbnQmIGRvY3VtZW50KQoraW5saW5lIFJlZjxJbWFnZURv
Y3VtZW50RWxlbWVudD4gSW1hZ2VEb2N1bWVudEVsZW1lbnQ6OmNyZWF0ZShJbWFnZURvY3VtZW50
JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEltYWdlRG9jdW1lbnRFbGVt
ZW50KGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW1hZ2VEb2N1bWVudEVs
ZW1lbnQoZG9jdW1lbnQpKTsKIH0KIAogLy8gLS0tLS0tLS0KQEAgLTIxMCwxOSArMjEwLDE5IEBA
IFJlZjxEb2N1bWVudFBhcnNlcj4gSW1hZ2VEb2N1bWVudDo6Y3JlYXRlUGFyc2VyKCkKIAogdm9p
ZCBJbWFnZURvY3VtZW50OjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCiB7Ci0gICAgUmVmUHRy
PEVsZW1lbnQ+IHJvb3RFbGVtZW50ID0gRG9jdW1lbnQ6OmNyZWF0ZUVsZW1lbnQoaHRtbFRhZywg
ZmFsc2UpOwotICAgIGFwcGVuZENoaWxkKHJvb3RFbGVtZW50KTsKLSAgICBkb3duY2FzdDxIVE1M
SHRtbEVsZW1lbnQ+KCpyb290RWxlbWVudCkuaW5zZXJ0ZWRCeVBhcnNlcigpOworICAgIFJlZjxF
bGVtZW50PiByb290RWxlbWVudCA9IERvY3VtZW50OjpjcmVhdGVFbGVtZW50KGh0bWxUYWcsIGZh
bHNlKTsKKyAgICBhcHBlbmRDaGlsZChyb290RWxlbWVudC5jb3B5UmVmKCkpOworICAgIGRvd25j
YXN0PEhUTUxIdG1sRWxlbWVudD4ocm9vdEVsZW1lbnQuZ2V0KCkpLmluc2VydGVkQnlQYXJzZXIo
KTsKIAogICAgIGZyYW1lKCktPmluamVjdFVzZXJTY3JpcHRzKEluamVjdEF0RG9jdW1lbnRTdGFy
dCk7CiAKLSAgICBSZWZQdHI8RWxlbWVudD4gYm9keSA9IERvY3VtZW50OjpjcmVhdGVFbGVtZW50
KGJvZHlUYWcsIGZhbHNlKTsKKyAgICBSZWY8RWxlbWVudD4gYm9keSA9IERvY3VtZW50OjpjcmVh
dGVFbGVtZW50KGJvZHlUYWcsIGZhbHNlKTsKICAgICBib2R5LT5zZXRBdHRyaWJ1dGUoc3R5bGVB
dHRyLCAibWFyZ2luOiAwcHgiKTsKICAgICBpZiAoTUlNRVR5cGVSZWdpc3RyeTo6aXNQREZNSU1F
VHlwZShkb2N1bWVudCgpLmxvYWRlcigpLT5yZXNwb25zZU1JTUVUeXBlKCkpKQotICAgICAgICBk
b3duY2FzdDxIVE1MQm9keUVsZW1lbnQ+KCpib2R5KS5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENT
U1Byb3BlcnR5QmFja2dyb3VuZENvbG9yLCAid2hpdGUiLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X0lERU5UKTsKLSAgICByb290RWxlbWVudC0+YXBwZW5kQ2hpbGQoYm9keSk7CisgICAgICAgIGRv
d25jYXN0PEhUTUxCb2R5RWxlbWVudD4oYm9keS5nZXQoKSkuc2V0SW5saW5lU3R5bGVQcm9wZXJ0
eShDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvciwgIndoaXRlIiwgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU19JREVOVCk7CisgICAgcm9vdEVsZW1lbnQtPmFwcGVuZENoaWxkKGJvZHkuY29weVJlZigp
KTsKICAgICAKLSAgICBSZWZQdHI8SW1hZ2VEb2N1bWVudEVsZW1lbnQ+IGltYWdlRWxlbWVudCA9
IEltYWdlRG9jdW1lbnRFbGVtZW50OjpjcmVhdGUoKnRoaXMpOworICAgIFJlZjxJbWFnZURvY3Vt
ZW50RWxlbWVudD4gaW1hZ2VFbGVtZW50ID0gSW1hZ2VEb2N1bWVudEVsZW1lbnQ6OmNyZWF0ZSgq
dGhpcyk7CiAgICAgaWYgKG1fc2hvdWxkU2hyaW5rSW1hZ2UpCiAgICAgICAgIGltYWdlRWxlbWVu
dC0+c2V0QXR0cmlidXRlKHN0eWxlQXR0ciwgIi13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTsgZGlz
cGxheTpibG9jazsgbWFyZ2luOmF1dG87Iik7CiAgICAgZWxzZQpAQCAtMjMwLDcgKzIzMCw3IEBA
IHZvaWQgSW1hZ2VEb2N1bWVudDo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKQogICAgIGltYWdl
RWxlbWVudC0+c2V0TG9hZE1hbnVhbGx5KHRydWUpOwogICAgIGltYWdlRWxlbWVudC0+c2V0U3Jj
KHVybCgpLnN0cmluZygpKTsKICAgICBpbWFnZUVsZW1lbnQtPmNhY2hlZEltYWdlKCktPnNldFJl
c3BvbnNlKGxvYWRlcigpLT5yZXNwb25zZSgpKTsKLSAgICBib2R5LT5hcHBlbmRDaGlsZChpbWFn
ZUVsZW1lbnQpOworICAgIGJvZHktPmFwcGVuZENoaWxkKGltYWdlRWxlbWVudC5jb3B5UmVmKCkp
OwogICAgIAogICAgIGlmIChtX3Nob3VsZFNocmlua0ltYWdlKSB7CiAjaWYgUExBVEZPUk0oSU9T
KQpAQCAtMjQ0LDcgKzI0NCw3IEBAIHZvaWQgSW1hZ2VEb2N1bWVudDo6Y3JlYXRlRG9jdW1lbnRT
dHJ1Y3R1cmUoKQogI2VuZGlmCiAgICAgfQogCi0gICAgbV9pbWFnZUVsZW1lbnQgPSBpbWFnZUVs
ZW1lbnQuZ2V0KCk7CisgICAgbV9pbWFnZUVsZW1lbnQgPSBpbWFnZUVsZW1lbnQucHRyKCk7CiB9
CiAKIHZvaWQgSW1hZ2VEb2N1bWVudDo6aW1hZ2VVcGRhdGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01l
ZGlhRG9jdW1lbnQuY3BwCmluZGV4IDE4NWFiYTgzNDAzY2U4MjJjNzc2ZWUwYzI4ZGJhNzMwMDE5
Mjk5OWIuLjY1MWM3MjlkNjRkNzZiNTM2OTVmNDc1YzFhYWU1MGE1NzY3M2I5NmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcApAQCAtNzgsMTAgKzc4LDEwIEBAIHByaXZhdGU6
CiAgICAgCiB2b2lkIE1lZGlhRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJl
KCkKIHsKLSAgICBSZWZQdHI8RWxlbWVudD4gcm9vdEVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVh
dGVFbGVtZW50KGh0bWxUYWcsIGZhbHNlKTsKLSAgICBkb2N1bWVudCgpLT5hcHBlbmRDaGlsZChy
b290RWxlbWVudCwgSUdOT1JFX0VYQ0VQVElPTik7Ci0gICAgZG9jdW1lbnQoKS0+c2V0Q1NTVGFy
Z2V0KHJvb3RFbGVtZW50LmdldCgpKTsKLSAgICBkb3duY2FzdDxIVE1MSHRtbEVsZW1lbnQ+KCpy
b290RWxlbWVudCkuaW5zZXJ0ZWRCeVBhcnNlcigpOworICAgIFJlZjxFbGVtZW50PiByb290RWxl
bWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoaHRtbFRhZywgZmFsc2UpOworICAgIGRv
Y3VtZW50KCktPmFwcGVuZENoaWxkKHJvb3RFbGVtZW50LmNvcHlSZWYoKSwgSUdOT1JFX0VYQ0VQ
VElPTik7CisgICAgZG9jdW1lbnQoKS0+c2V0Q1NTVGFyZ2V0KHJvb3RFbGVtZW50LnB0cigpKTsK
KyAgICBkb3duY2FzdDxIVE1MSHRtbEVsZW1lbnQ+KHJvb3RFbGVtZW50LmdldCgpKS5pbnNlcnRl
ZEJ5UGFyc2VyKCk7CiAKICAgICBpZiAoZG9jdW1lbnQoKS0+ZnJhbWUoKSkKICAgICAgICAgZG9j
dW1lbnQoKS0+ZnJhbWUoKS0+aW5qZWN0VXNlclNjcmlwdHMoSW5qZWN0QXREb2N1bWVudFN0YXJ0
KTsKQEAgLTk2LDEyICs5NiwxMiBAQCB2b2lkIE1lZGlhRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURv
Y3VtZW50U3RydWN0dXJlKCkKICAgICBoZWFkRWxlbWVudC0+YXBwZW5kQ2hpbGQobWV0YUVsZW1l
bnQsIElHTk9SRV9FWENFUFRJT04pOwogI2VuZGlmCiAKLSAgICBSZWZQdHI8RWxlbWVudD4gYm9k
eSA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoYm9keVRhZywgZmFsc2UpOwotICAgIHJvb3RF
bGVtZW50LT5hcHBlbmRDaGlsZChib2R5LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBSZWY8RWxl
bWVudD4gYm9keSA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoYm9keVRhZywgZmFsc2UpOwor
ICAgIHJvb3RFbGVtZW50LT5hcHBlbmRDaGlsZChib2R5LmNvcHlSZWYoKSwgSUdOT1JFX0VYQ0VQ
VElPTik7CiAKLSAgICBSZWZQdHI8RWxlbWVudD4gbWVkaWFFbGVtZW50ID0gZG9jdW1lbnQoKS0+
Y3JlYXRlRWxlbWVudCh2aWRlb1RhZywgZmFsc2UpOworICAgIFJlZjxFbGVtZW50PiBtZWRpYUVs
ZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KHZpZGVvVGFnLCBmYWxzZSk7CiAKLSAg
ICBtX21lZGlhRWxlbWVudCA9IGRvd25jYXN0PEhUTUxWaWRlb0VsZW1lbnQ+KG1lZGlhRWxlbWVu
dC5nZXQoKSk7CisgICAgbV9tZWRpYUVsZW1lbnQgPSBkb3duY2FzdDxIVE1MVmlkZW9FbGVtZW50
PihtZWRpYUVsZW1lbnQucHRyKCkpOwogICAgIG1fbWVkaWFFbGVtZW50LT5zZXRBdHRyaWJ1dGUo
Y29udHJvbHNBdHRyLCBlbXB0eUF0b20pOwogICAgIG1fbWVkaWFFbGVtZW50LT5zZXRBdHRyaWJ1
dGUoYXV0b3BsYXlBdHRyLCBlbXB0eUF0b20pOwogCkBAIC0xMTQsMTUgKzExNCwxNSBAQCB2b2lk
IE1lZGlhRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCkKICNlbmRpZgog
ICAgIG1fbWVkaWFFbGVtZW50LT5zZXRBdHRyaWJ1dGUoc3R5bGVBdHRyLCBlbGVtZW50U3R5bGUu
dG9TdHJpbmcoKSk7CiAKLSAgICBSZWZQdHI8RWxlbWVudD4gc291cmNlRWxlbWVudCA9IGRvY3Vt
ZW50KCktPmNyZWF0ZUVsZW1lbnQoc291cmNlVGFnLCBmYWxzZSk7Ci0gICAgSFRNTFNvdXJjZUVs
ZW1lbnQmIHNvdXJjZSA9IGRvd25jYXN0PEhUTUxTb3VyY2VFbGVtZW50Pigqc291cmNlRWxlbWVu
dCk7CisgICAgUmVmPEVsZW1lbnQ+IHNvdXJjZUVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVF
bGVtZW50KHNvdXJjZVRhZywgZmFsc2UpOworICAgIEhUTUxTb3VyY2VFbGVtZW50JiBzb3VyY2Ug
PSBkb3duY2FzdDxIVE1MU291cmNlRWxlbWVudD4oc291cmNlRWxlbWVudC5nZXQoKSk7CiAgICAg
c291cmNlLnNldFNyYyhkb2N1bWVudCgpLT51cmwoKSk7CiAKICAgICBpZiAoRG9jdW1lbnRMb2Fk
ZXIqIGxvYWRlciA9IGRvY3VtZW50KCktPmxvYWRlcigpKQogICAgICAgICBzb3VyY2Uuc2V0VHlw
ZShsb2FkZXItPnJlc3BvbnNlTUlNRVR5cGUoKSk7CiAKLSAgICBtX21lZGlhRWxlbWVudC0+YXBw
ZW5kQ2hpbGQoc291cmNlRWxlbWVudCwgSUdOT1JFX0VYQ0VQVElPTik7Ci0gICAgYm9keS0+YXBw
ZW5kQ2hpbGQobWVkaWFFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBtX21lZGlhRWxl
bWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHNvdXJjZUVsZW1lbnQpLCBJR05PUkVfRVhDRVBU
SU9OKTsKKyAgICBib2R5LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUobWVkaWFFbGVtZW50KSwgSUdO
T1JFX0VYQ0VQVElPTik7CiAKICAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLT5mcmFtZSgp
OwogICAgIGlmICghZnJhbWUpCkBAIC0yNTMsNyArMjUzLDcgQEAgdm9pZCBNZWRpYURvY3VtZW50
OjpyZXBsYWNlTWVkaWFFbGVtZW50VGltZXJGaXJlZCgpCiAgICAgICAgIGlmIChkb2N1bWVudExv
YWRlcikKICAgICAgICAgICAgIGVtYmVkRWxlbWVudC5zZXRBdHRyaWJ1dGUodHlwZUF0dHIsIGRv
Y3VtZW50TG9hZGVyLT53cml0ZXIoKS5taW1lVHlwZSgpKTsKIAotICAgICAgICB2aWRlb0VsZW1l
bnQtPnBhcmVudE5vZGUoKS0+cmVwbGFjZUNoaWxkKCZlbWJlZEVsZW1lbnQsIHZpZGVvRWxlbWVu
dCwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgICAgIHZpZGVvRWxlbWVudC0+cGFyZW50Tm9kZSgp
LT5yZXBsYWNlQ2hpbGQoZW1iZWRFbGVtZW50LCAqdmlkZW9FbGVtZW50LCBJR05PUkVfRVhDRVBU
SU9OKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2lu
RG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5jcHAKaW5k
ZXggZTk2NzcwOTBmNGMzODUzYTdjZmYyMDhiMjNjMzFkYzlkMjU0NDgyMS4uYzBhODBiYTU1NzEz
OTA5YjkzYjE4YjFiZGE4ODAzZmYxNTI3NWJmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9QbHVnaW5Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QbHVnaW5E
b2N1bWVudC5jcHAKQEAgLTY3LDkgKzY3LDkgQEAgcHJpdmF0ZToKIAogdm9pZCBQbHVnaW5Eb2N1
bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKQogewotICAgIFJlZlB0cjxFbGVt
ZW50PiByb290RWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoaHRtbFRhZywgZmFs
c2UpOwotICAgIGRvY3VtZW50KCktPmFwcGVuZENoaWxkKHJvb3RFbGVtZW50LCBJR05PUkVfRVhD
RVBUSU9OKTsKLSAgICBkb3duY2FzdDxIVE1MSHRtbEVsZW1lbnQ+KCpyb290RWxlbWVudCkuaW5z
ZXJ0ZWRCeVBhcnNlcigpOworICAgIFJlZjxFbGVtZW50PiByb290RWxlbWVudCA9IGRvY3VtZW50
KCktPmNyZWF0ZUVsZW1lbnQoaHRtbFRhZywgZmFsc2UpOworICAgIGRvY3VtZW50KCktPmFwcGVu
ZENoaWxkKHJvb3RFbGVtZW50LmNvcHlSZWYoKSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgZG93
bmNhc3Q8SFRNTEh0bWxFbGVtZW50Pihyb290RWxlbWVudC5nZXQoKSkuaW5zZXJ0ZWRCeVBhcnNl
cigpOwogCiAgICAgaWYgKGRvY3VtZW50KCktPmZyYW1lKCkpCiAgICAgICAgIGRvY3VtZW50KCkt
PmZyYW1lKCktPmluamVjdFVzZXJTY3JpcHRzKEluamVjdEF0RG9jdW1lbnRTdGFydCk7CkBAIC03
OSw3ICs3OSw3IEBAIHZvaWQgUGx1Z2luRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURvY3VtZW50U3Ry
dWN0dXJlKCkKICAgICBkb2N1bWVudCgpLT5wcm9jZXNzVmlld3BvcnQoQVNDSUlMaXRlcmFsKCJ1
c2VyLXNjYWxhYmxlPW5vIiksIFZpZXdwb3J0QXJndW1lbnRzOjpQbHVnaW5Eb2N1bWVudCk7CiAj
ZW5kaWYKIAotICAgIFJlZlB0cjxFbGVtZW50PiBib2R5ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxl
bWVudChib2R5VGFnLCBmYWxzZSk7CisgICAgUmVmPEVsZW1lbnQ+IGJvZHkgPSBkb2N1bWVudCgp
LT5jcmVhdGVFbGVtZW50KGJvZHlUYWcsIGZhbHNlKTsKICAgICBib2R5LT5zZXRBdHRyaWJ1dGUo
bWFyZ2lud2lkdGhBdHRyLCBBdG9taWNTdHJpbmcoIjAiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CiAgICAgYm9keS0+c2V0QXR0cmlidXRlKG1hcmdpbmhlaWdodEF0dHIs
IEF0b21pY1N0cmluZygiMCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
ICNpZiBQTEFURk9STShJT1MpCkBAIC04OCwxMSArODgsMTEgQEAgdm9pZCBQbHVnaW5Eb2N1bWVu
dFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKQogICAgIGJvZHktPnNldEF0dHJpYnV0
ZShzdHlsZUF0dHIsIEF0b21pY1N0cmluZygiYmFja2dyb3VuZC1jb2xvcjogcmdiKDM4LDM4LDM4
KSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICNlbmRpZgogCi0gICAg
cm9vdEVsZW1lbnQtPmFwcGVuZENoaWxkKGJvZHksIElHTk9SRV9FWENFUFRJT04pOworICAgIHJv
b3RFbGVtZW50LT5hcHBlbmRDaGlsZChib2R5LmNvcHlSZWYoKSwgSUdOT1JFX0VYQ0VQVElPTik7
CiAgICAgICAgIAotICAgIFJlZlB0cjxFbGVtZW50PiBlbWJlZEVsZW1lbnQgPSBkb2N1bWVudCgp
LT5jcmVhdGVFbGVtZW50KGVtYmVkVGFnLCBmYWxzZSk7CisgICAgUmVmPEVsZW1lbnQ+IGVtYmVk
RWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoZW1iZWRUYWcsIGZhbHNlKTsKICAg
ICAgICAgCi0gICAgbV9lbWJlZEVsZW1lbnQgPSBkb3duY2FzdDxIVE1MRW1iZWRFbGVtZW50Pihl
bWJlZEVsZW1lbnQuZ2V0KCkpOworICAgIG1fZW1iZWRFbGVtZW50ID0gZG93bmNhc3Q8SFRNTEVt
YmVkRWxlbWVudD4oZW1iZWRFbGVtZW50LnB0cigpKTsKICAgICBtX2VtYmVkRWxlbWVudC0+c2V0
QXR0cmlidXRlKHdpZHRoQXR0ciwgIjEwMCUiKTsKICAgICBtX2VtYmVkRWxlbWVudC0+c2V0QXR0
cmlidXRlKGhlaWdodEF0dHIsICIxMDAlIik7CiAgICAgCkBAIC0xMDYsNyArMTA2LDcgQEAgdm9p
ZCBQbHVnaW5Eb2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKQogCiAgICAg
ZG93bmNhc3Q8UGx1Z2luRG9jdW1lbnQ+KCpkb2N1bWVudCgpKS5zZXRQbHVnaW5FbGVtZW50KG1f
ZW1iZWRFbGVtZW50KTsKIAotICAgIGJvZHktPmFwcGVuZENoaWxkKGVtYmVkRWxlbWVudCwgSUdO
T1JFX0VYQ0VQVElPTik7CisgICAgYm9keS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGVtYmVkRWxl
bWVudCksIElHTk9SRV9FWENFUFRJT04pOwogfQogCiB2b2lkIFBsdWdpbkRvY3VtZW50UGFyc2Vy
OjphcHBlbmRCeXRlcyhEb2N1bWVudFdyaXRlciYsIGNvbnN0IGNoYXIqLCBzaXplX3QpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCmluZGV4IGI1YjllNzk0MTMxMTkzYjUwZmU3
OTc5YTE2YTE0Y2IzMDgwNGU3ZDcuLjY2YTc0MTVlOGE0Y2YxMWY5MWRjNjdjMTZhMWQ5MDYwMjVj
ZmZmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCkBAIC0yNTMsMTIg
KzI1MywxMiBAQCB2b2lkIFJhbmdlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKICAg
ICBBU1NFUlQoZWxlbWVudCgpLnVzZXJBZ2VudFNoYWRvd1Jvb3QoKSk7CiAKICAgICBEb2N1bWVu
dCYgZG9jdW1lbnQgPSBlbGVtZW50KCkuZG9jdW1lbnQoKTsKLSAgICBSZWZQdHI8SFRNTERpdkVs
ZW1lbnQ+IHRyYWNrID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgUmVm
PEhUTUxEaXZFbGVtZW50PiB0cmFjayA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQp
OwogICAgIHRyYWNrLT5zZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LXNsaWRlci1ydW5u
YWJsZS10cmFjayIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICB0
cmFjay0+YXBwZW5kQ2hpbGQoU2xpZGVyVGh1bWJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpLCBJ
R05PUkVfRVhDRVBUSU9OKTsKLSAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IGNvbnRhaW5lciA9IFNs
aWRlckNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udGFpbmVyLT5h
cHBlbmRDaGlsZCh0cmFjay5yZWxlYXNlKCksIElHTk9SRV9FWENFUFRJT04pOwotICAgIGVsZW1l
bnQoKS51c2VyQWdlbnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKGNvbnRhaW5lci5yZWxlYXNl
KCksIElHTk9SRV9FWENFUFRJT04pOworICAgIFJlZjxIVE1MRWxlbWVudD4gY29udGFpbmVyID0g
U2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBjb250YWluZXIt
PmFwcGVuZENoaWxkKFdURjo6bW92ZSh0cmFjayksIElHTk9SRV9FWENFUFRJT04pOworICAgIGVs
ZW1lbnQoKS51c2VyQWdlbnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKFdURjo6bW92ZShjb250
YWluZXIpLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KIAogSFRNTEVsZW1lbnQqIFJhbmdlSW5wdXRU
eXBlOjpzbGlkZXJUcmFja0VsZW1lbnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJ
bnB1dFR5cGUuY3BwCmluZGV4IGRlNDNkYjU4MDQ5M2JjNjU5OWY5ZTdhZTg4N2U3MGM5ODFjNDJl
NjcuLjM1N2M3YTYwNWI0ZGI3MmMwMGU3Yjk2ZGVkNmRkNjQ2MjBlOGQ2ZmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAKQEAgLTEwNywxNCArMTA3LDE0IEBAIHZvaWQg
U2VhcmNoSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKICAgICBBU1NFUlQoY29udGFp
bmVyKTsKICAgICBBU1NFUlQodGV4dFdyYXBwZXIpOwogCi0gICAgUmVmUHRyPFNlYXJjaEZpZWxk
UmVzdWx0c0J1dHRvbkVsZW1lbnQ+IHJlc3VsdHNCdXR0b24gPSBTZWFyY2hGaWVsZFJlc3VsdHNC
dXR0b25FbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLmRvY3VtZW50KCkpOwotICAgIG1fcmVzdWx0
c0J1dHRvbiA9IHJlc3VsdHNCdXR0b24uZ2V0KCk7Ci0gICAgdXBkYXRlUmVzdWx0QnV0dG9uUHNl
dWRvVHlwZSgqbV9yZXN1bHRzQnV0dG9uLCBlbGVtZW50KCkubWF4UmVzdWx0cygpKTsKLSAgICBj
b250YWluZXItPmluc2VydEJlZm9yZShtX3Jlc3VsdHNCdXR0b24sIHRleHRXcmFwcGVyLCBJR05P
UkVfRVhDRVBUSU9OKTsKLQotICAgIFJlZlB0cjxTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1l
bnQ+IGNhbmNlbEJ1dHRvbiA9IFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudDo6Y3JlYXRl
KGVsZW1lbnQoKS5kb2N1bWVudCgpKTsKLSAgICBtX2NhbmNlbEJ1dHRvbiA9IGNhbmNlbEJ1dHRv
bi5nZXQoKTsKLSAgICBjb250YWluZXItPmluc2VydEJlZm9yZShtX2NhbmNlbEJ1dHRvbiwgdGV4
dFdyYXBwZXItPm5leHRTaWJsaW5nKCksIElHTk9SRV9FWENFUFRJT04pOworICAgIFJlZjxTZWFy
Y2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50PiByZXN1bHRzQnV0dG9uID0gU2VhcmNoRmllbGRS
ZXN1bHRzQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS5kb2N1bWVudCgpKTsKKyAgICBt
X3Jlc3VsdHNCdXR0b24gPSByZXN1bHRzQnV0dG9uLnB0cigpOworICAgIHVwZGF0ZVJlc3VsdEJ1
dHRvblBzZXVkb1R5cGUocmVzdWx0c0J1dHRvbi5nZXQoKSwgZWxlbWVudCgpLm1heFJlc3VsdHMo
KSk7CisgICAgY29udGFpbmVyLT5pbnNlcnRCZWZvcmUoV1RGOjptb3ZlKHJlc3VsdHNCdXR0b24p
LCB0ZXh0V3JhcHBlciwgSUdOT1JFX0VYQ0VQVElPTik7CisKKyAgICBSZWY8U2VhcmNoRmllbGRD
YW5jZWxCdXR0b25FbGVtZW50PiBjYW5jZWxCdXR0b24gPSBTZWFyY2hGaWVsZENhbmNlbEJ1dHRv
bkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCkuZG9jdW1lbnQoKSk7CisgICAgbV9jYW5jZWxCdXR0
b24gPSBjYW5jZWxCdXR0b24ucHRyKCk7CisgICAgY29udGFpbmVyLT5pbnNlcnRCZWZvcmUoV1RG
Ojptb3ZlKGNhbmNlbEJ1dHRvbiksIHRleHRXcmFwcGVyLT5uZXh0U2libGluZygpLCBJR05PUkVf
RVhDRVBUSU9OKTsKIH0KIAogSFRNTEVsZW1lbnQqIFNlYXJjaElucHV0VHlwZTo6cmVzdWx0c0J1
dHRvbkVsZW1lbnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0
RmllbGRJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5
cGUuY3BwCmluZGV4IGVhZTNkYjI5ZWVlM2MyZGU5NWZlNzE4MGM1NDZmZjhlN2UyYTc2N2UuLjEz
NmYwOTc1MWI1ZGE2MTAwMDYxNjQ5YjU1YjU0OWFjOWQyMzQyYjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKQEAgLTI3NCw3ICsyNzQsNyBAQCB2b2lkIFRl
eHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAgICAgbV9pbm5lclRleHQg
PSBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAKICAgICBp
ZiAoIWNyZWF0ZXNDb250YWluZXIpIHsKLSAgICAgICAgZWxlbWVudCgpLnVzZXJBZ2VudFNoYWRv
d1Jvb3QoKS0+YXBwZW5kQ2hpbGQobV9pbm5lclRleHQsIElHTk9SRV9FWENFUFRJT04pOworICAg
ICAgICBlbGVtZW50KCkudXNlckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZCgqbV9pbm5l
clRleHQsIElHTk9SRV9FWENFUFRJT04pOwogICAgICAgICB1cGRhdGVQbGFjZWhvbGRlclRleHQo
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTI4NCw3ICsyODQsNyBAQCB2b2lkIFRleHRG
aWVsZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAKICAgICBpZiAoc2hvdWxkSGF2
ZVNwaW5CdXR0b24pIHsKICAgICAgICAgbV9pbm5lclNwaW5CdXR0b24gPSBTcGluQnV0dG9uRWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50LCAqdGhpcyk7Ci0gICAgICAgIG1fY29udGFpbmVyLT5hcHBl
bmRDaGlsZChtX2lubmVyU3BpbkJ1dHRvbiwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgICAgIG1f
Y29udGFpbmVyLT5hcHBlbmRDaGlsZCgqbV9pbm5lclNwaW5CdXR0b24sIElHTk9SRV9FWENFUFRJ
T04pOwogICAgIH0KIAogICAgIGlmIChzaG91bGRIYXZlQ2Fwc0xvY2tJbmRpY2F0b3IpIHsKQEAg
LTI5NCw3ICsyOTQsNyBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3Vi
dHJlZSgpCiAgICAgICAgIGJvb2wgc2hvdWxkRHJhd0NhcHNMb2NrSW5kaWNhdG9yID0gdGhpcy0+
c2hvdWxkRHJhd0NhcHNMb2NrSW5kaWNhdG9yKCk7CiAgICAgICAgIG1fY2Fwc0xvY2tJbmRpY2F0
b3ItPnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlEaXNwbGF5LCBzaG91bGREcmF3
Q2Fwc0xvY2tJbmRpY2F0b3IgPyBDU1NWYWx1ZUJsb2NrIDogQ1NTVmFsdWVOb25lLCB0cnVlKTsK
IAotICAgICAgICBtX2NvbnRhaW5lci0+YXBwZW5kQ2hpbGQobV9jYXBzTG9ja0luZGljYXRvciwg
SUdOT1JFX0VYQ0VQVElPTik7CisgICAgICAgIG1fY29udGFpbmVyLT5hcHBlbmRDaGlsZCgqbV9j
YXBzTG9ja0luZGljYXRvciwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgfQogCiAgICAgdXBkYXRl
QXV0b0ZpbGxCdXR0b24oKTsKQEAgLTQ2MSw3ICs0NjEsNyBAQCB2b2lkIFRleHRGaWVsZElucHV0
VHlwZTo6dXBkYXRlUGxhY2Vob2xkZXJUZXh0KCkKICAgICBTdHJpbmcgcGxhY2Vob2xkZXJUZXh0
ID0gZWxlbWVudCgpLnN0cmlwcGVkUGxhY2Vob2xkZXIoKTsKICAgICBpZiAocGxhY2Vob2xkZXJU
ZXh0LmlzRW1wdHkoKSkgewogICAgICAgICBpZiAobV9wbGFjZWhvbGRlcikgewotICAgICAgICAg
ICAgbV9wbGFjZWhvbGRlci0+cGFyZW50Tm9kZSgpLT5yZW1vdmVDaGlsZChtX3BsYWNlaG9sZGVy
LmdldCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgICAgIG1fcGxhY2Vob2xkZXIt
PnBhcmVudE5vZGUoKS0+cmVtb3ZlQ2hpbGQoKm1fcGxhY2Vob2xkZXIsIEFTU0VSVF9OT19FWENF
UFRJT04pOwogICAgICAgICAgICAgbV9wbGFjZWhvbGRlciA9IG51bGxwdHI7CiAgICAgICAgIH0K
ICAgICAgICAgcmV0dXJuOwpAQCAtNDcwLDcgKzQ3MCw3IEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRU
eXBlOjp1cGRhdGVQbGFjZWhvbGRlclRleHQoKQogICAgICAgICBtX3BsYWNlaG9sZGVyID0gSFRN
TERpdkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCkuZG9jdW1lbnQoKSk7CiAgICAgICAgIG1fcGxh
Y2Vob2xkZXItPnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtaW5wdXQtcGxhY2Vob2xk
ZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgICAgIG1fcGxh
Y2Vob2xkZXItPnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlEaXNwbGF5LCBlbGVt
ZW50KCkuaXNQbGFjZWhvbGRlclZpc2libGUoKSA/IENTU1ZhbHVlQmxvY2sgOiBDU1NWYWx1ZU5v
bmUsIHRydWUpOwotICAgICAgICBlbGVtZW50KCkudXNlckFnZW50U2hhZG93Um9vdCgpLT5pbnNl
cnRCZWZvcmUobV9wbGFjZWhvbGRlciwgbV9jb250YWluZXIgPyBtX2NvbnRhaW5lci5nZXQoKSA6
IGlubmVyVGV4dEVsZW1lbnQoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAgIGVsZW1l
bnQoKS51c2VyQWdlbnRTaGFkb3dSb290KCktPmluc2VydEJlZm9yZSgqbV9wbGFjZWhvbGRlciwg
bV9jb250YWluZXIgPyBtX2NvbnRhaW5lci5nZXQoKSA6IGlubmVyVGV4dEVsZW1lbnQoKSwgQVNT
RVJUX05PX0VYQ0VQVElPTik7CiAgICAgICAgIAogICAgIH0KICAgICBtX3BsYWNlaG9sZGVyLT5z
ZXRJbm5lclRleHQocGxhY2Vob2xkZXJUZXh0LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKQEAgLTYw
MCwxMCArNjAwLDEwIEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVDb250YWluZXIo
KQogICAgIG1fY29udGFpbmVyLT5zZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LXRleHRm
aWVsZC1kZWNvcmF0aW9uLWNvbnRhaW5lciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKIAogICAgIG1faW5uZXJCbG9jayA9IFRleHRDb250cm9sSW5uZXJFbGVtZW50Ojpj
cmVhdGUoZWxlbWVudCgpLmRvY3VtZW50KCkpOwotICAgIG1faW5uZXJCbG9jay0+YXBwZW5kQ2hp
bGQobV9pbm5lclRleHQsIElHTk9SRV9FWENFUFRJT04pOwotICAgIG1fY29udGFpbmVyLT5hcHBl
bmRDaGlsZChtX2lubmVyQmxvY2ssIElHTk9SRV9FWENFUFRJT04pOworICAgIG1faW5uZXJCbG9j
ay0+YXBwZW5kQ2hpbGQoKm1faW5uZXJUZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBtX2Nv
bnRhaW5lci0+YXBwZW5kQ2hpbGQoKm1faW5uZXJCbG9jaywgSUdOT1JFX0VYQ0VQVElPTik7CiAK
LSAgICBlbGVtZW50KCkudXNlckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChtX2NvbnRh
aW5lciwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgZWxlbWVudCgpLnVzZXJBZ2VudFNoYWRvd1Jv
b3QoKS0+YXBwZW5kQ2hpbGQoKm1fY29udGFpbmVyLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KIAog
dm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZUF1dG9GaWxsQnV0dG9uKCkKQEAgLTYxMiw3
ICs2MTIsNyBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlQXV0b0ZpbGxCdXR0b24o
KQogCiAgICAgbV9hdXRvRmlsbEJ1dHRvbiA9IEF1dG9GaWxsQnV0dG9uRWxlbWVudDo6Y3JlYXRl
KGVsZW1lbnQoKS5kb2N1bWVudCgpLCAqdGhpcyk7CiAgICAgbV9hdXRvRmlsbEJ1dHRvbi0+c2V0
UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC1hdXRvLWZpbGwtYnV0dG9uIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIG1fY29udGFpbmVyLT5hcHBlbmRDaGls
ZChtX2F1dG9GaWxsQnV0dG9uLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBtX2NvbnRhaW5lci0+
YXBwZW5kQ2hpbGQoKm1fYXV0b0ZpbGxCdXR0b24sIElHTk9SRV9FWENFUFRJT04pOwogfQogCiB2
b2lkIFRleHRGaWVsZElucHV0VHlwZTo6dXBkYXRlQXV0b0ZpbGxCdXR0b24oKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcAppbmRleCBmNjFlMWI1ZWZlMjcwOTMxZGFi
MGVjMmVlZGYwZjM0YmQ3NzgyYjk2Li45MDYyOTVlMTk4Zjc4NDU2NTYxMmFhNTJjYjllNmFjNGQ1
MzBmYWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcApAQCAt
MTgwLDMyICsxODAsMzIgQEAgdm9pZCBWYWxpZGF0aW9uTWVzc2FnZTo6YnVpbGRCdWJibGVUcmVl
KCkKICAgICAvLyBOZWVkIHRvIGZvcmNlIHBvc2l0aW9uOmFic29sdXRlIGJlY2F1c2UgUmVuZGVy
TWVudUxpc3QgZG9lc24ndCBhc3N1bWUgaXQKICAgICAvLyBjb250YWlucyBub24tYWJzb2x1dGUg
b3Igbm9uLWZpeGVkIHJlbmRlcmVycyBhcyBjaGlsZHJlbi4KICAgICBtX2J1YmJsZS0+c2V0SW5s
aW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eVBvc2l0aW9uLCBDU1NWYWx1ZUFic29sdXRlKTsK
LSAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKG1fYnViYmxlLmdldCgpLCBBU1NFUlRfTk9fRVhD
RVBUSU9OKTsKKyAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKCptX2J1YmJsZSwgQVNTRVJUX05P
X0VYQ0VQVElPTik7CiAgICAgZG9jdW1lbnQudXBkYXRlTGF5b3V0KCk7CiAgICAgYWRqdXN0QnVi
YmxlUG9zaXRpb24obV9lbGVtZW50LT5yZW5kZXJlcigpLT5hYnNvbHV0ZUJvdW5kaW5nQm94UmVj
dCgpLCBtX2J1YmJsZS5nZXQoKSk7CiAKLSAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IGNsaXBw
ZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBSZWY8SFRNTERpdkVs
ZW1lbnQ+IGNsaXBwZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBj
bGlwcGVyLT5zZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxl
LWFycm93LWNsaXBwZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0g
ICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBidWJibGVBcnJvdyA9IEhUTUxEaXZFbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQpOworICAgIFJlZjxIVE1MRGl2RWxlbWVudD4gYnViYmxlQXJyb3cgPSBI
VE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBidWJibGVBcnJvdy0+c2V0UHNl
dWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1hcnJvdyIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBjbGlwcGVyLT5hcHBlbmRDaGls
ZChidWJibGVBcnJvdy5yZWxlYXNlKCksIEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgIG1fYnVi
YmxlLT5hcHBlbmRDaGlsZChjbGlwcGVyLnJlbGVhc2UoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7
CisgICAgY2xpcHBlci0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGJ1YmJsZUFycm93KSwgQVNTRVJU
X05PX0VYQ0VQVElPTik7CisgICAgbV9idWJibGUtPmFwcGVuZENoaWxkKFdURjo6bW92ZShjbGlw
cGVyKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKLSAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IG1l
c3NhZ2UgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBSZWY8SFRNTEVs
ZW1lbnQ+IG1lc3NhZ2UgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBt
ZXNzYWdlLT5zZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxl
LW1lc3NhZ2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgUmVm
UHRyPEhUTUxFbGVtZW50PiBpY29uID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7
CisgICAgUmVmPEhUTUxFbGVtZW50PiBpY29uID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCk7CiAgICAgaWNvbi0+c2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC12YWxpZGF0
aW9uLWJ1YmJsZS1pY29uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwot
ICAgIG1lc3NhZ2UtPmFwcGVuZENoaWxkKGljb24ucmVsZWFzZSgpLCBBU1NFUlRfTk9fRVhDRVBU
SU9OKTsKLSAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IHRleHRCbG9jayA9IEhUTUxEaXZFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIG1lc3NhZ2UtPmFwcGVuZENoaWxkKFdURjo6bW92ZShp
Y29uKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgUmVmPEhUTUxFbGVtZW50PiB0ZXh0Qmxv
Y2sgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICB0ZXh0QmxvY2stPnNl
dFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtdGV4dC1ibG9j
ayIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBtX21lc3NhZ2VI
ZWFkaW5nID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgbV9tZXNzYWdl
SGVhZGluZy0+c2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJs
ZS1oZWFkaW5nIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIHRl
eHRCbG9jay0+YXBwZW5kQ2hpbGQobV9tZXNzYWdlSGVhZGluZywgQVNTRVJUX05PX0VYQ0VQVElP
Tik7CisgICAgdGV4dEJsb2NrLT5hcHBlbmRDaGlsZCgqbV9tZXNzYWdlSGVhZGluZywgQVNTRVJU
X05PX0VYQ0VQVElPTik7CiAgICAgbV9tZXNzYWdlQm9keSA9IEhUTUxEaXZFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQpOwogICAgIG1fbWVzc2FnZUJvZHktPnNldFBzZXVkbyhBdG9taWNTdHJpbmco
Ii13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtYm9keSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKLSAgICB0ZXh0QmxvY2stPmFwcGVuZENoaWxkKG1fbWVzc2FnZUJvZHks
IEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgIG1lc3NhZ2UtPmFwcGVuZENoaWxkKHRleHRCbG9j
ay5yZWxlYXNlKCksIEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgIG1fYnViYmxlLT5hcHBlbmRD
aGlsZChtZXNzYWdlLnJlbGVhc2UoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgdGV4dEJs
b2NrLT5hcHBlbmRDaGlsZCgqbV9tZXNzYWdlQm9keSwgQVNTRVJUX05PX0VYQ0VQVElPTik7Cisg
ICAgbWVzc2FnZS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHRleHRCbG9jayksIEFTU0VSVF9OT19F
WENFUFRJT04pOworICAgIG1fYnViYmxlLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUobWVzc2FnZSks
IEFTU0VSVF9OT19FWENFUFRJT04pOwogCiAgICAgc2V0TWVzc2FnZURPTUFuZFN0YXJ0VGltZXIo
KTsKIApAQCAtMjM3LDcgKzIzNyw3IEBAIHZvaWQgVmFsaWRhdGlvbk1lc3NhZ2U6OmRlbGV0ZUJ1
YmJsZVRyZWUoKQogICAgIGlmIChtX2J1YmJsZSkgewogICAgICAgICBtX21lc3NhZ2VIZWFkaW5n
ID0gbnVsbHB0cjsKICAgICAgICAgbV9tZXNzYWdlQm9keSA9IG51bGxwdHI7Ci0gICAgICAgIG1f
ZWxlbWVudC0+dXNlckFnZW50U2hhZG93Um9vdCgpLT5yZW1vdmVDaGlsZChtX2J1YmJsZS5nZXQo
KSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAgIG1fZWxlbWVudC0+dXNlckFnZW50U2hh
ZG93Um9vdCgpLT5yZW1vdmVDaGlsZCgqbV9idWJibGUsIEFTU0VSVF9OT19FWENFUFRJT04pOwog
ICAgICAgICBtX2J1YmJsZSA9IG51bGxwdHI7CiAgICAgfQogICAgIG1fbWVzc2FnZSA9IFN0cmlu
ZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9s
RWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxl
bWVudHMuY3BwCmluZGV4IDllNDgzYTk5ZDQ1ODkwZTA2NzZjN2Y4YTI2OGZiYmE0ZDQwNTQwYzIu
LjIyY2UzMzlkMzQ4MjU4NGZjZjEzZjRjYWVlZDhhMGI0NTZmZmE3ZDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKQEAgLTgw
NywyMSArODA3LDIxIEBAIHZvaWQgTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RF
bGVtZW50OjpyZWJ1aWxkVHJhY2tMaXN0TWVudSgpCiAgICAgQ2FwdGlvblVzZXJQcmVmZXJlbmNl
cyogY2FwdGlvblByZWZlcmVuY2VzID0gZG9jdW1lbnQoKS5wYWdlKCktPmdyb3VwKCkuY2FwdGlv
blByZWZlcmVuY2VzKCk7CiAgICAgVmVjdG9yPFJlZlB0cjxUZXh0VHJhY2s+PiB0cmFja3NGb3JN
ZW51ID0gY2FwdGlvblByZWZlcmVuY2VzLT5zb3J0ZWRUcmFja0xpc3RGb3JNZW51KHRyYWNrTGlz
dCk7CiAKLSAgICBSZWZQdHI8RWxlbWVudD4gY2FwdGlvbnNIZWFkZXIgPSBkb2N1bWVudCgpLmNy
ZWF0ZUVsZW1lbnQoaDNUYWcsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIFJlZjxFbGVtZW50
PiBjYXB0aW9uc0hlYWRlciA9IGRvY3VtZW50KCkuY3JlYXRlRWxlbWVudChoM1RhZywgQVNTRVJU
X05PX0VYQ0VQVElPTik7CiAgICAgY2FwdGlvbnNIZWFkZXItPmFwcGVuZENoaWxkKGRvY3VtZW50
KCkuY3JlYXRlVGV4dE5vZGUodGV4dFRyYWNrU3VidGl0bGVzVGV4dCgpKSk7Ci0gICAgYXBwZW5k
Q2hpbGQoY2FwdGlvbnNIZWFkZXIpOwotICAgIFJlZlB0cjxFbGVtZW50PiBjYXB0aW9uc01lbnVM
aXN0ID0gZG9jdW1lbnQoKS5jcmVhdGVFbGVtZW50KHVsVGFnLCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKKyAgICBhcHBlbmRDaGlsZChXVEY6Om1vdmUoY2FwdGlvbnNIZWFkZXIpKTsKKyAgICBSZWY8
RWxlbWVudD4gY2FwdGlvbnNNZW51TGlzdCA9IGRvY3VtZW50KCkuY3JlYXRlRWxlbWVudCh1bFRh
ZywgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBsZW5n
dGggPSB0cmFja3NGb3JNZW51LnNpemUoKTsgaSA8IGxlbmd0aDsgKytpKSB7CiAgICAgICAgIFJl
ZlB0cjxUZXh0VHJhY2s+IHRleHRUcmFjayA9IHRyYWNrc0Zvck1lbnVbaV07Ci0gICAgICAgIFJl
ZlB0cjxFbGVtZW50PiBtZW51SXRlbSA9IGRvY3VtZW50KCkuY3JlYXRlRWxlbWVudChsaVRhZywg
QVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAgIFJlZjxFbGVtZW50PiBtZW51SXRlbSA9IGRv
Y3VtZW50KCkuY3JlYXRlRWxlbWVudChsaVRhZywgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAg
ICAgIG1lbnVJdGVtLT5hcHBlbmRDaGlsZChkb2N1bWVudCgpLmNyZWF0ZVRleHROb2RlKGNhcHRp
b25QcmVmZXJlbmNlcy0+ZGlzcGxheU5hbWVGb3JUcmFjayh0ZXh0VHJhY2suZ2V0KCkpKSk7Ci0g
ICAgICAgIGNhcHRpb25zTWVudUxpc3QtPmFwcGVuZENoaWxkKG1lbnVJdGVtKTsKLSAgICAgICAg
bV9tZW51SXRlbXMuYXBwZW5kKG1lbnVJdGVtKTsKLSAgICAgICAgbV9tZW51VG9UcmFja01hcC5h
ZGQobWVudUl0ZW0sIHRleHRUcmFjayk7CisgICAgICAgIGNhcHRpb25zTWVudUxpc3QtPmFwcGVu
ZENoaWxkKG1lbnVJdGVtLmNvcHlSZWYoKSk7CisgICAgICAgIG1fbWVudUl0ZW1zLmFwcGVuZCht
ZW51SXRlbS5wdHIoKSk7CisgICAgICAgIG1fbWVudVRvVHJhY2tNYXAuYWRkKG1lbnVJdGVtLnB0
cigpLCB0ZXh0VHJhY2spOwogICAgIH0KIAotICAgIGFwcGVuZENoaWxkKGNhcHRpb25zTWVudUxp
c3QpOworICAgIGFwcGVuZENoaWxkKFdURjo6bW92ZShjYXB0aW9uc01lbnVMaXN0KSk7CiAjZW5k
aWYKIH0KIApAQCAtMTE4NiwxNiArMTE4NiwxNiBAQCB2b2lkIE1lZGlhQ29udHJvbFRleHRUcmFj
a0NvbnRhaW5lckVsZW1lbnQ6OnVwZGF0ZURpc3BsYXkoKQogICAgICAgICAgICAgLy8gdHJhY2sg
Y3VlIHJlZ2lvbiBpZGVudGlmaWVyLCBydW4gdGhlIGZvbGxvd2luZyBzdWJzdGVwczoKICAgICAg
ICAgICAgIGlmIChkaXNwbGF5Qm94LT5oYXNDaGlsZE5vZGVzKCkgJiYgIWNvbnRhaW5zKGRpc3Bs
YXlCb3guZ2V0KCkpKSB7CiAgICAgICAgICAgICAgICAgLy8gTm90ZTogdGhlIGRpc3BsYXkgdHJl
ZSBvZiBhIGN1ZSBpcyByZW1vdmVkIHdoZW4gdGhlIGFjdGl2ZSBmbGFnIG9mIHRoZSBjdWUgaXMg
dW5zZXQuCi0gICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQoZGlzcGxheUJveCwgQVNTRVJUX05P
X0VYQ0VQVElPTik7CisgICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQoKmRpc3BsYXlCb3gsIEFT
U0VSVF9OT19FWENFUFRJT04pOwogICAgICAgICAgICAgICAgIGN1ZS0+c2V0Rm9udFNpemUobV9m
b250U2l6ZSwgbV92aWRlb0Rpc3BsYXlTaXplLnNpemUoKSwgbV9mb250U2l6ZUlzSW1wb3J0YW50
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIExldCBy
ZWdpb24gYmUgdGhlIFdlYlZUVCByZWdpb24gd2hvc2UgcmVnaW9uIGlkZW50aWZpZXIKICAgICAg
ICAgICAgIC8vIG1hdGNoZXMgdGhlIHRleHQgdHJhY2sgY3VlIHJlZ2lvbiBpZGVudGlmaWVyIG9m
IGN1ZS4KLSAgICAgICAgICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gcmVnaW9uTm9kZSA9IHJl
Z2lvbi0+Z2V0RGlzcGxheVRyZWUoKTsKKyAgICAgICAgICAgIFJlZjxIVE1MRGl2RWxlbWVudD4g
cmVnaW9uTm9kZSA9IHJlZ2lvbi0+Z2V0RGlzcGxheVRyZWUoKTsKIAogICAgICAgICAgICAgLy8g
QXBwZW5kIHRoZSByZWdpb24gdG8gdGhlIHZpZXdwb3J0LCBpZiBpdCB3YXMgbm90IGFscmVhZHku
Ci0gICAgICAgICAgICBpZiAoIWNvbnRhaW5zKHJlZ2lvbk5vZGUuZ2V0KCkpKQorICAgICAgICAg
ICAgaWYgKCFjb250YWlucyhyZWdpb25Ob2RlLnB0cigpKSkKICAgICAgICAgICAgICAgICBhcHBl
bmRDaGlsZChyZWdpb24tPmdldERpc3BsYXlUcmVlKCkpOwogCiAgICAgICAgICAgICByZWdpb24t
PmFwcGVuZFRleHRUcmFja0N1ZUJveChkaXNwbGF5Qm94KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvTWVkaWFDb250cm9scy5jcHAKaW5kZXggM2RkNmRlODZkYTFmY2NkMWZlMWEwNjA4
NTNkNDcxMjNhNGE3MGQ5OC4uOWRmOTk4ZjFhOTg3YmM5MmZmNzg4NGQ1NTMzMTg2MmExNWNiOWIy
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5jcHAKQEAg
LTM4MCwxNCArMzgwLDE0IEBAIHZvaWQgTWVkaWFDb250cm9sczo6Y3JlYXRlVGV4dFRyYWNrRGlz
cGxheSgpCiAgICAgaWYgKG1fdGV4dERpc3BsYXlDb250YWluZXIpCiAgICAgICAgIHJldHVybjsK
IAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50PiB0ZXh0
RGlzcGxheUNvbnRhaW5lciA9IE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6
OmNyZWF0ZShkb2N1bWVudCgpKTsKLSAgICBtX3RleHREaXNwbGF5Q29udGFpbmVyID0gdGV4dERp
c3BsYXlDb250YWluZXIuZ2V0KCk7CisgICAgUmVmPE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRh
aW5lckVsZW1lbnQ+IHRleHREaXNwbGF5Q29udGFpbmVyID0gTWVkaWFDb250cm9sVGV4dFRyYWNr
Q29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOworICAgIG1fdGV4dERpc3BsYXlD
b250YWluZXIgPSB0ZXh0RGlzcGxheUNvbnRhaW5lci5wdHIoKTsKIAogICAgIGlmIChtX21lZGlh
Q29udHJvbGxlcikKICAgICAgICAgbV90ZXh0RGlzcGxheUNvbnRhaW5lci0+c2V0TWVkaWFDb250
cm9sbGVyKG1fbWVkaWFDb250cm9sbGVyKTsKIAogICAgIC8vIEluc2VydCBpdCBiZWZvcmUgdGhl
IGZpcnN0IGNvbnRyb2xsZXIgZWxlbWVudCBzbyBpdCBhbHdheXMgZGlzcGxheXMgYmVoaW5kIHRo
ZSBjb250cm9scy4KLSAgICBpbnNlcnRCZWZvcmUodGV4dERpc3BsYXlDb250YWluZXIucmVsZWFz
ZSgpLCBtX3BhbmVsLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBpbnNlcnRCZWZvcmUoV1RGOjpt
b3ZlKHRleHREaXNwbGF5Q29udGFpbmVyKSwgbV9wYW5lbCwgSUdOT1JFX0VYQ0VQVElPTik7CiB9
CiAKIHZvaWQgTWVkaWFDb250cm9sczo6c2hvd1RleHRUcmFja0Rpc3BsYXkoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0FwcGxlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNBcHBsZS5jcHAKaW5kZXggOGZk
YmEwZDAzNDg1MDNhMmE2ZThlMGQwZTg2NDdlOTNmOTY2NGY4My4uMDkyNTZkNWI0ZWRhN2M4Zjk2
MzllYmUyOTcyYTc4ZjA4YTI2ZDhmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sc0FwcGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xzQXBwbGUuY3BwCkBAIC02MywxNjUgKzYzLDE2NSBAQCBQYXNzUmVm
UHRyPE1lZGlhQ29udHJvbHM+IE1lZGlhQ29udHJvbHM6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1l
bnQpCiBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbHNBcHBsZT4gTWVkaWFDb250cm9sc0FwcGxlOjpj
cmVhdGVDb250cm9scyhEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgaWYgKCFkb2N1bWVudC5w
YWdlKCkpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAg
IFJlZlB0cjxNZWRpYUNvbnRyb2xzQXBwbGU+IGNvbnRyb2xzID0gYWRvcHRSZWYobmV3IE1lZGlh
Q29udHJvbHNBcHBsZShkb2N1bWVudCkpOwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVs
RWxlbWVudD4gcGFuZWwgPSBNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCk7CisgICAgUmVmPE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudD4gcGFuZWwgPSBNZWRpYUNvbnRy
b2xQYW5lbEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAKICAgICBFeGNlcHRpb25Db2RlIGVj
OwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ+IHJld2luZEJ1
dHRvbiA9IE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7
Ci0gICAgY29udHJvbHMtPm1fcmV3aW5kQnV0dG9uID0gcmV3aW5kQnV0dG9uLmdldCgpOwotICAg
IHBhbmVsLT5hcHBlbmRDaGlsZChyZXdpbmRCdXR0b24ucmVsZWFzZSgpLCBlYyk7CisgICAgUmVm
PE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ+IHJld2luZEJ1dHRvbiA9IE1lZGlhQ29u
dHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgY29udHJvbHMt
Pm1fcmV3aW5kQnV0dG9uID0gcmV3aW5kQnV0dG9uLnB0cigpOworICAgIHBhbmVsLT5hcHBlbmRD
aGlsZChXVEY6Om1vdmUocmV3aW5kQnV0dG9uKSwgZWMpOwogICAgIGlmIChlYykKLSAgICAgICAg
cmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgUmVmUHRyPE1lZGlhQ29u
dHJvbFBsYXlCdXR0b25FbGVtZW50PiBwbGF5QnV0dG9uID0gTWVkaWFDb250cm9sUGxheUJ1dHRv
bkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJvbHMtPm1fcGxheUJ1dHRvbiA9
IHBsYXlCdXR0b24uZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKHBsYXlCdXR0b24ucmVs
ZWFzZSgpLCBlYyk7CisgICAgUmVmPE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50PiBwbGF5
QnV0dG9uID0gTWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7
CisgICAgY29udHJvbHMtPm1fcGxheUJ1dHRvbiA9IHBsYXlCdXR0b24ucHRyKCk7CisgICAgcGFu
ZWwtPmFwcGVuZENoaWxkKFdURjo6bW92ZShwbGF5QnV0dG9uKSwgZWMpOwogICAgIGlmIChlYykK
LSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgUmVmUHRy
PE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50PiByZXR1cm5Ub1JlYWx0
aW1lQnV0dG9uID0gTWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJvbHMtPm1fcmV0dXJuVG9SZWFsVGltZUJ1dHRvbiA9
IHJldHVyblRvUmVhbHRpbWVCdXR0b24uZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKHJl
dHVyblRvUmVhbHRpbWVCdXR0b24ucmVsZWFzZSgpLCBlYyk7CisgICAgUmVmPE1lZGlhQ29udHJv
bFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50PiByZXR1cm5Ub1JlYWx0aW1lQnV0dG9uID0g
TWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCk7CisgICAgY29udHJvbHMtPm1fcmV0dXJuVG9SZWFsVGltZUJ1dHRvbiA9IHJldHVyblRvUmVh
bHRpbWVCdXR0b24ucHRyKCk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdURjo6bW92ZShyZXR1
cm5Ub1JlYWx0aW1lQnV0dG9uKSwgZWMpOwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgaWYgKGRvY3VtZW50LnBhZ2UoKS0+dGhl
bWUoKS51c2VzTWVkaWFDb250cm9sU3RhdHVzRGlzcGxheSgpKSB7Ci0gICAgICAgIFJlZlB0cjxN
ZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudD4gc3RhdHVzRGlzcGxheSA9IE1lZGlhQ29u
dHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgICAgICBjb250
cm9scy0+bV9zdGF0dXNEaXNwbGF5ID0gc3RhdHVzRGlzcGxheS5nZXQoKTsKLSAgICAgICAgcGFu
ZWwtPmFwcGVuZENoaWxkKHN0YXR1c0Rpc3BsYXkucmVsZWFzZSgpLCBlYyk7CisgICAgICAgIFJl
ZjxNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudD4gc3RhdHVzRGlzcGxheSA9IE1lZGlh
Q29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgICAgICBj
b250cm9scy0+bV9zdGF0dXNEaXNwbGF5ID0gc3RhdHVzRGlzcGxheS5wdHIoKTsKKyAgICAgICAg
cGFuZWwtPmFwcGVuZENoaWxkKFdURjo6bW92ZShzdGF0dXNEaXNwbGF5KSwgZWMpOwogICAgICAg
ICBpZiAoZWMpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIH0KIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVs
ZW1lbnQ+IHRpbWVsaW5lQ29udGFpbmVyID0gTWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIFJlZjxNZWRpYUNvbnRyb2xUaW1lbGluZUNv
bnRhaW5lckVsZW1lbnQ+IHRpbWVsaW5lQ29udGFpbmVyID0gTWVkaWFDb250cm9sVGltZWxpbmVD
b250YWluZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogCi0gICAgUmVmUHRyPE1lZGlhQ29u
dHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ+IGN1cnJlbnRUaW1lRGlzcGxheSA9IE1lZGlh
Q29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAg
Y29udHJvbHMtPm1fY3VycmVudFRpbWVEaXNwbGF5ID0gY3VycmVudFRpbWVEaXNwbGF5LmdldCgp
OwotICAgIHRpbWVsaW5lQ29udGFpbmVyLT5hcHBlbmRDaGlsZChjdXJyZW50VGltZURpc3BsYXku
cmVsZWFzZSgpLCBlYyk7CisgICAgUmVmPE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVs
ZW1lbnQ+IGN1cnJlbnRUaW1lRGlzcGxheSA9IE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxh
eUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgY29udHJvbHMtPm1fY3VycmVudFRpbWVE
aXNwbGF5ID0gY3VycmVudFRpbWVEaXNwbGF5LnB0cigpOworICAgIHRpbWVsaW5lQ29udGFpbmVy
LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoY3VycmVudFRpbWVEaXNwbGF5KSwgZWMpOwogICAgIGlm
IChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAg
UmVmUHRyPE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudD4gdGltZWxpbmUgPSBNZWRpYUNvbnRy
b2xUaW1lbGluZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOwotICAg
IGNvbnRyb2xzLT5tX3RpbWVsaW5lID0gdGltZWxpbmUuZ2V0KCk7Ci0gICAgdGltZWxpbmVDb250
YWluZXItPmFwcGVuZENoaWxkKHRpbWVsaW5lLnJlbGVhc2UoKSwgZWMpOworICAgIFJlZjxNZWRp
YUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ+IHRpbWVsaW5lID0gTWVkaWFDb250cm9sVGltZWxpbmVF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKKyAgICBjb250cm9scy0+
bV90aW1lbGluZSA9IHRpbWVsaW5lLnB0cigpOworICAgIHRpbWVsaW5lQ29udGFpbmVyLT5hcHBl
bmRDaGlsZChXVEY6Om1vdmUodGltZWxpbmUpLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAgICBy
ZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBSZWZQdHI8TWVkaWFDb250
cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50PiB0aW1lUmVtYWluaW5nRGlzcGxheSA9IE1l
ZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsK
LSAgICBjb250cm9scy0+bV90aW1lUmVtYWluaW5nRGlzcGxheSA9IHRpbWVSZW1haW5pbmdEaXNw
bGF5LmdldCgpOwotICAgIHRpbWVsaW5lQ29udGFpbmVyLT5hcHBlbmRDaGlsZCh0aW1lUmVtYWlu
aW5nRGlzcGxheS5yZWxlYXNlKCksIGVjKTsKKyAgICBSZWY8TWVkaWFDb250cm9sVGltZVJlbWFp
bmluZ0Rpc3BsYXlFbGVtZW50PiB0aW1lUmVtYWluaW5nRGlzcGxheSA9IE1lZGlhQ29udHJvbFRp
bWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBjb250cm9s
cy0+bV90aW1lUmVtYWluaW5nRGlzcGxheSA9IHRpbWVSZW1haW5pbmdEaXNwbGF5LnB0cigpOwor
ICAgIHRpbWVsaW5lQ29udGFpbmVyLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUodGltZVJlbWFpbmlu
Z0Rpc3BsYXkpLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKLSAgICBjb250cm9scy0+bV90aW1lbGluZUNvbnRhaW5lciA9IHRp
bWVsaW5lQ29udGFpbmVyLmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZCh0aW1lbGluZUNv
bnRhaW5lci5yZWxlYXNlKCksIGVjKTsKKyAgICBjb250cm9scy0+bV90aW1lbGluZUNvbnRhaW5l
ciA9IHRpbWVsaW5lQ29udGFpbmVyLnB0cigpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChXVEY6
Om1vdmUodGltZWxpbmVDb250YWluZXIpLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1
cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBGSVhNRTogT25seSBjcmVh
dGUgd2hlbiBuZWVkZWQgPGh0dHA6Ly93ZWJraXQub3JnL2IvNTcxNjM+Ci0gICAgUmVmUHRyPE1l
ZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudD4gc2Vla0JhY2tCdXR0b24gPSBNZWRpYUNv
bnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJv
bHMtPm1fc2Vla0JhY2tCdXR0b24gPSBzZWVrQmFja0J1dHRvbi5nZXQoKTsKLSAgICBwYW5lbC0+
YXBwZW5kQ2hpbGQoc2Vla0JhY2tCdXR0b24ucmVsZWFzZSgpLCBlYyk7CisgICAgUmVmPE1lZGlh
Q29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudD4gc2Vla0JhY2tCdXR0b24gPSBNZWRpYUNvbnRy
b2xTZWVrQmFja0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgY29udHJvbHMt
Pm1fc2Vla0JhY2tCdXR0b24gPSBzZWVrQmFja0J1dHRvbi5wdHIoKTsKKyAgICBwYW5lbC0+YXBw
ZW5kQ2hpbGQoV1RGOjptb3ZlKHNlZWtCYWNrQnV0dG9uKSwgZWMpOwogICAgIGlmIChlYykKLSAg
ICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgLy8gRklYTUU6
IE9ubHkgY3JlYXRlIHdoZW4gbmVlZGVkIDxodHRwOi8vd2Via2l0Lm9yZy9iLzU3MTYzPgotICAg
IFJlZlB0cjxNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQ+IHNlZWtGb3J3YXJk
QnV0dG9uID0gTWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQpOwotICAgIGNvbnRyb2xzLT5tX3NlZWtGb3J3YXJkQnV0dG9uID0gc2Vla0ZvcndhcmRC
dXR0b24uZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKHNlZWtGb3J3YXJkQnV0dG9uLnJl
bGVhc2UoKSwgZWMpOworICAgIFJlZjxNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1l
bnQ+IHNlZWtGb3J3YXJkQnV0dG9uID0gTWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNvbnRyb2xzLT5tX3NlZWtGb3J3YXJkQnV0dG9u
ID0gc2Vla0ZvcndhcmRCdXR0b24ucHRyKCk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdURjo6
bW92ZShzZWVrRm9yd2FyZEJ1dHRvbiksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVy
biAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGlmIChkb2N1bWVudC5wYWdlKCkt
PnRoZW1lKCkuc3VwcG9ydHNDbG9zZWRDYXB0aW9uaW5nKCkpIHsKLSAgICAgICAgUmVmUHRyPE1l
ZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudD4gY2xvc2VkQ2FwdGlvbnND
b250YWluZXIgPSBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCk7CisgICAgICAgIFJlZjxNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0Nv
bnRhaW5lckVsZW1lbnQ+IGNsb3NlZENhcHRpb25zQ29udGFpbmVyID0gTWVkaWFDb250cm9sQ2xv
c2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogCi0gICAgICAg
IFJlZlB0cjxNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ+IGNsb3Nl
ZENhcHRpb25zVHJhY2tMaXN0ID0gTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKLSAgICAgICAgY29udHJv
bHMtPm1fY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QgPSBjbG9zZWRDYXB0aW9uc1RyYWNrTGlzdC5n
ZXQoKTsKLSAgICAgICAgY2xvc2VkQ2FwdGlvbnNDb250YWluZXItPmFwcGVuZENoaWxkKGNsb3Nl
ZENhcHRpb25zVHJhY2tMaXN0LnJlbGVhc2UoKSwgZWMpOworICAgICAgICBSZWY8TWVkaWFDb250
cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50PiBjbG9zZWRDYXB0aW9uc1RyYWNrTGlz
dCA9IE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50LCBjb250cm9scy5nZXQoKSk7CisgICAgICAgIGNvbnRyb2xzLT5tX2Nsb3NlZENhcHRp
b25zVHJhY2tMaXN0ID0gY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QucHRyKCk7CisgICAgICAgIGNs
b3NlZENhcHRpb25zQ29udGFpbmVyLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoY2xvc2VkQ2FwdGlv
bnNUcmFja0xpc3QpLCBlYyk7CiAgICAgICAgIGlmIChlYykKLSAgICAgICAgICAgIHJldHVybiAw
OworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICAgICAgUmVmUHRyPE1lZGlhQ29u
dHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudD4gdG9nZ2xlQ2xvc2VkQ2FwdGlv
bnNCdXR0b24gPSBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6
OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOwotICAgICAgICBjb250cm9scy0+bV90
b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbiA9IHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uLmdl
dCgpOwotICAgICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQodG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0
b24ucmVsZWFzZSgpLCBlYyk7CisgICAgICAgIFJlZjxNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRD
YXB0aW9uc0J1dHRvbkVsZW1lbnQ+IHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uID0gTWVkaWFD
b250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQs
IGNvbnRyb2xzLmdldCgpKTsKKyAgICAgICAgY29udHJvbHMtPm1fdG9nZ2xlQ2xvc2VkQ2FwdGlv
bnNCdXR0b24gPSB0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbi5wdHIoKTsKKyAgICAgICAgcGFu
ZWwtPmFwcGVuZENoaWxkKFdURjo6bW92ZSh0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbiksIGVj
KTsKICAgICAgICAgaWYgKGVjKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICBjb250cm9scy0+bV9jbG9zZWRDYXB0aW9uc0NvbnRh
aW5lciA9IGNsb3NlZENhcHRpb25zQ29udGFpbmVyLmdldCgpOwotICAgICAgICBjb250cm9scy0+
YXBwZW5kQ2hpbGQoY2xvc2VkQ2FwdGlvbnNDb250YWluZXIucmVsZWFzZSgpLCBlYyk7CisgICAg
ICAgIGNvbnRyb2xzLT5tX2Nsb3NlZENhcHRpb25zQ29udGFpbmVyID0gY2xvc2VkQ2FwdGlvbnND
b250YWluZXIucHRyKCk7CisgICAgICAgIGNvbnRyb2xzLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUo
Y2xvc2VkQ2FwdGlvbnNDb250YWluZXIpLCBlYyk7CiAgICAgICAgIGlmIChlYykKLSAgICAgICAg
ICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAgICAg
Ly8gRklYTUU6IE9ubHkgY3JlYXRlIHdoZW4gbmVlZGVkIDxodHRwOi8vd2Via2l0Lm9yZy9iLzU3
MTYzPgotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudD4gZnVs
bFNjcmVlbkJ1dHRvbiA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQpOwotICAgIGNvbnRyb2xzLT5tX2Z1bGxTY3JlZW5CdXR0b24gPSBmdWxsU2Ny
ZWVuQnV0dG9uLmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChmdWxsU2NyZWVuQnV0dG9u
LnJlbGVhc2UoKSwgZWMpOworICAgIFJlZjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxl
bWVudD4gZnVsbFNjcmVlbkJ1dHRvbiA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNvbnRyb2xzLT5tX2Z1bGxTY3JlZW5CdXR0b24g
PSBmdWxsU2NyZWVuQnV0dG9uLnB0cigpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChXVEY6Om1v
dmUoZnVsbFNjcmVlbkJ1dHRvbiksIGVjKTsKIAogICAgIC8vIFRoZSBtdXRlIGJ1dHRvbiBhbmQg
dGhlIHNsaWRlciBlbGVtZW50IHNob3VsZCBiZSBpbiB0aGUgc2FtZSBkaXYuCi0gICAgUmVmUHRy
PEhUTUxEaXZFbGVtZW50PiBwYW5lbFZvbHVtZUNvbnRyb2xDb250YWluZXIgPSBIVE1MRGl2RWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBSZWY8SFRNTERpdkVsZW1lbnQ+IHBhbmVsVm9s
dW1lQ29udHJvbENvbnRhaW5lciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwog
CiAgICAgaWYgKGRvY3VtZW50LnBhZ2UoKS0+dGhlbWUoKS51c2VzTWVkaWFDb250cm9sVm9sdW1l
U2xpZGVyKCkpIHsKLSAgICAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRh
aW5lckVsZW1lbnQ+IHZvbHVtZVNsaWRlckNvbnRhaW5lciA9IE1lZGlhQ29udHJvbFZvbHVtZVNs
aWRlckNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgICAgIFJlZjxNZWRp
YUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50PiB2b2x1bWVTbGlkZXJDb250YWlu
ZXIgPSBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQpOwogCi0gICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVs
ZW1lbnQ+IHNsaWRlciA9IE1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xpZGVyRWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50KTsKLSAgICAgICAgY29udHJvbHMtPm1fdm9sdW1lU2xpZGVyID0gc2xpZGVy
LmdldCgpOwotICAgICAgICB2b2x1bWVTbGlkZXJDb250YWluZXItPmFwcGVuZENoaWxkKHNsaWRl
ci5yZWxlYXNlKCksIGVjKTsKKyAgICAgICAgUmVmPE1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xp
ZGVyRWxlbWVudD4gc2xpZGVyID0gTWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQpOworICAgICAgICBjb250cm9scy0+bV92b2x1bWVTbGlkZXIgPSBz
bGlkZXIucHRyKCk7CisgICAgICAgIHZvbHVtZVNsaWRlckNvbnRhaW5lci0+YXBwZW5kQ2hpbGQo
V1RGOjptb3ZlKHNsaWRlciksIGVjKTsKICAgICAgICAgaWYgKGVjKQotICAgICAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgICAgICAvLyBUaGlzIGlz
IGEgZHVwbGljYXRlIG11dGUgYnV0dG9uLCB3aGljaCBpcyB2aXNpYmxlIGluIHNvbWUgcG9ydHMg
YXQgdGhlIGJvdHRvbSBvZiB0aGUgdm9sdW1lIGJhci4KICAgICAgICAgLy8gSXQncyBpbXBvcnRh
bnQgb25seSB3aGVuIHRoZSB2b2x1bWUgYmFyIGlzIGRpc3BsYXllZCBiZWxvdyB0aGUgY29udHJv
bHMuCi0gICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxl
bWVudD4gdm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbiA9IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11
dGVCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgICAgICBjb250cm9scy0+bV92
b2x1bWVTbGlkZXJNdXRlQnV0dG9uID0gdm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbi5nZXQoKTsKLSAg
ICAgICAgdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5hcHBlbmRDaGlsZCh2b2x1bWVTbGlkZXJNdXRl
QnV0dG9uLnJlbGVhc2UoKSwgZWMpOworICAgICAgICBSZWY8TWVkaWFDb250cm9sVm9sdW1lU2xp
ZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ+IHZvbHVtZVNsaWRlck11dGVCdXR0b24gPSBNZWRpYUNvbnRy
b2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICAg
ICAgY29udHJvbHMtPm1fdm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbiA9IHZvbHVtZVNsaWRlck11dGVC
dXR0b24ucHRyKCk7CisgICAgICAgIHZvbHVtZVNsaWRlckNvbnRhaW5lci0+YXBwZW5kQ2hpbGQo
V1RGOjptb3ZlKHZvbHVtZVNsaWRlck11dGVCdXR0b24pLCBlYyk7CiAKICAgICAgICAgaWYgKGVj
KQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAot
ICAgICAgICBjb250cm9scy0+bV92b2x1bWVTbGlkZXJDb250YWluZXIgPSB2b2x1bWVTbGlkZXJD
b250YWluZXIuZ2V0KCk7Ci0gICAgICAgIHBhbmVsVm9sdW1lQ29udHJvbENvbnRhaW5lci0+YXBw
ZW5kQ2hpbGQodm9sdW1lU2xpZGVyQ29udGFpbmVyLnJlbGVhc2UoKSwgZWMpOworICAgICAgICBj
b250cm9scy0+bV92b2x1bWVTbGlkZXJDb250YWluZXIgPSB2b2x1bWVTbGlkZXJDb250YWluZXIu
cHRyKCk7CisgICAgICAgIHBhbmVsVm9sdW1lQ29udHJvbENvbnRhaW5lci0+YXBwZW5kQ2hpbGQo
V1RGOjptb3ZlKHZvbHVtZVNsaWRlckNvbnRhaW5lciksIGVjKTsKICAgICAgICAgaWYgKGVjKQot
ICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9
CiAKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudD4gcGFuZWxN
dXRlQnV0dG9uID0gTWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50LCBjb250cm9scy5nZXQoKSk7Ci0gICAgY29udHJvbHMtPm1fcGFuZWxNdXRlQnV0dG9u
ID0gcGFuZWxNdXRlQnV0dG9uLmdldCgpOwotICAgIHBhbmVsVm9sdW1lQ29udHJvbENvbnRhaW5l
ci0+YXBwZW5kQ2hpbGQocGFuZWxNdXRlQnV0dG9uLnJlbGVhc2UoKSwgZWMpOworICAgIFJlZjxN
ZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50PiBwYW5lbE11dGVCdXR0b24gPSBNZWRp
YUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xz
LmdldCgpKTsKKyAgICBjb250cm9scy0+bV9wYW5lbE11dGVCdXR0b24gPSBwYW5lbE11dGVCdXR0
b24ucHRyKCk7CisgICAgcGFuZWxWb2x1bWVDb250cm9sQ29udGFpbmVyLT5hcHBlbmRDaGlsZChX
VEY6Om1vdmUocGFuZWxNdXRlQnV0dG9uKSwgZWMpOwogICAgIGlmIChlYykKLSAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgcGFuZWwtPmFwcGVuZENoaWxk
KHBhbmVsVm9sdW1lQ29udHJvbENvbnRhaW5lciwgZWMpOworICAgIHBhbmVsLT5hcHBlbmRDaGls
ZChXVEY6Om1vdmUocGFuZWxWb2x1bWVDb250cm9sQ29udGFpbmVyKSwgZWMpOwogICAgIGlmIChl
YykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgLy8g
RklYTUU6IE9ubHkgY3JlYXRlIHdoZW4gbmVlZGVkIDxodHRwOi8vd2Via2l0Lm9yZy9iLzU3MTYz
PgotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVu
dD4gZnVsbFNjcmVlbk1pblZvbHVtZUJ1dHRvbiA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1
bWVNaW5CdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNvbnRyb2xzLT5tX2Z1
bGxTY3JlZW5NaW5Wb2x1bWVCdXR0b24gPSBmdWxsU2NyZWVuTWluVm9sdW1lQnV0dG9uLmdldCgp
OwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChmdWxsU2NyZWVuTWluVm9sdW1lQnV0dG9uLnJlbGVh
c2UoKSwgZWMpOworICAgIFJlZjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9u
RWxlbWVudD4gZnVsbFNjcmVlbk1pblZvbHVtZUJ1dHRvbiA9IE1lZGlhQ29udHJvbEZ1bGxzY3Jl
ZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNvbnRyb2xz
LT5tX2Z1bGxTY3JlZW5NaW5Wb2x1bWVCdXR0b24gPSBmdWxsU2NyZWVuTWluVm9sdW1lQnV0dG9u
LnB0cigpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoZnVsbFNjcmVlbk1pblZv
bHVtZUJ1dHRvbiksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9s
dW1lU2xpZGVyRWxlbWVudD4gZnVsbFNjcmVlblZvbHVtZVNsaWRlciA9IE1lZGlhQ29udHJvbEZ1
bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNvbnRy
b2xzLT5tX2Z1bGxTY3JlZW5Wb2x1bWVTbGlkZXIgPSBmdWxsU2NyZWVuVm9sdW1lU2xpZGVyLmdl
dCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChmdWxsU2NyZWVuVm9sdW1lU2xpZGVyLnJlbGVh
c2UoKSwgZWMpOworICAgIFJlZjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxl
bWVudD4gZnVsbFNjcmVlblZvbHVtZVNsaWRlciA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1
bWVTbGlkZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNvbnRyb2xzLT5tX2Z1bGxT
Y3JlZW5Wb2x1bWVTbGlkZXIgPSBmdWxsU2NyZWVuVm9sdW1lU2xpZGVyLnB0cigpOworICAgIHBh
bmVsLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoZnVsbFNjcmVlblZvbHVtZVNsaWRlciksIGVjKTsK
ICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVu
dD4gZnVsbFNjcmVlbk1heFZvbHVtZUJ1dHRvbiA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1
bWVNYXhCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNvbnRyb2xzLT5tX2Z1
bGxTY3JlZW5NYXhWb2x1bWVCdXR0b24gPSBmdWxsU2NyZWVuTWF4Vm9sdW1lQnV0dG9uLmdldCgp
OwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChmdWxsU2NyZWVuTWF4Vm9sdW1lQnV0dG9uLnJlbGVh
c2UoKSwgZWMpOworICAgIFJlZjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9u
RWxlbWVudD4gZnVsbFNjcmVlbk1heFZvbHVtZUJ1dHRvbiA9IE1lZGlhQ29udHJvbEZ1bGxzY3Jl
ZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNvbnRyb2xz
LT5tX2Z1bGxTY3JlZW5NYXhWb2x1bWVCdXR0b24gPSBmdWxsU2NyZWVuTWF4Vm9sdW1lQnV0dG9u
LnB0cigpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoZnVsbFNjcmVlbk1heFZv
bHVtZUJ1dHRvbiksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGNvbnRyb2xzLT5tX3BhbmVsID0gcGFuZWwuZ2V0KCk7
Ci0gICAgY29udHJvbHMtPmFwcGVuZENoaWxkKHBhbmVsLnJlbGVhc2UoKSwgZWMpOworICAgIGNv
bnRyb2xzLT5tX3BhbmVsID0gcGFuZWwucHRyKCk7CisgICAgY29udHJvbHMtPmFwcGVuZENoaWxk
KFdURjo6bW92ZShwYW5lbCksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIHJldHVybiBjb250cm9scy5yZWxlYXNlKCk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50
LmNwcAppbmRleCAwYTFiYjgzZmIxOWM3NTU2ZGFjZDE2Y2ZkZGM3ODY5ODRiZDUxNzgzLi45ZGRk
NTUyYmQ4Y2VlOTZjNjFmZWFiODFmZTNkNDZiNmUwMGRlOWI3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKQEAgLTYxMSw3ICs2MTEs
NyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFNsaWRlclRodW1iRWxlbWVudDo6c2hhZG93UHNldWRv
SWQoKSBjb25zdAogICAgIH0KIH0KIAotUmVmUHRyPEVsZW1lbnQ+IFNsaWRlclRodW1iRWxlbWVu
dDo6Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYgdGFy
Z2V0RG9jdW1lbnQpCitSZWY8RWxlbWVudD4gU2xpZGVyVGh1bWJFbGVtZW50OjpjbG9uZUVsZW1l
bnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCkK
IHsKICAgICByZXR1cm4gY3JlYXRlKHRhcmdldERvY3VtZW50KTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmgKaW5kZXggNDhlY2Q1NTI2ZDBi
MGE1NzgxNjBmNzJkODI2MmIyZjE3YmZlNmFiOC4uY2YyZjg1YTdlZGRmNzk0ZTc4NWRmNzZiYWMw
OWY5Mzg2NTVmZDIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xp
ZGVyVGh1bWJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVy
VGh1bWJFbGVtZW50LmgKQEAgLTYyLDcgKzYyLDcgQEAgcHJpdmF0ZToKICAgICBTbGlkZXJUaHVt
YkVsZW1lbnQoRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRl
clRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVmUHRyPEVsZW1lbnQ+IGNs
b25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIFJlZjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRl
c0FuZENoaWxkcmVuKERvY3VtZW50Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzRGlz
YWJsZWRGb3JtQ29udHJvbCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBtYXRj
aGVzUmVhZFdyaXRlUHNldWRvQ2xhc3MoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIEVs
ZW1lbnQqIGZvY3VzRGVsZWdhdGUoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5j
cHAKaW5kZXggYTQ0YTVkZTA2OTJhMTZiM2I0OWRiODc0MTE5NWJhYWFkZTdmNTk2Yy4uYzQ0YzUx
ODgyY2I4MTg3ODYxYjY2YjU2Y2ZjNWE5YzIyOGUyYWVkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNSb290RWxlbWVu
dE1hYy5jcHAKQEAgLTg1LDEyICs4NSwxMyBAQCBSZWZQdHI8SW1hZ2VDb250cm9sc1Jvb3RFbGVt
ZW50PiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQ6Om1heWJlQ3JlYXRlKERvY3VtZW50JgogICAg
IGlmICghZG9jdW1lbnQucGFnZSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIFJl
ZlB0cjxJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWM+IGNvbnRyb2xzID0gYWRvcHRSZWYoKm5l
dyBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMoZG9jdW1lbnQpKTsKKyAgICBSZWY8SW1hZ2VD
b250cm9sc1Jvb3RFbGVtZW50TWFjPiBjb250cm9scyA9IGFkb3B0UmVmKCpuZXcgSW1hZ2VDb250
cm9sc1Jvb3RFbGVtZW50TWFjKGRvY3VtZW50KSk7CiAgICAgY29udHJvbHMtPnNldEF0dHJpYnV0
ZShIVE1MTmFtZXM6OmNsYXNzQXR0ciwgIngtd2Via2l0LWltYWdlLWNvbnRyb2xzIik7CiAKLSAg
ICBjb250cm9scy0+YXBwZW5kQ2hpbGQoSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWM6Om1h
eWJlQ3JlYXRlKGRvY3VtZW50KSk7CisgICAgaWYgKFJlZlB0cjxJbWFnZUNvbnRyb2xzQnV0dG9u
RWxlbWVudE1hYz4gYnV0dG9uID0gSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWM6Om1heWJl
Q3JlYXRlKGRvY3VtZW50KSkKKyAgICAgICAgY29udHJvbHMtPmFwcGVuZENoaWxkKGJ1dHRvbi5y
ZWxlYXNlTm9uTnVsbCgpKTsKIAotICAgIHJldHVybiBjb250cm9scy5yZWxlYXNlKCk7CisgICAg
cmV0dXJuIFdURjo6bW92ZShjb250cm9scyk7CiB9CiAKIEltYWdlQ29udHJvbHNSb290RWxlbWVu
dE1hYzo6SW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjKERvY3VtZW50JiBkb2N1bWVudCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcAppbmRleCBhOTY5MGQ2Zjk5NjE5ZjM3MDlhNmI4
YTI1ZDZiZmUzMTUzNTBhYWVkLi45ZDZjYTcyZGE4ZDgxNWI3N2YwNTk4ZjhkOWYyMzEyMzliOWY1
Njk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3BwCkBAIC00OTYsNyArNDk2LDcg
QEAgdm9pZCBWVFRDdWU6OmNvcHlXZWJWVFROb2RlVG9ET01UcmVlKENvbnRhaW5lck5vZGUqIHdl
YlZUVE5vZGUsIENvbnRhaW5lck5vZGUqIHAKICAgICAgICAgICAgIGNsb25lZE5vZGUgPSBkb3du
Y2FzdDxXZWJWVFRFbGVtZW50Pigqbm9kZSkuY3JlYXRlRXF1aXZhbGVudEhUTUxFbGVtZW50KG93
bmVyRG9jdW1lbnQoKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGNsb25lZE5vZGUgPSBu
b2RlLT5jbG9uZU5vZGUoZmFsc2UpOwotICAgICAgICBwYXJlbnQtPmFwcGVuZENoaWxkKGNsb25l
ZE5vZGUsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAgICBwYXJlbnQtPmFwcGVuZENoaWxk
KCpjbG9uZWROb2RlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICAgICAgaWYgKGlzPENvbnRh
aW5lck5vZGU+KCpub2RlKSkKICAgICAgICAgICAgIGNvcHlXZWJWVFROb2RlVG9ET01UcmVlKGRv
d25jYXN0PENvbnRhaW5lck5vZGU+KG5vZGUpLCBkb3duY2FzdDxDb250YWluZXJOb2RlPihjbG9u
ZWROb2RlLmdldCgpKSk7CiAgICAgfQpAQCAtNTE4LDEwICs1MTgsMTAgQEAgUGFzc1JlZlB0cjxE
b2N1bWVudEZyYWdtZW50PiBWVFRDdWU6OmNyZWF0ZUN1ZVJlbmRlcmluZ1RyZWUoKQogICAgIFJl
ZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjbG9uZWRGcmFnbWVudDsKICAgICBjcmVhdGVXZWJWVFRO
b2RlVHJlZSgpOwogICAgIGlmICghbV93ZWJWVFROb2RlVHJlZSkKLSAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgY2xvbmVkRnJhZ21lbnQgPSBEb2N1bWVu
dEZyYWdtZW50OjpjcmVhdGUob3duZXJEb2N1bWVudCgpKTsKLSAgICBtX3dlYlZUVE5vZGVUcmVl
LT5jbG9uZUNoaWxkTm9kZXMoY2xvbmVkRnJhZ21lbnQuZ2V0KCkpOworICAgIG1fd2ViVlRUTm9k
ZVRyZWUtPmNsb25lQ2hpbGROb2RlcygqY2xvbmVkRnJhZ21lbnQpOwogICAgIHJldHVybiBjbG9u
ZWRGcmFnbWVudC5yZWxlYXNlKCk7CiB9CiAKQEAgLTc4NSw3ICs3ODUsNyBAQCB2b2lkIFZUVEN1
ZTo6dXBkYXRlRGlzcGxheVRyZWUoY29uc3QgTWVkaWFUaW1lJiBtb3ZpZVRpbWUpCiAgICAgICAg
IHJldHVybjsKIAogICAgIG1hcmtGdXR1cmVBbmRQYXN0Tm9kZXMocmVmZXJlbmNlVHJlZS5nZXQo
KSwgc3RhcnRNZWRpYVRpbWUoKSwgbW92aWVUaW1lKTsKLSAgICBtX2N1ZUhpZ2hsaWdodEJveC0+
YXBwZW5kQ2hpbGQocmVmZXJlbmNlVHJlZSk7CisgICAgbV9jdWVIaWdobGlnaHRCb3gtPmFwcGVu
ZENoaWxkKHJlZmVyZW5jZVRyZWUucmVsZWFzZU5vbk51bGwoKSk7CiB9CiAKIFZUVEN1ZUJveCog
VlRUQ3VlOjpnZXREaXNwbGF5VHJlZShjb25zdCBJbnRTaXplJiB2aWRlb1NpemUsIGludCBmb250
U2l6ZSkKQEAgLTgxMiw4ICs4MTIsOCBAQCBWVFRDdWVCb3gqIFZUVEN1ZTo6Z2V0RGlzcGxheVRy
ZWUoY29uc3QgSW50U2l6ZSYgdmlkZW9TaXplLCBpbnQgZm9udFNpemUpCiAgICAgbV9jdWVIaWdo
bGlnaHRCb3gtPnNldFBzZXVkbyhjdWVTaGFkb3dQc2V1ZG9JZCgpKTsKIAogICAgIG1fY3VlQmFj
a2Ryb3BCb3gtPnNldFBzZXVkbyhjdWVCYWNrZHJvcFNoYWRvd1BzZXVkb0lkKCkpOwotICAgIG1f
Y3VlQmFja2Ryb3BCb3gtPmFwcGVuZENoaWxkKG1fY3VlSGlnaGxpZ2h0Qm94LCBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKLSAgICBkaXNwbGF5VHJlZS0+YXBwZW5kQ2hpbGQobV9jdWVCYWNrZHJvcEJv
eCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgbV9jdWVCYWNrZHJvcEJveC0+YXBwZW5kQ2hp
bGQoKm1fY3VlSGlnaGxpZ2h0Qm94LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBkaXNwbGF5
VHJlZS0+YXBwZW5kQ2hpbGQoKm1fY3VlQmFja2Ryb3BCb3gsIEFTU0VSVF9OT19FWENFUFRJT04p
OwogCiAgICAgLy8gRklYTUUoQlVHIDc5OTE2KTogUnVucyBvZiBjaGlsZHJlbiBvZiBXZWJWVFQg
UnVieSBPYmplY3RzIHRoYXQgYXJlIG5vdAogICAgIC8vIFdlYlZUVCBSdWJ5IFRleHQgT2JqZWN0
cyBtdXN0IGJlIHdyYXBwZWQgaW4gYW5vbnltb3VzIGJveGVzIHdob3NlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1ZUVFJlZ2lvbi5jcHAKaW5kZXggY2NiMzJlMDM5ZDVjNTNhZmVlYzA1MDJiNjVl
MDBhYzFlNmZmZGVmMy4uODU3OTg2OGU5ODFmZmJmMjkxNjYyYjY1NGQ1M2ViOWFkZmJkYmI1MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmNwcApAQCAtMzU0LDcgKzM1NCw3
IEBAIHZvaWQgVlRUUmVnaW9uOjphcHBlbmRUZXh0VHJhY2tDdWVCb3goUGFzc1JlZlB0cjxWVFRD
dWVCb3g+IGRpc3BsYXlCb3gpCiAgICAgaWYgKG1fY3VlQ29udGFpbmVyLT5jb250YWlucyhkaXNw
bGF5Qm94LmdldCgpKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9jdWVDb250YWluZXItPmFw
cGVuZENoaWxkKGRpc3BsYXlCb3gsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIG1fY3VlQ29u
dGFpbmVyLT5hcHBlbmRDaGlsZCgqZGlzcGxheUJveCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAg
ICAgZGlzcGxheUxhc3RUZXh0VHJhY2tDdWVCb3goKTsKIH0KIApAQCAtNDA0LDE0ICs0MDQsMTQg
QEAgdm9pZCBWVFRSZWdpb246OndpbGxSZW1vdmVUZXh0VHJhY2tDdWVCb3goVlRUQ3VlQm94KiBi
b3gpCiAgICAgbV9jdWVDb250YWluZXItPnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVy
dHlUb3AsIG1fY3VycmVudFRvcCwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QWCk7CiB9CiAKLVBh
c3NSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IFZUVFJlZ2lvbjo6Z2V0RGlzcGxheVRyZWUoKQorSFRN
TERpdkVsZW1lbnQmIFZUVFJlZ2lvbjo6Z2V0RGlzcGxheVRyZWUoKQogewogICAgIGlmICghbV9y
ZWdpb25EaXNwbGF5VHJlZSkgewogICAgICAgICBtX3JlZ2lvbkRpc3BsYXlUcmVlID0gSFRNTERp
dkVsZW1lbnQ6OmNyZWF0ZSgqb3duZXJEb2N1bWVudCgpKTsKICAgICAgICAgcHJlcGFyZVJlZ2lv
bkRpc3BsYXlUcmVlKCk7CiAgICAgfQogCi0gICAgcmV0dXJuIG1fcmVnaW9uRGlzcGxheVRyZWU7
CisgICAgcmV0dXJuICptX3JlZ2lvbkRpc3BsYXlUcmVlOwogfQogCiB2b2lkIFZUVFJlZ2lvbjo6
cHJlcGFyZVJlZ2lvbkRpc3BsYXlUcmVlKCkKQEAgLTQ1Myw3ICs0NTMsNyBAQCB2b2lkIFZUVFJl
Z2lvbjo6cHJlcGFyZVJlZ2lvbkRpc3BsYXlUcmVlKCkKICAgICBtX2N1ZUNvbnRhaW5lci0+c2V0
SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eVRvcCwgMC4wZiwgQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU19QWCk7CiAKICAgICBtX2N1ZUNvbnRhaW5lci0+c2V0UHNldWRvKHRleHRUcmFja0N1
ZUNvbnRhaW5lclNoYWRvd1BzZXVkb0lkKCkpOwotICAgIG1fcmVnaW9uRGlzcGxheVRyZWUtPmFw
cGVuZENoaWxkKG1fY3VlQ29udGFpbmVyKTsKKyAgICBtX3JlZ2lvbkRpc3BsYXlUcmVlLT5hcHBl
bmRDaGlsZCgqbV9jdWVDb250YWluZXIpOwogCiAgICAgLy8gNy41IEV2ZXJ5IFdlYlZUVCByZWdp
b24gb2JqZWN0IGlzIGluaXRpYWxpc2VkIHdpdGggdGhlIGZvbGxvd2luZyBDU1MKICAgICBtX3Jl
Z2lvbkRpc3BsYXlUcmVlLT5zZXRQc2V1ZG8odGV4dFRyYWNrUmVnaW9uU2hhZG93UHNldWRvSWQo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24uaAppbmRleCA3NzcxZThlYjAwODU3
YmY0MzJjMWNkNTRiNDg2MTc3MzZkMDRlNjVkLi44OTI1YWYxYmMzNzIwNWViMDdhNWE3YjhlOGNm
Njk3MjE4MGNhMDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJl
Z2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmgKQEAgLTg5
LDcgKzg5LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc1Njcm9sbGluZ1JlZ2lvbigpIHsgcmV0
dXJuIG1fc2Nyb2xsOyB9CiAKLSAgICBQYXNzUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBnZXREaXNw
bGF5VHJlZSgpOworICAgIEhUTUxEaXZFbGVtZW50JiBnZXREaXNwbGF5VHJlZSgpOwogICAgIAog
ICAgIHZvaWQgYXBwZW5kVGV4dFRyYWNrQ3VlQm94KFBhc3NSZWZQdHI8VlRUQ3VlQm94Pik7CiAg
ICAgdm9pZCBkaXNwbGF5TGFzdFRleHRUcmFja0N1ZUJveCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svV2ViVlRURWxlbWVudC5jcHAKaW5kZXggNGEyZjMxYjNlNTYzNGYzMTAyZmY1NGVi
ZjBmYTBkOTY2YTk1N2EwZS4uMTQ5NmJiMDNhNmE1MDBmNWI3OTYxNDBkNTkwYzNkOTVmZWZiMjIw
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuY3BwCkBAIC04
MCwxMSArODAsMTEgQEAgUmVmPFdlYlZUVEVsZW1lbnQ+IFdlYlZUVEVsZW1lbnQ6OmNyZWF0ZShX
ZWJWVFROb2RlVHlwZSBub2RlVHlwZSwgRG9jdW1lbnQmIGRvY3UKICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBXZWJWVFRFbGVtZW50KG5vZGVUeXBlLCBkb2N1bWVudCkpOwogfQogCi1SZWZQdHI8
RWxlbWVudD4gV2ViVlRURWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRD
aGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQpCitSZWY8RWxlbWVudD4gV2ViVlRURWxl
bWVudDo6Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYg
dGFyZ2V0RG9jdW1lbnQpCiB7Ci0gICAgUmVmUHRyPFdlYlZUVEVsZW1lbnQ+IGNsb25lID0gY3Jl
YXRlKHN0YXRpY19jYXN0PFdlYlZUVE5vZGVUeXBlPihtX3dlYlZUVE5vZGVUeXBlKSwgdGFyZ2V0
RG9jdW1lbnQpOworICAgIFJlZjxXZWJWVFRFbGVtZW50PiBjbG9uZSA9IGNyZWF0ZShzdGF0aWNf
Y2FzdDxXZWJWVFROb2RlVHlwZT4obV93ZWJWVFROb2RlVHlwZSksIHRhcmdldERvY3VtZW50KTsK
ICAgICBjbG9uZS0+c2V0TGFuZ3VhZ2UobV9sYW5ndWFnZSk7Ci0gICAgcmV0dXJuIGNsb25lOwor
ICAgIHJldHVybiBXVEY6Om1vdmUoY2xvbmUpOwogfQogCiBQYXNzUmVmUHRyPEhUTUxFbGVtZW50
PiBXZWJWVFRFbGVtZW50OjpjcmVhdGVFcXVpdmFsZW50SFRNTEVsZW1lbnQoRG9jdW1lbnQmIGRv
Y3VtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuaAppbmRleCAx
YmU3NjM2YzM2NjNkODU4YmQ3NjM2YWVjY2MxOWI3MDZkZmM2YjhjLi44OWQzZDJjNTRkYmM2Yjll
NTIwNjJmZjRmMmFjZjc0OThiOWZjN2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1dlYlZUVEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dl
YlZUVEVsZW1lbnQuaApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxX
ZWJWVFRFbGVtZW50PiBjcmVhdGUoY29uc3QgV2ViVlRUTm9kZVR5cGUsIERvY3VtZW50Jik7CiAg
ICAgUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRlRXF1aXZhbGVudEhUTUxFbGVtZW50KERv
Y3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIFJlZlB0cjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRo
b3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50Jikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBSZWY8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihE
b2N1bWVudCYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBzZXRXZWJWVFROb2RlVHlwZShXZWJWVFRO
b2RlVHlwZSB0eXBlKSB7IG1fd2ViVlRUTm9kZVR5cGUgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
dHlwZSk7IH0KICAgICBXZWJWVFROb2RlVHlwZSB3ZWJWVFROb2RlVHlwZSgpIGNvbnN0IHsgcmV0
dXJuIHN0YXRpY19jYXN0PFdlYlZUVE5vZGVUeXBlPihtX3dlYlZUVE5vZGVUeXBlKTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKaW5kZXggYjZh
MzExM2VmN2Q2Nzk5NDA1ZWFhMzE0MzA2M2Y4YmJhZGVhMDJiNS4uODU3YWQxOTE3Njc1NjdhNWJh
MTc1YjY5Y2NhZjIxNGY0NjA2MmJjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNTU0FnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ1NTQWdlbnQuY3BwCkBAIC03OTYsNyArNzk2LDcgQEAgSW5zcGVjdG9yU3R5bGVT
aGVldCogSW5zcGVjdG9yQ1NTQWdlbnQ6OmNyZWF0ZUluc3BlY3RvclN0eWxlU2hlZXRGb3JEb2N1
bWVudChEb2MKICAgICAvLyBTZXQgdGhpcyBmbGFnLCBzbyB3aGVuIHdlIGNyZWF0ZSBpdCwgd2Ug
cHV0IGl0IGludG8gdGhlIHZpYSBpbnNwZWN0b3IgbWFwLgogICAgIG1fY3JlYXRpbmdWaWFJbnNw
ZWN0b3JTdHlsZVNoZWV0ID0gdHJ1ZTsKICAgICBJbmxpbmVTdHlsZU92ZXJyaWRlU2NvcGUgb3Zl
cnJpZGVTY29wZShkb2N1bWVudCk7Ci0gICAgdGFyZ2V0Tm9kZS0+YXBwZW5kQ2hpbGQoc3R5bGVF
bGVtZW50LCBlYyk7CisgICAgdGFyZ2V0Tm9kZS0+YXBwZW5kQ2hpbGQoc3R5bGVFbGVtZW50LnJl
bGVhc2VOb25OdWxsKCksIGVjKTsKICAgICBtX2NyZWF0aW5nVmlhSW5zcGVjdG9yU3R5bGVTaGVl
dCA9IGZhbHNlOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCmluZGV4IGNlYjRhYTFhNTE2ZjQ3ZDU2OTgwMWI1
NjYwZDc5ZjNlNjkzMjdjMmYuLmM0ZDk2M2VhODZmNGE4ZjZhNDYzMWFlZTA0N2MwNzg2ZDhmOWUy
NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC0xMzgsNyArMTM4
LDcgQEAgc3RhdGljIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZG9jdW1lbnRGcmFnbWVu
dEZyb21EcmFnRGF0YShEcmFnRGF0YSYgZHJhZ0QKICAgICAgICAgICAgIFN0cmluZyB0aXRsZTsK
ICAgICAgICAgICAgIFN0cmluZyB1cmwgPSBkcmFnRGF0YS5hc1VSTChEcmFnRGF0YTo6RG9Ob3RD
b252ZXJ0RmlsZW5hbWVzLCAmdGl0bGUpOwogICAgICAgICAgICAgaWYgKCF1cmwuaXNFbXB0eSgp
KSB7Ci0gICAgICAgICAgICAgICAgUmVmUHRyPEhUTUxBbmNob3JFbGVtZW50PiBhbmNob3IgPSBI
VE1MQW5jaG9yRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICAgICAgICAgICAgICBSZWY8
SFRNTEFuY2hvckVsZW1lbnQ+IGFuY2hvciA9IEhUTUxBbmNob3JFbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQpOwogICAgICAgICAgICAgICAgIGFuY2hvci0+c2V0SHJlZih1cmwpOwogICAgICAgICAg
ICAgICAgIGlmICh0aXRsZS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgICAgICAgICAgLy8gVHJ5
IHRoZSBwbGFpbiB0ZXh0IGZpcnN0IGJlY2F1c2UgdGhlIHVybCBtaWdodCBiZSBub3JtYWxpemVk
IG9yIGVzY2FwZWQuCkBAIC0xNDcsMjAgKzE0NywxOSBAQCBzdGF0aWMgUGFzc1JlZlB0cjxEb2N1
bWVudEZyYWdtZW50PiBkb2N1bWVudEZyYWdtZW50RnJvbURyYWdEYXRhKERyYWdEYXRhJiBkcmFn
RAogICAgICAgICAgICAgICAgICAgICBpZiAodGl0bGUuaXNFbXB0eSgpKQogICAgICAgICAgICAg
ICAgICAgICAgICAgdGl0bGUgPSB1cmw7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIFJlZlB0cjxOb2RlPiBhbmNob3JUZXh0ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGl0
bGUpOwotICAgICAgICAgICAgICAgIGFuY2hvci0+YXBwZW5kQ2hpbGQoYW5jaG9yVGV4dCwgSUdO
T1JFX0VYQ0VQVElPTik7Ci0gICAgICAgICAgICAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IGZyYWdtZW50ID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwotICAgICAgICAg
ICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChhbmNob3IsIElHTk9SRV9FWENFUFRJT04pOwot
ICAgICAgICAgICAgICAgIHJldHVybiBmcmFnbWVudC5nZXQoKTsKKyAgICAgICAgICAgICAgICBh
bmNob3ItPmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRpdGxlKSwgSUdOT1JF
X0VYQ0VQVElPTik7CisgICAgICAgICAgICAgICAgUmVmPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdt
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOworICAgICAgICAgICAgICAg
IGZyYWdtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoYW5jaG9yKSwgSUdOT1JFX0VYQ0VQVElP
Tik7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZyYWdtZW50LnB0cigpOwogICAgICAgICAgICAg
fQogICAgICAgICB9CiAgICAgfQogICAgIGlmIChhbGxvd1BsYWluVGV4dCAmJiBkcmFnRGF0YS5j
b250YWluc1BsYWluVGV4dCgpKSB7CiAgICAgICAgIGNob3NlUGxhaW5UZXh0ID0gdHJ1ZTsKLSAg
ICAgICAgcmV0dXJuIGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoY29udGV4dCwgZHJhZ0RhdGEuYXNQ
bGFpblRleHQoKSkuZ2V0KCk7CisgICAgICAgIHJldHVybiBjcmVhdGVGcmFnbWVudEZyb21UZXh0
KGNvbnRleHQsIGRyYWdEYXRhLmFzUGxhaW5UZXh0KCkpLnB0cigpOwogICAgIH0KIAotICAgIHJl
dHVybiAwOworICAgIHJldHVybiBudWxscHRyOwogfQogCiBib29sIERyYWdDb250cm9sbGVyOjpk
cmFnSXNNb3ZlKEZyYW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24sIERyYWdEYXRhJiBkcmFnRGF0YSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcAppbmRleCA2ZjNjYTgzZTg1MzIy
MmRmZDVlODA1MjcyZjBmNWM5NDY0MzRkMjI0Li44YWRmY2ZhNDEwYWJlNDdlMzMyNGFlNWI4ZDky
NDNmNTY2NjQ1ZDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCkBA
IC0xNTYsOSArMTU2LDkgQEAgYm9vbCBTVkdTY3JpcHRFbGVtZW50OjpoYXNTb3VyY2VBdHRyaWJ1
dGUoKSBjb25zdAogICAgIHJldHVybiBoYXNBdHRyaWJ1dGUoWExpbmtOYW1lczo6aHJlZkF0dHIp
OwogfQogCi1SZWZQdHI8RWxlbWVudD4gU1ZHU2NyaXB0RWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0
aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQpCitSZWY8
RWxlbWVudD4gU1ZHU2NyaXB0RWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNB
bmRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBTVkdTY3JpcHRFbGVtZW50KHRhZ1FOYW1lKCksIHRhcmdldERvY3VtZW50LCBmYWxz
ZSwgYWxyZWFkeVN0YXJ0ZWQoKSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1Njcmlw
dEVsZW1lbnQodGFnUU5hbWUoKSwgdGFyZ2V0RG9jdW1lbnQsIGZhbHNlLCBhbHJlYWR5U3RhcnRl
ZCgpKSk7CiB9CiAKICNpZm5kZWYgTkRFQlVHCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1l
bnQuaAppbmRleCA0YzFhYTA4ZTZkMmZjOGZmOGRhOTlmNDI3Y2VjN2Q0ZjJjNjRlMzA1Li41MzVl
NDJlNmYwNjQ2ZDgwMTA0MTkwOTNjNjIyOTI0YjM4M2Q3MTAxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTY3JpcHRFbGVtZW50LmgKQEAgLTY1LDcgKzY1LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1
YWwgdm9pZCBkaXNwYXRjaExvYWRFdmVudCgpIG92ZXJyaWRlIHsgU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZDo6ZGlzcGF0Y2hMb2FkRXZlbnQodGhpcyk7IH0KIAotICAgIHZpcnR1YWwgUmVm
UHRyPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9j
dW1lbnQmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxFbGVtZW50PiBjbG9uZUVsZW1lbnRX
aXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50Jikgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7
IHJldHVybiBmYWxzZTsgfQogCiAgICAgLy8gU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCmluZGV4IDcwNGZlNGEyMjk4MmU5YjQwNDQx
NTkxMjE3ZDM3NWQ1NTc0ZDUzNWIuLjY0ZTEwYWE2MDA0ZjQ3MDA2MWJmMzVhNjI5YTA0ZDg4ODcy
YjJkNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKQEAgLTMzMiw3ICszMzIs
NyBAQCBzdGF0aWMgdm9pZCByZW1vdmVEaXNhbGxvd2VkRWxlbWVudHNGcm9tU3VidHJlZShTVkdF
bGVtZW50JiBzdWJ0cmVlKQogICAgIGZvciAoYXV0byogZWxlbWVudCA6IGRpc2FsbG93ZWRFbGVt
ZW50cykgewogICAgICAgICBmb3IgKGF1dG8mIGRlc2NlbmRhbnQgOiBkZXNjZW5kYW50c09mVHlw
ZTxTVkdFbGVtZW50PigqZWxlbWVudCkpCiAgICAgICAgICAgICBkZXNjZW5kYW50LnNldENvcnJl
c3BvbmRpbmdFbGVtZW50KG51bGxwdHIpOwotICAgICAgICBlbGVtZW50LT5wYXJlbnROb2RlKCkt
PnJlbW92ZUNoaWxkKGVsZW1lbnQpOworICAgICAgICBlbGVtZW50LT5wYXJlbnROb2RlKCktPnJl
bW92ZUNoaWxkKCplbGVtZW50KTsKICAgICB9CiB9CiAKQEAgLTQwNSw3ICs0MDUsNyBAQCBTVkdF
bGVtZW50KiBTVkdVc2VFbGVtZW50OjpmaW5kVGFyZ2V0KFN0cmluZyogdGFyZ2V0SUQpIGNvbnN0
CiAKIHZvaWQgU1ZHVXNlRWxlbWVudDo6Y2xvbmVUYXJnZXQoQ29udGFpbmVyTm9kZSYgY29udGFp
bmVyLCBTVkdFbGVtZW50JiB0YXJnZXQpIGNvbnN0CiB7Ci0gICAgUmVmPFNWR0VsZW1lbnQ+IHRh
cmdldENsb25lID0gc3RhdGljX3BvaW50ZXJfY2FzdDxTVkdFbGVtZW50Pih0YXJnZXQuY2xvbmVF
bGVtZW50V2l0aENoaWxkcmVuKGRvY3VtZW50KCkpKS5yZWxlYXNlTm9uTnVsbCgpOworICAgIFJl
ZjxTVkdFbGVtZW50PiB0YXJnZXRDbG9uZSA9IHN0YXRpY19jYXN0PFNWR0VsZW1lbnQmPih0YXJn
ZXQuY2xvbmVFbGVtZW50V2l0aENoaWxkcmVuKGRvY3VtZW50KCkpLmdldCgpKTsKICAgICBhc3Nv
Y2lhdGVDbG9uZXNXaXRoT3JpZ2luYWxzKHRhcmdldENsb25lLmdldCgpLCB0YXJnZXQpOwogICAg
IHJlbW92ZURpc2FsbG93ZWRFbGVtZW50c0Zyb21TdWJ0cmVlKHRhcmdldENsb25lLmdldCgpKTsK
ICAgICB0cmFuc2ZlclNpemVBdHRyaWJ1dGVzVG9UYXJnZXRDbG9uZSh0YXJnZXRDbG9uZS5nZXQo
KSk7CkBAIC00MTksNyArNDE5LDcgQEAgc3RhdGljIHZvaWQgY2xvbmVEYXRhQW5kQ2hpbGRyZW4o
U1ZHRWxlbWVudCYgcmVwbGFjZW1lbnRDbG9uZSwgU1ZHRWxlbWVudCYgb3JpZ2kKICAgICBBU1NF
UlQoIXJlcGxhY2VtZW50Q2xvbmUucGFyZW50Tm9kZSgpKTsKIAogICAgIHJlcGxhY2VtZW50Q2xv
bmUuY2xvbmVEYXRhRnJvbUVsZW1lbnQob3JpZ2luYWxDbG9uZSk7Ci0gICAgb3JpZ2luYWxDbG9u
ZS5jbG9uZUNoaWxkTm9kZXMoJnJlcGxhY2VtZW50Q2xvbmUpOworICAgIG9yaWdpbmFsQ2xvbmUu
Y2xvbmVDaGlsZE5vZGVzKHJlcGxhY2VtZW50Q2xvbmUpOwogICAgIGFzc29jaWF0ZVJlcGxhY2Vt
ZW50Q2xvbmVzV2l0aE9yaWdpbmFscyhyZXBsYWNlbWVudENsb25lLCBvcmlnaW5hbENsb25lKTsK
ICAgICByZW1vdmVEaXNhbGxvd2VkRWxlbWVudHNGcm9tU3VidHJlZShyZXBsYWNlbWVudENsb25l
KTsKIH0KQEAgLTQ0OCw3ICs0NDgsNyBAQCB2b2lkIFNWR1VzZUVsZW1lbnQ6OmV4cGFuZFVzZUVs
ZW1lbnRzSW5TaGFkb3dUcmVlKCkgY29uc3QKICAgICAgICAgaWYgKHRhcmdldCkKICAgICAgICAg
ICAgIG9yaWdpbmFsQ2xvbmUuY2xvbmVUYXJnZXQocmVwbGFjZW1lbnRDbG9uZS5nZXQoKSwgKnRh
cmdldCk7CiAKLSAgICAgICAgb3JpZ2luYWxDbG9uZS5wYXJlbnROb2RlKCktPnJlcGxhY2VDaGls
ZChyZXBsYWNlbWVudENsb25lLnB0cigpLCAmb3JpZ2luYWxDbG9uZSk7CisgICAgICAgIG9yaWdp
bmFsQ2xvbmUucGFyZW50Tm9kZSgpLT5yZXBsYWNlQ2hpbGQocmVwbGFjZW1lbnRDbG9uZS5jb3B5
UmVmKCksIG9yaWdpbmFsQ2xvbmUpOwogCiAgICAgICAgIC8vIFJlc3VtZSBpdGVyYXRpbmcsIHN0
YXJ0aW5nIGp1c3QgaW5zaWRlIHRoZSByZXBsYWNlbWVudCBjbG9uZS4KICAgICAgICAgaXQgPSBk
ZXNjZW5kYW50cy5mcm9tKHJlcGxhY2VtZW50Q2xvbmUuZ2V0KCkpOwpAQCAtNDcyLDcgKzQ3Miw3
IEBAIHZvaWQgU1ZHVXNlRWxlbWVudDo6ZXhwYW5kU3ltYm9sRWxlbWVudHNJblNoYWRvd1RyZWUo
KSBjb25zdAogICAgICAgICBhdXRvIHJlcGxhY2VtZW50Q2xvbmUgPSBTVkdTVkdFbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQoKSk7CiAgICAgICAgIGNsb25lRGF0YUFuZENoaWxkcmVuKHJlcGxhY2Vt
ZW50Q2xvbmUuZ2V0KCksIG9yaWdpbmFsQ2xvbmUpOwogCi0gICAgICAgIG9yaWdpbmFsQ2xvbmUu
cGFyZW50Tm9kZSgpLT5yZXBsYWNlQ2hpbGQocmVwbGFjZW1lbnRDbG9uZS5wdHIoKSwgJm9yaWdp
bmFsQ2xvbmUpOworICAgICAgICBvcmlnaW5hbENsb25lLnBhcmVudE5vZGUoKS0+cmVwbGFjZUNo
aWxkKHJlcGxhY2VtZW50Q2xvbmUuY29weVJlZigpLCBvcmlnaW5hbENsb25lKTsKIAogICAgICAg
ICAvLyBSZXN1bWUgaXRlcmF0aW5nLCBzdGFydGluZyBqdXN0IGluc2lkZSB0aGUgcmVwbGFjZW1l
bnQgY2xvbmUuCiAgICAgICAgIGl0ID0gZGVzY2VuZGFudHMuZnJvbShyZXBsYWNlbWVudENsb25l
LmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxUcmVlVmlld2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxUcmVlVmlld2VyLmNwcAppbmRleCA0MDk2ZTQzNWQ2
M2Y1NzA4NDQ4MDJjMjE3NzA4YWRkOWViNjA1MTc1Li5hOWY3N2VhMTYzODQ4Zjg1MGI2MzVjOTJi
OTBjYTk0Mjc3MmY4OGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MVHJlZVZp
ZXdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTFRyZWVWaWV3ZXIuY3BwCkBAIC02
MSw4ICs2MSw4IEBAIHZvaWQgWE1MVHJlZVZpZXdlcjo6dHJhbnNmb3JtRG9jdW1lbnRUb1RyZWVW
aWV3KCkKICAgICBtX2RvY3VtZW50LmZyYW1lKCktPnNjcmlwdCgpLmV2YWx1YXRlKFNjcmlwdFNv
dXJjZUNvZGUoQXRvbWljU3RyaW5nKCJwcmVwYXJlV2ViS2l0WE1MVmlld2VyKCdUaGlzIFhNTCBm
aWxlIGRvZXMgbm90IGFwcGVhciB0byBoYXZlIGFueSBzdHlsZSBpbmZvcm1hdGlvbiBhc3NvY2lh
dGVkIHdpdGggaXQuIFRoZSBkb2N1bWVudCB0cmVlIGlzIHNob3duIGJlbG93LicpOyIpKSk7CiAK
ICAgICBTdHJpbmcgY3NzU3RyaW5nID0gU3RyaW5nSW1wbDo6Y3JlYXRlV2l0aG91dENvcHlpbmco
WE1MVmlld2VyX2Nzcywgc2l6ZW9mKFhNTFZpZXdlcl9jc3MpKTsKLSAgICBSZWZQdHI8VGV4dD4g
dGV4dCA9IG1fZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzU3RyaW5nKTsKLSAgICBtX2RvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKFN0cmluZyhBU0NJSUxpdGVyYWwoInhtbC12aWV3ZXItc3R5bGUi
KSkpLT5hcHBlbmRDaGlsZCh0ZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBSZWY8VGV4dD4g
dGV4dCA9IG1fZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzU3RyaW5nKTsKKyAgICBtX2RvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKFN0cmluZyhBU0NJSUxpdGVyYWwoInhtbC12aWV3ZXItc3R5bGUi
KSkpLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUodGV4dCksIElHTk9SRV9FWENFUFRJT04pOwogICAg
IG1fZG9jdW1lbnQuc3R5bGVSZXNvbHZlckNoYW5nZWQoUmVjYWxjU3R5bGVJbW1lZGlhdGVseSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4IDBiMzIxMjA3YzMy
M2U0ZGEwMDkzMGU5YzgwNGUwZDIzOGE5NGNkZDkuLmQ3ZTRkY2Y3ODA4NDZmYWE1OTA4Njk5OGYz
MDI5ZTYxM2M5MDdiNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
RnJhbWUubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQpAQCAt
ODkwLDkgKzg5MCw5IEBAIC0gKERPTURvY3VtZW50RnJhZ21lbnQgKilfZG9jdW1lbnRGcmFnbWVu
dFdpdGhOb2Rlc0FzUGFyYWdyYXBoczooTlNBcnJheSAqKW5vZGVzCiAgICAgUmVmUHRyPERvY3Vt
ZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gZG9jdW1lbnQtPmNyZWF0ZURvY3VtZW50RnJhZ21lbnQo
KTsKIAogICAgIGZvciAoYXV0byogbm9kZSA6IG5vZGVzVmVjdG9yKSB7Ci0gICAgICAgIFJlZlB0
cjxFbGVtZW50PiBlbGVtZW50ID0gY3JlYXRlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQoKmRvY3Vt
ZW50KTsKLSAgICAgICAgZWxlbWVudC0+YXBwZW5kQ2hpbGQobm9kZSk7Ci0gICAgICAgIGZyYWdt
ZW50LT5hcHBlbmRDaGlsZChlbGVtZW50LnJlbGVhc2UoKSk7CisgICAgICAgIFJlZjxFbGVtZW50
PiBlbGVtZW50ID0gY3JlYXRlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQoKmRvY3VtZW50KTsKKyAg
ICAgICAgZWxlbWVudC0+YXBwZW5kQ2hpbGQoKm5vZGUpOworICAgICAgICBmcmFnbWVudC0+YXBw
ZW5kQ2hpbGQoV1RGOjptb3ZlKGVsZW1lbnQpKTsKICAgICB9CiAKICAgICByZXR1cm4ga2l0KGZy
YWdtZW50LnJlbGVhc2UoKS5nZXQoKSk7CkBAIC0xOTU4LDcgKzE5NTgsNyBAQCAtICh2b2lkKV9y
ZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQ6KE5TU3RyaW5nICopdGV4dCBzZWxlY3RSZXBsYWNlbWVu
dDooQk9PTClzZWxlYwogewogICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBfcHJpdmF0ZS0+Y29y
ZUZyYW1lLT5zZWxlY3Rpb24oKS50b05vcm1hbGl6ZWRSYW5nZSgpOwogICAgIAotICAgIERPTURv
Y3VtZW50RnJhZ21lbnQqIGZyYWdtZW50ID0gcmFuZ2UgPyBraXQoY3JlYXRlRnJhZ21lbnRGcm9t
VGV4dCgqcmFuZ2UsIHRleHQpLmdldCgpKSA6IG5pbDsKKyAgICBET01Eb2N1bWVudEZyYWdtZW50
KiBmcmFnbWVudCA9IHJhbmdlID8ga2l0KGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoKnJhbmdlLCB0
ZXh0KS5wdHIoKSkgOiBuaWw7CiAgICAgW3NlbGYgX3JlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21l
bnQ6ZnJhZ21lbnQgc2VsZWN0UmVwbGFjZW1lbnQ6c2VsZWN0UmVwbGFjZW1lbnQgc21hcnRSZXBs
YWNlOnNtYXJ0UmVwbGFjZSBtYXRjaFN0eWxlOllFU107CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4IDMwOTgwZDMwYWE2N2UyZGViOTgyMWU5N2QwMDcy
MjUwZTU1YmQyYTQuLmIyNTcxOWZiOTBiNmE0NDdjYzI4NzRkZGE1ZGNmM2FlOTFjY2NlMTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQpAQCAtMjI2Nyw3ICsyMjY3
LDcgQEAgLSAoRE9NRG9jdW1lbnRGcmFnbWVudCAqKV9kb2N1bWVudEZyYWdtZW50RnJvbVBhc3Rl
Ym9hcmQ6KE5TUGFzdGVib2FyZCAqKXBhc3RlYm8KICAgICBpZiAocGJvYXJkVHlwZSA9PSBOU1N0
cmluZ1Bib2FyZFR5cGUpIHsKICAgICAgICAgaWYgKCFjb250ZXh0KQogICAgICAgICAgICAgcmV0
dXJuIG5pbDsKLSAgICAgICAgcmV0dXJuIGtpdChjcmVhdGVGcmFnbWVudEZyb21UZXh0KCpjb3Jl
KGNvbnRleHQpLCBbW3Bhc3RlYm9hcmQgc3RyaW5nRm9yVHlwZTpOU1N0cmluZ1Bib2FyZFR5cGVd
IHByZWNvbXBvc2VkU3RyaW5nV2l0aENhbm9uaWNhbE1hcHBpbmddKS5nZXQoKSk7CisgICAgICAg
IHJldHVybiBraXQoY3JlYXRlRnJhZ21lbnRGcm9tVGV4dCgqY29yZShjb250ZXh0KSwgW1twYXN0
ZWJvYXJkIHN0cmluZ0ZvclR5cGU6TlNTdHJpbmdQYm9hcmRUeXBlXSBwcmVjb21wb3NlZFN0cmlu
Z1dpdGhDYW5vbmljYWxNYXBwaW5nXSkucHRyKCkpOwogICAgIH0KICAgICByZXR1cm4gbmlsOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQ
bHVnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdp
bi5tbQppbmRleCA1M2RiZmE1OTA2ZTM3MmIxMzRmM2U4OWNjYzRkYjJiYWEyMDBjMGRhLi4xNzM0
MGRlMzYzNDk3Mjc4YTBkODhkZTQ1ZDVjNmI5Mzk0OWZkY2I3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQpAQCAtNTI1LDExICs1
MjUsMTEgQEAgUERGUGx1Z2luOjpQREZQbHVnaW4oV2ViRnJhbWUqIGZyYW1lKQogICAgICAgICBt
X2Fubm90YXRpb25Db250YWluZXIgPSBkb2N1bWVudC0+Y3JlYXRlRWxlbWVudChkaXZUYWcsIGZh
bHNlKTsKICAgICAgICAgbV9hbm5vdGF0aW9uQ29udGFpbmVyLT5zZXRBdHRyaWJ1dGUoaWRBdHRy
LCAiYW5ub3RhdGlvbkNvbnRhaW5lciIpOwogCi0gICAgICAgIFJlZlB0cjxFbGVtZW50PiBtX2Fu
bm90YXRpb25TdHlsZSA9IGRvY3VtZW50LT5jcmVhdGVFbGVtZW50KHN0eWxlVGFnLCBmYWxzZSk7
Ci0gICAgICAgIG1fYW5ub3RhdGlvblN0eWxlLT5zZXRUZXh0Q29udGVudChhbm5vdGF0aW9uU3R5
bGUsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAgICBSZWY8RWxlbWVudD4gYW5ub3RhdGlv
blN0eWxlRWxlbWVudCA9IGRvY3VtZW50LT5jcmVhdGVFbGVtZW50KHN0eWxlVGFnLCBmYWxzZSk7
CisgICAgICAgIGFubm90YXRpb25TdHlsZUVsZW1lbnQtPnNldFRleHRDb250ZW50KGFubm90YXRp
b25TdHlsZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKLSAgICAgICAgbV9hbm5vdGF0aW9uQ29u
dGFpbmVyLT5hcHBlbmRDaGlsZChtX2Fubm90YXRpb25TdHlsZS5nZXQoKSk7Ci0gICAgICAgIGRv
Y3VtZW50LT5ib2R5T3JGcmFtZXNldCgpLT5hcHBlbmRDaGlsZChtX2Fubm90YXRpb25Db250YWlu
ZXIuZ2V0KCkpOworICAgICAgICBtX2Fubm90YXRpb25Db250YWluZXItPmFwcGVuZENoaWxkKFdU
Rjo6bW92ZShhbm5vdGF0aW9uU3R5bGVFbGVtZW50KSk7CisgICAgICAgIGRvY3VtZW50LT5ib2R5
T3JGcmFtZXNldCgpLT5hcHBlbmRDaGlsZCgqbV9hbm5vdGF0aW9uQ29udGFpbmVyKTsKICAgICB9
CiAKICAgICBtX2FjY2Vzc2liaWxpdHlPYmplY3QgPSBhZG9wdE5TKFtbV0tQREZQbHVnaW5BY2Nl
c3NpYmlsaXR5T2JqZWN0IGFsbG9jXSBpbml0V2l0aFBERlBsdWdpbjp0aGlzXSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkFubm90
YXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdp
bkFubm90YXRpb24ubW0KaW5kZXggMzRiNTIyZDg5YmEzMjk2ZWYxZTBlY2U1YmJlMjIxODYxOGU2
MzZmMS4uYTAyOWQyNWY5MWU4MmU2ZGIxYjJmMGZhNWEyYmUzOGQ2YzFjNzJiZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5Bbm5vdGF0
aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1
Z2luQW5ub3RhdGlvbi5tbQpAQCAtNzQsNyArNzQsNyBAQCB2b2lkIFBERlBsdWdpbkFubm90YXRp
b246OmF0dGFjaChFbGVtZW50KiBwYXJlbnQpCiAKICAgICB1cGRhdGVHZW9tZXRyeSgpOwogCi0g
ICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKG1fZWxlbWVudCk7CisgICAgbV9wYXJlbnQtPmFwcGVu
ZENoaWxkKCptX2VsZW1lbnQpOwogCiAgICAgLy8gRklYTUU6IFRoZSB0ZXh0IGN1cnNvciBkb2Vz
bid0IGJsaW5rIGFmdGVyIHRoaXMuIFdoeT8KICAgICBtX2VsZW1lbnQtPmZvY3VzKCk7CkBAIC05
Miw3ICs5Miw3IEBAIFBERlBsdWdpbkFubm90YXRpb246On5QREZQbHVnaW5Bbm5vdGF0aW9uKCkK
IAogICAgIG1fZXZlbnRMaXN0ZW5lci0+c2V0QW5ub3RhdGlvbigwKTsKIAotICAgIG1fcGFyZW50
LT5yZW1vdmVDaGlsZChlbGVtZW50KCkpOworICAgIG1fcGFyZW50LT5yZW1vdmVDaGlsZCgqZWxl
bWVudCgpKTsKIH0KIAogdm9pZCBQREZQbHVnaW5Bbm5vdGF0aW9uOjp1cGRhdGVHZW9tZXRyeSgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBs
dWdpbkNob2ljZUFubm90YXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24ubW0KaW5kZXggZTFhOGU1ODIyYjI1ZTg3
OTM1MWYzNDkwYmU5NTRkMWRiODE5ZGQ0Yi4uNjIxZGMwMTFkYjg3NGZkZjNkZjIzMDVhZTQwNzM2
NzlmMzZmMGYzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BERi9QREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbi5tbQpAQCAtODMs
MTQgKzgzLDE0IEBAIFBhc3NSZWZQdHI8RWxlbWVudD4gUERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlv
bjo6Y3JlYXRlQW5ub3RhdGlvbkVsZW1lbnQoKQogICAgIE5TU3RyaW5nICpzZWxlY3RlZENob2lj
ZSA9IGNob2ljZUFubm90YXRpb24uc3RyaW5nVmFsdWU7CiAKICAgICBmb3IgKE5TU3RyaW5nICpj
aG9pY2UgaW4gY2hvaWNlcykgewotICAgICAgICBSZWZQdHI8RWxlbWVudD4gY2hvaWNlT3B0aW9u
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChvcHRpb25UYWcsIGZhbHNlKTsKKyAgICAgICAgUmVm
PEVsZW1lbnQ+IGNob2ljZU9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQob3B0aW9uVGFn
LCBmYWxzZSk7CiAgICAgICAgIGNob2ljZU9wdGlvbi0+c2V0QXR0cmlidXRlKHZhbHVlQXR0ciwg
Y2hvaWNlKTsKICAgICAgICAgY2hvaWNlT3B0aW9uLT5zZXRUZXh0Q29udGVudChjaG9pY2UsIEFT
U0VSVF9OT19FWENFUFRJT04pOwogCiAgICAgICAgIGlmIChjaG9pY2UgPT0gc2VsZWN0ZWRDaG9p
Y2UpCiAgICAgICAgICAgICBjaG9pY2VPcHRpb24tPnNldEF0dHJpYnV0ZShzZWxlY3RlZEF0dHIs
ICJzZWxlY3RlZCIpOwogCi0gICAgICAgIHN0eWxlZEVsZW1lbnQtPmFwcGVuZENoaWxkKGNob2lj
ZU9wdGlvbik7CisgICAgICAgIHN0eWxlZEVsZW1lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShj
aG9pY2VPcHRpb24pKTsKICAgICB9CiAKICAgICByZXR1cm4gZWxlbWVudDsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxYWY2
NmNkMWIxY2MxNGQ2M2MyMWQ1NjRhZmU4OWQ3YTlmZWNkZWVlLi40OTQ2OGZjMTE0ODE5OTNiOGYx
MDVkZjQ1NDcyN2Y0ODI2NzUwODBmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTUtMDktMDgg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBOb2RlLmFwcGVuZENo
aWxkKG51bGwpIC8gcmVwbGFjZUNoaWxkKG51bGwsIG51bGwpIC8gcmVtb3ZlQ2hpbGQobnVsbCkg
LyBpbnNlcnRCZWZvcmUobnVsbCwgcmVmKSBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3IKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODk3MQorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMjI1NjA4ODM+CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjU1
OTIyNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBV
cGRhdGUgLyByZWJhc2VsaW5lIHRlc3RzIG5vdyB0aGF0IHdlIHRocm93IGEgZGlmZmVyZW50IGV4
Y2VwdGlvbiB0eXBlLgorCisgICAgICAgICogZmFzdC9kb20vRG9jdW1lbnQvcmVwbGFjZUNoaWxk
LW51bGwtb2xkQ2hpbGQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL0RvY3VtZW50
L3NjcmlwdC10ZXN0cy9yZXBsYWNlQ2hpbGQtbnVsbC1vbGRDaGlsZC5qczoKKyAgICAgICAgKiBm
YXN0L2RvbS9Ob2RlL2ZyYWdtZW50LW11dGF0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBm
YXN0L2RvbS9Ob2RlL2ZyYWdtZW50LW11dGF0aW9uLmh0bWw6CisgICAgICAgICogZmFzdC9kb20v
aW5jb21wYXRpYmxlLW9wZXJhdGlvbnMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9t
L2luY29tcGF0aWJsZS1vcGVyYXRpb25zLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vbW92ZS1u
b2Rlcy1hY3Jvc3MtZG9jdW1lbnRzLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vcHJvY2Vzc2lu
Zy1pbnN0cnVjdGlvbi1hcHBlbmRDaGlsZC1leGNlcHRpb25zLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L2RvbS9wcm9jZXNzaW5nLWluc3RydWN0aW9uLWFwcGVuZENoaWxkLWV4Y2VwdGlv
bnMueGh0bWw6CisgICAgICAgICogZmFzdC9kb20vc2V0dGVyLXR5cGUtZW5mb3JjZW1lbnQtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL3RpbWVyLWNsZWFyLWludGVydmFsLWluLWhh
bmRsZXItYW5kLWdlbmVyYXRlLWVycm9yLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2lu
c3BlY3Rvci1zdXBwb3J0L3VuY2F1Z2h0LWRvbTgtZXhjZXB0aW9uLmh0bWw6CisKIDIwMTUtMDkt
MDggIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbaU9TXSBVbnJldmlld2VkIGlPUyBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZwppbmRleCA3Mjc4MmUwNTIwN2RlMzVhZjIxODkwYmY3MGM4MzJmOTFhNWIyZDE0Li43YWY2
NTA1NzlmN2JhN2M2NGI3OWIzMzhmYTgwMmM4OTc5MDJlYTA2IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMyBAQAogMjAxNS0wOS0wOCAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCisgICAgICAgIE5vZGUuYXBwZW5kQ2hpbGQobnVsbCkgLyByZXBs
YWNlQ2hpbGQobnVsbCwgbnVsbCkgLyByZW1vdmVDaGlsZChudWxsKSAvIGluc2VydEJlZm9yZShu
dWxsLCByZWYpIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4OTcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8yMjU2MDg4Mz4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIyNTU5MjI1PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlYmFzZWxpbmUgVzNDIHRl
c3RzIG5vdyB0aGF0IG1vcmUgY2hlY2tzIGFyZSBwYXNzaW5nLgorCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtYXBwZW5kQ2hpbGQtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1pbnNlcnRCZWZvcmUt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9k
ZS1yZW1vdmVDaGlsZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2RvbS9ub2Rlcy9Ob2RlLXJlcGxhY2VDaGlsZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0OgorCisyMDE1
LTA5LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKICAgICAgICAgVW5yZXZp
ZXdlZCwgZHJvcCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvbG9jYXRpb24tb2YtdGhlLW1lZGlhLXJl
c291cmNlL2N1cnJlbnRTcmMuaHRtbC4KIAogICAgICAgICBUaGlzIHJlY2VudGx5IGltcG9ydGVk
IHRlc3QgaXMgZmxha3kuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Eb2N1bWVu
dC9yZXBsYWNlQ2hpbGQtbnVsbC1vbGRDaGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9Eb2N1bWVudC9yZXBsYWNlQ2hpbGQtbnVsbC1vbGRDaGlsZC1leHBlY3RlZC50eHQK
aW5kZXggYmJiMTY2YjIyN2E1MmU2NTE0NWFkYmY0MDQ4Nzg1M2IwZDM2OGQyNC4uYWY1YTQ2OWY1
ZjhjYzY5NzEwMWJjOTJhNDBmODI0NTViOGJlNWNkMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vRG9jdW1lbnQvcmVwbGFjZUNoaWxkLW51bGwtb2xkQ2hpbGQtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50L3JlcGxhY2VDaGlsZC1udWxsLW9s
ZENoaWxkLWV4cGVjdGVkLnR4dApAQCAtMyw3ICszLDcgQEAgVGVzdCBiZWhhdmlvciBvZiBEb2N1
bWVudC5yZXBsYWNlQ2hpbGQoKSB3aGVuIG9sZENoaWxkIGlzIG51bGwuCiBPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCiAKIAotUEFTUyBkb2N1bWVudC5yZXBsYWNlQ2hpbGQoZG9jdW1lbnQuZmly
c3RDaGlsZCwgbnVsbCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb3RGb3VuZEVycm9yOiBET00g
RXhjZXB0aW9uIDguCitQQVNTIGRvY3VtZW50LnJlcGxhY2VDaGlsZChkb2N1bWVudC5maXJzdENo
aWxkLCBudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgogUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9Eb2N1bWVudC9zY3JpcHQtdGVzdHMvcmVwbGFjZUNoaWxkLW51
bGwtb2xkQ2hpbGQuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Eb2N1bWVudC9zY3JpcHQtdGVz
dHMvcmVwbGFjZUNoaWxkLW51bGwtb2xkQ2hpbGQuanMKaW5kZXggZGE5MjUyODAwNTFlMTk3ZTFh
ZjVjOWVhNGEyNWI0MWI5NmVjM2E1Zi4uYzA5YmYxYjE4ZDI5OWU2NzQ1MjMwNTM2NjdhOGMyNWQ4
YTk4MDcwZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvc2NyaXB0
LXRlc3RzL3JlcGxhY2VDaGlsZC1udWxsLW9sZENoaWxkLmpzCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0RvY3VtZW50L3NjcmlwdC10ZXN0cy9yZXBsYWNlQ2hpbGQtbnVsbC1vbGRDaGlsZC5q
cwpAQCAtMSwzICsxLDMgQEAKIGRlc2NyaXB0aW9uKCdUZXN0IGJlaGF2aW9yIG9mIERvY3VtZW50
LnJlcGxhY2VDaGlsZCgpIHdoZW4gb2xkQ2hpbGQgaXMgbnVsbC4nKTsKIAotc2hvdWxkVGhyb3co
J2RvY3VtZW50LnJlcGxhY2VDaGlsZChkb2N1bWVudC5maXJzdENoaWxkLCBudWxsKScsICciRXJy
b3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCInKTsKK3Nob3VsZFRocm93KCdkb2N1
bWVudC5yZXBsYWNlQ2hpbGQoZG9jdW1lbnQuZmlyc3RDaGlsZCwgbnVsbCknLCAnIlR5cGVFcnJv
cjogVHlwZSBlcnJvciInKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGUv
ZnJhZ21lbnQtbXV0YXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vTm9k
ZS9mcmFnbWVudC1tdXRhdGlvbi1leHBlY3RlZC50eHQKaW5kZXggMGYwNGU2NmEwZTUzZTZmNWIx
OTAxYzVkY2IxNzZmNjdmMmU0Zjg2OC4uNGJhOTUyNGM3MmNkNWQ3YTExMzI5NDRkMDZkZGRiYzZm
NmM3ZDg1YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZS9mcmFnbWVudC1t
dXRhdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZS9mcmFn
bWVudC1tdXRhdGlvbi1leHBlY3RlZC50eHQKQEAgLTIsMTIgKzIsMTIgQEAgVGhpcyB0ZXN0IGNy
ZWF0ZXMgYSBmcmFnbWVudCBjb250YWluaW5nIHRocmVlIGVsZW1lbnRzOiAiQiIsICJVIiwgYW5k
ICJQIiwgYXR0ZW0KIAogSW5zZXJ0aW5nIGFuIGVsZW1lbnQgaW4gZnJvbnQgb2YgdGhlIG5leHQg
aXRlbSBpbiBmcmFnbWVudCBzaG91bGQgbm90IGFmZmVjdCB0aGUgcmVzdWx0OiBQQVNTCiBBcHBl
bmRpbmcgYW4gZWxlbWVudCBhdCB0aGUgZW5kIG9mIHRoZSBmcmFnbWVudCBzaG91bGQgbm90IGFm
ZmVjdCB0aGUgcmVzdWx0OiBQQVNTCi1Db250aW51YWxseSByZS1hcHBlbmRpbmcgcmVtb3ZlZCBl
bGVtZW50IHRvIHRoZSBmcmFnbWVudCBzaG91bGQgZXZlbnR1YWxseSB0aHJvdyBOT1RfRk9VTkRf
RVJSOiBQQVNTCitDb250aW51YWxseSByZS1hcHBlbmRpbmcgcmVtb3ZlZCBlbGVtZW50IHRvIHRo
ZSBmcmFnbWVudCBzaG91bGQgZXZlbnR1YWxseSB0aHJvdyBhIFR5cGVFcnJvcjogUEFTUwogCiBU
aGlzIHRlc3QgY3JlYXRlcyBhIGZyYWdtZW50IGNvbnRhaW5pbmcgdGhyZWUgZWxlbWVudHM6ICJC
IiwgIlUiLCBhbmQgIlAiLCBhdHRlbXB0cyB0byBpbnNlcnRCZWZvcmUgdGhpcyBmcmFnbWVudCBh
bmQgc3R1ZGllcyBlZmZlY3RzIG9mIG11dGF0aW9uIGV2ZW50cyBvbiB0aGUgZnJhZ21lbnQuCiAK
IEluc2VydGluZyBhbiBlbGVtZW50IGluIGZyb250IG9mIHRoZSBuZXh0IGl0ZW0gaW4gZnJhZ21l
bnQgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIHJlc3VsdDogUEFTUwogQXBwZW5kaW5nIGFuIGVsZW1l
bnQgYXQgdGhlIGVuZCBvZiB0aGUgZnJhZ21lbnQgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIHJlc3Vs
dDogUEFTUwotQ29udGludWFsbHkgcmUtYXBwZW5kaW5nIHJlbW92ZWQgZWxlbWVudCB0byB0aGUg
ZnJhZ21lbnQgc2hvdWxkIGV2ZW50dWFsbHkgdGhyb3cgTk9UX0ZPVU5EX0VSUjogUEFTUworQ29u
dGludWFsbHkgcmUtYXBwZW5kaW5nIHJlbW92ZWQgZWxlbWVudCB0byB0aGUgZnJhZ21lbnQgc2hv
dWxkIGV2ZW50dWFsbHkgdGhyb3cgYSBUeXBlRXJyb3I6IFBBU1MKIAogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2ZyYWdtZW50LW11dGF0aW9uLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9Ob2RlL2ZyYWdtZW50LW11dGF0aW9uLmh0bWwKaW5kZXggODRlNjdmNjUz
OWQ2NGI3M2UzNTExMDIwYzA3NmUwNGM5ZTgwMGNiZi4uNDg5NDk3ZjUwYWM2YjZhOGY4MTAwNmJi
NThlNmFjMTc1NTdjNmI4NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZS9m
cmFnbWVudC1tdXRhdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvZnJh
Z21lbnQtbXV0YXRpb24uaHRtbApAQCAtMzYsMTUgKzM2LDE1IEBAIGZ1bmN0aW9uIHByb2R1Y2VO
b2RlTmFtZVN0cmluZyhub2RlcykKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1mdW5jdGlvbiBl
eHBlY3RFeGNlcHRpb24oY29kZSkKK2Z1bmN0aW9uIGV4cGVjdFR5cGVFcnJvcigpCiB7CiAgICAg
cmV0dXJuIGZ1bmN0aW9uKHN0YXNoLCBleGNlcHRpb24pIHsKICAgICAgICAgaWYgKCFleGNlcHRp
b24pCi0gICAgICAgICAgICByZXR1cm4gIkZBSUwsIGV4cGVjdGVkIGV4Y2VwdGlvbiB3aXRoIGNv
ZGUgIiArIGNvZGUgKyAiLiBUaGUgcmVzdWx0aW5nIGZyYWdtZW50IHdhczogXCIiICsgcHJvZHVj
ZU5vZGVOYW1lU3RyaW5nKHN0YXNoKSArICJcIi4iOworICAgICAgICAgICAgcmV0dXJuICJGQUlM
LCBleHBlY3RlZCBUeXBlRXJyb3IuIFRoZSByZXN1bHRpbmcgZnJhZ21lbnQgd2FzOiBcIiIgKyBw
cm9kdWNlTm9kZU5hbWVTdHJpbmcoc3Rhc2gpICsgIlwiLiI7CiAKLSAgICAgICAgaWYgKGNvZGUg
PT0gZXhjZXB0aW9uLmNvZGUpCisgICAgICAgIGlmIChleGNlcHRpb24ubmFtZSA9ICJUeXBlRXJy
b3IiKQogICAgICAgICAgICAgcmV0dXJuICJQQVNTIjsKLSAgICAgICAgcmV0dXJuICJGQUlMLCBl
eHBlY3RlZCBleGNlcHRpb24gY29kZTogIiArIGNvZGUgKyAiLCB3YXM6ICIgKyBleGNlcHRpb24g
KyAiLiI7CisgICAgICAgIHJldHVybiAiRkFJTCwgZXhwZWN0ZWQgVHlwZUVycm9yLCB3YXM6ICIg
KyBleGNlcHRpb24ubmFtZSArICIuIjsKICAgICB9CiB9CiAKQEAgLTExOSwxMCArMTE5LDEwIEBA
IGZ1bmN0aW9uIHJ1blRlc3QobWV0aG9kTmFtZSwgbWV0aG9kKQogICAgICAgICBmcmFnLmFwcGVu
ZENoaWxkKGV4dHJhKTsKICAgICB9LCBleHBlY3ROb2RlcygiQlVQIikpOwogCi0gICAgdGVzdEZy
YWdtZW50KG1ldGhvZCwgIkNvbnRpbnVhbGx5IHJlLWFwcGVuZGluZyByZW1vdmVkIGVsZW1lbnQg
dG8gdGhlIGZyYWdtZW50IHNob3VsZCBldmVudHVhbGx5IHRocm93IE5PVF9GT1VORF9FUlIiLCBm
dW5jdGlvbihldnQsIGZyYWcsIHN0YXNoKQorICAgIHRlc3RGcmFnbWVudChtZXRob2QsICJDb250
aW51YWxseSByZS1hcHBlbmRpbmcgcmVtb3ZlZCBlbGVtZW50IHRvIHRoZSBmcmFnbWVudCBzaG91
bGQgZXZlbnR1YWxseSB0aHJvdyBhIFR5cGVFcnJvciIsIGZ1bmN0aW9uKGV2dCwgZnJhZywgc3Rh
c2gpCiAgICAgewogICAgICAgICBzdGFzaC5pbnNlcnRCZWZvcmUoZnJhZy5sYXN0Q2hpbGQsIHN0
YXNoLmZpcnN0Q2hpbGQpOwotICAgIH0sIGV4cGVjdEV4Y2VwdGlvbig4KSwgdHJ1ZSk7CisgICAg
fSwgZXhwZWN0VHlwZUVycm9yKCksIHRydWUpOwogICAgIHByaW50TG9nKG1ldGhvZE5hbWUpOwog
fQogZnVuY3Rpb24gcnVuVGVzdHMoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
aW5jb21wYXRpYmxlLW9wZXJhdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vaW5jb21wYXRpYmxlLW9wZXJhdGlvbnMtZXhwZWN0ZWQudHh0CmluZGV4IGQ1NzY0YzFlNWFj
NjI2NGVlM2E0ZGY1YjkyNDVlYmUxNzdmNjU0ODAuLjg1Y2NkNTQ0ZmM5ZTk5YTc4ZGFhMjc3NTVh
MzNmYzg4MGE3ZmYwZDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2luY29tcGF0
aWJsZS1vcGVyYXRpb25zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9p
bmNvbXBhdGlibGUtb3BlcmF0aW9ucy1leHBlY3RlZC50eHQKQEAgLTMsOSArMyw5IEBAIFRoaXMg
dGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIERPTSBvcGVyYXRpb25zIHdoZW4gY2FsbGVkIG9u
IG5vbi1ET00gb3IgaW5jb21wCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBh
Tm9kZS5hcHBlbmRDaGlsZChhRE9NSW1wbGVtZW50YXRpb24pIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4LgotUEFTUyBhTm9kZS5hcHBlbmRDaGls
ZCgna25vcnQnKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNl
cHRpb24gOC4KLVBBU1MgYU5vZGUuYXBwZW5kQ2hpbGQodm9pZCAwKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOC4KK1BBU1MgYU5vZGUuYXBwZW5k
Q2hpbGQoYURPTUltcGxlbWVudGF0aW9uKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBl
IGVycm9yLgorUEFTUyBhTm9kZS5hcHBlbmRDaGlsZCgna25vcnQnKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBhTm9kZS5hcHBlbmRDaGlsZCh2b2lkIDApIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNTIGFOb2RlLmlzU2FtZU5v
ZGUoYURPTUltcGxlbWVudGF0aW9uKSBpcyBmYWxzZQogUEFTUyBhTm9kZS5pc1NhbWVOb2RlKCdm
b28nKSBpcyBmYWxzZQogUEFTUyBhTm9kZS5pc1NhbWVOb2RlKHZvaWQgMCkgaXMgZmFsc2UKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2luY29tcGF0aWJsZS1vcGVyYXRpb25zLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pbmNvbXBhdGlibGUtb3BlcmF0aW9ucy5odG1sCmlu
ZGV4IDIxYWE3MWFmZThlM2RlYWE4Y2U4YjA0ZDNmM2NmMjNkNTgyNTQyMzAuLjJmMGU0YWZlNmNh
Y2JkYzJiODU3MzVlNzY2MGVlOGY5ZTVkMDFiMGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL2luY29tcGF0aWJsZS1vcGVyYXRpb25zLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vaW5jb21wYXRpYmxlLW9wZXJhdGlvbnMuaHRtbApAQCAtMjgsMTEgKzI4LDExIEBAIHZh
ciBhTm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogdmFyIGFTZWNvbmROb2Rl
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiBhTm9kZS5hcHBlbmRDaGlsZChhU2Vj
b25kTm9kZSk7CiAKLXNob3VsZFRocm93KCJhTm9kZS5hcHBlbmRDaGlsZChhRE9NSW1wbGVtZW50
YXRpb24pIiwgIidFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4JyIpOworc2hv
dWxkVGhyb3coImFOb2RlLmFwcGVuZENoaWxkKGFET01JbXBsZW1lbnRhdGlvbikiLCAiJ1R5cGVF
cnJvcjogVHlwZSBlcnJvciciKTsKIAotc2hvdWxkVGhyb3coImFOb2RlLmFwcGVuZENoaWxkKCdr
bm9ydCcpIiwgIidFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4JyIpOworc2hv
dWxkVGhyb3coImFOb2RlLmFwcGVuZENoaWxkKCdrbm9ydCcpIiwgIidUeXBlRXJyb3I6IFR5cGUg
ZXJyb3InIik7CiAKLXNob3VsZFRocm93KCJhTm9kZS5hcHBlbmRDaGlsZCh2b2lkIDApIiwgIidF
cnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4JyIpOworc2hvdWxkVGhyb3coImFO
b2RlLmFwcGVuZENoaWxkKHZvaWQgMCkiLCAiJ1R5cGVFcnJvcjogVHlwZSBlcnJvciciKTsKIAog
c2hvdWxkQmVGYWxzZSgiYU5vZGUuaXNTYW1lTm9kZShhRE9NSW1wbGVtZW50YXRpb24pIik7CiBz
aG91bGRCZUZhbHNlKCJhTm9kZS5pc1NhbWVOb2RlKCdmb28nKSIpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vbW92ZS1ub2Rlcy1hY3Jvc3MtZG9jdW1lbnRzLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9tb3ZlLW5vZGVzLWFjcm9zcy1kb2N1bWVudHMuaHRtbAppbmRleCBk
MzUwMWExN2RiODZjNGVjODYwZmI1ZjEyMmM3ZDVjZGFlNmY1YTM1Li4zODgxZjA0OTkyMWIxM2Rk
M2ZiNjZmZTZkN2E1MmVjNzRhZjY4NTgzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9tb3ZlLW5vZGVzLWFjcm9zcy1kb2N1bWVudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9tb3ZlLW5vZGVzLWFjcm9zcy1kb2N1bWVudHMuaHRtbApAQCAtMTc5LDcgKzE3OSw3IEBA
IGZ1bmN0aW9uIHJ1bigpCiAgICAgcnVuVGVzdChmdW5jdGlvbigpIHsKICAgICAgICAgaWZyYW1l
RG9jLmFwcGVuZENoaWxkKGRvY3VtZW50LmRvY3R5cGUpOwogICAgICAgICBjb25zb2xlLmxvZyhk
b2N1bWVudC5kb2N0eXBlKTsKLSAgICB9LCAnTm90Rm91bmRFcnJvcicpOworICAgIH0sICdUeXBl
RXJyb3InKTsKIAogICAgIC8vIFdoZW4gc2V0dGluZyBhIGJvdW5kYXJ5IG9mIHRoZSByYW5nZSBp
biBhIGRpZmZlcmVudAogICAgIC8vIGRvY3VtZW50LCB0aGUgY2FsbCBzaG91bGQgc3VjY2VlZCBh
bmQgdGhlIHJhbmdlIHNob3VsZCBiZSBjb2xsYXBzZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9wcm9jZXNzaW5nLWluc3RydWN0aW9uLWFwcGVuZENoaWxkLWV4Y2VwdGlvbnMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvY2Vzc2luZy1pbnN0cnVjdGlv
bi1hcHBlbmRDaGlsZC1leGNlcHRpb25zLWV4cGVjdGVkLnR4dAppbmRleCA3YTEzODY4YTdiMmZm
ZmE2ZDI2NDJhYjYyMTcyMjdiMmRhYjkyZmI5Li4wZTNiZGYyMjZlMGM1YTY1OTE3MTIwNDVjMzU1
NWQ4MzZiY2NiYjJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm9jZXNzaW5n
LWluc3RydWN0aW9uLWFwcGVuZENoaWxkLWV4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3Byb2Nlc3NpbmctaW5zdHJ1Y3Rpb24tYXBwZW5kQ2hpbGQtZXhj
ZXB0aW9ucy1leHBlY3RlZC50eHQKQEAgLTMsNyArMyw3IEBAIFRlc3QgdGhhdCBhcHByb3ByaWF0
ZSBleGNlcHRpb25zIGFyZSB0aHJvd24gd2hlbiBhZGRpbmcgY2hpbGRyZW4gdG8gYSBQcm9jZXNz
aW5nCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBwaS5hcHBlbmRDaGlsZChu
dWxsKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4
Y2VwdGlvbiAzLgorUEFTUyBwaS5hcHBlbmRDaGlsZChudWxsKSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBUeXBlIGVycm9yLgogUEFTUyBwaS5hcHBlbmRDaGlsZChkaXYpIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMuCiBQQVNT
IHBpLmFwcGVuZENoaWxkKHRleHROb2RlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEhpZXJhcmNo
eVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvY2Vzc2luZy1pbnN0
cnVjdGlvbi1hcHBlbmRDaGlsZC1leGNlcHRpb25zLnhodG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vcHJvY2Vzc2luZy1pbnN0cnVjdGlvbi1hcHBlbmRDaGlsZC1leGNlcHRpb25zLnhodG1sCmlu
ZGV4IGIwMDI4OTljMjMyMDY3ZmMxNzMzZmE5MWVhZmUxMzE0MjJjNDk5NjAuLmM5MDJiYTRiMzU5
ODk3ZDkzOGJkNDlmODBiYzZmMjJjMjAxOTJmZDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3Byb2Nlc3NpbmctaW5zdHJ1Y3Rpb24tYXBwZW5kQ2hpbGQtZXhjZXB0aW9ucy54aHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm9jZXNzaW5nLWluc3RydWN0aW9uLWFwcGVu
ZENoaWxkLWV4Y2VwdGlvbnMueGh0bWwKQEAgLTUsNyArNSw3IEBACiA8IVtDREFUQVsKIGRlc2Ny
aXB0aW9uKCJUZXN0IHRoYXQgYXBwcm9wcmlhdGUgZXhjZXB0aW9ucyBhcmUgdGhyb3duIHdoZW4g
YWRkaW5nIGNoaWxkcmVuIHRvIGEgUHJvY2Vzc2luZ0luc3RydWN0aW9uLiIpOwogdmFyIHBpID0g
ZG9jdW1lbnQuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCd0YXJnZXQnLCAnZGF0YScpOwot
c2hvdWxkVGhyb3coInBpLmFwcGVuZENoaWxkKG51bGwpIiwgIidFcnJvcjogSGllcmFyY2h5UmVx
dWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMnIik7CitzaG91bGRUaHJvdygicGkuYXBwZW5kQ2hp
bGQobnVsbCkiLCAiJ1R5cGVFcnJvcjogVHlwZSBlcnJvciciKTsKIHZhciBkaXYgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKIHNob3VsZFRocm93KCJwaS5hcHBlbmRDaGlsZChkaXYp
IiwgIidFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMnIik7CiB2
YXIgdGV4dE5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnc29tZXRleHQnKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NldHRlci10eXBlLWVuZm9yY2VtZW50LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NldHRlci10eXBlLWVuZm9yY2VtZW50LWV4
cGVjdGVkLnR4dAppbmRleCBjN2FiOGUyYThkNTI1NjhjMjM2ZTMxZjdkMTU3Mzc1ZTc1MjU5YzIz
Li45MTcxMmQwOTU0YmZhOWM3OTUwZmZiNjVkN2U2YTI1YmU0NWUzMThkIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zZXR0ZXItdHlwZS1lbmZvcmNlbWVudC1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2V0dGVyLXR5cGUtZW5mb3JjZW1lbnQtZXhwZWN0
ZWQudHh0CkBAIC00LDcgKzQsNyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiAKIFBBU1Mg
ZG9jdW1lbnQuYm9keSA9IG5vZGVsaXN0OyB0aHJldyBleGNlcHRpb24gRXJyb3I6IEhpZXJhcmNo
eVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzLgotUEFTUyB0YWJsZS50SGVhZCA9IG5vZGVs
aXN0OyB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24g
OC4KK1BBU1MgdGFibGUudEhlYWQgPSBub2RlbGlzdDsgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogVGhlIEhUTUxUYWJsZUVsZW1lbnQudEhlYWQgYXR0cmlidXRlIG11c3QgYmUgYW4gaW5zdGFu
Y2Ugb2YgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3RpbWVyLWNsZWFyLWludGVydmFsLWluLWhhbmRsZXItYW5kLWdlbmVyYXRlLWVycm9yLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3RpbWVyLWNsZWFyLWludGVydmFsLWluLWhh
bmRsZXItYW5kLWdlbmVyYXRlLWVycm9yLWV4cGVjdGVkLnR4dAppbmRleCA5OWFhYzZhMDVkY2Fl
ODg2MzI2OWM2OWJiNmRjYjNhOTI5NGI2NDc3Li41ZjJmZDUxNDE3MDBjODMzMzQ4OWI1MGUxYTNk
MjIyYjI2OTQyNWEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS90aW1lci1jbGVh
ci1pbnRlcnZhbC1pbi1oYW5kbGVyLWFuZC1nZW5lcmF0ZS1lcnJvci1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vdGltZXItY2xlYXItaW50ZXJ2YWwtaW4taGFuZGxlci1h
bmQtZ2VuZXJhdGUtZXJyb3ItZXhwZWN0ZWQudHh0CkBAIC0xLDIgKzEsMiBAQAotQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDEwOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDg6IEFuIGF0dGVt
cHQgd2FzIG1hZGUgdG8gcmVmZXJlbmNlIGEgTm9kZSBpbiBhIGNvbnRleHQgd2hlcmUgaXQgZG9l
cyBub3QgZXhpc3QuCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA6IFR5cGVFcnJvcjogVHlwZSBl
cnJvcgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZW1vdmUtdGFyZ2V0
LXdpdGgtc2hhZG93LWluLWRyYWctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvcmVtb3ZlLXRhcmdldC13aXRoLXNoYWRvdy1pbi1kcmFnLWV4cGVjdGVkLnR4dAppbmRleCA0
NWMxMTlmZTliMzBjYWQyYTUwZjFkZmY4YzAxNzExOTIwNWFmZTdhLi4xMjg5NjRmNWZhNGFhYTgy
ZWM4OWFkZjdiZDIzZTNmODBlYTM5YjYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9yZW1vdmUtdGFyZ2V0LXdpdGgtc2hhZG93LWluLWRyYWctZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3JlbW92ZS10YXJnZXQtd2l0aC1zaGFkb3ctaW4tZHJh
Zy1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMzQ6
IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gODogQW4gYXR0ZW1wdCB3YXMgbWFkZSB0byBy
ZWZlcmVuY2UgYSBOb2RlIGluIGEgY29udGV4dCB3aGVyZSBpdCBkb2VzIG5vdCBleGlzdC4KLUNP
TlNPTEUgTUVTU0FHRTogbGluZSAzNDogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4OiBB
biBhdHRlbXB0IHdhcyBtYWRlIHRvIHJlZmVyZW5jZSBhIE5vZGUgaW4gYSBjb250ZXh0IHdoZXJl
IGl0IGRvZXMgbm90IGV4aXN0LgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM0OiBUeXBlRXJyb3I6
IFR5cGUgZXJyb3IKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAzNDogVHlwZUVycm9yOiBUeXBlIGVy
cm9yCiBQQVNTLiBEUlQgZGlkbid0IGNyYXNoLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9pbnNwZWN0b3Itc3VwcG9ydC91bmNhdWdodC1kb204LWV4Y2VwdGlvbi5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9pbnNwZWN0b3Itc3VwcG9ydC91bmNhdWdodC1kb204LWV4Y2VwdGlvbi5odG1s
CmluZGV4IGJjNjA4ZjRmYWUwNDkzNzA2YzliNzllNTEzN2JjZmU3ODM0MjI1ZGIuLjVmYTRlNWI4
YjY2NjYzOTQyMmQ1YjRhZDlhNjdmZWE2MmQ0ZWU5MGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvaW5zcGVjdG9yLXN1cHBvcnQvdW5jYXVnaHQtZG9tOC1leGNlcHRpb24uaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2luc3BlY3Rvci1zdXBwb3J0L3VuY2F1Z2h0LWRvbTgtZXhjZXB0
aW9uLmh0bWwKQEAgLTYsNyArNiw3IEBAIGZ1bmN0aW9uIG9ubG9hZCgpCiB7CiAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICBk
b2N1bWVudC5hcHBlbmRDaGlsZCgpOworICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQXR0cmlidXRl
Tm9kZShkb2N1bWVudC5jcmVhdGVBdHRyaWJ1dGUoImRvZXNOb3RFeGlzdCIpKTsKIH0KIAogPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0CmluZGV4
IGZkYjE5ODBhOGJjZmM0ZjkxZTVjYTZmOWQ1NmMwZDcxMmU0YTcwZWEuLmNmN2IyM2EyNzg5NGE5
Mjk2YWEzNTk2YzAyZWJkNjdkNDgyNDEwNzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2ludGVy
ZmFjZXMtZXhwZWN0ZWQudHh0CkBAIC02MzQsMjEgKzYzNCwxNSBAQCBGQUlMIE5vZGUgaW50ZXJm
YWNlOiBjYWxsaW5nIGlzRGVmYXVsdE5hbWVzcGFjZShET01TdHJpbmcpIG9uIHhtbERvYyB3aXRo
IHRvbyBmZQogICAgIFtuYXRpdmUgY29kZV0KIH0iIGRpZCBub3QgdGhyb3cKIFBBU1MgTm9kZSBp
bnRlcmZhY2U6IHhtbERvYyBtdXN0IGluaGVyaXQgcHJvcGVydHkgImluc2VydEJlZm9yZSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgKDQwKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5z
ZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24geG1sRG9jIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVz
dCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMg
ZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKK0ZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5z
ZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24geG1sRG9jIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVz
dCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMSBhcmd1bWVudHMg
ZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmpl
Y3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJv
ciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCit9IiB0aHJldyBv
YmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJI
aWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBl
RXJyb3IiKQogUEFTUyBOb2RlIGludGVyZmFjZTogeG1sRG9jIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAiYXBwZW5kQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MSkgCi1GQUlMIE5vZGUgaW50
ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIHhtbERvYyB3aXRoIHRvbyBmZXcg
YXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRo
IDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQot
fSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAo
Ik5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3Ii
KQorUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiB4bWxE
b2Mgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9k
ZSBpbnRlcmZhY2U6IHhtbERvYyBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlcGxhY2VDaGlsZCIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQyKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcg
cmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24geG1sRG9jIHdpdGggdG9vIGZldyBhcmd1bWVudHMg
bXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVu
dHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiBkaWQgbm90
IHRocm93CitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5v
ZGUpIG9uIHhtbERvYyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9y
IAogUEFTUyBOb2RlIGludGVyZmFjZTogeG1sRG9jIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVt
b3ZlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MykgCi1GQUlMIE5vZGUgaW50ZXJmYWNl
OiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIHhtbERvYyB3aXRoIHRvbyBmZXcgYXJndW1l
bnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJn
dW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhy
ZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZv
dW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFT
UyBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiB4bWxEb2Mgd2l0
aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgRXZlbnRUYXJn
ZXQgaW50ZXJmYWNlOiB4bWxEb2MgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhZGRFdmVudExpc3Rl
bmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMCkgCiBGQUlMIEV2ZW50VGFyZ2V0IGludGVyZmFj
ZTogY2FsbGluZyBhZGRFdmVudExpc3RlbmVyKERPTVN0cmluZyxFdmVudExpc3RlbmVyLGJvb2xl
YW4pIG9uIHhtbERvYyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9y
IGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlv
biAoKSB7CiAgICAgW25hdGl2ZSBjb2RlXQpAQCAtNzkzLDIxICs3ODcsMTUgQEAgRkFJTCBOb2Rl
IGludGVyZmFjZTogY2FsbGluZyBpc0RlZmF1bHROYW1lc3BhY2UoRE9NU3RyaW5nKSBvbiBkb2N1
bWVudC5jcmVhdGVEb2MKICAgICBbbmF0aXZlIGNvZGVdCiB9IiBkaWQgbm90IHRocm93CiBQQVNT
IE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJpbnNlcnRCZWZvcmUiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MCkg
Ci1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9u
IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRz
IG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1l
bnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CitGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5n
IGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21l
bnQoKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90
aHJvd3M6IENhbGxlZCB3aXRoIDEgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAg
ICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjog
RE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVF
cnJvciIgKCJUeXBlRXJyb3IiKQorfSIgZGlkIG5vdCB0aHJvdwogUEFTUyBOb2RlIGludGVyZmFj
ZTogZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAiYXBwZW5kQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MSkgCi1GQUlMIE5vZGUgaW50
ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZURvY3Vt
ZW50RnJhZ21lbnQoKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9y
IGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlv
biAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91
bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmpl
Y3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGlu
ZyBhcHBlbmRDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkg
d2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBp
bnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgInJlcGxhY2VDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQyKSAKLUZBSUwg
Tm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24gZG9jdW1l
bnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0
aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVu
Y3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiBkaWQgbm90IHRocm93
CitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9u
IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRz
IG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuY3Jl
YXRlRG9jdW1lbnRGcmFnbWVudCgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVtb3ZlQ2hpbGQi
IHdpdGggdGhlIHByb3BlciB0eXBlICg0MykgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5n
IHJlbW92ZUNoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSB3
aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6
IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25h
dGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4
Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIg
KCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChO
b2RlKSBvbiBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkgd2l0aCB0b28gZmV3IGFy
Z3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgRXZlbnRUYXJnZXQgaW50ZXJmYWNl
OiBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJhZGRFdmVudExpc3RlbmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMCkgCiBGQUlMIEV2ZW50
VGFyZ2V0IGludGVyZmFjZTogY2FsbGluZyBhZGRFdmVudExpc3RlbmVyKERPTVN0cmluZyxFdmVu
dExpc3RlbmVyLGJvb2xlYW4pIG9uIGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSB3
aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6
IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAgICAgW25h
dGl2ZSBjb2RlXQpAQCAtOTE1LDIxICs5MDMsMTUgQEAgRkFJTCBOb2RlIGludGVyZmFjZTogY2Fs
bGluZyBpc0RlZmF1bHROYW1lc3BhY2UoRE9NU3RyaW5nKSBvbiBkb2N1bWVudC5kb2N0eXBlIHcK
ICAgICBbbmF0aXZlIGNvZGVdCiB9IiBkaWQgbm90IHRocm93CiBQQVNTIE5vZGUgaW50ZXJmYWNl
OiBkb2N1bWVudC5kb2N0eXBlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5zZXJ0QmVmb3JlIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDApIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBp
bnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5kb2N0eXBlIHdpdGggdG9vIGZldyBh
cmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGgg
MCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKK0ZBSUwgTm9kZSBpbnRlcmZhY2U6
IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuZG9jdHlwZSB3aXRo
IHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENh
bGxlZCB3aXRoIDEgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAgICAgW25hdGl2
ZSBjb2RlXQogfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBE
T00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0
ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50
LmRvY3R5cGUgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhcHBlbmRDaGlsZCIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgKDQxKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQo
Tm9kZSkgb24gZG9jdW1lbnQuZG9jdHlwZSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhy
b3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0
aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJF
cnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5
UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikK
K1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24gZG9jdW1l
bnQuZG9jdHlwZSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAog
UEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuZG9jdHlwZSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgInJlcGxhY2VDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQyKSAKLUZBSUwgTm9kZSBp
bnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuZG9j
dHlwZSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90
aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0g
ICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVz
dEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0
ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6
IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuZG9jdHlwZSB3aXRo
IHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGludGVy
ZmFjZTogZG9jdW1lbnQuZG9jdHlwZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlbW92ZUNoaWxk
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDMpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGlu
ZyByZW1vdmVDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5kb2N0eXBlIHdpdGggdG9vIGZldyBhcmd1
bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBh
cmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0
aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90
Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQ
QVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIGRvY3VtZW50
LmRvY3R5cGUgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBB
U1MgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBkb2N1bWVudC5kb2N0eXBlIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAiYWRkRXZlbnRMaXN0ZW5lciIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDApIAogRkFJ
TCBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGNhbGxpbmcgYWRkRXZlbnRMaXN0ZW5lcihET01TdHJp
bmcsRXZlbnRMaXN0ZW5lcixib29sZWFuKSBvbiBkb2N1bWVudC5kb2N0eXBlIHdpdGggdG9vIGZl
dyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdp
dGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVd
CkBAIC0xMTg3LDIxICsxMTY5LDE1IEBAIEZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaXNE
ZWZhdWx0TmFtZXNwYWNlKERPTVN0cmluZykgb24gZWxlbWVudCB3aXRoIHRvbyBmCiAgICAgW25h
dGl2ZSBjb2RlXQogfSIgZGlkIG5vdCB0aHJvdwogUEFTUyBOb2RlIGludGVyZmFjZTogZWxlbWVu
dCBtdXN0IGluaGVyaXQgcHJvcGVydHkgImluc2VydEJlZm9yZSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgKDQwKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUs
Tm9kZSkgb24gZWxlbWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVy
cm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5j
dGlvbiAoKSB7CitGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2Rl
LE5vZGUpIG9uIGVsZW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVF
cnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAxIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVu
Y3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5v
dEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQg
b2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK30iIGRpZCBub3QgdGhyb3cKIFBBU1Mg
Tm9kZSBpbnRlcmZhY2U6IGVsZW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhcHBlbmRDaGls
ZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQxKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxp
bmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24gZWxlbWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11
c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRz
IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2Jq
ZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJy
b3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2Rl
IGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiBlbGVtZW50IHdpdGggdG9v
IGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNl
OiBlbGVtZW50IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVwbGFjZUNoaWxkIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAoNDIpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hp
bGQoTm9kZSxOb2RlKSBvbiBlbGVtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rp
b24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiBkaWQgbm90IHRocm93CitQ
QVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIGVs
ZW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1Mg
Tm9kZSBpbnRlcmZhY2U6IGVsZW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZW1vdmVDaGls
ZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQzKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxp
bmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24gZWxlbWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11
c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRz
IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2Jq
ZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJy
b3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2Rl
IGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiBlbGVtZW50IHdpdGggdG9v
IGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIEV2ZW50VGFyZ2V0IGlu
dGVyZmFjZTogZWxlbWVudCBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFkZEV2ZW50TGlzdGVuZXIi
IHdpdGggdGhlIHByb3BlciB0eXBlICgwKSAKIEZBSUwgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBj
YWxsaW5nIGFkZEV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nLEV2ZW50TGlzdGVuZXIsYm9vbGVhbikg
b24gZWxlbWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFz
c2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAo
KSB7CiAgICAgW25hdGl2ZSBjb2RlXQpAQCAtMTQwOSwyMSArMTM4NSwxNSBAQCBGQUlMIE5vZGUg
aW50ZXJmYWNlOiBjYWxsaW5nIGlzRGVmYXVsdE5hbWVzcGFjZShET01TdHJpbmcpIG9uIGRvY3Vt
ZW50LmNyZWF0ZVRleAogICAgIFtuYXRpdmUgY29kZV0KIH0iIGRpZCBub3QgdGhyb3cKIFBBU1Mg
Tm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhYmMiKSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgImluc2VydEJlZm9yZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQwKSAKLUZB
SUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24gZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoImFiYyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0
aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVu
Y3Rpb24gImZ1bmN0aW9uICgpIHsKK0ZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0
QmVmb3JlKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoImFiYyIpIHdpdGgg
dG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2Fs
bGVkIHdpdGggMSBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZl
IGNvZGVdCiB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERP
TSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3Qg
IlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUoImFiYyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXBwZW5kQ2hpbGQi
IHdpdGggdGhlIHByb3BlciB0eXBlICg0MSkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5n
IGFwcGVuZENoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhYmMiKSB3aXRo
IHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENh
bGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2
ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBE
T00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0
ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcg
YXBwZW5kQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoImFiYyIpIHdpdGgg
dG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJm
YWNlOiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJyZXBsYWNlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MikgCi1GQUlMIE5vZGUgaW50
ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVy
cm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5j
dGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGll
cmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVy
cm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9k
ZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUoImFiYyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBU
eXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgi
YWJjIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZW1vdmVDaGlsZCIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgKDQzKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9k
ZSkgb24gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoImFiYyIpIHdpdGggdG9vIGZldyBhcmd1bWVu
dHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1
bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJl
dyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91
bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNT
IE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlw
ZUVycm9yIAogUEFTUyBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKCJhYmMiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFkZEV2ZW50TGlzdGVuZXIiIHdpdGgg
dGhlIHByb3BlciB0eXBlICgwKSAKIEZBSUwgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBjYWxsaW5n
IGFkZEV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nLEV2ZW50TGlzdGVuZXIsYm9vbGVhbikgb24gZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoImFiYyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0
aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVu
Y3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCkBAIC0xNTQzLDIxICsxNTEz
LDE1IEBAIEZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaXNEZWZhdWx0TmFtZXNwYWNlKERP
TVN0cmluZykgb24geG1sRG9jLmNyZWF0ZVByb2NlCiAgICAgW25hdGl2ZSBjb2RlXQogfSIgZGlk
IG5vdCB0aHJvdwogUEFTUyBOb2RlIGludGVyZmFjZTogeG1sRG9jLmNyZWF0ZVByb2Nlc3NpbmdJ
bnN0cnVjdGlvbigiYWJjIiwgImRlZiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5zZXJ0QmVm
b3JlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDApIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2Fs
bGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBvbiB4bWxEb2MuY3JlYXRlUHJvY2Vzc2luZ0lu
c3RydWN0aW9uKCJhYmMiLCAiZGVmIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93
IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlv
biAiZnVuY3Rpb24gKCkgeworRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZv
cmUoTm9kZSxOb2RlKSBvbiB4bWxEb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJhYmMi
LCAiZGVmIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3Nl
cnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAxIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkg
ewogICAgIFtuYXRpdmUgY29kZV0KIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJl
cXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4
cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCiBQQVNTIE5vZGUgaW50ZXJm
YWNlOiB4bWxEb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJhYmMiLCAiZGVmIikgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJhcHBlbmRDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQx
KSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24geG1s
RG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiYWJjIiwgImRlZiIpIHdpdGggdG9vIGZl
dyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdp
dGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVd
Ci19IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNl
cHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVF
cnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRD
aGlsZChOb2RlKSBvbiB4bWxEb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJhYmMiLCAi
ZGVmIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1Mg
Tm9kZSBpbnRlcmZhY2U6IHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oImFiYyIs
ICJkZWYiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlcGxhY2VDaGlsZCIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgKDQyKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxk
KE5vZGUsTm9kZSkgb24geG1sRG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiYWJjIiwg
ImRlZiIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0
X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsK
LSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1
ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBl
Y3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFj
ZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiB4bWxEb2MuY3JlYXRlUHJvY2Vz
c2luZ0luc3RydWN0aW9uKCJhYmMiLCAiZGVmIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0
IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IHhtbERvYy5jcmVhdGVQcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24oImFiYyIsICJkZWYiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJl
bW92ZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDMpIAotRkFJTCBOb2RlIGludGVyZmFj
ZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiB4bWxEb2MuY3JlYXRlUHJvY2Vzc2luZ0lu
c3RydWN0aW9uKCJhYmMiLCAiZGVmIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93
IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlv
biAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJy
b3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhw
ZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZh
Y2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24geG1sRG9jLmNyZWF0ZVByb2Nlc3NpbmdJ
bnN0cnVjdGlvbigiYWJjIiwgImRlZiIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgCiBQQVNTIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogeG1sRG9jLmNyZWF0ZVBy
b2Nlc3NpbmdJbnN0cnVjdGlvbigiYWJjIiwgImRlZiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
YWRkRXZlbnRMaXN0ZW5lciIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDApIAogRkFJTCBFdmVudFRh
cmdldCBpbnRlcmZhY2U6IGNhbGxpbmcgYWRkRXZlbnRMaXN0ZW5lcihET01TdHJpbmcsRXZlbnRM
aXN0ZW5lcixib29sZWFuKSBvbiB4bWxEb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJh
YmMiLCAiZGVmIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBh
c3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24g
KCkgewogICAgIFtuYXRpdmUgY29kZV0KQEAgLTE2NzMsMjEgKzE2MzcsMTUgQEAgRkFJTCBOb2Rl
IGludGVyZmFjZTogY2FsbGluZyBpc0RlZmF1bHROYW1lc3BhY2UoRE9NU3RyaW5nKSBvbiBkb2N1
bWVudC5jcmVhdGVDb20KICAgICBbbmF0aXZlIGNvZGVdCiB9IiBkaWQgbm90IHRocm93CiBQQVNT
IE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVDb21tZW50KCJhYmMiKSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgImluc2VydEJlZm9yZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQwKSAKLUZB
SUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24gZG9j
dW1lbnQuY3JlYXRlQ29tbWVudCgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRo
cm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5j
dGlvbiAiZnVuY3Rpb24gKCkgeworRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRC
ZWZvcmUoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVDb21tZW50KCJhYmMiKSB3aXRoIHRv
byBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxl
ZCB3aXRoIDEgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAgICAgW25hdGl2ZSBj
b2RlXQogfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00g
RXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJU
eXBlRXJyb3IiICgiVHlwZUVycm9yIikKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNy
ZWF0ZUNvbW1lbnQoImFiYyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXBwZW5kQ2hpbGQiIHdp
dGggdGhlIHByb3BlciB0eXBlICg0MSkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFw
cGVuZENoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIpIHdpdGggdG9v
IGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVk
IHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNv
ZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBF
eGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5
cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBl
bmRDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVDb21tZW50KCJhYmMiKSB3aXRoIHRvbyBm
ZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGludGVyZmFjZTog
ZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiYWJjIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZXBs
YWNlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MikgCi1GQUlMIE5vZGUgaW50ZXJmYWNl
OiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUNvbW1l
bnQoImFiYyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNz
ZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgp
IHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlS
ZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBl
eHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVy
ZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVD
b21tZW50KCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9y
IAogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiYWJjIikgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJyZW1vdmVDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQz
KSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24gZG9j
dW1lbnQuY3JlYXRlQ29tbWVudCgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRo
cm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5j
dGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAi
RXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikg
ZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRl
cmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlQ29tbWVu
dCgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBB
U1MgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVDb21tZW50KCJhYmMiKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgImFkZEV2ZW50TGlzdGVuZXIiIHdpdGggdGhlIHByb3BlciB0
eXBlICgwKSAKIEZBSUwgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBjYWxsaW5nIGFkZEV2ZW50TGlz
dGVuZXIoRE9NU3RyaW5nLEV2ZW50TGlzdGVuZXIsYm9vbGVhbikgb24gZG9jdW1lbnQuY3JlYXRl
Q29tbWVudCgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJv
ciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rp
b24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtYXBwZW5kQ2hpbGQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9k
b20vbm9kZXMvTm9kZS1hcHBlbmRDaGlsZC1leHBlY3RlZC50eHQKaW5kZXggM2EyODllODMyZTZh
MmQ5NDg5MGMwMjRhNTYxNDk2OGMwMTQ1OTNiZC4uYjEzMGNhZmZkODQ4Mjc2NGY3MGMzNDAzZTRm
MDgwMjg5YTJhOTBlMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1hcHBlbmRDaGlsZC1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMv
Tm9kZS1hcHBlbmRDaGlsZC1leHBlY3RlZC50eHQKQEAgLTEsMTIgKzEsMTIgQEAKIAogCi1GQUlM
IFdlYklETCB0ZXN0cyBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKG51bGwpIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZv
dW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2Jq
ZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgV2ViSURMIHRlc3RzIAogUEFTUyBB
cHBlbmRpbmcgdG8gYSBsZWFmIG5vZGUuIAotRkFJTCBBcHBlbmRpbmcgbnVsbCB0byBhIHRleHQg
bm9kZSBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyBub2RlLmFwcGVuZENo
aWxkKG51bGwpIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjog
RE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVj
dCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIEFwcGVuZGluZyBudWxsIHRvIGEgdGV4
dCBub2RlIAogUEFTUyBBcHBlbmRpbmcgdG8gYSB0ZXh0IG5vZGUgCi1GQUlMIEFwcGVuZGluZyBu
dWxsIHRvIGEgY29tbWVudCBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyBu
b2RlLmFwcGVuZENoaWxkKG51bGwpIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJl
cXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4
cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIEFwcGVuZGluZyBu
dWxsIHRvIGEgY29tbWVudCAKIFBBU1MgQXBwZW5kaW5nIHRvIGEgY29tbWVudCAKLUZBSUwgQXBw
ZW5kaW5nIG51bGwgdG8gYSBkb2N0eXBlIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlv
biAoKSB7IG5vZGUuYXBwZW5kQ2hpbGQobnVsbCkgfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGll
cmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVy
cm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgQXBw
ZW5kaW5nIG51bGwgdG8gYSBkb2N0eXBlIAogUEFTUyBBcHBlbmRpbmcgdG8gYSBkb2N0eXBlIAog
UEFTUyBBcHBlbmRpbmcgYSBkb2N1bWVudCAKIFBBU1MgQWRvcHRpbmcgYW4gb3JwaGFuIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20v
bm9kZXMvTm9kZS1pbnNlcnRCZWZvcmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1pbnNlcnRCZWZvcmUtZXhw
ZWN0ZWQudHh0CmluZGV4IDU2YmNkMmE4MGJiMzRkMzdhYzA4NGY3NzQxNjRmMDFjZmJlOTRhNzgu
LmM2NjIyMzNkYzA1NjM4NTdmMjNiNjA2OTAzNGFjOGY3NWI4Y2VhNmMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUt
aW5zZXJ0QmVmb3JlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLWluc2VydEJlZm9yZS1leHBlY3RlZC50
eHQKQEAgLTEsMTIgKzEsMTIgQEAKIAotRkFJTCBDYWxsaW5nIGluc2VydEJlZm9yZSB3aXRoIGEg
bm9uLU5vZGUgZmlyc3QgYXJndW1lbnQgbXVzdCB0aHJvdyBUeXBlRXJyb3IuIGFzc2VydF90aHJv
d3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IGRvY3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKG51
bGwsIG51bGwpIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNl
cHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgi
VHlwZUVycm9yIikKLUZBSUwgQ2FsbGluZyBpbnNlcnRCZWZvcmUgd2l0aCBhIG5vbi1Ob2RlIGZp
cnN0IGFyZ3VtZW50IG9uIGEgbGVhZiBub2RlIERvY3VtZW50VHlwZSBtdXN0IHRocm93IFR5cGVF
cnJvci4gYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgbm9kZS5pbnNlcnRC
ZWZvcmUobnVsbCwgbnVsbCkgfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVz
dEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0
ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgQ2FsbGluZyBpbnNlcnRC
ZWZvcmUgd2l0aCBhIG5vbi1Ob2RlIGZpcnN0IGFyZ3VtZW50IG11c3QgdGhyb3cgVHlwZUVycm9y
LiAKK1BBU1MgQ2FsbGluZyBpbnNlcnRCZWZvcmUgd2l0aCBhIG5vbi1Ob2RlIGZpcnN0IGFyZ3Vt
ZW50IG9uIGEgbGVhZiBub2RlIERvY3VtZW50VHlwZSBtdXN0IHRocm93IFR5cGVFcnJvci4gCiBQ
QVNTIENhbGxpbmcgaW5zZXJ0QmVmb3JlIGFuIGEgbGVhZiBub2RlIERvY3VtZW50VHlwZSBtdXN0
IHRocm93IEhJRVJBUkNIWV9SRVFVRVNUX0VSUi4gCi1GQUlMIENhbGxpbmcgaW5zZXJ0QmVmb3Jl
IHdpdGggYSBub24tTm9kZSBmaXJzdCBhcmd1bWVudCBvbiBhIGxlYWYgbm9kZSBUZXh0IG11c3Qg
dGhyb3cgVHlwZUVycm9yLiBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyBu
b2RlLmluc2VydEJlZm9yZShudWxsLCBudWxsKSB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVy
YXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJy
b3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBDYWxs
aW5nIGluc2VydEJlZm9yZSB3aXRoIGEgbm9uLU5vZGUgZmlyc3QgYXJndW1lbnQgb24gYSBsZWFm
IG5vZGUgVGV4dCBtdXN0IHRocm93IFR5cGVFcnJvci4gCiBQQVNTIENhbGxpbmcgaW5zZXJ0QmVm
b3JlIGFuIGEgbGVhZiBub2RlIFRleHQgbXVzdCB0aHJvdyBISUVSQVJDSFlfUkVRVUVTVF9FUlIu
IAotRkFJTCBDYWxsaW5nIGluc2VydEJlZm9yZSB3aXRoIGEgbm9uLU5vZGUgZmlyc3QgYXJndW1l
bnQgb24gYSBsZWFmIG5vZGUgQ29tbWVudCBtdXN0IHRocm93IFR5cGVFcnJvci4gYXNzZXJ0X3Ro
cm93czogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgbm9kZS5pbnNlcnRCZWZvcmUobnVsbCwgbnVs
bCkgfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhj
ZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBl
RXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgQ2FsbGluZyBpbnNlcnRCZWZvcmUgd2l0aCBhIG5v
bi1Ob2RlIGZpcnN0IGFyZ3VtZW50IG9uIGEgbGVhZiBub2RlIENvbW1lbnQgbXVzdCB0aHJvdyBU
eXBlRXJyb3IuIAogUEFTUyBDYWxsaW5nIGluc2VydEJlZm9yZSBhbiBhIGxlYWYgbm9kZSBDb21t
ZW50IG11c3QgdGhyb3cgSElFUkFSQ0hZX1JFUVVFU1RfRVJSLiAKLUZBSUwgQ2FsbGluZyBpbnNl
cnRCZWZvcmUgd2l0aCBhIG5vbi1Ob2RlIGZpcnN0IGFyZ3VtZW50IG9uIGEgbGVhZiBub2RlIFBy
b2Nlc3NpbmdJbnN0cnVjdGlvbiBtdXN0IHRocm93IFR5cGVFcnJvci4gYXNzZXJ0X3Rocm93czog
ZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgbm9kZS5pbnNlcnRCZWZvcmUobnVsbCwgbnVsbCkgfSIg
dGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9u
IDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3Ii
ICgiVHlwZUVycm9yIikKK1BBU1MgQ2FsbGluZyBpbnNlcnRCZWZvcmUgd2l0aCBhIG5vbi1Ob2Rl
IGZpcnN0IGFyZ3VtZW50IG9uIGEgbGVhZiBub2RlIFByb2Nlc3NpbmdJbnN0cnVjdGlvbiBtdXN0
IHRocm93IFR5cGVFcnJvci4gCiBQQVNTIENhbGxpbmcgaW5zZXJ0QmVmb3JlIGFuIGEgbGVhZiBu
b2RlIFByb2Nlc3NpbmdJbnN0cnVjdGlvbiBtdXN0IHRocm93IEhJRVJBUkNIWV9SRVFVRVNUX0VS
Ui4gCiBQQVNTIENhbGxpbmcgaW5zZXJ0QmVmb3JlIHdpdGggYW4gaW5jbHVzaXZlIGFuY2VzdG9y
IG9mIHRoZSBjb250ZXh0IG9iamVjdCBtdXN0IHRocm93IEhJRVJBUkNIWV9SRVFVRVNUX0VSUi4g
CiBQQVNTIENhbGxpbmcgaW5zZXJ0QmVmb3JlIHdpdGggYSByZWZlcmVuY2UgY2hpbGQgd2hvc2Ug
cGFyZW50IGlzIG5vdCB0aGUgY29udGV4dCBub2RlIG11c3QgdGhyb3cgYSBOb3RGb3VuZEVycm9y
LiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZG9tL25vZGVzL05vZGUtcmVtb3ZlQ2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1yZW1vdmVDaGls
ZC1leHBlY3RlZC50eHQKaW5kZXggMDI5MTBiZjljZDI0MGEwY2RkODNjZjEzNzYwYzQ1NjBkZmQ5
NDNhMi4uMTM5N2M0ZWJlZjZjOTc4ZTEwM2FiMzFhMzgxNmY5MmRlZGMzZWY1OSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMv
Tm9kZS1yZW1vdmVDaGlsZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1yZW1vdmVDaGlsZC1leHBlY3Rl
ZC50eHQKQEAgLTI3LDUgKzI3LDUgQEAgUEFTUyBDYWxsaW5nIHJlbW92ZUNoaWxkIG9uIGEgdGV4
dCBmcm9tIGEgc3ludGhldGljIGRvY3VtZW50IHdpdGggbm8gY2hpbGRyZW4gc2gKIFBBU1MgUGFz
c2luZyBhIGRldGFjaGVkIGNvbW1lbnQgZnJvbSBhIHN5bnRoZXRpYyBkb2N1bWVudCB0byByZW1v
dmVDaGlsZCBzaG91bGQgbm90IGFmZmVjdCBpdC4gCiBQQVNTIFBhc3NpbmcgYSBub24tZGV0YWNo
ZWQgY29tbWVudCBmcm9tIGEgc3ludGhldGljIGRvY3VtZW50IHRvIHJlbW92ZUNoaWxkIHNob3Vs
ZCBub3QgYWZmZWN0IGl0LiAKIFBBU1MgQ2FsbGluZyByZW1vdmVDaGlsZCBvbiBhIGNvbW1lbnQg
ZnJvbSBhIHN5bnRoZXRpYyBkb2N1bWVudCB3aXRoIG5vIGNoaWxkcmVuIHNob3VsZCB0aHJvdyBO
T1RfRk9VTkRfRVJSLiAKLUZBSUwgUGFzc2luZyBhIHZhbHVlIHRoYXQgaXMgbm90IGEgTm9kZSBy
ZWZlcmVuY2UgdG8gcmVtb3ZlQ2hpbGQgc2hvdWxkIHRocm93IFR5cGVFcnJvci4gYXNzZXJ0X3Ro
cm93czogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChu
dWxsKSB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9u
IDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVF
cnJvciIpCitQQVNTIFBhc3NpbmcgYSB2YWx1ZSB0aGF0IGlzIG5vdCBhIE5vZGUgcmVmZXJlbmNl
IHRvIHJlbW92ZUNoaWxkIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuIAogYgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9k
ZS1yZXBsYWNlQ2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1yZXBsYWNlQ2hpbGQtZXhwZWN0ZWQudHh0
CmluZGV4IGU3ZjcwZmEzNmM1YzFjYmY5MmM3ZTRiN2E0OWZiZjhhZGNiYzRmNmQuLmQxN2M4YjU3
MGViMTIxZTk2NzM2YTljNjk0ZmIyNWYxODFhYWZjYzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtcmVwbGFjZUNo
aWxkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLXJlcGxhY2VDaGlsZC1leHBlY3RlZC50eHQKQEAgLTEs
NyArMSw1IEBACiAKLUZBSUwgUGFzc2luZyBudWxsIHRvIHJlcGxhY2VDaGlsZCBzaG91bGQgdGhy
b3cgYSBUeXBlRXJyb3IuIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0g
ICAgYS5yZXBsYWNlQ2hpbGQobnVsbCwgbnVsbCk7Ci0gIH0iIGRpZCBub3QgdGhyb3cKK1BBU1Mg
UGFzc2luZyBudWxsIHRvIHJlcGxhY2VDaGlsZCBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3IuIAog
RkFJTCBJZiBjaGlsZCdzIHBhcmVudCBpcyBub3QgdGhlIGNvbnRleHQgbm9kZSwgYSBOb3RGb3Vu
ZEVycm9yIGV4Y2VwdGlvbiBzaG91bGQgYmUgdGhyb3duIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9u
ICJmdW5jdGlvbiAoKSB7CiAgICAgYS5yZXBsYWNlQ2hpbGQoYSwgYyk7CiAgIH0iIHRocmV3IG9i
amVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiB0aGF0
IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBOb3RGb3VuZEVycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMg
ZXF1YWwgdG8gMywgZXhwZWN0ZWQgOApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vaW50
ZXJmYWNlcy1leHBlY3RlZC50eHQKaW5kZXggMmU1OGFlNjM1MTlhNzU1MzdlZGQyZDg5NzQxMGYy
MjU2MDBjMzZjNi4uMDQ2MjIwMzU5YWExMDg4ZTk5NTA2MTBiMWYxNDc0NmUyYmUxZDY3YyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0CkBA
IC0xMjI1LDIxICsxMjI1LDE1IEBAIEZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaXNEZWZh
dWx0TmFtZXNwYWNlKERPTVN0cmluZykgb24gaWZyYW1lLmNvbnRlbnREb2N1CiAgICAgW25hdGl2
ZSBjb2RlXQogfSIgZGlkIG5vdCB0aHJvdwogUEFTUyBOb2RlIGludGVyZmFjZTogaWZyYW1lLmNv
bnRlbnREb2N1bWVudCBtdXN0IGluaGVyaXQgcHJvcGVydHkgImluc2VydEJlZm9yZSIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgKDQwKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0
QmVmb3JlKE5vZGUsTm9kZSkgb24gaWZyYW1lLmNvbnRlbnREb2N1bWVudCB3aXRoIHRvbyBmZXcg
YXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRo
IDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CitGQUlMIE5vZGUgaW50ZXJmYWNl
OiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGlmcmFtZS5jb250ZW50RG9jdW1l
bnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhy
b3dzOiBDYWxsZWQgd2l0aCAxIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAg
IFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERP
TSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJy
b3IiICgiVHlwZUVycm9yIikKK30iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVl
c3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVj
dGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCiBQQVNTIE5vZGUgaW50ZXJmYWNl
OiBpZnJhbWUuY29udGVudERvY3VtZW50IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXBwZW5kQ2hp
bGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MSkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxs
aW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGlmcmFtZS5jb250ZW50RG9jdW1lbnQgd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQg
d2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29k
ZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24g
OCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVy
cm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24g
aWZyYW1lLmNvbnRlbnREb2N1bWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cg
VHlwZUVycm9yIAogUEFTUyBOb2RlIGludGVyZmFjZTogaWZyYW1lLmNvbnRlbnREb2N1bWVudCBt
dXN0IGluaGVyaXQgcHJvcGVydHkgInJlcGxhY2VDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
KDQyKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9k
ZSkgb24gaWZyYW1lLmNvbnRlbnREb2N1bWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3Qg
dGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1
bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgZGlkIG5vdCB0aHJv
dworUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBv
biBpZnJhbWUuY29udGVudERvY3VtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBpZnJhbWUuY29udGVudERvY3VtZW50
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVtb3ZlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBl
ICg0MykgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9u
IGlmcmFtZS5jb250ZW50RG9jdW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93
IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlv
biAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJy
b3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhw
ZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZh
Y2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24gaWZyYW1lLmNvbnRlbnREb2N1bWVudCB3
aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBFdmVudFRh
cmdldCBpbnRlcmZhY2U6IGlmcmFtZS5jb250ZW50RG9jdW1lbnQgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJhZGRFdmVudExpc3RlbmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMCkgCiBGQUlMIEV2
ZW50VGFyZ2V0IGludGVyZmFjZTogY2FsbGluZyBhZGRFdmVudExpc3RlbmVyKERPTVN0cmluZyxF
dmVudExpc3RlbmVyLGJvb2xlYW4pIG9uIGlmcmFtZS5jb250ZW50RG9jdW1lbnQgd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQg
d2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29k
ZV0KQEAgLTE1NTEsMjEgKzE1NDUsMTUgQEAgRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBp
c0RlZmF1bHROYW1lc3BhY2UoRE9NU3RyaW5nKSBvbiBkb2N1bWVudC5pbXBsZW1lbnQKICAgICBb
bmF0aXZlIGNvZGVdCiB9IiBkaWQgbm90IHRocm93CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1
bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudChudWxsLCAiIiwgbnVsbCkgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJpbnNlcnRCZWZvcmUiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MCkg
Ci1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9u
IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSB3
aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6
IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CitGQUlMIE5v
ZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGRvY3VtZW50
LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSB3aXRoIHRvbyBm
ZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3
aXRoIDEgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAgICAgW25hdGl2ZSBjb2Rl
XQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4
IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJy
b3IiKQorfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00g
RXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJU
eXBlRXJyb3IiICgiVHlwZUVycm9yIikKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50Lmlt
cGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgImFwcGVuZENoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDEpIAotRkFJTCBO
b2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5pbXBs
ZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudChudWxsLCAiIiwgbnVsbCkgd2l0aCB0b28gZmV3IGFy
Z3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAw
IGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0i
IHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJO
b3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikK
K1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24gZG9jdW1l
bnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwgIiIsIG51bGwpIHdpdGggdG9v
IGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNl
OiBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudChudWxsLCAiIiwgbnVsbCkg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZXBsYWNlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBl
ICg0MikgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5v
ZGUpIG9uIGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KG51bGwsICIiLCBu
dWxsKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90
aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0g
ICAgW25hdGl2ZSBjb2RlXQotfSIgZGlkIG5vdCB0aHJvdworUEFTUyBOb2RlIGludGVyZmFjZTog
Y2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5pbXBsZW1lbnRhdGlv
bi5jcmVhdGVEb2N1bWVudChudWxsLCAiIiwgbnVsbCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBt
dXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmltcGxl
bWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgInJlbW92ZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDMpIAotRkFJTCBOb2Rl
IGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5pbXBsZW1l
bnRhdGlvbi5jcmVhdGVEb2N1bWVudChudWxsLCAiIiwgbnVsbCkgd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFy
Z3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRo
cmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RG
b3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BB
U1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQu
aW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwgIiIsIG51bGwpIHdpdGggdG9vIGZl
dyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIEV2ZW50VGFyZ2V0IGludGVy
ZmFjZTogZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwgIiIsIG51
bGwpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYWRkRXZlbnRMaXN0ZW5lciIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgKDApIAogRkFJTCBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGNhbGxpbmcgYWRkRXZl
bnRMaXN0ZW5lcihET01TdHJpbmcsRXZlbnRMaXN0ZW5lcixib29sZWFuKSBvbiBkb2N1bWVudC5p
bXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudChudWxsLCAiIiwgbnVsbCkgd2l0aCB0b28gZmV3
IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0
aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0K
QEAgLTIxNzEsMjEgKzIxNTksMTUgQEAgRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpc0Rl
ZmF1bHROYW1lc3BhY2UoRE9NU3RyaW5nKSBvbiBkb2N1bWVudC5jcmVhdGVFbGUKICAgICBbbmF0
aXZlIGNvZGVdCiB9IiBkaWQgbm90IHRocm93CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJub3NjcmlwdCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5zZXJ0
QmVmb3JlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDApIAotRkFJTCBOb2RlIGludGVyZmFjZTog
Y2FsbGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJub3NjcmlwdCIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3Ig
YXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9u
ICgpIHsKK0ZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9k
ZSkgb24gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibm9zY3JpcHQiKSB3aXRoIHRvbyBmZXcgYXJn
dW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDEg
YXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAgICAgW25hdGl2ZSBjb2RlXQotfSIg
dGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5v
dEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQor
fSIgZGlkIG5vdCB0aHJvdwogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgibm9zY3JpcHQiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFwcGVuZENoaWxkIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAoNDEpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBl
bmRDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJub3NjcmlwdCIpIHdpdGgg
dG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2Fs
bGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZl
IGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0
aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5
cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUp
IG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm5vc2NyaXB0Iikgd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoIm5vc2NyaXB0IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZXBsYWNl
Q2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MikgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBj
YWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
Im5vc2NyaXB0Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBh
c3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24g
KCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIGRpZCBub3QgdGhyb3cKK1BBU1MgTm9kZSBpbnRl
cmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgibm9zY3JpcHQiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlw
ZUVycm9yIAogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibm9z
Y3JpcHQiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlbW92ZUNoaWxkIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAoNDMpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChO
b2RlKSBvbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJub3NjcmlwdCIpIHdpdGggdG9vIGZldyBh
cmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGgg
MCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19
IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgi
Tm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIp
CitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoIm5vc2NyaXB0Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0
IHRocm93IFR5cGVFcnJvciAKIFBBU1MgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJub3NjcmlwdCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYWRkRXZlbnRM
aXN0ZW5lciIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDApIAogRkFJTCBFdmVudFRhcmdldCBpbnRl
cmZhY2U6IGNhbGxpbmcgYWRkRXZlbnRMaXN0ZW5lcihET01TdHJpbmcsRXZlbnRMaXN0ZW5lcixi
b29sZWFuKSBvbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJub3NjcmlwdCIpIHdpdGggdG9vIGZl
dyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdp
dGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVd
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vZG90LW5vZGUtYmFzZS1leGNlcHRpb24t
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL2RvdC1ub2RlLWJhc2UtZXhjZXB0aW9u
LWV4cGVjdGVkLnR4dAppbmRleCBmNDQwNmNiZmVkMzYxZDY3YjljNTZlNzViMTllMTgzMjhhYjNi
Y2QyLi4zNmQ1M2I0ZWI4MTVhMWFkM2I4MGNkYzc3ZjEwMDg5YzMyNzAzMDBmIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9qcy9kb20vZG90LW5vZGUtYmFzZS1leGNlcHRpb24tZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9kb3Qtbm9kZS1iYXNlLWV4Y2VwdGlvbi1leHBlY3Rl
ZC50eHQKQEAgLTMsNyArMyw3IEBAIFRoaXMgdGVzdCBjaGVja3MgdGhhdCBhIGNvcnJlY3QgZXhj
ZXB0aW9uIGlzIHJhaXNlZCB3aGVuIGNhbGN1bGF0aW5nIHRoZSBiYXNlIHZhCiBPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyAoZG9jdW1lbnQuYXBwZW5kQ2hpbGQoKSkuZm9vYmFy
KCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgu
CitQQVNTIChkb2N1bWVudC5hcHBlbmRDaGlsZCgpKS5mb29iYXIoKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBUeXBlIGVycm9yLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQog
CiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRl
c3RzL2RvdC1ub2RlLWJhc2UtZXhjZXB0aW9uLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3Njcmlw
dC10ZXN0cy9kb3Qtbm9kZS1iYXNlLWV4Y2VwdGlvbi5qcwppbmRleCA5ZjM2MmE3Zjc4ODE3YmNi
OGZjN2M4N2VkMjZjNjNjZjJhNzhhMTk1Li43MWQ0NzE5OTk3NTY1ODQzMjliOGRkY2Q3NDdjNzc3
MWU0NDA3NTFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2Rv
dC1ub2RlLWJhc2UtZXhjZXB0aW9uLmpzCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQt
dGVzdHMvZG90LW5vZGUtYmFzZS1leGNlcHRpb24uanMKQEAgLTMsNCArMyw0IEBAIGRlc2NyaXB0
aW9uKAogKTsKIAogLy8gU2hvdWxkIGJlIGEgRE9NIGV4Y2VwdGlvbiwgbm90IGp1c3Qgc29tZSAi
VHlwZUVycm9yOiBOdWxsIHZhbHVlIi4KLXNob3VsZFRocm93KCcoZG9jdW1lbnQuYXBwZW5kQ2hp
bGQoKSkuZm9vYmFyKCknLCAnIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgi
Jyk7CitzaG91bGRUaHJvdygnKGRvY3VtZW50LmFwcGVuZENoaWxkKCkpLmZvb2JhcigpJywgJyJU
eXBlRXJyb3I6IFR5cGUgZXJyb3IiJyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260843</attachid>
            <date>2015-09-08 23:35:41 -0700</date>
            <delta_ts>2015-09-09 07:57:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148971-20150908233536.patch</filename>
            <type>text/plain</type>
            <size>250460</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTg3OTllM2U0M2I0OTAw
ZGYxYWJjMjgyZTExNGU5Y2Q1MjcxM2NmMS4uMmI1MWRjNTA5NGUzODI4MTg5YWFiM2I4NmIzMTA3
NzQyNDM2YmM2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE1LTA5LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTm9kZS5hcHBlbmRDaGlsZChu
dWxsKSAvIHJlcGxhY2VDaGlsZChudWxsLCBudWxsKSAvIHJlbW92ZUNoaWxkKG51bGwpIC8gaW5z
ZXJ0QmVmb3JlKG51bGwsIHJlZikgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg5NzEKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzIyNTYwODgzPgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjI1NTkyMjU+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm9kZS5h
cHBlbmRDaGlsZChudWxsKSAvIHJlcGxhY2VDaGlsZChudWxsLCBudWxsKSAvIHJlbW92ZUNoaWxk
KG51bGwpCisgICAgICAgIGFuZCBpbnNlcnRCZWZvcmUobnVsbCwgcmVmKSBzaG91bGQgdGhyb3cg
YSBUeXBlRXJyb3IgaW5zdGVhZCBvZiBhCisgICAgICAgIE5vdEZvdW5kRXJyb3IsIGFzIHBlciB0
aGUgc3BlY2lmaWNhdGlvbjoKKyAgICAgICAgaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNu
b2RlCisKKyAgICAgICAgVGhlIHBhcmFtZXRlcnMgYXJlIG5vdCBudWxsYWJsZSBzbyB0aGUgV2Vi
IElETCBzcGVjaWZpY2F0aW9uIHNheXMKKyAgICAgICAgd2Ugc2hvdWxkIHRocm93IGEgVHlwZUVy
cm9yIGluIHRoaXMgY2FzZS4KKworICAgICAgICBUaGlzIHBhdGNoIG1vdmVzIHRoZSBudWxsLWNo
ZWNraW5nIGZyb20gQ29udGFpbmVyTm9kZSB0byB0aGUgbWV0aG9kcworICAgICAgICBvbiBOb2Rl
LiBUaGUgbnVsbC1jaGVja2luZyBpcyBzdXBwb3NlZCB0byBiZSBkb25lIGJ5IHRoZSBiaW5kaW5n
cyBjb2RlCisgICAgICAgIGJ1dCBvdXIgZ2VuZXJhdG9yIGN1cnJlbnRseSBkb2VzIG5vdCBzdXBw
b3J0IHRoaXMgc28gd2UgZG8gdGhlIG51bGwKKyAgICAgICAgY2hlY2tpbmcgYXMgY2xvc2UgdG8g
dGhlIGJpbmRpbmdzIGFzIHBvc3NpYmxlLiBUaGUgYmluZGluZ3MgY29kZSBpcworICAgICAgICBj
YWxsaW5nIHRoZSBtZXRob2RzIG9uIE5vZGUuIFRoaXMgYWxzbyBtYWtlcyBzdXJlIHdlIHRocm93
IGEgVHlwZUVycm9yCisgICAgICAgIGZvciBudWxsLWFyZ3VtZW50IHdoZW4gdGhlIE5vZGUgaXMg
bm90IGEgQ29udGFpbmVyTm9kZS4gRm9yIGUuZy4KKyAgICAgICAgVGV4dC5hcHBlbmRDaGlsZChu
dWxsKSBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3IgdG9vLgorCisgICAgICAgIFRoZSBtZXRob2Rz
IG9uIENvbnRhaW5lck5vZGUgbm93IHRha2UgcmVmZXJlbmNlcyBpbnN0ZWFhZCBvZiBwb2ludGVy
CisgICAgICAgIHBhcmFtZXRlcnMgbm93IHRoYXQgdGhlIG51bGwtY2hlY2tpbmcgaXMgZG9uZSBh
dCB0aGUgY2FsbCBzaXRlIGluCisgICAgICAgIE5vZGUuIFRoaXMgbGVhZCB0byBhIGxvdCBvZiBj
b2RlIHVwZGF0ZSBhcyB0aG9zZSBtZXRob2RzIGFyZSB1c2VkCisgICAgICAgIGEgbG90IHRocm91
Z2hvdXQgdGhlIGNvZGUgYmFzZS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGFscmVhZHkgY292
ZXJlZCBieSBwcmUtZXhpc3RpbmcgbGF5b3V0IHRlc3RzLgorCiAyMDE1LTA5LTA4ICBKb3NlcGgg
UGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjog
Tm8gbmVlZCBmb3IgW0N1c3RvbV0gSW1wbGVtZW50YXRpb24gb2Ygc29tZSBJbnNwZWN0b3JGcm9u
dGVuZEhvc3QgbWV0aG9kcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDYwYWRmNzMyYWM4N2FiZTA0MTIy
NzEzY2YzNTkxNzA4MzFkYzllMTUuLmY4Mjc5NGNhNTA2Y2M0MjgzNDUwNmNiMDU2YmNkZjA2YTZj
YzYyZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxNS0wOS0wOCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIE5vZGUuYXBwZW5kQ2hpbGQo
bnVsbCkgLyByZXBsYWNlQ2hpbGQobnVsbCwgbnVsbCkgLyByZW1vdmVDaGlsZChudWxsKSAvIGlu
c2VydEJlZm9yZShudWxsLCByZWYpIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4OTcxCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8yMjU2MDg4Mz4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIyNTU5MjI1
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbnRh
aW5lck5vZGU6OmFwcGVuZENoaWxkKCkgbm93IHRha2VzIGEgUmVmPE5vZGU+JiYgcGFyYW1ldGVy
IHNvIHdlCisgICAgICAgIG5lZWQgdG8gdXBkYXRlIHRoZSBjYWxsIHNpdGUuCisKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkZyYW1lLm1tOgorICAgICAgICAoLVtXZWJGcmFtZSBfZG9jdW1lbnRGcmFn
bWVudFdpdGhOb2Rlc0FzUGFyYWdyYXBoczpdKToKKwogMjAxNS0wOS0wNyAgQW5keSBFc3RlcyAg
PGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW01hY10gRGVidWdSZWxlYXNlIGJ1aWxkcyBz
aG91bGQgbGluayBhZ2FpbnN0IGxpYldlYktpdFN5c3RlbUludGVyZmFjZUVsQ2FwaXRhbi5hIG9u
IDEwLjExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjQxOTI1ZDEwOTFhNmI0ZDhmZGU0ZDVjYWJlOWY3N2U2OTRl
YzBjZS4uOGQ4YzlhYTAyMDljM2RhN2MyZmVkODAxNGMzNDVlNTBmYjlmZjE1OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIzIEBACisyMDE1LTA5LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CisKKyAgICAgICAgTm9kZS5hcHBlbmRDaGlsZChudWxsKSAvIHJlcGxhY2VDaGlsZChu
dWxsLCBudWxsKSAvIHJlbW92ZUNoaWxkKG51bGwpIC8gaW5zZXJ0QmVmb3JlKG51bGwsIHJlZikg
c2hvdWxkIHRocm93IGEgVHlwZUVycm9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDg5NzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIyNTYwODgz
PgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjI1NTkyMjU+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29udGFpbmVyTm9kZTo6YXBwZW5kQ2hpbGQo
KSBub3cgdGFrZXMgYSBSZWY8Tm9kZT4mJiBwYXJhbWV0ZXIgc28gd2UKKyAgICAgICAgbmVlZCB0
byB1cGRhdGUgdGhlIGNhbGwgc2l0ZXMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1BERlBsdWdpbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjpQREZQbHVnaW4p
OgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQW5ub3RhdGlvbi5t
bToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luQW5ub3RhdGlvbjo6YXR0YWNoKToKKyAgICAg
ICAgKFdlYktpdDo6UERGUGx1Z2luQW5ub3RhdGlvbjo6flBERlBsdWdpbkFubm90YXRpb24pOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlv
bi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbjo6Y3JlYXRl
QW5ub3RhdGlvbkVsZW1lbnQpOgorCiAyMDE1LTA5LTA4ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVz
QGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjXSBFeHBvc2UgRW5hYmxlL0Rpc2FibGUgQWNjZWxl
cmF0ZWQgRHJhd2luZyBpbiBNaW5pQnJvd3NlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcAppbmRleCA4
Zjk2YzlmMDI4YzcyOGZkYTAzYmI1MGE3ZWU5NmJhZmMzZGE5MDViLi5iNDRjZmQyMDg1OWU3NGUx
MzE3YTkzNGExNWM1NzY2OThiN2UxN2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcApAQCAtODEs
OSArODEsOSBAQCBib29sIFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudDo6aW5zdGFsbFJlcGxhY2Vt
ZW50KFNoYWRvd1Jvb3QqIHJvb3QpCiB7CiAgICAgbV9lbWJlZFNoYWRvd0VsZW1lbnQgPSBZb3VU
dWJlRW1iZWRTaGFkb3dFbGVtZW50OjpjcmVhdGUobV9wYXJlbnRFbGVtZW50LT5kb2N1bWVudCgp
KTsKIAotICAgIHJvb3QtPmFwcGVuZENoaWxkKG1fZW1iZWRTaGFkb3dFbGVtZW50LmdldCgpKTsK
KyAgICByb290LT5hcHBlbmRDaGlsZCgqbV9lbWJlZFNoYWRvd0VsZW1lbnQpOwogCi0gICAgUmVm
UHRyPEhUTUxJRnJhbWVFbGVtZW50PiBpZnJhbWVFbGVtZW50ID0gSFRNTElGcmFtZUVsZW1lbnQ6
OmNyZWF0ZShIVE1MTmFtZXM6OmlmcmFtZVRhZywgbV9wYXJlbnRFbGVtZW50LT5kb2N1bWVudCgp
KTsKKyAgICBSZWY8SFRNTElGcmFtZUVsZW1lbnQ+IGlmcmFtZUVsZW1lbnQgPSBIVE1MSUZyYW1l
RWxlbWVudDo6Y3JlYXRlKEhUTUxOYW1lczo6aWZyYW1lVGFnLCBtX3BhcmVudEVsZW1lbnQtPmRv
Y3VtZW50KCkpOwogICAgIGlmIChtX2F0dHJpYnV0ZXMuY29udGFpbnMoIndpZHRoIikpCiAgICAg
ICAgIGlmcmFtZUVsZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OndpZHRoQXR0ciwgQXRv
bWljU3RyaW5nKCIxMDAlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwog
ICAgIApAQCAtOTgsNyArOTgsNyBAQCBib29sIFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudDo6aW5z
dGFsbFJlcGxhY2VtZW50KFNoYWRvd1Jvb3QqIHJvb3QpCiAgICAgCiAgICAgLy8gRGlzYWJsZSBm
cmFtZSBmbGF0dGVuaW5nIGZvciB0aGlzIGlmcmFtZS4KICAgICBpZnJhbWVFbGVtZW50LT5zZXRB
dHRyaWJ1dGUoSFRNTE5hbWVzOjpzY3JvbGxpbmdBdHRyLCBBdG9taWNTdHJpbmcoIm5vIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIG1fZW1iZWRTaGFkb3dFbGVt
ZW50LT5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsKKyAgICBtX2VtYmVkU2hhZG93RWxlbWVu
dC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGlmcmFtZUVsZW1lbnQpKTsKIAogICAgIHJldHVybiB0
cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1M
Lm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MLm1tCmluZGV4IDBkZTIy
Y2UzY2RhYzRmNzg4YTdmZGE3Y2YwNDU1NzA2YTA5MDViZmMuLjAyNzU5NWUxZTkxYjJmM2FhNjI4
ZTI5MzYxNWJhNTFkMmZmMDU5ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NSFRNTC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhU
TUwubW0KQEAgLTE1Miw3ICsxNTIsNyBAQCAtIChET01Eb2N1bWVudEZyYWdtZW50ICopY3JlYXRl
RG9jdW1lbnRGcmFnbWVudFdpdGhNYXJrdXBTdHJpbmc6KE5TU3RyaW5nICopbWFyawogLSAoRE9N
RG9jdW1lbnRGcmFnbWVudCAqKWNyZWF0ZURvY3VtZW50RnJhZ21lbnRXaXRoVGV4dDooTlNTdHJp
bmcgKil0ZXh0CiB7CiAgICAgLy8gRklYTUU6IFNpbmNlIHRoaXMgaXMgbm90IGEgY29udGV4dHVh
bCBmcmFnbWVudCwgaXQgd29uJ3QgaGFuZGxlIHdoaXRlc3BhY2UgcHJvcGVybHkuCi0gICAgcmV0
dXJuIGtpdChjcmVhdGVGcmFnbWVudEZyb21UZXh0KGNvcmUoc2VsZiktPmNyZWF0ZVJhbmdlKCks
IHRleHQpLmdldCgpKTsKKyAgICByZXR1cm4ga2l0KGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoY29y
ZShzZWxmKS0+Y3JlYXRlUmFuZ2UoKSwgdGV4dCkucHRyKCkpOwogfQogCiBAZW5kCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0
ci5jcHAKaW5kZXggMTg1NzBmMWQ4NzQzMWExZjNhNDRkYTAzZTU4YTJlYzVmZjcxYTc4Yy4uYWM3
YjY2Zjk5NzA1ZDg5OWVlY2UzYzI4OTRmODllMWY4MDlkMTVmOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0F0dHIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmNwcApA
QCAtMTM4LDExICsxMzgsMTEgQEAgdm9pZCBBdHRyOjpzZXROb2RlVmFsdWUoY29uc3QgU3RyaW5n
JiB2LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBzZXRWYWx1ZSh2LCBlYyk7CiB9CiAKLVJlZlB0
cjxOb2RlPiBBdHRyOjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQs
IENsb25pbmdPcGVyYXRpb24pCitSZWY8Tm9kZT4gQXR0cjo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9j
dW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uKQogewotICAgIFJlZlB0cjxB
dHRyPiBjbG9uZSA9IGFkb3B0UmVmKG5ldyBBdHRyKHRhcmdldERvY3VtZW50LCBxdWFsaWZpZWRO
YW1lKCksIHZhbHVlKCkpKTsKLSAgICBjbG9uZUNoaWxkTm9kZXMoY2xvbmUuZ2V0KCkpOwotICAg
IHJldHVybiBjbG9uZS5yZWxlYXNlKCk7CisgICAgUmVmPEF0dHI+IGNsb25lID0gYWRvcHRSZWYo
Km5ldyBBdHRyKHRhcmdldERvY3VtZW50LCBxdWFsaWZpZWROYW1lKCksIHZhbHVlKCkpKTsKKyAg
ICBjbG9uZUNoaWxkTm9kZXMoY2xvbmUpOworICAgIHJldHVybiBXVEY6Om1vdmUoY2xvbmUpOwog
fQogCiAvLyBET00gU2VjdGlvbiAxLjEuMQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0F0dHIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmgKaW5kZXggYzdhOTRmOThmMGJmYjU3
ZWIwYzNhYjUxNzk4OGE0NDgwYjM0OTAxMC4uMTI0YzZkN2EyYWEyODY4MzBmY2JhMjk2Mjg4ODhi
NzIwMjI5OTI4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vQXR0ci5oCkBAIC04MCw3ICs4MCw3IEBAIHByaXZhdGU6CiAKICAg
ICB2aXJ0dWFsIFN0cmluZyBub2RlVmFsdWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB2YWx1
ZSgpOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldE5vZGVWYWx1ZShjb25zdCBTdHJpbmcmLCBFeGNl
cHRpb25Db2RlJikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZWZQdHI8Tm9kZT4gY2xvbmVOb2Rl
SW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRp
b24pIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIGlzQXR0cmlidXRlTm9kZSgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRUeXBlQWxs
b3dlZChOb2RlVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ0RBVEFTZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DREFUQVNlY3Rpb24u
Y3BwCmluZGV4IGM1OWJmMWU5NThmZGE0NTBhZTkyZGYyMmI3NDA5ZmZiOTY4YTBiZWIuLmFmZDcz
MjI3MGYxMmM2ZDhkY2ZmYjhmZjgyN2ExMzljYzMxYTMxZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9DREFUQVNlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DREFU
QVNlY3Rpb24uY3BwCkBAIC00Niw3ICs0Niw3IEBAIE5vZGU6Ok5vZGVUeXBlIENEQVRBU2VjdGlv
bjo6bm9kZVR5cGUoKSBjb25zdAogICAgIHJldHVybiBDREFUQV9TRUNUSU9OX05PREU7CiB9CiAK
LVJlZlB0cjxOb2RlPiBDREFUQVNlY3Rpb246OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0
YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikKK1JlZjxOb2RlPiBDREFUQVNlY3Rpb246
OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJh
dGlvbikKIHsKICAgICByZXR1cm4gY3JlYXRlKHRhcmdldERvY3VtZW50LCBkYXRhKCkpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NEQVRBU2VjdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0NEQVRBU2VjdGlvbi5oCmluZGV4IGJmNWE2MWM2MjY4NWIyMzcwNWQ2NGI0Y2Uz
OTQ2YTYzNzg0OTIzYTcuLmQ2Yjk5MzdkZmM3NWE1OGU5NmVhYjUyZGYyNmFkOWI0YjdkZWYyNjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DREFUQVNlY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQ0RBVEFTZWN0aW9uLmgKQEAgLTM2LDcgKzM2LDcgQEAgcHJpdmF0ZToK
IAogICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCBOb2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVm
UHRyPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1l
bnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRU
eXBlQWxsb3dlZChOb2RlVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBSZWY8VGV4
dD4gdmlydHVhbENyZWF0ZShjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29t
bWVudC5jcHAKaW5kZXggNGM3NGFhZjYzYWQ5MDUzYzZhYmU1OTU1NjIzMTg1ZDI3ZDk4OWQ2Yi4u
NDEyNWE2ZWFlMWFkZjlhOGY4NjZmZWI1NDI5ZjRmM2Q0MjBiNzI0YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0NvbW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21t
ZW50LmNwcApAQCAtNDYsNyArNDYsNyBAQCBOb2RlOjpOb2RlVHlwZSBDb21tZW50Ojpub2RlVHlw
ZSgpIGNvbnN0CiAgICAgcmV0dXJuIENPTU1FTlRfTk9ERTsKIH0KIAotUmVmUHRyPE5vZGU+IENv
bW1lbnQ6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmlu
Z09wZXJhdGlvbikKK1JlZjxOb2RlPiBDb21tZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVu
dCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24pCiB7CiAgICAgcmV0dXJuIGNyZWF0
ZSh0YXJnZXREb2N1bWVudCwgZGF0YSgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Db21tZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tbWVudC5oCmluZGV4IGZjYWM2
MGEzM2U1ZTMwYTFlNTljMWRjOWVmM2I2Mzk0YWRlN2I3NTkuLjE1NjYzMjMzMmEyMDY4ZjNhOWI4
NTI2Y2JjYzc0NjU0ODYxNTk5YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21t
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbW1lbnQuaApAQCAtMzYsNyArMzYsNyBA
QCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBTdHJpbmcgbm9kZU5hbWUoKSBjb25zdCBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIE5vZGVUeXBlIG5vZGVUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAg
dmlydHVhbCBSZWZQdHI8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5n
T3BlcmF0aW9uKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRl
cm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
Ym9vbCBjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlKSBjb25zdCBvdmVycmlkZTsKIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAppbmRleCBmMDYzMWI2YmRkNGRhN2RhMmRhNGJk
NGZhOTk0YzE5Y2Y5OTBjM2Q1Li4yYzNiNWVkMzE5ZjY1ODgxZTFjM2VhODhiMTI0NWJiYTAwZTdj
ODJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCkBAIC03Niw3ICs3Niw3IEBA
IHN0YXRpYyB2b2lkIGNvbGxlY3RDaGlsZHJlbkFuZFJlbW92ZUZyb21PbGRQYXJlbnQoTm9kZSYg
bm9kZSwgTm9kZVZlY3RvciYgbm9kZXMsCiAgICAgaWYgKCFpczxEb2N1bWVudEZyYWdtZW50Pihu
b2RlKSkgewogICAgICAgICBub2Rlcy5hcHBlbmQobm9kZSk7CiAgICAgICAgIGlmIChDb250YWlu
ZXJOb2RlKiBvbGRQYXJlbnQgPSBub2RlLnBhcmVudE5vZGUoKSkKLSAgICAgICAgICAgIG9sZFBh
cmVudC0+cmVtb3ZlQ2hpbGQoJm5vZGUsIGVjKTsKKyAgICAgICAgICAgIG9sZFBhcmVudC0+cmVt
b3ZlQ2hpbGQobm9kZSwgZWMpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xNDYsMTMg
KzE0NiwxMyBAQCBDb250YWluZXJOb2RlOjp+Q29udGFpbmVyTm9kZSgpCiAgICAgcmVtb3ZlRGV0
YWNoZWRDaGlsZHJlbigpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgaXNDaGlsZFR5cGVBbGxv
d2VkKENvbnRhaW5lck5vZGUqIG5ld1BhcmVudCwgTm9kZSogY2hpbGQpCitzdGF0aWMgaW5saW5l
IGJvb2wgaXNDaGlsZFR5cGVBbGxvd2VkKENvbnRhaW5lck5vZGUmIG5ld1BhcmVudCwgTm9kZSYg
Y2hpbGQpCiB7Ci0gICAgaWYgKCFjaGlsZC0+aXNEb2N1bWVudEZyYWdtZW50KCkpCi0gICAgICAg
IHJldHVybiBuZXdQYXJlbnQtPmNoaWxkVHlwZUFsbG93ZWQoY2hpbGQtPm5vZGVUeXBlKCkpOwor
ICAgIGlmICghY2hpbGQuaXNEb2N1bWVudEZyYWdtZW50KCkpCisgICAgICAgIHJldHVybiBuZXdQ
YXJlbnQuY2hpbGRUeXBlQWxsb3dlZChjaGlsZC5ub2RlVHlwZSgpKTsKIAotICAgIGZvciAoTm9k
ZSogbm9kZSA9IGNoaWxkLT5maXJzdENoaWxkKCk7IG5vZGU7IG5vZGUgPSBub2RlLT5uZXh0U2li
bGluZygpKSB7Ci0gICAgICAgIGlmICghbmV3UGFyZW50LT5jaGlsZFR5cGVBbGxvd2VkKG5vZGUt
Pm5vZGVUeXBlKCkpKQorICAgIGZvciAoTm9kZSogbm9kZSA9IGNoaWxkLmZpcnN0Q2hpbGQoKTsg
bm9kZTsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgaWYgKCFuZXdQYXJl
bnQuY2hpbGRUeXBlQWxsb3dlZChub2RlLT5ub2RlVHlwZSgpKSkKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICB9CiAgICAgcmV0dXJuIHRydWU7CkBAIC0xNjksMjMgKzE2OSwxOSBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgaXNJblRlbXBsYXRlQ29udGVudChjb25zdCBOb2RlKiBub2RlKQog
I2VuZGlmCiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBjb250YWluc0NvbnNpZGVyaW5nSG9zdEVs
ZW1lbnRzKGNvbnN0IE5vZGUqIG5ld0NoaWxkLCBjb25zdCBOb2RlKiBuZXdQYXJlbnQpCitzdGF0
aWMgaW5saW5lIGJvb2wgY29udGFpbnNDb25zaWRlcmluZ0hvc3RFbGVtZW50cyhjb25zdCBOb2Rl
JiBuZXdDaGlsZCwgY29uc3QgTm9kZSYgbmV3UGFyZW50KQogewotICAgIHJldHVybiAobmV3UGFy
ZW50LT5pc0luU2hhZG93VHJlZSgpIHx8IGlzSW5UZW1wbGF0ZUNvbnRlbnQobmV3UGFyZW50KSkK
LSAgICAgICAgPyBuZXdDaGlsZC0+Y29udGFpbnNJbmNsdWRpbmdIb3N0RWxlbWVudHMobmV3UGFy
ZW50KQotICAgICAgICA6IG5ld0NoaWxkLT5jb250YWlucyhuZXdQYXJlbnQpOworICAgIHJldHVy
biAobmV3UGFyZW50LmlzSW5TaGFkb3dUcmVlKCkgfHwgaXNJblRlbXBsYXRlQ29udGVudCgmbmV3
UGFyZW50KSkKKyAgICAgICAgPyBuZXdDaGlsZC5jb250YWluc0luY2x1ZGluZ0hvc3RFbGVtZW50
cygmbmV3UGFyZW50KQorICAgICAgICA6IG5ld0NoaWxkLmNvbnRhaW5zKCZuZXdQYXJlbnQpOwog
fQogCi1zdGF0aWMgaW5saW5lIEV4Y2VwdGlvbkNvZGUgY2hlY2tBY2NlcHRDaGlsZChDb250YWlu
ZXJOb2RlKiBuZXdQYXJlbnQsIE5vZGUqIG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCkKK3N0YXRp
YyBpbmxpbmUgRXhjZXB0aW9uQ29kZSBjaGVja0FjY2VwdENoaWxkKENvbnRhaW5lck5vZGUmIG5l
d1BhcmVudCwgTm9kZSYgbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkKQogewotICAgIC8vIE5vdCBt
ZW50aW9uZWQgaW4gc3BlYzogdGhyb3cgTk9UX0ZPVU5EX0VSUiBpZiBuZXdDaGlsZCBpcyBudWxs
Ci0gICAgaWYgKCFuZXdDaGlsZCkKLSAgICAgICAgcmV0dXJuIE5PVF9GT1VORF9FUlI7Ci0KICAg
ICAvLyBVc2UgY29tbW9uIGNhc2UgZmFzdCBwYXRoIGlmIHBvc3NpYmxlLgotICAgIGlmICgobmV3
Q2hpbGQtPmlzRWxlbWVudE5vZGUoKSB8fCBuZXdDaGlsZC0+aXNUZXh0Tm9kZSgpKSAmJiBuZXdQ
YXJlbnQtPmlzRWxlbWVudE5vZGUoKSkgewotICAgICAgICBBU1NFUlQoIW5ld1BhcmVudC0+aXNS
ZWFkT25seU5vZGUoKSk7Ci0gICAgICAgIEFTU0VSVCghbmV3UGFyZW50LT5pc0RvY3VtZW50VHlw
ZU5vZGUoKSk7CisgICAgaWYgKChuZXdDaGlsZC5pc0VsZW1lbnROb2RlKCkgfHwgbmV3Q2hpbGQu
aXNUZXh0Tm9kZSgpKSAmJiBuZXdQYXJlbnQuaXNFbGVtZW50Tm9kZSgpKSB7CisgICAgICAgIEFT
U0VSVCghbmV3UGFyZW50LmlzUmVhZE9ubHlOb2RlKCkpOworICAgICAgICBBU1NFUlQoIW5ld1Bh
cmVudC5pc0RvY3VtZW50VHlwZU5vZGUoKSk7CiAgICAgICAgIEFTU0VSVChpc0NoaWxkVHlwZUFs
bG93ZWQobmV3UGFyZW50LCBuZXdDaGlsZCkpOwogICAgICAgICBpZiAoY29udGFpbnNDb25zaWRl
cmluZ0hvc3RFbGVtZW50cyhuZXdDaGlsZCwgbmV3UGFyZW50KSkKICAgICAgICAgICAgIHJldHVy
biBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CkBAIC0xOTMsMTcgKzE4OSwxNyBAQCBzdGF0aWMgaW5s
aW5lIEV4Y2VwdGlvbkNvZGUgY2hlY2tBY2NlcHRDaGlsZChDb250YWluZXJOb2RlKiBuZXdQYXJl
bnQsIE5vZGUqIG5ldwogICAgIH0KIAogICAgIC8vIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiwg
YnV0IGFsc28gcHJvdGVjdCByZWxlYXNlIGJ1aWxkcyBmcm9tIHRyZWUgY29ycnVwdGlvbi4KLSAg
ICBBU1NFUlQoIW5ld0NoaWxkLT5pc1BzZXVkb0VsZW1lbnQoKSk7Ci0gICAgaWYgKG5ld0NoaWxk
LT5pc1BzZXVkb0VsZW1lbnQoKSkKKyAgICBBU1NFUlQoIW5ld0NoaWxkLmlzUHNldWRvRWxlbWVu
dCgpKTsKKyAgICBpZiAobmV3Q2hpbGQuaXNQc2V1ZG9FbGVtZW50KCkpCiAgICAgICAgIHJldHVy
biBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAKLSAgICBpZiAobmV3UGFyZW50LT5pc1JlYWRPbmx5
Tm9kZSgpKQorICAgIGlmIChuZXdQYXJlbnQuaXNSZWFkT25seU5vZGUoKSkKICAgICAgICAgcmV0
dXJuIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjsKICAgICBpZiAoY29udGFpbnNDb25zaWRl
cmluZ0hvc3RFbGVtZW50cyhuZXdDaGlsZCwgbmV3UGFyZW50KSkKICAgICAgICAgcmV0dXJuIEhJ
RVJBUkNIWV9SRVFVRVNUX0VSUjsKIAotICAgIGlmIChvbGRDaGlsZCAmJiBpczxEb2N1bWVudD4o
Km5ld1BhcmVudCkpIHsKLSAgICAgICAgaWYgKCFkb3duY2FzdDxEb2N1bWVudD4oKm5ld1BhcmVu
dCkuY2FuUmVwbGFjZUNoaWxkKG5ld0NoaWxkLCBvbGRDaGlsZCkpCisgICAgaWYgKG9sZENoaWxk
ICYmIGlzPERvY3VtZW50PihuZXdQYXJlbnQpKSB7CisgICAgICAgIGlmICghZG93bmNhc3Q8RG9j
dW1lbnQ+KG5ld1BhcmVudCkuY2FuUmVwbGFjZUNoaWxkKG5ld0NoaWxkLCAqb2xkQ2hpbGQpKQog
ICAgICAgICAgICAgcmV0dXJuIEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKICAgICB9IGVsc2UgaWYg
KCFpc0NoaWxkVHlwZUFsbG93ZWQobmV3UGFyZW50LCBuZXdDaGlsZCkpCiAgICAgICAgIHJldHVy
biBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CkBAIC0yMTEsMTIgKzIwNywxMiBAQCBzdGF0aWMgaW5s
aW5lIEV4Y2VwdGlvbkNvZGUgY2hlY2tBY2NlcHRDaGlsZChDb250YWluZXJOb2RlKiBuZXdQYXJl
bnQsIE5vZGUqIG5ldwogICAgIHJldHVybiAwOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgY2hl
Y2tBY2NlcHRDaGlsZEd1YXJhbnRlZWROb2RlVHlwZXMoQ29udGFpbmVyTm9kZSogbmV3UGFyZW50
LCBOb2RlKiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCitzdGF0aWMgaW5saW5lIGJvb2wg
Y2hlY2tBY2NlcHRDaGlsZEd1YXJhbnRlZWROb2RlVHlwZXMoQ29udGFpbmVyTm9kZSYgbmV3UGFy
ZW50LCBOb2RlJiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgQVNTRVJUKCFu
ZXdQYXJlbnQtPmlzUmVhZE9ubHlOb2RlKCkpOwotICAgIEFTU0VSVCghbmV3UGFyZW50LT5pc0Rv
Y3VtZW50VHlwZU5vZGUoKSk7CisgICAgQVNTRVJUKCFuZXdQYXJlbnQuaXNSZWFkT25seU5vZGUo
KSk7CisgICAgQVNTRVJUKCFuZXdQYXJlbnQuaXNEb2N1bWVudFR5cGVOb2RlKCkpOwogICAgIEFT
U0VSVChpc0NoaWxkVHlwZUFsbG93ZWQobmV3UGFyZW50LCBuZXdDaGlsZCkpOwotICAgIGlmIChu
ZXdDaGlsZC0+Y29udGFpbnMobmV3UGFyZW50KSkgeworICAgIGlmIChuZXdDaGlsZC5jb250YWlu
cygmbmV3UGFyZW50KSkgewogICAgICAgICBlYyA9IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTIyNCwyNSArMjIwLDI1IEBAIHN0YXRpYyBp
bmxpbmUgYm9vbCBjaGVja0FjY2VwdENoaWxkR3VhcmFudGVlZE5vZGVUeXBlcyhDb250YWluZXJO
b2RlKiBuZXdQYXJlbnQsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9v
bCBjaGVja0FkZENoaWxkKENvbnRhaW5lck5vZGUqIG5ld1BhcmVudCwgTm9kZSogbmV3Q2hpbGQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQorc3RhdGljIGlubGluZSBib29sIGNoZWNrQWRkQ2hpbGQoQ29u
dGFpbmVyTm9kZSYgbmV3UGFyZW50LCBOb2RlJiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMp
CiB7Ci0gICAgZWMgPSBjaGVja0FjY2VwdENoaWxkKG5ld1BhcmVudCwgbmV3Q2hpbGQsIDApOwor
ICAgIGVjID0gY2hlY2tBY2NlcHRDaGlsZChuZXdQYXJlbnQsIG5ld0NoaWxkLCBudWxscHRyKTsK
ICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwog
fQogCi1zdGF0aWMgaW5saW5lIGJvb2wgY2hlY2tSZXBsYWNlQ2hpbGQoQ29udGFpbmVyTm9kZSog
bmV3UGFyZW50LCBOb2RlKiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUm
IGVjKQorc3RhdGljIGlubGluZSBib29sIGNoZWNrUmVwbGFjZUNoaWxkKENvbnRhaW5lck5vZGUm
IG5ld1BhcmVudCwgTm9kZSYgbmV3Q2hpbGQsIE5vZGUmIG9sZENoaWxkLCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKLSAgICBlYyA9IGNoZWNrQWNjZXB0Q2hpbGQobmV3UGFyZW50LCBuZXdDaGlsZCwg
b2xkQ2hpbGQpOworICAgIGVjID0gY2hlY2tBY2NlcHRDaGlsZChuZXdQYXJlbnQsIG5ld0NoaWxk
LCAmb2xkQ2hpbGQpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgQ29udGFpbmVyTm9kZTo6aW5zZXJ0QmVmb3JlKFBhc3NS
ZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIHJlZkNoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykK
K2Jvb2wgQ29udGFpbmVyTm9kZTo6aW5zZXJ0QmVmb3JlKFJlZjxOb2RlPiYmIG5ld0NoaWxkLCBO
b2RlKiByZWZDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgLy8gQ2hlY2sgdGhhdCB0
aGlzIG5vZGUgaXMgbm90ICJmbG9hdGluZyIuCiAgICAgLy8gSWYgaXQgaXMsIGl0IGNhbiBiZSBk
ZWxldGVkIGFzIGEgc2lkZSBlZmZlY3Qgb2Ygc2VuZGluZyBtdXRhdGlvbiBldmVudHMuCkBAIC0y
NTQsMTAgKzI1MCwxMCBAQCBib29sIENvbnRhaW5lck5vZGU6Omluc2VydEJlZm9yZShQYXNzUmVm
UHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiByZWZDaGlsZCwgRXhjZQogCiAgICAgLy8gaW5zZXJ0
QmVmb3JlKG5vZGUsIDApIGlzIGVxdWl2YWxlbnQgdG8gYXBwZW5kQ2hpbGQobm9kZSkKICAgICBp
ZiAoIXJlZkNoaWxkKQotICAgICAgICByZXR1cm4gYXBwZW5kQ2hpbGQobmV3Q2hpbGQsIGVjKTsK
KyAgICAgICAgcmV0dXJuIGFwcGVuZENoaWxkKFdURjo6bW92ZShuZXdDaGlsZCksIGVjKTsKIAog
ICAgIC8vIE1ha2Ugc3VyZSBhZGRpbmcgdGhlIG5ldyBjaGlsZCBpcyBPSy4KLSAgICBpZiAoIWNo
ZWNrQWRkQ2hpbGQodGhpcywgbmV3Q2hpbGQuZ2V0KCksIGVjKSkKKyAgICBpZiAoIWNoZWNrQWRk
Q2hpbGQoKnRoaXMsIG5ld0NoaWxkLCBlYykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IC8vIE5PVF9GT1VORF9FUlI6IFJhaXNlZCBpZiByZWZDaGlsZCBpcyBub3QgYSBjaGlsZCBvZiB0
aGlzIG5vZGUKQEAgLTI2NiwyMCArMjYyLDIwIEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6aW5zZXJ0
QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIHJlZkNoaWxkLCBFeGNlCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBpZiAocmVmQ2hpbGQtPnByZXZpb3Vz
U2libGluZygpID09IG5ld0NoaWxkIHx8IHJlZkNoaWxkID09IG5ld0NoaWxkKSAvLyBub3RoaW5n
IHRvIGRvCisgICAgaWYgKHJlZkNoaWxkLT5wcmV2aW91c1NpYmxpbmcoKSA9PSBuZXdDaGlsZC5w
dHIoKSB8fCByZWZDaGlsZCA9PSBuZXdDaGlsZC5wdHIoKSkgLy8gbm90aGluZyB0byBkbwogICAg
ICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIFJlZjxOb2RlPiBuZXh0KCpyZWZDaGlsZCk7CiAKICAg
ICBOb2RlVmVjdG9yIHRhcmdldHM7Ci0gICAgY29sbGVjdENoaWxkcmVuQW5kUmVtb3ZlRnJvbU9s
ZFBhcmVudCgqbmV3Q2hpbGQuZ2V0KCksIHRhcmdldHMsIGVjKTsKKyAgICBjb2xsZWN0Q2hpbGRy
ZW5BbmRSZW1vdmVGcm9tT2xkUGFyZW50KG5ld0NoaWxkLCB0YXJnZXRzLCBlYyk7CiAgICAgaWYg
KGVjKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKHRhcmdldHMuaXNFbXB0eSgpKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIC8vIFdlIG5lZWQgdGhpcyBleHRyYSBjaGVjayBi
ZWNhdXNlIGNvbGxlY3RDaGlsZHJlbkFuZFJlbW92ZUZyb21PbGRQYXJlbnQoKSBjYW4gZmlyZSBt
dXRhdGlvbiBldmVudHMuCi0gICAgaWYgKCFjaGVja0FjY2VwdENoaWxkR3VhcmFudGVlZE5vZGVU
eXBlcyh0aGlzLCBuZXdDaGlsZC5nZXQoKSwgZWMpKQorICAgIGlmICghY2hlY2tBY2NlcHRDaGls
ZEd1YXJhbnRlZWROb2RlVHlwZXMoKnRoaXMsIG5ld0NoaWxkLCBlYykpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEluc2VydERPTU5v
ZGUoZG9jdW1lbnQoKSwgKnRoaXMpOwpAQCAtMzkwLDcgKzM4Niw3IEBAIHZvaWQgQ29udGFpbmVy
Tm9kZTo6cGFyc2VySW5zZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUq
IG5leHRDaGlsCiAgICAgbmV3Q2hpbGQtPnNldE5lZWRzU3R5bGVSZWNhbGMoUmVjb25zdHJ1Y3RS
ZW5kZXJUcmVlKTsKIH0KIAotYm9vbCBDb250YWluZXJOb2RlOjpyZXBsYWNlQ2hpbGQoUGFzc1Jl
ZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQor
Ym9vbCBDb250YWluZXJOb2RlOjpyZXBsYWNlQ2hpbGQoUmVmPE5vZGU+JiYgbmV3Q2hpbGQsIE5v
ZGUmIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICAvLyBDaGVjayB0aGF0IHRo
aXMgbm9kZSBpcyBub3QgImZsb2F0aW5nIi4KICAgICAvLyBJZiBpdCBpcywgaXQgY2FuIGJlIGRl
bGV0ZWQgYXMgYSBzaWRlIGVmZmVjdCBvZiBzZW5kaW5nIG11dGF0aW9uIGV2ZW50cy4KQEAgLTQw
MCw0OCArMzk2LDQzIEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6cmVwbGFjZUNoaWxkKFBhc3NSZWZQ
dHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkLCBFeGNlCiAKICAgICBlYyA9IDA7CiAK
LSAgICBpZiAob2xkQ2hpbGQgPT0gbmV3Q2hpbGQpIC8vIG5vdGhpbmcgdG8gZG8KKyAgICBpZiAo
Jm9sZENoaWxkID09IG5ld0NoaWxkLnB0cigpKSAvLyBub3RoaW5nIHRvIGRvCiAgICAgICAgIHJl
dHVybiB0cnVlOwogCi0gICAgaWYgKCFvbGRDaGlsZCkgewotICAgICAgICBlYyA9IE5PVF9GT1VO
RF9FUlI7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KICAgICAvLyBNYWtlIHN1cmUg
cmVwbGFjaW5nIHRoZSBvbGQgY2hpbGQgd2l0aCB0aGUgbmV3IGlzIG9rCi0gICAgaWYgKCFjaGVj
a1JlcGxhY2VDaGlsZCh0aGlzLCBuZXdDaGlsZC5nZXQoKSwgb2xkQ2hpbGQsIGVjKSkKKyAgICBp
ZiAoIWNoZWNrUmVwbGFjZUNoaWxkKCp0aGlzLCBuZXdDaGlsZCwgb2xkQ2hpbGQsIGVjKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gTk9UX0ZPVU5EX0VSUjogUmFpc2VkIGlmIG9s
ZENoaWxkIGlzIG5vdCBhIGNoaWxkIG9mIHRoaXMgbm9kZS4KLSAgICBpZiAob2xkQ2hpbGQtPnBh
cmVudE5vZGUoKSAhPSB0aGlzKSB7CisgICAgaWYgKG9sZENoaWxkLnBhcmVudE5vZGUoKSAhPSB0
aGlzKSB7CiAgICAgICAgIGVjID0gTk9UX0ZPVU5EX0VSUjsKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KIAogICAgIENoaWxkTGlzdE11dGF0aW9uU2NvcGUgbXV0YXRpb24oKnRoaXMpOwog
Ci0gICAgUmVmUHRyPE5vZGU+IG5leHQgPSBvbGRDaGlsZC0+bmV4dFNpYmxpbmcoKTsKKyAgICBS
ZWZQdHI8Tm9kZT4gbmV4dCA9IG9sZENoaWxkLm5leHRTaWJsaW5nKCk7CiAKICAgICAvLyBSZW1v
dmUgdGhlIG5vZGUgd2UncmUgcmVwbGFjaW5nCi0gICAgUmVmPE5vZGU+IHJlbW92ZWRDaGlsZCgq
b2xkQ2hpbGQpOworICAgIFJlZjxOb2RlPiByZW1vdmVkQ2hpbGQob2xkQ2hpbGQpOwogICAgIHJl
bW92ZUNoaWxkKG9sZENoaWxkLCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICBpZiAobmV4dCAmJiAobmV4dC0+cHJldmlvdXNTaWJsaW5nKCkgPT0gbmV3Q2hp
bGQgfHwgbmV4dCA9PSBuZXdDaGlsZCkpIC8vIG5vdGhpbmcgdG8gZG8KKyAgICBpZiAobmV4dCAm
JiAobmV4dC0+cHJldmlvdXNTaWJsaW5nKCkgPT0gbmV3Q2hpbGQucHRyKCkgfHwgbmV4dCA9PSBu
ZXdDaGlsZC5wdHIoKSkpIC8vIG5vdGhpbmcgdG8gZG8KICAgICAgICAgcmV0dXJuIHRydWU7CiAK
ICAgICAvLyBEb2VzIHRoaXMgb25lIG1vcmUgdGltZSBiZWNhdXNlIHJlbW92ZUNoaWxkKCkgZmly
ZXMgYSBNdXRhdGlvbkV2ZW50LgotICAgIGlmICghY2hlY2tSZXBsYWNlQ2hpbGQodGhpcywgbmV3
Q2hpbGQuZ2V0KCksIG9sZENoaWxkLCBlYykpCisgICAgaWYgKCFjaGVja1JlcGxhY2VDaGlsZCgq
dGhpcywgbmV3Q2hpbGQsIG9sZENoaWxkLCBlYykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIE5vZGVWZWN0b3IgdGFyZ2V0czsKLSAgICBjb2xsZWN0Q2hpbGRyZW5BbmRSZW1vdmVGcm9t
T2xkUGFyZW50KCpuZXdDaGlsZC5nZXQoKSwgdGFyZ2V0cywgZWMpOworICAgIGNvbGxlY3RDaGls
ZHJlbkFuZFJlbW92ZUZyb21PbGRQYXJlbnQobmV3Q2hpbGQsIHRhcmdldHMsIGVjKTsKICAgICBp
ZiAoZWMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIERvZXMgdGhpcyB5ZXQgYW5v
dGhlciBjaGVjayBiZWNhdXNlIGNvbGxlY3RDaGlsZHJlbkFuZFJlbW92ZUZyb21PbGRQYXJlbnQo
KSBmaXJlcyBhIE11dGF0aW9uRXZlbnQuCi0gICAgaWYgKCFjaGVja1JlcGxhY2VDaGlsZCh0aGlz
LCBuZXdDaGlsZC5nZXQoKSwgb2xkQ2hpbGQsIGVjKSkKKyAgICBpZiAoIWNoZWNrUmVwbGFjZUNo
aWxkKCp0aGlzLCBuZXdDaGlsZCwgb2xkQ2hpbGQsIGVjKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsSW5zZXJ0RE9NTm9kZShkb2N1
bWVudCgpLCAqdGhpcyk7CkBAIC01MTUsNyArNTA2LDcgQEAgdm9pZCBDb250YWluZXJOb2RlOjpk
aXNjb25uZWN0RGVzY2VuZGFudEZyYW1lcygpCiAgICAgZGlzY29ubmVjdFN1YmZyYW1lc0lmTmVl
ZGVkKCp0aGlzLCBSb290QW5kRGVzY2VuZGFudHMpOwogfQogCi1ib29sIENvbnRhaW5lck5vZGU6
OnJlbW92ZUNoaWxkKE5vZGUqIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKK2Jvb2wgQ29u
dGFpbmVyTm9kZTo6cmVtb3ZlQ2hpbGQoTm9kZSYgb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogewogICAgIC8vIENoZWNrIHRoYXQgdGhpcyBub2RlIGlzIG5vdCAiZmxvYXRpbmciLgogICAg
IC8vIElmIGl0IGlzLCBpdCBjYW4gYmUgZGVsZXRlZCBhcyBhIHNpZGUgZWZmZWN0IG9mIHNlbmRp
bmcgbXV0YXRpb24gZXZlbnRzLgpAQCAtNTMyLDEyICs1MjMsMTIgQEAgYm9vbCBDb250YWluZXJO
b2RlOjpyZW1vdmVDaGlsZChOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAg
fQogCiAgICAgLy8gTk9UX0ZPVU5EX0VSUjogUmFpc2VkIGlmIG9sZENoaWxkIGlzIG5vdCBhIGNo
aWxkIG9mIHRoaXMgbm9kZS4KLSAgICBpZiAoIW9sZENoaWxkIHx8IG9sZENoaWxkLT5wYXJlbnRO
b2RlKCkgIT0gdGhpcykgeworICAgIGlmIChvbGRDaGlsZC5wYXJlbnROb2RlKCkgIT0gdGhpcykg
ewogICAgICAgICBlYyA9IE5PVF9GT1VORF9FUlI7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CiAKLSAgICBSZWY8Tm9kZT4gY2hpbGQoKm9sZENoaWxkKTsKKyAgICBSZWY8Tm9kZT4gY2hp
bGQob2xkQ2hpbGQpOwogCiAgICAgZG9jdW1lbnQoKS5yZW1vdmVGb2N1c2VkTm9kZU9mU3VidHJl
ZShjaGlsZC5wdHIoKSk7CiAKQEAgLTY3MCw3ICs2NjEsNyBAQCB2b2lkIENvbnRhaW5lck5vZGU6
OnJlbW92ZUNoaWxkcmVuKCkKICAgICBkaXNwYXRjaFN1YnRyZWVNb2RpZmllZEV2ZW50KCk7CiB9
CiAKLWJvb2wgQ29udGFpbmVyTm9kZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdD
aGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCitib29sIENvbnRhaW5lck5vZGU6OmFwcGVuZENoaWxk
KFJlZjxOb2RlPiYmIG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBSZWY8Q29u
dGFpbmVyTm9kZT4gcHJvdGVjdCgqdGhpcyk7CiAKQEAgLTY4MSwxNCArNjcyLDE0IEBAIGJvb2wg
Q29udGFpbmVyTm9kZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiAgICAgZWMgPSAwOwogCiAgICAgLy8gTWFrZSBzdXJlIGFkZGluZyB0
aGUgbmV3IGNoaWxkIGlzIG9rCi0gICAgaWYgKCFjaGVja0FkZENoaWxkKHRoaXMsIG5ld0NoaWxk
LmdldCgpLCBlYykpCisgICAgaWYgKCFjaGVja0FkZENoaWxkKCp0aGlzLCBuZXdDaGlsZCwgZWMp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAobmV3Q2hpbGQgPT0gbV9sYXN0Q2hp
bGQpIC8vIG5vdGhpbmcgdG8gZG8KLSAgICAgICAgcmV0dXJuIG5ld0NoaWxkOworICAgIGlmIChu
ZXdDaGlsZC5wdHIoKSA9PSBtX2xhc3RDaGlsZCkgLy8gbm90aGluZyB0byBkbworICAgICAgICBy
ZXR1cm4gdHJ1ZTsKIAogICAgIE5vZGVWZWN0b3IgdGFyZ2V0czsKLSAgICBjb2xsZWN0Q2hpbGRy
ZW5BbmRSZW1vdmVGcm9tT2xkUGFyZW50KCpuZXdDaGlsZC5nZXQoKSwgdGFyZ2V0cywgZWMpOwor
ICAgIGNvbGxlY3RDaGlsZHJlbkFuZFJlbW92ZUZyb21PbGRQYXJlbnQobmV3Q2hpbGQsIHRhcmdl
dHMsIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtNjk2LDcg
KzY4Nyw3IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2Rl
PiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAg
ICAgLy8gV2UgbmVlZCB0aGlzIGV4dHJhIGNoZWNrIGJlY2F1c2UgY29sbGVjdENoaWxkcmVuQW5k
UmVtb3ZlRnJvbU9sZFBhcmVudCgpIGNhbiBmaXJlIG11dGF0aW9uIGV2ZW50cy4KLSAgICBpZiAo
IWNoZWNrQWNjZXB0Q2hpbGRHdWFyYW50ZWVkTm9kZVR5cGVzKHRoaXMsIG5ld0NoaWxkLmdldCgp
LCBlYykpCisgICAgaWYgKCFjaGVja0FjY2VwdENoaWxkR3VhcmFudGVlZE5vZGVUeXBlcygqdGhp
cywgbmV3Q2hpbGQsIGVjKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjp3aWxsSW5zZXJ0RE9NTm9kZShkb2N1bWVudCgpLCAqdGhpcyk7CkBA
IC03NTksMTYgKzc1MCwxNiBAQCB2b2lkIENvbnRhaW5lck5vZGU6OmNoaWxkcmVuQ2hhbmdlZChj
b25zdCBDaGlsZENoYW5nZSYgY2hhbmdlKQogICAgIGludmFsaWRhdGVOb2RlTGlzdEFuZENvbGxl
Y3Rpb25DYWNoZXNJbkFuY2VzdG9ycygpOwogfQogCi12b2lkIENvbnRhaW5lck5vZGU6OmNsb25l
Q2hpbGROb2RlcyhDb250YWluZXJOb2RlKiBjbG9uZSkKK3ZvaWQgQ29udGFpbmVyTm9kZTo6Y2xv
bmVDaGlsZE5vZGVzKENvbnRhaW5lck5vZGUmIGNsb25lKQogewogICAgIEV4Y2VwdGlvbkNvZGUg
ZWMgPSAwOwotICAgIERvY3VtZW50JiB0YXJnZXREb2N1bWVudCA9IGNsb25lLT5kb2N1bWVudCgp
OworICAgIERvY3VtZW50JiB0YXJnZXREb2N1bWVudCA9IGNsb25lLmRvY3VtZW50KCk7CiAgICAg
Zm9yIChOb2RlKiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQgJiYgIWVjOyBjaGlsZCA9IGNo
aWxkLT5uZXh0U2libGluZygpKSB7Ci0gICAgICAgIFJlZlB0cjxOb2RlPiBjbG9uZWRDaGlsZCA9
IGNoaWxkLT5jbG9uZU5vZGVJbnRlcm5hbCh0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlv
bjo6U2VsZldpdGhUZW1wbGF0ZUNvbnRlbnQpOwotICAgICAgICBjbG9uZS0+YXBwZW5kQ2hpbGQo
Y2xvbmVkQ2hpbGQsIGVjKTsKKyAgICAgICAgUmVmPE5vZGU+IGNsb25lZENoaWxkID0gY2hpbGQt
PmNsb25lTm9kZUludGVybmFsKHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uOjpTZWxm
V2l0aFRlbXBsYXRlQ29udGVudCk7CisgICAgICAgIGNsb25lLmFwcGVuZENoaWxkKGNsb25lZENo
aWxkLmNvcHlSZWYoKSwgZWMpOwogCi0gICAgICAgIGlmICghZWMgJiYgaXM8Q29udGFpbmVyTm9k
ZT4oY2hpbGQpKQotICAgICAgICAgICAgZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4oY2hpbGQpLT5j
bG9uZUNoaWxkTm9kZXMoZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4oY2xvbmVkQ2hpbGQuZ2V0KCkp
KTsKKyAgICAgICAgaWYgKCFlYyAmJiBpczxDb250YWluZXJOb2RlPigqY2hpbGQpKQorICAgICAg
ICAgICAgZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4oKmNoaWxkKS5jbG9uZUNoaWxkTm9kZXMoZG93
bmNhc3Q8Q29udGFpbmVyTm9kZT4oY2xvbmVkQ2hpbGQuZ2V0KCkpKTsKICAgICB9CiB9CiAKQEAg
LTk0Nyw3ICs5MzgsNyBAQCB2b2lkIENvbnRhaW5lck5vZGU6OmFwcGVuZChWZWN0b3I8Tm9kZU9y
U3RyaW5nPiYmIG5vZGVPclN0cmluZ1ZlY3RvciwgRXhjZXB0aW9uQwogICAgIGlmIChlYyB8fCAh
bm9kZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXBwZW5kQ2hpbGQobm9kZS5yZWxlYXNlKCks
IGVjKTsKKyAgICBhcHBlbmRDaGlsZChub2RlLnJlbGVhc2VOb25OdWxsKCksIGVjKTsKIH0KIAog
dm9pZCBDb250YWluZXJOb2RlOjpwcmVwZW5kKFZlY3RvcjxOb2RlT3JTdHJpbmc+JiYgbm9kZU9y
U3RyaW5nVmVjdG9yLCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTk1Niw3ICs5NDcsNyBAQCB2b2lk
IENvbnRhaW5lck5vZGU6OnByZXBlbmQoVmVjdG9yPE5vZGVPclN0cmluZz4mJiBub2RlT3JTdHJp
bmdWZWN0b3IsIEV4Y2VwdGlvbgogICAgIGlmIChlYyB8fCAhbm9kZSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgaW5zZXJ0QmVmb3JlKG5vZGUucmVsZWFzZSgpLCBmaXJzdENoaWxkKCksIGVjKTsK
KyAgICBpbnNlcnRCZWZvcmUobm9kZS5yZWxlYXNlTm9uTnVsbCgpLCBmaXJzdENoaWxkKCksIGVj
KTsKIH0KIAogSFRNTENvbGxlY3Rpb24qIENvbnRhaW5lck5vZGU6OmNhY2hlZEhUTUxDb2xsZWN0
aW9uKENvbGxlY3Rpb25UeXBlIHR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Q29udGFpbmVyTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaAppbmRl
eCAwNDUyNDAwNDFmMmI3MTMxZmIyNmE0ZThmMTkxNmI5YTZjYjliMGFlLi5hNmIxMGE3NjVmMGVl
OGJjYTcyYjhmZmYwMzQzM2I3M2IxODdiYTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vQ29udGFpbmVyTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2Rl
LmgKQEAgLTEwMiwxMCArMTAyLDEwIEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB1bnNp
Z25lZCBjb3VudENoaWxkTm9kZXMoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBOb2RlKiB0
cmF2ZXJzZVRvQ2hpbGRBdCh1bnNpZ25lZCkgY29uc3Q7CiAKLSAgICBib29sIGluc2VydEJlZm9y
ZShQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiByZWZDaGlsZCwgRXhjZXB0aW9uQ29k
ZSYgPSBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKLSAgICBib29sIHJlcGxhY2VDaGlsZChQYXNzUmVm
UHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgPSBBU1NF
UlRfTk9fRVhDRVBUSU9OKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIHJlbW92ZUNoaWxkKE5v
ZGUqIGNoaWxkLCBFeGNlcHRpb25Db2RlJiA9IEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgIFdF
QkNPUkVfRVhQT1JUIGJvb2wgYXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwg
RXhjZXB0aW9uQ29kZSYgPSBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBib29sIGluc2VydEJl
Zm9yZShSZWY8Tm9kZT4mJiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hpbGQsIEV4Y2VwdGlvbkNvZGUm
ID0gQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgYm9vbCByZXBsYWNlQ2hpbGQoUmVmPE5vZGU+
JiYgbmV3Q2hpbGQsIE5vZGUmIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiA9IEFTU0VSVF9OT19F
WENFUFRJT04pOworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgcmVtb3ZlQ2hpbGQoTm9kZSYgY2hp
bGQsIEV4Y2VwdGlvbkNvZGUmID0gQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBhcHBlbmRDaGlsZChSZWY8Tm9kZT4mJiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29k
ZSYgPSBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAogICAgIC8vIFRoZXNlIG1ldGhvZHMgYXJlIG9u
bHkgdXNlZCBkdXJpbmcgcGFyc2luZy4KICAgICAvLyBUaGV5IGRvbid0IHNlbmQgRE9NIG11dGF0
aW9uIGV2ZW50cyBvciBoYW5kbGUgcmVwYXJlbnRpbmcuCkBAIC0xMTcsNyArMTE3LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgcmVtb3ZlQ2hpbGRyZW4oKTsKICAgICB2b2lkIHRha2VBbGxDaGlsZHJl
bkZyb20oQ29udGFpbmVyTm9kZSopOwogCi0gICAgdm9pZCBjbG9uZUNoaWxkTm9kZXMoQ29udGFp
bmVyTm9kZSogY2xvbmUpOworICAgIHZvaWQgY2xvbmVDaGlsZE5vZGVzKENvbnRhaW5lck5vZGUm
IGNsb25lKTsKIAogICAgIGVudW0gQ2hpbGRDaGFuZ2VUeXBlIHsgRWxlbWVudEluc2VydGVkLCBF
bGVtZW50UmVtb3ZlZCwgVGV4dEluc2VydGVkLCBUZXh0UmVtb3ZlZCwgVGV4dENoYW5nZWQsIEFs
bENoaWxkcmVuUmVtb3ZlZCwgTm9uQ29udGVudHNDaGlsZENoYW5nZWQgfTsKICAgICBlbnVtIENo
aWxkQ2hhbmdlU291cmNlIHsgQ2hpbGRDaGFuZ2VTb3VyY2VQYXJzZXIsIENoaWxkQ2hhbmdlU291
cmNlQVBJIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAppbmRleCBh
NGEzZjhkNTlhYTJhMTYxZjY3MmY0NGQ2M2ZmODQ4NjRiN2IyMDMzLi42MzNkMjkxM2Y3MTZlYTg0
YjY3ZjZkMjgwOTNlNjhkNDExZTMxOWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RE9NSW1wbGVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1l
bnRhdGlvbi5jcHAKQEAgLTIzMSw5ICsyMzEsOSBAQCBSZWZQdHI8RG9jdW1lbnQ+IERPTUltcGxl
bWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudChjb25zdCBTdHJpbmcmIG5hbWVzcGFjZVVSSSwKICAg
ICB9CiAKICAgICBpZiAoZG9jdHlwZSkKLSAgICAgICAgZG9jLT5hcHBlbmRDaGlsZChkb2N0eXBl
KTsKKyAgICAgICAgZG9jLT5hcHBlbmRDaGlsZCgqZG9jdHlwZSk7CiAgICAgaWYgKGRvY3VtZW50
RWxlbWVudCkKLSAgICAgICAgZG9jLT5hcHBlbmRDaGlsZChkb2N1bWVudEVsZW1lbnQucmVsZWFz
ZSgpKTsKKyAgICAgICAgZG9jLT5hcHBlbmRDaGlsZChkb2N1bWVudEVsZW1lbnQucmVsZWFzZU5v
bk51bGwoKSk7CiAKICAgICByZXR1cm4gZG9jOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5k
ZXggYzA5NDFkMjUxOTE0MTQ1ODIwYjViZGM1MzA1OGQ2OGNkOTNmMzRhYi4uNjAzMTJjYTM1MDEz
NjU0Mjk3NzQ3YzgxNGYxYjM0Zjg3ZDQ3NDU1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBA
IC0xMDA5LDcgKzEwMDksNyBAQCBSZWZQdHI8Tm9kZT4gRG9jdW1lbnQ6OmFkb3B0Tm9kZShQYXNz
UmVmUHRyPE5vZGU+IHNvdXJjZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0KICAgICAgICAgaWYgKHNvdXJjZS0+cGFyZW50Tm9kZSgpKSB7Ci0gICAgICAgICAg
ICBzb3VyY2UtPnBhcmVudE5vZGUoKS0+cmVtb3ZlQ2hpbGQoc291cmNlLmdldCgpLCBlYyk7Cisg
ICAgICAgICAgICBzb3VyY2UtPnBhcmVudE5vZGUoKS0+cmVtb3ZlQ2hpbGQoKnNvdXJjZSwgZWMp
OwogICAgICAgICAgICAgaWYgKGVjKQogICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgICAgICB9CkBAIC0xNTM3LDcgKzE1MzcsNyBAQCB2b2lkIERvY3VtZW50OjpzZXRUaXRsZShj
b25zdCBTdHJpbmcmIHRpdGxlKQogICAgIGVsc2UgaWYgKCFtX3RpdGxlRWxlbWVudCkgewogICAg
ICAgICBpZiAoSFRNTEVsZW1lbnQqIGhlYWRFbGVtZW50ID0gaGVhZCgpKSB7CiAgICAgICAgICAg
ICBtX3RpdGxlRWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQodGl0bGVUYWcsIGZhbHNlKTsKLSAgICAg
ICAgICAgIGhlYWRFbGVtZW50LT5hcHBlbmRDaGlsZChtX3RpdGxlRWxlbWVudCwgQVNTRVJUX05P
X0VYQ0VQVElPTik7CisgICAgICAgICAgICBoZWFkRWxlbWVudC0+YXBwZW5kQ2hpbGQoKm1fdGl0
bGVFbGVtZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICAgICAgfQogICAgIH0KIApAQCAt
MjUwOSwxMSArMjUwOSwxMCBAQCB2b2lkIERvY3VtZW50OjpzZXRCb2R5T3JGcmFtZXNldChQYXNz
UmVmUHRyPEhUTUxFbGVtZW50PiBwcnBOZXdCb2R5LCBFeGNlcHRpb25DbwogICAgICAgICBuZXdC
b2R5ID0gZG93bmNhc3Q8SFRNTEVsZW1lbnQ+KG5vZGUuZ2V0KCkpOwogICAgIH0KIAotICAgIEhU
TUxFbGVtZW50KiBiID0gYm9keU9yRnJhbWVzZXQoKTsKLSAgICBpZiAoIWIpCi0gICAgICAgIGRv
Y3VtZW50RWxlbWVudCgpLT5hcHBlbmRDaGlsZChuZXdCb2R5LnJlbGVhc2UoKSwgZWMpOworICAg
IGlmIChhdXRvKiBib2R5ID0gYm9keU9yRnJhbWVzZXQoKSkKKyAgICAgICAgZG9jdW1lbnRFbGVt
ZW50KCktPnJlcGxhY2VDaGlsZChuZXdCb2R5LnJlbGVhc2VOb25OdWxsKCksICpib2R5LCBlYyk7
CiAgICAgZWxzZQotICAgICAgICBkb2N1bWVudEVsZW1lbnQoKS0+cmVwbGFjZUNoaWxkKG5ld0Jv
ZHkucmVsZWFzZSgpLCBiLCBlYyk7CisgICAgICAgIGRvY3VtZW50RWxlbWVudCgpLT5hcHBlbmRD
aGlsZChuZXdCb2R5LnJlbGVhc2VOb25OdWxsKCksIGVjKTsKIH0KIAogSFRNTEhlYWRFbGVtZW50
KiBEb2N1bWVudDo6aGVhZCgpCkBAIC0zMzE3LDEzICszMzE2LDkgQEAgYm9vbCBEb2N1bWVudDo6
Y2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsK
IH0KIAotYm9vbCBEb2N1bWVudDo6Y2FuUmVwbGFjZUNoaWxkKE5vZGUqIG5ld0NoaWxkLCBOb2Rl
KiBvbGRDaGlsZCkKK2Jvb2wgRG9jdW1lbnQ6OmNhblJlcGxhY2VDaGlsZChOb2RlJiBuZXdDaGls
ZCwgTm9kZSYgb2xkQ2hpbGQpCiB7Ci0gICAgaWYgKCFvbGRDaGlsZCkKLSAgICAgICAgLy8gQ29u
dGFpbmVyTm9kZTo6cmVwbGFjZUNoaWxkIHdpbGwgcmFpc2UgYSBOT1RfRk9VTkRfRVJSLgotICAg
ICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGlmIChvbGRDaGlsZC0+bm9kZVR5cGUoKSA9PSBuZXdD
aGlsZC0+bm9kZVR5cGUoKSkKKyAgICBpZiAob2xkQ2hpbGQubm9kZVR5cGUoKSA9PSBuZXdDaGls
ZC5ub2RlVHlwZSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGludCBudW1Eb2N0eXBl
cyA9IDA7CkBAIC0zMzMyLDcgKzMzMjcsNyBAQCBib29sIERvY3VtZW50OjpjYW5SZXBsYWNlQ2hp
bGQoTm9kZSogbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkKQogICAgIC8vIEZpcnN0LCBjaGVjayBo
b3cgbWFueSBkb2N0eXBlcyBhbmQgZWxlbWVudHMgd2UgaGF2ZSwgbm90IGNvdW50aW5nCiAgICAg
Ly8gdGhlIGNoaWxkIHdlJ3JlIGFib3V0IHRvIHJlbW92ZS4KICAgICBmb3IgKE5vZGUqIGMgPSBm
aXJzdENoaWxkKCk7IGM7IGMgPSBjLT5uZXh0U2libGluZygpKSB7Ci0gICAgICAgIGlmIChjID09
IG9sZENoaWxkKQorICAgICAgICBpZiAoYyA9PSAmb2xkQ2hpbGQpCiAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgCiAgICAgICAgIHN3aXRjaCAoYy0+bm9kZVR5cGUoKSkgewpAQCAtMzM0
OCw4ICszMzQzLDggQEAgYm9vbCBEb2N1bWVudDo6Y2FuUmVwbGFjZUNoaWxkKE5vZGUqIG5ld0No
aWxkLCBOb2RlKiBvbGRDaGlsZCkKICAgICB9CiAgICAgCiAgICAgLy8gVGhlbiwgc2VlIGhvdyBt
YW55IGRvY3R5cGVzIGFuZCBlbGVtZW50cyBtaWdodCBiZSBhZGRlZCBieSB0aGUgbmV3IGNoaWxk
LgotICAgIGlmIChuZXdDaGlsZC0+aXNEb2N1bWVudEZyYWdtZW50KCkpIHsKLSAgICAgICAgZm9y
IChOb2RlKiBjID0gbmV3Q2hpbGQtPmZpcnN0Q2hpbGQoKTsgYzsgYyA9IGMtPm5leHRTaWJsaW5n
KCkpIHsKKyAgICBpZiAobmV3Q2hpbGQuaXNEb2N1bWVudEZyYWdtZW50KCkpIHsKKyAgICAgICAg
Zm9yIChOb2RlKiBjID0gbmV3Q2hpbGQuZmlyc3RDaGlsZCgpOyBjOyBjID0gYy0+bmV4dFNpYmxp
bmcoKSkgewogICAgICAgICAgICAgc3dpdGNoIChjLT5ub2RlVHlwZSgpKSB7CiAgICAgICAgICAg
ICBjYXNlIEFUVFJJQlVURV9OT0RFOgogICAgICAgICAgICAgY2FzZSBDREFUQV9TRUNUSU9OX05P
REU6CkBAIC0zMzcyLDcgKzMzNjcsNyBAQCBib29sIERvY3VtZW50OjpjYW5SZXBsYWNlQ2hpbGQo
Tm9kZSogbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkKQogICAgICAgICAgICAgfQogICAgICAgICB9
CiAgICAgfSBlbHNlIHsKLSAgICAgICAgc3dpdGNoIChuZXdDaGlsZC0+bm9kZVR5cGUoKSkgewor
ICAgICAgICBzd2l0Y2ggKG5ld0NoaWxkLm5vZGVUeXBlKCkpIHsKICAgICAgICAgY2FzZSBBVFRS
SUJVVEVfTk9ERToKICAgICAgICAgY2FzZSBDREFUQV9TRUNUSU9OX05PREU6CiAgICAgICAgIGNh
c2UgRE9DVU1FTlRfRlJBR01FTlRfTk9ERToKQEAgLTM0MDAsNyArMzM5NSw3IEBAIGJvb2wgRG9j
dW1lbnQ6OmNhblJlcGxhY2VDaGlsZChOb2RlKiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQpCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLVJlZlB0cjxOb2RlPiBEb2N1bWVudDo6Y2xvbmVOb2RlSW50
ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uIHR5cGUpCitSZWY8Tm9kZT4gRG9jdW1l
bnQ6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbiB0eXBlKQog
ewogICAgIFJlZjxEb2N1bWVudD4gY2xvbmUgPSBjbG9uZURvY3VtZW50V2l0aG91dENoaWxkcmVu
KCk7CiAgICAgY2xvbmUtPmNsb25lRGF0YUZyb21Eb2N1bWVudCgqdGhpcyk7CkBAIC0zNDA5LDcg
KzM0MDQsNyBAQCBSZWZQdHI8Tm9kZT4gRG9jdW1lbnQ6OmNsb25lTm9kZUludGVybmFsKERvY3Vt
ZW50JiwgQ2xvbmluZ09wZXJhdGlvbiB0eXBlKQogICAgIGNhc2UgQ2xvbmluZ09wZXJhdGlvbjo6
U2VsZldpdGhUZW1wbGF0ZUNvbnRlbnQ6CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2xvbmlu
Z09wZXJhdGlvbjo6RXZlcnl0aGluZzoKLSAgICAgICAgY2xvbmVDaGlsZE5vZGVzKGNsb25lLnB0
cigpKTsKKyAgICAgICAgY2xvbmVDaGlsZE5vZGVzKGNsb25lKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogICAgIHJldHVybiBXVEY6Om1vdmUoY2xvbmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRl
eCA5ZWY0OGM5MzM4MDczYWUwMjljMmVhMzdjOTM3NWQ1Y2ViOTlhNmQ0Li4xMzVjN2U2Mzk1NTBh
ZDJjNzRlOGQzZjczNmRmZDI4MWJiZGFlY2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtNzQ3
LDcgKzc0Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG5vZGVDaGlsZHJlbldpbGxCZVJlbW92ZWQo
Q29udGFpbmVyTm9kZSYpOwogICAgIC8vIG5vZGVXaWxsQmVSZW1vdmVkIGlzIG9ubHkgc2FmZSB3
aGVuIHJlbW92aW5nIG9uZSBub2RlIGF0IGEgdGltZS4KICAgICB2b2lkIG5vZGVXaWxsQmVSZW1v
dmVkKE5vZGUmKTsKLSAgICBib29sIGNhblJlcGxhY2VDaGlsZChOb2RlKiBuZXdDaGlsZCwgTm9k
ZSogb2xkQ2hpbGQpOworICAgIGJvb2wgY2FuUmVwbGFjZUNoaWxkKE5vZGUmIG5ld0NoaWxkLCBO
b2RlJiBvbGRDaGlsZCk7CiAKICAgICB2b2lkIHRleHRJbnNlcnRlZChOb2RlKiwgdW5zaWduZWQg
b2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpOwogICAgIHZvaWQgdGV4dFJlbW92ZWQoTm9kZSosIHVu
c2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKTsKQEAgLTEzMTEsNyArMTMxMSw3IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCBTdHJpbmcgbm9kZU5hbWUoKSBjb25zdCBvdmVycmlkZSBmaW5h
bDsKICAgICB2aXJ0dWFsIE5vZGVUeXBlIG5vZGVUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7
CiAgICAgdmlydHVhbCBib29sIGNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUpIGNvbnN0IG92ZXJy
aWRlIGZpbmFsOwotICAgIHZpcnR1YWwgUmVmUHRyPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERv
Y3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCBS
ZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBv
dmVycmlkZSBmaW5hbDsKICAgICB2b2lkIGNsb25lRGF0YUZyb21Eb2N1bWVudChjb25zdCBEb2N1
bWVudCYpOwogCiAgICAgdmlydHVhbCB2b2lkIHJlZlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBv
dmVycmlkZSBmaW5hbCB7IHJlZigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnRGcmFnbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVu
dC5jcHAKaW5kZXggNGZhYjU4ZTM0ZDQ2NTVlY2Y0ZTM3ZGE1ZGQ5YzNjNTYyMmY0MDc2OC4uZjli
MzhhMGJkMjhlOGUzYzYwOTM0YWZmMWE2MDA1OTI3MDkwM2ZlYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudEZyYWdtZW50LmNwcApAQCAtNjcsMTggKzY3LDE4IEBAIGJvb2wgRG9jdW1lbnRG
cmFnbWVudDo6Y2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdAogICAgIH0KIH0K
IAotUmVmUHRyPE5vZGU+IERvY3VtZW50RnJhZ21lbnQ6OmNsb25lTm9kZUludGVybmFsKERvY3Vt
ZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbiB0eXBlKQorUmVmPE5vZGU+IERv
Y3VtZW50RnJhZ21lbnQ6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVu
dCwgQ2xvbmluZ09wZXJhdGlvbiB0eXBlKQogewotICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50
PiBjbG9uZSA9IGNyZWF0ZSh0YXJnZXREb2N1bWVudCk7CisgICAgUmVmPERvY3VtZW50RnJhZ21l
bnQ+IGNsb25lID0gY3JlYXRlKHRhcmdldERvY3VtZW50KTsKICAgICBzd2l0Y2ggKHR5cGUpIHsK
ICAgICBjYXNlIENsb25pbmdPcGVyYXRpb246Ok9ubHlTZWxmOgogICAgIGNhc2UgQ2xvbmluZ09w
ZXJhdGlvbjo6U2VsZldpdGhUZW1wbGF0ZUNvbnRlbnQ6CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgQ2xvbmluZ09wZXJhdGlvbjo6RXZlcnl0aGluZzoKLSAgICAgICAgY2xvbmVDaGlsZE5vZGVz
KGNsb25lLmdldCgpKTsKKyAgICAgICAgY2xvbmVDaGlsZE5vZGVzKGNsb25lKTsKICAgICAgICAg
YnJlYWs7CiAgICAgfQotICAgIHJldHVybiBjbG9uZTsKKyAgICByZXR1cm4gV1RGOjptb3ZlKGNs
b25lKTsKIH0KIAogdm9pZCBEb2N1bWVudEZyYWdtZW50OjpwYXJzZUhUTUwoY29uc3QgU3RyaW5n
JiBzb3VyY2UsIEVsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBQYXJzZXJDb250ZW50UG9saWN5IHBh
cnNlckNvbnRlbnRQb2xpY3kpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnRGcmFnbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuaAppbmRl
eCBkMDdlMDM0YzAwN2U2NjI5NjI1MWJkMGMwYjE2MDZkNzA5YTA1ZjY1Li42ZWIxZWQ2MWM0NjIw
MTNmZDA1NzRkNGFmZTNlY2M1ZTI0Yzg0NWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnRGcmFnbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZy
YWdtZW50LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJvdGVjdGVkOgogCiBwcml2YXRlOgogICAgIHZp
cnR1YWwgTm9kZVR5cGUgbm9kZVR5cGUoKSBjb25zdCBvdmVycmlkZSBmaW5hbDsKLSAgICB2aXJ0
dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVy
YXRpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNsb25lTm9kZUludGVybmFs
KERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29s
IGNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUpIGNvbnN0IG92ZXJyaWRlOwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnRUeXBlLmNwcAppbmRleCA2N2UzZDUzODQzZjgyYTBiYzU5YjlkMGVmZmNh
ZTI3YWYzMGI5NjM0Li5jMTlkMDE4MmFmYWZkYTVkOGMyMGVjZmQ3ZDM5ZDE1YmEwMTg3ZWJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRUeXBlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnRUeXBlLmNwcApAQCAtNTEsNyArNTEsNyBAQCBOb2RlOjpO
b2RlVHlwZSBEb2N1bWVudFR5cGU6Om5vZGVUeXBlKCkgY29uc3QKICAgICByZXR1cm4gRE9DVU1F
TlRfVFlQRV9OT0RFOwogfQogCi1SZWZQdHI8Tm9kZT4gRG9jdW1lbnRUeXBlOjpjbG9uZU5vZGVJ
bnRlcm5hbChEb2N1bWVudCYgZG9jdW1lbnRUYXJnZXQsIENsb25pbmdPcGVyYXRpb24pCitSZWY8
Tm9kZT4gRG9jdW1lbnRUeXBlOjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgZG9jdW1lbnRU
YXJnZXQsIENsb25pbmdPcGVyYXRpb24pCiB7CiAgICAgcmV0dXJuIGNyZWF0ZShkb2N1bWVudFRh
cmdldCwgbV9uYW1lLCBtX3B1YmxpY0lkLCBtX3N5c3RlbUlkKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudFR5cGUuaAppbmRleCBjN2ExZDliNTI2ZjZlZWVhMTFjYTNhNzI3NWViMzFmNWE2ZTEzMmE1
Li5jNzljMGNlYTg2OWQyMDU5YmJkYmI4MjE1OWM4ZmYxMDc4ODM4ZWQ2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50VHlwZS5oCkBAIC01Miw3ICs1Miw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBV
UkwgYmFzZVVSSSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1l
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBOb2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0
IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVmUHRyPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERv
Y3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8Tm9k
ZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlk
ZTsKIAogICAgIFN0cmluZyBtX25hbWU7CiAgICAgU3RyaW5nIG1fcHVibGljSWQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKaW5kZXggNjc1MDAwYTU0YTcwODI5YzBkMTExMmQ5OGJmODliY2FjZGQ3YzM5
Yy4uM2E4OTA2MTdmYTNhMDdjN2ExOWNhN2EzNDI5N2MxNzE5Mjg0Yjk5YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcApAQCAtMzEyLDM4ICszMTIsMzcgQEAgdm9pZCBFbGVtZW50OjpkaXNwYXRjaFNp
bXVsYXRlZENsaWNrKEV2ZW50KiB1bmRlcmx5aW5nRXZlbnQsIFNpbXVsYXRlZENsaWNrTW91c2UK
ICAgICBFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2sodGhpcywgdW5kZXJs
eWluZ0V2ZW50LCBldmVudE9wdGlvbnMsIHZpc3VhbE9wdGlvbnMpOwogfQogCi1SZWZQdHI8Tm9k
ZT4gRWxlbWVudDo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBD
bG9uaW5nT3BlcmF0aW9uIHR5cGUpCitSZWY8Tm9kZT4gRWxlbWVudDo6Y2xvbmVOb2RlSW50ZXJu
YWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uIHR5cGUpCiB7CiAg
ICAgc3dpdGNoICh0eXBlKSB7CiAgICAgY2FzZSBDbG9uaW5nT3BlcmF0aW9uOjpPbmx5U2VsZjoK
ICAgICBjYXNlIENsb25pbmdPcGVyYXRpb246OlNlbGZXaXRoVGVtcGxhdGVDb250ZW50OgogICAg
ICAgICByZXR1cm4gY2xvbmVFbGVtZW50V2l0aG91dENoaWxkcmVuKHRhcmdldERvY3VtZW50KTsK
ICAgICBjYXNlIENsb25pbmdPcGVyYXRpb246OkV2ZXJ5dGhpbmc6Ci0gICAgICAgIHJldHVybiBj
bG9uZUVsZW1lbnRXaXRoQ2hpbGRyZW4odGFyZ2V0RG9jdW1lbnQpOworICAgICAgICBicmVhazsK
ICAgICB9Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgcmV0dXJuIGNsb25lRWxlbWVudFdpdGhDaGlsZHJlbih0YXJnZXREb2N1bWVudCk7CiB9CiAK
LVJlZlB0cjxFbGVtZW50PiBFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRoQ2hpbGRyZW4oRG9jdW1l
bnQmIHRhcmdldERvY3VtZW50KQorUmVmPEVsZW1lbnQ+IEVsZW1lbnQ6OmNsb25lRWxlbWVudFdp
dGhDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQpCiB7Ci0gICAgUmVmUHRyPEVsZW1l
bnQ+IGNsb25lID0gY2xvbmVFbGVtZW50V2l0aG91dENoaWxkcmVuKHRhcmdldERvY3VtZW50KTsK
LSAgICBjbG9uZUNoaWxkTm9kZXMoY2xvbmUuZ2V0KCkpOwotICAgIHJldHVybiBjbG9uZS5yZWxl
YXNlKCk7CisgICAgUmVmPEVsZW1lbnQ+IGNsb25lID0gY2xvbmVFbGVtZW50V2l0aG91dENoaWxk
cmVuKHRhcmdldERvY3VtZW50KTsKKyAgICBjbG9uZUNoaWxkTm9kZXMoY2xvbmUpOworICAgIHJl
dHVybiBjbG9uZTsKIH0KIAotUmVmUHRyPEVsZW1lbnQ+IEVsZW1lbnQ6OmNsb25lRWxlbWVudFdp
dGhvdXRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQpCitSZWY8RWxlbWVudD4gRWxl
bWVudDo6Y2xvbmVFbGVtZW50V2l0aG91dENoaWxkcmVuKERvY3VtZW50JiB0YXJnZXREb2N1bWVu
dCkKIHsKLSAgICBSZWZQdHI8RWxlbWVudD4gY2xvbmUgPSBjbG9uZUVsZW1lbnRXaXRob3V0QXR0
cmlidXRlc0FuZENoaWxkcmVuKHRhcmdldERvY3VtZW50KTsKKyAgICBSZWY8RWxlbWVudD4gY2xv
bmUgPSBjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKHRhcmdldERvY3Vt
ZW50KTsKICAgICAvLyBUaGlzIHdpbGwgY2F0Y2ggSFRNTCBlbGVtZW50cyBpbiB0aGUgd3Jvbmcg
bmFtZXNwYWNlIHRoYXQgYXJlIG5vdCBjb3JyZWN0bHkgY29waWVkLgogICAgIC8vIFRoaXMgaXMg
YSBzYW5pdHkgY2hlY2sgYXMgSFRNTCBvdmVybG9hZHMgc29tZSBvZiB0aGUgRE9NIG1ldGhvZHMu
CiAgICAgQVNTRVJUKGlzSFRNTEVsZW1lbnQoKSA9PSBjbG9uZS0+aXNIVE1MRWxlbWVudCgpKTsK
IAogICAgIGNsb25lLT5jbG9uZURhdGFGcm9tRWxlbWVudCgqdGhpcyk7Ci0gICAgcmV0dXJuIGNs
b25lLnJlbGVhc2UoKTsKKyAgICByZXR1cm4gY2xvbmU7CiB9CiAKLVJlZlB0cjxFbGVtZW50PiBF
bGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50
JiB0YXJnZXREb2N1bWVudCkKK1JlZjxFbGVtZW50PiBFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRo
b3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCkKIHsKICAg
ICByZXR1cm4gdGFyZ2V0RG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWdRTmFtZSgpLCBmYWxzZSk7
CiB9CkBAIC0yMzE5LDcgKzIzMTgsNyBAQCB2b2lkIEVsZW1lbnQ6OnNldE91dGVySFRNTChjb25z
dCBTdHJpbmcmIGh0bWwsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIGlmIChlYykKICAgICAgICAg
cmV0dXJuOwogICAgIAotICAgIHBhcmVudC0+cmVwbGFjZUNoaWxkKGZyYWdtZW50LnJlbGVhc2Uo
KSwgdGhpcywgZWMpOworICAgIHBhcmVudC0+cmVwbGFjZUNoaWxkKGZyYWdtZW50LnJlbGVhc2VO
b25OdWxsKCksICp0aGlzLCBlYyk7CiAgICAgUmVmUHRyPE5vZGU+IG5vZGUgPSBuZXh0ID8gbmV4
dC0+cHJldmlvdXNTaWJsaW5nKCkgOiBudWxscHRyOwogICAgIGlmICghZWMgJiYgaXM8VGV4dD4o
bm9kZS5nZXQoKSkpCiAgICAgICAgIG1lcmdlV2l0aE5leHRUZXh0Tm9kZShkb3duY2FzdDxUZXh0
Pigqbm9kZSksIGVjKTsKQEAgLTIzMzgsNyArMjMzNyw3IEBAIHZvaWQgRWxlbWVudDo6c2V0SW5u
ZXJIVE1MKGNvbnN0IFN0cmluZyYgaHRtbCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgICAg
ICBjb250YWluZXIgPSBkb3duY2FzdDxIVE1MVGVtcGxhdGVFbGVtZW50PigqdGhpcykuY29udGVu
dCgpOwogI2VuZGlmCiAKLSAgICAgICAgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KCpjb250
YWluZXIsIGZyYWdtZW50LnJlbGVhc2UoKSwgZWMpOworICAgICAgICByZXBsYWNlQ2hpbGRyZW5X
aXRoRnJhZ21lbnQoKmNvbnRhaW5lciwgZnJhZ21lbnQucmVsZWFzZU5vbk51bGwoKSwgZWMpOwog
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggMWU2MDcwM2NiNmIyZmQ5MzYwNzFmODVi
OWI5ZGE5ZDdhYTQwY2M0Yi4uMDQ4MTBlMWNmODQ5NWVkMjRmZDg5NDUwNTNmYWZiY2Q0MzIyZDEx
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC0yMDEsOCArMjAxLDggQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCBTdHJpbmcgbm9kZU5hbWUoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIFJlZlB0cjxF
bGVtZW50PiBjbG9uZUVsZW1lbnRXaXRoQ2hpbGRyZW4oRG9jdW1lbnQmKTsKLSAgICBSZWZQdHI8
RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dENoaWxkcmVuKERvY3VtZW50Jik7CisgICAgUmVm
PEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhDaGlsZHJlbihEb2N1bWVudCYpOworICAgIFJlZjxF
bGVtZW50PiBjbG9uZUVsZW1lbnRXaXRob3V0Q2hpbGRyZW4oRG9jdW1lbnQmKTsKIAogICAgIHZv
aWQgbm9ybWFsaXplQXR0cmlidXRlcygpOwogICAgIFN0cmluZyBub2RlTmFtZVByZXNlcnZpbmdD
YXNlKCkgY29uc3Q7CkBAIC01NjMsOCArNTYzLDggQEAgcHJpdmF0ZToKIAogICAgIC8vIGNsb25l
Tm9kZSBpcyBwcml2YXRlIHNvIHRoYXQgbm9uLXZpcnR1YWwgY2xvbmVFbGVtZW50V2l0aENoaWxk
cmVuIGFuZCBjbG9uZUVsZW1lbnRXaXRob3V0Q2hpbGRyZW4KICAgICAvLyBhcmUgdXNlZCBpbnN0
ZWFkLgotICAgIHZpcnR1YWwgUmVmUHRyPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50
JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZWZQdHI8RWxlbWVu
dD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYpOwor
ICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmlu
Z09wZXJhdGlvbikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8RWxlbWVudD4gY2xvbmVFbGVt
ZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYpOwogCiAgICAgdm9pZCBh
ZGRTaGFkb3dSb290KFJlZjxTaGFkb3dSb290PiYmKTsKICAgICB2b2lkIHJlbW92ZVNoYWRvd1Jv
b3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5jcHAKaW5kZXggYTJmZjYzYjAx
MGU2ZTI4ZTBmYzRlYWFlODVhNzRhMTNmZTlkNmM3Zi4uN2U5MWE0NjJkYTgyMDlkOTIyYzQ1ZGM4
NGM0MWEwODU1YWQ2YmUxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJl
ZmVyZW5jZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5jcHAK
QEAgLTQ2LDcgKzQ2LDcgQEAgTm9kZTo6Tm9kZVR5cGUgRW50aXR5UmVmZXJlbmNlOjpub2RlVHlw
ZSgpIGNvbnN0CiAgICAgcmV0dXJuIEVOVElUWV9SRUZFUkVOQ0VfTk9ERTsKIH0KIAotUmVmUHRy
PE5vZGU+IEVudGl0eVJlZmVyZW5jZTo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdl
dERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uKQorUmVmPE5vZGU+IEVudGl0eVJlZmVyZW5jZTo6
Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0
aW9uKQogewogICAgIHJldHVybiBjcmVhdGUodGFyZ2V0RG9jdW1lbnQsIG1fZW50aXR5TmFtZSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmgKaW5kZXggMDNmNDNjZGY5NWVhNjhm
MDA0ZDlmMTEzYmExNjhmMGY3YmZhZjM5Ni4uODZkZmViMzk4MjViMzQ1MGU3NTM1OTI1MDY4NTEx
MGIzYWYwY2E4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5j
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuaApAQCAtMzUsNyAr
MzUsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBTdHJpbmcgbm9kZU5hbWUoKSBjb25zdCBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIE5vZGVUeXBlIG5vZGVUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7
Ci0gICAgdmlydHVhbCBSZWZQdHI8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBD
bG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxOb2RlPiBjbG9uZU5v
ZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOwogCiAgICAg
U3RyaW5nIG1fZW50aXR5TmFtZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggZmRjN2ZiNTUwZGEx
NWYzYzU5ZTU5NmQ1NjEzZjczMjUyYzk1MThiYS4uMjhmMjExNDVlMTUyZWM0OTk1NTIxMWUzYjJm
ZTg0ZDhjZmJlNDgzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtNDI5LDM4ICs0MjksNTQgQEAgRWxl
bWVudCogTm9kZTo6bmV4dEVsZW1lbnRTaWJsaW5nKCkgY29uc3QKIAogYm9vbCBOb2RlOjppbnNl
cnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hpbGQsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogeworICAgIGlmICghbmV3Q2hpbGQpIHsKKyAgICAgICAgZWMgPSBUeXBl
RXJyb3I7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAgICAgaWYgKCFpczxDb250YWlu
ZXJOb2RlPigqdGhpcykpIHsKICAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIGRvd25jYXN0PENvbnRhaW5l
ck5vZGU+KCp0aGlzKS5pbnNlcnRCZWZvcmUobmV3Q2hpbGQsIHJlZkNoaWxkLCBlYyk7CisgICAg
cmV0dXJuIGRvd25jYXN0PENvbnRhaW5lck5vZGU+KCp0aGlzKS5pbnNlcnRCZWZvcmUoKm5ld0No
aWxkLCByZWZDaGlsZCwgZWMpOwogfQogCiBib29sIE5vZGU6OnJlcGxhY2VDaGlsZChQYXNzUmVm
UHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
CisgICAgaWYgKCFuZXdDaGlsZCB8fCAhb2xkQ2hpbGQpIHsKKyAgICAgICAgZWMgPSBUeXBlRXJy
b3I7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAgICAgaWYgKCFpczxDb250YWluZXJO
b2RlPigqdGhpcykpIHsKICAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIGRvd25jYXN0PENvbnRhaW5lck5v
ZGU+KCp0aGlzKS5yZXBsYWNlQ2hpbGQobmV3Q2hpbGQsIG9sZENoaWxkLCBlYyk7CisgICAgcmV0
dXJuIGRvd25jYXN0PENvbnRhaW5lck5vZGU+KCp0aGlzKS5yZXBsYWNlQ2hpbGQoKm5ld0NoaWxk
LCAqb2xkQ2hpbGQsIGVjKTsKIH0KIAogYm9vbCBOb2RlOjpyZW1vdmVDaGlsZChOb2RlKiBvbGRD
aGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CisgICAgaWYgKCFvbGRDaGlsZCkgeworICAgICAg
ICBlYyA9IFR5cGVFcnJvcjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KICAgICBpZiAo
IWlzPENvbnRhaW5lck5vZGU+KCp0aGlzKSkgewogICAgICAgICBlYyA9IE5PVF9GT1VORF9FUlI7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIGRvd25jYXN0PENvbnRh
aW5lck5vZGU+KCp0aGlzKS5yZW1vdmVDaGlsZChvbGRDaGlsZCwgZWMpOworICAgIHJldHVybiBk
b3duY2FzdDxDb250YWluZXJOb2RlPigqdGhpcykucmVtb3ZlQ2hpbGQoKm9sZENoaWxkLCBlYyk7
CiB9CiAKIGJvb2wgTm9kZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7CisgICAgaWYgKCFuZXdDaGlsZCkgeworICAgICAgICBlYyA9
IFR5cGVFcnJvcjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KICAgICBpZiAoIWlzPENv
bnRhaW5lck5vZGU+KCp0aGlzKSkgewogICAgICAgICBlYyA9IEhJRVJBUkNIWV9SRVFVRVNUX0VS
UjsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICByZXR1cm4gZG93bmNhc3Q8Q29u
dGFpbmVyTm9kZT4oKnRoaXMpLmFwcGVuZENoaWxkKG5ld0NoaWxkLCBlYyk7CisgICAgcmV0dXJu
IGRvd25jYXN0PENvbnRhaW5lck5vZGU+KCp0aGlzKS5hcHBlbmRDaGlsZCgqbmV3Q2hpbGQsIGVj
KTsKIH0KIAogc3RhdGljIEhhc2hTZXQ8UmVmUHRyPE5vZGU+PiBub2RlU2V0UHJlVHJhbnNmb3Jt
ZWRGcm9tTm9kZU9yU3RyaW5nVmVjdG9yKGNvbnN0IFZlY3RvcjxOb2RlT3JTdHJpbmc+JiBub2Rl
T3JTdHJpbmdWZWN0b3IpCkBAIC01MTUsNyArNTMxLDcgQEAgdm9pZCBOb2RlOjpiZWZvcmUoVmVj
dG9yPE5vZGVPclN0cmluZz4mJiBub2RlT3JTdHJpbmdWZWN0b3IsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogICAgIGVsc2UKICAgICAgICAgdmlhYmxlUHJldmlvdXNTaWJsaW5nID0gcGFyZW50LT5maXJz
dENoaWxkKCk7CiAKLSAgICBwYXJlbnQtPmluc2VydEJlZm9yZShub2RlLnJlbGVhc2UoKSwgdmlh
YmxlUHJldmlvdXNTaWJsaW5nLmdldCgpLCBlYyk7CisgICAgcGFyZW50LT5pbnNlcnRCZWZvcmUo
bm9kZS5yZWxlYXNlTm9uTnVsbCgpLCB2aWFibGVQcmV2aW91c1NpYmxpbmcuZ2V0KCksIGVjKTsK
IH0KIAogdm9pZCBOb2RlOjphZnRlcihWZWN0b3I8Tm9kZU9yU3RyaW5nPiYmIG5vZGVPclN0cmlu
Z1ZlY3RvciwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC01MzEsNyArNTQ3LDcgQEAgdm9pZCBOb2Rl
OjphZnRlcihWZWN0b3I8Tm9kZU9yU3RyaW5nPiYmIG5vZGVPclN0cmluZ1ZlY3RvciwgRXhjZXB0
aW9uQ29kZSYgZWMpCiAgICAgaWYgKGVjIHx8ICFub2RlKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBwYXJlbnQtPmluc2VydEJlZm9yZShub2RlLnJlbGVhc2UoKSwgdmlhYmxlTmV4dFNpYmxpbmcu
Z2V0KCksIGVjKTsKKyAgICBwYXJlbnQtPmluc2VydEJlZm9yZShub2RlLnJlbGVhc2VOb25OdWxs
KCksIHZpYWJsZU5leHRTaWJsaW5nLmdldCgpLCBlYyk7CiB9CiAKIHZvaWQgTm9kZTo6cmVwbGFj
ZVdpdGgoVmVjdG9yPE5vZGVPclN0cmluZz4mJiBub2RlT3JTdHJpbmdWZWN0b3IsIEV4Y2VwdGlv
bkNvZGUmIGVjKQpAQCAtNTQ4LDE1ICs1NjQsMTUgQEAgdm9pZCBOb2RlOjpyZXBsYWNlV2l0aChW
ZWN0b3I8Tm9kZU9yU3RyaW5nPiYmIG5vZGVPclN0cmluZ1ZlY3RvciwgRXhjZXB0aW9uQ29kZSYK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKHBhcmVudE5vZGUoKSA9PSBwYXJlbnQpCi0gICAg
ICAgIHBhcmVudC0+cmVwbGFjZUNoaWxkKG5vZGUucmVsZWFzZSgpLCB0aGlzLCBlYyk7CisgICAg
ICAgIHBhcmVudC0+cmVwbGFjZUNoaWxkKG5vZGUucmVsZWFzZU5vbk51bGwoKSwgKnRoaXMsIGVj
KTsKICAgICBlbHNlCi0gICAgICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG5vZGUucmVsZWFzZSgp
LCB2aWFibGVOZXh0U2libGluZy5nZXQoKSwgZWMpOworICAgICAgICBwYXJlbnQtPmluc2VydEJl
Zm9yZShub2RlLnJlbGVhc2VOb25OdWxsKCksIHZpYWJsZU5leHRTaWJsaW5nLmdldCgpLCBlYyk7
CiB9CiAKIHZvaWQgTm9kZTo6cmVtb3ZlKEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmIChD
b250YWluZXJOb2RlKiBwYXJlbnQgPSBwYXJlbnROb2RlKCkpCi0gICAgICAgIHBhcmVudC0+cmVt
b3ZlQ2hpbGQodGhpcywgZWMpOworICAgICAgICBwYXJlbnQtPnJlbW92ZUNoaWxkKCp0aGlzLCBl
Yyk7CiB9CiAKIHZvaWQgTm9kZTo6bm9ybWFsaXplKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IDkyOWVjZTQy
YzhlYjdjMmI1YTQzOGU1OWY1ZTE3NzZhYjE4OWQwNjUuLmE1MmYwZjQzZjE1MTA2MWU4MjZkNWE1
ODk1NDNmOWExNTk5M2Q4YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtMjAxLDggKzIwMSw4IEBAIHB1Ymxp
YzoKICAgICAgICAgU2VsZldpdGhUZW1wbGF0ZUNvbnRlbnQsCiAgICAgICAgIEV2ZXJ5dGhpbmcs
CiAgICAgfTsKLSAgICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1
bWVudCYsIENsb25pbmdPcGVyYXRpb24pID0gMDsKLSAgICBSZWZQdHI8Tm9kZT4gY2xvbmVOb2Rl
KGJvb2wgZGVlcCkgeyByZXR1cm4gY2xvbmVOb2RlSW50ZXJuYWwoZG9jdW1lbnQoKSwgZGVlcCA/
IENsb25pbmdPcGVyYXRpb246OkV2ZXJ5dGhpbmcgOiBDbG9uaW5nT3BlcmF0aW9uOjpPbmx5U2Vs
Zik7IH0KKyAgICB2aXJ0dWFsIFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYs
IENsb25pbmdPcGVyYXRpb24pID0gMDsKKyAgICBSZWY8Tm9kZT4gY2xvbmVOb2RlKGJvb2wgZGVl
cCkgeyByZXR1cm4gY2xvbmVOb2RlSW50ZXJuYWwoZG9jdW1lbnQoKSwgZGVlcCA/IENsb25pbmdP
cGVyYXRpb246OkV2ZXJ5dGhpbmcgOiBDbG9uaW5nT3BlcmF0aW9uOjpPbmx5U2VsZik7IH0KIAog
ICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWUoKSBjb25zdDsKICAgICB2
aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlVVJJKCkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCmluZGV4IGIzNDNjYTNhMDFh
ZThlZWZkYjU5N2U1ZDRlMjJlMjdiOTkzZmVmOTAuLjMwMDA5YjdiMGRmY2VhNTY5ZTJjY2VhMTgz
MTVjYjI3NTEzMWMwNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24uY3BwCkBAIC03OSw3ICs3OSw3IEBAIE5vZGU6Ok5vZGVUeXBlIFByb2Nlc3NpbmdJbnN0
cnVjdGlvbjo6bm9kZVR5cGUoKSBjb25zdAogICAgIHJldHVybiBQUk9DRVNTSU5HX0lOU1RSVUNU
SU9OX05PREU7CiB9CiAKLVJlZlB0cjxOb2RlPiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb246OmNsb25l
Tm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikK
K1JlZjxOb2RlPiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb246OmNsb25lTm9kZUludGVybmFsKERvY3Vt
ZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikKIHsKICAgICAvLyBGSVhNRTog
SXMgaXQgYSBwcm9ibGVtIHRoYXQgdGhpcyBkb2VzIG5vdCBjb3B5IG1fbG9jYWxIcmVmPwogICAg
IC8vIFdoYXQgYWJvdXQgb3RoZXIgZGF0YSBtZW1iZXJzPwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1By
b2Nlc3NpbmdJbnN0cnVjdGlvbi5oCmluZGV4IDIxZmQ5ZTk3Y2QyZjc1YzhmZDc1ODAwZTAyMmFk
YTI5NTM5NzZmOGUuLmVmYTkwNWI2NjYzZjNhMjkzYzk3NzEwNTM0ZmQ2ZmRhOTg0MmU5N2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgKQEAgLTU4LDcgKzU4
LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1lKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCBOb2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwot
ICAgIHZpcnR1YWwgUmVmUHRyPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xv
bmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2Rl
SW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKIAogICAgIHZp
cnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFpbmVy
Tm9kZSYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbShDb250YWluZXJO
b2RlJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcAppbmRleCA0ZDIyN2RhYWY0ZTQ0ODgxODg0
MjcxYzFiZGU5ZjE4ODNmNWFjNGE0Li4yNjUwOGNmMDQ3MmQ0ZjBlZGVmYTVkMzU1N2NlOTIzYzc4
YjFiOTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKQEAgLTY2NSw3ICs2NjUsNyBAQCBSZWZQdHI8RG9j
dW1lbnRGcmFnbWVudD4gUmFuZ2U6OnByb2Nlc3NDb250ZW50cyhBY3Rpb25UeXBlIGFjdGlvbiwg
RXhjZXB0aW9uQ29kZQogICAgIC8vIChvciBqdXN0IGRlbGV0ZSB0aGUgc3R1ZmYgaW4gYmV0d2Vl
bikKIAogICAgIGlmICgoYWN0aW9uID09IEV4dHJhY3QgfHwgYWN0aW9uID09IENsb25lKSAmJiBs
ZWZ0Q29udGVudHMpCi0gICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChsZWZ0Q29udGVudHMs
IGVjKTsKKyAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKCpsZWZ0Q29udGVudHMsIGVjKTsK
IAogICAgIGlmIChwcm9jZXNzU3RhcnQpIHsKICAgICAgICAgTm9kZVZlY3RvciBub2RlczsKQEAg
LTY3NSw3ICs2NzUsNyBAQCBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gUmFuZ2U6OnByb2Nlc3ND
b250ZW50cyhBY3Rpb25UeXBlIGFjdGlvbiwgRXhjZXB0aW9uQ29kZQogICAgIH0KIAogICAgIGlm
ICgoYWN0aW9uID09IEV4dHJhY3QgfHwgYWN0aW9uID09IENsb25lKSAmJiByaWdodENvbnRlbnRz
KQotICAgICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQocmlnaHRDb250ZW50cywgZWMpOworICAg
ICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoKnJpZ2h0Q29udGVudHMsIGVjKTsKIAogICAgIHJl
dHVybiBmcmFnbWVudDsKIH0KQEAgLTcwMiw3ICs3MDIsNyBAQCBSZWZQdHI8Tm9kZT4gUmFuZ2U6
OnByb2Nlc3NDb250ZW50c0JldHdlZW5PZmZzZXRzKEFjdGlvblR5cGUgYWN0aW9uLCBQYXNzUmVm
UHRyPAogICAgICAgICBlbmRPZmZzZXQgPSBzdGQ6Om1pbihlbmRPZmZzZXQsIHN0YXRpY19jYXN0
PENoYXJhY3RlckRhdGEqPihjb250YWluZXIpLT5sZW5ndGgoKSk7CiAgICAgICAgIHN0YXJ0T2Zm
c2V0ID0gc3RkOjptaW4oc3RhcnRPZmZzZXQsIGVuZE9mZnNldCk7CiAgICAgICAgIGlmIChhY3Rp
b24gPT0gRXh0cmFjdCB8fCBhY3Rpb24gPT0gQ2xvbmUpIHsKLSAgICAgICAgICAgIFJlZlB0cjxD
aGFyYWN0ZXJEYXRhPiBjID0gc3RhdGljX3BvaW50ZXJfY2FzdDxDaGFyYWN0ZXJEYXRhPihjb250
YWluZXItPmNsb25lTm9kZSh0cnVlKSk7CisgICAgICAgICAgICBSZWZQdHI8Q2hhcmFjdGVyRGF0
YT4gYyA9IHN0YXRpY19jYXN0PENoYXJhY3RlckRhdGEqPihjb250YWluZXItPmNsb25lTm9kZSh0
cnVlKS5wdHIoKSk7CiAgICAgICAgICAgICBkZWxldGVDaGFyYWN0ZXJEYXRhKGMsIHN0YXJ0T2Zm
c2V0LCBlbmRPZmZzZXQsIGVjKTsKICAgICAgICAgICAgIGlmIChmcmFnbWVudCkgewogICAgICAg
ICAgICAgICAgIHJlc3VsdCA9IGZyYWdtZW50OwpAQCAtNzE3LDcgKzcxNyw3IEBAIFJlZlB0cjxO
b2RlPiBSYW5nZTo6cHJvY2Vzc0NvbnRlbnRzQmV0d2Vlbk9mZnNldHMoQWN0aW9uVHlwZSBhY3Rp
b24sIFBhc3NSZWZQdHI8CiAgICAgICAgIGVuZE9mZnNldCA9IHN0ZDo6bWluKGVuZE9mZnNldCwg
c3RhdGljX2Nhc3Q8UHJvY2Vzc2luZ0luc3RydWN0aW9uKj4oY29udGFpbmVyKS0+ZGF0YSgpLmxl
bmd0aCgpKTsKICAgICAgICAgc3RhcnRPZmZzZXQgPSBzdGQ6Om1pbihzdGFydE9mZnNldCwgZW5k
T2Zmc2V0KTsKICAgICAgICAgaWYgKGFjdGlvbiA9PSBFeHRyYWN0IHx8IGFjdGlvbiA9PSBDbG9u
ZSkgewotICAgICAgICAgICAgUmVmUHRyPFByb2Nlc3NpbmdJbnN0cnVjdGlvbj4gYyA9IHN0YXRp
Y19wb2ludGVyX2Nhc3Q8UHJvY2Vzc2luZ0luc3RydWN0aW9uPihjb250YWluZXItPmNsb25lTm9k
ZSh0cnVlKSk7CisgICAgICAgICAgICBSZWZQdHI8UHJvY2Vzc2luZ0luc3RydWN0aW9uPiBjID0g
c3RhdGljX2Nhc3Q8UHJvY2Vzc2luZ0luc3RydWN0aW9uKj4oY29udGFpbmVyLT5jbG9uZU5vZGUo
dHJ1ZSkucHRyKCkpOwogICAgICAgICAgICAgYy0+c2V0RGF0YShjLT5kYXRhKCkuc3Vic3RyaW5n
KHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQgLSBzdGFydE9mZnNldCksIGVjKTsKICAgICAgICAgICAg
IGlmIChmcmFnbWVudCkgewogICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZyYWdtZW50OwpAQCAt
OTM1LDcgKzkzNSw3IEBAIHZvaWQgUmFuZ2U6Omluc2VydE5vZGUoUGFzc1JlZlB0cjxOb2RlPiBw
cnBOZXdOb2RlLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgCiAgICAgICAgIGNvbnRhaW5lciA9ICZzdGFydENvbnRhaW5lcigpOwotICAgICAgICBjb250
YWluZXItPnBhcmVudE5vZGUoKS0+aW5zZXJ0QmVmb3JlKG5ld05vZGUucmVsZWFzZSgpLCBuZXdU
ZXh0LmdldCgpLCBlYyk7CisgICAgICAgIGNvbnRhaW5lci0+cGFyZW50Tm9kZSgpLT5pbnNlcnRC
ZWZvcmUobmV3Tm9kZS5yZWxlYXNlTm9uTnVsbCgpLCBuZXdUZXh0LmdldCgpLCBlYyk7CiAgICAg
ICAgIGlmIChlYykKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMTMwMyw3ICsxMzAzLDcgQEAg
dm9pZCBSYW5nZTo6c3Vycm91bmRDb250ZW50cyhQYXNzUmVmUHRyPE5vZGU+IHBhc3NOZXdQYXJl
bnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogCiAgICAgZWMgPSAwOwogICAgIHdoaWxlIChOb2RlKiBu
ID0gbmV3UGFyZW50LT5maXJzdENoaWxkKCkpIHsKLSAgICAgICAgZG93bmNhc3Q8Q29udGFpbmVy
Tm9kZT4oKm5ld1BhcmVudCkucmVtb3ZlQ2hpbGQobiwgZWMpOworICAgICAgICBkb3duY2FzdDxD
b250YWluZXJOb2RlPigqbmV3UGFyZW50KS5yZW1vdmVDaGlsZCgqbiwgZWMpOwogICAgICAgICBp
ZiAoZWMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3Qu
Y3BwCmluZGV4IGExMjI1N2Y4MmRkYWRjODAzOGU4YTMwYTM0MjUyZjYzMjlmN2JiNmMuLjg4NjEw
MGRiNDY5ZTI0MWU0NmI5NTZiYzU3MDFkYTBjYzVlNjY5NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93
Um9vdC5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgdm9pZCBTaGFkb3dSb290OjpzZXRJbm5lckhUTUwo
Y29uc3QgU3RyaW5nJiBtYXJrdXAsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIH0KIAogICAgIGlm
IChSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZvcklu
bmVyT3V0ZXJIVE1MKG1hcmt1cCwgaG9zdCgpLCBBbGxvd1NjcmlwdGluZ0NvbnRlbnQsIGVjKSkK
LSAgICAgICAgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KCp0aGlzLCBmcmFnbWVudC5yZWxl
YXNlKCksIGVjKTsKKyAgICAgICAgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KCp0aGlzLCBm
cmFnbWVudC5yZWxlYXNlTm9uTnVsbCgpLCBlYyk7CiB9CiAKIGJvb2wgU2hhZG93Um9vdDo6Y2hp
bGRUeXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdApAQCAtMTMxLDkgKzEzMSwxMCBAQCB2
b2lkIFNoYWRvd1Jvb3Q6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYgY2hhbmdl
KQogICAgIGludmFsaWRhdGVEaXN0cmlidXRpb24oKTsKIH0KIAotUmVmUHRyPE5vZGU+IFNoYWRv
d1Jvb3Q6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikKK1Jl
ZjxOb2RlPiBTaGFkb3dSb290OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdP
cGVyYXRpb24pCiB7Ci0gICAgcmV0dXJuIG51bGxwdHI7IC8vIFNoYWRvd1Jvb3RzIHNob3VsZCBu
ZXZlciBiZSBjbG9uZWQuCisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBy
ZXR1cm4gKnN0YXRpY19jYXN0PE5vZGUqPihudWxscHRyKTsgLy8gU2hhZG93Um9vdHMgc2hvdWxk
IG5ldmVyIGJlIGNsb25lZC4KIH0KIAogdm9pZCBTaGFkb3dSb290OjpyZW1vdmVBbGxFdmVudExp
c3RlbmVycygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAppbmRleCA2ZDMxMWZkYjYyNjNkYTEyZGM5
ZDkwNGY3MTBkMDdiOWVjODVhOGNmLi42MzE2MDhhZjFhZDQ0MzZhMjViYTYxZWIzOWRlZDhmZjZh
MjJiYmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKQEAgLTc2LDcgKzc2LDcgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5n
ZSYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBSZWZQdHI8Tm9kZT4gY2xvbmVOb2RlSW50ZXJu
YWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJl
ZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92
ZXJyaWRlOwogCiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkbid0IGhhcHBlbi4gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4ODM0CiAgICAgYm9vbCBpc09ycGhhbigp
IGNvbnN0IHsgcmV0dXJuICFtX2hvc3Q7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcAppbmRleCBiMTE3MWQ3NjEx
YmU2ZGU2NTE2YjYwNWRjZmUxYjZkYzE5ZDcxMzQzLi42YzRjODlkYTllYjZlZmNmMDZhYjg0Mjll
YTVjNGQxMjIzZWUzNDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCkBAIC03Myw3ICs3Myw3IEBAIFJlZlB0
cjxUZXh0PiBUZXh0OjpzcGxpdFRleHQodW5zaWduZWQgb2Zmc2V0LCBFeGNlcHRpb25Db2RlJiBl
YykKICAgICBkaXNwYXRjaE1vZGlmaWVkRXZlbnQob2xkU3RyKTsKIAogICAgIGlmIChwYXJlbnRO
b2RlKCkpCi0gICAgICAgIHBhcmVudE5vZGUoKS0+aW5zZXJ0QmVmb3JlKG5ld1RleHQucHRyKCks
IG5leHRTaWJsaW5nKCksIGVjKTsKKyAgICAgICAgcGFyZW50Tm9kZSgpLT5pbnNlcnRCZWZvcmUo
bmV3VGV4dC5jb3B5UmVmKCksIG5leHRTaWJsaW5nKCksIGVjKTsKICAgICBpZiAoZWMpCiAgICAg
ICAgIHJldHVybiAwOwogCkBAIC0xMzIsMjggKzEzMiwyOCBAQCBSZWZQdHI8VGV4dD4gVGV4dDo6
cmVwbGFjZVdob2xlVGV4dChjb25zdCBTdHJpbmcmIG5ld1RleHQsIEV4Y2VwdGlvbkNvZGUmKQog
ICAgIFJlZlB0cjxUZXh0PiBwcm90ZWN0ZWRUaGlzKHRoaXMpOyAvLyBNdXRhdGlvbiBldmVudCBo
YW5kbGVycyBjb3VsZCBjYXVzZSBvdXIgbGFzdCByZWYgdG8gZ28gYXdheQogICAgIFJlZlB0cjxD
b250YWluZXJOb2RlPiBwYXJlbnQgPSBwYXJlbnROb2RlKCk7IC8vIFByb3RlY3QgYWdhaW5zdCBt
dXRhdGlvbiBoYW5kbGVycyBtb3ZpbmcgdGhpcyBub2RlIGR1cmluZyB0cmF2ZXJzYWwKICAgICBm
b3IgKFJlZlB0cjxOb2RlPiBuID0gc3RhcnRUZXh0OyBuICYmIG4gIT0gdGhpcyAmJiBuLT5pc1Rl
eHROb2RlKCkgJiYgbi0+cGFyZW50Tm9kZSgpID09IHBhcmVudDspIHsKLSAgICAgICAgUmVmUHRy
PE5vZGU+IG5vZGVUb1JlbW92ZShuLnJlbGVhc2UoKSk7CisgICAgICAgIFJlZjxOb2RlPiBub2Rl
VG9SZW1vdmUobi5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICAgICAgbiA9IG5vZGVUb1JlbW92ZS0+
bmV4dFNpYmxpbmcoKTsKLSAgICAgICAgcGFyZW50LT5yZW1vdmVDaGlsZChub2RlVG9SZW1vdmUu
Z2V0KCksIElHTk9SRV9FWENFUFRJT04pOworICAgICAgICBwYXJlbnQtPnJlbW92ZUNoaWxkKFdU
Rjo6bW92ZShub2RlVG9SZW1vdmUpLCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICB9CiAKICAgICBp
ZiAodGhpcyAhPSBlbmRUZXh0KSB7CiAgICAgICAgIE5vZGUqIG9uZVBhc3RFbmRUZXh0ID0gZW5k
VGV4dC0+bmV4dFNpYmxpbmcoKTsKICAgICAgICAgZm9yIChSZWZQdHI8Tm9kZT4gbiA9IG5leHRT
aWJsaW5nKCk7IG4gJiYgbiAhPSBvbmVQYXN0RW5kVGV4dCAmJiBuLT5pc1RleHROb2RlKCkgJiYg
bi0+cGFyZW50Tm9kZSgpID09IHBhcmVudDspIHsKLSAgICAgICAgICAgIFJlZlB0cjxOb2RlPiBu
b2RlVG9SZW1vdmUobi5yZWxlYXNlKCkpOworICAgICAgICAgICAgUmVmPE5vZGU+IG5vZGVUb1Jl
bW92ZShuLnJlbGVhc2VOb25OdWxsKCkpOwogICAgICAgICAgICAgbiA9IG5vZGVUb1JlbW92ZS0+
bmV4dFNpYmxpbmcoKTsKLSAgICAgICAgICAgIHBhcmVudC0+cmVtb3ZlQ2hpbGQobm9kZVRvUmVt
b3ZlLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgICAgIHBhcmVudC0+cmVtb3Zl
Q2hpbGQoV1RGOjptb3ZlKG5vZGVUb1JlbW92ZSksIElHTk9SRV9FWENFUFRJT04pOwogICAgICAg
ICB9CiAgICAgfQogCiAgICAgaWYgKG5ld1RleHQuaXNFbXB0eSgpKSB7CiAgICAgICAgIGlmIChw
YXJlbnQgJiYgcGFyZW50Tm9kZSgpID09IHBhcmVudCkKLSAgICAgICAgICAgIHBhcmVudC0+cmVt
b3ZlQ2hpbGQodGhpcywgSUdOT1JFX0VYQ0VQVElPTik7Ci0gICAgICAgIHJldHVybiAwOworICAg
ICAgICAgICAgcGFyZW50LT5yZW1vdmVDaGlsZCgqdGhpcywgSUdOT1JFX0VYQ0VQVElPTik7Cisg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIHNldERhdGEobmV3VGV4dCwgSUdO
T1JFX0VYQ0VQVElPTik7Ci0gICAgcmV0dXJuIHByb3RlY3RlZFRoaXMucmVsZWFzZSgpOworICAg
IHJldHVybiBwcm90ZWN0ZWRUaGlzOwogfQogCiBTdHJpbmcgVGV4dDo6bm9kZU5hbWUoKSBjb25z
dApAQCAtMTY2LDcgKzE2Niw3IEBAIE5vZGU6Ok5vZGVUeXBlIFRleHQ6Om5vZGVUeXBlKCkgY29u
c3QKICAgICByZXR1cm4gVEVYVF9OT0RFOwogfQogCi1SZWZQdHI8Tm9kZT4gVGV4dDo6Y2xvbmVO
b2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uKQor
UmVmPE5vZGU+IFRleHQ6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVu
dCwgQ2xvbmluZ09wZXJhdGlvbikKIHsKICAgICByZXR1cm4gY3JlYXRlKHRhcmdldERvY3VtZW50
LCBkYXRhKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9UZXh0LmgKaW5kZXggYTk2NzQzNjRjZGEwZGVkYjhlY2E1OWNjMGEy
NWE1MzcyYmJhOTdkNC4uZWZkNmJkZTkyN2MxZjk5OTM1N2UyNTFlZTQ1NDIwOWFkMWNmNTBmYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vVGV4dC5oCkBAIC02Miw3ICs2Miw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAg
dmlydHVhbCBTdHJpbmcgbm9kZU5hbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIE5v
ZGVUeXBlIG5vZGVUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZWZQdHI8Tm9k
ZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENs
b25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFR5cGVBbGxv
d2VkKE5vZGVUeXBlKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgUmVmPFRleHQ+IHZp
cnR1YWxDcmVhdGUoY29uc3QgU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBw
ZW5kTm9kZUNvbW1hbmQuY3BwCmluZGV4IDZhOGQ5ZTkxYTI1MWIxYWI5N2ExOWUyMzIzMjBjYjg0
NjhiNWMzMDQuLmNlZWVkZmQxN2E4MzIxMTAzNGZlNzVlOWU2NWVhYTJiZmY4N2ZhY2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCkBAIC0zNSwxMyAr
MzUsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1BcHBlbmROb2RlQ29tbWFuZDo6QXBw
ZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQ
dHI8Tm9kZT4gbm9kZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQorQXBwZW5kTm9kZUNvbW1h
bmQ6OkFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBO
b2RlJiBub2RlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiAgICAgOiBTaW1wbGVFZGl0Q29t
bWFuZChwYXJlbnQtPmRvY3VtZW50KCksIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX3BhcmVudChw
YXJlbnQpCiAgICAgLCBtX25vZGUobm9kZSkKIHsKICAgICBBU1NFUlQobV9wYXJlbnQpOwotICAg
IEFTU0VSVChtX25vZGUpOwogICAgIEFTU0VSVCghbV9ub2RlLT5wYXJlbnROb2RlKCkpOwogCiAg
ICAgQVNTRVJUKG1fcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxlKCkgfHwgIW1fcGFyZW50LT5yZW5k
ZXJlcigpKTsKQEAgLTY4LDEwICs2NywxMSBAQCB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb0Fw
cGx5KCkKICAgICBpZiAoIW1fcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxlKCkgJiYgbV9wYXJlbnQt
PnJlbmRlcmVyKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcGFyZW50LT5hcHBlbmRDaGls
ZChtX25vZGUuZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOworICAgIFJlZjxOb2RlPiBub2RlVG9B
cHBlbmQgPSBtX25vZGUuY29weVJlZigpOworICAgIG1fcGFyZW50LT5hcHBlbmRDaGlsZChXVEY6
Om1vdmUobm9kZVRvQXBwZW5kKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKICAgICBpZiAoc2hvdWxk
UG9zdEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24oKSkKLSAgICAgICAgc2VuZEFYVGV4dENoYW5n
ZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCkpOworICAg
ICAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUucHRyKCksIGFw
cGx5RWRpdFR5cGUoKSk7CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgp
CkBAIC04MSw3ICs4MSw3IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiAK
ICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUg
dGV4dAogICAgIGlmIChzaG91bGRQb3N0QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbigpKQotICAg
ICAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIHVu
YXBwbHlFZGl0VHlwZSgpKTsKKyAgICAgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVC
cmVha3MobV9ub2RlLnB0cigpLCB1bmFwcGx5RWRpdFR5cGUoKSk7CiAKICAgICBtX25vZGUtPnJl
bW92ZShJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTkwLDcgKzkwLDcgQEAgdm9pZCBBcHBlbmRO
b2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmdldE5vZGVz
SW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIHsKICAgICBhZGROb2RlQW5kRGVzY2Vu
ZGFudHMobV9wYXJlbnQuZ2V0KCksIG5vZGVzKTsKLSAgICBhZGROb2RlQW5kRGVzY2VuZGFudHMo
bV9ub2RlLmdldCgpLCBub2Rlcyk7CisgICAgYWRkTm9kZUFuZERlc2NlbmRhbnRzKG1fbm9kZS5w
dHIoKSwgbm9kZXMpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5k
Tm9kZUNvbW1hbmQuaAppbmRleCBmNzgyOTc1Yjg5MjE1MGFlMzZkMjlhNmJiZWNhOWYxZGMxMzA3
YzMxLi5mNjRiYWRjMDBkMDNhOTNmMzczZGUyNzE4NmI4NGY1NGVkNDljOTdlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCkBAIC0zMiwxMyArMzIsMTMgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBcHBlbmROb2RlQ29tbWFuZCA6IHB1YmxpYyBT
aW1wbGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxBcHBlbmROb2RlQ29t
bWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRy
PE5vZGU+IG5vZGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICBzdGF0aWMgUmVmPEFw
cGVuZE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQs
IE5vZGUmIG5vZGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKICAgICB7CiAgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEFwcGVuZE5vZGVDb21tYW5kKHBhcmVudCwgbm9kZSwgZWRpdGlu
Z0FjdGlvbikpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBBcHBlbmROb2RlQ29tbWFuZChQYXNz
UmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0cjxOb2RlPiwgRWRpdEFjdGlv
bik7CisgICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJl
bnQsIE5vZGUmLCBFZGl0QWN0aW9uKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwpAQCAtNDgsNyAr
NDgsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBSZWZQdHI8Q29udGFpbmVyTm9kZT4gbV9w
YXJlbnQ7Ci0gICAgUmVmUHRyPE5vZGU+IG1fbm9kZTsKKyAgICBSZWY8Tm9kZT4gbV9ub2RlOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAppbmRleCAzZDc3OTQyNDhkMjNlOWI3YTIzOTE2MmY5
NzFhNDQ3NDc1MWI2MzAzLi41ZDlkMzZmZjUwZjVkY2Y2N2QwOGQwZTRhNjI1MzYzNmU5MWI1MDYy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNw
cApAQCAtMzk1LDcgKzM5NSw4IEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5v
ZGVBdChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBjb25zdCBQb3NpCiB2b2lkIENvbXBv
c2l0ZUVkaXRDb21tYW5kOjphcHBlbmROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgUGFzc1Jl
ZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQpCiB7CiAgICAgQVNTRVJUKGNhbkhhdmVDaGlsZHJl
bkZvckVkaXRpbmcocGFyZW50LmdldCgpKSk7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUo
QXBwZW5kTm9kZUNvbW1hbmQ6OmNyZWF0ZShwYXJlbnQsIG5vZGUsIGVkaXRpbmdBY3Rpb24oKSkp
OworICAgIEFTU0VSVChub2RlKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShBcHBlbmRO
b2RlQ29tbWFuZDo6Y3JlYXRlKHBhcmVudCwgKm5vZGUsIGVkaXRpbmdBY3Rpb24oKSkpOwogfQog
CiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVDaGlsZHJlbkluUmFuZ2UoUGFzc1Jl
ZlB0cjxOb2RlPiBub2RlLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bykKQEAgLTQxNCw3ICs0
MTUsNyBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVOb2RlKFBhc3NSZWZQdHI8
Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVudAogewogICAgIGlmICghbm9kZSB8fCAhbm9k
ZS0+bm9uU2hhZG93Qm91bmRhcnlQYXJlbnROb2RlKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBh
cHBseUNvbW1hbmRUb0NvbXBvc2l0ZShSZW1vdmVOb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIHNo
b3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CisgICAgYXBwbHlDb21tYW5kVG9D
b21wb3NpdGUoUmVtb3ZlTm9kZUNvbW1hbmQ6OmNyZWF0ZSgqbm9kZSwgc2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUpKTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6
cmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbihQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlKQpAQCAtMTU0MSw3ICsxNTQyLDcgQEAgUGFzc1JlZlB0cjxOb2RlPiBDb21wb3Np
dGVFZGl0Q29tbWFuZDo6c3BsaXRUcmVlVG9Ob2RlKE5vZGUqIHN0YXJ0LCBOb2RlKiBlbmQsIGIK
ICAgICByZXR1cm4gbm9kZS5yZWxlYXNlKCk7CiB9CiAKLVBhc3NSZWZQdHI8RWxlbWVudD4gY3Jl
YXRlQmxvY2tQbGFjZWhvbGRlckVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEVsZW1l
bnQ+IGNyZWF0ZUJsb2NrUGxhY2Vob2xkZXJFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKIHsK
ICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChiclRhZywgZmFsc2UpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5k
ZXggYzY0OTFkMjY5MjY1ZTVhYjZjZTk2NWVhYTk1MzQxYjY1NDQ3ZDFhZS4uNTYwOTk3MTMzZjYx
OWUzZDBhNzJkY2JkYWZiYWIxNzhkOGYzMGQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC02MzIsNyArNjMyLDcgQEAgdm9p
ZCBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjptZXJnZVBhcmFncmFwaHMoKQogICAgIAogICAgIC8v
IFdlIG5lZWQgdG8gbWVyZ2UgaW50byBtX3Vwc3RyZWFtU3RhcnQncyBibG9jaywgYnV0IGl0J3Mg
YmVlbiBlbXB0aWVkIG91dCBhbmQgY29sbGFwc2VkIGJ5IGRlbGV0aW9uLgogICAgIGlmICghbWVy
Z2VEZXN0aW5hdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWROb2RlKCkgfHwgIW1lcmdl
RGVzdGluYXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkTm9kZSgpLT5pc0Rlc2NlbmRh
bnRPZihlbmNsb3NpbmdCbG9jayhtX3Vwc3RyZWFtU3RhcnQuY29udGFpbmVyTm9kZSgpKSkgfHwg
bV9zdGFydHNBdEVtcHR5TGluZSkgewotICAgICAgICBpbnNlcnROb2RlQXQoY3JlYXRlQnJlYWtF
bGVtZW50KGRvY3VtZW50KCkpLmdldCgpLCBtX3Vwc3RyZWFtU3RhcnQpOworICAgICAgICBpbnNl
cnROb2RlQXQoY3JlYXRlQnJlYWtFbGVtZW50KGRvY3VtZW50KCkpLnB0cigpLCBtX3Vwc3RyZWFt
U3RhcnQpOwogICAgICAgICBtZXJnZURlc3RpbmF0aW9uID0gVmlzaWJsZVBvc2l0aW9uKG1fdXBz
dHJlYW1TdGFydCk7CiAgICAgfQogICAgIApAQCAtODU1LDcgKzg1NSw3IEBAIHZvaWQgRGVsZXRl
U2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgCiAgICAgcmVtb3ZlUHJldmlvdXNseVNl
bGVjdGVkRW1wdHlUYWJsZVJvd3MoKTsKICAgICAKLSAgICBSZWZQdHI8Tm9kZT4gcGxhY2Vob2xk
ZXIgPSBtX25lZWRQbGFjZWhvbGRlciA/IGNyZWF0ZUJyZWFrRWxlbWVudChkb2N1bWVudCgpKS5n
ZXQoKSA6IDA7CisgICAgUmVmUHRyPE5vZGU+IHBsYWNlaG9sZGVyID0gbV9uZWVkUGxhY2Vob2xk
ZXIgPyBjcmVhdGVCcmVha0VsZW1lbnQoZG9jdW1lbnQoKSkucHRyKCkgOiBudWxscHRyOwogICAg
IAogICAgIGlmIChwbGFjZWhvbGRlcikgewogICAgICAgICBpZiAobV9zYW5pdGl6ZU1hcmt1cCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCAxNDhlMzVjOGNjZmE5NmM1YjEwODQyYWVm
NjFkYzZkN2UxODY2ODM0Li40NGIyYWM3MzgyMTZkODkzN2U0NTRiNDljYWM5ZDhkY2I3NTA2YWZh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC02MTMsOCArNjEzLDggQEAgdm9pZCBF
ZGl0b3I6OnNldFRleHRBc0NoaWxkT2ZFbGVtZW50KGNvbnN0IFN0cmluZyYgdGV4dCwgRWxlbWVu
dCogZWxlbSkKICAgICAgICAgICAgIAogICAgICAgICBSZWZQdHI8UmFuZ2U+IGNvbnRleHQgPSBk
b2N1bWVudCgpLmNyZWF0ZVJhbmdlKCk7CiAgICAgICAgIGNvbnRleHQtPnNlbGVjdE5vZGVDb250
ZW50cyhlbGVtLCBlYyk7Ci0gICAgICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVu
dCA9IGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoKmNvbnRleHQuZ2V0KCksIHRleHQpOwotICAgICAg
ICBlbGVtLT5hcHBlbmRDaGlsZChmcmFnbWVudCwgZWMpOworICAgICAgICBSZWY8RG9jdW1lbnRG
cmFnbWVudD4gZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21UZXh0KCpjb250ZXh0LmdldCgp
LCB0ZXh0KTsKKyAgICAgICAgZWxlbS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGZyYWdtZW50KSwg
ZWMpOwogICAgIAogICAgICAgICAvLyByZXN0b3JlIGVsZW1lbnQgdG8gZG9jdW1lbnQKICAgICAg
ICAgaWYgKHBhcmVudCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3JDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAK
aW5kZXggMGY4Zjg4MDMzYTRmZWZhMjNkNzUyNjg5OWVlNDc0MTlmZDQwNzIyYi4uMTJjZGQyMWQ4
ZWMxM2Q3MGU1ZmIwMDNjZTg3ZjJkOTI1MTY4MmMyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvckNvbW1hbmQuY3BwCkBAIC0xNjUsMTEgKzE2NSwxMSBAQCBzdGF0aWMgYm9vbCBleGVj
dXRlSW5zZXJ0RnJhZ21lbnQoRnJhbWUmIGZyYW1lLCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21l
bnQ+IGZyYQogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgYm9vbCBleGVjdXRlSW5zZXJ0
Tm9kZShGcmFtZSYgZnJhbWUsIFBhc3NSZWZQdHI8Tm9kZT4gY29udGVudCkKK3N0YXRpYyBib29s
IGV4ZWN1dGVJbnNlcnROb2RlKEZyYW1lJiBmcmFtZSwgUmVmPE5vZGU+JiYgY29udGVudCkKIHsK
ICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBEb2N1bWVudEZyYWdtZW50
OjpjcmVhdGUoKmZyYW1lLmRvY3VtZW50KCkpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwot
ICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChjb250ZW50LCBlYyk7CisgICAgZnJhZ21lbnQtPmFw
cGVuZENoaWxkKFdURjo6bW92ZShjb250ZW50KSwgZWMpOwogICAgIGlmIChlYykKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIHJldHVybiBleGVjdXRlSW5zZXJ0RnJhZ21lbnQoZnJhbWUsIGZy
YWdtZW50LnJlbGVhc2UoKSk7CkBAIC00NjQsMTAgKzQ2NCwxMCBAQCBzdGF0aWMgYm9vbCBleGVj
dXRlSW5zZXJ0QmFja3RhYihGcmFtZSYgZnJhbWUsIEV2ZW50KiBldmVudCwgRWRpdG9yQ29tbWFu
ZFNvdXJjZQogCiBzdGF0aWMgYm9vbCBleGVjdXRlSW5zZXJ0SG9yaXpvbnRhbFJ1bGUoRnJhbWUm
IGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0cmluZyYgdmFsdWUp
CiB7Ci0gICAgUmVmUHRyPEhUTUxIUkVsZW1lbnQ+IHJ1bGUgPSBIVE1MSFJFbGVtZW50OjpjcmVh
dGUoKmZyYW1lLmRvY3VtZW50KCkpOworICAgIFJlZjxIVE1MSFJFbGVtZW50PiBydWxlID0gSFRN
TEhSRWxlbWVudDo6Y3JlYXRlKCpmcmFtZS5kb2N1bWVudCgpKTsKICAgICBpZiAoIXZhbHVlLmlz
RW1wdHkoKSkKICAgICAgICAgcnVsZS0+c2V0SWRBdHRyaWJ1dGUodmFsdWUpOwotICAgIHJldHVy
biBleGVjdXRlSW5zZXJ0Tm9kZShmcmFtZSwgcnVsZS5yZWxlYXNlKCkpOworICAgIHJldHVybiBl
eGVjdXRlSW5zZXJ0Tm9kZShmcmFtZSwgV1RGOjptb3ZlKHJ1bGUpKTsKIH0KIAogc3RhdGljIGJv
b2wgZXhlY3V0ZUluc2VydEhUTUwoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRT
b3VyY2UsIGNvbnN0IFN0cmluZyYgdmFsdWUpCkBAIC00NzgsOSArNDc4LDkgQEAgc3RhdGljIGJv
b2wgZXhlY3V0ZUluc2VydEhUTUwoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRT
b3VyY2UsIGNvbnN0IFMKIHN0YXRpYyBib29sIGV4ZWN1dGVJbnNlcnRJbWFnZShGcmFtZSYgZnJh
bWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsK
ICAgICAvLyBGSVhNRTogSWYgdXNlckludGVyZmFjZSBpcyB0cnVlLCB3ZSBzaG91bGQgZGlzcGxh
eSBhIGRpYWxvZyBib3ggYW5kIGxldCB0aGUgdXNlciBjaG9vc2UgYSBsb2NhbCBpbWFnZS4KLSAg
ICBSZWZQdHI8SFRNTEltYWdlRWxlbWVudD4gaW1hZ2UgPSBIVE1MSW1hZ2VFbGVtZW50OjpjcmVh
dGUoKmZyYW1lLmRvY3VtZW50KCkpOworICAgIFJlZjxIVE1MSW1hZ2VFbGVtZW50PiBpbWFnZSA9
IEhUTUxJbWFnZUVsZW1lbnQ6OmNyZWF0ZSgqZnJhbWUuZG9jdW1lbnQoKSk7CiAgICAgaW1hZ2Ut
PnNldFNyYyh2YWx1ZSk7Ci0gICAgcmV0dXJuIGV4ZWN1dGVJbnNlcnROb2RlKGZyYW1lLCBpbWFn
ZS5yZWxlYXNlKCkpOworICAgIHJldHVybiBleGVjdXRlSW5zZXJ0Tm9kZShmcmFtZSwgV1RGOjpt
b3ZlKGltYWdlKSk7CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVJbnNlcnRMaW5lQnJlYWsoRnJh
bWUmIGZyYW1lLCBFdmVudCogZXZlbnQsIEVkaXRvckNvbW1hbmRTb3VyY2Ugc291cmNlLCBjb25z
dCBTdHJpbmcmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRMaW5l
QnJlYWtDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0TGluZUJyZWFr
Q29tbWFuZC5jcHAKaW5kZXggNmVlMjFkOTIyNzNkY2U1NWYxMjQ4NmY4Zjk3ODdhMjY4MGVlMzkw
MC4uMjVhYjA3MTI0ZTc5Mjc3MjAyNDVlZTZkNmU0NmNlZDFjNmU5Yzg1MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRMaW5lQnJlYWtDb21tYW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydExpbmVCcmVha0NvbW1hbmQuY3BwCkBAIC0xMjks
NyArMTI5LDcgQEAgdm9pZCBJbnNlcnRMaW5lQnJlYWtDb21tYW5kOjpkb0FwcGx5KCkKICAgICAg
ICAgCiAgICAgICAgIC8vIEluc2VydCBhbiBleHRyYSBiciBvciAnXG4nIGlmIHRoZSBqdXN0IGlu
c2VydGVkIG9uZSBjb2xsYXBzZWQuCiAgICAgICAgIGlmICghaXNTdGFydE9mUGFyYWdyYXBoKHBv
c2l0aW9uQmVmb3JlTm9kZShub2RlVG9JbnNlcnQuZ2V0KCkpKSkKLSAgICAgICAgICAgIGluc2Vy
dE5vZGVCZWZvcmUobm9kZVRvSW5zZXJ0LT5jbG9uZU5vZGUoZmFsc2UpLmdldCgpLCBub2RlVG9J
bnNlcnQuZ2V0KCkpOworICAgICAgICAgICAgaW5zZXJ0Tm9kZUJlZm9yZShub2RlVG9JbnNlcnQt
PmNsb25lTm9kZShmYWxzZSksIG5vZGVUb0luc2VydC5nZXQoKSk7CiAgICAgICAgIAogICAgICAg
ICBzZXRFbmRpbmdTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihwb3NpdGlvbkluUGFyZW50QWZ0
ZXJOb2RlKG5vZGVUb0luc2VydC5nZXQoKSksIERPV05TVFJFQU0sIGVuZGluZ1NlbGVjdGlvbigp
LmlzRGlyZWN0aW9uYWwoKSkpOwogICAgIC8vIElmIHdlJ3JlIGluc2VydGluZyBhZnRlciBhbGwg
b2YgdGhlIHJlbmRlcmVkIHRleHQgaW4gYSB0ZXh0IG5vZGUsIG9yIGludG8gYSBub24tdGV4dCBu
b2RlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmNwcAppbmRleCBmYTE0ZDA3NjZlYWY3NWZhNDMxOWU2ZDg4NTc0YWYzZDNhMDNlNDM2Li41
MGY2NTQ1ZTYyZjdiZGI4NGZkMGM1ZWI1MzRlNGVjYzg2MWRiYTI1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtNTUsNyAr
NTUsNyBAQCB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb0FwcGx5KCkKICAgICAgICAg
cmV0dXJuOwogICAgIEFTU0VSVChpc0VkaXRhYmxlTm9kZSgqcGFyZW50KSk7CiAKLSAgICBwYXJl
bnQtPmluc2VydEJlZm9yZShtX2luc2VydENoaWxkLmdldCgpLCBtX3JlZkNoaWxkLmdldCgpLCBJ
R05PUkVfRVhDRVBUSU9OKTsKKyAgICBwYXJlbnQtPmluc2VydEJlZm9yZSgqbV9pbnNlcnRDaGls
ZCwgbV9yZWZDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKICAgICBpZiAoc2hvdWxk
UG9zdEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24oKSkgewogICAgICAgICBQb3NpdGlvbiBwb3Np
dGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpID8gUG9zaXRpb24oZG93bmNhc3Q8
VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0
aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5jcHAKaW5kZXggN2Rk
MDE2MGNkMDM0M2RhYWRmMTI0MzQxMmUzZWFhZmYxNjE3ZDY1YS4uMTUwMzIyOTJhZGU2NTg4NDRh
N2Y5MjA2Y2ZhYjcwOWZiNTY0MTBjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuY3BwCkBAIC0zNjgsNyAr
MzY4LDcgQEAgdm9pZCBJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kOjpkb0FwcGx5KCkK
ICAgICAvLyBjcmVhdGVkLiAgQWxsIG9mIHRoZSBub2Rlcywgc3RhcnRpbmcgYXQgdmlzaWJsZVBv
cywgYXJlIGFib3V0IHRvIGJlIGFkZGVkIHRvIHRoZSBuZXcgcGFyYWdyYXBoIAogICAgIC8vIGVs
ZW1lbnQuICBJZiB0aGUgZmlyc3Qgbm9kZSB0byBiZSBpbnNlcnRlZCB3b24ndCBiZSBvbmUgdGhh
dCB3aWxsIGhvbGQgYW4gZW1wdHkgbGluZSBvcGVuLCBhZGQgYSBici4KICAgICBpZiAoaXNFbmRP
ZlBhcmFncmFwaCh2aXNpYmxlUG9zKSAmJiAhbGluZUJyZWFrRXhpc3RzQXRWaXNpYmxlUG9zaXRp
b24odmlzaWJsZVBvcykpCi0gICAgICAgIGFwcGVuZE5vZGUoY3JlYXRlQnJlYWtFbGVtZW50KGRv
Y3VtZW50KCkpLmdldCgpLCBibG9ja1RvSW5zZXJ0LmdldCgpKTsKKyAgICAgICAgYXBwZW5kTm9k
ZShjcmVhdGVCcmVha0VsZW1lbnQoZG9jdW1lbnQoKSksIGJsb2NrVG9JbnNlcnQuZ2V0KCkpOwog
CiAgICAgLy8gTW92ZSB0aGUgc3RhcnQgbm9kZSBhbmQgdGhlIHNpYmxpbmdzIG9mIHRoZSBzdGFy
dCBub2RlLgogICAgIGlmIChWaXNpYmxlUG9zaXRpb24oaW5zZXJ0aW9uUG9zaXRpb24pICE9IFZp
c2libGVQb3NpdGlvbihwb3NpdGlvbkJlZm9yZU5vZGUoYmxvY2tUb0luc2VydC5nZXQoKSkpKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01lcmdlSWRlbnRpY2FsRWxlbWVu
dHNDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWVyZ2VJZGVudGljYWxFbGVt
ZW50c0NvbW1hbmQuY3BwCmluZGV4IDQ2NTE4ODQ2MzY0ZmEzM2MyODVjZjYwMDk3ZjA0M2IyYzJj
ZjM4N2UuLjRhNTllZjY4MGQ2YTBkZjIxNzM1YTllYjIwNTBhMThlZGY2NmYxY2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWVyZ2VJZGVudGljYWxFbGVtZW50c0NvbW1hbmQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWVyZ2VJZGVudGljYWxFbGVtZW50c0Nv
bW1hbmQuY3BwCkBAIC00NywxMyArNDcsMTMgQEAgdm9pZCBNZXJnZUlkZW50aWNhbEVsZW1lbnRz
Q29tbWFuZDo6ZG9BcHBseSgpCiAKICAgICBtX2F0Q2hpbGQgPSBtX2VsZW1lbnQyLT5maXJzdENo
aWxkKCk7CiAKLSAgICBWZWN0b3I8UmVmUHRyPE5vZGU+PiBjaGlsZHJlbjsKKyAgICBWZWN0b3I8
UmVmPE5vZGU+PiBjaGlsZHJlbjsKICAgICBmb3IgKE5vZGUqIGNoaWxkID0gbV9lbGVtZW50MS0+
Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKLSAgICAg
ICAgY2hpbGRyZW4uYXBwZW5kKGNoaWxkKTsKKyAgICAgICAgY2hpbGRyZW4uYXBwZW5kKCpjaGls
ZCk7CiAKICAgICBzaXplX3Qgc2l6ZSA9IGNoaWxkcmVuLnNpemUoKTsKICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgbV9lbGVtZW50Mi0+aW5zZXJ0QmVmb3Jl
KGNoaWxkcmVuW2ldLnJlbGVhc2UoKSwgbV9hdENoaWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9O
KTsKKyAgICAgICAgbV9lbGVtZW50Mi0+aW5zZXJ0QmVmb3JlKFdURjo6bW92ZShjaGlsZHJlbltp
XSksIG1fYXRDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKICAgICBtX2VsZW1lbnQx
LT5yZW1vdmUoSUdOT1JFX0VYQ0VQVElPTik7CiB9CkBAIC03MSwxNyArNzEsMTcgQEAgdm9pZCBN
ZXJnZUlkZW50aWNhbEVsZW1lbnRzQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIAogICAgIEV4Y2VwdGlv
bkNvZGUgZWMgPSAwOwogCi0gICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobV9lbGVtZW50MS5nZXQo
KSwgbV9lbGVtZW50Mi5nZXQoKSwgZWMpOworICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKCptX2Vs
ZW1lbnQxLCBtX2VsZW1lbnQyLmdldCgpLCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1
cm47CiAKLSAgICBWZWN0b3I8UmVmUHRyPE5vZGU+PiBjaGlsZHJlbjsKKyAgICBWZWN0b3I8UmVm
PE5vZGU+PiBjaGlsZHJlbjsKICAgICBmb3IgKE5vZGUqIGNoaWxkID0gbV9lbGVtZW50Mi0+Zmly
c3RDaGlsZCgpOyBjaGlsZCAmJiBjaGlsZCAhPSBhdENoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0
U2libGluZygpKQotICAgICAgICBjaGlsZHJlbi5hcHBlbmQoY2hpbGQpOworICAgICAgICBjaGls
ZHJlbi5hcHBlbmQoKmNoaWxkKTsKIAogICAgIHNpemVfdCBzaXplID0gY2hpbGRyZW4uc2l6ZSgp
OwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICBtX2VsZW1l
bnQxLT5hcHBlbmRDaGlsZChjaGlsZHJlbltpXS5yZWxlYXNlKCksIGVjKTsKKyAgICAgICAgbV9l
bGVtZW50MS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNoaWxkcmVuW2ldKSwgZWMpOwogfQogCiAj
aWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVO
b2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5k
LmNwcAppbmRleCAzMWM1NGQxZTg4MmUyZDQ2NTQwNDA4ZTQ1MDYwYzQ5ZDkwOGJiZWM2Li5iZWVj
N2U0ZGFlNDRiMTA0YzJiZDE1ZmFjMDlmZWQ3OTQ2OWRmYTBhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmNwcApAQCAtMzQsMTIgKzM0LDExIEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotUmVtb3ZlTm9kZUNvbW1hbmQ6OlJlbW92ZU5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCi0gICAgOiBTaW1wbGVFZGl0
Q29tbWFuZChub2RlLT5kb2N1bWVudCgpKQorUmVtb3ZlTm9kZUNvbW1hbmQ6OlJlbW92ZU5vZGVD
b21tYW5kKE5vZGUmIG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNo
b3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIDogU2ltcGxlRWRpdENvbW1h
bmQobm9kZS5kb2N1bWVudCgpKQogICAgICwgbV9ub2RlKG5vZGUpCiAgICAgLCBtX3Nob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlKQogewotICAgIEFTU0VSVChtX25vZGUpOwogICAgIEFTU0VSVChtX25vZGUtPnBhcmVu
dE5vZGUoKSk7CiB9CiAKQEAgLTY0LDcgKzYzLDcgQEAgdm9pZCBSZW1vdmVOb2RlQ29tbWFuZDo6
ZG9VbmFwcGx5KCkKICAgICBpZiAoIXBhcmVudCB8fCAhcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxl
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG1fbm9kZS5n
ZXQoKSwgcmVmQ2hpbGQuZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOworICAgIHBhcmVudC0+aW5z
ZXJ0QmVmb3JlKG1fbm9kZS5jb3B5UmVmKCksIHJlZkNoaWxkLmdldCgpLCBJR05PUkVfRVhDRVBU
SU9OKTsKIH0KIAogI2lmbmRlZiBOREVCVUcKQEAgLTcyLDcgKzcxLDcgQEAgdm9pZCBSZW1vdmVO
b2RlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogewog
ICAgIGFkZE5vZGVBbmREZXNjZW5kYW50cyhtX3BhcmVudC5nZXQoKSwgbm9kZXMpOwogICAgIGFk
ZE5vZGVBbmREZXNjZW5kYW50cyhtX3JlZkNoaWxkLmdldCgpLCBub2Rlcyk7Ci0gICAgYWRkTm9k
ZUFuZERlc2NlbmRhbnRzKG1fbm9kZS5nZXQoKSwgbm9kZXMpOworICAgIGFkZE5vZGVBbmREZXNj
ZW5kYW50cyhtX25vZGUucHRyKCksIG5vZGVzKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmgKaW5kZXggMTgxZTk4NWQ3ZjMwY2Q0NDk2NjRl
NmZmOGNjYTk0MmYyNmY2Y2Y2ZS4uMDEzNTE3ZmY3ZGYzZGFlZTgwZjRkNmYxYjEwZDgxODU5YWFk
NmM3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFu
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuaApAQCAt
MzIsMTMgKzMyLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVtb3ZlTm9kZUNv
bW1hbmQgOiBwdWJsaWMgU2ltcGxlRWRpdENvbW1hbmQgewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWY8UmVtb3ZlTm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlKQorICAgIHN0YXRpYyBSZWY8UmVtb3ZlTm9kZUNvbW1hbmQ+IGNyZWF0ZShOb2Rl
JiBub2RlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFJlbW92ZU5vZGVDb21tYW5kKG5vZGUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFJlbW92ZU5vZGVDb21t
YW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
KTsKKyAgICBSZW1vdmVOb2RlQ29tbWFuZChOb2RlJiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUpOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CkBAIC00Nyw3ICs0Nyw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJy
aWRlOwogI2VuZGlmCiAKLSAgICBSZWZQdHI8Tm9kZT4gbV9ub2RlOworICAgIFJlZjxOb2RlPiBt
X25vZGU7CiAgICAgUmVmUHRyPENvbnRhaW5lck5vZGU+IG1fcGFyZW50OwogICAgIFJlZlB0cjxO
b2RlPiBtX3JlZkNoaWxkOwogICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
IG1fc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwCmluZGV4IDBl
MTg5YmRlZjY3ZDNmM2RlNzI0NmQ3MWFhYzdkNDA4NzkwN2ZkZmUuLjEwYmVmM2EwOWExY2M0MjFj
Yjc3ZTlhYjc4ZTAwY2Q2ZTIyMjMwYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwCkBAIC00OCwxOSArNDgsMTkgQEAg
UmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQ6OlJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kKFBh
c3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGUKICAgICBBU1NFUlQobV9lbGVtZW50VG9SZXBsYWNlKTsK
IH0KIAotc3RhdGljIHZvaWQgc3dhcEluTm9kZVByZXNlcnZpbmdBdHRyaWJ1dGVzQW5kQ2hpbGRy
ZW4oSFRNTEVsZW1lbnQqIG5ld05vZGUsIEhUTUxFbGVtZW50KiBub2RlVG9SZXBsYWNlKQorc3Rh
dGljIHZvaWQgc3dhcEluTm9kZVByZXNlcnZpbmdBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oSFRNTEVs
ZW1lbnQmIG5ld05vZGUsIEhUTUxFbGVtZW50JiBub2RlVG9SZXBsYWNlKQogewotICAgIEFTU0VS
VChub2RlVG9SZXBsYWNlLT5pbkRvY3VtZW50KCkpOwotICAgIFJlZlB0cjxDb250YWluZXJOb2Rl
PiBwYXJlbnROb2RlID0gbm9kZVRvUmVwbGFjZS0+cGFyZW50Tm9kZSgpOworICAgIEFTU0VSVChu
b2RlVG9SZXBsYWNlLmluRG9jdW1lbnQoKSk7CisgICAgUmVmUHRyPENvbnRhaW5lck5vZGU+IHBh
cmVudE5vZGUgPSBub2RlVG9SZXBsYWNlLnBhcmVudE5vZGUoKTsKIAogICAgIC8vIEZJWE1FOiBG
aXggdGhpcyB0byBzZW5kIHRoZSBwcm9wZXIgTXV0YXRpb25SZWNvcmRzIHdoZW4gTXV0YXRpb25P
YnNlcnZlcnMgYXJlIHByZXNlbnQuCi0gICAgbmV3Tm9kZS0+Y2xvbmVEYXRhRnJvbUVsZW1lbnQo
Km5vZGVUb1JlcGxhY2UpOworICAgIG5ld05vZGUuY2xvbmVEYXRhRnJvbUVsZW1lbnQobm9kZVRv
UmVwbGFjZSk7CiAgICAgTm9kZVZlY3RvciBjaGlsZHJlbjsKLSAgICBnZXRDaGlsZE5vZGVzKCpu
b2RlVG9SZXBsYWNlLCBjaGlsZHJlbik7CisgICAgZ2V0Q2hpbGROb2Rlcyhub2RlVG9SZXBsYWNl
LCBjaGlsZHJlbik7CiAgICAgZm9yIChhdXRvJiBjaGlsZCA6IGNoaWxkcmVuKQotICAgICAgICBu
ZXdOb2RlLT5hcHBlbmRDaGlsZChjaGlsZC5wdHIoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7Cisg
ICAgICAgIG5ld05vZGUuYXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNoaWxkKSwgQVNTRVJUX05PX0VY
Q0VQVElPTik7CiAKLSAgICBwYXJlbnROb2RlLT5pbnNlcnRCZWZvcmUobmV3Tm9kZSwgbm9kZVRv
UmVwbGFjZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgcGFyZW50Tm9kZS0+aW5zZXJ0QmVm
b3JlKG5ld05vZGUsICZub2RlVG9SZXBsYWNlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICBw
YXJlbnROb2RlLT5yZW1vdmVDaGlsZChub2RlVG9SZXBsYWNlLCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKIH0KIApAQCAtNzAsMTQgKzcwLDE0IEBAIHZvaWQgUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1h
bmQ6OmRvQXBwbHkoKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKCFtX3NwYW5FbGVtZW50KQog
ICAgICAgICBtX3NwYW5FbGVtZW50ID0gY3JlYXRlSFRNTEVsZW1lbnQobV9lbGVtZW50VG9SZXBs
YWNlLT5kb2N1bWVudCgpLCBzcGFuVGFnKTsKLSAgICBzd2FwSW5Ob2RlUHJlc2VydmluZ0F0dHJp
YnV0ZXNBbmRDaGlsZHJlbihtX3NwYW5FbGVtZW50LmdldCgpLCBtX2VsZW1lbnRUb1JlcGxhY2Uu
Z2V0KCkpOworICAgIHN3YXBJbk5vZGVQcmVzZXJ2aW5nQXR0cmlidXRlc0FuZENoaWxkcmVuKCpt
X3NwYW5FbGVtZW50LCAqbV9lbGVtZW50VG9SZXBsYWNlKTsKIH0KIAogdm9pZCBSZXBsYWNlTm9k
ZVdpdGhTcGFuQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIHsKICAgICBpZiAoIW1fc3BhbkVsZW1lbnQt
PmluRG9jdW1lbnQoKSkKICAgICAgICAgcmV0dXJuOwotICAgIHN3YXBJbk5vZGVQcmVzZXJ2aW5n
QXR0cmlidXRlc0FuZENoaWxkcmVuKG1fZWxlbWVudFRvUmVwbGFjZS5nZXQoKSwgbV9zcGFuRWxl
bWVudC5nZXQoKSk7CisgICAgc3dhcEluTm9kZVByZXNlcnZpbmdBdHRyaWJ1dGVzQW5kQ2hpbGRy
ZW4oKm1fZWxlbWVudFRvUmVwbGFjZSwgKm1fc3BhbkVsZW1lbnQpOwogfQogCiAjaWZuZGVmIE5E
RUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21t
YW5kLmNwcAppbmRleCBlZWUyMjBjODZmOThhNWU3ZDI4OTljNDMzZmE5MWYwMDAwNTQ2YmUzLi4w
OGM2Mjc3ZGVmYzM0ZmEyMjM0YzJlNDYyZjIzNjQ3ZDZiYzk5YTNkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtMjM4LDcg
KzIzOCw3IEBAIHZvaWQgUmVwbGFjZW1lbnRGcmFnbWVudDo6cmVtb3ZlTm9kZShQYXNzUmVmUHRy
PE5vZGU+IG5vZGUpCiAgICAgaWYgKCFwYXJlbnQpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAg
ICBwYXJlbnQtPnJlbW92ZUNoaWxkKG5vZGUuZ2V0KCksIEFTU0VSVF9OT19FWENFUFRJT04pOwor
ICAgIHBhcmVudC0+cmVtb3ZlQ2hpbGQoKm5vZGUsIEFTU0VSVF9OT19FWENFUFRJT04pOwogfQog
CiB2b2lkIFJlcGxhY2VtZW50RnJhZ21lbnQ6Omluc2VydE5vZGVCZWZvcmUoUGFzc1JlZlB0cjxO
b2RlPiBub2RlLCBOb2RlKiByZWZOb2RlKQpAQCAtMjUwLDE0ICsyNTAsMTQgQEAgdm9pZCBSZXBs
YWNlbWVudEZyYWdtZW50OjppbnNlcnROb2RlQmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwg
Tm9kZSogcmVmTm9kZSkKICAgICBpZiAoIXBhcmVudCkKICAgICAgICAgcmV0dXJuOwogICAgICAg
ICAKLSAgICBwYXJlbnQtPmluc2VydEJlZm9yZShub2RlLCByZWZOb2RlLCBBU1NFUlRfTk9fRVhD
RVBUSU9OKTsKKyAgICBwYXJlbnQtPmluc2VydEJlZm9yZSgqbm9kZSwgcmVmTm9kZSwgQVNTRVJU
X05PX0VYQ0VQVElPTik7CiB9CiAKIFBhc3NSZWZQdHI8U3R5bGVkRWxlbWVudD4gUmVwbGFjZW1l
bnRGcmFnbWVudDo6aW5zZXJ0RnJhZ21lbnRGb3JUZXN0UmVuZGVyaW5nKE5vZGUqIHJvb3RFZGl0
YWJsZUVsZW1lbnQpCiB7CiAgICAgUmVmUHRyPFN0eWxlZEVsZW1lbnQ+IGhvbGRlciA9IGNyZWF0
ZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50KGRvY3VtZW50KCkpOwogCi0gICAgaG9sZGVyLT5hcHBl
bmRDaGlsZChtX2ZyYWdtZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBob2xkZXItPmFw
cGVuZENoaWxkKCptX2ZyYWdtZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICByb290RWRp
dGFibGVFbGVtZW50LT5hcHBlbmRDaGlsZChob2xkZXIuZ2V0KCksIEFTU0VSVF9OT19FWENFUFRJ
T04pOwogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRz
KCk7CiAKQEAgLTI3MCw4ICsyNzAsOCBAQCB2b2lkIFJlcGxhY2VtZW50RnJhZ21lbnQ6OnJlc3Rv
cmVBbmRSZW1vdmVUZXN0UmVuZGVyaW5nTm9kZXNUb0ZyYWdtZW50KFN0eWxlZEVsZQogICAgICAg
ICByZXR1cm47CiAgICAgCiAgICAgd2hpbGUgKFJlZlB0cjxOb2RlPiBub2RlID0gaG9sZGVyLT5m
aXJzdENoaWxkKCkpIHsKLSAgICAgICAgaG9sZGVyLT5yZW1vdmVDaGlsZChub2RlLmdldCgpLCBB
U1NFUlRfTk9fRVhDRVBUSU9OKTsKLSAgICAgICAgbV9mcmFnbWVudC0+YXBwZW5kQ2hpbGQobm9k
ZS5nZXQoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAgIGhvbGRlci0+cmVtb3ZlQ2hp
bGQoKm5vZGUsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAgICBtX2ZyYWdtZW50LT5hcHBl
bmRDaGlsZCgqbm9kZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgfQogCiAgICAgcmVtb3Zl
Tm9kZShob2xkZXIpOwpAQCAtMTQ1NCw3ICsxNDU0LDcgQEAgTm9kZSogUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQ6Omluc2VydEFzTGlzdEl0ZW1zKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IHBycExp
c3QKICAgICB9CiAKICAgICB3aGlsZSAoUmVmUHRyPE5vZGU+IGxpc3RJdGVtID0gbGlzdEVsZW1l
bnQtPmZpcnN0Q2hpbGQoKSkgewotICAgICAgICBsaXN0RWxlbWVudC0+cmVtb3ZlQ2hpbGQobGlz
dEl0ZW0uZ2V0KCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAgICBsaXN0RWxlbWVudC0+
cmVtb3ZlQ2hpbGQoKmxpc3RJdGVtLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICAgICAgaWYg
KGlzU3RhcnQgfHwgaXNNaWRkbGUpIHsKICAgICAgICAgICAgIGluc2VydE5vZGVCZWZvcmUobGlz
dEl0ZW0sIGxhc3ROb2RlKTsKICAgICAgICAgICAgIGluc2VydGVkTm9kZXMucmVzcG9uZFRvTm9k
ZUluc2VydGlvbihsaXN0SXRlbS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1NwbGl0RWxlbWVudENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9T
cGxpdEVsZW1lbnRDb21tYW5kLmNwcAppbmRleCAwOWJlYjg1MTkzMWVlYWI2NTFkMjE3MWU0N2Q4
NzMyNDU1ZDFmMTA2Li4zNWQ4MjFiMmMxNmEyYmViMjc3MGE0ODE2ZjdjOGNjODU5MGQwNTNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0RWxlbWVudENvbW1hbmQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BsaXRFbGVtZW50Q29tbWFuZC5jcHAKQEAg
LTQ3LDE2ICs0NywxNiBAQCB2b2lkIFNwbGl0RWxlbWVudENvbW1hbmQ6OmV4ZWN1dGVBcHBseSgp
CiAgICAgaWYgKG1fYXRDaGlsZC0+cGFyZW50Tm9kZSgpICE9IG1fZWxlbWVudDIpCiAgICAgICAg
IHJldHVybjsKICAgICAKLSAgICBWZWN0b3I8UmVmUHRyPE5vZGU+PiBjaGlsZHJlbjsKKyAgICBW
ZWN0b3I8UmVmPE5vZGU+PiBjaGlsZHJlbjsKICAgICBmb3IgKE5vZGUqIG5vZGUgPSBtX2VsZW1l
bnQyLT5maXJzdENoaWxkKCk7IG5vZGUgIT0gbV9hdENoaWxkOyBub2RlID0gbm9kZS0+bmV4dFNp
YmxpbmcoKSkKLSAgICAgICAgY2hpbGRyZW4uYXBwZW5kKG5vZGUpOworICAgICAgICBjaGlsZHJl
bi5hcHBlbmQoKm5vZGUpOwogICAgIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIAog
ICAgIENvbnRhaW5lck5vZGUqIHBhcmVudCA9IG1fZWxlbWVudDItPnBhcmVudE5vZGUoKTsKICAg
ICBpZiAoIXBhcmVudCB8fCAhcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxlKCkpCiAgICAgICAgIHJl
dHVybjsKLSAgICBwYXJlbnQtPmluc2VydEJlZm9yZShtX2VsZW1lbnQxLmdldCgpLCBtX2VsZW1l
bnQyLmdldCgpLCBlYyk7CisgICAgcGFyZW50LT5pbnNlcnRCZWZvcmUoKm1fZWxlbWVudDEsIG1f
ZWxlbWVudDIuZ2V0KCksIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybjsKIApAQCAt
NjUsNyArNjUsNyBAQCB2b2lkIFNwbGl0RWxlbWVudENvbW1hbmQ6OmV4ZWN1dGVBcHBseSgpCiAK
ICAgICBzaXplX3Qgc2l6ZSA9IGNoaWxkcmVuLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgbV9lbGVtZW50MS0+YXBwZW5kQ2hpbGQoY2hpbGRy
ZW5baV0sIGVjKTsKKyAgICAgICAgbV9lbGVtZW50MS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNo
aWxkcmVuW2ldKSwgZWMpOwogfQogICAgIAogdm9pZCBTcGxpdEVsZW1lbnRDb21tYW5kOjpkb0Fw
cGx5KCkKQEAgLTgwLDE1ICs4MCwxNSBAQCB2b2lkIFNwbGl0RWxlbWVudENvbW1hbmQ6OmRvVW5h
cHBseSgpCiAgICAgaWYgKCFtX2VsZW1lbnQxIHx8ICFtX2VsZW1lbnQxLT5oYXNFZGl0YWJsZVN0
eWxlKCkgfHwgIW1fZWxlbWVudDItPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgVmVjdG9yPFJlZlB0cjxOb2RlPj4gY2hpbGRyZW47CisgICAgVmVjdG9yPFJlZjxO
b2RlPj4gY2hpbGRyZW47CiAgICAgZm9yIChOb2RlKiBub2RlID0gbV9lbGVtZW50MS0+Zmlyc3RD
aGlsZCgpOyBub2RlOyBub2RlID0gbm9kZS0+bmV4dFNpYmxpbmcoKSkKLSAgICAgICAgY2hpbGRy
ZW4uYXBwZW5kKG5vZGUpOworICAgICAgICBjaGlsZHJlbi5hcHBlbmQoKm5vZGUpOwogCiAgICAg
UmVmUHRyPE5vZGU+IHJlZkNoaWxkID0gbV9lbGVtZW50Mi0+Zmlyc3RDaGlsZCgpOwogCiAgICAg
c2l6ZV90IHNpemUgPSBjaGlsZHJlbi5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBzaXplOyArK2kpCi0gICAgICAgIG1fZWxlbWVudDItPmluc2VydEJlZm9yZShjaGlsZHJlbltp
XS5nZXQoKSwgcmVmQ2hpbGQuZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOworICAgICAgICBtX2Vs
ZW1lbnQyLT5pbnNlcnRCZWZvcmUoV1RGOjptb3ZlKGNoaWxkcmVuW2ldKSwgcmVmQ2hpbGQuZ2V0
KCksIElHTk9SRV9FWENFUFRJT04pOwogCiAgICAgLy8gUmVjb3ZlciB0aGUgaWQgYXR0cmlidXRl
IG9mIHRoZSBvcmlnaW5hbCBlbGVtZW50LgogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgaWQgPSBt
X2VsZW1lbnQxLT5nZXRJZEF0dHJpYnV0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1NwbGl0VGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCAxN2E4MTdmOWFjMjZkZTk5NGQ0MThkNGQ2
NDlhNmI4ZjZmOGM0ZjBiLi42OTk5MTM5OTVkZmZlM2EwMWUzZTAyNWYwZDExMGI4YjZiNTBkNjBj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0VGV4dE5vZGVDb21tYW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0VGV4dE5vZGVDb21tYW5kLmNw
cApAQCAtOTUsNyArOTUsNyBAQCB2b2lkIFNwbGl0VGV4dE5vZGVDb21tYW5kOjpkb1JlYXBwbHko
KQogdm9pZCBTcGxpdFRleHROb2RlQ29tbWFuZDo6aW5zZXJ0VGV4dDFBbmRUcmltVGV4dDIoKQog
ewogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIG1fdGV4dDItPnBhcmVudE5vZGUoKS0+
aW5zZXJ0QmVmb3JlKG1fdGV4dDEuZ2V0KCksIG1fdGV4dDIuZ2V0KCksIGVjKTsKKyAgICBtX3Rl
eHQyLT5wYXJlbnROb2RlKCktPmluc2VydEJlZm9yZSgqbV90ZXh0MSwgbV90ZXh0Mi5nZXQoKSwg
ZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuOwogICAgIG1fdGV4dDItPmRlbGV0ZURh
dGEoMCwgbV9vZmZzZXQsIGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
V3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvV3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kLmNwcAppbmRleCA1NjQ2ZjM0MTZjODVm
MmU2MDMwZjQ3NGQ0MzBiZjhmNzQyNWU3ZmQ2Li5mODBiNzczN2Y4YWQ5NmUzZTc4ZjE0NTliZjU3
ZTJmMzUxOWViOWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1dyYXBDb250
ZW50c0luRHVtbXlTcGFuQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9X
cmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1hbmQuY3BwCkBAIC00MCwxNSArNDAsMTUgQEAgV3Jh
cENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kOjpXcmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1h
bmQoUGFzc1JlZlB0cjxFbGVtZW4KIAogdm9pZCBXcmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1h
bmQ6OmV4ZWN1dGVBcHBseSgpCiB7Ci0gICAgVmVjdG9yPFJlZlB0cjxOb2RlPj4gY2hpbGRyZW47
CisgICAgVmVjdG9yPFJlZjxOb2RlPj4gY2hpbGRyZW47CiAgICAgZm9yIChOb2RlKiBjaGlsZCA9
IG1fZWxlbWVudC0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxp
bmcoKSkKLSAgICAgICAgY2hpbGRyZW4uYXBwZW5kKGNoaWxkKTsKKyAgICAgICAgY2hpbGRyZW4u
YXBwZW5kKCpjaGlsZCk7CiAKICAgICBzaXplX3Qgc2l6ZSA9IGNoaWxkcmVuLnNpemUoKTsKICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgbV9kdW1teVNwYW4t
PmFwcGVuZENoaWxkKGNoaWxkcmVuW2ldLnJlbGVhc2UoKSwgSUdOT1JFX0VYQ0VQVElPTik7Cisg
ICAgICAgIG1fZHVtbXlTcGFuLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoY2hpbGRyZW5baV0pLCBJ
R05PUkVfRVhDRVBUSU9OKTsKIAotICAgIG1fZWxlbWVudC0+YXBwZW5kQ2hpbGQobV9kdW1teVNw
YW4uZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOworICAgIG1fZWxlbWVudC0+YXBwZW5kQ2hpbGQo
Km1fZHVtbXlTcGFuLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KIAogdm9pZCBXcmFwQ29udGVudHNJ
bkR1bW15U3BhbkNvbW1hbmQ6OmRvQXBwbHkoKQpAQCAtNjUsMTMgKzY1LDEzIEBAIHZvaWQgV3Jh
cENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kOjpkb1VuYXBwbHkoKQogICAgIGlmICghbV9kdW1t
eVNwYW4gfHwgIW1fZWxlbWVudC0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBWZWN0b3I8UmVmUHRyPE5vZGU+PiBjaGlsZHJlbjsKKyAgICBWZWN0b3I8UmVmPE5v
ZGU+PiBjaGlsZHJlbjsKICAgICBmb3IgKE5vZGUqIGNoaWxkID0gbV9kdW1teVNwYW4tPmZpcnN0
Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCi0gICAgICAgIGNo
aWxkcmVuLmFwcGVuZChjaGlsZCk7CisgICAgICAgIGNoaWxkcmVuLmFwcGVuZCgqY2hpbGQpOwog
CiAgICAgc2l6ZV90IHNpemUgPSBjaGlsZHJlbi5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBzaXplOyArK2kpCi0gICAgICAgIG1fZWxlbWVudC0+YXBwZW5kQ2hpbGQoY2hpbGRy
ZW5baV0ucmVsZWFzZSgpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgbV9lbGVtZW50LT5h
cHBlbmRDaGlsZChXVEY6Om1vdmUoY2hpbGRyZW5baV0pLCBJR05PUkVfRVhDRVBUSU9OKTsKIAog
ICAgIG1fZHVtbXlTcGFuLT5yZW1vdmUoSUdOT1JFX0VYQ0VQVElPTik7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0VkaXRvckNvY29hLm1tIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9jb2NvYS9FZGl0b3JDb2NvYS5tbQppbmRleCBjZTRiY2JjYTRiZjMyYTlk
NTMzN2JlYjkyZGYxZjdlMGZhOWM5OGYzLi45NWU2NmRiMGRlYTc4Mjk0NmVkNjAwNjEzZTZkN2M5
MWM0ZDE2ZDE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0VkaXRv
ckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRWRpdG9yQ29jb2Eu
bW0KQEAgLTU2LDE2ICs1NiwxNiBAQCBSZW5kZXJTdHlsZSogRWRpdG9yOjpzdHlsZUZvclNlbGVj
dGlvblN0YXJ0KEZyYW1lKiBmcmFtZSwgTm9kZSAqJm5vZGVUb1JlbW92ZSkKICAgICBpZiAoIXR5
cGluZ1N0eWxlIHx8ICF0eXBpbmdTdHlsZS0+c3R5bGUoKSkKICAgICAgICAgcmV0dXJuICZwb3Np
dGlvbi5kZXByZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigpLT5zdHlsZSgpOwogCi0gICAgUmVmUHRy
PEVsZW1lbnQ+IHN0eWxlRWxlbWVudCA9IGZyYW1lLT5kb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50
KEhUTUxOYW1lczo6c3BhblRhZywgZmFsc2UpOworICAgIFJlZjxFbGVtZW50PiBzdHlsZUVsZW1l
bnQgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChIVE1MTmFtZXM6OnNwYW5UYWcs
IGZhbHNlKTsKIAogICAgIFN0cmluZyBzdHlsZVRleHQgPSB0eXBpbmdTdHlsZS0+c3R5bGUoKS0+
YXNUZXh0KCkgKyAiIGRpc3BsYXk6IGlubGluZSI7CiAgICAgc3R5bGVFbGVtZW50LT5zZXRBdHRy
aWJ1dGUoSFRNTE5hbWVzOjpzdHlsZUF0dHIsIHN0eWxlVGV4dCk7CiAKICAgICBzdHlsZUVsZW1l
bnQtPmFwcGVuZENoaWxkKGZyYW1lLT5kb2N1bWVudCgpLT5jcmVhdGVFZGl0aW5nVGV4dE5vZGUo
IiIpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAotICAgIHBvc2l0aW9uLmRlcHJlY2F0ZWROb2Rl
KCktPnBhcmVudE5vZGUoKS0+YXBwZW5kQ2hpbGQoc3R5bGVFbGVtZW50LCBBU1NFUlRfTk9fRVhD
RVBUSU9OKTsKKyAgICBwb3NpdGlvbi5kZXByZWNhdGVkTm9kZSgpLT5wYXJlbnROb2RlKCktPmFw
cGVuZENoaWxkKHN0eWxlRWxlbWVudC5jb3B5UmVmKCksIEFTU0VSVF9OT19FWENFUFRJT04pOwog
Ci0gICAgbm9kZVRvUmVtb3ZlID0gc3R5bGVFbGVtZW50LmdldCgpOworICAgIG5vZGVUb1JlbW92
ZSA9IHN0eWxlRWxlbWVudC5wdHIoKTsKIAogICAgIGZyYW1lLT5kb2N1bWVudCgpLT51cGRhdGVT
dHlsZUlmTmVlZGVkKCk7CiAgICAgcmV0dXJuIHN0eWxlRWxlbWVudC0+cmVuZGVyZXIoKSA/ICZz
dHlsZUVsZW1lbnQtPnJlbmRlcmVyKCktPnN0eWxlKCkgOiBudWxscHRyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAppbmRleCA4ZjA0ZDA4MTM1MmI5NjMyNTZmYmFkNzU3ZmUx
MzVlNmRjZDNkNzUwLi43Y2FhMTRmNGJlMzdjNjEzNDQ5Yzk0YTZhZGRiYzU5ZWI1ZTZiZTUzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcApAQCAtODk5LDIwICs4OTksMTgg
QEAgYm9vbCBpc0VtcHR5VGFibGVDZWxsKGNvbnN0IE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuICFj
aGlsZFJlbmRlcmVyLT5uZXh0U2libGluZygpOwogfQogCi1QYXNzUmVmUHRyPEhUTUxFbGVtZW50
PiBjcmVhdGVEZWZhdWx0UGFyYWdyYXBoRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8
SFRNTEVsZW1lbnQ+IGNyZWF0ZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50KERvY3VtZW50JiBkb2N1
bWVudCkKIHsKICAgICBzd2l0Y2ggKGRvY3VtZW50LmZyYW1lKCktPmVkaXRvcigpLmRlZmF1bHRQ
YXJhZ3JhcGhTZXBhcmF0b3IoKSkgewogICAgIGNhc2UgRWRpdG9yUGFyYWdyYXBoU2VwYXJhdG9y
SXNEaXY6CiAgICAgICAgIHJldHVybiBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsK
ICAgICBjYXNlIEVkaXRvclBhcmFncmFwaFNlcGFyYXRvcklzUDoKLSAgICAgICAgcmV0dXJuIEhU
TUxQYXJhZ3JhcGhFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgICAgICBicmVhazsKICAg
ICB9Ci0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1
cm4gSFRNTFBhcmFncmFwaEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiB9CiAKLVBhc3NSZWZQ
dHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZUJyZWFrRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCitS
ZWY8SFRNTEVsZW1lbnQ+IGNyZWF0ZUJyZWFrRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiB7
CiAgICAgcmV0dXJuIEhUTUxCUkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiB9CkBAIC05NzEs
NyArOTY5LDcgQEAgUG9zaXRpb24gcG9zaXRpb25PdXRzaWRlVGFiU3Bhbihjb25zdCBQb3NpdGlv
biYgcG9zKQogICAgIHJldHVybiBwb3NpdGlvbkluUGFyZW50QmVmb3JlTm9kZShub2RlKTsKIH0K
IAotUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVhdGVUYWJTcGFuRWxlbWVudChEb2N1bWVudCYgZG9j
dW1lbnQsIFBhc3NSZWZQdHI8Tm9kZT4gcHJwVGFiVGV4dE5vZGUpCitSZWY8RWxlbWVudD4gY3Jl
YXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBQYXNzUmVmUHRyPE5vZGU+IHBy
cFRhYlRleHROb2RlKQogewogICAgIFJlZlB0cjxOb2RlPiB0YWJUZXh0Tm9kZSA9IHBycFRhYlRl
eHROb2RlOwogCkBAIC05ODQsMTcgKzk4MiwxNyBAQCBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0
ZVRhYlNwYW5FbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZlB0cjxOb2RlPiBwcgog
ICAgIGlmICghdGFiVGV4dE5vZGUpCiAgICAgICAgIHRhYlRleHROb2RlID0gZG9jdW1lbnQuY3Jl
YXRlRWRpdGluZ1RleHROb2RlKCJcdCIpOwogCi0gICAgc3BhbkVsZW1lbnQtPmFwcGVuZENoaWxk
KHRhYlRleHROb2RlLnJlbGVhc2UoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgc3BhbkVs
ZW1lbnQtPmFwcGVuZENoaWxkKHRhYlRleHROb2RlLnJlbGVhc2VOb25OdWxsKCksIEFTU0VSVF9O
T19FWENFUFRJT04pOwogCi0gICAgcmV0dXJuIHNwYW5FbGVtZW50LnJlbGVhc2UoKTsKKyAgICBy
ZXR1cm4gc3BhbkVsZW1lbnQucmVsZWFzZU5vbk51bGwoKTsKIH0KIAotUGFzc1JlZlB0cjxFbGVt
ZW50PiBjcmVhdGVUYWJTcGFuRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmlu
ZyYgdGFiVGV4dCkKK1JlZjxFbGVtZW50PiBjcmVhdGVUYWJTcGFuRWxlbWVudChEb2N1bWVudCYg
ZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGFiVGV4dCkKIHsKICAgICByZXR1cm4gY3JlYXRlVGFi
U3BhbkVsZW1lbnQoZG9jdW1lbnQsIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRhYlRleHQpKTsK
IH0KIAotUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVhdGVUYWJTcGFuRWxlbWVudChEb2N1bWVudCYg
ZG9jdW1lbnQpCitSZWY8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmIGRv
Y3VtZW50KQogewogICAgIHJldHVybiBjcmVhdGVUYWJTcGFuRWxlbWVudChkb2N1bWVudCwgUGFz
c1JlZlB0cjxOb2RlPigpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
aHRtbGVkaXRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuaAppbmRl
eCA3ODhhZjNmY2ZiOTVlN2QyZDIyODc2MmE1MTU1NjFlZjA4OTNkMGVlLi5mNjlkOWQ4ZWM3NTE3
ODExYjllZDRmM2M3MDc3NDUwYTE1ODExNTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL2h0bWxlZGl0aW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRp
dGluZy5oCkBAIC0yMDYsOCArMjA2LDggQEAgVmlzaWJsZVBvc2l0aW9uIHZpc2libGVQb3NpdGlv
bkZvckluZGV4VXNpbmdDaGFyYWN0ZXJJdGVyYXRvcihOb2RlKiwgaW50IGluZGV4KTsKICAgICAK
IC8vIEZ1bmN0aW9ucyByZXR1cm5pbmcgSFRNTEVsZW1lbnQKICAgICAKLVdFQkNPUkVfRVhQT1JU
IFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50KERv
Y3VtZW50Jik7Ci1QYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVCcmVha0VsZW1lbnQoRG9j
dW1lbnQmKTsKK1dFQkNPUkVfRVhQT1JUIFJlZjxIVE1MRWxlbWVudD4gY3JlYXRlRGVmYXVsdFBh
cmFncmFwaEVsZW1lbnQoRG9jdW1lbnQmKTsKK1JlZjxIVE1MRWxlbWVudD4gY3JlYXRlQnJlYWtF
bGVtZW50KERvY3VtZW50Jik7CiBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVPcmRlcmVk
TGlzdEVsZW1lbnQoRG9jdW1lbnQmKTsKIFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZVVu
b3JkZXJlZExpc3RFbGVtZW50KERvY3VtZW50Jik7CiBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBj
cmVhdGVMaXN0SXRlbUVsZW1lbnQoRG9jdW1lbnQmKTsKQEAgLTIyMiwxMCArMjIyLDEwIEBAIE5v
ZGUqIGVuY2xvc2luZ0xpc3RDaGlsZChOb2RlKik7CiAvLyBFbGVtZW50CiAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCiAKLVBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1l
bnQmKTsKLVBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQm
LCBQYXNzUmVmUHRyPE5vZGU+IHRhYlRleHROb2RlKTsKLVBhc3NSZWZQdHI8RWxlbWVudD4gY3Jl
YXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRhYlRleHQpOwotUGFz
c1JlZlB0cjxFbGVtZW50PiBjcmVhdGVCbG9ja1BsYWNlaG9sZGVyRWxlbWVudChEb2N1bWVudCYp
OworUmVmPEVsZW1lbnQ+IGNyZWF0ZVRhYlNwYW5FbGVtZW50KERvY3VtZW50Jik7CitSZWY8RWxl
bWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmLCBQYXNzUmVmUHRyPE5vZGU+IHRh
YlRleHROb2RlKTsKK1JlZjxFbGVtZW50PiBjcmVhdGVUYWJTcGFuRWxlbWVudChEb2N1bWVudCYs
IGNvbnN0IFN0cmluZyYgdGFiVGV4dCk7CitSZWY8RWxlbWVudD4gY3JlYXRlQmxvY2tQbGFjZWhv
bGRlckVsZW1lbnQoRG9jdW1lbnQmKTsKIAogRWxlbWVudCogZWRpdGFibGVSb290Rm9yUG9zaXRp
b24oY29uc3QgUG9zaXRpb24mLCBFZGl0YWJsZVR5cGUgPSBDb250ZW50SXNFZGl0YWJsZSk7CiBF
bGVtZW50KiB1bnNwbGl0dGFibGVFbGVtZW50Rm9yUG9zaXRpb24oY29uc3QgUG9zaXRpb24mKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbQppbmRleCAyMjZlYWQ1YTQzYmY1
OTgyZDliMWJhODE0OWEyMDhlMTJhZTcwMTFmLi44MTUxOTg1ZjBiOTFlNzZmMDAzMTU2YjFhNTIz
NjJmNjI3MGFmMDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0
b3JJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tCkBA
IC0zOTcsNyArMzk3LDcgQEAgdm9pZCBFZGl0b3I6OldlYkNvbnRlbnRSZWFkZXI6OmFkZEZyYWdt
ZW50KFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gbmV3RnJhZ20KICAgICBpZiAoZnJhZ21l
bnQpIHsKICAgICAgICAgaWYgKG5ld0ZyYWdtZW50ICYmIG5ld0ZyYWdtZW50LT5maXJzdENoaWxk
KCkpIHsKICAgICAgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWM7Ci0gICAgICAgICAgICBmcmFnbWVu
dC0+YXBwZW5kQ2hpbGQobmV3RnJhZ21lbnQtPmZpcnN0Q2hpbGQoKSwgZWMpOworICAgICAgICAg
ICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKCpuZXdGcmFnbWVudC0+Zmlyc3RDaGlsZCgpLCBlYyk7
CiAgICAgICAgIH0KICAgICB9IGVsc2UKICAgICAgICAgZnJhZ21lbnQgPSBuZXdGcmFnbWVudDsK
QEAgLTQ5NCwxMiArNDk0LDEyIEBAIGJvb2wgRWRpdG9yOjpXZWJDb250ZW50UmVhZGVyOjpyZWFk
VVJMKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmKQogICAgICAgICAgICAgcmV0dXJuIGZy
YWdtZW50OwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKLSAgICAgICAgUmVmUHRyPEVsZW1lbnQ+
IGFuY2hvciA9IGZyYW1lLmRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoSFRNTE5hbWVzOjphVGFn
LCBmYWxzZSk7CisgICAgICAgIFJlZjxFbGVtZW50PiBhbmNob3IgPSBmcmFtZS5kb2N1bWVudCgp
LT5jcmVhdGVFbGVtZW50KEhUTUxOYW1lczo6YVRhZywgZmFsc2UpOwogICAgICAgICBhbmNob3It
PnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmhyZWZBdHRyLCB1cmwuc3RyaW5nKCkpOwogICAgICAg
ICBhbmNob3ItPmFwcGVuZENoaWxkKGZyYW1lLmRvY3VtZW50KCktPmNyZWF0ZVRleHROb2RlKFtb
KE5TVVJMICopdXJsIGFic29sdXRlU3RyaW5nXSBwcmVjb21wb3NlZFN0cmluZ1dpdGhDYW5vbmlj
YWxNYXBwaW5nXSkpOwogCiAgICAgICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBuZXdGcmFn
bWVudCA9IGZyYW1lLmRvY3VtZW50KCktPmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAgICAg
ICAgbmV3RnJhZ21lbnQtPmFwcGVuZENoaWxkKGFuY2hvci5yZWxlYXNlKCkpOworICAgICAgICBu
ZXdGcmFnbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGFuY2hvcikpOwogICAgICAgICBhZGRG
cmFnbWVudChuZXdGcmFnbWVudCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KQEAgLTU4
Myw3ICs1ODMsNyBAQCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IEVkaXRvcjo6Y3JlYXRl
RnJhZ21lbnRGb3JJbWFnZVJlc291cmNlQW5kQWRkUmVzb3VyYwogICAgIGlmICghcmVzb3VyY2Up
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgUmVmUHRyPEVsZW1lbnQ+IGltYWdlRWxl
bWVudCA9IG1fZnJhbWUuZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChIVE1MTmFtZXM6OmltZ1Rh
ZywgZmFsc2UpOworICAgIFJlZjxFbGVtZW50PiBpbWFnZUVsZW1lbnQgPSBtX2ZyYW1lLmRvY3Vt
ZW50KCktPmNyZWF0ZUVsZW1lbnQoSFRNTE5hbWVzOjppbWdUYWcsIGZhbHNlKTsKICAgICAvLyBG
SVhNRTogVGhlIGNvZGUgaW4gY3JlYXRlRnJhZ21lbnRBbmRBZGRSZXNvdXJjZXMgY2FsbHMgc2V0
RGVmZXJzTG9hZGluZyh0cnVlKS4gRG9uJ3Qgd2UgbmVlZCB0aGF0IGhlcmU/CiAgICAgaWYgKERv
Y3VtZW50TG9hZGVyKiBsb2FkZXIgPSBtX2ZyYW1lLmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCkp
CiAgICAgICAgIGxvYWRlci0+YWRkQXJjaGl2ZVJlc291cmNlKHJlc291cmNlLmdldCgpKTsKQEAg
LTU5Miw3ICs1OTIsNyBAQCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IEVkaXRvcjo6Y3Jl
YXRlRnJhZ21lbnRGb3JJbWFnZVJlc291cmNlQW5kQWRkUmVzb3VyYwogICAgIGltYWdlRWxlbWVu
dC0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6c3JjQXR0ciwgW1VSTCBpc0ZpbGVVUkxdID8gW1VS
TCBhYnNvbHV0ZVN0cmluZ10gOiByZXNvdXJjZS0+dXJsKCkpOwogCiAgICAgUmVmUHRyPERvY3Vt
ZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gbV9mcmFtZS5kb2N1bWVudCgpLT5jcmVhdGVEb2N1bWVu
dEZyYWdtZW50KCk7Ci0gICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKGltYWdlRWxlbWVudC5yZWxl
YXNlKCkpOworICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoaW1hZ2VFbGVtZW50
KSk7CiAKICAgICByZXR1cm4gZnJhZ21lbnQucmVsZWFzZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9tYWMvRWRpdG9yTWFjLm1tCmluZGV4IDZjZWY0ODk5NTliNDk1ZDA3Njk5MDE1M2JiOTVh
MWMyZjA5ZmFmMDQuLmNkMjUyZGNmZDMxYzNlMDBjMTU3N2RiZjkzMGM4NjgzYjUwZGQwMGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KQEAgLTUyNywxNSArNTI3LDE1
IEBAIGJvb2wgRWRpdG9yOjpXZWJDb250ZW50UmVhZGVyOjpyZWFkRmlsZW5hbWVzKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBwYXRocykKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7IGkr
KykgewogICAgICAgICBTdHJpbmcgdGV4dCA9IHBhdGhzW2ldOwogI2lmIEVOQUJMRShBVFRBQ0hN
RU5UX0VMRU1FTlQpCi0gICAgICAgIFJlZlB0cjxIVE1MQXR0YWNobWVudEVsZW1lbnQ+IGF0dGFj
aG1lbnQgPSBIVE1MQXR0YWNobWVudEVsZW1lbnQ6OmNyZWF0ZShhdHRhY2htZW50VGFnLCBkb2N1
bWVudCk7CisgICAgICAgIFJlZjxIVE1MQXR0YWNobWVudEVsZW1lbnQ+IGF0dGFjaG1lbnQgPSBI
VE1MQXR0YWNobWVudEVsZW1lbnQ6OmNyZWF0ZShhdHRhY2htZW50VGFnLCBkb2N1bWVudCk7CiAg
ICAgICAgIGF0dGFjaG1lbnQtPnNldEZpbGUoRmlsZTo6Y3JlYXRlKFtbTlNVUkwgZmlsZVVSTFdp
dGhQYXRoOnRleHRdIHBhdGhdKS5wdHIoKSk7Ci0gICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGls
ZChhdHRhY2htZW50LnJlbGVhc2UoKSk7CisgICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChX
VEY6Om1vdmUoYXR0YWNobWVudCkpOwogI2Vsc2UKICAgICAgICAgdGV4dCA9IGZyYW1lLmVkaXRv
cigpLmNsaWVudCgpLT51c2VyVmlzaWJsZVN0cmluZyhbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOnRl
eHRdKTsKIAotICAgICAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IHBhcmFncmFwaCA9IGNyZWF0ZURl
ZmF1bHRQYXJhZ3JhcGhFbGVtZW50KGRvY3VtZW50KTsKKyAgICAgICAgUmVmPEhUTUxFbGVtZW50
PiBwYXJhZ3JhcGggPSBjcmVhdGVEZWZhdWx0UGFyYWdyYXBoRWxlbWVudChkb2N1bWVudCk7CiAg
ICAgICAgIHBhcmFncmFwaC0+YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGV4
dCkpOwotICAgICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQocGFyYWdyYXBoLnJlbGVhc2UoKSk7
CisgICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUocGFyYWdyYXBoKSk7CiAj
ZW5kaWYKICAgICB9CiAKQEAgLTU5NCwxMiArNTk0LDEyIEBAIGJvb2wgRWRpdG9yOjpXZWJDb250
ZW50UmVhZGVyOjpyZWFkVVJMKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlKQog
ICAgIGlmICh1cmwuc3RyaW5nKCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICBSZWZQdHI8RWxlbWVudD4gYW5jaG9yID0gZnJhbWUuZG9jdW1lbnQoKS0+Y3JlYXRlRWxl
bWVudChIVE1MTmFtZXM6OmFUYWcsIGZhbHNlKTsKKyAgICBSZWY8RWxlbWVudD4gYW5jaG9yID0g
ZnJhbWUuZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChIVE1MTmFtZXM6OmFUYWcsIGZhbHNlKTsK
ICAgICBhbmNob3ItPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmhyZWZBdHRyLCB1cmwuc3RyaW5n
KCkpOwogICAgIGFuY2hvci0+YXBwZW5kQ2hpbGQoZnJhbWUuZG9jdW1lbnQoKS0+Y3JlYXRlVGV4
dE5vZGUoW3RpdGxlIHByZWNvbXBvc2VkU3RyaW5nV2l0aENhbm9uaWNhbE1hcHBpbmddKSk7CiAK
ICAgICBmcmFnbWVudCA9IGZyYW1lLmRvY3VtZW50KCktPmNyZWF0ZURvY3VtZW50RnJhZ21lbnQo
KTsKLSAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoYW5jaG9yLnJlbGVhc2UoKSk7CisgICAgZnJh
Z21lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShhbmNob3IpKTsKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIApAQCAtNjM1LDExICs2MzUsMTEgQEAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBF
ZGl0b3I6OmNyZWF0ZUZyYWdtZW50Rm9ySW1hZ2VSZXNvdXJjZUFuZEFkZFJlc291cmMKICAgICBp
ZiAoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciA9IG1fZnJhbWUubG9hZGVyKCkuZG9jdW1lbnRMb2Fk
ZXIoKSkKICAgICAgICAgbG9hZGVyLT5hZGRBcmNoaXZlUmVzb3VyY2UocmVzb3VyY2UuZ2V0KCkp
OwogCi0gICAgUmVmUHRyPEVsZW1lbnQ+IGltYWdlRWxlbWVudCA9IGRvY3VtZW50KCkuY3JlYXRl
RWxlbWVudChIVE1MTmFtZXM6OmltZ1RhZywgZmFsc2UpOworICAgIFJlZjxFbGVtZW50PiBpbWFn
ZUVsZW1lbnQgPSBkb2N1bWVudCgpLmNyZWF0ZUVsZW1lbnQoSFRNTE5hbWVzOjppbWdUYWcsIGZh
bHNlKTsKICAgICBpbWFnZUVsZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OnNyY0F0dHIs
IHJlc291cmNlLT51cmwoKS5zdHJpbmcoKSk7CiAKICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVu
dD4gZnJhZ21lbnQgPSBkb2N1bWVudCgpLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAgICBm
cmFnbWVudC0+YXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50LnJlbGVhc2UoKSk7CisgICAgZnJhZ21l
bnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShpbWFnZUVsZW1lbnQpKTsKIAogICAgIHJldHVybiBm
cmFnbWVudC5yZWxlYXNlKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L21hcmt1cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKaW5kZXggMGNh
YzhiNDBmZDhhM2M2NTE4MDQxNTQ4ZWI2NDlkOTRiNTM2ZDJkMi4uMjA1NGM0ZThkYmZiNjFlMWIz
NzUyZDhlYWFiYzIyYTA4MTMxMGQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9tYXJrdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcApAQCAt
NzA0LDEyICs3MDQsMTIgQEAgU3RyaW5nIGNyZWF0ZU1hcmt1cChjb25zdCBOb2RlJiBub2RlLCBF
Q2hpbGRyZW5Pbmx5IGNoaWxkcmVuT25seSwgVmVjdG9yPE5vZGUqPioKICAgICByZXR1cm4gYWNj
dW11bGF0b3Iuc2VyaWFsaXplTm9kZXMoY29uc3RfY2FzdDxOb2RlJj4obm9kZSksIGNoaWxkcmVu
T25seSwgdGFnTmFtZXNUb1NraXApOwogfQogCi1zdGF0aWMgdm9pZCBmaWxsQ29udGFpbmVyRnJv
bVN0cmluZyhDb250YWluZXJOb2RlKiBwYXJhZ3JhcGgsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQor
c3RhdGljIHZvaWQgZmlsbENvbnRhaW5lckZyb21TdHJpbmcoQ29udGFpbmVyTm9kZSYgcGFyYWdy
YXBoLCBjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBw
YXJhZ3JhcGgtPmRvY3VtZW50KCk7CisgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gcGFyYWdyYXBo
LmRvY3VtZW50KCk7CiAKICAgICBpZiAoc3RyaW5nLmlzRW1wdHkoKSkgewotICAgICAgICBwYXJh
Z3JhcGgtPmFwcGVuZENoaWxkKGNyZWF0ZUJsb2NrUGxhY2Vob2xkZXJFbGVtZW50KGRvY3VtZW50
KSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAgIHBhcmFncmFwaC5hcHBlbmRDaGlsZChj
cmVhdGVCbG9ja1BsYWNlaG9sZGVyRWxlbWVudChkb2N1bWVudCksIEFTU0VSVF9OT19FWENFUFRJ
T04pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC03MjYsMTEgKzcyNiwxMSBAQCBzdGF0
aWMgdm9pZCBmaWxsQ29udGFpbmVyRnJvbVN0cmluZyhDb250YWluZXJOb2RlKiBwYXJhZ3JhcGgs
IGNvbnN0IFN0cmluZyYgc3RyaQogICAgICAgICAvLyBhcHBlbmQgdGhlIG5vbi10YWIgdGV4dHVh
bCBwYXJ0CiAgICAgICAgIGlmICghcy5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIGlmICghdGFi
VGV4dC5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICBwYXJhZ3JhcGgtPmFwcGVuZENoaWxk
KGNyZWF0ZVRhYlNwYW5FbGVtZW50KGRvY3VtZW50LCB0YWJUZXh0KSwgQVNTRVJUX05PX0VYQ0VQ
VElPTik7CisgICAgICAgICAgICAgICAgcGFyYWdyYXBoLmFwcGVuZENoaWxkKGNyZWF0ZVRhYlNw
YW5FbGVtZW50KGRvY3VtZW50LCB0YWJUZXh0KSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAg
ICAgICAgICAgICAgdGFiVGV4dCA9IGVtcHR5U3RyaW5nKCk7CiAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBSZWZQdHI8Tm9kZT4gdGV4dE5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShz
dHJpbmdXaXRoUmViYWxhbmNlZFdoaXRlc3BhY2UocywgZmlyc3QsIGkgKyAxID09IG51bUVudHJp
ZXMpKTsKLSAgICAgICAgICAgIHBhcmFncmFwaC0+YXBwZW5kQ2hpbGQodGV4dE5vZGUucmVsZWFz
ZSgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgICAgIFJlZjxOb2RlPiB0ZXh0Tm9k
ZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cmluZ1dpdGhSZWJhbGFuY2VkV2hpdGVzcGFj
ZShzLCBmaXJzdCwgaSArIDEgPT0gbnVtRW50cmllcykpOworICAgICAgICAgICAgcGFyYWdyYXBo
LmFwcGVuZENoaWxkKFdURjo6bW92ZSh0ZXh0Tm9kZSksIEFTU0VSVF9OT19FWENFUFRJT04pOwog
ICAgICAgICB9CiAKICAgICAgICAgLy8gdGhlcmUgaXMgYSB0YWIgYWZ0ZXIgZXZlcnkgZW50cnks
IGV4Y2VwdCB0aGUgbGFzdCBlbnRyeQpAQCAtNzM4LDcgKzczOCw3IEBAIHN0YXRpYyB2b2lkIGZp
bGxDb250YWluZXJGcm9tU3RyaW5nKENvbnRhaW5lck5vZGUqIHBhcmFncmFwaCwgY29uc3QgU3Ry
aW5nJiBzdHJpCiAgICAgICAgIGlmIChpICsgMSAhPSBudW1FbnRyaWVzKQogICAgICAgICAgICAg
dGFiVGV4dC5hcHBlbmQoJ1x0Jyk7CiAgICAgICAgIGVsc2UgaWYgKCF0YWJUZXh0LmlzRW1wdHko
KSkKLSAgICAgICAgICAgIHBhcmFncmFwaC0+YXBwZW5kQ2hpbGQoY3JlYXRlVGFiU3BhbkVsZW1l
bnQoZG9jdW1lbnQsIHRhYlRleHQpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgICAg
IHBhcmFncmFwaC5hcHBlbmRDaGlsZChjcmVhdGVUYWJTcGFuRWxlbWVudChkb2N1bWVudCwgdGFi
VGV4dCksIEFTU0VSVF9OT19FWENFUFRJT04pOwogCiAgICAgICAgIGZpcnN0ID0gZmFsc2U7CiAg
ICAgfQpAQCAtNzc4LDEzICs3NzgsMTMgQEAgc3RhdGljIGJvb2wgY29udGV4dFByZXNlcnZlc05l
d2xpbmUoY29uc3QgUmFuZ2UmIGNvbnRleHQpCiAgICAgcmV0dXJuIGNvbnRhaW5lci0+cmVuZGVy
ZXIoKS0+c3R5bGUoKS5wcmVzZXJ2ZU5ld2xpbmUoKTsKIH0KIAotUGFzc1JlZlB0cjxEb2N1bWVu
dEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21UZXh0KFJhbmdlJiBjb250ZXh0LCBjb25zdCBT
dHJpbmcmIHRleHQpCitSZWY8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGcm9tVGV4
dChSYW5nZSYgY29udGV4dCwgY29uc3QgU3RyaW5nJiB0ZXh0KQogewogICAgIERvY3VtZW50JiBk
b2N1bWVudCA9IGNvbnRleHQub3duZXJEb2N1bWVudCgpOwotICAgIFJlZlB0cjxEb2N1bWVudEZy
YWdtZW50PiBmcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKKyAg
ICBSZWY8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVu
dEZyYWdtZW50KCk7CiAgICAgCiAgICAgaWYgKHRleHQuaXNFbXB0eSgpKQotICAgICAgICByZXR1
cm4gZnJhZ21lbnQucmVsZWFzZSgpOworICAgICAgICByZXR1cm4gZnJhZ21lbnQ7CiAKICAgICBT
dHJpbmcgc3RyaW5nID0gdGV4dDsKICAgICBzdHJpbmcucmVwbGFjZSgiXHJcbiIsICJcbiIpOwpA
QCAtNzkzLDE3ICs3OTMsMTcgQEAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVG
cmFnbWVudEZyb21UZXh0KFJhbmdlJiBjb250ZXh0LCBjb25zdCBTdHJpbmcKICAgICBpZiAoY29u
dGV4dFByZXNlcnZlc05ld2xpbmUoY29udGV4dCkpIHsKICAgICAgICAgZnJhZ21lbnQtPmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cmluZyksIEFTU0VSVF9OT19FWENFUFRJ
T04pOwogICAgICAgICBpZiAoc3RyaW5nLmVuZHNXaXRoKCdcbicpKSB7Ci0gICAgICAgICAgICBS
ZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IGNyZWF0ZUJyZWFrRWxlbWVudChkb2N1bWVudCk7Cisg
ICAgICAgICAgICBSZWY8RWxlbWVudD4gZWxlbWVudCA9IGNyZWF0ZUJyZWFrRWxlbWVudChkb2N1
bWVudCk7CiAgICAgICAgICAgICBlbGVtZW50LT5zZXRBdHRyaWJ1dGUoY2xhc3NBdHRyLCBBcHBs
ZUludGVyY2hhbmdlTmV3bGluZSk7ICAgICAgICAgICAgCi0gICAgICAgICAgICBmcmFnbWVudC0+
YXBwZW5kQ2hpbGQoZWxlbWVudC5yZWxlYXNlKCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAg
ICAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShlbGVtZW50KSwgQVNTRVJU
X05PX0VYQ0VQVElPTik7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGZyYWdtZW50LnJlbGVh
c2UoKTsKKyAgICAgICAgcmV0dXJuIGZyYWdtZW50OwogICAgIH0KIAogICAgIC8vIEEgc3RyaW5n
IHdpdGggbm8gbmV3bGluZXMgZ2V0cyBhZGRlZCBpbmxpbmUsIHJhdGhlciB0aGFuIGJlaW5nIHB1
dCBpbnRvIGEgcGFyYWdyYXBoLgogICAgIGlmIChzdHJpbmcuZmluZCgnXG4nKSA9PSBub3RGb3Vu
ZCkgewotICAgICAgICBmaWxsQ29udGFpbmVyRnJvbVN0cmluZyhmcmFnbWVudC5nZXQoKSwgc3Ry
aW5nKTsKLSAgICAgICAgcmV0dXJuIGZyYWdtZW50LnJlbGVhc2UoKTsKKyAgICAgICAgZmlsbENv
bnRhaW5lckZyb21TdHJpbmcoZnJhZ21lbnQsIHN0cmluZyk7CisgICAgICAgIHJldHVybiBmcmFn
bWVudDsKICAgICB9CiAKICAgICAvLyBCcmVhayBzdHJpbmcgaW50byBwYXJhZ3JhcGhzLiBFeHRy
YSBsaW5lIGJyZWFrcyB0dXJuIGludG8gZW1wdHkgcGFyYWdyYXBocy4KQEAgLTgyOSwxNyArODI5
LDE3IEBAIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGcm9tVGV4
dChSYW5nZSYgY29udGV4dCwgY29uc3QgU3RyaW5nCiAgICAgICAgICAgICBlbGVtZW50LT5zZXRB
dHRyaWJ1dGUoY2xhc3NBdHRyLCBBcHBsZUludGVyY2hhbmdlTmV3bGluZSk7CiAgICAgICAgIH0g
ZWxzZSBpZiAodXNlTGluZUJyZWFrKSB7CiAgICAgICAgICAgICBlbGVtZW50ID0gY3JlYXRlQnJl
YWtFbGVtZW50KGRvY3VtZW50KTsKLSAgICAgICAgICAgIGZpbGxDb250YWluZXJGcm9tU3RyaW5n
KGZyYWdtZW50LmdldCgpLCBzKTsKKyAgICAgICAgICAgIGZpbGxDb250YWluZXJGcm9tU3RyaW5n
KGZyYWdtZW50LCBzKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmICh1c2VDbG9u
ZXNPZkVuY2xvc2luZ0Jsb2NrKQogICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBibG9jay0+Y2xv
bmVFbGVtZW50V2l0aG91dENoaWxkcmVuKGRvY3VtZW50KTsKICAgICAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgICAgICBlbGVtZW50ID0gY3JlYXRlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQoZG9j
dW1lbnQpOwotICAgICAgICAgICAgZmlsbENvbnRhaW5lckZyb21TdHJpbmcoZWxlbWVudC5nZXQo
KSwgcyk7CisgICAgICAgICAgICBmaWxsQ29udGFpbmVyRnJvbVN0cmluZygqZWxlbWVudCwgcyk7
CiAgICAgICAgIH0KLSAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKGVsZW1lbnQucmVsZWFz
ZSgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxk
KGVsZW1lbnQucmVsZWFzZU5vbk51bGwoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgfQot
ICAgIHJldHVybiBmcmFnbWVudC5yZWxlYXNlKCk7CisgICAgcmV0dXJuIGZyYWdtZW50OwogfQog
CiBTdHJpbmcgZG9jdW1lbnRUeXBlU3RyaW5nKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkKQEAg
LTk0NSwxMCArOTQ1LDEwIEBAIHN0YXRpYyB2b2lkIHJlbW92ZUVsZW1lbnRGcm9tRnJhZ21lbnRQ
cmVzZXJ2aW5nQ2hpbGRyZW4oRG9jdW1lbnRGcmFnbWVudCYgZnJhZ21lCiAgICAgUmVmUHRyPE5v
ZGU+IG5leHRDaGlsZDsKICAgICBmb3IgKFJlZlB0cjxOb2RlPiBjaGlsZCA9IGVsZW1lbnQuZmly
c3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBuZXh0Q2hpbGQpIHsKICAgICAgICAgbmV4dENoaWxk
ID0gY2hpbGQtPm5leHRTaWJsaW5nKCk7Ci0gICAgICAgIGVsZW1lbnQucmVtb3ZlQ2hpbGQoY2hp
bGQuZ2V0KCksIEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgICAgICBmcmFnbWVudC5pbnNlcnRC
ZWZvcmUoY2hpbGQsICZlbGVtZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgZWxl
bWVudC5yZW1vdmVDaGlsZCgqY2hpbGQsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAgICBm
cmFnbWVudC5pbnNlcnRCZWZvcmUoKmNoaWxkLCAmZWxlbWVudCwgQVNTRVJUX05PX0VYQ0VQVElP
Tik7CiAgICAgfQotICAgIGZyYWdtZW50LnJlbW92ZUNoaWxkKCZlbGVtZW50LCBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKKyAgICBmcmFnbWVudC5yZW1vdmVDaGlsZChlbGVtZW50LCBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKIH0KIAogUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVDb250
ZXh0dWFsRnJhZ21lbnQoY29uc3QgU3RyaW5nJiBtYXJrdXAsIEhUTUxFbGVtZW50KiBlbGVtZW50
LCBQYXJzZXJDb250ZW50UG9saWN5IHBhcnNlckNvbnRlbnRQb2xpY3ksIEV4Y2VwdGlvbkNvZGUm
IGVjKQpAQCAtOTkwLDcgKzk5MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBoYXNPbmVUZXh0Q2hp
bGQoQ29udGFpbmVyTm9kZSYgbm9kZSkKICAgICByZXR1cm4gaGFzT25lQ2hpbGQobm9kZSkgJiYg
bm9kZS5maXJzdENoaWxkKCktPmlzVGV4dE5vZGUoKTsKIH0KIAotdm9pZCByZXBsYWNlQ2hpbGRy
ZW5XaXRoRnJhZ21lbnQoQ29udGFpbmVyTm9kZSYgY29udGFpbmVyLCBQYXNzUmVmUHRyPERvY3Vt
ZW50RnJhZ21lbnQ+IGZyYWdtZW50LCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgcmVwbGFjZUNo
aWxkcmVuV2l0aEZyYWdtZW50KENvbnRhaW5lck5vZGUmIGNvbnRhaW5lciwgUmVmPERvY3VtZW50
RnJhZ21lbnQ+JiYgZnJhZ21lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIFJlZjxDb250
YWluZXJOb2RlPiBjb250YWluZXJOb2RlKGNvbnRhaW5lcik7CiAgICAgQ2hpbGRMaXN0TXV0YXRp
b25TY29wZSBtdXRhdGlvbihjb250YWluZXJOb2RlKTsKQEAgLTEwMDAsMTggKzEwMDAsMTggQEAg
dm9pZCByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQoQ29udGFpbmVyTm9kZSYgY29udGFpbmVy
LCBQYXNzUmVmUHRyPERvY3VtZW50RnIKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlm
IChoYXNPbmVUZXh0Q2hpbGQoY29udGFpbmVyTm9kZSkgJiYgaGFzT25lVGV4dENoaWxkKCpmcmFn
bWVudCkpIHsKKyAgICBpZiAoaGFzT25lVGV4dENoaWxkKGNvbnRhaW5lck5vZGUpICYmIGhhc09u
ZVRleHRDaGlsZChmcmFnbWVudCkpIHsKICAgICAgICAgZG93bmNhc3Q8VGV4dD4oKmNvbnRhaW5l
ck5vZGUtPmZpcnN0Q2hpbGQoKSkuc2V0RGF0YShkb3duY2FzdDxUZXh0PigqZnJhZ21lbnQtPmZp
cnN0Q2hpbGQoKSkuZGF0YSgpLCBlYyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBp
ZiAoaGFzT25lQ2hpbGQoY29udGFpbmVyTm9kZSkpIHsKLSAgICAgICAgY29udGFpbmVyTm9kZS0+
cmVwbGFjZUNoaWxkKGZyYWdtZW50LCBjb250YWluZXJOb2RlLT5maXJzdENoaWxkKCksIGVjKTsK
KyAgICAgICAgY29udGFpbmVyTm9kZS0+cmVwbGFjZUNoaWxkKFdURjo6bW92ZShmcmFnbWVudCks
ICpjb250YWluZXJOb2RlLT5maXJzdENoaWxkKCksIGVjKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAogICAgIGNvbnRhaW5lck5vZGUtPnJlbW92ZUNoaWxkcmVuKCk7Ci0gICAgY29udGFpbmVy
Tm9kZS0+YXBwZW5kQ2hpbGQoZnJhZ21lbnQsIGVjKTsKKyAgICBjb250YWluZXJOb2RlLT5hcHBl
bmRDaGlsZChXVEY6Om1vdmUoZnJhZ21lbnQpLCBlYyk7CiB9CiAKIHZvaWQgcmVwbGFjZUNoaWxk
cmVuV2l0aFRleHQoQ29udGFpbmVyTm9kZSYgY29udGFpbmVyLCBjb25zdCBTdHJpbmcmIHRleHQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtMTAyNyw3ICsxMDI3LDcgQEAgdm9pZCByZXBsYWNlQ2hp
bGRyZW5XaXRoVGV4dChDb250YWluZXJOb2RlJiBjb250YWluZXIsIGNvbnN0IFN0cmluZyYgdGV4
dCwgRXhjZXAKICAgICBSZWY8VGV4dD4gdGV4dE5vZGUgPSBUZXh0OjpjcmVhdGUoY29udGFpbmVy
Tm9kZS0+ZG9jdW1lbnQoKSwgdGV4dCk7CiAKICAgICBpZiAoaGFzT25lQ2hpbGQoY29udGFpbmVy
Tm9kZSkpIHsKLSAgICAgICAgY29udGFpbmVyTm9kZS0+cmVwbGFjZUNoaWxkKFdURjo6bW92ZSh0
ZXh0Tm9kZSksIGNvbnRhaW5lck5vZGUtPmZpcnN0Q2hpbGQoKSwgZWMpOworICAgICAgICBjb250
YWluZXJOb2RlLT5yZXBsYWNlQ2hpbGQoV1RGOjptb3ZlKHRleHROb2RlKSwgKmNvbnRhaW5lck5v
ZGUtPmZpcnN0Q2hpbGQoKSwgZWMpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9tYXJrdXAuaAppbmRleCBjNTUyMDEwNzY2MDcyZWY1ZTYxZDI2YTMxM2MxYjAwM2IxYjgz
NGI4Li5hNTQ1YmE1NDY2ZjJmZDE4M2Q1NWJiNGU4MzIwOTQ0OGM4OGYzNzkzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvbWFya3VwLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgZW51bSBFQ2hpbGRyZW5Pbmx5IHsgSW5j
bHVkZU5vZGUsIENoaWxkcmVuT25seSB9OwogZW51bSBFQWJzb2x1dGVVUkxzIHsgRG9Ob3RSZXNv
bHZlVVJMcywgUmVzb2x2ZUFsbFVSTHMsIFJlc29sdmVOb25Mb2NhbFVSTHMgfTsKIGVudW0gRUZy
YWdtZW50U2VyaWFsaXphdGlvbiB7IEhUTUxGcmFnbWVudFNlcmlhbGl6YXRpb24sIFhNTEZyYWdt
ZW50U2VyaWFsaXphdGlvbiB9OwogCi1XRUJDT1JFX0VYUE9SVCBQYXNzUmVmUHRyPERvY3VtZW50
RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoUmFuZ2UmIGNvbnRleHQsIGNvbnN0IFN0
cmluZyYgdGV4dCk7CitXRUJDT1JFX0VYUE9SVCBSZWY8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRl
RnJhZ21lbnRGcm9tVGV4dChSYW5nZSYgY29udGV4dCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKIFdF
QkNPUkVfRVhQT1JUIFJlZjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21NYXJr
dXAoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIG1hcmt1cCwgY29uc3QgU3RyaW5nJiBiYXNlVVJM
LCBQYXJzZXJDb250ZW50UG9saWN5ID0gQWxsb3dTY3JpcHRpbmdDb250ZW50KTsKIFBhc3NSZWZQ
dHI8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGb3JJbm5lck91dGVySFRNTChjb25z
dCBTdHJpbmcmLCBFbGVtZW50KiwgUGFyc2VyQ29udGVudFBvbGljeSwgRXhjZXB0aW9uQ29kZSYp
OwogUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZvclRyYW5zZm9y
bVRvRnJhZ21lbnQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBzb3VyY2VNSU1FVHlwZSwg
RG9jdW1lbnQqIG91dHB1dERvYyk7CkBAIC01OSwxMSArNTksMTEgQEAgYm9vbCBpc1BsYWluVGV4
dE1hcmt1cChOb2RlKik7CiAKIC8vIFRoZXNlIG1ldGhvZHMgYXJlIHVzZWQgYnkgSFRNTEVsZW1l
bnQgJiBTaGFkb3dSb290IHRvIHJlcGxhY2UgdGhlCiAvLyBjaGlsZHJlbiB3aXRoIHJlc3BlY3Rl
ZCBmcmFnbWVudC90ZXh0Lgotdm9pZCByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQoQ29udGFp
bmVyTm9kZSYsIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4sIEV4Y2VwdGlvbkNvZGUmKTsK
K3ZvaWQgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KENvbnRhaW5lck5vZGUmLCBSZWY8RG9j
dW1lbnRGcmFnbWVudD4mJiwgRXhjZXB0aW9uQ29kZSYpOwogdm9pZCByZXBsYWNlQ2hpbGRyZW5X
aXRoVGV4dChDb250YWluZXJOb2RlJiwgY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwog
Ci1TdHJpbmcgY3JlYXRlTWFya3VwKGNvbnN0IFJhbmdlJiwgVmVjdG9yPE5vZGUqPiogPSAwLCBF
QW5ub3RhdGVGb3JJbnRlcmNoYW5nZSA9IERvTm90QW5ub3RhdGVGb3JJbnRlcmNoYW5nZSwgYm9v
bCBjb252ZXJ0QmxvY2tzVG9JbmxpbmVzID0gZmFsc2UsIEVBYnNvbHV0ZVVSTHMgPSBEb05vdFJl
c29sdmVVUkxzKTsKLVN0cmluZyBjcmVhdGVNYXJrdXAoY29uc3QgTm9kZSYsIEVDaGlsZHJlbk9u
bHkgPSBJbmNsdWRlTm9kZSwgVmVjdG9yPE5vZGUqPiogPSAwLCBFQWJzb2x1dGVVUkxzID0gRG9O
b3RSZXNvbHZlVVJMcywgVmVjdG9yPFF1YWxpZmllZE5hbWU+KiB0YWdOYW1lc1RvU2tpcCA9IDAs
IEVGcmFnbWVudFNlcmlhbGl6YXRpb24gPSBIVE1MRnJhZ21lbnRTZXJpYWxpemF0aW9uKTsKK1N0
cmluZyBjcmVhdGVNYXJrdXAoY29uc3QgUmFuZ2UmLCBWZWN0b3I8Tm9kZSo+KiA9IG51bGxwdHIs
IEVBbm5vdGF0ZUZvckludGVyY2hhbmdlID0gRG9Ob3RBbm5vdGF0ZUZvckludGVyY2hhbmdlLCBi
b29sIGNvbnZlcnRCbG9ja3NUb0lubGluZXMgPSBmYWxzZSwgRUFic29sdXRlVVJMcyA9IERvTm90
UmVzb2x2ZVVSTHMpOworU3RyaW5nIGNyZWF0ZU1hcmt1cChjb25zdCBOb2RlJiwgRUNoaWxkcmVu
T25seSA9IEluY2x1ZGVOb2RlLCBWZWN0b3I8Tm9kZSo+KiA9IG51bGxwdHIsIEVBYnNvbHV0ZVVS
THMgPSBEb05vdFJlc29sdmVVUkxzLCBWZWN0b3I8UXVhbGlmaWVkTmFtZT4qIHRhZ05hbWVzVG9T
a2lwID0gMCwgRUZyYWdtZW50U2VyaWFsaXphdGlvbiA9IEhUTUxGcmFnbWVudFNlcmlhbGl6YXRp
b24pOwogCiBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY3JlYXRlRnVsbE1hcmt1cChjb25zdCBOb2Rl
Jik7CiBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY3JlYXRlRnVsbE1hcmt1cChjb25zdCBSYW5nZSYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5k
VGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURh
dGVBbmRUaW1lSW5wdXRUeXBlLmNwcAppbmRleCBkYmVhMGU5OWJkOTM0YzdkYmRlYTUyZDI1ZDAx
YzJmODE3NWRjMWQwLi41N2UzODhiZjFkY2VhNGI4MTk2YjQ2MGYwY2MzNzExZmYwZjg3MzRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1l
SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURh
dGVBbmRUaW1lSW5wdXRUeXBlLmNwcApAQCAtNjAsOSArNjAsOSBAQCB2b2lkIEJhc2VDaG9vc2Vy
T25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKICAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCB2YWx1ZUNvbnRhaW5l
clBzZXVkbywgKCItd2Via2l0LWRhdGUtYW5kLXRpbWUtdmFsdWUiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CiAKLSAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IHZhbHVl
Q29udGFpbmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCkuZG9jdW1lbnQoKSk7
CisgICAgUmVmPEhUTUxEaXZFbGVtZW50PiB2YWx1ZUNvbnRhaW5lciA9IEhUTUxEaXZFbGVtZW50
OjpjcmVhdGUoZWxlbWVudCgpLmRvY3VtZW50KCkpOwogICAgIHZhbHVlQ29udGFpbmVyLT5zZXRQ
c2V1ZG8odmFsdWVDb250YWluZXJQc2V1ZG8pOwotICAgIGVsZW1lbnQoKS51c2VyQWdlbnRTaGFk
b3dSb290KCktPmFwcGVuZENoaWxkKHZhbHVlQ29udGFpbmVyLmdldCgpKTsKKyAgICBlbGVtZW50
KCkudXNlckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUodmFsdWVDb250
YWluZXIpKTsKICAgICB1cGRhdGVBcHBlYXJhbmNlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9D
b2xvcklucHV0VHlwZS5jcHAKaW5kZXggOGJiZGI5N2MyNTI0YjYyYWIzOWFhNjRlNjg0MDg1NWNh
NDY5NTU5Yy4uYzUzODVhMDRiNjc3OGM1ZWEyZDQzNWI0MzlhOTRiZjIwN2JiNjY2MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKQEAgLTEwNywxMiArMTA3LDEyIEBAIHZv
aWQgQ29sb3JJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogICAgIEFTU0VSVChlbGVt
ZW50KCkuc2hhZG93Um9vdCgpKTsKIAogICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGVsZW1lbnQo
KS5kb2N1bWVudCgpOwotICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gd3JhcHBlckVsZW1lbnQg
PSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBSZWY8SFRNTERpdkVsZW1l
bnQ+IHdyYXBwZXJFbGVtZW50ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAg
ICAgd3JhcHBlckVsZW1lbnQtPnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtY29sb3It
c3dhdGNoLXdyYXBwZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0g
ICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBjb2xvclN3YXRjaCA9IEhUTUxEaXZFbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQpOworICAgIFJlZjxIVE1MRGl2RWxlbWVudD4gY29sb3JTd2F0Y2ggPSBI
VE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb2xvclN3YXRjaC0+c2V0UHNl
dWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC1jb2xvci1zd2F0Y2giLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgd3JhcHBlckVsZW1lbnQtPmFwcGVuZENoaWxkKGNv
bG9yU3dhdGNoLnJlbGVhc2UoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0gICAgZWxlbWVudCgp
LnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQod3JhcHBlckVsZW1lbnQucmVsZWFz
ZSgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICB3cmFwcGVyRWxlbWVudC0+YXBwZW5kQ2hp
bGQoV1RGOjptb3ZlKGNvbG9yU3dhdGNoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgZWxl
bWVudCgpLnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHdyYXBw
ZXJFbGVtZW50KSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgCiAgICAgdXBkYXRlQ29sb3JT
d2F0Y2goKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5
RG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5j
cHAKaW5kZXggNDA2NWExNzhkMjgyYTkyOTcxNDUxMTU1YjY2ZDYzZGQzNGExZjJkNS4uMTQ0N2E0
NjM1ZjcyMTJlZmE5MmExMWMxN2Y5MmY3ZjY5MzdlYWVmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAKQEAgLTEwNCwyNyArMTA0LDI3IEBAIHZvaWQg
RlRQRGlyZWN0b3J5RG9jdW1lbnRQYXJzZXI6OmFwcGVuZEVudHJ5KGNvbnN0IFN0cmluZyYgZmls
ZW5hbWUsIGNvbnN0IFN0cmluCiAgICAgUmVmUHRyPEVsZW1lbnQ+IHJvd0VsZW1lbnQgPSBtX3Rh
YmxlRWxlbWVudC0+aW5zZXJ0Um93KC0xLCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICByb3dFbGVt
ZW50LT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpjbGFzc0F0dHIsICJmdHBEaXJlY3RvcnlFbnRy
eVJvdyIpOwogCi0gICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVh
dGVFbGVtZW50KHRkVGFnLCBmYWxzZSk7CisgICAgUmVmPEVsZW1lbnQ+IGVsZW1lbnQgPSBkb2N1
bWVudCgpLT5jcmVhdGVFbGVtZW50KHRkVGFnLCBmYWxzZSk7CiAgICAgZWxlbWVudC0+YXBwZW5k
Q2hpbGQoVGV4dDo6Y3JlYXRlKCpkb2N1bWVudCgpLCBTdHJpbmcoJm5vQnJlYWtTcGFjZSwgMSkp
LCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICBpZiAoaXNEaXJlY3RvcnkpCiAgICAgICAgIGVsZW1l
bnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNsYXNzQXR0ciwgImZ0cERpcmVjdG9yeUljb24g
ZnRwRGlyZWN0b3J5VHlwZURpcmVjdG9yeSIpOwogICAgIGVsc2UKICAgICAgICAgZWxlbWVudC0+
c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6Y2xhc3NBdHRyLCAiZnRwRGlyZWN0b3J5SWNvbiBmdHBE
aXJlY3RvcnlUeXBlRmlsZSIpOwotICAgIHJvd0VsZW1lbnQtPmFwcGVuZENoaWxkKGVsZW1lbnQs
IElHTk9SRV9FWENFUFRJT04pOworICAgIHJvd0VsZW1lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92
ZShlbGVtZW50KSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKICAgICBlbGVtZW50ID0gY3JlYXRlVERG
b3JGaWxlbmFtZShmaWxlbmFtZSk7CiAgICAgZWxlbWVudC0+c2V0QXR0cmlidXRlKEhUTUxOYW1l
czo6Y2xhc3NBdHRyLCAiZnRwRGlyZWN0b3J5RmlsZU5hbWUiKTsKLSAgICByb3dFbGVtZW50LT5h
cHBlbmRDaGlsZChlbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICByb3dFbGVtZW50LT5h
cHBlbmRDaGlsZChXVEY6Om1vdmUoZWxlbWVudCksIElHTk9SRV9FWENFUFRJT04pOwogCiAgICAg
ZWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQodGRUYWcsIGZhbHNlKTsKICAgICBl
bGVtZW50LT5hcHBlbmRDaGlsZChUZXh0OjpjcmVhdGUoKmRvY3VtZW50KCksIGRhdGUpLCBJR05P
UkVfRVhDRVBUSU9OKTsKICAgICBlbGVtZW50LT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpjbGFz
c0F0dHIsICJmdHBEaXJlY3RvcnlGaWxlRGF0ZSIpOwotICAgIHJvd0VsZW1lbnQtPmFwcGVuZENo
aWxkKGVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOworICAgIHJvd0VsZW1lbnQtPmFwcGVuZENo
aWxkKFdURjo6bW92ZShlbGVtZW50KSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKICAgICBlbGVtZW50
ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudCh0ZFRhZywgZmFsc2UpOwogICAgIGVsZW1lbnQt
PmFwcGVuZENoaWxkKFRleHQ6OmNyZWF0ZSgqZG9jdW1lbnQoKSwgc2l6ZSksIElHTk9SRV9FWENF
UFRJT04pOwogICAgIGVsZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNsYXNzQXR0ciwg
ImZ0cERpcmVjdG9yeUZpbGVTaXplIik7Ci0gICAgcm93RWxlbWVudC0+YXBwZW5kQ2hpbGQoZWxl
bWVudCwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgcm93RWxlbWVudC0+YXBwZW5kQ2hpbGQoV1RG
Ojptb3ZlKGVsZW1lbnQpLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KIAogUmVmPEVsZW1lbnQ+IEZU
UERpcmVjdG9yeURvY3VtZW50UGFyc2VyOjpjcmVhdGVUREZvckZpbGVuYW1lKGNvbnN0IFN0cmlu
ZyYgZmlsZW5hbWUpCkBAIC0xMzUsMTIgKzEzNSwxMiBAQCBSZWY8RWxlbWVudD4gRlRQRGlyZWN0
b3J5RG9jdW1lbnRQYXJzZXI6OmNyZWF0ZVRERm9yRmlsZW5hbWUoY29uc3QgU3RyaW5nJiBmaWxl
bgogICAgIGVsc2UKICAgICAgICAgZnVsbFVSTCA9IGZ1bGxVUkwgKyAnLycgKyBmaWxlbmFtZTsK
IAotICAgIFJlZlB0cjxFbGVtZW50PiBhbmNob3JFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRl
RWxlbWVudChhVGFnLCBmYWxzZSk7CisgICAgUmVmPEVsZW1lbnQ+IGFuY2hvckVsZW1lbnQgPSBk
b2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KGFUYWcsIGZhbHNlKTsKICAgICBhbmNob3JFbGVtZW50
LT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpocmVmQXR0ciwgZnVsbFVSTCk7CiAgICAgYW5jaG9y
RWxlbWVudC0+YXBwZW5kQ2hpbGQoVGV4dDo6Y3JlYXRlKCpkb2N1bWVudCgpLCBmaWxlbmFtZSks
IElHTk9SRV9FWENFUFRJT04pOwogCiAgICAgUmVmPEVsZW1lbnQ+IHRkRWxlbWVudCA9IGRvY3Vt
ZW50KCktPmNyZWF0ZUVsZW1lbnQodGRUYWcsIGZhbHNlKTsKLSAgICB0ZEVsZW1lbnQtPmFwcGVu
ZENoaWxkKGFuY2hvckVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOworICAgIHRkRWxlbWVudC0+
YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGFuY2hvckVsZW1lbnQpLCBJR05PUkVfRVhDRVBUSU9OKTsK
IAogICAgIHJldHVybiB0ZEVsZW1lbnQ7CiB9CkBAIC0zMTIsOSArMzEyLDkgQEAgYm9vbCBGVFBE
aXJlY3RvcnlEb2N1bWVudFBhcnNlcjo6bG9hZERvY3VtZW50VGVtcGxhdGUoKQogICAgIC8vIElm
IHRoYXQgZmFpbHMgZm9yIHNvbWUgcmVhc29uLCBjcmFtIGl0IG9uIHRoZSBlbmQgb2YgdGhlIGRv
Y3VtZW50IGFzIGEgbGFzdAogICAgIC8vIGRpdGNoIGVmZm9ydAogICAgIGlmIChhdXRvKiBib2R5
ID0gZG9jdW1lbnQoKS0+Ym9keU9yRnJhbWVzZXQoKSkKLSAgICAgICAgYm9keS0+YXBwZW5kQ2hp
bGQobV90YWJsZUVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOworICAgICAgICBib2R5LT5hcHBl
bmRDaGlsZCgqbV90YWJsZUVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOwogICAgIGVsc2UKLSAg
ICAgICAgZG9jdW1lbnQoKS0+YXBwZW5kQ2hpbGQobV90YWJsZUVsZW1lbnQsIElHTk9SRV9FWENF
UFRJT04pOworICAgICAgICBkb2N1bWVudCgpLT5hcHBlbmRDaGlsZCgqbV90YWJsZUVsZW1lbnQs
IElHTk9SRV9FWENFUFRJT04pOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0zMjUsMTYgKzMy
NSwxNiBAQCB2b2lkIEZUUERpcmVjdG9yeURvY3VtZW50UGFyc2VyOjpjcmVhdGVCYXNpY0RvY3Vt
ZW50KCkKIAogICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgImJhc2ljIGRvY3VtZW50IiBtb3JlIGFj
Y2VwdGFibGUKIAotICAgIFJlZlB0cjxFbGVtZW50PiBib2R5RWxlbWVudCA9IGRvY3VtZW50KCkt
PmNyZWF0ZUVsZW1lbnQoYm9keVRhZywgZmFsc2UpOworICAgIFJlZjxFbGVtZW50PiBib2R5RWxl
bWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoYm9keVRhZywgZmFsc2UpOwogCi0gICAg
ZG9jdW1lbnQoKS0+YXBwZW5kQ2hpbGQoYm9keUVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOwor
ICAgIGRvY3VtZW50KCktPmFwcGVuZENoaWxkKGJvZHlFbGVtZW50LmNvcHlSZWYoKSwgSUdOT1JF
X0VYQ0VQVElPTik7CiAKLSAgICBSZWZQdHI8RWxlbWVudD4gdGFibGVFbGVtZW50ID0gZG9jdW1l
bnQoKS0+Y3JlYXRlRWxlbWVudCh0YWJsZVRhZywgZmFsc2UpOwotICAgIG1fdGFibGVFbGVtZW50
ID0gZG93bmNhc3Q8SFRNTFRhYmxlRWxlbWVudD4odGFibGVFbGVtZW50LmdldCgpKTsKKyAgICBS
ZWY8RWxlbWVudD4gdGFibGVFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudCh0YWJs
ZVRhZywgZmFsc2UpOworICAgIG1fdGFibGVFbGVtZW50ID0gZG93bmNhc3Q8SFRNTFRhYmxlRWxl
bWVudD4odGFibGVFbGVtZW50LnB0cigpKTsKICAgICBtX3RhYmxlRWxlbWVudC0+c2V0QXR0cmli
dXRlKEhUTUxOYW1lczo6aWRBdHRyLCAiZnRwRGlyZWN0b3J5VGFibGUiKTsKICAgICBtX3RhYmxl
RWxlbWVudC0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6c3R5bGVBdHRyLCAid2lkdGg6MTAwJSIp
OwogCi0gICAgYm9keUVsZW1lbnQtPmFwcGVuZENoaWxkKG1fdGFibGVFbGVtZW50LCBJR05PUkVf
RVhDRVBUSU9OKTsKKyAgICBib2R5RWxlbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHRhYmxl
RWxlbWVudCksIElHTk9SRV9FWENFUFRJT04pOwogCiAgICAgZG9jdW1lbnQoKS0+cHJvY2Vzc1Zp
ZXdwb3J0KCJ3aWR0aD1kZXZpY2Utd2lkdGgiLCBWaWV3cG9ydEFyZ3VtZW50czo6Vmlld3BvcnRN
ZXRhKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAppbmRl
eCA0MzAyMTJjMWFiODA3MDkxNjNlNTRmNTNkMWRiYzJmN2NhZGE4YjFmLi40OGNjOWI4NDhlNTQx
N2FjNzlmYTY1MDE5ZTQ4NzA1ZTE3MTI3YTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RGV0YWlsc0VsZW1lbnQuY3BwCkBAIC05MCwxMSArOTAsMTEgQEAgcHJpdmF0ZToKIAogUmVmPERl
dGFpbHNTdW1tYXJ5RWxlbWVudD4gRGV0YWlsc1N1bW1hcnlFbGVtZW50OjpjcmVhdGUoRG9jdW1l
bnQmIGRvY3VtZW50KQogewotICAgIFJlZlB0cjxIVE1MU3VtbWFyeUVsZW1lbnQ+IHN1bW1hcnkg
PSBIVE1MU3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZShzdW1tYXJ5VGFnLCBkb2N1bWVudCk7CisgICAg
UmVmPEhUTUxTdW1tYXJ5RWxlbWVudD4gc3VtbWFyeSA9IEhUTUxTdW1tYXJ5RWxlbWVudDo6Y3Jl
YXRlKHN1bW1hcnlUYWcsIGRvY3VtZW50KTsKICAgICBzdW1tYXJ5LT5hcHBlbmRDaGlsZChUZXh0
OjpjcmVhdGUoZG9jdW1lbnQsIGRlZmF1bHREZXRhaWxzU3VtbWFyeVRleHQoKSksIEFTU0VSVF9O
T19FWENFUFRJT04pOwogCiAgICAgUmVmPERldGFpbHNTdW1tYXJ5RWxlbWVudD4gZGV0YWlsc1N1
bW1hcnkgPSBhZG9wdFJlZigqbmV3IERldGFpbHNTdW1tYXJ5RWxlbWVudChkb2N1bWVudCkpOwot
ICAgIGRldGFpbHNTdW1tYXJ5LT5hcHBlbmRDaGlsZChzdW1tYXJ5KTsKKyAgICBkZXRhaWxzU3Vt
bWFyeS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHN1bW1hcnkpKTsKICAgICByZXR1cm4gZGV0YWls
c1N1bW1hcnk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKaW5kZXggNTIwY2Uw
M2U3MGNjN2FkNzg2Y2I1MzdhNzczMDk5N2Y4NjIzYzM1ZS4uMDZkMGFjZTllZjY0NGM0N2Y2YWU2
MjdjNWJlMmFmOTAyM2VmYmQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKQEAg
LTU4NCw5ICs1ODQsOSBAQCB2b2lkIEhUTUxFbGVtZW50OjpzZXRJbm5lclRleHQoY29uc3QgU3Ry
aW5nJiB0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKIAogICAgIC8vIEFkZCB0ZXh0IG5vZGVzIGFu
ZCA8YnI+IGVsZW1lbnRzLgogICAgIGVjID0gMDsKLSAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVu
dD4gZnJhZ21lbnQgPSB0ZXh0VG9GcmFnbWVudCh0ZXh0LCBlYyk7CisgICAgUmVmPERvY3VtZW50
RnJhZ21lbnQ+IGZyYWdtZW50ID0gdGV4dFRvRnJhZ21lbnQodGV4dCwgZWMpOwogICAgIGlmICgh
ZWMpCi0gICAgICAgIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudCgqdGhpcywgZnJhZ21lbnQu
cmVsZWFzZSgpLCBlYyk7CisgICAgICAgIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudCgqdGhp
cywgV1RGOjptb3ZlKGZyYWdtZW50KSwgZWMpOwogfQogCiB2b2lkIEhUTUxFbGVtZW50OjpzZXRP
dXRlclRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTYwOCwy
MCArNjA4LDE2IEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnNldE91dGVyVGV4dChjb25zdCBTdHJpbmcm
IHRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogCiAgICAgUmVmUHRyPE5vZGU+IHByZXYgPSBwcmV2
aW91c1NpYmxpbmcoKTsKICAgICBSZWZQdHI8Tm9kZT4gbmV4dCA9IG5leHRTaWJsaW5nKCk7Ci0g
ICAgUmVmUHRyPE5vZGU+IG5ld0NoaWxkOwogICAgIGVjID0gMDsKICAgICAKICAgICAvLyBDb252
ZXJ0IHRleHQgdG8gZnJhZ21lbnQgd2l0aCA8YnI+IHRhZ3MgaW5zdGVhZCBvZiBsaW5lYnJlYWtz
IGlmIG5lZWRlZC4KLSAgICBpZiAodGV4dC5jb250YWlucygnXHInKSB8fCB0ZXh0LmNvbnRhaW5z
KCdcbicpKQotICAgICAgICBuZXdDaGlsZCA9IHRleHRUb0ZyYWdtZW50KHRleHQsIGVjKTsKLSAg
ICBlbHNlCi0gICAgICAgIG5ld0NoaWxkID0gVGV4dDo6Y3JlYXRlKGRvY3VtZW50KCksIHRleHQp
OworICAgIFJlZjxOb2RlPiBuZXdDaGlsZCA9IHRleHQuY29udGFpbnMoJ1xyJykgfHwgdGV4dC5j
b250YWlucygnXG4nKSA/IFJlZjxOb2RlPih0ZXh0VG9GcmFnbWVudCh0ZXh0LCBlYykpIDogUmVm
PE5vZGU+KFRleHQ6OmNyZWF0ZShkb2N1bWVudCgpLCB0ZXh0KSk7CiAKICAgICBpZiAoIXBhcmVu
dE5vZGUoKSkKICAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAgICAgaWYgKGVj
KQogICAgICAgICByZXR1cm47Ci0gICAgcGFyZW50LT5yZXBsYWNlQ2hpbGQobmV3Q2hpbGQucmVs
ZWFzZSgpLCB0aGlzLCBlYyk7CisgICAgcGFyZW50LT5yZXBsYWNlQ2hpbGQoV1RGOjptb3ZlKG5l
d0NoaWxkKSwgKnRoaXMsIGVjKTsKIAogICAgIFJlZlB0cjxOb2RlPiBub2RlID0gbmV4dCA/IG5l
eHQtPnByZXZpb3VzU2libGluZygpIDogbnVsbHB0cjsKICAgICBpZiAoIWVjICYmIGlzPFRleHQ+
KG5vZGUuZ2V0KCkpKQpAQCAtNjMwLDcgKzYyNiw3IEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnNldE91
dGVyVGV4dChjb25zdCBTdHJpbmcmIHRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICBt
ZXJnZVdpdGhOZXh0VGV4dE5vZGUoZG93bmNhc3Q8VGV4dD4oKnByZXYpLCBlYyk7CiB9CiAKLU5v
ZGUqIEhUTUxFbGVtZW50OjppbnNlcnRBZGphY2VudChjb25zdCBTdHJpbmcmIHdoZXJlLCBOb2Rl
KiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCitOb2RlKiBIVE1MRWxlbWVudDo6aW5zZXJ0
QWRqYWNlbnQoY29uc3QgU3RyaW5nJiB3aGVyZSwgUmVmPE5vZGU+JiYgbmV3Q2hpbGQsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogewogICAgIC8vIEluIEludGVybmV0IEV4cGxvcmVyIGlmIHRoZSBlbGVt
ZW50IGhhcyBubyBwYXJlbnQgYW5kIHdoZXJlIGlzICJiZWZvcmVCZWdpbiIgb3IgImFmdGVyRW5k
IiwKICAgICAvLyBhIGRvY3VtZW50IGZyYWdtZW50IGlzIGNyZWF0ZWQgYW5kIHRoZSBlbGVtZW50
cyBhcHBlbmRlZCBpbiB0aGUgY29ycmVjdCBvcmRlci4gVGhpcyBkb2N1bWVudApAQCAtNjQxLDE4
ICs2MzcsMTggQEAgTm9kZSogSFRNTEVsZW1lbnQ6Omluc2VydEFkamFjZW50KGNvbnN0IFN0cmlu
ZyYgd2hlcmUsIE5vZGUqIG5ld0NoaWxkLCBFeGNlcHRpb24KIAogICAgIGlmIChlcXVhbElnbm9y
aW5nQ2FzZSh3aGVyZSwgImJlZm9yZUJlZ2luIikpIHsKICAgICAgICAgQ29udGFpbmVyTm9kZSog
cGFyZW50ID0gdGhpcy0+cGFyZW50Tm9kZSgpOwotICAgICAgICByZXR1cm4gKHBhcmVudCAmJiBw
YXJlbnQtPmluc2VydEJlZm9yZShuZXdDaGlsZCwgdGhpcywgZWMpKSA/IG5ld0NoaWxkIDogbnVs
bHB0cjsKKyAgICAgICAgcmV0dXJuIChwYXJlbnQgJiYgcGFyZW50LT5pbnNlcnRCZWZvcmUobmV3
Q2hpbGQuY29weVJlZigpLCB0aGlzLCBlYykpID8gbmV3Q2hpbGQucHRyKCkgOiBudWxscHRyOwog
ICAgIH0KIAogICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh3aGVyZSwgImFmdGVyQmVnaW4iKSkK
LSAgICAgICAgcmV0dXJuIGluc2VydEJlZm9yZShuZXdDaGlsZCwgZmlyc3RDaGlsZCgpLCBlYykg
PyBuZXdDaGlsZCA6IG51bGxwdHI7CisgICAgICAgIHJldHVybiBpbnNlcnRCZWZvcmUobmV3Q2hp
bGQuY29weVJlZigpLCBmaXJzdENoaWxkKCksIGVjKSA/IG5ld0NoaWxkLnB0cigpIDogbnVsbHB0
cjsKIAogICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh3aGVyZSwgImJlZm9yZUVuZCIpKQotICAg
ICAgICByZXR1cm4gYXBwZW5kQ2hpbGQobmV3Q2hpbGQsIGVjKSA/IG5ld0NoaWxkIDogbnVsbHB0
cjsKKyAgICAgICAgcmV0dXJuIGFwcGVuZENoaWxkKG5ld0NoaWxkLmNvcHlSZWYoKSwgZWMpID8g
bmV3Q2hpbGQucHRyKCkgOiBudWxscHRyOwogCiAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHdo
ZXJlLCAiYWZ0ZXJFbmQiKSkgewogICAgICAgICBDb250YWluZXJOb2RlKiBwYXJlbnQgPSB0aGlz
LT5wYXJlbnROb2RlKCk7Ci0gICAgICAgIHJldHVybiAocGFyZW50ICYmIHBhcmVudC0+aW5zZXJ0
QmVmb3JlKG5ld0NoaWxkLCBuZXh0U2libGluZygpLCBlYykpID8gbmV3Q2hpbGQgOiBudWxscHRy
OworICAgICAgICByZXR1cm4gKHBhcmVudCAmJiBwYXJlbnQtPmluc2VydEJlZm9yZShuZXdDaGls
ZC5jb3B5UmVmKCksIG5leHRTaWJsaW5nKCksIGVjKSkgPyBuZXdDaGlsZC5wdHIoKSA6IG51bGxw
dHI7CiAgICAgfQogICAgIAogICAgIC8vIElFIHRocm93cyBDT00gRXhjZXB0aW9uIEVfSU5WQUxJ
REFSRzsgdGhpcyBpcyB0aGUgYmVzdCBET00gZXhjZXB0aW9uIGFsdGVybmF0aXZlLgpAQCAtNjY4
LDcgKzY2NCw3IEBAIEVsZW1lbnQqIEhUTUxFbGVtZW50OjppbnNlcnRBZGphY2VudEVsZW1lbnQo
Y29uc3QgU3RyaW5nJiB3aGVyZSwgRWxlbWVudCogbmV3Q2hpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIH0KIAotICAgIE5vZGUqIHJldHVyblZhbHVlID0gaW5zZXJ0QWRqYWNlbnQod2hl
cmUsIG5ld0NoaWxkLCBlYyk7CisgICAgTm9kZSogcmV0dXJuVmFsdWUgPSBpbnNlcnRBZGphY2Vu
dCh3aGVyZSwgKm5ld0NoaWxkLCBlYyk7CiAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElD
QVRJT04oIXJldHVyblZhbHVlIHx8IGlzPEVsZW1lbnQ+KCpyZXR1cm5WYWx1ZSkpOwogICAgIHJl
dHVybiBkb3duY2FzdDxFbGVtZW50PihyZXR1cm5WYWx1ZSk7IAogfQpAQCAtNjk5LDEzICs2OTUs
MTIgQEAgdm9pZCBIVE1MRWxlbWVudDo6aW5zZXJ0QWRqYWNlbnRIVE1MKGNvbnN0IFN0cmluZyYg
d2hlcmUsIGNvbnN0IFN0cmluZyYgbWFya3VwLAogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50
PiBmcmFnbWVudCA9IGNyZWF0ZUZyYWdtZW50Rm9ySW5uZXJPdXRlckhUTUwobWFya3VwLCBjb250
ZXh0RWxlbWVudCwgQWxsb3dTY3JpcHRpbmdDb250ZW50LCBlYyk7CiAgICAgaWYgKCFmcmFnbWVu
dCkKICAgICAgICAgcmV0dXJuOwotICAgIGluc2VydEFkamFjZW50KHdoZXJlLCBmcmFnbWVudC5n
ZXQoKSwgZWMpOworICAgIGluc2VydEFkamFjZW50KHdoZXJlLCBmcmFnbWVudC5yZWxlYXNlTm9u
TnVsbCgpLCBlYyk7CiB9CiAKIHZvaWQgSFRNTEVsZW1lbnQ6Omluc2VydEFkamFjZW50VGV4dChj
b25zdCBTdHJpbmcmIHdoZXJlLCBjb25zdCBTdHJpbmcmIHRleHQsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogewotICAgIFJlZlB0cjxUZXh0PiB0ZXh0Tm9kZSA9IGRvY3VtZW50KCkuY3JlYXRlVGV4dE5v
ZGUodGV4dCk7Ci0gICAgaW5zZXJ0QWRqYWNlbnQod2hlcmUsIHRleHROb2RlLmdldCgpLCBlYyk7
CisgICAgaW5zZXJ0QWRqYWNlbnQod2hlcmUsIGRvY3VtZW50KCkuY3JlYXRlVGV4dE5vZGUodGV4
dCksIGVjKTsKIH0KIAogdm9pZCBIVE1MRWxlbWVudDo6YXBwbHlBbGlnbm1lbnRBdHRyaWJ1dGVU
b1N0eWxlKGNvbnN0IEF0b21pY1N0cmluZyYgYWxpZ25tZW50LCBNdXRhYmxlU3R5bGVQcm9wZXJ0
aWVzJiBzdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAppbmRleCAzMGUzNzc1YTAwNGUz
MWJlYWU4MzVjZjY5MGNiNDA5YjFkZmViNzdhLi43MGQ0OTYxY2VkMmRjZTk2ZDQ1NTRlYzE2NjY5
MGQwZDg1YzA2M2ViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCkBAIC0xMzAsNyArMTMw
LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgSFRNTEZvcm1FbGVtZW50KiB2aXJ0dWFsRm9y
bSgpIGNvbnN0OwogCi0gICAgTm9kZSogaW5zZXJ0QWRqYWNlbnQoY29uc3QgU3RyaW5nJiB3aGVy
ZSwgTm9kZSogbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBOb2RlKiBpbnNlcnRBZGph
Y2VudChjb25zdCBTdHJpbmcmIHdoZXJlLCBSZWY8Tm9kZT4mJiBuZXdDaGlsZCwgRXhjZXB0aW9u
Q29kZSYpOwogICAgIFJlZjxEb2N1bWVudEZyYWdtZW50PiB0ZXh0VG9GcmFnbWVudChjb25zdCBT
dHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICB2b2lkIGRpckF0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgQXRvbWljU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50
LmNwcAppbmRleCBiMmEyNzdhNTU5YmEzNWQxZjM5NTVmNDI4M2M3YzgyOTEzNGIwYTA2Li5hNGE3
M2NhNmI2MDk3ZGM3OGJkNjlmM2JiNDEyMWU0ZDI3ZGVkNGI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKQEAgLTUwNCw3ICs1MDQsNyBAQCB2b2lkIEhUTUxJbWFn
ZUVsZW1lbnQ6OmNyZWF0ZUltYWdlQ29udHJvbHMoKQogICAgIGlmICghaW1hZ2VDb250cm9scykK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCgpLmFwcGVu
ZENoaWxkKGltYWdlQ29udHJvbHMpOworICAgIGVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKS5h
cHBlbmRDaGlsZChpbWFnZUNvbnRyb2xzLnJlbGVhc2VOb25OdWxsKCkpOwogCiAgICAgYXV0byog
cmVuZGVyT2JqZWN0ID0gcmVuZGVyZXIoKTsKICAgICBpZiAoIXJlbmRlck9iamVjdCkKQEAgLTUy
MSw3ICs1MjEsNyBAQCB2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OmRlc3Ryb3lJbWFnZUNvbnRyb2xz
KCkKIAogICAgIGlmIChOb2RlKiBub2RlID0gc2hhZG93Um9vdC0+Zmlyc3RDaGlsZCgpKSB7CiAg
ICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG5vZGUtPmlzSW1hZ2VDb250
cm9sc1Jvb3RFbGVtZW50KCkpOwotICAgICAgICBzaGFkb3dSb290LT5yZW1vdmVDaGlsZChub2Rl
KTsKKyAgICAgICAgc2hhZG93Um9vdC0+cmVtb3ZlQ2hpbGQoKm5vZGUpOwogICAgIH0KIAogICAg
IGF1dG8qIHJlbmRlck9iamVjdCA9IHJlbmRlcmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEtleWdlbkVsZW1lbnQuY3BwCmluZGV4IGU3ZDkxNDgyNWM1ZWI4MTE0ZDliMmVlYTFmZGNmMDMw
MjZhYTBiYTIuLjRhNjNiMDBhNGE0MTM0YjU4Y2YyNDVmZWI2OTJmOGE0NjYxNmJmMTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCkBAIC01OCw3ICs1OCw3IEBA
IHByb3RlY3RlZDoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBSZWZQdHI8RWxlbWVu
dD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYgdGFy
Z2V0RG9jdW1lbnQpIG92ZXJyaWRlCisgICAgdmlydHVhbCBSZWY8RWxlbWVudD4gY2xvbmVFbGVt
ZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQp
IG92ZXJyaWRlCiAgICAgewogICAgICAgICByZXR1cm4gY3JlYXRlKHRhcmdldERvY3VtZW50KTsK
ICAgICB9CkBAIC03MywxNCArNzMsMTQgQEAgaW5saW5lIEhUTUxLZXlnZW5FbGVtZW50OjpIVE1M
S2V5Z2VuRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWUKICAgICBW
ZWN0b3I8U3RyaW5nPiBrZXlzOwogICAgIGdldFN1cHBvcnRlZEtleVNpemVzKGtleXMpOwogCi0g
ICAgUmVmUHRyPEhUTUxTZWxlY3RFbGVtZW50PiBzZWxlY3QgPSBLZXlnZW5TZWxlY3RFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIFJlZjxIVE1MU2VsZWN0RWxlbWVudD4gc2VsZWN0ID0g
S2V5Z2VuU2VsZWN0RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IGtleXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgUmVmUHRyPEhUTUxPcHRpb25F
bGVtZW50PiBvcHRpb24gPSBIVE1MT3B0aW9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAg
ICAgICAgc2VsZWN0LT5hcHBlbmRDaGlsZChvcHRpb24sIElHTk9SRV9FWENFUFRJT04pOworICAg
ICAgICBSZWY8SFRNTE9wdGlvbkVsZW1lbnQ+IG9wdGlvbiA9IEhUTUxPcHRpb25FbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQpOworICAgICAgICBzZWxlY3QtPmFwcGVuZENoaWxkKG9wdGlvbi5jb3B5
UmVmKCksIElHTk9SRV9FWENFUFRJT04pOwogICAgICAgICBvcHRpb24tPmFwcGVuZENoaWxkKFRl
eHQ6OmNyZWF0ZShkb2N1bWVudCwga2V5c1tpXSksIElHTk9SRV9FWENFUFRJT04pOwogICAgIH0K
IAotICAgIGVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKS5hcHBlbmRDaGlsZChzZWxlY3QsIElH
Tk9SRV9FWENFUFRJT04pOworICAgIGVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKS5hcHBlbmRD
aGlsZChXVEY6Om1vdmUoc2VsZWN0KSwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CiAKIFJlZjxIVE1M
S2V5Z2VuRWxlbWVudD4gSFRNTEtleWdlbkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCmluZGV4IDIyYjJmMzk4MWUz
OTUyMzc5M2Y1ZTJiMzFlNmNjNWQyOGJmYTc3ODAuLmU1ZTNkZTAzNjgzODE1NDVlYTc4NTBjMDhm
OTZhN2YxYmMwNzU5OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVy
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNw
cApAQCAtMjI5LDE2ICsyMjksMTYgQEAgdm9pZCBIVE1MTWV0ZXJFbGVtZW50OjpkaWRBZGRVc2Vy
QWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QqIHJvb3QpCiB7CiAgICAgQVNTRVJUKCFtX3ZhbHVl
KTsKIAotICAgIFJlZlB0cjxNZXRlcklubmVyRWxlbWVudD4gaW5uZXIgPSBNZXRlcklubmVyRWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwotICAgIHJvb3QtPmFwcGVuZENoaWxkKGlubmVyKTsK
KyAgICBSZWY8TWV0ZXJJbm5lckVsZW1lbnQ+IGlubmVyID0gTWV0ZXJJbm5lckVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCgpKTsKKyAgICByb290LT5hcHBlbmRDaGlsZChpbm5lci5jb3B5UmVmKCkp
OwogCi0gICAgUmVmUHRyPE1ldGVyQmFyRWxlbWVudD4gYmFyID0gTWV0ZXJCYXJFbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQoKSk7CisgICAgUmVmPE1ldGVyQmFyRWxlbWVudD4gYmFyID0gTWV0ZXJC
YXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CiAgICAgbV92YWx1ZSA9IE1ldGVyVmFsdWVF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CiAgICAgbV92YWx1ZS0+c2V0V2lkdGhQZXJjZW50
YWdlKDApOwogICAgIG1fdmFsdWUtPnVwZGF0ZVBzZXVkbygpOwotICAgIGJhci0+YXBwZW5kQ2hp
bGQobV92YWx1ZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgYmFyLT5hcHBlbmRDaGlsZCgq
bV92YWx1ZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKLSAgICBpbm5lci0+YXBwZW5kQ2hpbGQo
YmFyLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBpbm5lci0+YXBwZW5kQ2hpbGQoV1RGOjpt
b3ZlKGJhciksIEFTU0VSVF9OT19FWENFUFRJT04pOwogfQogCiB9IC8vIG5hbWVzcGFjZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAppbmRleCAyZGZmZjI2MzUzZWY5
MWY0ODEwY2UxODc3NzA2YWRjOTUwZmMzNmFlLi5lZDljYWVhMTVhNjIxMzM4MmMyMGQxZGY2NzRj
YWE4ZTJhOWYyMmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25F
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNw
cApAQCAtNzEsMTIgKzcxLDEyIEBAIFJlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gSFRNTE9wdGlv
bkVsZW1lbnQ6OmNyZWF0ZUZvckpTQ29uc3RydWN0b3IoRG9jdW1lbnQmIGRvCiB7CiAgICAgUmVm
UHRyPEhUTUxPcHRpb25FbGVtZW50PiBlbGVtZW50ID0gYWRvcHRSZWYobmV3IEhUTUxPcHRpb25F
bGVtZW50KG9wdGlvblRhZywgZG9jdW1lbnQpKTsKIAotICAgIFJlZlB0cjxUZXh0PiB0ZXh0ID0g
VGV4dDo6Y3JlYXRlKGRvY3VtZW50LCBkYXRhLmlzTnVsbCgpID8gIiIgOiBkYXRhKTsKKyAgICBS
ZWY8VGV4dD4gdGV4dCA9IFRleHQ6OmNyZWF0ZShkb2N1bWVudCwgZGF0YS5pc051bGwoKSA/ICIi
IDogZGF0YSk7CiAKICAgICBlYyA9IDA7Ci0gICAgZWxlbWVudC0+YXBwZW5kQ2hpbGQodGV4dC5y
ZWxlYXNlKCksIGVjKTsKKyAgICBlbGVtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUodGV4dCks
IGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIAogICAgIGlmICghdmFsdWUuaXNOdWxsKCkpCiAgICAgICAgIGVsZW1lbnQtPnNldFZh
bHVlKHZhbHVlKTsKQEAgLTg0LDcgKzg0LDcgQEAgUmVmUHRyPEhUTUxPcHRpb25FbGVtZW50PiBI
VE1MT3B0aW9uRWxlbWVudDo6Y3JlYXRlRm9ySlNDb25zdHJ1Y3RvcihEb2N1bWVudCYgZG8KICAg
ICAgICAgZWxlbWVudC0+c2V0QXR0cmlidXRlKHNlbGVjdGVkQXR0ciwgZW1wdHlBdG9tKTsKICAg
ICBlbGVtZW50LT5zZXRTZWxlY3RlZChzZWxlY3RlZCk7CiAKLSAgICByZXR1cm4gZWxlbWVudC5y
ZWxlYXNlKCk7CisgICAgcmV0dXJuIGVsZW1lbnQ7CiB9CiAKIGJvb2wgSFRNTE9wdGlvbkVsZW1l
bnQ6OmlzRm9jdXNhYmxlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFByb2dyZXNzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVz
c0VsZW1lbnQuY3BwCmluZGV4IDg3ZjBlMzcwY2EwMmMzYWM5YmIxNDZmYjliZDA3NmViYjRhNDg1
MzUuLmRiN2QwNmE4Yjc5MzA1MjNlYWM2OWM5MDdlNDdkYzQ4Mjk3MzJjMTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcApAQCAtMTQ5LDE2ICsxNDksMTYg
QEAgdm9pZCBIVE1MUHJvZ3Jlc3NFbGVtZW50OjpkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KFNo
YWRvd1Jvb3QqIHJvb3QpCiB7CiAgICAgQVNTRVJUKCFtX3ZhbHVlKTsKIAotICAgIFJlZlB0cjxQ
cm9ncmVzc0lubmVyRWxlbWVudD4gaW5uZXIgPSBQcm9ncmVzc0lubmVyRWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KCkpOwotICAgIHJvb3QtPmFwcGVuZENoaWxkKGlubmVyKTsKKyAgICBSZWY8UHJv
Z3Jlc3NJbm5lckVsZW1lbnQ+IGlubmVyID0gUHJvZ3Jlc3NJbm5lckVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCgpKTsKKyAgICByb290LT5hcHBlbmRDaGlsZChpbm5lci5jb3B5UmVmKCkpOwogCi0g
ICAgUmVmUHRyPFByb2dyZXNzQmFyRWxlbWVudD4gYmFyID0gUHJvZ3Jlc3NCYXJFbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQoKSk7Ci0gICAgUmVmUHRyPFByb2dyZXNzVmFsdWVFbGVtZW50PiB2YWx1
ZSA9IFByb2dyZXNzVmFsdWVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7Ci0gICAgbV92YWx1
ZSA9IHZhbHVlLmdldCgpOworICAgIFJlZjxQcm9ncmVzc0JhckVsZW1lbnQ+IGJhciA9IFByb2dy
ZXNzQmFyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOworICAgIFJlZjxQcm9ncmVzc1ZhbHVl
RWxlbWVudD4gdmFsdWUgPSBQcm9ncmVzc1ZhbHVlRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkp
OworICAgIG1fdmFsdWUgPSB2YWx1ZS5wdHIoKTsKICAgICBtX3ZhbHVlLT5zZXRXaWR0aFBlcmNl
bnRhZ2UoSFRNTFByb2dyZXNzRWxlbWVudDo6SW5kZXRlcm1pbmF0ZVBvc2l0aW9uICogMTAwKTsK
LSAgICBiYXItPmFwcGVuZENoaWxkKG1fdmFsdWUsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAg
IGJhci0+YXBwZW5kQ2hpbGQoKm1fdmFsdWUsIEFTU0VSVF9OT19FWENFUFRJT04pOwogCi0gICAg
aW5uZXItPmFwcGVuZENoaWxkKGJhciwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgaW5uZXIt
PmFwcGVuZENoaWxkKFdURjo6bW92ZShiYXIpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIH0KIAog
Ym9vbCBIVE1MUHJvZ3Jlc3NFbGVtZW50OjpzaG91bGRBcHBlYXJJbmRldGVybWluYXRlKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggNjk1MTE0
NjY4MDQ5MTRiN2FiMjA5ZmJlOTYxYzViZjgzMmUxMDdhNy4uZTEzYTVjZGRjY2EyY2IzYjc1NmE4
ZDNhNTdlMjNmODBhOWI0M2U0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxl
bWVudC5jcHAKQEAgLTE2OSw5ICsxNjksOSBAQCB2b2lkIEhUTUxTY3JpcHRFbGVtZW50OjpkaXNw
YXRjaExvYWRFdmVudCgpCiAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5sb2FkRXZlbnQsIGZhbHNlLCBmYWxzZSkpOwogfQogCi1SZWZQdHI8RWxlbWVudD4gSFRN
TFNjcmlwdEVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4o
RG9jdW1lbnQmIHRhcmdldERvY3VtZW50KQorUmVmPEVsZW1lbnQ+IEhUTUxTY3JpcHRFbGVtZW50
OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50JiB0YXJn
ZXREb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxTY3JpcHRFbGVtZW50
KHRhZ1FOYW1lKCksIHRhcmdldERvY3VtZW50LCBmYWxzZSwgYWxyZWFkeVN0YXJ0ZWQoKSkpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxTY3JpcHRFbGVtZW50KHRhZ1FOYW1lKCksIHRh
cmdldERvY3VtZW50LCBmYWxzZSwgYWxyZWFkeVN0YXJ0ZWQoKSkpOwogfQogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKaW5kZXggZTM5YzEwY2E1ZTg2YzM2NmE1Mzhk
MTdjNjY0NGIzYTI0ZDEzODIwOS4uMzEyYzY2MjZlOGI4MzE0ZTg1ZTJkZjY4N2RiZjA5ZjJiMmZl
MzdiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaApAQCAtNjUsNyAr
NjUsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoTG9hZEV2ZW50KCkg
b3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFJlZlB0cjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRo
b3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50Jikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBSZWY8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihE
b2N1bWVudCYpIG92ZXJyaWRlOwogfTsKIAogfSAvL25hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAppbmRleCBlYjczOTQ1MzVkNDk2MzUzNDZjNjU4MmQx
NzU5NmQzZDQzZjA3OTVlLi40ZjEwNDU4MDEzMjI3M2ZkZWRmMTI1NzhkNGIxYmI2MTBlY2NhZjA1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcApAQCAtMjI3LDcg
KzIyNyw3IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmFkZChIVE1MRWxlbWVudCogZWxlbWVu
dCwgSFRNTEVsZW1lbnQqIGJlZm9yZUVsZW1lbnQsIEV4CiAgICAgLy8gTWFrZSBzdXJlIHRoZSBl
bGVtZW50IGlzIHJlZidkIGFuZCBkZXJlZidkIHNvIHdlIGRvbid0IGxlYWsgaXQuCiAgICAgUmVm
PEhUTUxFbGVtZW50PiBwcm90ZWN0TmV3Q2hpbGQoKmVsZW1lbnQpOwogCi0gICAgaW5zZXJ0QmVm
b3JlKGVsZW1lbnQsIGJlZm9yZUVsZW1lbnQsIGVjKTsKKyAgICBpbnNlcnRCZWZvcmUoKmVsZW1l
bnQsIGJlZm9yZUVsZW1lbnQsIGVjKTsKICAgICB1cGRhdGVWYWxpZGl0eSgpOwogfQogCkBAIC00
ODYsMTIgKzQ4NiwxMiBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzZXRMZW5ndGgodW5zaWdu
ZWQgbmV3TGVuLCBFeGNlcHRpb25Db2RlJiBlYykKIAogICAgICAgICAvLyBSZW1vdmluZyBjaGls
ZHJlbiBmaXJlcyBtdXRhdGlvbiBldmVudHMsIHdoaWNoIG1pZ2h0IG11dGF0ZSB0aGUgRE9NIGZ1
cnRoZXIsIHNvIHdlIGZpcnN0IGNvcHkgb3V0IGEgbGlzdAogICAgICAgICAvLyBvZiBlbGVtZW50
cyB0aGF0IHdlIGludGVuZCB0byByZW1vdmUgdGhlbiBhdHRlbXB0IHRvIHJlbW92ZSB0aGVtIG9u
ZSBhdCBhIHRpbWUuCi0gICAgICAgIFZlY3RvcjxSZWZQdHI8RWxlbWVudD4+IGl0ZW1zVG9SZW1v
dmU7CisgICAgICAgIFZlY3RvcjxSZWY8RWxlbWVudD4+IGl0ZW1zVG9SZW1vdmU7CiAgICAgICAg
IHNpemVfdCBvcHRpb25JbmRleCA9IDA7CiAgICAgICAgIGZvciAoYXV0byYgaXRlbSA6IGl0ZW1z
KSB7CiAgICAgICAgICAgICBpZiAoaXM8SFRNTE9wdGlvbkVsZW1lbnQ+KCppdGVtKSAmJiBvcHRp
b25JbmRleCsrID49IG5ld0xlbikgewogICAgICAgICAgICAgICAgIEFTU0VSVChpdGVtLT5wYXJl
bnROb2RlKCkpOwotICAgICAgICAgICAgICAgIGl0ZW1zVG9SZW1vdmUuYXBwZW5kKGl0ZW0pOwor
ICAgICAgICAgICAgICAgIGl0ZW1zVG9SZW1vdmUuYXBwZW5kKCppdGVtKTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJs
ZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcApp
bmRleCBiOTI4ZTBkN2E0NGNlNjVkOTgxNzUzYjAzMTE2YTc1NjZjNjQxMGNiLi4zOGVhZjIyY2Yz
OTliZDBmMjQ2YjA1NmNhNzY2ODlmZmY4N2I4MWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlRWxlbWVudC5jcHAKQEAgLTgwLDcgKzgwLDggQEAgSFRNTFRhYmxlQ2FwdGlvbkVsZW1l
bnQqIEhUTUxUYWJsZUVsZW1lbnQ6OmNhcHRpb24oKSBjb25zdAogdm9pZCBIVE1MVGFibGVFbGVt
ZW50OjpzZXRDYXB0aW9uKFBhc3NSZWZQdHI8SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQ+IG5ld0Nh
cHRpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGRlbGV0ZUNhcHRpb24oKTsKLSAgICBp
bnNlcnRCZWZvcmUobmV3Q2FwdGlvbiwgZmlyc3RDaGlsZCgpLCBlYyk7CisgICAgaWYgKG5ld0Nh
cHRpb24pCisgICAgICAgIGluc2VydEJlZm9yZSgqbmV3Q2FwdGlvbiwgZmlyc3RDaGlsZCgpLCBl
Yyk7CiB9CiAKIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KiBIVE1MVGFibGVFbGVtZW50Ojp0SGVh
ZCgpIGNvbnN0CkBAIC05NiwxMiArOTcsMTUgQEAgdm9pZCBIVE1MVGFibGVFbGVtZW50OjpzZXRU
SGVhZChQYXNzUmVmUHRyPEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50PiBuZXdIZWFkLCBFeGMKIHsK
ICAgICBkZWxldGVUSGVhZCgpOwogCisgICAgaWYgKCFuZXdIZWFkKQorICAgICAgICByZXR1cm47
CisKICAgICBOb2RlKiBjaGlsZDsKICAgICBmb3IgKGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGls
ZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKICAgICAgICAgaWYgKGNoaWxkLT5pc0Vs
ZW1lbnROb2RlKCkgJiYgIWNoaWxkLT5oYXNUYWdOYW1lKGNhcHRpb25UYWcpICYmICFjaGlsZC0+
aGFzVGFnTmFtZShjb2xncm91cFRhZykpCiAgICAgICAgICAgICBicmVhazsKIAotICAgIGluc2Vy
dEJlZm9yZShuZXdIZWFkLCBjaGlsZCwgZWMpOworICAgIGluc2VydEJlZm9yZSgqbmV3SGVhZCwg
Y2hpbGQsIGVjKTsKIH0KIAogSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqIEhUTUxUYWJsZUVsZW1l
bnQ6OnRGb290KCkgY29uc3QKQEAgLTExNywxMiArMTIxLDE1IEBAIHZvaWQgSFRNTFRhYmxlRWxl
bWVudDo6c2V0VEZvb3QoUGFzc1JlZlB0cjxIVE1MVGFibGVTZWN0aW9uRWxlbWVudD4gbmV3Rm9v
dCwgRXhjCiB7CiAgICAgZGVsZXRlVEZvb3QoKTsKIAorICAgIGlmICghbmV3Rm9vdCkKKyAgICAg
ICAgcmV0dXJuOworCiAgICAgTm9kZSogY2hpbGQ7CiAgICAgZm9yIChjaGlsZCA9IGZpcnN0Q2hp
bGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCiAgICAgICAgIGlmIChj
aGlsZC0+aXNFbGVtZW50Tm9kZSgpICYmICFjaGlsZC0+aGFzVGFnTmFtZShjYXB0aW9uVGFnKSAm
JiAhY2hpbGQtPmhhc1RhZ05hbWUoY29sZ3JvdXBUYWcpICYmICFjaGlsZC0+aGFzVGFnTmFtZSh0
aGVhZFRhZykpCiAgICAgICAgICAgICBicmVhazsKIAotICAgIGluc2VydEJlZm9yZShuZXdGb290
LCBjaGlsZCwgZWMpOworICAgIGluc2VydEJlZm9yZSgqbmV3Rm9vdCwgY2hpbGQsIGVjKTsKIH0K
IAogUmVmUHRyPEhUTUxFbGVtZW50PiBIVE1MVGFibGVFbGVtZW50OjpjcmVhdGVUSGVhZCgpCkBA
IC0xMzYsNyArMTQzLDggQEAgUmVmUHRyPEhUTUxFbGVtZW50PiBIVE1MVGFibGVFbGVtZW50Ojpj
cmVhdGVUSGVhZCgpCiAKIHZvaWQgSFRNTFRhYmxlRWxlbWVudDo6ZGVsZXRlVEhlYWQoKQogewot
ICAgIHJlbW92ZUNoaWxkKHRIZWFkKCksIElHTk9SRV9FWENFUFRJT04pOworICAgIGlmIChhdXRv
KiB0SGVhZCA9IHRoaXMtPnRIZWFkKCkpCisgICAgICAgIHJlbW92ZUNoaWxkKCp0SGVhZCwgSUdO
T1JFX0VYQ0VQVElPTik7CiB9CiAKIFJlZlB0cjxIVE1MRWxlbWVudD4gSFRNTFRhYmxlRWxlbWVu
dDo6Y3JlYXRlVEZvb3QoKQpAQCAtMTUwLDE1ICsxNTgsMTYgQEAgUmVmUHRyPEhUTUxFbGVtZW50
PiBIVE1MVGFibGVFbGVtZW50OjpjcmVhdGVURm9vdCgpCiAKIHZvaWQgSFRNTFRhYmxlRWxlbWVu
dDo6ZGVsZXRlVEZvb3QoKQogewotICAgIHJlbW92ZUNoaWxkKHRGb290KCksIElHTk9SRV9FWENF
UFRJT04pOworICAgIGlmIChhdXRvKiB0Rm9vdCA9IHRoaXMtPnRGb290KCkpCisgICAgICAgIHJl
bW92ZUNoaWxkKCp0Rm9vdCwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CiAKIFJlZlB0cjxIVE1MRWxl
bWVudD4gSFRNTFRhYmxlRWxlbWVudDo6Y3JlYXRlVEJvZHkoKQogewotICAgIFJlZlB0cjxIVE1M
VGFibGVTZWN0aW9uRWxlbWVudD4gYm9keSA9IEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50OjpjcmVh
dGUodGJvZHlUYWcsIGRvY3VtZW50KCkpOwotICAgIE5vZGUqIHJlZmVyZW5jZUVsZW1lbnQgPSBs
YXN0Qm9keSgpID8gbGFzdEJvZHkoKS0+bmV4dFNpYmxpbmcoKSA6IDA7Ci0gICAgaW5zZXJ0QmVm
b3JlKGJvZHksIHJlZmVyZW5jZUVsZW1lbnQsIEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgIHJl
dHVybiBib2R5OworICAgIFJlZjxIVE1MVGFibGVTZWN0aW9uRWxlbWVudD4gYm9keSA9IEhUTUxU
YWJsZVNlY3Rpb25FbGVtZW50OjpjcmVhdGUodGJvZHlUYWcsIGRvY3VtZW50KCkpOworICAgIE5v
ZGUqIHJlZmVyZW5jZUVsZW1lbnQgPSBsYXN0Qm9keSgpID8gbGFzdEJvZHkoKS0+bmV4dFNpYmxp
bmcoKSA6IG51bGxwdHI7CisgICAgaW5zZXJ0QmVmb3JlKGJvZHkuY29weVJlZigpLCByZWZlcmVu
Y2VFbGVtZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICByZXR1cm4gV1RGOjptb3ZlKGJv
ZHkpOwogfQogCiBSZWZQdHI8SFRNTEVsZW1lbnQ+IEhUTUxUYWJsZUVsZW1lbnQ6OmNyZWF0ZUNh
cHRpb24oKQpAQCAtMTcyLDcgKzE4MSw4IEBAIFJlZlB0cjxIVE1MRWxlbWVudD4gSFRNTFRhYmxl
RWxlbWVudDo6Y3JlYXRlQ2FwdGlvbigpCiAKIHZvaWQgSFRNTFRhYmxlRWxlbWVudDo6ZGVsZXRl
Q2FwdGlvbigpCiB7Ci0gICAgcmVtb3ZlQ2hpbGQoY2FwdGlvbigpLCBJR05PUkVfRVhDRVBUSU9O
KTsKKyAgICBpZiAoYXV0byogY2FwdGlvbiA9IHRoaXMtPmNhcHRpb24oKSkKKyAgICAgICAgcmVt
b3ZlQ2hpbGQoKmNhcHRpb24sIElHTk9SRV9FWENFUFRJT04pOwogfQogCiBIVE1MVGFibGVTZWN0
aW9uRWxlbWVudCogSFRNTFRhYmxlRWxlbWVudDo6bGFzdEJvZHkoKSBjb25zdApAQCAtMjE3LDIy
ICsyMjcsMjIgQEAgUmVmUHRyPEhUTUxFbGVtZW50PiBIVE1MVGFibGVFbGVtZW50OjppbnNlcnRS
b3coaW50IGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBlbHNlIHsKICAgICAgICAgcGFy
ZW50ID0gbGFzdEJvZHkoKTsKICAgICAgICAgaWYgKCFwYXJlbnQpIHsKLSAgICAgICAgICAgIFJl
ZlB0cjxIVE1MVGFibGVTZWN0aW9uRWxlbWVudD4gbmV3Qm9keSA9IEhUTUxUYWJsZVNlY3Rpb25F
bGVtZW50OjpjcmVhdGUodGJvZHlUYWcsIGRvY3VtZW50KCkpOwotICAgICAgICAgICAgUmVmUHRy
PEhUTUxUYWJsZVJvd0VsZW1lbnQ+IG5ld1JvdyA9IEhUTUxUYWJsZVJvd0VsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCgpKTsKLSAgICAgICAgICAgIG5ld0JvZHktPmFwcGVuZENoaWxkKG5ld1Jvdywg
ZWMpOwotICAgICAgICAgICAgYXBwZW5kQ2hpbGQobmV3Qm9keS5yZWxlYXNlKCksIGVjKTsKLSAg
ICAgICAgICAgIHJldHVybiBuZXdSb3c7CisgICAgICAgICAgICBSZWY8SFRNTFRhYmxlU2VjdGlv
bkVsZW1lbnQ+IG5ld0JvZHkgPSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDo6Y3JlYXRlKHRib2R5
VGFnLCBkb2N1bWVudCgpKTsKKyAgICAgICAgICAgIFJlZjxIVE1MVGFibGVSb3dFbGVtZW50PiBu
ZXdSb3cgPSBIVE1MVGFibGVSb3dFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CisgICAgICAg
ICAgICBuZXdCb2R5LT5hcHBlbmRDaGlsZChuZXdSb3cuY29weVJlZigpLCBlYyk7CisgICAgICAg
ICAgICBhcHBlbmRDaGlsZChXVEY6Om1vdmUobmV3Qm9keSksIGVjKTsKKyAgICAgICAgICAgIHJl
dHVybiBXVEY6Om1vdmUobmV3Um93KTsKICAgICAgICAgfQogICAgIH0KIAotICAgIFJlZlB0cjxI
VE1MVGFibGVSb3dFbGVtZW50PiBuZXdSb3cgPSBIVE1MVGFibGVSb3dFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQoKSk7Ci0gICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobmV3Um93LCByb3cuZ2V0KCks
IGVjKTsKLSAgICByZXR1cm4gbmV3Um93OworICAgIFJlZjxIVE1MVGFibGVSb3dFbGVtZW50PiBu
ZXdSb3cgPSBIVE1MVGFibGVSb3dFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CisgICAgcGFy
ZW50LT5pbnNlcnRCZWZvcmUobmV3Um93LmNvcHlSZWYoKSwgcm93LmdldCgpLCBlYyk7CisgICAg
cmV0dXJuIFdURjo6bW92ZShuZXdSb3cpOwogfQogCiB2b2lkIEhUTUxUYWJsZUVsZW1lbnQ6OmRl
bGV0ZVJvdyhpbnQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIEhUTUxUYWJsZVJv
d0VsZW1lbnQqIHJvdyA9IDA7CisgICAgSFRNTFRhYmxlUm93RWxlbWVudCogcm93ID0gbnVsbHB0
cjsKICAgICBpZiAoaW5kZXggPT0gLTEpCiAgICAgICAgIHJvdyA9IEhUTUxUYWJsZVJvd3NDb2xs
ZWN0aW9uOjpsYXN0Um93KCp0aGlzKTsKICAgICBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUYWJsZUVsZW1lbnQuaWRsCmluZGV4IGEwYTFjNmIwMzc5YzEwNjYxMmQwZmY5ZmIzZTJhM2Y4
YmRhNTM3YmEuLmYyNTZlYzI3YjhhMzg3NDE4ZTg2ZGM4ODkxOTVhZjg2ZGQwYjYzMDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmlkbApAQCAtMTksOSArMTksOSBAQAog
ICovCiAKIGludGVyZmFjZSBIVE1MVGFibGVFbGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgIFtT
ZXR0ZXJSYWlzZXNFeGNlcHRpb25dIGF0dHJpYnV0ZSBIVE1MVGFibGVDYXB0aW9uRWxlbWVudCBj
YXB0aW9uOwotICAgIFtTZXR0ZXJSYWlzZXNFeGNlcHRpb25dIGF0dHJpYnV0ZSBIVE1MVGFibGVT
ZWN0aW9uRWxlbWVudCB0SGVhZDsKLSAgICBbU2V0dGVyUmFpc2VzRXhjZXB0aW9uXSBhdHRyaWJ1
dGUgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQgdEZvb3Q7CisgICAgW1NldHRlclJhaXNlc0V4Y2Vw
dGlvbiwgU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgSFRNTFRhYmxlQ2FwdGlvbkVsZW1l
bnQgY2FwdGlvbjsKKyAgICBbU2V0dGVyUmFpc2VzRXhjZXB0aW9uLCBTdHJpY3RUeXBlQ2hlY2tp
bmddIGF0dHJpYnV0ZSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCB0SGVhZDsKKyAgICBbU2V0dGVy
UmFpc2VzRXhjZXB0aW9uLCBTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBIVE1MVGFibGVT
ZWN0aW9uRWxlbWVudCB0Rm9vdDsKIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MQ29sbGVj
dGlvbiByb3dzOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MQ29sbGVjdGlvbiB0Qm9kaWVz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5jcHAKaW5kZXggYzg3
MjU5ZjVlY2I5NmQwYWE2MDQ4ZDRkMTRhZThiNjBmOTNiNjhiNi4uOTVjNjkyOWUwMTAzYWQ5M2Qx
YjEwMDMxZjNlMTM2OWY5MTYwY2Q2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGFibGVSb3dFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJs
ZVJvd0VsZW1lbnQuY3BwCkBAIC0xMjUsMjEgKzEyNSwyMSBAQCBSZWZQdHI8SFRNTEVsZW1lbnQ+
IEhUTUxUYWJsZVJvd0VsZW1lbnQ6Omluc2VydENlbGwoaW50IGluZGV4LCBFeGNlcHRpb25Db2Rl
JiBlYwogICAgIGludCBudW1DZWxscyA9IGNoaWxkcmVuLT5sZW5ndGgoKTsKICAgICBpZiAoaW5k
ZXggPCAtMSB8fCBpbmRleCA+IG51bUNlbGxzKSB7CiAgICAgICAgIGVjID0gSU5ERVhfU0laRV9F
UlI7Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAK
LSAgICBSZWZQdHI8SFRNTFRhYmxlQ2VsbEVsZW1lbnQ+IGNlbGwgPSBIVE1MVGFibGVDZWxsRWxl
bWVudDo6Y3JlYXRlKHRkVGFnLCBkb2N1bWVudCgpKTsKKyAgICBSZWY8SFRNTFRhYmxlQ2VsbEVs
ZW1lbnQ+IGNlbGwgPSBIVE1MVGFibGVDZWxsRWxlbWVudDo6Y3JlYXRlKHRkVGFnLCBkb2N1bWVu
dCgpKTsKICAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID49IG51bUNlbGxzKQotICAgICAgICBh
cHBlbmRDaGlsZChjZWxsLCBlYyk7CisgICAgICAgIGFwcGVuZENoaWxkKGNlbGwuY29weVJlZigp
LCBlYyk7CiAgICAgZWxzZSB7CiAgICAgICAgIE5vZGUqIG47CiAgICAgICAgIGlmIChpbmRleCA8
IDEpCiAgICAgICAgICAgICBuID0gZmlyc3RDaGlsZCgpOwogICAgICAgICBlbHNlCiAgICAgICAg
ICAgICBuID0gY2hpbGRyZW4tPml0ZW0oaW5kZXgpOwotICAgICAgICBpbnNlcnRCZWZvcmUoY2Vs
bCwgbiwgZWMpOworICAgICAgICBpbnNlcnRCZWZvcmUoY2VsbC5jb3B5UmVmKCksIG4sIGVjKTsK
ICAgICB9Ci0gICAgcmV0dXJuIGNlbGw7CisgICAgcmV0dXJuIFdURjo6bW92ZShjZWxsKTsKIH0K
IAogdm9pZCBIVE1MVGFibGVSb3dFbGVtZW50OjpkZWxldGVDZWxsKGludCBpbmRleCwgRXhjZXB0
aW9uQ29kZSYgZWMpCkBAIC0xNTAsNyArMTUwLDcgQEAgdm9pZCBIVE1MVGFibGVSb3dFbGVtZW50
OjpkZWxldGVDZWxsKGludCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgIGluZGV4
ID0gbnVtQ2VsbHMtMTsKICAgICBpZiAoaW5kZXggPj0gMCAmJiBpbmRleCA8IG51bUNlbGxzKSB7
CiAgICAgICAgIFJlZlB0cjxOb2RlPiBjZWxsID0gY2hpbGRyZW4tPml0ZW0oaW5kZXgpOwotICAg
ICAgICBIVE1MRWxlbWVudDo6cmVtb3ZlQ2hpbGQoY2VsbC5nZXQoKSwgZWMpOworICAgICAgICBI
VE1MRWxlbWVudDo6cmVtb3ZlQ2hpbGQoKmNlbGwsIGVjKTsKICAgICB9IGVsc2UKICAgICAgICAg
ZWMgPSBJTkRFWF9TSVpFX0VSUjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFi
bGVTZWN0aW9uRWxlbWVudC5jcHAKaW5kZXggOWU0NTMxNmY4ZjNmNGZjNmRhOGUzZGNkYjFiM2U0
ZTJkZDkyN2Q4Ni4uZmQwMmM2MDJmOTQ2Y2YzNGQxMGU4M2MyMjIyNDhmYTM4ODAxMjNlYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAKQEAg
LTY4LDE0ICs2OCwxNCBAQCBSZWZQdHI8SFRNTEVsZW1lbnQ+IEhUTUxUYWJsZVNlY3Rpb25FbGVt
ZW50OjppbnNlcnRSb3coaW50IGluZGV4LCBFeGNlcHRpb25Db2RlJgogICAgIGVsc2UgewogICAg
ICAgICByb3cgPSBIVE1MVGFibGVSb3dFbGVtZW50OjpjcmVhdGUodHJUYWcsIGRvY3VtZW50KCkp
OwogICAgICAgICBpZiAobnVtUm93cyA9PSBpbmRleCB8fCBpbmRleCA9PSAtMSkKLSAgICAgICAg
ICAgIGFwcGVuZENoaWxkKHJvdywgZWMpOworICAgICAgICAgICAgYXBwZW5kQ2hpbGQoKnJvdywg
ZWMpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIE5vZGUqIG47CiAgICAgICAgICAgICBp
ZiAoaW5kZXggPCAxKQogICAgICAgICAgICAgICAgIG4gPSBmaXJzdENoaWxkKCk7CiAgICAgICAg
ICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbiA9IGNoaWxkcmVuLT5pdGVtKGluZGV4KTsKLSAg
ICAgICAgICAgIGluc2VydEJlZm9yZShyb3csIG4sIGVjKTsKKyAgICAgICAgICAgIGluc2VydEJl
Zm9yZSgqcm93LCBuLCBlYyk7CiAgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIHJvdzsKQEAg
LTg5LDcgKzg5LDcgQEAgdm9pZCBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDo6ZGVsZXRlUm93KGlu
dCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgIGluZGV4ID0gbnVtUm93cyAtIDE7
CiAgICAgaWYgKGluZGV4ID49IDAgJiYgaW5kZXggPCBudW1Sb3dzKSB7CiAgICAgICAgIFJlZlB0
cjxOb2RlPiByb3cgPSBjaGlsZHJlbi0+aXRlbShpbmRleCk7Ci0gICAgICAgIEhUTUxFbGVtZW50
OjpyZW1vdmVDaGlsZChyb3cuZ2V0KCksIGVjKTsKKyAgICAgICAgSFRNTEVsZW1lbnQ6OnJlbW92
ZUNoaWxkKCpyb3csIGVjKTsKICAgICB9IGVsc2UKICAgICAgICAgZWMgPSBJTkRFWF9TSVpFX0VS
UjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwCmluZGV4
IGFlYzMwMTBmNmQ2Y2ZlMWJlZGIzMmM0OTcwOWFlY2FkMGI2ZDdmNzIuLjJlMWVkYjIzNmMwNzhl
ZWI2ZGViZTZlOWU1NjExZTcxN2NkYzgzOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGVtcGxhdGVFbGVtZW50LmNwcApAQCAtNjgsNyArNjgsNyBAQCBEb2N1bWVudEZyYWdtZW50KiBI
VE1MVGVtcGxhdGVFbGVtZW50Ojpjb250ZW50KCkgY29uc3QKICAgICByZXR1cm4gbV9jb250ZW50
LmdldCgpOwogfQogCi1SZWZQdHI8Tm9kZT4gSFRNTFRlbXBsYXRlRWxlbWVudDo6Y2xvbmVOb2Rl
SW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uIHR5cGUp
CitSZWY8Tm9kZT4gSFRNTFRlbXBsYXRlRWxlbWVudDo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1l
bnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uIHR5cGUpCiB7CiAgICAgUmVmUHRy
PE5vZGU+IGNsb25lOwogICAgIHN3aXRjaCAodHlwZSkgewpAQCAtODIsOCArODIsOCBAQCBSZWZQ
dHI8Tm9kZT4gSFRNTFRlbXBsYXRlRWxlbWVudDo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQm
IHRhcmdldERvY3VtZW50LCBDbAogICAgICAgICBicmVhazsKICAgICB9CiAgICAgaWYgKG1fY29u
dGVudCkKLSAgICAgICAgY29udGVudCgpLT5jbG9uZUNoaWxkTm9kZXMoZG93bmNhc3Q8SFRNTFRl
bXBsYXRlRWxlbWVudD4oY2xvbmUuZ2V0KCkpLT5jb250ZW50KCkpOwotICAgIHJldHVybiBjbG9u
ZS5yZWxlYXNlKCk7CisgICAgICAgIGNvbnRlbnQoKS0+Y2xvbmVDaGlsZE5vZGVzKCpkb3duY2Fz
dDxIVE1MVGVtcGxhdGVFbGVtZW50PihjbG9uZS5nZXQoKSktPmNvbnRlbnQoKSk7CisgICAgcmV0
dXJuIGNsb25lLnJlbGVhc2VOb25OdWxsKCk7CiB9CiAKIHZvaWQgSFRNTFRlbXBsYXRlRWxlbWVu
dDo6ZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQqIG9sZERvY3VtZW50KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaAppbmRleCA3NjdmMmExODRlYTg1MzdkYmMz
NjQ0NWRhYjgyYzg1ZTAwNWYwNzRiLi5kMWZhODY0MDY5ZGNiNzUwOWM5ZjE4NzcwZGFiNTJmMWU4
NTZiZDE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaApAQCAt
NTAsNyArNTAsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxUZW1wbGF0ZUVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIFJlZlB0cjxO
b2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50Jiwg
Q2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRpZE1vdmVUb05l
d0RvY3VtZW50KERvY3VtZW50KiBvbGREb2N1bWVudCkgb3ZlcnJpZGU7CiAKICAgICBtdXRhYmxl
IFJlZlB0cjxUZW1wbGF0ZUNvbnRlbnREb2N1bWVudEZyYWdtZW50PiBtX2NvbnRlbnQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAppbmRleCA5MzkyOTExNTUw
OTI2MTc3ZWIwNmZjNDIxZTVhMmQwOWQ3YTkyMWU2Li5hMmRlNzMwYzVlN2M5ZDFlNWMyMGQ5MGIy
ZDQyM2MyOGVlNGRjNWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0
QXJlYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxl
bWVudC5jcHAKQEAgLTQwNiw5ICs0MDYsOSBAQCB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNl
dERlZmF1bHRWYWx1ZShjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSkKICAgICBSZWY8SFRNTFRl
eHRBcmVhRWxlbWVudD4gcHJvdGVjdEZyb21NdXRhdGlvbkV2ZW50cygqdGhpcyk7CiAKICAgICAv
LyBUbyBwcmVzZXJ2ZSBjb21tZW50cywgcmVtb3ZlIG9ubHkgdGhlIHRleHQgbm9kZXMsIHRoZW4g
YWRkIGEgc2luZ2xlIHRleHQgbm9kZS4KLSAgICBWZWN0b3I8UmVmUHRyPFRleHQ+PiB0ZXh0Tm9k
ZXM7CisgICAgVmVjdG9yPFJlZjxUZXh0Pj4gdGV4dE5vZGVzOwogICAgIGZvciAoVGV4dCogdGV4
dE5vZGUgPSBUZXh0Tm9kZVRyYXZlcnNhbDo6Zmlyc3RDaGlsZCgqdGhpcyk7IHRleHROb2RlOyB0
ZXh0Tm9kZSA9IFRleHROb2RlVHJhdmVyc2FsOjpuZXh0U2libGluZygqdGV4dE5vZGUpKQotICAg
ICAgICB0ZXh0Tm9kZXMuYXBwZW5kKHRleHROb2RlKTsKKyAgICAgICAgdGV4dE5vZGVzLmFwcGVu
ZCgqdGV4dE5vZGUpOwogCiAgICAgc2l6ZV90IHNpemUgPSB0ZXh0Tm9kZXMuc2l6ZSgpOwogICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQpAQCAtNTIzLDggKzUyMyw4IEBAIHZv
aWQgSFRNTFRleHRBcmVhRWxlbWVudDo6dXBkYXRlUGxhY2Vob2xkZXJUZXh0KCkKICAgICBTdHJp
bmcgcGxhY2Vob2xkZXJUZXh0ID0gc3RyaXBwZWRQbGFjZWhvbGRlcigpOwogICAgIGlmIChwbGFj
ZWhvbGRlclRleHQuaXNFbXB0eSgpKSB7CiAgICAgICAgIGlmIChtX3BsYWNlaG9sZGVyKSB7Ci0g
ICAgICAgICAgICB1c2VyQWdlbnRTaGFkb3dSb290KCktPnJlbW92ZUNoaWxkKG1fcGxhY2Vob2xk
ZXIsIEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgICAgICAgICAgbV9wbGFjZWhvbGRlciA9IDA7
CisgICAgICAgICAgICB1c2VyQWdlbnRTaGFkb3dSb290KCktPnJlbW92ZUNoaWxkKCptX3BsYWNl
aG9sZGVyLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgICAgIG1fcGxhY2Vob2xkZXIg
PSBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC01MzMsNyAr
NTMzLDcgQEAgdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50Ojp1cGRhdGVQbGFjZWhvbGRlclRleHQo
KQogICAgICAgICBtX3BsYWNlaG9sZGVyID0gcGxhY2Vob2xkZXIuZ2V0KCk7CiAgICAgICAgIG1f
cGxhY2Vob2xkZXItPnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtaW5wdXQtcGxhY2Vo
b2xkZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgICAgIG1f
cGxhY2Vob2xkZXItPnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlEaXNwbGF5LCBp
c1BsYWNlaG9sZGVyVmlzaWJsZSgpID8gQ1NTVmFsdWVCbG9jayA6IENTU1ZhbHVlTm9uZSwgdHJ1
ZSk7Ci0gICAgICAgIHVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+aW5zZXJ0QmVmb3JlKG1fcGxhY2Vo
b2xkZXIsIGlubmVyVGV4dEVsZW1lbnQoKS0+bmV4dFNpYmxpbmcoKSk7CisgICAgICAgIHVzZXJB
Z2VudFNoYWRvd1Jvb3QoKS0+aW5zZXJ0QmVmb3JlKCptX3BsYWNlaG9sZGVyLCBpbm5lclRleHRF
bGVtZW50KCktPm5leHRTaWJsaW5nKCkpOwogICAgIH0KICAgICBtX3BsYWNlaG9sZGVyLT5zZXRJ
bm5lclRleHQocGxhY2Vob2xkZXJUZXh0LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VEb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0ltYWdlRG9jdW1lbnQuY3BwCmluZGV4IDgxYjVlZWVkOTU1MWJmYjZlMzMzZDRj
MWQ5Yjc5NmNkNzlkNjFmY2MuLjAzZGIzNzk3N2IwZmUxYWE4N2Q2ZGE2OTRjMmIzMzYxNjE3YjE5
NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VEb2N1bWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZURvY3VtZW50LmNwcApAQCAtOTIsNyArOTIsNyBA
QCBwcml2YXRlOgogCiBjbGFzcyBJbWFnZURvY3VtZW50RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBI
VE1MSW1hZ2VFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEltYWdlRG9jdW1l
bnRFbGVtZW50PiBjcmVhdGUoSW1hZ2VEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWY8SW1hZ2VE
b2N1bWVudEVsZW1lbnQ+IGNyZWF0ZShJbWFnZURvY3VtZW50Jik7CiAKIHByaXZhdGU6CiAgICAg
SW1hZ2VEb2N1bWVudEVsZW1lbnQoSW1hZ2VEb2N1bWVudCYgZG9jdW1lbnQpCkBAIC0xMDcsOSAr
MTA3LDkgQEAgcHJpdmF0ZToKICAgICBJbWFnZURvY3VtZW50KiBtX2ltYWdlRG9jdW1lbnQ7CiB9
OwogCi1pbmxpbmUgUmVmUHRyPEltYWdlRG9jdW1lbnRFbGVtZW50PiBJbWFnZURvY3VtZW50RWxl
bWVudDo6Y3JlYXRlKEltYWdlRG9jdW1lbnQmIGRvY3VtZW50KQoraW5saW5lIFJlZjxJbWFnZURv
Y3VtZW50RWxlbWVudD4gSW1hZ2VEb2N1bWVudEVsZW1lbnQ6OmNyZWF0ZShJbWFnZURvY3VtZW50
JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEltYWdlRG9jdW1lbnRFbGVt
ZW50KGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW1hZ2VEb2N1bWVudEVs
ZW1lbnQoZG9jdW1lbnQpKTsKIH0KIAogLy8gLS0tLS0tLS0KQEAgLTIxMCwxOSArMjEwLDE5IEBA
IFJlZjxEb2N1bWVudFBhcnNlcj4gSW1hZ2VEb2N1bWVudDo6Y3JlYXRlUGFyc2VyKCkKIAogdm9p
ZCBJbWFnZURvY3VtZW50OjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCiB7Ci0gICAgUmVmUHRy
PEVsZW1lbnQ+IHJvb3RFbGVtZW50ID0gRG9jdW1lbnQ6OmNyZWF0ZUVsZW1lbnQoaHRtbFRhZywg
ZmFsc2UpOwotICAgIGFwcGVuZENoaWxkKHJvb3RFbGVtZW50KTsKLSAgICBkb3duY2FzdDxIVE1M
SHRtbEVsZW1lbnQ+KCpyb290RWxlbWVudCkuaW5zZXJ0ZWRCeVBhcnNlcigpOworICAgIFJlZjxF
bGVtZW50PiByb290RWxlbWVudCA9IERvY3VtZW50OjpjcmVhdGVFbGVtZW50KGh0bWxUYWcsIGZh
bHNlKTsKKyAgICBhcHBlbmRDaGlsZChyb290RWxlbWVudC5jb3B5UmVmKCkpOworICAgIGRvd25j
YXN0PEhUTUxIdG1sRWxlbWVudD4ocm9vdEVsZW1lbnQuZ2V0KCkpLmluc2VydGVkQnlQYXJzZXIo
KTsKIAogICAgIGZyYW1lKCktPmluamVjdFVzZXJTY3JpcHRzKEluamVjdEF0RG9jdW1lbnRTdGFy
dCk7CiAKLSAgICBSZWZQdHI8RWxlbWVudD4gYm9keSA9IERvY3VtZW50OjpjcmVhdGVFbGVtZW50
KGJvZHlUYWcsIGZhbHNlKTsKKyAgICBSZWY8RWxlbWVudD4gYm9keSA9IERvY3VtZW50OjpjcmVh
dGVFbGVtZW50KGJvZHlUYWcsIGZhbHNlKTsKICAgICBib2R5LT5zZXRBdHRyaWJ1dGUoc3R5bGVB
dHRyLCAibWFyZ2luOiAwcHgiKTsKICAgICBpZiAoTUlNRVR5cGVSZWdpc3RyeTo6aXNQREZNSU1F
VHlwZShkb2N1bWVudCgpLmxvYWRlcigpLT5yZXNwb25zZU1JTUVUeXBlKCkpKQotICAgICAgICBk
b3duY2FzdDxIVE1MQm9keUVsZW1lbnQ+KCpib2R5KS5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENT
U1Byb3BlcnR5QmFja2dyb3VuZENvbG9yLCAid2hpdGUiLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X0lERU5UKTsKLSAgICByb290RWxlbWVudC0+YXBwZW5kQ2hpbGQoYm9keSk7CisgICAgICAgIGRv
d25jYXN0PEhUTUxCb2R5RWxlbWVudD4oYm9keS5nZXQoKSkuc2V0SW5saW5lU3R5bGVQcm9wZXJ0
eShDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvciwgIndoaXRlIiwgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU19JREVOVCk7CisgICAgcm9vdEVsZW1lbnQtPmFwcGVuZENoaWxkKGJvZHkuY29weVJlZigp
KTsKICAgICAKLSAgICBSZWZQdHI8SW1hZ2VEb2N1bWVudEVsZW1lbnQ+IGltYWdlRWxlbWVudCA9
IEltYWdlRG9jdW1lbnRFbGVtZW50OjpjcmVhdGUoKnRoaXMpOworICAgIFJlZjxJbWFnZURvY3Vt
ZW50RWxlbWVudD4gaW1hZ2VFbGVtZW50ID0gSW1hZ2VEb2N1bWVudEVsZW1lbnQ6OmNyZWF0ZSgq
dGhpcyk7CiAgICAgaWYgKG1fc2hvdWxkU2hyaW5rSW1hZ2UpCiAgICAgICAgIGltYWdlRWxlbWVu
dC0+c2V0QXR0cmlidXRlKHN0eWxlQXR0ciwgIi13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTsgZGlz
cGxheTpibG9jazsgbWFyZ2luOmF1dG87Iik7CiAgICAgZWxzZQpAQCAtMjMwLDcgKzIzMCw3IEBA
IHZvaWQgSW1hZ2VEb2N1bWVudDo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKQogICAgIGltYWdl
RWxlbWVudC0+c2V0TG9hZE1hbnVhbGx5KHRydWUpOwogICAgIGltYWdlRWxlbWVudC0+c2V0U3Jj
KHVybCgpLnN0cmluZygpKTsKICAgICBpbWFnZUVsZW1lbnQtPmNhY2hlZEltYWdlKCktPnNldFJl
c3BvbnNlKGxvYWRlcigpLT5yZXNwb25zZSgpKTsKLSAgICBib2R5LT5hcHBlbmRDaGlsZChpbWFn
ZUVsZW1lbnQpOworICAgIGJvZHktPmFwcGVuZENoaWxkKGltYWdlRWxlbWVudC5jb3B5UmVmKCkp
OwogICAgIAogICAgIGlmIChtX3Nob3VsZFNocmlua0ltYWdlKSB7CiAjaWYgUExBVEZPUk0oSU9T
KQpAQCAtMjQ0LDcgKzI0NCw3IEBAIHZvaWQgSW1hZ2VEb2N1bWVudDo6Y3JlYXRlRG9jdW1lbnRT
dHJ1Y3R1cmUoKQogI2VuZGlmCiAgICAgfQogCi0gICAgbV9pbWFnZUVsZW1lbnQgPSBpbWFnZUVs
ZW1lbnQuZ2V0KCk7CisgICAgbV9pbWFnZUVsZW1lbnQgPSBpbWFnZUVsZW1lbnQucHRyKCk7CiB9
CiAKIHZvaWQgSW1hZ2VEb2N1bWVudDo6aW1hZ2VVcGRhdGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01l
ZGlhRG9jdW1lbnQuY3BwCmluZGV4IDE4NWFiYTgzNDAzY2U4MjJjNzc2ZWUwYzI4ZGJhNzMwMDE5
Mjk5OWIuLjY1MWM3MjlkNjRkNzZiNTM2OTVmNDc1YzFhYWU1MGE1NzY3M2I5NmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcApAQCAtNzgsMTAgKzc4LDEwIEBAIHByaXZhdGU6
CiAgICAgCiB2b2lkIE1lZGlhRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJl
KCkKIHsKLSAgICBSZWZQdHI8RWxlbWVudD4gcm9vdEVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVh
dGVFbGVtZW50KGh0bWxUYWcsIGZhbHNlKTsKLSAgICBkb2N1bWVudCgpLT5hcHBlbmRDaGlsZChy
b290RWxlbWVudCwgSUdOT1JFX0VYQ0VQVElPTik7Ci0gICAgZG9jdW1lbnQoKS0+c2V0Q1NTVGFy
Z2V0KHJvb3RFbGVtZW50LmdldCgpKTsKLSAgICBkb3duY2FzdDxIVE1MSHRtbEVsZW1lbnQ+KCpy
b290RWxlbWVudCkuaW5zZXJ0ZWRCeVBhcnNlcigpOworICAgIFJlZjxFbGVtZW50PiByb290RWxl
bWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoaHRtbFRhZywgZmFsc2UpOworICAgIGRv
Y3VtZW50KCktPmFwcGVuZENoaWxkKHJvb3RFbGVtZW50LmNvcHlSZWYoKSwgSUdOT1JFX0VYQ0VQ
VElPTik7CisgICAgZG9jdW1lbnQoKS0+c2V0Q1NTVGFyZ2V0KHJvb3RFbGVtZW50LnB0cigpKTsK
KyAgICBkb3duY2FzdDxIVE1MSHRtbEVsZW1lbnQ+KHJvb3RFbGVtZW50LmdldCgpKS5pbnNlcnRl
ZEJ5UGFyc2VyKCk7CiAKICAgICBpZiAoZG9jdW1lbnQoKS0+ZnJhbWUoKSkKICAgICAgICAgZG9j
dW1lbnQoKS0+ZnJhbWUoKS0+aW5qZWN0VXNlclNjcmlwdHMoSW5qZWN0QXREb2N1bWVudFN0YXJ0
KTsKQEAgLTk2LDEyICs5NiwxMiBAQCB2b2lkIE1lZGlhRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURv
Y3VtZW50U3RydWN0dXJlKCkKICAgICBoZWFkRWxlbWVudC0+YXBwZW5kQ2hpbGQobWV0YUVsZW1l
bnQsIElHTk9SRV9FWENFUFRJT04pOwogI2VuZGlmCiAKLSAgICBSZWZQdHI8RWxlbWVudD4gYm9k
eSA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoYm9keVRhZywgZmFsc2UpOwotICAgIHJvb3RF
bGVtZW50LT5hcHBlbmRDaGlsZChib2R5LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBSZWY8RWxl
bWVudD4gYm9keSA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoYm9keVRhZywgZmFsc2UpOwor
ICAgIHJvb3RFbGVtZW50LT5hcHBlbmRDaGlsZChib2R5LmNvcHlSZWYoKSwgSUdOT1JFX0VYQ0VQ
VElPTik7CiAKLSAgICBSZWZQdHI8RWxlbWVudD4gbWVkaWFFbGVtZW50ID0gZG9jdW1lbnQoKS0+
Y3JlYXRlRWxlbWVudCh2aWRlb1RhZywgZmFsc2UpOworICAgIFJlZjxFbGVtZW50PiBtZWRpYUVs
ZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KHZpZGVvVGFnLCBmYWxzZSk7CiAKLSAg
ICBtX21lZGlhRWxlbWVudCA9IGRvd25jYXN0PEhUTUxWaWRlb0VsZW1lbnQ+KG1lZGlhRWxlbWVu
dC5nZXQoKSk7CisgICAgbV9tZWRpYUVsZW1lbnQgPSBkb3duY2FzdDxIVE1MVmlkZW9FbGVtZW50
PihtZWRpYUVsZW1lbnQucHRyKCkpOwogICAgIG1fbWVkaWFFbGVtZW50LT5zZXRBdHRyaWJ1dGUo
Y29udHJvbHNBdHRyLCBlbXB0eUF0b20pOwogICAgIG1fbWVkaWFFbGVtZW50LT5zZXRBdHRyaWJ1
dGUoYXV0b3BsYXlBdHRyLCBlbXB0eUF0b20pOwogCkBAIC0xMTQsMTUgKzExNCwxNSBAQCB2b2lk
IE1lZGlhRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCkKICNlbmRpZgog
ICAgIG1fbWVkaWFFbGVtZW50LT5zZXRBdHRyaWJ1dGUoc3R5bGVBdHRyLCBlbGVtZW50U3R5bGUu
dG9TdHJpbmcoKSk7CiAKLSAgICBSZWZQdHI8RWxlbWVudD4gc291cmNlRWxlbWVudCA9IGRvY3Vt
ZW50KCktPmNyZWF0ZUVsZW1lbnQoc291cmNlVGFnLCBmYWxzZSk7Ci0gICAgSFRNTFNvdXJjZUVs
ZW1lbnQmIHNvdXJjZSA9IGRvd25jYXN0PEhUTUxTb3VyY2VFbGVtZW50Pigqc291cmNlRWxlbWVu
dCk7CisgICAgUmVmPEVsZW1lbnQ+IHNvdXJjZUVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVF
bGVtZW50KHNvdXJjZVRhZywgZmFsc2UpOworICAgIEhUTUxTb3VyY2VFbGVtZW50JiBzb3VyY2Ug
PSBkb3duY2FzdDxIVE1MU291cmNlRWxlbWVudD4oc291cmNlRWxlbWVudC5nZXQoKSk7CiAgICAg
c291cmNlLnNldFNyYyhkb2N1bWVudCgpLT51cmwoKSk7CiAKICAgICBpZiAoRG9jdW1lbnRMb2Fk
ZXIqIGxvYWRlciA9IGRvY3VtZW50KCktPmxvYWRlcigpKQogICAgICAgICBzb3VyY2Uuc2V0VHlw
ZShsb2FkZXItPnJlc3BvbnNlTUlNRVR5cGUoKSk7CiAKLSAgICBtX21lZGlhRWxlbWVudC0+YXBw
ZW5kQ2hpbGQoc291cmNlRWxlbWVudCwgSUdOT1JFX0VYQ0VQVElPTik7Ci0gICAgYm9keS0+YXBw
ZW5kQ2hpbGQobWVkaWFFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBtX21lZGlhRWxl
bWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHNvdXJjZUVsZW1lbnQpLCBJR05PUkVfRVhDRVBU
SU9OKTsKKyAgICBib2R5LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUobWVkaWFFbGVtZW50KSwgSUdO
T1JFX0VYQ0VQVElPTik7CiAKICAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLT5mcmFtZSgp
OwogICAgIGlmICghZnJhbWUpCkBAIC0yNTMsNyArMjUzLDcgQEAgdm9pZCBNZWRpYURvY3VtZW50
OjpyZXBsYWNlTWVkaWFFbGVtZW50VGltZXJGaXJlZCgpCiAgICAgICAgIGlmIChkb2N1bWVudExv
YWRlcikKICAgICAgICAgICAgIGVtYmVkRWxlbWVudC5zZXRBdHRyaWJ1dGUodHlwZUF0dHIsIGRv
Y3VtZW50TG9hZGVyLT53cml0ZXIoKS5taW1lVHlwZSgpKTsKIAotICAgICAgICB2aWRlb0VsZW1l
bnQtPnBhcmVudE5vZGUoKS0+cmVwbGFjZUNoaWxkKCZlbWJlZEVsZW1lbnQsIHZpZGVvRWxlbWVu
dCwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgICAgIHZpZGVvRWxlbWVudC0+cGFyZW50Tm9kZSgp
LT5yZXBsYWNlQ2hpbGQoZW1iZWRFbGVtZW50LCAqdmlkZW9FbGVtZW50LCBJR05PUkVfRVhDRVBU
SU9OKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2lu
RG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5jcHAKaW5k
ZXggZTk2NzcwOTBmNGMzODUzYTdjZmYyMDhiMjNjMzFkYzlkMjU0NDgyMS4uYzBhODBiYTU1NzEz
OTA5YjkzYjE4YjFiZGE4ODAzZmYxNTI3NWJmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9QbHVnaW5Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QbHVnaW5E
b2N1bWVudC5jcHAKQEAgLTY3LDkgKzY3LDkgQEAgcHJpdmF0ZToKIAogdm9pZCBQbHVnaW5Eb2N1
bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKQogewotICAgIFJlZlB0cjxFbGVt
ZW50PiByb290RWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoaHRtbFRhZywgZmFs
c2UpOwotICAgIGRvY3VtZW50KCktPmFwcGVuZENoaWxkKHJvb3RFbGVtZW50LCBJR05PUkVfRVhD
RVBUSU9OKTsKLSAgICBkb3duY2FzdDxIVE1MSHRtbEVsZW1lbnQ+KCpyb290RWxlbWVudCkuaW5z
ZXJ0ZWRCeVBhcnNlcigpOworICAgIFJlZjxFbGVtZW50PiByb290RWxlbWVudCA9IGRvY3VtZW50
KCktPmNyZWF0ZUVsZW1lbnQoaHRtbFRhZywgZmFsc2UpOworICAgIGRvY3VtZW50KCktPmFwcGVu
ZENoaWxkKHJvb3RFbGVtZW50LmNvcHlSZWYoKSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgZG93
bmNhc3Q8SFRNTEh0bWxFbGVtZW50Pihyb290RWxlbWVudC5nZXQoKSkuaW5zZXJ0ZWRCeVBhcnNl
cigpOwogCiAgICAgaWYgKGRvY3VtZW50KCktPmZyYW1lKCkpCiAgICAgICAgIGRvY3VtZW50KCkt
PmZyYW1lKCktPmluamVjdFVzZXJTY3JpcHRzKEluamVjdEF0RG9jdW1lbnRTdGFydCk7CkBAIC03
OSw3ICs3OSw3IEBAIHZvaWQgUGx1Z2luRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURvY3VtZW50U3Ry
dWN0dXJlKCkKICAgICBkb2N1bWVudCgpLT5wcm9jZXNzVmlld3BvcnQoQVNDSUlMaXRlcmFsKCJ1
c2VyLXNjYWxhYmxlPW5vIiksIFZpZXdwb3J0QXJndW1lbnRzOjpQbHVnaW5Eb2N1bWVudCk7CiAj
ZW5kaWYKIAotICAgIFJlZlB0cjxFbGVtZW50PiBib2R5ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxl
bWVudChib2R5VGFnLCBmYWxzZSk7CisgICAgUmVmPEVsZW1lbnQ+IGJvZHkgPSBkb2N1bWVudCgp
LT5jcmVhdGVFbGVtZW50KGJvZHlUYWcsIGZhbHNlKTsKICAgICBib2R5LT5zZXRBdHRyaWJ1dGUo
bWFyZ2lud2lkdGhBdHRyLCBBdG9taWNTdHJpbmcoIjAiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CiAgICAgYm9keS0+c2V0QXR0cmlidXRlKG1hcmdpbmhlaWdodEF0dHIs
IEF0b21pY1N0cmluZygiMCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
ICNpZiBQTEFURk9STShJT1MpCkBAIC04OCwxMSArODgsMTEgQEAgdm9pZCBQbHVnaW5Eb2N1bWVu
dFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKQogICAgIGJvZHktPnNldEF0dHJpYnV0
ZShzdHlsZUF0dHIsIEF0b21pY1N0cmluZygiYmFja2dyb3VuZC1jb2xvcjogcmdiKDM4LDM4LDM4
KSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICNlbmRpZgogCi0gICAg
cm9vdEVsZW1lbnQtPmFwcGVuZENoaWxkKGJvZHksIElHTk9SRV9FWENFUFRJT04pOworICAgIHJv
b3RFbGVtZW50LT5hcHBlbmRDaGlsZChib2R5LmNvcHlSZWYoKSwgSUdOT1JFX0VYQ0VQVElPTik7
CiAgICAgICAgIAotICAgIFJlZlB0cjxFbGVtZW50PiBlbWJlZEVsZW1lbnQgPSBkb2N1bWVudCgp
LT5jcmVhdGVFbGVtZW50KGVtYmVkVGFnLCBmYWxzZSk7CisgICAgUmVmPEVsZW1lbnQ+IGVtYmVk
RWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoZW1iZWRUYWcsIGZhbHNlKTsKICAg
ICAgICAgCi0gICAgbV9lbWJlZEVsZW1lbnQgPSBkb3duY2FzdDxIVE1MRW1iZWRFbGVtZW50Pihl
bWJlZEVsZW1lbnQuZ2V0KCkpOworICAgIG1fZW1iZWRFbGVtZW50ID0gZG93bmNhc3Q8SFRNTEVt
YmVkRWxlbWVudD4oZW1iZWRFbGVtZW50LnB0cigpKTsKICAgICBtX2VtYmVkRWxlbWVudC0+c2V0
QXR0cmlidXRlKHdpZHRoQXR0ciwgIjEwMCUiKTsKICAgICBtX2VtYmVkRWxlbWVudC0+c2V0QXR0
cmlidXRlKGhlaWdodEF0dHIsICIxMDAlIik7CiAgICAgCkBAIC0xMDYsNyArMTA2LDcgQEAgdm9p
ZCBQbHVnaW5Eb2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKQogCiAgICAg
ZG93bmNhc3Q8UGx1Z2luRG9jdW1lbnQ+KCpkb2N1bWVudCgpKS5zZXRQbHVnaW5FbGVtZW50KG1f
ZW1iZWRFbGVtZW50KTsKIAotICAgIGJvZHktPmFwcGVuZENoaWxkKGVtYmVkRWxlbWVudCwgSUdO
T1JFX0VYQ0VQVElPTik7CisgICAgYm9keS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGVtYmVkRWxl
bWVudCksIElHTk9SRV9FWENFUFRJT04pOwogfQogCiB2b2lkIFBsdWdpbkRvY3VtZW50UGFyc2Vy
OjphcHBlbmRCeXRlcyhEb2N1bWVudFdyaXRlciYsIGNvbnN0IGNoYXIqLCBzaXplX3QpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCmluZGV4IGI1YjllNzk0MTMxMTkzYjUwZmU3
OTc5YTE2YTE0Y2IzMDgwNGU3ZDcuLjY2YTc0MTVlOGE0Y2YxMWY5MWRjNjdjMTZhMWQ5MDYwMjVj
ZmZmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCkBAIC0yNTMsMTIg
KzI1MywxMiBAQCB2b2lkIFJhbmdlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKICAg
ICBBU1NFUlQoZWxlbWVudCgpLnVzZXJBZ2VudFNoYWRvd1Jvb3QoKSk7CiAKICAgICBEb2N1bWVu
dCYgZG9jdW1lbnQgPSBlbGVtZW50KCkuZG9jdW1lbnQoKTsKLSAgICBSZWZQdHI8SFRNTERpdkVs
ZW1lbnQ+IHRyYWNrID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgUmVm
PEhUTUxEaXZFbGVtZW50PiB0cmFjayA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQp
OwogICAgIHRyYWNrLT5zZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LXNsaWRlci1ydW5u
YWJsZS10cmFjayIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICB0
cmFjay0+YXBwZW5kQ2hpbGQoU2xpZGVyVGh1bWJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpLCBJ
R05PUkVfRVhDRVBUSU9OKTsKLSAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IGNvbnRhaW5lciA9IFNs
aWRlckNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udGFpbmVyLT5h
cHBlbmRDaGlsZCh0cmFjay5yZWxlYXNlKCksIElHTk9SRV9FWENFUFRJT04pOwotICAgIGVsZW1l
bnQoKS51c2VyQWdlbnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKGNvbnRhaW5lci5yZWxlYXNl
KCksIElHTk9SRV9FWENFUFRJT04pOworICAgIFJlZjxIVE1MRWxlbWVudD4gY29udGFpbmVyID0g
U2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBjb250YWluZXIt
PmFwcGVuZENoaWxkKFdURjo6bW92ZSh0cmFjayksIElHTk9SRV9FWENFUFRJT04pOworICAgIGVs
ZW1lbnQoKS51c2VyQWdlbnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKFdURjo6bW92ZShjb250
YWluZXIpLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KIAogSFRNTEVsZW1lbnQqIFJhbmdlSW5wdXRU
eXBlOjpzbGlkZXJUcmFja0VsZW1lbnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJ
bnB1dFR5cGUuY3BwCmluZGV4IGRlNDNkYjU4MDQ5M2JjNjU5OWY5ZTdhZTg4N2U3MGM5ODFjNDJl
NjcuLjM1N2M3YTYwNWI0ZGI3MmMwMGU3Yjk2ZGVkNmRkNjQ2MjBlOGQ2ZmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAKQEAgLTEwNywxNCArMTA3LDE0IEBAIHZvaWQg
U2VhcmNoSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKICAgICBBU1NFUlQoY29udGFp
bmVyKTsKICAgICBBU1NFUlQodGV4dFdyYXBwZXIpOwogCi0gICAgUmVmUHRyPFNlYXJjaEZpZWxk
UmVzdWx0c0J1dHRvbkVsZW1lbnQ+IHJlc3VsdHNCdXR0b24gPSBTZWFyY2hGaWVsZFJlc3VsdHNC
dXR0b25FbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLmRvY3VtZW50KCkpOwotICAgIG1fcmVzdWx0
c0J1dHRvbiA9IHJlc3VsdHNCdXR0b24uZ2V0KCk7Ci0gICAgdXBkYXRlUmVzdWx0QnV0dG9uUHNl
dWRvVHlwZSgqbV9yZXN1bHRzQnV0dG9uLCBlbGVtZW50KCkubWF4UmVzdWx0cygpKTsKLSAgICBj
b250YWluZXItPmluc2VydEJlZm9yZShtX3Jlc3VsdHNCdXR0b24sIHRleHRXcmFwcGVyLCBJR05P
UkVfRVhDRVBUSU9OKTsKLQotICAgIFJlZlB0cjxTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1l
bnQ+IGNhbmNlbEJ1dHRvbiA9IFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudDo6Y3JlYXRl
KGVsZW1lbnQoKS5kb2N1bWVudCgpKTsKLSAgICBtX2NhbmNlbEJ1dHRvbiA9IGNhbmNlbEJ1dHRv
bi5nZXQoKTsKLSAgICBjb250YWluZXItPmluc2VydEJlZm9yZShtX2NhbmNlbEJ1dHRvbiwgdGV4
dFdyYXBwZXItPm5leHRTaWJsaW5nKCksIElHTk9SRV9FWENFUFRJT04pOworICAgIFJlZjxTZWFy
Y2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50PiByZXN1bHRzQnV0dG9uID0gU2VhcmNoRmllbGRS
ZXN1bHRzQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS5kb2N1bWVudCgpKTsKKyAgICBt
X3Jlc3VsdHNCdXR0b24gPSByZXN1bHRzQnV0dG9uLnB0cigpOworICAgIHVwZGF0ZVJlc3VsdEJ1
dHRvblBzZXVkb1R5cGUocmVzdWx0c0J1dHRvbi5nZXQoKSwgZWxlbWVudCgpLm1heFJlc3VsdHMo
KSk7CisgICAgY29udGFpbmVyLT5pbnNlcnRCZWZvcmUoV1RGOjptb3ZlKHJlc3VsdHNCdXR0b24p
LCB0ZXh0V3JhcHBlciwgSUdOT1JFX0VYQ0VQVElPTik7CisKKyAgICBSZWY8U2VhcmNoRmllbGRD
YW5jZWxCdXR0b25FbGVtZW50PiBjYW5jZWxCdXR0b24gPSBTZWFyY2hGaWVsZENhbmNlbEJ1dHRv
bkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCkuZG9jdW1lbnQoKSk7CisgICAgbV9jYW5jZWxCdXR0
b24gPSBjYW5jZWxCdXR0b24ucHRyKCk7CisgICAgY29udGFpbmVyLT5pbnNlcnRCZWZvcmUoV1RG
Ojptb3ZlKGNhbmNlbEJ1dHRvbiksIHRleHRXcmFwcGVyLT5uZXh0U2libGluZygpLCBJR05PUkVf
RVhDRVBUSU9OKTsKIH0KIAogSFRNTEVsZW1lbnQqIFNlYXJjaElucHV0VHlwZTo6cmVzdWx0c0J1
dHRvbkVsZW1lbnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0
RmllbGRJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5
cGUuY3BwCmluZGV4IGVhZTNkYjI5ZWVlM2MyZGU5NWZlNzE4MGM1NDZmZjhlN2UyYTc2N2UuLjEz
NmYwOTc1MWI1ZGE2MTAwMDYxNjQ5YjU1YjU0OWFjOWQyMzQyYjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKQEAgLTI3NCw3ICsyNzQsNyBAQCB2b2lkIFRl
eHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAgICAgbV9pbm5lclRleHQg
PSBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAKICAgICBp
ZiAoIWNyZWF0ZXNDb250YWluZXIpIHsKLSAgICAgICAgZWxlbWVudCgpLnVzZXJBZ2VudFNoYWRv
d1Jvb3QoKS0+YXBwZW5kQ2hpbGQobV9pbm5lclRleHQsIElHTk9SRV9FWENFUFRJT04pOworICAg
ICAgICBlbGVtZW50KCkudXNlckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZCgqbV9pbm5l
clRleHQsIElHTk9SRV9FWENFUFRJT04pOwogICAgICAgICB1cGRhdGVQbGFjZWhvbGRlclRleHQo
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTI4NCw3ICsyODQsNyBAQCB2b2lkIFRleHRG
aWVsZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAKICAgICBpZiAoc2hvdWxkSGF2
ZVNwaW5CdXR0b24pIHsKICAgICAgICAgbV9pbm5lclNwaW5CdXR0b24gPSBTcGluQnV0dG9uRWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50LCAqdGhpcyk7Ci0gICAgICAgIG1fY29udGFpbmVyLT5hcHBl
bmRDaGlsZChtX2lubmVyU3BpbkJ1dHRvbiwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgICAgIG1f
Y29udGFpbmVyLT5hcHBlbmRDaGlsZCgqbV9pbm5lclNwaW5CdXR0b24sIElHTk9SRV9FWENFUFRJ
T04pOwogICAgIH0KIAogICAgIGlmIChzaG91bGRIYXZlQ2Fwc0xvY2tJbmRpY2F0b3IpIHsKQEAg
LTI5NCw3ICsyOTQsNyBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3Vi
dHJlZSgpCiAgICAgICAgIGJvb2wgc2hvdWxkRHJhd0NhcHNMb2NrSW5kaWNhdG9yID0gdGhpcy0+
c2hvdWxkRHJhd0NhcHNMb2NrSW5kaWNhdG9yKCk7CiAgICAgICAgIG1fY2Fwc0xvY2tJbmRpY2F0
b3ItPnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlEaXNwbGF5LCBzaG91bGREcmF3
Q2Fwc0xvY2tJbmRpY2F0b3IgPyBDU1NWYWx1ZUJsb2NrIDogQ1NTVmFsdWVOb25lLCB0cnVlKTsK
IAotICAgICAgICBtX2NvbnRhaW5lci0+YXBwZW5kQ2hpbGQobV9jYXBzTG9ja0luZGljYXRvciwg
SUdOT1JFX0VYQ0VQVElPTik7CisgICAgICAgIG1fY29udGFpbmVyLT5hcHBlbmRDaGlsZCgqbV9j
YXBzTG9ja0luZGljYXRvciwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgfQogCiAgICAgdXBkYXRl
QXV0b0ZpbGxCdXR0b24oKTsKQEAgLTQ2MSw3ICs0NjEsNyBAQCB2b2lkIFRleHRGaWVsZElucHV0
VHlwZTo6dXBkYXRlUGxhY2Vob2xkZXJUZXh0KCkKICAgICBTdHJpbmcgcGxhY2Vob2xkZXJUZXh0
ID0gZWxlbWVudCgpLnN0cmlwcGVkUGxhY2Vob2xkZXIoKTsKICAgICBpZiAocGxhY2Vob2xkZXJU
ZXh0LmlzRW1wdHkoKSkgewogICAgICAgICBpZiAobV9wbGFjZWhvbGRlcikgewotICAgICAgICAg
ICAgbV9wbGFjZWhvbGRlci0+cGFyZW50Tm9kZSgpLT5yZW1vdmVDaGlsZChtX3BsYWNlaG9sZGVy
LmdldCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgICAgIG1fcGxhY2Vob2xkZXIt
PnBhcmVudE5vZGUoKS0+cmVtb3ZlQ2hpbGQoKm1fcGxhY2Vob2xkZXIsIEFTU0VSVF9OT19FWENF
UFRJT04pOwogICAgICAgICAgICAgbV9wbGFjZWhvbGRlciA9IG51bGxwdHI7CiAgICAgICAgIH0K
ICAgICAgICAgcmV0dXJuOwpAQCAtNDcwLDcgKzQ3MCw3IEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRU
eXBlOjp1cGRhdGVQbGFjZWhvbGRlclRleHQoKQogICAgICAgICBtX3BsYWNlaG9sZGVyID0gSFRN
TERpdkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCkuZG9jdW1lbnQoKSk7CiAgICAgICAgIG1fcGxh
Y2Vob2xkZXItPnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtaW5wdXQtcGxhY2Vob2xk
ZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgICAgIG1fcGxh
Y2Vob2xkZXItPnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlEaXNwbGF5LCBlbGVt
ZW50KCkuaXNQbGFjZWhvbGRlclZpc2libGUoKSA/IENTU1ZhbHVlQmxvY2sgOiBDU1NWYWx1ZU5v
bmUsIHRydWUpOwotICAgICAgICBlbGVtZW50KCkudXNlckFnZW50U2hhZG93Um9vdCgpLT5pbnNl
cnRCZWZvcmUobV9wbGFjZWhvbGRlciwgbV9jb250YWluZXIgPyBtX2NvbnRhaW5lci5nZXQoKSA6
IGlubmVyVGV4dEVsZW1lbnQoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAgIGVsZW1l
bnQoKS51c2VyQWdlbnRTaGFkb3dSb290KCktPmluc2VydEJlZm9yZSgqbV9wbGFjZWhvbGRlciwg
bV9jb250YWluZXIgPyBtX2NvbnRhaW5lci5nZXQoKSA6IGlubmVyVGV4dEVsZW1lbnQoKSwgQVNT
RVJUX05PX0VYQ0VQVElPTik7CiAgICAgICAgIAogICAgIH0KICAgICBtX3BsYWNlaG9sZGVyLT5z
ZXRJbm5lclRleHQocGxhY2Vob2xkZXJUZXh0LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKQEAgLTYw
MCwxMCArNjAwLDEwIEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVDb250YWluZXIo
KQogICAgIG1fY29udGFpbmVyLT5zZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LXRleHRm
aWVsZC1kZWNvcmF0aW9uLWNvbnRhaW5lciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKIAogICAgIG1faW5uZXJCbG9jayA9IFRleHRDb250cm9sSW5uZXJFbGVtZW50Ojpj
cmVhdGUoZWxlbWVudCgpLmRvY3VtZW50KCkpOwotICAgIG1faW5uZXJCbG9jay0+YXBwZW5kQ2hp
bGQobV9pbm5lclRleHQsIElHTk9SRV9FWENFUFRJT04pOwotICAgIG1fY29udGFpbmVyLT5hcHBl
bmRDaGlsZChtX2lubmVyQmxvY2ssIElHTk9SRV9FWENFUFRJT04pOworICAgIG1faW5uZXJCbG9j
ay0+YXBwZW5kQ2hpbGQoKm1faW5uZXJUZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBtX2Nv
bnRhaW5lci0+YXBwZW5kQ2hpbGQoKm1faW5uZXJCbG9jaywgSUdOT1JFX0VYQ0VQVElPTik7CiAK
LSAgICBlbGVtZW50KCkudXNlckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChtX2NvbnRh
aW5lciwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgZWxlbWVudCgpLnVzZXJBZ2VudFNoYWRvd1Jv
b3QoKS0+YXBwZW5kQ2hpbGQoKm1fY29udGFpbmVyLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KIAog
dm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZUF1dG9GaWxsQnV0dG9uKCkKQEAgLTYxMiw3
ICs2MTIsNyBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlQXV0b0ZpbGxCdXR0b24o
KQogCiAgICAgbV9hdXRvRmlsbEJ1dHRvbiA9IEF1dG9GaWxsQnV0dG9uRWxlbWVudDo6Y3JlYXRl
KGVsZW1lbnQoKS5kb2N1bWVudCgpLCAqdGhpcyk7CiAgICAgbV9hdXRvRmlsbEJ1dHRvbi0+c2V0
UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC1hdXRvLWZpbGwtYnV0dG9uIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIG1fY29udGFpbmVyLT5hcHBlbmRDaGls
ZChtX2F1dG9GaWxsQnV0dG9uLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBtX2NvbnRhaW5lci0+
YXBwZW5kQ2hpbGQoKm1fYXV0b0ZpbGxCdXR0b24sIElHTk9SRV9FWENFUFRJT04pOwogfQogCiB2
b2lkIFRleHRGaWVsZElucHV0VHlwZTo6dXBkYXRlQXV0b0ZpbGxCdXR0b24oKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcAppbmRleCBmNjFlMWI1ZWZlMjcwOTMxZGFi
MGVjMmVlZGYwZjM0YmQ3NzgyYjk2Li45MDYyOTVlMTk4Zjc4NDU2NTYxMmFhNTJjYjllNmFjNGQ1
MzBmYWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcApAQCAt
MTgwLDMyICsxODAsMzIgQEAgdm9pZCBWYWxpZGF0aW9uTWVzc2FnZTo6YnVpbGRCdWJibGVUcmVl
KCkKICAgICAvLyBOZWVkIHRvIGZvcmNlIHBvc2l0aW9uOmFic29sdXRlIGJlY2F1c2UgUmVuZGVy
TWVudUxpc3QgZG9lc24ndCBhc3N1bWUgaXQKICAgICAvLyBjb250YWlucyBub24tYWJzb2x1dGUg
b3Igbm9uLWZpeGVkIHJlbmRlcmVycyBhcyBjaGlsZHJlbi4KICAgICBtX2J1YmJsZS0+c2V0SW5s
aW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eVBvc2l0aW9uLCBDU1NWYWx1ZUFic29sdXRlKTsK
LSAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKG1fYnViYmxlLmdldCgpLCBBU1NFUlRfTk9fRVhD
RVBUSU9OKTsKKyAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKCptX2J1YmJsZSwgQVNTRVJUX05P
X0VYQ0VQVElPTik7CiAgICAgZG9jdW1lbnQudXBkYXRlTGF5b3V0KCk7CiAgICAgYWRqdXN0QnVi
YmxlUG9zaXRpb24obV9lbGVtZW50LT5yZW5kZXJlcigpLT5hYnNvbHV0ZUJvdW5kaW5nQm94UmVj
dCgpLCBtX2J1YmJsZS5nZXQoKSk7CiAKLSAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IGNsaXBw
ZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBSZWY8SFRNTERpdkVs
ZW1lbnQ+IGNsaXBwZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBj
bGlwcGVyLT5zZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxl
LWFycm93LWNsaXBwZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0g
ICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBidWJibGVBcnJvdyA9IEhUTUxEaXZFbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQpOworICAgIFJlZjxIVE1MRGl2RWxlbWVudD4gYnViYmxlQXJyb3cgPSBI
VE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBidWJibGVBcnJvdy0+c2V0UHNl
dWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1hcnJvdyIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBjbGlwcGVyLT5hcHBlbmRDaGls
ZChidWJibGVBcnJvdy5yZWxlYXNlKCksIEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgIG1fYnVi
YmxlLT5hcHBlbmRDaGlsZChjbGlwcGVyLnJlbGVhc2UoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7
CisgICAgY2xpcHBlci0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGJ1YmJsZUFycm93KSwgQVNTRVJU
X05PX0VYQ0VQVElPTik7CisgICAgbV9idWJibGUtPmFwcGVuZENoaWxkKFdURjo6bW92ZShjbGlw
cGVyKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKLSAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IG1l
c3NhZ2UgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBSZWY8SFRNTEVs
ZW1lbnQ+IG1lc3NhZ2UgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBt
ZXNzYWdlLT5zZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxl
LW1lc3NhZ2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgUmVm
UHRyPEhUTUxFbGVtZW50PiBpY29uID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7
CisgICAgUmVmPEhUTUxFbGVtZW50PiBpY29uID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCk7CiAgICAgaWNvbi0+c2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC12YWxpZGF0
aW9uLWJ1YmJsZS1pY29uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwot
ICAgIG1lc3NhZ2UtPmFwcGVuZENoaWxkKGljb24ucmVsZWFzZSgpLCBBU1NFUlRfTk9fRVhDRVBU
SU9OKTsKLSAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IHRleHRCbG9jayA9IEhUTUxEaXZFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIG1lc3NhZ2UtPmFwcGVuZENoaWxkKFdURjo6bW92ZShp
Y29uKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgUmVmPEhUTUxFbGVtZW50PiB0ZXh0Qmxv
Y2sgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICB0ZXh0QmxvY2stPnNl
dFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtdGV4dC1ibG9j
ayIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBtX21lc3NhZ2VI
ZWFkaW5nID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgbV9tZXNzYWdl
SGVhZGluZy0+c2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJs
ZS1oZWFkaW5nIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIHRl
eHRCbG9jay0+YXBwZW5kQ2hpbGQobV9tZXNzYWdlSGVhZGluZywgQVNTRVJUX05PX0VYQ0VQVElP
Tik7CisgICAgdGV4dEJsb2NrLT5hcHBlbmRDaGlsZCgqbV9tZXNzYWdlSGVhZGluZywgQVNTRVJU
X05PX0VYQ0VQVElPTik7CiAgICAgbV9tZXNzYWdlQm9keSA9IEhUTUxEaXZFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQpOwogICAgIG1fbWVzc2FnZUJvZHktPnNldFBzZXVkbyhBdG9taWNTdHJpbmco
Ii13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtYm9keSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKLSAgICB0ZXh0QmxvY2stPmFwcGVuZENoaWxkKG1fbWVzc2FnZUJvZHks
IEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgIG1lc3NhZ2UtPmFwcGVuZENoaWxkKHRleHRCbG9j
ay5yZWxlYXNlKCksIEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgIG1fYnViYmxlLT5hcHBlbmRD
aGlsZChtZXNzYWdlLnJlbGVhc2UoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgdGV4dEJs
b2NrLT5hcHBlbmRDaGlsZCgqbV9tZXNzYWdlQm9keSwgQVNTRVJUX05PX0VYQ0VQVElPTik7Cisg
ICAgbWVzc2FnZS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHRleHRCbG9jayksIEFTU0VSVF9OT19F
WENFUFRJT04pOworICAgIG1fYnViYmxlLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUobWVzc2FnZSks
IEFTU0VSVF9OT19FWENFUFRJT04pOwogCiAgICAgc2V0TWVzc2FnZURPTUFuZFN0YXJ0VGltZXIo
KTsKIApAQCAtMjM3LDcgKzIzNyw3IEBAIHZvaWQgVmFsaWRhdGlvbk1lc3NhZ2U6OmRlbGV0ZUJ1
YmJsZVRyZWUoKQogICAgIGlmIChtX2J1YmJsZSkgewogICAgICAgICBtX21lc3NhZ2VIZWFkaW5n
ID0gbnVsbHB0cjsKICAgICAgICAgbV9tZXNzYWdlQm9keSA9IG51bGxwdHI7Ci0gICAgICAgIG1f
ZWxlbWVudC0+dXNlckFnZW50U2hhZG93Um9vdCgpLT5yZW1vdmVDaGlsZChtX2J1YmJsZS5nZXQo
KSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAgIG1fZWxlbWVudC0+dXNlckFnZW50U2hh
ZG93Um9vdCgpLT5yZW1vdmVDaGlsZCgqbV9idWJibGUsIEFTU0VSVF9OT19FWENFUFRJT04pOwog
ICAgICAgICBtX2J1YmJsZSA9IG51bGxwdHI7CiAgICAgfQogICAgIG1fbWVzc2FnZSA9IFN0cmlu
ZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9s
RWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxl
bWVudHMuY3BwCmluZGV4IDllNDgzYTk5ZDQ1ODkwZTA2NzZjN2Y4YTI2OGZiYmE0ZDQwNTQwYzIu
LjIyY2UzMzlkMzQ4MjU4NGZjZjEzZjRjYWVlZDhhMGI0NTZmZmE3ZDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKQEAgLTgw
NywyMSArODA3LDIxIEBAIHZvaWQgTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RF
bGVtZW50OjpyZWJ1aWxkVHJhY2tMaXN0TWVudSgpCiAgICAgQ2FwdGlvblVzZXJQcmVmZXJlbmNl
cyogY2FwdGlvblByZWZlcmVuY2VzID0gZG9jdW1lbnQoKS5wYWdlKCktPmdyb3VwKCkuY2FwdGlv
blByZWZlcmVuY2VzKCk7CiAgICAgVmVjdG9yPFJlZlB0cjxUZXh0VHJhY2s+PiB0cmFja3NGb3JN
ZW51ID0gY2FwdGlvblByZWZlcmVuY2VzLT5zb3J0ZWRUcmFja0xpc3RGb3JNZW51KHRyYWNrTGlz
dCk7CiAKLSAgICBSZWZQdHI8RWxlbWVudD4gY2FwdGlvbnNIZWFkZXIgPSBkb2N1bWVudCgpLmNy
ZWF0ZUVsZW1lbnQoaDNUYWcsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIFJlZjxFbGVtZW50
PiBjYXB0aW9uc0hlYWRlciA9IGRvY3VtZW50KCkuY3JlYXRlRWxlbWVudChoM1RhZywgQVNTRVJU
X05PX0VYQ0VQVElPTik7CiAgICAgY2FwdGlvbnNIZWFkZXItPmFwcGVuZENoaWxkKGRvY3VtZW50
KCkuY3JlYXRlVGV4dE5vZGUodGV4dFRyYWNrU3VidGl0bGVzVGV4dCgpKSk7Ci0gICAgYXBwZW5k
Q2hpbGQoY2FwdGlvbnNIZWFkZXIpOwotICAgIFJlZlB0cjxFbGVtZW50PiBjYXB0aW9uc01lbnVM
aXN0ID0gZG9jdW1lbnQoKS5jcmVhdGVFbGVtZW50KHVsVGFnLCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKKyAgICBhcHBlbmRDaGlsZChXVEY6Om1vdmUoY2FwdGlvbnNIZWFkZXIpKTsKKyAgICBSZWY8
RWxlbWVudD4gY2FwdGlvbnNNZW51TGlzdCA9IGRvY3VtZW50KCkuY3JlYXRlRWxlbWVudCh1bFRh
ZywgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBsZW5n
dGggPSB0cmFja3NGb3JNZW51LnNpemUoKTsgaSA8IGxlbmd0aDsgKytpKSB7CiAgICAgICAgIFJl
ZlB0cjxUZXh0VHJhY2s+IHRleHRUcmFjayA9IHRyYWNrc0Zvck1lbnVbaV07Ci0gICAgICAgIFJl
ZlB0cjxFbGVtZW50PiBtZW51SXRlbSA9IGRvY3VtZW50KCkuY3JlYXRlRWxlbWVudChsaVRhZywg
QVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAgIFJlZjxFbGVtZW50PiBtZW51SXRlbSA9IGRv
Y3VtZW50KCkuY3JlYXRlRWxlbWVudChsaVRhZywgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAg
ICAgIG1lbnVJdGVtLT5hcHBlbmRDaGlsZChkb2N1bWVudCgpLmNyZWF0ZVRleHROb2RlKGNhcHRp
b25QcmVmZXJlbmNlcy0+ZGlzcGxheU5hbWVGb3JUcmFjayh0ZXh0VHJhY2suZ2V0KCkpKSk7Ci0g
ICAgICAgIGNhcHRpb25zTWVudUxpc3QtPmFwcGVuZENoaWxkKG1lbnVJdGVtKTsKLSAgICAgICAg
bV9tZW51SXRlbXMuYXBwZW5kKG1lbnVJdGVtKTsKLSAgICAgICAgbV9tZW51VG9UcmFja01hcC5h
ZGQobWVudUl0ZW0sIHRleHRUcmFjayk7CisgICAgICAgIGNhcHRpb25zTWVudUxpc3QtPmFwcGVu
ZENoaWxkKG1lbnVJdGVtLmNvcHlSZWYoKSk7CisgICAgICAgIG1fbWVudUl0ZW1zLmFwcGVuZCht
ZW51SXRlbS5wdHIoKSk7CisgICAgICAgIG1fbWVudVRvVHJhY2tNYXAuYWRkKG1lbnVJdGVtLnB0
cigpLCB0ZXh0VHJhY2spOwogICAgIH0KIAotICAgIGFwcGVuZENoaWxkKGNhcHRpb25zTWVudUxp
c3QpOworICAgIGFwcGVuZENoaWxkKFdURjo6bW92ZShjYXB0aW9uc01lbnVMaXN0KSk7CiAjZW5k
aWYKIH0KIApAQCAtMTE4NiwxNiArMTE4NiwxNiBAQCB2b2lkIE1lZGlhQ29udHJvbFRleHRUcmFj
a0NvbnRhaW5lckVsZW1lbnQ6OnVwZGF0ZURpc3BsYXkoKQogICAgICAgICAgICAgLy8gdHJhY2sg
Y3VlIHJlZ2lvbiBpZGVudGlmaWVyLCBydW4gdGhlIGZvbGxvd2luZyBzdWJzdGVwczoKICAgICAg
ICAgICAgIGlmIChkaXNwbGF5Qm94LT5oYXNDaGlsZE5vZGVzKCkgJiYgIWNvbnRhaW5zKGRpc3Bs
YXlCb3guZ2V0KCkpKSB7CiAgICAgICAgICAgICAgICAgLy8gTm90ZTogdGhlIGRpc3BsYXkgdHJl
ZSBvZiBhIGN1ZSBpcyByZW1vdmVkIHdoZW4gdGhlIGFjdGl2ZSBmbGFnIG9mIHRoZSBjdWUgaXMg
dW5zZXQuCi0gICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQoZGlzcGxheUJveCwgQVNTRVJUX05P
X0VYQ0VQVElPTik7CisgICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQoKmRpc3BsYXlCb3gsIEFT
U0VSVF9OT19FWENFUFRJT04pOwogICAgICAgICAgICAgICAgIGN1ZS0+c2V0Rm9udFNpemUobV9m
b250U2l6ZSwgbV92aWRlb0Rpc3BsYXlTaXplLnNpemUoKSwgbV9mb250U2l6ZUlzSW1wb3J0YW50
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIExldCBy
ZWdpb24gYmUgdGhlIFdlYlZUVCByZWdpb24gd2hvc2UgcmVnaW9uIGlkZW50aWZpZXIKICAgICAg
ICAgICAgIC8vIG1hdGNoZXMgdGhlIHRleHQgdHJhY2sgY3VlIHJlZ2lvbiBpZGVudGlmaWVyIG9m
IGN1ZS4KLSAgICAgICAgICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gcmVnaW9uTm9kZSA9IHJl
Z2lvbi0+Z2V0RGlzcGxheVRyZWUoKTsKKyAgICAgICAgICAgIFJlZjxIVE1MRGl2RWxlbWVudD4g
cmVnaW9uTm9kZSA9IHJlZ2lvbi0+Z2V0RGlzcGxheVRyZWUoKTsKIAogICAgICAgICAgICAgLy8g
QXBwZW5kIHRoZSByZWdpb24gdG8gdGhlIHZpZXdwb3J0LCBpZiBpdCB3YXMgbm90IGFscmVhZHku
Ci0gICAgICAgICAgICBpZiAoIWNvbnRhaW5zKHJlZ2lvbk5vZGUuZ2V0KCkpKQorICAgICAgICAg
ICAgaWYgKCFjb250YWlucyhyZWdpb25Ob2RlLnB0cigpKSkKICAgICAgICAgICAgICAgICBhcHBl
bmRDaGlsZChyZWdpb24tPmdldERpc3BsYXlUcmVlKCkpOwogCiAgICAgICAgICAgICByZWdpb24t
PmFwcGVuZFRleHRUcmFja0N1ZUJveChkaXNwbGF5Qm94KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvTWVkaWFDb250cm9scy5jcHAKaW5kZXggM2RkNmRlODZkYTFmY2NkMWZlMWEwNjA4
NTNkNDcxMjNhNGE3MGQ5OC4uOWRmOTk4ZjFhOTg3YmM5MmZmNzg4NGQ1NTMzMTg2MmExNWNiOWIy
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5jcHAKQEAg
LTM4MCwxNCArMzgwLDE0IEBAIHZvaWQgTWVkaWFDb250cm9sczo6Y3JlYXRlVGV4dFRyYWNrRGlz
cGxheSgpCiAgICAgaWYgKG1fdGV4dERpc3BsYXlDb250YWluZXIpCiAgICAgICAgIHJldHVybjsK
IAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50PiB0ZXh0
RGlzcGxheUNvbnRhaW5lciA9IE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6
OmNyZWF0ZShkb2N1bWVudCgpKTsKLSAgICBtX3RleHREaXNwbGF5Q29udGFpbmVyID0gdGV4dERp
c3BsYXlDb250YWluZXIuZ2V0KCk7CisgICAgUmVmPE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRh
aW5lckVsZW1lbnQ+IHRleHREaXNwbGF5Q29udGFpbmVyID0gTWVkaWFDb250cm9sVGV4dFRyYWNr
Q29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOworICAgIG1fdGV4dERpc3BsYXlD
b250YWluZXIgPSB0ZXh0RGlzcGxheUNvbnRhaW5lci5wdHIoKTsKIAogICAgIGlmIChtX21lZGlh
Q29udHJvbGxlcikKICAgICAgICAgbV90ZXh0RGlzcGxheUNvbnRhaW5lci0+c2V0TWVkaWFDb250
cm9sbGVyKG1fbWVkaWFDb250cm9sbGVyKTsKIAogICAgIC8vIEluc2VydCBpdCBiZWZvcmUgdGhl
IGZpcnN0IGNvbnRyb2xsZXIgZWxlbWVudCBzbyBpdCBhbHdheXMgZGlzcGxheXMgYmVoaW5kIHRo
ZSBjb250cm9scy4KLSAgICBpbnNlcnRCZWZvcmUodGV4dERpc3BsYXlDb250YWluZXIucmVsZWFz
ZSgpLCBtX3BhbmVsLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBpbnNlcnRCZWZvcmUoV1RGOjpt
b3ZlKHRleHREaXNwbGF5Q29udGFpbmVyKSwgbV9wYW5lbCwgSUdOT1JFX0VYQ0VQVElPTik7CiB9
CiAKIHZvaWQgTWVkaWFDb250cm9sczo6c2hvd1RleHRUcmFja0Rpc3BsYXkoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0FwcGxlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNBcHBsZS5jcHAKaW5kZXggOGZk
YmEwZDAzNDg1MDNhMmE2ZThlMGQwZTg2NDdlOTNmOTY2NGY4My4uMDkyNTZkNWI0ZWRhN2M4Zjk2
MzllYmUyOTcyYTc4ZjA4YTI2ZDhmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sc0FwcGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xzQXBwbGUuY3BwCkBAIC02MywxNjUgKzYzLDE2NSBAQCBQYXNzUmVm
UHRyPE1lZGlhQ29udHJvbHM+IE1lZGlhQ29udHJvbHM6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1l
bnQpCiBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbHNBcHBsZT4gTWVkaWFDb250cm9sc0FwcGxlOjpj
cmVhdGVDb250cm9scyhEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgaWYgKCFkb2N1bWVudC5w
YWdlKCkpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAg
IFJlZlB0cjxNZWRpYUNvbnRyb2xzQXBwbGU+IGNvbnRyb2xzID0gYWRvcHRSZWYobmV3IE1lZGlh
Q29udHJvbHNBcHBsZShkb2N1bWVudCkpOwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVs
RWxlbWVudD4gcGFuZWwgPSBNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCk7CisgICAgUmVmPE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudD4gcGFuZWwgPSBNZWRpYUNvbnRy
b2xQYW5lbEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAKICAgICBFeGNlcHRpb25Db2RlIGVj
OwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ+IHJld2luZEJ1
dHRvbiA9IE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7
Ci0gICAgY29udHJvbHMtPm1fcmV3aW5kQnV0dG9uID0gcmV3aW5kQnV0dG9uLmdldCgpOwotICAg
IHBhbmVsLT5hcHBlbmRDaGlsZChyZXdpbmRCdXR0b24ucmVsZWFzZSgpLCBlYyk7CisgICAgUmVm
PE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ+IHJld2luZEJ1dHRvbiA9IE1lZGlhQ29u
dHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgY29udHJvbHMt
Pm1fcmV3aW5kQnV0dG9uID0gcmV3aW5kQnV0dG9uLnB0cigpOworICAgIHBhbmVsLT5hcHBlbmRD
aGlsZChXVEY6Om1vdmUocmV3aW5kQnV0dG9uKSwgZWMpOwogICAgIGlmIChlYykKLSAgICAgICAg
cmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgUmVmUHRyPE1lZGlhQ29u
dHJvbFBsYXlCdXR0b25FbGVtZW50PiBwbGF5QnV0dG9uID0gTWVkaWFDb250cm9sUGxheUJ1dHRv
bkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJvbHMtPm1fcGxheUJ1dHRvbiA9
IHBsYXlCdXR0b24uZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKHBsYXlCdXR0b24ucmVs
ZWFzZSgpLCBlYyk7CisgICAgUmVmPE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50PiBwbGF5
QnV0dG9uID0gTWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7
CisgICAgY29udHJvbHMtPm1fcGxheUJ1dHRvbiA9IHBsYXlCdXR0b24ucHRyKCk7CisgICAgcGFu
ZWwtPmFwcGVuZENoaWxkKFdURjo6bW92ZShwbGF5QnV0dG9uKSwgZWMpOwogICAgIGlmIChlYykK
LSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgUmVmUHRy
PE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50PiByZXR1cm5Ub1JlYWx0
aW1lQnV0dG9uID0gTWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJvbHMtPm1fcmV0dXJuVG9SZWFsVGltZUJ1dHRvbiA9
IHJldHVyblRvUmVhbHRpbWVCdXR0b24uZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKHJl
dHVyblRvUmVhbHRpbWVCdXR0b24ucmVsZWFzZSgpLCBlYyk7CisgICAgUmVmPE1lZGlhQ29udHJv
bFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50PiByZXR1cm5Ub1JlYWx0aW1lQnV0dG9uID0g
TWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCk7CisgICAgY29udHJvbHMtPm1fcmV0dXJuVG9SZWFsVGltZUJ1dHRvbiA9IHJldHVyblRvUmVh
bHRpbWVCdXR0b24ucHRyKCk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdURjo6bW92ZShyZXR1
cm5Ub1JlYWx0aW1lQnV0dG9uKSwgZWMpOwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgaWYgKGRvY3VtZW50LnBhZ2UoKS0+dGhl
bWUoKS51c2VzTWVkaWFDb250cm9sU3RhdHVzRGlzcGxheSgpKSB7Ci0gICAgICAgIFJlZlB0cjxN
ZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudD4gc3RhdHVzRGlzcGxheSA9IE1lZGlhQ29u
dHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgICAgICBjb250
cm9scy0+bV9zdGF0dXNEaXNwbGF5ID0gc3RhdHVzRGlzcGxheS5nZXQoKTsKLSAgICAgICAgcGFu
ZWwtPmFwcGVuZENoaWxkKHN0YXR1c0Rpc3BsYXkucmVsZWFzZSgpLCBlYyk7CisgICAgICAgIFJl
ZjxNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudD4gc3RhdHVzRGlzcGxheSA9IE1lZGlh
Q29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgICAgICBj
b250cm9scy0+bV9zdGF0dXNEaXNwbGF5ID0gc3RhdHVzRGlzcGxheS5wdHIoKTsKKyAgICAgICAg
cGFuZWwtPmFwcGVuZENoaWxkKFdURjo6bW92ZShzdGF0dXNEaXNwbGF5KSwgZWMpOwogICAgICAg
ICBpZiAoZWMpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIH0KIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVs
ZW1lbnQ+IHRpbWVsaW5lQ29udGFpbmVyID0gTWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIFJlZjxNZWRpYUNvbnRyb2xUaW1lbGluZUNv
bnRhaW5lckVsZW1lbnQ+IHRpbWVsaW5lQ29udGFpbmVyID0gTWVkaWFDb250cm9sVGltZWxpbmVD
b250YWluZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogCi0gICAgUmVmUHRyPE1lZGlhQ29u
dHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ+IGN1cnJlbnRUaW1lRGlzcGxheSA9IE1lZGlh
Q29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAg
Y29udHJvbHMtPm1fY3VycmVudFRpbWVEaXNwbGF5ID0gY3VycmVudFRpbWVEaXNwbGF5LmdldCgp
OwotICAgIHRpbWVsaW5lQ29udGFpbmVyLT5hcHBlbmRDaGlsZChjdXJyZW50VGltZURpc3BsYXku
cmVsZWFzZSgpLCBlYyk7CisgICAgUmVmPE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVs
ZW1lbnQ+IGN1cnJlbnRUaW1lRGlzcGxheSA9IE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxh
eUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgY29udHJvbHMtPm1fY3VycmVudFRpbWVE
aXNwbGF5ID0gY3VycmVudFRpbWVEaXNwbGF5LnB0cigpOworICAgIHRpbWVsaW5lQ29udGFpbmVy
LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoY3VycmVudFRpbWVEaXNwbGF5KSwgZWMpOwogICAgIGlm
IChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAg
UmVmUHRyPE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudD4gdGltZWxpbmUgPSBNZWRpYUNvbnRy
b2xUaW1lbGluZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOwotICAg
IGNvbnRyb2xzLT5tX3RpbWVsaW5lID0gdGltZWxpbmUuZ2V0KCk7Ci0gICAgdGltZWxpbmVDb250
YWluZXItPmFwcGVuZENoaWxkKHRpbWVsaW5lLnJlbGVhc2UoKSwgZWMpOworICAgIFJlZjxNZWRp
YUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ+IHRpbWVsaW5lID0gTWVkaWFDb250cm9sVGltZWxpbmVF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKKyAgICBjb250cm9scy0+
bV90aW1lbGluZSA9IHRpbWVsaW5lLnB0cigpOworICAgIHRpbWVsaW5lQ29udGFpbmVyLT5hcHBl
bmRDaGlsZChXVEY6Om1vdmUodGltZWxpbmUpLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAgICBy
ZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBSZWZQdHI8TWVkaWFDb250
cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50PiB0aW1lUmVtYWluaW5nRGlzcGxheSA9IE1l
ZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsK
LSAgICBjb250cm9scy0+bV90aW1lUmVtYWluaW5nRGlzcGxheSA9IHRpbWVSZW1haW5pbmdEaXNw
bGF5LmdldCgpOwotICAgIHRpbWVsaW5lQ29udGFpbmVyLT5hcHBlbmRDaGlsZCh0aW1lUmVtYWlu
aW5nRGlzcGxheS5yZWxlYXNlKCksIGVjKTsKKyAgICBSZWY8TWVkaWFDb250cm9sVGltZVJlbWFp
bmluZ0Rpc3BsYXlFbGVtZW50PiB0aW1lUmVtYWluaW5nRGlzcGxheSA9IE1lZGlhQ29udHJvbFRp
bWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBjb250cm9s
cy0+bV90aW1lUmVtYWluaW5nRGlzcGxheSA9IHRpbWVSZW1haW5pbmdEaXNwbGF5LnB0cigpOwor
ICAgIHRpbWVsaW5lQ29udGFpbmVyLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUodGltZVJlbWFpbmlu
Z0Rpc3BsYXkpLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKLSAgICBjb250cm9scy0+bV90aW1lbGluZUNvbnRhaW5lciA9IHRp
bWVsaW5lQ29udGFpbmVyLmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZCh0aW1lbGluZUNv
bnRhaW5lci5yZWxlYXNlKCksIGVjKTsKKyAgICBjb250cm9scy0+bV90aW1lbGluZUNvbnRhaW5l
ciA9IHRpbWVsaW5lQ29udGFpbmVyLnB0cigpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChXVEY6
Om1vdmUodGltZWxpbmVDb250YWluZXIpLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1
cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBGSVhNRTogT25seSBjcmVh
dGUgd2hlbiBuZWVkZWQgPGh0dHA6Ly93ZWJraXQub3JnL2IvNTcxNjM+Ci0gICAgUmVmUHRyPE1l
ZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudD4gc2Vla0JhY2tCdXR0b24gPSBNZWRpYUNv
bnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJv
bHMtPm1fc2Vla0JhY2tCdXR0b24gPSBzZWVrQmFja0J1dHRvbi5nZXQoKTsKLSAgICBwYW5lbC0+
YXBwZW5kQ2hpbGQoc2Vla0JhY2tCdXR0b24ucmVsZWFzZSgpLCBlYyk7CisgICAgUmVmPE1lZGlh
Q29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudD4gc2Vla0JhY2tCdXR0b24gPSBNZWRpYUNvbnRy
b2xTZWVrQmFja0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgY29udHJvbHMt
Pm1fc2Vla0JhY2tCdXR0b24gPSBzZWVrQmFja0J1dHRvbi5wdHIoKTsKKyAgICBwYW5lbC0+YXBw
ZW5kQ2hpbGQoV1RGOjptb3ZlKHNlZWtCYWNrQnV0dG9uKSwgZWMpOwogICAgIGlmIChlYykKLSAg
ICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgLy8gRklYTUU6
IE9ubHkgY3JlYXRlIHdoZW4gbmVlZGVkIDxodHRwOi8vd2Via2l0Lm9yZy9iLzU3MTYzPgotICAg
IFJlZlB0cjxNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQ+IHNlZWtGb3J3YXJk
QnV0dG9uID0gTWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQpOwotICAgIGNvbnRyb2xzLT5tX3NlZWtGb3J3YXJkQnV0dG9uID0gc2Vla0ZvcndhcmRC
dXR0b24uZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKHNlZWtGb3J3YXJkQnV0dG9uLnJl
bGVhc2UoKSwgZWMpOworICAgIFJlZjxNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1l
bnQ+IHNlZWtGb3J3YXJkQnV0dG9uID0gTWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNvbnRyb2xzLT5tX3NlZWtGb3J3YXJkQnV0dG9u
ID0gc2Vla0ZvcndhcmRCdXR0b24ucHRyKCk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdURjo6
bW92ZShzZWVrRm9yd2FyZEJ1dHRvbiksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVy
biAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGlmIChkb2N1bWVudC5wYWdlKCkt
PnRoZW1lKCkuc3VwcG9ydHNDbG9zZWRDYXB0aW9uaW5nKCkpIHsKLSAgICAgICAgUmVmUHRyPE1l
ZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudD4gY2xvc2VkQ2FwdGlvbnND
b250YWluZXIgPSBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCk7CisgICAgICAgIFJlZjxNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0Nv
bnRhaW5lckVsZW1lbnQ+IGNsb3NlZENhcHRpb25zQ29udGFpbmVyID0gTWVkaWFDb250cm9sQ2xv
c2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogCi0gICAgICAg
IFJlZlB0cjxNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ+IGNsb3Nl
ZENhcHRpb25zVHJhY2tMaXN0ID0gTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKLSAgICAgICAgY29udHJv
bHMtPm1fY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QgPSBjbG9zZWRDYXB0aW9uc1RyYWNrTGlzdC5n
ZXQoKTsKLSAgICAgICAgY2xvc2VkQ2FwdGlvbnNDb250YWluZXItPmFwcGVuZENoaWxkKGNsb3Nl
ZENhcHRpb25zVHJhY2tMaXN0LnJlbGVhc2UoKSwgZWMpOworICAgICAgICBSZWY8TWVkaWFDb250
cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50PiBjbG9zZWRDYXB0aW9uc1RyYWNrTGlz
dCA9IE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50LCBjb250cm9scy5nZXQoKSk7CisgICAgICAgIGNvbnRyb2xzLT5tX2Nsb3NlZENhcHRp
b25zVHJhY2tMaXN0ID0gY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QucHRyKCk7CisgICAgICAgIGNs
b3NlZENhcHRpb25zQ29udGFpbmVyLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoY2xvc2VkQ2FwdGlv
bnNUcmFja0xpc3QpLCBlYyk7CiAgICAgICAgIGlmIChlYykKLSAgICAgICAgICAgIHJldHVybiAw
OworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICAgICAgUmVmUHRyPE1lZGlhQ29u
dHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudD4gdG9nZ2xlQ2xvc2VkQ2FwdGlv
bnNCdXR0b24gPSBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6
OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOwotICAgICAgICBjb250cm9scy0+bV90
b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbiA9IHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uLmdl
dCgpOwotICAgICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQodG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0
b24ucmVsZWFzZSgpLCBlYyk7CisgICAgICAgIFJlZjxNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRD
YXB0aW9uc0J1dHRvbkVsZW1lbnQ+IHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uID0gTWVkaWFD
b250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQs
IGNvbnRyb2xzLmdldCgpKTsKKyAgICAgICAgY29udHJvbHMtPm1fdG9nZ2xlQ2xvc2VkQ2FwdGlv
bnNCdXR0b24gPSB0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbi5wdHIoKTsKKyAgICAgICAgcGFu
ZWwtPmFwcGVuZENoaWxkKFdURjo6bW92ZSh0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbiksIGVj
KTsKICAgICAgICAgaWYgKGVjKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICBjb250cm9scy0+bV9jbG9zZWRDYXB0aW9uc0NvbnRh
aW5lciA9IGNsb3NlZENhcHRpb25zQ29udGFpbmVyLmdldCgpOwotICAgICAgICBjb250cm9scy0+
YXBwZW5kQ2hpbGQoY2xvc2VkQ2FwdGlvbnNDb250YWluZXIucmVsZWFzZSgpLCBlYyk7CisgICAg
ICAgIGNvbnRyb2xzLT5tX2Nsb3NlZENhcHRpb25zQ29udGFpbmVyID0gY2xvc2VkQ2FwdGlvbnND
b250YWluZXIucHRyKCk7CisgICAgICAgIGNvbnRyb2xzLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUo
Y2xvc2VkQ2FwdGlvbnNDb250YWluZXIpLCBlYyk7CiAgICAgICAgIGlmIChlYykKLSAgICAgICAg
ICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAgICAg
Ly8gRklYTUU6IE9ubHkgY3JlYXRlIHdoZW4gbmVlZGVkIDxodHRwOi8vd2Via2l0Lm9yZy9iLzU3
MTYzPgotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudD4gZnVs
bFNjcmVlbkJ1dHRvbiA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQpOwotICAgIGNvbnRyb2xzLT5tX2Z1bGxTY3JlZW5CdXR0b24gPSBmdWxsU2Ny
ZWVuQnV0dG9uLmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChmdWxsU2NyZWVuQnV0dG9u
LnJlbGVhc2UoKSwgZWMpOworICAgIFJlZjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxl
bWVudD4gZnVsbFNjcmVlbkJ1dHRvbiA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNvbnRyb2xzLT5tX2Z1bGxTY3JlZW5CdXR0b24g
PSBmdWxsU2NyZWVuQnV0dG9uLnB0cigpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChXVEY6Om1v
dmUoZnVsbFNjcmVlbkJ1dHRvbiksIGVjKTsKIAogICAgIC8vIFRoZSBtdXRlIGJ1dHRvbiBhbmQg
dGhlIHNsaWRlciBlbGVtZW50IHNob3VsZCBiZSBpbiB0aGUgc2FtZSBkaXYuCi0gICAgUmVmUHRy
PEhUTUxEaXZFbGVtZW50PiBwYW5lbFZvbHVtZUNvbnRyb2xDb250YWluZXIgPSBIVE1MRGl2RWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBSZWY8SFRNTERpdkVsZW1lbnQ+IHBhbmVsVm9s
dW1lQ29udHJvbENvbnRhaW5lciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwog
CiAgICAgaWYgKGRvY3VtZW50LnBhZ2UoKS0+dGhlbWUoKS51c2VzTWVkaWFDb250cm9sVm9sdW1l
U2xpZGVyKCkpIHsKLSAgICAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRh
aW5lckVsZW1lbnQ+IHZvbHVtZVNsaWRlckNvbnRhaW5lciA9IE1lZGlhQ29udHJvbFZvbHVtZVNs
aWRlckNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgICAgIFJlZjxNZWRp
YUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50PiB2b2x1bWVTbGlkZXJDb250YWlu
ZXIgPSBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQpOwogCi0gICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVs
ZW1lbnQ+IHNsaWRlciA9IE1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xpZGVyRWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50KTsKLSAgICAgICAgY29udHJvbHMtPm1fdm9sdW1lU2xpZGVyID0gc2xpZGVy
LmdldCgpOwotICAgICAgICB2b2x1bWVTbGlkZXJDb250YWluZXItPmFwcGVuZENoaWxkKHNsaWRl
ci5yZWxlYXNlKCksIGVjKTsKKyAgICAgICAgUmVmPE1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xp
ZGVyRWxlbWVudD4gc2xpZGVyID0gTWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQpOworICAgICAgICBjb250cm9scy0+bV92b2x1bWVTbGlkZXIgPSBz
bGlkZXIucHRyKCk7CisgICAgICAgIHZvbHVtZVNsaWRlckNvbnRhaW5lci0+YXBwZW5kQ2hpbGQo
V1RGOjptb3ZlKHNsaWRlciksIGVjKTsKICAgICAgICAgaWYgKGVjKQotICAgICAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgICAgICAvLyBUaGlzIGlz
IGEgZHVwbGljYXRlIG11dGUgYnV0dG9uLCB3aGljaCBpcyB2aXNpYmxlIGluIHNvbWUgcG9ydHMg
YXQgdGhlIGJvdHRvbSBvZiB0aGUgdm9sdW1lIGJhci4KICAgICAgICAgLy8gSXQncyBpbXBvcnRh
bnQgb25seSB3aGVuIHRoZSB2b2x1bWUgYmFyIGlzIGRpc3BsYXllZCBiZWxvdyB0aGUgY29udHJv
bHMuCi0gICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxl
bWVudD4gdm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbiA9IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11
dGVCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgICAgICBjb250cm9scy0+bV92
b2x1bWVTbGlkZXJNdXRlQnV0dG9uID0gdm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbi5nZXQoKTsKLSAg
ICAgICAgdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5hcHBlbmRDaGlsZCh2b2x1bWVTbGlkZXJNdXRl
QnV0dG9uLnJlbGVhc2UoKSwgZWMpOworICAgICAgICBSZWY8TWVkaWFDb250cm9sVm9sdW1lU2xp
ZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ+IHZvbHVtZVNsaWRlck11dGVCdXR0b24gPSBNZWRpYUNvbnRy
b2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICAg
ICAgY29udHJvbHMtPm1fdm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbiA9IHZvbHVtZVNsaWRlck11dGVC
dXR0b24ucHRyKCk7CisgICAgICAgIHZvbHVtZVNsaWRlckNvbnRhaW5lci0+YXBwZW5kQ2hpbGQo
V1RGOjptb3ZlKHZvbHVtZVNsaWRlck11dGVCdXR0b24pLCBlYyk7CiAKICAgICAgICAgaWYgKGVj
KQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAot
ICAgICAgICBjb250cm9scy0+bV92b2x1bWVTbGlkZXJDb250YWluZXIgPSB2b2x1bWVTbGlkZXJD
b250YWluZXIuZ2V0KCk7Ci0gICAgICAgIHBhbmVsVm9sdW1lQ29udHJvbENvbnRhaW5lci0+YXBw
ZW5kQ2hpbGQodm9sdW1lU2xpZGVyQ29udGFpbmVyLnJlbGVhc2UoKSwgZWMpOworICAgICAgICBj
b250cm9scy0+bV92b2x1bWVTbGlkZXJDb250YWluZXIgPSB2b2x1bWVTbGlkZXJDb250YWluZXIu
cHRyKCk7CisgICAgICAgIHBhbmVsVm9sdW1lQ29udHJvbENvbnRhaW5lci0+YXBwZW5kQ2hpbGQo
V1RGOjptb3ZlKHZvbHVtZVNsaWRlckNvbnRhaW5lciksIGVjKTsKICAgICAgICAgaWYgKGVjKQot
ICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9
CiAKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudD4gcGFuZWxN
dXRlQnV0dG9uID0gTWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50LCBjb250cm9scy5nZXQoKSk7Ci0gICAgY29udHJvbHMtPm1fcGFuZWxNdXRlQnV0dG9u
ID0gcGFuZWxNdXRlQnV0dG9uLmdldCgpOwotICAgIHBhbmVsVm9sdW1lQ29udHJvbENvbnRhaW5l
ci0+YXBwZW5kQ2hpbGQocGFuZWxNdXRlQnV0dG9uLnJlbGVhc2UoKSwgZWMpOworICAgIFJlZjxN
ZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50PiBwYW5lbE11dGVCdXR0b24gPSBNZWRp
YUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xz
LmdldCgpKTsKKyAgICBjb250cm9scy0+bV9wYW5lbE11dGVCdXR0b24gPSBwYW5lbE11dGVCdXR0
b24ucHRyKCk7CisgICAgcGFuZWxWb2x1bWVDb250cm9sQ29udGFpbmVyLT5hcHBlbmRDaGlsZChX
VEY6Om1vdmUocGFuZWxNdXRlQnV0dG9uKSwgZWMpOwogICAgIGlmIChlYykKLSAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgcGFuZWwtPmFwcGVuZENoaWxk
KHBhbmVsVm9sdW1lQ29udHJvbENvbnRhaW5lciwgZWMpOworICAgIHBhbmVsLT5hcHBlbmRDaGls
ZChXVEY6Om1vdmUocGFuZWxWb2x1bWVDb250cm9sQ29udGFpbmVyKSwgZWMpOwogICAgIGlmIChl
YykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgLy8g
RklYTUU6IE9ubHkgY3JlYXRlIHdoZW4gbmVlZGVkIDxodHRwOi8vd2Via2l0Lm9yZy9iLzU3MTYz
PgotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVu
dD4gZnVsbFNjcmVlbk1pblZvbHVtZUJ1dHRvbiA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1
bWVNaW5CdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNvbnRyb2xzLT5tX2Z1
bGxTY3JlZW5NaW5Wb2x1bWVCdXR0b24gPSBmdWxsU2NyZWVuTWluVm9sdW1lQnV0dG9uLmdldCgp
OwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChmdWxsU2NyZWVuTWluVm9sdW1lQnV0dG9uLnJlbGVh
c2UoKSwgZWMpOworICAgIFJlZjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9u
RWxlbWVudD4gZnVsbFNjcmVlbk1pblZvbHVtZUJ1dHRvbiA9IE1lZGlhQ29udHJvbEZ1bGxzY3Jl
ZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNvbnRyb2xz
LT5tX2Z1bGxTY3JlZW5NaW5Wb2x1bWVCdXR0b24gPSBmdWxsU2NyZWVuTWluVm9sdW1lQnV0dG9u
LnB0cigpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoZnVsbFNjcmVlbk1pblZv
bHVtZUJ1dHRvbiksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9s
dW1lU2xpZGVyRWxlbWVudD4gZnVsbFNjcmVlblZvbHVtZVNsaWRlciA9IE1lZGlhQ29udHJvbEZ1
bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNvbnRy
b2xzLT5tX2Z1bGxTY3JlZW5Wb2x1bWVTbGlkZXIgPSBmdWxsU2NyZWVuVm9sdW1lU2xpZGVyLmdl
dCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChmdWxsU2NyZWVuVm9sdW1lU2xpZGVyLnJlbGVh
c2UoKSwgZWMpOworICAgIFJlZjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxl
bWVudD4gZnVsbFNjcmVlblZvbHVtZVNsaWRlciA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1
bWVTbGlkZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNvbnRyb2xzLT5tX2Z1bGxT
Y3JlZW5Wb2x1bWVTbGlkZXIgPSBmdWxsU2NyZWVuVm9sdW1lU2xpZGVyLnB0cigpOworICAgIHBh
bmVsLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoZnVsbFNjcmVlblZvbHVtZVNsaWRlciksIGVjKTsK
ICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVu
dD4gZnVsbFNjcmVlbk1heFZvbHVtZUJ1dHRvbiA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1
bWVNYXhCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNvbnRyb2xzLT5tX2Z1
bGxTY3JlZW5NYXhWb2x1bWVCdXR0b24gPSBmdWxsU2NyZWVuTWF4Vm9sdW1lQnV0dG9uLmdldCgp
OwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChmdWxsU2NyZWVuTWF4Vm9sdW1lQnV0dG9uLnJlbGVh
c2UoKSwgZWMpOworICAgIFJlZjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9u
RWxlbWVudD4gZnVsbFNjcmVlbk1heFZvbHVtZUJ1dHRvbiA9IE1lZGlhQ29udHJvbEZ1bGxzY3Jl
ZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNvbnRyb2xz
LT5tX2Z1bGxTY3JlZW5NYXhWb2x1bWVCdXR0b24gPSBmdWxsU2NyZWVuTWF4Vm9sdW1lQnV0dG9u
LnB0cigpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoZnVsbFNjcmVlbk1heFZv
bHVtZUJ1dHRvbiksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGNvbnRyb2xzLT5tX3BhbmVsID0gcGFuZWwuZ2V0KCk7
Ci0gICAgY29udHJvbHMtPmFwcGVuZENoaWxkKHBhbmVsLnJlbGVhc2UoKSwgZWMpOworICAgIGNv
bnRyb2xzLT5tX3BhbmVsID0gcGFuZWwucHRyKCk7CisgICAgY29udHJvbHMtPmFwcGVuZENoaWxk
KFdURjo6bW92ZShwYW5lbCksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIHJldHVybiBjb250cm9scy5yZWxlYXNlKCk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50
LmNwcAppbmRleCAwYTFiYjgzZmIxOWM3NTU2ZGFjZDE2Y2ZkZGM3ODY5ODRiZDUxNzgzLi45ZGRk
NTUyYmQ4Y2VlOTZjNjFmZWFiODFmZTNkNDZiNmUwMGRlOWI3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKQEAgLTYxMSw3ICs2MTEs
NyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFNsaWRlclRodW1iRWxlbWVudDo6c2hhZG93UHNldWRv
SWQoKSBjb25zdAogICAgIH0KIH0KIAotUmVmUHRyPEVsZW1lbnQ+IFNsaWRlclRodW1iRWxlbWVu
dDo6Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYgdGFy
Z2V0RG9jdW1lbnQpCitSZWY8RWxlbWVudD4gU2xpZGVyVGh1bWJFbGVtZW50OjpjbG9uZUVsZW1l
bnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCkK
IHsKICAgICByZXR1cm4gY3JlYXRlKHRhcmdldERvY3VtZW50KTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmgKaW5kZXggNDhlY2Q1NTI2ZDBi
MGE1NzgxNjBmNzJkODI2MmIyZjE3YmZlNmFiOC4uY2YyZjg1YTdlZGRmNzk0ZTc4NWRmNzZiYWMw
OWY5Mzg2NTVmZDIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xp
ZGVyVGh1bWJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVy
VGh1bWJFbGVtZW50LmgKQEAgLTYyLDcgKzYyLDcgQEAgcHJpdmF0ZToKICAgICBTbGlkZXJUaHVt
YkVsZW1lbnQoRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZWY8UmVuZGVyU3R5bGU+JiYsIGNvbnN0IFJlbmRl
clRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVmUHRyPEVsZW1lbnQ+IGNs
b25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIFJlZjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRl
c0FuZENoaWxkcmVuKERvY3VtZW50Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzRGlz
YWJsZWRGb3JtQ29udHJvbCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBtYXRj
aGVzUmVhZFdyaXRlUHNldWRvQ2xhc3MoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIEVs
ZW1lbnQqIGZvY3VzRGVsZWdhdGUoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5j
cHAKaW5kZXggYTQ0YTVkZTA2OTJhMTZiM2I0OWRiODc0MTE5NWJhYWFkZTdmNTk2Yy4uYzQ0YzUx
ODgyY2I4MTg3ODYxYjY2YjU2Y2ZjNWE5YzIyOGUyYWVkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNSb290RWxlbWVu
dE1hYy5jcHAKQEAgLTg1LDEyICs4NSwxMyBAQCBSZWZQdHI8SW1hZ2VDb250cm9sc1Jvb3RFbGVt
ZW50PiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQ6Om1heWJlQ3JlYXRlKERvY3VtZW50JgogICAg
IGlmICghZG9jdW1lbnQucGFnZSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIFJl
ZlB0cjxJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWM+IGNvbnRyb2xzID0gYWRvcHRSZWYoKm5l
dyBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMoZG9jdW1lbnQpKTsKKyAgICBSZWY8SW1hZ2VD
b250cm9sc1Jvb3RFbGVtZW50TWFjPiBjb250cm9scyA9IGFkb3B0UmVmKCpuZXcgSW1hZ2VDb250
cm9sc1Jvb3RFbGVtZW50TWFjKGRvY3VtZW50KSk7CiAgICAgY29udHJvbHMtPnNldEF0dHJpYnV0
ZShIVE1MTmFtZXM6OmNsYXNzQXR0ciwgIngtd2Via2l0LWltYWdlLWNvbnRyb2xzIik7CiAKLSAg
ICBjb250cm9scy0+YXBwZW5kQ2hpbGQoSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWM6Om1h
eWJlQ3JlYXRlKGRvY3VtZW50KSk7CisgICAgaWYgKFJlZlB0cjxJbWFnZUNvbnRyb2xzQnV0dG9u
RWxlbWVudE1hYz4gYnV0dG9uID0gSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWM6Om1heWJl
Q3JlYXRlKGRvY3VtZW50KSkKKyAgICAgICAgY29udHJvbHMtPmFwcGVuZENoaWxkKGJ1dHRvbi5y
ZWxlYXNlTm9uTnVsbCgpKTsKIAotICAgIHJldHVybiBjb250cm9scy5yZWxlYXNlKCk7CisgICAg
cmV0dXJuIFdURjo6bW92ZShjb250cm9scyk7CiB9CiAKIEltYWdlQ29udHJvbHNSb290RWxlbWVu
dE1hYzo6SW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjKERvY3VtZW50JiBkb2N1bWVudCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcAppbmRleCBhOTY5MGQ2Zjk5NjE5ZjM3MDlhNmI4
YTI1ZDZiZmUzMTUzNTBhYWVkLi45ZDZjYTcyZGE4ZDgxNWI3N2YwNTk4ZjhkOWYyMzEyMzliOWY1
Njk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3BwCkBAIC00OTYsNyArNDk2LDcg
QEAgdm9pZCBWVFRDdWU6OmNvcHlXZWJWVFROb2RlVG9ET01UcmVlKENvbnRhaW5lck5vZGUqIHdl
YlZUVE5vZGUsIENvbnRhaW5lck5vZGUqIHAKICAgICAgICAgICAgIGNsb25lZE5vZGUgPSBkb3du
Y2FzdDxXZWJWVFRFbGVtZW50Pigqbm9kZSkuY3JlYXRlRXF1aXZhbGVudEhUTUxFbGVtZW50KG93
bmVyRG9jdW1lbnQoKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGNsb25lZE5vZGUgPSBu
b2RlLT5jbG9uZU5vZGUoZmFsc2UpOwotICAgICAgICBwYXJlbnQtPmFwcGVuZENoaWxkKGNsb25l
ZE5vZGUsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAgICBwYXJlbnQtPmFwcGVuZENoaWxk
KCpjbG9uZWROb2RlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICAgICAgaWYgKGlzPENvbnRh
aW5lck5vZGU+KCpub2RlKSkKICAgICAgICAgICAgIGNvcHlXZWJWVFROb2RlVG9ET01UcmVlKGRv
d25jYXN0PENvbnRhaW5lck5vZGU+KG5vZGUpLCBkb3duY2FzdDxDb250YWluZXJOb2RlPihjbG9u
ZWROb2RlLmdldCgpKSk7CiAgICAgfQpAQCAtNTE4LDEwICs1MTgsMTAgQEAgUGFzc1JlZlB0cjxE
b2N1bWVudEZyYWdtZW50PiBWVFRDdWU6OmNyZWF0ZUN1ZVJlbmRlcmluZ1RyZWUoKQogICAgIFJl
ZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjbG9uZWRGcmFnbWVudDsKICAgICBjcmVhdGVXZWJWVFRO
b2RlVHJlZSgpOwogICAgIGlmICghbV93ZWJWVFROb2RlVHJlZSkKLSAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgY2xvbmVkRnJhZ21lbnQgPSBEb2N1bWVu
dEZyYWdtZW50OjpjcmVhdGUob3duZXJEb2N1bWVudCgpKTsKLSAgICBtX3dlYlZUVE5vZGVUcmVl
LT5jbG9uZUNoaWxkTm9kZXMoY2xvbmVkRnJhZ21lbnQuZ2V0KCkpOworICAgIG1fd2ViVlRUTm9k
ZVRyZWUtPmNsb25lQ2hpbGROb2RlcygqY2xvbmVkRnJhZ21lbnQpOwogICAgIHJldHVybiBjbG9u
ZWRGcmFnbWVudC5yZWxlYXNlKCk7CiB9CiAKQEAgLTc4NSw3ICs3ODUsNyBAQCB2b2lkIFZUVEN1
ZTo6dXBkYXRlRGlzcGxheVRyZWUoY29uc3QgTWVkaWFUaW1lJiBtb3ZpZVRpbWUpCiAgICAgICAg
IHJldHVybjsKIAogICAgIG1hcmtGdXR1cmVBbmRQYXN0Tm9kZXMocmVmZXJlbmNlVHJlZS5nZXQo
KSwgc3RhcnRNZWRpYVRpbWUoKSwgbW92aWVUaW1lKTsKLSAgICBtX2N1ZUhpZ2hsaWdodEJveC0+
YXBwZW5kQ2hpbGQocmVmZXJlbmNlVHJlZSk7CisgICAgbV9jdWVIaWdobGlnaHRCb3gtPmFwcGVu
ZENoaWxkKHJlZmVyZW5jZVRyZWUucmVsZWFzZU5vbk51bGwoKSk7CiB9CiAKIFZUVEN1ZUJveCog
VlRUQ3VlOjpnZXREaXNwbGF5VHJlZShjb25zdCBJbnRTaXplJiB2aWRlb1NpemUsIGludCBmb250
U2l6ZSkKQEAgLTgxMiw4ICs4MTIsOCBAQCBWVFRDdWVCb3gqIFZUVEN1ZTo6Z2V0RGlzcGxheVRy
ZWUoY29uc3QgSW50U2l6ZSYgdmlkZW9TaXplLCBpbnQgZm9udFNpemUpCiAgICAgbV9jdWVIaWdo
bGlnaHRCb3gtPnNldFBzZXVkbyhjdWVTaGFkb3dQc2V1ZG9JZCgpKTsKIAogICAgIG1fY3VlQmFj
a2Ryb3BCb3gtPnNldFBzZXVkbyhjdWVCYWNrZHJvcFNoYWRvd1BzZXVkb0lkKCkpOwotICAgIG1f
Y3VlQmFja2Ryb3BCb3gtPmFwcGVuZENoaWxkKG1fY3VlSGlnaGxpZ2h0Qm94LCBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKLSAgICBkaXNwbGF5VHJlZS0+YXBwZW5kQ2hpbGQobV9jdWVCYWNrZHJvcEJv
eCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgbV9jdWVCYWNrZHJvcEJveC0+YXBwZW5kQ2hp
bGQoKm1fY3VlSGlnaGxpZ2h0Qm94LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBkaXNwbGF5
VHJlZS0+YXBwZW5kQ2hpbGQoKm1fY3VlQmFja2Ryb3BCb3gsIEFTU0VSVF9OT19FWENFUFRJT04p
OwogCiAgICAgLy8gRklYTUUoQlVHIDc5OTE2KTogUnVucyBvZiBjaGlsZHJlbiBvZiBXZWJWVFQg
UnVieSBPYmplY3RzIHRoYXQgYXJlIG5vdAogICAgIC8vIFdlYlZUVCBSdWJ5IFRleHQgT2JqZWN0
cyBtdXN0IGJlIHdyYXBwZWQgaW4gYW5vbnltb3VzIGJveGVzIHdob3NlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1ZUVFJlZ2lvbi5jcHAKaW5kZXggY2NiMzJlMDM5ZDVjNTNhZmVlYzA1MDJiNjVl
MDBhYzFlNmZmZGVmMy4uODU3OTg2OGU5ODFmZmJmMjkxNjYyYjY1NGQ1M2ViOWFkZmJkYmI1MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmNwcApAQCAtMzU0LDcgKzM1NCw3
IEBAIHZvaWQgVlRUUmVnaW9uOjphcHBlbmRUZXh0VHJhY2tDdWVCb3goUGFzc1JlZlB0cjxWVFRD
dWVCb3g+IGRpc3BsYXlCb3gpCiAgICAgaWYgKG1fY3VlQ29udGFpbmVyLT5jb250YWlucyhkaXNw
bGF5Qm94LmdldCgpKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9jdWVDb250YWluZXItPmFw
cGVuZENoaWxkKGRpc3BsYXlCb3gsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIG1fY3VlQ29u
dGFpbmVyLT5hcHBlbmRDaGlsZCgqZGlzcGxheUJveCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAg
ICAgZGlzcGxheUxhc3RUZXh0VHJhY2tDdWVCb3goKTsKIH0KIApAQCAtNDA0LDE0ICs0MDQsMTQg
QEAgdm9pZCBWVFRSZWdpb246OndpbGxSZW1vdmVUZXh0VHJhY2tDdWVCb3goVlRUQ3VlQm94KiBi
b3gpCiAgICAgbV9jdWVDb250YWluZXItPnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVy
dHlUb3AsIG1fY3VycmVudFRvcCwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QWCk7CiB9CiAKLVBh
c3NSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IFZUVFJlZ2lvbjo6Z2V0RGlzcGxheVRyZWUoKQorSFRN
TERpdkVsZW1lbnQmIFZUVFJlZ2lvbjo6Z2V0RGlzcGxheVRyZWUoKQogewogICAgIGlmICghbV9y
ZWdpb25EaXNwbGF5VHJlZSkgewogICAgICAgICBtX3JlZ2lvbkRpc3BsYXlUcmVlID0gSFRNTERp
dkVsZW1lbnQ6OmNyZWF0ZSgqb3duZXJEb2N1bWVudCgpKTsKICAgICAgICAgcHJlcGFyZVJlZ2lv
bkRpc3BsYXlUcmVlKCk7CiAgICAgfQogCi0gICAgcmV0dXJuIG1fcmVnaW9uRGlzcGxheVRyZWU7
CisgICAgcmV0dXJuICptX3JlZ2lvbkRpc3BsYXlUcmVlOwogfQogCiB2b2lkIFZUVFJlZ2lvbjo6
cHJlcGFyZVJlZ2lvbkRpc3BsYXlUcmVlKCkKQEAgLTQ1Myw3ICs0NTMsNyBAQCB2b2lkIFZUVFJl
Z2lvbjo6cHJlcGFyZVJlZ2lvbkRpc3BsYXlUcmVlKCkKICAgICBtX2N1ZUNvbnRhaW5lci0+c2V0
SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eVRvcCwgMC4wZiwgQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU19QWCk7CiAKICAgICBtX2N1ZUNvbnRhaW5lci0+c2V0UHNldWRvKHRleHRUcmFja0N1
ZUNvbnRhaW5lclNoYWRvd1BzZXVkb0lkKCkpOwotICAgIG1fcmVnaW9uRGlzcGxheVRyZWUtPmFw
cGVuZENoaWxkKG1fY3VlQ29udGFpbmVyKTsKKyAgICBtX3JlZ2lvbkRpc3BsYXlUcmVlLT5hcHBl
bmRDaGlsZCgqbV9jdWVDb250YWluZXIpOwogCiAgICAgLy8gNy41IEV2ZXJ5IFdlYlZUVCByZWdp
b24gb2JqZWN0IGlzIGluaXRpYWxpc2VkIHdpdGggdGhlIGZvbGxvd2luZyBDU1MKICAgICBtX3Jl
Z2lvbkRpc3BsYXlUcmVlLT5zZXRQc2V1ZG8odGV4dFRyYWNrUmVnaW9uU2hhZG93UHNldWRvSWQo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24uaAppbmRleCA3NzcxZThlYjAwODU3
YmY0MzJjMWNkNTRiNDg2MTc3MzZkMDRlNjVkLi44OTI1YWYxYmMzNzIwNWViMDdhNWE3YjhlOGNm
Njk3MjE4MGNhMDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJl
Z2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmgKQEAgLTg5
LDcgKzg5LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc1Njcm9sbGluZ1JlZ2lvbigpIHsgcmV0
dXJuIG1fc2Nyb2xsOyB9CiAKLSAgICBQYXNzUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBnZXREaXNw
bGF5VHJlZSgpOworICAgIEhUTUxEaXZFbGVtZW50JiBnZXREaXNwbGF5VHJlZSgpOwogICAgIAog
ICAgIHZvaWQgYXBwZW5kVGV4dFRyYWNrQ3VlQm94KFBhc3NSZWZQdHI8VlRUQ3VlQm94Pik7CiAg
ICAgdm9pZCBkaXNwbGF5TGFzdFRleHRUcmFja0N1ZUJveCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svV2ViVlRURWxlbWVudC5jcHAKaW5kZXggNGEyZjMxYjNlNTYzNGYzMTAyZmY1NGVi
ZjBmYTBkOTY2YTk1N2EwZS4uMTQ5NmJiMDNhNmE1MDBmNWI3OTYxNDBkNTkwYzNkOTVmZWZiMjIw
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuY3BwCkBAIC04
MCwxMSArODAsMTEgQEAgUmVmPFdlYlZUVEVsZW1lbnQ+IFdlYlZUVEVsZW1lbnQ6OmNyZWF0ZShX
ZWJWVFROb2RlVHlwZSBub2RlVHlwZSwgRG9jdW1lbnQmIGRvY3UKICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBXZWJWVFRFbGVtZW50KG5vZGVUeXBlLCBkb2N1bWVudCkpOwogfQogCi1SZWZQdHI8
RWxlbWVudD4gV2ViVlRURWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRD
aGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQpCitSZWY8RWxlbWVudD4gV2ViVlRURWxl
bWVudDo6Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYg
dGFyZ2V0RG9jdW1lbnQpCiB7Ci0gICAgUmVmUHRyPFdlYlZUVEVsZW1lbnQ+IGNsb25lID0gY3Jl
YXRlKHN0YXRpY19jYXN0PFdlYlZUVE5vZGVUeXBlPihtX3dlYlZUVE5vZGVUeXBlKSwgdGFyZ2V0
RG9jdW1lbnQpOworICAgIFJlZjxXZWJWVFRFbGVtZW50PiBjbG9uZSA9IGNyZWF0ZShzdGF0aWNf
Y2FzdDxXZWJWVFROb2RlVHlwZT4obV93ZWJWVFROb2RlVHlwZSksIHRhcmdldERvY3VtZW50KTsK
ICAgICBjbG9uZS0+c2V0TGFuZ3VhZ2UobV9sYW5ndWFnZSk7Ci0gICAgcmV0dXJuIGNsb25lOwor
ICAgIHJldHVybiBXVEY6Om1vdmUoY2xvbmUpOwogfQogCiBQYXNzUmVmUHRyPEhUTUxFbGVtZW50
PiBXZWJWVFRFbGVtZW50OjpjcmVhdGVFcXVpdmFsZW50SFRNTEVsZW1lbnQoRG9jdW1lbnQmIGRv
Y3VtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuaAppbmRleCAx
YmU3NjM2YzM2NjNkODU4YmQ3NjM2YWVjY2MxOWI3MDZkZmM2YjhjLi44OWQzZDJjNTRkYmM2Yjll
NTIwNjJmZjRmMmFjZjc0OThiOWZjN2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1dlYlZUVEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dl
YlZUVEVsZW1lbnQuaApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxX
ZWJWVFRFbGVtZW50PiBjcmVhdGUoY29uc3QgV2ViVlRUTm9kZVR5cGUsIERvY3VtZW50Jik7CiAg
ICAgUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRlRXF1aXZhbGVudEhUTUxFbGVtZW50KERv
Y3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIFJlZlB0cjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRo
b3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50Jikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBSZWY8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihE
b2N1bWVudCYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBzZXRXZWJWVFROb2RlVHlwZShXZWJWVFRO
b2RlVHlwZSB0eXBlKSB7IG1fd2ViVlRUTm9kZVR5cGUgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
dHlwZSk7IH0KICAgICBXZWJWVFROb2RlVHlwZSB3ZWJWVFROb2RlVHlwZSgpIGNvbnN0IHsgcmV0
dXJuIHN0YXRpY19jYXN0PFdlYlZUVE5vZGVUeXBlPihtX3dlYlZUVE5vZGVUeXBlKTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKaW5kZXggYjZh
MzExM2VmN2Q2Nzk5NDA1ZWFhMzE0MzA2M2Y4YmJhZGVhMDJiNS4uODU3YWQxOTE3Njc1NjdhNWJh
MTc1YjY5Y2NhZjIxNGY0NjA2MmJjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNTU0FnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ1NTQWdlbnQuY3BwCkBAIC03OTYsNyArNzk2LDcgQEAgSW5zcGVjdG9yU3R5bGVT
aGVldCogSW5zcGVjdG9yQ1NTQWdlbnQ6OmNyZWF0ZUluc3BlY3RvclN0eWxlU2hlZXRGb3JEb2N1
bWVudChEb2MKICAgICAvLyBTZXQgdGhpcyBmbGFnLCBzbyB3aGVuIHdlIGNyZWF0ZSBpdCwgd2Ug
cHV0IGl0IGludG8gdGhlIHZpYSBpbnNwZWN0b3IgbWFwLgogICAgIG1fY3JlYXRpbmdWaWFJbnNw
ZWN0b3JTdHlsZVNoZWV0ID0gdHJ1ZTsKICAgICBJbmxpbmVTdHlsZU92ZXJyaWRlU2NvcGUgb3Zl
cnJpZGVTY29wZShkb2N1bWVudCk7Ci0gICAgdGFyZ2V0Tm9kZS0+YXBwZW5kQ2hpbGQoc3R5bGVF
bGVtZW50LCBlYyk7CisgICAgdGFyZ2V0Tm9kZS0+YXBwZW5kQ2hpbGQoc3R5bGVFbGVtZW50LnJl
bGVhc2VOb25OdWxsKCksIGVjKTsKICAgICBtX2NyZWF0aW5nVmlhSW5zcGVjdG9yU3R5bGVTaGVl
dCA9IGZhbHNlOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCmluZGV4IGNlYjRhYTFhNTE2ZjQ3ZDU2OTgwMWI1
NjYwZDc5ZjNlNjkzMjdjMmYuLmM0ZDk2M2VhODZmNGE4ZjZhNDYzMWFlZTA0N2MwNzg2ZDhmOWUy
NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC0xMzgsNyArMTM4
LDcgQEAgc3RhdGljIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZG9jdW1lbnRGcmFnbWVu
dEZyb21EcmFnRGF0YShEcmFnRGF0YSYgZHJhZ0QKICAgICAgICAgICAgIFN0cmluZyB0aXRsZTsK
ICAgICAgICAgICAgIFN0cmluZyB1cmwgPSBkcmFnRGF0YS5hc1VSTChEcmFnRGF0YTo6RG9Ob3RD
b252ZXJ0RmlsZW5hbWVzLCAmdGl0bGUpOwogICAgICAgICAgICAgaWYgKCF1cmwuaXNFbXB0eSgp
KSB7Ci0gICAgICAgICAgICAgICAgUmVmUHRyPEhUTUxBbmNob3JFbGVtZW50PiBhbmNob3IgPSBI
VE1MQW5jaG9yRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICAgICAgICAgICAgICBSZWY8
SFRNTEFuY2hvckVsZW1lbnQ+IGFuY2hvciA9IEhUTUxBbmNob3JFbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQpOwogICAgICAgICAgICAgICAgIGFuY2hvci0+c2V0SHJlZih1cmwpOwogICAgICAgICAg
ICAgICAgIGlmICh0aXRsZS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgICAgICAgICAgLy8gVHJ5
IHRoZSBwbGFpbiB0ZXh0IGZpcnN0IGJlY2F1c2UgdGhlIHVybCBtaWdodCBiZSBub3JtYWxpemVk
IG9yIGVzY2FwZWQuCkBAIC0xNDcsMjAgKzE0NywxOSBAQCBzdGF0aWMgUGFzc1JlZlB0cjxEb2N1
bWVudEZyYWdtZW50PiBkb2N1bWVudEZyYWdtZW50RnJvbURyYWdEYXRhKERyYWdEYXRhJiBkcmFn
RAogICAgICAgICAgICAgICAgICAgICBpZiAodGl0bGUuaXNFbXB0eSgpKQogICAgICAgICAgICAg
ICAgICAgICAgICAgdGl0bGUgPSB1cmw7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIFJlZlB0cjxOb2RlPiBhbmNob3JUZXh0ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGl0
bGUpOwotICAgICAgICAgICAgICAgIGFuY2hvci0+YXBwZW5kQ2hpbGQoYW5jaG9yVGV4dCwgSUdO
T1JFX0VYQ0VQVElPTik7Ci0gICAgICAgICAgICAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IGZyYWdtZW50ID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwotICAgICAgICAg
ICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChhbmNob3IsIElHTk9SRV9FWENFUFRJT04pOwot
ICAgICAgICAgICAgICAgIHJldHVybiBmcmFnbWVudC5nZXQoKTsKKyAgICAgICAgICAgICAgICBh
bmNob3ItPmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRpdGxlKSwgSUdOT1JF
X0VYQ0VQVElPTik7CisgICAgICAgICAgICAgICAgUmVmPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdt
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOworICAgICAgICAgICAgICAg
IGZyYWdtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoYW5jaG9yKSwgSUdOT1JFX0VYQ0VQVElP
Tik7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZyYWdtZW50LnB0cigpOwogICAgICAgICAgICAg
fQogICAgICAgICB9CiAgICAgfQogICAgIGlmIChhbGxvd1BsYWluVGV4dCAmJiBkcmFnRGF0YS5j
b250YWluc1BsYWluVGV4dCgpKSB7CiAgICAgICAgIGNob3NlUGxhaW5UZXh0ID0gdHJ1ZTsKLSAg
ICAgICAgcmV0dXJuIGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoY29udGV4dCwgZHJhZ0RhdGEuYXNQ
bGFpblRleHQoKSkuZ2V0KCk7CisgICAgICAgIHJldHVybiBjcmVhdGVGcmFnbWVudEZyb21UZXh0
KGNvbnRleHQsIGRyYWdEYXRhLmFzUGxhaW5UZXh0KCkpLnB0cigpOwogICAgIH0KIAotICAgIHJl
dHVybiAwOworICAgIHJldHVybiBudWxscHRyOwogfQogCiBib29sIERyYWdDb250cm9sbGVyOjpk
cmFnSXNNb3ZlKEZyYW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24sIERyYWdEYXRhJiBkcmFnRGF0YSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0ZyYW1lSU9TLm1tIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9pb3MvRnJhbWVJT1MubW0KaW5kZXggNDY2NzRmY2JjMDNmOWU3MjlkMGI2
ZDIzMzk1ZDU1OWU1MGE3YjA3Yi4uYTNlN2U4ZGJjOWY4NmNhMGI0MGVmZmM5MDE2NDBlZDE1NjNm
MWJiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRnJhbWVJT1MubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRnJhbWVJT1MubW0KQEAgLTk1LDggKzk1LDggQEAg
dm9pZCBGcmFtZTo6aW5pdFdpdGhTaW1wbGVIVE1MRG9jdW1lbnQoY29uc3QgU3RyaW5nJiBzdHls
ZSwgY29uc3QgVVJMJiB1cmwpCiAgICAgaWYgKCFzdHlsZS5pc0VtcHR5KCkpCiAgICAgICAgIGJv
ZHktPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OnN0eWxlQXR0ciwgc3R5bGUpOwogCi0gICAgcm9v
dEVsZW1lbnQtPmFwcGVuZENoaWxkKGJvZHksIGVjKTsKLSAgICBkb2N1bWVudC0+YXBwZW5kQ2hp
bGQocm9vdEVsZW1lbnQsIGVjKTsKKyAgICByb290RWxlbWVudC0+YXBwZW5kQ2hpbGQoYm9keS5y
ZWxlYXNlTm9uTnVsbCgpLCBlYyk7CisgICAgZG9jdW1lbnQtPmFwcGVuZENoaWxkKHJvb3RFbGVt
ZW50LnJlbGVhc2VOb25OdWxsKCksIGVjKTsKIH0KIAogY29uc3QgVmlld3BvcnRBcmd1bWVudHMm
IEZyYW1lOjp2aWV3cG9ydEFyZ3VtZW50cygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2Ny
aXB0RWxlbWVudC5jcHAKaW5kZXggNmYzY2E4M2U4NTMyMjJkZmQ1ZTgwNTI3MmYwZjVjOTQ2NDM0
ZDIyNC4uOGFkZmNmYTQxMGFiZTQ3ZTMzMjRhZTViOGQ5MjQzZjU2NjY0NWQ5NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcApAQCAtMTU2LDkgKzE1Niw5IEBAIGJvb2wg
U1ZHU2NyaXB0RWxlbWVudDo6aGFzU291cmNlQXR0cmlidXRlKCkgY29uc3QKICAgICByZXR1cm4g
aGFzQXR0cmlidXRlKFhMaW5rTmFtZXM6OmhyZWZBdHRyKTsKIH0KIAotUmVmUHRyPEVsZW1lbnQ+
IFNWR1NjcmlwdEVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRy
ZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50KQorUmVmPEVsZW1lbnQ+IFNWR1NjcmlwdEVsZW1l
bnQ6OmNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmIHRh
cmdldERvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1ZHU2NyaXB0RWxlbWVu
dCh0YWdRTmFtZSgpLCB0YXJnZXREb2N1bWVudCwgZmFsc2UsIGFscmVhZHlTdGFydGVkKCkpKTsK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdTY3JpcHRFbGVtZW50KHRhZ1FOYW1lKCksIHRh
cmdldERvY3VtZW50LCBmYWxzZSwgYWxyZWFkeVN0YXJ0ZWQoKSkpOwogfQogCiAjaWZuZGVmIE5E
RUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKaW5kZXggNGMxYWEwOGU2ZDJm
YzhmZjhkYTk5ZjQyN2NlYzdkNGYyYzY0ZTMwNS4uNTM1ZTQyZTZmMDY0NmQ4MDEwNDE5MDkzYzYy
MjkyNGIzODNkNzEwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCkBAIC02
NSw3ICs2NSw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hMb2FkRXZl
bnQoKSBvdmVycmlkZSB7IFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmRpc3BhdGNoTG9h
ZEV2ZW50KHRoaXMpOyB9CiAKLSAgICB2aXJ0dWFsIFJlZlB0cjxFbGVtZW50PiBjbG9uZUVsZW1l
bnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50Jikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBSZWY8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGls
ZHJlbihEb2N1bWVudCYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVl
ZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIAogICAg
IC8vIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVt
ZW50LmNwcAppbmRleCA3MDRmZTRhMjI5ODJlOWI0MDQ0MTU5MTIxN2QzNzVkNTU3NGQ1MzViLi42
NGUxMGFhNjAwNGY0NzAwNjFiZjM1YTYyOWEwNGQ4ODg3MmIyZDY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1VzZUVsZW1lbnQuY3BwCkBAIC0zMzIsNyArMzMyLDcgQEAgc3RhdGljIHZvaWQgcmVtb3Zl
RGlzYWxsb3dlZEVsZW1lbnRzRnJvbVN1YnRyZWUoU1ZHRWxlbWVudCYgc3VidHJlZSkKICAgICBm
b3IgKGF1dG8qIGVsZW1lbnQgOiBkaXNhbGxvd2VkRWxlbWVudHMpIHsKICAgICAgICAgZm9yIChh
dXRvJiBkZXNjZW5kYW50IDogZGVzY2VuZGFudHNPZlR5cGU8U1ZHRWxlbWVudD4oKmVsZW1lbnQp
KQogICAgICAgICAgICAgZGVzY2VuZGFudC5zZXRDb3JyZXNwb25kaW5nRWxlbWVudChudWxscHRy
KTsKLSAgICAgICAgZWxlbWVudC0+cGFyZW50Tm9kZSgpLT5yZW1vdmVDaGlsZChlbGVtZW50KTsK
KyAgICAgICAgZWxlbWVudC0+cGFyZW50Tm9kZSgpLT5yZW1vdmVDaGlsZCgqZWxlbWVudCk7CiAg
ICAgfQogfQogCkBAIC00MDUsNyArNDA1LDcgQEAgU1ZHRWxlbWVudCogU1ZHVXNlRWxlbWVudDo6
ZmluZFRhcmdldChTdHJpbmcqIHRhcmdldElEKSBjb25zdAogCiB2b2lkIFNWR1VzZUVsZW1lbnQ6
OmNsb25lVGFyZ2V0KENvbnRhaW5lck5vZGUmIGNvbnRhaW5lciwgU1ZHRWxlbWVudCYgdGFyZ2V0
KSBjb25zdAogewotICAgIFJlZjxTVkdFbGVtZW50PiB0YXJnZXRDbG9uZSA9IHN0YXRpY19wb2lu
dGVyX2Nhc3Q8U1ZHRWxlbWVudD4odGFyZ2V0LmNsb25lRWxlbWVudFdpdGhDaGlsZHJlbihkb2N1
bWVudCgpKSkucmVsZWFzZU5vbk51bGwoKTsKKyAgICBSZWY8U1ZHRWxlbWVudD4gdGFyZ2V0Q2xv
bmUgPSBzdGF0aWNfY2FzdDxTVkdFbGVtZW50Jj4odGFyZ2V0LmNsb25lRWxlbWVudFdpdGhDaGls
ZHJlbihkb2N1bWVudCgpKS5nZXQoKSk7CiAgICAgYXNzb2NpYXRlQ2xvbmVzV2l0aE9yaWdpbmFs
cyh0YXJnZXRDbG9uZS5nZXQoKSwgdGFyZ2V0KTsKICAgICByZW1vdmVEaXNhbGxvd2VkRWxlbWVu
dHNGcm9tU3VidHJlZSh0YXJnZXRDbG9uZS5nZXQoKSk7CiAgICAgdHJhbnNmZXJTaXplQXR0cmli
dXRlc1RvVGFyZ2V0Q2xvbmUodGFyZ2V0Q2xvbmUuZ2V0KCkpOwpAQCAtNDE5LDcgKzQxOSw3IEBA
IHN0YXRpYyB2b2lkIGNsb25lRGF0YUFuZENoaWxkcmVuKFNWR0VsZW1lbnQmIHJlcGxhY2VtZW50
Q2xvbmUsIFNWR0VsZW1lbnQmIG9yaWdpCiAgICAgQVNTRVJUKCFyZXBsYWNlbWVudENsb25lLnBh
cmVudE5vZGUoKSk7CiAKICAgICByZXBsYWNlbWVudENsb25lLmNsb25lRGF0YUZyb21FbGVtZW50
KG9yaWdpbmFsQ2xvbmUpOwotICAgIG9yaWdpbmFsQ2xvbmUuY2xvbmVDaGlsZE5vZGVzKCZyZXBs
YWNlbWVudENsb25lKTsKKyAgICBvcmlnaW5hbENsb25lLmNsb25lQ2hpbGROb2RlcyhyZXBsYWNl
bWVudENsb25lKTsKICAgICBhc3NvY2lhdGVSZXBsYWNlbWVudENsb25lc1dpdGhPcmlnaW5hbHMo
cmVwbGFjZW1lbnRDbG9uZSwgb3JpZ2luYWxDbG9uZSk7CiAgICAgcmVtb3ZlRGlzYWxsb3dlZEVs
ZW1lbnRzRnJvbVN1YnRyZWUocmVwbGFjZW1lbnRDbG9uZSk7CiB9CkBAIC00NDgsNyArNDQ4LDcg
QEAgdm9pZCBTVkdVc2VFbGVtZW50OjpleHBhbmRVc2VFbGVtZW50c0luU2hhZG93VHJlZSgpIGNv
bnN0CiAgICAgICAgIGlmICh0YXJnZXQpCiAgICAgICAgICAgICBvcmlnaW5hbENsb25lLmNsb25l
VGFyZ2V0KHJlcGxhY2VtZW50Q2xvbmUuZ2V0KCksICp0YXJnZXQpOwogCi0gICAgICAgIG9yaWdp
bmFsQ2xvbmUucGFyZW50Tm9kZSgpLT5yZXBsYWNlQ2hpbGQocmVwbGFjZW1lbnRDbG9uZS5wdHIo
KSwgJm9yaWdpbmFsQ2xvbmUpOworICAgICAgICBvcmlnaW5hbENsb25lLnBhcmVudE5vZGUoKS0+
cmVwbGFjZUNoaWxkKHJlcGxhY2VtZW50Q2xvbmUuY29weVJlZigpLCBvcmlnaW5hbENsb25lKTsK
IAogICAgICAgICAvLyBSZXN1bWUgaXRlcmF0aW5nLCBzdGFydGluZyBqdXN0IGluc2lkZSB0aGUg
cmVwbGFjZW1lbnQgY2xvbmUuCiAgICAgICAgIGl0ID0gZGVzY2VuZGFudHMuZnJvbShyZXBsYWNl
bWVudENsb25lLmdldCgpKTsKQEAgLTQ3Miw3ICs0NzIsNyBAQCB2b2lkIFNWR1VzZUVsZW1lbnQ6
OmV4cGFuZFN5bWJvbEVsZW1lbnRzSW5TaGFkb3dUcmVlKCkgY29uc3QKICAgICAgICAgYXV0byBy
ZXBsYWNlbWVudENsb25lID0gU1ZHU1ZHRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwogICAg
ICAgICBjbG9uZURhdGFBbmRDaGlsZHJlbihyZXBsYWNlbWVudENsb25lLmdldCgpLCBvcmlnaW5h
bENsb25lKTsKIAotICAgICAgICBvcmlnaW5hbENsb25lLnBhcmVudE5vZGUoKS0+cmVwbGFjZUNo
aWxkKHJlcGxhY2VtZW50Q2xvbmUucHRyKCksICZvcmlnaW5hbENsb25lKTsKKyAgICAgICAgb3Jp
Z2luYWxDbG9uZS5wYXJlbnROb2RlKCktPnJlcGxhY2VDaGlsZChyZXBsYWNlbWVudENsb25lLmNv
cHlSZWYoKSwgb3JpZ2luYWxDbG9uZSk7CiAKICAgICAgICAgLy8gUmVzdW1lIGl0ZXJhdGluZywg
c3RhcnRpbmcganVzdCBpbnNpZGUgdGhlIHJlcGxhY2VtZW50IGNsb25lLgogICAgICAgICBpdCA9
IGRlc2NlbmRhbnRzLmZyb20ocmVwbGFjZW1lbnRDbG9uZS5nZXQoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS94bWwvWE1MVHJlZVZpZXdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwv
WE1MVHJlZVZpZXdlci5jcHAKaW5kZXggNDA5NmU0MzVkNjNmNTcwODQ0ODAyYzIxNzcwOGFkZDll
YjYwNTE3NS4uYTlmNzdlYTE2Mzg0OGY4NTBiNjM1YzkyYjkwY2E5NDI3NzJmODhhYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTFRyZWVWaWV3ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxUcmVlVmlld2VyLmNwcApAQCAtNjEsOCArNjEsOCBAQCB2b2lkIFhNTFRy
ZWVWaWV3ZXI6OnRyYW5zZm9ybURvY3VtZW50VG9UcmVlVmlldygpCiAgICAgbV9kb2N1bWVudC5m
cmFtZSgpLT5zY3JpcHQoKS5ldmFsdWF0ZShTY3JpcHRTb3VyY2VDb2RlKEF0b21pY1N0cmluZygi
cHJlcGFyZVdlYktpdFhNTFZpZXdlcignVGhpcyBYTUwgZmlsZSBkb2VzIG5vdCBhcHBlYXIgdG8g
aGF2ZSBhbnkgc3R5bGUgaW5mb3JtYXRpb24gYXNzb2NpYXRlZCB3aXRoIGl0LiBUaGUgZG9jdW1l
bnQgdHJlZSBpcyBzaG93biBiZWxvdy4nKTsiKSkpOwogCiAgICAgU3RyaW5nIGNzc1N0cmluZyA9
IFN0cmluZ0ltcGw6OmNyZWF0ZVdpdGhvdXRDb3B5aW5nKFhNTFZpZXdlcl9jc3MsIHNpemVvZihY
TUxWaWV3ZXJfY3NzKSk7Ci0gICAgUmVmUHRyPFRleHQ+IHRleHQgPSBtX2RvY3VtZW50LmNyZWF0
ZVRleHROb2RlKGNzc1N0cmluZyk7Ci0gICAgbV9kb2N1bWVudC5nZXRFbGVtZW50QnlJZChTdHJp
bmcoQVNDSUlMaXRlcmFsKCJ4bWwtdmlld2VyLXN0eWxlIikpKS0+YXBwZW5kQ2hpbGQodGV4dCwg
SUdOT1JFX0VYQ0VQVElPTik7CisgICAgUmVmPFRleHQ+IHRleHQgPSBtX2RvY3VtZW50LmNyZWF0
ZVRleHROb2RlKGNzc1N0cmluZyk7CisgICAgbV9kb2N1bWVudC5nZXRFbGVtZW50QnlJZChTdHJp
bmcoQVNDSUlMaXRlcmFsKCJ4bWwtdmlld2VyLXN0eWxlIikpKS0+YXBwZW5kQ2hpbGQoV1RGOjpt
b3ZlKHRleHQpLCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICBtX2RvY3VtZW50LnN0eWxlUmVzb2x2
ZXJDaGFuZ2VkKFJlY2FsY1N0eWxlSW1tZWRpYXRlbHkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJGcmFtZS5tbQppbmRleCAwYjMyMTIwN2MzMjNlNGRhMDA5MzBlOWM4MDRlMGQyMzhh
OTRjZGQ5Li5kN2U0ZGNmNzgwODQ2ZmFhNTkwODY5OThmMzAyOWU2MTNjOTA3YjRhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KQEAgLTg5MCw5ICs4OTAsOSBAQCAtIChET01E
b2N1bWVudEZyYWdtZW50ICopX2RvY3VtZW50RnJhZ21lbnRXaXRoTm9kZXNBc1BhcmFncmFwaHM6
KE5TQXJyYXkgKilub2RlcwogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9
IGRvY3VtZW50LT5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7CiAKICAgICBmb3IgKGF1dG8qIG5v
ZGUgOiBub2Rlc1ZlY3RvcikgewotICAgICAgICBSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IGNy
ZWF0ZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50KCpkb2N1bWVudCk7Ci0gICAgICAgIGVsZW1lbnQt
PmFwcGVuZENoaWxkKG5vZGUpOwotICAgICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoZWxlbWVu
dC5yZWxlYXNlKCkpOworICAgICAgICBSZWY8RWxlbWVudD4gZWxlbWVudCA9IGNyZWF0ZURlZmF1
bHRQYXJhZ3JhcGhFbGVtZW50KCpkb2N1bWVudCk7CisgICAgICAgIGVsZW1lbnQtPmFwcGVuZENo
aWxkKCpub2RlKTsKKyAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShlbGVt
ZW50KSk7CiAgICAgfQogCiAgICAgcmV0dXJuIGtpdChmcmFnbWVudC5yZWxlYXNlKCkuZ2V0KCkp
OwpAQCAtMTk1OCw3ICsxOTU4LDcgQEAgLSAodm9pZClfcmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0
OihOU1N0cmluZyAqKXRleHQgc2VsZWN0UmVwbGFjZW1lbnQ6KEJPT0wpc2VsZWMKIHsKICAgICBS
ZWZQdHI8UmFuZ2U+IHJhbmdlID0gX3ByaXZhdGUtPmNvcmVGcmFtZS0+c2VsZWN0aW9uKCkudG9O
b3JtYWxpemVkUmFuZ2UoKTsKICAgICAKLSAgICBET01Eb2N1bWVudEZyYWdtZW50KiBmcmFnbWVu
dCA9IHJhbmdlID8ga2l0KGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoKnJhbmdlLCB0ZXh0KS5nZXQo
KSkgOiBuaWw7CisgICAgRE9NRG9jdW1lbnRGcmFnbWVudCogZnJhZ21lbnQgPSByYW5nZSA/IGtp
dChjcmVhdGVGcmFnbWVudEZyb21UZXh0KCpyYW5nZSwgdGV4dCkucHRyKCkpIDogbmlsOwogICAg
IFtzZWxmIF9yZXBsYWNlU2VsZWN0aW9uV2l0aEZyYWdtZW50OmZyYWdtZW50IHNlbGVjdFJlcGxh
Y2VtZW50OnNlbGVjdFJlcGxhY2VtZW50IHNtYXJ0UmVwbGFjZTpzbWFydFJlcGxhY2UgbWF0Y2hT
dHlsZTpZRVNdOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YkhUTUxWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQpp
bmRleCAzMDk4MGQzMGFhNjdlMmRlYjk4MjFlOTdkMDA3MjI1MGU1NWJkMmE0Li5iMjU3MTlmYjkw
YjZhNDQ3Y2MyODc0ZGRhNWRjZjNhZTkxY2NjZTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViSFRNTFZpZXcubW0KQEAgLTIyNjcsNyArMjI2Nyw3IEBAIC0gKERPTURvY3VtZW50RnJh
Z21lbnQgKilfZG9jdW1lbnRGcmFnbWVudEZyb21QYXN0ZWJvYXJkOihOU1Bhc3RlYm9hcmQgKilw
YXN0ZWJvCiAgICAgaWYgKHBib2FyZFR5cGUgPT0gTlNTdHJpbmdQYm9hcmRUeXBlKSB7CiAgICAg
ICAgIGlmICghY29udGV4dCkKICAgICAgICAgICAgIHJldHVybiBuaWw7Ci0gICAgICAgIHJldHVy
biBraXQoY3JlYXRlRnJhZ21lbnRGcm9tVGV4dCgqY29yZShjb250ZXh0KSwgW1twYXN0ZWJvYXJk
IHN0cmluZ0ZvclR5cGU6TlNTdHJpbmdQYm9hcmRUeXBlXSBwcmVjb21wb3NlZFN0cmluZ1dpdGhD
YW5vbmljYWxNYXBwaW5nXSkuZ2V0KCkpOworICAgICAgICByZXR1cm4ga2l0KGNyZWF0ZUZyYWdt
ZW50RnJvbVRleHQoKmNvcmUoY29udGV4dCksIFtbcGFzdGVib2FyZCBzdHJpbmdGb3JUeXBlOk5T
U3RyaW5nUGJvYXJkVHlwZV0gcHJlY29tcG9zZWRTdHJpbmdXaXRoQ2Fub25pY2FsTWFwcGluZ10p
LnB0cigpKTsKICAgICB9CiAgICAgcmV0dXJuIG5pbDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KaW5kZXggNTNkYmZhNTkwNmUz
NzJiMTM0ZjNlODljY2M0ZGIyYmFhMjAwYzBkYS4uMTczNDBkZTM2MzQ5NzI3OGEwZDg4ZGU0NWQ1
YzZiOTM5NDlmZGNiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9QREZQbHVnaW4ubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9QREZQbHVnaW4ubW0KQEAgLTUyNSwxMSArNTI1LDExIEBAIFBERlBsdWdpbjo6UERG
UGx1Z2luKFdlYkZyYW1lKiBmcmFtZSkKICAgICAgICAgbV9hbm5vdGF0aW9uQ29udGFpbmVyID0g
ZG9jdW1lbnQtPmNyZWF0ZUVsZW1lbnQoZGl2VGFnLCBmYWxzZSk7CiAgICAgICAgIG1fYW5ub3Rh
dGlvbkNvbnRhaW5lci0+c2V0QXR0cmlidXRlKGlkQXR0ciwgImFubm90YXRpb25Db250YWluZXIi
KTsKIAotICAgICAgICBSZWZQdHI8RWxlbWVudD4gbV9hbm5vdGF0aW9uU3R5bGUgPSBkb2N1bWVu
dC0+Y3JlYXRlRWxlbWVudChzdHlsZVRhZywgZmFsc2UpOwotICAgICAgICBtX2Fubm90YXRpb25T
dHlsZS0+c2V0VGV4dENvbnRlbnQoYW5ub3RhdGlvblN0eWxlLCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKKyAgICAgICAgUmVmPEVsZW1lbnQ+IGFubm90YXRpb25TdHlsZUVsZW1lbnQgPSBkb2N1bWVu
dC0+Y3JlYXRlRWxlbWVudChzdHlsZVRhZywgZmFsc2UpOworICAgICAgICBhbm5vdGF0aW9uU3R5
bGVFbGVtZW50LT5zZXRUZXh0Q29udGVudChhbm5vdGF0aW9uU3R5bGUsIEFTU0VSVF9OT19FWENF
UFRJT04pOwogCi0gICAgICAgIG1fYW5ub3RhdGlvbkNvbnRhaW5lci0+YXBwZW5kQ2hpbGQobV9h
bm5vdGF0aW9uU3R5bGUuZ2V0KCkpOwotICAgICAgICBkb2N1bWVudC0+Ym9keU9yRnJhbWVzZXQo
KS0+YXBwZW5kQ2hpbGQobV9hbm5vdGF0aW9uQ29udGFpbmVyLmdldCgpKTsKKyAgICAgICAgbV9h
bm5vdGF0aW9uQ29udGFpbmVyLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoYW5ub3RhdGlvblN0eWxl
RWxlbWVudCkpOworICAgICAgICBkb2N1bWVudC0+Ym9keU9yRnJhbWVzZXQoKS0+YXBwZW5kQ2hp
bGQoKm1fYW5ub3RhdGlvbkNvbnRhaW5lcik7CiAgICAgfQogCiAgICAgbV9hY2Nlc3NpYmlsaXR5
T2JqZWN0ID0gYWRvcHROUyhbW1dLUERGUGx1Z2luQWNjZXNzaWJpbGl0eU9iamVjdCBhbGxvY10g
aW5pdFdpdGhQREZQbHVnaW46dGhpc10pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5Bbm5vdGF0aW9uLm1tIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5Bbm5vdGF0aW9uLm1tCmluZGV4IDM0
YjUyMmQ4OWJhMzI5NmVmMWUwZWNlNWJiZTIyMTg2MThlNjM2ZjEuLmEwMjlkMjVmOTFlODJlNmRi
MWIyZjBmYTVhMmJlMzhkNmMxYzcyYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQW5ub3RhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkFubm90YXRpb24ubW0KQEAgLTc0
LDcgKzc0LDcgQEAgdm9pZCBQREZQbHVnaW5Bbm5vdGF0aW9uOjphdHRhY2goRWxlbWVudCogcGFy
ZW50KQogCiAgICAgdXBkYXRlR2VvbWV0cnkoKTsKIAotICAgIG1fcGFyZW50LT5hcHBlbmRDaGls
ZChtX2VsZW1lbnQpOworICAgIG1fcGFyZW50LT5hcHBlbmRDaGlsZCgqbV9lbGVtZW50KTsKIAog
ICAgIC8vIEZJWE1FOiBUaGUgdGV4dCBjdXJzb3IgZG9lc24ndCBibGluayBhZnRlciB0aGlzLiBX
aHk/CiAgICAgbV9lbGVtZW50LT5mb2N1cygpOwpAQCAtOTIsNyArOTIsNyBAQCBQREZQbHVnaW5B
bm5vdGF0aW9uOjp+UERGUGx1Z2luQW5ub3RhdGlvbigpCiAKICAgICBtX2V2ZW50TGlzdGVuZXIt
PnNldEFubm90YXRpb24oMCk7CiAKLSAgICBtX3BhcmVudC0+cmVtb3ZlQ2hpbGQoZWxlbWVudCgp
KTsKKyAgICBtX3BhcmVudC0+cmVtb3ZlQ2hpbGQoKmVsZW1lbnQoKSk7CiB9CiAKIHZvaWQgUERG
UGx1Z2luQW5ub3RhdGlvbjo6dXBkYXRlR2VvbWV0cnkoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uLm1t
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5DaG9pY2VB
bm5vdGF0aW9uLm1tCmluZGV4IGUxYThlNTgyMmIyNWU4NzkzNTFmMzQ5MGJlOTU0ZDFkYjgxOWRk
NGIuLjYyMWRjMDExZGI4NzRmZGYzZGYyMzA1YWU0MDczNjc5ZjM2ZjBmMzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hvaWNlQW5u
b3RhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BE
RlBsdWdpbkNob2ljZUFubm90YXRpb24ubW0KQEAgLTgzLDE0ICs4MywxNCBAQCBQYXNzUmVmUHRy
PEVsZW1lbnQ+IFBERlBsdWdpbkNob2ljZUFubm90YXRpb246OmNyZWF0ZUFubm90YXRpb25FbGVt
ZW50KCkKICAgICBOU1N0cmluZyAqc2VsZWN0ZWRDaG9pY2UgPSBjaG9pY2VBbm5vdGF0aW9uLnN0
cmluZ1ZhbHVlOwogCiAgICAgZm9yIChOU1N0cmluZyAqY2hvaWNlIGluIGNob2ljZXMpIHsKLSAg
ICAgICAgUmVmUHRyPEVsZW1lbnQ+IGNob2ljZU9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQob3B0aW9uVGFnLCBmYWxzZSk7CisgICAgICAgIFJlZjxFbGVtZW50PiBjaG9pY2VPcHRpb24g
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KG9wdGlvblRhZywgZmFsc2UpOwogICAgICAgICBjaG9p
Y2VPcHRpb24tPnNldEF0dHJpYnV0ZSh2YWx1ZUF0dHIsIGNob2ljZSk7CiAgICAgICAgIGNob2lj
ZU9wdGlvbi0+c2V0VGV4dENvbnRlbnQoY2hvaWNlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAog
ICAgICAgICBpZiAoY2hvaWNlID09IHNlbGVjdGVkQ2hvaWNlKQogICAgICAgICAgICAgY2hvaWNl
T3B0aW9uLT5zZXRBdHRyaWJ1dGUoc2VsZWN0ZWRBdHRyLCAic2VsZWN0ZWQiKTsKIAotICAgICAg
ICBzdHlsZWRFbGVtZW50LT5hcHBlbmRDaGlsZChjaG9pY2VPcHRpb24pOworICAgICAgICBzdHls
ZWRFbGVtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoY2hvaWNlT3B0aW9uKSk7CiAgICAgfQog
CiAgICAgcmV0dXJuIGVsZW1lbnQ7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMWFmNjZjZDFiMWNjMTRkNjNjMjFkNTY0YWZl
ODlkN2E5ZmVjZGVlZS4uNDk0NjhmYzExNDgxOTkzYjhmMTA1ZGY0NTQ3MjdmNDgyNjc1MDgwZiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE1LTA5LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgTm9kZS5hcHBlbmRDaGlsZChudWxsKSAvIHJlcGxhY2VDaGls
ZChudWxsLCBudWxsKSAvIHJlbW92ZUNoaWxkKG51bGwpIC8gaW5zZXJ0QmVmb3JlKG51bGwsIHJl
Zikgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg5NzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIyNTYw
ODgzPgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjI1NTkyMjU+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIC8gcmViYXNlbGluZSB0ZXN0
cyBub3cgdGhhdCB3ZSB0aHJvdyBhIGRpZmZlcmVudCBleGNlcHRpb24gdHlwZS4KKworICAgICAg
ICAqIGZhc3QvZG9tL0RvY3VtZW50L3JlcGxhY2VDaGlsZC1udWxsLW9sZENoaWxkLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9Eb2N1bWVudC9zY3JpcHQtdGVzdHMvcmVwbGFjZUNo
aWxkLW51bGwtb2xkQ2hpbGQuanM6CisgICAgICAgICogZmFzdC9kb20vTm9kZS9mcmFnbWVudC1t
dXRhdGlvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vTm9kZS9mcmFnbWVudC1t
dXRhdGlvbi5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL2luY29tcGF0aWJsZS1vcGVyYXRpb25z
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9pbmNvbXBhdGlibGUtb3BlcmF0aW9u
cy5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL21vdmUtbm9kZXMtYWNyb3NzLWRvY3VtZW50cy5o
dG1sOgorICAgICAgICAqIGZhc3QvZG9tL3Byb2Nlc3NpbmctaW5zdHJ1Y3Rpb24tYXBwZW5kQ2hp
bGQtZXhjZXB0aW9ucy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vcHJvY2Vzc2lu
Zy1pbnN0cnVjdGlvbi1hcHBlbmRDaGlsZC1leGNlcHRpb25zLnhodG1sOgorICAgICAgICAqIGZh
c3QvZG9tL3NldHRlci10eXBlLWVuZm9yY2VtZW50LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBm
YXN0L2RvbS90aW1lci1jbGVhci1pbnRlcnZhbC1pbi1oYW5kbGVyLWFuZC1nZW5lcmF0ZS1lcnJv
ci1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9pbnNwZWN0b3Itc3VwcG9ydC91bmNhdWdo
dC1kb204LWV4Y2VwdGlvbi5odG1sOgorCiAyMDE1LTA5LTA4ICBTYWlkIEFib3UtSGFsbGF3YSAg
PHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gVW5yZXZpZXdlZCBpT1Mg
Z2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNzI3ODJlMDUyMDdk
ZTM1YWYyMTg5MGJmNzBjODMyZjkxYTViMmQxNC4uN2FmNjUwNTc5ZjdiYTdjNjRiNzliMzM4ZmE4
MDJjODk3OTAyZWEwNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDUgKzEs
MjMgQEAKIDIwMTUtMDktMDggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAorICAg
ICAgICBOb2RlLmFwcGVuZENoaWxkKG51bGwpIC8gcmVwbGFjZUNoaWxkKG51bGwsIG51bGwpIC8g
cmVtb3ZlQ2hpbGQobnVsbCkgLyBpbnNlcnRCZWZvcmUobnVsbCwgcmVmKSBzaG91bGQgdGhyb3cg
YSBUeXBlRXJyb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0ODk3MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjI1NjA4ODM+CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8yMjU1OTIyNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBSZWJhc2VsaW5lIFczQyB0ZXN0cyBub3cgdGhhdCBtb3JlIGNoZWNr
cyBhcmUgcGFzc2luZy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaW50ZXJm
YWNlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rl
cy9Ob2RlLWFwcGVuZENoaWxkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvZG9tL25vZGVzL05vZGUtaW5zZXJ0QmVmb3JlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtcmVtb3ZlQ2hpbGQtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1yZXBsYWNl
Q2hpbGQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Rv
bS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dDoKKworMjAxNS0wOS0wOCAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCiAgICAgICAgIFVucmV2aWV3ZWQsIGRyb3AgaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlh
LWVsZW1lbnRzL2xvY2F0aW9uLW9mLXRoZS1tZWRpYS1yZXNvdXJjZS9jdXJyZW50U3JjLmh0bWwu
CiAKICAgICAgICAgVGhpcyByZWNlbnRseSBpbXBvcnRlZCB0ZXN0IGlzIGZsYWt5LgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvcmVwbGFjZUNoaWxkLW51bGwtb2xk
Q2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvcmVwbGFj
ZUNoaWxkLW51bGwtb2xkQ2hpbGQtZXhwZWN0ZWQudHh0CmluZGV4IGJiYjE2NmIyMjdhNTJlNjUx
NDVhZGJmNDA0ODc4NTNiMGQzNjhkMjQuLmFmNWE0NjlmNWY4Y2M2OTcxMDFiYzkyYTQwZjgyNDU1
YjhiZTVjZDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50L3JlcGxh
Y2VDaGlsZC1udWxsLW9sZENoaWxkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9Eb2N1bWVudC9yZXBsYWNlQ2hpbGQtbnVsbC1vbGRDaGlsZC1leHBlY3RlZC50eHQKQEAg
LTMsNyArMyw3IEBAIFRlc3QgYmVoYXZpb3Igb2YgRG9jdW1lbnQucmVwbGFjZUNoaWxkKCkgd2hl
biBvbGRDaGlsZCBpcyBudWxsLgogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1Mg
ZG9jdW1lbnQucmVwbGFjZUNoaWxkKGRvY3VtZW50LmZpcnN0Q2hpbGQsIG51bGwpIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4LgorUEFTUyBkb2N1
bWVudC5yZXBsYWNlQ2hpbGQoZG9jdW1lbnQuZmlyc3RDaGlsZCwgbnVsbCkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9j
dW1lbnQvc2NyaXB0LXRlc3RzL3JlcGxhY2VDaGlsZC1udWxsLW9sZENoaWxkLmpzIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvc2NyaXB0LXRlc3RzL3JlcGxhY2VDaGlsZC1udWxsLW9s
ZENoaWxkLmpzCmluZGV4IGRhOTI1MjgwMDUxZTE5N2UxYWY1YzllYTRhMjViNDFiOTZlYzNhNWYu
LmMwOWJmMWIxOGQyOTllNjc0NTIzMDUzNjY3YThjMjVkOGE5ODA3MGUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50L3NjcmlwdC10ZXN0cy9yZXBsYWNlQ2hpbGQtbnVs
bC1vbGRDaGlsZC5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Eb2N1bWVudC9zY3JpcHQt
dGVzdHMvcmVwbGFjZUNoaWxkLW51bGwtb2xkQ2hpbGQuanMKQEAgLTEsMyArMSwzIEBACiBkZXNj
cmlwdGlvbignVGVzdCBiZWhhdmlvciBvZiBEb2N1bWVudC5yZXBsYWNlQ2hpbGQoKSB3aGVuIG9s
ZENoaWxkIGlzIG51bGwuJyk7CiAKLXNob3VsZFRocm93KCdkb2N1bWVudC5yZXBsYWNlQ2hpbGQo
ZG9jdW1lbnQuZmlyc3RDaGlsZCwgbnVsbCknLCAnIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00g
RXhjZXB0aW9uIDgiJyk7CitzaG91bGRUaHJvdygnZG9jdW1lbnQucmVwbGFjZUNoaWxkKGRvY3Vt
ZW50LmZpcnN0Q2hpbGQsIG51bGwpJywgJyJUeXBlRXJyb3I6IFR5cGUgZXJyb3IiJyk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2ZyYWdtZW50LW11dGF0aW9uLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvZnJhZ21lbnQtbXV0YXRpb24tZXhw
ZWN0ZWQudHh0CmluZGV4IDBmMDRlNjZhMGU1M2U2ZjViMTkwMWM1ZGNiMTc2ZjY3ZjJlNGY4Njgu
LjRiYTk1MjRjNzJjZDVkN2ExMTMyOTQ0ZDA2ZGRkYmM2ZjZjN2Q4NWMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvZnJhZ21lbnQtbXV0YXRpb24tZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvZnJhZ21lbnQtbXV0YXRpb24tZXhwZWN0ZWQu
dHh0CkBAIC0yLDEyICsyLDEyIEBAIFRoaXMgdGVzdCBjcmVhdGVzIGEgZnJhZ21lbnQgY29udGFp
bmluZyB0aHJlZSBlbGVtZW50czogIkIiLCAiVSIsIGFuZCAiUCIsIGF0dGVtCiAKIEluc2VydGlu
ZyBhbiBlbGVtZW50IGluIGZyb250IG9mIHRoZSBuZXh0IGl0ZW0gaW4gZnJhZ21lbnQgc2hvdWxk
IG5vdCBhZmZlY3QgdGhlIHJlc3VsdDogUEFTUwogQXBwZW5kaW5nIGFuIGVsZW1lbnQgYXQgdGhl
IGVuZCBvZiB0aGUgZnJhZ21lbnQgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIHJlc3VsdDogUEFTUwot
Q29udGludWFsbHkgcmUtYXBwZW5kaW5nIHJlbW92ZWQgZWxlbWVudCB0byB0aGUgZnJhZ21lbnQg
c2hvdWxkIGV2ZW50dWFsbHkgdGhyb3cgTk9UX0ZPVU5EX0VSUjogUEFTUworQ29udGludWFsbHkg
cmUtYXBwZW5kaW5nIHJlbW92ZWQgZWxlbWVudCB0byB0aGUgZnJhZ21lbnQgc2hvdWxkIGV2ZW50
dWFsbHkgdGhyb3cgYSBUeXBlRXJyb3I6IFBBU1MKIAogVGhpcyB0ZXN0IGNyZWF0ZXMgYSBmcmFn
bWVudCBjb250YWluaW5nIHRocmVlIGVsZW1lbnRzOiAiQiIsICJVIiwgYW5kICJQIiwgYXR0ZW1w
dHMgdG8gaW5zZXJ0QmVmb3JlIHRoaXMgZnJhZ21lbnQgYW5kIHN0dWRpZXMgZWZmZWN0cyBvZiBt
dXRhdGlvbiBldmVudHMgb24gdGhlIGZyYWdtZW50LgogCiBJbnNlcnRpbmcgYW4gZWxlbWVudCBp
biBmcm9udCBvZiB0aGUgbmV4dCBpdGVtIGluIGZyYWdtZW50IHNob3VsZCBub3QgYWZmZWN0IHRo
ZSByZXN1bHQ6IFBBU1MKIEFwcGVuZGluZyBhbiBlbGVtZW50IGF0IHRoZSBlbmQgb2YgdGhlIGZy
YWdtZW50IHNob3VsZCBub3QgYWZmZWN0IHRoZSByZXN1bHQ6IFBBU1MKLUNvbnRpbnVhbGx5IHJl
LWFwcGVuZGluZyByZW1vdmVkIGVsZW1lbnQgdG8gdGhlIGZyYWdtZW50IHNob3VsZCBldmVudHVh
bGx5IHRocm93IE5PVF9GT1VORF9FUlI6IFBBU1MKK0NvbnRpbnVhbGx5IHJlLWFwcGVuZGluZyBy
ZW1vdmVkIGVsZW1lbnQgdG8gdGhlIGZyYWdtZW50IHNob3VsZCBldmVudHVhbGx5IHRocm93IGEg
VHlwZUVycm9yOiBQQVNTCiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vTm9k
ZS9mcmFnbWVudC1tdXRhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZS9mcmFn
bWVudC1tdXRhdGlvbi5odG1sCmluZGV4IDg0ZTY3ZjY1MzlkNjRiNzNlMzUxMTAyMGMwNzZlMDRj
OWU4MDBjYmYuLjQ4OTQ5N2Y1MGFjNmI2YThmODEwMDZiYjU4ZTZhYzE3NTU3YzZiODQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvZnJhZ21lbnQtbXV0YXRpb24uaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2ZyYWdtZW50LW11dGF0aW9uLmh0bWwKQEAg
LTM2LDE1ICszNiwxNSBAQCBmdW5jdGlvbiBwcm9kdWNlTm9kZU5hbWVTdHJpbmcobm9kZXMpCiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotZnVuY3Rpb24gZXhwZWN0RXhjZXB0aW9uKGNvZGUpCitm
dW5jdGlvbiBleHBlY3RUeXBlRXJyb3IoKQogewogICAgIHJldHVybiBmdW5jdGlvbihzdGFzaCwg
ZXhjZXB0aW9uKSB7CiAgICAgICAgIGlmICghZXhjZXB0aW9uKQotICAgICAgICAgICAgcmV0dXJu
ICJGQUlMLCBleHBlY3RlZCBleGNlcHRpb24gd2l0aCBjb2RlICIgKyBjb2RlICsgIi4gVGhlIHJl
c3VsdGluZyBmcmFnbWVudCB3YXM6IFwiIiArIHByb2R1Y2VOb2RlTmFtZVN0cmluZyhzdGFzaCkg
KyAiXCIuIjsKKyAgICAgICAgICAgIHJldHVybiAiRkFJTCwgZXhwZWN0ZWQgVHlwZUVycm9yLiBU
aGUgcmVzdWx0aW5nIGZyYWdtZW50IHdhczogXCIiICsgcHJvZHVjZU5vZGVOYW1lU3RyaW5nKHN0
YXNoKSArICJcIi4iOwogCi0gICAgICAgIGlmIChjb2RlID09IGV4Y2VwdGlvbi5jb2RlKQorICAg
ICAgICBpZiAoZXhjZXB0aW9uLm5hbWUgPSAiVHlwZUVycm9yIikKICAgICAgICAgICAgIHJldHVy
biAiUEFTUyI7Ci0gICAgICAgIHJldHVybiAiRkFJTCwgZXhwZWN0ZWQgZXhjZXB0aW9uIGNvZGU6
ICIgKyBjb2RlICsgIiwgd2FzOiAiICsgZXhjZXB0aW9uICsgIi4iOworICAgICAgICByZXR1cm4g
IkZBSUwsIGV4cGVjdGVkIFR5cGVFcnJvciwgd2FzOiAiICsgZXhjZXB0aW9uLm5hbWUgKyAiLiI7
CiAgICAgfQogfQogCkBAIC0xMTksMTAgKzExOSwxMCBAQCBmdW5jdGlvbiBydW5UZXN0KG1ldGhv
ZE5hbWUsIG1ldGhvZCkKICAgICAgICAgZnJhZy5hcHBlbmRDaGlsZChleHRyYSk7CiAgICAgfSwg
ZXhwZWN0Tm9kZXMoIkJVUCIpKTsKIAotICAgIHRlc3RGcmFnbWVudChtZXRob2QsICJDb250aW51
YWxseSByZS1hcHBlbmRpbmcgcmVtb3ZlZCBlbGVtZW50IHRvIHRoZSBmcmFnbWVudCBzaG91bGQg
ZXZlbnR1YWxseSB0aHJvdyBOT1RfRk9VTkRfRVJSIiwgZnVuY3Rpb24oZXZ0LCBmcmFnLCBzdGFz
aCkKKyAgICB0ZXN0RnJhZ21lbnQobWV0aG9kLCAiQ29udGludWFsbHkgcmUtYXBwZW5kaW5nIHJl
bW92ZWQgZWxlbWVudCB0byB0aGUgZnJhZ21lbnQgc2hvdWxkIGV2ZW50dWFsbHkgdGhyb3cgYSBU
eXBlRXJyb3IiLCBmdW5jdGlvbihldnQsIGZyYWcsIHN0YXNoKQogICAgIHsKICAgICAgICAgc3Rh
c2guaW5zZXJ0QmVmb3JlKGZyYWcubGFzdENoaWxkLCBzdGFzaC5maXJzdENoaWxkKTsKLSAgICB9
LCBleHBlY3RFeGNlcHRpb24oOCksIHRydWUpOworICAgIH0sIGV4cGVjdFR5cGVFcnJvcigpLCB0
cnVlKTsKICAgICBwcmludExvZyhtZXRob2ROYW1lKTsKIH0KIGZ1bmN0aW9uIHJ1blRlc3RzKCkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2luY29tcGF0aWJsZS1vcGVyYXRpb25z
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2luY29tcGF0aWJsZS1vcGVyYXRp
b25zLWV4cGVjdGVkLnR4dAppbmRleCBkNTc2NGMxZTVhYzYyNjRlZTNhNGRmNWI5MjQ1ZWJlMTc3
ZjY1NDgwLi44NWNjZDU0NGZjOWU5OWE3OGRhYTI3NzU1YTMzZmM4ODBhN2ZmMGQ2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pbmNvbXBhdGlibGUtb3BlcmF0aW9ucy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaW5jb21wYXRpYmxlLW9wZXJhdGlvbnMt
ZXhwZWN0ZWQudHh0CkBAIC0zLDkgKzMsOSBAQCBUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlv
ciBvZiBET00gb3BlcmF0aW9ucyB3aGVuIGNhbGxlZCBvbiBub24tRE9NIG9yIGluY29tcAogT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1MgYU5vZGUuYXBwZW5kQ2hpbGQoYURPTUlt
cGxlbWVudGF0aW9uKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBF
eGNlcHRpb24gOC4KLVBBU1MgYU5vZGUuYXBwZW5kQ2hpbGQoJ2tub3J0JykgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDguCi1QQVNTIGFOb2RlLmFw
cGVuZENoaWxkKHZvaWQgMCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb3RGb3VuZEVycm9yOiBE
T00gRXhjZXB0aW9uIDguCitQQVNTIGFOb2RlLmFwcGVuZENoaWxkKGFET01JbXBsZW1lbnRhdGlv
bikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgYU5vZGUuYXBw
ZW5kQ2hpbGQoJ2tub3J0JykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4K
K1BBU1MgYU5vZGUuYXBwZW5kQ2hpbGQodm9pZCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiBUeXBlIGVycm9yLgogUEFTUyBhTm9kZS5pc1NhbWVOb2RlKGFET01JbXBsZW1lbnRhdGlvbikg
aXMgZmFsc2UKIFBBU1MgYU5vZGUuaXNTYW1lTm9kZSgnZm9vJykgaXMgZmFsc2UKIFBBU1MgYU5v
ZGUuaXNTYW1lTm9kZSh2b2lkIDApIGlzIGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9pbmNvbXBhdGlibGUtb3BlcmF0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vaW5jb21wYXRpYmxlLW9wZXJhdGlvbnMuaHRtbAppbmRleCAyMWFhNzFhZmU4ZTNkZWFhOGNl
OGIwNGQzZjNjZjIzZDU4MjU0MjMwLi4yZjBlNGFmZTZjYWNiZGMyYjg1NzM1ZTc2NjBlZThmOWU1
ZDAxYjBmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pbmNvbXBhdGlibGUtb3Bl
cmF0aW9ucy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2luY29tcGF0aWJsZS1vcGVy
YXRpb25zLmh0bWwKQEAgLTI4LDExICsyOCwxMSBAQCB2YXIgYU5vZGUgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKTsKIHZhciBhU2Vjb25kTm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImRpdiIpOwogYU5vZGUuYXBwZW5kQ2hpbGQoYVNlY29uZE5vZGUpOwogCi1zaG91bGRUaHJv
dygiYU5vZGUuYXBwZW5kQ2hpbGQoYURPTUltcGxlbWVudGF0aW9uKSIsICInRXJyb3I6IE5vdEZv
dW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCciKTsKK3Nob3VsZFRocm93KCJhTm9kZS5hcHBlbmRD
aGlsZChhRE9NSW1wbGVtZW50YXRpb24pIiwgIidUeXBlRXJyb3I6IFR5cGUgZXJyb3InIik7CiAK
LXNob3VsZFRocm93KCJhTm9kZS5hcHBlbmRDaGlsZCgna25vcnQnKSIsICInRXJyb3I6IE5vdEZv
dW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCciKTsKK3Nob3VsZFRocm93KCJhTm9kZS5hcHBlbmRD
aGlsZCgna25vcnQnKSIsICInVHlwZUVycm9yOiBUeXBlIGVycm9yJyIpOwogCi1zaG91bGRUaHJv
dygiYU5vZGUuYXBwZW5kQ2hpbGQodm9pZCAwKSIsICInRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERP
TSBFeGNlcHRpb24gOCciKTsKK3Nob3VsZFRocm93KCJhTm9kZS5hcHBlbmRDaGlsZCh2b2lkIDAp
IiwgIidUeXBlRXJyb3I6IFR5cGUgZXJyb3InIik7CiAKIHNob3VsZEJlRmFsc2UoImFOb2RlLmlz
U2FtZU5vZGUoYURPTUltcGxlbWVudGF0aW9uKSIpOwogc2hvdWxkQmVGYWxzZSgiYU5vZGUuaXNT
YW1lTm9kZSgnZm9vJykiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL21vdmUt
bm9kZXMtYWNyb3NzLWRvY3VtZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vbW92ZS1u
b2Rlcy1hY3Jvc3MtZG9jdW1lbnRzLmh0bWwKaW5kZXggZDM1MDFhMTdkYjg2YzRlYzg2MGZiNWYx
MjJjN2Q1Y2RhZTZmNWEzNS4uMzg4MWYwNDk5MjFiMTNkZDNmYjY2ZmU2ZDdhNTJlYzc0YWY2ODU4
MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbW92ZS1ub2Rlcy1hY3Jvc3MtZG9j
dW1lbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vbW92ZS1ub2Rlcy1hY3Jvc3Mt
ZG9jdW1lbnRzLmh0bWwKQEAgLTE3OSw3ICsxNzksNyBAQCBmdW5jdGlvbiBydW4oKQogICAgIHJ1
blRlc3QoZnVuY3Rpb24oKSB7CiAgICAgICAgIGlmcmFtZURvYy5hcHBlbmRDaGlsZChkb2N1bWVu
dC5kb2N0eXBlKTsKICAgICAgICAgY29uc29sZS5sb2coZG9jdW1lbnQuZG9jdHlwZSk7Ci0gICAg
fSwgJ05vdEZvdW5kRXJyb3InKTsKKyAgICB9LCAnVHlwZUVycm9yJyk7CiAKICAgICAvLyBXaGVu
IHNldHRpbmcgYSBib3VuZGFyeSBvZiB0aGUgcmFuZ2UgaW4gYSBkaWZmZXJlbnQKICAgICAvLyBk
b2N1bWVudCwgdGhlIGNhbGwgc2hvdWxkIHN1Y2NlZWQgYW5kIHRoZSByYW5nZSBzaG91bGQgYmUg
Y29sbGFwc2VkLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvY2Vzc2luZy1p
bnN0cnVjdGlvbi1hcHBlbmRDaGlsZC1leGNlcHRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3Byb2Nlc3NpbmctaW5zdHJ1Y3Rpb24tYXBwZW5kQ2hpbGQtZXhjZXB0aW9u
cy1leHBlY3RlZC50eHQKaW5kZXggN2ExMzg2OGE3YjJmZmZhNmQyNjQyYWI2MjE3MjI3YjJkYWI5
MmZiOS4uMGUzYmRmMjI2ZTBjNWE2NTkxNzEyMDQ1YzM1NTVkODM2YmNjYmIyZiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvY2Vzc2luZy1pbnN0cnVjdGlvbi1hcHBlbmRDaGls
ZC1leGNlcHRpb25zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm9j
ZXNzaW5nLWluc3RydWN0aW9uLWFwcGVuZENoaWxkLWV4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0CkBA
IC0zLDcgKzMsNyBAQCBUZXN0IHRoYXQgYXBwcm9wcmlhdGUgZXhjZXB0aW9ucyBhcmUgdGhyb3du
IHdoZW4gYWRkaW5nIGNoaWxkcmVuIHRvIGEgUHJvY2Vzc2luZwogT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgogCiAKLVBBU1MgcGkuYXBwZW5kQ2hpbGQobnVsbCkgdGhyZXcgZXhjZXB0aW9uIEVy
cm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMy4KK1BBU1MgcGkuYXBw
ZW5kQ2hpbGQobnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBB
U1MgcGkuYXBwZW5kQ2hpbGQoZGl2KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEhpZXJhcmNoeVJl
cXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzLgogUEFTUyBwaS5hcHBlbmRDaGlsZCh0ZXh0Tm9k
ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNl
cHRpb24gMy4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3Byb2Nlc3NpbmctaW5zdHJ1Y3Rpb24tYXBwZW5kQ2hpbGQtZXhj
ZXB0aW9ucy54aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb2Nlc3NpbmctaW5zdHJ1Y3Rp
b24tYXBwZW5kQ2hpbGQtZXhjZXB0aW9ucy54aHRtbAppbmRleCBiMDAyODk5YzIzMjA2N2ZjMTcz
M2ZhOTFlYWZlMTMxNDIyYzQ5OTYwLi5jOTAyYmE0YjM1OTg5N2Q5MzhiZDQ5ZjgwYmM2ZjIyYzIw
MTkyZmQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm9jZXNzaW5nLWluc3Ry
dWN0aW9uLWFwcGVuZENoaWxkLWV4Y2VwdGlvbnMueGh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vcHJvY2Vzc2luZy1pbnN0cnVjdGlvbi1hcHBlbmRDaGlsZC1leGNlcHRpb25zLnhodG1s
CkBAIC01LDcgKzUsNyBAQAogPCFbQ0RBVEFbCiBkZXNjcmlwdGlvbigiVGVzdCB0aGF0IGFwcHJv
cHJpYXRlIGV4Y2VwdGlvbnMgYXJlIHRocm93biB3aGVuIGFkZGluZyBjaGlsZHJlbiB0byBhIFBy
b2Nlc3NpbmdJbnN0cnVjdGlvbi4iKTsKIHZhciBwaSA9IGRvY3VtZW50LmNyZWF0ZVByb2Nlc3Np
bmdJbnN0cnVjdGlvbigndGFyZ2V0JywgJ2RhdGEnKTsKLXNob3VsZFRocm93KCJwaS5hcHBlbmRD
aGlsZChudWxsKSIsICInRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlv
biAzJyIpOworc2hvdWxkVGhyb3coInBpLmFwcGVuZENoaWxkKG51bGwpIiwgIidUeXBlRXJyb3I6
IFR5cGUgZXJyb3InIik7CiB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7
CiBzaG91bGRUaHJvdygicGkuYXBwZW5kQ2hpbGQoZGl2KSIsICInRXJyb3I6IEhpZXJhcmNoeVJl
cXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzJyIpOwogdmFyIHRleHROb2RlID0gZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUoJ3NvbWV0ZXh0Jyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9zZXR0ZXItdHlwZS1lbmZvcmNlbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9zZXR0ZXItdHlwZS1lbmZvcmNlbWVudC1leHBlY3RlZC50eHQKaW5kZXggYzdhYjhl
MmE4ZDUyNTY4YzIzNmUzMWY3ZDE1NzM3NWU3NTI1OWMyMy4uOTE3MTJkMDk1NGJmYTljNzk1MGZm
YjY1ZDdlNmEyNWJlNDVlMzE4ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2V0
dGVyLXR5cGUtZW5mb3JjZW1lbnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NldHRlci10eXBlLWVuZm9yY2VtZW50LWV4cGVjdGVkLnR4dApAQCAtNCw3ICs0LDcgQEAg
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogCiBQQVNTIGRvY3VtZW50LmJvZHkgPSBub2RlbGlz
dDsgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNl
cHRpb24gMy4KLVBBU1MgdGFibGUudEhlYWQgPSBub2RlbGlzdDsgdGhyZXcgZXhjZXB0aW9uIEVy
cm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDguCitQQVNTIHRhYmxlLnRIZWFkID0g
bm9kZWxpc3Q7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFRoZSBIVE1MVGFibGVFbGVtZW50
LnRIZWFkIGF0dHJpYnV0ZSBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIEhUTUxUYWJsZVNlY3Rpb25F
bGVtZW50LgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRF
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS90aW1lci1jbGVhci1pbnRlcnZhbC1p
bi1oYW5kbGVyLWFuZC1nZW5lcmF0ZS1lcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS90aW1lci1jbGVhci1pbnRlcnZhbC1pbi1oYW5kbGVyLWFuZC1nZW5lcmF0ZS1lcnJv
ci1leHBlY3RlZC50eHQKaW5kZXggOTlhYWM2YTA1ZGNhZTg4NjMyNjljNjliYjZkY2IzYTkyOTRi
NjQ3Ny4uNWYyZmQ1MTQxNzAwYzgzMzM0ODliNTBlMWEzZDIyMmIyNjk0MjVhMCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vdGltZXItY2xlYXItaW50ZXJ2YWwtaW4taGFuZGxlci1h
bmQtZ2VuZXJhdGUtZXJyb3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3RpbWVyLWNsZWFyLWludGVydmFsLWluLWhhbmRsZXItYW5kLWdlbmVyYXRlLWVycm9yLWV4cGVj
dGVkLnR4dApAQCAtMSwyICsxLDIgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMDogTm90Rm91
bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4OiBBbiBhdHRlbXB0IHdhcyBtYWRlIHRvIHJlZmVyZW5j
ZSBhIE5vZGUgaW4gYSBjb250ZXh0IHdoZXJlIGl0IGRvZXMgbm90IGV4aXN0LgorQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDEwOiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVtb3ZlLXRhcmdldC13aXRoLXNoYWRvdy1pbi1kcmFnLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3JlbW92ZS10YXJnZXQtd2l0aC1z
aGFkb3ctaW4tZHJhZy1leHBlY3RlZC50eHQKaW5kZXggNDVjMTE5ZmU5YjMwY2FkMmE1MGYxZGZm
OGMwMTcxMTkyMDVhZmU3YS4uMTI4OTY0ZjVmYTRhYWE4MmVjODlhZGY3YmQyM2UzZjgwZWEzOWI2
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVtb3ZlLXRhcmdldC13aXRo
LXNoYWRvdy1pbi1kcmFnLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9yZW1vdmUtdGFyZ2V0LXdpdGgtc2hhZG93LWluLWRyYWctZXhwZWN0ZWQudHh0CkBAIC0xLDMg
KzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM0OiBOb3RGb3VuZEVycm9yOiBET00gRXhj
ZXB0aW9uIDg6IEFuIGF0dGVtcHQgd2FzIG1hZGUgdG8gcmVmZXJlbmNlIGEgTm9kZSBpbiBhIGNv
bnRleHQgd2hlcmUgaXQgZG9lcyBub3QgZXhpc3QuCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMzQ6
IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gODogQW4gYXR0ZW1wdCB3YXMgbWFkZSB0byBy
ZWZlcmVuY2UgYSBOb2RlIGluIGEgY29udGV4dCB3aGVyZSBpdCBkb2VzIG5vdCBleGlzdC4KK0NP
TlNPTEUgTUVTU0FHRTogbGluZSAzNDogVHlwZUVycm9yOiBUeXBlIGVycm9yCitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMzQ6IFR5cGVFcnJvcjogVHlwZSBlcnJvcgogUEFTUy4gRFJUIGRpZG4ndCBj
cmFzaC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW5zcGVjdG9yLXN1cHBvcnQvdW5j
YXVnaHQtZG9tOC1leGNlcHRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW5zcGVjdG9yLXN1
cHBvcnQvdW5jYXVnaHQtZG9tOC1leGNlcHRpb24uaHRtbAppbmRleCBiYzYwOGY0ZmFlMDQ5Mzcw
NmM5Yjc5ZTUxMzdiY2ZlNzgzNDIyNWRiLi41ZmE0ZTViOGI2NjY2Mzk0MjJkNWI0YWQ5YTY3ZmVh
NjJkNGVlOTBhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2luc3BlY3Rvci1zdXBwb3J0
L3VuY2F1Z2h0LWRvbTgtZXhjZXB0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbnNw
ZWN0b3Itc3VwcG9ydC91bmNhdWdodC1kb204LWV4Y2VwdGlvbi5odG1sCkBAIC02LDcgKzYsNyBA
QCBmdW5jdGlvbiBvbmxvYWQoKQogewogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgZG9jdW1lbnQuYXBwZW5kQ2hpbGQoKTsK
KyAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUF0dHJpYnV0ZU5vZGUoZG9jdW1lbnQuY3JlYXRlQXR0
cmlidXRlKCJkb2VzTm90RXhpc3QiKSk7CiB9CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaW50ZXJmYWNlcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dAppbmRleCBmZGIxOTgwYThiY2ZjNGY5MWU1Y2E2
ZjlkNTZjMGQ3MTJlNGE3MGVhLi5jZjdiMjNhMjc4OTRhOTI5NmFhMzU5NmMwMmViZDY3ZDQ4MjQx
MDc1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dApAQCAt
NjM0LDIxICs2MzQsMTUgQEAgRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpc0RlZmF1bHRO
YW1lc3BhY2UoRE9NU3RyaW5nKSBvbiB4bWxEb2Mgd2l0aCB0b28gZmUKICAgICBbbmF0aXZlIGNv
ZGVdCiB9IiBkaWQgbm90IHRocm93CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiB4bWxEb2MgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJpbnNlcnRCZWZvcmUiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MCkg
Ci1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9u
IHhtbERvYyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2Vy
dF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7
CitGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9u
IHhtbERvYyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2Vy
dF90aHJvd3M6IENhbGxlZCB3aXRoIDEgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7
CiAgICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJv
cjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5
cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5
UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikg
ZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKIFBBU1MgTm9kZSBpbnRl
cmZhY2U6IHhtbERvYyBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFwcGVuZENoaWxkIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAoNDEpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRD
aGlsZChOb2RlKSBvbiB4bWxEb2Mgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5
cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAi
ZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6
IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0
ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6
IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24geG1sRG9jIHdpdGggdG9vIGZldyBhcmd1bWVu
dHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiB4bWxEb2MgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJyZXBsYWNlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0
MikgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUp
IG9uIHhtbERvYyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFz
c2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAo
KSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgZGlkIG5vdCB0aHJvdworUEFTUyBOb2RlIGludGVy
ZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiB4bWxEb2Mgd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6
IHhtbERvYyBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlbW92ZUNoaWxkIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAoNDMpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChO
b2RlKSBvbiB4bWxEb2Mgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJv
ciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rp
b24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZv
dW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2Jq
ZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxp
bmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24geG1sRG9jIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVz
dCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogeG1sRG9jIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYWRkRXZlbnRMaXN0ZW5lciIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgKDApIAogRkFJTCBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGNhbGxpbmcgYWRkRXZlbnRMaXN0
ZW5lcihET01TdHJpbmcsRXZlbnRMaXN0ZW5lcixib29sZWFuKSBvbiB4bWxEb2Mgd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQg
d2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29k
ZV0KQEAgLTc5MywyMSArNzg3LDE1IEBAIEZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaXNE
ZWZhdWx0TmFtZXNwYWNlKERPTVN0cmluZykgb24gZG9jdW1lbnQuY3JlYXRlRG9jCiAgICAgW25h
dGl2ZSBjb2RlXQogfSIgZGlkIG5vdCB0aHJvdwogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1l
bnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5zZXJ0
QmVmb3JlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDApIAotRkFJTCBOb2RlIGludGVyZmFjZTog
Y2FsbGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVEb2N1bWVu
dEZyYWdtZW50KCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBh
c3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24g
KCkgeworRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2Rl
KSBvbiBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkgd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAxIGFy
Z3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KLX0iIHRo
cmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RG
b3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK30i
IGRpZCBub3QgdGhyb3cKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZURvY3Vt
ZW50RnJhZ21lbnQoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFwcGVuZENoaWxkIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAoNDEpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRD
aGlsZChOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkgd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQg
d2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29k
ZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24g
OCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVy
cm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24g
ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMg
bXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVh
dGVEb2N1bWVudEZyYWdtZW50KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZXBsYWNlQ2hpbGQi
IHdpdGggdGhlIHByb3BlciB0eXBlICg0MikgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5n
IHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21l
bnQoKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90
aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0g
ICAgW25hdGl2ZSBjb2RlXQotfSIgZGlkIG5vdCB0aHJvdworUEFTUyBOb2RlIGludGVyZmFjZTog
Y2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVEb2N1bWVu
dEZyYWdtZW50KCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAK
IFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgInJlbW92ZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAo
NDMpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiBk
b2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBt
dXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50
cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9i
amVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVy
cm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9k
ZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRl
RG9jdW1lbnRGcmFnbWVudCgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBl
RXJyb3IgCiBQQVNTIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRG9jdW1l
bnRGcmFnbWVudCgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYWRkRXZlbnRMaXN0ZW5lciIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgKDApIAogRkFJTCBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGNhbGxp
bmcgYWRkRXZlbnRMaXN0ZW5lcihET01TdHJpbmcsRXZlbnRMaXN0ZW5lcixib29sZWFuKSBvbiBk
b2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBt
dXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50
cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KQEAgLTkxNSwyMSAr
OTAzLDE1IEBAIEZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaXNEZWZhdWx0TmFtZXNwYWNl
KERPTVN0cmluZykgb24gZG9jdW1lbnQuZG9jdHlwZSB3CiAgICAgW25hdGl2ZSBjb2RlXQogfSIg
ZGlkIG5vdCB0aHJvdwogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuZG9jdHlwZSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgImluc2VydEJlZm9yZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQw
KSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkg
b24gZG9jdW1lbnQuZG9jdHlwZSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlw
ZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJm
dW5jdGlvbiAoKSB7CitGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShO
b2RlLE5vZGUpIG9uIGRvY3VtZW50LmRvY3R5cGUgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0
IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAxIGFyZ3VtZW50cyBm
dW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KIH0iIHRocmV3IG9iamVj
dCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJh
cmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJv
ciIpCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5kb2N0eXBlIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAiYXBwZW5kQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MSkgCi1GQUlMIE5v
ZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmRvY3R5
cGUgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhy
b3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAg
IFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RF
cnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVk
IG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBj
YWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmRvY3R5cGUgd2l0aCB0b28gZmV3
IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRv
Y3VtZW50LmRvY3R5cGUgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZXBsYWNlQ2hpbGQiIHdpdGgg
dGhlIHByb3BlciB0eXBlICg0MikgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxh
Y2VDaGlsZChOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmRvY3R5cGUgd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFy
Z3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRo
cmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAz
IiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAo
IlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChO
b2RlLE5vZGUpIG9uIGRvY3VtZW50LmRvY3R5cGUgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0
IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmRvY3R5cGUg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZW1vdmVDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
KDQzKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24g
ZG9jdW1lbnQuZG9jdHlwZSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVy
cm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5j
dGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90
Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBv
YmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTogY2Fs
bGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5kb2N0eXBlIHdpdGggdG9vIGZldyBh
cmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIEV2ZW50VGFyZ2V0IGludGVyZmFj
ZTogZG9jdW1lbnQuZG9jdHlwZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFkZEV2ZW50TGlzdGVu
ZXIiIHdpdGggdGhlIHByb3BlciB0eXBlICgwKSAKIEZBSUwgRXZlbnRUYXJnZXQgaW50ZXJmYWNl
OiBjYWxsaW5nIGFkZEV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nLEV2ZW50TGlzdGVuZXIsYm9vbGVh
bikgb24gZG9jdW1lbnQuZG9jdHlwZSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cg
VHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9u
ICJmdW5jdGlvbiAoKSB7CiAgICAgW25hdGl2ZSBjb2RlXQpAQCAtMTE4NywyMSArMTE2OSwxNSBA
QCBGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGlzRGVmYXVsdE5hbWVzcGFjZShET01TdHJp
bmcpIG9uIGVsZW1lbnQgd2l0aCB0b28gZgogICAgIFtuYXRpdmUgY29kZV0KIH0iIGRpZCBub3Qg
dGhyb3cKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGVsZW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJpbnNlcnRCZWZvcmUiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MCkgCi1GQUlMIE5vZGUgaW50
ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGVsZW1lbnQgd2l0aCB0
b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxs
ZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworRkFJTCBOb2RlIGlu
dGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBvbiBlbGVtZW50IHdpdGgg
dG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2Fs
bGVkIHdpdGggMSBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZl
IGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0
aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5
cGVFcnJvciIpCit9IiBkaWQgbm90IHRocm93CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBlbGVtZW50
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXBwZW5kQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBl
ICg0MSkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9u
IGVsZW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3Nl
cnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkg
ewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJy
b3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJU
eXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBw
ZW5kQ2hpbGQoTm9kZSkgb24gZWxlbWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhy
b3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGludGVyZmFjZTogZWxlbWVudCBtdXN0IGluaGVyaXQg
cHJvcGVydHkgInJlcGxhY2VDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQyKSAKLUZBSUwg
Tm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24gZWxlbWVu
dCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJv
d3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAg
W25hdGl2ZSBjb2RlXQotfSIgZGlkIG5vdCB0aHJvdworUEFTUyBOb2RlIGludGVyZmFjZTogY2Fs
bGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiBlbGVtZW50IHdpdGggdG9vIGZldyBhcmd1
bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBlbGVtZW50
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVtb3ZlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBl
ICg0MykgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9u
IGVsZW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3Nl
cnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkg
ewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJy
b3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJU
eXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVt
b3ZlQ2hpbGQoTm9kZSkgb24gZWxlbWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhy
b3cgVHlwZUVycm9yIAogUEFTUyBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGVsZW1lbnQgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJhZGRFdmVudExpc3RlbmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAo
MCkgCiBGQUlMIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogY2FsbGluZyBhZGRFdmVudExpc3RlbmVy
KERPTVN0cmluZyxFdmVudExpc3RlbmVyLGJvb2xlYW4pIG9uIGVsZW1lbnQgd2l0aCB0b28gZmV3
IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0
aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0K
QEAgLTE0MDksMjEgKzEzODUsMTUgQEAgRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpc0Rl
ZmF1bHROYW1lc3BhY2UoRE9NU3RyaW5nKSBvbiBkb2N1bWVudC5jcmVhdGVUZXgKICAgICBbbmF0
aXZlIGNvZGVdCiB9IiBkaWQgbm90IHRocm93CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJpbnNlcnRCZWZv
cmUiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MCkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxs
aW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJh
YmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90
aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CitG
QUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3Qg
dGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDEgYXJndW1lbnRzIGZ1
bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAgICAgW25hdGl2ZSBjb2RlXQogfSIgdGhyZXcgb2JqZWN0
ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFy
Y2h5UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9y
IikKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhYmMiKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgImFwcGVuZENoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAo
NDEpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiBk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0
IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBm
dW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVj
dCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJh
cmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJv
ciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3Qg
dGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUoImFiYyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVwbGFjZUNoaWxkIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAoNDIpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNl
Q2hpbGQoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgd2l0aCB0
b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxs
ZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUg
Y29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9N
IEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAi
VHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJl
cGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhYmMiKSB3
aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGlu
dGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoImFiYyIpIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAicmVtb3ZlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MykgCi1GQUlMIE5vZGUg
aW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9y
IGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlv
biAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91
bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmpl
Y3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGlu
ZyByZW1vdmVDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgd2l0
aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgRXZlbnRUYXJn
ZXQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJhZGRFdmVudExpc3RlbmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMCkgCiBG
QUlMIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogY2FsbGluZyBhZGRFdmVudExpc3RlbmVyKERPTVN0
cmluZyxFdmVudExpc3RlbmVyLGJvb2xlYW4pIG9uIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJh
YmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90
aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAg
ICAgW25hdGl2ZSBjb2RlXQpAQCAtMTU0MywyMSArMTUxMywxNSBAQCBGQUlMIE5vZGUgaW50ZXJm
YWNlOiBjYWxsaW5nIGlzRGVmYXVsdE5hbWVzcGFjZShET01TdHJpbmcpIG9uIHhtbERvYy5jcmVh
dGVQcm9jZQogICAgIFtuYXRpdmUgY29kZV0KIH0iIGRpZCBub3QgdGhyb3cKIFBBU1MgTm9kZSBp
bnRlcmZhY2U6IHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oImFiYyIsICJkZWYi
KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImluc2VydEJlZm9yZSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgKDQwKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUs
Tm9kZSkgb24geG1sRG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiYWJjIiwgImRlZiIp
IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93
czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKK0ZBSUwg
Tm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24geG1sRG9j
LmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiYWJjIiwgImRlZiIpIHdpdGggdG9vIGZldyBh
cmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGgg
MSBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCiB9
IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRp
b24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJv
ciIgKCJUeXBlRXJyb3IiKQogUEFTUyBOb2RlIGludGVyZmFjZTogeG1sRG9jLmNyZWF0ZVByb2Nl
c3NpbmdJbnN0cnVjdGlvbigiYWJjIiwgImRlZiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXBw
ZW5kQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MSkgCi1GQUlMIE5vZGUgaW50ZXJmYWNl
OiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24oImFiYyIsICJkZWYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cg
VHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9u
ICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJv
cjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVx
dWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BB
U1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24geG1sRG9jLmNy
ZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiYWJjIiwgImRlZiIpIHdpdGggdG9vIGZldyBhcmd1
bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiB4bWxEb2Mu
Y3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJhYmMiLCAiZGVmIikgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJyZXBsYWNlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MikgCi1GQUlMIE5v
ZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIHhtbERvYy5j
cmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oImFiYyIsICJkZWYiKSB3aXRoIHRvbyBmZXcgYXJn
dW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAg
YXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIg
dGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9u
IDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3Ii
ICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxk
KE5vZGUsTm9kZSkgb24geG1sRG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiYWJjIiwg
ImRlZiIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNT
IE5vZGUgaW50ZXJmYWNlOiB4bWxEb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJhYmMi
LCAiZGVmIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZW1vdmVDaGlsZCIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgKDQzKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQo
Tm9kZSkgb24geG1sRG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiYWJjIiwgImRlZiIp
IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93
czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBb
bmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00g
RXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9y
IiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxk
KE5vZGUpIG9uIHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oImFiYyIsICJkZWYi
KSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBFdmVu
dFRhcmdldCBpbnRlcmZhY2U6IHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oImFi
YyIsICJkZWYiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFkZEV2ZW50TGlzdGVuZXIiIHdpdGgg
dGhlIHByb3BlciB0eXBlICgwKSAKIEZBSUwgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBjYWxsaW5n
IGFkZEV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nLEV2ZW50TGlzdGVuZXIsYm9vbGVhbikgb24geG1s
RG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiYWJjIiwgImRlZiIpIHdpdGggdG9vIGZl
dyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdp
dGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVd
CkBAIC0xNjczLDIxICsxNjM3LDE1IEBAIEZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaXNE
ZWZhdWx0TmFtZXNwYWNlKERPTVN0cmluZykgb24gZG9jdW1lbnQuY3JlYXRlQ29tCiAgICAgW25h
dGl2ZSBjb2RlXQogfSIgZGlkIG5vdCB0aHJvdwogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1l
bnQuY3JlYXRlQ29tbWVudCgiYWJjIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJpbnNlcnRCZWZv
cmUiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MCkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxs
aW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFi
YyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Ro
cm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKK0ZB
SUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24gZG9j
dW1lbnQuY3JlYXRlQ29tbWVudCgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRo
cm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAxIGFyZ3VtZW50cyBmdW5j
dGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KIH0iIHRocmV3IG9iamVjdCAi
RXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNo
eVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIp
CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVDb21tZW50KCJhYmMiKSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgImFwcGVuZENoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDEp
IAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiBkb2N1
bWVudC5jcmVhdGVDb21tZW50KCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhy
b3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0
aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJF
cnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5
UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikK
K1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24gZG9jdW1l
bnQuY3JlYXRlQ29tbWVudCgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93
IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQo
ImFiYyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVwbGFjZUNoaWxkIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAoNDIpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQo
Tm9kZSxOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVDb21tZW50KCJhYmMiKSB3aXRoIHRvbyBmZXcg
YXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRo
IDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQot
fSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0
aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJy
b3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNo
aWxkKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiYWJjIikgd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6
IGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVt
b3ZlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MykgCi1GQUlMIE5vZGUgaW50ZXJmYWNl
OiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFi
YyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Ro
cm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAg
ICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBE
T00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVy
cm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNo
aWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIpIHdpdGggdG9vIGZldyBh
cmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIEV2ZW50VGFyZ2V0IGludGVyZmFj
ZTogZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiYWJjIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJh
ZGRFdmVudExpc3RlbmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMCkgCiBGQUlMIEV2ZW50VGFy
Z2V0IGludGVyZmFjZTogY2FsbGluZyBhZGRFdmVudExpc3RlbmVyKERPTVN0cmluZyxFdmVudExp
c3RlbmVyLGJvb2xlYW4pIG9uIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIpIHdpdGggdG9v
IGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVk
IHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNv
ZGVdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9ub2Rlcy9Ob2RlLWFwcGVuZENoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtYXBwZW5kQ2hp
bGQtZXhwZWN0ZWQudHh0CmluZGV4IDNhMjg5ZTgzMmU2YTJkOTQ4OTBjMDI0YTU2MTQ5NjhjMDE0
NTkzYmQuLmIxMzBjYWZmZDg0ODI3NjRmNzBjMzQwM2U0ZjA4MDI4OWEyYTkwZTAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVz
L05vZGUtYXBwZW5kQ2hpbGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtYXBwZW5kQ2hpbGQtZXhwZWN0
ZWQudHh0CkBAIC0xLDEyICsxLDEyIEBACiAKIAotRkFJTCBXZWJJREwgdGVzdHMgYXNzZXJ0X3Ro
cm93czogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChu
dWxsKSB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9u
IDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVF
cnJvciIpCitQQVNTIFdlYklETCB0ZXN0cyAKIFBBU1MgQXBwZW5kaW5nIHRvIGEgbGVhZiBub2Rl
LiAKLUZBSUwgQXBwZW5kaW5nIG51bGwgdG8gYSB0ZXh0IG5vZGUgYXNzZXJ0X3Rocm93czogZnVu
Y3Rpb24gImZ1bmN0aW9uICgpIHsgbm9kZS5hcHBlbmRDaGlsZChudWxsKSB9IiB0aHJldyBvYmpl
Y3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVy
YXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJy
b3IiKQorUEFTUyBBcHBlbmRpbmcgbnVsbCB0byBhIHRleHQgbm9kZSAKIFBBU1MgQXBwZW5kaW5n
IHRvIGEgdGV4dCBub2RlIAotRkFJTCBBcHBlbmRpbmcgbnVsbCB0byBhIGNvbW1lbnQgYXNzZXJ0
X3Rocm93czogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgbm9kZS5hcHBlbmRDaGlsZChudWxsKSB9
IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRp
b24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJv
ciIgKCJUeXBlRXJyb3IiKQorUEFTUyBBcHBlbmRpbmcgbnVsbCB0byBhIGNvbW1lbnQgCiBQQVNT
IEFwcGVuZGluZyB0byBhIGNvbW1lbnQgCi1GQUlMIEFwcGVuZGluZyBudWxsIHRvIGEgZG9jdHlw
ZSBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyBub2RlLmFwcGVuZENoaWxk
KG51bGwpIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9N
IEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAi
VHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIEFwcGVuZGluZyBudWxsIHRvIGEgZG9jdHlw
ZSAKIFBBU1MgQXBwZW5kaW5nIHRvIGEgZG9jdHlwZSAKIFBBU1MgQXBwZW5kaW5nIGEgZG9jdW1l
bnQgCiBQQVNTIEFkb3B0aW5nIGFuIG9ycGhhbiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtaW5zZXJ0QmVmb3Jl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZG9tL25vZGVzL05vZGUtaW5zZXJ0QmVmb3JlLWV4cGVjdGVkLnR4dAppbmRleCA1NmJjZDJh
ODBiYjM0ZDM3YWMwODRmNzc0MTY0ZjAxY2ZiZTk0YTc4Li5jNjYyMjMzZGMwNTYzODU3ZjIzYjYw
NjkwMzRhYzhmNzViOGNlYTZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLWluc2VydEJlZm9yZS1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20v
bm9kZXMvTm9kZS1pbnNlcnRCZWZvcmUtZXhwZWN0ZWQudHh0CkBAIC0xLDEyICsxLDEyIEBACiAK
LUZBSUwgQ2FsbGluZyBpbnNlcnRCZWZvcmUgd2l0aCBhIG5vbi1Ob2RlIGZpcnN0IGFyZ3VtZW50
IG11c3QgdGhyb3cgVHlwZUVycm9yLiBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24g
KCkgeyBkb2N1bWVudC5ib2R5Lmluc2VydEJlZm9yZShudWxsLCBudWxsKSB9IiB0aHJldyBvYmpl
Y3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJv
ciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCi1GQUlMIENhbGxp
bmcgaW5zZXJ0QmVmb3JlIHdpdGggYSBub24tTm9kZSBmaXJzdCBhcmd1bWVudCBvbiBhIGxlYWYg
bm9kZSBEb2N1bWVudFR5cGUgbXVzdCB0aHJvdyBUeXBlRXJyb3IuIGFzc2VydF90aHJvd3M6IGZ1
bmN0aW9uICJmdW5jdGlvbiAoKSB7IG5vZGUuaW5zZXJ0QmVmb3JlKG51bGwsIG51bGwpIH0iIHRo
cmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAz
IiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAo
IlR5cGVFcnJvciIpCitQQVNTIENhbGxpbmcgaW5zZXJ0QmVmb3JlIHdpdGggYSBub24tTm9kZSBm
aXJzdCBhcmd1bWVudCBtdXN0IHRocm93IFR5cGVFcnJvci4gCitQQVNTIENhbGxpbmcgaW5zZXJ0
QmVmb3JlIHdpdGggYSBub24tTm9kZSBmaXJzdCBhcmd1bWVudCBvbiBhIGxlYWYgbm9kZSBEb2N1
bWVudFR5cGUgbXVzdCB0aHJvdyBUeXBlRXJyb3IuIAogUEFTUyBDYWxsaW5nIGluc2VydEJlZm9y
ZSBhbiBhIGxlYWYgbm9kZSBEb2N1bWVudFR5cGUgbXVzdCB0aHJvdyBISUVSQVJDSFlfUkVRVUVT
VF9FUlIuIAotRkFJTCBDYWxsaW5nIGluc2VydEJlZm9yZSB3aXRoIGEgbm9uLU5vZGUgZmlyc3Qg
YXJndW1lbnQgb24gYSBsZWFmIG5vZGUgVGV4dCBtdXN0IHRocm93IFR5cGVFcnJvci4gYXNzZXJ0
X3Rocm93czogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgbm9kZS5pbnNlcnRCZWZvcmUobnVsbCwg
bnVsbCkgfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00g
RXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJU
eXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgQ2FsbGluZyBpbnNlcnRCZWZvcmUgd2l0aCBh
IG5vbi1Ob2RlIGZpcnN0IGFyZ3VtZW50IG9uIGEgbGVhZiBub2RlIFRleHQgbXVzdCB0aHJvdyBU
eXBlRXJyb3IuIAogUEFTUyBDYWxsaW5nIGluc2VydEJlZm9yZSBhbiBhIGxlYWYgbm9kZSBUZXh0
IG11c3QgdGhyb3cgSElFUkFSQ0hZX1JFUVVFU1RfRVJSLiAKLUZBSUwgQ2FsbGluZyBpbnNlcnRC
ZWZvcmUgd2l0aCBhIG5vbi1Ob2RlIGZpcnN0IGFyZ3VtZW50IG9uIGEgbGVhZiBub2RlIENvbW1l
bnQgbXVzdCB0aHJvdyBUeXBlRXJyb3IuIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlv
biAoKSB7IG5vZGUuaW5zZXJ0QmVmb3JlKG51bGwsIG51bGwpIH0iIHRocmV3IG9iamVjdCAiRXJy
b3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJl
cXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQ
QVNTIENhbGxpbmcgaW5zZXJ0QmVmb3JlIHdpdGggYSBub24tTm9kZSBmaXJzdCBhcmd1bWVudCBv
biBhIGxlYWYgbm9kZSBDb21tZW50IG11c3QgdGhyb3cgVHlwZUVycm9yLiAKIFBBU1MgQ2FsbGlu
ZyBpbnNlcnRCZWZvcmUgYW4gYSBsZWFmIG5vZGUgQ29tbWVudCBtdXN0IHRocm93IEhJRVJBUkNI
WV9SRVFVRVNUX0VSUi4gCi1GQUlMIENhbGxpbmcgaW5zZXJ0QmVmb3JlIHdpdGggYSBub24tTm9k
ZSBmaXJzdCBhcmd1bWVudCBvbiBhIGxlYWYgbm9kZSBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gbXVz
dCB0aHJvdyBUeXBlRXJyb3IuIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7
IG5vZGUuaW5zZXJ0QmVmb3JlKG51bGwsIG51bGwpIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhp
ZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RF
cnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIENh
bGxpbmcgaW5zZXJ0QmVmb3JlIHdpdGggYSBub24tTm9kZSBmaXJzdCBhcmd1bWVudCBvbiBhIGxl
YWYgbm9kZSBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gbXVzdCB0aHJvdyBUeXBlRXJyb3IuIAogUEFT
UyBDYWxsaW5nIGluc2VydEJlZm9yZSBhbiBhIGxlYWYgbm9kZSBQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24gbXVzdCB0aHJvdyBISUVSQVJDSFlfUkVRVUVTVF9FUlIuIAogUEFTUyBDYWxsaW5nIGluc2Vy
dEJlZm9yZSB3aXRoIGFuIGluY2x1c2l2ZSBhbmNlc3RvciBvZiB0aGUgY29udGV4dCBvYmplY3Qg
bXVzdCB0aHJvdyBISUVSQVJDSFlfUkVRVUVTVF9FUlIuIAogUEFTUyBDYWxsaW5nIGluc2VydEJl
Zm9yZSB3aXRoIGEgcmVmZXJlbmNlIGNoaWxkIHdob3NlIHBhcmVudCBpcyBub3QgdGhlIGNvbnRl
eHQgbm9kZSBtdXN0IHRocm93IGEgTm90Rm91bmRFcnJvci4gCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLXJlbW92
ZUNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZG9tL25vZGVzL05vZGUtcmVtb3ZlQ2hpbGQtZXhwZWN0ZWQudHh0CmluZGV4IDAy
OTEwYmY5Y2QyNDBhMGNkZDgzY2YxMzc2MGM0NTYwZGZkOTQzYTIuLjEzOTdjNGViZWY2Yzk3OGUx
MDNhYjMxYTM4MTZmOTJkZWRjM2VmNTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtcmVtb3ZlQ2hpbGQtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL25vZGVzL05vZGUtcmVtb3ZlQ2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0yNyw1ICsyNyw1IEBA
IFBBU1MgQ2FsbGluZyByZW1vdmVDaGlsZCBvbiBhIHRleHQgZnJvbSBhIHN5bnRoZXRpYyBkb2N1
bWVudCB3aXRoIG5vIGNoaWxkcmVuIHNoCiBQQVNTIFBhc3NpbmcgYSBkZXRhY2hlZCBjb21tZW50
IGZyb20gYSBzeW50aGV0aWMgZG9jdW1lbnQgdG8gcmVtb3ZlQ2hpbGQgc2hvdWxkIG5vdCBhZmZl
Y3QgaXQuIAogUEFTUyBQYXNzaW5nIGEgbm9uLWRldGFjaGVkIGNvbW1lbnQgZnJvbSBhIHN5bnRo
ZXRpYyBkb2N1bWVudCB0byByZW1vdmVDaGlsZCBzaG91bGQgbm90IGFmZmVjdCBpdC4gCiBQQVNT
IENhbGxpbmcgcmVtb3ZlQ2hpbGQgb24gYSBjb21tZW50IGZyb20gYSBzeW50aGV0aWMgZG9jdW1l
bnQgd2l0aCBubyBjaGlsZHJlbiBzaG91bGQgdGhyb3cgTk9UX0ZPVU5EX0VSUi4gCi1GQUlMIFBh
c3NpbmcgYSB2YWx1ZSB0aGF0IGlzIG5vdCBhIE5vZGUgcmVmZXJlbmNlIHRvIHJlbW92ZUNoaWxk
IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlv
biAoKSB7IGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobnVsbCkgfSIgdGhyZXcgb2JqZWN0ICJF
cnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBl
eHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBQYXNzaW5nIGEg
dmFsdWUgdGhhdCBpcyBub3QgYSBOb2RlIHJlZmVyZW5jZSB0byByZW1vdmVDaGlsZCBzaG91bGQg
dGhyb3cgVHlwZUVycm9yLiAKIGIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtcmVwbGFjZUNoaWxkLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25v
ZGVzL05vZGUtcmVwbGFjZUNoaWxkLWV4cGVjdGVkLnR4dAppbmRleCBlN2Y3MGZhMzZjNWMxY2Jm
OTJjN2U0YjdhNDlmYmY4YWRjYmM0ZjZkLi5kMTdjOGI1NzBlYjEyMWU5NjczNmE5YzY5NGZiMjVm
MTgxYWFmY2MwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLXJlcGxhY2VDaGlsZC1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9k
ZS1yZXBsYWNlQ2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNSBAQAogCi1GQUlMIFBhc3Np
bmcgbnVsbCB0byByZXBsYWNlQ2hpbGQgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yLiBhc3NlcnRf
dGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIGEucmVwbGFjZUNoaWxkKG51bGws
IG51bGwpOwotICB9IiBkaWQgbm90IHRocm93CitQQVNTIFBhc3NpbmcgbnVsbCB0byByZXBsYWNl
Q2hpbGQgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yLiAKIEZBSUwgSWYgY2hpbGQncyBwYXJlbnQg
aXMgbm90IHRoZSBjb250ZXh0IG5vZGUsIGEgTm90Rm91bmRFcnJvciBleGNlcHRpb24gc2hvdWxk
IGJlIHRocm93biBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIGEu
cmVwbGFjZUNoaWxkKGEsIGMpOwogICB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlS
ZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24g
Tm90Rm91bmRFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDMsIGV4cGVjdGVkIDgK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDJlNThhZTYzNTE5YTc1NTM3ZWRkMmQ4OTc0MTBmMjI1NjAwYzM2YzYuLjA0NjIyMDM1OWFh
MTA4OGU5OTUwNjEwYjFmMTQ3NDZlMmJlMWQ2N2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vaW50ZXJmYWNlcy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dApAQCAtMTIyNSwyMSArMTIyNSwxNSBAQCBG
QUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGlzRGVmYXVsdE5hbWVzcGFjZShET01TdHJpbmcp
IG9uIGlmcmFtZS5jb250ZW50RG9jdQogICAgIFtuYXRpdmUgY29kZV0KIH0iIGRpZCBub3QgdGhy
b3cKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGlmcmFtZS5jb250ZW50RG9jdW1lbnQgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJpbnNlcnRCZWZvcmUiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MCkgCi1G
QUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGlm
cmFtZS5jb250ZW50RG9jdW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5
cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAi
ZnVuY3Rpb24gKCkgeworRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZvcmUo
Tm9kZSxOb2RlKSBvbiBpZnJhbWUuY29udGVudERvY3VtZW50IHdpdGggdG9vIGZldyBhcmd1bWVu
dHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMSBhcmd1
bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJl
dyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91
bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCit9IiB0
aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24g
MyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIg
KCJUeXBlRXJyb3IiKQogUEFTUyBOb2RlIGludGVyZmFjZTogaWZyYW1lLmNvbnRlbnREb2N1bWVu
dCBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFwcGVuZENoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAoNDEpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBv
biBpZnJhbWUuY29udGVudERvY3VtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rp
b24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVy
cm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4
cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJm
YWNlOiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGlmcmFtZS5jb250ZW50RG9jdW1lbnQg
d2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBp
bnRlcmZhY2U6IGlmcmFtZS5jb250ZW50RG9jdW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJy
ZXBsYWNlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MikgCi1GQUlMIE5vZGUgaW50ZXJm
YWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIGlmcmFtZS5jb250ZW50RG9j
dW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRf
dGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewot
ICAgIFtuYXRpdmUgY29kZV0KLX0iIGRpZCBub3QgdGhyb3cKK1BBU1MgTm9kZSBpbnRlcmZhY2U6
IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24gaWZyYW1lLmNvbnRlbnREb2N1bWVu
dCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2Rl
IGludGVyZmFjZTogaWZyYW1lLmNvbnRlbnREb2N1bWVudCBtdXN0IGluaGVyaXQgcHJvcGVydHkg
InJlbW92ZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDMpIAotRkFJTCBOb2RlIGludGVy
ZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiBpZnJhbWUuY29udGVudERvY3VtZW50
IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93
czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBb
bmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00g
RXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9y
IiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxk
KE5vZGUpIG9uIGlmcmFtZS5jb250ZW50RG9jdW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBt
dXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBpZnJhbWUu
Y29udGVudERvY3VtZW50IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYWRkRXZlbnRMaXN0ZW5lciIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgKDApIAogRkFJTCBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGNh
bGxpbmcgYWRkRXZlbnRMaXN0ZW5lcihET01TdHJpbmcsRXZlbnRMaXN0ZW5lcixib29sZWFuKSBv
biBpZnJhbWUuY29udGVudERvY3VtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rp
b24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCkBAIC0xNTUxLDIxICsxNTQ1LDE1
IEBAIEZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaXNEZWZhdWx0TmFtZXNwYWNlKERPTVN0
cmluZykgb24gZG9jdW1lbnQuaW1wbGVtZW50CiAgICAgW25hdGl2ZSBjb2RlXQogfSIgZGlkIG5v
dCB0aHJvdwogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3Jl
YXRlRG9jdW1lbnQobnVsbCwgIiIsIG51bGwpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5zZXJ0
QmVmb3JlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDApIAotRkFJTCBOb2RlIGludGVyZmFjZTog
Y2FsbGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5pbXBsZW1lbnRhdGlv
bi5jcmVhdGVEb2N1bWVudChudWxsLCAiIiwgbnVsbCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBt
dXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50
cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBp
bnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVE
b2N1bWVudChudWxsLCAiIiwgbnVsbCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93
IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAxIGFyZ3VtZW50cyBmdW5jdGlv
biAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJy
b3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhw
ZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK30iIHRocmV3IG9iamVjdCAi
RXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNo
eVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIp
CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1
bWVudChudWxsLCAiIiwgbnVsbCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhcHBlbmRDaGlsZCIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQxKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcg
YXBwZW5kQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1l
bnQobnVsbCwgIiIsIG51bGwpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBl
RXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1
bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBO
b3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVk
IG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBj
YWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0
ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhy
b3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuaW1wbGVtZW50YXRp
b24uY3JlYXRlRG9jdW1lbnQobnVsbCwgIiIsIG51bGwpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
cmVwbGFjZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDIpIAotRkFJTCBOb2RlIGludGVy
ZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5pbXBsZW1l
bnRhdGlvbi5jcmVhdGVEb2N1bWVudChudWxsLCAiIiwgbnVsbCkgd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFy
Z3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIGRp
ZCBub3QgdGhyb3cKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5v
ZGUsTm9kZSkgb24gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwg
IiIsIG51bGwpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQ
QVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVu
dChudWxsLCAiIiwgbnVsbCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZW1vdmVDaGlsZCIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgKDQzKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVt
b3ZlQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQo
bnVsbCwgIiIsIG51bGwpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJy
b3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0
aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RG
b3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9i
amVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxs
aW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURv
Y3VtZW50KG51bGwsICIiLCBudWxsKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cg
VHlwZUVycm9yIAogUEFTUyBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGRvY3VtZW50LmltcGxlbWVu
dGF0aW9uLmNyZWF0ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgImFkZEV2ZW50TGlzdGVuZXIiIHdpdGggdGhlIHByb3BlciB0eXBlICgwKSAKIEZBSUwgRXZl
bnRUYXJnZXQgaW50ZXJmYWNlOiBjYWxsaW5nIGFkZEV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nLEV2
ZW50TGlzdGVuZXIsYm9vbGVhbikgb24gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9j
dW1lbnQobnVsbCwgIiIsIG51bGwpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBU
eXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24g
ImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCkBAIC0yMTcxLDIxICsyMTU5LDE1IEBA
IEZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaXNEZWZhdWx0TmFtZXNwYWNlKERPTVN0cmlu
Zykgb24gZG9jdW1lbnQuY3JlYXRlRWxlCiAgICAgW25hdGl2ZSBjb2RlXQogfSIgZGlkIG5vdCB0
aHJvdwogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibm9zY3Jp
cHQiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImluc2VydEJlZm9yZSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgKDQwKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5v
ZGUsTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibm9zY3JpcHQiKSB3aXRoIHRvbyBm
ZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3
aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CitGQUlMIE5vZGUgaW50ZXJm
YWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoIm5vc2NyaXB0Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVF
cnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAxIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVu
Y3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5v
dEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQg
b2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK30iIGRpZCBub3QgdGhyb3cKIFBBU1Mg
Tm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm5vc2NyaXB0IikgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJhcHBlbmRDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQxKSAK
LUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgibm9zY3JpcHQiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3Qg
dGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1
bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0
ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3Ii
KSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGlu
dGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJub3NjcmlwdCIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJy
b3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJub3Njcmlw
dCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVwbGFjZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAoNDIpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9k
ZSxOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJub3NjcmlwdCIpIHdpdGggdG9vIGZl
dyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdp
dGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVd
Ci19IiBkaWQgbm90IHRocm93CitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VD
aGlsZChOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm5vc2NyaXB0Iikgd2l0
aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRl
cmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm5vc2NyaXB0IikgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJyZW1vdmVDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQzKSAKLUZBSUwgTm9k
ZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgibm9zY3JpcHQiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlw
ZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJm
dW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjog
Tm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3Rl
ZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTog
Y2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJub3Nj
cmlwdCIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNT
IEV2ZW50VGFyZ2V0IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibm9zY3JpcHQi
KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFkZEV2ZW50TGlzdGVuZXIiIHdpdGggdGhlIHByb3Bl
ciB0eXBlICgwKSAKIEZBSUwgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBjYWxsaW5nIGFkZEV2ZW50
TGlzdGVuZXIoRE9NU3RyaW5nLEV2ZW50TGlzdGVuZXIsYm9vbGVhbikgb24gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgibm9zY3JpcHQiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cg
VHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9u
ICJmdW5jdGlvbiAoKSB7CiAgICAgW25hdGl2ZSBjb2RlXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvanMvZG9tL2RvdC1ub2RlLWJhc2UtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2pzL2RvbS9kb3Qtbm9kZS1iYXNlLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKaW5kZXggZjQ0
MDZjYmZlZDM2MWQ2N2I5YzU2ZTc1YjE5ZTE4MzI4YWIzYmNkMi4uMzZkNTNiNGViODE1YTFhZDNi
ODBjZGM3N2YxMDA4OWMzMjcwMzAwZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvZG9tL2Rv
dC1ub2RlLWJhc2UtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9qcy9k
b20vZG90LW5vZGUtYmFzZS1leGNlcHRpb24tZXhwZWN0ZWQudHh0CkBAIC0zLDcgKzMsNyBAQCBU
aGlzIHRlc3QgY2hlY2tzIHRoYXQgYSBjb3JyZWN0IGV4Y2VwdGlvbiBpcyByYWlzZWQgd2hlbiBj
YWxjdWxhdGluZyB0aGUgYmFzZSB2YQogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBB
U1MgKGRvY3VtZW50LmFwcGVuZENoaWxkKCkpLmZvb2JhcigpIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4LgorUEFTUyAoZG9jdW1lbnQuYXBwZW5k
Q2hpbGQoKSkuZm9vYmFyKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4K
IFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9kb3Qtbm9kZS1iYXNlLWV4Y2Vw
dGlvbi5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvZG90LW5vZGUtYmFzZS1l
eGNlcHRpb24uanMKaW5kZXggOWYzNjJhN2Y3ODgxN2JjYjhmYzdjODdlZDI2YzYzY2YyYTc4YTE5
NS4uNzFkNDcxOTk5NzU2NTg0MzI5YjhkZGNkNzQ3Yzc3NzFlNDQwNzUxYiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9kb3Qtbm9kZS1iYXNlLWV4Y2VwdGlvbi5q
cworKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2RvdC1ub2RlLWJhc2UtZXhj
ZXB0aW9uLmpzCkBAIC0zLDQgKzMsNCBAQCBkZXNjcmlwdGlvbigKICk7CiAKIC8vIFNob3VsZCBi
ZSBhIERPTSBleGNlcHRpb24sIG5vdCBqdXN0IHNvbWUgIlR5cGVFcnJvcjogTnVsbCB2YWx1ZSIu
Ci1zaG91bGRUaHJvdygnKGRvY3VtZW50LmFwcGVuZENoaWxkKCkpLmZvb2JhcigpJywgJyJFcnJv
cjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IicpOworc2hvdWxkVGhyb3coJyhkb2N1
bWVudC5hcHBlbmRDaGlsZCgpKS5mb29iYXIoKScsICciVHlwZUVycm9yOiBUeXBlIGVycm9yIicp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260858</attachid>
            <date>2015-09-09 07:57:07 -0700</date>
            <delta_ts>2015-09-09 08:25:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148971-20150909075700.patch</filename>
            <type>text/plain</type>
            <size>248966</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NTQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmZhNWUxZjViM2Q3ODg0
M2IyZGQyYWQxOTc2NTRiNThjMTU0ZTc4Yi4uYzliMzZkZTJhNDY5MTg1M2U4ZmU0OWQ3NDRkZDZl
Y2U3YzBmZTE1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE1LTA5LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTm9kZS5hcHBlbmRDaGlsZChu
dWxsKSAvIHJlcGxhY2VDaGlsZChudWxsLCBudWxsKSAvIHJlbW92ZUNoaWxkKG51bGwpIC8gaW5z
ZXJ0QmVmb3JlKG51bGwsIHJlZikgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg5NzEKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzIyNTYwODgzPgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjI1NTkyMjU+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm9kZS5h
cHBlbmRDaGlsZChudWxsKSAvIHJlcGxhY2VDaGlsZChudWxsLCBudWxsKSAvIHJlbW92ZUNoaWxk
KG51bGwpCisgICAgICAgIGFuZCBpbnNlcnRCZWZvcmUobnVsbCwgcmVmKSBzaG91bGQgdGhyb3cg
YSBUeXBlRXJyb3IgaW5zdGVhZCBvZiBhCisgICAgICAgIE5vdEZvdW5kRXJyb3IsIGFzIHBlciB0
aGUgc3BlY2lmaWNhdGlvbjoKKyAgICAgICAgaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNu
b2RlCisKKyAgICAgICAgVGhlIHBhcmFtZXRlcnMgYXJlIG5vdCBudWxsYWJsZSBzbyB0aGUgV2Vi
IElETCBzcGVjaWZpY2F0aW9uIHNheXMKKyAgICAgICAgd2Ugc2hvdWxkIHRocm93IGEgVHlwZUVy
cm9yIGluIHRoaXMgY2FzZS4KKworICAgICAgICBUaGlzIHBhdGNoIG1vdmVzIHRoZSBudWxsLWNo
ZWNraW5nIGZyb20gQ29udGFpbmVyTm9kZSB0byB0aGUgbWV0aG9kcworICAgICAgICBvbiBOb2Rl
LiBUaGUgbnVsbC1jaGVja2luZyBpcyBzdXBwb3NlZCB0byBiZSBkb25lIGJ5IHRoZSBiaW5kaW5n
cyBjb2RlCisgICAgICAgIGJ1dCBvdXIgZ2VuZXJhdG9yIGN1cnJlbnRseSBkb2VzIG5vdCBzdXBw
b3J0IHRoaXMgc28gd2UgZG8gdGhlIG51bGwKKyAgICAgICAgY2hlY2tpbmcgYXMgY2xvc2UgdG8g
dGhlIGJpbmRpbmdzIGFzIHBvc3NpYmxlLiBUaGUgYmluZGluZ3MgY29kZSBpcworICAgICAgICBj
YWxsaW5nIHRoZSBtZXRob2RzIG9uIE5vZGUuIFRoaXMgYWxzbyBtYWtlcyBzdXJlIHdlIHRocm93
IGEgVHlwZUVycm9yCisgICAgICAgIGZvciBudWxsLWFyZ3VtZW50IHdoZW4gdGhlIE5vZGUgaXMg
bm90IGEgQ29udGFpbmVyTm9kZS4gRm9yIGUuZy4KKyAgICAgICAgVGV4dC5hcHBlbmRDaGlsZChu
dWxsKSBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3IgdG9vLgorCisgICAgICAgIFRoZSBtZXRob2Rz
IG9uIENvbnRhaW5lck5vZGUgbm93IHRha2UgcmVmZXJlbmNlcyBpbnN0ZWFhZCBvZiBwb2ludGVy
CisgICAgICAgIHBhcmFtZXRlcnMgbm93IHRoYXQgdGhlIG51bGwtY2hlY2tpbmcgaXMgZG9uZSBh
dCB0aGUgY2FsbCBzaXRlIGluCisgICAgICAgIE5vZGUuIFRoaXMgbGVhZCB0byBhIGxvdCBvZiBj
b2RlIHVwZGF0ZSBhcyB0aG9zZSBtZXRob2RzIGFyZSB1c2VkCisgICAgICAgIGEgbG90IHRocm91
Z2hvdXQgdGhlIGNvZGUgYmFzZS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGFscmVhZHkgY292
ZXJlZCBieSBwcmUtZXhpc3RpbmcgbGF5b3V0IHRlc3RzLgorCiAyMDE1LTA5LTA4ICBEYXZpZCBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OOiBJbmxpbmUtYmxv
Y2sgYmFzZWxpbmUgaXMgd3Jvbmcgd2hlbiB6ZXJvLXdpZHRoIHJlcGxhY2VkIGNoaWxkIGlzIHBy
ZXNlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA2MGFkZjczMmFjODdhYmUwNDEyMjcxM2NmMzU5MTcw
ODMxZGM5ZTE1Li5mODI3OTRjYTUwNmNjNDI4MzQ1MDZjYjA1NmJjZGYwNmE2Y2M2MmQ1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTUtMDktMDggIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBOb2RlLmFwcGVuZENoaWxkKG51bGwpIC8gcmVw
bGFjZUNoaWxkKG51bGwsIG51bGwpIC8gcmVtb3ZlQ2hpbGQobnVsbCkgLyBpbnNlcnRCZWZvcmUo
bnVsbCwgcmVmKSBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3IKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODk3MQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMjI1NjA4ODM+CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjU1OTIyNT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb250YWluZXJOb2RlOjph
cHBlbmRDaGlsZCgpIG5vdyB0YWtlcyBhIFJlZjxOb2RlPiYmIHBhcmFtZXRlciBzbyB3ZQorICAg
ICAgICBuZWVkIHRvIHVwZGF0ZSB0aGUgY2FsbCBzaXRlLgorCisgICAgICAgICogV2ViVmlldy9X
ZWJGcmFtZS5tbToKKyAgICAgICAgKC1bV2ViRnJhbWUgX2RvY3VtZW50RnJhZ21lbnRXaXRoTm9k
ZXNBc1BhcmFncmFwaHM6XSk6CisKIDIwMTUtMDktMDcgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBw
bGUuY29tPgogCiAgICAgICAgIFtNYWNdIERlYnVnUmVsZWFzZSBidWlsZHMgc2hvdWxkIGxpbmsg
YWdhaW5zdCBsaWJXZWJLaXRTeXN0ZW1JbnRlcmZhY2VFbENhcGl0YW4uYSBvbiAxMC4xMQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCmluZGV4IDI0MTkyNWQxMDkxYTZiNGQ4ZmRlNGQ1Y2FiZTlmNzdlNjk0ZWMwY2UuLjhkOGM5
YWEwMjA5YzNkYTdjMmZlZDgwMTRjMzQ1ZTUwZmI5ZmYxNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMyBAQAorMjAxNS0wOS0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisg
ICAgICAgIE5vZGUuYXBwZW5kQ2hpbGQobnVsbCkgLyByZXBsYWNlQ2hpbGQobnVsbCwgbnVsbCkg
LyByZW1vdmVDaGlsZChudWxsKSAvIGluc2VydEJlZm9yZShudWxsLCByZWYpIHNob3VsZCB0aHJv
dyBhIFR5cGVFcnJvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQ4OTcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjU2MDg4Mz4KKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzIyNTU5MjI1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIENvbnRhaW5lck5vZGU6OmFwcGVuZENoaWxkKCkgbm93IHRha2Vz
IGEgUmVmPE5vZGU+JiYgcGFyYW1ldGVyIHNvIHdlCisgICAgICAgIG5lZWQgdG8gdXBkYXRlIHRo
ZSBjYWxsIHNpdGVzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVn
aW4ubW06CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6UERGUGx1Z2luKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkFubm90YXRpb24ubW06CisgICAgICAg
IChXZWJLaXQ6OlBERlBsdWdpbkFubm90YXRpb246OmF0dGFjaCk6CisgICAgICAgIChXZWJLaXQ6
OlBERlBsdWdpbkFubm90YXRpb246On5QREZQbHVnaW5Bbm5vdGF0aW9uKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24ubW06CisgICAg
ICAgIChXZWJLaXQ6OlBERlBsdWdpbkNob2ljZUFubm90YXRpb246OmNyZWF0ZUFubm90YXRpb25F
bGVtZW50KToKKwogMjAxNS0wOS0wOCAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+
CiAKICAgICAgICAgW01hY10gRXhwb3NlIEVuYWJsZS9EaXNhYmxlIEFjY2VsZXJhdGVkIERyYXdp
bmcgaW4gTWluaUJyb3dzZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1
Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAKaW5kZXggOGY5NmM5ZjAyOGM3
MjhmZGEwM2JiNTBhN2VlOTZiYWZjM2RhOTA1Yi4uYjQ0Y2ZkMjA4NTllNzRlMTMxN2E5MzRhMTVj
NTc2Njk4YjdlMTdiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5z
L1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAKQEAgLTgxLDkgKzgxLDkgQEAg
Ym9vbCBZb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQ6Omluc3RhbGxSZXBsYWNlbWVudChTaGFkb3dS
b290KiByb290KQogewogICAgIG1fZW1iZWRTaGFkb3dFbGVtZW50ID0gWW91VHViZUVtYmVkU2hh
ZG93RWxlbWVudDo6Y3JlYXRlKG1fcGFyZW50RWxlbWVudC0+ZG9jdW1lbnQoKSk7CiAKLSAgICBy
b290LT5hcHBlbmRDaGlsZChtX2VtYmVkU2hhZG93RWxlbWVudC5nZXQoKSk7CisgICAgcm9vdC0+
YXBwZW5kQ2hpbGQoKm1fZW1iZWRTaGFkb3dFbGVtZW50KTsKIAotICAgIFJlZlB0cjxIVE1MSUZy
YW1lRWxlbWVudD4gaWZyYW1lRWxlbWVudCA9IEhUTUxJRnJhbWVFbGVtZW50OjpjcmVhdGUoSFRN
TE5hbWVzOjppZnJhbWVUYWcsIG1fcGFyZW50RWxlbWVudC0+ZG9jdW1lbnQoKSk7CisgICAgUmVm
PEhUTUxJRnJhbWVFbGVtZW50PiBpZnJhbWVFbGVtZW50ID0gSFRNTElGcmFtZUVsZW1lbnQ6OmNy
ZWF0ZShIVE1MTmFtZXM6OmlmcmFtZVRhZywgbV9wYXJlbnRFbGVtZW50LT5kb2N1bWVudCgpKTsK
ICAgICBpZiAobV9hdHRyaWJ1dGVzLmNvbnRhaW5zKCJ3aWR0aCIpKQogICAgICAgICBpZnJhbWVF
bGVtZW50LT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjp3aWR0aEF0dHIsIEF0b21pY1N0cmluZygi
MTAwJSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAKQEAgLTk4
LDcgKzk4LDcgQEAgYm9vbCBZb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQ6Omluc3RhbGxSZXBsYWNl
bWVudChTaGFkb3dSb290KiByb290KQogICAgIAogICAgIC8vIERpc2FibGUgZnJhbWUgZmxhdHRl
bmluZyBmb3IgdGhpcyBpZnJhbWUuCiAgICAgaWZyYW1lRWxlbWVudC0+c2V0QXR0cmlidXRlKEhU
TUxOYW1lczo6c2Nyb2xsaW5nQXR0ciwgQXRvbWljU3RyaW5nKCJubyIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBtX2VtYmVkU2hhZG93RWxlbWVudC0+YXBwZW5k
Q2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAgbV9lbWJlZFNoYWRvd0VsZW1lbnQtPmFwcGVuZENo
aWxkKFdURjo6bW92ZShpZnJhbWVFbGVtZW50KSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTC5tbSBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTC5tbQppbmRleCAwZGUyMmNlM2NkYWM0Zjc4
OGE3ZmRhN2NmMDQ1NTcwNmEwOTA1YmZjLi4wMjc1OTVlMWU5MWIyZjNhYTYyOGUyOTM2MTViYTUx
ZDJmZjA1OWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhU
TUwubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MLm1tCkBAIC0x
NTIsNyArMTUyLDcgQEAgLSAoRE9NRG9jdW1lbnRGcmFnbWVudCAqKWNyZWF0ZURvY3VtZW50RnJh
Z21lbnRXaXRoTWFya3VwU3RyaW5nOihOU1N0cmluZyAqKW1hcmsKIC0gKERPTURvY3VtZW50RnJh
Z21lbnQgKiljcmVhdGVEb2N1bWVudEZyYWdtZW50V2l0aFRleHQ6KE5TU3RyaW5nICopdGV4dAog
ewogICAgIC8vIEZJWE1FOiBTaW5jZSB0aGlzIGlzIG5vdCBhIGNvbnRleHR1YWwgZnJhZ21lbnQs
IGl0IHdvbid0IGhhbmRsZSB3aGl0ZXNwYWNlIHByb3Blcmx5LgotICAgIHJldHVybiBraXQoY3Jl
YXRlRnJhZ21lbnRGcm9tVGV4dChjb3JlKHNlbGYpLT5jcmVhdGVSYW5nZSgpLCB0ZXh0KS5nZXQo
KSk7CisgICAgcmV0dXJuIGtpdChjcmVhdGVGcmFnbWVudEZyb21UZXh0KGNvcmUoc2VsZiktPmNy
ZWF0ZVJhbmdlKCksIHRleHQpLnB0cigpKTsKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0F0dHIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwCmluZGV4
IDE4NTcwZjFkODc0MzFhMWYzYTQ0ZGEwM2U1OGEyZWM1ZmY3MWE3OGMuLmFjN2I2NmY5OTcwNWQ4
OTllZWNlM2MyODk0Zjg5ZTFmODA5ZDE1ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9BdHRyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5jcHAKQEAgLTEzOCwxMSAr
MTM4LDExIEBAIHZvaWQgQXR0cjo6c2V0Tm9kZVZhbHVlKGNvbnN0IFN0cmluZyYgdiwgRXhjZXB0
aW9uQ29kZSYgZWMpCiAgICAgc2V0VmFsdWUodiwgZWMpOwogfQogCi1SZWZQdHI8Tm9kZT4gQXR0
cjo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3Bl
cmF0aW9uKQorUmVmPE5vZGU+IEF0dHI6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJn
ZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikKIHsKLSAgICBSZWZQdHI8QXR0cj4gY2xvbmUg
PSBhZG9wdFJlZihuZXcgQXR0cih0YXJnZXREb2N1bWVudCwgcXVhbGlmaWVkTmFtZSgpLCB2YWx1
ZSgpKSk7Ci0gICAgY2xvbmVDaGlsZE5vZGVzKGNsb25lLmdldCgpKTsKLSAgICByZXR1cm4gY2xv
bmUucmVsZWFzZSgpOworICAgIFJlZjxBdHRyPiBjbG9uZSA9IGFkb3B0UmVmKCpuZXcgQXR0cih0
YXJnZXREb2N1bWVudCwgcXVhbGlmaWVkTmFtZSgpLCB2YWx1ZSgpKSk7CisgICAgY2xvbmVDaGls
ZE5vZGVzKGNsb25lKTsKKyAgICByZXR1cm4gV1RGOjptb3ZlKGNsb25lKTsKIH0KIAogLy8gRE9N
IFNlY3Rpb24gMS4xLjEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vQXR0ci5oCmluZGV4IGM3YTk0Zjk4ZjBiZmI1N2ViMGMzYWI1MTc5
ODhhNDQ4MGIzNDkwMTAuLjEyNGM2ZDdhMmFhMjg2ODMwZmNiYTI5NjI4ODg4YjcyMDIyOTkyODYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0F0dHIuaApAQCAtODAsNyArODAsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBT
dHJpbmcgbm9kZVZhbHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdmFsdWUoKTsgfQogICAg
IHZpcnR1YWwgdm9pZCBzZXROb2RlVmFsdWUoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYp
IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVmUHRyPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERv
Y3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8Tm9k
ZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlk
ZTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc0F0dHJpYnV0ZU5vZGUoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIGNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5
cGUpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NEQVRB
U2VjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ0RBVEFTZWN0aW9uLmNwcAppbmRleCBj
NTliZjFlOTU4ZmRhNDUwYWU5MmRmMjJiNzQwOWZmYjk2OGEwYmViLi5hZmQ3MzIyNzBmMTJjNmQ4
ZGNmZmI4ZmY4MjdhMTM5Y2MzMWEzMWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Q0RBVEFTZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ0RBVEFTZWN0aW9uLmNw
cApAQCAtNDYsNyArNDYsNyBAQCBOb2RlOjpOb2RlVHlwZSBDREFUQVNlY3Rpb246Om5vZGVUeXBl
KCkgY29uc3QKICAgICByZXR1cm4gQ0RBVEFfU0VDVElPTl9OT0RFOwogfQogCi1SZWZQdHI8Tm9k
ZT4gQ0RBVEFTZWN0aW9uOjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1l
bnQsIENsb25pbmdPcGVyYXRpb24pCitSZWY8Tm9kZT4gQ0RBVEFTZWN0aW9uOjpjbG9uZU5vZGVJ
bnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24pCiB7CiAg
ICAgcmV0dXJuIGNyZWF0ZSh0YXJnZXREb2N1bWVudCwgZGF0YSgpKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9DREFUQVNlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9D
REFUQVNlY3Rpb24uaAppbmRleCBiZjVhNjFjNjI2ODViMjM3MDVkNjRiNGNlMzk0NmE2Mzc4NDky
M2E3Li5kNmI5OTM3ZGZjNzVhNThlOTZlYWI1MmRmMjZhZDliNGI3ZGVmMjYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vQ0RBVEFTZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0NEQVRBU2VjdGlvbi5oCkBAIC0zNiw3ICszNiw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0
dWFsIFN0cmluZyBub2RlTmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgTm9kZVR5
cGUgbm9kZVR5cGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBj
bG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmlu
Z09wZXJhdGlvbikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGNoaWxkVHlwZUFsbG93ZWQo
Tm9kZVR5cGUpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgUmVmPFRleHQ+IHZpcnR1YWxD
cmVhdGUoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0NvbW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbW1lbnQuY3BwCmlu
ZGV4IDRjNzRhYWY2M2FkOTA1M2M2YWJlNTk1NTYyMzE4NWQyN2Q5ODlkNmIuLjQxMjVhNmVhZTFh
ZGY5YThmODY2ZmViNTQyOWY0ZjNkNDIwYjcyNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Db21tZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tbWVudC5jcHAKQEAg
LTQ2LDcgKzQ2LDcgQEAgTm9kZTo6Tm9kZVR5cGUgQ29tbWVudDo6bm9kZVR5cGUoKSBjb25zdAog
ICAgIHJldHVybiBDT01NRU5UX05PREU7CiB9CiAKLVJlZlB0cjxOb2RlPiBDb21tZW50OjpjbG9u
ZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24p
CitSZWY8Tm9kZT4gQ29tbWVudDo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERv
Y3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uKQogewogICAgIHJldHVybiBjcmVhdGUodGFyZ2V0RG9j
dW1lbnQsIGRhdGEoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbW1lbnQuaAppbmRleCBmY2FjNjBhMzNlNWUzMGEx
ZTU5YzFkYzllZjNiNjM5NGFkZTdiNzU5Li4xNTY2MzIzMzJhMjA2OGYzYTliODUyNmNiY2M3NDY1
NDg2MTU5OWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Db21tZW50LmgKQEAgLTM2LDcgKzM2LDcgQEAgcHJpdmF0ZToK
IAogICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCBOb2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVm
UHRyPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1l
bnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRU
eXBlQWxsb3dlZChOb2RlVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Q29udGFpbmVyTm9kZS5jcHAKaW5kZXggZjA2MzFiNmJkZDRkYTdkYTJkYTRiZDRmYTk5NGMxOWNm
OTkwYzNkNS4uMmMzYjVlZDMxOWY2NTg4MWUxYzNlYTg4YjEyNDViYmEwMGU3YzgyYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcApAQCAtNzYsNyArNzYsNyBAQCBzdGF0aWMgdm9p
ZCBjb2xsZWN0Q2hpbGRyZW5BbmRSZW1vdmVGcm9tT2xkUGFyZW50KE5vZGUmIG5vZGUsIE5vZGVW
ZWN0b3ImIG5vZGVzLAogICAgIGlmICghaXM8RG9jdW1lbnRGcmFnbWVudD4obm9kZSkpIHsKICAg
ICAgICAgbm9kZXMuYXBwZW5kKG5vZGUpOwogICAgICAgICBpZiAoQ29udGFpbmVyTm9kZSogb2xk
UGFyZW50ID0gbm9kZS5wYXJlbnROb2RlKCkpCi0gICAgICAgICAgICBvbGRQYXJlbnQtPnJlbW92
ZUNoaWxkKCZub2RlLCBlYyk7CisgICAgICAgICAgICBvbGRQYXJlbnQtPnJlbW92ZUNoaWxkKG5v
ZGUsIGVjKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTQ2LDEzICsxNDYsMTMgQEAg
Q29udGFpbmVyTm9kZTo6fkNvbnRhaW5lck5vZGUoKQogICAgIHJlbW92ZURldGFjaGVkQ2hpbGRy
ZW4oKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIGlzQ2hpbGRUeXBlQWxsb3dlZChDb250YWlu
ZXJOb2RlKiBuZXdQYXJlbnQsIE5vZGUqIGNoaWxkKQorc3RhdGljIGlubGluZSBib29sIGlzQ2hp
bGRUeXBlQWxsb3dlZChDb250YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5vZGUmIGNoaWxkKQogewot
ICAgIGlmICghY2hpbGQtPmlzRG9jdW1lbnRGcmFnbWVudCgpKQotICAgICAgICByZXR1cm4gbmV3
UGFyZW50LT5jaGlsZFR5cGVBbGxvd2VkKGNoaWxkLT5ub2RlVHlwZSgpKTsKKyAgICBpZiAoIWNo
aWxkLmlzRG9jdW1lbnRGcmFnbWVudCgpKQorICAgICAgICByZXR1cm4gbmV3UGFyZW50LmNoaWxk
VHlwZUFsbG93ZWQoY2hpbGQubm9kZVR5cGUoKSk7CiAKLSAgICBmb3IgKE5vZGUqIG5vZGUgPSBj
aGlsZC0+Zmlyc3RDaGlsZCgpOyBub2RlOyBub2RlID0gbm9kZS0+bmV4dFNpYmxpbmcoKSkgewot
ICAgICAgICBpZiAoIW5ld1BhcmVudC0+Y2hpbGRUeXBlQWxsb3dlZChub2RlLT5ub2RlVHlwZSgp
KSkKKyAgICBmb3IgKE5vZGUqIG5vZGUgPSBjaGlsZC5maXJzdENoaWxkKCk7IG5vZGU7IG5vZGUg
PSBub2RlLT5uZXh0U2libGluZygpKSB7CisgICAgICAgIGlmICghbmV3UGFyZW50LmNoaWxkVHlw
ZUFsbG93ZWQobm9kZS0+bm9kZVR5cGUoKSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQogICAgIHJldHVybiB0cnVlOwpAQCAtMTY5LDIzICsxNjksMTkgQEAgc3RhdGljIGlubGlu
ZSBib29sIGlzSW5UZW1wbGF0ZUNvbnRlbnQoY29uc3QgTm9kZSogbm9kZSkKICNlbmRpZgogfQog
Ci1zdGF0aWMgaW5saW5lIGJvb2wgY29udGFpbnNDb25zaWRlcmluZ0hvc3RFbGVtZW50cyhjb25z
dCBOb2RlKiBuZXdDaGlsZCwgY29uc3QgTm9kZSogbmV3UGFyZW50KQorc3RhdGljIGlubGluZSBi
b29sIGNvbnRhaW5zQ29uc2lkZXJpbmdIb3N0RWxlbWVudHMoY29uc3QgTm9kZSYgbmV3Q2hpbGQs
IGNvbnN0IE5vZGUmIG5ld1BhcmVudCkKIHsKLSAgICByZXR1cm4gKG5ld1BhcmVudC0+aXNJblNo
YWRvd1RyZWUoKSB8fCBpc0luVGVtcGxhdGVDb250ZW50KG5ld1BhcmVudCkpCi0gICAgICAgID8g
bmV3Q2hpbGQtPmNvbnRhaW5zSW5jbHVkaW5nSG9zdEVsZW1lbnRzKG5ld1BhcmVudCkKLSAgICAg
ICAgOiBuZXdDaGlsZC0+Y29udGFpbnMobmV3UGFyZW50KTsKKyAgICByZXR1cm4gKG5ld1BhcmVu
dC5pc0luU2hhZG93VHJlZSgpIHx8IGlzSW5UZW1wbGF0ZUNvbnRlbnQoJm5ld1BhcmVudCkpCisg
ICAgICAgID8gbmV3Q2hpbGQuY29udGFpbnNJbmNsdWRpbmdIb3N0RWxlbWVudHMoJm5ld1BhcmVu
dCkKKyAgICAgICAgOiBuZXdDaGlsZC5jb250YWlucygmbmV3UGFyZW50KTsKIH0KIAotc3RhdGlj
IGlubGluZSBFeGNlcHRpb25Db2RlIGNoZWNrQWNjZXB0Q2hpbGQoQ29udGFpbmVyTm9kZSogbmV3
UGFyZW50LCBOb2RlKiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQpCitzdGF0aWMgaW5saW5lIEV4
Y2VwdGlvbkNvZGUgY2hlY2tBY2NlcHRDaGlsZChDb250YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5v
ZGUmIG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCkKIHsKLSAgICAvLyBOb3QgbWVudGlvbmVkIGlu
IHNwZWM6IHRocm93IE5PVF9GT1VORF9FUlIgaWYgbmV3Q2hpbGQgaXMgbnVsbAotICAgIGlmICgh
bmV3Q2hpbGQpCi0gICAgICAgIHJldHVybiBOT1RfRk9VTkRfRVJSOwotCiAgICAgLy8gVXNlIGNv
bW1vbiBjYXNlIGZhc3QgcGF0aCBpZiBwb3NzaWJsZS4KLSAgICBpZiAoKG5ld0NoaWxkLT5pc0Vs
ZW1lbnROb2RlKCkgfHwgbmV3Q2hpbGQtPmlzVGV4dE5vZGUoKSkgJiYgbmV3UGFyZW50LT5pc0Vs
ZW1lbnROb2RlKCkpIHsKLSAgICAgICAgQVNTRVJUKCFuZXdQYXJlbnQtPmlzUmVhZE9ubHlOb2Rl
KCkpOwotICAgICAgICBBU1NFUlQoIW5ld1BhcmVudC0+aXNEb2N1bWVudFR5cGVOb2RlKCkpOwor
ICAgIGlmICgobmV3Q2hpbGQuaXNFbGVtZW50Tm9kZSgpIHx8IG5ld0NoaWxkLmlzVGV4dE5vZGUo
KSkgJiYgbmV3UGFyZW50LmlzRWxlbWVudE5vZGUoKSkgeworICAgICAgICBBU1NFUlQoIW5ld1Bh
cmVudC5pc1JlYWRPbmx5Tm9kZSgpKTsKKyAgICAgICAgQVNTRVJUKCFuZXdQYXJlbnQuaXNEb2N1
bWVudFR5cGVOb2RlKCkpOwogICAgICAgICBBU1NFUlQoaXNDaGlsZFR5cGVBbGxvd2VkKG5ld1Bh
cmVudCwgbmV3Q2hpbGQpKTsKICAgICAgICAgaWYgKGNvbnRhaW5zQ29uc2lkZXJpbmdIb3N0RWxl
bWVudHMobmV3Q2hpbGQsIG5ld1BhcmVudCkpCiAgICAgICAgICAgICByZXR1cm4gSElFUkFSQ0hZ
X1JFUVVFU1RfRVJSOwpAQCAtMTkzLDE3ICsxODksMTcgQEAgc3RhdGljIGlubGluZSBFeGNlcHRp
b25Db2RlIGNoZWNrQWNjZXB0Q2hpbGQoQ29udGFpbmVyTm9kZSogbmV3UGFyZW50LCBOb2RlKiBu
ZXcKICAgICB9CiAKICAgICAvLyBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW4sIGJ1dCBhbHNvIHBy
b3RlY3QgcmVsZWFzZSBidWlsZHMgZnJvbSB0cmVlIGNvcnJ1cHRpb24uCi0gICAgQVNTRVJUKCFu
ZXdDaGlsZC0+aXNQc2V1ZG9FbGVtZW50KCkpOwotICAgIGlmIChuZXdDaGlsZC0+aXNQc2V1ZG9F
bGVtZW50KCkpCisgICAgQVNTRVJUKCFuZXdDaGlsZC5pc1BzZXVkb0VsZW1lbnQoKSk7CisgICAg
aWYgKG5ld0NoaWxkLmlzUHNldWRvRWxlbWVudCgpKQogICAgICAgICByZXR1cm4gSElFUkFSQ0hZ
X1JFUVVFU1RfRVJSOwogCi0gICAgaWYgKG5ld1BhcmVudC0+aXNSZWFkT25seU5vZGUoKSkKKyAg
ICBpZiAobmV3UGFyZW50LmlzUmVhZE9ubHlOb2RlKCkpCiAgICAgICAgIHJldHVybiBOT19NT0RJ
RklDQVRJT05fQUxMT1dFRF9FUlI7CiAgICAgaWYgKGNvbnRhaW5zQ29uc2lkZXJpbmdIb3N0RWxl
bWVudHMobmV3Q2hpbGQsIG5ld1BhcmVudCkpCiAgICAgICAgIHJldHVybiBISUVSQVJDSFlfUkVR
VUVTVF9FUlI7CiAKLSAgICBpZiAob2xkQ2hpbGQgJiYgaXM8RG9jdW1lbnQ+KCpuZXdQYXJlbnQp
KSB7Ci0gICAgICAgIGlmICghZG93bmNhc3Q8RG9jdW1lbnQ+KCpuZXdQYXJlbnQpLmNhblJlcGxh
Y2VDaGlsZChuZXdDaGlsZCwgb2xkQ2hpbGQpKQorICAgIGlmIChvbGRDaGlsZCAmJiBpczxEb2N1
bWVudD4obmV3UGFyZW50KSkgeworICAgICAgICBpZiAoIWRvd25jYXN0PERvY3VtZW50PihuZXdQ
YXJlbnQpLmNhblJlcGxhY2VDaGlsZChuZXdDaGlsZCwgKm9sZENoaWxkKSkKICAgICAgICAgICAg
IHJldHVybiBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAgICAgfSBlbHNlIGlmICghaXNDaGlsZFR5
cGVBbGxvd2VkKG5ld1BhcmVudCwgbmV3Q2hpbGQpKQogICAgICAgICByZXR1cm4gSElFUkFSQ0hZ
X1JFUVVFU1RfRVJSOwpAQCAtMjExLDEyICsyMDcsMTIgQEAgc3RhdGljIGlubGluZSBFeGNlcHRp
b25Db2RlIGNoZWNrQWNjZXB0Q2hpbGQoQ29udGFpbmVyTm9kZSogbmV3UGFyZW50LCBOb2RlKiBu
ZXcKICAgICByZXR1cm4gMDsKIH0KIAotc3RhdGljIGlubGluZSBib29sIGNoZWNrQWNjZXB0Q2hp
bGRHdWFyYW50ZWVkTm9kZVR5cGVzKENvbnRhaW5lck5vZGUqIG5ld1BhcmVudCwgTm9kZSogbmV3
Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQorc3RhdGljIGlubGluZSBib29sIGNoZWNrQWNjZXB0
Q2hpbGRHdWFyYW50ZWVkTm9kZVR5cGVzKENvbnRhaW5lck5vZGUmIG5ld1BhcmVudCwgTm9kZSYg
bmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIEFTU0VSVCghbmV3UGFyZW50LT5p
c1JlYWRPbmx5Tm9kZSgpKTsKLSAgICBBU1NFUlQoIW5ld1BhcmVudC0+aXNEb2N1bWVudFR5cGVO
b2RlKCkpOworICAgIEFTU0VSVCghbmV3UGFyZW50LmlzUmVhZE9ubHlOb2RlKCkpOworICAgIEFT
U0VSVCghbmV3UGFyZW50LmlzRG9jdW1lbnRUeXBlTm9kZSgpKTsKICAgICBBU1NFUlQoaXNDaGls
ZFR5cGVBbGxvd2VkKG5ld1BhcmVudCwgbmV3Q2hpbGQpKTsKLSAgICBpZiAobmV3Q2hpbGQtPmNv
bnRhaW5zKG5ld1BhcmVudCkpIHsKKyAgICBpZiAobmV3Q2hpbGQuY29udGFpbnMoJm5ld1BhcmVu
dCkpIHsKICAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICB9CkBAIC0yMjQsMjUgKzIyMCwyNSBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
Y2hlY2tBY2NlcHRDaGlsZEd1YXJhbnRlZWROb2RlVHlwZXMoQ29udGFpbmVyTm9kZSogbmV3UGFy
ZW50LAogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgY2hlY2tBZGRD
aGlsZChDb250YWluZXJOb2RlKiBuZXdQYXJlbnQsIE5vZGUqIG5ld0NoaWxkLCBFeGNlcHRpb25D
b2RlJiBlYykKK3N0YXRpYyBpbmxpbmUgYm9vbCBjaGVja0FkZENoaWxkKENvbnRhaW5lck5vZGUm
IG5ld1BhcmVudCwgTm9kZSYgbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIGVj
ID0gY2hlY2tBY2NlcHRDaGlsZChuZXdQYXJlbnQsIG5ld0NoaWxkLCAwKTsKKyAgICBlYyA9IGNo
ZWNrQWNjZXB0Q2hpbGQobmV3UGFyZW50LCBuZXdDaGlsZCwgbnVsbHB0cik7CiAgICAgaWYgKGVj
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGlj
IGlubGluZSBib29sIGNoZWNrUmVwbGFjZUNoaWxkKENvbnRhaW5lck5vZGUqIG5ld1BhcmVudCwg
Tm9kZSogbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKK3N0YXRp
YyBpbmxpbmUgYm9vbCBjaGVja1JlcGxhY2VDaGlsZChDb250YWluZXJOb2RlJiBuZXdQYXJlbnQs
IE5vZGUmIG5ld0NoaWxkLCBOb2RlJiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0g
ICAgZWMgPSBjaGVja0FjY2VwdENoaWxkKG5ld1BhcmVudCwgbmV3Q2hpbGQsIG9sZENoaWxkKTsK
KyAgICBlYyA9IGNoZWNrQWNjZXB0Q2hpbGQobmV3UGFyZW50LCBuZXdDaGlsZCwgJm9sZENoaWxk
KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVl
OwogfQogCi1ib29sIENvbnRhaW5lck5vZGU6Omluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5vZGU+
IG5ld0NoaWxkLCBOb2RlKiByZWZDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCitib29sIENvbnRh
aW5lck5vZGU6Omluc2VydEJlZm9yZShSZWY8Tm9kZT4mJiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hp
bGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIC8vIENoZWNrIHRoYXQgdGhpcyBub2RlIGlz
IG5vdCAiZmxvYXRpbmciLgogICAgIC8vIElmIGl0IGlzLCBpdCBjYW4gYmUgZGVsZXRlZCBhcyBh
IHNpZGUgZWZmZWN0IG9mIHNlbmRpbmcgbXV0YXRpb24gZXZlbnRzLgpAQCAtMjU0LDEwICsyNTAs
MTAgQEAgYm9vbCBDb250YWluZXJOb2RlOjppbnNlcnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBu
ZXdDaGlsZCwgTm9kZSogcmVmQ2hpbGQsIEV4Y2UKIAogICAgIC8vIGluc2VydEJlZm9yZShub2Rl
LCAwKSBpcyBlcXVpdmFsZW50IHRvIGFwcGVuZENoaWxkKG5vZGUpCiAgICAgaWYgKCFyZWZDaGls
ZCkKLSAgICAgICAgcmV0dXJuIGFwcGVuZENoaWxkKG5ld0NoaWxkLCBlYyk7CisgICAgICAgIHJl
dHVybiBhcHBlbmRDaGlsZChXVEY6Om1vdmUobmV3Q2hpbGQpLCBlYyk7CiAKICAgICAvLyBNYWtl
IHN1cmUgYWRkaW5nIHRoZSBuZXcgY2hpbGQgaXMgT0suCi0gICAgaWYgKCFjaGVja0FkZENoaWxk
KHRoaXMsIG5ld0NoaWxkLmdldCgpLCBlYykpCisgICAgaWYgKCFjaGVja0FkZENoaWxkKCp0aGlz
LCBuZXdDaGlsZCwgZWMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBOT1RfRk9V
TkRfRVJSOiBSYWlzZWQgaWYgcmVmQ2hpbGQgaXMgbm90IGEgY2hpbGQgb2YgdGhpcyBub2RlCkBA
IC0yNjYsMjAgKzI2MiwyMCBAQCBib29sIENvbnRhaW5lck5vZGU6Omluc2VydEJlZm9yZShQYXNz
UmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiByZWZDaGlsZCwgRXhjZQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQogCi0gICAgaWYgKHJlZkNoaWxkLT5wcmV2aW91c1NpYmxpbmcoKSA9
PSBuZXdDaGlsZCB8fCByZWZDaGlsZCA9PSBuZXdDaGlsZCkgLy8gbm90aGluZyB0byBkbworICAg
IGlmIChyZWZDaGlsZC0+cHJldmlvdXNTaWJsaW5nKCkgPT0gbmV3Q2hpbGQucHRyKCkgfHwgcmVm
Q2hpbGQgPT0gbmV3Q2hpbGQucHRyKCkpIC8vIG5vdGhpbmcgdG8gZG8KICAgICAgICAgcmV0dXJu
IHRydWU7CiAKICAgICBSZWY8Tm9kZT4gbmV4dCgqcmVmQ2hpbGQpOwogCiAgICAgTm9kZVZlY3Rv
ciB0YXJnZXRzOwotICAgIGNvbGxlY3RDaGlsZHJlbkFuZFJlbW92ZUZyb21PbGRQYXJlbnQoKm5l
d0NoaWxkLmdldCgpLCB0YXJnZXRzLCBlYyk7CisgICAgY29sbGVjdENoaWxkcmVuQW5kUmVtb3Zl
RnJvbU9sZFBhcmVudChuZXdDaGlsZCwgdGFyZ2V0cywgZWMpOwogICAgIGlmIChlYykKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICh0YXJnZXRzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0
dXJuIHRydWU7CiAKICAgICAvLyBXZSBuZWVkIHRoaXMgZXh0cmEgY2hlY2sgYmVjYXVzZSBjb2xs
ZWN0Q2hpbGRyZW5BbmRSZW1vdmVGcm9tT2xkUGFyZW50KCkgY2FuIGZpcmUgbXV0YXRpb24gZXZl
bnRzLgotICAgIGlmICghY2hlY2tBY2NlcHRDaGlsZEd1YXJhbnRlZWROb2RlVHlwZXModGhpcywg
bmV3Q2hpbGQuZ2V0KCksIGVjKSkKKyAgICBpZiAoIWNoZWNrQWNjZXB0Q2hpbGRHdWFyYW50ZWVk
Tm9kZVR5cGVzKCp0aGlzLCBuZXdDaGlsZCwgZWMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxJbnNlcnRET01Ob2RlKGRvY3VtZW50
KCksICp0aGlzKTsKQEAgLTM5MCw3ICszODYsNyBAQCB2b2lkIENvbnRhaW5lck5vZGU6OnBhcnNl
ckluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiBuZXh0Q2hpbAog
ICAgIG5ld0NoaWxkLT5zZXROZWVkc1N0eWxlUmVjYWxjKFJlY29uc3RydWN0UmVuZGVyVHJlZSk7
CiB9CiAKLWJvb2wgQ29udGFpbmVyTm9kZTo6cmVwbGFjZUNoaWxkKFBhc3NSZWZQdHI8Tm9kZT4g
bmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKK2Jvb2wgQ29udGFp
bmVyTm9kZTo6cmVwbGFjZUNoaWxkKFJlZjxOb2RlPiYmIG5ld0NoaWxkLCBOb2RlJiBvbGRDaGls
ZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgLy8gQ2hlY2sgdGhhdCB0aGlzIG5vZGUgaXMg
bm90ICJmbG9hdGluZyIuCiAgICAgLy8gSWYgaXQgaXMsIGl0IGNhbiBiZSBkZWxldGVkIGFzIGEg
c2lkZSBlZmZlY3Qgb2Ygc2VuZGluZyBtdXRhdGlvbiBldmVudHMuCkBAIC00MDAsNDggKzM5Niw0
MyBAQCBib29sIENvbnRhaW5lck5vZGU6OnJlcGxhY2VDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5l
d0NoaWxkLCBOb2RlKiBvbGRDaGlsZCwgRXhjZQogCiAgICAgZWMgPSAwOwogCi0gICAgaWYgKG9s
ZENoaWxkID09IG5ld0NoaWxkKSAvLyBub3RoaW5nIHRvIGRvCisgICAgaWYgKCZvbGRDaGlsZCA9
PSBuZXdDaGlsZC5wdHIoKSkgLy8gbm90aGluZyB0byBkbwogICAgICAgICByZXR1cm4gdHJ1ZTsK
IAotICAgIGlmICghb2xkQ2hpbGQpIHsKLSAgICAgICAgZWMgPSBOT1RfRk9VTkRfRVJSOwotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCiAgICAgLy8gTWFrZSBzdXJlIHJlcGxhY2luZyB0
aGUgb2xkIGNoaWxkIHdpdGggdGhlIG5ldyBpcyBvawotICAgIGlmICghY2hlY2tSZXBsYWNlQ2hp
bGQodGhpcywgbmV3Q2hpbGQuZ2V0KCksIG9sZENoaWxkLCBlYykpCisgICAgaWYgKCFjaGVja1Jl
cGxhY2VDaGlsZCgqdGhpcywgbmV3Q2hpbGQsIG9sZENoaWxkLCBlYykpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIC8vIE5PVF9GT1VORF9FUlI6IFJhaXNlZCBpZiBvbGRDaGlsZCBpcyBu
b3QgYSBjaGlsZCBvZiB0aGlzIG5vZGUuCi0gICAgaWYgKG9sZENoaWxkLT5wYXJlbnROb2RlKCkg
IT0gdGhpcykgeworICAgIGlmIChvbGRDaGlsZC5wYXJlbnROb2RlKCkgIT0gdGhpcykgewogICAg
ICAgICBlYyA9IE5PVF9GT1VORF9FUlI7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAK
ICAgICBDaGlsZExpc3RNdXRhdGlvblNjb3BlIG11dGF0aW9uKCp0aGlzKTsKIAotICAgIFJlZlB0
cjxOb2RlPiBuZXh0ID0gb2xkQ2hpbGQtPm5leHRTaWJsaW5nKCk7CisgICAgUmVmUHRyPE5vZGU+
IG5leHQgPSBvbGRDaGlsZC5uZXh0U2libGluZygpOwogCiAgICAgLy8gUmVtb3ZlIHRoZSBub2Rl
IHdlJ3JlIHJlcGxhY2luZwotICAgIFJlZjxOb2RlPiByZW1vdmVkQ2hpbGQoKm9sZENoaWxkKTsK
KyAgICBSZWY8Tm9kZT4gcmVtb3ZlZENoaWxkKG9sZENoaWxkKTsKICAgICByZW1vdmVDaGlsZChv
bGRDaGlsZCwgZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAg
aWYgKG5leHQgJiYgKG5leHQtPnByZXZpb3VzU2libGluZygpID09IG5ld0NoaWxkIHx8IG5leHQg
PT0gbmV3Q2hpbGQpKSAvLyBub3RoaW5nIHRvIGRvCisgICAgaWYgKG5leHQgJiYgKG5leHQtPnBy
ZXZpb3VzU2libGluZygpID09IG5ld0NoaWxkLnB0cigpIHx8IG5leHQgPT0gbmV3Q2hpbGQucHRy
KCkpKSAvLyBub3RoaW5nIHRvIGRvCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgLy8gRG9l
cyB0aGlzIG9uZSBtb3JlIHRpbWUgYmVjYXVzZSByZW1vdmVDaGlsZCgpIGZpcmVzIGEgTXV0YXRp
b25FdmVudC4KLSAgICBpZiAoIWNoZWNrUmVwbGFjZUNoaWxkKHRoaXMsIG5ld0NoaWxkLmdldCgp
LCBvbGRDaGlsZCwgZWMpKQorICAgIGlmICghY2hlY2tSZXBsYWNlQ2hpbGQoKnRoaXMsIG5ld0No
aWxkLCBvbGRDaGlsZCwgZWMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBOb2RlVmVj
dG9yIHRhcmdldHM7Ci0gICAgY29sbGVjdENoaWxkcmVuQW5kUmVtb3ZlRnJvbU9sZFBhcmVudCgq
bmV3Q2hpbGQuZ2V0KCksIHRhcmdldHMsIGVjKTsKKyAgICBjb2xsZWN0Q2hpbGRyZW5BbmRSZW1v
dmVGcm9tT2xkUGFyZW50KG5ld0NoaWxkLCB0YXJnZXRzLCBlYyk7CiAgICAgaWYgKGVjKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBEb2VzIHRoaXMgeWV0IGFub3RoZXIgY2hlY2sg
YmVjYXVzZSBjb2xsZWN0Q2hpbGRyZW5BbmRSZW1vdmVGcm9tT2xkUGFyZW50KCkgZmlyZXMgYSBN
dXRhdGlvbkV2ZW50LgotICAgIGlmICghY2hlY2tSZXBsYWNlQ2hpbGQodGhpcywgbmV3Q2hpbGQu
Z2V0KCksIG9sZENoaWxkLCBlYykpCisgICAgaWYgKCFjaGVja1JlcGxhY2VDaGlsZCgqdGhpcywg
bmV3Q2hpbGQsIG9sZENoaWxkLCBlYykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEluc2VydERPTU5vZGUoZG9jdW1lbnQoKSwgKnRo
aXMpOwpAQCAtNTE1LDcgKzUwNiw3IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6ZGlzY29ubmVjdERl
c2NlbmRhbnRGcmFtZXMoKQogICAgIGRpc2Nvbm5lY3RTdWJmcmFtZXNJZk5lZWRlZCgqdGhpcywg
Um9vdEFuZERlc2NlbmRhbnRzKTsKIH0KIAotYm9vbCBDb250YWluZXJOb2RlOjpyZW1vdmVDaGls
ZChOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCitib29sIENvbnRhaW5lck5vZGU6
OnJlbW92ZUNoaWxkKE5vZGUmIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICAv
LyBDaGVjayB0aGF0IHRoaXMgbm9kZSBpcyBub3QgImZsb2F0aW5nIi4KICAgICAvLyBJZiBpdCBp
cywgaXQgY2FuIGJlIGRlbGV0ZWQgYXMgYSBzaWRlIGVmZmVjdCBvZiBzZW5kaW5nIG11dGF0aW9u
IGV2ZW50cy4KQEAgLTUzMiwxMiArNTIzLDEyIEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6cmVtb3Zl
Q2hpbGQoTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIH0KIAogICAgIC8v
IE5PVF9GT1VORF9FUlI6IFJhaXNlZCBpZiBvbGRDaGlsZCBpcyBub3QgYSBjaGlsZCBvZiB0aGlz
IG5vZGUuCi0gICAgaWYgKCFvbGRDaGlsZCB8fCBvbGRDaGlsZC0+cGFyZW50Tm9kZSgpICE9IHRo
aXMpIHsKKyAgICBpZiAob2xkQ2hpbGQucGFyZW50Tm9kZSgpICE9IHRoaXMpIHsKICAgICAgICAg
ZWMgPSBOT1RfRk9VTkRfRVJSOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAg
UmVmPE5vZGU+IGNoaWxkKCpvbGRDaGlsZCk7CisgICAgUmVmPE5vZGU+IGNoaWxkKG9sZENoaWxk
KTsKIAogICAgIGRvY3VtZW50KCkucmVtb3ZlRm9jdXNlZE5vZGVPZlN1YnRyZWUoY2hpbGQucHRy
KCkpOwogCkBAIC02NzAsNyArNjYxLDcgQEAgdm9pZCBDb250YWluZXJOb2RlOjpyZW1vdmVDaGls
ZHJlbigpCiAgICAgZGlzcGF0Y2hTdWJ0cmVlTW9kaWZpZWRFdmVudCgpOwogfQogCi1ib29sIENv
bnRhaW5lck5vZGU6OmFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQorYm9vbCBDb250YWluZXJOb2RlOjphcHBlbmRDaGlsZChSZWY8Tm9kZT4m
JiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgUmVmPENvbnRhaW5lck5vZGU+
IHByb3RlY3QoKnRoaXMpOwogCkBAIC02ODEsMTQgKzY3MiwxNCBAQCBib29sIENvbnRhaW5lck5v
ZGU6OmFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUm
IGVjKQogICAgIGVjID0gMDsKIAogICAgIC8vIE1ha2Ugc3VyZSBhZGRpbmcgdGhlIG5ldyBjaGls
ZCBpcyBvawotICAgIGlmICghY2hlY2tBZGRDaGlsZCh0aGlzLCBuZXdDaGlsZC5nZXQoKSwgZWMp
KQorICAgIGlmICghY2hlY2tBZGRDaGlsZCgqdGhpcywgbmV3Q2hpbGQsIGVjKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKG5ld0NoaWxkID09IG1fbGFzdENoaWxkKSAvLyBub3Ro
aW5nIHRvIGRvCi0gICAgICAgIHJldHVybiBuZXdDaGlsZDsKKyAgICBpZiAobmV3Q2hpbGQucHRy
KCkgPT0gbV9sYXN0Q2hpbGQpIC8vIG5vdGhpbmcgdG8gZG8KKyAgICAgICAgcmV0dXJuIHRydWU7
CiAKICAgICBOb2RlVmVjdG9yIHRhcmdldHM7Ci0gICAgY29sbGVjdENoaWxkcmVuQW5kUmVtb3Zl
RnJvbU9sZFBhcmVudCgqbmV3Q2hpbGQuZ2V0KCksIHRhcmdldHMsIGVjKTsKKyAgICBjb2xsZWN0
Q2hpbGRyZW5BbmRSZW1vdmVGcm9tT2xkUGFyZW50KG5ld0NoaWxkLCB0YXJnZXRzLCBlYyk7CiAg
ICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTY5Niw3ICs2ODcsNyBAQCBi
b29sIENvbnRhaW5lck5vZGU6OmFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIC8vIFdlIG5l
ZWQgdGhpcyBleHRyYSBjaGVjayBiZWNhdXNlIGNvbGxlY3RDaGlsZHJlbkFuZFJlbW92ZUZyb21P
bGRQYXJlbnQoKSBjYW4gZmlyZSBtdXRhdGlvbiBldmVudHMuCi0gICAgaWYgKCFjaGVja0FjY2Vw
dENoaWxkR3VhcmFudGVlZE5vZGVUeXBlcyh0aGlzLCBuZXdDaGlsZC5nZXQoKSwgZWMpKQorICAg
IGlmICghY2hlY2tBY2NlcHRDaGlsZEd1YXJhbnRlZWROb2RlVHlwZXMoKnRoaXMsIG5ld0NoaWxk
LCBlYykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6d2lsbEluc2VydERPTU5vZGUoZG9jdW1lbnQoKSwgKnRoaXMpOwpAQCAtNzU5LDE2ICs3
NTAsMTYgQEAgdm9pZCBDb250YWluZXJOb2RlOjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRD
aGFuZ2UmIGNoYW5nZSkKICAgICBpbnZhbGlkYXRlTm9kZUxpc3RBbmRDb2xsZWN0aW9uQ2FjaGVz
SW5BbmNlc3RvcnMoKTsKIH0KIAotdm9pZCBDb250YWluZXJOb2RlOjpjbG9uZUNoaWxkTm9kZXMo
Q29udGFpbmVyTm9kZSogY2xvbmUpCit2b2lkIENvbnRhaW5lck5vZGU6OmNsb25lQ2hpbGROb2Rl
cyhDb250YWluZXJOb2RlJiBjbG9uZSkKIHsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAg
ICBEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQgPSBjbG9uZS0+ZG9jdW1lbnQoKTsKKyAgICBEb2N1
bWVudCYgdGFyZ2V0RG9jdW1lbnQgPSBjbG9uZS5kb2N1bWVudCgpOwogICAgIGZvciAoTm9kZSog
Y2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkICYmICFlYzsgY2hpbGQgPSBjaGlsZC0+bmV4dFNp
YmxpbmcoKSkgewotICAgICAgICBSZWZQdHI8Tm9kZT4gY2xvbmVkQ2hpbGQgPSBjaGlsZC0+Y2xv
bmVOb2RlSW50ZXJuYWwodGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb246OlNlbGZXaXRo
VGVtcGxhdGVDb250ZW50KTsKLSAgICAgICAgY2xvbmUtPmFwcGVuZENoaWxkKGNsb25lZENoaWxk
LCBlYyk7CisgICAgICAgIFJlZjxOb2RlPiBjbG9uZWRDaGlsZCA9IGNoaWxkLT5jbG9uZU5vZGVJ
bnRlcm5hbCh0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbjo6U2VsZldpdGhUZW1wbGF0
ZUNvbnRlbnQpOworICAgICAgICBjbG9uZS5hcHBlbmRDaGlsZChjbG9uZWRDaGlsZC5jb3B5UmVm
KCksIGVjKTsKIAotICAgICAgICBpZiAoIWVjICYmIGlzPENvbnRhaW5lck5vZGU+KGNoaWxkKSkK
LSAgICAgICAgICAgIGRvd25jYXN0PENvbnRhaW5lck5vZGU+KGNoaWxkKS0+Y2xvbmVDaGlsZE5v
ZGVzKGRvd25jYXN0PENvbnRhaW5lck5vZGU+KGNsb25lZENoaWxkLmdldCgpKSk7CisgICAgICAg
IGlmICghZWMgJiYgaXM8Q29udGFpbmVyTm9kZT4oKmNoaWxkKSkKKyAgICAgICAgICAgIGRvd25j
YXN0PENvbnRhaW5lck5vZGU+KCpjaGlsZCkuY2xvbmVDaGlsZE5vZGVzKGRvd25jYXN0PENvbnRh
aW5lck5vZGU+KGNsb25lZENoaWxkLmdldCgpKSk7CiAgICAgfQogfQogCkBAIC05NDcsNyArOTM4
LDcgQEAgdm9pZCBDb250YWluZXJOb2RlOjphcHBlbmQoVmVjdG9yPE5vZGVPclN0cmluZz4mJiBu
b2RlT3JTdHJpbmdWZWN0b3IsIEV4Y2VwdGlvbkMKICAgICBpZiAoZWMgfHwgIW5vZGUpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIGFwcGVuZENoaWxkKG5vZGUucmVsZWFzZSgpLCBlYyk7CisgICAg
YXBwZW5kQ2hpbGQobm9kZS5yZWxlYXNlTm9uTnVsbCgpLCBlYyk7CiB9CiAKIHZvaWQgQ29udGFp
bmVyTm9kZTo6cHJlcGVuZChWZWN0b3I8Tm9kZU9yU3RyaW5nPiYmIG5vZGVPclN0cmluZ1ZlY3Rv
ciwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC05NTYsNyArOTQ3LDcgQEAgdm9pZCBDb250YWluZXJO
b2RlOjpwcmVwZW5kKFZlY3RvcjxOb2RlT3JTdHJpbmc+JiYgbm9kZU9yU3RyaW5nVmVjdG9yLCBF
eGNlcHRpb24KICAgICBpZiAoZWMgfHwgIW5vZGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlu
c2VydEJlZm9yZShub2RlLnJlbGVhc2UoKSwgZmlyc3RDaGlsZCgpLCBlYyk7CisgICAgaW5zZXJ0
QmVmb3JlKG5vZGUucmVsZWFzZU5vbk51bGwoKSwgZmlyc3RDaGlsZCgpLCBlYyk7CiB9CiAKIEhU
TUxDb2xsZWN0aW9uKiBDb250YWluZXJOb2RlOjpjYWNoZWRIVE1MQ29sbGVjdGlvbihDb2xsZWN0
aW9uVHlwZSB0eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5v
ZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmgKaW5kZXggMDQ1MjQwMDQx
ZjJiNzEzMWZiMjZhNGU4ZjE5MTZiOWE2Y2I5YjBhZS4uYTZiMTBhNzY1ZjBlZThiY2E3MmI4ZmZm
MDM0MzNiNzNiMTg3YmEzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5l
ck5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5oCkBAIC0xMDIs
MTAgKzEwMiwxMCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdW5zaWduZWQgY291bnRD
aGlsZE5vZGVzKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgTm9kZSogdHJhdmVyc2VUb0No
aWxkQXQodW5zaWduZWQpIGNvbnN0OwogCi0gICAgYm9vbCBpbnNlcnRCZWZvcmUoUGFzc1JlZlB0
cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmID0gQVNTRVJU
X05PX0VYQ0VQVElPTik7Ci0gICAgYm9vbCByZXBsYWNlQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBu
ZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmID0gQVNTRVJUX05PX0VYQ0VQ
VElPTik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCByZW1vdmVDaGlsZChOb2RlKiBjaGlsZCwg
RXhjZXB0aW9uQ29kZSYgPSBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKLSAgICBXRUJDT1JFX0VYUE9S
VCBib29sIGFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIEV4Y2VwdGlvbkNv
ZGUmID0gQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgYm9vbCBpbnNlcnRCZWZvcmUoUmVmPE5v
ZGU+JiYgbmV3Q2hpbGQsIE5vZGUqIHJlZkNoaWxkLCBFeGNlcHRpb25Db2RlJiA9IEFTU0VSVF9O
T19FWENFUFRJT04pOworICAgIGJvb2wgcmVwbGFjZUNoaWxkKFJlZjxOb2RlPiYmIG5ld0NoaWxk
LCBOb2RlJiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgPSBBU1NFUlRfTk9fRVhDRVBUSU9OKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCBib29sIHJlbW92ZUNoaWxkKE5vZGUmIGNoaWxkLCBFeGNlcHRp
b25Db2RlJiA9IEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wg
YXBwZW5kQ2hpbGQoUmVmPE5vZGU+JiYgbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmID0gQVNTRVJU
X05PX0VYQ0VQVElPTik7CiAKICAgICAvLyBUaGVzZSBtZXRob2RzIGFyZSBvbmx5IHVzZWQgZHVy
aW5nIHBhcnNpbmcuCiAgICAgLy8gVGhleSBkb24ndCBzZW5kIERPTSBtdXRhdGlvbiBldmVudHMg
b3IgaGFuZGxlIHJlcGFyZW50aW5nLgpAQCAtMTE3LDcgKzExNyw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHJlbW92ZUNoaWxkcmVuKCk7CiAgICAgdm9pZCB0YWtlQWxsQ2hpbGRyZW5Gcm9tKENvbnRh
aW5lck5vZGUqKTsKIAotICAgIHZvaWQgY2xvbmVDaGlsZE5vZGVzKENvbnRhaW5lck5vZGUqIGNs
b25lKTsKKyAgICB2b2lkIGNsb25lQ2hpbGROb2RlcyhDb250YWluZXJOb2RlJiBjbG9uZSk7CiAK
ICAgICBlbnVtIENoaWxkQ2hhbmdlVHlwZSB7IEVsZW1lbnRJbnNlcnRlZCwgRWxlbWVudFJlbW92
ZWQsIFRleHRJbnNlcnRlZCwgVGV4dFJlbW92ZWQsIFRleHRDaGFuZ2VkLCBBbGxDaGlsZHJlblJl
bW92ZWQsIE5vbkNvbnRlbnRzQ2hpbGRDaGFuZ2VkIH07CiAgICAgZW51bSBDaGlsZENoYW5nZVNv
dXJjZSB7IENoaWxkQ2hhbmdlU291cmNlUGFyc2VyLCBDaGlsZENoYW5nZVNvdXJjZUFQSSB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKaW5kZXggYTRhM2Y4ZDU5YWEy
YTE2MWY2NzJmNDRkNjNmZjg0ODY0YjdiMjAzMy4uNjMzZDI5MTNmNzE2ZWE4NGI2N2Y2ZDI4MDkz
ZTY4ZDQxMWUzMTliNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVu
dGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3Bw
CkBAIC0yMzEsOSArMjMxLDkgQEAgUmVmUHRyPERvY3VtZW50PiBET01JbXBsZW1lbnRhdGlvbjo6
Y3JlYXRlRG9jdW1lbnQoY29uc3QgU3RyaW5nJiBuYW1lc3BhY2VVUkksCiAgICAgfQogCiAgICAg
aWYgKGRvY3R5cGUpCi0gICAgICAgIGRvYy0+YXBwZW5kQ2hpbGQoZG9jdHlwZSk7CisgICAgICAg
IGRvYy0+YXBwZW5kQ2hpbGQoKmRvY3R5cGUpOwogICAgIGlmIChkb2N1bWVudEVsZW1lbnQpCi0g
ICAgICAgIGRvYy0+YXBwZW5kQ2hpbGQoZG9jdW1lbnRFbGVtZW50LnJlbGVhc2UoKSk7CisgICAg
ICAgIGRvYy0+YXBwZW5kQ2hpbGQoZG9jdW1lbnRFbGVtZW50LnJlbGVhc2VOb25OdWxsKCkpOwog
CiAgICAgcmV0dXJuIGRvYzsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGMwOTQxZDI1
MTkxNDE0NTgyMGI1YmRjNTMwNThkNjhjZDkzZjM0YWIuLjYwMzEyY2EzNTAxMzY1NDI5Nzc0N2M4
MTRmMWIzNGY4N2Q0NzQ1NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTAwOSw3ICsx
MDA5LDcgQEAgUmVmUHRyPE5vZGU+IERvY3VtZW50OjphZG9wdE5vZGUoUGFzc1JlZlB0cjxOb2Rl
PiBzb3VyY2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAg
ICAgICAgIGlmIChzb3VyY2UtPnBhcmVudE5vZGUoKSkgewotICAgICAgICAgICAgc291cmNlLT5w
YXJlbnROb2RlKCktPnJlbW92ZUNoaWxkKHNvdXJjZS5nZXQoKSwgZWMpOworICAgICAgICAgICAg
c291cmNlLT5wYXJlbnROb2RlKCktPnJlbW92ZUNoaWxkKCpzb3VyY2UsIGVjKTsKICAgICAgICAg
ICAgIGlmIChlYykKICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQpA
QCAtMTUzNyw3ICsxNTM3LDcgQEAgdm9pZCBEb2N1bWVudDo6c2V0VGl0bGUoY29uc3QgU3RyaW5n
JiB0aXRsZSkKICAgICBlbHNlIGlmICghbV90aXRsZUVsZW1lbnQpIHsKICAgICAgICAgaWYgKEhU
TUxFbGVtZW50KiBoZWFkRWxlbWVudCA9IGhlYWQoKSkgewogICAgICAgICAgICAgbV90aXRsZUVs
ZW1lbnQgPSBjcmVhdGVFbGVtZW50KHRpdGxlVGFnLCBmYWxzZSk7Ci0gICAgICAgICAgICBoZWFk
RWxlbWVudC0+YXBwZW5kQ2hpbGQobV90aXRsZUVsZW1lbnQsIEFTU0VSVF9OT19FWENFUFRJT04p
OworICAgICAgICAgICAgaGVhZEVsZW1lbnQtPmFwcGVuZENoaWxkKCptX3RpdGxlRWxlbWVudCwg
QVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTI1MDksMTEgKzI1
MDksMTAgQEAgdm9pZCBEb2N1bWVudDo6c2V0Qm9keU9yRnJhbWVzZXQoUGFzc1JlZlB0cjxIVE1M
RWxlbWVudD4gcHJwTmV3Qm9keSwgRXhjZXB0aW9uQ28KICAgICAgICAgbmV3Qm9keSA9IGRvd25j
YXN0PEhUTUxFbGVtZW50Pihub2RlLmdldCgpKTsKICAgICB9CiAKLSAgICBIVE1MRWxlbWVudCog
YiA9IGJvZHlPckZyYW1lc2V0KCk7Ci0gICAgaWYgKCFiKQotICAgICAgICBkb2N1bWVudEVsZW1l
bnQoKS0+YXBwZW5kQ2hpbGQobmV3Qm9keS5yZWxlYXNlKCksIGVjKTsKKyAgICBpZiAoYXV0byog
Ym9keSA9IGJvZHlPckZyYW1lc2V0KCkpCisgICAgICAgIGRvY3VtZW50RWxlbWVudCgpLT5yZXBs
YWNlQ2hpbGQobmV3Qm9keS5yZWxlYXNlTm9uTnVsbCgpLCAqYm9keSwgZWMpOwogICAgIGVsc2UK
LSAgICAgICAgZG9jdW1lbnRFbGVtZW50KCktPnJlcGxhY2VDaGlsZChuZXdCb2R5LnJlbGVhc2Uo
KSwgYiwgZWMpOworICAgICAgICBkb2N1bWVudEVsZW1lbnQoKS0+YXBwZW5kQ2hpbGQobmV3Qm9k
eS5yZWxlYXNlTm9uTnVsbCgpLCBlYyk7CiB9CiAKIEhUTUxIZWFkRWxlbWVudCogRG9jdW1lbnQ6
OmhlYWQoKQpAQCAtMzMxNywxMyArMzMxNiw5IEBAIGJvb2wgRG9jdW1lbnQ6OmNoaWxkVHlwZUFs
bG93ZWQoTm9kZVR5cGUgdHlwZSkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wg
RG9jdW1lbnQ6OmNhblJlcGxhY2VDaGlsZChOb2RlKiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQp
Citib29sIERvY3VtZW50OjpjYW5SZXBsYWNlQ2hpbGQoTm9kZSYgbmV3Q2hpbGQsIE5vZGUmIG9s
ZENoaWxkKQogewotICAgIGlmICghb2xkQ2hpbGQpCi0gICAgICAgIC8vIENvbnRhaW5lck5vZGU6
OnJlcGxhY2VDaGlsZCB3aWxsIHJhaXNlIGEgTk9UX0ZPVU5EX0VSUi4KLSAgICAgICAgcmV0dXJu
IHRydWU7Ci0KLSAgICBpZiAob2xkQ2hpbGQtPm5vZGVUeXBlKCkgPT0gbmV3Q2hpbGQtPm5vZGVU
eXBlKCkpCisgICAgaWYgKG9sZENoaWxkLm5vZGVUeXBlKCkgPT0gbmV3Q2hpbGQubm9kZVR5cGUo
KSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBpbnQgbnVtRG9jdHlwZXMgPSAwOwpAQCAt
MzMzMiw3ICszMzI3LDcgQEAgYm9vbCBEb2N1bWVudDo6Y2FuUmVwbGFjZUNoaWxkKE5vZGUqIG5l
d0NoaWxkLCBOb2RlKiBvbGRDaGlsZCkKICAgICAvLyBGaXJzdCwgY2hlY2sgaG93IG1hbnkgZG9j
dHlwZXMgYW5kIGVsZW1lbnRzIHdlIGhhdmUsIG5vdCBjb3VudGluZwogICAgIC8vIHRoZSBjaGls
ZCB3ZSdyZSBhYm91dCB0byByZW1vdmUuCiAgICAgZm9yIChOb2RlKiBjID0gZmlyc3RDaGlsZCgp
OyBjOyBjID0gYy0+bmV4dFNpYmxpbmcoKSkgewotICAgICAgICBpZiAoYyA9PSBvbGRDaGlsZCkK
KyAgICAgICAgaWYgKGMgPT0gJm9sZENoaWxkKQogICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgIAogICAgICAgICBzd2l0Y2ggKGMtPm5vZGVUeXBlKCkpIHsKQEAgLTMzNDgsOCArMzM0Myw4
IEBAIGJvb2wgRG9jdW1lbnQ6OmNhblJlcGxhY2VDaGlsZChOb2RlKiBuZXdDaGlsZCwgTm9kZSog
b2xkQ2hpbGQpCiAgICAgfQogICAgIAogICAgIC8vIFRoZW4sIHNlZSBob3cgbWFueSBkb2N0eXBl
cyBhbmQgZWxlbWVudHMgbWlnaHQgYmUgYWRkZWQgYnkgdGhlIG5ldyBjaGlsZC4KLSAgICBpZiAo
bmV3Q2hpbGQtPmlzRG9jdW1lbnRGcmFnbWVudCgpKSB7Ci0gICAgICAgIGZvciAoTm9kZSogYyA9
IG5ld0NoaWxkLT5maXJzdENoaWxkKCk7IGM7IGMgPSBjLT5uZXh0U2libGluZygpKSB7CisgICAg
aWYgKG5ld0NoaWxkLmlzRG9jdW1lbnRGcmFnbWVudCgpKSB7CisgICAgICAgIGZvciAoTm9kZSog
YyA9IG5ld0NoaWxkLmZpcnN0Q2hpbGQoKTsgYzsgYyA9IGMtPm5leHRTaWJsaW5nKCkpIHsKICAg
ICAgICAgICAgIHN3aXRjaCAoYy0+bm9kZVR5cGUoKSkgewogICAgICAgICAgICAgY2FzZSBBVFRS
SUJVVEVfTk9ERToKICAgICAgICAgICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9OT0RFOgpAQCAtMzM3
Miw3ICszMzY3LDcgQEAgYm9vbCBEb2N1bWVudDo6Y2FuUmVwbGFjZUNoaWxkKE5vZGUqIG5ld0No
aWxkLCBOb2RlKiBvbGRDaGlsZCkKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0gZWxz
ZSB7Ci0gICAgICAgIHN3aXRjaCAobmV3Q2hpbGQtPm5vZGVUeXBlKCkpIHsKKyAgICAgICAgc3dp
dGNoIChuZXdDaGlsZC5ub2RlVHlwZSgpKSB7CiAgICAgICAgIGNhc2UgQVRUUklCVVRFX05PREU6
CiAgICAgICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9OT0RFOgogICAgICAgICBjYXNlIERPQ1VNRU5U
X0ZSQUdNRU5UX05PREU6CkBAIC0zNDAwLDcgKzMzOTUsNyBAQCBib29sIERvY3VtZW50OjpjYW5S
ZXBsYWNlQ2hpbGQoTm9kZSogbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkKQogICAgIHJldHVybiB0
cnVlOwogfQogCi1SZWZQdHI8Tm9kZT4gRG9jdW1lbnQ6OmNsb25lTm9kZUludGVybmFsKERvY3Vt
ZW50JiwgQ2xvbmluZ09wZXJhdGlvbiB0eXBlKQorUmVmPE5vZGU+IERvY3VtZW50OjpjbG9uZU5v
ZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24gdHlwZSkKIHsKICAgICBSZWY8
RG9jdW1lbnQ+IGNsb25lID0gY2xvbmVEb2N1bWVudFdpdGhvdXRDaGlsZHJlbigpOwogICAgIGNs
b25lLT5jbG9uZURhdGFGcm9tRG9jdW1lbnQoKnRoaXMpOwpAQCAtMzQwOSw3ICszNDA0LDcgQEAg
UmVmUHRyPE5vZGU+IERvY3VtZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25p
bmdPcGVyYXRpb24gdHlwZSkKICAgICBjYXNlIENsb25pbmdPcGVyYXRpb246OlNlbGZXaXRoVGVt
cGxhdGVDb250ZW50OgogICAgICAgICBicmVhazsKICAgICBjYXNlIENsb25pbmdPcGVyYXRpb246
OkV2ZXJ5dGhpbmc6Ci0gICAgICAgIGNsb25lQ2hpbGROb2RlcyhjbG9uZS5wdHIoKSk7CisgICAg
ICAgIGNsb25lQ2hpbGROb2RlcyhjbG9uZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBy
ZXR1cm4gV1RGOjptb3ZlKGNsb25lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggOWVmNDhjOTMz
ODA3M2FlMDI5YzJlYTM3YzkzNzVkNWNlYjk5YTZkNC4uMTM1YzdlNjM5NTUwYWQyYzc0ZThkM2Y3
MzZkZmQyODFiYmRhZWNhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTc0Nyw3ICs3NDcsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBub2RlQ2hpbGRyZW5XaWxsQmVSZW1vdmVkKENvbnRhaW5lck5v
ZGUmKTsKICAgICAvLyBub2RlV2lsbEJlUmVtb3ZlZCBpcyBvbmx5IHNhZmUgd2hlbiByZW1vdmlu
ZyBvbmUgbm9kZSBhdCBhIHRpbWUuCiAgICAgdm9pZCBub2RlV2lsbEJlUmVtb3ZlZChOb2RlJik7
Ci0gICAgYm9vbCBjYW5SZXBsYWNlQ2hpbGQoTm9kZSogbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxk
KTsKKyAgICBib29sIGNhblJlcGxhY2VDaGlsZChOb2RlJiBuZXdDaGlsZCwgTm9kZSYgb2xkQ2hp
bGQpOwogCiAgICAgdm9pZCB0ZXh0SW5zZXJ0ZWQoTm9kZSosIHVuc2lnbmVkIG9mZnNldCwgdW5z
aWduZWQgbGVuZ3RoKTsKICAgICB2b2lkIHRleHRSZW1vdmVkKE5vZGUqLCB1bnNpZ25lZCBvZmZz
ZXQsIHVuc2lnbmVkIGxlbmd0aCk7CkBAIC0xMzExLDcgKzEzMTEsNyBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmly
dHVhbCBOb2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1
YWwgYm9vbCBjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlKSBjb25zdCBvdmVycmlkZSBmaW5hbDsK
LSAgICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENs
b25pbmdPcGVyYXRpb24pIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNs
b25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGUgZmlu
YWw7CiAgICAgdm9pZCBjbG9uZURhdGFGcm9tRG9jdW1lbnQoY29uc3QgRG9jdW1lbnQmKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCByZWZTY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgb3ZlcnJpZGUgZmlu
YWwgeyByZWYoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJh
Z21lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCmluZGV4
IDRmYWI1OGUzNGQ0NjU1ZWNmNGUzN2RhNWRkOWMzYzU2MjJmNDA3NjguLmY5YjM4YTBiZDI4ZThl
M2M2MDkzNGFmZjFhNjAwNTkyNzA5MDNmZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudEZyYWdtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRG
cmFnbWVudC5jcHAKQEAgLTY3LDE4ICs2NywxOCBAQCBib29sIERvY3VtZW50RnJhZ21lbnQ6OmNo
aWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkgY29uc3QKICAgICB9CiB9CiAKLVJlZlB0cjxO
b2RlPiBEb2N1bWVudEZyYWdtZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0
RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24gdHlwZSkKK1JlZjxOb2RlPiBEb2N1bWVudEZyYWdt
ZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdP
cGVyYXRpb24gdHlwZSkKIHsKLSAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY2xvbmUgPSBj
cmVhdGUodGFyZ2V0RG9jdW1lbnQpOworICAgIFJlZjxEb2N1bWVudEZyYWdtZW50PiBjbG9uZSA9
IGNyZWF0ZSh0YXJnZXREb2N1bWVudCk7CiAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgY2FzZSBD
bG9uaW5nT3BlcmF0aW9uOjpPbmx5U2VsZjoKICAgICBjYXNlIENsb25pbmdPcGVyYXRpb246OlNl
bGZXaXRoVGVtcGxhdGVDb250ZW50OgogICAgICAgICBicmVhazsKICAgICBjYXNlIENsb25pbmdP
cGVyYXRpb246OkV2ZXJ5dGhpbmc6Ci0gICAgICAgIGNsb25lQ2hpbGROb2RlcyhjbG9uZS5nZXQo
KSk7CisgICAgICAgIGNsb25lQ2hpbGROb2RlcyhjbG9uZSk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KLSAgICByZXR1cm4gY2xvbmU7CisgICAgcmV0dXJuIFdURjo6bW92ZShjbG9uZSk7CiB9CiAK
IHZvaWQgRG9jdW1lbnRGcmFnbWVudDo6cGFyc2VIVE1MKGNvbnN0IFN0cmluZyYgc291cmNlLCBF
bGVtZW50KiBjb250ZXh0RWxlbWVudCwgUGFyc2VyQ29udGVudFBvbGljeSBwYXJzZXJDb250ZW50
UG9saWN5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmgKaW5kZXggZDA3ZTAzNGMw
MDdlNjYyOTYyNTFiZDBjMGIxNjA2ZDcwOWEwNWY2NS4uNmViMWVkNjFjNDYyMDEzZmQwNTc0ZDRh
ZmUzZWNjNWUyNGM4NDVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
RnJhZ21lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5oCkBA
IC00OCw3ICs0OCw3IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIE5vZGVU
eXBlIG5vZGVUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7Ci0gICAgdmlydHVhbCBSZWZQdHI8
Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYs
IENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFR5cGVB
bGxvd2VkKE5vZGVUeXBlKSBjb25zdCBvdmVycmlkZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50VHlwZS5jcHAKaW5kZXggNjdlM2Q1Mzg0M2Y4MmEwYmM1OWI5ZDBlZmZjYWUyN2FmMzBiOTYz
NC4uYzE5ZDAxODJhZmFmZGE1ZDhjMjBlY2ZkN2QzOWQxNWJhMDE4N2ViYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50VHlwZS5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgTm9kZTo6Tm9kZVR5cGUgRG9j
dW1lbnRUeXBlOjpub2RlVHlwZSgpIGNvbnN0CiAgICAgcmV0dXJuIERPQ1VNRU5UX1RZUEVfTk9E
RTsKIH0KIAotUmVmUHRyPE5vZGU+IERvY3VtZW50VHlwZTo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9j
dW1lbnQmIGRvY3VtZW50VGFyZ2V0LCBDbG9uaW5nT3BlcmF0aW9uKQorUmVmPE5vZGU+IERvY3Vt
ZW50VHlwZTo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIGRvY3VtZW50VGFyZ2V0LCBDbG9u
aW5nT3BlcmF0aW9uKQogewogICAgIHJldHVybiBjcmVhdGUoZG9jdW1lbnRUYXJnZXQsIG1fbmFt
ZSwgbV9wdWJsaWNJZCwgbV9zeXN0ZW1JZCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRUeXBlLmgK
aW5kZXggYzdhMWQ5YjUyNmY2ZWVlYTExY2EzYTcyNzVlYjMxZjVhNmUxMzJhNS4uYzc5YzBjZWE4
NjlkMjA1OWJiZGJiODIxNTljOGZmMTA3ODgzOGVkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFR5
cGUuaApAQCAtNTIsNyArNTIsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgVVJMIGJhc2VVUkko
KSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFN0cmluZyBub2RlTmFtZSgpIGNvbnN0IG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgTm9kZVR5cGUgbm9kZVR5cGUoKSBjb25zdCBvdmVycmlkZTsK
LSAgICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENs
b25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNsb25lTm9k
ZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CiAKICAgICBT
dHJpbmcgbV9uYW1lOwogICAgIFN0cmluZyBtX3B1YmxpY0lkOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CmluZGV4IDY3NTAwMGE1NGE3MDgyOWMwZDExMTJkOThiZjg5YmNhY2RkN2MzOWMuLjNhODkwNjE3
ZmEzYTA3YzdhMTljYTdhMzQyOTdjMTcxOTI4NGI5OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
QEAgLTMxMiwzOCArMzEyLDM3IEBAIHZvaWQgRWxlbWVudDo6ZGlzcGF0Y2hTaW11bGF0ZWRDbGlj
ayhFdmVudCogdW5kZXJseWluZ0V2ZW50LCBTaW11bGF0ZWRDbGlja01vdXNlCiAgICAgRXZlbnRE
aXNwYXRjaGVyOjpkaXNwYXRjaFNpbXVsYXRlZENsaWNrKHRoaXMsIHVuZGVybHlpbmdFdmVudCwg
ZXZlbnRPcHRpb25zLCB2aXN1YWxPcHRpb25zKTsKIH0KIAotUmVmUHRyPE5vZGU+IEVsZW1lbnQ6
OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJh
dGlvbiB0eXBlKQorUmVmPE5vZGU+IEVsZW1lbnQ6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50
JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbiB0eXBlKQogewogICAgIHN3aXRjaCAo
dHlwZSkgewogICAgIGNhc2UgQ2xvbmluZ09wZXJhdGlvbjo6T25seVNlbGY6CiAgICAgY2FzZSBD
bG9uaW5nT3BlcmF0aW9uOjpTZWxmV2l0aFRlbXBsYXRlQ29udGVudDoKICAgICAgICAgcmV0dXJu
IGNsb25lRWxlbWVudFdpdGhvdXRDaGlsZHJlbih0YXJnZXREb2N1bWVudCk7CiAgICAgY2FzZSBD
bG9uaW5nT3BlcmF0aW9uOjpFdmVyeXRoaW5nOgotICAgICAgICByZXR1cm4gY2xvbmVFbGVtZW50
V2l0aENoaWxkcmVuKHRhcmdldERvY3VtZW50KTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQotICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBj
bG9uZUVsZW1lbnRXaXRoQ2hpbGRyZW4odGFyZ2V0RG9jdW1lbnQpOwogfQogCi1SZWZQdHI8RWxl
bWVudD4gRWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aENoaWxkcmVuKERvY3VtZW50JiB0YXJnZXRE
b2N1bWVudCkKK1JlZjxFbGVtZW50PiBFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRoQ2hpbGRyZW4o
RG9jdW1lbnQmIHRhcmdldERvY3VtZW50KQogewotICAgIFJlZlB0cjxFbGVtZW50PiBjbG9uZSA9
IGNsb25lRWxlbWVudFdpdGhvdXRDaGlsZHJlbih0YXJnZXREb2N1bWVudCk7Ci0gICAgY2xvbmVD
aGlsZE5vZGVzKGNsb25lLmdldCgpKTsKLSAgICByZXR1cm4gY2xvbmUucmVsZWFzZSgpOworICAg
IFJlZjxFbGVtZW50PiBjbG9uZSA9IGNsb25lRWxlbWVudFdpdGhvdXRDaGlsZHJlbih0YXJnZXRE
b2N1bWVudCk7CisgICAgY2xvbmVDaGlsZE5vZGVzKGNsb25lKTsKKyAgICByZXR1cm4gY2xvbmU7
CiB9CiAKLVJlZlB0cjxFbGVtZW50PiBFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0Q2hpbGRy
ZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50KQorUmVmPEVsZW1lbnQ+IEVsZW1lbnQ6OmNsb25l
RWxlbWVudFdpdGhvdXRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQpCiB7Ci0gICAg
UmVmUHRyPEVsZW1lbnQ+IGNsb25lID0gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRD
aGlsZHJlbih0YXJnZXREb2N1bWVudCk7CisgICAgUmVmPEVsZW1lbnQ+IGNsb25lID0gY2xvbmVF
bGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbih0YXJnZXREb2N1bWVudCk7CiAgICAg
Ly8gVGhpcyB3aWxsIGNhdGNoIEhUTUwgZWxlbWVudHMgaW4gdGhlIHdyb25nIG5hbWVzcGFjZSB0
aGF0IGFyZSBub3QgY29ycmVjdGx5IGNvcGllZC4KICAgICAvLyBUaGlzIGlzIGEgc2FuaXR5IGNo
ZWNrIGFzIEhUTUwgb3ZlcmxvYWRzIHNvbWUgb2YgdGhlIERPTSBtZXRob2RzLgogICAgIEFTU0VS
VChpc0hUTUxFbGVtZW50KCkgPT0gY2xvbmUtPmlzSFRNTEVsZW1lbnQoKSk7CiAKICAgICBjbG9u
ZS0+Y2xvbmVEYXRhRnJvbUVsZW1lbnQoKnRoaXMpOwotICAgIHJldHVybiBjbG9uZS5yZWxlYXNl
KCk7CisgICAgcmV0dXJuIGNsb25lOwogfQogCi1SZWZQdHI8RWxlbWVudD4gRWxlbWVudDo6Y2xv
bmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9j
dW1lbnQpCitSZWY8RWxlbWVudD4gRWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0
ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIHRh
cmdldERvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnUU5hbWUoKSwgZmFsc2UpOwogfQpAQCAtMjMx
OSw3ICsyMzE4LDcgQEAgdm9pZCBFbGVtZW50OjpzZXRPdXRlckhUTUwoY29uc3QgU3RyaW5nJiBo
dG1sLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybjsKICAg
ICAKLSAgICBwYXJlbnQtPnJlcGxhY2VDaGlsZChmcmFnbWVudC5yZWxlYXNlKCksIHRoaXMsIGVj
KTsKKyAgICBwYXJlbnQtPnJlcGxhY2VDaGlsZChmcmFnbWVudC5yZWxlYXNlTm9uTnVsbCgpLCAq
dGhpcywgZWMpOwogICAgIFJlZlB0cjxOb2RlPiBub2RlID0gbmV4dCA/IG5leHQtPnByZXZpb3Vz
U2libGluZygpIDogbnVsbHB0cjsKICAgICBpZiAoIWVjICYmIGlzPFRleHQ+KG5vZGUuZ2V0KCkp
KQogICAgICAgICBtZXJnZVdpdGhOZXh0VGV4dE5vZGUoZG93bmNhc3Q8VGV4dD4oKm5vZGUpLCBl
Yyk7CkBAIC0yMzM4LDcgKzIzMzcsNyBAQCB2b2lkIEVsZW1lbnQ6OnNldElubmVySFRNTChjb25z
dCBTdHJpbmcmIGh0bWwsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICAgICAgY29udGFpbmVy
ID0gZG93bmNhc3Q8SFRNTFRlbXBsYXRlRWxlbWVudD4oKnRoaXMpLmNvbnRlbnQoKTsKICNlbmRp
ZgogCi0gICAgICAgIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudCgqY29udGFpbmVyLCBmcmFn
bWVudC5yZWxlYXNlKCksIGVjKTsKKyAgICAgICAgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50
KCpjb250YWluZXIsIGZyYWdtZW50LnJlbGVhc2VOb25OdWxsKCksIGVjKTsKICAgICB9CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5oCmluZGV4IDFlNjA3MDNjYjZiMmZkOTM2MDcxZjg1YjliOWRhOWQ3YWE0
MGNjNGIuLjA0ODEwZTFjZjg0OTVlZDI0ZmQ4OTQ1MDUzZmFmYmNkNDMyMmQxMWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaApAQCAtMjAxLDggKzIwMSw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgU3Ry
aW5nIG5vZGVOYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBSZWZQdHI8RWxlbWVudD4gY2xv
bmVFbGVtZW50V2l0aENoaWxkcmVuKERvY3VtZW50Jik7Ci0gICAgUmVmUHRyPEVsZW1lbnQ+IGNs
b25lRWxlbWVudFdpdGhvdXRDaGlsZHJlbihEb2N1bWVudCYpOworICAgIFJlZjxFbGVtZW50PiBj
bG9uZUVsZW1lbnRXaXRoQ2hpbGRyZW4oRG9jdW1lbnQmKTsKKyAgICBSZWY8RWxlbWVudD4gY2xv
bmVFbGVtZW50V2l0aG91dENoaWxkcmVuKERvY3VtZW50Jik7CiAKICAgICB2b2lkIG5vcm1hbGl6
ZUF0dHJpYnV0ZXMoKTsKICAgICBTdHJpbmcgbm9kZU5hbWVQcmVzZXJ2aW5nQ2FzZSgpIGNvbnN0
OwpAQCAtNTYzLDggKzU2Myw4IEBAIHByaXZhdGU6CiAKICAgICAvLyBjbG9uZU5vZGUgaXMgcHJp
dmF0ZSBzbyB0aGF0IG5vbi12aXJ0dWFsIGNsb25lRWxlbWVudFdpdGhDaGlsZHJlbiBhbmQgY2xv
bmVFbGVtZW50V2l0aG91dENoaWxkcmVuCiAgICAgLy8gYXJlIHVzZWQgaW5zdGVhZC4KLSAgICB2
aXJ0dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdP
cGVyYXRpb24pIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVmUHRyPEVsZW1lbnQ+IGNsb25lRWxl
bWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmKTsKKyAgICB2aXJ0dWFs
IFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24p
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRB
dHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmKTsKIAogICAgIHZvaWQgYWRkU2hhZG93Um9v
dChSZWY8U2hhZG93Um9vdD4mJik7CiAgICAgdm9pZCByZW1vdmVTaGFkb3dSb290KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuY3BwCmluZGV4IGEyZmY2M2IwMTBlNmUyOGUwZmM0
ZWFhZTg1YTc0YTEzZmU5ZDZjN2YuLjdlOTFhNDYyZGE4MjA5ZDkyMmM0NWRjODRjNDFhMDg1NWFk
NmJlMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuY3BwCkBAIC00Niw3ICs0
Niw3IEBAIE5vZGU6Ok5vZGVUeXBlIEVudGl0eVJlZmVyZW5jZTo6bm9kZVR5cGUoKSBjb25zdAog
ICAgIHJldHVybiBFTlRJVFlfUkVGRVJFTkNFX05PREU7CiB9CiAKLVJlZlB0cjxOb2RlPiBFbnRp
dHlSZWZlcmVuY2U6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwg
Q2xvbmluZ09wZXJhdGlvbikKK1JlZjxOb2RlPiBFbnRpdHlSZWZlcmVuY2U6OmNsb25lTm9kZUlu
dGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikKIHsKICAg
ICByZXR1cm4gY3JlYXRlKHRhcmdldERvY3VtZW50LCBtX2VudGl0eU5hbWUpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VudGl0eVJlZmVyZW5jZS5oCmluZGV4IDAzZjQzY2RmOTVlYTY4ZjAwNGQ5ZjExM2Jh
MTY4ZjBmN2JmYWYzOTYuLjg2ZGZlYjM5ODI1YjM0NTBlNzUzNTkyNTA2ODUxMTBiM2FmMGNhOGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmgKQEAgLTM1LDcgKzM1LDcgQEAgcHJp
dmF0ZToKIAogICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCBOb2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1
YWwgUmVmUHRyPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJh
dGlvbikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwo
RG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKIAogICAgIFN0cmluZyBtX2Vu
dGl0eU5hbWU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IGZkYzdmYjU1MGRhMTVmM2M1OWU1OTZk
NTYxM2Y3MzI1MmM5NTE4YmEuLjI4ZjIxMTQ1ZTE1MmVjNDk5NTUyMTFlM2IyZmU4NGQ4Y2ZiZTQ4
MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTQyOSwzOCArNDI5LDU0IEBAIEVsZW1lbnQqIE5vZGU6
Om5leHRFbGVtZW50U2libGluZygpIGNvbnN0CiAKIGJvb2wgTm9kZTo6aW5zZXJ0QmVmb3JlKFBh
c3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIHJlZkNoaWxkLCBFeGNlcHRpb25Db2RlJiBl
YykKIHsKKyAgICBpZiAoIW5ld0NoaWxkKSB7CisgICAgICAgIGVjID0gVHlwZUVycm9yOworICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogICAgIGlmICghaXM8Q29udGFpbmVyTm9kZT4oKnRo
aXMpKSB7CiAgICAgICAgIGVjID0gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQotICAgIHJldHVybiBkb3duY2FzdDxDb250YWluZXJOb2RlPigqdGhp
cykuaW5zZXJ0QmVmb3JlKG5ld0NoaWxkLCByZWZDaGlsZCwgZWMpOworICAgIHJldHVybiBkb3du
Y2FzdDxDb250YWluZXJOb2RlPigqdGhpcykuaW5zZXJ0QmVmb3JlKCpuZXdDaGlsZCwgcmVmQ2hp
bGQsIGVjKTsKIH0KIAogYm9vbCBOb2RlOjpyZXBsYWNlQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBu
ZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogeworICAgIGlmICgh
bmV3Q2hpbGQgfHwgIW9sZENoaWxkKSB7CisgICAgICAgIGVjID0gVHlwZUVycm9yOworICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQogICAgIGlmICghaXM8Q29udGFpbmVyTm9kZT4oKnRoaXMp
KSB7CiAgICAgICAgIGVjID0gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQotICAgIHJldHVybiBkb3duY2FzdDxDb250YWluZXJOb2RlPigqdGhpcyku
cmVwbGFjZUNoaWxkKG5ld0NoaWxkLCBvbGRDaGlsZCwgZWMpOworICAgIHJldHVybiBkb3duY2Fz
dDxDb250YWluZXJOb2RlPigqdGhpcykucmVwbGFjZUNoaWxkKCpuZXdDaGlsZCwgKm9sZENoaWxk
LCBlYyk7CiB9CiAKIGJvb2wgTm9kZTo6cmVtb3ZlQ2hpbGQoTm9kZSogb2xkQ2hpbGQsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogeworICAgIGlmICghb2xkQ2hpbGQpIHsKKyAgICAgICAgZWMgPSBUeXBl
RXJyb3I7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAgICAgaWYgKCFpczxDb250YWlu
ZXJOb2RlPigqdGhpcykpIHsKICAgICAgICAgZWMgPSBOT1RfRk9VTkRfRVJSOwogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIHJldHVybiBkb3duY2FzdDxDb250YWluZXJOb2RlPigq
dGhpcykucmVtb3ZlQ2hpbGQob2xkQ2hpbGQsIGVjKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8Q29u
dGFpbmVyTm9kZT4oKnRoaXMpLnJlbW92ZUNoaWxkKCpvbGRDaGlsZCwgZWMpOwogfQogCiBib29s
IE5vZGU6OmFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogeworICAgIGlmICghbmV3Q2hpbGQpIHsKKyAgICAgICAgZWMgPSBUeXBlRXJyb3I7
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAgICAgaWYgKCFpczxDb250YWluZXJOb2Rl
PigqdGhpcykpIHsKICAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIGRvd25jYXN0PENvbnRhaW5lck5vZGU+
KCp0aGlzKS5hcHBlbmRDaGlsZChuZXdDaGlsZCwgZWMpOworICAgIHJldHVybiBkb3duY2FzdDxD
b250YWluZXJOb2RlPigqdGhpcykuYXBwZW5kQ2hpbGQoKm5ld0NoaWxkLCBlYyk7CiB9CiAKIHN0
YXRpYyBIYXNoU2V0PFJlZlB0cjxOb2RlPj4gbm9kZVNldFByZVRyYW5zZm9ybWVkRnJvbU5vZGVP
clN0cmluZ1ZlY3Rvcihjb25zdCBWZWN0b3I8Tm9kZU9yU3RyaW5nPiYgbm9kZU9yU3RyaW5nVmVj
dG9yKQpAQCAtNTE1LDcgKzUzMSw3IEBAIHZvaWQgTm9kZTo6YmVmb3JlKFZlY3RvcjxOb2RlT3JT
dHJpbmc+JiYgbm9kZU9yU3RyaW5nVmVjdG9yLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBlbHNl
CiAgICAgICAgIHZpYWJsZVByZXZpb3VzU2libGluZyA9IHBhcmVudC0+Zmlyc3RDaGlsZCgpOwog
Ci0gICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobm9kZS5yZWxlYXNlKCksIHZpYWJsZVByZXZpb3Vz
U2libGluZy5nZXQoKSwgZWMpOworICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG5vZGUucmVsZWFz
ZU5vbk51bGwoKSwgdmlhYmxlUHJldmlvdXNTaWJsaW5nLmdldCgpLCBlYyk7CiB9CiAKIHZvaWQg
Tm9kZTo6YWZ0ZXIoVmVjdG9yPE5vZGVPclN0cmluZz4mJiBub2RlT3JTdHJpbmdWZWN0b3IsIEV4
Y2VwdGlvbkNvZGUmIGVjKQpAQCAtNTMxLDcgKzU0Nyw3IEBAIHZvaWQgTm9kZTo6YWZ0ZXIoVmVj
dG9yPE5vZGVPclN0cmluZz4mJiBub2RlT3JTdHJpbmdWZWN0b3IsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogICAgIGlmIChlYyB8fCAhbm9kZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcGFyZW50LT5p
bnNlcnRCZWZvcmUobm9kZS5yZWxlYXNlKCksIHZpYWJsZU5leHRTaWJsaW5nLmdldCgpLCBlYyk7
CisgICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobm9kZS5yZWxlYXNlTm9uTnVsbCgpLCB2aWFibGVO
ZXh0U2libGluZy5nZXQoKSwgZWMpOwogfQogCiB2b2lkIE5vZGU6OnJlcGxhY2VXaXRoKFZlY3Rv
cjxOb2RlT3JTdHJpbmc+JiYgbm9kZU9yU3RyaW5nVmVjdG9yLCBFeGNlcHRpb25Db2RlJiBlYykK
QEAgLTU0OCwxNSArNTY0LDE1IEBAIHZvaWQgTm9kZTo6cmVwbGFjZVdpdGgoVmVjdG9yPE5vZGVP
clN0cmluZz4mJiBub2RlT3JTdHJpbmdWZWN0b3IsIEV4Y2VwdGlvbkNvZGUmCiAgICAgICAgIHJl
dHVybjsKIAogICAgIGlmIChwYXJlbnROb2RlKCkgPT0gcGFyZW50KQotICAgICAgICBwYXJlbnQt
PnJlcGxhY2VDaGlsZChub2RlLnJlbGVhc2UoKSwgdGhpcywgZWMpOworICAgICAgICBwYXJlbnQt
PnJlcGxhY2VDaGlsZChub2RlLnJlbGVhc2VOb25OdWxsKCksICp0aGlzLCBlYyk7CiAgICAgZWxz
ZQotICAgICAgICBwYXJlbnQtPmluc2VydEJlZm9yZShub2RlLnJlbGVhc2UoKSwgdmlhYmxlTmV4
dFNpYmxpbmcuZ2V0KCksIGVjKTsKKyAgICAgICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobm9kZS5y
ZWxlYXNlTm9uTnVsbCgpLCB2aWFibGVOZXh0U2libGluZy5nZXQoKSwgZWMpOwogfQogCiB2b2lk
IE5vZGU6OnJlbW92ZShFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAoQ29udGFpbmVyTm9k
ZSogcGFyZW50ID0gcGFyZW50Tm9kZSgpKQotICAgICAgICBwYXJlbnQtPnJlbW92ZUNoaWxkKHRo
aXMsIGVjKTsKKyAgICAgICAgcGFyZW50LT5yZW1vdmVDaGlsZCgqdGhpcywgZWMpOwogfQogCiB2
b2lkIE5vZGU6Om5vcm1hbGl6ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCA5MjllY2U0MmM4ZWI3YzJiNWE0
MzhlNTlmNWUxNzc2YWIxODlkMDY1Li5hNTJmMGY0M2YxNTEwNjFlODI2ZDVhNTg5NTQzZjlhMTU5
OTNkOGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTIwMSw4ICsyMDEsOCBAQCBwdWJsaWM6CiAgICAgICAg
IFNlbGZXaXRoVGVtcGxhdGVDb250ZW50LAogICAgICAgICBFdmVyeXRoaW5nLAogICAgIH07Ci0g
ICAgdmlydHVhbCBSZWZQdHI8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9u
aW5nT3BlcmF0aW9uKSA9IDA7Ci0gICAgUmVmUHRyPE5vZGU+IGNsb25lTm9kZShib29sIGRlZXAp
IHsgcmV0dXJuIGNsb25lTm9kZUludGVybmFsKGRvY3VtZW50KCksIGRlZXAgPyBDbG9uaW5nT3Bl
cmF0aW9uOjpFdmVyeXRoaW5nIDogQ2xvbmluZ09wZXJhdGlvbjo6T25seVNlbGYpOyB9CisgICAg
dmlydHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3Bl
cmF0aW9uKSA9IDA7CisgICAgUmVmPE5vZGU+IGNsb25lTm9kZShib29sIGRlZXApIHsgcmV0dXJu
IGNsb25lTm9kZUludGVybmFsKGRvY3VtZW50KCksIGRlZXAgPyBDbG9uaW5nT3BlcmF0aW9uOjpF
dmVyeXRoaW5nIDogQ2xvbmluZ09wZXJhdGlvbjo6T25seVNlbGYpOyB9CiAKICAgICB2aXJ0dWFs
IGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lKCkgY29uc3Q7CiAgICAgdmlydHVhbCBjb25z
dCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcAppbmRleCBiMzQzY2EzYTAxYWU4ZWVmZGI1OTdl
NWQ0ZTIyZTI3Yjk5M2ZlZjkwLi4zMDAwOWI3YjBkZmNlYTU2OWUyY2NlYTE4MzE1Y2IyNzUxMzFj
MDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcApA
QCAtNzksNyArNzksNyBAQCBOb2RlOjpOb2RlVHlwZSBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb246Om5v
ZGVUeXBlKCkgY29uc3QKICAgICByZXR1cm4gUFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOwog
fQogCi1SZWZQdHI8Tm9kZT4gUHJvY2Vzc2luZ0luc3RydWN0aW9uOjpjbG9uZU5vZGVJbnRlcm5h
bChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24pCitSZWY8Tm9kZT4g
UHJvY2Vzc2luZ0luc3RydWN0aW9uOjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0
RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24pCiB7CiAgICAgLy8gRklYTUU6IElzIGl0IGEgcHJv
YmxlbSB0aGF0IHRoaXMgZG9lcyBub3QgY29weSBtX2xvY2FsSHJlZj8KICAgICAvLyBXaGF0IGFi
b3V0IG90aGVyIGRhdGEgbWVtYmVycz8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Q
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uaAppbmRleCAyMWZkOWU5N2NkMmY3NWM4ZmQ3NTgwMGUwMjJhZGEyOTUzOTc2Zjhl
Li5lZmE5MDViNjY2M2YzYTI5M2M5NzcxMDUzNGZkNmZkYTk4NDJlOTdhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5oCkBAIC01OCw3ICs1OCw3IEBAIHByaXZh
dGU6CiAKICAgICB2aXJ0dWFsIFN0cmluZyBub2RlTmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgTm9kZVR5cGUgbm9kZVR5cGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFs
IFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRp
b24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERv
Y3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIEluc2Vy
dGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmKSBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYpIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9SYW5nZS5jcHAKaW5kZXggNGQyMjdkYWFmNGU0NDg4MTg4NDI3MWMxYmRlOWYx
ODgzZjVhYzRhNC4uMjY1MDhjZjA0NzJkNGYwZWRlZmE1ZDM1NTdjZTkyM2M3OGIxYjkyNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vUmFuZ2UuY3BwCkBAIC02NjUsNyArNjY1LDcgQEAgUmVmUHRyPERvY3VtZW50RnJhZ21l
bnQ+IFJhbmdlOjpwcm9jZXNzQ29udGVudHMoQWN0aW9uVHlwZSBhY3Rpb24sIEV4Y2VwdGlvbkNv
ZGUKICAgICAvLyAob3IganVzdCBkZWxldGUgdGhlIHN0dWZmIGluIGJldHdlZW4pCiAKICAgICBp
ZiAoKGFjdGlvbiA9PSBFeHRyYWN0IHx8IGFjdGlvbiA9PSBDbG9uZSkgJiYgbGVmdENvbnRlbnRz
KQotICAgICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQobGVmdENvbnRlbnRzLCBlYyk7CisgICAg
ICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZCgqbGVmdENvbnRlbnRzLCBlYyk7CiAKICAgICBpZiAo
cHJvY2Vzc1N0YXJ0KSB7CiAgICAgICAgIE5vZGVWZWN0b3Igbm9kZXM7CkBAIC02NzUsNyArNjc1
LDcgQEAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFJhbmdlOjpwcm9jZXNzQ29udGVudHMoQWN0
aW9uVHlwZSBhY3Rpb24sIEV4Y2VwdGlvbkNvZGUKICAgICB9CiAKICAgICBpZiAoKGFjdGlvbiA9
PSBFeHRyYWN0IHx8IGFjdGlvbiA9PSBDbG9uZSkgJiYgcmlnaHRDb250ZW50cykKLSAgICAgICAg
ZnJhZ21lbnQtPmFwcGVuZENoaWxkKHJpZ2h0Q29udGVudHMsIGVjKTsKKyAgICAgICAgZnJhZ21l
bnQtPmFwcGVuZENoaWxkKCpyaWdodENvbnRlbnRzLCBlYyk7CiAKICAgICByZXR1cm4gZnJhZ21l
bnQ7CiB9CkBAIC03MDIsNyArNzAyLDcgQEAgUmVmUHRyPE5vZGU+IFJhbmdlOjpwcm9jZXNzQ29u
dGVudHNCZXR3ZWVuT2Zmc2V0cyhBY3Rpb25UeXBlIGFjdGlvbiwgUGFzc1JlZlB0cjwKICAgICAg
ICAgZW5kT2Zmc2V0ID0gc3RkOjptaW4oZW5kT2Zmc2V0LCBzdGF0aWNfY2FzdDxDaGFyYWN0ZXJE
YXRhKj4oY29udGFpbmVyKS0+bGVuZ3RoKCkpOwogICAgICAgICBzdGFydE9mZnNldCA9IHN0ZDo6
bWluKHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQpOwogICAgICAgICBpZiAoYWN0aW9uID09IEV4dHJh
Y3QgfHwgYWN0aW9uID09IENsb25lKSB7Ci0gICAgICAgICAgICBSZWZQdHI8Q2hhcmFjdGVyRGF0
YT4gYyA9IHN0YXRpY19wb2ludGVyX2Nhc3Q8Q2hhcmFjdGVyRGF0YT4oY29udGFpbmVyLT5jbG9u
ZU5vZGUodHJ1ZSkpOworICAgICAgICAgICAgUmVmUHRyPENoYXJhY3RlckRhdGE+IGMgPSBzdGF0
aWNfY2FzdDxDaGFyYWN0ZXJEYXRhKj4oY29udGFpbmVyLT5jbG9uZU5vZGUodHJ1ZSkucHRyKCkp
OwogICAgICAgICAgICAgZGVsZXRlQ2hhcmFjdGVyRGF0YShjLCBzdGFydE9mZnNldCwgZW5kT2Zm
c2V0LCBlYyk7CiAgICAgICAgICAgICBpZiAoZnJhZ21lbnQpIHsKICAgICAgICAgICAgICAgICBy
ZXN1bHQgPSBmcmFnbWVudDsKQEAgLTcxNyw3ICs3MTcsNyBAQCBSZWZQdHI8Tm9kZT4gUmFuZ2U6
OnByb2Nlc3NDb250ZW50c0JldHdlZW5PZmZzZXRzKEFjdGlvblR5cGUgYWN0aW9uLCBQYXNzUmVm
UHRyPAogICAgICAgICBlbmRPZmZzZXQgPSBzdGQ6Om1pbihlbmRPZmZzZXQsIHN0YXRpY19jYXN0
PFByb2Nlc3NpbmdJbnN0cnVjdGlvbio+KGNvbnRhaW5lciktPmRhdGEoKS5sZW5ndGgoKSk7CiAg
ICAgICAgIHN0YXJ0T2Zmc2V0ID0gc3RkOjptaW4oc3RhcnRPZmZzZXQsIGVuZE9mZnNldCk7CiAg
ICAgICAgIGlmIChhY3Rpb24gPT0gRXh0cmFjdCB8fCBhY3Rpb24gPT0gQ2xvbmUpIHsKLSAgICAg
ICAgICAgIFJlZlB0cjxQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24+IGMgPSBzdGF0aWNfcG9pbnRlcl9j
YXN0PFByb2Nlc3NpbmdJbnN0cnVjdGlvbj4oY29udGFpbmVyLT5jbG9uZU5vZGUodHJ1ZSkpOwor
ICAgICAgICAgICAgUmVmUHRyPFByb2Nlc3NpbmdJbnN0cnVjdGlvbj4gYyA9IHN0YXRpY19jYXN0
PFByb2Nlc3NpbmdJbnN0cnVjdGlvbio+KGNvbnRhaW5lci0+Y2xvbmVOb2RlKHRydWUpLnB0cigp
KTsKICAgICAgICAgICAgIGMtPnNldERhdGEoYy0+ZGF0YSgpLnN1YnN0cmluZyhzdGFydE9mZnNl
dCwgZW5kT2Zmc2V0IC0gc3RhcnRPZmZzZXQpLCBlYyk7CiAgICAgICAgICAgICBpZiAoZnJhZ21l
bnQpIHsKICAgICAgICAgICAgICAgICByZXN1bHQgPSBmcmFnbWVudDsKQEAgLTkzNSw3ICs5MzUs
NyBAQCB2b2lkIFJhbmdlOjppbnNlcnROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gcHJwTmV3Tm9kZSwg
RXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIAogICAgICAg
ICBjb250YWluZXIgPSAmc3RhcnRDb250YWluZXIoKTsKLSAgICAgICAgY29udGFpbmVyLT5wYXJl
bnROb2RlKCktPmluc2VydEJlZm9yZShuZXdOb2RlLnJlbGVhc2UoKSwgbmV3VGV4dC5nZXQoKSwg
ZWMpOworICAgICAgICBjb250YWluZXItPnBhcmVudE5vZGUoKS0+aW5zZXJ0QmVmb3JlKG5ld05v
ZGUucmVsZWFzZU5vbk51bGwoKSwgbmV3VGV4dC5nZXQoKSwgZWMpOwogICAgICAgICBpZiAoZWMp
CiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTEzMDMsNyArMTMwMyw3IEBAIHZvaWQgUmFuZ2U6
OnN1cnJvdW5kQ29udGVudHMoUGFzc1JlZlB0cjxOb2RlPiBwYXNzTmV3UGFyZW50LCBFeGNlcHRp
b25Db2RlJiBlYykKIAogICAgIGVjID0gMDsKICAgICB3aGlsZSAoTm9kZSogbiA9IG5ld1BhcmVu
dC0+Zmlyc3RDaGlsZCgpKSB7Ci0gICAgICAgIGRvd25jYXN0PENvbnRhaW5lck5vZGU+KCpuZXdQ
YXJlbnQpLnJlbW92ZUNoaWxkKG4sIGVjKTsKKyAgICAgICAgZG93bmNhc3Q8Q29udGFpbmVyTm9k
ZT4oKm5ld1BhcmVudCkucmVtb3ZlQ2hpbGQoKm4sIGVjKTsKICAgICAgICAgaWYgKGVjKQogICAg
ICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
aGFkb3dSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAppbmRleCBh
MTIyNTdmODJkZGFkYzgwMzhlOGEzMGEzNDI1MmY2MzI5ZjdiYjZjLi44ODYxMDBkYjQ2OWUyNDFl
NDZiOTU2YmM1NzAxZGEwY2M1ZTY2OTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
U2hhZG93Um9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCkBA
IC05Miw3ICs5Miw3IEBAIHZvaWQgU2hhZG93Um9vdDo6c2V0SW5uZXJIVE1MKGNvbnN0IFN0cmlu
ZyYgbWFya3VwLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICB9CiAKICAgICBpZiAoUmVmUHRyPERv
Y3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGb3JJbm5lck91dGVySFRN
TChtYXJrdXAsIGhvc3QoKSwgQWxsb3dTY3JpcHRpbmdDb250ZW50LCBlYykpCi0gICAgICAgIHJl
cGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudCgqdGhpcywgZnJhZ21lbnQucmVsZWFzZSgpLCBlYyk7
CisgICAgICAgIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudCgqdGhpcywgZnJhZ21lbnQucmVs
ZWFzZU5vbk51bGwoKSwgZWMpOwogfQogCiBib29sIFNoYWRvd1Jvb3Q6OmNoaWxkVHlwZUFsbG93
ZWQoTm9kZVR5cGUgdHlwZSkgY29uc3QKQEAgLTEzMSw5ICsxMzEsMTAgQEAgdm9pZCBTaGFkb3dS
b290OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5nZSkKICAgICBpbnZh
bGlkYXRlRGlzdHJpYnV0aW9uKCk7CiB9CiAKLVJlZlB0cjxOb2RlPiBTaGFkb3dSb290OjpjbG9u
ZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pCitSZWY8Tm9kZT4gU2hh
ZG93Um9vdDo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKQog
ewotICAgIHJldHVybiBudWxscHRyOyAvLyBTaGFkb3dSb290cyBzaG91bGQgbmV2ZXIgYmUgY2xv
bmVkLgorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuICpzdGF0
aWNfY2FzdDxOb2RlKj4obnVsbHB0cik7IC8vIFNoYWRvd1Jvb3RzIHNob3VsZCBuZXZlciBiZSBj
bG9uZWQuCiB9CiAKIHZvaWQgU2hhZG93Um9vdDo6cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9TaGFkb3dSb290LmgKaW5kZXggNmQzMTFmZGI2MjYzZGExMmRjOWQ5MDRmNzEwZDA3
YjllYzg1YThjZi4uNjMxNjA4YWYxYWQ0NDM2YTI1YmE2MWViMzlkZWQ4ZmY2YTIyYmJkOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2hhZG93Um9vdC5oCkBAIC03Niw3ICs3Niw3IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCBib29sIGNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUpIGNvbnN0IG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBvdmVycmlk
ZTsKIAotICAgIHZpcnR1YWwgUmVmUHRyPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50
JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8Tm9kZT4gY2xv
bmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKIAog
ICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZG4ndCBoYXBwZW4uIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04ODgzNAogICAgIGJvb2wgaXNPcnBoYW4oKSBjb25zdCB7IHJl
dHVybiAhbV9ob3N0OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKaW5kZXggYjExNzFkNzYxMWJlNmRlNjUxNmI2
MDVkY2ZlMWI2ZGMxOWQ3MTM0My4uNmM0Yzg5ZGE5ZWI2ZWZjZjA2YWI4NDI5ZWE1YzRkMTIyM2Vl
MzQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9UZXh0LmNwcApAQCAtNzMsNyArNzMsNyBAQCBSZWZQdHI8VGV4dD4gVGV4
dDo6c3BsaXRUZXh0KHVuc2lnbmVkIG9mZnNldCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgZGlz
cGF0Y2hNb2RpZmllZEV2ZW50KG9sZFN0cik7CiAKICAgICBpZiAocGFyZW50Tm9kZSgpKQotICAg
ICAgICBwYXJlbnROb2RlKCktPmluc2VydEJlZm9yZShuZXdUZXh0LnB0cigpLCBuZXh0U2libGlu
ZygpLCBlYyk7CisgICAgICAgIHBhcmVudE5vZGUoKS0+aW5zZXJ0QmVmb3JlKG5ld1RleHQuY29w
eVJlZigpLCBuZXh0U2libGluZygpLCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4g
MDsKIApAQCAtMTMyLDI4ICsxMzIsMjggQEAgUmVmUHRyPFRleHQ+IFRleHQ6OnJlcGxhY2VXaG9s
ZVRleHQoY29uc3QgU3RyaW5nJiBuZXdUZXh0LCBFeGNlcHRpb25Db2RlJikKICAgICBSZWZQdHI8
VGV4dD4gcHJvdGVjdGVkVGhpcyh0aGlzKTsgLy8gTXV0YXRpb24gZXZlbnQgaGFuZGxlcnMgY291
bGQgY2F1c2Ugb3VyIGxhc3QgcmVmIHRvIGdvIGF3YXkKICAgICBSZWZQdHI8Q29udGFpbmVyTm9k
ZT4gcGFyZW50ID0gcGFyZW50Tm9kZSgpOyAvLyBQcm90ZWN0IGFnYWluc3QgbXV0YXRpb24gaGFu
ZGxlcnMgbW92aW5nIHRoaXMgbm9kZSBkdXJpbmcgdHJhdmVyc2FsCiAgICAgZm9yIChSZWZQdHI8
Tm9kZT4gbiA9IHN0YXJ0VGV4dDsgbiAmJiBuICE9IHRoaXMgJiYgbi0+aXNUZXh0Tm9kZSgpICYm
IG4tPnBhcmVudE5vZGUoKSA9PSBwYXJlbnQ7KSB7Ci0gICAgICAgIFJlZlB0cjxOb2RlPiBub2Rl
VG9SZW1vdmUobi5yZWxlYXNlKCkpOworICAgICAgICBSZWY8Tm9kZT4gbm9kZVRvUmVtb3ZlKG4u
cmVsZWFzZU5vbk51bGwoKSk7CiAgICAgICAgIG4gPSBub2RlVG9SZW1vdmUtPm5leHRTaWJsaW5n
KCk7Ci0gICAgICAgIHBhcmVudC0+cmVtb3ZlQ2hpbGQobm9kZVRvUmVtb3ZlLmdldCgpLCBJR05P
UkVfRVhDRVBUSU9OKTsKKyAgICAgICAgcGFyZW50LT5yZW1vdmVDaGlsZChXVEY6Om1vdmUobm9k
ZVRvUmVtb3ZlKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgfQogCiAgICAgaWYgKHRoaXMgIT0g
ZW5kVGV4dCkgewogICAgICAgICBOb2RlKiBvbmVQYXN0RW5kVGV4dCA9IGVuZFRleHQtPm5leHRT
aWJsaW5nKCk7CiAgICAgICAgIGZvciAoUmVmUHRyPE5vZGU+IG4gPSBuZXh0U2libGluZygpOyBu
ICYmIG4gIT0gb25lUGFzdEVuZFRleHQgJiYgbi0+aXNUZXh0Tm9kZSgpICYmIG4tPnBhcmVudE5v
ZGUoKSA9PSBwYXJlbnQ7KSB7Ci0gICAgICAgICAgICBSZWZQdHI8Tm9kZT4gbm9kZVRvUmVtb3Zl
KG4ucmVsZWFzZSgpKTsKKyAgICAgICAgICAgIFJlZjxOb2RlPiBub2RlVG9SZW1vdmUobi5yZWxl
YXNlTm9uTnVsbCgpKTsKICAgICAgICAgICAgIG4gPSBub2RlVG9SZW1vdmUtPm5leHRTaWJsaW5n
KCk7Ci0gICAgICAgICAgICBwYXJlbnQtPnJlbW92ZUNoaWxkKG5vZGVUb1JlbW92ZS5nZXQoKSwg
SUdOT1JFX0VYQ0VQVElPTik7CisgICAgICAgICAgICBwYXJlbnQtPnJlbW92ZUNoaWxkKFdURjo6
bW92ZShub2RlVG9SZW1vdmUpLCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICAgICAgfQogICAgIH0K
IAogICAgIGlmIChuZXdUZXh0LmlzRW1wdHkoKSkgewogICAgICAgICBpZiAocGFyZW50ICYmIHBh
cmVudE5vZGUoKSA9PSBwYXJlbnQpCi0gICAgICAgICAgICBwYXJlbnQtPnJlbW92ZUNoaWxkKHRo
aXMsIElHTk9SRV9FWENFUFRJT04pOwotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHBh
cmVudC0+cmVtb3ZlQ2hpbGQoKnRoaXMsIElHTk9SRV9FWENFUFRJT04pOworICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBzZXREYXRhKG5ld1RleHQsIElHTk9SRV9FWENFUFRJ
T04pOwotICAgIHJldHVybiBwcm90ZWN0ZWRUaGlzLnJlbGVhc2UoKTsKKyAgICByZXR1cm4gcHJv
dGVjdGVkVGhpczsKIH0KIAogU3RyaW5nIFRleHQ6Om5vZGVOYW1lKCkgY29uc3QKQEAgLTE2Niw3
ICsxNjYsNyBAQCBOb2RlOjpOb2RlVHlwZSBUZXh0Ojpub2RlVHlwZSgpIGNvbnN0CiAgICAgcmV0
dXJuIFRFWFRfTk9ERTsKIH0KIAotUmVmUHRyPE5vZGU+IFRleHQ6OmNsb25lTm9kZUludGVybmFs
KERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikKK1JlZjxOb2RlPiBU
ZXh0OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdP
cGVyYXRpb24pCiB7CiAgICAgcmV0dXJuIGNyZWF0ZSh0YXJnZXREb2N1bWVudCwgZGF0YSgpKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vVGV4dC5oCmluZGV4IGE5Njc0MzY0Y2RhMGRlZGI4ZWNhNTljYzBhMjVhNTM3MmJiYTk3
ZDQuLmVmZDZiZGU5MjdjMWY5OTkzNTdlMjUxZWU0NTQyMDlhZDFjZjUwZmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHQu
aApAQCAtNjIsNyArNjIsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgU3Ry
aW5nIG5vZGVOYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBOb2RlVHlwZSBub2Rl
VHlwZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVmUHRyPE5vZGU+IGNsb25lTm9k
ZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0
aW9uKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRUeXBlQWxsb3dlZChOb2RlVHlw
ZSkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIFJlZjxUZXh0PiB2aXJ0dWFsQ3JlYXRl
KGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBl
bmROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21t
YW5kLmNwcAppbmRleCA2YThkOWU5MWEyNTFiMWFiOTdhMTllMjMyMzIwY2I4NDY4YjVjMzA0Li5j
ZWVlZGZkMTdhODMyMTEwMzRmZTc1ZTllNjVlYWEyYmZmODdmYWNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcApAQCAtMzUsMTMgKzM1LDEyIEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQXBwZW5kTm9kZUNvbW1hbmQ6OkFwcGVuZE5vZGVDb21t
YW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+IG5v
ZGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKK0FwcGVuZE5vZGVDb21tYW5kOjpBcHBlbmRO
b2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgTm9kZSYgbm9kZSwg
RWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQogICAgIDogU2ltcGxlRWRpdENvbW1hbmQocGFyZW50
LT5kb2N1bWVudCgpLCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9wYXJlbnQocGFyZW50KQogICAg
ICwgbV9ub2RlKG5vZGUpCiB7CiAgICAgQVNTRVJUKG1fcGFyZW50KTsKLSAgICBBU1NFUlQobV9u
b2RlKTsKICAgICBBU1NFUlQoIW1fbm9kZS0+cGFyZW50Tm9kZSgpKTsKIAogICAgIEFTU0VSVCht
X3BhcmVudC0+aGFzRWRpdGFibGVTdHlsZSgpIHx8ICFtX3BhcmVudC0+cmVuZGVyZXIoKSk7CkBA
IC02OCwxMCArNjcsMTEgQEAgdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAg
aWYgKCFtX3BhcmVudC0+aGFzRWRpdGFibGVTdHlsZSgpICYmIG1fcGFyZW50LT5yZW5kZXJlcigp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3BhcmVudC0+YXBwZW5kQ2hpbGQobV9ub2RlLmdl
dCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBSZWY8Tm9kZT4gbm9kZVRvQXBwZW5kID0gbV9u
b2RlLmNvcHlSZWYoKTsKKyAgICBtX3BhcmVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKG5vZGVU
b0FwcGVuZCksIElHTk9SRV9FWENFUFRJT04pOwogCiAgICAgaWYgKHNob3VsZFBvc3RBY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uKCkpCi0gICAgICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdM
aW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpKTsKKyAgICAgICAgc2VuZEFY
VGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLnB0cigpLCBhcHBseUVkaXRUeXBl
KCkpOwogfQogCiB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQpAQCAtODEsNyAr
ODEsNyBAQCB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogCiAgICAgLy8gTmVl
ZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKICAgICBp
ZiAoc2hvdWxkUG9zdEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24oKSkKLSAgICAgICAgc2VuZEFY
VGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5
cGUoKSk7CisgICAgICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9k
ZS5wdHIoKSwgdW5hcHBseUVkaXRUeXBlKCkpOwogCiAgICAgbV9ub2RlLT5yZW1vdmUoSUdOT1JF
X0VYQ0VQVElPTik7CiB9CkBAIC05MCw3ICs5MCw3IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6
OmRvVW5hcHBseSgpCiB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpnZXROb2Rlc0luQ29tbWFuZChI
YXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB7CiAgICAgYWRkTm9kZUFuZERlc2NlbmRhbnRzKG1fcGFy
ZW50LmdldCgpLCBub2Rlcyk7Ci0gICAgYWRkTm9kZUFuZERlc2NlbmRhbnRzKG1fbm9kZS5nZXQo
KSwgbm9kZXMpOworICAgIGFkZE5vZGVBbmREZXNjZW5kYW50cyhtX25vZGUucHRyKCksIG5vZGVz
KTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVu
ZE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5k
LmgKaW5kZXggZjc4Mjk3NWI4OTIxNTBhZTM2ZDI5YTZiYmVjYTlmMWRjMTMwN2MzMS4uZjY0YmFk
YzAwZDAzYTkzZjM3M2RlMjcxODZiODRmNTRlZDQ5Yzk3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaApAQCAtMzIsMTMgKzMyLDEzIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgQXBwZW5kTm9kZUNvbW1hbmQgOiBwdWJsaWMgU2ltcGxlRWRpdENv
bW1hbmQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8QXBwZW5kTm9kZUNvbW1hbmQ+IGNyZWF0
ZShQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0cjxOb2RlPiBub2Rl
LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgc3RhdGljIFJlZjxBcHBlbmROb2RlQ29t
bWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBOb2RlJiBub2Rl
LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBBcHBlbmROb2RlQ29tbWFuZChwYXJlbnQsIG5vZGUsIGVkaXRpbmdBY3Rpb24pKTsK
ICAgICB9CiAKIHByaXZhdGU6Ci0gICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250
YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4sIEVkaXRBY3Rpb24pOworICAgIEFw
cGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBOb2RlJiwg
RWRpdEFjdGlvbik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJp
dmF0ZToKICNlbmRpZgogCiAgICAgUmVmUHRyPENvbnRhaW5lck5vZGU+IG1fcGFyZW50OwotICAg
IFJlZlB0cjxOb2RlPiBtX25vZGU7CisgICAgUmVmPE5vZGU+IG1fbm9kZTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29t
cG9zaXRlRWRpdENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVF
ZGl0Q29tbWFuZC5jcHAKaW5kZXggM2Q3Nzk0MjQ4ZDIzZTliN2EyMzkxNjJmOTcxYTQ0NzQ3NTFi
NjMwMy4uNWQ5ZDM2ZmY1MGY1ZGNmNjdkMDhkMGU0YTYyNTM2MzZlOTFiNTA2MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKQEAgLTM5NSw3
ICszOTUsOCBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQXQoUGFzc1Jl
ZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgY29uc3QgUG9zaQogdm9pZCBDb21wb3NpdGVFZGl0Q29t
bWFuZDo6YXBwZW5kTm9kZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFBhc3NSZWZQdHI8Q29udGFp
bmVyTm9kZT4gcGFyZW50KQogewogICAgIEFTU0VSVChjYW5IYXZlQ2hpbGRyZW5Gb3JFZGl0aW5n
KHBhcmVudC5nZXQoKSkpOwotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEFwcGVuZE5vZGVD
b21tYW5kOjpjcmVhdGUocGFyZW50LCBub2RlLCBlZGl0aW5nQWN0aW9uKCkpKTsKKyAgICBBU1NF
UlQobm9kZSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoQXBwZW5kTm9kZUNvbW1hbmQ6
OmNyZWF0ZShwYXJlbnQsICpub2RlLCBlZGl0aW5nQWN0aW9uKCkpKTsKIH0KIAogdm9pZCBDb21w
b3NpdGVFZGl0Q29tbWFuZDo6cmVtb3ZlQ2hpbGRyZW5JblJhbmdlKFBhc3NSZWZQdHI8Tm9kZT4g
bm9kZSwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8pCkBAIC00MTQsNyArNDE1LDcgQEAgdm9p
ZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVtb3ZlTm9kZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUs
IFNob3VsZEFzc3VtZUNvbnRlbnQKIHsKICAgICBpZiAoIW5vZGUgfHwgIW5vZGUtPm5vblNoYWRv
d0JvdW5kYXJ5UGFyZW50Tm9kZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgYXBwbHlDb21tYW5k
VG9Db21wb3NpdGUoUmVtb3ZlTm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBzaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKFJl
bW92ZU5vZGVDb21tYW5kOjpjcmVhdGUoKm5vZGUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlKSk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92ZU5vZGVQ
cmVzZXJ2aW5nQ2hpbGRyZW4oUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBTaG91bGRBc3N1bWVDb250
ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkK
QEAgLTE1NDEsNyArMTU0Miw3IEBAIFBhc3NSZWZQdHI8Tm9kZT4gQ29tcG9zaXRlRWRpdENvbW1h
bmQ6OnNwbGl0VHJlZVRvTm9kZShOb2RlKiBzdGFydCwgTm9kZSogZW5kLCBiCiAgICAgcmV0dXJu
IG5vZGUucmVsZWFzZSgpOwogfQogCi1QYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZUJsb2NrUGxh
Y2Vob2xkZXJFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxFbGVtZW50PiBjcmVhdGVC
bG9ja1BsYWNlaG9sZGVyRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJu
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYnJUYWcsIGZhbHNlKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCmluZGV4IGM2NDkxZDI2
OTI2NWU1YWI2Y2U5NjVlYWE5NTM0MWI2NTQ0N2QxYWUuLjU2MDk5NzEzM2Y2MTllM2QwYTcyZGNi
ZGFmYmFiMTc4ZDhmMzBkMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtNjMyLDcgKzYzMiw3IEBAIHZvaWQgRGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZDo6bWVyZ2VQYXJhZ3JhcGhzKCkKICAgICAKICAgICAvLyBXZSBuZWVkIHRv
IG1lcmdlIGludG8gbV91cHN0cmVhbVN0YXJ0J3MgYmxvY2ssIGJ1dCBpdCdzIGJlZW4gZW1wdGll
ZCBvdXQgYW5kIGNvbGxhcHNlZCBieSBkZWxldGlvbi4KICAgICBpZiAoIW1lcmdlRGVzdGluYXRp
b24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkTm9kZSgpIHx8ICFtZXJnZURlc3RpbmF0aW9u
LmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZE5vZGUoKS0+aXNEZXNjZW5kYW50T2YoZW5jbG9z
aW5nQmxvY2sobV91cHN0cmVhbVN0YXJ0LmNvbnRhaW5lck5vZGUoKSkpIHx8IG1fc3RhcnRzQXRF
bXB0eUxpbmUpIHsKLSAgICAgICAgaW5zZXJ0Tm9kZUF0KGNyZWF0ZUJyZWFrRWxlbWVudChkb2N1
bWVudCgpKS5nZXQoKSwgbV91cHN0cmVhbVN0YXJ0KTsKKyAgICAgICAgaW5zZXJ0Tm9kZUF0KGNy
ZWF0ZUJyZWFrRWxlbWVudChkb2N1bWVudCgpKS5wdHIoKSwgbV91cHN0cmVhbVN0YXJ0KTsKICAg
ICAgICAgbWVyZ2VEZXN0aW5hdGlvbiA9IFZpc2libGVQb3NpdGlvbihtX3Vwc3RyZWFtU3RhcnQp
OwogICAgIH0KICAgICAKQEAgLTg1NSw3ICs4NTUsNyBAQCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQ6OmRvQXBwbHkoKQogICAgIAogICAgIHJlbW92ZVByZXZpb3VzbHlTZWxlY3RlZEVtcHR5
VGFibGVSb3dzKCk7CiAgICAgCi0gICAgUmVmUHRyPE5vZGU+IHBsYWNlaG9sZGVyID0gbV9uZWVk
UGxhY2Vob2xkZXIgPyBjcmVhdGVCcmVha0VsZW1lbnQoZG9jdW1lbnQoKSkuZ2V0KCkgOiAwOwor
ICAgIFJlZlB0cjxOb2RlPiBwbGFjZWhvbGRlciA9IG1fbmVlZFBsYWNlaG9sZGVyID8gY3JlYXRl
QnJlYWtFbGVtZW50KGRvY3VtZW50KCkpLnB0cigpIDogbnVsbHB0cjsKICAgICAKICAgICBpZiAo
cGxhY2Vob2xkZXIpIHsKICAgICAgICAgaWYgKG1fc2FuaXRpemVNYXJrdXApCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5jcHAKaW5kZXggMTQ4ZTM1YzhjY2ZhOTZjNWIxMDg0MmFlZjYxZGM2ZDdlMTg2
NjgzNC4uNDRiMmFjNzM4MjE2ZDg5MzdlNDU0YjQ5Y2FjOWQ4ZGNiNzUwNmFmYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtNjEzLDggKzYxMyw4IEBAIHZvaWQgRWRpdG9yOjpzZXRU
ZXh0QXNDaGlsZE9mRWxlbWVudChjb25zdCBTdHJpbmcmIHRleHQsIEVsZW1lbnQqIGVsZW0pCiAg
ICAgICAgICAgICAKICAgICAgICAgUmVmUHRyPFJhbmdlPiBjb250ZXh0ID0gZG9jdW1lbnQoKS5j
cmVhdGVSYW5nZSgpOwogICAgICAgICBjb250ZXh0LT5zZWxlY3ROb2RlQ29udGVudHMoZWxlbSwg
ZWMpOwotICAgICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVhdGVG
cmFnbWVudEZyb21UZXh0KCpjb250ZXh0LmdldCgpLCB0ZXh0KTsKLSAgICAgICAgZWxlbS0+YXBw
ZW5kQ2hpbGQoZnJhZ21lbnQsIGVjKTsKKyAgICAgICAgUmVmPERvY3VtZW50RnJhZ21lbnQ+IGZy
YWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGcm9tVGV4dCgqY29udGV4dC5nZXQoKSwgdGV4dCk7Cisg
ICAgICAgIGVsZW0tPmFwcGVuZENoaWxkKFdURjo6bW92ZShmcmFnbWVudCksIGVjKTsKICAgICAK
ICAgICAgICAgLy8gcmVzdG9yZSBlbGVtZW50IHRvIGRvY3VtZW50CiAgICAgICAgIGlmIChwYXJl
bnQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCmluZGV4IDBmOGY4
ODAzM2E0ZmVmYTIzZDc1MjY4OTllZTQ3NDE5ZmQ0MDcyMmIuLjEyY2RkMjFkOGVjMTNkNzBlNWZi
MDAzY2U4N2YyZDkyNTE2ODJjMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21t
YW5kLmNwcApAQCAtMTY1LDExICsxNjUsMTEgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZUluc2VydEZy
YWdtZW50KEZyYW1lJiBmcmFtZSwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmEKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGJvb2wgZXhlY3V0ZUluc2VydE5vZGUoRnJhbWUm
IGZyYW1lLCBQYXNzUmVmUHRyPE5vZGU+IGNvbnRlbnQpCitzdGF0aWMgYm9vbCBleGVjdXRlSW5z
ZXJ0Tm9kZShGcmFtZSYgZnJhbWUsIFJlZjxOb2RlPiYmIGNvbnRlbnQpCiB7CiAgICAgUmVmUHRy
PERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gRG9jdW1lbnRGcmFnbWVudDo6Y3JlYXRlKCpm
cmFtZS5kb2N1bWVudCgpKTsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBmcmFnbWVu
dC0+YXBwZW5kQ2hpbGQoY29udGVudCwgZWMpOworICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChX
VEY6Om1vdmUoY29udGVudCksIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICByZXR1cm4gZXhlY3V0ZUluc2VydEZyYWdtZW50KGZyYW1lLCBmcmFnbWVudC5yZWxl
YXNlKCkpOwpAQCAtNDY0LDEwICs0NjQsMTAgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZUluc2VydEJh
Y2t0YWIoRnJhbWUmIGZyYW1lLCBFdmVudCogZXZlbnQsIEVkaXRvckNvbW1hbmRTb3VyY2UKIAog
c3RhdGljIGJvb2wgZXhlY3V0ZUluc2VydEhvcml6b250YWxSdWxlKEZyYW1lJiBmcmFtZSwgRXZl
bnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJpbmcmIHZhbHVlKQogewotICAgIFJl
ZlB0cjxIVE1MSFJFbGVtZW50PiBydWxlID0gSFRNTEhSRWxlbWVudDo6Y3JlYXRlKCpmcmFtZS5k
b2N1bWVudCgpKTsKKyAgICBSZWY8SFRNTEhSRWxlbWVudD4gcnVsZSA9IEhUTUxIUkVsZW1lbnQ6
OmNyZWF0ZSgqZnJhbWUuZG9jdW1lbnQoKSk7CiAgICAgaWYgKCF2YWx1ZS5pc0VtcHR5KCkpCiAg
ICAgICAgIHJ1bGUtPnNldElkQXR0cmlidXRlKHZhbHVlKTsKLSAgICByZXR1cm4gZXhlY3V0ZUlu
c2VydE5vZGUoZnJhbWUsIHJ1bGUucmVsZWFzZSgpKTsKKyAgICByZXR1cm4gZXhlY3V0ZUluc2Vy
dE5vZGUoZnJhbWUsIFdURjo6bW92ZShydWxlKSk7CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVJ
bnNlcnRIVE1MKEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25z
dCBTdHJpbmcmIHZhbHVlKQpAQCAtNDc4LDkgKzQ3OCw5IEBAIHN0YXRpYyBib29sIGV4ZWN1dGVJ
bnNlcnRIVE1MKEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25z
dCBTCiBzdGF0aWMgYm9vbCBleGVjdXRlSW5zZXJ0SW1hZ2UoRnJhbWUmIGZyYW1lLCBFdmVudCos
IEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7CiAgICAgLy8gRklY
TUU6IElmIHVzZXJJbnRlcmZhY2UgaXMgdHJ1ZSwgd2Ugc2hvdWxkIGRpc3BsYXkgYSBkaWFsb2cg
Ym94IGFuZCBsZXQgdGhlIHVzZXIgY2hvb3NlIGEgbG9jYWwgaW1hZ2UuCi0gICAgUmVmUHRyPEhU
TUxJbWFnZUVsZW1lbnQ+IGltYWdlID0gSFRNTEltYWdlRWxlbWVudDo6Y3JlYXRlKCpmcmFtZS5k
b2N1bWVudCgpKTsKKyAgICBSZWY8SFRNTEltYWdlRWxlbWVudD4gaW1hZ2UgPSBIVE1MSW1hZ2VF
bGVtZW50OjpjcmVhdGUoKmZyYW1lLmRvY3VtZW50KCkpOwogICAgIGltYWdlLT5zZXRTcmModmFs
dWUpOwotICAgIHJldHVybiBleGVjdXRlSW5zZXJ0Tm9kZShmcmFtZSwgaW1hZ2UucmVsZWFzZSgp
KTsKKyAgICByZXR1cm4gZXhlY3V0ZUluc2VydE5vZGUoZnJhbWUsIFdURjo6bW92ZShpbWFnZSkp
OwogfQogCiBzdGF0aWMgYm9vbCBleGVjdXRlSW5zZXJ0TGluZUJyZWFrKEZyYW1lJiBmcmFtZSwg
RXZlbnQqIGV2ZW50LCBFZGl0b3JDb21tYW5kU291cmNlIHNvdXJjZSwgY29uc3QgU3RyaW5nJikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0TGluZUJyZWFrQ29tbWFu
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydExpbmVCcmVha0NvbW1hbmQuY3Bw
CmluZGV4IDZlZTIxZDkyMjczZGNlNTVmMTI0ODZmOGY5Nzg3YTI2ODBlZTM5MDAuLjI1YWIwNzEy
NGU3OTI3NzIwMjQ1ZWU2ZDZlNDZjZWQxYzZlOWM4NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvSW5zZXJ0TGluZUJyZWFrQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9JbnNlcnRMaW5lQnJlYWtDb21tYW5kLmNwcApAQCAtMTI5LDcgKzEyOSw3IEBA
IHZvaWQgSW5zZXJ0TGluZUJyZWFrQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgICAgIAogICAgICAg
ICAvLyBJbnNlcnQgYW4gZXh0cmEgYnIgb3IgJ1xuJyBpZiB0aGUganVzdCBpbnNlcnRlZCBvbmUg
Y29sbGFwc2VkLgogICAgICAgICBpZiAoIWlzU3RhcnRPZlBhcmFncmFwaChwb3NpdGlvbkJlZm9y
ZU5vZGUobm9kZVRvSW5zZXJ0LmdldCgpKSkpCi0gICAgICAgICAgICBpbnNlcnROb2RlQmVmb3Jl
KG5vZGVUb0luc2VydC0+Y2xvbmVOb2RlKGZhbHNlKS5nZXQoKSwgbm9kZVRvSW5zZXJ0LmdldCgp
KTsKKyAgICAgICAgICAgIGluc2VydE5vZGVCZWZvcmUobm9kZVRvSW5zZXJ0LT5jbG9uZU5vZGUo
ZmFsc2UpLCBub2RlVG9JbnNlcnQuZ2V0KCkpOwogICAgICAgICAKICAgICAgICAgc2V0RW5kaW5n
U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24ocG9zaXRpb25JblBhcmVudEFmdGVyTm9kZShub2Rl
VG9JbnNlcnQuZ2V0KCkpLCBET1dOU1RSRUFNLCBlbmRpbmdTZWxlY3Rpb24oKS5pc0RpcmVjdGlv
bmFsKCkpKTsKICAgICAvLyBJZiB3ZSdyZSBpbnNlcnRpbmcgYWZ0ZXIgYWxsIG9mIHRoZSByZW5k
ZXJlZCB0ZXh0IGluIGEgdGV4dCBub2RlLCBvciBpbnRvIGEgbm9uLXRleHQgbm9kZSwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKaW5k
ZXggZmExNGQwNzY2ZWFmNzVmYTQzMTllNmQ4ODU3NGFmM2QzYTAzZTQzNi4uNTBmNjU0NWU2MmY3
YmRiODRmZDBjNWViNTM0ZTRlY2M4NjFkYmEyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgdm9p
ZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgICAgIHJldHVybjsKICAg
ICBBU1NFUlQoaXNFZGl0YWJsZU5vZGUoKnBhcmVudCkpOwogCi0gICAgcGFyZW50LT5pbnNlcnRC
ZWZvcmUobV9pbnNlcnRDaGlsZC5nZXQoKSwgbV9yZWZDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQ
VElPTik7CisgICAgcGFyZW50LT5pbnNlcnRCZWZvcmUoKm1faW5zZXJ0Q2hpbGQsIG1fcmVmQ2hp
bGQuZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOwogCiAgICAgaWYgKHNob3VsZFBvc3RBY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uKCkpIHsKICAgICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBpczxU
ZXh0PihtX2luc2VydENoaWxkLmdldCgpKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KG1faW5z
ZXJ0Q2hpbGQuZ2V0KCkpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihtX2luc2Vy
dENoaWxkLmdldCgpLCAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuY3BwCmluZGV4IDdkZDAxNjBjZDAzNDNk
YWFkZjEyNDM0MTJlM2VhYWZmMTYxN2Q2NWEuLjE1MDMyMjkyYWRlNjU4ODQ0YTdmOTIwNmNmYWI3
MDlmYjU2NDEwY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFy
YWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9J
bnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcApAQCAtMzY4LDcgKzM2OCw3IEBAIHZv
aWQgSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgLy8gY3Jl
YXRlZC4gIEFsbCBvZiB0aGUgbm9kZXMsIHN0YXJ0aW5nIGF0IHZpc2libGVQb3MsIGFyZSBhYm91
dCB0byBiZSBhZGRlZCB0byB0aGUgbmV3IHBhcmFncmFwaCAKICAgICAvLyBlbGVtZW50LiAgSWYg
dGhlIGZpcnN0IG5vZGUgdG8gYmUgaW5zZXJ0ZWQgd29uJ3QgYmUgb25lIHRoYXQgd2lsbCBob2xk
IGFuIGVtcHR5IGxpbmUgb3BlbiwgYWRkIGEgYnIuCiAgICAgaWYgKGlzRW5kT2ZQYXJhZ3JhcGgo
dmlzaWJsZVBvcykgJiYgIWxpbmVCcmVha0V4aXN0c0F0VmlzaWJsZVBvc2l0aW9uKHZpc2libGVQ
b3MpKQotICAgICAgICBhcHBlbmROb2RlKGNyZWF0ZUJyZWFrRWxlbWVudChkb2N1bWVudCgpKS5n
ZXQoKSwgYmxvY2tUb0luc2VydC5nZXQoKSk7CisgICAgICAgIGFwcGVuZE5vZGUoY3JlYXRlQnJl
YWtFbGVtZW50KGRvY3VtZW50KCkpLCBibG9ja1RvSW5zZXJ0LmdldCgpKTsKIAogICAgIC8vIE1v
dmUgdGhlIHN0YXJ0IG5vZGUgYW5kIHRoZSBzaWJsaW5ncyBvZiB0aGUgc3RhcnQgbm9kZS4KICAg
ICBpZiAoVmlzaWJsZVBvc2l0aW9uKGluc2VydGlvblBvc2l0aW9uKSAhPSBWaXNpYmxlUG9zaXRp
b24ocG9zaXRpb25CZWZvcmVOb2RlKGJsb2NrVG9JbnNlcnQuZ2V0KCkpKSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NZXJnZUlkZW50aWNhbEVsZW1lbnRzQ29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5k
LmNwcAppbmRleCA0NjUxODg0NjM2NGZhMzNjMjg1Y2Y2MDA5N2YwNDNiMmMyY2YzODdlLi40YTU5
ZWY2ODBkNmEwZGYyMTczNWE5ZWIyMDUwYTE4ZWRmNjZmMWNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL01lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL01lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmNwcApA
QCAtNDcsMTMgKzQ3LDEzIEBAIHZvaWQgTWVyZ2VJZGVudGljYWxFbGVtZW50c0NvbW1hbmQ6OmRv
QXBwbHkoKQogCiAgICAgbV9hdENoaWxkID0gbV9lbGVtZW50Mi0+Zmlyc3RDaGlsZCgpOwogCi0g
ICAgVmVjdG9yPFJlZlB0cjxOb2RlPj4gY2hpbGRyZW47CisgICAgVmVjdG9yPFJlZjxOb2RlPj4g
Y2hpbGRyZW47CiAgICAgZm9yIChOb2RlKiBjaGlsZCA9IG1fZWxlbWVudDEtPmZpcnN0Q2hpbGQo
KTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCi0gICAgICAgIGNoaWxkcmVu
LmFwcGVuZChjaGlsZCk7CisgICAgICAgIGNoaWxkcmVuLmFwcGVuZCgqY2hpbGQpOwogCiAgICAg
c2l6ZV90IHNpemUgPSBjaGlsZHJlbi5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBzaXplOyArK2kpCi0gICAgICAgIG1fZWxlbWVudDItPmluc2VydEJlZm9yZShjaGlsZHJlbltp
XS5yZWxlYXNlKCksIG1fYXRDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgICAg
IG1fZWxlbWVudDItPmluc2VydEJlZm9yZShXVEY6Om1vdmUoY2hpbGRyZW5baV0pLCBtX2F0Q2hp
bGQuZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOwogCiAgICAgbV9lbGVtZW50MS0+cmVtb3ZlKElH
Tk9SRV9FWENFUFRJT04pOwogfQpAQCAtNzEsMTcgKzcxLDE3IEBAIHZvaWQgTWVyZ2VJZGVudGlj
YWxFbGVtZW50c0NvbW1hbmQ6OmRvVW5hcHBseSgpCiAKICAgICBFeGNlcHRpb25Db2RlIGVjID0g
MDsKIAotICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG1fZWxlbWVudDEuZ2V0KCksIG1fZWxlbWVu
dDIuZ2V0KCksIGVjKTsKKyAgICBwYXJlbnQtPmluc2VydEJlZm9yZSgqbV9lbGVtZW50MSwgbV9l
bGVtZW50Mi5nZXQoKSwgZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuOwogCi0gICAg
VmVjdG9yPFJlZlB0cjxOb2RlPj4gY2hpbGRyZW47CisgICAgVmVjdG9yPFJlZjxOb2RlPj4gY2hp
bGRyZW47CiAgICAgZm9yIChOb2RlKiBjaGlsZCA9IG1fZWxlbWVudDItPmZpcnN0Q2hpbGQoKTsg
Y2hpbGQgJiYgY2hpbGQgIT0gYXRDaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkK
LSAgICAgICAgY2hpbGRyZW4uYXBwZW5kKGNoaWxkKTsKKyAgICAgICAgY2hpbGRyZW4uYXBwZW5k
KCpjaGlsZCk7CiAKICAgICBzaXplX3Qgc2l6ZSA9IGNoaWxkcmVuLnNpemUoKTsKICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgbV9lbGVtZW50MS0+YXBwZW5k
Q2hpbGQoY2hpbGRyZW5baV0ucmVsZWFzZSgpLCBlYyk7CisgICAgICAgIG1fZWxlbWVudDEtPmFw
cGVuZENoaWxkKFdURjo6bW92ZShjaGlsZHJlbltpXSksIGVjKTsKIH0KIAogI2lmbmRlZiBOREVC
VUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5jcHAKaW5kZXgg
MzFjNTRkMWU4ODJlMmQ0NjU0MDQwOGU0NTA2MGM0OWQ5MDhiYmVjNi4uYmVlYzdlNGRhZTQ0YjEw
NGMyYmQxNWZhYzA5ZmVkNzk0NjlkZmEwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZW1vdmVOb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZW1vdmVOb2RlQ29tbWFuZC5jcHAKQEAgLTM0LDEyICszNCwxMSBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLVJlbW92ZU5vZGVDb21tYW5kOjpSZW1vdmVOb2RlQ29tbWFuZChQYXNzUmVmUHRy
PE5vZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQotICAgIDogU2ltcGxlRWRpdENvbW1hbmQobm9k
ZS0+ZG9jdW1lbnQoKSkKK1JlbW92ZU5vZGVDb21tYW5kOjpSZW1vdmVOb2RlQ29tbWFuZChOb2Rl
JiBub2RlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICA6IFNpbXBsZUVkaXRDb21tYW5kKG5vZGUuZG9j
dW1lbnQoKSkKICAgICAsIG1fbm9kZShub2RlKQogICAgICwgbV9zaG91bGRBc3N1bWVDb250ZW50
SXNBbHdheXNFZGl0YWJsZShzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKIHsK
LSAgICBBU1NFUlQobV9ub2RlKTsKICAgICBBU1NFUlQobV9ub2RlLT5wYXJlbnROb2RlKCkpOwog
fQogCkBAIC02NCw3ICs2Myw3IEBAIHZvaWQgUmVtb3ZlTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgp
CiAgICAgaWYgKCFwYXJlbnQgfHwgIXBhcmVudC0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBwYXJlbnQtPmluc2VydEJlZm9yZShtX25vZGUuZ2V0KCksIHJlZkNo
aWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBwYXJlbnQtPmluc2VydEJlZm9yZSht
X25vZGUuY29weVJlZigpLCByZWZDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CiAK
ICNpZm5kZWYgTkRFQlVHCkBAIC03Miw3ICs3MSw3IEBAIHZvaWQgUmVtb3ZlTm9kZUNvbW1hbmQ6
OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIHsKICAgICBhZGROb2Rl
QW5kRGVzY2VuZGFudHMobV9wYXJlbnQuZ2V0KCksIG5vZGVzKTsKICAgICBhZGROb2RlQW5kRGVz
Y2VuZGFudHMobV9yZWZDaGlsZC5nZXQoKSwgbm9kZXMpOwotICAgIGFkZE5vZGVBbmREZXNjZW5k
YW50cyhtX25vZGUuZ2V0KCksIG5vZGVzKTsKKyAgICBhZGROb2RlQW5kRGVzY2VuZGFudHMobV9u
b2RlLnB0cigpLCBub2Rlcyk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZW1vdmVOb2RlQ29tbWFuZC5oCmluZGV4IDE4MWU5ODVkN2YzMGNkNDQ5NjY0ZTZmZjhjY2E5NDJm
MjZmNmNmNmUuLjAxMzUxN2ZmN2RmM2RhZWU4MGY0ZDZmMWIxMGQ4MTg1OWFhZDZjN2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmgKQEAgLTMyLDEzICszMiwx
MyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbW92ZU5vZGVDb21tYW5kIDogcHVi
bGljIFNpbXBsZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFJlbW92ZU5v
ZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBTaG91bGRBc3N1bWVDb250
ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkK
KyAgICBzdGF0aWMgUmVmPFJlbW92ZU5vZGVDb21tYW5kPiBjcmVhdGUoTm9kZSYgbm9kZSwgU2hv
dWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdmVO
b2RlQ29tbWFuZChub2RlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOwog
ICAgIH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBSZW1vdmVOb2RlQ29tbWFuZChQYXNzUmVm
UHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisgICAgUmVt
b3ZlTm9kZUNvbW1hbmQoTm9kZSYsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
KTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2
b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwpAQCAtNDcsNyArNDcsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRp
ZgogCi0gICAgUmVmUHRyPE5vZGU+IG1fbm9kZTsKKyAgICBSZWY8Tm9kZT4gbV9ub2RlOwogICAg
IFJlZlB0cjxDb250YWluZXJOb2RlPiBtX3BhcmVudDsKICAgICBSZWZQdHI8Tm9kZT4gbV9yZWZD
aGlsZDsKICAgICBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBtX3Nob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1JlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcAppbmRleCAwZTE4OWJkZWY2N2Qz
ZjNkZTcyNDZkNzFhYWM3ZDQwODc5MDdmZGZlLi4xMGJlZjNhMDlhMWNjNDIxY2I3N2U5YWI3OGUw
MGNkNmUyMjIzMGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VO
b2RlV2l0aFNwYW5Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcApAQCAtNDgsMTkgKzQ4LDE5IEBAIFJlcGxhY2VOb2Rl
V2l0aFNwYW5Db21tYW5kOjpSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZChQYXNzUmVmUHRyPEhU
TUxFbGVtZW50PiBlCiAgICAgQVNTRVJUKG1fZWxlbWVudFRvUmVwbGFjZSk7CiB9CiAKLXN0YXRp
YyB2b2lkIHN3YXBJbk5vZGVQcmVzZXJ2aW5nQXR0cmlidXRlc0FuZENoaWxkcmVuKEhUTUxFbGVt
ZW50KiBuZXdOb2RlLCBIVE1MRWxlbWVudCogbm9kZVRvUmVwbGFjZSkKK3N0YXRpYyB2b2lkIHN3
YXBJbk5vZGVQcmVzZXJ2aW5nQXR0cmlidXRlc0FuZENoaWxkcmVuKEhUTUxFbGVtZW50JiBuZXdO
b2RlLCBIVE1MRWxlbWVudCYgbm9kZVRvUmVwbGFjZSkKIHsKLSAgICBBU1NFUlQobm9kZVRvUmVw
bGFjZS0+aW5Eb2N1bWVudCgpKTsKLSAgICBSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50Tm9k
ZSA9IG5vZGVUb1JlcGxhY2UtPnBhcmVudE5vZGUoKTsKKyAgICBBU1NFUlQobm9kZVRvUmVwbGFj
ZS5pbkRvY3VtZW50KCkpOworICAgIFJlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnROb2RlID0g
bm9kZVRvUmVwbGFjZS5wYXJlbnROb2RlKCk7CiAKICAgICAvLyBGSVhNRTogRml4IHRoaXMgdG8g
c2VuZCB0aGUgcHJvcGVyIE11dGF0aW9uUmVjb3JkcyB3aGVuIE11dGF0aW9uT2JzZXJ2ZXJzIGFy
ZSBwcmVzZW50LgotICAgIG5ld05vZGUtPmNsb25lRGF0YUZyb21FbGVtZW50KCpub2RlVG9SZXBs
YWNlKTsKKyAgICBuZXdOb2RlLmNsb25lRGF0YUZyb21FbGVtZW50KG5vZGVUb1JlcGxhY2UpOwog
ICAgIE5vZGVWZWN0b3IgY2hpbGRyZW47Ci0gICAgZ2V0Q2hpbGROb2Rlcygqbm9kZVRvUmVwbGFj
ZSwgY2hpbGRyZW4pOworICAgIGdldENoaWxkTm9kZXMobm9kZVRvUmVwbGFjZSwgY2hpbGRyZW4p
OwogICAgIGZvciAoYXV0byYgY2hpbGQgOiBjaGlsZHJlbikKLSAgICAgICAgbmV3Tm9kZS0+YXBw
ZW5kQ2hpbGQoY2hpbGQucHRyKCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAgICBuZXdO
b2RlLmFwcGVuZENoaWxkKFdURjo6bW92ZShjaGlsZCksIEFTU0VSVF9OT19FWENFUFRJT04pOwog
Ci0gICAgcGFyZW50Tm9kZS0+aW5zZXJ0QmVmb3JlKG5ld05vZGUsIG5vZGVUb1JlcGxhY2UsIEFT
U0VSVF9OT19FWENFUFRJT04pOworICAgIHBhcmVudE5vZGUtPmluc2VydEJlZm9yZShuZXdOb2Rl
LCAmbm9kZVRvUmVwbGFjZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgcGFyZW50Tm9kZS0+
cmVtb3ZlQ2hpbGQobm9kZVRvUmVwbGFjZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiB9CiAKQEAg
LTcwLDE0ICs3MCwxNCBAQCB2b2lkIFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kOjpkb0FwcGx5
KCkKICAgICAgICAgcmV0dXJuOwogICAgIGlmICghbV9zcGFuRWxlbWVudCkKICAgICAgICAgbV9z
cGFuRWxlbWVudCA9IGNyZWF0ZUhUTUxFbGVtZW50KG1fZWxlbWVudFRvUmVwbGFjZS0+ZG9jdW1l
bnQoKSwgc3BhblRhZyk7Ci0gICAgc3dhcEluTm9kZVByZXNlcnZpbmdBdHRyaWJ1dGVzQW5kQ2hp
bGRyZW4obV9zcGFuRWxlbWVudC5nZXQoKSwgbV9lbGVtZW50VG9SZXBsYWNlLmdldCgpKTsKKyAg
ICBzd2FwSW5Ob2RlUHJlc2VydmluZ0F0dHJpYnV0ZXNBbmRDaGlsZHJlbigqbV9zcGFuRWxlbWVu
dCwgKm1fZWxlbWVudFRvUmVwbGFjZSk7CiB9CiAKIHZvaWQgUmVwbGFjZU5vZGVXaXRoU3BhbkNv
bW1hbmQ6OmRvVW5hcHBseSgpCiB7CiAgICAgaWYgKCFtX3NwYW5FbGVtZW50LT5pbkRvY3VtZW50
KCkpCiAgICAgICAgIHJldHVybjsKLSAgICBzd2FwSW5Ob2RlUHJlc2VydmluZ0F0dHJpYnV0ZXNB
bmRDaGlsZHJlbihtX2VsZW1lbnRUb1JlcGxhY2UuZ2V0KCksIG1fc3BhbkVsZW1lbnQuZ2V0KCkp
OworICAgIHN3YXBJbk5vZGVQcmVzZXJ2aW5nQXR0cmlidXRlc0FuZENoaWxkcmVuKCptX2VsZW1l
bnRUb1JlcGxhY2UsICptX3NwYW5FbGVtZW50KTsKIH0KIAogI2lmbmRlZiBOREVCVUcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5k
ZXggZWVlMjIwYzg2Zjk4YTVlN2QyODk5YzQzM2ZhOTFmMDAwMDU0NmJlMy4uMDhjNjI3N2RlZmMz
NGZhMjIzNGMyZTQ2MmYyMzY0N2Q2YmM5OWEzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTIzOCw3ICsyMzgsNyBAQCB2
b2lkIFJlcGxhY2VtZW50RnJhZ21lbnQ6OnJlbW92ZU5vZGUoUGFzc1JlZlB0cjxOb2RlPiBub2Rl
KQogICAgIGlmICghcGFyZW50KQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgcGFyZW50LT5y
ZW1vdmVDaGlsZChub2RlLmdldCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBwYXJlbnQt
PnJlbW92ZUNoaWxkKCpub2RlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIH0KIAogdm9pZCBSZXBs
YWNlbWVudEZyYWdtZW50OjppbnNlcnROb2RlQmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwg
Tm9kZSogcmVmTm9kZSkKQEAgLTI1MCwxNCArMjUwLDE0IEBAIHZvaWQgUmVwbGFjZW1lbnRGcmFn
bWVudDo6aW5zZXJ0Tm9kZUJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIE5vZGUqIHJlZk5v
ZGUpCiAgICAgaWYgKCFwYXJlbnQpCiAgICAgICAgIHJldHVybjsKICAgICAgICAgCi0gICAgcGFy
ZW50LT5pbnNlcnRCZWZvcmUobm9kZSwgcmVmTm9kZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7Cisg
ICAgcGFyZW50LT5pbnNlcnRCZWZvcmUoKm5vZGUsIHJlZk5vZGUsIEFTU0VSVF9OT19FWENFUFRJ
T04pOwogfQogCiBQYXNzUmVmUHRyPFN0eWxlZEVsZW1lbnQ+IFJlcGxhY2VtZW50RnJhZ21lbnQ6
Omluc2VydEZyYWdtZW50Rm9yVGVzdFJlbmRlcmluZyhOb2RlKiByb290RWRpdGFibGVFbGVtZW50
KQogewogICAgIFJlZlB0cjxTdHlsZWRFbGVtZW50PiBob2xkZXIgPSBjcmVhdGVEZWZhdWx0UGFy
YWdyYXBoRWxlbWVudChkb2N1bWVudCgpKTsKIAotICAgIGhvbGRlci0+YXBwZW5kQ2hpbGQobV9m
cmFnbWVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgaG9sZGVyLT5hcHBlbmRDaGlsZCgq
bV9mcmFnbWVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgcm9vdEVkaXRhYmxlRWxlbWVu
dC0+YXBwZW5kQ2hpbGQoaG9sZGVyLmdldCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICBk
b2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogCkBAIC0y
NzAsOCArMjcwLDggQEAgdm9pZCBSZXBsYWNlbWVudEZyYWdtZW50OjpyZXN0b3JlQW5kUmVtb3Zl
VGVzdFJlbmRlcmluZ05vZGVzVG9GcmFnbWVudChTdHlsZWRFbGUKICAgICAgICAgcmV0dXJuOwog
ICAgIAogICAgIHdoaWxlIChSZWZQdHI8Tm9kZT4gbm9kZSA9IGhvbGRlci0+Zmlyc3RDaGlsZCgp
KSB7Ci0gICAgICAgIGhvbGRlci0+cmVtb3ZlQ2hpbGQobm9kZS5nZXQoKSwgQVNTRVJUX05PX0VY
Q0VQVElPTik7Ci0gICAgICAgIG1fZnJhZ21lbnQtPmFwcGVuZENoaWxkKG5vZGUuZ2V0KCksIEFT
U0VSVF9OT19FWENFUFRJT04pOworICAgICAgICBob2xkZXItPnJlbW92ZUNoaWxkKCpub2RlLCBB
U1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgbV9mcmFnbWVudC0+YXBwZW5kQ2hpbGQoKm5v
ZGUsIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgIH0KIAogICAgIHJlbW92ZU5vZGUoaG9sZGVy
KTsKQEAgLTE0NTQsNyArMTQ1NCw3IEBAIE5vZGUqIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpp
bnNlcnRBc0xpc3RJdGVtcyhQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBwcnBMaXN0CiAgICAgfQog
CiAgICAgd2hpbGUgKFJlZlB0cjxOb2RlPiBsaXN0SXRlbSA9IGxpc3RFbGVtZW50LT5maXJzdENo
aWxkKCkpIHsKLSAgICAgICAgbGlzdEVsZW1lbnQtPnJlbW92ZUNoaWxkKGxpc3RJdGVtLmdldCgp
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgbGlzdEVsZW1lbnQtPnJlbW92ZUNoaWxk
KCpsaXN0SXRlbSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgICAgIGlmIChpc1N0YXJ0IHx8
IGlzTWlkZGxlKSB7CiAgICAgICAgICAgICBpbnNlcnROb2RlQmVmb3JlKGxpc3RJdGVtLCBsYXN0
Tm9kZSk7CiAgICAgICAgICAgICBpbnNlcnRlZE5vZGVzLnJlc3BvbmRUb05vZGVJbnNlcnRpb24o
bGlzdEl0ZW0uZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGxp
dEVsZW1lbnRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BsaXRFbGVtZW50
Q29tbWFuZC5jcHAKaW5kZXggMDliZWI4NTE5MzFlZWFiNjUxZDIxNzFlNDdkODczMjQ1NWQxZjEw
Ni4uMzVkODIxYjJjMTZhMmJlYjI3NzBhNDgxNmY3YzhjYzg1OTBkMDUzYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGxpdEVsZW1lbnRDb21tYW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0RWxlbWVudENvbW1hbmQuY3BwCkBAIC00NywxNiArNDcs
MTYgQEAgdm9pZCBTcGxpdEVsZW1lbnRDb21tYW5kOjpleGVjdXRlQXBwbHkoKQogICAgIGlmICht
X2F0Q2hpbGQtPnBhcmVudE5vZGUoKSAhPSBtX2VsZW1lbnQyKQogICAgICAgICByZXR1cm47CiAg
ICAgCi0gICAgVmVjdG9yPFJlZlB0cjxOb2RlPj4gY2hpbGRyZW47CisgICAgVmVjdG9yPFJlZjxO
b2RlPj4gY2hpbGRyZW47CiAgICAgZm9yIChOb2RlKiBub2RlID0gbV9lbGVtZW50Mi0+Zmlyc3RD
aGlsZCgpOyBub2RlICE9IG1fYXRDaGlsZDsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpCi0g
ICAgICAgIGNoaWxkcmVuLmFwcGVuZChub2RlKTsKKyAgICAgICAgY2hpbGRyZW4uYXBwZW5kKCpu
b2RlKTsKICAgICAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICAKICAgICBDb250YWlu
ZXJOb2RlKiBwYXJlbnQgPSBtX2VsZW1lbnQyLT5wYXJlbnROb2RlKCk7CiAgICAgaWYgKCFwYXJl
bnQgfHwgIXBhcmVudC0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1cm47Ci0gICAg
cGFyZW50LT5pbnNlcnRCZWZvcmUobV9lbGVtZW50MS5nZXQoKSwgbV9lbGVtZW50Mi5nZXQoKSwg
ZWMpOworICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKCptX2VsZW1lbnQxLCBtX2VsZW1lbnQyLmdl
dCgpLCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm47CiAKQEAgLTY1LDcgKzY1LDcg
QEAgdm9pZCBTcGxpdEVsZW1lbnRDb21tYW5kOjpleGVjdXRlQXBwbHkoKQogCiAgICAgc2l6ZV90
IHNpemUgPSBjaGlsZHJlbi5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXpl
OyArK2kpCi0gICAgICAgIG1fZWxlbWVudDEtPmFwcGVuZENoaWxkKGNoaWxkcmVuW2ldLCBlYyk7
CisgICAgICAgIG1fZWxlbWVudDEtPmFwcGVuZENoaWxkKFdURjo6bW92ZShjaGlsZHJlbltpXSks
IGVjKTsKIH0KICAgICAKIHZvaWQgU3BsaXRFbGVtZW50Q29tbWFuZDo6ZG9BcHBseSgpCkBAIC04
MCwxNSArODAsMTUgQEAgdm9pZCBTcGxpdEVsZW1lbnRDb21tYW5kOjpkb1VuYXBwbHkoKQogICAg
IGlmICghbV9lbGVtZW50MSB8fCAhbV9lbGVtZW50MS0+aGFzRWRpdGFibGVTdHlsZSgpIHx8ICFt
X2VsZW1lbnQyLT5oYXNFZGl0YWJsZVN0eWxlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFZl
Y3RvcjxSZWZQdHI8Tm9kZT4+IGNoaWxkcmVuOworICAgIFZlY3RvcjxSZWY8Tm9kZT4+IGNoaWxk
cmVuOwogICAgIGZvciAoTm9kZSogbm9kZSA9IG1fZWxlbWVudDEtPmZpcnN0Q2hpbGQoKTsgbm9k
ZTsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpCi0gICAgICAgIGNoaWxkcmVuLmFwcGVuZChu
b2RlKTsKKyAgICAgICAgY2hpbGRyZW4uYXBwZW5kKCpub2RlKTsKIAogICAgIFJlZlB0cjxOb2Rl
PiByZWZDaGlsZCA9IG1fZWxlbWVudDItPmZpcnN0Q2hpbGQoKTsKIAogICAgIHNpemVfdCBzaXpl
ID0gY2hpbGRyZW4uc2l6ZSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytp
KQotICAgICAgICBtX2VsZW1lbnQyLT5pbnNlcnRCZWZvcmUoY2hpbGRyZW5baV0uZ2V0KCksIHJl
ZkNoaWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgbV9lbGVtZW50Mi0+aW5z
ZXJ0QmVmb3JlKFdURjo6bW92ZShjaGlsZHJlbltpXSksIHJlZkNoaWxkLmdldCgpLCBJR05PUkVf
RVhDRVBUSU9OKTsKIAogICAgIC8vIFJlY292ZXIgdGhlIGlkIGF0dHJpYnV0ZSBvZiB0aGUgb3Jp
Z2luYWwgZWxlbWVudC4KICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGlkID0gbV9lbGVtZW50MS0+
Z2V0SWRBdHRyaWJ1dGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3Bs
aXRUZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGxpdFRleHRO
b2RlQ29tbWFuZC5jcHAKaW5kZXggMTdhODE3ZjlhYzI2ZGU5OTRkNDE4ZDRkNjQ5YTZiOGY2Zjhj
NGYwYi4uNjk5OTEzOTk1ZGZmZTNhMDFlM2UwMjVmMGQxMTBiOGI2YjUwZDYwYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTk1LDcg
Kzk1LDcgQEAgdm9pZCBTcGxpdFRleHROb2RlQ29tbWFuZDo6ZG9SZWFwcGx5KCkKIHZvaWQgU3Bs
aXRUZXh0Tm9kZUNvbW1hbmQ6Omluc2VydFRleHQxQW5kVHJpbVRleHQyKCkKIHsKICAgICBFeGNl
cHRpb25Db2RlIGVjID0gMDsKLSAgICBtX3RleHQyLT5wYXJlbnROb2RlKCktPmluc2VydEJlZm9y
ZShtX3RleHQxLmdldCgpLCBtX3RleHQyLmdldCgpLCBlYyk7CisgICAgbV90ZXh0Mi0+cGFyZW50
Tm9kZSgpLT5pbnNlcnRCZWZvcmUoKm1fdGV4dDEsIG1fdGV4dDIuZ2V0KCksIGVjKTsKICAgICBp
ZiAoZWMpCiAgICAgICAgIHJldHVybjsKICAgICBtX3RleHQyLT5kZWxldGVEYXRhKDAsIG1fb2Zm
c2V0LCBlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1dyYXBDb250ZW50
c0luRHVtbXlTcGFuQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1dyYXBDb250
ZW50c0luRHVtbXlTcGFuQ29tbWFuZC5jcHAKaW5kZXggNTY0NmYzNDE2Yzg1ZjJlNjAzMGY0NzRk
NDMwYmY4Zjc0MjVlN2ZkNi4uZjgwYjc3MzdmOGFkOTZlM2U3OGYxNDU5YmY1N2UyZjM1MTllYjll
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9XcmFwQ29udGVudHNJbkR1bW15
U3BhbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvV3JhcENvbnRlbnRz
SW5EdW1teVNwYW5Db21tYW5kLmNwcApAQCAtNDAsMTUgKzQwLDE1IEBAIFdyYXBDb250ZW50c0lu
RHVtbXlTcGFuQ29tbWFuZDo6V3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kKFBhc3NSZWZQ
dHI8RWxlbWVuCiAKIHZvaWQgV3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kOjpleGVjdXRl
QXBwbHkoKQogewotICAgIFZlY3RvcjxSZWZQdHI8Tm9kZT4+IGNoaWxkcmVuOworICAgIFZlY3Rv
cjxSZWY8Tm9kZT4+IGNoaWxkcmVuOwogICAgIGZvciAoTm9kZSogY2hpbGQgPSBtX2VsZW1lbnQt
PmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCi0gICAg
ICAgIGNoaWxkcmVuLmFwcGVuZChjaGlsZCk7CisgICAgICAgIGNoaWxkcmVuLmFwcGVuZCgqY2hp
bGQpOwogCiAgICAgc2l6ZV90IHNpemUgPSBjaGlsZHJlbi5zaXplKCk7CiAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCi0gICAgICAgIG1fZHVtbXlTcGFuLT5hcHBlbmRDaGls
ZChjaGlsZHJlbltpXS5yZWxlYXNlKCksIElHTk9SRV9FWENFUFRJT04pOworICAgICAgICBtX2R1
bW15U3Bhbi0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNoaWxkcmVuW2ldKSwgSUdOT1JFX0VYQ0VQ
VElPTik7CiAKLSAgICBtX2VsZW1lbnQtPmFwcGVuZENoaWxkKG1fZHVtbXlTcGFuLmdldCgpLCBJ
R05PUkVfRVhDRVBUSU9OKTsKKyAgICBtX2VsZW1lbnQtPmFwcGVuZENoaWxkKCptX2R1bW15U3Bh
biwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CiAKIHZvaWQgV3JhcENvbnRlbnRzSW5EdW1teVNwYW5D
b21tYW5kOjpkb0FwcGx5KCkKQEAgLTY1LDEzICs2NSwxMyBAQCB2b2lkIFdyYXBDb250ZW50c0lu
RHVtbXlTcGFuQ29tbWFuZDo6ZG9VbmFwcGx5KCkKICAgICBpZiAoIW1fZHVtbXlTcGFuIHx8ICFt
X2VsZW1lbnQtPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgVmVj
dG9yPFJlZlB0cjxOb2RlPj4gY2hpbGRyZW47CisgICAgVmVjdG9yPFJlZjxOb2RlPj4gY2hpbGRy
ZW47CiAgICAgZm9yIChOb2RlKiBjaGlsZCA9IG1fZHVtbXlTcGFuLT5maXJzdENoaWxkKCk7IGNo
aWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQotICAgICAgICBjaGlsZHJlbi5hcHBl
bmQoY2hpbGQpOworICAgICAgICBjaGlsZHJlbi5hcHBlbmQoKmNoaWxkKTsKIAogICAgIHNpemVf
dCBzaXplID0gY2hpbGRyZW4uc2l6ZSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6
ZTsgKytpKQotICAgICAgICBtX2VsZW1lbnQtPmFwcGVuZENoaWxkKGNoaWxkcmVuW2ldLnJlbGVh
c2UoKSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgICAgIG1fZWxlbWVudC0+YXBwZW5kQ2hpbGQo
V1RGOjptb3ZlKGNoaWxkcmVuW2ldKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKICAgICBtX2R1bW15
U3Bhbi0+cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9jb2NvYS9FZGl0b3JDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvY29jb2EvRWRpdG9yQ29jb2EubW0KaW5kZXggY2U0YmNiY2E0YmYzMmE5ZDUzMzdiZWI5MmRm
MWY3ZTBmYTljOThmMy4uOTVlNjZkYjBkZWE3ODI5NDZlZDYwMDYxM2U2ZDdjOTFjNGQxNmQxOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9FZGl0b3JDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0VkaXRvckNvY29hLm1tCkBAIC01Niwx
NiArNTYsMTYgQEAgUmVuZGVyU3R5bGUqIEVkaXRvcjo6c3R5bGVGb3JTZWxlY3Rpb25TdGFydChG
cmFtZSogZnJhbWUsIE5vZGUgKiZub2RlVG9SZW1vdmUpCiAgICAgaWYgKCF0eXBpbmdTdHlsZSB8
fCAhdHlwaW5nU3R5bGUtPnN0eWxlKCkpCiAgICAgICAgIHJldHVybiAmcG9zaXRpb24uZGVwcmVj
YXRlZE5vZGUoKS0+cmVuZGVyZXIoKS0+c3R5bGUoKTsKIAotICAgIFJlZlB0cjxFbGVtZW50PiBz
dHlsZUVsZW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChIVE1MTmFtZXM6
OnNwYW5UYWcsIGZhbHNlKTsKKyAgICBSZWY8RWxlbWVudD4gc3R5bGVFbGVtZW50ID0gZnJhbWUt
PmRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoSFRNTE5hbWVzOjpzcGFuVGFnLCBmYWxzZSk7CiAK
ICAgICBTdHJpbmcgc3R5bGVUZXh0ID0gdHlwaW5nU3R5bGUtPnN0eWxlKCktPmFzVGV4dCgpICsg
IiBkaXNwbGF5OiBpbmxpbmUiOwogICAgIHN0eWxlRWxlbWVudC0+c2V0QXR0cmlidXRlKEhUTUxO
YW1lczo6c3R5bGVBdHRyLCBzdHlsZVRleHQpOwogCiAgICAgc3R5bGVFbGVtZW50LT5hcHBlbmRD
aGlsZChmcmFtZS0+ZG9jdW1lbnQoKS0+Y3JlYXRlRWRpdGluZ1RleHROb2RlKCIiKSwgQVNTRVJU
X05PX0VYQ0VQVElPTik7CiAKLSAgICBwb3NpdGlvbi5kZXByZWNhdGVkTm9kZSgpLT5wYXJlbnRO
b2RlKCktPmFwcGVuZENoaWxkKHN0eWxlRWxlbWVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7Cisg
ICAgcG9zaXRpb24uZGVwcmVjYXRlZE5vZGUoKS0+cGFyZW50Tm9kZSgpLT5hcHBlbmRDaGlsZChz
dHlsZUVsZW1lbnQuY29weVJlZigpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAotICAgIG5vZGVU
b1JlbW92ZSA9IHN0eWxlRWxlbWVudC5nZXQoKTsKKyAgICBub2RlVG9SZW1vdmUgPSBzdHlsZUVs
ZW1lbnQucHRyKCk7CiAKICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+dXBkYXRlU3R5bGVJZk5lZWRl
ZCgpOwogICAgIHJldHVybiBzdHlsZUVsZW1lbnQtPnJlbmRlcmVyKCkgPyAmc3R5bGVFbGVtZW50
LT5yZW5kZXJlcigpLT5zdHlsZSgpIDogbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1s
ZWRpdGluZy5jcHAKaW5kZXggOGYwNGQwODEzNTJiOTYzMjU2ZmJhZDc1N2ZlMTM1ZTZkY2QzZDc1
MC4uN2NhYTE0ZjRiZTM3YzYxMzQ0OWM5NGE2YWRkYmM1OWViNWU2YmU1MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAKQEAgLTg5OSwyMCArODk5LDE4IEBAIGJvb2wgaXNF
bXB0eVRhYmxlQ2VsbChjb25zdCBOb2RlKiBub2RlKQogICAgIHJldHVybiAhY2hpbGRSZW5kZXJl
ci0+bmV4dFNpYmxpbmcoKTsKIH0KIAotUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRlRGVm
YXVsdFBhcmFncmFwaEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxFbGVtZW50
PiBjcmVhdGVEZWZhdWx0UGFyYWdyYXBoRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAg
ICAgc3dpdGNoIChkb2N1bWVudC5mcmFtZSgpLT5lZGl0b3IoKS5kZWZhdWx0UGFyYWdyYXBoU2Vw
YXJhdG9yKCkpIHsKICAgICBjYXNlIEVkaXRvclBhcmFncmFwaFNlcGFyYXRvcklzRGl2OgogICAg
ICAgICByZXR1cm4gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY2FzZSBF
ZGl0b3JQYXJhZ3JhcGhTZXBhcmF0b3JJc1A6Ci0gICAgICAgIHJldHVybiBIVE1MUGFyYWdyYXBo
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQotCi0gICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIEhUTUxQYXJh
Z3JhcGhFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogfQogCi1QYXNzUmVmUHRyPEhUTUxFbGVt
ZW50PiBjcmVhdGVCcmVha0VsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxFbGVt
ZW50PiBjcmVhdGVCcmVha0VsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVy
biBIVE1MQlJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogfQpAQCAtOTcxLDcgKzk2OSw3IEBA
IFBvc2l0aW9uIHBvc2l0aW9uT3V0c2lkZVRhYlNwYW4oY29uc3QgUG9zaXRpb24mIHBvcykKICAg
ICByZXR1cm4gcG9zaXRpb25JblBhcmVudEJlZm9yZU5vZGUobm9kZSk7CiB9CiAKLVBhc3NSZWZQ
dHI8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBQYXNz
UmVmUHRyPE5vZGU+IHBycFRhYlRleHROb2RlKQorUmVmPEVsZW1lbnQ+IGNyZWF0ZVRhYlNwYW5F
bGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZlB0cjxOb2RlPiBwcnBUYWJUZXh0Tm9k
ZSkKIHsKICAgICBSZWZQdHI8Tm9kZT4gdGFiVGV4dE5vZGUgPSBwcnBUYWJUZXh0Tm9kZTsKIApA
QCAtOTg0LDE3ICs5ODIsMTcgQEAgUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVhdGVUYWJTcGFuRWxl
bWVudChEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWZQdHI8Tm9kZT4gcHIKICAgICBpZiAoIXRh
YlRleHROb2RlKQogICAgICAgICB0YWJUZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVkaXRpbmdU
ZXh0Tm9kZSgiXHQiKTsKIAotICAgIHNwYW5FbGVtZW50LT5hcHBlbmRDaGlsZCh0YWJUZXh0Tm9k
ZS5yZWxlYXNlKCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIHNwYW5FbGVtZW50LT5hcHBl
bmRDaGlsZCh0YWJUZXh0Tm9kZS5yZWxlYXNlTm9uTnVsbCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKIAotICAgIHJldHVybiBzcGFuRWxlbWVudC5yZWxlYXNlKCk7CisgICAgcmV0dXJuIHNwYW5F
bGVtZW50LnJlbGVhc2VOb25OdWxsKCk7CiB9CiAKLVBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRl
VGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRhYlRleHQp
CitSZWY8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBj
b25zdCBTdHJpbmcmIHRhYlRleHQpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVRhYlNwYW5FbGVtZW50
KGRvY3VtZW50LCBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0YWJUZXh0KSk7CiB9CiAKLVBhc3NS
ZWZQdHI8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQor
UmVmPEVsZW1lbnQ+IGNyZWF0ZVRhYlNwYW5FbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKIHsK
ICAgICByZXR1cm4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoZG9jdW1lbnQsIFBhc3NSZWZQdHI8Tm9k
ZT4oKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5n
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmgKaW5kZXggNzg4YWYzZmNm
Yjk1ZTdkMmQyMjg3NjJhNTE1NTYxZWYwODkzZDBlZS4uZjY5ZDlkOGVjNzUxNzgxMWI5ZWQ0ZjNj
NzA3NzQ1MGExNTgxMTUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1s
ZWRpdGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuaApAQCAt
MjA2LDggKzIwNiw4IEBAIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb25Gb3JJbmRleFVz
aW5nQ2hhcmFjdGVySXRlcmF0b3IoTm9kZSosIGludCBpbmRleCk7CiAgICAgCiAvLyBGdW5jdGlv
bnMgcmV0dXJuaW5nIEhUTUxFbGVtZW50CiAgICAgCi1XRUJDT1JFX0VYUE9SVCBQYXNzUmVmUHRy
PEhUTUxFbGVtZW50PiBjcmVhdGVEZWZhdWx0UGFyYWdyYXBoRWxlbWVudChEb2N1bWVudCYpOwot
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRlQnJlYWtFbGVtZW50KERvY3VtZW50Jik7CitX
RUJDT1JFX0VYUE9SVCBSZWY8SFRNTEVsZW1lbnQ+IGNyZWF0ZURlZmF1bHRQYXJhZ3JhcGhFbGVt
ZW50KERvY3VtZW50Jik7CitSZWY8SFRNTEVsZW1lbnQ+IGNyZWF0ZUJyZWFrRWxlbWVudChEb2N1
bWVudCYpOwogUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRlT3JkZXJlZExpc3RFbGVtZW50
KERvY3VtZW50Jik7CiBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVVbm9yZGVyZWRMaXN0
RWxlbWVudChEb2N1bWVudCYpOwogUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRlTGlzdEl0
ZW1FbGVtZW50KERvY3VtZW50Jik7CkBAIC0yMjIsMTAgKzIyMiwxMCBAQCBOb2RlKiBlbmNsb3Np
bmdMaXN0Q2hpbGQoTm9kZSopOwogLy8gRWxlbWVudAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1Q
YXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZVRhYlNwYW5FbGVtZW50KERvY3VtZW50Jik7Ci1QYXNz
UmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZVRhYlNwYW5FbGVtZW50KERvY3VtZW50JiwgUGFzc1JlZlB0
cjxOb2RlPiB0YWJUZXh0Tm9kZSk7Ci1QYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZVRhYlNwYW5F
bGVtZW50KERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0YWJUZXh0KTsKLVBhc3NSZWZQdHI8RWxl
bWVudD4gY3JlYXRlQmxvY2tQbGFjZWhvbGRlckVsZW1lbnQoRG9jdW1lbnQmKTsKK1JlZjxFbGVt
ZW50PiBjcmVhdGVUYWJTcGFuRWxlbWVudChEb2N1bWVudCYpOworUmVmPEVsZW1lbnQ+IGNyZWF0
ZVRhYlNwYW5FbGVtZW50KERvY3VtZW50JiwgUGFzc1JlZlB0cjxOb2RlPiB0YWJUZXh0Tm9kZSk7
CitSZWY8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmLCBjb25zdCBTdHJp
bmcmIHRhYlRleHQpOworUmVmPEVsZW1lbnQ+IGNyZWF0ZUJsb2NrUGxhY2Vob2xkZXJFbGVtZW50
KERvY3VtZW50Jik7CiAKIEVsZW1lbnQqIGVkaXRhYmxlUm9vdEZvclBvc2l0aW9uKGNvbnN0IFBv
c2l0aW9uJiwgRWRpdGFibGVUeXBlID0gQ29udGVudElzRWRpdGFibGUpOwogRWxlbWVudCogdW5z
cGxpdHRhYmxlRWxlbWVudEZvclBvc2l0aW9uKGNvbnN0IFBvc2l0aW9uJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0KaW5kZXggMjI2ZWFkNWE0M2JmNTk4MmQ5YjFiYTgx
NDlhMjA4ZTEyYWU3MDExZi4uODE1MTk4NWYwYjkxZTc2ZjAwMzE1NmIxYTUyMzYyZjYyNzBhZjA1
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbQpAQCAtMzk3LDcgKzM5
Nyw3IEBAIHZvaWQgRWRpdG9yOjpXZWJDb250ZW50UmVhZGVyOjphZGRGcmFnbWVudChQYXNzUmVm
UHRyPERvY3VtZW50RnJhZ21lbnQ+IG5ld0ZyYWdtCiAgICAgaWYgKGZyYWdtZW50KSB7CiAgICAg
ICAgIGlmIChuZXdGcmFnbWVudCAmJiBuZXdGcmFnbWVudC0+Zmlyc3RDaGlsZCgpKSB7CiAgICAg
ICAgICAgICBFeGNlcHRpb25Db2RlIGVjOwotICAgICAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENo
aWxkKG5ld0ZyYWdtZW50LT5maXJzdENoaWxkKCksIGVjKTsKKyAgICAgICAgICAgIGZyYWdtZW50
LT5hcHBlbmRDaGlsZCgqbmV3RnJhZ21lbnQtPmZpcnN0Q2hpbGQoKSwgZWMpOwogICAgICAgICB9
CiAgICAgfSBlbHNlCiAgICAgICAgIGZyYWdtZW50ID0gbmV3RnJhZ21lbnQ7CkBAIC00OTQsMTIg
KzQ5NCwxMiBAQCBib29sIEVkaXRvcjo6V2ViQ29udGVudFJlYWRlcjo6cmVhZFVSTChjb25zdCBV
UkwmIHVybCwgY29uc3QgU3RyaW5nJikKICAgICAgICAgICAgIHJldHVybiBmcmFnbWVudDsKICAg
ICAgICAgfQogICAgIH0gZWxzZSB7Ci0gICAgICAgIFJlZlB0cjxFbGVtZW50PiBhbmNob3IgPSBm
cmFtZS5kb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KEhUTUxOYW1lczo6YVRhZywgZmFsc2UpOwor
ICAgICAgICBSZWY8RWxlbWVudD4gYW5jaG9yID0gZnJhbWUuZG9jdW1lbnQoKS0+Y3JlYXRlRWxl
bWVudChIVE1MTmFtZXM6OmFUYWcsIGZhbHNlKTsKICAgICAgICAgYW5jaG9yLT5zZXRBdHRyaWJ1
dGUoSFRNTE5hbWVzOjpocmVmQXR0ciwgdXJsLnN0cmluZygpKTsKICAgICAgICAgYW5jaG9yLT5h
cHBlbmRDaGlsZChmcmFtZS5kb2N1bWVudCgpLT5jcmVhdGVUZXh0Tm9kZShbWyhOU1VSTCAqKXVy
bCBhYnNvbHV0ZVN0cmluZ10gcHJlY29tcG9zZWRTdHJpbmdXaXRoQ2Fub25pY2FsTWFwcGluZ10p
KTsKIAogICAgICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gbmV3RnJhZ21lbnQgPSBmcmFt
ZS5kb2N1bWVudCgpLT5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAgICAgIG5ld0ZyYWdt
ZW50LT5hcHBlbmRDaGlsZChhbmNob3IucmVsZWFzZSgpKTsKKyAgICAgICAgbmV3RnJhZ21lbnQt
PmFwcGVuZENoaWxkKFdURjo6bW92ZShhbmNob3IpKTsKICAgICAgICAgYWRkRnJhZ21lbnQobmV3
RnJhZ21lbnQpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC01ODMsNyArNTgzLDcg
QEAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBFZGl0b3I6OmNyZWF0ZUZyYWdtZW50Rm9y
SW1hZ2VSZXNvdXJjZUFuZEFkZFJlc291cmMKICAgICBpZiAoIXJlc291cmNlKQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAotICAgIFJlZlB0cjxFbGVtZW50PiBpbWFnZUVsZW1lbnQgPSBtX2Zy
YW1lLmRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoSFRNTE5hbWVzOjppbWdUYWcsIGZhbHNlKTsK
KyAgICBSZWY8RWxlbWVudD4gaW1hZ2VFbGVtZW50ID0gbV9mcmFtZS5kb2N1bWVudCgpLT5jcmVh
dGVFbGVtZW50KEhUTUxOYW1lczo6aW1nVGFnLCBmYWxzZSk7CiAgICAgLy8gRklYTUU6IFRoZSBj
b2RlIGluIGNyZWF0ZUZyYWdtZW50QW5kQWRkUmVzb3VyY2VzIGNhbGxzIHNldERlZmVyc0xvYWRp
bmcodHJ1ZSkuIERvbid0IHdlIG5lZWQgdGhhdCBoZXJlPwogICAgIGlmIChEb2N1bWVudExvYWRl
ciogbG9hZGVyID0gbV9mcmFtZS5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpKQogICAgICAgICBs
b2FkZXItPmFkZEFyY2hpdmVSZXNvdXJjZShyZXNvdXJjZS5nZXQoKSk7CkBAIC01OTIsNyArNTky
LDcgQEAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBFZGl0b3I6OmNyZWF0ZUZyYWdtZW50
Rm9ySW1hZ2VSZXNvdXJjZUFuZEFkZFJlc291cmMKICAgICBpbWFnZUVsZW1lbnQtPnNldEF0dHJp
YnV0ZShIVE1MTmFtZXM6OnNyY0F0dHIsIFtVUkwgaXNGaWxlVVJMXSA/IFtVUkwgYWJzb2x1dGVT
dHJpbmddIDogcmVzb3VyY2UtPnVybCgpKTsKIAogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50
PiBmcmFnbWVudCA9IG1fZnJhbWUuZG9jdW1lbnQoKS0+Y3JlYXRlRG9jdW1lbnRGcmFnbWVudCgp
OwotICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChpbWFnZUVsZW1lbnQucmVsZWFzZSgpKTsKKyAg
ICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGltYWdlRWxlbWVudCkpOwogCiAgICAg
cmV0dXJuIGZyYWdtZW50LnJlbGVhc2UoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0Vk
aXRvck1hYy5tbQppbmRleCA2Y2VmNDg5OTU5YjQ5NWQwNzY5OTAxNTNiYjk1YTFjMmYwOWZhZjA0
Li5jZDI1MmRjZmQzMWMzZTAwYzE1NzdkYmY5MzBjODY4M2I1MGRkMDBiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCkBAIC01MjcsMTUgKzUyNywxNSBAQCBib29sIEVk
aXRvcjo6V2ViQ29udGVudFJlYWRlcjo6cmVhZEZpbGVuYW1lcyhjb25zdCBWZWN0b3I8U3RyaW5n
PiYgcGF0aHMpCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKICAgICAg
ICAgU3RyaW5nIHRleHQgPSBwYXRoc1tpXTsKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5U
KQotICAgICAgICBSZWZQdHI8SFRNTEF0dGFjaG1lbnRFbGVtZW50PiBhdHRhY2htZW50ID0gSFRN
TEF0dGFjaG1lbnRFbGVtZW50OjpjcmVhdGUoYXR0YWNobWVudFRhZywgZG9jdW1lbnQpOworICAg
ICAgICBSZWY8SFRNTEF0dGFjaG1lbnRFbGVtZW50PiBhdHRhY2htZW50ID0gSFRNTEF0dGFjaG1l
bnRFbGVtZW50OjpjcmVhdGUoYXR0YWNobWVudFRhZywgZG9jdW1lbnQpOwogICAgICAgICBhdHRh
Y2htZW50LT5zZXRGaWxlKEZpbGU6OmNyZWF0ZShbW05TVVJMIGZpbGVVUkxXaXRoUGF0aDp0ZXh0
XSBwYXRoXSkucHRyKCkpOwotICAgICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoYXR0YWNobWVu
dC5yZWxlYXNlKCkpOworICAgICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGF0
dGFjaG1lbnQpKTsKICNlbHNlCiAgICAgICAgIHRleHQgPSBmcmFtZS5lZGl0b3IoKS5jbGllbnQo
KS0+dXNlclZpc2libGVTdHJpbmcoW05TVVJMIGZpbGVVUkxXaXRoUGF0aDp0ZXh0XSk7CiAKLSAg
ICAgICAgUmVmUHRyPEhUTUxFbGVtZW50PiBwYXJhZ3JhcGggPSBjcmVhdGVEZWZhdWx0UGFyYWdy
YXBoRWxlbWVudChkb2N1bWVudCk7CisgICAgICAgIFJlZjxIVE1MRWxlbWVudD4gcGFyYWdyYXBo
ID0gY3JlYXRlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQoZG9jdW1lbnQpOwogICAgICAgICBwYXJh
Z3JhcGgtPmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRleHQpKTsKLSAgICAg
ICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKHBhcmFncmFwaC5yZWxlYXNlKCkpOworICAgICAgICBm
cmFnbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHBhcmFncmFwaCkpOwogI2VuZGlmCiAgICAg
fQogCkBAIC01OTQsMTIgKzU5NCwxMiBAQCBib29sIEVkaXRvcjo6V2ViQ29udGVudFJlYWRlcjo6
cmVhZFVSTChjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSkKICAgICBpZiAodXJs
LnN0cmluZygpLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgUmVmUHRy
PEVsZW1lbnQ+IGFuY2hvciA9IGZyYW1lLmRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoSFRNTE5h
bWVzOjphVGFnLCBmYWxzZSk7CisgICAgUmVmPEVsZW1lbnQ+IGFuY2hvciA9IGZyYW1lLmRvY3Vt
ZW50KCktPmNyZWF0ZUVsZW1lbnQoSFRNTE5hbWVzOjphVGFnLCBmYWxzZSk7CiAgICAgYW5jaG9y
LT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpocmVmQXR0ciwgdXJsLnN0cmluZygpKTsKICAgICBh
bmNob3ItPmFwcGVuZENoaWxkKGZyYW1lLmRvY3VtZW50KCktPmNyZWF0ZVRleHROb2RlKFt0aXRs
ZSBwcmVjb21wb3NlZFN0cmluZ1dpdGhDYW5vbmljYWxNYXBwaW5nXSkpOwogCiAgICAgZnJhZ21l
bnQgPSBmcmFtZS5kb2N1bWVudCgpLT5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAgZnJh
Z21lbnQtPmFwcGVuZENoaWxkKGFuY2hvci5yZWxlYXNlKCkpOworICAgIGZyYWdtZW50LT5hcHBl
bmRDaGlsZChXVEY6Om1vdmUoYW5jaG9yKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTYz
NSwxMSArNjM1LDExIEBAIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gRWRpdG9yOjpjcmVh
dGVGcmFnbWVudEZvckltYWdlUmVzb3VyY2VBbmRBZGRSZXNvdXJjCiAgICAgaWYgKERvY3VtZW50
TG9hZGVyKiBsb2FkZXIgPSBtX2ZyYW1lLmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCkpCiAgICAg
ICAgIGxvYWRlci0+YWRkQXJjaGl2ZVJlc291cmNlKHJlc291cmNlLmdldCgpKTsKIAotICAgIFJl
ZlB0cjxFbGVtZW50PiBpbWFnZUVsZW1lbnQgPSBkb2N1bWVudCgpLmNyZWF0ZUVsZW1lbnQoSFRN
TE5hbWVzOjppbWdUYWcsIGZhbHNlKTsKKyAgICBSZWY8RWxlbWVudD4gaW1hZ2VFbGVtZW50ID0g
ZG9jdW1lbnQoKS5jcmVhdGVFbGVtZW50KEhUTUxOYW1lczo6aW1nVGFnLCBmYWxzZSk7CiAgICAg
aW1hZ2VFbGVtZW50LT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpzcmNBdHRyLCByZXNvdXJjZS0+
dXJsKCkuc3RyaW5nKCkpOwogCiAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50
ID0gZG9jdW1lbnQoKS5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAgZnJhZ21lbnQtPmFw
cGVuZENoaWxkKGltYWdlRWxlbWVudC5yZWxlYXNlKCkpOworICAgIGZyYWdtZW50LT5hcHBlbmRD
aGlsZChXVEY6Om1vdmUoaW1hZ2VFbGVtZW50KSk7CiAKICAgICByZXR1cm4gZnJhZ21lbnQucmVs
ZWFzZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCmluZGV4IDBjYWM4YjQwZmQ4YTNj
NjUxODA0MTU0OGViNjQ5ZDk0YjUzNmQyZDIuLjIwNTRjNGU4ZGJmYjYxZTFiMzc1MmQ4ZWFhYmMy
MmEwODEzMTBkMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKQEAgLTcwNCwxMiArNzA0
LDEyIEBAIFN0cmluZyBjcmVhdGVNYXJrdXAoY29uc3QgTm9kZSYgbm9kZSwgRUNoaWxkcmVuT25s
eSBjaGlsZHJlbk9ubHksIFZlY3RvcjxOb2RlKj4qCiAgICAgcmV0dXJuIGFjY3VtdWxhdG9yLnNl
cmlhbGl6ZU5vZGVzKGNvbnN0X2Nhc3Q8Tm9kZSY+KG5vZGUpLCBjaGlsZHJlbk9ubHksIHRhZ05h
bWVzVG9Ta2lwKTsKIH0KIAotc3RhdGljIHZvaWQgZmlsbENvbnRhaW5lckZyb21TdHJpbmcoQ29u
dGFpbmVyTm9kZSogcGFyYWdyYXBoLCBjb25zdCBTdHJpbmcmIHN0cmluZykKK3N0YXRpYyB2b2lk
IGZpbGxDb250YWluZXJGcm9tU3RyaW5nKENvbnRhaW5lck5vZGUmIHBhcmFncmFwaCwgY29uc3Qg
U3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gcGFyYWdyYXBoLT5k
b2N1bWVudCgpOworICAgIERvY3VtZW50JiBkb2N1bWVudCA9IHBhcmFncmFwaC5kb2N1bWVudCgp
OwogCiAgICAgaWYgKHN0cmluZy5pc0VtcHR5KCkpIHsKLSAgICAgICAgcGFyYWdyYXBoLT5hcHBl
bmRDaGlsZChjcmVhdGVCbG9ja1BsYWNlaG9sZGVyRWxlbWVudChkb2N1bWVudCksIEFTU0VSVF9O
T19FWENFUFRJT04pOworICAgICAgICBwYXJhZ3JhcGguYXBwZW5kQ2hpbGQoY3JlYXRlQmxvY2tQ
bGFjZWhvbGRlckVsZW1lbnQoZG9jdW1lbnQpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIApAQCAtNzI2LDExICs3MjYsMTEgQEAgc3RhdGljIHZvaWQgZmls
bENvbnRhaW5lckZyb21TdHJpbmcoQ29udGFpbmVyTm9kZSogcGFyYWdyYXBoLCBjb25zdCBTdHJp
bmcmIHN0cmkKICAgICAgICAgLy8gYXBwZW5kIHRoZSBub24tdGFiIHRleHR1YWwgcGFydAogICAg
ICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBpZiAoIXRhYlRleHQuaXNFbXB0
eSgpKSB7Ci0gICAgICAgICAgICAgICAgcGFyYWdyYXBoLT5hcHBlbmRDaGlsZChjcmVhdGVUYWJT
cGFuRWxlbWVudChkb2N1bWVudCwgdGFiVGV4dCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAg
ICAgICAgICAgICAgIHBhcmFncmFwaC5hcHBlbmRDaGlsZChjcmVhdGVUYWJTcGFuRWxlbWVudChk
b2N1bWVudCwgdGFiVGV4dCksIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgICAgICAgICAgICAg
IHRhYlRleHQgPSBlbXB0eVN0cmluZygpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgUmVm
UHRyPE5vZGU+IHRleHROb2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoc3RyaW5nV2l0aFJl
YmFsYW5jZWRXaGl0ZXNwYWNlKHMsIGZpcnN0LCBpICsgMSA9PSBudW1FbnRyaWVzKSk7Ci0gICAg
ICAgICAgICBwYXJhZ3JhcGgtPmFwcGVuZENoaWxkKHRleHROb2RlLnJlbGVhc2UoKSwgQVNTRVJU
X05PX0VYQ0VQVElPTik7CisgICAgICAgICAgICBSZWY8Tm9kZT4gdGV4dE5vZGUgPSBkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZShzdHJpbmdXaXRoUmViYWxhbmNlZFdoaXRlc3BhY2UocywgZmlyc3Qs
IGkgKyAxID09IG51bUVudHJpZXMpKTsKKyAgICAgICAgICAgIHBhcmFncmFwaC5hcHBlbmRDaGls
ZChXVEY6Om1vdmUodGV4dE5vZGUpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICAgICAgfQog
CiAgICAgICAgIC8vIHRoZXJlIGlzIGEgdGFiIGFmdGVyIGV2ZXJ5IGVudHJ5LCBleGNlcHQgdGhl
IGxhc3QgZW50cnkKQEAgLTczOCw3ICs3MzgsNyBAQCBzdGF0aWMgdm9pZCBmaWxsQ29udGFpbmVy
RnJvbVN0cmluZyhDb250YWluZXJOb2RlKiBwYXJhZ3JhcGgsIGNvbnN0IFN0cmluZyYgc3RyaQog
ICAgICAgICBpZiAoaSArIDEgIT0gbnVtRW50cmllcykKICAgICAgICAgICAgIHRhYlRleHQuYXBw
ZW5kKCdcdCcpOwogICAgICAgICBlbHNlIGlmICghdGFiVGV4dC5pc0VtcHR5KCkpCi0gICAgICAg
ICAgICBwYXJhZ3JhcGgtPmFwcGVuZENoaWxkKGNyZWF0ZVRhYlNwYW5FbGVtZW50KGRvY3VtZW50
LCB0YWJUZXh0KSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAgICAgICBwYXJhZ3JhcGgu
YXBwZW5kQ2hpbGQoY3JlYXRlVGFiU3BhbkVsZW1lbnQoZG9jdW1lbnQsIHRhYlRleHQpLCBBU1NF
UlRfTk9fRVhDRVBUSU9OKTsKIAogICAgICAgICBmaXJzdCA9IGZhbHNlOwogICAgIH0KQEAgLTc3
OCwxMyArNzc4LDEzIEBAIHN0YXRpYyBib29sIGNvbnRleHRQcmVzZXJ2ZXNOZXdsaW5lKGNvbnN0
IFJhbmdlJiBjb250ZXh0KQogICAgIHJldHVybiBjb250YWluZXItPnJlbmRlcmVyKCktPnN0eWxl
KCkucHJlc2VydmVOZXdsaW5lKCk7CiB9CiAKLVBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4g
Y3JlYXRlRnJhZ21lbnRGcm9tVGV4dChSYW5nZSYgY29udGV4dCwgY29uc3QgU3RyaW5nJiB0ZXh0
KQorUmVmPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoUmFuZ2UmIGNv
bnRleHQsIGNvbnN0IFN0cmluZyYgdGV4dCkKIHsKICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBj
b250ZXh0Lm93bmVyRG9jdW1lbnQoKTsKLSAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJh
Z21lbnQgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7CisgICAgUmVmPERvY3Vt
ZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgp
OwogICAgIAogICAgIGlmICh0ZXh0LmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIGZyYWdtZW50
LnJlbGVhc2UoKTsKKyAgICAgICAgcmV0dXJuIGZyYWdtZW50OwogCiAgICAgU3RyaW5nIHN0cmlu
ZyA9IHRleHQ7CiAgICAgc3RyaW5nLnJlcGxhY2UoIlxyXG4iLCAiXG4iKTsKQEAgLTc5MywxNyAr
NzkzLDE3IEBAIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGcm9t
VGV4dChSYW5nZSYgY29udGV4dCwgY29uc3QgU3RyaW5nCiAgICAgaWYgKGNvbnRleHRQcmVzZXJ2
ZXNOZXdsaW5lKGNvbnRleHQpKSB7CiAgICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZShzdHJpbmcpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICAg
ICAgaWYgKHN0cmluZy5lbmRzV2l0aCgnXG4nKSkgewotICAgICAgICAgICAgUmVmUHRyPEVsZW1l
bnQ+IGVsZW1lbnQgPSBjcmVhdGVCcmVha0VsZW1lbnQoZG9jdW1lbnQpOworICAgICAgICAgICAg
UmVmPEVsZW1lbnQ+IGVsZW1lbnQgPSBjcmVhdGVCcmVha0VsZW1lbnQoZG9jdW1lbnQpOwogICAg
ICAgICAgICAgZWxlbWVudC0+c2V0QXR0cmlidXRlKGNsYXNzQXR0ciwgQXBwbGVJbnRlcmNoYW5n
ZU5ld2xpbmUpOyAgICAgICAgICAgIAotICAgICAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxk
KGVsZW1lbnQucmVsZWFzZSgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgICAgIGZy
YWdtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoZWxlbWVudCksIEFTU0VSVF9OT19FWENFUFRJ
T04pOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiBmcmFnbWVudC5yZWxlYXNlKCk7CisgICAg
ICAgIHJldHVybiBmcmFnbWVudDsKICAgICB9CiAKICAgICAvLyBBIHN0cmluZyB3aXRoIG5vIG5l
d2xpbmVzIGdldHMgYWRkZWQgaW5saW5lLCByYXRoZXIgdGhhbiBiZWluZyBwdXQgaW50byBhIHBh
cmFncmFwaC4KICAgICBpZiAoc3RyaW5nLmZpbmQoJ1xuJykgPT0gbm90Rm91bmQpIHsKLSAgICAg
ICAgZmlsbENvbnRhaW5lckZyb21TdHJpbmcoZnJhZ21lbnQuZ2V0KCksIHN0cmluZyk7Ci0gICAg
ICAgIHJldHVybiBmcmFnbWVudC5yZWxlYXNlKCk7CisgICAgICAgIGZpbGxDb250YWluZXJGcm9t
U3RyaW5nKGZyYWdtZW50LCBzdHJpbmcpOworICAgICAgICByZXR1cm4gZnJhZ21lbnQ7CiAgICAg
fQogCiAgICAgLy8gQnJlYWsgc3RyaW5nIGludG8gcGFyYWdyYXBocy4gRXh0cmEgbGluZSBicmVh
a3MgdHVybiBpbnRvIGVtcHR5IHBhcmFncmFwaHMuCkBAIC04MjksMTcgKzgyOSwxNyBAQCBQYXNz
UmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoUmFuZ2UmIGNv
bnRleHQsIGNvbnN0IFN0cmluZwogICAgICAgICAgICAgZWxlbWVudC0+c2V0QXR0cmlidXRlKGNs
YXNzQXR0ciwgQXBwbGVJbnRlcmNoYW5nZU5ld2xpbmUpOwogICAgICAgICB9IGVsc2UgaWYgKHVz
ZUxpbmVCcmVhaykgewogICAgICAgICAgICAgZWxlbWVudCA9IGNyZWF0ZUJyZWFrRWxlbWVudChk
b2N1bWVudCk7Ci0gICAgICAgICAgICBmaWxsQ29udGFpbmVyRnJvbVN0cmluZyhmcmFnbWVudC5n
ZXQoKSwgcyk7CisgICAgICAgICAgICBmaWxsQ29udGFpbmVyRnJvbVN0cmluZyhmcmFnbWVudCwg
cyk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBpZiAodXNlQ2xvbmVzT2ZFbmNsb3Np
bmdCbG9jaykKICAgICAgICAgICAgICAgICBlbGVtZW50ID0gYmxvY2stPmNsb25lRWxlbWVudFdp
dGhvdXRDaGlsZHJlbihkb2N1bWVudCk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAg
ICAgZWxlbWVudCA9IGNyZWF0ZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50KGRvY3VtZW50KTsKLSAg
ICAgICAgICAgIGZpbGxDb250YWluZXJGcm9tU3RyaW5nKGVsZW1lbnQuZ2V0KCksIHMpOworICAg
ICAgICAgICAgZmlsbENvbnRhaW5lckZyb21TdHJpbmcoKmVsZW1lbnQsIHMpOwogICAgICAgICB9
Ci0gICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChlbGVtZW50LnJlbGVhc2UoKSwgQVNTRVJU
X05PX0VYQ0VQVElPTik7CisgICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChlbGVtZW50LnJl
bGVhc2VOb25OdWxsKCksIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgIH0KLSAgICByZXR1cm4g
ZnJhZ21lbnQucmVsZWFzZSgpOworICAgIHJldHVybiBmcmFnbWVudDsKIH0KIAogU3RyaW5nIGRv
Y3VtZW50VHlwZVN0cmluZyhjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpCkBAIC05NDUsMTAgKzk0
NSwxMCBAQCBzdGF0aWMgdm9pZCByZW1vdmVFbGVtZW50RnJvbUZyYWdtZW50UHJlc2VydmluZ0No
aWxkcmVuKERvY3VtZW50RnJhZ21lbnQmIGZyYWdtZQogICAgIFJlZlB0cjxOb2RlPiBuZXh0Q2hp
bGQ7CiAgICAgZm9yIChSZWZQdHI8Tm9kZT4gY2hpbGQgPSBlbGVtZW50LmZpcnN0Q2hpbGQoKTsg
Y2hpbGQ7IGNoaWxkID0gbmV4dENoaWxkKSB7CiAgICAgICAgIG5leHRDaGlsZCA9IGNoaWxkLT5u
ZXh0U2libGluZygpOwotICAgICAgICBlbGVtZW50LnJlbW92ZUNoaWxkKGNoaWxkLmdldCgpLCBB
U1NFUlRfTk9fRVhDRVBUSU9OKTsKLSAgICAgICAgZnJhZ21lbnQuaW5zZXJ0QmVmb3JlKGNoaWxk
LCAmZWxlbWVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAgIGVsZW1lbnQucmVtb3Zl
Q2hpbGQoKmNoaWxkLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgZnJhZ21lbnQuaW5z
ZXJ0QmVmb3JlKCpjaGlsZCwgJmVsZW1lbnQsIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgIH0K
LSAgICBmcmFnbWVudC5yZW1vdmVDaGlsZCgmZWxlbWVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7
CisgICAgZnJhZ21lbnQucmVtb3ZlQ2hpbGQoZWxlbWVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7
CiB9CiAKIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlQ29udGV4dHVhbEZyYWdt
ZW50KGNvbnN0IFN0cmluZyYgbWFya3VwLCBIVE1MRWxlbWVudCogZWxlbWVudCwgUGFyc2VyQ29u
dGVudFBvbGljeSBwYXJzZXJDb250ZW50UG9saWN5LCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTk5
MCw3ICs5OTAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaGFzT25lVGV4dENoaWxkKENvbnRhaW5l
ck5vZGUmIG5vZGUpCiAgICAgcmV0dXJuIGhhc09uZUNoaWxkKG5vZGUpICYmIG5vZGUuZmlyc3RD
aGlsZCgpLT5pc1RleHROb2RlKCk7CiB9CiAKLXZvaWQgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdt
ZW50KENvbnRhaW5lck5vZGUmIGNvbnRhaW5lciwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50
PiBmcmFnbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIHJlcGxhY2VDaGlsZHJlbldpdGhG
cmFnbWVudChDb250YWluZXJOb2RlJiBjb250YWluZXIsIFJlZjxEb2N1bWVudEZyYWdtZW50PiYm
IGZyYWdtZW50LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBSZWY8Q29udGFpbmVyTm9kZT4g
Y29udGFpbmVyTm9kZShjb250YWluZXIpOwogICAgIENoaWxkTGlzdE11dGF0aW9uU2NvcGUgbXV0
YXRpb24oY29udGFpbmVyTm9kZSk7CkBAIC0xMDAwLDE4ICsxMDAwLDE4IEBAIHZvaWQgcmVwbGFj
ZUNoaWxkcmVuV2l0aEZyYWdtZW50KENvbnRhaW5lck5vZGUmIGNvbnRhaW5lciwgUGFzc1JlZlB0
cjxEb2N1bWVudEZyCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoaGFzT25lVGV4
dENoaWxkKGNvbnRhaW5lck5vZGUpICYmIGhhc09uZVRleHRDaGlsZCgqZnJhZ21lbnQpKSB7Cisg
ICAgaWYgKGhhc09uZVRleHRDaGlsZChjb250YWluZXJOb2RlKSAmJiBoYXNPbmVUZXh0Q2hpbGQo
ZnJhZ21lbnQpKSB7CiAgICAgICAgIGRvd25jYXN0PFRleHQ+KCpjb250YWluZXJOb2RlLT5maXJz
dENoaWxkKCkpLnNldERhdGEoZG93bmNhc3Q8VGV4dD4oKmZyYWdtZW50LT5maXJzdENoaWxkKCkp
LmRhdGEoKSwgZWMpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKGhhc09uZUNo
aWxkKGNvbnRhaW5lck5vZGUpKSB7Ci0gICAgICAgIGNvbnRhaW5lck5vZGUtPnJlcGxhY2VDaGls
ZChmcmFnbWVudCwgY29udGFpbmVyTm9kZS0+Zmlyc3RDaGlsZCgpLCBlYyk7CisgICAgICAgIGNv
bnRhaW5lck5vZGUtPnJlcGxhY2VDaGlsZChXVEY6Om1vdmUoZnJhZ21lbnQpLCAqY29udGFpbmVy
Tm9kZS0+Zmlyc3RDaGlsZCgpLCBlYyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBj
b250YWluZXJOb2RlLT5yZW1vdmVDaGlsZHJlbigpOwotICAgIGNvbnRhaW5lck5vZGUtPmFwcGVu
ZENoaWxkKGZyYWdtZW50LCBlYyk7CisgICAgY29udGFpbmVyTm9kZS0+YXBwZW5kQ2hpbGQoV1RG
Ojptb3ZlKGZyYWdtZW50KSwgZWMpOwogfQogCiB2b2lkIHJlcGxhY2VDaGlsZHJlbldpdGhUZXh0
KENvbnRhaW5lck5vZGUmIGNvbnRhaW5lciwgY29uc3QgU3RyaW5nJiB0ZXh0LCBFeGNlcHRpb25D
b2RlJiBlYykKQEAgLTEwMjcsNyArMTAyNyw3IEBAIHZvaWQgcmVwbGFjZUNoaWxkcmVuV2l0aFRl
eHQoQ29udGFpbmVyTm9kZSYgY29udGFpbmVyLCBjb25zdCBTdHJpbmcmIHRleHQsIEV4Y2VwCiAg
ICAgUmVmPFRleHQ+IHRleHROb2RlID0gVGV4dDo6Y3JlYXRlKGNvbnRhaW5lck5vZGUtPmRvY3Vt
ZW50KCksIHRleHQpOwogCiAgICAgaWYgKGhhc09uZUNoaWxkKGNvbnRhaW5lck5vZGUpKSB7Ci0g
ICAgICAgIGNvbnRhaW5lck5vZGUtPnJlcGxhY2VDaGlsZChXVEY6Om1vdmUodGV4dE5vZGUpLCBj
b250YWluZXJOb2RlLT5maXJzdENoaWxkKCksIGVjKTsKKyAgICAgICAgY29udGFpbmVyTm9kZS0+
cmVwbGFjZUNoaWxkKFdURjo6bW92ZSh0ZXh0Tm9kZSksICpjb250YWluZXJOb2RlLT5maXJzdENo
aWxkKCksIGVjKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3Vw
LmgKaW5kZXggYzU1MjAxMDc2NjA3MmVmNWU2MWQyNmEzMTNjMWIwMDNiMWI4MzRiOC4uYTU0NWJh
NTQ2NmYyZmQxODNkNTViYjRlODMyMDk0NDhjODhmMzc5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9tYXJrdXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1
cC5oCkBAIC00OSw3ICs0OSw3IEBAIGVudW0gRUNoaWxkcmVuT25seSB7IEluY2x1ZGVOb2RlLCBD
aGlsZHJlbk9ubHkgfTsKIGVudW0gRUFic29sdXRlVVJMcyB7IERvTm90UmVzb2x2ZVVSTHMsIFJl
c29sdmVBbGxVUkxzLCBSZXNvbHZlTm9uTG9jYWxVUkxzIH07CiBlbnVtIEVGcmFnbWVudFNlcmlh
bGl6YXRpb24geyBIVE1MRnJhZ21lbnRTZXJpYWxpemF0aW9uLCBYTUxGcmFnbWVudFNlcmlhbGl6
YXRpb24gfTsKIAotV0VCQ09SRV9FWFBPUlQgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBj
cmVhdGVGcmFnbWVudEZyb21UZXh0KFJhbmdlJiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIHRleHQp
OworV0VCQ09SRV9FWFBPUlQgUmVmPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJv
bVRleHQoUmFuZ2UmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgdGV4dCk7CiBXRUJDT1JFX0VYUE9S
VCBSZWY8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGcm9tTWFya3VwKERvY3VtZW50
JiwgY29uc3QgU3RyaW5nJiBtYXJrdXAsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgUGFyc2VyQ29u
dGVudFBvbGljeSA9IEFsbG93U2NyaXB0aW5nQ29udGVudCk7CiBQYXNzUmVmUHRyPERvY3VtZW50
RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50Rm9ySW5uZXJPdXRlckhUTUwoY29uc3QgU3RyaW5nJiwg
RWxlbWVudCosIFBhcnNlckNvbnRlbnRQb2xpY3ksIEV4Y2VwdGlvbkNvZGUmKTsKIFBhc3NSZWZQ
dHI8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGb3JUcmFuc2Zvcm1Ub0ZyYWdtZW50
KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgc291cmNlTUlNRVR5cGUsIERvY3VtZW50KiBv
dXRwdXREb2MpOwpAQCAtNTksMTEgKzU5LDExIEBAIGJvb2wgaXNQbGFpblRleHRNYXJrdXAoTm9k
ZSopOwogCiAvLyBUaGVzZSBtZXRob2RzIGFyZSB1c2VkIGJ5IEhUTUxFbGVtZW50ICYgU2hhZG93
Um9vdCB0byByZXBsYWNlIHRoZQogLy8gY2hpbGRyZW4gd2l0aCByZXNwZWN0ZWQgZnJhZ21lbnQv
dGV4dC4KLXZvaWQgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KENvbnRhaW5lck5vZGUmLCBQ
YXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+LCBFeGNlcHRpb25Db2RlJik7Cit2b2lkIHJlcGxh
Y2VDaGlsZHJlbldpdGhGcmFnbWVudChDb250YWluZXJOb2RlJiwgUmVmPERvY3VtZW50RnJhZ21l
bnQ+JiYsIEV4Y2VwdGlvbkNvZGUmKTsKIHZvaWQgcmVwbGFjZUNoaWxkcmVuV2l0aFRleHQoQ29u
dGFpbmVyTm9kZSYsIGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKIAotU3RyaW5nIGNy
ZWF0ZU1hcmt1cChjb25zdCBSYW5nZSYsIFZlY3RvcjxOb2RlKj4qID0gMCwgRUFubm90YXRlRm9y
SW50ZXJjaGFuZ2UgPSBEb05vdEFubm90YXRlRm9ySW50ZXJjaGFuZ2UsIGJvb2wgY29udmVydEJs
b2Nrc1RvSW5saW5lcyA9IGZhbHNlLCBFQWJzb2x1dGVVUkxzID0gRG9Ob3RSZXNvbHZlVVJMcyk7
Ci1TdHJpbmcgY3JlYXRlTWFya3VwKGNvbnN0IE5vZGUmLCBFQ2hpbGRyZW5Pbmx5ID0gSW5jbHVk
ZU5vZGUsIFZlY3RvcjxOb2RlKj4qID0gMCwgRUFic29sdXRlVVJMcyA9IERvTm90UmVzb2x2ZVVS
THMsIFZlY3RvcjxRdWFsaWZpZWROYW1lPiogdGFnTmFtZXNUb1NraXAgPSAwLCBFRnJhZ21lbnRT
ZXJpYWxpemF0aW9uID0gSFRNTEZyYWdtZW50U2VyaWFsaXphdGlvbik7CitTdHJpbmcgY3JlYXRl
TWFya3VwKGNvbnN0IFJhbmdlJiwgVmVjdG9yPE5vZGUqPiogPSBudWxscHRyLCBFQW5ub3RhdGVG
b3JJbnRlcmNoYW5nZSA9IERvTm90QW5ub3RhdGVGb3JJbnRlcmNoYW5nZSwgYm9vbCBjb252ZXJ0
QmxvY2tzVG9JbmxpbmVzID0gZmFsc2UsIEVBYnNvbHV0ZVVSTHMgPSBEb05vdFJlc29sdmVVUkxz
KTsKK1N0cmluZyBjcmVhdGVNYXJrdXAoY29uc3QgTm9kZSYsIEVDaGlsZHJlbk9ubHkgPSBJbmNs
dWRlTm9kZSwgVmVjdG9yPE5vZGUqPiogPSBudWxscHRyLCBFQWJzb2x1dGVVUkxzID0gRG9Ob3RS
ZXNvbHZlVVJMcywgVmVjdG9yPFF1YWxpZmllZE5hbWU+KiB0YWdOYW1lc1RvU2tpcCA9IDAsIEVG
cmFnbWVudFNlcmlhbGl6YXRpb24gPSBIVE1MRnJhZ21lbnRTZXJpYWxpemF0aW9uKTsKIAogV0VC
Q09SRV9FWFBPUlQgU3RyaW5nIGNyZWF0ZUZ1bGxNYXJrdXAoY29uc3QgTm9kZSYpOwogV0VCQ09S
RV9FWFBPUlQgU3RyaW5nIGNyZWF0ZUZ1bGxNYXJrdXAoY29uc3QgUmFuZ2UmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlu
cHV0VHlwZS5jcHAKaW5kZXggZGJlYTBlOTliZDkzNGM3ZGJkZWE1MmQyNWQwMWMyZjgxNzVkYzFk
MC4uNTdlMzg4YmYxZGNlYTRiODE5NmI0NjBmMGNjMzcxMWZmMGY4NzM0YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlu
cHV0VHlwZS5jcHAKQEAgLTYwLDkgKzYwLDkgQEAgdm9pZCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5k
VGltZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7CiAgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgdmFsdWVDb250YWluZXJQc2V1ZG8sICgi
LXdlYmtpdC1kYXRlLWFuZC10aW1lLXZhbHVlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOwogCi0gICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiB2YWx1ZUNvbnRhaW5lciA9
IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLmRvY3VtZW50KCkpOworICAgIFJlZjxI
VE1MRGl2RWxlbWVudD4gdmFsdWVDb250YWluZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGVs
ZW1lbnQoKS5kb2N1bWVudCgpKTsKICAgICB2YWx1ZUNvbnRhaW5lci0+c2V0UHNldWRvKHZhbHVl
Q29udGFpbmVyUHNldWRvKTsKLSAgICBlbGVtZW50KCkudXNlckFnZW50U2hhZG93Um9vdCgpLT5h
cHBlbmRDaGlsZCh2YWx1ZUNvbnRhaW5lci5nZXQoKSk7CisgICAgZWxlbWVudCgpLnVzZXJBZ2Vu
dFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHZhbHVlQ29udGFpbmVyKSk7CiAg
ICAgdXBkYXRlQXBwZWFyYW5jZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0NvbG9ySW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5
cGUuY3BwCmluZGV4IDhiYmRiOTdjMjUyNGI2MmFiMzlhYTY0ZTY4NDA4NTVjYTQ2OTU1OWMuLmM1
Mzg1YTA0YjY3NzhjNWVhMmQ0MzViNDM5YTk0YmYyMDdiYjY2NjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQ29sb3JJbnB1dFR5cGUuY3BwCkBAIC0xMDcsMTIgKzEwNywxMiBAQCB2b2lkIENvbG9ySW5w
dXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKICAgICBBU1NFUlQoZWxlbWVudCgpLnNoYWRv
d1Jvb3QoKSk7CiAKICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBlbGVtZW50KCkuZG9jdW1lbnQo
KTsKLSAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IHdyYXBwZXJFbGVtZW50ID0gSFRNTERpdkVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgUmVmPEhUTUxEaXZFbGVtZW50PiB3cmFwcGVy
RWxlbWVudCA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIHdyYXBwZXJF
bGVtZW50LT5zZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LWNvbG9yLXN3YXRjaC13cmFw
cGVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIFJlZlB0cjxI
VE1MRGl2RWxlbWVudD4gY29sb3JTd2F0Y2ggPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KTsKKyAgICBSZWY8SFRNTERpdkVsZW1lbnQ+IGNvbG9yU3dhdGNoID0gSFRNTERpdkVsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29sb3JTd2F0Y2gtPnNldFBzZXVkbyhBdG9taWNT
dHJpbmcoIi13ZWJraXQtY29sb3Itc3dhdGNoIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOwotICAgIHdyYXBwZXJFbGVtZW50LT5hcHBlbmRDaGlsZChjb2xvclN3YXRjaC5y
ZWxlYXNlKCksIEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgIGVsZW1lbnQoKS51c2VyQWdlbnRT
aGFkb3dSb290KCktPmFwcGVuZENoaWxkKHdyYXBwZXJFbGVtZW50LnJlbGVhc2UoKSwgQVNTRVJU
X05PX0VYQ0VQVElPTik7CisgICAgd3JhcHBlckVsZW1lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92
ZShjb2xvclN3YXRjaCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIGVsZW1lbnQoKS51c2Vy
QWdlbnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKFdURjo6bW92ZSh3cmFwcGVyRWxlbWVudCks
IEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgIAogICAgIHVwZGF0ZUNvbG9yU3dhdGNoKCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwCmluZGV4IDQw
NjVhMTc4ZDI4MmE5Mjk3MTQ1MTE1NWI2NmQ2M2RkMzRhMWYyZDUuLjE0NDdhNDYzNWY3MjEyZWZh
OTJhMTFjMTdmOTJmN2Y2OTM3ZWFlZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGly
ZWN0b3J5RG9jdW1lbnQuY3BwCkBAIC0xMDQsMjcgKzEwNCwyNyBAQCB2b2lkIEZUUERpcmVjdG9y
eURvY3VtZW50UGFyc2VyOjphcHBlbmRFbnRyeShjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25z
dCBTdHJpbgogICAgIFJlZlB0cjxFbGVtZW50PiByb3dFbGVtZW50ID0gbV90YWJsZUVsZW1lbnQt
Pmluc2VydFJvdygtMSwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgcm93RWxlbWVudC0+c2V0QXR0
cmlidXRlKEhUTUxOYW1lczo6Y2xhc3NBdHRyLCAiZnRwRGlyZWN0b3J5RW50cnlSb3ciKTsKIAot
ICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudCh0
ZFRhZywgZmFsc2UpOworICAgIFJlZjxFbGVtZW50PiBlbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3Jl
YXRlRWxlbWVudCh0ZFRhZywgZmFsc2UpOwogICAgIGVsZW1lbnQtPmFwcGVuZENoaWxkKFRleHQ6
OmNyZWF0ZSgqZG9jdW1lbnQoKSwgU3RyaW5nKCZub0JyZWFrU3BhY2UsIDEpKSwgSUdOT1JFX0VY
Q0VQVElPTik7CiAgICAgaWYgKGlzRGlyZWN0b3J5KQogICAgICAgICBlbGVtZW50LT5zZXRBdHRy
aWJ1dGUoSFRNTE5hbWVzOjpjbGFzc0F0dHIsICJmdHBEaXJlY3RvcnlJY29uIGZ0cERpcmVjdG9y
eVR5cGVEaXJlY3RvcnkiKTsKICAgICBlbHNlCiAgICAgICAgIGVsZW1lbnQtPnNldEF0dHJpYnV0
ZShIVE1MTmFtZXM6OmNsYXNzQXR0ciwgImZ0cERpcmVjdG9yeUljb24gZnRwRGlyZWN0b3J5VHlw
ZUZpbGUiKTsKLSAgICByb3dFbGVtZW50LT5hcHBlbmRDaGlsZChlbGVtZW50LCBJR05PUkVfRVhD
RVBUSU9OKTsKKyAgICByb3dFbGVtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoZWxlbWVudCks
IElHTk9SRV9FWENFUFRJT04pOwogCiAgICAgZWxlbWVudCA9IGNyZWF0ZVRERm9yRmlsZW5hbWUo
ZmlsZW5hbWUpOwogICAgIGVsZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNsYXNzQXR0
ciwgImZ0cERpcmVjdG9yeUZpbGVOYW1lIik7Ci0gICAgcm93RWxlbWVudC0+YXBwZW5kQ2hpbGQo
ZWxlbWVudCwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgcm93RWxlbWVudC0+YXBwZW5kQ2hpbGQo
V1RGOjptb3ZlKGVsZW1lbnQpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAogICAgIGVsZW1lbnQgPSBk
b2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KHRkVGFnLCBmYWxzZSk7CiAgICAgZWxlbWVudC0+YXBw
ZW5kQ2hpbGQoVGV4dDo6Y3JlYXRlKCpkb2N1bWVudCgpLCBkYXRlKSwgSUdOT1JFX0VYQ0VQVElP
Tik7CiAgICAgZWxlbWVudC0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6Y2xhc3NBdHRyLCAiZnRw
RGlyZWN0b3J5RmlsZURhdGUiKTsKLSAgICByb3dFbGVtZW50LT5hcHBlbmRDaGlsZChlbGVtZW50
LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICByb3dFbGVtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1v
dmUoZWxlbWVudCksIElHTk9SRV9FWENFUFRJT04pOwogCiAgICAgZWxlbWVudCA9IGRvY3VtZW50
KCktPmNyZWF0ZUVsZW1lbnQodGRUYWcsIGZhbHNlKTsKICAgICBlbGVtZW50LT5hcHBlbmRDaGls
ZChUZXh0OjpjcmVhdGUoKmRvY3VtZW50KCksIHNpemUpLCBJR05PUkVfRVhDRVBUSU9OKTsKICAg
ICBlbGVtZW50LT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpjbGFzc0F0dHIsICJmdHBEaXJlY3Rv
cnlGaWxlU2l6ZSIpOwotICAgIHJvd0VsZW1lbnQtPmFwcGVuZENoaWxkKGVsZW1lbnQsIElHTk9S
RV9FWENFUFRJT04pOworICAgIHJvd0VsZW1lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShlbGVt
ZW50KSwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CiAKIFJlZjxFbGVtZW50PiBGVFBEaXJlY3RvcnlE
b2N1bWVudFBhcnNlcjo6Y3JlYXRlVERGb3JGaWxlbmFtZShjb25zdCBTdHJpbmcmIGZpbGVuYW1l
KQpAQCAtMTM1LDEyICsxMzUsMTIgQEAgUmVmPEVsZW1lbnQ+IEZUUERpcmVjdG9yeURvY3VtZW50
UGFyc2VyOjpjcmVhdGVUREZvckZpbGVuYW1lKGNvbnN0IFN0cmluZyYgZmlsZW4KICAgICBlbHNl
CiAgICAgICAgIGZ1bGxVUkwgPSBmdWxsVVJMICsgJy8nICsgZmlsZW5hbWU7CiAKLSAgICBSZWZQ
dHI8RWxlbWVudD4gYW5jaG9yRWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoYVRh
ZywgZmFsc2UpOworICAgIFJlZjxFbGVtZW50PiBhbmNob3JFbGVtZW50ID0gZG9jdW1lbnQoKS0+
Y3JlYXRlRWxlbWVudChhVGFnLCBmYWxzZSk7CiAgICAgYW5jaG9yRWxlbWVudC0+c2V0QXR0cmli
dXRlKEhUTUxOYW1lczo6aHJlZkF0dHIsIGZ1bGxVUkwpOwogICAgIGFuY2hvckVsZW1lbnQtPmFw
cGVuZENoaWxkKFRleHQ6OmNyZWF0ZSgqZG9jdW1lbnQoKSwgZmlsZW5hbWUpLCBJR05PUkVfRVhD
RVBUSU9OKTsKIAogICAgIFJlZjxFbGVtZW50PiB0ZEVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVh
dGVFbGVtZW50KHRkVGFnLCBmYWxzZSk7Ci0gICAgdGRFbGVtZW50LT5hcHBlbmRDaGlsZChhbmNo
b3JFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICB0ZEVsZW1lbnQtPmFwcGVuZENoaWxk
KFdURjo6bW92ZShhbmNob3JFbGVtZW50KSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKICAgICByZXR1
cm4gdGRFbGVtZW50OwogfQpAQCAtMzEyLDkgKzMxMiw5IEBAIGJvb2wgRlRQRGlyZWN0b3J5RG9j
dW1lbnRQYXJzZXI6OmxvYWREb2N1bWVudFRlbXBsYXRlKCkKICAgICAvLyBJZiB0aGF0IGZhaWxz
IGZvciBzb21lIHJlYXNvbiwgY3JhbSBpdCBvbiB0aGUgZW5kIG9mIHRoZSBkb2N1bWVudCBhcyBh
IGxhc3QKICAgICAvLyBkaXRjaCBlZmZvcnQKICAgICBpZiAoYXV0byogYm9keSA9IGRvY3VtZW50
KCktPmJvZHlPckZyYW1lc2V0KCkpCi0gICAgICAgIGJvZHktPmFwcGVuZENoaWxkKG1fdGFibGVF
bGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgYm9keS0+YXBwZW5kQ2hpbGQoKm1f
dGFibGVFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICBlbHNlCi0gICAgICAgIGRvY3Vt
ZW50KCktPmFwcGVuZENoaWxkKG1fdGFibGVFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAg
ICAgICAgZG9jdW1lbnQoKS0+YXBwZW5kQ2hpbGQoKm1fdGFibGVFbGVtZW50LCBJR05PUkVfRVhD
RVBUSU9OKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMzI1LDE2ICszMjUsMTYgQEAgdm9p
ZCBGVFBEaXJlY3RvcnlEb2N1bWVudFBhcnNlcjo6Y3JlYXRlQmFzaWNEb2N1bWVudCgpCiAKICAg
ICAvLyBGSVhNRTogTWFrZSB0aGlzICJiYXNpYyBkb2N1bWVudCIgbW9yZSBhY2NlcHRhYmxlCiAK
LSAgICBSZWZQdHI8RWxlbWVudD4gYm9keUVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVt
ZW50KGJvZHlUYWcsIGZhbHNlKTsKKyAgICBSZWY8RWxlbWVudD4gYm9keUVsZW1lbnQgPSBkb2N1
bWVudCgpLT5jcmVhdGVFbGVtZW50KGJvZHlUYWcsIGZhbHNlKTsKIAotICAgIGRvY3VtZW50KCkt
PmFwcGVuZENoaWxkKGJvZHlFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBkb2N1bWVu
dCgpLT5hcHBlbmRDaGlsZChib2R5RWxlbWVudC5jb3B5UmVmKCksIElHTk9SRV9FWENFUFRJT04p
OwogCi0gICAgUmVmUHRyPEVsZW1lbnQ+IHRhYmxlRWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0
ZUVsZW1lbnQodGFibGVUYWcsIGZhbHNlKTsKLSAgICBtX3RhYmxlRWxlbWVudCA9IGRvd25jYXN0
PEhUTUxUYWJsZUVsZW1lbnQ+KHRhYmxlRWxlbWVudC5nZXQoKSk7CisgICAgUmVmPEVsZW1lbnQ+
IHRhYmxlRWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQodGFibGVUYWcsIGZhbHNl
KTsKKyAgICBtX3RhYmxlRWxlbWVudCA9IGRvd25jYXN0PEhUTUxUYWJsZUVsZW1lbnQ+KHRhYmxl
RWxlbWVudC5wdHIoKSk7CiAgICAgbV90YWJsZUVsZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1MTmFt
ZXM6OmlkQXR0ciwgImZ0cERpcmVjdG9yeVRhYmxlIik7CiAgICAgbV90YWJsZUVsZW1lbnQtPnNl
dEF0dHJpYnV0ZShIVE1MTmFtZXM6OnN0eWxlQXR0ciwgIndpZHRoOjEwMCUiKTsKIAotICAgIGJv
ZHlFbGVtZW50LT5hcHBlbmRDaGlsZChtX3RhYmxlRWxlbWVudCwgSUdOT1JFX0VYQ0VQVElPTik7
CisgICAgYm9keUVsZW1lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZSh0YWJsZUVsZW1lbnQpLCBJ
R05PUkVfRVhDRVBUSU9OKTsKIAogICAgIGRvY3VtZW50KCktPnByb2Nlc3NWaWV3cG9ydCgid2lk
dGg9ZGV2aWNlLXdpZHRoIiwgVmlld3BvcnRBcmd1bWVudHM6OlZpZXdwb3J0TWV0YSk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKaW5kZXggNDMwMjEyYzFh
YjgwNzA5MTYzZTU0ZjUzZDFkYmMyZjdjYWRhOGIxZi4uNDhjYzliODQ4ZTU0MTdhYzc5ZmE2NTAx
OWU0ODcwNWUxNzEyN2EwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0
YWlsc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVt
ZW50LmNwcApAQCAtOTAsMTEgKzkwLDExIEBAIHByaXZhdGU6CiAKIFJlZjxEZXRhaWxzU3VtbWFy
eUVsZW1lbnQ+IERldGFpbHNTdW1tYXJ5RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVu
dCkKIHsKLSAgICBSZWZQdHI8SFRNTFN1bW1hcnlFbGVtZW50PiBzdW1tYXJ5ID0gSFRNTFN1bW1h
cnlFbGVtZW50OjpjcmVhdGUoc3VtbWFyeVRhZywgZG9jdW1lbnQpOworICAgIFJlZjxIVE1MU3Vt
bWFyeUVsZW1lbnQ+IHN1bW1hcnkgPSBIVE1MU3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZShzdW1tYXJ5
VGFnLCBkb2N1bWVudCk7CiAgICAgc3VtbWFyeS0+YXBwZW5kQ2hpbGQoVGV4dDo6Y3JlYXRlKGRv
Y3VtZW50LCBkZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKIAogICAgIFJlZjxEZXRhaWxzU3VtbWFyeUVsZW1lbnQ+IGRldGFpbHNTdW1tYXJ5ID0gYWRv
cHRSZWYoKm5ldyBEZXRhaWxzU3VtbWFyeUVsZW1lbnQoZG9jdW1lbnQpKTsKLSAgICBkZXRhaWxz
U3VtbWFyeS0+YXBwZW5kQ2hpbGQoc3VtbWFyeSk7CisgICAgZGV0YWlsc1N1bW1hcnktPmFwcGVu
ZENoaWxkKFdURjo6bW92ZShzdW1tYXJ5KSk7CiAgICAgcmV0dXJuIGRldGFpbHNTdW1tYXJ5Owog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IDUyMGNlMDNlNzBjYzdhZDc4
NmNiNTM3YTc3MzA5OTdmODYyM2MzNWUuLjA2ZDBhY2U5ZWY2NDRjNDdmNmFlNjI3YzViZTJhZjkw
MjNlZmJkOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC01ODQsOSArNTg0
LDkgQEAgdm9pZCBIVE1MRWxlbWVudDo6c2V0SW5uZXJUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwg
RXhjZXB0aW9uQ29kZSYgZWMpCiAKICAgICAvLyBBZGQgdGV4dCBub2RlcyBhbmQgPGJyPiBlbGVt
ZW50cy4KICAgICBlYyA9IDA7Ci0gICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50
ID0gdGV4dFRvRnJhZ21lbnQodGV4dCwgZWMpOworICAgIFJlZjxEb2N1bWVudEZyYWdtZW50PiBm
cmFnbWVudCA9IHRleHRUb0ZyYWdtZW50KHRleHQsIGVjKTsKICAgICBpZiAoIWVjKQotICAgICAg
ICByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQoKnRoaXMsIGZyYWdtZW50LnJlbGVhc2UoKSwg
ZWMpOworICAgICAgICByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQoKnRoaXMsIFdURjo6bW92
ZShmcmFnbWVudCksIGVjKTsKIH0KIAogdm9pZCBIVE1MRWxlbWVudDo6c2V0T3V0ZXJUZXh0KGNv
bnN0IFN0cmluZyYgdGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC02MDgsMjAgKzYwOCwxNiBA
QCB2b2lkIEhUTUxFbGVtZW50OjpzZXRPdXRlclRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBFeGNl
cHRpb25Db2RlJiBlYykKIAogICAgIFJlZlB0cjxOb2RlPiBwcmV2ID0gcHJldmlvdXNTaWJsaW5n
KCk7CiAgICAgUmVmUHRyPE5vZGU+IG5leHQgPSBuZXh0U2libGluZygpOwotICAgIFJlZlB0cjxO
b2RlPiBuZXdDaGlsZDsKICAgICBlYyA9IDA7CiAgICAgCiAgICAgLy8gQ29udmVydCB0ZXh0IHRv
IGZyYWdtZW50IHdpdGggPGJyPiB0YWdzIGluc3RlYWQgb2YgbGluZWJyZWFrcyBpZiBuZWVkZWQu
Ci0gICAgaWYgKHRleHQuY29udGFpbnMoJ1xyJykgfHwgdGV4dC5jb250YWlucygnXG4nKSkKLSAg
ICAgICAgbmV3Q2hpbGQgPSB0ZXh0VG9GcmFnbWVudCh0ZXh0LCBlYyk7Ci0gICAgZWxzZQotICAg
ICAgICBuZXdDaGlsZCA9IFRleHQ6OmNyZWF0ZShkb2N1bWVudCgpLCB0ZXh0KTsKKyAgICBSZWY8
Tm9kZT4gbmV3Q2hpbGQgPSB0ZXh0LmNvbnRhaW5zKCdccicpIHx8IHRleHQuY29udGFpbnMoJ1xu
JykgPyBSZWY8Tm9kZT4odGV4dFRvRnJhZ21lbnQodGV4dCwgZWMpKSA6IFJlZjxOb2RlPihUZXh0
OjpjcmVhdGUoZG9jdW1lbnQoKSwgdGV4dCkpOwogCiAgICAgaWYgKCFwYXJlbnROb2RlKCkpCiAg
ICAgICAgIGVjID0gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwogICAgIGlmIChlYykKICAgICAgICAg
cmV0dXJuOwotICAgIHBhcmVudC0+cmVwbGFjZUNoaWxkKG5ld0NoaWxkLnJlbGVhc2UoKSwgdGhp
cywgZWMpOworICAgIHBhcmVudC0+cmVwbGFjZUNoaWxkKFdURjo6bW92ZShuZXdDaGlsZCksICp0
aGlzLCBlYyk7CiAKICAgICBSZWZQdHI8Tm9kZT4gbm9kZSA9IG5leHQgPyBuZXh0LT5wcmV2aW91
c1NpYmxpbmcoKSA6IG51bGxwdHI7CiAgICAgaWYgKCFlYyAmJiBpczxUZXh0Pihub2RlLmdldCgp
KSkKQEAgLTYzMCw3ICs2MjYsNyBAQCB2b2lkIEhUTUxFbGVtZW50OjpzZXRPdXRlclRleHQoY29u
c3QgU3RyaW5nJiB0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgbWVyZ2VXaXRoTmV4
dFRleHROb2RlKGRvd25jYXN0PFRleHQ+KCpwcmV2KSwgZWMpOwogfQogCi1Ob2RlKiBIVE1MRWxl
bWVudDo6aW5zZXJ0QWRqYWNlbnQoY29uc3QgU3RyaW5nJiB3aGVyZSwgTm9kZSogbmV3Q2hpbGQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQorTm9kZSogSFRNTEVsZW1lbnQ6Omluc2VydEFkamFjZW50KGNv
bnN0IFN0cmluZyYgd2hlcmUsIFJlZjxOb2RlPiYmIG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBl
YykKIHsKICAgICAvLyBJbiBJbnRlcm5ldCBFeHBsb3JlciBpZiB0aGUgZWxlbWVudCBoYXMgbm8g
cGFyZW50IGFuZCB3aGVyZSBpcyAiYmVmb3JlQmVnaW4iIG9yICJhZnRlckVuZCIsCiAgICAgLy8g
YSBkb2N1bWVudCBmcmFnbWVudCBpcyBjcmVhdGVkIGFuZCB0aGUgZWxlbWVudHMgYXBwZW5kZWQg
aW4gdGhlIGNvcnJlY3Qgb3JkZXIuIFRoaXMgZG9jdW1lbnQKQEAgLTY0MSwxOCArNjM3LDE4IEBA
IE5vZGUqIEhUTUxFbGVtZW50OjppbnNlcnRBZGphY2VudChjb25zdCBTdHJpbmcmIHdoZXJlLCBO
b2RlKiBuZXdDaGlsZCwgRXhjZXB0aW9uCiAKICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2Uod2hl
cmUsICJiZWZvcmVCZWdpbiIpKSB7CiAgICAgICAgIENvbnRhaW5lck5vZGUqIHBhcmVudCA9IHRo
aXMtPnBhcmVudE5vZGUoKTsKLSAgICAgICAgcmV0dXJuIChwYXJlbnQgJiYgcGFyZW50LT5pbnNl
cnRCZWZvcmUobmV3Q2hpbGQsIHRoaXMsIGVjKSkgPyBuZXdDaGlsZCA6IG51bGxwdHI7CisgICAg
ICAgIHJldHVybiAocGFyZW50ICYmIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG5ld0NoaWxkLmNvcHlS
ZWYoKSwgdGhpcywgZWMpKSA/IG5ld0NoaWxkLnB0cigpIDogbnVsbHB0cjsKICAgICB9CiAKICAg
ICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2Uod2hlcmUsICJhZnRlckJlZ2luIikpCi0gICAgICAgIHJl
dHVybiBpbnNlcnRCZWZvcmUobmV3Q2hpbGQsIGZpcnN0Q2hpbGQoKSwgZWMpID8gbmV3Q2hpbGQg
OiBudWxscHRyOworICAgICAgICByZXR1cm4gaW5zZXJ0QmVmb3JlKG5ld0NoaWxkLmNvcHlSZWYo
KSwgZmlyc3RDaGlsZCgpLCBlYykgPyBuZXdDaGlsZC5wdHIoKSA6IG51bGxwdHI7CiAKICAgICBp
ZiAoZXF1YWxJZ25vcmluZ0Nhc2Uod2hlcmUsICJiZWZvcmVFbmQiKSkKLSAgICAgICAgcmV0dXJu
IGFwcGVuZENoaWxkKG5ld0NoaWxkLCBlYykgPyBuZXdDaGlsZCA6IG51bGxwdHI7CisgICAgICAg
IHJldHVybiBhcHBlbmRDaGlsZChuZXdDaGlsZC5jb3B5UmVmKCksIGVjKSA/IG5ld0NoaWxkLnB0
cigpIDogbnVsbHB0cjsKIAogICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh3aGVyZSwgImFmdGVy
RW5kIikpIHsKICAgICAgICAgQ29udGFpbmVyTm9kZSogcGFyZW50ID0gdGhpcy0+cGFyZW50Tm9k
ZSgpOwotICAgICAgICByZXR1cm4gKHBhcmVudCAmJiBwYXJlbnQtPmluc2VydEJlZm9yZShuZXdD
aGlsZCwgbmV4dFNpYmxpbmcoKSwgZWMpKSA/IG5ld0NoaWxkIDogbnVsbHB0cjsKKyAgICAgICAg
cmV0dXJuIChwYXJlbnQgJiYgcGFyZW50LT5pbnNlcnRCZWZvcmUobmV3Q2hpbGQuY29weVJlZigp
LCBuZXh0U2libGluZygpLCBlYykpID8gbmV3Q2hpbGQucHRyKCkgOiBudWxscHRyOwogICAgIH0K
ICAgICAKICAgICAvLyBJRSB0aHJvd3MgQ09NIEV4Y2VwdGlvbiBFX0lOVkFMSURBUkc7IHRoaXMg
aXMgdGhlIGJlc3QgRE9NIGV4Y2VwdGlvbiBhbHRlcm5hdGl2ZS4KQEAgLTY2OCw3ICs2NjQsNyBA
QCBFbGVtZW50KiBIVE1MRWxlbWVudDo6aW5zZXJ0QWRqYWNlbnRFbGVtZW50KGNvbnN0IFN0cmlu
ZyYgd2hlcmUsIEVsZW1lbnQqIG5ld0NoaQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9
CiAKLSAgICBOb2RlKiByZXR1cm5WYWx1ZSA9IGluc2VydEFkamFjZW50KHdoZXJlLCBuZXdDaGls
ZCwgZWMpOworICAgIE5vZGUqIHJldHVyblZhbHVlID0gaW5zZXJ0QWRqYWNlbnQod2hlcmUsICpu
ZXdDaGlsZCwgZWMpOwogICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFyZXR1
cm5WYWx1ZSB8fCBpczxFbGVtZW50PigqcmV0dXJuVmFsdWUpKTsKICAgICByZXR1cm4gZG93bmNh
c3Q8RWxlbWVudD4ocmV0dXJuVmFsdWUpOyAKIH0KQEAgLTY5OSwxMyArNjk1LDEyIEBAIHZvaWQg
SFRNTEVsZW1lbnQ6Omluc2VydEFkamFjZW50SFRNTChjb25zdCBTdHJpbmcmIHdoZXJlLCBjb25z
dCBTdHJpbmcmIG1hcmt1cCwKICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQg
PSBjcmVhdGVGcmFnbWVudEZvcklubmVyT3V0ZXJIVE1MKG1hcmt1cCwgY29udGV4dEVsZW1lbnQs
IEFsbG93U2NyaXB0aW5nQ29udGVudCwgZWMpOwogICAgIGlmICghZnJhZ21lbnQpCiAgICAgICAg
IHJldHVybjsKLSAgICBpbnNlcnRBZGphY2VudCh3aGVyZSwgZnJhZ21lbnQuZ2V0KCksIGVjKTsK
KyAgICBpbnNlcnRBZGphY2VudCh3aGVyZSwgZnJhZ21lbnQucmVsZWFzZU5vbk51bGwoKSwgZWMp
OwogfQogCiB2b2lkIEhUTUxFbGVtZW50OjppbnNlcnRBZGphY2VudFRleHQoY29uc3QgU3RyaW5n
JiB3aGVyZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBS
ZWZQdHI8VGV4dD4gdGV4dE5vZGUgPSBkb2N1bWVudCgpLmNyZWF0ZVRleHROb2RlKHRleHQpOwot
ICAgIGluc2VydEFkamFjZW50KHdoZXJlLCB0ZXh0Tm9kZS5nZXQoKSwgZWMpOworICAgIGluc2Vy
dEFkamFjZW50KHdoZXJlLCBkb2N1bWVudCgpLmNyZWF0ZVRleHROb2RlKHRleHQpLCBlYyk7CiB9
CiAKIHZvaWQgSFRNTEVsZW1lbnQ6OmFwcGx5QWxpZ25tZW50QXR0cmlidXRlVG9TdHlsZShjb25z
dCBBdG9taWNTdHJpbmcmIGFsaWdubWVudCwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5bGUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKaW5kZXggMzBlMzc3NWEwMDRlMzFiZWFlODM1Y2Y2
OTBjYjQwOWIxZGZlYjc3YS4uNzBkNDk2MWNlZDJkY2U5NmQ0NTU0ZWMxNjY2OTBkMGQ4NWMwNjNl
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaApAQCAtMTMwLDcgKzEzMCw3IEBAIHByaXZh
dGU6CiAKICAgICB2aXJ0dWFsIEhUTUxGb3JtRWxlbWVudCogdmlydHVhbEZvcm0oKSBjb25zdDsK
IAotICAgIE5vZGUqIGluc2VydEFkamFjZW50KGNvbnN0IFN0cmluZyYgd2hlcmUsIE5vZGUqIG5l
d0NoaWxkLCBFeGNlcHRpb25Db2RlJik7CisgICAgTm9kZSogaW5zZXJ0QWRqYWNlbnQoY29uc3Qg
U3RyaW5nJiB3aGVyZSwgUmVmPE5vZGU+JiYgbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmKTsKICAg
ICBSZWY8RG9jdW1lbnRGcmFnbWVudD4gdGV4dFRvRnJhZ21lbnQoY29uc3QgU3RyaW5nJiwgRXhj
ZXB0aW9uQ29kZSYpOwogCiAgICAgdm9pZCBkaXJBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IEF0b21p
Y1N0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKaW5kZXgg
YjJhMjc3YTU1OWJhMzVkMWYzOTU1ZjQyODNjN2M4MjkxMzRiMGEwNi4uYTRhNzNjYTZiNjA5N2Rj
NzhiZDY5ZjNiYjQxMjFlNGQyN2RlZDRiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFn
ZUVsZW1lbnQuY3BwCkBAIC01MDQsNyArNTA0LDcgQEAgdm9pZCBIVE1MSW1hZ2VFbGVtZW50Ojpj
cmVhdGVJbWFnZUNvbnRyb2xzKCkKICAgICBpZiAoIWltYWdlQ29udHJvbHMpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKS5hcHBlbmRDaGlsZChpbWFn
ZUNvbnRyb2xzKTsKKyAgICBlbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCkuYXBwZW5kQ2hpbGQo
aW1hZ2VDb250cm9scy5yZWxlYXNlTm9uTnVsbCgpKTsKIAogICAgIGF1dG8qIHJlbmRlck9iamVj
dCA9IHJlbmRlcmVyKCk7CiAgICAgaWYgKCFyZW5kZXJPYmplY3QpCkBAIC01MjEsNyArNTIxLDcg
QEAgdm9pZCBIVE1MSW1hZ2VFbGVtZW50OjpkZXN0cm95SW1hZ2VDb250cm9scygpCiAKICAgICBp
ZiAoTm9kZSogbm9kZSA9IHNoYWRvd1Jvb3QtPmZpcnN0Q2hpbGQoKSkgewogICAgICAgICBBU1NF
UlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihub2RlLT5pc0ltYWdlQ29udHJvbHNSb290RWxl
bWVudCgpKTsKLSAgICAgICAgc2hhZG93Um9vdC0+cmVtb3ZlQ2hpbGQobm9kZSk7CisgICAgICAg
IHNoYWRvd1Jvb3QtPnJlbW92ZUNoaWxkKCpub2RlKTsKICAgICB9CiAKICAgICBhdXRvKiByZW5k
ZXJPYmplY3QgPSByZW5kZXJlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MS2V5Z2VuRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVt
ZW50LmNwcAppbmRleCBlN2Q5MTQ4MjVjNWViODExNGQ5YjJlZWExZmRjZjAzMDI2YWEwYmEyLi40
YTYzYjAwYTRhNDEzNGI1OGNmMjQ1ZmViNjkyZjhhNDY2MTZiZjE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcApAQCAtNTgsNyArNTgsNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgfQogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgUmVmUHRyPEVsZW1lbnQ+IGNsb25lRWxl
bWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50
KSBvdmVycmlkZQorICAgIHZpcnR1YWwgUmVmPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRB
dHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50KSBvdmVycmlkZQog
ICAgIHsKICAgICAgICAgcmV0dXJuIGNyZWF0ZSh0YXJnZXREb2N1bWVudCk7CiAgICAgfQpAQCAt
NzMsMTQgKzczLDE0IEBAIGlubGluZSBIVE1MS2V5Z2VuRWxlbWVudDo6SFRNTEtleWdlbkVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lCiAgICAgVmVjdG9yPFN0cmlu
Zz4ga2V5czsKICAgICBnZXRTdXBwb3J0ZWRLZXlTaXplcyhrZXlzKTsKIAotICAgIFJlZlB0cjxI
VE1MU2VsZWN0RWxlbWVudD4gc2VsZWN0ID0gS2V5Z2VuU2VsZWN0RWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50KTsKKyAgICBSZWY8SFRNTFNlbGVjdEVsZW1lbnQ+IHNlbGVjdCA9IEtleWdlblNlbGVj
dEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBr
ZXlzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIFJlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gb3B0
aW9uID0gSFRNTE9wdGlvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgICAgIHNlbGVj
dC0+YXBwZW5kQ2hpbGQob3B0aW9uLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgUmVmPEhU
TUxPcHRpb25FbGVtZW50PiBvcHRpb24gPSBIVE1MT3B0aW9uRWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KTsKKyAgICAgICAgc2VsZWN0LT5hcHBlbmRDaGlsZChvcHRpb24uY29weVJlZigpLCBJR05P
UkVfRVhDRVBUSU9OKTsKICAgICAgICAgb3B0aW9uLT5hcHBlbmRDaGlsZChUZXh0OjpjcmVhdGUo
ZG9jdW1lbnQsIGtleXNbaV0pLCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICB9CiAKLSAgICBlbnN1
cmVVc2VyQWdlbnRTaGFkb3dSb290KCkuYXBwZW5kQ2hpbGQoc2VsZWN0LCBJR05PUkVfRVhDRVBU
SU9OKTsKKyAgICBlbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCkuYXBwZW5kQ2hpbGQoV1RGOjpt
b3ZlKHNlbGVjdCksIElHTk9SRV9FWENFUFRJT04pOwogfQogCiBSZWY8SFRNTEtleWdlbkVsZW1l
bnQ+IEhUTUxLZXlnZW5FbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcAppbmRleCAyMmIyZjM5ODFlMzk1MjM3OTNmNWUy
YjMxZTZjYzVkMjhiZmE3NzgwLi5lNWUzZGUwMzY4MzgxNTQ1ZWE3ODUwYzA4Zjk2YTdmMWJjMDc1
OTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAKQEAgLTIyOSwx
NiArMjI5LDE2IEBAIHZvaWQgSFRNTE1ldGVyRWxlbWVudDo6ZGlkQWRkVXNlckFnZW50U2hhZG93
Um9vdChTaGFkb3dSb290KiByb290KQogewogICAgIEFTU0VSVCghbV92YWx1ZSk7CiAKLSAgICBS
ZWZQdHI8TWV0ZXJJbm5lckVsZW1lbnQ+IGlubmVyID0gTWV0ZXJJbm5lckVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCgpKTsKLSAgICByb290LT5hcHBlbmRDaGlsZChpbm5lcik7CisgICAgUmVmPE1l
dGVySW5uZXJFbGVtZW50PiBpbm5lciA9IE1ldGVySW5uZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQoKSk7CisgICAgcm9vdC0+YXBwZW5kQ2hpbGQoaW5uZXIuY29weVJlZigpKTsKIAotICAgIFJl
ZlB0cjxNZXRlckJhckVsZW1lbnQ+IGJhciA9IE1ldGVyQmFyRWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KCkpOworICAgIFJlZjxNZXRlckJhckVsZW1lbnQ+IGJhciA9IE1ldGVyQmFyRWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50KCkpOwogICAgIG1fdmFsdWUgPSBNZXRlclZhbHVlRWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50KCkpOwogICAgIG1fdmFsdWUtPnNldFdpZHRoUGVyY2VudGFnZSgwKTsKICAg
ICBtX3ZhbHVlLT51cGRhdGVQc2V1ZG8oKTsKLSAgICBiYXItPmFwcGVuZENoaWxkKG1fdmFsdWUs
IEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIGJhci0+YXBwZW5kQ2hpbGQoKm1fdmFsdWUsIEFT
U0VSVF9OT19FWENFUFRJT04pOwogCi0gICAgaW5uZXItPmFwcGVuZENoaWxkKGJhciwgQVNTRVJU
X05PX0VYQ0VQVElPTik7CisgICAgaW5uZXItPmFwcGVuZENoaWxkKFdURjo6bW92ZShiYXIpLCBB
U1NFUlRfTk9fRVhDRVBUSU9OKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKaW5kZXggMmRmZmYyNjM1M2VmOTFmNDgxMGNlMTg3
NzcwNmFkYzk1MGZjMzZhZS4uZWQ5Y2FlYTE1YTYyMTMzODJjMjBkMWRmNjc0Y2FhOGUyYTlmMjJi
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKQEAgLTcxLDEy
ICs3MSwxMiBAQCBSZWZQdHI8SFRNTE9wdGlvbkVsZW1lbnQ+IEhUTUxPcHRpb25FbGVtZW50Ojpj
cmVhdGVGb3JKU0NvbnN0cnVjdG9yKERvY3VtZW50JiBkbwogewogICAgIFJlZlB0cjxIVE1MT3B0
aW9uRWxlbWVudD4gZWxlbWVudCA9IGFkb3B0UmVmKG5ldyBIVE1MT3B0aW9uRWxlbWVudChvcHRp
b25UYWcsIGRvY3VtZW50KSk7CiAKLSAgICBSZWZQdHI8VGV4dD4gdGV4dCA9IFRleHQ6OmNyZWF0
ZShkb2N1bWVudCwgZGF0YS5pc051bGwoKSA/ICIiIDogZGF0YSk7CisgICAgUmVmPFRleHQ+IHRl
eHQgPSBUZXh0OjpjcmVhdGUoZG9jdW1lbnQsIGRhdGEuaXNOdWxsKCkgPyAiIiA6IGRhdGEpOwog
CiAgICAgZWMgPSAwOwotICAgIGVsZW1lbnQtPmFwcGVuZENoaWxkKHRleHQucmVsZWFzZSgpLCBl
Yyk7CisgICAgZWxlbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHRleHQpLCBlYyk7CiAgICAg
aWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAg
ICBpZiAoIXZhbHVlLmlzTnVsbCgpKQogICAgICAgICBlbGVtZW50LT5zZXRWYWx1ZSh2YWx1ZSk7
CkBAIC04NCw3ICs4NCw3IEBAIFJlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gSFRNTE9wdGlvbkVs
ZW1lbnQ6OmNyZWF0ZUZvckpTQ29uc3RydWN0b3IoRG9jdW1lbnQmIGRvCiAgICAgICAgIGVsZW1l
bnQtPnNldEF0dHJpYnV0ZShzZWxlY3RlZEF0dHIsIGVtcHR5QXRvbSk7CiAgICAgZWxlbWVudC0+
c2V0U2VsZWN0ZWQoc2VsZWN0ZWQpOwogCi0gICAgcmV0dXJuIGVsZW1lbnQucmVsZWFzZSgpOwor
ICAgIHJldHVybiBlbGVtZW50OwogfQogCiBib29sIEhUTUxPcHRpb25FbGVtZW50Ojppc0ZvY3Vz
YWJsZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVz
c0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNw
cAppbmRleCA4N2YwZTM3MGNhMDJjM2FjOWJiMTQ2ZmI5YmQwNzZlYmI0YTQ4NTM1Li5kYjdkMDZh
OGI3OTMwNTIzZWFjNjljOTA3ZTQ3ZGM0ODI5NzMyYzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAKQEAgLTE0OSwxNiArMTQ5LDE2IEBAIHZvaWQgSFRN
TFByb2dyZXNzRWxlbWVudDo6ZGlkQWRkVXNlckFnZW50U2hhZG93Um9vdChTaGFkb3dSb290KiBy
b290KQogewogICAgIEFTU0VSVCghbV92YWx1ZSk7CiAKLSAgICBSZWZQdHI8UHJvZ3Jlc3NJbm5l
ckVsZW1lbnQ+IGlubmVyID0gUHJvZ3Jlc3NJbm5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgp
KTsKLSAgICByb290LT5hcHBlbmRDaGlsZChpbm5lcik7CisgICAgUmVmPFByb2dyZXNzSW5uZXJF
bGVtZW50PiBpbm5lciA9IFByb2dyZXNzSW5uZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7
CisgICAgcm9vdC0+YXBwZW5kQ2hpbGQoaW5uZXIuY29weVJlZigpKTsKIAotICAgIFJlZlB0cjxQ
cm9ncmVzc0JhckVsZW1lbnQ+IGJhciA9IFByb2dyZXNzQmFyRWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KCkpOwotICAgIFJlZlB0cjxQcm9ncmVzc1ZhbHVlRWxlbWVudD4gdmFsdWUgPSBQcm9ncmVz
c1ZhbHVlRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwotICAgIG1fdmFsdWUgPSB2YWx1ZS5n
ZXQoKTsKKyAgICBSZWY8UHJvZ3Jlc3NCYXJFbGVtZW50PiBiYXIgPSBQcm9ncmVzc0JhckVsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKKyAgICBSZWY8UHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ+IHZh
bHVlID0gUHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKKyAgICBtX3Zh
bHVlID0gdmFsdWUucHRyKCk7CiAgICAgbV92YWx1ZS0+c2V0V2lkdGhQZXJjZW50YWdlKEhUTUxQ
cm9ncmVzc0VsZW1lbnQ6OkluZGV0ZXJtaW5hdGVQb3NpdGlvbiAqIDEwMCk7Ci0gICAgYmFyLT5h
cHBlbmRDaGlsZChtX3ZhbHVlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBiYXItPmFwcGVu
ZENoaWxkKCptX3ZhbHVlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAotICAgIGlubmVyLT5hcHBl
bmRDaGlsZChiYXIsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIGlubmVyLT5hcHBlbmRDaGls
ZChXVEY6Om1vdmUoYmFyKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiB9CiAKIGJvb2wgSFRNTFBy
b2dyZXNzRWxlbWVudDo6c2hvdWxkQXBwZWFySW5kZXRlcm1pbmF0ZSgpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDY5NTExNDY2ODA0OTE0Yjdh
YjIwOWZiZTk2MWM1YmY4MzJlMTA3YTcuLmUxM2E1Y2RkY2NhMmNiM2I3NTZhOGQzYTU3ZTIzZjgw
YTliNDNlNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCkBA
IC0xNjksOSArMTY5LDkgQEAgdm9pZCBIVE1MU2NyaXB0RWxlbWVudDo6ZGlzcGF0Y2hMb2FkRXZl
bnQoKQogICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkubG9hZEV2
ZW50LCBmYWxzZSwgZmFsc2UpKTsKIH0KIAotUmVmUHRyPEVsZW1lbnQ+IEhUTUxTY3JpcHRFbGVt
ZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50JiB0
YXJnZXREb2N1bWVudCkKK1JlZjxFbGVtZW50PiBIVE1MU2NyaXB0RWxlbWVudDo6Y2xvbmVFbGVt
ZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MU2NyaXB0RWxlbWVudCh0YWdRTmFtZSgp
LCB0YXJnZXREb2N1bWVudCwgZmFsc2UsIGFscmVhZHlTdGFydGVkKCkpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBIVE1MU2NyaXB0RWxlbWVudCh0YWdRTmFtZSgpLCB0YXJnZXREb2N1bWVu
dCwgZmFsc2UsIGFscmVhZHlTdGFydGVkKCkpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU2NyaXB0RWxlbWVudC5oCmluZGV4IGUzOWMxMGNhNWU4NmMzNjZhNTM4ZDE3YzY2NDRiM2Ey
NGQxMzgyMDkuLjMxMmM2NjI2ZThiODMxNGU4NWUyZGY2ODdkYmYwOWYyYjJmZTM3YjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKQEAgLTY1LDcgKzY1LDcgQEAgcHJp
dmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaExvYWRFdmVudCgpIG92ZXJyaWRlOwog
Ci0gICAgdmlydHVhbCBSZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0
ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPEVsZW1l
bnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmKSBv
dmVycmlkZTsKIH07CiAKIH0gLy9uYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2Vs
ZWN0RWxlbWVudC5jcHAKaW5kZXggZWI3Mzk0NTM1ZDQ5NjM1MzQ2YzY1ODJkMTc1OTZkM2Q0M2Yw
Nzk1ZS4uNGYxMDQ1ODAxMzIyNzNmZGVkZjEyNTc4ZDRiMWJiNjEwZWNjYWYwNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKQEAgLTIyNyw3ICsyMjcsNyBAQCB2
b2lkIEhUTUxTZWxlY3RFbGVtZW50OjphZGQoSFRNTEVsZW1lbnQqIGVsZW1lbnQsIEhUTUxFbGVt
ZW50KiBiZWZvcmVFbGVtZW50LCBFeAogICAgIC8vIE1ha2Ugc3VyZSB0aGUgZWxlbWVudCBpcyBy
ZWYnZCBhbmQgZGVyZWYnZCBzbyB3ZSBkb24ndCBsZWFrIGl0LgogICAgIFJlZjxIVE1MRWxlbWVu
dD4gcHJvdGVjdE5ld0NoaWxkKCplbGVtZW50KTsKIAotICAgIGluc2VydEJlZm9yZShlbGVtZW50
LCBiZWZvcmVFbGVtZW50LCBlYyk7CisgICAgaW5zZXJ0QmVmb3JlKCplbGVtZW50LCBiZWZvcmVF
bGVtZW50LCBlYyk7CiAgICAgdXBkYXRlVmFsaWRpdHkoKTsKIH0KIApAQCAtNDg2LDEyICs0ODYs
MTIgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6c2V0TGVuZ3RoKHVuc2lnbmVkIG5ld0xlbiwg
RXhjZXB0aW9uQ29kZSYgZWMpCiAKICAgICAgICAgLy8gUmVtb3ZpbmcgY2hpbGRyZW4gZmlyZXMg
bXV0YXRpb24gZXZlbnRzLCB3aGljaCBtaWdodCBtdXRhdGUgdGhlIERPTSBmdXJ0aGVyLCBzbyB3
ZSBmaXJzdCBjb3B5IG91dCBhIGxpc3QKICAgICAgICAgLy8gb2YgZWxlbWVudHMgdGhhdCB3ZSBp
bnRlbmQgdG8gcmVtb3ZlIHRoZW4gYXR0ZW1wdCB0byByZW1vdmUgdGhlbSBvbmUgYXQgYSB0aW1l
LgotICAgICAgICBWZWN0b3I8UmVmUHRyPEVsZW1lbnQ+PiBpdGVtc1RvUmVtb3ZlOworICAgICAg
ICBWZWN0b3I8UmVmPEVsZW1lbnQ+PiBpdGVtc1RvUmVtb3ZlOwogICAgICAgICBzaXplX3Qgb3B0
aW9uSW5kZXggPSAwOwogICAgICAgICBmb3IgKGF1dG8mIGl0ZW0gOiBpdGVtcykgewogICAgICAg
ICAgICAgaWYgKGlzPEhUTUxPcHRpb25FbGVtZW50PigqaXRlbSkgJiYgb3B0aW9uSW5kZXgrKyA+
PSBuZXdMZW4pIHsKICAgICAgICAgICAgICAgICBBU1NFUlQoaXRlbS0+cGFyZW50Tm9kZSgpKTsK
LSAgICAgICAgICAgICAgICBpdGVtc1RvUmVtb3ZlLmFwcGVuZChpdGVtKTsKKyAgICAgICAgICAg
ICAgICBpdGVtc1RvUmVtb3ZlLmFwcGVuZCgqaXRlbSk7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAKaW5kZXggY2ZiNGRl
M2ZhMzY3ODAyYTMwMzFkNmFlOGU4NWZiMzhlZDRhYmIwNi4uMzVmZjcwODY0YWY4NjRkMzEzYzA2
OWJjMzZlN2QxMWVkMGZkMTExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGFibGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1l
bnQuY3BwCkBAIC04MSw3ICs4MSw3IEBAIHZvaWQgSFRNTFRhYmxlRWxlbWVudDo6c2V0Q2FwdGlv
bihQYXNzUmVmUHRyPEhUTUxUYWJsZUNhcHRpb25FbGVtZW50PiBuZXdDYXB0aW9uCiB7CiAgICAg
ZGVsZXRlQ2FwdGlvbigpOwogICAgIGlmIChuZXdDYXB0aW9uKQotICAgICAgICBpbnNlcnRCZWZv
cmUobmV3Q2FwdGlvbiwgZmlyc3RDaGlsZCgpLCBlYyk7CisgICAgICAgIGluc2VydEJlZm9yZSgq
bmV3Q2FwdGlvbiwgZmlyc3RDaGlsZCgpLCBlYyk7CiB9CiAKIEhUTUxUYWJsZVNlY3Rpb25FbGVt
ZW50KiBIVE1MVGFibGVFbGVtZW50Ojp0SGVhZCgpIGNvbnN0CkBAIC0xMTAsNyArMTEwLDcgQEAg
dm9pZCBIVE1MVGFibGVFbGVtZW50OjpzZXRUSGVhZChQYXNzUmVmUHRyPEhUTUxUYWJsZVNlY3Rp
b25FbGVtZW50PiBuZXdIZWFkLCBFeGMKICAgICAgICAgaWYgKGNoaWxkLT5pc0VsZW1lbnROb2Rl
KCkgJiYgIWNoaWxkLT5oYXNUYWdOYW1lKGNhcHRpb25UYWcpICYmICFjaGlsZC0+aGFzVGFnTmFt
ZShjb2xncm91cFRhZykpCiAgICAgICAgICAgICBicmVhazsKIAotICAgIGluc2VydEJlZm9yZShu
ZXdIZWFkLCBjaGlsZCwgZWMpOworICAgIGluc2VydEJlZm9yZSgqbmV3SGVhZCwgY2hpbGQsIGVj
KTsKIH0KIAogSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqIEhUTUxUYWJsZUVsZW1lbnQ6OnRGb290
KCkgY29uc3QKQEAgLTEzOSw3ICsxMzksNyBAQCB2b2lkIEhUTUxUYWJsZUVsZW1lbnQ6OnNldFRG
b290KFBhc3NSZWZQdHI8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+IG5ld0Zvb3QsIEV4YwogICAg
ICAgICBpZiAoY2hpbGQtPmlzRWxlbWVudE5vZGUoKSAmJiAhY2hpbGQtPmhhc1RhZ05hbWUoY2Fw
dGlvblRhZykgJiYgIWNoaWxkLT5oYXNUYWdOYW1lKGNvbGdyb3VwVGFnKSAmJiAhY2hpbGQtPmhh
c1RhZ05hbWUodGhlYWRUYWcpKQogICAgICAgICAgICAgYnJlYWs7CiAKLSAgICBpbnNlcnRCZWZv
cmUobmV3Rm9vdCwgY2hpbGQsIGVjKTsKKyAgICBpbnNlcnRCZWZvcmUoKm5ld0Zvb3QsIGNoaWxk
LCBlYyk7CiB9CiAKIFJlZlB0cjxIVE1MRWxlbWVudD4gSFRNTFRhYmxlRWxlbWVudDo6Y3JlYXRl
VEhlYWQoKQpAQCAtMTUzLDcgKzE1Myw4IEBAIFJlZlB0cjxIVE1MRWxlbWVudD4gSFRNTFRhYmxl
RWxlbWVudDo6Y3JlYXRlVEhlYWQoKQogCiB2b2lkIEhUTUxUYWJsZUVsZW1lbnQ6OmRlbGV0ZVRI
ZWFkKCkKIHsKLSAgICByZW1vdmVDaGlsZCh0SGVhZCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAg
ICBpZiAoYXV0byogdEhlYWQgPSB0aGlzLT50SGVhZCgpKQorICAgICAgICByZW1vdmVDaGlsZCgq
dEhlYWQsIElHTk9SRV9FWENFUFRJT04pOwogfQogCiBSZWZQdHI8SFRNTEVsZW1lbnQ+IEhUTUxU
YWJsZUVsZW1lbnQ6OmNyZWF0ZVRGb290KCkKQEAgLTE2NywxNSArMTY4LDE2IEBAIFJlZlB0cjxI
VE1MRWxlbWVudD4gSFRNTFRhYmxlRWxlbWVudDo6Y3JlYXRlVEZvb3QoKQogCiB2b2lkIEhUTUxU
YWJsZUVsZW1lbnQ6OmRlbGV0ZVRGb290KCkKIHsKLSAgICByZW1vdmVDaGlsZCh0Rm9vdCgpLCBJ
R05PUkVfRVhDRVBUSU9OKTsKKyAgICBpZiAoYXV0byogdEZvb3QgPSB0aGlzLT50Rm9vdCgpKQor
ICAgICAgICByZW1vdmVDaGlsZCgqdEZvb3QsIElHTk9SRV9FWENFUFRJT04pOwogfQogCiBSZWZQ
dHI8SFRNTEVsZW1lbnQ+IEhUTUxUYWJsZUVsZW1lbnQ6OmNyZWF0ZVRCb2R5KCkKIHsKLSAgICBS
ZWZQdHI8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+IGJvZHkgPSBIVE1MVGFibGVTZWN0aW9uRWxl
bWVudDo6Y3JlYXRlKHRib2R5VGFnLCBkb2N1bWVudCgpKTsKLSAgICBOb2RlKiByZWZlcmVuY2VF
bGVtZW50ID0gbGFzdEJvZHkoKSA/IGxhc3RCb2R5KCktPm5leHRTaWJsaW5nKCkgOiAwOwotICAg
IGluc2VydEJlZm9yZShib2R5LCByZWZlcmVuY2VFbGVtZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKLSAgICByZXR1cm4gYm9keTsKKyAgICBSZWY8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+IGJv
ZHkgPSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDo6Y3JlYXRlKHRib2R5VGFnLCBkb2N1bWVudCgp
KTsKKyAgICBOb2RlKiByZWZlcmVuY2VFbGVtZW50ID0gbGFzdEJvZHkoKSA/IGxhc3RCb2R5KCkt
Pm5leHRTaWJsaW5nKCkgOiBudWxscHRyOworICAgIGluc2VydEJlZm9yZShib2R5LmNvcHlSZWYo
KSwgcmVmZXJlbmNlRWxlbWVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgcmV0dXJuIFdU
Rjo6bW92ZShib2R5KTsKIH0KIAogUmVmUHRyPEhUTUxFbGVtZW50PiBIVE1MVGFibGVFbGVtZW50
OjpjcmVhdGVDYXB0aW9uKCkKQEAgLTE4OSw3ICsxOTEsOCBAQCBSZWZQdHI8SFRNTEVsZW1lbnQ+
IEhUTUxUYWJsZUVsZW1lbnQ6OmNyZWF0ZUNhcHRpb24oKQogCiB2b2lkIEhUTUxUYWJsZUVsZW1l
bnQ6OmRlbGV0ZUNhcHRpb24oKQogewotICAgIHJlbW92ZUNoaWxkKGNhcHRpb24oKSwgSUdOT1JF
X0VYQ0VQVElPTik7CisgICAgaWYgKGF1dG8qIGNhcHRpb24gPSB0aGlzLT5jYXB0aW9uKCkpCisg
ICAgICAgIHJlbW92ZUNoaWxkKCpjYXB0aW9uLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KIAogSFRN
TFRhYmxlU2VjdGlvbkVsZW1lbnQqIEhUTUxUYWJsZUVsZW1lbnQ6Omxhc3RCb2R5KCkgY29uc3QK
QEAgLTIzNCwyMiArMjM3LDIyIEBAIFJlZlB0cjxIVE1MRWxlbWVudD4gSFRNTFRhYmxlRWxlbWVu
dDo6aW5zZXJ0Um93KGludCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgZWxzZSB7CiAg
ICAgICAgIHBhcmVudCA9IGxhc3RCb2R5KCk7CiAgICAgICAgIGlmICghcGFyZW50KSB7Ci0gICAg
ICAgICAgICBSZWZQdHI8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+IG5ld0JvZHkgPSBIVE1MVGFi
bGVTZWN0aW9uRWxlbWVudDo6Y3JlYXRlKHRib2R5VGFnLCBkb2N1bWVudCgpKTsKLSAgICAgICAg
ICAgIFJlZlB0cjxIVE1MVGFibGVSb3dFbGVtZW50PiBuZXdSb3cgPSBIVE1MVGFibGVSb3dFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7Ci0gICAgICAgICAgICBuZXdCb2R5LT5hcHBlbmRDaGls
ZChuZXdSb3csIGVjKTsKLSAgICAgICAgICAgIGFwcGVuZENoaWxkKG5ld0JvZHkucmVsZWFzZSgp
LCBlYyk7Ci0gICAgICAgICAgICByZXR1cm4gbmV3Um93OworICAgICAgICAgICAgUmVmPEhUTUxU
YWJsZVNlY3Rpb25FbGVtZW50PiBuZXdCb2R5ID0gSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ6OmNy
ZWF0ZSh0Ym9keVRhZywgZG9jdW1lbnQoKSk7CisgICAgICAgICAgICBSZWY8SFRNTFRhYmxlUm93
RWxlbWVudD4gbmV3Um93ID0gSFRNTFRhYmxlUm93RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkp
OworICAgICAgICAgICAgbmV3Qm9keS0+YXBwZW5kQ2hpbGQobmV3Um93LmNvcHlSZWYoKSwgZWMp
OworICAgICAgICAgICAgYXBwZW5kQ2hpbGQoV1RGOjptb3ZlKG5ld0JvZHkpLCBlYyk7CisgICAg
ICAgICAgICByZXR1cm4gV1RGOjptb3ZlKG5ld1Jvdyk7CiAgICAgICAgIH0KICAgICB9CiAKLSAg
ICBSZWZQdHI8SFRNTFRhYmxlUm93RWxlbWVudD4gbmV3Um93ID0gSFRNTFRhYmxlUm93RWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50KCkpOwotICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG5ld1Jvdywg
cm93LmdldCgpLCBlYyk7Ci0gICAgcmV0dXJuIG5ld1JvdzsKKyAgICBSZWY8SFRNTFRhYmxlUm93
RWxlbWVudD4gbmV3Um93ID0gSFRNTFRhYmxlUm93RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkp
OworICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG5ld1Jvdy5jb3B5UmVmKCksIHJvdy5nZXQoKSwg
ZWMpOworICAgIHJldHVybiBXVEY6Om1vdmUobmV3Um93KTsKIH0KIAogdm9pZCBIVE1MVGFibGVF
bGVtZW50OjpkZWxldGVSb3coaW50IGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBI
VE1MVGFibGVSb3dFbGVtZW50KiByb3cgPSAwOworICAgIEhUTUxUYWJsZVJvd0VsZW1lbnQqIHJv
dyA9IG51bGxwdHI7CiAgICAgaWYgKGluZGV4ID09IC0xKQogICAgICAgICByb3cgPSBIVE1MVGFi
bGVSb3dzQ29sbGVjdGlvbjo6bGFzdFJvdygqdGhpcyk7CiAgICAgZWxzZSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmNwcAppbmRleCBjODcyNTlmNWVjYjk2ZDBh
YTYwNDhkNGQxNGFlOGI2MGY5M2I2OGI2Li45NWM2OTI5ZTAxMDNhZDkzZDFiMTAwMzFmM2UxMzY5
ZjkxNjBjZDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0Vs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5j
cHAKQEAgLTEyNSwyMSArMTI1LDIxIEBAIFJlZlB0cjxIVE1MRWxlbWVudD4gSFRNTFRhYmxlUm93
RWxlbWVudDo6aW5zZXJ0Q2VsbChpbnQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjCiAgICAgaW50
IG51bUNlbGxzID0gY2hpbGRyZW4tPmxlbmd0aCgpOwogICAgIGlmIChpbmRleCA8IC0xIHx8IGlu
ZGV4ID4gbnVtQ2VsbHMpIHsKICAgICAgICAgZWMgPSBJTkRFWF9TSVpFX0VSUjsKLSAgICAgICAg
cmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIFJlZlB0cjxI
VE1MVGFibGVDZWxsRWxlbWVudD4gY2VsbCA9IEhUTUxUYWJsZUNlbGxFbGVtZW50OjpjcmVhdGUo
dGRUYWcsIGRvY3VtZW50KCkpOworICAgIFJlZjxIVE1MVGFibGVDZWxsRWxlbWVudD4gY2VsbCA9
IEhUTUxUYWJsZUNlbGxFbGVtZW50OjpjcmVhdGUodGRUYWcsIGRvY3VtZW50KCkpOwogICAgIGlm
IChpbmRleCA8IDAgfHwgaW5kZXggPj0gbnVtQ2VsbHMpCi0gICAgICAgIGFwcGVuZENoaWxkKGNl
bGwsIGVjKTsKKyAgICAgICAgYXBwZW5kQ2hpbGQoY2VsbC5jb3B5UmVmKCksIGVjKTsKICAgICBl
bHNlIHsKICAgICAgICAgTm9kZSogbjsKICAgICAgICAgaWYgKGluZGV4IDwgMSkKICAgICAgICAg
ICAgIG4gPSBmaXJzdENoaWxkKCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG4gPSBjaGls
ZHJlbi0+aXRlbShpbmRleCk7Ci0gICAgICAgIGluc2VydEJlZm9yZShjZWxsLCBuLCBlYyk7Cisg
ICAgICAgIGluc2VydEJlZm9yZShjZWxsLmNvcHlSZWYoKSwgbiwgZWMpOwogICAgIH0KLSAgICBy
ZXR1cm4gY2VsbDsKKyAgICByZXR1cm4gV1RGOjptb3ZlKGNlbGwpOwogfQogCiB2b2lkIEhUTUxU
YWJsZVJvd0VsZW1lbnQ6OmRlbGV0ZUNlbGwoaW50IGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykK
QEAgLTE1MCw3ICsxNTAsNyBAQCB2b2lkIEhUTUxUYWJsZVJvd0VsZW1lbnQ6OmRlbGV0ZUNlbGwo
aW50IGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgaW5kZXggPSBudW1DZWxscy0x
OwogICAgIGlmIChpbmRleCA+PSAwICYmIGluZGV4IDwgbnVtQ2VsbHMpIHsKICAgICAgICAgUmVm
UHRyPE5vZGU+IGNlbGwgPSBjaGlsZHJlbi0+aXRlbShpbmRleCk7Ci0gICAgICAgIEhUTUxFbGVt
ZW50OjpyZW1vdmVDaGlsZChjZWxsLmdldCgpLCBlYyk7CisgICAgICAgIEhUTUxFbGVtZW50Ojpy
ZW1vdmVDaGlsZCgqY2VsbCwgZWMpOwogICAgIH0gZWxzZQogICAgICAgICBlYyA9IElOREVYX1NJ
WkVfRVJSOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0
aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVt
ZW50LmNwcAppbmRleCA5ZTQ1MzE2ZjhmM2Y0ZmM2ZGE4ZTNkY2RiMWIzZTRlMmRkOTI3ZDg2Li5m
ZDAyYzYwMmY5NDZjZjM0ZDEwZTgzYzIyMjI0OGZhMzg4MDEyM2VhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcApAQCAtNjgsMTQgKzY4LDE0
IEBAIFJlZlB0cjxIVE1MRWxlbWVudD4gSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ6Omluc2VydFJv
dyhpbnQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmCiAgICAgZWxzZSB7CiAgICAgICAgIHJvdyA9IEhU
TUxUYWJsZVJvd0VsZW1lbnQ6OmNyZWF0ZSh0clRhZywgZG9jdW1lbnQoKSk7CiAgICAgICAgIGlm
IChudW1Sb3dzID09IGluZGV4IHx8IGluZGV4ID09IC0xKQotICAgICAgICAgICAgYXBwZW5kQ2hp
bGQocm93LCBlYyk7CisgICAgICAgICAgICBhcHBlbmRDaGlsZCgqcm93LCBlYyk7CiAgICAgICAg
IGVsc2UgewogICAgICAgICAgICAgTm9kZSogbjsKICAgICAgICAgICAgIGlmIChpbmRleCA8IDEp
CiAgICAgICAgICAgICAgICAgbiA9IGZpcnN0Q2hpbGQoKTsKICAgICAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgICAgICBuID0gY2hpbGRyZW4tPml0ZW0oaW5kZXgpOwotICAgICAgICAgICAgaW5z
ZXJ0QmVmb3JlKHJvdywgbiwgZWMpOworICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKCpyb3csIG4s
IGVjKTsKICAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4gcm93OwpAQCAtODksNyArODksNyBA
QCB2b2lkIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50OjpkZWxldGVSb3coaW50IGluZGV4LCBFeGNl
cHRpb25Db2RlJiBlYykKICAgICAgICAgaW5kZXggPSBudW1Sb3dzIC0gMTsKICAgICBpZiAoaW5k
ZXggPj0gMCAmJiBpbmRleCA8IG51bVJvd3MpIHsKICAgICAgICAgUmVmUHRyPE5vZGU+IHJvdyA9
IGNoaWxkcmVuLT5pdGVtKGluZGV4KTsKLSAgICAgICAgSFRNTEVsZW1lbnQ6OnJlbW92ZUNoaWxk
KHJvdy5nZXQoKSwgZWMpOworICAgICAgICBIVE1MRWxlbWVudDo6cmVtb3ZlQ2hpbGQoKnJvdywg
ZWMpOwogICAgIH0gZWxzZQogICAgICAgICBlYyA9IElOREVYX1NJWkVfRVJSOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAKaW5kZXggYWVjMzAxMGY2ZDZj
ZmUxYmVkYjMyYzQ5NzA5YWVjYWQwYjZkN2Y3Mi4uMmUxZWRiMjM2YzA3OGVlYjZkZWJlNmU5ZTU2
MTFlNzE3Y2RjODM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxh
dGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1l
bnQuY3BwCkBAIC02OCw3ICs2OCw3IEBAIERvY3VtZW50RnJhZ21lbnQqIEhUTUxUZW1wbGF0ZUVs
ZW1lbnQ6OmNvbnRlbnQoKSBjb25zdAogICAgIHJldHVybiBtX2NvbnRlbnQuZ2V0KCk7CiB9CiAK
LVJlZlB0cjxOb2RlPiBIVE1MVGVtcGxhdGVFbGVtZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1
bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24gdHlwZSkKK1JlZjxOb2RlPiBI
VE1MVGVtcGxhdGVFbGVtZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9j
dW1lbnQsIENsb25pbmdPcGVyYXRpb24gdHlwZSkKIHsKICAgICBSZWZQdHI8Tm9kZT4gY2xvbmU7
CiAgICAgc3dpdGNoICh0eXBlKSB7CkBAIC04Miw4ICs4Miw4IEBAIFJlZlB0cjxOb2RlPiBIVE1M
VGVtcGxhdGVFbGVtZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1l
bnQsIENsCiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBpZiAobV9jb250ZW50KQotICAgICAg
ICBjb250ZW50KCktPmNsb25lQ2hpbGROb2Rlcyhkb3duY2FzdDxIVE1MVGVtcGxhdGVFbGVtZW50
PihjbG9uZS5nZXQoKSktPmNvbnRlbnQoKSk7Ci0gICAgcmV0dXJuIGNsb25lLnJlbGVhc2UoKTsK
KyAgICAgICAgY29udGVudCgpLT5jbG9uZUNoaWxkTm9kZXMoKmRvd25jYXN0PEhUTUxUZW1wbGF0
ZUVsZW1lbnQ+KGNsb25lLmdldCgpKS0+Y29udGVudCgpKTsKKyAgICByZXR1cm4gY2xvbmUucmVs
ZWFzZU5vbk51bGwoKTsKIH0KIAogdm9pZCBIVE1MVGVtcGxhdGVFbGVtZW50OjpkaWRNb3ZlVG9O
ZXdEb2N1bWVudChEb2N1bWVudCogb2xkRG9jdW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRlbXBsYXRlRWxlbWVudC5oCmluZGV4IDc2N2YyYTE4NGVhODUzN2RiYzM2NDQ1ZGFiODJjODVl
MDA1ZjA3NGIuLmQxZmE4NjQwNjlkY2I3NTA5YzlmMTg3NzBkYWI1MmYxZTg1NmJkMTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oCkBAIC01MCw3ICs1MCw3IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTFRlbXBsYXRlRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1YWwgUmVmUHRyPE5vZGU+IGNsb25lTm9k
ZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0
aW9uKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9j
dW1lbnQqIG9sZERvY3VtZW50KSBvdmVycmlkZTsKIAogICAgIG11dGFibGUgUmVmUHRyPFRlbXBs
YXRlQ29udGVudERvY3VtZW50RnJhZ21lbnQ+IG1fY29udGVudDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCmluZGV4IDkzOTI5MTE1NTA5MjYxNzdlYjA2ZmM0
MjFlNWEyZDA5ZDdhOTIxZTYuLmEyZGU3MzBjNWU3YzlkMWU1YzIwZDkwYjJkNDIzYzI4ZWU0ZGM1
ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcApAQCAt
NDA2LDkgKzQwNiw5IEBAIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6c2V0RGVmYXVsdFZhbHVl
KGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlKQogICAgIFJlZjxIVE1MVGV4dEFyZWFFbGVtZW50
PiBwcm90ZWN0RnJvbU11dGF0aW9uRXZlbnRzKCp0aGlzKTsKIAogICAgIC8vIFRvIHByZXNlcnZl
IGNvbW1lbnRzLCByZW1vdmUgb25seSB0aGUgdGV4dCBub2RlcywgdGhlbiBhZGQgYSBzaW5nbGUg
dGV4dCBub2RlLgotICAgIFZlY3RvcjxSZWZQdHI8VGV4dD4+IHRleHROb2RlczsKKyAgICBWZWN0
b3I8UmVmPFRleHQ+PiB0ZXh0Tm9kZXM7CiAgICAgZm9yIChUZXh0KiB0ZXh0Tm9kZSA9IFRleHRO
b2RlVHJhdmVyc2FsOjpmaXJzdENoaWxkKCp0aGlzKTsgdGV4dE5vZGU7IHRleHROb2RlID0gVGV4
dE5vZGVUcmF2ZXJzYWw6Om5leHRTaWJsaW5nKCp0ZXh0Tm9kZSkpCi0gICAgICAgIHRleHROb2Rl
cy5hcHBlbmQodGV4dE5vZGUpOworICAgICAgICB0ZXh0Tm9kZXMuYXBwZW5kKCp0ZXh0Tm9kZSk7
CiAKICAgICBzaXplX3Qgc2l6ZSA9IHRleHROb2Rlcy5zaXplKCk7CiAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBzaXplOyArK2kpCkBAIC01MjMsOCArNTIzLDggQEAgdm9pZCBIVE1MVGV4dEFy
ZWFFbGVtZW50Ojp1cGRhdGVQbGFjZWhvbGRlclRleHQoKQogICAgIFN0cmluZyBwbGFjZWhvbGRl
clRleHQgPSBzdHJpcHBlZFBsYWNlaG9sZGVyKCk7CiAgICAgaWYgKHBsYWNlaG9sZGVyVGV4dC5p
c0VtcHR5KCkpIHsKICAgICAgICAgaWYgKG1fcGxhY2Vob2xkZXIpIHsKLSAgICAgICAgICAgIHVz
ZXJBZ2VudFNoYWRvd1Jvb3QoKS0+cmVtb3ZlQ2hpbGQobV9wbGFjZWhvbGRlciwgQVNTRVJUX05P
X0VYQ0VQVElPTik7Ci0gICAgICAgICAgICBtX3BsYWNlaG9sZGVyID0gMDsKKyAgICAgICAgICAg
IHVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+cmVtb3ZlQ2hpbGQoKm1fcGxhY2Vob2xkZXIsIEFTU0VS
VF9OT19FWENFUFRJT04pOworICAgICAgICAgICAgbV9wbGFjZWhvbGRlciA9IG51bGxwdHI7CiAg
ICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTUzMyw3ICs1MzMsNyBAQCB2b2lk
IEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnVwZGF0ZVBsYWNlaG9sZGVyVGV4dCgpCiAgICAgICAgIG1f
cGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlci5nZXQoKTsKICAgICAgICAgbV9wbGFjZWhvbGRlci0+
c2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAgICAgbV9wbGFjZWhvbGRlci0+
c2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eURpc3BsYXksIGlzUGxhY2Vob2xkZXJW
aXNpYmxlKCkgPyBDU1NWYWx1ZUJsb2NrIDogQ1NTVmFsdWVOb25lLCB0cnVlKTsKLSAgICAgICAg
dXNlckFnZW50U2hhZG93Um9vdCgpLT5pbnNlcnRCZWZvcmUobV9wbGFjZWhvbGRlciwgaW5uZXJU
ZXh0RWxlbWVudCgpLT5uZXh0U2libGluZygpKTsKKyAgICAgICAgdXNlckFnZW50U2hhZG93Um9v
dCgpLT5pbnNlcnRCZWZvcmUoKm1fcGxhY2Vob2xkZXIsIGlubmVyVGV4dEVsZW1lbnQoKS0+bmV4
dFNpYmxpbmcoKSk7CiAgICAgfQogICAgIG1fcGxhY2Vob2xkZXItPnNldElubmVyVGV4dChwbGFj
ZWhvbGRlclRleHQsIEFTU0VSVF9OT19FWENFUFRJT04pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9JbWFnZURvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1h
Z2VEb2N1bWVudC5jcHAKaW5kZXggODFiNWVlZWQ5NTUxYmZiNmUzMzNkNGMxZDliNzk2Y2Q3OWQ2
MWZjYy4uMDNkYjM3OTc3YjBmZTFhYTg3ZDZkYTY5NGMyYjMzNjE2MTdiMTk3NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZURvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0ltYWdlRG9jdW1lbnQuY3BwCkBAIC05Miw3ICs5Miw3IEBAIHByaXZhdGU6CiAK
IGNsYXNzIEltYWdlRG9jdW1lbnRFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxJbWFnZUVsZW1l
bnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8SW1hZ2VEb2N1bWVudEVsZW1lbnQ+IGNy
ZWF0ZShJbWFnZURvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxJbWFnZURvY3VtZW50RWxlbWVu
dD4gY3JlYXRlKEltYWdlRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBJbWFnZURvY3VtZW50
RWxlbWVudChJbWFnZURvY3VtZW50JiBkb2N1bWVudCkKQEAgLTEwNyw5ICsxMDcsOSBAQCBwcml2
YXRlOgogICAgIEltYWdlRG9jdW1lbnQqIG1faW1hZ2VEb2N1bWVudDsKIH07CiAKLWlubGluZSBS
ZWZQdHI8SW1hZ2VEb2N1bWVudEVsZW1lbnQ+IEltYWdlRG9jdW1lbnRFbGVtZW50OjpjcmVhdGUo
SW1hZ2VEb2N1bWVudCYgZG9jdW1lbnQpCitpbmxpbmUgUmVmPEltYWdlRG9jdW1lbnRFbGVtZW50
PiBJbWFnZURvY3VtZW50RWxlbWVudDo6Y3JlYXRlKEltYWdlRG9jdW1lbnQmIGRvY3VtZW50KQog
ewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW1hZ2VEb2N1bWVudEVsZW1lbnQoZG9jdW1lbnQp
KTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbWFnZURvY3VtZW50RWxlbWVudChkb2N1bWVu
dCkpOwogfQogCiAvLyAtLS0tLS0tLQpAQCAtMjEwLDE5ICsyMTAsMTkgQEAgUmVmPERvY3VtZW50
UGFyc2VyPiBJbWFnZURvY3VtZW50OjpjcmVhdGVQYXJzZXIoKQogCiB2b2lkIEltYWdlRG9jdW1l
bnQ6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCkKIHsKLSAgICBSZWZQdHI8RWxlbWVudD4gcm9v
dEVsZW1lbnQgPSBEb2N1bWVudDo6Y3JlYXRlRWxlbWVudChodG1sVGFnLCBmYWxzZSk7Ci0gICAg
YXBwZW5kQ2hpbGQocm9vdEVsZW1lbnQpOwotICAgIGRvd25jYXN0PEhUTUxIdG1sRWxlbWVudD4o
KnJvb3RFbGVtZW50KS5pbnNlcnRlZEJ5UGFyc2VyKCk7CisgICAgUmVmPEVsZW1lbnQ+IHJvb3RF
bGVtZW50ID0gRG9jdW1lbnQ6OmNyZWF0ZUVsZW1lbnQoaHRtbFRhZywgZmFsc2UpOworICAgIGFw
cGVuZENoaWxkKHJvb3RFbGVtZW50LmNvcHlSZWYoKSk7CisgICAgZG93bmNhc3Q8SFRNTEh0bWxF
bGVtZW50Pihyb290RWxlbWVudC5nZXQoKSkuaW5zZXJ0ZWRCeVBhcnNlcigpOwogCiAgICAgZnJh
bWUoKS0+aW5qZWN0VXNlclNjcmlwdHMoSW5qZWN0QXREb2N1bWVudFN0YXJ0KTsKIAotICAgIFJl
ZlB0cjxFbGVtZW50PiBib2R5ID0gRG9jdW1lbnQ6OmNyZWF0ZUVsZW1lbnQoYm9keVRhZywgZmFs
c2UpOworICAgIFJlZjxFbGVtZW50PiBib2R5ID0gRG9jdW1lbnQ6OmNyZWF0ZUVsZW1lbnQoYm9k
eVRhZywgZmFsc2UpOwogICAgIGJvZHktPnNldEF0dHJpYnV0ZShzdHlsZUF0dHIsICJtYXJnaW46
IDBweCIpOwogICAgIGlmIChNSU1FVHlwZVJlZ2lzdHJ5Ojppc1BERk1JTUVUeXBlKGRvY3VtZW50
KCkubG9hZGVyKCktPnJlc3BvbnNlTUlNRVR5cGUoKSkpCi0gICAgICAgIGRvd25jYXN0PEhUTUxC
b2R5RWxlbWVudD4oKmJvZHkpLnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlCYWNr
Z3JvdW5kQ29sb3IsICJ3aGl0ZSIsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfSURFTlQpOwotICAg
IHJvb3RFbGVtZW50LT5hcHBlbmRDaGlsZChib2R5KTsKKyAgICAgICAgZG93bmNhc3Q8SFRNTEJv
ZHlFbGVtZW50Pihib2R5LmdldCgpKS5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5
QmFja2dyb3VuZENvbG9yLCAid2hpdGUiLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0lERU5UKTsK
KyAgICByb290RWxlbWVudC0+YXBwZW5kQ2hpbGQoYm9keS5jb3B5UmVmKCkpOwogICAgIAotICAg
IFJlZlB0cjxJbWFnZURvY3VtZW50RWxlbWVudD4gaW1hZ2VFbGVtZW50ID0gSW1hZ2VEb2N1bWVu
dEVsZW1lbnQ6OmNyZWF0ZSgqdGhpcyk7CisgICAgUmVmPEltYWdlRG9jdW1lbnRFbGVtZW50PiBp
bWFnZUVsZW1lbnQgPSBJbWFnZURvY3VtZW50RWxlbWVudDo6Y3JlYXRlKCp0aGlzKTsKICAgICBp
ZiAobV9zaG91bGRTaHJpbmtJbWFnZSkKICAgICAgICAgaW1hZ2VFbGVtZW50LT5zZXRBdHRyaWJ1
dGUoc3R5bGVBdHRyLCAiLXdlYmtpdC11c2VyLXNlbGVjdDpub25lOyBkaXNwbGF5OmJsb2NrOyBt
YXJnaW46YXV0bzsiKTsKICAgICBlbHNlCkBAIC0yMzAsNyArMjMwLDcgQEAgdm9pZCBJbWFnZURv
Y3VtZW50OjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCiAgICAgaW1hZ2VFbGVtZW50LT5zZXRM
b2FkTWFudWFsbHkodHJ1ZSk7CiAgICAgaW1hZ2VFbGVtZW50LT5zZXRTcmModXJsKCkuc3RyaW5n
KCkpOwogICAgIGltYWdlRWxlbWVudC0+Y2FjaGVkSW1hZ2UoKS0+c2V0UmVzcG9uc2UobG9hZGVy
KCktPnJlc3BvbnNlKCkpOwotICAgIGJvZHktPmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7Cisg
ICAgYm9keS0+YXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50LmNvcHlSZWYoKSk7CiAgICAgCiAgICAg
aWYgKG1fc2hvdWxkU2hyaW5rSW1hZ2UpIHsKICNpZiBQTEFURk9STShJT1MpCkBAIC0yNDQsNyAr
MjQ0LDcgQEAgdm9pZCBJbWFnZURvY3VtZW50OjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCiAj
ZW5kaWYKICAgICB9CiAKLSAgICBtX2ltYWdlRWxlbWVudCA9IGltYWdlRWxlbWVudC5nZXQoKTsK
KyAgICBtX2ltYWdlRWxlbWVudCA9IGltYWdlRWxlbWVudC5wdHIoKTsKIH0KIAogdm9pZCBJbWFn
ZURvY3VtZW50OjppbWFnZVVwZGF0ZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9NZWRpYURvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5j
cHAKaW5kZXggMTg1YWJhODM0MDNjZTgyMmM3NzZlZTBjMjhkYmE3MzAwMTkyOTk5Yi4uZDc2MjQ1
MmMyNTBlOThmOTZjMWMzNTUwZmFlMTgxZjg1ZTAyYjVhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01l
ZGlhRG9jdW1lbnQuY3BwCkBAIC03OCwzMCArNzgsMzAgQEAgcHJpdmF0ZToKICAgICAKIHZvaWQg
TWVkaWFEb2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKQogewotICAgIFJl
ZlB0cjxFbGVtZW50PiByb290RWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoaHRt
bFRhZywgZmFsc2UpOwotICAgIGRvY3VtZW50KCktPmFwcGVuZENoaWxkKHJvb3RFbGVtZW50LCBJ
R05PUkVfRVhDRVBUSU9OKTsKLSAgICBkb2N1bWVudCgpLT5zZXRDU1NUYXJnZXQocm9vdEVsZW1l
bnQuZ2V0KCkpOwotICAgIGRvd25jYXN0PEhUTUxIdG1sRWxlbWVudD4oKnJvb3RFbGVtZW50KS5p
bnNlcnRlZEJ5UGFyc2VyKCk7CisgICAgUmVmPEVsZW1lbnQ+IHJvb3RFbGVtZW50ID0gZG9jdW1l
bnQoKS0+Y3JlYXRlRWxlbWVudChodG1sVGFnLCBmYWxzZSk7CisgICAgZG9jdW1lbnQoKS0+YXBw
ZW5kQ2hpbGQocm9vdEVsZW1lbnQuY29weVJlZigpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBk
b2N1bWVudCgpLT5zZXRDU1NUYXJnZXQocm9vdEVsZW1lbnQucHRyKCkpOworICAgIGRvd25jYXN0
PEhUTUxIdG1sRWxlbWVudD4ocm9vdEVsZW1lbnQuZ2V0KCkpLmluc2VydGVkQnlQYXJzZXIoKTsK
IAogICAgIGlmIChkb2N1bWVudCgpLT5mcmFtZSgpKQogICAgICAgICBkb2N1bWVudCgpLT5mcmFt
ZSgpLT5pbmplY3RVc2VyU2NyaXB0cyhJbmplY3RBdERvY3VtZW50U3RhcnQpOwogCiAjaWYgUExB
VEZPUk0oSU9TKQotICAgIFJlZlB0cjxFbGVtZW50PiBoZWFkRWxlbWVudCA9IGRvY3VtZW50KCkt
PmNyZWF0ZUVsZW1lbnQoaGVhZFRhZywgZmFsc2UpOwotICAgIHJvb3RFbGVtZW50LT5hcHBlbmRD
aGlsZChoZWFkRWxlbWVudCwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgUmVmPEVsZW1lbnQ+IGhl
YWRFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChoZWFkVGFnLCBmYWxzZSk7Cisg
ICAgcm9vdEVsZW1lbnQtPmFwcGVuZENoaWxkKGhlYWRFbGVtZW50LmNvcHlSZWYoKSwgSUdOT1JF
X0VYQ0VQVElPTik7CiAKLSAgICBSZWZQdHI8RWxlbWVudD4gbWV0YUVsZW1lbnQgPSBkb2N1bWVu
dCgpLT5jcmVhdGVFbGVtZW50KG1ldGFUYWcsIGZhbHNlKTsKKyAgICBSZWY8RWxlbWVudD4gbWV0
YUVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KG1ldGFUYWcsIGZhbHNlKTsKICAg
ICBtZXRhRWxlbWVudC0+c2V0QXR0cmlidXRlKG5hbWVBdHRyLCAidmlld3BvcnQiKTsKICAgICBt
ZXRhRWxlbWVudC0+c2V0QXR0cmlidXRlKGNvbnRlbnRBdHRyLCAid2lkdGg9ZGV2aWNlLXdpZHRo
LGluaXRpYWwtc2NhbGU9MSx1c2VyLXNjYWxhYmxlPW5vIik7Ci0gICAgaGVhZEVsZW1lbnQtPmFw
cGVuZENoaWxkKG1ldGFFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBoZWFkRWxlbWVu
dC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKG1ldGFFbGVtZW50KSwgSUdOT1JFX0VYQ0VQVElPTik7
CiAjZW5kaWYKIAotICAgIFJlZlB0cjxFbGVtZW50PiBib2R5ID0gZG9jdW1lbnQoKS0+Y3JlYXRl
RWxlbWVudChib2R5VGFnLCBmYWxzZSk7Ci0gICAgcm9vdEVsZW1lbnQtPmFwcGVuZENoaWxkKGJv
ZHksIElHTk9SRV9FWENFUFRJT04pOworICAgIFJlZjxFbGVtZW50PiBib2R5ID0gZG9jdW1lbnQo
KS0+Y3JlYXRlRWxlbWVudChib2R5VGFnLCBmYWxzZSk7CisgICAgcm9vdEVsZW1lbnQtPmFwcGVu
ZENoaWxkKGJvZHkuY29weVJlZigpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIFJlZlB0cjxF
bGVtZW50PiBtZWRpYUVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KHZpZGVvVGFn
LCBmYWxzZSk7CisgICAgUmVmPEVsZW1lbnQ+IG1lZGlhRWxlbWVudCA9IGRvY3VtZW50KCktPmNy
ZWF0ZUVsZW1lbnQodmlkZW9UYWcsIGZhbHNlKTsKIAotICAgIG1fbWVkaWFFbGVtZW50ID0gZG93
bmNhc3Q8SFRNTFZpZGVvRWxlbWVudD4obWVkaWFFbGVtZW50LmdldCgpKTsKKyAgICBtX21lZGlh
RWxlbWVudCA9IGRvd25jYXN0PEhUTUxWaWRlb0VsZW1lbnQ+KG1lZGlhRWxlbWVudC5wdHIoKSk7
CiAgICAgbV9tZWRpYUVsZW1lbnQtPnNldEF0dHJpYnV0ZShjb250cm9sc0F0dHIsIGVtcHR5QXRv
bSk7CiAgICAgbV9tZWRpYUVsZW1lbnQtPnNldEF0dHJpYnV0ZShhdXRvcGxheUF0dHIsIGVtcHR5
QXRvbSk7CiAKQEAgLTExNCwxNSArMTE0LDE1IEBAIHZvaWQgTWVkaWFEb2N1bWVudFBhcnNlcjo6
Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKQogI2VuZGlmCiAgICAgbV9tZWRpYUVsZW1lbnQtPnNl
dEF0dHJpYnV0ZShzdHlsZUF0dHIsIGVsZW1lbnRTdHlsZS50b1N0cmluZygpKTsKIAotICAgIFJl
ZlB0cjxFbGVtZW50PiBzb3VyY2VFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChz
b3VyY2VUYWcsIGZhbHNlKTsKLSAgICBIVE1MU291cmNlRWxlbWVudCYgc291cmNlID0gZG93bmNh
c3Q8SFRNTFNvdXJjZUVsZW1lbnQ+KCpzb3VyY2VFbGVtZW50KTsKKyAgICBSZWY8RWxlbWVudD4g
c291cmNlRWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoc291cmNlVGFnLCBmYWxz
ZSk7CisgICAgSFRNTFNvdXJjZUVsZW1lbnQmIHNvdXJjZSA9IGRvd25jYXN0PEhUTUxTb3VyY2VF
bGVtZW50Pihzb3VyY2VFbGVtZW50LmdldCgpKTsKICAgICBzb3VyY2Uuc2V0U3JjKGRvY3VtZW50
KCktPnVybCgpKTsKIAogICAgIGlmIChEb2N1bWVudExvYWRlciogbG9hZGVyID0gZG9jdW1lbnQo
KS0+bG9hZGVyKCkpCiAgICAgICAgIHNvdXJjZS5zZXRUeXBlKGxvYWRlci0+cmVzcG9uc2VNSU1F
VHlwZSgpKTsKIAotICAgIG1fbWVkaWFFbGVtZW50LT5hcHBlbmRDaGlsZChzb3VyY2VFbGVtZW50
LCBJR05PUkVfRVhDRVBUSU9OKTsKLSAgICBib2R5LT5hcHBlbmRDaGlsZChtZWRpYUVsZW1lbnQs
IElHTk9SRV9FWENFUFRJT04pOworICAgIG1fbWVkaWFFbGVtZW50LT5hcHBlbmRDaGlsZChXVEY6
Om1vdmUoc291cmNlRWxlbWVudCksIElHTk9SRV9FWENFUFRJT04pOworICAgIGJvZHktPmFwcGVu
ZENoaWxkKFdURjo6bW92ZShtZWRpYUVsZW1lbnQpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAogICAg
IEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkKQEAg
LTI1Myw3ICsyNTMsNyBAQCB2b2lkIE1lZGlhRG9jdW1lbnQ6OnJlcGxhY2VNZWRpYUVsZW1lbnRU
aW1lckZpcmVkKCkKICAgICAgICAgaWYgKGRvY3VtZW50TG9hZGVyKQogICAgICAgICAgICAgZW1i
ZWRFbGVtZW50LnNldEF0dHJpYnV0ZSh0eXBlQXR0ciwgZG9jdW1lbnRMb2FkZXItPndyaXRlcigp
Lm1pbWVUeXBlKCkpOwogCi0gICAgICAgIHZpZGVvRWxlbWVudC0+cGFyZW50Tm9kZSgpLT5yZXBs
YWNlQ2hpbGQoJmVtYmVkRWxlbWVudCwgdmlkZW9FbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsK
KyAgICAgICAgdmlkZW9FbGVtZW50LT5wYXJlbnROb2RlKCktPnJlcGxhY2VDaGlsZChlbWJlZEVs
ZW1lbnQsICp2aWRlb0VsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcAppbmRleCBlOTY3NzA5MGY0YzM4NTNhN2Nm
ZjIwOGIyM2MzMWRjOWQyNTQ0ODIxLi5jMGE4MGJhNTU3MTM5MDliOTNiMThiMWJkYTg4MDNmZjE1
Mjc1YmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcApAQCAtNjcsOSAr
NjcsOSBAQCBwcml2YXRlOgogCiB2b2lkIFBsdWdpbkRvY3VtZW50UGFyc2VyOjpjcmVhdGVEb2N1
bWVudFN0cnVjdHVyZSgpCiB7Ci0gICAgUmVmUHRyPEVsZW1lbnQ+IHJvb3RFbGVtZW50ID0gZG9j
dW1lbnQoKS0+Y3JlYXRlRWxlbWVudChodG1sVGFnLCBmYWxzZSk7Ci0gICAgZG9jdW1lbnQoKS0+
YXBwZW5kQ2hpbGQocm9vdEVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOwotICAgIGRvd25jYXN0
PEhUTUxIdG1sRWxlbWVudD4oKnJvb3RFbGVtZW50KS5pbnNlcnRlZEJ5UGFyc2VyKCk7CisgICAg
UmVmPEVsZW1lbnQ+IHJvb3RFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChodG1s
VGFnLCBmYWxzZSk7CisgICAgZG9jdW1lbnQoKS0+YXBwZW5kQ2hpbGQocm9vdEVsZW1lbnQuY29w
eVJlZigpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBkb3duY2FzdDxIVE1MSHRtbEVsZW1lbnQ+
KHJvb3RFbGVtZW50LmdldCgpKS5pbnNlcnRlZEJ5UGFyc2VyKCk7CiAKICAgICBpZiAoZG9jdW1l
bnQoKS0+ZnJhbWUoKSkKICAgICAgICAgZG9jdW1lbnQoKS0+ZnJhbWUoKS0+aW5qZWN0VXNlclNj
cmlwdHMoSW5qZWN0QXREb2N1bWVudFN0YXJ0KTsKQEAgLTc5LDcgKzc5LDcgQEAgdm9pZCBQbHVn
aW5Eb2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKQogICAgIGRvY3VtZW50
KCktPnByb2Nlc3NWaWV3cG9ydChBU0NJSUxpdGVyYWwoInVzZXItc2NhbGFibGU9bm8iKSwgVmll
d3BvcnRBcmd1bWVudHM6OlBsdWdpbkRvY3VtZW50KTsKICNlbmRpZgogCi0gICAgUmVmUHRyPEVs
ZW1lbnQ+IGJvZHkgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KGJvZHlUYWcsIGZhbHNlKTsK
KyAgICBSZWY8RWxlbWVudD4gYm9keSA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoYm9keVRh
ZywgZmFsc2UpOwogICAgIGJvZHktPnNldEF0dHJpYnV0ZShtYXJnaW53aWR0aEF0dHIsIEF0b21p
Y1N0cmluZygiMCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBi
b2R5LT5zZXRBdHRyaWJ1dGUobWFyZ2luaGVpZ2h0QXR0ciwgQXRvbWljU3RyaW5nKCIwIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogI2lmIFBMQVRGT1JNKElPUykKQEAg
LTg4LDExICs4OCwxMSBAQCB2b2lkIFBsdWdpbkRvY3VtZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVu
dFN0cnVjdHVyZSgpCiAgICAgYm9keS0+c2V0QXR0cmlidXRlKHN0eWxlQXR0ciwgQXRvbWljU3Ry
aW5nKCJiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMzgsMzgsMzgpIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOwogI2VuZGlmCiAKLSAgICByb290RWxlbWVudC0+YXBwZW5kQ2hp
bGQoYm9keSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgcm9vdEVsZW1lbnQtPmFwcGVuZENoaWxk
KGJvZHkuY29weVJlZigpLCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICAgICAgCi0gICAgUmVmUHRy
PEVsZW1lbnQ+IGVtYmVkRWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoZW1iZWRU
YWcsIGZhbHNlKTsKKyAgICBSZWY8RWxlbWVudD4gZW1iZWRFbGVtZW50ID0gZG9jdW1lbnQoKS0+
Y3JlYXRlRWxlbWVudChlbWJlZFRhZywgZmFsc2UpOwogICAgICAgICAKLSAgICBtX2VtYmVkRWxl
bWVudCA9IGRvd25jYXN0PEhUTUxFbWJlZEVsZW1lbnQ+KGVtYmVkRWxlbWVudC5nZXQoKSk7Cisg
ICAgbV9lbWJlZEVsZW1lbnQgPSBkb3duY2FzdDxIVE1MRW1iZWRFbGVtZW50PihlbWJlZEVsZW1l
bnQucHRyKCkpOwogICAgIG1fZW1iZWRFbGVtZW50LT5zZXRBdHRyaWJ1dGUod2lkdGhBdHRyLCAi
MTAwJSIpOwogICAgIG1fZW1iZWRFbGVtZW50LT5zZXRBdHRyaWJ1dGUoaGVpZ2h0QXR0ciwgIjEw
MCUiKTsKICAgICAKQEAgLTEwNiw3ICsxMDYsNyBAQCB2b2lkIFBsdWdpbkRvY3VtZW50UGFyc2Vy
OjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCiAKICAgICBkb3duY2FzdDxQbHVnaW5Eb2N1bWVu
dD4oKmRvY3VtZW50KCkpLnNldFBsdWdpbkVsZW1lbnQobV9lbWJlZEVsZW1lbnQpOwogCi0gICAg
Ym9keS0+YXBwZW5kQ2hpbGQoZW1iZWRFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBi
b2R5LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoZW1iZWRFbGVtZW50KSwgSUdOT1JFX0VYQ0VQVElP
Tik7CiB9CiAKIHZvaWQgUGx1Z2luRG9jdW1lbnRQYXJzZXI6OmFwcGVuZEJ5dGVzKERvY3VtZW50
V3JpdGVyJiwgY29uc3QgY2hhciosIHNpemVfdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0
VHlwZS5jcHAKaW5kZXggYjViOWU3OTQxMzExOTNiNTBmZTc5NzlhMTZhMTRjYjMwODA0ZTdkNy4u
NjZhNzQxNWU4YTRjZjExZjkxZGM2N2MxNmExZDkwNjAyNWNmZmZkMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKQEAgLTI1MywxMiArMjUzLDEyIEBAIHZvaWQgUmFuZ2VJ
bnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogICAgIEFTU0VSVChlbGVtZW50KCkudXNl
ckFnZW50U2hhZG93Um9vdCgpKTsKIAogICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGVsZW1lbnQo
KS5kb2N1bWVudCgpOwotICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gdHJhY2sgPSBIVE1MRGl2
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBSZWY8SFRNTERpdkVsZW1lbnQ+IHRyYWNr
ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgdHJhY2stPnNldFBzZXVk
byhBdG9taWNTdHJpbmcoIi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHRyYWNrLT5hcHBlbmRDaGlsZChTbGlk
ZXJUaHVtYkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCksIElHTk9SRV9FWENFUFRJT04pOwotICAg
IFJlZlB0cjxIVE1MRWxlbWVudD4gY29udGFpbmVyID0gU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBjb250YWluZXItPmFwcGVuZENoaWxkKHRyYWNrLnJlbGVh
c2UoKSwgSUdOT1JFX0VYQ0VQVElPTik7Ci0gICAgZWxlbWVudCgpLnVzZXJBZ2VudFNoYWRvd1Jv
b3QoKS0+YXBwZW5kQ2hpbGQoY29udGFpbmVyLnJlbGVhc2UoKSwgSUdOT1JFX0VYQ0VQVElPTik7
CisgICAgUmVmPEhUTUxFbGVtZW50PiBjb250YWluZXIgPSBTbGlkZXJDb250YWluZXJFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoV1RGOjptb3Zl
KHRyYWNrKSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgZWxlbWVudCgpLnVzZXJBZ2VudFNoYWRv
d1Jvb3QoKS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNvbnRhaW5lciksIElHTk9SRV9FWENFUFRJ
T04pOwogfQogCiBIVE1MRWxlbWVudCogUmFuZ2VJbnB1dFR5cGU6OnNsaWRlclRyYWNrRWxlbWVu
dCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAKaW5kZXggZGU0
M2RiNTgwNDkzYmM2NTk5ZjllN2FlODg3ZTcwYzk4MWM0MmU2Ny4uMzU3YzdhNjA1YjRkYjcyYzAw
ZTdiOTZkZWQ2ZGQ2NDYyMGU4ZDZmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9T
ZWFyY2hJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRU
eXBlLmNwcApAQCAtMTA3LDE0ICsxMDcsMTQgQEAgdm9pZCBTZWFyY2hJbnB1dFR5cGU6OmNyZWF0
ZVNoYWRvd1N1YnRyZWUoKQogICAgIEFTU0VSVChjb250YWluZXIpOwogICAgIEFTU0VSVCh0ZXh0
V3JhcHBlcik7CiAKLSAgICBSZWZQdHI8U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudD4g
cmVzdWx0c0J1dHRvbiA9IFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZShl
bGVtZW50KCkuZG9jdW1lbnQoKSk7Ci0gICAgbV9yZXN1bHRzQnV0dG9uID0gcmVzdWx0c0J1dHRv
bi5nZXQoKTsKLSAgICB1cGRhdGVSZXN1bHRCdXR0b25Qc2V1ZG9UeXBlKCptX3Jlc3VsdHNCdXR0
b24sIGVsZW1lbnQoKS5tYXhSZXN1bHRzKCkpOwotICAgIGNvbnRhaW5lci0+aW5zZXJ0QmVmb3Jl
KG1fcmVzdWx0c0J1dHRvbiwgdGV4dFdyYXBwZXIsIElHTk9SRV9FWENFUFRJT04pOwotCi0gICAg
UmVmUHRyPFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudD4gY2FuY2VsQnV0dG9uID0gU2Vh
cmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLmRvY3VtZW50KCkp
OwotICAgIG1fY2FuY2VsQnV0dG9uID0gY2FuY2VsQnV0dG9uLmdldCgpOwotICAgIGNvbnRhaW5l
ci0+aW5zZXJ0QmVmb3JlKG1fY2FuY2VsQnV0dG9uLCB0ZXh0V3JhcHBlci0+bmV4dFNpYmxpbmco
KSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgUmVmPFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVs
ZW1lbnQ+IHJlc3VsdHNCdXR0b24gPSBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50Ojpj
cmVhdGUoZWxlbWVudCgpLmRvY3VtZW50KCkpOworICAgIG1fcmVzdWx0c0J1dHRvbiA9IHJlc3Vs
dHNCdXR0b24ucHRyKCk7CisgICAgdXBkYXRlUmVzdWx0QnV0dG9uUHNldWRvVHlwZShyZXN1bHRz
QnV0dG9uLmdldCgpLCBlbGVtZW50KCkubWF4UmVzdWx0cygpKTsKKyAgICBjb250YWluZXItPmlu
c2VydEJlZm9yZShXVEY6Om1vdmUocmVzdWx0c0J1dHRvbiksIHRleHRXcmFwcGVyLCBJR05PUkVf
RVhDRVBUSU9OKTsKKworICAgIFJlZjxTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ+IGNh
bmNlbEJ1dHRvbiA9IFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGVsZW1l
bnQoKS5kb2N1bWVudCgpKTsKKyAgICBtX2NhbmNlbEJ1dHRvbiA9IGNhbmNlbEJ1dHRvbi5wdHIo
KTsKKyAgICBjb250YWluZXItPmluc2VydEJlZm9yZShXVEY6Om1vdmUoY2FuY2VsQnV0dG9uKSwg
dGV4dFdyYXBwZXItPm5leHRTaWJsaW5nKCksIElHTk9SRV9FWENFUFRJT04pOwogfQogCiBIVE1M
RWxlbWVudCogU2VhcmNoSW5wdXRUeXBlOjpyZXN1bHRzQnV0dG9uRWxlbWVudCgpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKaW5kZXggZWFlM2RiMjll
ZWUzYzJkZTk1ZmU3MTgwYzU0NmZmOGU3ZTJhNzY3ZS4uMTM2ZjA5NzUxYjVkYTYxMDAwNjE2NDli
NTViNTQ5YWM5ZDIzNDJiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0Rmll
bGRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRU
eXBlLmNwcApAQCAtMjc0LDcgKzI3NCw3IEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVh
dGVTaGFkb3dTdWJ0cmVlKCkKICAgICBtX2lubmVyVGV4dCA9IFRleHRDb250cm9sSW5uZXJUZXh0
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKIAogICAgIGlmICghY3JlYXRlc0NvbnRhaW5lcikg
ewotICAgICAgICBlbGVtZW50KCkudXNlckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZCht
X2lubmVyVGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgICAgIGVsZW1lbnQoKS51c2VyQWdl
bnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKCptX2lubmVyVGV4dCwgSUdOT1JFX0VYQ0VQVElP
Tik7CiAgICAgICAgIHVwZGF0ZVBsYWNlaG9sZGVyVGV4dCgpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQpAQCAtMjg0LDcgKzI4NCw3IEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVT
aGFkb3dTdWJ0cmVlKCkKIAogICAgIGlmIChzaG91bGRIYXZlU3BpbkJ1dHRvbikgewogICAgICAg
ICBtX2lubmVyU3BpbkJ1dHRvbiA9IFNwaW5CdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQs
ICp0aGlzKTsKLSAgICAgICAgbV9jb250YWluZXItPmFwcGVuZENoaWxkKG1faW5uZXJTcGluQnV0
dG9uLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgbV9jb250YWluZXItPmFwcGVuZENoaWxk
KCptX2lubmVyU3BpbkJ1dHRvbiwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgfQogCiAgICAgaWYg
KHNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRvcikgewpAQCAtMjk0LDcgKzI5NCw3IEBAIHZvaWQg
VGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKICAgICAgICAgYm9vbCBz
aG91bGREcmF3Q2Fwc0xvY2tJbmRpY2F0b3IgPSB0aGlzLT5zaG91bGREcmF3Q2Fwc0xvY2tJbmRp
Y2F0b3IoKTsKICAgICAgICAgbV9jYXBzTG9ja0luZGljYXRvci0+c2V0SW5saW5lU3R5bGVQcm9w
ZXJ0eShDU1NQcm9wZXJ0eURpc3BsYXksIHNob3VsZERyYXdDYXBzTG9ja0luZGljYXRvciA/IENT
U1ZhbHVlQmxvY2sgOiBDU1NWYWx1ZU5vbmUsIHRydWUpOwogCi0gICAgICAgIG1fY29udGFpbmVy
LT5hcHBlbmRDaGlsZChtX2NhcHNMb2NrSW5kaWNhdG9yLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAg
ICAgICAgbV9jb250YWluZXItPmFwcGVuZENoaWxkKCptX2NhcHNMb2NrSW5kaWNhdG9yLCBJR05P
UkVfRVhDRVBUSU9OKTsKICAgICB9CiAKICAgICB1cGRhdGVBdXRvRmlsbEJ1dHRvbigpOwpAQCAt
NDYxLDcgKzQ2MSw3IEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjp1cGRhdGVQbGFjZWhvbGRl
clRleHQoKQogICAgIFN0cmluZyBwbGFjZWhvbGRlclRleHQgPSBlbGVtZW50KCkuc3RyaXBwZWRQ
bGFjZWhvbGRlcigpOwogICAgIGlmIChwbGFjZWhvbGRlclRleHQuaXNFbXB0eSgpKSB7CiAgICAg
ICAgIGlmIChtX3BsYWNlaG9sZGVyKSB7Ci0gICAgICAgICAgICBtX3BsYWNlaG9sZGVyLT5wYXJl
bnROb2RlKCktPnJlbW92ZUNoaWxkKG1fcGxhY2Vob2xkZXIuZ2V0KCksIEFTU0VSVF9OT19FWENF
UFRJT04pOworICAgICAgICAgICAgbV9wbGFjZWhvbGRlci0+cGFyZW50Tm9kZSgpLT5yZW1vdmVD
aGlsZCgqbV9wbGFjZWhvbGRlciwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgICAgICAgICBt
X3BsYWNlaG9sZGVyID0gbnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm47CkBAIC00
NzAsNyArNDcwLDcgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OnVwZGF0ZVBsYWNlaG9sZGVy
VGV4dCgpCiAgICAgICAgIG1fcGxhY2Vob2xkZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGVs
ZW1lbnQoKS5kb2N1bWVudCgpKTsKICAgICAgICAgbV9wbGFjZWhvbGRlci0+c2V0UHNldWRvKEF0
b21pY1N0cmluZygiLXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAgICAgbV9wbGFjZWhvbGRlci0+c2V0SW5saW5lU3R5
bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eURpc3BsYXksIGVsZW1lbnQoKS5pc1BsYWNlaG9sZGVyVmlz
aWJsZSgpID8gQ1NTVmFsdWVCbG9jayA6IENTU1ZhbHVlTm9uZSwgdHJ1ZSk7Ci0gICAgICAgIGVs
ZW1lbnQoKS51c2VyQWdlbnRTaGFkb3dSb290KCktPmluc2VydEJlZm9yZShtX3BsYWNlaG9sZGVy
LCBtX2NvbnRhaW5lciA/IG1fY29udGFpbmVyLmdldCgpIDogaW5uZXJUZXh0RWxlbWVudCgpLCBB
U1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgZWxlbWVudCgpLnVzZXJBZ2VudFNoYWRvd1Jv
b3QoKS0+aW5zZXJ0QmVmb3JlKCptX3BsYWNlaG9sZGVyLCBtX2NvbnRhaW5lciA/IG1fY29udGFp
bmVyLmdldCgpIDogaW5uZXJUZXh0RWxlbWVudCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAg
ICAgICAgCiAgICAgfQogICAgIG1fcGxhY2Vob2xkZXItPnNldElubmVyVGV4dChwbGFjZWhvbGRl
clRleHQsIEFTU0VSVF9OT19FWENFUFRJT04pOwpAQCAtNjAwLDEwICs2MDAsMTAgQEAgdm9pZCBU
ZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZUNvbnRhaW5lcigpCiAgICAgbV9jb250YWluZXItPnNl
dFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtdGV4dGZpZWxkLWRlY29yYXRpb24tY29udGFp
bmVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogCiAgICAgbV9pbm5l
ckJsb2NrID0gVGV4dENvbnRyb2xJbm5lckVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCkuZG9jdW1l
bnQoKSk7Ci0gICAgbV9pbm5lckJsb2NrLT5hcHBlbmRDaGlsZChtX2lubmVyVGV4dCwgSUdOT1JF
X0VYQ0VQVElPTik7Ci0gICAgbV9jb250YWluZXItPmFwcGVuZENoaWxkKG1faW5uZXJCbG9jaywg
SUdOT1JFX0VYQ0VQVElPTik7CisgICAgbV9pbm5lckJsb2NrLT5hcHBlbmRDaGlsZCgqbV9pbm5l
clRleHQsIElHTk9SRV9FWENFUFRJT04pOworICAgIG1fY29udGFpbmVyLT5hcHBlbmRDaGlsZCgq
bV9pbm5lckJsb2NrLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGVsZW1lbnQoKS51c2VyQWdl
bnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKG1fY29udGFpbmVyLCBJR05PUkVfRVhDRVBUSU9O
KTsKKyAgICBlbGVtZW50KCkudXNlckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZCgqbV9j
b250YWluZXIsIElHTk9SRV9FWENFUFRJT04pOwogfQogCiB2b2lkIFRleHRGaWVsZElucHV0VHlw
ZTo6Y3JlYXRlQXV0b0ZpbGxCdXR0b24oKQpAQCAtNjEyLDcgKzYxMiw3IEBAIHZvaWQgVGV4dEZp
ZWxkSW5wdXRUeXBlOjpjcmVhdGVBdXRvRmlsbEJ1dHRvbigpCiAKICAgICBtX2F1dG9GaWxsQnV0
dG9uID0gQXV0b0ZpbGxCdXR0b25FbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLmRvY3VtZW50KCks
ICp0aGlzKTsKICAgICBtX2F1dG9GaWxsQnV0dG9uLT5zZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCIt
d2Via2l0LWF1dG8tZmlsbC1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7Ci0gICAgbV9jb250YWluZXItPmFwcGVuZENoaWxkKG1fYXV0b0ZpbGxCdXR0b24sIElH
Tk9SRV9FWENFUFRJT04pOworICAgIG1fY29udGFpbmVyLT5hcHBlbmRDaGlsZCgqbV9hdXRvRmls
bEJ1dHRvbiwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CiAKIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBl
Ojp1cGRhdGVBdXRvRmlsbEJ1dHRvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1ZhbGlkYXRpb25NZXNzYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1l
c3NhZ2UuY3BwCmluZGV4IGY2MWUxYjVlZmUyNzA5MzFkYWIwZWMyZWVkZjBmMzRiZDc3ODJiOTYu
LjkwNjI5NWUxOThmNzg0NTY1NjEyYWE1MmNiOWU2YWM0ZDUzMGZhZGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCkBAIC0xODAsMzIgKzE4MCwzMiBAQCB2b2lk
IFZhbGlkYXRpb25NZXNzYWdlOjpidWlsZEJ1YmJsZVRyZWUoKQogICAgIC8vIE5lZWQgdG8gZm9y
Y2UgcG9zaXRpb246YWJzb2x1dGUgYmVjYXVzZSBSZW5kZXJNZW51TGlzdCBkb2Vzbid0IGFzc3Vt
ZSBpdAogICAgIC8vIGNvbnRhaW5zIG5vbi1hYnNvbHV0ZSBvciBub24tZml4ZWQgcmVuZGVyZXJz
IGFzIGNoaWxkcmVuLgogICAgIG1fYnViYmxlLT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1By
b3BlcnR5UG9zaXRpb24sIENTU1ZhbHVlQWJzb2x1dGUpOwotICAgIHNoYWRvd1Jvb3QuYXBwZW5k
Q2hpbGQobV9idWJibGUuZ2V0KCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIHNoYWRvd1Jv
b3QuYXBwZW5kQ2hpbGQoKm1fYnViYmxlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICBkb2N1
bWVudC51cGRhdGVMYXlvdXQoKTsKICAgICBhZGp1c3RCdWJibGVQb3NpdGlvbihtX2VsZW1lbnQt
PnJlbmRlcmVyKCktPmFic29sdXRlQm91bmRpbmdCb3hSZWN0KCksIG1fYnViYmxlLmdldCgpKTsK
IAotICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gY2xpcHBlciA9IEhUTUxEaXZFbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQpOworICAgIFJlZjxIVE1MRGl2RWxlbWVudD4gY2xpcHBlciA9IEhUTUxE
aXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGNsaXBwZXItPnNldFBzZXVkbyhBdG9t
aWNTdHJpbmcoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtYXJyb3ctY2xpcHBlciIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBSZWZQdHI8SFRNTERpdkVsZW1l
bnQ+IGJ1YmJsZUFycm93ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAg
UmVmPEhUTUxEaXZFbGVtZW50PiBidWJibGVBcnJvdyA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQpOwogICAgIGJ1YmJsZUFycm93LT5zZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Vi
a2l0LXZhbGlkYXRpb24tYnViYmxlLWFycm93IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOwotICAgIGNsaXBwZXItPmFwcGVuZENoaWxkKGJ1YmJsZUFycm93LnJlbGVhc2Uo
KSwgQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0gICAgbV9idWJibGUtPmFwcGVuZENoaWxkKGNsaXBw
ZXIucmVsZWFzZSgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBjbGlwcGVyLT5hcHBlbmRD
aGlsZChXVEY6Om1vdmUoYnViYmxlQXJyb3cpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBt
X2J1YmJsZS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNsaXBwZXIpLCBBU1NFUlRfTk9fRVhDRVBU
SU9OKTsKIAotICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gbWVzc2FnZSA9IEhUTUxEaXZFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIFJlZjxIVE1MRWxlbWVudD4gbWVzc2FnZSA9IEhUTUxE
aXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIG1lc3NhZ2UtPnNldFBzZXVkbyhBdG9t
aWNTdHJpbmcoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtbWVzc2FnZSIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IGljb24g
PSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBSZWY8SFRNTEVsZW1lbnQ+
IGljb24gPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBpY29uLT5zZXRQ
c2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLWljb24iLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgbWVzc2FnZS0+YXBwZW5kQ2hp
bGQoaWNvbi5yZWxlYXNlKCksIEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgIFJlZlB0cjxIVE1M
RWxlbWVudD4gdGV4dEJsb2NrID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Cisg
ICAgbWVzc2FnZS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGljb24pLCBBU1NFUlRfTk9fRVhDRVBU
SU9OKTsKKyAgICBSZWY8SFRNTEVsZW1lbnQ+IHRleHRCbG9jayA9IEhUTUxEaXZFbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQpOwogICAgIHRleHRCbG9jay0+c2V0UHNldWRvKEF0b21pY1N0cmluZygi
LXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS10ZXh0LWJsb2NrIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIG1fbWVzc2FnZUhlYWRpbmcgPSBIVE1MRGl2RWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBtX21lc3NhZ2VIZWFkaW5nLT5zZXRQc2V1ZG8oQXRv
bWljU3RyaW5nKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLWhlYWRpbmciLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgdGV4dEJsb2NrLT5hcHBlbmRDaGlsZCht
X21lc3NhZ2VIZWFkaW5nLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICB0ZXh0QmxvY2stPmFw
cGVuZENoaWxkKCptX21lc3NhZ2VIZWFkaW5nLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICBt
X21lc3NhZ2VCb2R5ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgbV9t
ZXNzYWdlQm9keS0+c2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC12YWxpZGF0aW9uLWJ1
YmJsZS1ib2R5IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIHRl
eHRCbG9jay0+YXBwZW5kQ2hpbGQobV9tZXNzYWdlQm9keSwgQVNTRVJUX05PX0VYQ0VQVElPTik7
Ci0gICAgbWVzc2FnZS0+YXBwZW5kQ2hpbGQodGV4dEJsb2NrLnJlbGVhc2UoKSwgQVNTRVJUX05P
X0VYQ0VQVElPTik7Ci0gICAgbV9idWJibGUtPmFwcGVuZENoaWxkKG1lc3NhZ2UucmVsZWFzZSgp
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICB0ZXh0QmxvY2stPmFwcGVuZENoaWxkKCptX21l
c3NhZ2VCb2R5LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBtZXNzYWdlLT5hcHBlbmRDaGls
ZChXVEY6Om1vdmUodGV4dEJsb2NrKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgbV9idWJi
bGUtPmFwcGVuZENoaWxkKFdURjo6bW92ZShtZXNzYWdlKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7
CiAKICAgICBzZXRNZXNzYWdlRE9NQW5kU3RhcnRUaW1lcigpOwogCkBAIC0yMzcsNyArMjM3LDcg
QEAgdm9pZCBWYWxpZGF0aW9uTWVzc2FnZTo6ZGVsZXRlQnViYmxlVHJlZSgpCiAgICAgaWYgKG1f
YnViYmxlKSB7CiAgICAgICAgIG1fbWVzc2FnZUhlYWRpbmcgPSBudWxscHRyOwogICAgICAgICBt
X21lc3NhZ2VCb2R5ID0gbnVsbHB0cjsKLSAgICAgICAgbV9lbGVtZW50LT51c2VyQWdlbnRTaGFk
b3dSb290KCktPnJlbW92ZUNoaWxkKG1fYnViYmxlLmdldCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKKyAgICAgICAgbV9lbGVtZW50LT51c2VyQWdlbnRTaGFkb3dSb290KCktPnJlbW92ZUNoaWxk
KCptX2J1YmJsZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgICAgIG1fYnViYmxlID0gbnVs
bHB0cjsKICAgICB9CiAgICAgbV9tZXNzYWdlID0gU3RyaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKaW5kZXggOWU0ODNh
OTlkNDU4OTBlMDY3NmM3ZjhhMjY4ZmJiYTRkNDA1NDBjMi4uMjJjZTMzOWQzNDgyNTg0ZmNmMTNm
NGNhZWVkOGEwYjQ1NmZmYTdkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcApAQCAtODA3LDIxICs4MDcsMjEgQEAgdm9pZCBN
ZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ6OnJlYnVpbGRUcmFja0xp
c3RNZW51KCkKICAgICBDYXB0aW9uVXNlclByZWZlcmVuY2VzKiBjYXB0aW9uUHJlZmVyZW5jZXMg
PSBkb2N1bWVudCgpLnBhZ2UoKS0+Z3JvdXAoKS5jYXB0aW9uUHJlZmVyZW5jZXMoKTsKICAgICBW
ZWN0b3I8UmVmUHRyPFRleHRUcmFjaz4+IHRyYWNrc0Zvck1lbnUgPSBjYXB0aW9uUHJlZmVyZW5j
ZXMtPnNvcnRlZFRyYWNrTGlzdEZvck1lbnUodHJhY2tMaXN0KTsKIAotICAgIFJlZlB0cjxFbGVt
ZW50PiBjYXB0aW9uc0hlYWRlciA9IGRvY3VtZW50KCkuY3JlYXRlRWxlbWVudChoM1RhZywgQVNT
RVJUX05PX0VYQ0VQVElPTik7CisgICAgUmVmPEVsZW1lbnQ+IGNhcHRpb25zSGVhZGVyID0gZG9j
dW1lbnQoKS5jcmVhdGVFbGVtZW50KGgzVGFnLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICBj
YXB0aW9uc0hlYWRlci0+YXBwZW5kQ2hpbGQoZG9jdW1lbnQoKS5jcmVhdGVUZXh0Tm9kZSh0ZXh0
VHJhY2tTdWJ0aXRsZXNUZXh0KCkpKTsKLSAgICBhcHBlbmRDaGlsZChjYXB0aW9uc0hlYWRlcik7
Ci0gICAgUmVmUHRyPEVsZW1lbnQ+IGNhcHRpb25zTWVudUxpc3QgPSBkb2N1bWVudCgpLmNyZWF0
ZUVsZW1lbnQodWxUYWcsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIGFwcGVuZENoaWxkKFdU
Rjo6bW92ZShjYXB0aW9uc0hlYWRlcikpOworICAgIFJlZjxFbGVtZW50PiBjYXB0aW9uc01lbnVM
aXN0ID0gZG9jdW1lbnQoKS5jcmVhdGVFbGVtZW50KHVsVGFnLCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDAsIGxlbmd0aCA9IHRyYWNrc0Zvck1lbnUuc2l6
ZSgpOyBpIDwgbGVuZ3RoOyArK2kpIHsKICAgICAgICAgUmVmUHRyPFRleHRUcmFjaz4gdGV4dFRy
YWNrID0gdHJhY2tzRm9yTWVudVtpXTsKLSAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IG1lbnVJdGVt
ID0gZG9jdW1lbnQoKS5jcmVhdGVFbGVtZW50KGxpVGFnLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsK
KyAgICAgICAgUmVmPEVsZW1lbnQ+IG1lbnVJdGVtID0gZG9jdW1lbnQoKS5jcmVhdGVFbGVtZW50
KGxpVGFnLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICAgICAgbWVudUl0ZW0tPmFwcGVuZENo
aWxkKGRvY3VtZW50KCkuY3JlYXRlVGV4dE5vZGUoY2FwdGlvblByZWZlcmVuY2VzLT5kaXNwbGF5
TmFtZUZvclRyYWNrKHRleHRUcmFjay5nZXQoKSkpKTsKLSAgICAgICAgY2FwdGlvbnNNZW51TGlz
dC0+YXBwZW5kQ2hpbGQobWVudUl0ZW0pOwotICAgICAgICBtX21lbnVJdGVtcy5hcHBlbmQobWVu
dUl0ZW0pOwotICAgICAgICBtX21lbnVUb1RyYWNrTWFwLmFkZChtZW51SXRlbSwgdGV4dFRyYWNr
KTsKKyAgICAgICAgY2FwdGlvbnNNZW51TGlzdC0+YXBwZW5kQ2hpbGQobWVudUl0ZW0uY29weVJl
ZigpKTsKKyAgICAgICAgbV9tZW51SXRlbXMuYXBwZW5kKG1lbnVJdGVtLnB0cigpKTsKKyAgICAg
ICAgbV9tZW51VG9UcmFja01hcC5hZGQobWVudUl0ZW0ucHRyKCksIHRleHRUcmFjayk7CiAgICAg
fQogCi0gICAgYXBwZW5kQ2hpbGQoY2FwdGlvbnNNZW51TGlzdCk7CisgICAgYXBwZW5kQ2hpbGQo
V1RGOjptb3ZlKGNhcHRpb25zTWVudUxpc3QpKTsKICNlbmRpZgogfQogCkBAIC0xMTg2LDE2ICsx
MTg2LDE2IEBAIHZvaWQgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6dXBk
YXRlRGlzcGxheSgpCiAgICAgICAgICAgICAvLyB0cmFjayBjdWUgcmVnaW9uIGlkZW50aWZpZXIs
IHJ1biB0aGUgZm9sbG93aW5nIHN1YnN0ZXBzOgogICAgICAgICAgICAgaWYgKGRpc3BsYXlCb3gt
Pmhhc0NoaWxkTm9kZXMoKSAmJiAhY29udGFpbnMoZGlzcGxheUJveC5nZXQoKSkpIHsKICAgICAg
ICAgICAgICAgICAvLyBOb3RlOiB0aGUgZGlzcGxheSB0cmVlIG9mIGEgY3VlIGlzIHJlbW92ZWQg
d2hlbiB0aGUgYWN0aXZlIGZsYWcgb2YgdGhlIGN1ZSBpcyB1bnNldC4KLSAgICAgICAgICAgICAg
ICBhcHBlbmRDaGlsZChkaXNwbGF5Qm94LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAg
ICAgICAgICBhcHBlbmRDaGlsZCgqZGlzcGxheUJveCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAg
ICAgICAgICAgICAgICAgY3VlLT5zZXRGb250U2l6ZShtX2ZvbnRTaXplLCBtX3ZpZGVvRGlzcGxh
eVNpemUuc2l6ZSgpLCBtX2ZvbnRTaXplSXNJbXBvcnRhbnQpOwogICAgICAgICAgICAgfQogICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgLy8gTGV0IHJlZ2lvbiBiZSB0aGUgV2ViVlRUIHJl
Z2lvbiB3aG9zZSByZWdpb24gaWRlbnRpZmllcgogICAgICAgICAgICAgLy8gbWF0Y2hlcyB0aGUg
dGV4dCB0cmFjayBjdWUgcmVnaW9uIGlkZW50aWZpZXIgb2YgY3VlLgotICAgICAgICAgICAgUmVm
UHRyPEhUTUxEaXZFbGVtZW50PiByZWdpb25Ob2RlID0gcmVnaW9uLT5nZXREaXNwbGF5VHJlZSgp
OworICAgICAgICAgICAgUmVmPEhUTUxEaXZFbGVtZW50PiByZWdpb25Ob2RlID0gcmVnaW9uLT5n
ZXREaXNwbGF5VHJlZSgpOwogCiAgICAgICAgICAgICAvLyBBcHBlbmQgdGhlIHJlZ2lvbiB0byB0
aGUgdmlld3BvcnQsIGlmIGl0IHdhcyBub3QgYWxyZWFkeS4KLSAgICAgICAgICAgIGlmICghY29u
dGFpbnMocmVnaW9uTm9kZS5nZXQoKSkpCisgICAgICAgICAgICBpZiAoIWNvbnRhaW5zKHJlZ2lv
bk5vZGUucHRyKCkpKQogICAgICAgICAgICAgICAgIGFwcGVuZENoaWxkKHJlZ2lvbi0+Z2V0RGlz
cGxheVRyZWUoKSk7CiAKICAgICAgICAgICAgIHJlZ2lvbi0+YXBwZW5kVGV4dFRyYWNrQ3VlQm94
KGRpc3BsYXlCb3gpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVk
aWFDb250cm9scy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xz
LmNwcAppbmRleCAzZGQ2ZGU4NmRhMWZjY2QxZmUxYTA2MDg1M2Q0NzEyM2E0YTcwZDk4Li45ZGY5
OThmMWE5ODdiYzkyZmY3ODg0ZDU1MzMxODYyYTE1Y2I5YjIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmNwcApAQCAtMzgwLDE0ICszODAsMTQgQEAgdm9p
ZCBNZWRpYUNvbnRyb2xzOjpjcmVhdGVUZXh0VHJhY2tEaXNwbGF5KCkKICAgICBpZiAobV90ZXh0
RGlzcGxheUNvbnRhaW5lcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVmUHRyPE1lZGlhQ29u
dHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ+IHRleHREaXNwbGF5Q29udGFpbmVyID0gTWVk
aWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwot
ICAgIG1fdGV4dERpc3BsYXlDb250YWluZXIgPSB0ZXh0RGlzcGxheUNvbnRhaW5lci5nZXQoKTsK
KyAgICBSZWY8TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudD4gdGV4dERpc3Bs
YXlDb250YWluZXIgPSBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQoKSk7CisgICAgbV90ZXh0RGlzcGxheUNvbnRhaW5lciA9IHRleHREaXNwbGF5
Q29udGFpbmVyLnB0cigpOwogCiAgICAgaWYgKG1fbWVkaWFDb250cm9sbGVyKQogICAgICAgICBt
X3RleHREaXNwbGF5Q29udGFpbmVyLT5zZXRNZWRpYUNvbnRyb2xsZXIobV9tZWRpYUNvbnRyb2xs
ZXIpOwogCiAgICAgLy8gSW5zZXJ0IGl0IGJlZm9yZSB0aGUgZmlyc3QgY29udHJvbGxlciBlbGVt
ZW50IHNvIGl0IGFsd2F5cyBkaXNwbGF5cyBiZWhpbmQgdGhlIGNvbnRyb2xzLgotICAgIGluc2Vy
dEJlZm9yZSh0ZXh0RGlzcGxheUNvbnRhaW5lci5yZWxlYXNlKCksIG1fcGFuZWwsIElHTk9SRV9F
WENFUFRJT04pOworICAgIGluc2VydEJlZm9yZShXVEY6Om1vdmUodGV4dERpc3BsYXlDb250YWlu
ZXIpLCBtX3BhbmVsLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KIAogdm9pZCBNZWRpYUNvbnRyb2xz
OjpzaG93VGV4dFRyYWNrRGlzcGxheSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9NZWRpYUNvbnRyb2xzQXBwbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sc0FwcGxlLmNwcAppbmRleCA4ZmRiYTBkMDM0ODUwM2EyYTZlOGUwZDBl
ODY0N2U5M2Y5NjY0ZjgzLi4wOTI1NmQ1YjRlZGE3YzhmOTYzOWViZTI5NzJhNzhmMDhhMjZkOGZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQXBw
bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNBcHBs
ZS5jcHAKQEAgLTYzLDE2NSArNjMsMTY1IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9scz4gTWVk
aWFDb250cm9sczo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIFBhc3NSZWZQdHI8TWVkaWFD
b250cm9sc0FwcGxlPiBNZWRpYUNvbnRyb2xzQXBwbGU6OmNyZWF0ZUNvbnRyb2xzKERvY3VtZW50
JiBkb2N1bWVudCkKIHsKICAgICBpZiAoIWRvY3VtZW50LnBhZ2UoKSkKLSAgICAgICAgcmV0dXJu
IDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbHNB
cHBsZT4gY29udHJvbHMgPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sc0FwcGxlKGRvY3VtZW50
KSk7CiAKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxFbGVtZW50PiBwYW5lbCA9IE1lZGlh
Q29udHJvbFBhbmVsRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBSZWY8TWVkaWFDb250
cm9sUGFuZWxFbGVtZW50PiBwYW5lbCA9IE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWM7CiAKLSAgICBSZWZQdHI8TWVkaWFD
b250cm9sUmV3aW5kQnV0dG9uRWxlbWVudD4gcmV3aW5kQnV0dG9uID0gTWVkaWFDb250cm9sUmV3
aW5kQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBjb250cm9scy0+bV9yZXdp
bmRCdXR0b24gPSByZXdpbmRCdXR0b24uZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKHJl
d2luZEJ1dHRvbi5yZWxlYXNlKCksIGVjKTsKKyAgICBSZWY8TWVkaWFDb250cm9sUmV3aW5kQnV0
dG9uRWxlbWVudD4gcmV3aW5kQnV0dG9uID0gTWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBjb250cm9scy0+bV9yZXdpbmRCdXR0b24gPSByZXdp
bmRCdXR0b24ucHRyKCk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdURjo6bW92ZShyZXdpbmRC
dXR0b24pLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ+
IHBsYXlCdXR0b24gPSBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KTsKLSAgICBjb250cm9scy0+bV9wbGF5QnV0dG9uID0gcGxheUJ1dHRvbi5nZXQoKTsKLSAg
ICBwYW5lbC0+YXBwZW5kQ2hpbGQocGxheUJ1dHRvbi5yZWxlYXNlKCksIGVjKTsKKyAgICBSZWY8
TWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ+IHBsYXlCdXR0b24gPSBNZWRpYUNvbnRyb2xQ
bGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBjb250cm9scy0+bV9wbGF5
QnV0dG9uID0gcGxheUJ1dHRvbi5wdHIoKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGOjpt
b3ZlKHBsYXlCdXR0b24pLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sUmV0dXJuVG9S
ZWFsdGltZUJ1dHRvbkVsZW1lbnQ+IHJldHVyblRvUmVhbHRpbWVCdXR0b24gPSBNZWRpYUNvbnRy
b2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBj
b250cm9scy0+bV9yZXR1cm5Ub1JlYWxUaW1lQnV0dG9uID0gcmV0dXJuVG9SZWFsdGltZUJ1dHRv
bi5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQocmV0dXJuVG9SZWFsdGltZUJ1dHRvbi5y
ZWxlYXNlKCksIGVjKTsKKyAgICBSZWY8TWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRv
bkVsZW1lbnQ+IHJldHVyblRvUmVhbHRpbWVCdXR0b24gPSBNZWRpYUNvbnRyb2xSZXR1cm5Ub1Jl
YWx0aW1lQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBjb250cm9scy0+bV9y
ZXR1cm5Ub1JlYWxUaW1lQnV0dG9uID0gcmV0dXJuVG9SZWFsdGltZUJ1dHRvbi5wdHIoKTsKKyAg
ICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHJldHVyblRvUmVhbHRpbWVCdXR0b24pLCBl
Yyk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKICAgICBpZiAoZG9jdW1lbnQucGFnZSgpLT50aGVtZSgpLnVzZXNNZWRpYUNvbnRyb2xT
dGF0dXNEaXNwbGF5KCkpIHsKLSAgICAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFN0YXR1c0Rpc3Bs
YXlFbGVtZW50PiBzdGF0dXNEaXNwbGF5ID0gTWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgICAgIGNvbnRyb2xzLT5tX3N0YXR1c0Rpc3BsYXkg
PSBzdGF0dXNEaXNwbGF5LmdldCgpOwotICAgICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoc3RhdHVz
RGlzcGxheS5yZWxlYXNlKCksIGVjKTsKKyAgICAgICAgUmVmPE1lZGlhQ29udHJvbFN0YXR1c0Rp
c3BsYXlFbGVtZW50PiBzdGF0dXNEaXNwbGF5ID0gTWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgICAgIGNvbnRyb2xzLT5tX3N0YXR1c0Rpc3Bs
YXkgPSBzdGF0dXNEaXNwbGF5LnB0cigpOworICAgICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RG
Ojptb3ZlKHN0YXR1c0Rpc3BsYXkpLCBlYyk7CiAgICAgICAgIGlmIChlYykKLSAgICAgICAgICAg
IHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgUmVm
UHRyPE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudD4gdGltZWxpbmVDb250YWlu
ZXIgPSBNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCk7CisgICAgUmVmPE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudD4gdGltZWxp
bmVDb250YWluZXIgPSBNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCk7CiAKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5
RWxlbWVudD4gY3VycmVudFRpbWVEaXNwbGF5ID0gTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNw
bGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBjb250cm9scy0+bV9jdXJyZW50VGlt
ZURpc3BsYXkgPSBjdXJyZW50VGltZURpc3BsYXkuZ2V0KCk7Ci0gICAgdGltZWxpbmVDb250YWlu
ZXItPmFwcGVuZENoaWxkKGN1cnJlbnRUaW1lRGlzcGxheS5yZWxlYXNlKCksIGVjKTsKKyAgICBS
ZWY8TWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudD4gY3VycmVudFRpbWVEaXNw
bGF5ID0gTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KTsKKyAgICBjb250cm9scy0+bV9jdXJyZW50VGltZURpc3BsYXkgPSBjdXJyZW50VGltZURp
c3BsYXkucHRyKCk7CisgICAgdGltZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKFdURjo6bW92
ZShjdXJyZW50VGltZURpc3BsYXkpLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sVGlt
ZWxpbmVFbGVtZW50PiB0aW1lbGluZSA9IE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50LCBjb250cm9scy5nZXQoKSk7Ci0gICAgY29udHJvbHMtPm1fdGltZWxpbmUg
PSB0aW1lbGluZS5nZXQoKTsKLSAgICB0aW1lbGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQodGlt
ZWxpbmUucmVsZWFzZSgpLCBlYyk7CisgICAgUmVmPE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVu
dD4gdGltZWxpbmUgPSBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCwgY29udHJvbHMuZ2V0KCkpOworICAgIGNvbnRyb2xzLT5tX3RpbWVsaW5lID0gdGltZWxpbmUu
cHRyKCk7CisgICAgdGltZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKFdURjo6bW92ZSh0aW1l
bGluZSksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxh
eUVsZW1lbnQ+IHRpbWVSZW1haW5pbmdEaXNwbGF5ID0gTWVkaWFDb250cm9sVGltZVJlbWFpbmlu
Z0Rpc3BsYXlFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNvbnRyb2xzLT5tX3RpbWVS
ZW1haW5pbmdEaXNwbGF5ID0gdGltZVJlbWFpbmluZ0Rpc3BsYXkuZ2V0KCk7Ci0gICAgdGltZWxp
bmVDb250YWluZXItPmFwcGVuZENoaWxkKHRpbWVSZW1haW5pbmdEaXNwbGF5LnJlbGVhc2UoKSwg
ZWMpOworICAgIFJlZjxNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ+IHRp
bWVSZW1haW5pbmdEaXNwbGF5ID0gTWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNvbnRyb2xzLT5tX3RpbWVSZW1haW5pbmdEaXNw
bGF5ID0gdGltZVJlbWFpbmluZ0Rpc3BsYXkucHRyKCk7CisgICAgdGltZWxpbmVDb250YWluZXIt
PmFwcGVuZENoaWxkKFdURjo6bW92ZSh0aW1lUmVtYWluaW5nRGlzcGxheSksIGVjKTsKICAgICBp
ZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAg
IGNvbnRyb2xzLT5tX3RpbWVsaW5lQ29udGFpbmVyID0gdGltZWxpbmVDb250YWluZXIuZ2V0KCk7
Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKHRpbWVsaW5lQ29udGFpbmVyLnJlbGVhc2UoKSwgZWMp
OworICAgIGNvbnRyb2xzLT5tX3RpbWVsaW5lQ29udGFpbmVyID0gdGltZWxpbmVDb250YWluZXIu
cHRyKCk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdURjo6bW92ZSh0aW1lbGluZUNvbnRhaW5l
ciksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAogICAgIC8vIEZJWE1FOiBPbmx5IGNyZWF0ZSB3aGVuIG5lZWRlZCA8aHR0cDov
L3dlYmtpdC5vcmcvYi81NzE2Mz4KLSAgICBSZWZQdHI8TWVkaWFDb250cm9sU2Vla0JhY2tCdXR0
b25FbGVtZW50PiBzZWVrQmFja0J1dHRvbiA9IE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBjb250cm9scy0+bV9zZWVrQmFja0J1dHRvbiA9
IHNlZWtCYWNrQnV0dG9uLmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChzZWVrQmFja0J1
dHRvbi5yZWxlYXNlKCksIGVjKTsKKyAgICBSZWY8TWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25F
bGVtZW50PiBzZWVrQmFja0J1dHRvbiA9IE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBjb250cm9scy0+bV9zZWVrQmFja0J1dHRvbiA9IHNl
ZWtCYWNrQnV0dG9uLnB0cigpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoc2Vl
a0JhY2tCdXR0b24pLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBGSVhNRTogT25seSBjcmVhdGUgd2hlbiBuZWVk
ZWQgPGh0dHA6Ly93ZWJraXQub3JnL2IvNTcxNjM+Ci0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFNl
ZWtGb3J3YXJkQnV0dG9uRWxlbWVudD4gc2Vla0ZvcndhcmRCdXR0b24gPSBNZWRpYUNvbnRyb2xT
ZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJvbHMt
Pm1fc2Vla0ZvcndhcmRCdXR0b24gPSBzZWVrRm9yd2FyZEJ1dHRvbi5nZXQoKTsKLSAgICBwYW5l
bC0+YXBwZW5kQ2hpbGQoc2Vla0ZvcndhcmRCdXR0b24ucmVsZWFzZSgpLCBlYyk7CisgICAgUmVm
PE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudD4gc2Vla0ZvcndhcmRCdXR0b24g
PSBNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7
CisgICAgY29udHJvbHMtPm1fc2Vla0ZvcndhcmRCdXR0b24gPSBzZWVrRm9yd2FyZEJ1dHRvbi5w
dHIoKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHNlZWtGb3J3YXJkQnV0dG9u
KSwgZWMpOwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBu
dWxscHRyOwogCiAgICAgaWYgKGRvY3VtZW50LnBhZ2UoKS0+dGhlbWUoKS5zdXBwb3J0c0Nsb3Nl
ZENhcHRpb25pbmcoKSkgewotICAgICAgICBSZWZQdHI8TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlv
bnNDb250YWluZXJFbGVtZW50PiBjbG9zZWRDYXB0aW9uc0NvbnRhaW5lciA9IE1lZGlhQ29udHJv
bENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICAg
ICAgUmVmPE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudD4gY2xvc2Vk
Q2FwdGlvbnNDb250YWluZXIgPSBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAKLSAgICAgICAgUmVmUHRyPE1lZGlhQ29udHJvbENs
b3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudD4gY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QgPSBN
ZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCwgY29udHJvbHMuZ2V0KCkpOwotICAgICAgICBjb250cm9scy0+bV9jbG9zZWRDYXB0aW9uc1Ry
YWNrTGlzdCA9IGNsb3NlZENhcHRpb25zVHJhY2tMaXN0LmdldCgpOwotICAgICAgICBjbG9zZWRD
YXB0aW9uc0NvbnRhaW5lci0+YXBwZW5kQ2hpbGQoY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QucmVs
ZWFzZSgpLCBlYyk7CisgICAgICAgIFJlZjxNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNr
TGlzdEVsZW1lbnQ+IGNsb3NlZENhcHRpb25zVHJhY2tMaXN0ID0gTWVkaWFDb250cm9sQ2xvc2Vk
Q2FwdGlvbnNUcmFja0xpc3RFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgp
KTsKKyAgICAgICAgY29udHJvbHMtPm1fY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QgPSBjbG9zZWRD
YXB0aW9uc1RyYWNrTGlzdC5wdHIoKTsKKyAgICAgICAgY2xvc2VkQ2FwdGlvbnNDb250YWluZXIt
PmFwcGVuZENoaWxkKFdURjo6bW92ZShjbG9zZWRDYXB0aW9uc1RyYWNrTGlzdCksIGVjKTsKICAg
ICAgICAgaWYgKGVjKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAotICAgICAgICBSZWZQdHI8TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlv
bnNCdXR0b25FbGVtZW50PiB0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbiA9IE1lZGlhQ29udHJv
bFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBjb250
cm9scy5nZXQoKSk7Ci0gICAgICAgIGNvbnRyb2xzLT5tX3RvZ2dsZUNsb3NlZENhcHRpb25zQnV0
dG9uID0gdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24uZ2V0KCk7Ci0gICAgICAgIHBhbmVsLT5h
cHBlbmRDaGlsZCh0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbi5yZWxlYXNlKCksIGVjKTsKKyAg
ICAgICAgUmVmPE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudD4g
dG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24gPSBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0
aW9uc0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOworICAg
ICAgICBjb250cm9scy0+bV90b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbiA9IHRvZ2dsZUNsb3Nl
ZENhcHRpb25zQnV0dG9uLnB0cigpOworICAgICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGOjpt
b3ZlKHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uKSwgZWMpOwogICAgICAgICBpZiAoZWMpCi0g
ICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAg
ICAgIGNvbnRyb2xzLT5tX2Nsb3NlZENhcHRpb25zQ29udGFpbmVyID0gY2xvc2VkQ2FwdGlvbnND
b250YWluZXIuZ2V0KCk7Ci0gICAgICAgIGNvbnRyb2xzLT5hcHBlbmRDaGlsZChjbG9zZWRDYXB0
aW9uc0NvbnRhaW5lci5yZWxlYXNlKCksIGVjKTsKKyAgICAgICAgY29udHJvbHMtPm1fY2xvc2Vk
Q2FwdGlvbnNDb250YWluZXIgPSBjbG9zZWRDYXB0aW9uc0NvbnRhaW5lci5wdHIoKTsKKyAgICAg
ICAgY29udHJvbHMtPmFwcGVuZENoaWxkKFdURjo6bW92ZShjbG9zZWRDYXB0aW9uc0NvbnRhaW5l
ciksIGVjKTsKICAgICAgICAgaWYgKGVjKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICAvLyBGSVhNRTogT25seSBjcmVhdGUg
d2hlbiBuZWVkZWQgPGh0dHA6Ly93ZWJraXQub3JnL2IvNTcxNjM+Ci0gICAgUmVmUHRyPE1lZGlh
Q29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50PiBmdWxsU2NyZWVuQnV0dG9uID0gTWVkaWFD
b250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgY29u
dHJvbHMtPm1fZnVsbFNjcmVlbkJ1dHRvbiA9IGZ1bGxTY3JlZW5CdXR0b24uZ2V0KCk7Ci0gICAg
cGFuZWwtPmFwcGVuZENoaWxkKGZ1bGxTY3JlZW5CdXR0b24ucmVsZWFzZSgpLCBlYyk7CisgICAg
UmVmPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50PiBmdWxsU2NyZWVuQnV0dG9u
ID0gTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7
CisgICAgY29udHJvbHMtPm1fZnVsbFNjcmVlbkJ1dHRvbiA9IGZ1bGxTY3JlZW5CdXR0b24ucHRy
KCk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdURjo6bW92ZShmdWxsU2NyZWVuQnV0dG9uKSwg
ZWMpOwogCiAgICAgLy8gVGhlIG11dGUgYnV0dG9uIGFuZCB0aGUgc2xpZGVyIGVsZW1lbnQgc2hv
dWxkIGJlIGluIHRoZSBzYW1lIGRpdi4KLSAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IHBhbmVs
Vm9sdW1lQ29udHJvbENvbnRhaW5lciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQp
OworICAgIFJlZjxIVE1MRGl2RWxlbWVudD4gcGFuZWxWb2x1bWVDb250cm9sQ29udGFpbmVyID0g
SFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAKICAgICBpZiAoZG9jdW1lbnQucGFn
ZSgpLT50aGVtZSgpLnVzZXNNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXIoKSkgewotICAgICAgICBS
ZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudD4gdm9sdW1lU2xp
ZGVyQ29udGFpbmVyID0gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50KTsKKyAgICAgICAgUmVmPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNv
bnRhaW5lckVsZW1lbnQ+IHZvbHVtZVNsaWRlckNvbnRhaW5lciA9IE1lZGlhQ29udHJvbFZvbHVt
ZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAKLSAgICAgICAgUmVm
UHRyPE1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xpZGVyRWxlbWVudD4gc2xpZGVyID0gTWVkaWFD
b250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgICAg
ICBjb250cm9scy0+bV92b2x1bWVTbGlkZXIgPSBzbGlkZXIuZ2V0KCk7Ci0gICAgICAgIHZvbHVt
ZVNsaWRlckNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoc2xpZGVyLnJlbGVhc2UoKSwgZWMpOworICAg
ICAgICBSZWY8TWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50PiBzbGlkZXIgPSBN
ZWRpYUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Cisg
ICAgICAgIGNvbnRyb2xzLT5tX3ZvbHVtZVNsaWRlciA9IHNsaWRlci5wdHIoKTsKKyAgICAgICAg
dm9sdW1lU2xpZGVyQ29udGFpbmVyLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoc2xpZGVyKSwgZWMp
OwogICAgICAgICBpZiAoZWMpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJl
dHVybiBudWxscHRyOwogCiAgICAgICAgIC8vIFRoaXMgaXMgYSBkdXBsaWNhdGUgbXV0ZSBidXR0
b24sIHdoaWNoIGlzIHZpc2libGUgaW4gc29tZSBwb3J0cyBhdCB0aGUgYm90dG9tIG9mIHRoZSB2
b2x1bWUgYmFyLgogICAgICAgICAvLyBJdCdzIGltcG9ydGFudCBvbmx5IHdoZW4gdGhlIHZvbHVt
ZSBiYXIgaXMgZGlzcGxheWVkIGJlbG93IHRoZSBjb250cm9scy4KLSAgICAgICAgUmVmUHRyPE1l
ZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50PiB2b2x1bWVTbGlkZXJNdXRl
QnV0dG9uID0gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCk7Ci0gICAgICAgIGNvbnRyb2xzLT5tX3ZvbHVtZVNsaWRlck11dGVCdXR0b24g
PSB2b2x1bWVTbGlkZXJNdXRlQnV0dG9uLmdldCgpOwotICAgICAgICB2b2x1bWVTbGlkZXJDb250
YWluZXItPmFwcGVuZENoaWxkKHZvbHVtZVNsaWRlck11dGVCdXR0b24ucmVsZWFzZSgpLCBlYyk7
CisgICAgICAgIFJlZjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudD4g
dm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbiA9IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0
b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgICAgICBjb250cm9scy0+bV92b2x1bWVT
bGlkZXJNdXRlQnV0dG9uID0gdm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbi5wdHIoKTsKKyAgICAgICAg
dm9sdW1lU2xpZGVyQ29udGFpbmVyLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUodm9sdW1lU2xpZGVy
TXV0ZUJ1dHRvbiksIGVjKTsKIAogICAgICAgICBpZiAoZWMpCi0gICAgICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgICAgIGNvbnRyb2xzLT5tX3Zv
bHVtZVNsaWRlckNvbnRhaW5lciA9IHZvbHVtZVNsaWRlckNvbnRhaW5lci5nZXQoKTsKLSAgICAg
ICAgcGFuZWxWb2x1bWVDb250cm9sQ29udGFpbmVyLT5hcHBlbmRDaGlsZCh2b2x1bWVTbGlkZXJD
b250YWluZXIucmVsZWFzZSgpLCBlYyk7CisgICAgICAgIGNvbnRyb2xzLT5tX3ZvbHVtZVNsaWRl
ckNvbnRhaW5lciA9IHZvbHVtZVNsaWRlckNvbnRhaW5lci5wdHIoKTsKKyAgICAgICAgcGFuZWxW
b2x1bWVDb250cm9sQ29udGFpbmVyLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUodm9sdW1lU2xpZGVy
Q29udGFpbmVyKSwgZWMpOwogICAgICAgICBpZiAoZWMpCi0gICAgICAgICAgICByZXR1cm4gMDsK
KyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIFJlZlB0cjxNZWRpYUNv
bnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50PiBwYW5lbE11dGVCdXR0b24gPSBNZWRpYUNvbnRy
b2xQYW5lbE11dGVCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgp
KTsKLSAgICBjb250cm9scy0+bV9wYW5lbE11dGVCdXR0b24gPSBwYW5lbE11dGVCdXR0b24uZ2V0
KCk7Ci0gICAgcGFuZWxWb2x1bWVDb250cm9sQ29udGFpbmVyLT5hcHBlbmRDaGlsZChwYW5lbE11
dGVCdXR0b24ucmVsZWFzZSgpLCBlYyk7CisgICAgUmVmPE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1
dHRvbkVsZW1lbnQ+IHBhbmVsTXV0ZUJ1dHRvbiA9IE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRv
bkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOworICAgIGNvbnRyb2xz
LT5tX3BhbmVsTXV0ZUJ1dHRvbiA9IHBhbmVsTXV0ZUJ1dHRvbi5wdHIoKTsKKyAgICBwYW5lbFZv
bHVtZUNvbnRyb2xDb250YWluZXItPmFwcGVuZENoaWxkKFdURjo6bW92ZShwYW5lbE11dGVCdXR0
b24pLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQocGFuZWxWb2x1bWVDb250cm9sQ29u
dGFpbmVyLCBlYyk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdURjo6bW92ZShwYW5lbFZvbHVt
ZUNvbnRyb2xDb250YWluZXIpLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBGSVhNRTogT25seSBjcmVhdGUgd2hl
biBuZWVkZWQgPGh0dHA6Ly93ZWJraXQub3JnL2IvNTcxNjM+Ci0gICAgUmVmUHRyPE1lZGlhQ29u
dHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50PiBmdWxsU2NyZWVuTWluVm9sdW1l
QnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJvbHMtPm1fZnVsbFNjcmVlbk1pblZvbHVtZUJ1dHRv
biA9IGZ1bGxTY3JlZW5NaW5Wb2x1bWVCdXR0b24uZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENo
aWxkKGZ1bGxTY3JlZW5NaW5Wb2x1bWVCdXR0b24ucmVsZWFzZSgpLCBlYyk7CisgICAgUmVmPE1l
ZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50PiBmdWxsU2NyZWVuTWlu
Vm9sdW1lQnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgY29udHJvbHMtPm1fZnVsbFNjcmVlbk1pblZvbHVt
ZUJ1dHRvbiA9IGZ1bGxTY3JlZW5NaW5Wb2x1bWVCdXR0b24ucHRyKCk7CisgICAgcGFuZWwtPmFw
cGVuZENoaWxkKFdURjo6bW92ZShmdWxsU2NyZWVuTWluVm9sdW1lQnV0dG9uKSwgZWMpOwogICAg
IGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0g
ICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50PiBmdWxs
U2NyZWVuVm9sdW1lU2xpZGVyID0gTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJvbHMtPm1fZnVsbFNjcmVlblZvbHVt
ZVNsaWRlciA9IGZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXIuZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVu
ZENoaWxkKGZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXIucmVsZWFzZSgpLCBlYyk7CisgICAgUmVmPE1l
ZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50PiBmdWxsU2NyZWVuVm9sdW1l
U2xpZGVyID0gTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCk7CisgICAgY29udHJvbHMtPm1fZnVsbFNjcmVlblZvbHVtZVNsaWRlciA9IGZ1
bGxTY3JlZW5Wb2x1bWVTbGlkZXIucHRyKCk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdURjo6
bW92ZShmdWxsU2NyZWVuVm9sdW1lU2xpZGVyKSwgZWMpOwogICAgIGlmIChlYykKLSAgICAgICAg
cmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgUmVmUHRyPE1lZGlhQ29u
dHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50PiBmdWxsU2NyZWVuTWF4Vm9sdW1l
QnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJvbHMtPm1fZnVsbFNjcmVlbk1heFZvbHVtZUJ1dHRv
biA9IGZ1bGxTY3JlZW5NYXhWb2x1bWVCdXR0b24uZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENo
aWxkKGZ1bGxTY3JlZW5NYXhWb2x1bWVCdXR0b24ucmVsZWFzZSgpLCBlYyk7CisgICAgUmVmPE1l
ZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50PiBmdWxsU2NyZWVuTWF4
Vm9sdW1lQnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgY29udHJvbHMtPm1fZnVsbFNjcmVlbk1heFZvbHVt
ZUJ1dHRvbiA9IGZ1bGxTY3JlZW5NYXhWb2x1bWVCdXR0b24ucHRyKCk7CisgICAgcGFuZWwtPmFw
cGVuZENoaWxkKFdURjo6bW92ZShmdWxsU2NyZWVuTWF4Vm9sdW1lQnV0dG9uKSwgZWMpOwogICAg
IGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0g
ICAgY29udHJvbHMtPm1fcGFuZWwgPSBwYW5lbC5nZXQoKTsKLSAgICBjb250cm9scy0+YXBwZW5k
Q2hpbGQocGFuZWwucmVsZWFzZSgpLCBlYyk7CisgICAgY29udHJvbHMtPm1fcGFuZWwgPSBwYW5l
bC5wdHIoKTsKKyAgICBjb250cm9scy0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHBhbmVsKSwgZWMp
OwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRy
OwogCiAgICAgcmV0dXJuIGNvbnRyb2xzLnJlbGVhc2UoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCmluZGV4IDUyY2FjMDUwYzk0
NjI5NmMyNmYxYWMzNTZjYTY5ZWY3NTFiMTIxYzguLjJjYWM2ZjRjODgwODkyMjY4NjNlMzVlMTJl
YmQ5ODYxM2U1NzNmNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Ns
aWRlclRodW1iRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xp
ZGVyVGh1bWJFbGVtZW50LmNwcApAQCAtNjEyLDcgKzYxMiw3IEBAIGNvbnN0IEF0b21pY1N0cmlu
ZyYgU2xpZGVyVGh1bWJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiAgICAgfQogfQog
Ci1SZWZQdHI8RWxlbWVudD4gU2xpZGVyVGh1bWJFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0
QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCkKK1JlZjxFbGVt
ZW50PiBTbGlkZXJUaHVtYkVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5k
Q2hpbGRyZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50KQogewogICAgIHJldHVybiBjcmVhdGUo
dGFyZ2V0RG9jdW1lbnQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvU2xpZGVyVGh1bWJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlk
ZXJUaHVtYkVsZW1lbnQuaAppbmRleCA0OGVjZDU1MjZkMGIwYTU3ODE2MGY3MmQ4MjYyYjJmMTdi
ZmU2YWI4Li5jZjJmODVhN2VkZGY3OTRlNzg1ZGY3NmJhYzA5ZjkzODY1NWZkMjExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaApAQCAtNjIs
NyArNjIsNyBAQCBwcml2YXRlOgogICAgIFNsaWRlclRodW1iRWxlbWVudChEb2N1bWVudCYpOwog
CiAgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJp
ZGU7Ci0gICAgdmlydHVhbCBSZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJp
YnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPEVs
ZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQm
KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNEaXNhYmxlZEZvcm1Db250cm9sKCkgY29u
c3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIG1hdGNoZXNSZWFkV3JpdGVQc2V1ZG9DbGFz
cygpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgRWxlbWVudCogZm9jdXNEZWxlZ2F0ZSgp
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0lt
YWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcAppbmRleCBhNDRhNWRlMDY5MmEx
NmIzYjQ5ZGI4NzQxMTk1YmFhYWRlN2Y1OTZjLi5jNDRjNTE4ODJjYjgxODc4NjFiNjZiNTZjZmM1
YTljMjI4ZTJhZWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMv
SW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcApAQCAtODUsMTIgKzg1
LDEzIEBAIFJlZlB0cjxJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQ+IEltYWdlQ29udHJvbHNSb290
RWxlbWVudDo6bWF5YmVDcmVhdGUoRG9jdW1lbnQmCiAgICAgaWYgKCFkb2N1bWVudC5wYWdlKCkp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgUmVmUHRyPEltYWdlQ29udHJvbHNSb290
RWxlbWVudE1hYz4gY29udHJvbHMgPSBhZG9wdFJlZigqbmV3IEltYWdlQ29udHJvbHNSb290RWxl
bWVudE1hYyhkb2N1bWVudCkpOworICAgIFJlZjxJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWM+
IGNvbnRyb2xzID0gYWRvcHRSZWYoKm5ldyBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMoZG9j
dW1lbnQpKTsKICAgICBjb250cm9scy0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6Y2xhc3NBdHRy
LCAieC13ZWJraXQtaW1hZ2UtY29udHJvbHMiKTsKIAotICAgIGNvbnRyb2xzLT5hcHBlbmRDaGls
ZChJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYzo6bWF5YmVDcmVhdGUoZG9jdW1lbnQpKTsK
KyAgICBpZiAoUmVmUHRyPEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjPiBidXR0b24gPSBJ
bWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYzo6bWF5YmVDcmVhdGUoZG9jdW1lbnQpKQorICAg
ICAgICBjb250cm9scy0+YXBwZW5kQ2hpbGQoYnV0dG9uLnJlbGVhc2VOb25OdWxsKCkpOwogCi0g
ICAgcmV0dXJuIGNvbnRyb2xzLnJlbGVhc2UoKTsKKyAgICByZXR1cm4gV1RGOjptb3ZlKGNvbnRy
b2xzKTsKIH0KIAogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjOjpJbWFnZUNvbnRyb2xzUm9v
dEVsZW1lbnRNYWMoRG9jdW1lbnQmIGRvY3VtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9WVFRDdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRD
dWUuY3BwCmluZGV4IGE5NjkwZDZmOTk2MTlmMzcwOWE2YjhhMjVkNmJmZTMxNTM1MGFhZWQuLjlk
NmNhNzJkYThkODE1Yjc3ZjA1OThmOGQ5ZjIzMTIzOWI5ZjU2OTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1ZUVEN1ZS5jcHAKQEAgLTQ5Niw3ICs0OTYsNyBAQCB2b2lkIFZUVEN1ZTo6Y29weVdl
YlZUVE5vZGVUb0RPTVRyZWUoQ29udGFpbmVyTm9kZSogd2ViVlRUTm9kZSwgQ29udGFpbmVyTm9k
ZSogcAogICAgICAgICAgICAgY2xvbmVkTm9kZSA9IGRvd25jYXN0PFdlYlZUVEVsZW1lbnQ+KCpu
b2RlKS5jcmVhdGVFcXVpdmFsZW50SFRNTEVsZW1lbnQob3duZXJEb2N1bWVudCgpKTsKICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgY2xvbmVkTm9kZSA9IG5vZGUtPmNsb25lTm9kZShmYWxzZSk7
Ci0gICAgICAgIHBhcmVudC0+YXBwZW5kQ2hpbGQoY2xvbmVkTm9kZSwgQVNTRVJUX05PX0VYQ0VQ
VElPTik7CisgICAgICAgIHBhcmVudC0+YXBwZW5kQ2hpbGQoKmNsb25lZE5vZGUsIEFTU0VSVF9O
T19FWENFUFRJT04pOwogICAgICAgICBpZiAoaXM8Q29udGFpbmVyTm9kZT4oKm5vZGUpKQogICAg
ICAgICAgICAgY29weVdlYlZUVE5vZGVUb0RPTVRyZWUoZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4o
bm9kZSksIGRvd25jYXN0PENvbnRhaW5lck5vZGU+KGNsb25lZE5vZGUuZ2V0KCkpKTsKICAgICB9
CkBAIC01MTgsMTAgKzUxOCwxMCBAQCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFZUVEN1
ZTo6Y3JlYXRlQ3VlUmVuZGVyaW5nVHJlZSgpCiAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IGNsb25lZEZyYWdtZW50OwogICAgIGNyZWF0ZVdlYlZUVE5vZGVUcmVlKCk7CiAgICAgaWYgKCFt
X3dlYlZUVE5vZGVUcmVlKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKICAgICBjbG9uZWRGcmFnbWVudCA9IERvY3VtZW50RnJhZ21lbnQ6OmNyZWF0ZShvd25l
ckRvY3VtZW50KCkpOwotICAgIG1fd2ViVlRUTm9kZVRyZWUtPmNsb25lQ2hpbGROb2RlcyhjbG9u
ZWRGcmFnbWVudC5nZXQoKSk7CisgICAgbV93ZWJWVFROb2RlVHJlZS0+Y2xvbmVDaGlsZE5vZGVz
KCpjbG9uZWRGcmFnbWVudCk7CiAgICAgcmV0dXJuIGNsb25lZEZyYWdtZW50LnJlbGVhc2UoKTsK
IH0KIApAQCAtNzg1LDcgKzc4NSw3IEBAIHZvaWQgVlRUQ3VlOjp1cGRhdGVEaXNwbGF5VHJlZShj
b25zdCBNZWRpYVRpbWUmIG1vdmllVGltZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbWFya0Z1
dHVyZUFuZFBhc3ROb2RlcyhyZWZlcmVuY2VUcmVlLmdldCgpLCBzdGFydE1lZGlhVGltZSgpLCBt
b3ZpZVRpbWUpOwotICAgIG1fY3VlSGlnaGxpZ2h0Qm94LT5hcHBlbmRDaGlsZChyZWZlcmVuY2VU
cmVlKTsKKyAgICBtX2N1ZUhpZ2hsaWdodEJveC0+YXBwZW5kQ2hpbGQocmVmZXJlbmNlVHJlZS5y
ZWxlYXNlTm9uTnVsbCgpKTsKIH0KIAogVlRUQ3VlQm94KiBWVFRDdWU6OmdldERpc3BsYXlUcmVl
KGNvbnN0IEludFNpemUmIHZpZGVvU2l6ZSwgaW50IGZvbnRTaXplKQpAQCAtODEyLDggKzgxMiw4
IEBAIFZUVEN1ZUJveCogVlRUQ3VlOjpnZXREaXNwbGF5VHJlZShjb25zdCBJbnRTaXplJiB2aWRl
b1NpemUsIGludCBmb250U2l6ZSkKICAgICBtX2N1ZUhpZ2hsaWdodEJveC0+c2V0UHNldWRvKGN1
ZVNoYWRvd1BzZXVkb0lkKCkpOwogCiAgICAgbV9jdWVCYWNrZHJvcEJveC0+c2V0UHNldWRvKGN1
ZUJhY2tkcm9wU2hhZG93UHNldWRvSWQoKSk7Ci0gICAgbV9jdWVCYWNrZHJvcEJveC0+YXBwZW5k
Q2hpbGQobV9jdWVIaWdobGlnaHRCb3gsIEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgIGRpc3Bs
YXlUcmVlLT5hcHBlbmRDaGlsZChtX2N1ZUJhY2tkcm9wQm94LCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKKyAgICBtX2N1ZUJhY2tkcm9wQm94LT5hcHBlbmRDaGlsZCgqbV9jdWVIaWdobGlnaHRCb3gs
IEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIGRpc3BsYXlUcmVlLT5hcHBlbmRDaGlsZCgqbV9j
dWVCYWNrZHJvcEJveCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKICAgICAvLyBGSVhNRShCVUcg
Nzk5MTYpOiBSdW5zIG9mIGNoaWxkcmVuIG9mIFdlYlZUVCBSdWJ5IE9iamVjdHMgdGhhdCBhcmUg
bm90CiAgICAgLy8gV2ViVlRUIFJ1YnkgVGV4dCBPYmplY3RzIG11c3QgYmUgd3JhcHBlZCBpbiBh
bm9ueW1vdXMgYm94ZXMgd2hvc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svVlRUUmVnaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmNw
cAppbmRleCBjY2IzMmUwMzlkNWM1M2FmZWVjMDUwMmI2NWUwMGFjMWU2ZmZkZWYzLi44NTc5ODY4
ZTk4MWZmYmYyOTE2NjJiNjU0ZDUzZWI5YWRmYmRiYjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9WVFRSZWdpb24uY3BwCkBAIC0zNTQsNyArMzU0LDcgQEAgdm9pZCBWVFRSZWdpb246OmFw
cGVuZFRleHRUcmFja0N1ZUJveChQYXNzUmVmUHRyPFZUVEN1ZUJveD4gZGlzcGxheUJveCkKICAg
ICBpZiAobV9jdWVDb250YWluZXItPmNvbnRhaW5zKGRpc3BsYXlCb3guZ2V0KCkpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBtX2N1ZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoZGlzcGxheUJveCwg
QVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgbV9jdWVDb250YWluZXItPmFwcGVuZENoaWxkKCpk
aXNwbGF5Qm94LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICBkaXNwbGF5TGFzdFRleHRUcmFj
a0N1ZUJveCgpOwogfQogCkBAIC00MDQsMTQgKzQwNCwxNCBAQCB2b2lkIFZUVFJlZ2lvbjo6d2ls
bFJlbW92ZVRleHRUcmFja0N1ZUJveChWVFRDdWVCb3gqIGJveCkKICAgICBtX2N1ZUNvbnRhaW5l
ci0+c2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eVRvcCwgbV9jdXJyZW50VG9wLCBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BYKTsKIH0KIAotUGFzc1JlZlB0cjxIVE1MRGl2RWxlbWVu
dD4gVlRUUmVnaW9uOjpnZXREaXNwbGF5VHJlZSgpCitIVE1MRGl2RWxlbWVudCYgVlRUUmVnaW9u
OjpnZXREaXNwbGF5VHJlZSgpCiB7CiAgICAgaWYgKCFtX3JlZ2lvbkRpc3BsYXlUcmVlKSB7CiAg
ICAgICAgIG1fcmVnaW9uRGlzcGxheVRyZWUgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKCpvd25l
ckRvY3VtZW50KCkpOwogICAgICAgICBwcmVwYXJlUmVnaW9uRGlzcGxheVRyZWUoKTsKICAgICB9
CiAKLSAgICByZXR1cm4gbV9yZWdpb25EaXNwbGF5VHJlZTsKKyAgICByZXR1cm4gKm1fcmVnaW9u
RGlzcGxheVRyZWU7CiB9CiAKIHZvaWQgVlRUUmVnaW9uOjpwcmVwYXJlUmVnaW9uRGlzcGxheVRy
ZWUoKQpAQCAtNDUzLDcgKzQ1Myw3IEBAIHZvaWQgVlRUUmVnaW9uOjpwcmVwYXJlUmVnaW9uRGlz
cGxheVRyZWUoKQogICAgIG1fY3VlQ29udGFpbmVyLT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENT
U1Byb3BlcnR5VG9wLCAwLjBmLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BYKTsKIAogICAgIG1f
Y3VlQ29udGFpbmVyLT5zZXRQc2V1ZG8odGV4dFRyYWNrQ3VlQ29udGFpbmVyU2hhZG93UHNldWRv
SWQoKSk7Ci0gICAgbV9yZWdpb25EaXNwbGF5VHJlZS0+YXBwZW5kQ2hpbGQobV9jdWVDb250YWlu
ZXIpOworICAgIG1fcmVnaW9uRGlzcGxheVRyZWUtPmFwcGVuZENoaWxkKCptX2N1ZUNvbnRhaW5l
cik7CiAKICAgICAvLyA3LjUgRXZlcnkgV2ViVlRUIHJlZ2lvbiBvYmplY3QgaXMgaW5pdGlhbGlz
ZWQgd2l0aCB0aGUgZm9sbG93aW5nIENTUwogICAgIG1fcmVnaW9uRGlzcGxheVRyZWUtPnNldFBz
ZXVkbyh0ZXh0VHJhY2tSZWdpb25TaGFkb3dQc2V1ZG9JZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1ZUVFJlZ2lvbi5oCmluZGV4IDc3NzFlOGViMDA4NTdiZjQzMmMxY2Q1NGI0ODYxNzczNmQw
NGU2NWQuLjg5MjVhZjFiYzM3MjA1ZWIwN2E1YTdiOGU4Y2Y2OTcyMTgwY2EwNTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24uaApAQCAtODksNyArODksNyBAQCBwdWJsaWM6CiAK
ICAgICBib29sIGlzU2Nyb2xsaW5nUmVnaW9uKCkgeyByZXR1cm4gbV9zY3JvbGw7IH0KIAotICAg
IFBhc3NSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IGdldERpc3BsYXlUcmVlKCk7CisgICAgSFRNTERp
dkVsZW1lbnQmIGdldERpc3BsYXlUcmVlKCk7CiAgICAgCiAgICAgdm9pZCBhcHBlbmRUZXh0VHJh
Y2tDdWVCb3goUGFzc1JlZlB0cjxWVFRDdWVCb3g+KTsKICAgICB2b2lkIGRpc3BsYXlMYXN0VGV4
dFRyYWNrQ3VlQm94KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dl
YlZUVEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50
LmNwcAppbmRleCA0YTJmMzFiM2U1NjM0ZjMxMDJmZjU0ZWJmMGZhMGQ5NjZhOTU3YTBlLi4xNDk2
YmIwM2E2YTUwMGY1Yjc5NjE0MGQ1OTBjM2Q5NWZlZmIyMjBjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5jcHAKQEAgLTgwLDExICs4MCwxMSBAQCBSZWY8V2Vi
VlRURWxlbWVudD4gV2ViVlRURWxlbWVudDo6Y3JlYXRlKFdlYlZUVE5vZGVUeXBlIG5vZGVUeXBl
LCBEb2N1bWVudCYgZG9jdQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlZUVEVsZW1lbnQo
bm9kZVR5cGUsIGRvY3VtZW50KSk7CiB9CiAKLVJlZlB0cjxFbGVtZW50PiBXZWJWVFRFbGVtZW50
OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50JiB0YXJn
ZXREb2N1bWVudCkKK1JlZjxFbGVtZW50PiBXZWJWVFRFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRo
b3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCkKIHsKLSAg
ICBSZWZQdHI8V2ViVlRURWxlbWVudD4gY2xvbmUgPSBjcmVhdGUoc3RhdGljX2Nhc3Q8V2ViVlRU
Tm9kZVR5cGU+KG1fd2ViVlRUTm9kZVR5cGUpLCB0YXJnZXREb2N1bWVudCk7CisgICAgUmVmPFdl
YlZUVEVsZW1lbnQ+IGNsb25lID0gY3JlYXRlKHN0YXRpY19jYXN0PFdlYlZUVE5vZGVUeXBlPiht
X3dlYlZUVE5vZGVUeXBlKSwgdGFyZ2V0RG9jdW1lbnQpOwogICAgIGNsb25lLT5zZXRMYW5ndWFn
ZShtX2xhbmd1YWdlKTsKLSAgICByZXR1cm4gY2xvbmU7CisgICAgcmV0dXJuIFdURjo6bW92ZShj
bG9uZSk7CiB9CiAKIFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IFdlYlZUVEVsZW1lbnQ6OmNyZWF0
ZUVxdWl2YWxlbnRIVE1MRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5oCmluZGV4IDFiZTc2MzZjMzY2M2Q4NThiZDc2MzZh
ZWNjYzE5YjcwNmRmYzZiOGMuLjg5ZDNkMmM1NGRiYzZiOWU1MjA2MmZmNGYyYWNmNzQ5OGI5ZmM3
YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5oCkBAIC00OSw3
ICs0OSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYlZUVEVsZW1lbnQ+IGNyZWF0ZShj
b25zdCBXZWJWVFROb2RlVHlwZSwgRG9jdW1lbnQmKTsKICAgICBQYXNzUmVmUHRyPEhUTUxFbGVt
ZW50PiBjcmVhdGVFcXVpdmFsZW50SFRNTEVsZW1lbnQoRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1
YWwgUmVmUHRyPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRy
ZW4oRG9jdW1lbnQmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxFbGVtZW50PiBjbG9uZUVs
ZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50Jikgb3ZlcnJpZGU7CiAK
ICAgICB2b2lkIHNldFdlYlZUVE5vZGVUeXBlKFdlYlZUVE5vZGVUeXBlIHR5cGUpIHsgbV93ZWJW
VFROb2RlVHlwZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPih0eXBlKTsgfQogICAgIFdlYlZUVE5v
ZGVUeXBlIHdlYlZUVE5vZGVUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViVlRU
Tm9kZVR5cGU+KG1fd2ViVlRUTm9kZVR5cGUpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNTU0FnZW50LmNwcAppbmRleCBiNmEzMTEzZWY3ZDY3OTk0MDVlYWEzMTQz
MDYzZjhiYmFkZWEwMmI1Li44NTdhZDE5MTc2NzU2N2E1YmExNzViNjljY2FmMjE0ZjQ2MDYyYmMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAK
QEAgLTc5Niw3ICs3OTYsNyBAQCBJbnNwZWN0b3JTdHlsZVNoZWV0KiBJbnNwZWN0b3JDU1NBZ2Vu
dDo6Y3JlYXRlSW5zcGVjdG9yU3R5bGVTaGVldEZvckRvY3VtZW50KERvYwogICAgIC8vIFNldCB0
aGlzIGZsYWcsIHNvIHdoZW4gd2UgY3JlYXRlIGl0LCB3ZSBwdXQgaXQgaW50byB0aGUgdmlhIGlu
c3BlY3RvciBtYXAuCiAgICAgbV9jcmVhdGluZ1ZpYUluc3BlY3RvclN0eWxlU2hlZXQgPSB0cnVl
OwogICAgIElubGluZVN0eWxlT3ZlcnJpZGVTY29wZSBvdmVycmlkZVNjb3BlKGRvY3VtZW50KTsK
LSAgICB0YXJnZXROb2RlLT5hcHBlbmRDaGlsZChzdHlsZUVsZW1lbnQsIGVjKTsKKyAgICB0YXJn
ZXROb2RlLT5hcHBlbmRDaGlsZChzdHlsZUVsZW1lbnQucmVsZWFzZU5vbk51bGwoKSwgZWMpOwog
ICAgIG1fY3JlYXRpbmdWaWFJbnNwZWN0b3JTdHlsZVNoZWV0ID0gZmFsc2U7CiAgICAgaWYgKGVj
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxl
ci5jcHAKaW5kZXggY2ViNGFhMWE1MTZmNDdkNTY5ODAxYjU2NjBkNzlmM2U2OTMyN2MyZi4uYzRk
OTYzZWE4NmY0YThmNmE0NjMxYWVlMDQ3YzA3ODZkOGY5ZTI0NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTEzOCw3ICsxMzgsNyBAQCBzdGF0aWMgUGFzc1JlZlB0
cjxEb2N1bWVudEZyYWdtZW50PiBkb2N1bWVudEZyYWdtZW50RnJvbURyYWdEYXRhKERyYWdEYXRh
JiBkcmFnRAogICAgICAgICAgICAgU3RyaW5nIHRpdGxlOwogICAgICAgICAgICAgU3RyaW5nIHVy
bCA9IGRyYWdEYXRhLmFzVVJMKERyYWdEYXRhOjpEb05vdENvbnZlcnRGaWxlbmFtZXMsICZ0aXRs
ZSk7CiAgICAgICAgICAgICBpZiAoIXVybC5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICBS
ZWZQdHI8SFRNTEFuY2hvckVsZW1lbnQ+IGFuY2hvciA9IEhUTUxBbmNob3JFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQpOworICAgICAgICAgICAgICAgIFJlZjxIVE1MQW5jaG9yRWxlbWVudD4gYW5j
aG9yID0gSFRNTEFuY2hvckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgICAgICAgICAg
ICAgYW5jaG9yLT5zZXRIcmVmKHVybCk7CiAgICAgICAgICAgICAgICAgaWYgKHRpdGxlLmlzRW1w
dHkoKSkgewogICAgICAgICAgICAgICAgICAgICAvLyBUcnkgdGhlIHBsYWluIHRleHQgZmlyc3Qg
YmVjYXVzZSB0aGUgdXJsIG1pZ2h0IGJlIG5vcm1hbGl6ZWQgb3IgZXNjYXBlZC4KQEAgLTE0Nywy
MCArMTQ3LDE5IEBAIHN0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGRvY3VtZW50
RnJhZ21lbnRGcm9tRHJhZ0RhdGEoRHJhZ0RhdGEmIGRyYWdECiAgICAgICAgICAgICAgICAgICAg
IGlmICh0aXRsZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IHVy
bDsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgUmVmUHRyPE5vZGU+IGFuY2hv
clRleHQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0aXRsZSk7Ci0gICAgICAgICAgICAgICAg
YW5jaG9yLT5hcHBlbmRDaGlsZChhbmNob3JUZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKLSAgICAg
ICAgICAgICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBkb2N1bWVudC5j
cmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAgICAgICAgICAgICAgZnJhZ21lbnQtPmFwcGVu
ZENoaWxkKGFuY2hvciwgSUdOT1JFX0VYQ0VQVElPTik7Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IGZyYWdtZW50LmdldCgpOworICAgICAgICAgICAgICAgIGFuY2hvci0+YXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUodGl0bGUpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAg
ICAgICAgICBSZWY8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBkb2N1bWVudC5jcmVhdGVE
b2N1bWVudEZyYWdtZW50KCk7CisgICAgICAgICAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxk
KFdURjo6bW92ZShhbmNob3IpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gZnJhZ21lbnQucHRyKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAg
ICAgaWYgKGFsbG93UGxhaW5UZXh0ICYmIGRyYWdEYXRhLmNvbnRhaW5zUGxhaW5UZXh0KCkpIHsK
ICAgICAgICAgY2hvc2VQbGFpblRleHQgPSB0cnVlOwotICAgICAgICByZXR1cm4gY3JlYXRlRnJh
Z21lbnRGcm9tVGV4dChjb250ZXh0LCBkcmFnRGF0YS5hc1BsYWluVGV4dCgpKS5nZXQoKTsKKyAg
ICAgICAgcmV0dXJuIGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoY29udGV4dCwgZHJhZ0RhdGEuYXNQ
bGFpblRleHQoKSkucHRyKCk7CiAgICAgfQogCi0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51
bGxwdHI7CiB9CiAKIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OmRyYWdJc01vdmUoRnJhbWVTZWxlY3Rp
b24mIHNlbGVjdGlvbiwgRHJhZ0RhdGEmIGRyYWdEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9pb3MvRnJhbWVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9GcmFt
ZUlPUy5tbQppbmRleCA0NjY3NGZjYmMwM2Y5ZTcyOWQwYjZkMjMzOTVkNTU5ZTUwYTdiMDdiLi5h
M2U3ZThkYmM5Zjg2Y2EwYjQwZWZmYzkwMTY0MGVkMTU2M2YxYmJhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2lvcy9GcmFtZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2lvcy9GcmFtZUlPUy5tbQpAQCAtOTUsOCArOTUsOCBAQCB2b2lkIEZyYW1lOjppbml0V2l0aFNp
bXBsZUhUTUxEb2N1bWVudChjb25zdCBTdHJpbmcmIHN0eWxlLCBjb25zdCBVUkwmIHVybCkKICAg
ICBpZiAoIXN0eWxlLmlzRW1wdHkoKSkKICAgICAgICAgYm9keS0+c2V0QXR0cmlidXRlKEhUTUxO
YW1lczo6c3R5bGVBdHRyLCBzdHlsZSk7CiAKLSAgICByb290RWxlbWVudC0+YXBwZW5kQ2hpbGQo
Ym9keSwgZWMpOwotICAgIGRvY3VtZW50LT5hcHBlbmRDaGlsZChyb290RWxlbWVudCwgZWMpOwor
ICAgIHJvb3RFbGVtZW50LT5hcHBlbmRDaGlsZChib2R5LnJlbGVhc2VOb25OdWxsKCksIGVjKTsK
KyAgICBkb2N1bWVudC0+YXBwZW5kQ2hpbGQocm9vdEVsZW1lbnQucmVsZWFzZU5vbk51bGwoKSwg
ZWMpOwogfQogCiBjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgRnJhbWU6OnZpZXdwb3J0QXJndW1l
bnRzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcAppbmRleCA2
ZjNjYTgzZTg1MzIyMmRmZDVlODA1MjcyZjBmNWM5NDY0MzRkMjI0Li44YWRmY2ZhNDEwYWJlNDdl
MzMyNGFlNWI4ZDkyNDNmNTY2NjQ1ZDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVs
ZW1lbnQuY3BwCkBAIC0xNTYsOSArMTU2LDkgQEAgYm9vbCBTVkdTY3JpcHRFbGVtZW50OjpoYXNT
b3VyY2VBdHRyaWJ1dGUoKSBjb25zdAogICAgIHJldHVybiBoYXNBdHRyaWJ1dGUoWExpbmtOYW1l
czo6aHJlZkF0dHIpOwogfQogCi1SZWZQdHI8RWxlbWVudD4gU1ZHU2NyaXB0RWxlbWVudDo6Y2xv
bmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9j
dW1lbnQpCitSZWY8RWxlbWVudD4gU1ZHU2NyaXB0RWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aG91
dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdTY3JpcHRFbGVtZW50KHRhZ1FOYW1lKCksIHRhcmdldERv
Y3VtZW50LCBmYWxzZSwgYWxyZWFkeVN0YXJ0ZWQoKSkpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFNWR1NjcmlwdEVsZW1lbnQodGFnUU5hbWUoKSwgdGFyZ2V0RG9jdW1lbnQsIGZhbHNlLCBh
bHJlYWR5U3RhcnRlZCgpKSk7CiB9CiAKICNpZm5kZWYgTkRFQlVHCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1NjcmlwdEVsZW1lbnQuaAppbmRleCA0YzFhYTA4ZTZkMmZjOGZmOGRhOTlmNDI3Y2VjN2Q0ZjJj
NjRlMzA1Li41MzVlNDJlNmYwNjQ2ZDgwMTA0MTkwOTNjNjIyOTI0YjM4M2Q3MTAxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKQEAgLTY1LDcgKzY1LDcgQEAgcHJpdmF0ZToK
IAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaExvYWRFdmVudCgpIG92ZXJyaWRlIHsgU1ZHRXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6ZGlzcGF0Y2hMb2FkRXZlbnQodGhpcyk7IH0KIAotICAg
IHZpcnR1YWwgUmVmUHRyPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5k
Q2hpbGRyZW4oRG9jdW1lbnQmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxFbGVtZW50PiBj
bG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50Jikgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUm
KSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgLy8gU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCmluZGV4IDcwNGZlNGEy
Mjk4MmU5YjQwNDQxNTkxMjE3ZDM3NWQ1NTc0ZDUzNWIuLjY0ZTEwYWE2MDA0ZjQ3MDA2MWJmMzVh
NjI5YTA0ZDg4ODcyYjJkNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKQEAg
LTMzMiw3ICszMzIsNyBAQCBzdGF0aWMgdm9pZCByZW1vdmVEaXNhbGxvd2VkRWxlbWVudHNGcm9t
U3VidHJlZShTVkdFbGVtZW50JiBzdWJ0cmVlKQogICAgIGZvciAoYXV0byogZWxlbWVudCA6IGRp
c2FsbG93ZWRFbGVtZW50cykgewogICAgICAgICBmb3IgKGF1dG8mIGRlc2NlbmRhbnQgOiBkZXNj
ZW5kYW50c09mVHlwZTxTVkdFbGVtZW50PigqZWxlbWVudCkpCiAgICAgICAgICAgICBkZXNjZW5k
YW50LnNldENvcnJlc3BvbmRpbmdFbGVtZW50KG51bGxwdHIpOwotICAgICAgICBlbGVtZW50LT5w
YXJlbnROb2RlKCktPnJlbW92ZUNoaWxkKGVsZW1lbnQpOworICAgICAgICBlbGVtZW50LT5wYXJl
bnROb2RlKCktPnJlbW92ZUNoaWxkKCplbGVtZW50KTsKICAgICB9CiB9CiAKQEAgLTQwNSw3ICs0
MDUsNyBAQCBTVkdFbGVtZW50KiBTVkdVc2VFbGVtZW50OjpmaW5kVGFyZ2V0KFN0cmluZyogdGFy
Z2V0SUQpIGNvbnN0CiAKIHZvaWQgU1ZHVXNlRWxlbWVudDo6Y2xvbmVUYXJnZXQoQ29udGFpbmVy
Tm9kZSYgY29udGFpbmVyLCBTVkdFbGVtZW50JiB0YXJnZXQpIGNvbnN0CiB7Ci0gICAgUmVmPFNW
R0VsZW1lbnQ+IHRhcmdldENsb25lID0gc3RhdGljX3BvaW50ZXJfY2FzdDxTVkdFbGVtZW50Pih0
YXJnZXQuY2xvbmVFbGVtZW50V2l0aENoaWxkcmVuKGRvY3VtZW50KCkpKS5yZWxlYXNlTm9uTnVs
bCgpOworICAgIFJlZjxTVkdFbGVtZW50PiB0YXJnZXRDbG9uZSA9IHN0YXRpY19jYXN0PFNWR0Vs
ZW1lbnQmPih0YXJnZXQuY2xvbmVFbGVtZW50V2l0aENoaWxkcmVuKGRvY3VtZW50KCkpLmdldCgp
KTsKICAgICBhc3NvY2lhdGVDbG9uZXNXaXRoT3JpZ2luYWxzKHRhcmdldENsb25lLmdldCgpLCB0
YXJnZXQpOwogICAgIHJlbW92ZURpc2FsbG93ZWRFbGVtZW50c0Zyb21TdWJ0cmVlKHRhcmdldENs
b25lLmdldCgpKTsKICAgICB0cmFuc2ZlclNpemVBdHRyaWJ1dGVzVG9UYXJnZXRDbG9uZSh0YXJn
ZXRDbG9uZS5nZXQoKSk7CkBAIC00MTksNyArNDE5LDcgQEAgc3RhdGljIHZvaWQgY2xvbmVEYXRh
QW5kQ2hpbGRyZW4oU1ZHRWxlbWVudCYgcmVwbGFjZW1lbnRDbG9uZSwgU1ZHRWxlbWVudCYgb3Jp
Z2kKICAgICBBU1NFUlQoIXJlcGxhY2VtZW50Q2xvbmUucGFyZW50Tm9kZSgpKTsKIAogICAgIHJl
cGxhY2VtZW50Q2xvbmUuY2xvbmVEYXRhRnJvbUVsZW1lbnQob3JpZ2luYWxDbG9uZSk7Ci0gICAg
b3JpZ2luYWxDbG9uZS5jbG9uZUNoaWxkTm9kZXMoJnJlcGxhY2VtZW50Q2xvbmUpOworICAgIG9y
aWdpbmFsQ2xvbmUuY2xvbmVDaGlsZE5vZGVzKHJlcGxhY2VtZW50Q2xvbmUpOwogICAgIGFzc29j
aWF0ZVJlcGxhY2VtZW50Q2xvbmVzV2l0aE9yaWdpbmFscyhyZXBsYWNlbWVudENsb25lLCBvcmln
aW5hbENsb25lKTsKICAgICByZW1vdmVEaXNhbGxvd2VkRWxlbWVudHNGcm9tU3VidHJlZShyZXBs
YWNlbWVudENsb25lKTsKIH0KQEAgLTQ0OCw3ICs0NDgsNyBAQCB2b2lkIFNWR1VzZUVsZW1lbnQ6
OmV4cGFuZFVzZUVsZW1lbnRzSW5TaGFkb3dUcmVlKCkgY29uc3QKICAgICAgICAgaWYgKHRhcmdl
dCkKICAgICAgICAgICAgIG9yaWdpbmFsQ2xvbmUuY2xvbmVUYXJnZXQocmVwbGFjZW1lbnRDbG9u
ZS5nZXQoKSwgKnRhcmdldCk7CiAKLSAgICAgICAgb3JpZ2luYWxDbG9uZS5wYXJlbnROb2RlKCkt
PnJlcGxhY2VDaGlsZChyZXBsYWNlbWVudENsb25lLnB0cigpLCAmb3JpZ2luYWxDbG9uZSk7Cisg
ICAgICAgIG9yaWdpbmFsQ2xvbmUucGFyZW50Tm9kZSgpLT5yZXBsYWNlQ2hpbGQocmVwbGFjZW1l
bnRDbG9uZS5jb3B5UmVmKCksIG9yaWdpbmFsQ2xvbmUpOwogCiAgICAgICAgIC8vIFJlc3VtZSBp
dGVyYXRpbmcsIHN0YXJ0aW5nIGp1c3QgaW5zaWRlIHRoZSByZXBsYWNlbWVudCBjbG9uZS4KICAg
ICAgICAgaXQgPSBkZXNjZW5kYW50cy5mcm9tKHJlcGxhY2VtZW50Q2xvbmUuZ2V0KCkpOwpAQCAt
NDcyLDcgKzQ3Miw3IEBAIHZvaWQgU1ZHVXNlRWxlbWVudDo6ZXhwYW5kU3ltYm9sRWxlbWVudHNJ
blNoYWRvd1RyZWUoKSBjb25zdAogICAgICAgICBhdXRvIHJlcGxhY2VtZW50Q2xvbmUgPSBTVkdT
VkdFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CiAgICAgICAgIGNsb25lRGF0YUFuZENoaWxk
cmVuKHJlcGxhY2VtZW50Q2xvbmUuZ2V0KCksIG9yaWdpbmFsQ2xvbmUpOwogCi0gICAgICAgIG9y
aWdpbmFsQ2xvbmUucGFyZW50Tm9kZSgpLT5yZXBsYWNlQ2hpbGQocmVwbGFjZW1lbnRDbG9uZS5w
dHIoKSwgJm9yaWdpbmFsQ2xvbmUpOworICAgICAgICBvcmlnaW5hbENsb25lLnBhcmVudE5vZGUo
KS0+cmVwbGFjZUNoaWxkKHJlcGxhY2VtZW50Q2xvbmUuY29weVJlZigpLCBvcmlnaW5hbENsb25l
KTsKIAogICAgICAgICAvLyBSZXN1bWUgaXRlcmF0aW5nLCBzdGFydGluZyBqdXN0IGluc2lkZSB0
aGUgcmVwbGFjZW1lbnQgY2xvbmUuCiAgICAgICAgIGl0ID0gZGVzY2VuZGFudHMuZnJvbShyZXBs
YWNlbWVudENsb25lLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxU
cmVlVmlld2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxUcmVlVmlld2VyLmNwcAppbmRl
eCA0MDk2ZTQzNWQ2M2Y1NzA4NDQ4MDJjMjE3NzA4YWRkOWViNjA1MTc1Li5hOWY3N2VhMTYzODQ4
Zjg1MGI2MzVjOTJiOTBjYTk0Mjc3MmY4OGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94
bWwvWE1MVHJlZVZpZXdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTFRyZWVWaWV3
ZXIuY3BwCkBAIC02MSw4ICs2MSw4IEBAIHZvaWQgWE1MVHJlZVZpZXdlcjo6dHJhbnNmb3JtRG9j
dW1lbnRUb1RyZWVWaWV3KCkKICAgICBtX2RvY3VtZW50LmZyYW1lKCktPnNjcmlwdCgpLmV2YWx1
YXRlKFNjcmlwdFNvdXJjZUNvZGUoQXRvbWljU3RyaW5nKCJwcmVwYXJlV2ViS2l0WE1MVmlld2Vy
KCdUaGlzIFhNTCBmaWxlIGRvZXMgbm90IGFwcGVhciB0byBoYXZlIGFueSBzdHlsZSBpbmZvcm1h
dGlvbiBhc3NvY2lhdGVkIHdpdGggaXQuIFRoZSBkb2N1bWVudCB0cmVlIGlzIHNob3duIGJlbG93
LicpOyIpKSk7CiAKICAgICBTdHJpbmcgY3NzU3RyaW5nID0gU3RyaW5nSW1wbDo6Y3JlYXRlV2l0
aG91dENvcHlpbmcoWE1MVmlld2VyX2Nzcywgc2l6ZW9mKFhNTFZpZXdlcl9jc3MpKTsKLSAgICBS
ZWZQdHI8VGV4dD4gdGV4dCA9IG1fZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzU3RyaW5nKTsK
LSAgICBtX2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKFN0cmluZyhBU0NJSUxpdGVyYWwoInhtbC12
aWV3ZXItc3R5bGUiKSkpLT5hcHBlbmRDaGlsZCh0ZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAg
ICBSZWY8VGV4dD4gdGV4dCA9IG1fZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzU3RyaW5nKTsK
KyAgICBtX2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKFN0cmluZyhBU0NJSUxpdGVyYWwoInhtbC12
aWV3ZXItc3R5bGUiKSkpLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUodGV4dCksIElHTk9SRV9FWENF
UFRJT04pOwogICAgIG1fZG9jdW1lbnQuc3R5bGVSZXNvbHZlckNoYW5nZWQoUmVjYWxjU3R5bGVJ
bW1lZGlhdGVseSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4
IDBiMzIxMjA3YzMyM2U0ZGEwMDkzMGU5YzgwNGUwZDIzOGE5NGNkZDkuLmQ3ZTRkY2Y3ODA4NDZm
YWE1OTA4Njk5OGYzMDI5ZTYxM2M5MDdiNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJG
cmFtZS5tbQpAQCAtODkwLDkgKzg5MCw5IEBAIC0gKERPTURvY3VtZW50RnJhZ21lbnQgKilfZG9j
dW1lbnRGcmFnbWVudFdpdGhOb2Rlc0FzUGFyYWdyYXBoczooTlNBcnJheSAqKW5vZGVzCiAgICAg
UmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gZG9jdW1lbnQtPmNyZWF0ZURvY3Vt
ZW50RnJhZ21lbnQoKTsKIAogICAgIGZvciAoYXV0byogbm9kZSA6IG5vZGVzVmVjdG9yKSB7Ci0g
ICAgICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gY3JlYXRlRGVmYXVsdFBhcmFncmFwaEVs
ZW1lbnQoKmRvY3VtZW50KTsKLSAgICAgICAgZWxlbWVudC0+YXBwZW5kQ2hpbGQobm9kZSk7Ci0g
ICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChlbGVtZW50LnJlbGVhc2UoKSk7CisgICAgICAg
IFJlZjxFbGVtZW50PiBlbGVtZW50ID0gY3JlYXRlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQoKmRv
Y3VtZW50KTsKKyAgICAgICAgZWxlbWVudC0+YXBwZW5kQ2hpbGQoKm5vZGUpOworICAgICAgICBm
cmFnbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGVsZW1lbnQpKTsKICAgICB9CiAKICAgICBy
ZXR1cm4ga2l0KGZyYWdtZW50LnJlbGVhc2UoKS5nZXQoKSk7CkBAIC0xOTU4LDcgKzE5NTgsNyBA
QCAtICh2b2lkKV9yZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQ6KE5TU3RyaW5nICopdGV4dCBzZWxl
Y3RSZXBsYWNlbWVudDooQk9PTClzZWxlYwogewogICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBf
cHJpdmF0ZS0+Y29yZUZyYW1lLT5zZWxlY3Rpb24oKS50b05vcm1hbGl6ZWRSYW5nZSgpOwogICAg
IAotICAgIERPTURvY3VtZW50RnJhZ21lbnQqIGZyYWdtZW50ID0gcmFuZ2UgPyBraXQoY3JlYXRl
RnJhZ21lbnRGcm9tVGV4dCgqcmFuZ2UsIHRleHQpLmdldCgpKSA6IG5pbDsKKyAgICBET01Eb2N1
bWVudEZyYWdtZW50KiBmcmFnbWVudCA9IHJhbmdlID8ga2l0KGNyZWF0ZUZyYWdtZW50RnJvbVRl
eHQoKnJhbmdlLCB0ZXh0KS5wdHIoKSkgOiBuaWw7CiAgICAgW3NlbGYgX3JlcGxhY2VTZWxlY3Rp
b25XaXRoRnJhZ21lbnQ6ZnJhZ21lbnQgc2VsZWN0UmVwbGFjZW1lbnQ6c2VsZWN0UmVwbGFjZW1l
bnQgc21hcnRSZXBsYWNlOnNtYXJ0UmVwbGFjZSBtYXRjaFN0eWxlOllFU107CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4IDMwOTgwZDMwYWE2N2UyZGVi
OTgyMWU5N2QwMDcyMjUwZTU1YmQyYTQuLmIyNTcxOWZiOTBiNmE0NDdjYzI4NzRkZGE1ZGNmM2Fl
OTFjY2NlMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZp
ZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQpAQCAt
MjI2Nyw3ICsyMjY3LDcgQEAgLSAoRE9NRG9jdW1lbnRGcmFnbWVudCAqKV9kb2N1bWVudEZyYWdt
ZW50RnJvbVBhc3RlYm9hcmQ6KE5TUGFzdGVib2FyZCAqKXBhc3RlYm8KICAgICBpZiAocGJvYXJk
VHlwZSA9PSBOU1N0cmluZ1Bib2FyZFR5cGUpIHsKICAgICAgICAgaWYgKCFjb250ZXh0KQogICAg
ICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICAgICAgcmV0dXJuIGtpdChjcmVhdGVGcmFnbWVudEZy
b21UZXh0KCpjb3JlKGNvbnRleHQpLCBbW3Bhc3RlYm9hcmQgc3RyaW5nRm9yVHlwZTpOU1N0cmlu
Z1Bib2FyZFR5cGVdIHByZWNvbXBvc2VkU3RyaW5nV2l0aENhbm9uaWNhbE1hcHBpbmddKS5nZXQo
KSk7CisgICAgICAgIHJldHVybiBraXQoY3JlYXRlRnJhZ21lbnRGcm9tVGV4dCgqY29yZShjb250
ZXh0KSwgW1twYXN0ZWJvYXJkIHN0cmluZ0ZvclR5cGU6TlNTdHJpbmdQYm9hcmRUeXBlXSBwcmVj
b21wb3NlZFN0cmluZ1dpdGhDYW5vbmljYWxNYXBwaW5nXSkucHRyKCkpOwogICAgIH0KICAgICBy
ZXR1cm4gbmlsOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9QREZQbHVnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1BERlBsdWdpbi5tbQppbmRleCA1M2RiZmE1OTA2ZTM3MmIxMzRmM2U4OWNjYzRkYjJiYWEy
MDBjMGRhLi4xNzM0MGRlMzYzNDk3Mjc4YTBkODhkZTQ1ZDVjNmI5Mzk0OWZkY2I3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQpA
QCAtNTI1LDExICs1MjUsMTEgQEAgUERGUGx1Z2luOjpQREZQbHVnaW4oV2ViRnJhbWUqIGZyYW1l
KQogICAgICAgICBtX2Fubm90YXRpb25Db250YWluZXIgPSBkb2N1bWVudC0+Y3JlYXRlRWxlbWVu
dChkaXZUYWcsIGZhbHNlKTsKICAgICAgICAgbV9hbm5vdGF0aW9uQ29udGFpbmVyLT5zZXRBdHRy
aWJ1dGUoaWRBdHRyLCAiYW5ub3RhdGlvbkNvbnRhaW5lciIpOwogCi0gICAgICAgIFJlZlB0cjxF
bGVtZW50PiBtX2Fubm90YXRpb25TdHlsZSA9IGRvY3VtZW50LT5jcmVhdGVFbGVtZW50KHN0eWxl
VGFnLCBmYWxzZSk7Ci0gICAgICAgIG1fYW5ub3RhdGlvblN0eWxlLT5zZXRUZXh0Q29udGVudChh
bm5vdGF0aW9uU3R5bGUsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAgICBSZWY8RWxlbWVu
dD4gYW5ub3RhdGlvblN0eWxlRWxlbWVudCA9IGRvY3VtZW50LT5jcmVhdGVFbGVtZW50KHN0eWxl
VGFnLCBmYWxzZSk7CisgICAgICAgIGFubm90YXRpb25TdHlsZUVsZW1lbnQtPnNldFRleHRDb250
ZW50KGFubm90YXRpb25TdHlsZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKLSAgICAgICAgbV9h
bm5vdGF0aW9uQ29udGFpbmVyLT5hcHBlbmRDaGlsZChtX2Fubm90YXRpb25TdHlsZS5nZXQoKSk7
Ci0gICAgICAgIGRvY3VtZW50LT5ib2R5T3JGcmFtZXNldCgpLT5hcHBlbmRDaGlsZChtX2Fubm90
YXRpb25Db250YWluZXIuZ2V0KCkpOworICAgICAgICBtX2Fubm90YXRpb25Db250YWluZXItPmFw
cGVuZENoaWxkKFdURjo6bW92ZShhbm5vdGF0aW9uU3R5bGVFbGVtZW50KSk7CisgICAgICAgIGRv
Y3VtZW50LT5ib2R5T3JGcmFtZXNldCgpLT5hcHBlbmRDaGlsZCgqbV9hbm5vdGF0aW9uQ29udGFp
bmVyKTsKICAgICB9CiAKICAgICBtX2FjY2Vzc2liaWxpdHlPYmplY3QgPSBhZG9wdE5TKFtbV0tQ
REZQbHVnaW5BY2Nlc3NpYmlsaXR5T2JqZWN0IGFsbG9jXSBpbml0V2l0aFBERlBsdWdpbjp0aGlz
XSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BE
RlBsdWdpbkFubm90YXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1BERlBsdWdpbkFubm90YXRpb24ubW0KaW5kZXggMzRiNTIyZDg5YmEzMjk2ZWYxZTBlY2U1
YmJlMjIxODYxOGU2MzZmMS4uYTAyOWQyNWY5MWU4MmU2ZGIxYjJmMGZhNWEyYmUzOGQ2YzFjNzJi
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQ
bHVnaW5Bbm5vdGF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9QREYvUERGUGx1Z2luQW5ub3RhdGlvbi5tbQpAQCAtNzQsNyArNzQsNyBAQCB2b2lkIFBERlBs
dWdpbkFubm90YXRpb246OmF0dGFjaChFbGVtZW50KiBwYXJlbnQpCiAKICAgICB1cGRhdGVHZW9t
ZXRyeSgpOwogCi0gICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKG1fZWxlbWVudCk7CisgICAgbV9w
YXJlbnQtPmFwcGVuZENoaWxkKCptX2VsZW1lbnQpOwogCiAgICAgLy8gRklYTUU6IFRoZSB0ZXh0
IGN1cnNvciBkb2Vzbid0IGJsaW5rIGFmdGVyIHRoaXMuIFdoeT8KICAgICBtX2VsZW1lbnQtPmZv
Y3VzKCk7CkBAIC05Miw3ICs5Miw3IEBAIFBERlBsdWdpbkFubm90YXRpb246On5QREZQbHVnaW5B
bm5vdGF0aW9uKCkKIAogICAgIG1fZXZlbnRMaXN0ZW5lci0+c2V0QW5ub3RhdGlvbigwKTsKIAot
ICAgIG1fcGFyZW50LT5yZW1vdmVDaGlsZChlbGVtZW50KCkpOworICAgIG1fcGFyZW50LT5yZW1v
dmVDaGlsZCgqZWxlbWVudCgpKTsKIH0KIAogdm9pZCBQREZQbHVnaW5Bbm5vdGF0aW9uOjp1cGRh
dGVHZW9tZXRyeSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24ubW0KaW5kZXggZTFh
OGU1ODIyYjI1ZTg3OTM1MWYzNDkwYmU5NTRkMWRiODE5ZGQ0Yi4uNjIxZGMwMTFkYjg3NGZkZjNk
ZjIzMDVhZTQwNzM2NzlmMzZmMGYzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlv
bi5tbQpAQCAtODMsMTQgKzgzLDE0IEBAIFBhc3NSZWZQdHI8RWxlbWVudD4gUERGUGx1Z2luQ2hv
aWNlQW5ub3RhdGlvbjo6Y3JlYXRlQW5ub3RhdGlvbkVsZW1lbnQoKQogICAgIE5TU3RyaW5nICpz
ZWxlY3RlZENob2ljZSA9IGNob2ljZUFubm90YXRpb24uc3RyaW5nVmFsdWU7CiAKICAgICBmb3Ig
KE5TU3RyaW5nICpjaG9pY2UgaW4gY2hvaWNlcykgewotICAgICAgICBSZWZQdHI8RWxlbWVudD4g
Y2hvaWNlT3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChvcHRpb25UYWcsIGZhbHNlKTsK
KyAgICAgICAgUmVmPEVsZW1lbnQ+IGNob2ljZU9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQob3B0aW9uVGFnLCBmYWxzZSk7CiAgICAgICAgIGNob2ljZU9wdGlvbi0+c2V0QXR0cmlidXRl
KHZhbHVlQXR0ciwgY2hvaWNlKTsKICAgICAgICAgY2hvaWNlT3B0aW9uLT5zZXRUZXh0Q29udGVu
dChjaG9pY2UsIEFTU0VSVF9OT19FWENFUFRJT04pOwogCiAgICAgICAgIGlmIChjaG9pY2UgPT0g
c2VsZWN0ZWRDaG9pY2UpCiAgICAgICAgICAgICBjaG9pY2VPcHRpb24tPnNldEF0dHJpYnV0ZShz
ZWxlY3RlZEF0dHIsICJzZWxlY3RlZCIpOwogCi0gICAgICAgIHN0eWxlZEVsZW1lbnQtPmFwcGVu
ZENoaWxkKGNob2ljZU9wdGlvbik7CisgICAgICAgIHN0eWxlZEVsZW1lbnQtPmFwcGVuZENoaWxk
KFdURjo6bW92ZShjaG9pY2VPcHRpb24pKTsKICAgICB9CiAKICAgICByZXR1cm4gZWxlbWVudDsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2NDE2OGVlYTU4ODdhNzg2MDYwNzQ0YTRjYTA1ZjJhODk2MGZhMjJhLi4xMTQ2ZDBl
MWFjNzZjZWU1Y2M3MWNkOGQ5ZjIwZDdjNmE3NGUwZmYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAK
KzIwMTUtMDktMDggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBO
b2RlLmFwcGVuZENoaWxkKG51bGwpIC8gcmVwbGFjZUNoaWxkKG51bGwsIG51bGwpIC8gcmVtb3Zl
Q2hpbGQobnVsbCkgLyBpbnNlcnRCZWZvcmUobnVsbCwgcmVmKSBzaG91bGQgdGhyb3cgYSBUeXBl
RXJyb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
ODk3MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjI1NjA4ODM+CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS8yMjU1OTIyNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBVcGRhdGUgLyByZWJhc2VsaW5lIHRlc3RzIG5vdyB0aGF0IHdlIHRocm93IGEg
ZGlmZmVyZW50IGV4Y2VwdGlvbiB0eXBlLgorCisgICAgICAgICogZmFzdC9kb20vRG9jdW1lbnQv
cmVwbGFjZUNoaWxkLW51bGwtb2xkQ2hpbGQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
ZG9tL0RvY3VtZW50L3NjcmlwdC10ZXN0cy9yZXBsYWNlQ2hpbGQtbnVsbC1vbGRDaGlsZC5qczoK
KyAgICAgICAgKiBmYXN0L2RvbS9Ob2RlL2ZyYWdtZW50LW11dGF0aW9uLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBmYXN0L2RvbS9Ob2RlL2ZyYWdtZW50LW11dGF0aW9uLmh0bWw6CisgICAgICAg
ICogZmFzdC9kb20vaW5jb21wYXRpYmxlLW9wZXJhdGlvbnMtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvZG9tL2luY29tcGF0aWJsZS1vcGVyYXRpb25zLmh0bWw6CisgICAgICAgICogZmFz
dC9kb20vbW92ZS1ub2Rlcy1hY3Jvc3MtZG9jdW1lbnRzLmh0bWw6CisgICAgICAgICogZmFzdC9k
b20vcHJvY2Vzc2luZy1pbnN0cnVjdGlvbi1hcHBlbmRDaGlsZC1leGNlcHRpb25zLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9wcm9jZXNzaW5nLWluc3RydWN0aW9uLWFwcGVuZENo
aWxkLWV4Y2VwdGlvbnMueGh0bWw6CisgICAgICAgICogZmFzdC9kb20vc2V0dGVyLXR5cGUtZW5m
b3JjZW1lbnQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL3RpbWVyLWNsZWFyLWlu
dGVydmFsLWluLWhhbmRsZXItYW5kLWdlbmVyYXRlLWVycm9yLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L2luc3BlY3Rvci1zdXBwb3J0L3VuY2F1Z2h0LWRvbTgtZXhjZXB0aW9uLmh0bWw6
CisKIDIwMTUtMDktMDkgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAg
IFJFR1JFU1NJT046IElubGluZS1ibG9jayBiYXNlbGluZSBpcyB3cm9uZyB3aGVuIHplcm8td2lk
dGggcmVwbGFjZWQgY2hpbGQgaXMgcHJlc2VudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cK
aW5kZXggNzI3ODJlMDUyMDdkZTM1YWYyMTg5MGJmNzBjODMyZjkxYTViMmQxNC4uN2FmNjUwNTc5
ZjdiYTdjNjRiNzliMzM4ZmE4MDJjODk3OTAyZWEwNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMjMgQEAKIDIwMTUtMDktMDggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAorICAgICAgICBOb2RlLmFwcGVuZENoaWxkKG51bGwpIC8gcmVwbGFjZUNo
aWxkKG51bGwsIG51bGwpIC8gcmVtb3ZlQ2hpbGQobnVsbCkgLyBpbnNlcnRCZWZvcmUobnVsbCwg
cmVmKSBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODk3MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjI1
NjA4ODM+CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjU1OTIyNT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWJhc2VsaW5lIFczQyB0ZXN0cyBu
b3cgdGhhdCBtb3JlIGNoZWNrcyBhcmUgcGFzc2luZy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLWFwcGVuZENoaWxkLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtaW5zZXJ0QmVmb3JlLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtcmVt
b3ZlQ2hpbGQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9kb20v
bm9kZXMvTm9kZS1yZXBsYWNlQ2hpbGQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dDoKKworMjAxNS0wOS0w
OCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCiAgICAgICAgIFVucmV2aWV3ZWQs
IGRyb3AgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJl
ZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2xvY2F0aW9uLW9mLXRoZS1tZWRpYS1yZXNvdXJj
ZS9jdXJyZW50U3JjLmh0bWwuCiAKICAgICAgICAgVGhpcyByZWNlbnRseSBpbXBvcnRlZCB0ZXN0
IGlzIGZsYWt5LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvcmVw
bGFjZUNoaWxkLW51bGwtb2xkQ2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vRG9jdW1lbnQvcmVwbGFjZUNoaWxkLW51bGwtb2xkQ2hpbGQtZXhwZWN0ZWQudHh0CmluZGV4
IGJiYjE2NmIyMjdhNTJlNjUxNDVhZGJmNDA0ODc4NTNiMGQzNjhkMjQuLmFmNWE0NjlmNWY4Y2M2
OTcxMDFiYzkyYTQwZjgyNDU1YjhiZTVjZDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0RvY3VtZW50L3JlcGxhY2VDaGlsZC1udWxsLW9sZENoaWxkLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Eb2N1bWVudC9yZXBsYWNlQ2hpbGQtbnVsbC1vbGRDaGls
ZC1leHBlY3RlZC50eHQKQEAgLTMsNyArMyw3IEBAIFRlc3QgYmVoYXZpb3Igb2YgRG9jdW1lbnQu
cmVwbGFjZUNoaWxkKCkgd2hlbiBvbGRDaGlsZCBpcyBudWxsLgogT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgogCiAKLVBBU1MgZG9jdW1lbnQucmVwbGFjZUNoaWxkKGRvY3VtZW50LmZpcnN0Q2hp
bGQsIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2Vw
dGlvbiA4LgorUEFTUyBkb2N1bWVudC5yZXBsYWNlQ2hpbGQoZG9jdW1lbnQuZmlyc3RDaGlsZCwg
bnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvc2NyaXB0LXRlc3RzL3JlcGxhY2VDaGlsZC1udWxsLW9s
ZENoaWxkLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvc2NyaXB0LXRlc3RzL3Jl
cGxhY2VDaGlsZC1udWxsLW9sZENoaWxkLmpzCmluZGV4IGRhOTI1MjgwMDUxZTE5N2UxYWY1Yzll
YTRhMjViNDFiOTZlYzNhNWYuLmMwOWJmMWIxOGQyOTllNjc0NTIzMDUzNjY3YThjMjVkOGE5ODA3
MGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50L3NjcmlwdC10ZXN0
cy9yZXBsYWNlQ2hpbGQtbnVsbC1vbGRDaGlsZC5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9Eb2N1bWVudC9zY3JpcHQtdGVzdHMvcmVwbGFjZUNoaWxkLW51bGwtb2xkQ2hpbGQuanMKQEAg
LTEsMyArMSwzIEBACiBkZXNjcmlwdGlvbignVGVzdCBiZWhhdmlvciBvZiBEb2N1bWVudC5yZXBs
YWNlQ2hpbGQoKSB3aGVuIG9sZENoaWxkIGlzIG51bGwuJyk7CiAKLXNob3VsZFRocm93KCdkb2N1
bWVudC5yZXBsYWNlQ2hpbGQoZG9jdW1lbnQuZmlyc3RDaGlsZCwgbnVsbCknLCAnIkVycm9yOiBO
b3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiJyk7CitzaG91bGRUaHJvdygnZG9jdW1lbnQu
cmVwbGFjZUNoaWxkKGRvY3VtZW50LmZpcnN0Q2hpbGQsIG51bGwpJywgJyJUeXBlRXJyb3I6IFR5
cGUgZXJyb3IiJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2ZyYWdt
ZW50LW11dGF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvZnJh
Z21lbnQtbXV0YXRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDBmMDRlNjZhMGU1M2U2ZjViMTkwMWM1
ZGNiMTc2ZjY3ZjJlNGY4NjguLjRiYTk1MjRjNzJjZDVkN2ExMTMyOTQ0ZDA2ZGRkYmM2ZjZjN2Q4
NWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvZnJhZ21lbnQtbXV0YXRp
b24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvZnJhZ21lbnQt
bXV0YXRpb24tZXhwZWN0ZWQudHh0CkBAIC0yLDEyICsyLDEyIEBAIFRoaXMgdGVzdCBjcmVhdGVz
IGEgZnJhZ21lbnQgY29udGFpbmluZyB0aHJlZSBlbGVtZW50czogIkIiLCAiVSIsIGFuZCAiUCIs
IGF0dGVtCiAKIEluc2VydGluZyBhbiBlbGVtZW50IGluIGZyb250IG9mIHRoZSBuZXh0IGl0ZW0g
aW4gZnJhZ21lbnQgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIHJlc3VsdDogUEFTUwogQXBwZW5kaW5n
IGFuIGVsZW1lbnQgYXQgdGhlIGVuZCBvZiB0aGUgZnJhZ21lbnQgc2hvdWxkIG5vdCBhZmZlY3Qg
dGhlIHJlc3VsdDogUEFTUwotQ29udGludWFsbHkgcmUtYXBwZW5kaW5nIHJlbW92ZWQgZWxlbWVu
dCB0byB0aGUgZnJhZ21lbnQgc2hvdWxkIGV2ZW50dWFsbHkgdGhyb3cgTk9UX0ZPVU5EX0VSUjog
UEFTUworQ29udGludWFsbHkgcmUtYXBwZW5kaW5nIHJlbW92ZWQgZWxlbWVudCB0byB0aGUgZnJh
Z21lbnQgc2hvdWxkIGV2ZW50dWFsbHkgdGhyb3cgYSBUeXBlRXJyb3I6IFBBU1MKIAogVGhpcyB0
ZXN0IGNyZWF0ZXMgYSBmcmFnbWVudCBjb250YWluaW5nIHRocmVlIGVsZW1lbnRzOiAiQiIsICJV
IiwgYW5kICJQIiwgYXR0ZW1wdHMgdG8gaW5zZXJ0QmVmb3JlIHRoaXMgZnJhZ21lbnQgYW5kIHN0
dWRpZXMgZWZmZWN0cyBvZiBtdXRhdGlvbiBldmVudHMgb24gdGhlIGZyYWdtZW50LgogCiBJbnNl
cnRpbmcgYW4gZWxlbWVudCBpbiBmcm9udCBvZiB0aGUgbmV4dCBpdGVtIGluIGZyYWdtZW50IHNo
b3VsZCBub3QgYWZmZWN0IHRoZSByZXN1bHQ6IFBBU1MKIEFwcGVuZGluZyBhbiBlbGVtZW50IGF0
IHRoZSBlbmQgb2YgdGhlIGZyYWdtZW50IHNob3VsZCBub3QgYWZmZWN0IHRoZSByZXN1bHQ6IFBB
U1MKLUNvbnRpbnVhbGx5IHJlLWFwcGVuZGluZyByZW1vdmVkIGVsZW1lbnQgdG8gdGhlIGZyYWdt
ZW50IHNob3VsZCBldmVudHVhbGx5IHRocm93IE5PVF9GT1VORF9FUlI6IFBBU1MKK0NvbnRpbnVh
bGx5IHJlLWFwcGVuZGluZyByZW1vdmVkIGVsZW1lbnQgdG8gdGhlIGZyYWdtZW50IHNob3VsZCBl
dmVudHVhbGx5IHRocm93IGEgVHlwZUVycm9yOiBQQVNTCiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vTm9kZS9mcmFnbWVudC1tdXRhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vTm9kZS9mcmFnbWVudC1tdXRhdGlvbi5odG1sCmluZGV4IDg0ZTY3ZjY1MzlkNjRi
NzNlMzUxMTAyMGMwNzZlMDRjOWU4MDBjYmYuLjQ4OTQ5N2Y1MGFjNmI2YThmODEwMDZiYjU4ZTZh
YzE3NTU3YzZiODQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvZnJhZ21l
bnQtbXV0YXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2ZyYWdtZW50
LW11dGF0aW9uLmh0bWwKQEAgLTM2LDE1ICszNiwxNSBAQCBmdW5jdGlvbiBwcm9kdWNlTm9kZU5h
bWVTdHJpbmcobm9kZXMpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotZnVuY3Rpb24gZXhwZWN0
RXhjZXB0aW9uKGNvZGUpCitmdW5jdGlvbiBleHBlY3RUeXBlRXJyb3IoKQogewogICAgIHJldHVy
biBmdW5jdGlvbihzdGFzaCwgZXhjZXB0aW9uKSB7CiAgICAgICAgIGlmICghZXhjZXB0aW9uKQot
ICAgICAgICAgICAgcmV0dXJuICJGQUlMLCBleHBlY3RlZCBleGNlcHRpb24gd2l0aCBjb2RlICIg
KyBjb2RlICsgIi4gVGhlIHJlc3VsdGluZyBmcmFnbWVudCB3YXM6IFwiIiArIHByb2R1Y2VOb2Rl
TmFtZVN0cmluZyhzdGFzaCkgKyAiXCIuIjsKKyAgICAgICAgICAgIHJldHVybiAiRkFJTCwgZXhw
ZWN0ZWQgVHlwZUVycm9yLiBUaGUgcmVzdWx0aW5nIGZyYWdtZW50IHdhczogXCIiICsgcHJvZHVj
ZU5vZGVOYW1lU3RyaW5nKHN0YXNoKSArICJcIi4iOwogCi0gICAgICAgIGlmIChjb2RlID09IGV4
Y2VwdGlvbi5jb2RlKQorICAgICAgICBpZiAoZXhjZXB0aW9uLm5hbWUgPSAiVHlwZUVycm9yIikK
ICAgICAgICAgICAgIHJldHVybiAiUEFTUyI7Ci0gICAgICAgIHJldHVybiAiRkFJTCwgZXhwZWN0
ZWQgZXhjZXB0aW9uIGNvZGU6ICIgKyBjb2RlICsgIiwgd2FzOiAiICsgZXhjZXB0aW9uICsgIi4i
OworICAgICAgICByZXR1cm4gIkZBSUwsIGV4cGVjdGVkIFR5cGVFcnJvciwgd2FzOiAiICsgZXhj
ZXB0aW9uLm5hbWUgKyAiLiI7CiAgICAgfQogfQogCkBAIC0xMTksMTAgKzExOSwxMCBAQCBmdW5j
dGlvbiBydW5UZXN0KG1ldGhvZE5hbWUsIG1ldGhvZCkKICAgICAgICAgZnJhZy5hcHBlbmRDaGls
ZChleHRyYSk7CiAgICAgfSwgZXhwZWN0Tm9kZXMoIkJVUCIpKTsKIAotICAgIHRlc3RGcmFnbWVu
dChtZXRob2QsICJDb250aW51YWxseSByZS1hcHBlbmRpbmcgcmVtb3ZlZCBlbGVtZW50IHRvIHRo
ZSBmcmFnbWVudCBzaG91bGQgZXZlbnR1YWxseSB0aHJvdyBOT1RfRk9VTkRfRVJSIiwgZnVuY3Rp
b24oZXZ0LCBmcmFnLCBzdGFzaCkKKyAgICB0ZXN0RnJhZ21lbnQobWV0aG9kLCAiQ29udGludWFs
bHkgcmUtYXBwZW5kaW5nIHJlbW92ZWQgZWxlbWVudCB0byB0aGUgZnJhZ21lbnQgc2hvdWxkIGV2
ZW50dWFsbHkgdGhyb3cgYSBUeXBlRXJyb3IiLCBmdW5jdGlvbihldnQsIGZyYWcsIHN0YXNoKQog
ICAgIHsKICAgICAgICAgc3Rhc2guaW5zZXJ0QmVmb3JlKGZyYWcubGFzdENoaWxkLCBzdGFzaC5m
aXJzdENoaWxkKTsKLSAgICB9LCBleHBlY3RFeGNlcHRpb24oOCksIHRydWUpOworICAgIH0sIGV4
cGVjdFR5cGVFcnJvcigpLCB0cnVlKTsKICAgICBwcmludExvZyhtZXRob2ROYW1lKTsKIH0KIGZ1
bmN0aW9uIHJ1blRlc3RzKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2luY29t
cGF0aWJsZS1vcGVyYXRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2lu
Y29tcGF0aWJsZS1vcGVyYXRpb25zLWV4cGVjdGVkLnR4dAppbmRleCBkNTc2NGMxZTVhYzYyNjRl
ZTNhNGRmNWI5MjQ1ZWJlMTc3ZjY1NDgwLi44NWNjZDU0NGZjOWU5OWE3OGRhYTI3NzU1YTMzZmM4
ODBhN2ZmMGQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pbmNvbXBhdGlibGUt
b3BlcmF0aW9ucy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaW5jb21w
YXRpYmxlLW9wZXJhdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0zLDkgKzMsOSBAQCBUaGlzIHRlc3Qg
Y2hlY2tzIHRoZSBiZWhhdmlvciBvZiBET00gb3BlcmF0aW9ucyB3aGVuIGNhbGxlZCBvbiBub24t
RE9NIG9yIGluY29tcAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1MgYU5vZGUu
YXBwZW5kQ2hpbGQoYURPTUltcGxlbWVudGF0aW9uKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5v
dEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOC4KLVBBU1MgYU5vZGUuYXBwZW5kQ2hpbGQoJ2tu
b3J0JykgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9u
IDguCi1QQVNTIGFOb2RlLmFwcGVuZENoaWxkKHZvaWQgMCkgdGhyZXcgZXhjZXB0aW9uIEVycm9y
OiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDguCitQQVNTIGFOb2RlLmFwcGVuZENoaWxk
KGFET01JbXBsZW1lbnRhdGlvbikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJv
ci4KK1BBU1MgYU5vZGUuYXBwZW5kQ2hpbGQoJ2tub3J0JykgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogVHlwZSBlcnJvci4KK1BBU1MgYU5vZGUuYXBwZW5kQ2hpbGQodm9pZCAwKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgogUEFTUyBhTm9kZS5pc1NhbWVOb2RlKGFE
T01JbXBsZW1lbnRhdGlvbikgaXMgZmFsc2UKIFBBU1MgYU5vZGUuaXNTYW1lTm9kZSgnZm9vJykg
aXMgZmFsc2UKIFBBU1MgYU5vZGUuaXNTYW1lTm9kZSh2b2lkIDApIGlzIGZhbHNlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pbmNvbXBhdGlibGUtb3BlcmF0aW9ucy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vaW5jb21wYXRpYmxlLW9wZXJhdGlvbnMuaHRtbAppbmRleCAy
MWFhNzFhZmU4ZTNkZWFhOGNlOGIwNGQzZjNjZjIzZDU4MjU0MjMwLi4yZjBlNGFmZTZjYWNiZGMy
Yjg1NzM1ZTc2NjBlZThmOWU1ZDAxYjBmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9pbmNvbXBhdGlibGUtb3BlcmF0aW9ucy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L2luY29tcGF0aWJsZS1vcGVyYXRpb25zLmh0bWwKQEAgLTI4LDExICsyOCwxMSBAQCB2YXIgYU5v
ZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKIHZhciBhU2Vjb25kTm9kZSA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogYU5vZGUuYXBwZW5kQ2hpbGQoYVNlY29uZE5v
ZGUpOwogCi1zaG91bGRUaHJvdygiYU5vZGUuYXBwZW5kQ2hpbGQoYURPTUltcGxlbWVudGF0aW9u
KSIsICInRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCciKTsKK3Nob3VsZFRo
cm93KCJhTm9kZS5hcHBlbmRDaGlsZChhRE9NSW1wbGVtZW50YXRpb24pIiwgIidUeXBlRXJyb3I6
IFR5cGUgZXJyb3InIik7CiAKLXNob3VsZFRocm93KCJhTm9kZS5hcHBlbmRDaGlsZCgna25vcnQn
KSIsICInRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCciKTsKK3Nob3VsZFRo
cm93KCJhTm9kZS5hcHBlbmRDaGlsZCgna25vcnQnKSIsICInVHlwZUVycm9yOiBUeXBlIGVycm9y
JyIpOwogCi1zaG91bGRUaHJvdygiYU5vZGUuYXBwZW5kQ2hpbGQodm9pZCAwKSIsICInRXJyb3I6
IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCciKTsKK3Nob3VsZFRocm93KCJhTm9kZS5h
cHBlbmRDaGlsZCh2b2lkIDApIiwgIidUeXBlRXJyb3I6IFR5cGUgZXJyb3InIik7CiAKIHNob3Vs
ZEJlRmFsc2UoImFOb2RlLmlzU2FtZU5vZGUoYURPTUltcGxlbWVudGF0aW9uKSIpOwogc2hvdWxk
QmVGYWxzZSgiYU5vZGUuaXNTYW1lTm9kZSgnZm9vJykiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL21vdmUtbm9kZXMtYWNyb3NzLWRvY3VtZW50cy5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vbW92ZS1ub2Rlcy1hY3Jvc3MtZG9jdW1lbnRzLmh0bWwKaW5kZXggZDM1MDFh
MTdkYjg2YzRlYzg2MGZiNWYxMjJjN2Q1Y2RhZTZmNWEzNS4uMzg4MWYwNDk5MjFiMTNkZDNmYjY2
ZmU2ZDdhNTJlYzc0YWY2ODU4MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbW92
ZS1ub2Rlcy1hY3Jvc3MtZG9jdW1lbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
bW92ZS1ub2Rlcy1hY3Jvc3MtZG9jdW1lbnRzLmh0bWwKQEAgLTE3OSw3ICsxNzksNyBAQCBmdW5j
dGlvbiBydW4oKQogICAgIHJ1blRlc3QoZnVuY3Rpb24oKSB7CiAgICAgICAgIGlmcmFtZURvYy5h
cHBlbmRDaGlsZChkb2N1bWVudC5kb2N0eXBlKTsKICAgICAgICAgY29uc29sZS5sb2coZG9jdW1l
bnQuZG9jdHlwZSk7Ci0gICAgfSwgJ05vdEZvdW5kRXJyb3InKTsKKyAgICB9LCAnVHlwZUVycm9y
Jyk7CiAKICAgICAvLyBXaGVuIHNldHRpbmcgYSBib3VuZGFyeSBvZiB0aGUgcmFuZ2UgaW4gYSBk
aWZmZXJlbnQKICAgICAvLyBkb2N1bWVudCwgdGhlIGNhbGwgc2hvdWxkIHN1Y2NlZWQgYW5kIHRo
ZSByYW5nZSBzaG91bGQgYmUgY29sbGFwc2VkLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vcHJvY2Vzc2luZy1pbnN0cnVjdGlvbi1hcHBlbmRDaGlsZC1leGNlcHRpb25zLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb2Nlc3NpbmctaW5zdHJ1Y3Rpb24tYXBw
ZW5kQ2hpbGQtZXhjZXB0aW9ucy1leHBlY3RlZC50eHQKaW5kZXggN2ExMzg2OGE3YjJmZmZhNmQy
NjQyYWI2MjE3MjI3YjJkYWI5MmZiOS4uMGUzYmRmMjI2ZTBjNWE2NTkxNzEyMDQ1YzM1NTVkODM2
YmNjYmIyZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvY2Vzc2luZy1pbnN0
cnVjdGlvbi1hcHBlbmRDaGlsZC1leGNlcHRpb25zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9wcm9jZXNzaW5nLWluc3RydWN0aW9uLWFwcGVuZENoaWxkLWV4Y2VwdGlv
bnMtZXhwZWN0ZWQudHh0CkBAIC0zLDcgKzMsNyBAQCBUZXN0IHRoYXQgYXBwcm9wcmlhdGUgZXhj
ZXB0aW9ucyBhcmUgdGhyb3duIHdoZW4gYWRkaW5nIGNoaWxkcmVuIHRvIGEgUHJvY2Vzc2luZwog
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1MgcGkuYXBwZW5kQ2hpbGQobnVsbCkg
dGhyZXcgZXhjZXB0aW9uIEVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRp
b24gMy4KK1BBU1MgcGkuYXBwZW5kQ2hpbGQobnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogVHlwZSBlcnJvci4KIFBBU1MgcGkuYXBwZW5kQ2hpbGQoZGl2KSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzLgogUEFTUyBwaS5h
cHBlbmRDaGlsZCh0ZXh0Tm9kZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBIaWVyYXJjaHlSZXF1
ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMy4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb2Nlc3NpbmctaW5zdHJ1Y3Rp
b24tYXBwZW5kQ2hpbGQtZXhjZXB0aW9ucy54aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3By
b2Nlc3NpbmctaW5zdHJ1Y3Rpb24tYXBwZW5kQ2hpbGQtZXhjZXB0aW9ucy54aHRtbAppbmRleCBi
MDAyODk5YzIzMjA2N2ZjMTczM2ZhOTFlYWZlMTMxNDIyYzQ5OTYwLi5jOTAyYmE0YjM1OTg5N2Q5
MzhiZDQ5ZjgwYmM2ZjIyYzIwMTkyZmQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9wcm9jZXNzaW5nLWluc3RydWN0aW9uLWFwcGVuZENoaWxkLWV4Y2VwdGlvbnMueGh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvY2Vzc2luZy1pbnN0cnVjdGlvbi1hcHBlbmRDaGls
ZC1leGNlcHRpb25zLnhodG1sCkBAIC01LDcgKzUsNyBAQAogPCFbQ0RBVEFbCiBkZXNjcmlwdGlv
bigiVGVzdCB0aGF0IGFwcHJvcHJpYXRlIGV4Y2VwdGlvbnMgYXJlIHRocm93biB3aGVuIGFkZGlu
ZyBjaGlsZHJlbiB0byBhIFByb2Nlc3NpbmdJbnN0cnVjdGlvbi4iKTsKIHZhciBwaSA9IGRvY3Vt
ZW50LmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigndGFyZ2V0JywgJ2RhdGEnKTsKLXNob3Vs
ZFRocm93KCJwaS5hcHBlbmRDaGlsZChudWxsKSIsICInRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RF
cnJvcjogRE9NIEV4Y2VwdGlvbiAzJyIpOworc2hvdWxkVGhyb3coInBpLmFwcGVuZENoaWxkKG51
bGwpIiwgIidUeXBlRXJyb3I6IFR5cGUgZXJyb3InIik7CiB2YXIgZGl2ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnZGl2Jyk7CiBzaG91bGRUaHJvdygicGkuYXBwZW5kQ2hpbGQoZGl2KSIsICIn
RXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzJyIpOwogdmFyIHRl
eHROb2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ3NvbWV0ZXh0Jyk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS90aW1lci1jbGVhci1pbnRlcnZhbC1pbi1oYW5kbGVyLWFu
ZC1nZW5lcmF0ZS1lcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS90aW1l
ci1jbGVhci1pbnRlcnZhbC1pbi1oYW5kbGVyLWFuZC1nZW5lcmF0ZS1lcnJvci1leHBlY3RlZC50
eHQKaW5kZXggOTlhYWM2YTA1ZGNhZTg4NjMyNjljNjliYjZkY2IzYTkyOTRiNjQ3Ny4uNWYyZmQ1
MTQxNzAwYzgzMzM0ODliNTBlMWEzZDIyMmIyNjk0MjVhMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vdGltZXItY2xlYXItaW50ZXJ2YWwtaW4taGFuZGxlci1hbmQtZ2VuZXJhdGUt
ZXJyb3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3RpbWVyLWNsZWFy
LWludGVydmFsLWluLWhhbmRsZXItYW5kLWdlbmVyYXRlLWVycm9yLWV4cGVjdGVkLnR4dApAQCAt
MSwyICsxLDIgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMDogTm90Rm91bmRFcnJvcjogRE9N
IEV4Y2VwdGlvbiA4OiBBbiBhdHRlbXB0IHdhcyBtYWRlIHRvIHJlZmVyZW5jZSBhIE5vZGUgaW4g
YSBjb250ZXh0IHdoZXJlIGl0IGRvZXMgbm90IGV4aXN0LgorQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDEwOiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvcmVtb3ZlLXRhcmdldC13aXRoLXNoYWRvdy1pbi1kcmFnLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3JlbW92ZS10YXJnZXQtd2l0aC1zaGFkb3ctaW4tZHJh
Zy1leHBlY3RlZC50eHQKaW5kZXggNDVjMTE5ZmU5YjMwY2FkMmE1MGYxZGZmOGMwMTcxMTkyMDVh
ZmU3YS4uMTI4OTY0ZjVmYTRhYWE4MmVjODlhZGY3YmQyM2UzZjgwZWEzOWI2MCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVtb3ZlLXRhcmdldC13aXRoLXNoYWRvdy1pbi1k
cmFnLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZW1vdmUtdGFy
Z2V0LXdpdGgtc2hhZG93LWluLWRyYWctZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAotQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDM0OiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDg6IEFu
IGF0dGVtcHQgd2FzIG1hZGUgdG8gcmVmZXJlbmNlIGEgTm9kZSBpbiBhIGNvbnRleHQgd2hlcmUg
aXQgZG9lcyBub3QgZXhpc3QuCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMzQ6IE5vdEZvdW5kRXJy
b3I6IERPTSBFeGNlcHRpb24gODogQW4gYXR0ZW1wdCB3YXMgbWFkZSB0byByZWZlcmVuY2UgYSBO
b2RlIGluIGEgY29udGV4dCB3aGVyZSBpdCBkb2VzIG5vdCBleGlzdC4KK0NPTlNPTEUgTUVTU0FH
RTogbGluZSAzNDogVHlwZUVycm9yOiBUeXBlIGVycm9yCitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MzQ6IFR5cGVFcnJvcjogVHlwZSBlcnJvcgogUEFTUy4gRFJUIGRpZG4ndCBjcmFzaC4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW5zcGVjdG9yLXN1cHBvcnQvdW5jYXVnaHQtZG9tOC1l
eGNlcHRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW5zcGVjdG9yLXN1cHBvcnQvdW5jYXVn
aHQtZG9tOC1leGNlcHRpb24uaHRtbAppbmRleCBiYzYwOGY0ZmFlMDQ5MzcwNmM5Yjc5ZTUxMzdi
Y2ZlNzgzNDIyNWRiLi41ZmE0ZTViOGI2NjY2Mzk0MjJkNWI0YWQ5YTY3ZmVhNjJkNGVlOTBhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2luc3BlY3Rvci1zdXBwb3J0L3VuY2F1Z2h0LWRv
bTgtZXhjZXB0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbnNwZWN0b3Itc3VwcG9y
dC91bmNhdWdodC1kb204LWV4Y2VwdGlvbi5odG1sCkBAIC02LDcgKzYsNyBAQCBmdW5jdGlvbiBv
bmxvYWQoKQogewogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7Ci0gICAgZG9jdW1lbnQuYXBwZW5kQ2hpbGQoKTsKKyAgICBkb2N1bWVu
dC5ib2R5LnJlbW92ZUF0dHJpYnV0ZU5vZGUoZG9jdW1lbnQuY3JlYXRlQXR0cmlidXRlKCJkb2Vz
Tm90RXhpc3QiKSk7CiB9CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9pbnRlcmZh
Y2VzLWV4cGVjdGVkLnR4dAppbmRleCBmZGIxOTgwYThiY2ZjNGY5MWU1Y2E2ZjlkNTZjMGQ3MTJl
NGE3MGVhLi5jZjdiMjNhMjc4OTRhOTI5NmFhMzU5NmMwMmViZDY3ZDQ4MjQxMDc1IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9pbnRl
cmZhY2VzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dApAQCAtNjM0LDIxICs2MzQs
MTUgQEAgRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpc0RlZmF1bHROYW1lc3BhY2UoRE9N
U3RyaW5nKSBvbiB4bWxEb2Mgd2l0aCB0b28gZmUKICAgICBbbmF0aXZlIGNvZGVdCiB9IiBkaWQg
bm90IHRocm93CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiB4bWxEb2MgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJpbnNlcnRCZWZvcmUiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MCkgCi1GQUlMIE5vZGUg
aW50ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIHhtbERvYyB3aXRo
IHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENh
bGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CitGQUlMIE5vZGUg
aW50ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIHhtbERvYyB3aXRo
IHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENh
bGxlZCB3aXRoIDEgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAgICAgW25hdGl2
ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2Vw
dGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJU
eXBlRXJyb3IiKQorfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9y
OiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2Jq
ZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IHhtbERv
YyBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFwcGVuZENoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAoNDEpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBv
biB4bWxEb2Mgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3Nl
cnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkg
ewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJy
b3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJU
eXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBw
ZW5kQ2hpbGQoTm9kZSkgb24geG1sRG9jIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiB4bWxEb2MgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJyZXBsYWNlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MikgCi1GQUlMIE5v
ZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIHhtbERvYyB3
aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6
IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25h
dGl2ZSBjb2RlXQotfSIgZGlkIG5vdCB0aHJvdworUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGlu
ZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiB4bWxEb2Mgd2l0aCB0b28gZmV3IGFyZ3VtZW50
cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IHhtbERvYyBtdXN0
IGluaGVyaXQgcHJvcGVydHkgInJlbW92ZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDMp
IAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiB4bWxE
b2Mgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhy
b3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAg
IFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERP
TSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJy
b3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hp
bGQoTm9kZSkgb24geG1sRG9jIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBl
RXJyb3IgCiBQQVNTIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogeG1sRG9jIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAiYWRkRXZlbnRMaXN0ZW5lciIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDApIAogRkFJ
TCBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGNhbGxpbmcgYWRkRXZlbnRMaXN0ZW5lcihET01TdHJp
bmcsRXZlbnRMaXN0ZW5lcixib29sZWFuKSBvbiB4bWxEb2Mgd2l0aCB0b28gZmV3IGFyZ3VtZW50
cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3Vt
ZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KQEAgLTc5Mywy
MSArNzg3LDE1IEBAIEZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaXNEZWZhdWx0TmFtZXNw
YWNlKERPTVN0cmluZykgb24gZG9jdW1lbnQuY3JlYXRlRG9jCiAgICAgW25hdGl2ZSBjb2RlXQog
fSIgZGlkIG5vdCB0aHJvdwogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRG9j
dW1lbnRGcmFnbWVudCgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5zZXJ0QmVmb3JlIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAoNDApIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNl
cnRCZWZvcmUoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkg
d2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dz
OiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworRkFJTCBO
b2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBvbiBkb2N1bWVu
dC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRo
cm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAxIGFyZ3VtZW50cyBmdW5j
dGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAi
RXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikg
ZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK30iIGRpZCBub3QgdGhy
b3cKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQo
KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFwcGVuZENoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAoNDEpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBv
biBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50
cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3Vt
ZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3
IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3Vu
ZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1Mg
Tm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3Jl
YXRlRG9jdW1lbnRGcmFnbWVudCgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBU
eXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZy
YWdtZW50KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZXBsYWNlQ2hpbGQiIHdpdGggdGhlIHBy
b3BlciB0eXBlICg0MikgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGls
ZChOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSB3aXRoIHRv
byBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxl
ZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBj
b2RlXQotfSIgZGlkIG5vdCB0aHJvdworUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBs
YWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkg
d2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBp
bnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgInJlbW92ZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDMpIAotRkFJTCBO
b2RlIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5jcmVh
dGVEb2N1bWVudEZyYWdtZW50KCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5
cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAi
ZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6
IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0
ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6
IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFn
bWVudCgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNT
IEV2ZW50VGFyZ2V0IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgp
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYWRkRXZlbnRMaXN0ZW5lciIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgKDApIAogRkFJTCBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGNhbGxpbmcgYWRkRXZlbnRM
aXN0ZW5lcihET01TdHJpbmcsRXZlbnRMaXN0ZW5lcixib29sZWFuKSBvbiBkb2N1bWVudC5jcmVh
dGVEb2N1bWVudEZyYWdtZW50KCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5
cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAi
ZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KQEAgLTkxNSwyMSArOTAzLDE1IEBAIEZB
SUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaXNEZWZhdWx0TmFtZXNwYWNlKERPTVN0cmluZykg
b24gZG9jdW1lbnQuZG9jdHlwZSB3CiAgICAgW25hdGl2ZSBjb2RlXQogfSIgZGlkIG5vdCB0aHJv
dwogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuZG9jdHlwZSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgImluc2VydEJlZm9yZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQwKSAKLUZBSUwgTm9k
ZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQu
ZG9jdHlwZSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2Vy
dF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7
CitGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9u
IGRvY3VtZW50LmRvY3R5cGUgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVF
cnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAxIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVu
Y3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhp
ZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RF
cnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCiBQQVNTIE5v
ZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5kb2N0eXBlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXBw
ZW5kQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MSkgCi1GQUlMIE5vZGUgaW50ZXJmYWNl
OiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmRvY3R5cGUgd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQg
d2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29k
ZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4
Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlw
ZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVu
ZENoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmRvY3R5cGUgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBt
dXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmRvY3R5
cGUgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZXBsYWNlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0
eXBlICg0MikgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2Rl
LE5vZGUpIG9uIGRvY3VtZW50LmRvY3R5cGUgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRo
cm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5j
dGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAi
RXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNo
eVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIp
CitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9u
IGRvY3VtZW50LmRvY3R5cGUgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVF
cnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmRvY3R5cGUgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJyZW1vdmVDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQzKSAKLUZBSUwg
Tm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuZG9j
dHlwZSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90
aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0g
ICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjog
RE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVF
cnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVD
aGlsZChOb2RlKSBvbiBkb2N1bWVudC5kb2N0eXBlIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVz
dCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogZG9jdW1lbnQu
ZG9jdHlwZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFkZEV2ZW50TGlzdGVuZXIiIHdpdGggdGhl
IHByb3BlciB0eXBlICgwKSAKIEZBSUwgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBjYWxsaW5nIGFk
ZEV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nLEV2ZW50TGlzdGVuZXIsYm9vbGVhbikgb24gZG9jdW1l
bnQuZG9jdHlwZSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFz
c2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAo
KSB7CiAgICAgW25hdGl2ZSBjb2RlXQpAQCAtMTE4NywyMSArMTE2OSwxNSBAQCBGQUlMIE5vZGUg
aW50ZXJmYWNlOiBjYWxsaW5nIGlzRGVmYXVsdE5hbWVzcGFjZShET01TdHJpbmcpIG9uIGVsZW1l
bnQgd2l0aCB0b28gZgogICAgIFtuYXRpdmUgY29kZV0KIH0iIGRpZCBub3QgdGhyb3cKIFBBU1Mg
Tm9kZSBpbnRlcmZhY2U6IGVsZW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJpbnNlcnRCZWZv
cmUiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MCkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxs
aW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGVsZW1lbnQgd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFy
Z3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworRkFJTCBOb2RlIGludGVyZmFjZTogY2Fs
bGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBvbiBlbGVtZW50IHdpdGggdG9vIGZldyBhcmd1
bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMSBh
cmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCi19IiB0
aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90
Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCit9
IiBkaWQgbm90IHRocm93CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBlbGVtZW50IG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAiYXBwZW5kQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MSkgCi1GQUlM
IE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGVsZW1lbnQgd2l0
aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBD
YWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRp
dmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNl
cHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgi
VHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9k
ZSkgb24gZWxlbWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9y
IAogUEFTUyBOb2RlIGludGVyZmFjZTogZWxlbWVudCBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJl
cGxhY2VDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQyKSAKLUZBSUwgTm9kZSBpbnRlcmZh
Y2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24gZWxlbWVudCB3aXRoIHRvbyBm
ZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3
aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2Rl
XQotfSIgZGlkIG5vdCB0aHJvdworUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNl
Q2hpbGQoTm9kZSxOb2RlKSBvbiBlbGVtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0
aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBlbGVtZW50IG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAicmVtb3ZlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MykgCi1GQUlM
IE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIGVsZW1lbnQgd2l0
aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBD
YWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRp
dmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNl
cHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgi
VHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9k
ZSkgb24gZWxlbWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9y
IAogUEFTUyBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGVsZW1lbnQgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJhZGRFdmVudExpc3RlbmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMCkgCiBGQUlMIEV2
ZW50VGFyZ2V0IGludGVyZmFjZTogY2FsbGluZyBhZGRFdmVudExpc3RlbmVyKERPTVN0cmluZyxF
dmVudExpc3RlbmVyLGJvb2xlYW4pIG9uIGVsZW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBt
dXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50
cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KQEAgLTE0MDksMjEg
KzEzODUsMTUgQEAgRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpc0RlZmF1bHROYW1lc3Bh
Y2UoRE9NU3RyaW5nKSBvbiBkb2N1bWVudC5jcmVhdGVUZXgKICAgICBbbmF0aXZlIGNvZGVdCiB9
IiBkaWQgbm90IHRocm93CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVUZXh0
Tm9kZSgiYWJjIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJpbnNlcnRCZWZvcmUiIHdpdGggdGhl
IHByb3BlciB0eXBlICg0MCkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJl
Zm9yZShOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhYmMiKSB3aXRoIHRv
byBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxl
ZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CitGQUlMIE5vZGUgaW50
ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVy
cm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDEgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5j
dGlvbiAoKSB7CiAgICAgW25hdGl2ZSBjb2RlXQogfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGll
cmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVy
cm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKIFBBU1MgTm9k
ZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhYmMiKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgImFwcGVuZENoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDEpIAotRkFJTCBO
b2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZSgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVF
cnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVu
Y3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhp
ZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RF
cnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5v
ZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVy
cm9yIAogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoImFiYyIp
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVwbGFjZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAoNDIpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxO
b2RlKSBvbiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFy
Z3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRo
cmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAz
IiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAo
IlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChO
b2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhYmMiKSB3aXRoIHRvbyBmZXcg
YXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGludGVyZmFjZTogZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoImFiYyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVtb3Zl
Q2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MykgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBj
YWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhYmMi
KSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJv
d3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAg
W25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9N
IEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJv
ciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGls
ZChOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgd2l0aCB0b28gZmV3IGFy
Z3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgRXZlbnRUYXJnZXQgaW50ZXJmYWNl
OiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJh
ZGRFdmVudExpc3RlbmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMCkgCiBGQUlMIEV2ZW50VGFy
Z2V0IGludGVyZmFjZTogY2FsbGluZyBhZGRFdmVudExpc3RlbmVyKERPTVN0cmluZyxFdmVudExp
c3RlbmVyLGJvb2xlYW4pIG9uIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhYmMiKSB3aXRoIHRv
byBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxl
ZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAgICAgW25hdGl2ZSBj
b2RlXQpAQCAtMTU0MywyMSArMTUxMywxNSBAQCBGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5n
IGlzRGVmYXVsdE5hbWVzcGFjZShET01TdHJpbmcpIG9uIHhtbERvYy5jcmVhdGVQcm9jZQogICAg
IFtuYXRpdmUgY29kZV0KIH0iIGRpZCBub3QgdGhyb3cKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IHht
bERvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oImFiYyIsICJkZWYiKSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgImluc2VydEJlZm9yZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQwKSAKLUZB
SUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24geG1s
RG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiYWJjIiwgImRlZiIpIHdpdGggdG9vIGZl
dyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdp
dGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKK0ZBSUwgTm9kZSBpbnRlcmZh
Y2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24geG1sRG9jLmNyZWF0ZVByb2Nl
c3NpbmdJbnN0cnVjdGlvbigiYWJjIiwgImRlZiIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVz
dCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMSBhcmd1bWVudHMg
ZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCiB9IiB0aHJldyBvYmpl
Y3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVy
YXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJy
b3IiKQogUEFTUyBOb2RlIGludGVyZmFjZTogeG1sRG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVj
dGlvbigiYWJjIiwgImRlZiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXBwZW5kQ2hpbGQiIHdp
dGggdGhlIHByb3BlciB0eXBlICg0MSkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFw
cGVuZENoaWxkKE5vZGUpIG9uIHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oImFi
YyIsICJkZWYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFz
c2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAo
KSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5
UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikg
ZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRl
cmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24geG1sRG9jLmNyZWF0ZVByb2Nlc3Np
bmdJbnN0cnVjdGlvbigiYWJjIiwgImRlZiIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0
aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiB4bWxEb2MuY3JlYXRlUHJvY2Vz
c2luZ0luc3RydWN0aW9uKCJhYmMiLCAiZGVmIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZXBs
YWNlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MikgCi1GQUlMIE5vZGUgaW50ZXJmYWNl
OiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIHhtbERvYy5jcmVhdGVQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24oImFiYyIsICJkZWYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3Qg
dGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1
bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0
ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFy
Y2h5UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9y
IikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkg
b24geG1sRG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiYWJjIiwgImRlZiIpIHdpdGgg
dG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJm
YWNlOiB4bWxEb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJhYmMiLCAiZGVmIikgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJyZW1vdmVDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQz
KSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24geG1s
RG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiYWJjIiwgImRlZiIpIHdpdGggdG9vIGZl
dyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdp
dGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVd
Ci19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgi
ICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJv
ciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIHht
bERvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oImFiYyIsICJkZWYiKSB3aXRoIHRvbyBm
ZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBFdmVudFRhcmdldCBpbnRl
cmZhY2U6IHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oImFiYyIsICJkZWYiKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgImFkZEV2ZW50TGlzdGVuZXIiIHdpdGggdGhlIHByb3BlciB0
eXBlICgwKSAKIEZBSUwgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBjYWxsaW5nIGFkZEV2ZW50TGlz
dGVuZXIoRE9NU3RyaW5nLEV2ZW50TGlzdGVuZXIsYm9vbGVhbikgb24geG1sRG9jLmNyZWF0ZVBy
b2Nlc3NpbmdJbnN0cnVjdGlvbigiYWJjIiwgImRlZiIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMg
bXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVu
dHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCkBAIC0xNjczLDIx
ICsxNjM3LDE1IEBAIEZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaXNEZWZhdWx0TmFtZXNw
YWNlKERPTVN0cmluZykgb24gZG9jdW1lbnQuY3JlYXRlQ29tCiAgICAgW25hdGl2ZSBjb2RlXQog
fSIgZGlkIG5vdCB0aHJvdwogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlQ29t
bWVudCgiYWJjIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJpbnNlcnRCZWZvcmUiIHdpdGggdGhl
IHByb3BlciB0eXBlICg0MCkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJl
Zm9yZShOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIpIHdpdGggdG9v
IGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVk
IHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKK0ZBSUwgTm9kZSBpbnRl
cmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRl
Q29tbWVudCgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJv
ciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAxIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rp
b24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJh
cmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJv
ciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCiBQQVNTIE5vZGUg
aW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVDb21tZW50KCJhYmMiKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgImFwcGVuZENoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDEpIAotRkFJTCBOb2Rl
IGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVD
b21tZW50KCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9y
IGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlv
biAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFy
Y2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9y
IikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBp
bnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlQ29t
bWVudCgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAK
IFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAicmVwbGFjZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDIp
IAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBv
biBkb2N1bWVudC5jcmVhdGVDb21tZW50KCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11
c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRz
IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2Jq
ZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGll
cmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVy
cm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9k
ZSkgb24gZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50
cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNy
ZWF0ZUNvbW1lbnQoImFiYyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVtb3ZlQ2hpbGQiIHdp
dGggdGhlIHByb3BlciB0eXBlICg0MykgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJl
bW92ZUNoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIpIHdpdGggdG9v
IGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVk
IHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNv
ZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9u
IDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVF
cnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9u
IGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVz
dCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogZG9jdW1lbnQu
Y3JlYXRlQ29tbWVudCgiYWJjIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhZGRFdmVudExpc3Rl
bmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMCkgCiBGQUlMIEV2ZW50VGFyZ2V0IGludGVyZmFj
ZTogY2FsbGluZyBhZGRFdmVudExpc3RlbmVyKERPTVN0cmluZyxFdmVudExpc3RlbmVyLGJvb2xl
YW4pIG9uIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIpIHdpdGggdG9vIGZldyBhcmd1bWVu
dHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1
bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rl
cy9Ob2RlLWFwcGVuZENoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtYXBwZW5kQ2hpbGQtZXhwZWN0ZWQu
dHh0CmluZGV4IDNhMjg5ZTgzMmU2YTJkOTQ4OTBjMDI0YTU2MTQ5NjhjMDE0NTkzYmQuLmIxMzBj
YWZmZDg0ODI3NjRmNzBjMzQwM2U0ZjA4MDI4OWEyYTkwZTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtYXBwZW5k
Q2hpbGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtYXBwZW5kQ2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0x
LDEyICsxLDEyIEBACiAKIAotRkFJTCBXZWJJREwgdGVzdHMgYXNzZXJ0X3Rocm93czogZnVuY3Rp
b24gImZ1bmN0aW9uICgpIHsgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChudWxsKSB9IiB0aHJl
dyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91
bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNT
IFdlYklETCB0ZXN0cyAKIFBBU1MgQXBwZW5kaW5nIHRvIGEgbGVhZiBub2RlLiAKLUZBSUwgQXBw
ZW5kaW5nIG51bGwgdG8gYSB0ZXh0IG5vZGUgYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gImZ1bmN0
aW9uICgpIHsgbm9kZS5hcHBlbmRDaGlsZChudWxsKSB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBI
aWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0
RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBB
cHBlbmRpbmcgbnVsbCB0byBhIHRleHQgbm9kZSAKIFBBU1MgQXBwZW5kaW5nIHRvIGEgdGV4dCBu
b2RlIAotRkFJTCBBcHBlbmRpbmcgbnVsbCB0byBhIGNvbW1lbnQgYXNzZXJ0X3Rocm93czogZnVu
Y3Rpb24gImZ1bmN0aW9uICgpIHsgbm9kZS5hcHBlbmRDaGlsZChudWxsKSB9IiB0aHJldyBvYmpl
Y3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVy
YXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJy
b3IiKQorUEFTUyBBcHBlbmRpbmcgbnVsbCB0byBhIGNvbW1lbnQgCiBQQVNTIEFwcGVuZGluZyB0
byBhIGNvbW1lbnQgCi1GQUlMIEFwcGVuZGluZyBudWxsIHRvIGEgZG9jdHlwZSBhc3NlcnRfdGhy
b3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyBub2RlLmFwcGVuZENoaWxkKG51bGwpIH0iIHRo
cmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAz
IiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAo
IlR5cGVFcnJvciIpCitQQVNTIEFwcGVuZGluZyBudWxsIHRvIGEgZG9jdHlwZSAKIFBBU1MgQXBw
ZW5kaW5nIHRvIGEgZG9jdHlwZSAKIFBBU1MgQXBwZW5kaW5nIGEgZG9jdW1lbnQgCiBQQVNTIEFk
b3B0aW5nIGFuIG9ycGhhbiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtaW5zZXJ0QmVmb3JlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVz
L05vZGUtaW5zZXJ0QmVmb3JlLWV4cGVjdGVkLnR4dAppbmRleCA1NmJjZDJhODBiYjM0ZDM3YWMw
ODRmNzc0MTY0ZjAxY2ZiZTk0YTc4Li5jNjYyMjMzZGMwNTYzODU3ZjIzYjYwNjkwMzRhYzhmNzVi
OGNlYTZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLWluc2VydEJlZm9yZS1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1p
bnNlcnRCZWZvcmUtZXhwZWN0ZWQudHh0CkBAIC0xLDEyICsxLDEyIEBACiAKLUZBSUwgQ2FsbGlu
ZyBpbnNlcnRCZWZvcmUgd2l0aCBhIG5vbi1Ob2RlIGZpcnN0IGFyZ3VtZW50IG11c3QgdGhyb3cg
VHlwZUVycm9yLiBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyBkb2N1bWVu
dC5ib2R5Lmluc2VydEJlZm9yZShudWxsLCBudWxsKSB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBO
b3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVk
IG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCi1GQUlMIENhbGxpbmcgaW5zZXJ0QmVm
b3JlIHdpdGggYSBub24tTm9kZSBmaXJzdCBhcmd1bWVudCBvbiBhIGxlYWYgbm9kZSBEb2N1bWVu
dFR5cGUgbXVzdCB0aHJvdyBUeXBlRXJyb3IuIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5j
dGlvbiAoKSB7IG5vZGUuaW5zZXJ0QmVmb3JlKG51bGwsIG51bGwpIH0iIHRocmV3IG9iamVjdCAi
RXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNo
eVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIp
CitQQVNTIENhbGxpbmcgaW5zZXJ0QmVmb3JlIHdpdGggYSBub24tTm9kZSBmaXJzdCBhcmd1bWVu
dCBtdXN0IHRocm93IFR5cGVFcnJvci4gCitQQVNTIENhbGxpbmcgaW5zZXJ0QmVmb3JlIHdpdGgg
YSBub24tTm9kZSBmaXJzdCBhcmd1bWVudCBvbiBhIGxlYWYgbm9kZSBEb2N1bWVudFR5cGUgbXVz
dCB0aHJvdyBUeXBlRXJyb3IuIAogUEFTUyBDYWxsaW5nIGluc2VydEJlZm9yZSBhbiBhIGxlYWYg
bm9kZSBEb2N1bWVudFR5cGUgbXVzdCB0aHJvdyBISUVSQVJDSFlfUkVRVUVTVF9FUlIuIAotRkFJ
TCBDYWxsaW5nIGluc2VydEJlZm9yZSB3aXRoIGEgbm9uLU5vZGUgZmlyc3QgYXJndW1lbnQgb24g
YSBsZWFmIG5vZGUgVGV4dCBtdXN0IHRocm93IFR5cGVFcnJvci4gYXNzZXJ0X3Rocm93czogZnVu
Y3Rpb24gImZ1bmN0aW9uICgpIHsgbm9kZS5pbnNlcnRCZWZvcmUobnVsbCwgbnVsbCkgfSIgdGhy
ZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMi
ICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgi
VHlwZUVycm9yIikKK1BBU1MgQ2FsbGluZyBpbnNlcnRCZWZvcmUgd2l0aCBhIG5vbi1Ob2RlIGZp
cnN0IGFyZ3VtZW50IG9uIGEgbGVhZiBub2RlIFRleHQgbXVzdCB0aHJvdyBUeXBlRXJyb3IuIAog
UEFTUyBDYWxsaW5nIGluc2VydEJlZm9yZSBhbiBhIGxlYWYgbm9kZSBUZXh0IG11c3QgdGhyb3cg
SElFUkFSQ0hZX1JFUVVFU1RfRVJSLiAKLUZBSUwgQ2FsbGluZyBpbnNlcnRCZWZvcmUgd2l0aCBh
IG5vbi1Ob2RlIGZpcnN0IGFyZ3VtZW50IG9uIGEgbGVhZiBub2RlIENvbW1lbnQgbXVzdCB0aHJv
dyBUeXBlRXJyb3IuIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IG5vZGUu
aW5zZXJ0QmVmb3JlKG51bGwsIG51bGwpIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNo
eVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIp
IGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIENhbGxpbmcg
aW5zZXJ0QmVmb3JlIHdpdGggYSBub24tTm9kZSBmaXJzdCBhcmd1bWVudCBvbiBhIGxlYWYgbm9k
ZSBDb21tZW50IG11c3QgdGhyb3cgVHlwZUVycm9yLiAKIFBBU1MgQ2FsbGluZyBpbnNlcnRCZWZv
cmUgYW4gYSBsZWFmIG5vZGUgQ29tbWVudCBtdXN0IHRocm93IEhJRVJBUkNIWV9SRVFVRVNUX0VS
Ui4gCi1GQUlMIENhbGxpbmcgaW5zZXJ0QmVmb3JlIHdpdGggYSBub24tTm9kZSBmaXJzdCBhcmd1
bWVudCBvbiBhIGxlYWYgbm9kZSBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gbXVzdCB0aHJvdyBUeXBl
RXJyb3IuIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IG5vZGUuaW5zZXJ0
QmVmb3JlKG51bGwsIG51bGwpIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVl
c3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVj
dGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIENhbGxpbmcgaW5zZXJ0
QmVmb3JlIHdpdGggYSBub24tTm9kZSBmaXJzdCBhcmd1bWVudCBvbiBhIGxlYWYgbm9kZSBQcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24gbXVzdCB0aHJvdyBUeXBlRXJyb3IuIAogUEFTUyBDYWxsaW5nIGlu
c2VydEJlZm9yZSBhbiBhIGxlYWYgbm9kZSBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gbXVzdCB0aHJv
dyBISUVSQVJDSFlfUkVRVUVTVF9FUlIuIAogUEFTUyBDYWxsaW5nIGluc2VydEJlZm9yZSB3aXRo
IGFuIGluY2x1c2l2ZSBhbmNlc3RvciBvZiB0aGUgY29udGV4dCBvYmplY3QgbXVzdCB0aHJvdyBI
SUVSQVJDSFlfUkVRVUVTVF9FUlIuIAogUEFTUyBDYWxsaW5nIGluc2VydEJlZm9yZSB3aXRoIGEg
cmVmZXJlbmNlIGNoaWxkIHdob3NlIHBhcmVudCBpcyBub3QgdGhlIGNvbnRleHQgbm9kZSBtdXN0
IHRocm93IGEgTm90Rm91bmRFcnJvci4gCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLXJlbW92ZUNoaWxkLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9t
L25vZGVzL05vZGUtcmVtb3ZlQ2hpbGQtZXhwZWN0ZWQudHh0CmluZGV4IDAyOTEwYmY5Y2QyNDBh
MGNkZDgzY2YxMzc2MGM0NTYwZGZkOTQzYTIuLjEzOTdjNGViZWY2Yzk3OGUxMDNhYjMxYTM4MTZm
OTJkZWRjM2VmNTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtcmVtb3ZlQ2hpbGQtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05v
ZGUtcmVtb3ZlQ2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0yNyw1ICsyNyw1IEBAIFBBU1MgQ2FsbGlu
ZyByZW1vdmVDaGlsZCBvbiBhIHRleHQgZnJvbSBhIHN5bnRoZXRpYyBkb2N1bWVudCB3aXRoIG5v
IGNoaWxkcmVuIHNoCiBQQVNTIFBhc3NpbmcgYSBkZXRhY2hlZCBjb21tZW50IGZyb20gYSBzeW50
aGV0aWMgZG9jdW1lbnQgdG8gcmVtb3ZlQ2hpbGQgc2hvdWxkIG5vdCBhZmZlY3QgaXQuIAogUEFT
UyBQYXNzaW5nIGEgbm9uLWRldGFjaGVkIGNvbW1lbnQgZnJvbSBhIHN5bnRoZXRpYyBkb2N1bWVu
dCB0byByZW1vdmVDaGlsZCBzaG91bGQgbm90IGFmZmVjdCBpdC4gCiBQQVNTIENhbGxpbmcgcmVt
b3ZlQ2hpbGQgb24gYSBjb21tZW50IGZyb20gYSBzeW50aGV0aWMgZG9jdW1lbnQgd2l0aCBubyBj
aGlsZHJlbiBzaG91bGQgdGhyb3cgTk9UX0ZPVU5EX0VSUi4gCi1GQUlMIFBhc3NpbmcgYSB2YWx1
ZSB0aGF0IGlzIG5vdCBhIE5vZGUgcmVmZXJlbmNlIHRvIHJlbW92ZUNoaWxkIHNob3VsZCB0aHJv
dyBUeXBlRXJyb3IuIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IGRvY3Vt
ZW50LmJvZHkucmVtb3ZlQ2hpbGQobnVsbCkgfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91
bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmpl
Y3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBQYXNzaW5nIGEgdmFsdWUgdGhhdCBp
cyBub3QgYSBOb2RlIHJlZmVyZW5jZSB0byByZW1vdmVDaGlsZCBzaG91bGQgdGhyb3cgVHlwZUVy
cm9yLiAKIGIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZG9tL25vZGVzL05vZGUtcmVwbGFjZUNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtcmVw
bGFjZUNoaWxkLWV4cGVjdGVkLnR4dAppbmRleCBlN2Y3MGZhMzZjNWMxY2JmOTJjN2U0YjdhNDlm
YmY4YWRjYmM0ZjZkLi5kMTdjOGI1NzBlYjEyMWU5NjczNmE5YzY5NGZiMjVmMTgxYWFmY2MwIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Rv
bS9ub2Rlcy9Ob2RlLXJlcGxhY2VDaGlsZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1yZXBsYWNlQ2hp
bGQtZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNSBAQAogCi1GQUlMIFBhc3NpbmcgbnVsbCB0byBy
ZXBsYWNlQ2hpbGQgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yLiBhc3NlcnRfdGhyb3dzOiBmdW5j
dGlvbiAiZnVuY3Rpb24gKCkgewotICAgIGEucmVwbGFjZUNoaWxkKG51bGwsIG51bGwpOwotICB9
IiBkaWQgbm90IHRocm93CitQQVNTIFBhc3NpbmcgbnVsbCB0byByZXBsYWNlQ2hpbGQgc2hvdWxk
IHRocm93IGEgVHlwZUVycm9yLiAKIEZBSUwgSWYgY2hpbGQncyBwYXJlbnQgaXMgbm90IHRoZSBj
b250ZXh0IG5vZGUsIGEgTm90Rm91bmRFcnJvciBleGNlcHRpb24gc2hvdWxkIGJlIHRocm93biBh
c3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIGEucmVwbGFjZUNoaWxk
KGEsIGMpOwogICB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6
IERPTSBFeGNlcHRpb24gMyIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gTm90Rm91bmRFcnJv
cjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDMsIGV4cGVjdGVkIDgKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vaW50
ZXJmYWNlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0CmluZGV4IDJlNThhZTYz
NTE5YTc1NTM3ZWRkMmQ4OTc0MTBmMjI1NjAwYzM2YzYuLjA0NjIyMDM1OWFhMTA4OGU5OTUwNjEw
YjFmMTQ3NDZlMmJlMWQ2N2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9pbnRl
cmZhY2VzLWV4cGVjdGVkLnR4dApAQCAtMTIyNSwyMSArMTIyNSwxNSBAQCBGQUlMIE5vZGUgaW50
ZXJmYWNlOiBjYWxsaW5nIGlzRGVmYXVsdE5hbWVzcGFjZShET01TdHJpbmcpIG9uIGlmcmFtZS5j
b250ZW50RG9jdQogICAgIFtuYXRpdmUgY29kZV0KIH0iIGRpZCBub3QgdGhyb3cKIFBBU1MgTm9k
ZSBpbnRlcmZhY2U6IGlmcmFtZS5jb250ZW50RG9jdW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJpbnNlcnRCZWZvcmUiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MCkgCi1GQUlMIE5vZGUgaW50
ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGlmcmFtZS5jb250ZW50
RG9jdW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3Nl
cnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkg
eworRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBv
biBpZnJhbWUuY29udGVudERvY3VtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMSBhcmd1bWVudHMgZnVuY3Rp
b24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVy
cm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4
cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCit9IiB0aHJldyBvYmplY3Qg
IkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJj
aHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3Ii
KQogUEFTUyBOb2RlIGludGVyZmFjZTogaWZyYW1lLmNvbnRlbnREb2N1bWVudCBtdXN0IGluaGVy
aXQgcHJvcGVydHkgImFwcGVuZENoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDEpIAotRkFJ
TCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiBpZnJhbWUuY29u
dGVudERvY3VtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3Ig
YXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9u
ICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3Vu
ZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVj
dCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5n
IGFwcGVuZENoaWxkKE5vZGUpIG9uIGlmcmFtZS5jb250ZW50RG9jdW1lbnQgd2l0aCB0b28gZmV3
IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGlm
cmFtZS5jb250ZW50RG9jdW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZXBsYWNlQ2hpbGQi
IHdpdGggdGhlIHByb3BlciB0eXBlICg0MikgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5n
IHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIGlmcmFtZS5jb250ZW50RG9jdW1lbnQgd2l0aCB0
b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxs
ZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUg
Y29kZV0KLX0iIGRpZCBub3QgdGhyb3cKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVw
bGFjZUNoaWxkKE5vZGUsTm9kZSkgb24gaWZyYW1lLmNvbnRlbnREb2N1bWVudCB3aXRoIHRvbyBm
ZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGludGVyZmFjZTog
aWZyYW1lLmNvbnRlbnREb2N1bWVudCBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlbW92ZUNoaWxk
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDMpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGlu
ZyByZW1vdmVDaGlsZChOb2RlKSBvbiBpZnJhbWUuY29udGVudERvY3VtZW50IHdpdGggdG9vIGZl
dyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdp
dGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVd
Ci19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgi
ICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJv
ciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIGlm
cmFtZS5jb250ZW50RG9jdW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5
cGVFcnJvciAKIFBBU1MgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBpZnJhbWUuY29udGVudERvY3Vt
ZW50IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYWRkRXZlbnRMaXN0ZW5lciIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgKDApIAogRkFJTCBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGNhbGxpbmcgYWRkRXZl
bnRMaXN0ZW5lcihET01TdHJpbmcsRXZlbnRMaXN0ZW5lcixib29sZWFuKSBvbiBpZnJhbWUuY29u
dGVudERvY3VtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3Ig
YXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9u
ICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCkBAIC0xNTUxLDIxICsxNTQ1LDE1IEBAIEZBSUwgTm9k
ZSBpbnRlcmZhY2U6IGNhbGxpbmcgaXNEZWZhdWx0TmFtZXNwYWNlKERPTVN0cmluZykgb24gZG9j
dW1lbnQuaW1wbGVtZW50CiAgICAgW25hdGl2ZSBjb2RlXQogfSIgZGlkIG5vdCB0aHJvdwogUEFT
UyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQo
bnVsbCwgIiIsIG51bGwpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5zZXJ0QmVmb3JlIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAoNDApIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNl
cnRCZWZvcmUoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1
bWVudChudWxsLCAiIiwgbnVsbCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5
cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAi
ZnVuY3Rpb24gKCkgeworRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZvcmUo
Tm9kZSxOb2RlKSBvbiBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudChudWxs
LCAiIiwgbnVsbCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBh
c3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAxIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24g
KCkgewogICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5k
RXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0
ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK30iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJh
cmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJv
ciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCiBQQVNTIE5vZGUg
aW50ZXJmYWNlOiBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudChudWxsLCAi
IiwgbnVsbCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhcHBlbmRDaGlsZCIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgKDQxKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQo
Tm9kZSkgb24gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwgIiIs
IG51bGwpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0
X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsK
LSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9y
OiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlw
ZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVu
ZENoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KG51
bGwsICIiLCBudWxsKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9y
IAogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9j
dW1lbnQobnVsbCwgIiIsIG51bGwpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVwbGFjZUNoaWxk
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDIpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGlu
ZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVh
dGVEb2N1bWVudChudWxsLCAiIiwgbnVsbCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRo
cm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5j
dGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIGRpZCBub3QgdGhyb3cK
K1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24g
ZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwgIiIsIG51bGwpIHdp
dGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50
ZXJmYWNlOiBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudChudWxsLCAiIiwg
bnVsbCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZW1vdmVDaGlsZCIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgKDQzKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9k
ZSkgb24gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwgIiIsIG51
bGwpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Ro
cm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAg
ICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBE
T00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVy
cm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNo
aWxkKE5vZGUpIG9uIGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KG51bGws
ICIiLCBudWxsKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAog
UEFTUyBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0
ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFkZEV2ZW50
TGlzdGVuZXIiIHdpdGggdGhlIHByb3BlciB0eXBlICgwKSAKIEZBSUwgRXZlbnRUYXJnZXQgaW50
ZXJmYWNlOiBjYWxsaW5nIGFkZEV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nLEV2ZW50TGlzdGVuZXIs
Ym9vbGVhbikgb24gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwg
IiIsIG51bGwpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNz
ZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgp
IHsKICAgICBbbmF0aXZlIGNvZGVdCkBAIC0yMTcxLDIxICsyMTU5LDE1IEBAIEZBSUwgTm9kZSBp
bnRlcmZhY2U6IGNhbGxpbmcgaXNEZWZhdWx0TmFtZXNwYWNlKERPTVN0cmluZykgb24gZG9jdW1l
bnQuY3JlYXRlRWxlCiAgICAgW25hdGl2ZSBjb2RlXQogfSIgZGlkIG5vdCB0aHJvdwogUEFTUyBO
b2RlIGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibm9zY3JpcHQiKSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgImluc2VydEJlZm9yZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQwKSAK
LUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibm9zY3JpcHQiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRz
IG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1l
bnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CitGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5n
IGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm5vc2Ny
aXB0Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRf
dGhyb3dzOiBDYWxsZWQgd2l0aCAxIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewog
ICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6
IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBl
RXJyb3IiICgiVHlwZUVycm9yIikKK30iIGRpZCBub3QgdGhyb3cKIFBBU1MgTm9kZSBpbnRlcmZh
Y2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm5vc2NyaXB0IikgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJhcHBlbmRDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQxKSAKLUZBSUwgTm9kZSBp
bnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgibm9zY3JpcHQiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVy
cm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5j
dGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90
Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBv
YmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTogY2Fs
bGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJub3Njcmlw
dCIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5v
ZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJub3NjcmlwdCIpIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAicmVwbGFjZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDIpIAot
RkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJub3NjcmlwdCIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMg
bXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVu
dHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiBkaWQgbm90
IHRocm93CitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5v
ZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm5vc2NyaXB0Iikgd2l0aCB0b28gZmV3IGFy
Z3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoIm5vc2NyaXB0IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZW1v
dmVDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQzKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6
IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibm9z
Y3JpcHQiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2Vy
dF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7
Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJv
cjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5
cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZW1v
dmVDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJub3NjcmlwdCIpIHdpdGgg
dG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIEV2ZW50VGFyZ2V0
IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibm9zY3JpcHQiKSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgImFkZEV2ZW50TGlzdGVuZXIiIHdpdGggdGhlIHByb3BlciB0eXBlICgwKSAK
IEZBSUwgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBjYWxsaW5nIGFkZEV2ZW50TGlzdGVuZXIoRE9N
U3RyaW5nLEV2ZW50TGlzdGVuZXIsYm9vbGVhbikgb24gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
bm9zY3JpcHQiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFz
c2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAo
KSB7CiAgICAgW25hdGl2ZSBjb2RlXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL2Rv
dC1ub2RlLWJhc2UtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9k
b3Qtbm9kZS1iYXNlLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKaW5kZXggZjQ0MDZjYmZlZDM2MWQ2
N2I5YzU2ZTc1YjE5ZTE4MzI4YWIzYmNkMi4uMzZkNTNiNGViODE1YTFhZDNiODBjZGM3N2YxMDA4
OWMzMjcwMzAwZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvZG9tL2RvdC1ub2RlLWJhc2Ut
ZXhjZXB0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vZG90LW5vZGUt
YmFzZS1leGNlcHRpb24tZXhwZWN0ZWQudHh0CkBAIC0zLDcgKzMsNyBAQCBUaGlzIHRlc3QgY2hl
Y2tzIHRoYXQgYSBjb3JyZWN0IGV4Y2VwdGlvbiBpcyByYWlzZWQgd2hlbiBjYWxjdWxhdGluZyB0
aGUgYmFzZSB2YQogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1MgKGRvY3VtZW50
LmFwcGVuZENoaWxkKCkpLmZvb2JhcigpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm90Rm91bmRF
cnJvcjogRE9NIEV4Y2VwdGlvbiA4LgorUEFTUyAoZG9jdW1lbnQuYXBwZW5kQ2hpbGQoKSkuZm9v
YmFyKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9kb3Qtbm9kZS1iYXNlLWV4Y2VwdGlvbi5qcyBiL0xh
eW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvZG90LW5vZGUtYmFzZS1leGNlcHRpb24uanMK
aW5kZXggOWYzNjJhN2Y3ODgxN2JjYjhmYzdjODdlZDI2YzYzY2YyYTc4YTE5NS4uNzFkNDcxOTk5
NzU2NTg0MzI5YjhkZGNkNzQ3Yzc3NzFlNDQwNzUxYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
anMvZG9tL3NjcmlwdC10ZXN0cy9kb3Qtbm9kZS1iYXNlLWV4Y2VwdGlvbi5qcworKysgYi9MYXlv
dXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2RvdC1ub2RlLWJhc2UtZXhjZXB0aW9uLmpzCkBA
IC0zLDQgKzMsNCBAQCBkZXNjcmlwdGlvbigKICk7CiAKIC8vIFNob3VsZCBiZSBhIERPTSBleGNl
cHRpb24sIG5vdCBqdXN0IHNvbWUgIlR5cGVFcnJvcjogTnVsbCB2YWx1ZSIuCi1zaG91bGRUaHJv
dygnKGRvY3VtZW50LmFwcGVuZENoaWxkKCkpLmZvb2JhcigpJywgJyJFcnJvcjogTm90Rm91bmRF
cnJvcjogRE9NIEV4Y2VwdGlvbiA4IicpOworc2hvdWxkVGhyb3coJyhkb2N1bWVudC5hcHBlbmRD
aGlsZCgpKS5mb29iYXIoKScsICciVHlwZUVycm9yOiBUeXBlIGVycm9yIicpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260859</attachid>
            <date>2015-09-09 08:25:39 -0700</date>
            <delta_ts>2015-09-09 10:09:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148971-20150909082533.patch</filename>
            <type>text/plain</type>
            <size>250004</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NTQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmZhNWUxZjViM2Q3ODg0
M2IyZGQyYWQxOTc2NTRiNThjMTU0ZTc4Yi4uYzliMzZkZTJhNDY5MTg1M2U4ZmU0OWQ3NDRkZDZl
Y2U3YzBmZTE1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE1LTA5LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTm9kZS5hcHBlbmRDaGlsZChu
dWxsKSAvIHJlcGxhY2VDaGlsZChudWxsLCBudWxsKSAvIHJlbW92ZUNoaWxkKG51bGwpIC8gaW5z
ZXJ0QmVmb3JlKG51bGwsIHJlZikgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg5NzEKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzIyNTYwODgzPgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjI1NTkyMjU+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm9kZS5h
cHBlbmRDaGlsZChudWxsKSAvIHJlcGxhY2VDaGlsZChudWxsLCBudWxsKSAvIHJlbW92ZUNoaWxk
KG51bGwpCisgICAgICAgIGFuZCBpbnNlcnRCZWZvcmUobnVsbCwgcmVmKSBzaG91bGQgdGhyb3cg
YSBUeXBlRXJyb3IgaW5zdGVhZCBvZiBhCisgICAgICAgIE5vdEZvdW5kRXJyb3IsIGFzIHBlciB0
aGUgc3BlY2lmaWNhdGlvbjoKKyAgICAgICAgaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNu
b2RlCisKKyAgICAgICAgVGhlIHBhcmFtZXRlcnMgYXJlIG5vdCBudWxsYWJsZSBzbyB0aGUgV2Vi
IElETCBzcGVjaWZpY2F0aW9uIHNheXMKKyAgICAgICAgd2Ugc2hvdWxkIHRocm93IGEgVHlwZUVy
cm9yIGluIHRoaXMgY2FzZS4KKworICAgICAgICBUaGlzIHBhdGNoIG1vdmVzIHRoZSBudWxsLWNo
ZWNraW5nIGZyb20gQ29udGFpbmVyTm9kZSB0byB0aGUgbWV0aG9kcworICAgICAgICBvbiBOb2Rl
LiBUaGUgbnVsbC1jaGVja2luZyBpcyBzdXBwb3NlZCB0byBiZSBkb25lIGJ5IHRoZSBiaW5kaW5n
cyBjb2RlCisgICAgICAgIGJ1dCBvdXIgZ2VuZXJhdG9yIGN1cnJlbnRseSBkb2VzIG5vdCBzdXBw
b3J0IHRoaXMgc28gd2UgZG8gdGhlIG51bGwKKyAgICAgICAgY2hlY2tpbmcgYXMgY2xvc2UgdG8g
dGhlIGJpbmRpbmdzIGFzIHBvc3NpYmxlLiBUaGUgYmluZGluZ3MgY29kZSBpcworICAgICAgICBj
YWxsaW5nIHRoZSBtZXRob2RzIG9uIE5vZGUuIFRoaXMgYWxzbyBtYWtlcyBzdXJlIHdlIHRocm93
IGEgVHlwZUVycm9yCisgICAgICAgIGZvciBudWxsLWFyZ3VtZW50IHdoZW4gdGhlIE5vZGUgaXMg
bm90IGEgQ29udGFpbmVyTm9kZS4gRm9yIGUuZy4KKyAgICAgICAgVGV4dC5hcHBlbmRDaGlsZChu
dWxsKSBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3IgdG9vLgorCisgICAgICAgIFRoZSBtZXRob2Rz
IG9uIENvbnRhaW5lck5vZGUgbm93IHRha2UgcmVmZXJlbmNlcyBpbnN0ZWFhZCBvZiBwb2ludGVy
CisgICAgICAgIHBhcmFtZXRlcnMgbm93IHRoYXQgdGhlIG51bGwtY2hlY2tpbmcgaXMgZG9uZSBh
dCB0aGUgY2FsbCBzaXRlIGluCisgICAgICAgIE5vZGUuIFRoaXMgbGVhZCB0byBhIGxvdCBvZiBj
b2RlIHVwZGF0ZSBhcyB0aG9zZSBtZXRob2RzIGFyZSB1c2VkCisgICAgICAgIGEgbG90IHRocm91
Z2hvdXQgdGhlIGNvZGUgYmFzZS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGFscmVhZHkgY292
ZXJlZCBieSBwcmUtZXhpc3RpbmcgbGF5b3V0IHRlc3RzLgorCiAyMDE1LTA5LTA4ICBEYXZpZCBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OOiBJbmxpbmUtYmxv
Y2sgYmFzZWxpbmUgaXMgd3Jvbmcgd2hlbiB6ZXJvLXdpZHRoIHJlcGxhY2VkIGNoaWxkIGlzIHBy
ZXNlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA2MGFkZjczMmFjODdhYmUwNDEyMjcxM2NmMzU5MTcw
ODMxZGM5ZTE1Li5mODI3OTRjYTUwNmNjNDI4MzQ1MDZjYjA1NmJjZGYwNmE2Y2M2MmQ1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTUtMDktMDggIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBOb2RlLmFwcGVuZENoaWxkKG51bGwpIC8gcmVw
bGFjZUNoaWxkKG51bGwsIG51bGwpIC8gcmVtb3ZlQ2hpbGQobnVsbCkgLyBpbnNlcnRCZWZvcmUo
bnVsbCwgcmVmKSBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3IKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODk3MQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMjI1NjA4ODM+CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjU1OTIyNT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb250YWluZXJOb2RlOjph
cHBlbmRDaGlsZCgpIG5vdyB0YWtlcyBhIFJlZjxOb2RlPiYmIHBhcmFtZXRlciBzbyB3ZQorICAg
ICAgICBuZWVkIHRvIHVwZGF0ZSB0aGUgY2FsbCBzaXRlLgorCisgICAgICAgICogV2ViVmlldy9X
ZWJGcmFtZS5tbToKKyAgICAgICAgKC1bV2ViRnJhbWUgX2RvY3VtZW50RnJhZ21lbnRXaXRoTm9k
ZXNBc1BhcmFncmFwaHM6XSk6CisKIDIwMTUtMDktMDcgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBw
bGUuY29tPgogCiAgICAgICAgIFtNYWNdIERlYnVnUmVsZWFzZSBidWlsZHMgc2hvdWxkIGxpbmsg
YWdhaW5zdCBsaWJXZWJLaXRTeXN0ZW1JbnRlcmZhY2VFbENhcGl0YW4uYSBvbiAxMC4xMQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCmluZGV4IDI0MTkyNWQxMDkxYTZiNGQ4ZmRlNGQ1Y2FiZTlmNzdlNjk0ZWMwY2UuLjhkOGM5
YWEwMjA5YzNkYTdjMmZlZDgwMTRjMzQ1ZTUwZmI5ZmYxNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMyBAQAorMjAxNS0wOS0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisg
ICAgICAgIE5vZGUuYXBwZW5kQ2hpbGQobnVsbCkgLyByZXBsYWNlQ2hpbGQobnVsbCwgbnVsbCkg
LyByZW1vdmVDaGlsZChudWxsKSAvIGluc2VydEJlZm9yZShudWxsLCByZWYpIHNob3VsZCB0aHJv
dyBhIFR5cGVFcnJvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQ4OTcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjU2MDg4Mz4KKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzIyNTU5MjI1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIENvbnRhaW5lck5vZGU6OmFwcGVuZENoaWxkKCkgbm93IHRha2Vz
IGEgUmVmPE5vZGU+JiYgcGFyYW1ldGVyIHNvIHdlCisgICAgICAgIG5lZWQgdG8gdXBkYXRlIHRo
ZSBjYWxsIHNpdGVzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVn
aW4ubW06CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6UERGUGx1Z2luKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkFubm90YXRpb24ubW06CisgICAgICAg
IChXZWJLaXQ6OlBERlBsdWdpbkFubm90YXRpb246OmF0dGFjaCk6CisgICAgICAgIChXZWJLaXQ6
OlBERlBsdWdpbkFubm90YXRpb246On5QREZQbHVnaW5Bbm5vdGF0aW9uKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24ubW06CisgICAg
ICAgIChXZWJLaXQ6OlBERlBsdWdpbkNob2ljZUFubm90YXRpb246OmNyZWF0ZUFubm90YXRpb25F
bGVtZW50KToKKwogMjAxNS0wOS0wOCAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+
CiAKICAgICAgICAgW01hY10gRXhwb3NlIEVuYWJsZS9EaXNhYmxlIEFjY2VsZXJhdGVkIERyYXdp
bmcgaW4gTWluaUJyb3dzZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1
Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAKaW5kZXggOGY5NmM5ZjAyOGM3
MjhmZGEwM2JiNTBhN2VlOTZiYWZjM2RhOTA1Yi4uYjQ0Y2ZkMjA4NTllNzRlMTMxN2E5MzRhMTVj
NTc2Njk4YjdlMTdiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5z
L1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAKQEAgLTgxLDkgKzgxLDkgQEAg
Ym9vbCBZb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQ6Omluc3RhbGxSZXBsYWNlbWVudChTaGFkb3dS
b290KiByb290KQogewogICAgIG1fZW1iZWRTaGFkb3dFbGVtZW50ID0gWW91VHViZUVtYmVkU2hh
ZG93RWxlbWVudDo6Y3JlYXRlKG1fcGFyZW50RWxlbWVudC0+ZG9jdW1lbnQoKSk7CiAKLSAgICBy
b290LT5hcHBlbmRDaGlsZChtX2VtYmVkU2hhZG93RWxlbWVudC5nZXQoKSk7CisgICAgcm9vdC0+
YXBwZW5kQ2hpbGQoKm1fZW1iZWRTaGFkb3dFbGVtZW50KTsKIAotICAgIFJlZlB0cjxIVE1MSUZy
YW1lRWxlbWVudD4gaWZyYW1lRWxlbWVudCA9IEhUTUxJRnJhbWVFbGVtZW50OjpjcmVhdGUoSFRN
TE5hbWVzOjppZnJhbWVUYWcsIG1fcGFyZW50RWxlbWVudC0+ZG9jdW1lbnQoKSk7CisgICAgUmVm
PEhUTUxJRnJhbWVFbGVtZW50PiBpZnJhbWVFbGVtZW50ID0gSFRNTElGcmFtZUVsZW1lbnQ6OmNy
ZWF0ZShIVE1MTmFtZXM6OmlmcmFtZVRhZywgbV9wYXJlbnRFbGVtZW50LT5kb2N1bWVudCgpKTsK
ICAgICBpZiAobV9hdHRyaWJ1dGVzLmNvbnRhaW5zKCJ3aWR0aCIpKQogICAgICAgICBpZnJhbWVF
bGVtZW50LT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjp3aWR0aEF0dHIsIEF0b21pY1N0cmluZygi
MTAwJSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAKQEAgLTk4
LDcgKzk4LDcgQEAgYm9vbCBZb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQ6Omluc3RhbGxSZXBsYWNl
bWVudChTaGFkb3dSb290KiByb290KQogICAgIAogICAgIC8vIERpc2FibGUgZnJhbWUgZmxhdHRl
bmluZyBmb3IgdGhpcyBpZnJhbWUuCiAgICAgaWZyYW1lRWxlbWVudC0+c2V0QXR0cmlidXRlKEhU
TUxOYW1lczo6c2Nyb2xsaW5nQXR0ciwgQXRvbWljU3RyaW5nKCJubyIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBtX2VtYmVkU2hhZG93RWxlbWVudC0+YXBwZW5k
Q2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAgbV9lbWJlZFNoYWRvd0VsZW1lbnQtPmFwcGVuZENo
aWxkKFdURjo6bW92ZShpZnJhbWVFbGVtZW50KSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTC5tbSBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTC5tbQppbmRleCAwZGUyMmNlM2NkYWM0Zjc4
OGE3ZmRhN2NmMDQ1NTcwNmEwOTA1YmZjLi4wMjc1OTVlMWU5MWIyZjNhYTYyOGUyOTM2MTViYTUx
ZDJmZjA1OWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhU
TUwubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MLm1tCkBAIC0x
NTIsNyArMTUyLDcgQEAgLSAoRE9NRG9jdW1lbnRGcmFnbWVudCAqKWNyZWF0ZURvY3VtZW50RnJh
Z21lbnRXaXRoTWFya3VwU3RyaW5nOihOU1N0cmluZyAqKW1hcmsKIC0gKERPTURvY3VtZW50RnJh
Z21lbnQgKiljcmVhdGVEb2N1bWVudEZyYWdtZW50V2l0aFRleHQ6KE5TU3RyaW5nICopdGV4dAog
ewogICAgIC8vIEZJWE1FOiBTaW5jZSB0aGlzIGlzIG5vdCBhIGNvbnRleHR1YWwgZnJhZ21lbnQs
IGl0IHdvbid0IGhhbmRsZSB3aGl0ZXNwYWNlIHByb3Blcmx5LgotICAgIHJldHVybiBraXQoY3Jl
YXRlRnJhZ21lbnRGcm9tVGV4dChjb3JlKHNlbGYpLT5jcmVhdGVSYW5nZSgpLCB0ZXh0KS5nZXQo
KSk7CisgICAgcmV0dXJuIGtpdChjcmVhdGVGcmFnbWVudEZyb21UZXh0KGNvcmUoc2VsZiktPmNy
ZWF0ZVJhbmdlKCksIHRleHQpLnB0cigpKTsKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0F0dHIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwCmluZGV4
IDE4NTcwZjFkODc0MzFhMWYzYTQ0ZGEwM2U1OGEyZWM1ZmY3MWE3OGMuLmFjN2I2NmY5OTcwNWQ4
OTllZWNlM2MyODk0Zjg5ZTFmODA5ZDE1ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9BdHRyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5jcHAKQEAgLTEzOCwxMSAr
MTM4LDExIEBAIHZvaWQgQXR0cjo6c2V0Tm9kZVZhbHVlKGNvbnN0IFN0cmluZyYgdiwgRXhjZXB0
aW9uQ29kZSYgZWMpCiAgICAgc2V0VmFsdWUodiwgZWMpOwogfQogCi1SZWZQdHI8Tm9kZT4gQXR0
cjo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3Bl
cmF0aW9uKQorUmVmPE5vZGU+IEF0dHI6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJn
ZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikKIHsKLSAgICBSZWZQdHI8QXR0cj4gY2xvbmUg
PSBhZG9wdFJlZihuZXcgQXR0cih0YXJnZXREb2N1bWVudCwgcXVhbGlmaWVkTmFtZSgpLCB2YWx1
ZSgpKSk7Ci0gICAgY2xvbmVDaGlsZE5vZGVzKGNsb25lLmdldCgpKTsKLSAgICByZXR1cm4gY2xv
bmUucmVsZWFzZSgpOworICAgIFJlZjxBdHRyPiBjbG9uZSA9IGFkb3B0UmVmKCpuZXcgQXR0cih0
YXJnZXREb2N1bWVudCwgcXVhbGlmaWVkTmFtZSgpLCB2YWx1ZSgpKSk7CisgICAgY2xvbmVDaGls
ZE5vZGVzKGNsb25lKTsKKyAgICByZXR1cm4gV1RGOjptb3ZlKGNsb25lKTsKIH0KIAogLy8gRE9N
IFNlY3Rpb24gMS4xLjEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vQXR0ci5oCmluZGV4IGM3YTk0Zjk4ZjBiZmI1N2ViMGMzYWI1MTc5
ODhhNDQ4MGIzNDkwMTAuLjEyNGM2ZDdhMmFhMjg2ODMwZmNiYTI5NjI4ODg4YjcyMDIyOTkyODYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0F0dHIuaApAQCAtODAsNyArODAsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBT
dHJpbmcgbm9kZVZhbHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdmFsdWUoKTsgfQogICAg
IHZpcnR1YWwgdm9pZCBzZXROb2RlVmFsdWUoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYp
IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVmUHRyPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERv
Y3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8Tm9k
ZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlk
ZTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc0F0dHJpYnV0ZU5vZGUoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIGNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5
cGUpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NEQVRB
U2VjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ0RBVEFTZWN0aW9uLmNwcAppbmRleCBj
NTliZjFlOTU4ZmRhNDUwYWU5MmRmMjJiNzQwOWZmYjk2OGEwYmViLi5hZmQ3MzIyNzBmMTJjNmQ4
ZGNmZmI4ZmY4MjdhMTM5Y2MzMWEzMWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Q0RBVEFTZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ0RBVEFTZWN0aW9uLmNw
cApAQCAtNDYsNyArNDYsNyBAQCBOb2RlOjpOb2RlVHlwZSBDREFUQVNlY3Rpb246Om5vZGVUeXBl
KCkgY29uc3QKICAgICByZXR1cm4gQ0RBVEFfU0VDVElPTl9OT0RFOwogfQogCi1SZWZQdHI8Tm9k
ZT4gQ0RBVEFTZWN0aW9uOjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1l
bnQsIENsb25pbmdPcGVyYXRpb24pCitSZWY8Tm9kZT4gQ0RBVEFTZWN0aW9uOjpjbG9uZU5vZGVJ
bnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24pCiB7CiAg
ICAgcmV0dXJuIGNyZWF0ZSh0YXJnZXREb2N1bWVudCwgZGF0YSgpKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9DREFUQVNlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9D
REFUQVNlY3Rpb24uaAppbmRleCBiZjVhNjFjNjI2ODViMjM3MDVkNjRiNGNlMzk0NmE2Mzc4NDky
M2E3Li5kNmI5OTM3ZGZjNzVhNThlOTZlYWI1MmRmMjZhZDliNGI3ZGVmMjYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vQ0RBVEFTZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0NEQVRBU2VjdGlvbi5oCkBAIC0zNiw3ICszNiw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0
dWFsIFN0cmluZyBub2RlTmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgTm9kZVR5
cGUgbm9kZVR5cGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBj
bG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmlu
Z09wZXJhdGlvbikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGNoaWxkVHlwZUFsbG93ZWQo
Tm9kZVR5cGUpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgUmVmPFRleHQ+IHZpcnR1YWxD
cmVhdGUoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0NvbW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbW1lbnQuY3BwCmlu
ZGV4IDRjNzRhYWY2M2FkOTA1M2M2YWJlNTk1NTYyMzE4NWQyN2Q5ODlkNmIuLjQxMjVhNmVhZTFh
ZGY5YThmODY2ZmViNTQyOWY0ZjNkNDIwYjcyNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Db21tZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tbWVudC5jcHAKQEAg
LTQ2LDcgKzQ2LDcgQEAgTm9kZTo6Tm9kZVR5cGUgQ29tbWVudDo6bm9kZVR5cGUoKSBjb25zdAog
ICAgIHJldHVybiBDT01NRU5UX05PREU7CiB9CiAKLVJlZlB0cjxOb2RlPiBDb21tZW50OjpjbG9u
ZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24p
CitSZWY8Tm9kZT4gQ29tbWVudDo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERv
Y3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uKQogewogICAgIHJldHVybiBjcmVhdGUodGFyZ2V0RG9j
dW1lbnQsIGRhdGEoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbW1lbnQuaAppbmRleCBmY2FjNjBhMzNlNWUzMGEx
ZTU5YzFkYzllZjNiNjM5NGFkZTdiNzU5Li4xNTY2MzIzMzJhMjA2OGYzYTliODUyNmNiY2M3NDY1
NDg2MTU5OWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Db21tZW50LmgKQEAgLTM2LDcgKzM2LDcgQEAgcHJpdmF0ZToK
IAogICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCBOb2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVm
UHRyPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1l
bnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRU
eXBlQWxsb3dlZChOb2RlVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Q29udGFpbmVyTm9kZS5jcHAKaW5kZXggZjA2MzFiNmJkZDRkYTdkYTJkYTRiZDRmYTk5NGMxOWNm
OTkwYzNkNS4uMmMzYjVlZDMxOWY2NTg4MWUxYzNlYTg4YjEyNDViYmEwMGU3YzgyYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcApAQCAtNzYsNyArNzYsNyBAQCBzdGF0aWMgdm9p
ZCBjb2xsZWN0Q2hpbGRyZW5BbmRSZW1vdmVGcm9tT2xkUGFyZW50KE5vZGUmIG5vZGUsIE5vZGVW
ZWN0b3ImIG5vZGVzLAogICAgIGlmICghaXM8RG9jdW1lbnRGcmFnbWVudD4obm9kZSkpIHsKICAg
ICAgICAgbm9kZXMuYXBwZW5kKG5vZGUpOwogICAgICAgICBpZiAoQ29udGFpbmVyTm9kZSogb2xk
UGFyZW50ID0gbm9kZS5wYXJlbnROb2RlKCkpCi0gICAgICAgICAgICBvbGRQYXJlbnQtPnJlbW92
ZUNoaWxkKCZub2RlLCBlYyk7CisgICAgICAgICAgICBvbGRQYXJlbnQtPnJlbW92ZUNoaWxkKG5v
ZGUsIGVjKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTQ2LDEzICsxNDYsMTMgQEAg
Q29udGFpbmVyTm9kZTo6fkNvbnRhaW5lck5vZGUoKQogICAgIHJlbW92ZURldGFjaGVkQ2hpbGRy
ZW4oKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIGlzQ2hpbGRUeXBlQWxsb3dlZChDb250YWlu
ZXJOb2RlKiBuZXdQYXJlbnQsIE5vZGUqIGNoaWxkKQorc3RhdGljIGlubGluZSBib29sIGlzQ2hp
bGRUeXBlQWxsb3dlZChDb250YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5vZGUmIGNoaWxkKQogewot
ICAgIGlmICghY2hpbGQtPmlzRG9jdW1lbnRGcmFnbWVudCgpKQotICAgICAgICByZXR1cm4gbmV3
UGFyZW50LT5jaGlsZFR5cGVBbGxvd2VkKGNoaWxkLT5ub2RlVHlwZSgpKTsKKyAgICBpZiAoIWNo
aWxkLmlzRG9jdW1lbnRGcmFnbWVudCgpKQorICAgICAgICByZXR1cm4gbmV3UGFyZW50LmNoaWxk
VHlwZUFsbG93ZWQoY2hpbGQubm9kZVR5cGUoKSk7CiAKLSAgICBmb3IgKE5vZGUqIG5vZGUgPSBj
aGlsZC0+Zmlyc3RDaGlsZCgpOyBub2RlOyBub2RlID0gbm9kZS0+bmV4dFNpYmxpbmcoKSkgewot
ICAgICAgICBpZiAoIW5ld1BhcmVudC0+Y2hpbGRUeXBlQWxsb3dlZChub2RlLT5ub2RlVHlwZSgp
KSkKKyAgICBmb3IgKE5vZGUqIG5vZGUgPSBjaGlsZC5maXJzdENoaWxkKCk7IG5vZGU7IG5vZGUg
PSBub2RlLT5uZXh0U2libGluZygpKSB7CisgICAgICAgIGlmICghbmV3UGFyZW50LmNoaWxkVHlw
ZUFsbG93ZWQobm9kZS0+bm9kZVR5cGUoKSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQogICAgIHJldHVybiB0cnVlOwpAQCAtMTY5LDIzICsxNjksMTkgQEAgc3RhdGljIGlubGlu
ZSBib29sIGlzSW5UZW1wbGF0ZUNvbnRlbnQoY29uc3QgTm9kZSogbm9kZSkKICNlbmRpZgogfQog
Ci1zdGF0aWMgaW5saW5lIGJvb2wgY29udGFpbnNDb25zaWRlcmluZ0hvc3RFbGVtZW50cyhjb25z
dCBOb2RlKiBuZXdDaGlsZCwgY29uc3QgTm9kZSogbmV3UGFyZW50KQorc3RhdGljIGlubGluZSBi
b29sIGNvbnRhaW5zQ29uc2lkZXJpbmdIb3N0RWxlbWVudHMoY29uc3QgTm9kZSYgbmV3Q2hpbGQs
IGNvbnN0IE5vZGUmIG5ld1BhcmVudCkKIHsKLSAgICByZXR1cm4gKG5ld1BhcmVudC0+aXNJblNo
YWRvd1RyZWUoKSB8fCBpc0luVGVtcGxhdGVDb250ZW50KG5ld1BhcmVudCkpCi0gICAgICAgID8g
bmV3Q2hpbGQtPmNvbnRhaW5zSW5jbHVkaW5nSG9zdEVsZW1lbnRzKG5ld1BhcmVudCkKLSAgICAg
ICAgOiBuZXdDaGlsZC0+Y29udGFpbnMobmV3UGFyZW50KTsKKyAgICByZXR1cm4gKG5ld1BhcmVu
dC5pc0luU2hhZG93VHJlZSgpIHx8IGlzSW5UZW1wbGF0ZUNvbnRlbnQoJm5ld1BhcmVudCkpCisg
ICAgICAgID8gbmV3Q2hpbGQuY29udGFpbnNJbmNsdWRpbmdIb3N0RWxlbWVudHMoJm5ld1BhcmVu
dCkKKyAgICAgICAgOiBuZXdDaGlsZC5jb250YWlucygmbmV3UGFyZW50KTsKIH0KIAotc3RhdGlj
IGlubGluZSBFeGNlcHRpb25Db2RlIGNoZWNrQWNjZXB0Q2hpbGQoQ29udGFpbmVyTm9kZSogbmV3
UGFyZW50LCBOb2RlKiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQpCitzdGF0aWMgaW5saW5lIEV4
Y2VwdGlvbkNvZGUgY2hlY2tBY2NlcHRDaGlsZChDb250YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5v
ZGUmIG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCkKIHsKLSAgICAvLyBOb3QgbWVudGlvbmVkIGlu
IHNwZWM6IHRocm93IE5PVF9GT1VORF9FUlIgaWYgbmV3Q2hpbGQgaXMgbnVsbAotICAgIGlmICgh
bmV3Q2hpbGQpCi0gICAgICAgIHJldHVybiBOT1RfRk9VTkRfRVJSOwotCiAgICAgLy8gVXNlIGNv
bW1vbiBjYXNlIGZhc3QgcGF0aCBpZiBwb3NzaWJsZS4KLSAgICBpZiAoKG5ld0NoaWxkLT5pc0Vs
ZW1lbnROb2RlKCkgfHwgbmV3Q2hpbGQtPmlzVGV4dE5vZGUoKSkgJiYgbmV3UGFyZW50LT5pc0Vs
ZW1lbnROb2RlKCkpIHsKLSAgICAgICAgQVNTRVJUKCFuZXdQYXJlbnQtPmlzUmVhZE9ubHlOb2Rl
KCkpOwotICAgICAgICBBU1NFUlQoIW5ld1BhcmVudC0+aXNEb2N1bWVudFR5cGVOb2RlKCkpOwor
ICAgIGlmICgobmV3Q2hpbGQuaXNFbGVtZW50Tm9kZSgpIHx8IG5ld0NoaWxkLmlzVGV4dE5vZGUo
KSkgJiYgbmV3UGFyZW50LmlzRWxlbWVudE5vZGUoKSkgeworICAgICAgICBBU1NFUlQoIW5ld1Bh
cmVudC5pc1JlYWRPbmx5Tm9kZSgpKTsKKyAgICAgICAgQVNTRVJUKCFuZXdQYXJlbnQuaXNEb2N1
bWVudFR5cGVOb2RlKCkpOwogICAgICAgICBBU1NFUlQoaXNDaGlsZFR5cGVBbGxvd2VkKG5ld1Bh
cmVudCwgbmV3Q2hpbGQpKTsKICAgICAgICAgaWYgKGNvbnRhaW5zQ29uc2lkZXJpbmdIb3N0RWxl
bWVudHMobmV3Q2hpbGQsIG5ld1BhcmVudCkpCiAgICAgICAgICAgICByZXR1cm4gSElFUkFSQ0hZ
X1JFUVVFU1RfRVJSOwpAQCAtMTkzLDE3ICsxODksMTcgQEAgc3RhdGljIGlubGluZSBFeGNlcHRp
b25Db2RlIGNoZWNrQWNjZXB0Q2hpbGQoQ29udGFpbmVyTm9kZSogbmV3UGFyZW50LCBOb2RlKiBu
ZXcKICAgICB9CiAKICAgICAvLyBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW4sIGJ1dCBhbHNvIHBy
b3RlY3QgcmVsZWFzZSBidWlsZHMgZnJvbSB0cmVlIGNvcnJ1cHRpb24uCi0gICAgQVNTRVJUKCFu
ZXdDaGlsZC0+aXNQc2V1ZG9FbGVtZW50KCkpOwotICAgIGlmIChuZXdDaGlsZC0+aXNQc2V1ZG9F
bGVtZW50KCkpCisgICAgQVNTRVJUKCFuZXdDaGlsZC5pc1BzZXVkb0VsZW1lbnQoKSk7CisgICAg
aWYgKG5ld0NoaWxkLmlzUHNldWRvRWxlbWVudCgpKQogICAgICAgICByZXR1cm4gSElFUkFSQ0hZ
X1JFUVVFU1RfRVJSOwogCi0gICAgaWYgKG5ld1BhcmVudC0+aXNSZWFkT25seU5vZGUoKSkKKyAg
ICBpZiAobmV3UGFyZW50LmlzUmVhZE9ubHlOb2RlKCkpCiAgICAgICAgIHJldHVybiBOT19NT0RJ
RklDQVRJT05fQUxMT1dFRF9FUlI7CiAgICAgaWYgKGNvbnRhaW5zQ29uc2lkZXJpbmdIb3N0RWxl
bWVudHMobmV3Q2hpbGQsIG5ld1BhcmVudCkpCiAgICAgICAgIHJldHVybiBISUVSQVJDSFlfUkVR
VUVTVF9FUlI7CiAKLSAgICBpZiAob2xkQ2hpbGQgJiYgaXM8RG9jdW1lbnQ+KCpuZXdQYXJlbnQp
KSB7Ci0gICAgICAgIGlmICghZG93bmNhc3Q8RG9jdW1lbnQ+KCpuZXdQYXJlbnQpLmNhblJlcGxh
Y2VDaGlsZChuZXdDaGlsZCwgb2xkQ2hpbGQpKQorICAgIGlmIChvbGRDaGlsZCAmJiBpczxEb2N1
bWVudD4obmV3UGFyZW50KSkgeworICAgICAgICBpZiAoIWRvd25jYXN0PERvY3VtZW50PihuZXdQ
YXJlbnQpLmNhblJlcGxhY2VDaGlsZChuZXdDaGlsZCwgKm9sZENoaWxkKSkKICAgICAgICAgICAg
IHJldHVybiBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAgICAgfSBlbHNlIGlmICghaXNDaGlsZFR5
cGVBbGxvd2VkKG5ld1BhcmVudCwgbmV3Q2hpbGQpKQogICAgICAgICByZXR1cm4gSElFUkFSQ0hZ
X1JFUVVFU1RfRVJSOwpAQCAtMjExLDEyICsyMDcsMTIgQEAgc3RhdGljIGlubGluZSBFeGNlcHRp
b25Db2RlIGNoZWNrQWNjZXB0Q2hpbGQoQ29udGFpbmVyTm9kZSogbmV3UGFyZW50LCBOb2RlKiBu
ZXcKICAgICByZXR1cm4gMDsKIH0KIAotc3RhdGljIGlubGluZSBib29sIGNoZWNrQWNjZXB0Q2hp
bGRHdWFyYW50ZWVkTm9kZVR5cGVzKENvbnRhaW5lck5vZGUqIG5ld1BhcmVudCwgTm9kZSogbmV3
Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQorc3RhdGljIGlubGluZSBib29sIGNoZWNrQWNjZXB0
Q2hpbGRHdWFyYW50ZWVkTm9kZVR5cGVzKENvbnRhaW5lck5vZGUmIG5ld1BhcmVudCwgTm9kZSYg
bmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIEFTU0VSVCghbmV3UGFyZW50LT5p
c1JlYWRPbmx5Tm9kZSgpKTsKLSAgICBBU1NFUlQoIW5ld1BhcmVudC0+aXNEb2N1bWVudFR5cGVO
b2RlKCkpOworICAgIEFTU0VSVCghbmV3UGFyZW50LmlzUmVhZE9ubHlOb2RlKCkpOworICAgIEFT
U0VSVCghbmV3UGFyZW50LmlzRG9jdW1lbnRUeXBlTm9kZSgpKTsKICAgICBBU1NFUlQoaXNDaGls
ZFR5cGVBbGxvd2VkKG5ld1BhcmVudCwgbmV3Q2hpbGQpKTsKLSAgICBpZiAobmV3Q2hpbGQtPmNv
bnRhaW5zKG5ld1BhcmVudCkpIHsKKyAgICBpZiAobmV3Q2hpbGQuY29udGFpbnMoJm5ld1BhcmVu
dCkpIHsKICAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICB9CkBAIC0yMjQsMjUgKzIyMCwyNSBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
Y2hlY2tBY2NlcHRDaGlsZEd1YXJhbnRlZWROb2RlVHlwZXMoQ29udGFpbmVyTm9kZSogbmV3UGFy
ZW50LAogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgY2hlY2tBZGRD
aGlsZChDb250YWluZXJOb2RlKiBuZXdQYXJlbnQsIE5vZGUqIG5ld0NoaWxkLCBFeGNlcHRpb25D
b2RlJiBlYykKK3N0YXRpYyBpbmxpbmUgYm9vbCBjaGVja0FkZENoaWxkKENvbnRhaW5lck5vZGUm
IG5ld1BhcmVudCwgTm9kZSYgbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIGVj
ID0gY2hlY2tBY2NlcHRDaGlsZChuZXdQYXJlbnQsIG5ld0NoaWxkLCAwKTsKKyAgICBlYyA9IGNo
ZWNrQWNjZXB0Q2hpbGQobmV3UGFyZW50LCBuZXdDaGlsZCwgbnVsbHB0cik7CiAgICAgaWYgKGVj
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGlj
IGlubGluZSBib29sIGNoZWNrUmVwbGFjZUNoaWxkKENvbnRhaW5lck5vZGUqIG5ld1BhcmVudCwg
Tm9kZSogbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKK3N0YXRp
YyBpbmxpbmUgYm9vbCBjaGVja1JlcGxhY2VDaGlsZChDb250YWluZXJOb2RlJiBuZXdQYXJlbnQs
IE5vZGUmIG5ld0NoaWxkLCBOb2RlJiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0g
ICAgZWMgPSBjaGVja0FjY2VwdENoaWxkKG5ld1BhcmVudCwgbmV3Q2hpbGQsIG9sZENoaWxkKTsK
KyAgICBlYyA9IGNoZWNrQWNjZXB0Q2hpbGQobmV3UGFyZW50LCBuZXdDaGlsZCwgJm9sZENoaWxk
KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVl
OwogfQogCi1ib29sIENvbnRhaW5lck5vZGU6Omluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5vZGU+
IG5ld0NoaWxkLCBOb2RlKiByZWZDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCitib29sIENvbnRh
aW5lck5vZGU6Omluc2VydEJlZm9yZShSZWY8Tm9kZT4mJiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hp
bGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIC8vIENoZWNrIHRoYXQgdGhpcyBub2RlIGlz
IG5vdCAiZmxvYXRpbmciLgogICAgIC8vIElmIGl0IGlzLCBpdCBjYW4gYmUgZGVsZXRlZCBhcyBh
IHNpZGUgZWZmZWN0IG9mIHNlbmRpbmcgbXV0YXRpb24gZXZlbnRzLgpAQCAtMjU0LDEwICsyNTAs
MTAgQEAgYm9vbCBDb250YWluZXJOb2RlOjppbnNlcnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBu
ZXdDaGlsZCwgTm9kZSogcmVmQ2hpbGQsIEV4Y2UKIAogICAgIC8vIGluc2VydEJlZm9yZShub2Rl
LCAwKSBpcyBlcXVpdmFsZW50IHRvIGFwcGVuZENoaWxkKG5vZGUpCiAgICAgaWYgKCFyZWZDaGls
ZCkKLSAgICAgICAgcmV0dXJuIGFwcGVuZENoaWxkKG5ld0NoaWxkLCBlYyk7CisgICAgICAgIHJl
dHVybiBhcHBlbmRDaGlsZChXVEY6Om1vdmUobmV3Q2hpbGQpLCBlYyk7CiAKICAgICAvLyBNYWtl
IHN1cmUgYWRkaW5nIHRoZSBuZXcgY2hpbGQgaXMgT0suCi0gICAgaWYgKCFjaGVja0FkZENoaWxk
KHRoaXMsIG5ld0NoaWxkLmdldCgpLCBlYykpCisgICAgaWYgKCFjaGVja0FkZENoaWxkKCp0aGlz
LCBuZXdDaGlsZCwgZWMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBOT1RfRk9V
TkRfRVJSOiBSYWlzZWQgaWYgcmVmQ2hpbGQgaXMgbm90IGEgY2hpbGQgb2YgdGhpcyBub2RlCkBA
IC0yNjYsMjAgKzI2MiwyMCBAQCBib29sIENvbnRhaW5lck5vZGU6Omluc2VydEJlZm9yZShQYXNz
UmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiByZWZDaGlsZCwgRXhjZQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQogCi0gICAgaWYgKHJlZkNoaWxkLT5wcmV2aW91c1NpYmxpbmcoKSA9
PSBuZXdDaGlsZCB8fCByZWZDaGlsZCA9PSBuZXdDaGlsZCkgLy8gbm90aGluZyB0byBkbworICAg
IGlmIChyZWZDaGlsZC0+cHJldmlvdXNTaWJsaW5nKCkgPT0gbmV3Q2hpbGQucHRyKCkgfHwgcmVm
Q2hpbGQgPT0gbmV3Q2hpbGQucHRyKCkpIC8vIG5vdGhpbmcgdG8gZG8KICAgICAgICAgcmV0dXJu
IHRydWU7CiAKICAgICBSZWY8Tm9kZT4gbmV4dCgqcmVmQ2hpbGQpOwogCiAgICAgTm9kZVZlY3Rv
ciB0YXJnZXRzOwotICAgIGNvbGxlY3RDaGlsZHJlbkFuZFJlbW92ZUZyb21PbGRQYXJlbnQoKm5l
d0NoaWxkLmdldCgpLCB0YXJnZXRzLCBlYyk7CisgICAgY29sbGVjdENoaWxkcmVuQW5kUmVtb3Zl
RnJvbU9sZFBhcmVudChuZXdDaGlsZCwgdGFyZ2V0cywgZWMpOwogICAgIGlmIChlYykKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICh0YXJnZXRzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0
dXJuIHRydWU7CiAKICAgICAvLyBXZSBuZWVkIHRoaXMgZXh0cmEgY2hlY2sgYmVjYXVzZSBjb2xs
ZWN0Q2hpbGRyZW5BbmRSZW1vdmVGcm9tT2xkUGFyZW50KCkgY2FuIGZpcmUgbXV0YXRpb24gZXZl
bnRzLgotICAgIGlmICghY2hlY2tBY2NlcHRDaGlsZEd1YXJhbnRlZWROb2RlVHlwZXModGhpcywg
bmV3Q2hpbGQuZ2V0KCksIGVjKSkKKyAgICBpZiAoIWNoZWNrQWNjZXB0Q2hpbGRHdWFyYW50ZWVk
Tm9kZVR5cGVzKCp0aGlzLCBuZXdDaGlsZCwgZWMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxJbnNlcnRET01Ob2RlKGRvY3VtZW50
KCksICp0aGlzKTsKQEAgLTM5MCw3ICszODYsNyBAQCB2b2lkIENvbnRhaW5lck5vZGU6OnBhcnNl
ckluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiBuZXh0Q2hpbAog
ICAgIG5ld0NoaWxkLT5zZXROZWVkc1N0eWxlUmVjYWxjKFJlY29uc3RydWN0UmVuZGVyVHJlZSk7
CiB9CiAKLWJvb2wgQ29udGFpbmVyTm9kZTo6cmVwbGFjZUNoaWxkKFBhc3NSZWZQdHI8Tm9kZT4g
bmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKK2Jvb2wgQ29udGFp
bmVyTm9kZTo6cmVwbGFjZUNoaWxkKFJlZjxOb2RlPiYmIG5ld0NoaWxkLCBOb2RlJiBvbGRDaGls
ZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgLy8gQ2hlY2sgdGhhdCB0aGlzIG5vZGUgaXMg
bm90ICJmbG9hdGluZyIuCiAgICAgLy8gSWYgaXQgaXMsIGl0IGNhbiBiZSBkZWxldGVkIGFzIGEg
c2lkZSBlZmZlY3Qgb2Ygc2VuZGluZyBtdXRhdGlvbiBldmVudHMuCkBAIC00MDAsNDggKzM5Niw0
MyBAQCBib29sIENvbnRhaW5lck5vZGU6OnJlcGxhY2VDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5l
d0NoaWxkLCBOb2RlKiBvbGRDaGlsZCwgRXhjZQogCiAgICAgZWMgPSAwOwogCi0gICAgaWYgKG9s
ZENoaWxkID09IG5ld0NoaWxkKSAvLyBub3RoaW5nIHRvIGRvCisgICAgaWYgKCZvbGRDaGlsZCA9
PSBuZXdDaGlsZC5wdHIoKSkgLy8gbm90aGluZyB0byBkbwogICAgICAgICByZXR1cm4gdHJ1ZTsK
IAotICAgIGlmICghb2xkQ2hpbGQpIHsKLSAgICAgICAgZWMgPSBOT1RfRk9VTkRfRVJSOwotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCiAgICAgLy8gTWFrZSBzdXJlIHJlcGxhY2luZyB0
aGUgb2xkIGNoaWxkIHdpdGggdGhlIG5ldyBpcyBvawotICAgIGlmICghY2hlY2tSZXBsYWNlQ2hp
bGQodGhpcywgbmV3Q2hpbGQuZ2V0KCksIG9sZENoaWxkLCBlYykpCisgICAgaWYgKCFjaGVja1Jl
cGxhY2VDaGlsZCgqdGhpcywgbmV3Q2hpbGQsIG9sZENoaWxkLCBlYykpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIC8vIE5PVF9GT1VORF9FUlI6IFJhaXNlZCBpZiBvbGRDaGlsZCBpcyBu
b3QgYSBjaGlsZCBvZiB0aGlzIG5vZGUuCi0gICAgaWYgKG9sZENoaWxkLT5wYXJlbnROb2RlKCkg
IT0gdGhpcykgeworICAgIGlmIChvbGRDaGlsZC5wYXJlbnROb2RlKCkgIT0gdGhpcykgewogICAg
ICAgICBlYyA9IE5PVF9GT1VORF9FUlI7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAK
ICAgICBDaGlsZExpc3RNdXRhdGlvblNjb3BlIG11dGF0aW9uKCp0aGlzKTsKIAotICAgIFJlZlB0
cjxOb2RlPiBuZXh0ID0gb2xkQ2hpbGQtPm5leHRTaWJsaW5nKCk7CisgICAgUmVmUHRyPE5vZGU+
IG5leHQgPSBvbGRDaGlsZC5uZXh0U2libGluZygpOwogCiAgICAgLy8gUmVtb3ZlIHRoZSBub2Rl
IHdlJ3JlIHJlcGxhY2luZwotICAgIFJlZjxOb2RlPiByZW1vdmVkQ2hpbGQoKm9sZENoaWxkKTsK
KyAgICBSZWY8Tm9kZT4gcmVtb3ZlZENoaWxkKG9sZENoaWxkKTsKICAgICByZW1vdmVDaGlsZChv
bGRDaGlsZCwgZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAg
aWYgKG5leHQgJiYgKG5leHQtPnByZXZpb3VzU2libGluZygpID09IG5ld0NoaWxkIHx8IG5leHQg
PT0gbmV3Q2hpbGQpKSAvLyBub3RoaW5nIHRvIGRvCisgICAgaWYgKG5leHQgJiYgKG5leHQtPnBy
ZXZpb3VzU2libGluZygpID09IG5ld0NoaWxkLnB0cigpIHx8IG5leHQgPT0gbmV3Q2hpbGQucHRy
KCkpKSAvLyBub3RoaW5nIHRvIGRvCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgLy8gRG9l
cyB0aGlzIG9uZSBtb3JlIHRpbWUgYmVjYXVzZSByZW1vdmVDaGlsZCgpIGZpcmVzIGEgTXV0YXRp
b25FdmVudC4KLSAgICBpZiAoIWNoZWNrUmVwbGFjZUNoaWxkKHRoaXMsIG5ld0NoaWxkLmdldCgp
LCBvbGRDaGlsZCwgZWMpKQorICAgIGlmICghY2hlY2tSZXBsYWNlQ2hpbGQoKnRoaXMsIG5ld0No
aWxkLCBvbGRDaGlsZCwgZWMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBOb2RlVmVj
dG9yIHRhcmdldHM7Ci0gICAgY29sbGVjdENoaWxkcmVuQW5kUmVtb3ZlRnJvbU9sZFBhcmVudCgq
bmV3Q2hpbGQuZ2V0KCksIHRhcmdldHMsIGVjKTsKKyAgICBjb2xsZWN0Q2hpbGRyZW5BbmRSZW1v
dmVGcm9tT2xkUGFyZW50KG5ld0NoaWxkLCB0YXJnZXRzLCBlYyk7CiAgICAgaWYgKGVjKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBEb2VzIHRoaXMgeWV0IGFub3RoZXIgY2hlY2sg
YmVjYXVzZSBjb2xsZWN0Q2hpbGRyZW5BbmRSZW1vdmVGcm9tT2xkUGFyZW50KCkgZmlyZXMgYSBN
dXRhdGlvbkV2ZW50LgotICAgIGlmICghY2hlY2tSZXBsYWNlQ2hpbGQodGhpcywgbmV3Q2hpbGQu
Z2V0KCksIG9sZENoaWxkLCBlYykpCisgICAgaWYgKCFjaGVja1JlcGxhY2VDaGlsZCgqdGhpcywg
bmV3Q2hpbGQsIG9sZENoaWxkLCBlYykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEluc2VydERPTU5vZGUoZG9jdW1lbnQoKSwgKnRo
aXMpOwpAQCAtNTE1LDcgKzUwNiw3IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6ZGlzY29ubmVjdERl
c2NlbmRhbnRGcmFtZXMoKQogICAgIGRpc2Nvbm5lY3RTdWJmcmFtZXNJZk5lZWRlZCgqdGhpcywg
Um9vdEFuZERlc2NlbmRhbnRzKTsKIH0KIAotYm9vbCBDb250YWluZXJOb2RlOjpyZW1vdmVDaGls
ZChOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCitib29sIENvbnRhaW5lck5vZGU6
OnJlbW92ZUNoaWxkKE5vZGUmIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICAv
LyBDaGVjayB0aGF0IHRoaXMgbm9kZSBpcyBub3QgImZsb2F0aW5nIi4KICAgICAvLyBJZiBpdCBp
cywgaXQgY2FuIGJlIGRlbGV0ZWQgYXMgYSBzaWRlIGVmZmVjdCBvZiBzZW5kaW5nIG11dGF0aW9u
IGV2ZW50cy4KQEAgLTUzMiwxMiArNTIzLDEyIEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6cmVtb3Zl
Q2hpbGQoTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIH0KIAogICAgIC8v
IE5PVF9GT1VORF9FUlI6IFJhaXNlZCBpZiBvbGRDaGlsZCBpcyBub3QgYSBjaGlsZCBvZiB0aGlz
IG5vZGUuCi0gICAgaWYgKCFvbGRDaGlsZCB8fCBvbGRDaGlsZC0+cGFyZW50Tm9kZSgpICE9IHRo
aXMpIHsKKyAgICBpZiAob2xkQ2hpbGQucGFyZW50Tm9kZSgpICE9IHRoaXMpIHsKICAgICAgICAg
ZWMgPSBOT1RfRk9VTkRfRVJSOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAg
UmVmPE5vZGU+IGNoaWxkKCpvbGRDaGlsZCk7CisgICAgUmVmPE5vZGU+IGNoaWxkKG9sZENoaWxk
KTsKIAogICAgIGRvY3VtZW50KCkucmVtb3ZlRm9jdXNlZE5vZGVPZlN1YnRyZWUoY2hpbGQucHRy
KCkpOwogCkBAIC02NzAsNyArNjYxLDcgQEAgdm9pZCBDb250YWluZXJOb2RlOjpyZW1vdmVDaGls
ZHJlbigpCiAgICAgZGlzcGF0Y2hTdWJ0cmVlTW9kaWZpZWRFdmVudCgpOwogfQogCi1ib29sIENv
bnRhaW5lck5vZGU6OmFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQorYm9vbCBDb250YWluZXJOb2RlOjphcHBlbmRDaGlsZChSZWY8Tm9kZT4m
JiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgUmVmPENvbnRhaW5lck5vZGU+
IHByb3RlY3QoKnRoaXMpOwogCkBAIC02ODEsMTQgKzY3MiwxNCBAQCBib29sIENvbnRhaW5lck5v
ZGU6OmFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUm
IGVjKQogICAgIGVjID0gMDsKIAogICAgIC8vIE1ha2Ugc3VyZSBhZGRpbmcgdGhlIG5ldyBjaGls
ZCBpcyBvawotICAgIGlmICghY2hlY2tBZGRDaGlsZCh0aGlzLCBuZXdDaGlsZC5nZXQoKSwgZWMp
KQorICAgIGlmICghY2hlY2tBZGRDaGlsZCgqdGhpcywgbmV3Q2hpbGQsIGVjKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKG5ld0NoaWxkID09IG1fbGFzdENoaWxkKSAvLyBub3Ro
aW5nIHRvIGRvCi0gICAgICAgIHJldHVybiBuZXdDaGlsZDsKKyAgICBpZiAobmV3Q2hpbGQucHRy
KCkgPT0gbV9sYXN0Q2hpbGQpIC8vIG5vdGhpbmcgdG8gZG8KKyAgICAgICAgcmV0dXJuIHRydWU7
CiAKICAgICBOb2RlVmVjdG9yIHRhcmdldHM7Ci0gICAgY29sbGVjdENoaWxkcmVuQW5kUmVtb3Zl
RnJvbU9sZFBhcmVudCgqbmV3Q2hpbGQuZ2V0KCksIHRhcmdldHMsIGVjKTsKKyAgICBjb2xsZWN0
Q2hpbGRyZW5BbmRSZW1vdmVGcm9tT2xkUGFyZW50KG5ld0NoaWxkLCB0YXJnZXRzLCBlYyk7CiAg
ICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTY5Niw3ICs2ODcsNyBAQCBi
b29sIENvbnRhaW5lck5vZGU6OmFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIC8vIFdlIG5l
ZWQgdGhpcyBleHRyYSBjaGVjayBiZWNhdXNlIGNvbGxlY3RDaGlsZHJlbkFuZFJlbW92ZUZyb21P
bGRQYXJlbnQoKSBjYW4gZmlyZSBtdXRhdGlvbiBldmVudHMuCi0gICAgaWYgKCFjaGVja0FjY2Vw
dENoaWxkR3VhcmFudGVlZE5vZGVUeXBlcyh0aGlzLCBuZXdDaGlsZC5nZXQoKSwgZWMpKQorICAg
IGlmICghY2hlY2tBY2NlcHRDaGlsZEd1YXJhbnRlZWROb2RlVHlwZXMoKnRoaXMsIG5ld0NoaWxk
LCBlYykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6d2lsbEluc2VydERPTU5vZGUoZG9jdW1lbnQoKSwgKnRoaXMpOwpAQCAtNzU5LDE2ICs3
NTAsMTYgQEAgdm9pZCBDb250YWluZXJOb2RlOjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRD
aGFuZ2UmIGNoYW5nZSkKICAgICBpbnZhbGlkYXRlTm9kZUxpc3RBbmRDb2xsZWN0aW9uQ2FjaGVz
SW5BbmNlc3RvcnMoKTsKIH0KIAotdm9pZCBDb250YWluZXJOb2RlOjpjbG9uZUNoaWxkTm9kZXMo
Q29udGFpbmVyTm9kZSogY2xvbmUpCit2b2lkIENvbnRhaW5lck5vZGU6OmNsb25lQ2hpbGROb2Rl
cyhDb250YWluZXJOb2RlJiBjbG9uZSkKIHsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAg
ICBEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQgPSBjbG9uZS0+ZG9jdW1lbnQoKTsKKyAgICBEb2N1
bWVudCYgdGFyZ2V0RG9jdW1lbnQgPSBjbG9uZS5kb2N1bWVudCgpOwogICAgIGZvciAoTm9kZSog
Y2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkICYmICFlYzsgY2hpbGQgPSBjaGlsZC0+bmV4dFNp
YmxpbmcoKSkgewotICAgICAgICBSZWZQdHI8Tm9kZT4gY2xvbmVkQ2hpbGQgPSBjaGlsZC0+Y2xv
bmVOb2RlSW50ZXJuYWwodGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb246OlNlbGZXaXRo
VGVtcGxhdGVDb250ZW50KTsKLSAgICAgICAgY2xvbmUtPmFwcGVuZENoaWxkKGNsb25lZENoaWxk
LCBlYyk7CisgICAgICAgIFJlZjxOb2RlPiBjbG9uZWRDaGlsZCA9IGNoaWxkLT5jbG9uZU5vZGVJ
bnRlcm5hbCh0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbjo6U2VsZldpdGhUZW1wbGF0
ZUNvbnRlbnQpOworICAgICAgICBjbG9uZS5hcHBlbmRDaGlsZChjbG9uZWRDaGlsZC5jb3B5UmVm
KCksIGVjKTsKIAotICAgICAgICBpZiAoIWVjICYmIGlzPENvbnRhaW5lck5vZGU+KGNoaWxkKSkK
LSAgICAgICAgICAgIGRvd25jYXN0PENvbnRhaW5lck5vZGU+KGNoaWxkKS0+Y2xvbmVDaGlsZE5v
ZGVzKGRvd25jYXN0PENvbnRhaW5lck5vZGU+KGNsb25lZENoaWxkLmdldCgpKSk7CisgICAgICAg
IGlmICghZWMgJiYgaXM8Q29udGFpbmVyTm9kZT4oKmNoaWxkKSkKKyAgICAgICAgICAgIGRvd25j
YXN0PENvbnRhaW5lck5vZGU+KCpjaGlsZCkuY2xvbmVDaGlsZE5vZGVzKGRvd25jYXN0PENvbnRh
aW5lck5vZGU+KGNsb25lZENoaWxkLmdldCgpKSk7CiAgICAgfQogfQogCkBAIC05NDcsNyArOTM4
LDcgQEAgdm9pZCBDb250YWluZXJOb2RlOjphcHBlbmQoVmVjdG9yPE5vZGVPclN0cmluZz4mJiBu
b2RlT3JTdHJpbmdWZWN0b3IsIEV4Y2VwdGlvbkMKICAgICBpZiAoZWMgfHwgIW5vZGUpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIGFwcGVuZENoaWxkKG5vZGUucmVsZWFzZSgpLCBlYyk7CisgICAg
YXBwZW5kQ2hpbGQobm9kZS5yZWxlYXNlTm9uTnVsbCgpLCBlYyk7CiB9CiAKIHZvaWQgQ29udGFp
bmVyTm9kZTo6cHJlcGVuZChWZWN0b3I8Tm9kZU9yU3RyaW5nPiYmIG5vZGVPclN0cmluZ1ZlY3Rv
ciwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC05NTYsNyArOTQ3LDcgQEAgdm9pZCBDb250YWluZXJO
b2RlOjpwcmVwZW5kKFZlY3RvcjxOb2RlT3JTdHJpbmc+JiYgbm9kZU9yU3RyaW5nVmVjdG9yLCBF
eGNlcHRpb24KICAgICBpZiAoZWMgfHwgIW5vZGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlu
c2VydEJlZm9yZShub2RlLnJlbGVhc2UoKSwgZmlyc3RDaGlsZCgpLCBlYyk7CisgICAgaW5zZXJ0
QmVmb3JlKG5vZGUucmVsZWFzZU5vbk51bGwoKSwgZmlyc3RDaGlsZCgpLCBlYyk7CiB9CiAKIEhU
TUxDb2xsZWN0aW9uKiBDb250YWluZXJOb2RlOjpjYWNoZWRIVE1MQ29sbGVjdGlvbihDb2xsZWN0
aW9uVHlwZSB0eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5v
ZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmgKaW5kZXggMDQ1MjQwMDQx
ZjJiNzEzMWZiMjZhNGU4ZjE5MTZiOWE2Y2I5YjBhZS4uYTZiMTBhNzY1ZjBlZThiY2E3MmI4ZmZm
MDM0MzNiNzNiMTg3YmEzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5l
ck5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5oCkBAIC0xMDIs
MTAgKzEwMiwxMCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdW5zaWduZWQgY291bnRD
aGlsZE5vZGVzKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgTm9kZSogdHJhdmVyc2VUb0No
aWxkQXQodW5zaWduZWQpIGNvbnN0OwogCi0gICAgYm9vbCBpbnNlcnRCZWZvcmUoUGFzc1JlZlB0
cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmID0gQVNTRVJU
X05PX0VYQ0VQVElPTik7Ci0gICAgYm9vbCByZXBsYWNlQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBu
ZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmID0gQVNTRVJUX05PX0VYQ0VQ
VElPTik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCByZW1vdmVDaGlsZChOb2RlKiBjaGlsZCwg
RXhjZXB0aW9uQ29kZSYgPSBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKLSAgICBXRUJDT1JFX0VYUE9S
VCBib29sIGFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIEV4Y2VwdGlvbkNv
ZGUmID0gQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgYm9vbCBpbnNlcnRCZWZvcmUoUmVmPE5v
ZGU+JiYgbmV3Q2hpbGQsIE5vZGUqIHJlZkNoaWxkLCBFeGNlcHRpb25Db2RlJiA9IEFTU0VSVF9O
T19FWENFUFRJT04pOworICAgIGJvb2wgcmVwbGFjZUNoaWxkKFJlZjxOb2RlPiYmIG5ld0NoaWxk
LCBOb2RlJiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgPSBBU1NFUlRfTk9fRVhDRVBUSU9OKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCBib29sIHJlbW92ZUNoaWxkKE5vZGUmIGNoaWxkLCBFeGNlcHRp
b25Db2RlJiA9IEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wg
YXBwZW5kQ2hpbGQoUmVmPE5vZGU+JiYgbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmID0gQVNTRVJU
X05PX0VYQ0VQVElPTik7CiAKICAgICAvLyBUaGVzZSBtZXRob2RzIGFyZSBvbmx5IHVzZWQgZHVy
aW5nIHBhcnNpbmcuCiAgICAgLy8gVGhleSBkb24ndCBzZW5kIERPTSBtdXRhdGlvbiBldmVudHMg
b3IgaGFuZGxlIHJlcGFyZW50aW5nLgpAQCAtMTE3LDcgKzExNyw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHJlbW92ZUNoaWxkcmVuKCk7CiAgICAgdm9pZCB0YWtlQWxsQ2hpbGRyZW5Gcm9tKENvbnRh
aW5lck5vZGUqKTsKIAotICAgIHZvaWQgY2xvbmVDaGlsZE5vZGVzKENvbnRhaW5lck5vZGUqIGNs
b25lKTsKKyAgICB2b2lkIGNsb25lQ2hpbGROb2RlcyhDb250YWluZXJOb2RlJiBjbG9uZSk7CiAK
ICAgICBlbnVtIENoaWxkQ2hhbmdlVHlwZSB7IEVsZW1lbnRJbnNlcnRlZCwgRWxlbWVudFJlbW92
ZWQsIFRleHRJbnNlcnRlZCwgVGV4dFJlbW92ZWQsIFRleHRDaGFuZ2VkLCBBbGxDaGlsZHJlblJl
bW92ZWQsIE5vbkNvbnRlbnRzQ2hpbGRDaGFuZ2VkIH07CiAgICAgZW51bSBDaGlsZENoYW5nZVNv
dXJjZSB7IENoaWxkQ2hhbmdlU291cmNlUGFyc2VyLCBDaGlsZENoYW5nZVNvdXJjZUFQSSB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKaW5kZXggYTRhM2Y4ZDU5YWEy
YTE2MWY2NzJmNDRkNjNmZjg0ODY0YjdiMjAzMy4uNjMzZDI5MTNmNzE2ZWE4NGI2N2Y2ZDI4MDkz
ZTY4ZDQxMWUzMTliNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVu
dGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3Bw
CkBAIC0yMzEsOSArMjMxLDkgQEAgUmVmUHRyPERvY3VtZW50PiBET01JbXBsZW1lbnRhdGlvbjo6
Y3JlYXRlRG9jdW1lbnQoY29uc3QgU3RyaW5nJiBuYW1lc3BhY2VVUkksCiAgICAgfQogCiAgICAg
aWYgKGRvY3R5cGUpCi0gICAgICAgIGRvYy0+YXBwZW5kQ2hpbGQoZG9jdHlwZSk7CisgICAgICAg
IGRvYy0+YXBwZW5kQ2hpbGQoKmRvY3R5cGUpOwogICAgIGlmIChkb2N1bWVudEVsZW1lbnQpCi0g
ICAgICAgIGRvYy0+YXBwZW5kQ2hpbGQoZG9jdW1lbnRFbGVtZW50LnJlbGVhc2UoKSk7CisgICAg
ICAgIGRvYy0+YXBwZW5kQ2hpbGQoZG9jdW1lbnRFbGVtZW50LnJlbGVhc2VOb25OdWxsKCkpOwog
CiAgICAgcmV0dXJuIGRvYzsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGMwOTQxZDI1
MTkxNDE0NTgyMGI1YmRjNTMwNThkNjhjZDkzZjM0YWIuLjYwMzEyY2EzNTAxMzY1NDI5Nzc0N2M4
MTRmMWIzNGY4N2Q0NzQ1NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTAwOSw3ICsx
MDA5LDcgQEAgUmVmUHRyPE5vZGU+IERvY3VtZW50OjphZG9wdE5vZGUoUGFzc1JlZlB0cjxOb2Rl
PiBzb3VyY2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAg
ICAgICAgIGlmIChzb3VyY2UtPnBhcmVudE5vZGUoKSkgewotICAgICAgICAgICAgc291cmNlLT5w
YXJlbnROb2RlKCktPnJlbW92ZUNoaWxkKHNvdXJjZS5nZXQoKSwgZWMpOworICAgICAgICAgICAg
c291cmNlLT5wYXJlbnROb2RlKCktPnJlbW92ZUNoaWxkKCpzb3VyY2UsIGVjKTsKICAgICAgICAg
ICAgIGlmIChlYykKICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQpA
QCAtMTUzNyw3ICsxNTM3LDcgQEAgdm9pZCBEb2N1bWVudDo6c2V0VGl0bGUoY29uc3QgU3RyaW5n
JiB0aXRsZSkKICAgICBlbHNlIGlmICghbV90aXRsZUVsZW1lbnQpIHsKICAgICAgICAgaWYgKEhU
TUxFbGVtZW50KiBoZWFkRWxlbWVudCA9IGhlYWQoKSkgewogICAgICAgICAgICAgbV90aXRsZUVs
ZW1lbnQgPSBjcmVhdGVFbGVtZW50KHRpdGxlVGFnLCBmYWxzZSk7Ci0gICAgICAgICAgICBoZWFk
RWxlbWVudC0+YXBwZW5kQ2hpbGQobV90aXRsZUVsZW1lbnQsIEFTU0VSVF9OT19FWENFUFRJT04p
OworICAgICAgICAgICAgaGVhZEVsZW1lbnQtPmFwcGVuZENoaWxkKCptX3RpdGxlRWxlbWVudCwg
QVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTI1MDksMTEgKzI1
MDksMTAgQEAgdm9pZCBEb2N1bWVudDo6c2V0Qm9keU9yRnJhbWVzZXQoUGFzc1JlZlB0cjxIVE1M
RWxlbWVudD4gcHJwTmV3Qm9keSwgRXhjZXB0aW9uQ28KICAgICAgICAgbmV3Qm9keSA9IGRvd25j
YXN0PEhUTUxFbGVtZW50Pihub2RlLmdldCgpKTsKICAgICB9CiAKLSAgICBIVE1MRWxlbWVudCog
YiA9IGJvZHlPckZyYW1lc2V0KCk7Ci0gICAgaWYgKCFiKQotICAgICAgICBkb2N1bWVudEVsZW1l
bnQoKS0+YXBwZW5kQ2hpbGQobmV3Qm9keS5yZWxlYXNlKCksIGVjKTsKKyAgICBpZiAoYXV0byog
Ym9keSA9IGJvZHlPckZyYW1lc2V0KCkpCisgICAgICAgIGRvY3VtZW50RWxlbWVudCgpLT5yZXBs
YWNlQ2hpbGQobmV3Qm9keS5yZWxlYXNlTm9uTnVsbCgpLCAqYm9keSwgZWMpOwogICAgIGVsc2UK
LSAgICAgICAgZG9jdW1lbnRFbGVtZW50KCktPnJlcGxhY2VDaGlsZChuZXdCb2R5LnJlbGVhc2Uo
KSwgYiwgZWMpOworICAgICAgICBkb2N1bWVudEVsZW1lbnQoKS0+YXBwZW5kQ2hpbGQobmV3Qm9k
eS5yZWxlYXNlTm9uTnVsbCgpLCBlYyk7CiB9CiAKIEhUTUxIZWFkRWxlbWVudCogRG9jdW1lbnQ6
OmhlYWQoKQpAQCAtMzMxNywxMyArMzMxNiw5IEBAIGJvb2wgRG9jdW1lbnQ6OmNoaWxkVHlwZUFs
bG93ZWQoTm9kZVR5cGUgdHlwZSkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wg
RG9jdW1lbnQ6OmNhblJlcGxhY2VDaGlsZChOb2RlKiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQp
Citib29sIERvY3VtZW50OjpjYW5SZXBsYWNlQ2hpbGQoTm9kZSYgbmV3Q2hpbGQsIE5vZGUmIG9s
ZENoaWxkKQogewotICAgIGlmICghb2xkQ2hpbGQpCi0gICAgICAgIC8vIENvbnRhaW5lck5vZGU6
OnJlcGxhY2VDaGlsZCB3aWxsIHJhaXNlIGEgTk9UX0ZPVU5EX0VSUi4KLSAgICAgICAgcmV0dXJu
IHRydWU7Ci0KLSAgICBpZiAob2xkQ2hpbGQtPm5vZGVUeXBlKCkgPT0gbmV3Q2hpbGQtPm5vZGVU
eXBlKCkpCisgICAgaWYgKG9sZENoaWxkLm5vZGVUeXBlKCkgPT0gbmV3Q2hpbGQubm9kZVR5cGUo
KSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBpbnQgbnVtRG9jdHlwZXMgPSAwOwpAQCAt
MzMzMiw3ICszMzI3LDcgQEAgYm9vbCBEb2N1bWVudDo6Y2FuUmVwbGFjZUNoaWxkKE5vZGUqIG5l
d0NoaWxkLCBOb2RlKiBvbGRDaGlsZCkKICAgICAvLyBGaXJzdCwgY2hlY2sgaG93IG1hbnkgZG9j
dHlwZXMgYW5kIGVsZW1lbnRzIHdlIGhhdmUsIG5vdCBjb3VudGluZwogICAgIC8vIHRoZSBjaGls
ZCB3ZSdyZSBhYm91dCB0byByZW1vdmUuCiAgICAgZm9yIChOb2RlKiBjID0gZmlyc3RDaGlsZCgp
OyBjOyBjID0gYy0+bmV4dFNpYmxpbmcoKSkgewotICAgICAgICBpZiAoYyA9PSBvbGRDaGlsZCkK
KyAgICAgICAgaWYgKGMgPT0gJm9sZENoaWxkKQogICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgIAogICAgICAgICBzd2l0Y2ggKGMtPm5vZGVUeXBlKCkpIHsKQEAgLTMzNDgsOCArMzM0Myw4
IEBAIGJvb2wgRG9jdW1lbnQ6OmNhblJlcGxhY2VDaGlsZChOb2RlKiBuZXdDaGlsZCwgTm9kZSog
b2xkQ2hpbGQpCiAgICAgfQogICAgIAogICAgIC8vIFRoZW4sIHNlZSBob3cgbWFueSBkb2N0eXBl
cyBhbmQgZWxlbWVudHMgbWlnaHQgYmUgYWRkZWQgYnkgdGhlIG5ldyBjaGlsZC4KLSAgICBpZiAo
bmV3Q2hpbGQtPmlzRG9jdW1lbnRGcmFnbWVudCgpKSB7Ci0gICAgICAgIGZvciAoTm9kZSogYyA9
IG5ld0NoaWxkLT5maXJzdENoaWxkKCk7IGM7IGMgPSBjLT5uZXh0U2libGluZygpKSB7CisgICAg
aWYgKG5ld0NoaWxkLmlzRG9jdW1lbnRGcmFnbWVudCgpKSB7CisgICAgICAgIGZvciAoTm9kZSog
YyA9IG5ld0NoaWxkLmZpcnN0Q2hpbGQoKTsgYzsgYyA9IGMtPm5leHRTaWJsaW5nKCkpIHsKICAg
ICAgICAgICAgIHN3aXRjaCAoYy0+bm9kZVR5cGUoKSkgewogICAgICAgICAgICAgY2FzZSBBVFRS
SUJVVEVfTk9ERToKICAgICAgICAgICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9OT0RFOgpAQCAtMzM3
Miw3ICszMzY3LDcgQEAgYm9vbCBEb2N1bWVudDo6Y2FuUmVwbGFjZUNoaWxkKE5vZGUqIG5ld0No
aWxkLCBOb2RlKiBvbGRDaGlsZCkKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0gZWxz
ZSB7Ci0gICAgICAgIHN3aXRjaCAobmV3Q2hpbGQtPm5vZGVUeXBlKCkpIHsKKyAgICAgICAgc3dp
dGNoIChuZXdDaGlsZC5ub2RlVHlwZSgpKSB7CiAgICAgICAgIGNhc2UgQVRUUklCVVRFX05PREU6
CiAgICAgICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9OT0RFOgogICAgICAgICBjYXNlIERPQ1VNRU5U
X0ZSQUdNRU5UX05PREU6CkBAIC0zNDAwLDcgKzMzOTUsNyBAQCBib29sIERvY3VtZW50OjpjYW5S
ZXBsYWNlQ2hpbGQoTm9kZSogbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkKQogICAgIHJldHVybiB0
cnVlOwogfQogCi1SZWZQdHI8Tm9kZT4gRG9jdW1lbnQ6OmNsb25lTm9kZUludGVybmFsKERvY3Vt
ZW50JiwgQ2xvbmluZ09wZXJhdGlvbiB0eXBlKQorUmVmPE5vZGU+IERvY3VtZW50OjpjbG9uZU5v
ZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24gdHlwZSkKIHsKICAgICBSZWY8
RG9jdW1lbnQ+IGNsb25lID0gY2xvbmVEb2N1bWVudFdpdGhvdXRDaGlsZHJlbigpOwogICAgIGNs
b25lLT5jbG9uZURhdGFGcm9tRG9jdW1lbnQoKnRoaXMpOwpAQCAtMzQwOSw3ICszNDA0LDcgQEAg
UmVmUHRyPE5vZGU+IERvY3VtZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25p
bmdPcGVyYXRpb24gdHlwZSkKICAgICBjYXNlIENsb25pbmdPcGVyYXRpb246OlNlbGZXaXRoVGVt
cGxhdGVDb250ZW50OgogICAgICAgICBicmVhazsKICAgICBjYXNlIENsb25pbmdPcGVyYXRpb246
OkV2ZXJ5dGhpbmc6Ci0gICAgICAgIGNsb25lQ2hpbGROb2RlcyhjbG9uZS5wdHIoKSk7CisgICAg
ICAgIGNsb25lQ2hpbGROb2RlcyhjbG9uZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBy
ZXR1cm4gV1RGOjptb3ZlKGNsb25lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggOWVmNDhjOTMz
ODA3M2FlMDI5YzJlYTM3YzkzNzVkNWNlYjk5YTZkNC4uMTM1YzdlNjM5NTUwYWQyYzc0ZThkM2Y3
MzZkZmQyODFiYmRhZWNhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTc0Nyw3ICs3NDcsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBub2RlQ2hpbGRyZW5XaWxsQmVSZW1vdmVkKENvbnRhaW5lck5v
ZGUmKTsKICAgICAvLyBub2RlV2lsbEJlUmVtb3ZlZCBpcyBvbmx5IHNhZmUgd2hlbiByZW1vdmlu
ZyBvbmUgbm9kZSBhdCBhIHRpbWUuCiAgICAgdm9pZCBub2RlV2lsbEJlUmVtb3ZlZChOb2RlJik7
Ci0gICAgYm9vbCBjYW5SZXBsYWNlQ2hpbGQoTm9kZSogbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxk
KTsKKyAgICBib29sIGNhblJlcGxhY2VDaGlsZChOb2RlJiBuZXdDaGlsZCwgTm9kZSYgb2xkQ2hp
bGQpOwogCiAgICAgdm9pZCB0ZXh0SW5zZXJ0ZWQoTm9kZSosIHVuc2lnbmVkIG9mZnNldCwgdW5z
aWduZWQgbGVuZ3RoKTsKICAgICB2b2lkIHRleHRSZW1vdmVkKE5vZGUqLCB1bnNpZ25lZCBvZmZz
ZXQsIHVuc2lnbmVkIGxlbmd0aCk7CkBAIC0xMzExLDcgKzEzMTEsNyBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmly
dHVhbCBOb2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1
YWwgYm9vbCBjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlKSBjb25zdCBvdmVycmlkZSBmaW5hbDsK
LSAgICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENs
b25pbmdPcGVyYXRpb24pIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNs
b25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGUgZmlu
YWw7CiAgICAgdm9pZCBjbG9uZURhdGFGcm9tRG9jdW1lbnQoY29uc3QgRG9jdW1lbnQmKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCByZWZTY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgb3ZlcnJpZGUgZmlu
YWwgeyByZWYoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJh
Z21lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCmluZGV4
IDRmYWI1OGUzNGQ0NjU1ZWNmNGUzN2RhNWRkOWMzYzU2MjJmNDA3NjguLmY5YjM4YTBiZDI4ZThl
M2M2MDkzNGFmZjFhNjAwNTkyNzA5MDNmZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudEZyYWdtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRG
cmFnbWVudC5jcHAKQEAgLTY3LDE4ICs2NywxOCBAQCBib29sIERvY3VtZW50RnJhZ21lbnQ6OmNo
aWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkgY29uc3QKICAgICB9CiB9CiAKLVJlZlB0cjxO
b2RlPiBEb2N1bWVudEZyYWdtZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0
RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24gdHlwZSkKK1JlZjxOb2RlPiBEb2N1bWVudEZyYWdt
ZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdP
cGVyYXRpb24gdHlwZSkKIHsKLSAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY2xvbmUgPSBj
cmVhdGUodGFyZ2V0RG9jdW1lbnQpOworICAgIFJlZjxEb2N1bWVudEZyYWdtZW50PiBjbG9uZSA9
IGNyZWF0ZSh0YXJnZXREb2N1bWVudCk7CiAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgY2FzZSBD
bG9uaW5nT3BlcmF0aW9uOjpPbmx5U2VsZjoKICAgICBjYXNlIENsb25pbmdPcGVyYXRpb246OlNl
bGZXaXRoVGVtcGxhdGVDb250ZW50OgogICAgICAgICBicmVhazsKICAgICBjYXNlIENsb25pbmdP
cGVyYXRpb246OkV2ZXJ5dGhpbmc6Ci0gICAgICAgIGNsb25lQ2hpbGROb2RlcyhjbG9uZS5nZXQo
KSk7CisgICAgICAgIGNsb25lQ2hpbGROb2RlcyhjbG9uZSk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KLSAgICByZXR1cm4gY2xvbmU7CisgICAgcmV0dXJuIFdURjo6bW92ZShjbG9uZSk7CiB9CiAK
IHZvaWQgRG9jdW1lbnRGcmFnbWVudDo6cGFyc2VIVE1MKGNvbnN0IFN0cmluZyYgc291cmNlLCBF
bGVtZW50KiBjb250ZXh0RWxlbWVudCwgUGFyc2VyQ29udGVudFBvbGljeSBwYXJzZXJDb250ZW50
UG9saWN5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmgKaW5kZXggZDA3ZTAzNGMw
MDdlNjYyOTYyNTFiZDBjMGIxNjA2ZDcwOWEwNWY2NS4uNmViMWVkNjFjNDYyMDEzZmQwNTc0ZDRh
ZmUzZWNjNWUyNGM4NDVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
RnJhZ21lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5oCkBA
IC00OCw3ICs0OCw3IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIE5vZGVU
eXBlIG5vZGVUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7Ci0gICAgdmlydHVhbCBSZWZQdHI8
Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYs
IENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFR5cGVB
bGxvd2VkKE5vZGVUeXBlKSBjb25zdCBvdmVycmlkZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50VHlwZS5jcHAKaW5kZXggNjdlM2Q1Mzg0M2Y4MmEwYmM1OWI5ZDBlZmZjYWUyN2FmMzBiOTYz
NC4uYzE5ZDAxODJhZmFmZGE1ZDhjMjBlY2ZkN2QzOWQxNWJhMDE4N2ViYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50VHlwZS5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgTm9kZTo6Tm9kZVR5cGUgRG9j
dW1lbnRUeXBlOjpub2RlVHlwZSgpIGNvbnN0CiAgICAgcmV0dXJuIERPQ1VNRU5UX1RZUEVfTk9E
RTsKIH0KIAotUmVmUHRyPE5vZGU+IERvY3VtZW50VHlwZTo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9j
dW1lbnQmIGRvY3VtZW50VGFyZ2V0LCBDbG9uaW5nT3BlcmF0aW9uKQorUmVmPE5vZGU+IERvY3Vt
ZW50VHlwZTo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIGRvY3VtZW50VGFyZ2V0LCBDbG9u
aW5nT3BlcmF0aW9uKQogewogICAgIHJldHVybiBjcmVhdGUoZG9jdW1lbnRUYXJnZXQsIG1fbmFt
ZSwgbV9wdWJsaWNJZCwgbV9zeXN0ZW1JZCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRUeXBlLmgK
aW5kZXggYzdhMWQ5YjUyNmY2ZWVlYTExY2EzYTcyNzVlYjMxZjVhNmUxMzJhNS4uYzc5YzBjZWE4
NjlkMjA1OWJiZGJiODIxNTljOGZmMTA3ODgzOGVkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFR5
cGUuaApAQCAtNTIsNyArNTIsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgVVJMIGJhc2VVUkko
KSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFN0cmluZyBub2RlTmFtZSgpIGNvbnN0IG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgTm9kZVR5cGUgbm9kZVR5cGUoKSBjb25zdCBvdmVycmlkZTsK
LSAgICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENs
b25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNsb25lTm9k
ZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CiAKICAgICBT
dHJpbmcgbV9uYW1lOwogICAgIFN0cmluZyBtX3B1YmxpY0lkOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CmluZGV4IDY3NTAwMGE1NGE3MDgyOWMwZDExMTJkOThiZjg5YmNhY2RkN2MzOWMuLjNhODkwNjE3
ZmEzYTA3YzdhMTljYTdhMzQyOTdjMTcxOTI4NGI5OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
QEAgLTMxMiwzOCArMzEyLDM3IEBAIHZvaWQgRWxlbWVudDo6ZGlzcGF0Y2hTaW11bGF0ZWRDbGlj
ayhFdmVudCogdW5kZXJseWluZ0V2ZW50LCBTaW11bGF0ZWRDbGlja01vdXNlCiAgICAgRXZlbnRE
aXNwYXRjaGVyOjpkaXNwYXRjaFNpbXVsYXRlZENsaWNrKHRoaXMsIHVuZGVybHlpbmdFdmVudCwg
ZXZlbnRPcHRpb25zLCB2aXN1YWxPcHRpb25zKTsKIH0KIAotUmVmUHRyPE5vZGU+IEVsZW1lbnQ6
OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJh
dGlvbiB0eXBlKQorUmVmPE5vZGU+IEVsZW1lbnQ6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50
JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbiB0eXBlKQogewogICAgIHN3aXRjaCAo
dHlwZSkgewogICAgIGNhc2UgQ2xvbmluZ09wZXJhdGlvbjo6T25seVNlbGY6CiAgICAgY2FzZSBD
bG9uaW5nT3BlcmF0aW9uOjpTZWxmV2l0aFRlbXBsYXRlQ29udGVudDoKICAgICAgICAgcmV0dXJu
IGNsb25lRWxlbWVudFdpdGhvdXRDaGlsZHJlbih0YXJnZXREb2N1bWVudCk7CiAgICAgY2FzZSBD
bG9uaW5nT3BlcmF0aW9uOjpFdmVyeXRoaW5nOgotICAgICAgICByZXR1cm4gY2xvbmVFbGVtZW50
V2l0aENoaWxkcmVuKHRhcmdldERvY3VtZW50KTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQotICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBj
bG9uZUVsZW1lbnRXaXRoQ2hpbGRyZW4odGFyZ2V0RG9jdW1lbnQpOwogfQogCi1SZWZQdHI8RWxl
bWVudD4gRWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aENoaWxkcmVuKERvY3VtZW50JiB0YXJnZXRE
b2N1bWVudCkKK1JlZjxFbGVtZW50PiBFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRoQ2hpbGRyZW4o
RG9jdW1lbnQmIHRhcmdldERvY3VtZW50KQogewotICAgIFJlZlB0cjxFbGVtZW50PiBjbG9uZSA9
IGNsb25lRWxlbWVudFdpdGhvdXRDaGlsZHJlbih0YXJnZXREb2N1bWVudCk7Ci0gICAgY2xvbmVD
aGlsZE5vZGVzKGNsb25lLmdldCgpKTsKLSAgICByZXR1cm4gY2xvbmUucmVsZWFzZSgpOworICAg
IFJlZjxFbGVtZW50PiBjbG9uZSA9IGNsb25lRWxlbWVudFdpdGhvdXRDaGlsZHJlbih0YXJnZXRE
b2N1bWVudCk7CisgICAgY2xvbmVDaGlsZE5vZGVzKGNsb25lKTsKKyAgICByZXR1cm4gY2xvbmU7
CiB9CiAKLVJlZlB0cjxFbGVtZW50PiBFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0Q2hpbGRy
ZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50KQorUmVmPEVsZW1lbnQ+IEVsZW1lbnQ6OmNsb25l
RWxlbWVudFdpdGhvdXRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQpCiB7Ci0gICAg
UmVmUHRyPEVsZW1lbnQ+IGNsb25lID0gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRD
aGlsZHJlbih0YXJnZXREb2N1bWVudCk7CisgICAgUmVmPEVsZW1lbnQ+IGNsb25lID0gY2xvbmVF
bGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbih0YXJnZXREb2N1bWVudCk7CiAgICAg
Ly8gVGhpcyB3aWxsIGNhdGNoIEhUTUwgZWxlbWVudHMgaW4gdGhlIHdyb25nIG5hbWVzcGFjZSB0
aGF0IGFyZSBub3QgY29ycmVjdGx5IGNvcGllZC4KICAgICAvLyBUaGlzIGlzIGEgc2FuaXR5IGNo
ZWNrIGFzIEhUTUwgb3ZlcmxvYWRzIHNvbWUgb2YgdGhlIERPTSBtZXRob2RzLgogICAgIEFTU0VS
VChpc0hUTUxFbGVtZW50KCkgPT0gY2xvbmUtPmlzSFRNTEVsZW1lbnQoKSk7CiAKICAgICBjbG9u
ZS0+Y2xvbmVEYXRhRnJvbUVsZW1lbnQoKnRoaXMpOwotICAgIHJldHVybiBjbG9uZS5yZWxlYXNl
KCk7CisgICAgcmV0dXJuIGNsb25lOwogfQogCi1SZWZQdHI8RWxlbWVudD4gRWxlbWVudDo6Y2xv
bmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9j
dW1lbnQpCitSZWY8RWxlbWVudD4gRWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0
ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIHRh
cmdldERvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnUU5hbWUoKSwgZmFsc2UpOwogfQpAQCAtMjMx
OSw3ICsyMzE4LDcgQEAgdm9pZCBFbGVtZW50OjpzZXRPdXRlckhUTUwoY29uc3QgU3RyaW5nJiBo
dG1sLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybjsKICAg
ICAKLSAgICBwYXJlbnQtPnJlcGxhY2VDaGlsZChmcmFnbWVudC5yZWxlYXNlKCksIHRoaXMsIGVj
KTsKKyAgICBwYXJlbnQtPnJlcGxhY2VDaGlsZChmcmFnbWVudC5yZWxlYXNlTm9uTnVsbCgpLCAq
dGhpcywgZWMpOwogICAgIFJlZlB0cjxOb2RlPiBub2RlID0gbmV4dCA/IG5leHQtPnByZXZpb3Vz
U2libGluZygpIDogbnVsbHB0cjsKICAgICBpZiAoIWVjICYmIGlzPFRleHQ+KG5vZGUuZ2V0KCkp
KQogICAgICAgICBtZXJnZVdpdGhOZXh0VGV4dE5vZGUoZG93bmNhc3Q8VGV4dD4oKm5vZGUpLCBl
Yyk7CkBAIC0yMzM4LDcgKzIzMzcsNyBAQCB2b2lkIEVsZW1lbnQ6OnNldElubmVySFRNTChjb25z
dCBTdHJpbmcmIGh0bWwsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICAgICAgY29udGFpbmVy
ID0gZG93bmNhc3Q8SFRNTFRlbXBsYXRlRWxlbWVudD4oKnRoaXMpLmNvbnRlbnQoKTsKICNlbmRp
ZgogCi0gICAgICAgIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudCgqY29udGFpbmVyLCBmcmFn
bWVudC5yZWxlYXNlKCksIGVjKTsKKyAgICAgICAgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50
KCpjb250YWluZXIsIGZyYWdtZW50LnJlbGVhc2VOb25OdWxsKCksIGVjKTsKICAgICB9CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5oCmluZGV4IDFlNjA3MDNjYjZiMmZkOTM2MDcxZjg1YjliOWRhOWQ3YWE0
MGNjNGIuLjA0ODEwZTFjZjg0OTVlZDI0ZmQ4OTQ1MDUzZmFmYmNkNDMyMmQxMWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaApAQCAtMjAxLDggKzIwMSw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgU3Ry
aW5nIG5vZGVOYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBSZWZQdHI8RWxlbWVudD4gY2xv
bmVFbGVtZW50V2l0aENoaWxkcmVuKERvY3VtZW50Jik7Ci0gICAgUmVmUHRyPEVsZW1lbnQ+IGNs
b25lRWxlbWVudFdpdGhvdXRDaGlsZHJlbihEb2N1bWVudCYpOworICAgIFJlZjxFbGVtZW50PiBj
bG9uZUVsZW1lbnRXaXRoQ2hpbGRyZW4oRG9jdW1lbnQmKTsKKyAgICBSZWY8RWxlbWVudD4gY2xv
bmVFbGVtZW50V2l0aG91dENoaWxkcmVuKERvY3VtZW50Jik7CiAKICAgICB2b2lkIG5vcm1hbGl6
ZUF0dHJpYnV0ZXMoKTsKICAgICBTdHJpbmcgbm9kZU5hbWVQcmVzZXJ2aW5nQ2FzZSgpIGNvbnN0
OwpAQCAtNTYzLDggKzU2Myw4IEBAIHByaXZhdGU6CiAKICAgICAvLyBjbG9uZU5vZGUgaXMgcHJp
dmF0ZSBzbyB0aGF0IG5vbi12aXJ0dWFsIGNsb25lRWxlbWVudFdpdGhDaGlsZHJlbiBhbmQgY2xv
bmVFbGVtZW50V2l0aG91dENoaWxkcmVuCiAgICAgLy8gYXJlIHVzZWQgaW5zdGVhZC4KLSAgICB2
aXJ0dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdP
cGVyYXRpb24pIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVmUHRyPEVsZW1lbnQ+IGNsb25lRWxl
bWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmKTsKKyAgICB2aXJ0dWFs
IFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24p
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRB
dHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmKTsKIAogICAgIHZvaWQgYWRkU2hhZG93Um9v
dChSZWY8U2hhZG93Um9vdD4mJik7CiAgICAgdm9pZCByZW1vdmVTaGFkb3dSb290KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuY3BwCmluZGV4IGEyZmY2M2IwMTBlNmUyOGUwZmM0
ZWFhZTg1YTc0YTEzZmU5ZDZjN2YuLjdlOTFhNDYyZGE4MjA5ZDkyMmM0NWRjODRjNDFhMDg1NWFk
NmJlMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuY3BwCkBAIC00Niw3ICs0
Niw3IEBAIE5vZGU6Ok5vZGVUeXBlIEVudGl0eVJlZmVyZW5jZTo6bm9kZVR5cGUoKSBjb25zdAog
ICAgIHJldHVybiBFTlRJVFlfUkVGRVJFTkNFX05PREU7CiB9CiAKLVJlZlB0cjxOb2RlPiBFbnRp
dHlSZWZlcmVuY2U6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwg
Q2xvbmluZ09wZXJhdGlvbikKK1JlZjxOb2RlPiBFbnRpdHlSZWZlcmVuY2U6OmNsb25lTm9kZUlu
dGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikKIHsKICAg
ICByZXR1cm4gY3JlYXRlKHRhcmdldERvY3VtZW50LCBtX2VudGl0eU5hbWUpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VudGl0eVJlZmVyZW5jZS5oCmluZGV4IDAzZjQzY2RmOTVlYTY4ZjAwNGQ5ZjExM2Jh
MTY4ZjBmN2JmYWYzOTYuLjg2ZGZlYjM5ODI1YjM0NTBlNzUzNTkyNTA2ODUxMTBiM2FmMGNhOGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmgKQEAgLTM1LDcgKzM1LDcgQEAgcHJp
dmF0ZToKIAogICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCBOb2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1
YWwgUmVmUHRyPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJh
dGlvbikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwo
RG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKIAogICAgIFN0cmluZyBtX2Vu
dGl0eU5hbWU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IGZkYzdmYjU1MGRhMTVmM2M1OWU1OTZk
NTYxM2Y3MzI1MmM5NTE4YmEuLjI4ZjIxMTQ1ZTE1MmVjNDk5NTUyMTFlM2IyZmU4NGQ4Y2ZiZTQ4
MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTQyOSwzOCArNDI5LDU0IEBAIEVsZW1lbnQqIE5vZGU6
Om5leHRFbGVtZW50U2libGluZygpIGNvbnN0CiAKIGJvb2wgTm9kZTo6aW5zZXJ0QmVmb3JlKFBh
c3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIHJlZkNoaWxkLCBFeGNlcHRpb25Db2RlJiBl
YykKIHsKKyAgICBpZiAoIW5ld0NoaWxkKSB7CisgICAgICAgIGVjID0gVHlwZUVycm9yOworICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogICAgIGlmICghaXM8Q29udGFpbmVyTm9kZT4oKnRo
aXMpKSB7CiAgICAgICAgIGVjID0gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQotICAgIHJldHVybiBkb3duY2FzdDxDb250YWluZXJOb2RlPigqdGhp
cykuaW5zZXJ0QmVmb3JlKG5ld0NoaWxkLCByZWZDaGlsZCwgZWMpOworICAgIHJldHVybiBkb3du
Y2FzdDxDb250YWluZXJOb2RlPigqdGhpcykuaW5zZXJ0QmVmb3JlKCpuZXdDaGlsZCwgcmVmQ2hp
bGQsIGVjKTsKIH0KIAogYm9vbCBOb2RlOjpyZXBsYWNlQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBu
ZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogeworICAgIGlmICgh
bmV3Q2hpbGQgfHwgIW9sZENoaWxkKSB7CisgICAgICAgIGVjID0gVHlwZUVycm9yOworICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQogICAgIGlmICghaXM8Q29udGFpbmVyTm9kZT4oKnRoaXMp
KSB7CiAgICAgICAgIGVjID0gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQotICAgIHJldHVybiBkb3duY2FzdDxDb250YWluZXJOb2RlPigqdGhpcyku
cmVwbGFjZUNoaWxkKG5ld0NoaWxkLCBvbGRDaGlsZCwgZWMpOworICAgIHJldHVybiBkb3duY2Fz
dDxDb250YWluZXJOb2RlPigqdGhpcykucmVwbGFjZUNoaWxkKCpuZXdDaGlsZCwgKm9sZENoaWxk
LCBlYyk7CiB9CiAKIGJvb2wgTm9kZTo6cmVtb3ZlQ2hpbGQoTm9kZSogb2xkQ2hpbGQsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogeworICAgIGlmICghb2xkQ2hpbGQpIHsKKyAgICAgICAgZWMgPSBUeXBl
RXJyb3I7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAgICAgaWYgKCFpczxDb250YWlu
ZXJOb2RlPigqdGhpcykpIHsKICAgICAgICAgZWMgPSBOT1RfRk9VTkRfRVJSOwogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIHJldHVybiBkb3duY2FzdDxDb250YWluZXJOb2RlPigq
dGhpcykucmVtb3ZlQ2hpbGQob2xkQ2hpbGQsIGVjKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8Q29u
dGFpbmVyTm9kZT4oKnRoaXMpLnJlbW92ZUNoaWxkKCpvbGRDaGlsZCwgZWMpOwogfQogCiBib29s
IE5vZGU6OmFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogeworICAgIGlmICghbmV3Q2hpbGQpIHsKKyAgICAgICAgZWMgPSBUeXBlRXJyb3I7
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAgICAgaWYgKCFpczxDb250YWluZXJOb2Rl
PigqdGhpcykpIHsKICAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIGRvd25jYXN0PENvbnRhaW5lck5vZGU+
KCp0aGlzKS5hcHBlbmRDaGlsZChuZXdDaGlsZCwgZWMpOworICAgIHJldHVybiBkb3duY2FzdDxD
b250YWluZXJOb2RlPigqdGhpcykuYXBwZW5kQ2hpbGQoKm5ld0NoaWxkLCBlYyk7CiB9CiAKIHN0
YXRpYyBIYXNoU2V0PFJlZlB0cjxOb2RlPj4gbm9kZVNldFByZVRyYW5zZm9ybWVkRnJvbU5vZGVP
clN0cmluZ1ZlY3Rvcihjb25zdCBWZWN0b3I8Tm9kZU9yU3RyaW5nPiYgbm9kZU9yU3RyaW5nVmVj
dG9yKQpAQCAtNTE1LDcgKzUzMSw3IEBAIHZvaWQgTm9kZTo6YmVmb3JlKFZlY3RvcjxOb2RlT3JT
dHJpbmc+JiYgbm9kZU9yU3RyaW5nVmVjdG9yLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBlbHNl
CiAgICAgICAgIHZpYWJsZVByZXZpb3VzU2libGluZyA9IHBhcmVudC0+Zmlyc3RDaGlsZCgpOwog
Ci0gICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobm9kZS5yZWxlYXNlKCksIHZpYWJsZVByZXZpb3Vz
U2libGluZy5nZXQoKSwgZWMpOworICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG5vZGUucmVsZWFz
ZU5vbk51bGwoKSwgdmlhYmxlUHJldmlvdXNTaWJsaW5nLmdldCgpLCBlYyk7CiB9CiAKIHZvaWQg
Tm9kZTo6YWZ0ZXIoVmVjdG9yPE5vZGVPclN0cmluZz4mJiBub2RlT3JTdHJpbmdWZWN0b3IsIEV4
Y2VwdGlvbkNvZGUmIGVjKQpAQCAtNTMxLDcgKzU0Nyw3IEBAIHZvaWQgTm9kZTo6YWZ0ZXIoVmVj
dG9yPE5vZGVPclN0cmluZz4mJiBub2RlT3JTdHJpbmdWZWN0b3IsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogICAgIGlmIChlYyB8fCAhbm9kZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcGFyZW50LT5p
bnNlcnRCZWZvcmUobm9kZS5yZWxlYXNlKCksIHZpYWJsZU5leHRTaWJsaW5nLmdldCgpLCBlYyk7
CisgICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobm9kZS5yZWxlYXNlTm9uTnVsbCgpLCB2aWFibGVO
ZXh0U2libGluZy5nZXQoKSwgZWMpOwogfQogCiB2b2lkIE5vZGU6OnJlcGxhY2VXaXRoKFZlY3Rv
cjxOb2RlT3JTdHJpbmc+JiYgbm9kZU9yU3RyaW5nVmVjdG9yLCBFeGNlcHRpb25Db2RlJiBlYykK
QEAgLTU0OCwxNSArNTY0LDE1IEBAIHZvaWQgTm9kZTo6cmVwbGFjZVdpdGgoVmVjdG9yPE5vZGVP
clN0cmluZz4mJiBub2RlT3JTdHJpbmdWZWN0b3IsIEV4Y2VwdGlvbkNvZGUmCiAgICAgICAgIHJl
dHVybjsKIAogICAgIGlmIChwYXJlbnROb2RlKCkgPT0gcGFyZW50KQotICAgICAgICBwYXJlbnQt
PnJlcGxhY2VDaGlsZChub2RlLnJlbGVhc2UoKSwgdGhpcywgZWMpOworICAgICAgICBwYXJlbnQt
PnJlcGxhY2VDaGlsZChub2RlLnJlbGVhc2VOb25OdWxsKCksICp0aGlzLCBlYyk7CiAgICAgZWxz
ZQotICAgICAgICBwYXJlbnQtPmluc2VydEJlZm9yZShub2RlLnJlbGVhc2UoKSwgdmlhYmxlTmV4
dFNpYmxpbmcuZ2V0KCksIGVjKTsKKyAgICAgICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobm9kZS5y
ZWxlYXNlTm9uTnVsbCgpLCB2aWFibGVOZXh0U2libGluZy5nZXQoKSwgZWMpOwogfQogCiB2b2lk
IE5vZGU6OnJlbW92ZShFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAoQ29udGFpbmVyTm9k
ZSogcGFyZW50ID0gcGFyZW50Tm9kZSgpKQotICAgICAgICBwYXJlbnQtPnJlbW92ZUNoaWxkKHRo
aXMsIGVjKTsKKyAgICAgICAgcGFyZW50LT5yZW1vdmVDaGlsZCgqdGhpcywgZWMpOwogfQogCiB2
b2lkIE5vZGU6Om5vcm1hbGl6ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCA5MjllY2U0MmM4ZWI3YzJiNWE0
MzhlNTlmNWUxNzc2YWIxODlkMDY1Li5hNTJmMGY0M2YxNTEwNjFlODI2ZDVhNTg5NTQzZjlhMTU5
OTNkOGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTIwMSw4ICsyMDEsOCBAQCBwdWJsaWM6CiAgICAgICAg
IFNlbGZXaXRoVGVtcGxhdGVDb250ZW50LAogICAgICAgICBFdmVyeXRoaW5nLAogICAgIH07Ci0g
ICAgdmlydHVhbCBSZWZQdHI8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9u
aW5nT3BlcmF0aW9uKSA9IDA7Ci0gICAgUmVmUHRyPE5vZGU+IGNsb25lTm9kZShib29sIGRlZXAp
IHsgcmV0dXJuIGNsb25lTm9kZUludGVybmFsKGRvY3VtZW50KCksIGRlZXAgPyBDbG9uaW5nT3Bl
cmF0aW9uOjpFdmVyeXRoaW5nIDogQ2xvbmluZ09wZXJhdGlvbjo6T25seVNlbGYpOyB9CisgICAg
dmlydHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3Bl
cmF0aW9uKSA9IDA7CisgICAgUmVmPE5vZGU+IGNsb25lTm9kZShib29sIGRlZXApIHsgcmV0dXJu
IGNsb25lTm9kZUludGVybmFsKGRvY3VtZW50KCksIGRlZXAgPyBDbG9uaW5nT3BlcmF0aW9uOjpF
dmVyeXRoaW5nIDogQ2xvbmluZ09wZXJhdGlvbjo6T25seVNlbGYpOyB9CiAKICAgICB2aXJ0dWFs
IGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lKCkgY29uc3Q7CiAgICAgdmlydHVhbCBjb25z
dCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcAppbmRleCBiMzQzY2EzYTAxYWU4ZWVmZGI1OTdl
NWQ0ZTIyZTI3Yjk5M2ZlZjkwLi4zMDAwOWI3YjBkZmNlYTU2OWUyY2NlYTE4MzE1Y2IyNzUxMzFj
MDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcApA
QCAtNzksNyArNzksNyBAQCBOb2RlOjpOb2RlVHlwZSBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb246Om5v
ZGVUeXBlKCkgY29uc3QKICAgICByZXR1cm4gUFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOwog
fQogCi1SZWZQdHI8Tm9kZT4gUHJvY2Vzc2luZ0luc3RydWN0aW9uOjpjbG9uZU5vZGVJbnRlcm5h
bChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24pCitSZWY8Tm9kZT4g
UHJvY2Vzc2luZ0luc3RydWN0aW9uOjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0
RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24pCiB7CiAgICAgLy8gRklYTUU6IElzIGl0IGEgcHJv
YmxlbSB0aGF0IHRoaXMgZG9lcyBub3QgY29weSBtX2xvY2FsSHJlZj8KICAgICAvLyBXaGF0IGFi
b3V0IG90aGVyIGRhdGEgbWVtYmVycz8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Q
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uaAppbmRleCAyMWZkOWU5N2NkMmY3NWM4ZmQ3NTgwMGUwMjJhZGEyOTUzOTc2Zjhl
Li5lZmE5MDViNjY2M2YzYTI5M2M5NzcxMDUzNGZkNmZkYTk4NDJlOTdhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5oCkBAIC01OCw3ICs1OCw3IEBAIHByaXZh
dGU6CiAKICAgICB2aXJ0dWFsIFN0cmluZyBub2RlTmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgTm9kZVR5cGUgbm9kZVR5cGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFs
IFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRp
b24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERv
Y3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIEluc2Vy
dGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmKSBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYpIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9SYW5nZS5jcHAKaW5kZXggNGQyMjdkYWFmNGU0NDg4MTg4NDI3MWMxYmRlOWYx
ODgzZjVhYzRhNC4uMjY1MDhjZjA0NzJkNGYwZWRlZmE1ZDM1NTdjZTkyM2M3OGIxYjkyNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vUmFuZ2UuY3BwCkBAIC02NjUsNyArNjY1LDcgQEAgUmVmUHRyPERvY3VtZW50RnJhZ21l
bnQ+IFJhbmdlOjpwcm9jZXNzQ29udGVudHMoQWN0aW9uVHlwZSBhY3Rpb24sIEV4Y2VwdGlvbkNv
ZGUKICAgICAvLyAob3IganVzdCBkZWxldGUgdGhlIHN0dWZmIGluIGJldHdlZW4pCiAKICAgICBp
ZiAoKGFjdGlvbiA9PSBFeHRyYWN0IHx8IGFjdGlvbiA9PSBDbG9uZSkgJiYgbGVmdENvbnRlbnRz
KQotICAgICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQobGVmdENvbnRlbnRzLCBlYyk7CisgICAg
ICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZCgqbGVmdENvbnRlbnRzLCBlYyk7CiAKICAgICBpZiAo
cHJvY2Vzc1N0YXJ0KSB7CiAgICAgICAgIE5vZGVWZWN0b3Igbm9kZXM7CkBAIC02NzUsNyArNjc1
LDcgQEAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFJhbmdlOjpwcm9jZXNzQ29udGVudHMoQWN0
aW9uVHlwZSBhY3Rpb24sIEV4Y2VwdGlvbkNvZGUKICAgICB9CiAKICAgICBpZiAoKGFjdGlvbiA9
PSBFeHRyYWN0IHx8IGFjdGlvbiA9PSBDbG9uZSkgJiYgcmlnaHRDb250ZW50cykKLSAgICAgICAg
ZnJhZ21lbnQtPmFwcGVuZENoaWxkKHJpZ2h0Q29udGVudHMsIGVjKTsKKyAgICAgICAgZnJhZ21l
bnQtPmFwcGVuZENoaWxkKCpyaWdodENvbnRlbnRzLCBlYyk7CiAKICAgICByZXR1cm4gZnJhZ21l
bnQ7CiB9CkBAIC03MDIsNyArNzAyLDcgQEAgUmVmUHRyPE5vZGU+IFJhbmdlOjpwcm9jZXNzQ29u
dGVudHNCZXR3ZWVuT2Zmc2V0cyhBY3Rpb25UeXBlIGFjdGlvbiwgUGFzc1JlZlB0cjwKICAgICAg
ICAgZW5kT2Zmc2V0ID0gc3RkOjptaW4oZW5kT2Zmc2V0LCBzdGF0aWNfY2FzdDxDaGFyYWN0ZXJE
YXRhKj4oY29udGFpbmVyKS0+bGVuZ3RoKCkpOwogICAgICAgICBzdGFydE9mZnNldCA9IHN0ZDo6
bWluKHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQpOwogICAgICAgICBpZiAoYWN0aW9uID09IEV4dHJh
Y3QgfHwgYWN0aW9uID09IENsb25lKSB7Ci0gICAgICAgICAgICBSZWZQdHI8Q2hhcmFjdGVyRGF0
YT4gYyA9IHN0YXRpY19wb2ludGVyX2Nhc3Q8Q2hhcmFjdGVyRGF0YT4oY29udGFpbmVyLT5jbG9u
ZU5vZGUodHJ1ZSkpOworICAgICAgICAgICAgUmVmUHRyPENoYXJhY3RlckRhdGE+IGMgPSBzdGF0
aWNfY2FzdDxDaGFyYWN0ZXJEYXRhKj4oY29udGFpbmVyLT5jbG9uZU5vZGUodHJ1ZSkucHRyKCkp
OwogICAgICAgICAgICAgZGVsZXRlQ2hhcmFjdGVyRGF0YShjLCBzdGFydE9mZnNldCwgZW5kT2Zm
c2V0LCBlYyk7CiAgICAgICAgICAgICBpZiAoZnJhZ21lbnQpIHsKICAgICAgICAgICAgICAgICBy
ZXN1bHQgPSBmcmFnbWVudDsKQEAgLTcxNyw3ICs3MTcsNyBAQCBSZWZQdHI8Tm9kZT4gUmFuZ2U6
OnByb2Nlc3NDb250ZW50c0JldHdlZW5PZmZzZXRzKEFjdGlvblR5cGUgYWN0aW9uLCBQYXNzUmVm
UHRyPAogICAgICAgICBlbmRPZmZzZXQgPSBzdGQ6Om1pbihlbmRPZmZzZXQsIHN0YXRpY19jYXN0
PFByb2Nlc3NpbmdJbnN0cnVjdGlvbio+KGNvbnRhaW5lciktPmRhdGEoKS5sZW5ndGgoKSk7CiAg
ICAgICAgIHN0YXJ0T2Zmc2V0ID0gc3RkOjptaW4oc3RhcnRPZmZzZXQsIGVuZE9mZnNldCk7CiAg
ICAgICAgIGlmIChhY3Rpb24gPT0gRXh0cmFjdCB8fCBhY3Rpb24gPT0gQ2xvbmUpIHsKLSAgICAg
ICAgICAgIFJlZlB0cjxQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24+IGMgPSBzdGF0aWNfcG9pbnRlcl9j
YXN0PFByb2Nlc3NpbmdJbnN0cnVjdGlvbj4oY29udGFpbmVyLT5jbG9uZU5vZGUodHJ1ZSkpOwor
ICAgICAgICAgICAgUmVmUHRyPFByb2Nlc3NpbmdJbnN0cnVjdGlvbj4gYyA9IHN0YXRpY19jYXN0
PFByb2Nlc3NpbmdJbnN0cnVjdGlvbio+KGNvbnRhaW5lci0+Y2xvbmVOb2RlKHRydWUpLnB0cigp
KTsKICAgICAgICAgICAgIGMtPnNldERhdGEoYy0+ZGF0YSgpLnN1YnN0cmluZyhzdGFydE9mZnNl
dCwgZW5kT2Zmc2V0IC0gc3RhcnRPZmZzZXQpLCBlYyk7CiAgICAgICAgICAgICBpZiAoZnJhZ21l
bnQpIHsKICAgICAgICAgICAgICAgICByZXN1bHQgPSBmcmFnbWVudDsKQEAgLTkzNSw3ICs5MzUs
NyBAQCB2b2lkIFJhbmdlOjppbnNlcnROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gcHJwTmV3Tm9kZSwg
RXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIAogICAgICAg
ICBjb250YWluZXIgPSAmc3RhcnRDb250YWluZXIoKTsKLSAgICAgICAgY29udGFpbmVyLT5wYXJl
bnROb2RlKCktPmluc2VydEJlZm9yZShuZXdOb2RlLnJlbGVhc2UoKSwgbmV3VGV4dC5nZXQoKSwg
ZWMpOworICAgICAgICBjb250YWluZXItPnBhcmVudE5vZGUoKS0+aW5zZXJ0QmVmb3JlKG5ld05v
ZGUucmVsZWFzZU5vbk51bGwoKSwgbmV3VGV4dC5nZXQoKSwgZWMpOwogICAgICAgICBpZiAoZWMp
CiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTEzMDMsNyArMTMwMyw3IEBAIHZvaWQgUmFuZ2U6
OnN1cnJvdW5kQ29udGVudHMoUGFzc1JlZlB0cjxOb2RlPiBwYXNzTmV3UGFyZW50LCBFeGNlcHRp
b25Db2RlJiBlYykKIAogICAgIGVjID0gMDsKICAgICB3aGlsZSAoTm9kZSogbiA9IG5ld1BhcmVu
dC0+Zmlyc3RDaGlsZCgpKSB7Ci0gICAgICAgIGRvd25jYXN0PENvbnRhaW5lck5vZGU+KCpuZXdQ
YXJlbnQpLnJlbW92ZUNoaWxkKG4sIGVjKTsKKyAgICAgICAgZG93bmNhc3Q8Q29udGFpbmVyTm9k
ZT4oKm5ld1BhcmVudCkucmVtb3ZlQ2hpbGQoKm4sIGVjKTsKICAgICAgICAgaWYgKGVjKQogICAg
ICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
aGFkb3dSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAppbmRleCBh
MTIyNTdmODJkZGFkYzgwMzhlOGEzMGEzNDI1MmY2MzI5ZjdiYjZjLi44ODYxMDBkYjQ2OWUyNDFl
NDZiOTU2YmM1NzAxZGEwY2M1ZTY2OTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
U2hhZG93Um9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCkBA
IC05Miw3ICs5Miw3IEBAIHZvaWQgU2hhZG93Um9vdDo6c2V0SW5uZXJIVE1MKGNvbnN0IFN0cmlu
ZyYgbWFya3VwLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICB9CiAKICAgICBpZiAoUmVmUHRyPERv
Y3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGb3JJbm5lck91dGVySFRN
TChtYXJrdXAsIGhvc3QoKSwgQWxsb3dTY3JpcHRpbmdDb250ZW50LCBlYykpCi0gICAgICAgIHJl
cGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudCgqdGhpcywgZnJhZ21lbnQucmVsZWFzZSgpLCBlYyk7
CisgICAgICAgIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudCgqdGhpcywgZnJhZ21lbnQucmVs
ZWFzZU5vbk51bGwoKSwgZWMpOwogfQogCiBib29sIFNoYWRvd1Jvb3Q6OmNoaWxkVHlwZUFsbG93
ZWQoTm9kZVR5cGUgdHlwZSkgY29uc3QKQEAgLTEzMSw5ICsxMzEsMTAgQEAgdm9pZCBTaGFkb3dS
b290OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5nZSkKICAgICBpbnZh
bGlkYXRlRGlzdHJpYnV0aW9uKCk7CiB9CiAKLVJlZlB0cjxOb2RlPiBTaGFkb3dSb290OjpjbG9u
ZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pCitSZWY8Tm9kZT4gU2hh
ZG93Um9vdDo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKQog
ewotICAgIHJldHVybiBudWxscHRyOyAvLyBTaGFkb3dSb290cyBzaG91bGQgbmV2ZXIgYmUgY2xv
bmVkLgorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuICpzdGF0
aWNfY2FzdDxOb2RlKj4obnVsbHB0cik7IC8vIFNoYWRvd1Jvb3RzIHNob3VsZCBuZXZlciBiZSBj
bG9uZWQuCiB9CiAKIHZvaWQgU2hhZG93Um9vdDo6cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9TaGFkb3dSb290LmgKaW5kZXggNmQzMTFmZGI2MjYzZGExMmRjOWQ5MDRmNzEwZDA3
YjllYzg1YThjZi4uNjMxNjA4YWYxYWQ0NDM2YTI1YmE2MWViMzlkZWQ4ZmY2YTIyYmJkOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2hhZG93Um9vdC5oCkBAIC03Niw3ICs3Niw3IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCBib29sIGNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUpIGNvbnN0IG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBvdmVycmlk
ZTsKIAotICAgIHZpcnR1YWwgUmVmUHRyPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50
JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8Tm9kZT4gY2xv
bmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKIAog
ICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZG4ndCBoYXBwZW4uIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04ODgzNAogICAgIGJvb2wgaXNPcnBoYW4oKSBjb25zdCB7IHJl
dHVybiAhbV9ob3N0OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKaW5kZXggYjExNzFkNzYxMWJlNmRlNjUxNmI2
MDVkY2ZlMWI2ZGMxOWQ3MTM0My4uNmM0Yzg5ZGE5ZWI2ZWZjZjA2YWI4NDI5ZWE1YzRkMTIyM2Vl
MzQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9UZXh0LmNwcApAQCAtNzMsNyArNzMsNyBAQCBSZWZQdHI8VGV4dD4gVGV4
dDo6c3BsaXRUZXh0KHVuc2lnbmVkIG9mZnNldCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgZGlz
cGF0Y2hNb2RpZmllZEV2ZW50KG9sZFN0cik7CiAKICAgICBpZiAocGFyZW50Tm9kZSgpKQotICAg
ICAgICBwYXJlbnROb2RlKCktPmluc2VydEJlZm9yZShuZXdUZXh0LnB0cigpLCBuZXh0U2libGlu
ZygpLCBlYyk7CisgICAgICAgIHBhcmVudE5vZGUoKS0+aW5zZXJ0QmVmb3JlKG5ld1RleHQuY29w
eVJlZigpLCBuZXh0U2libGluZygpLCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4g
MDsKIApAQCAtMTMyLDI4ICsxMzIsMjggQEAgUmVmUHRyPFRleHQ+IFRleHQ6OnJlcGxhY2VXaG9s
ZVRleHQoY29uc3QgU3RyaW5nJiBuZXdUZXh0LCBFeGNlcHRpb25Db2RlJikKICAgICBSZWZQdHI8
VGV4dD4gcHJvdGVjdGVkVGhpcyh0aGlzKTsgLy8gTXV0YXRpb24gZXZlbnQgaGFuZGxlcnMgY291
bGQgY2F1c2Ugb3VyIGxhc3QgcmVmIHRvIGdvIGF3YXkKICAgICBSZWZQdHI8Q29udGFpbmVyTm9k
ZT4gcGFyZW50ID0gcGFyZW50Tm9kZSgpOyAvLyBQcm90ZWN0IGFnYWluc3QgbXV0YXRpb24gaGFu
ZGxlcnMgbW92aW5nIHRoaXMgbm9kZSBkdXJpbmcgdHJhdmVyc2FsCiAgICAgZm9yIChSZWZQdHI8
Tm9kZT4gbiA9IHN0YXJ0VGV4dDsgbiAmJiBuICE9IHRoaXMgJiYgbi0+aXNUZXh0Tm9kZSgpICYm
IG4tPnBhcmVudE5vZGUoKSA9PSBwYXJlbnQ7KSB7Ci0gICAgICAgIFJlZlB0cjxOb2RlPiBub2Rl
VG9SZW1vdmUobi5yZWxlYXNlKCkpOworICAgICAgICBSZWY8Tm9kZT4gbm9kZVRvUmVtb3ZlKG4u
cmVsZWFzZU5vbk51bGwoKSk7CiAgICAgICAgIG4gPSBub2RlVG9SZW1vdmUtPm5leHRTaWJsaW5n
KCk7Ci0gICAgICAgIHBhcmVudC0+cmVtb3ZlQ2hpbGQobm9kZVRvUmVtb3ZlLmdldCgpLCBJR05P
UkVfRVhDRVBUSU9OKTsKKyAgICAgICAgcGFyZW50LT5yZW1vdmVDaGlsZChXVEY6Om1vdmUobm9k
ZVRvUmVtb3ZlKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgfQogCiAgICAgaWYgKHRoaXMgIT0g
ZW5kVGV4dCkgewogICAgICAgICBOb2RlKiBvbmVQYXN0RW5kVGV4dCA9IGVuZFRleHQtPm5leHRT
aWJsaW5nKCk7CiAgICAgICAgIGZvciAoUmVmUHRyPE5vZGU+IG4gPSBuZXh0U2libGluZygpOyBu
ICYmIG4gIT0gb25lUGFzdEVuZFRleHQgJiYgbi0+aXNUZXh0Tm9kZSgpICYmIG4tPnBhcmVudE5v
ZGUoKSA9PSBwYXJlbnQ7KSB7Ci0gICAgICAgICAgICBSZWZQdHI8Tm9kZT4gbm9kZVRvUmVtb3Zl
KG4ucmVsZWFzZSgpKTsKKyAgICAgICAgICAgIFJlZjxOb2RlPiBub2RlVG9SZW1vdmUobi5yZWxl
YXNlTm9uTnVsbCgpKTsKICAgICAgICAgICAgIG4gPSBub2RlVG9SZW1vdmUtPm5leHRTaWJsaW5n
KCk7Ci0gICAgICAgICAgICBwYXJlbnQtPnJlbW92ZUNoaWxkKG5vZGVUb1JlbW92ZS5nZXQoKSwg
SUdOT1JFX0VYQ0VQVElPTik7CisgICAgICAgICAgICBwYXJlbnQtPnJlbW92ZUNoaWxkKFdURjo6
bW92ZShub2RlVG9SZW1vdmUpLCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICAgICAgfQogICAgIH0K
IAogICAgIGlmIChuZXdUZXh0LmlzRW1wdHkoKSkgewogICAgICAgICBpZiAocGFyZW50ICYmIHBh
cmVudE5vZGUoKSA9PSBwYXJlbnQpCi0gICAgICAgICAgICBwYXJlbnQtPnJlbW92ZUNoaWxkKHRo
aXMsIElHTk9SRV9FWENFUFRJT04pOwotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHBh
cmVudC0+cmVtb3ZlQ2hpbGQoKnRoaXMsIElHTk9SRV9FWENFUFRJT04pOworICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBzZXREYXRhKG5ld1RleHQsIElHTk9SRV9FWENFUFRJ
T04pOwotICAgIHJldHVybiBwcm90ZWN0ZWRUaGlzLnJlbGVhc2UoKTsKKyAgICByZXR1cm4gcHJv
dGVjdGVkVGhpczsKIH0KIAogU3RyaW5nIFRleHQ6Om5vZGVOYW1lKCkgY29uc3QKQEAgLTE2Niw3
ICsxNjYsNyBAQCBOb2RlOjpOb2RlVHlwZSBUZXh0Ojpub2RlVHlwZSgpIGNvbnN0CiAgICAgcmV0
dXJuIFRFWFRfTk9ERTsKIH0KIAotUmVmUHRyPE5vZGU+IFRleHQ6OmNsb25lTm9kZUludGVybmFs
KERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikKK1JlZjxOb2RlPiBU
ZXh0OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdP
cGVyYXRpb24pCiB7CiAgICAgcmV0dXJuIGNyZWF0ZSh0YXJnZXREb2N1bWVudCwgZGF0YSgpKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vVGV4dC5oCmluZGV4IGE5Njc0MzY0Y2RhMGRlZGI4ZWNhNTljYzBhMjVhNTM3MmJiYTk3
ZDQuLmVmZDZiZGU5MjdjMWY5OTkzNTdlMjUxZWU0NTQyMDlhZDFjZjUwZmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHQu
aApAQCAtNjIsNyArNjIsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgU3Ry
aW5nIG5vZGVOYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBOb2RlVHlwZSBub2Rl
VHlwZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVmUHRyPE5vZGU+IGNsb25lTm9k
ZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0
aW9uKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRUeXBlQWxsb3dlZChOb2RlVHlw
ZSkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIFJlZjxUZXh0PiB2aXJ0dWFsQ3JlYXRl
KGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBl
bmROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21t
YW5kLmNwcAppbmRleCA2YThkOWU5MWEyNTFiMWFiOTdhMTllMjMyMzIwY2I4NDY4YjVjMzA0Li5j
ZWVlZGZkMTdhODMyMTEwMzRmZTc1ZTllNjVlYWEyYmZmODdmYWNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcApAQCAtMzUsMTMgKzM1LDEyIEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQXBwZW5kTm9kZUNvbW1hbmQ6OkFwcGVuZE5vZGVDb21t
YW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+IG5v
ZGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKK0FwcGVuZE5vZGVDb21tYW5kOjpBcHBlbmRO
b2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgTm9kZSYgbm9kZSwg
RWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQogICAgIDogU2ltcGxlRWRpdENvbW1hbmQocGFyZW50
LT5kb2N1bWVudCgpLCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9wYXJlbnQocGFyZW50KQogICAg
ICwgbV9ub2RlKG5vZGUpCiB7CiAgICAgQVNTRVJUKG1fcGFyZW50KTsKLSAgICBBU1NFUlQobV9u
b2RlKTsKICAgICBBU1NFUlQoIW1fbm9kZS0+cGFyZW50Tm9kZSgpKTsKIAogICAgIEFTU0VSVCht
X3BhcmVudC0+aGFzRWRpdGFibGVTdHlsZSgpIHx8ICFtX3BhcmVudC0+cmVuZGVyZXIoKSk7CkBA
IC02OCwxMCArNjcsMTEgQEAgdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAg
aWYgKCFtX3BhcmVudC0+aGFzRWRpdGFibGVTdHlsZSgpICYmIG1fcGFyZW50LT5yZW5kZXJlcigp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3BhcmVudC0+YXBwZW5kQ2hpbGQobV9ub2RlLmdl
dCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBSZWY8Tm9kZT4gbm9kZVRvQXBwZW5kID0gbV9u
b2RlLmNvcHlSZWYoKTsKKyAgICBtX3BhcmVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKG5vZGVU
b0FwcGVuZCksIElHTk9SRV9FWENFUFRJT04pOwogCiAgICAgaWYgKHNob3VsZFBvc3RBY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uKCkpCi0gICAgICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdM
aW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpKTsKKyAgICAgICAgc2VuZEFY
VGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLnB0cigpLCBhcHBseUVkaXRUeXBl
KCkpOwogfQogCiB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQpAQCAtODEsNyAr
ODEsNyBAQCB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogCiAgICAgLy8gTmVl
ZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKICAgICBp
ZiAoc2hvdWxkUG9zdEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24oKSkKLSAgICAgICAgc2VuZEFY
VGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5
cGUoKSk7CisgICAgICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9k
ZS5wdHIoKSwgdW5hcHBseUVkaXRUeXBlKCkpOwogCiAgICAgbV9ub2RlLT5yZW1vdmUoSUdOT1JF
X0VYQ0VQVElPTik7CiB9CkBAIC05MCw3ICs5MCw3IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6
OmRvVW5hcHBseSgpCiB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpnZXROb2Rlc0luQ29tbWFuZChI
YXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB7CiAgICAgYWRkTm9kZUFuZERlc2NlbmRhbnRzKG1fcGFy
ZW50LmdldCgpLCBub2Rlcyk7Ci0gICAgYWRkTm9kZUFuZERlc2NlbmRhbnRzKG1fbm9kZS5nZXQo
KSwgbm9kZXMpOworICAgIGFkZE5vZGVBbmREZXNjZW5kYW50cyhtX25vZGUucHRyKCksIG5vZGVz
KTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVu
ZE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5k
LmgKaW5kZXggZjc4Mjk3NWI4OTIxNTBhZTM2ZDI5YTZiYmVjYTlmMWRjMTMwN2MzMS4uZjY0YmFk
YzAwZDAzYTkzZjM3M2RlMjcxODZiODRmNTRlZDQ5Yzk3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaApAQCAtMzIsMTMgKzMyLDEzIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgQXBwZW5kTm9kZUNvbW1hbmQgOiBwdWJsaWMgU2ltcGxlRWRpdENv
bW1hbmQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8QXBwZW5kTm9kZUNvbW1hbmQ+IGNyZWF0
ZShQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0cjxOb2RlPiBub2Rl
LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgc3RhdGljIFJlZjxBcHBlbmROb2RlQ29t
bWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBOb2RlJiBub2Rl
LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBBcHBlbmROb2RlQ29tbWFuZChwYXJlbnQsIG5vZGUsIGVkaXRpbmdBY3Rpb24pKTsK
ICAgICB9CiAKIHByaXZhdGU6Ci0gICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250
YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4sIEVkaXRBY3Rpb24pOworICAgIEFw
cGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBOb2RlJiwg
RWRpdEFjdGlvbik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJp
dmF0ZToKICNlbmRpZgogCiAgICAgUmVmUHRyPENvbnRhaW5lck5vZGU+IG1fcGFyZW50OwotICAg
IFJlZlB0cjxOb2RlPiBtX25vZGU7CisgICAgUmVmPE5vZGU+IG1fbm9kZTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29t
cG9zaXRlRWRpdENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVF
ZGl0Q29tbWFuZC5jcHAKaW5kZXggM2Q3Nzk0MjQ4ZDIzZTliN2EyMzkxNjJmOTcxYTQ0NzQ3NTFi
NjMwMy4uNWQ5ZDM2ZmY1MGY1ZGNmNjdkMDhkMGU0YTYyNTM2MzZlOTFiNTA2MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKQEAgLTM5NSw3
ICszOTUsOCBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQXQoUGFzc1Jl
ZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgY29uc3QgUG9zaQogdm9pZCBDb21wb3NpdGVFZGl0Q29t
bWFuZDo6YXBwZW5kTm9kZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFBhc3NSZWZQdHI8Q29udGFp
bmVyTm9kZT4gcGFyZW50KQogewogICAgIEFTU0VSVChjYW5IYXZlQ2hpbGRyZW5Gb3JFZGl0aW5n
KHBhcmVudC5nZXQoKSkpOwotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEFwcGVuZE5vZGVD
b21tYW5kOjpjcmVhdGUocGFyZW50LCBub2RlLCBlZGl0aW5nQWN0aW9uKCkpKTsKKyAgICBBU1NF
UlQobm9kZSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoQXBwZW5kTm9kZUNvbW1hbmQ6
OmNyZWF0ZShwYXJlbnQsICpub2RlLCBlZGl0aW5nQWN0aW9uKCkpKTsKIH0KIAogdm9pZCBDb21w
b3NpdGVFZGl0Q29tbWFuZDo6cmVtb3ZlQ2hpbGRyZW5JblJhbmdlKFBhc3NSZWZQdHI8Tm9kZT4g
bm9kZSwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8pCkBAIC00MTQsNyArNDE1LDcgQEAgdm9p
ZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVtb3ZlTm9kZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUs
IFNob3VsZEFzc3VtZUNvbnRlbnQKIHsKICAgICBpZiAoIW5vZGUgfHwgIW5vZGUtPm5vblNoYWRv
d0JvdW5kYXJ5UGFyZW50Tm9kZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgYXBwbHlDb21tYW5k
VG9Db21wb3NpdGUoUmVtb3ZlTm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBzaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKFJl
bW92ZU5vZGVDb21tYW5kOjpjcmVhdGUoKm5vZGUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlKSk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92ZU5vZGVQ
cmVzZXJ2aW5nQ2hpbGRyZW4oUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBTaG91bGRBc3N1bWVDb250
ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkK
QEAgLTE1NDEsNyArMTU0Miw3IEBAIFBhc3NSZWZQdHI8Tm9kZT4gQ29tcG9zaXRlRWRpdENvbW1h
bmQ6OnNwbGl0VHJlZVRvTm9kZShOb2RlKiBzdGFydCwgTm9kZSogZW5kLCBiCiAgICAgcmV0dXJu
IG5vZGUucmVsZWFzZSgpOwogfQogCi1QYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZUJsb2NrUGxh
Y2Vob2xkZXJFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKK1JlZjxFbGVtZW50PiBjcmVhdGVC
bG9ja1BsYWNlaG9sZGVyRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJu
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYnJUYWcsIGZhbHNlKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCmluZGV4IGM2NDkxZDI2
OTI2NWU1YWI2Y2U5NjVlYWE5NTM0MWI2NTQ0N2QxYWUuLjU2MDk5NzEzM2Y2MTllM2QwYTcyZGNi
ZGFmYmFiMTc4ZDhmMzBkMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtNjMyLDcgKzYzMiw3IEBAIHZvaWQgRGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZDo6bWVyZ2VQYXJhZ3JhcGhzKCkKICAgICAKICAgICAvLyBXZSBuZWVkIHRv
IG1lcmdlIGludG8gbV91cHN0cmVhbVN0YXJ0J3MgYmxvY2ssIGJ1dCBpdCdzIGJlZW4gZW1wdGll
ZCBvdXQgYW5kIGNvbGxhcHNlZCBieSBkZWxldGlvbi4KICAgICBpZiAoIW1lcmdlRGVzdGluYXRp
b24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkTm9kZSgpIHx8ICFtZXJnZURlc3RpbmF0aW9u
LmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZE5vZGUoKS0+aXNEZXNjZW5kYW50T2YoZW5jbG9z
aW5nQmxvY2sobV91cHN0cmVhbVN0YXJ0LmNvbnRhaW5lck5vZGUoKSkpIHx8IG1fc3RhcnRzQXRF
bXB0eUxpbmUpIHsKLSAgICAgICAgaW5zZXJ0Tm9kZUF0KGNyZWF0ZUJyZWFrRWxlbWVudChkb2N1
bWVudCgpKS5nZXQoKSwgbV91cHN0cmVhbVN0YXJ0KTsKKyAgICAgICAgaW5zZXJ0Tm9kZUF0KGNy
ZWF0ZUJyZWFrRWxlbWVudChkb2N1bWVudCgpKS5wdHIoKSwgbV91cHN0cmVhbVN0YXJ0KTsKICAg
ICAgICAgbWVyZ2VEZXN0aW5hdGlvbiA9IFZpc2libGVQb3NpdGlvbihtX3Vwc3RyZWFtU3RhcnQp
OwogICAgIH0KICAgICAKQEAgLTg1NSw3ICs4NTUsNyBAQCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQ6OmRvQXBwbHkoKQogICAgIAogICAgIHJlbW92ZVByZXZpb3VzbHlTZWxlY3RlZEVtcHR5
VGFibGVSb3dzKCk7CiAgICAgCi0gICAgUmVmUHRyPE5vZGU+IHBsYWNlaG9sZGVyID0gbV9uZWVk
UGxhY2Vob2xkZXIgPyBjcmVhdGVCcmVha0VsZW1lbnQoZG9jdW1lbnQoKSkuZ2V0KCkgOiAwOwor
ICAgIFJlZlB0cjxOb2RlPiBwbGFjZWhvbGRlciA9IG1fbmVlZFBsYWNlaG9sZGVyID8gY3JlYXRl
QnJlYWtFbGVtZW50KGRvY3VtZW50KCkpLnB0cigpIDogbnVsbHB0cjsKICAgICAKICAgICBpZiAo
cGxhY2Vob2xkZXIpIHsKICAgICAgICAgaWYgKG1fc2FuaXRpemVNYXJrdXApCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5jcHAKaW5kZXggMTQ4ZTM1YzhjY2ZhOTZjNWIxMDg0MmFlZjYxZGM2ZDdlMTg2
NjgzNC4uNDRiMmFjNzM4MjE2ZDg5MzdlNDU0YjQ5Y2FjOWQ4ZGNiNzUwNmFmYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtNjEzLDggKzYxMyw4IEBAIHZvaWQgRWRpdG9yOjpzZXRU
ZXh0QXNDaGlsZE9mRWxlbWVudChjb25zdCBTdHJpbmcmIHRleHQsIEVsZW1lbnQqIGVsZW0pCiAg
ICAgICAgICAgICAKICAgICAgICAgUmVmUHRyPFJhbmdlPiBjb250ZXh0ID0gZG9jdW1lbnQoKS5j
cmVhdGVSYW5nZSgpOwogICAgICAgICBjb250ZXh0LT5zZWxlY3ROb2RlQ29udGVudHMoZWxlbSwg
ZWMpOwotICAgICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVhdGVG
cmFnbWVudEZyb21UZXh0KCpjb250ZXh0LmdldCgpLCB0ZXh0KTsKLSAgICAgICAgZWxlbS0+YXBw
ZW5kQ2hpbGQoZnJhZ21lbnQsIGVjKTsKKyAgICAgICAgUmVmPERvY3VtZW50RnJhZ21lbnQ+IGZy
YWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGcm9tVGV4dCgqY29udGV4dC5nZXQoKSwgdGV4dCk7Cisg
ICAgICAgIGVsZW0tPmFwcGVuZENoaWxkKFdURjo6bW92ZShmcmFnbWVudCksIGVjKTsKICAgICAK
ICAgICAgICAgLy8gcmVzdG9yZSBlbGVtZW50IHRvIGRvY3VtZW50CiAgICAgICAgIGlmIChwYXJl
bnQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCmluZGV4IDBmOGY4
ODAzM2E0ZmVmYTIzZDc1MjY4OTllZTQ3NDE5ZmQ0MDcyMmIuLjEyY2RkMjFkOGVjMTNkNzBlNWZi
MDAzY2U4N2YyZDkyNTE2ODJjMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21t
YW5kLmNwcApAQCAtMTY1LDExICsxNjUsMTEgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZUluc2VydEZy
YWdtZW50KEZyYW1lJiBmcmFtZSwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmEKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGJvb2wgZXhlY3V0ZUluc2VydE5vZGUoRnJhbWUm
IGZyYW1lLCBQYXNzUmVmUHRyPE5vZGU+IGNvbnRlbnQpCitzdGF0aWMgYm9vbCBleGVjdXRlSW5z
ZXJ0Tm9kZShGcmFtZSYgZnJhbWUsIFJlZjxOb2RlPiYmIGNvbnRlbnQpCiB7CiAgICAgUmVmUHRy
PERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gRG9jdW1lbnRGcmFnbWVudDo6Y3JlYXRlKCpm
cmFtZS5kb2N1bWVudCgpKTsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBmcmFnbWVu
dC0+YXBwZW5kQ2hpbGQoY29udGVudCwgZWMpOworICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChX
VEY6Om1vdmUoY29udGVudCksIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICByZXR1cm4gZXhlY3V0ZUluc2VydEZyYWdtZW50KGZyYW1lLCBmcmFnbWVudC5yZWxl
YXNlKCkpOwpAQCAtNDY0LDEwICs0NjQsMTAgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZUluc2VydEJh
Y2t0YWIoRnJhbWUmIGZyYW1lLCBFdmVudCogZXZlbnQsIEVkaXRvckNvbW1hbmRTb3VyY2UKIAog
c3RhdGljIGJvb2wgZXhlY3V0ZUluc2VydEhvcml6b250YWxSdWxlKEZyYW1lJiBmcmFtZSwgRXZl
bnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJpbmcmIHZhbHVlKQogewotICAgIFJl
ZlB0cjxIVE1MSFJFbGVtZW50PiBydWxlID0gSFRNTEhSRWxlbWVudDo6Y3JlYXRlKCpmcmFtZS5k
b2N1bWVudCgpKTsKKyAgICBSZWY8SFRNTEhSRWxlbWVudD4gcnVsZSA9IEhUTUxIUkVsZW1lbnQ6
OmNyZWF0ZSgqZnJhbWUuZG9jdW1lbnQoKSk7CiAgICAgaWYgKCF2YWx1ZS5pc0VtcHR5KCkpCiAg
ICAgICAgIHJ1bGUtPnNldElkQXR0cmlidXRlKHZhbHVlKTsKLSAgICByZXR1cm4gZXhlY3V0ZUlu
c2VydE5vZGUoZnJhbWUsIHJ1bGUucmVsZWFzZSgpKTsKKyAgICByZXR1cm4gZXhlY3V0ZUluc2Vy
dE5vZGUoZnJhbWUsIFdURjo6bW92ZShydWxlKSk7CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVJ
bnNlcnRIVE1MKEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25z
dCBTdHJpbmcmIHZhbHVlKQpAQCAtNDc4LDkgKzQ3OCw5IEBAIHN0YXRpYyBib29sIGV4ZWN1dGVJ
bnNlcnRIVE1MKEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25z
dCBTCiBzdGF0aWMgYm9vbCBleGVjdXRlSW5zZXJ0SW1hZ2UoRnJhbWUmIGZyYW1lLCBFdmVudCos
IEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7CiAgICAgLy8gRklY
TUU6IElmIHVzZXJJbnRlcmZhY2UgaXMgdHJ1ZSwgd2Ugc2hvdWxkIGRpc3BsYXkgYSBkaWFsb2cg
Ym94IGFuZCBsZXQgdGhlIHVzZXIgY2hvb3NlIGEgbG9jYWwgaW1hZ2UuCi0gICAgUmVmUHRyPEhU
TUxJbWFnZUVsZW1lbnQ+IGltYWdlID0gSFRNTEltYWdlRWxlbWVudDo6Y3JlYXRlKCpmcmFtZS5k
b2N1bWVudCgpKTsKKyAgICBSZWY8SFRNTEltYWdlRWxlbWVudD4gaW1hZ2UgPSBIVE1MSW1hZ2VF
bGVtZW50OjpjcmVhdGUoKmZyYW1lLmRvY3VtZW50KCkpOwogICAgIGltYWdlLT5zZXRTcmModmFs
dWUpOwotICAgIHJldHVybiBleGVjdXRlSW5zZXJ0Tm9kZShmcmFtZSwgaW1hZ2UucmVsZWFzZSgp
KTsKKyAgICByZXR1cm4gZXhlY3V0ZUluc2VydE5vZGUoZnJhbWUsIFdURjo6bW92ZShpbWFnZSkp
OwogfQogCiBzdGF0aWMgYm9vbCBleGVjdXRlSW5zZXJ0TGluZUJyZWFrKEZyYW1lJiBmcmFtZSwg
RXZlbnQqIGV2ZW50LCBFZGl0b3JDb21tYW5kU291cmNlIHNvdXJjZSwgY29uc3QgU3RyaW5nJikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0TGluZUJyZWFrQ29tbWFu
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydExpbmVCcmVha0NvbW1hbmQuY3Bw
CmluZGV4IDZlZTIxZDkyMjczZGNlNTVmMTI0ODZmOGY5Nzg3YTI2ODBlZTM5MDAuLjI1YWIwNzEy
NGU3OTI3NzIwMjQ1ZWU2ZDZlNDZjZWQxYzZlOWM4NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvSW5zZXJ0TGluZUJyZWFrQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9JbnNlcnRMaW5lQnJlYWtDb21tYW5kLmNwcApAQCAtMTI5LDcgKzEyOSw3IEBA
IHZvaWQgSW5zZXJ0TGluZUJyZWFrQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgICAgIAogICAgICAg
ICAvLyBJbnNlcnQgYW4gZXh0cmEgYnIgb3IgJ1xuJyBpZiB0aGUganVzdCBpbnNlcnRlZCBvbmUg
Y29sbGFwc2VkLgogICAgICAgICBpZiAoIWlzU3RhcnRPZlBhcmFncmFwaChwb3NpdGlvbkJlZm9y
ZU5vZGUobm9kZVRvSW5zZXJ0LmdldCgpKSkpCi0gICAgICAgICAgICBpbnNlcnROb2RlQmVmb3Jl
KG5vZGVUb0luc2VydC0+Y2xvbmVOb2RlKGZhbHNlKS5nZXQoKSwgbm9kZVRvSW5zZXJ0LmdldCgp
KTsKKyAgICAgICAgICAgIGluc2VydE5vZGVCZWZvcmUobm9kZVRvSW5zZXJ0LT5jbG9uZU5vZGUo
ZmFsc2UpLCBub2RlVG9JbnNlcnQuZ2V0KCkpOwogICAgICAgICAKICAgICAgICAgc2V0RW5kaW5n
U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24ocG9zaXRpb25JblBhcmVudEFmdGVyTm9kZShub2Rl
VG9JbnNlcnQuZ2V0KCkpLCBET1dOU1RSRUFNLCBlbmRpbmdTZWxlY3Rpb24oKS5pc0RpcmVjdGlv
bmFsKCkpKTsKICAgICAvLyBJZiB3ZSdyZSBpbnNlcnRpbmcgYWZ0ZXIgYWxsIG9mIHRoZSByZW5k
ZXJlZCB0ZXh0IGluIGEgdGV4dCBub2RlLCBvciBpbnRvIGEgbm9uLXRleHQgbm9kZSwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKaW5k
ZXggZmExNGQwNzY2ZWFmNzVmYTQzMTllNmQ4ODU3NGFmM2QzYTAzZTQzNi4uNTBmNjU0NWU2MmY3
YmRiODRmZDBjNWViNTM0ZTRlY2M4NjFkYmEyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgdm9p
ZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgICAgIHJldHVybjsKICAg
ICBBU1NFUlQoaXNFZGl0YWJsZU5vZGUoKnBhcmVudCkpOwogCi0gICAgcGFyZW50LT5pbnNlcnRC
ZWZvcmUobV9pbnNlcnRDaGlsZC5nZXQoKSwgbV9yZWZDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQ
VElPTik7CisgICAgcGFyZW50LT5pbnNlcnRCZWZvcmUoKm1faW5zZXJ0Q2hpbGQsIG1fcmVmQ2hp
bGQuZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOwogCiAgICAgaWYgKHNob3VsZFBvc3RBY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uKCkpIHsKICAgICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBpczxU
ZXh0PihtX2luc2VydENoaWxkLmdldCgpKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KG1faW5z
ZXJ0Q2hpbGQuZ2V0KCkpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihtX2luc2Vy
dENoaWxkLmdldCgpLCAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuY3BwCmluZGV4IDdkZDAxNjBjZDAzNDNk
YWFkZjEyNDM0MTJlM2VhYWZmMTYxN2Q2NWEuLjE1MDMyMjkyYWRlNjU4ODQ0YTdmOTIwNmNmYWI3
MDlmYjU2NDEwY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFy
YWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9J
bnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcApAQCAtMzY4LDcgKzM2OCw3IEBAIHZv
aWQgSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgLy8gY3Jl
YXRlZC4gIEFsbCBvZiB0aGUgbm9kZXMsIHN0YXJ0aW5nIGF0IHZpc2libGVQb3MsIGFyZSBhYm91
dCB0byBiZSBhZGRlZCB0byB0aGUgbmV3IHBhcmFncmFwaCAKICAgICAvLyBlbGVtZW50LiAgSWYg
dGhlIGZpcnN0IG5vZGUgdG8gYmUgaW5zZXJ0ZWQgd29uJ3QgYmUgb25lIHRoYXQgd2lsbCBob2xk
IGFuIGVtcHR5IGxpbmUgb3BlbiwgYWRkIGEgYnIuCiAgICAgaWYgKGlzRW5kT2ZQYXJhZ3JhcGgo
dmlzaWJsZVBvcykgJiYgIWxpbmVCcmVha0V4aXN0c0F0VmlzaWJsZVBvc2l0aW9uKHZpc2libGVQ
b3MpKQotICAgICAgICBhcHBlbmROb2RlKGNyZWF0ZUJyZWFrRWxlbWVudChkb2N1bWVudCgpKS5n
ZXQoKSwgYmxvY2tUb0luc2VydC5nZXQoKSk7CisgICAgICAgIGFwcGVuZE5vZGUoY3JlYXRlQnJl
YWtFbGVtZW50KGRvY3VtZW50KCkpLCBibG9ja1RvSW5zZXJ0LmdldCgpKTsKIAogICAgIC8vIE1v
dmUgdGhlIHN0YXJ0IG5vZGUgYW5kIHRoZSBzaWJsaW5ncyBvZiB0aGUgc3RhcnQgbm9kZS4KICAg
ICBpZiAoVmlzaWJsZVBvc2l0aW9uKGluc2VydGlvblBvc2l0aW9uKSAhPSBWaXNpYmxlUG9zaXRp
b24ocG9zaXRpb25CZWZvcmVOb2RlKGJsb2NrVG9JbnNlcnQuZ2V0KCkpKSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NZXJnZUlkZW50aWNhbEVsZW1lbnRzQ29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5k
LmNwcAppbmRleCA0NjUxODg0NjM2NGZhMzNjMjg1Y2Y2MDA5N2YwNDNiMmMyY2YzODdlLi40YTU5
ZWY2ODBkNmEwZGYyMTczNWE5ZWIyMDUwYTE4ZWRmNjZmMWNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL01lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL01lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmNwcApA
QCAtNDcsMTMgKzQ3LDEzIEBAIHZvaWQgTWVyZ2VJZGVudGljYWxFbGVtZW50c0NvbW1hbmQ6OmRv
QXBwbHkoKQogCiAgICAgbV9hdENoaWxkID0gbV9lbGVtZW50Mi0+Zmlyc3RDaGlsZCgpOwogCi0g
ICAgVmVjdG9yPFJlZlB0cjxOb2RlPj4gY2hpbGRyZW47CisgICAgVmVjdG9yPFJlZjxOb2RlPj4g
Y2hpbGRyZW47CiAgICAgZm9yIChOb2RlKiBjaGlsZCA9IG1fZWxlbWVudDEtPmZpcnN0Q2hpbGQo
KTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCi0gICAgICAgIGNoaWxkcmVu
LmFwcGVuZChjaGlsZCk7CisgICAgICAgIGNoaWxkcmVuLmFwcGVuZCgqY2hpbGQpOwogCiAgICAg
c2l6ZV90IHNpemUgPSBjaGlsZHJlbi5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBzaXplOyArK2kpCi0gICAgICAgIG1fZWxlbWVudDItPmluc2VydEJlZm9yZShjaGlsZHJlbltp
XS5yZWxlYXNlKCksIG1fYXRDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgICAg
IG1fZWxlbWVudDItPmluc2VydEJlZm9yZShXVEY6Om1vdmUoY2hpbGRyZW5baV0pLCBtX2F0Q2hp
bGQuZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOwogCiAgICAgbV9lbGVtZW50MS0+cmVtb3ZlKElH
Tk9SRV9FWENFUFRJT04pOwogfQpAQCAtNzEsMTcgKzcxLDE3IEBAIHZvaWQgTWVyZ2VJZGVudGlj
YWxFbGVtZW50c0NvbW1hbmQ6OmRvVW5hcHBseSgpCiAKICAgICBFeGNlcHRpb25Db2RlIGVjID0g
MDsKIAotICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG1fZWxlbWVudDEuZ2V0KCksIG1fZWxlbWVu
dDIuZ2V0KCksIGVjKTsKKyAgICBwYXJlbnQtPmluc2VydEJlZm9yZSgqbV9lbGVtZW50MSwgbV9l
bGVtZW50Mi5nZXQoKSwgZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuOwogCi0gICAg
VmVjdG9yPFJlZlB0cjxOb2RlPj4gY2hpbGRyZW47CisgICAgVmVjdG9yPFJlZjxOb2RlPj4gY2hp
bGRyZW47CiAgICAgZm9yIChOb2RlKiBjaGlsZCA9IG1fZWxlbWVudDItPmZpcnN0Q2hpbGQoKTsg
Y2hpbGQgJiYgY2hpbGQgIT0gYXRDaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkK
LSAgICAgICAgY2hpbGRyZW4uYXBwZW5kKGNoaWxkKTsKKyAgICAgICAgY2hpbGRyZW4uYXBwZW5k
KCpjaGlsZCk7CiAKICAgICBzaXplX3Qgc2l6ZSA9IGNoaWxkcmVuLnNpemUoKTsKICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgbV9lbGVtZW50MS0+YXBwZW5k
Q2hpbGQoY2hpbGRyZW5baV0ucmVsZWFzZSgpLCBlYyk7CisgICAgICAgIG1fZWxlbWVudDEtPmFw
cGVuZENoaWxkKFdURjo6bW92ZShjaGlsZHJlbltpXSksIGVjKTsKIH0KIAogI2lmbmRlZiBOREVC
VUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5jcHAKaW5kZXgg
MzFjNTRkMWU4ODJlMmQ0NjU0MDQwOGU0NTA2MGM0OWQ5MDhiYmVjNi4uYmVlYzdlNGRhZTQ0YjEw
NGMyYmQxNWZhYzA5ZmVkNzk0NjlkZmEwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZW1vdmVOb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZW1vdmVOb2RlQ29tbWFuZC5jcHAKQEAgLTM0LDEyICszNCwxMSBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLVJlbW92ZU5vZGVDb21tYW5kOjpSZW1vdmVOb2RlQ29tbWFuZChQYXNzUmVmUHRy
PE5vZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQotICAgIDogU2ltcGxlRWRpdENvbW1hbmQobm9k
ZS0+ZG9jdW1lbnQoKSkKK1JlbW92ZU5vZGVDb21tYW5kOjpSZW1vdmVOb2RlQ29tbWFuZChOb2Rl
JiBub2RlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICA6IFNpbXBsZUVkaXRDb21tYW5kKG5vZGUuZG9j
dW1lbnQoKSkKICAgICAsIG1fbm9kZShub2RlKQogICAgICwgbV9zaG91bGRBc3N1bWVDb250ZW50
SXNBbHdheXNFZGl0YWJsZShzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKIHsK
LSAgICBBU1NFUlQobV9ub2RlKTsKICAgICBBU1NFUlQobV9ub2RlLT5wYXJlbnROb2RlKCkpOwog
fQogCkBAIC02NCw3ICs2Myw3IEBAIHZvaWQgUmVtb3ZlTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgp
CiAgICAgaWYgKCFwYXJlbnQgfHwgIXBhcmVudC0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBwYXJlbnQtPmluc2VydEJlZm9yZShtX25vZGUuZ2V0KCksIHJlZkNo
aWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBwYXJlbnQtPmluc2VydEJlZm9yZSht
X25vZGUuY29weVJlZigpLCByZWZDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CiAK
ICNpZm5kZWYgTkRFQlVHCkBAIC03Miw3ICs3MSw3IEBAIHZvaWQgUmVtb3ZlTm9kZUNvbW1hbmQ6
OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIHsKICAgICBhZGROb2Rl
QW5kRGVzY2VuZGFudHMobV9wYXJlbnQuZ2V0KCksIG5vZGVzKTsKICAgICBhZGROb2RlQW5kRGVz
Y2VuZGFudHMobV9yZWZDaGlsZC5nZXQoKSwgbm9kZXMpOwotICAgIGFkZE5vZGVBbmREZXNjZW5k
YW50cyhtX25vZGUuZ2V0KCksIG5vZGVzKTsKKyAgICBhZGROb2RlQW5kRGVzY2VuZGFudHMobV9u
b2RlLnB0cigpLCBub2Rlcyk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZW1vdmVOb2RlQ29tbWFuZC5oCmluZGV4IDE4MWU5ODVkN2YzMGNkNDQ5NjY0ZTZmZjhjY2E5NDJm
MjZmNmNmNmUuLjAxMzUxN2ZmN2RmM2RhZWU4MGY0ZDZmMWIxMGQ4MTg1OWFhZDZjN2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmgKQEAgLTMyLDEzICszMiwx
MyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbW92ZU5vZGVDb21tYW5kIDogcHVi
bGljIFNpbXBsZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFJlbW92ZU5v
ZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBTaG91bGRBc3N1bWVDb250
ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkK
KyAgICBzdGF0aWMgUmVmPFJlbW92ZU5vZGVDb21tYW5kPiBjcmVhdGUoTm9kZSYgbm9kZSwgU2hv
dWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdmVO
b2RlQ29tbWFuZChub2RlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOwog
ICAgIH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBSZW1vdmVOb2RlQ29tbWFuZChQYXNzUmVm
UHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisgICAgUmVt
b3ZlTm9kZUNvbW1hbmQoTm9kZSYsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
KTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2
b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwpAQCAtNDcsNyArNDcsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRp
ZgogCi0gICAgUmVmUHRyPE5vZGU+IG1fbm9kZTsKKyAgICBSZWY8Tm9kZT4gbV9ub2RlOwogICAg
IFJlZlB0cjxDb250YWluZXJOb2RlPiBtX3BhcmVudDsKICAgICBSZWZQdHI8Tm9kZT4gbV9yZWZD
aGlsZDsKICAgICBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBtX3Nob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1JlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcAppbmRleCAwZTE4OWJkZWY2N2Qz
ZjNkZTcyNDZkNzFhYWM3ZDQwODc5MDdmZGZlLi4xMGJlZjNhMDlhMWNjNDIxY2I3N2U5YWI3OGUw
MGNkNmUyMjIzMGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VO
b2RlV2l0aFNwYW5Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcApAQCAtNDgsMTkgKzQ4LDE5IEBAIFJlcGxhY2VOb2Rl
V2l0aFNwYW5Db21tYW5kOjpSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZChQYXNzUmVmUHRyPEhU
TUxFbGVtZW50PiBlCiAgICAgQVNTRVJUKG1fZWxlbWVudFRvUmVwbGFjZSk7CiB9CiAKLXN0YXRp
YyB2b2lkIHN3YXBJbk5vZGVQcmVzZXJ2aW5nQXR0cmlidXRlc0FuZENoaWxkcmVuKEhUTUxFbGVt
ZW50KiBuZXdOb2RlLCBIVE1MRWxlbWVudCogbm9kZVRvUmVwbGFjZSkKK3N0YXRpYyB2b2lkIHN3
YXBJbk5vZGVQcmVzZXJ2aW5nQXR0cmlidXRlc0FuZENoaWxkcmVuKEhUTUxFbGVtZW50JiBuZXdO
b2RlLCBIVE1MRWxlbWVudCYgbm9kZVRvUmVwbGFjZSkKIHsKLSAgICBBU1NFUlQobm9kZVRvUmVw
bGFjZS0+aW5Eb2N1bWVudCgpKTsKLSAgICBSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50Tm9k
ZSA9IG5vZGVUb1JlcGxhY2UtPnBhcmVudE5vZGUoKTsKKyAgICBBU1NFUlQobm9kZVRvUmVwbGFj
ZS5pbkRvY3VtZW50KCkpOworICAgIFJlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnROb2RlID0g
bm9kZVRvUmVwbGFjZS5wYXJlbnROb2RlKCk7CiAKICAgICAvLyBGSVhNRTogRml4IHRoaXMgdG8g
c2VuZCB0aGUgcHJvcGVyIE11dGF0aW9uUmVjb3JkcyB3aGVuIE11dGF0aW9uT2JzZXJ2ZXJzIGFy
ZSBwcmVzZW50LgotICAgIG5ld05vZGUtPmNsb25lRGF0YUZyb21FbGVtZW50KCpub2RlVG9SZXBs
YWNlKTsKKyAgICBuZXdOb2RlLmNsb25lRGF0YUZyb21FbGVtZW50KG5vZGVUb1JlcGxhY2UpOwog
ICAgIE5vZGVWZWN0b3IgY2hpbGRyZW47Ci0gICAgZ2V0Q2hpbGROb2Rlcygqbm9kZVRvUmVwbGFj
ZSwgY2hpbGRyZW4pOworICAgIGdldENoaWxkTm9kZXMobm9kZVRvUmVwbGFjZSwgY2hpbGRyZW4p
OwogICAgIGZvciAoYXV0byYgY2hpbGQgOiBjaGlsZHJlbikKLSAgICAgICAgbmV3Tm9kZS0+YXBw
ZW5kQ2hpbGQoY2hpbGQucHRyKCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAgICBuZXdO
b2RlLmFwcGVuZENoaWxkKFdURjo6bW92ZShjaGlsZCksIEFTU0VSVF9OT19FWENFUFRJT04pOwog
Ci0gICAgcGFyZW50Tm9kZS0+aW5zZXJ0QmVmb3JlKG5ld05vZGUsIG5vZGVUb1JlcGxhY2UsIEFT
U0VSVF9OT19FWENFUFRJT04pOworICAgIHBhcmVudE5vZGUtPmluc2VydEJlZm9yZShuZXdOb2Rl
LCAmbm9kZVRvUmVwbGFjZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgcGFyZW50Tm9kZS0+
cmVtb3ZlQ2hpbGQobm9kZVRvUmVwbGFjZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiB9CiAKQEAg
LTcwLDE0ICs3MCwxNCBAQCB2b2lkIFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kOjpkb0FwcGx5
KCkKICAgICAgICAgcmV0dXJuOwogICAgIGlmICghbV9zcGFuRWxlbWVudCkKICAgICAgICAgbV9z
cGFuRWxlbWVudCA9IGNyZWF0ZUhUTUxFbGVtZW50KG1fZWxlbWVudFRvUmVwbGFjZS0+ZG9jdW1l
bnQoKSwgc3BhblRhZyk7Ci0gICAgc3dhcEluTm9kZVByZXNlcnZpbmdBdHRyaWJ1dGVzQW5kQ2hp
bGRyZW4obV9zcGFuRWxlbWVudC5nZXQoKSwgbV9lbGVtZW50VG9SZXBsYWNlLmdldCgpKTsKKyAg
ICBzd2FwSW5Ob2RlUHJlc2VydmluZ0F0dHJpYnV0ZXNBbmRDaGlsZHJlbigqbV9zcGFuRWxlbWVu
dCwgKm1fZWxlbWVudFRvUmVwbGFjZSk7CiB9CiAKIHZvaWQgUmVwbGFjZU5vZGVXaXRoU3BhbkNv
bW1hbmQ6OmRvVW5hcHBseSgpCiB7CiAgICAgaWYgKCFtX3NwYW5FbGVtZW50LT5pbkRvY3VtZW50
KCkpCiAgICAgICAgIHJldHVybjsKLSAgICBzd2FwSW5Ob2RlUHJlc2VydmluZ0F0dHJpYnV0ZXNB
bmRDaGlsZHJlbihtX2VsZW1lbnRUb1JlcGxhY2UuZ2V0KCksIG1fc3BhbkVsZW1lbnQuZ2V0KCkp
OworICAgIHN3YXBJbk5vZGVQcmVzZXJ2aW5nQXR0cmlidXRlc0FuZENoaWxkcmVuKCptX2VsZW1l
bnRUb1JlcGxhY2UsICptX3NwYW5FbGVtZW50KTsKIH0KIAogI2lmbmRlZiBOREVCVUcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5k
ZXggZWVlMjIwYzg2Zjk4YTVlN2QyODk5YzQzM2ZhOTFmMDAwMDU0NmJlMy4uMDhjNjI3N2RlZmMz
NGZhMjIzNGMyZTQ2MmYyMzY0N2Q2YmM5OWEzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTIzOCw3ICsyMzgsNyBAQCB2
b2lkIFJlcGxhY2VtZW50RnJhZ21lbnQ6OnJlbW92ZU5vZGUoUGFzc1JlZlB0cjxOb2RlPiBub2Rl
KQogICAgIGlmICghcGFyZW50KQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgcGFyZW50LT5y
ZW1vdmVDaGlsZChub2RlLmdldCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBwYXJlbnQt
PnJlbW92ZUNoaWxkKCpub2RlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIH0KIAogdm9pZCBSZXBs
YWNlbWVudEZyYWdtZW50OjppbnNlcnROb2RlQmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwg
Tm9kZSogcmVmTm9kZSkKQEAgLTI1MCwxNCArMjUwLDE0IEBAIHZvaWQgUmVwbGFjZW1lbnRGcmFn
bWVudDo6aW5zZXJ0Tm9kZUJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIE5vZGUqIHJlZk5v
ZGUpCiAgICAgaWYgKCFwYXJlbnQpCiAgICAgICAgIHJldHVybjsKICAgICAgICAgCi0gICAgcGFy
ZW50LT5pbnNlcnRCZWZvcmUobm9kZSwgcmVmTm9kZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7Cisg
ICAgcGFyZW50LT5pbnNlcnRCZWZvcmUoKm5vZGUsIHJlZk5vZGUsIEFTU0VSVF9OT19FWENFUFRJ
T04pOwogfQogCiBQYXNzUmVmUHRyPFN0eWxlZEVsZW1lbnQ+IFJlcGxhY2VtZW50RnJhZ21lbnQ6
Omluc2VydEZyYWdtZW50Rm9yVGVzdFJlbmRlcmluZyhOb2RlKiByb290RWRpdGFibGVFbGVtZW50
KQogewogICAgIFJlZlB0cjxTdHlsZWRFbGVtZW50PiBob2xkZXIgPSBjcmVhdGVEZWZhdWx0UGFy
YWdyYXBoRWxlbWVudChkb2N1bWVudCgpKTsKIAotICAgIGhvbGRlci0+YXBwZW5kQ2hpbGQobV9m
cmFnbWVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgaG9sZGVyLT5hcHBlbmRDaGlsZCgq
bV9mcmFnbWVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgcm9vdEVkaXRhYmxlRWxlbWVu
dC0+YXBwZW5kQ2hpbGQoaG9sZGVyLmdldCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICBk
b2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogCkBAIC0y
NzAsOCArMjcwLDggQEAgdm9pZCBSZXBsYWNlbWVudEZyYWdtZW50OjpyZXN0b3JlQW5kUmVtb3Zl
VGVzdFJlbmRlcmluZ05vZGVzVG9GcmFnbWVudChTdHlsZWRFbGUKICAgICAgICAgcmV0dXJuOwog
ICAgIAogICAgIHdoaWxlIChSZWZQdHI8Tm9kZT4gbm9kZSA9IGhvbGRlci0+Zmlyc3RDaGlsZCgp
KSB7Ci0gICAgICAgIGhvbGRlci0+cmVtb3ZlQ2hpbGQobm9kZS5nZXQoKSwgQVNTRVJUX05PX0VY
Q0VQVElPTik7Ci0gICAgICAgIG1fZnJhZ21lbnQtPmFwcGVuZENoaWxkKG5vZGUuZ2V0KCksIEFT
U0VSVF9OT19FWENFUFRJT04pOworICAgICAgICBob2xkZXItPnJlbW92ZUNoaWxkKCpub2RlLCBB
U1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgbV9mcmFnbWVudC0+YXBwZW5kQ2hpbGQoKm5v
ZGUsIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgIH0KIAogICAgIHJlbW92ZU5vZGUoaG9sZGVy
KTsKQEAgLTE0NTQsNyArMTQ1NCw3IEBAIE5vZGUqIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpp
bnNlcnRBc0xpc3RJdGVtcyhQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBwcnBMaXN0CiAgICAgfQog
CiAgICAgd2hpbGUgKFJlZlB0cjxOb2RlPiBsaXN0SXRlbSA9IGxpc3RFbGVtZW50LT5maXJzdENo
aWxkKCkpIHsKLSAgICAgICAgbGlzdEVsZW1lbnQtPnJlbW92ZUNoaWxkKGxpc3RJdGVtLmdldCgp
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgbGlzdEVsZW1lbnQtPnJlbW92ZUNoaWxk
KCpsaXN0SXRlbSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgICAgIGlmIChpc1N0YXJ0IHx8
IGlzTWlkZGxlKSB7CiAgICAgICAgICAgICBpbnNlcnROb2RlQmVmb3JlKGxpc3RJdGVtLCBsYXN0
Tm9kZSk7CiAgICAgICAgICAgICBpbnNlcnRlZE5vZGVzLnJlc3BvbmRUb05vZGVJbnNlcnRpb24o
bGlzdEl0ZW0uZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGxp
dEVsZW1lbnRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BsaXRFbGVtZW50
Q29tbWFuZC5jcHAKaW5kZXggMDliZWI4NTE5MzFlZWFiNjUxZDIxNzFlNDdkODczMjQ1NWQxZjEw
Ni4uMzVkODIxYjJjMTZhMmJlYjI3NzBhNDgxNmY3YzhjYzg1OTBkMDUzYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGxpdEVsZW1lbnRDb21tYW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0RWxlbWVudENvbW1hbmQuY3BwCkBAIC00NywxNiArNDcs
MTYgQEAgdm9pZCBTcGxpdEVsZW1lbnRDb21tYW5kOjpleGVjdXRlQXBwbHkoKQogICAgIGlmICht
X2F0Q2hpbGQtPnBhcmVudE5vZGUoKSAhPSBtX2VsZW1lbnQyKQogICAgICAgICByZXR1cm47CiAg
ICAgCi0gICAgVmVjdG9yPFJlZlB0cjxOb2RlPj4gY2hpbGRyZW47CisgICAgVmVjdG9yPFJlZjxO
b2RlPj4gY2hpbGRyZW47CiAgICAgZm9yIChOb2RlKiBub2RlID0gbV9lbGVtZW50Mi0+Zmlyc3RD
aGlsZCgpOyBub2RlICE9IG1fYXRDaGlsZDsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpCi0g
ICAgICAgIGNoaWxkcmVuLmFwcGVuZChub2RlKTsKKyAgICAgICAgY2hpbGRyZW4uYXBwZW5kKCpu
b2RlKTsKICAgICAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICAKICAgICBDb250YWlu
ZXJOb2RlKiBwYXJlbnQgPSBtX2VsZW1lbnQyLT5wYXJlbnROb2RlKCk7CiAgICAgaWYgKCFwYXJl
bnQgfHwgIXBhcmVudC0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1cm47Ci0gICAg
cGFyZW50LT5pbnNlcnRCZWZvcmUobV9lbGVtZW50MS5nZXQoKSwgbV9lbGVtZW50Mi5nZXQoKSwg
ZWMpOworICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKCptX2VsZW1lbnQxLCBtX2VsZW1lbnQyLmdl
dCgpLCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm47CiAKQEAgLTY1LDcgKzY1LDcg
QEAgdm9pZCBTcGxpdEVsZW1lbnRDb21tYW5kOjpleGVjdXRlQXBwbHkoKQogCiAgICAgc2l6ZV90
IHNpemUgPSBjaGlsZHJlbi5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXpl
OyArK2kpCi0gICAgICAgIG1fZWxlbWVudDEtPmFwcGVuZENoaWxkKGNoaWxkcmVuW2ldLCBlYyk7
CisgICAgICAgIG1fZWxlbWVudDEtPmFwcGVuZENoaWxkKFdURjo6bW92ZShjaGlsZHJlbltpXSks
IGVjKTsKIH0KICAgICAKIHZvaWQgU3BsaXRFbGVtZW50Q29tbWFuZDo6ZG9BcHBseSgpCkBAIC04
MCwxNSArODAsMTUgQEAgdm9pZCBTcGxpdEVsZW1lbnRDb21tYW5kOjpkb1VuYXBwbHkoKQogICAg
IGlmICghbV9lbGVtZW50MSB8fCAhbV9lbGVtZW50MS0+aGFzRWRpdGFibGVTdHlsZSgpIHx8ICFt
X2VsZW1lbnQyLT5oYXNFZGl0YWJsZVN0eWxlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFZl
Y3RvcjxSZWZQdHI8Tm9kZT4+IGNoaWxkcmVuOworICAgIFZlY3RvcjxSZWY8Tm9kZT4+IGNoaWxk
cmVuOwogICAgIGZvciAoTm9kZSogbm9kZSA9IG1fZWxlbWVudDEtPmZpcnN0Q2hpbGQoKTsgbm9k
ZTsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpCi0gICAgICAgIGNoaWxkcmVuLmFwcGVuZChu
b2RlKTsKKyAgICAgICAgY2hpbGRyZW4uYXBwZW5kKCpub2RlKTsKIAogICAgIFJlZlB0cjxOb2Rl
PiByZWZDaGlsZCA9IG1fZWxlbWVudDItPmZpcnN0Q2hpbGQoKTsKIAogICAgIHNpemVfdCBzaXpl
ID0gY2hpbGRyZW4uc2l6ZSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytp
KQotICAgICAgICBtX2VsZW1lbnQyLT5pbnNlcnRCZWZvcmUoY2hpbGRyZW5baV0uZ2V0KCksIHJl
ZkNoaWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgbV9lbGVtZW50Mi0+aW5z
ZXJ0QmVmb3JlKFdURjo6bW92ZShjaGlsZHJlbltpXSksIHJlZkNoaWxkLmdldCgpLCBJR05PUkVf
RVhDRVBUSU9OKTsKIAogICAgIC8vIFJlY292ZXIgdGhlIGlkIGF0dHJpYnV0ZSBvZiB0aGUgb3Jp
Z2luYWwgZWxlbWVudC4KICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGlkID0gbV9lbGVtZW50MS0+
Z2V0SWRBdHRyaWJ1dGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3Bs
aXRUZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGxpdFRleHRO
b2RlQ29tbWFuZC5jcHAKaW5kZXggMTdhODE3ZjlhYzI2ZGU5OTRkNDE4ZDRkNjQ5YTZiOGY2Zjhj
NGYwYi4uNjk5OTEzOTk1ZGZmZTNhMDFlM2UwMjVmMGQxMTBiOGI2YjUwZDYwYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTk1LDcg
Kzk1LDcgQEAgdm9pZCBTcGxpdFRleHROb2RlQ29tbWFuZDo6ZG9SZWFwcGx5KCkKIHZvaWQgU3Bs
aXRUZXh0Tm9kZUNvbW1hbmQ6Omluc2VydFRleHQxQW5kVHJpbVRleHQyKCkKIHsKICAgICBFeGNl
cHRpb25Db2RlIGVjID0gMDsKLSAgICBtX3RleHQyLT5wYXJlbnROb2RlKCktPmluc2VydEJlZm9y
ZShtX3RleHQxLmdldCgpLCBtX3RleHQyLmdldCgpLCBlYyk7CisgICAgbV90ZXh0Mi0+cGFyZW50
Tm9kZSgpLT5pbnNlcnRCZWZvcmUoKm1fdGV4dDEsIG1fdGV4dDIuZ2V0KCksIGVjKTsKICAgICBp
ZiAoZWMpCiAgICAgICAgIHJldHVybjsKICAgICBtX3RleHQyLT5kZWxldGVEYXRhKDAsIG1fb2Zm
c2V0LCBlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1dyYXBDb250ZW50
c0luRHVtbXlTcGFuQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1dyYXBDb250
ZW50c0luRHVtbXlTcGFuQ29tbWFuZC5jcHAKaW5kZXggNTY0NmYzNDE2Yzg1ZjJlNjAzMGY0NzRk
NDMwYmY4Zjc0MjVlN2ZkNi4uZjgwYjc3MzdmOGFkOTZlM2U3OGYxNDU5YmY1N2UyZjM1MTllYjll
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9XcmFwQ29udGVudHNJbkR1bW15
U3BhbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvV3JhcENvbnRlbnRz
SW5EdW1teVNwYW5Db21tYW5kLmNwcApAQCAtNDAsMTUgKzQwLDE1IEBAIFdyYXBDb250ZW50c0lu
RHVtbXlTcGFuQ29tbWFuZDo6V3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kKFBhc3NSZWZQ
dHI8RWxlbWVuCiAKIHZvaWQgV3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kOjpleGVjdXRl
QXBwbHkoKQogewotICAgIFZlY3RvcjxSZWZQdHI8Tm9kZT4+IGNoaWxkcmVuOworICAgIFZlY3Rv
cjxSZWY8Tm9kZT4+IGNoaWxkcmVuOwogICAgIGZvciAoTm9kZSogY2hpbGQgPSBtX2VsZW1lbnQt
PmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCi0gICAg
ICAgIGNoaWxkcmVuLmFwcGVuZChjaGlsZCk7CisgICAgICAgIGNoaWxkcmVuLmFwcGVuZCgqY2hp
bGQpOwogCiAgICAgc2l6ZV90IHNpemUgPSBjaGlsZHJlbi5zaXplKCk7CiAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCi0gICAgICAgIG1fZHVtbXlTcGFuLT5hcHBlbmRDaGls
ZChjaGlsZHJlbltpXS5yZWxlYXNlKCksIElHTk9SRV9FWENFUFRJT04pOworICAgICAgICBtX2R1
bW15U3Bhbi0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNoaWxkcmVuW2ldKSwgSUdOT1JFX0VYQ0VQ
VElPTik7CiAKLSAgICBtX2VsZW1lbnQtPmFwcGVuZENoaWxkKG1fZHVtbXlTcGFuLmdldCgpLCBJ
R05PUkVfRVhDRVBUSU9OKTsKKyAgICBtX2VsZW1lbnQtPmFwcGVuZENoaWxkKCptX2R1bW15U3Bh
biwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CiAKIHZvaWQgV3JhcENvbnRlbnRzSW5EdW1teVNwYW5D
b21tYW5kOjpkb0FwcGx5KCkKQEAgLTY1LDEzICs2NSwxMyBAQCB2b2lkIFdyYXBDb250ZW50c0lu
RHVtbXlTcGFuQ29tbWFuZDo6ZG9VbmFwcGx5KCkKICAgICBpZiAoIW1fZHVtbXlTcGFuIHx8ICFt
X2VsZW1lbnQtPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgVmVj
dG9yPFJlZlB0cjxOb2RlPj4gY2hpbGRyZW47CisgICAgVmVjdG9yPFJlZjxOb2RlPj4gY2hpbGRy
ZW47CiAgICAgZm9yIChOb2RlKiBjaGlsZCA9IG1fZHVtbXlTcGFuLT5maXJzdENoaWxkKCk7IGNo
aWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQotICAgICAgICBjaGlsZHJlbi5hcHBl
bmQoY2hpbGQpOworICAgICAgICBjaGlsZHJlbi5hcHBlbmQoKmNoaWxkKTsKIAogICAgIHNpemVf
dCBzaXplID0gY2hpbGRyZW4uc2l6ZSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6
ZTsgKytpKQotICAgICAgICBtX2VsZW1lbnQtPmFwcGVuZENoaWxkKGNoaWxkcmVuW2ldLnJlbGVh
c2UoKSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgICAgIG1fZWxlbWVudC0+YXBwZW5kQ2hpbGQo
V1RGOjptb3ZlKGNoaWxkcmVuW2ldKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKICAgICBtX2R1bW15
U3Bhbi0+cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9jb2NvYS9FZGl0b3JDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvY29jb2EvRWRpdG9yQ29jb2EubW0KaW5kZXggY2U0YmNiY2E0YmYzMmE5ZDUzMzdiZWI5MmRm
MWY3ZTBmYTljOThmMy4uOTVlNjZkYjBkZWE3ODI5NDZlZDYwMDYxM2U2ZDdjOTFjNGQxNmQxOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9FZGl0b3JDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0VkaXRvckNvY29hLm1tCkBAIC01Niwx
NiArNTYsMTYgQEAgUmVuZGVyU3R5bGUqIEVkaXRvcjo6c3R5bGVGb3JTZWxlY3Rpb25TdGFydChG
cmFtZSogZnJhbWUsIE5vZGUgKiZub2RlVG9SZW1vdmUpCiAgICAgaWYgKCF0eXBpbmdTdHlsZSB8
fCAhdHlwaW5nU3R5bGUtPnN0eWxlKCkpCiAgICAgICAgIHJldHVybiAmcG9zaXRpb24uZGVwcmVj
YXRlZE5vZGUoKS0+cmVuZGVyZXIoKS0+c3R5bGUoKTsKIAotICAgIFJlZlB0cjxFbGVtZW50PiBz
dHlsZUVsZW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChIVE1MTmFtZXM6
OnNwYW5UYWcsIGZhbHNlKTsKKyAgICBSZWY8RWxlbWVudD4gc3R5bGVFbGVtZW50ID0gZnJhbWUt
PmRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoSFRNTE5hbWVzOjpzcGFuVGFnLCBmYWxzZSk7CiAK
ICAgICBTdHJpbmcgc3R5bGVUZXh0ID0gdHlwaW5nU3R5bGUtPnN0eWxlKCktPmFzVGV4dCgpICsg
IiBkaXNwbGF5OiBpbmxpbmUiOwogICAgIHN0eWxlRWxlbWVudC0+c2V0QXR0cmlidXRlKEhUTUxO
YW1lczo6c3R5bGVBdHRyLCBzdHlsZVRleHQpOwogCiAgICAgc3R5bGVFbGVtZW50LT5hcHBlbmRD
aGlsZChmcmFtZS0+ZG9jdW1lbnQoKS0+Y3JlYXRlRWRpdGluZ1RleHROb2RlKCIiKSwgQVNTRVJU
X05PX0VYQ0VQVElPTik7CiAKLSAgICBwb3NpdGlvbi5kZXByZWNhdGVkTm9kZSgpLT5wYXJlbnRO
b2RlKCktPmFwcGVuZENoaWxkKHN0eWxlRWxlbWVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7Cisg
ICAgcG9zaXRpb24uZGVwcmVjYXRlZE5vZGUoKS0+cGFyZW50Tm9kZSgpLT5hcHBlbmRDaGlsZChz
dHlsZUVsZW1lbnQuY29weVJlZigpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAotICAgIG5vZGVU
b1JlbW92ZSA9IHN0eWxlRWxlbWVudC5nZXQoKTsKKyAgICBub2RlVG9SZW1vdmUgPSBzdHlsZUVs
ZW1lbnQucHRyKCk7CiAKICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+dXBkYXRlU3R5bGVJZk5lZWRl
ZCgpOwogICAgIHJldHVybiBzdHlsZUVsZW1lbnQtPnJlbmRlcmVyKCkgPyAmc3R5bGVFbGVtZW50
LT5yZW5kZXJlcigpLT5zdHlsZSgpIDogbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1s
ZWRpdGluZy5jcHAKaW5kZXggOGYwNGQwODEzNTJiOTYzMjU2ZmJhZDc1N2ZlMTM1ZTZkY2QzZDc1
MC4uN2NhYTE0ZjRiZTM3YzYxMzQ0OWM5NGE2YWRkYmM1OWViNWU2YmU1MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAKQEAgLTg5OSwyMCArODk5LDE4IEBAIGJvb2wgaXNF
bXB0eVRhYmxlQ2VsbChjb25zdCBOb2RlKiBub2RlKQogICAgIHJldHVybiAhY2hpbGRSZW5kZXJl
ci0+bmV4dFNpYmxpbmcoKTsKIH0KIAotUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRlRGVm
YXVsdFBhcmFncmFwaEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxFbGVtZW50
PiBjcmVhdGVEZWZhdWx0UGFyYWdyYXBoRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAg
ICAgc3dpdGNoIChkb2N1bWVudC5mcmFtZSgpLT5lZGl0b3IoKS5kZWZhdWx0UGFyYWdyYXBoU2Vw
YXJhdG9yKCkpIHsKICAgICBjYXNlIEVkaXRvclBhcmFncmFwaFNlcGFyYXRvcklzRGl2OgogICAg
ICAgICByZXR1cm4gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY2FzZSBF
ZGl0b3JQYXJhZ3JhcGhTZXBhcmF0b3JJc1A6Ci0gICAgICAgIHJldHVybiBIVE1MUGFyYWdyYXBo
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQotCi0gICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIEhUTUxQYXJh
Z3JhcGhFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogfQogCi1QYXNzUmVmUHRyPEhUTUxFbGVt
ZW50PiBjcmVhdGVCcmVha0VsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxFbGVt
ZW50PiBjcmVhdGVCcmVha0VsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVy
biBIVE1MQlJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogfQpAQCAtOTcxLDcgKzk2OSw3IEBA
IFBvc2l0aW9uIHBvc2l0aW9uT3V0c2lkZVRhYlNwYW4oY29uc3QgUG9zaXRpb24mIHBvcykKICAg
ICByZXR1cm4gcG9zaXRpb25JblBhcmVudEJlZm9yZU5vZGUobm9kZSk7CiB9CiAKLVBhc3NSZWZQ
dHI8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBQYXNz
UmVmUHRyPE5vZGU+IHBycFRhYlRleHROb2RlKQorUmVmPEVsZW1lbnQ+IGNyZWF0ZVRhYlNwYW5F
bGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZlB0cjxOb2RlPiBwcnBUYWJUZXh0Tm9k
ZSkKIHsKICAgICBSZWZQdHI8Tm9kZT4gdGFiVGV4dE5vZGUgPSBwcnBUYWJUZXh0Tm9kZTsKIApA
QCAtOTg0LDE3ICs5ODIsMTcgQEAgUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVhdGVUYWJTcGFuRWxl
bWVudChEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWZQdHI8Tm9kZT4gcHIKICAgICBpZiAoIXRh
YlRleHROb2RlKQogICAgICAgICB0YWJUZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVkaXRpbmdU
ZXh0Tm9kZSgiXHQiKTsKIAotICAgIHNwYW5FbGVtZW50LT5hcHBlbmRDaGlsZCh0YWJUZXh0Tm9k
ZS5yZWxlYXNlKCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIHNwYW5FbGVtZW50LT5hcHBl
bmRDaGlsZCh0YWJUZXh0Tm9kZS5yZWxlYXNlTm9uTnVsbCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKIAotICAgIHJldHVybiBzcGFuRWxlbWVudC5yZWxlYXNlKCk7CisgICAgcmV0dXJuIHNwYW5F
bGVtZW50LnJlbGVhc2VOb25OdWxsKCk7CiB9CiAKLVBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRl
VGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRhYlRleHQp
CitSZWY8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBj
b25zdCBTdHJpbmcmIHRhYlRleHQpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVRhYlNwYW5FbGVtZW50
KGRvY3VtZW50LCBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0YWJUZXh0KSk7CiB9CiAKLVBhc3NS
ZWZQdHI8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQor
UmVmPEVsZW1lbnQ+IGNyZWF0ZVRhYlNwYW5FbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKIHsK
ICAgICByZXR1cm4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoZG9jdW1lbnQsIFBhc3NSZWZQdHI8Tm9k
ZT4oKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5n
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmgKaW5kZXggNzg4YWYzZmNm
Yjk1ZTdkMmQyMjg3NjJhNTE1NTYxZWYwODkzZDBlZS4uZjY5ZDlkOGVjNzUxNzgxMWI5ZWQ0ZjNj
NzA3NzQ1MGExNTgxMTUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1s
ZWRpdGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuaApAQCAt
MjA2LDggKzIwNiw4IEBAIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb25Gb3JJbmRleFVz
aW5nQ2hhcmFjdGVySXRlcmF0b3IoTm9kZSosIGludCBpbmRleCk7CiAgICAgCiAvLyBGdW5jdGlv
bnMgcmV0dXJuaW5nIEhUTUxFbGVtZW50CiAgICAgCi1XRUJDT1JFX0VYUE9SVCBQYXNzUmVmUHRy
PEhUTUxFbGVtZW50PiBjcmVhdGVEZWZhdWx0UGFyYWdyYXBoRWxlbWVudChEb2N1bWVudCYpOwot
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRlQnJlYWtFbGVtZW50KERvY3VtZW50Jik7CitX
RUJDT1JFX0VYUE9SVCBSZWY8SFRNTEVsZW1lbnQ+IGNyZWF0ZURlZmF1bHRQYXJhZ3JhcGhFbGVt
ZW50KERvY3VtZW50Jik7CitSZWY8SFRNTEVsZW1lbnQ+IGNyZWF0ZUJyZWFrRWxlbWVudChEb2N1
bWVudCYpOwogUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRlT3JkZXJlZExpc3RFbGVtZW50
KERvY3VtZW50Jik7CiBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVVbm9yZGVyZWRMaXN0
RWxlbWVudChEb2N1bWVudCYpOwogUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRlTGlzdEl0
ZW1FbGVtZW50KERvY3VtZW50Jik7CkBAIC0yMjIsMTAgKzIyMiwxMCBAQCBOb2RlKiBlbmNsb3Np
bmdMaXN0Q2hpbGQoTm9kZSopOwogLy8gRWxlbWVudAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1Q
YXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZVRhYlNwYW5FbGVtZW50KERvY3VtZW50Jik7Ci1QYXNz
UmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZVRhYlNwYW5FbGVtZW50KERvY3VtZW50JiwgUGFzc1JlZlB0
cjxOb2RlPiB0YWJUZXh0Tm9kZSk7Ci1QYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZVRhYlNwYW5F
bGVtZW50KERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0YWJUZXh0KTsKLVBhc3NSZWZQdHI8RWxl
bWVudD4gY3JlYXRlQmxvY2tQbGFjZWhvbGRlckVsZW1lbnQoRG9jdW1lbnQmKTsKK1JlZjxFbGVt
ZW50PiBjcmVhdGVUYWJTcGFuRWxlbWVudChEb2N1bWVudCYpOworUmVmPEVsZW1lbnQ+IGNyZWF0
ZVRhYlNwYW5FbGVtZW50KERvY3VtZW50JiwgUGFzc1JlZlB0cjxOb2RlPiB0YWJUZXh0Tm9kZSk7
CitSZWY8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmLCBjb25zdCBTdHJp
bmcmIHRhYlRleHQpOworUmVmPEVsZW1lbnQ+IGNyZWF0ZUJsb2NrUGxhY2Vob2xkZXJFbGVtZW50
KERvY3VtZW50Jik7CiAKIEVsZW1lbnQqIGVkaXRhYmxlUm9vdEZvclBvc2l0aW9uKGNvbnN0IFBv
c2l0aW9uJiwgRWRpdGFibGVUeXBlID0gQ29udGVudElzRWRpdGFibGUpOwogRWxlbWVudCogdW5z
cGxpdHRhYmxlRWxlbWVudEZvclBvc2l0aW9uKGNvbnN0IFBvc2l0aW9uJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0KaW5kZXggMjI2ZWFkNWE0M2JmNTk4MmQ5YjFiYTgx
NDlhMjA4ZTEyYWU3MDExZi4uODE1MTk4NWYwYjkxZTc2ZjAwMzE1NmIxYTUyMzYyZjYyNzBhZjA1
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbQpAQCAtMzk3LDcgKzM5
Nyw3IEBAIHZvaWQgRWRpdG9yOjpXZWJDb250ZW50UmVhZGVyOjphZGRGcmFnbWVudChQYXNzUmVm
UHRyPERvY3VtZW50RnJhZ21lbnQ+IG5ld0ZyYWdtCiAgICAgaWYgKGZyYWdtZW50KSB7CiAgICAg
ICAgIGlmIChuZXdGcmFnbWVudCAmJiBuZXdGcmFnbWVudC0+Zmlyc3RDaGlsZCgpKSB7CiAgICAg
ICAgICAgICBFeGNlcHRpb25Db2RlIGVjOwotICAgICAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENo
aWxkKG5ld0ZyYWdtZW50LT5maXJzdENoaWxkKCksIGVjKTsKKyAgICAgICAgICAgIGZyYWdtZW50
LT5hcHBlbmRDaGlsZCgqbmV3RnJhZ21lbnQtPmZpcnN0Q2hpbGQoKSwgZWMpOwogICAgICAgICB9
CiAgICAgfSBlbHNlCiAgICAgICAgIGZyYWdtZW50ID0gbmV3RnJhZ21lbnQ7CkBAIC00OTQsMTIg
KzQ5NCwxMiBAQCBib29sIEVkaXRvcjo6V2ViQ29udGVudFJlYWRlcjo6cmVhZFVSTChjb25zdCBV
UkwmIHVybCwgY29uc3QgU3RyaW5nJikKICAgICAgICAgICAgIHJldHVybiBmcmFnbWVudDsKICAg
ICAgICAgfQogICAgIH0gZWxzZSB7Ci0gICAgICAgIFJlZlB0cjxFbGVtZW50PiBhbmNob3IgPSBm
cmFtZS5kb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KEhUTUxOYW1lczo6YVRhZywgZmFsc2UpOwor
ICAgICAgICBSZWY8RWxlbWVudD4gYW5jaG9yID0gZnJhbWUuZG9jdW1lbnQoKS0+Y3JlYXRlRWxl
bWVudChIVE1MTmFtZXM6OmFUYWcsIGZhbHNlKTsKICAgICAgICAgYW5jaG9yLT5zZXRBdHRyaWJ1
dGUoSFRNTE5hbWVzOjpocmVmQXR0ciwgdXJsLnN0cmluZygpKTsKICAgICAgICAgYW5jaG9yLT5h
cHBlbmRDaGlsZChmcmFtZS5kb2N1bWVudCgpLT5jcmVhdGVUZXh0Tm9kZShbWyhOU1VSTCAqKXVy
bCBhYnNvbHV0ZVN0cmluZ10gcHJlY29tcG9zZWRTdHJpbmdXaXRoQ2Fub25pY2FsTWFwcGluZ10p
KTsKIAogICAgICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gbmV3RnJhZ21lbnQgPSBmcmFt
ZS5kb2N1bWVudCgpLT5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAgICAgIG5ld0ZyYWdt
ZW50LT5hcHBlbmRDaGlsZChhbmNob3IucmVsZWFzZSgpKTsKKyAgICAgICAgbmV3RnJhZ21lbnQt
PmFwcGVuZENoaWxkKFdURjo6bW92ZShhbmNob3IpKTsKICAgICAgICAgYWRkRnJhZ21lbnQobmV3
RnJhZ21lbnQpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC01ODMsNyArNTgzLDcg
QEAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBFZGl0b3I6OmNyZWF0ZUZyYWdtZW50Rm9y
SW1hZ2VSZXNvdXJjZUFuZEFkZFJlc291cmMKICAgICBpZiAoIXJlc291cmNlKQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAotICAgIFJlZlB0cjxFbGVtZW50PiBpbWFnZUVsZW1lbnQgPSBtX2Zy
YW1lLmRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoSFRNTE5hbWVzOjppbWdUYWcsIGZhbHNlKTsK
KyAgICBSZWY8RWxlbWVudD4gaW1hZ2VFbGVtZW50ID0gbV9mcmFtZS5kb2N1bWVudCgpLT5jcmVh
dGVFbGVtZW50KEhUTUxOYW1lczo6aW1nVGFnLCBmYWxzZSk7CiAgICAgLy8gRklYTUU6IFRoZSBj
b2RlIGluIGNyZWF0ZUZyYWdtZW50QW5kQWRkUmVzb3VyY2VzIGNhbGxzIHNldERlZmVyc0xvYWRp
bmcodHJ1ZSkuIERvbid0IHdlIG5lZWQgdGhhdCBoZXJlPwogICAgIGlmIChEb2N1bWVudExvYWRl
ciogbG9hZGVyID0gbV9mcmFtZS5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpKQogICAgICAgICBs
b2FkZXItPmFkZEFyY2hpdmVSZXNvdXJjZShyZXNvdXJjZS5nZXQoKSk7CkBAIC01OTIsNyArNTky
LDcgQEAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBFZGl0b3I6OmNyZWF0ZUZyYWdtZW50
Rm9ySW1hZ2VSZXNvdXJjZUFuZEFkZFJlc291cmMKICAgICBpbWFnZUVsZW1lbnQtPnNldEF0dHJp
YnV0ZShIVE1MTmFtZXM6OnNyY0F0dHIsIFtVUkwgaXNGaWxlVVJMXSA/IFtVUkwgYWJzb2x1dGVT
dHJpbmddIDogcmVzb3VyY2UtPnVybCgpKTsKIAogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50
PiBmcmFnbWVudCA9IG1fZnJhbWUuZG9jdW1lbnQoKS0+Y3JlYXRlRG9jdW1lbnRGcmFnbWVudCgp
OwotICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChpbWFnZUVsZW1lbnQucmVsZWFzZSgpKTsKKyAg
ICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGltYWdlRWxlbWVudCkpOwogCiAgICAg
cmV0dXJuIGZyYWdtZW50LnJlbGVhc2UoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0Vk
aXRvck1hYy5tbQppbmRleCA2Y2VmNDg5OTU5YjQ5NWQwNzY5OTAxNTNiYjk1YTFjMmYwOWZhZjA0
Li5jZDI1MmRjZmQzMWMzZTAwYzE1NzdkYmY5MzBjODY4M2I1MGRkMDBiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCkBAIC01MjcsMTUgKzUyNywxNSBAQCBib29sIEVk
aXRvcjo6V2ViQ29udGVudFJlYWRlcjo6cmVhZEZpbGVuYW1lcyhjb25zdCBWZWN0b3I8U3RyaW5n
PiYgcGF0aHMpCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKICAgICAg
ICAgU3RyaW5nIHRleHQgPSBwYXRoc1tpXTsKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5U
KQotICAgICAgICBSZWZQdHI8SFRNTEF0dGFjaG1lbnRFbGVtZW50PiBhdHRhY2htZW50ID0gSFRN
TEF0dGFjaG1lbnRFbGVtZW50OjpjcmVhdGUoYXR0YWNobWVudFRhZywgZG9jdW1lbnQpOworICAg
ICAgICBSZWY8SFRNTEF0dGFjaG1lbnRFbGVtZW50PiBhdHRhY2htZW50ID0gSFRNTEF0dGFjaG1l
bnRFbGVtZW50OjpjcmVhdGUoYXR0YWNobWVudFRhZywgZG9jdW1lbnQpOwogICAgICAgICBhdHRh
Y2htZW50LT5zZXRGaWxlKEZpbGU6OmNyZWF0ZShbW05TVVJMIGZpbGVVUkxXaXRoUGF0aDp0ZXh0
XSBwYXRoXSkucHRyKCkpOwotICAgICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoYXR0YWNobWVu
dC5yZWxlYXNlKCkpOworICAgICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGF0
dGFjaG1lbnQpKTsKICNlbHNlCiAgICAgICAgIHRleHQgPSBmcmFtZS5lZGl0b3IoKS5jbGllbnQo
KS0+dXNlclZpc2libGVTdHJpbmcoW05TVVJMIGZpbGVVUkxXaXRoUGF0aDp0ZXh0XSk7CiAKLSAg
ICAgICAgUmVmUHRyPEhUTUxFbGVtZW50PiBwYXJhZ3JhcGggPSBjcmVhdGVEZWZhdWx0UGFyYWdy
YXBoRWxlbWVudChkb2N1bWVudCk7CisgICAgICAgIFJlZjxIVE1MRWxlbWVudD4gcGFyYWdyYXBo
ID0gY3JlYXRlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQoZG9jdW1lbnQpOwogICAgICAgICBwYXJh
Z3JhcGgtPmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRleHQpKTsKLSAgICAg
ICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKHBhcmFncmFwaC5yZWxlYXNlKCkpOworICAgICAgICBm
cmFnbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHBhcmFncmFwaCkpOwogI2VuZGlmCiAgICAg
fQogCkBAIC01OTQsMTIgKzU5NCwxMiBAQCBib29sIEVkaXRvcjo6V2ViQ29udGVudFJlYWRlcjo6
cmVhZFVSTChjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSkKICAgICBpZiAodXJs
LnN0cmluZygpLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgUmVmUHRy
PEVsZW1lbnQ+IGFuY2hvciA9IGZyYW1lLmRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoSFRNTE5h
bWVzOjphVGFnLCBmYWxzZSk7CisgICAgUmVmPEVsZW1lbnQ+IGFuY2hvciA9IGZyYW1lLmRvY3Vt
ZW50KCktPmNyZWF0ZUVsZW1lbnQoSFRNTE5hbWVzOjphVGFnLCBmYWxzZSk7CiAgICAgYW5jaG9y
LT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpocmVmQXR0ciwgdXJsLnN0cmluZygpKTsKICAgICBh
bmNob3ItPmFwcGVuZENoaWxkKGZyYW1lLmRvY3VtZW50KCktPmNyZWF0ZVRleHROb2RlKFt0aXRs
ZSBwcmVjb21wb3NlZFN0cmluZ1dpdGhDYW5vbmljYWxNYXBwaW5nXSkpOwogCiAgICAgZnJhZ21l
bnQgPSBmcmFtZS5kb2N1bWVudCgpLT5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAgZnJh
Z21lbnQtPmFwcGVuZENoaWxkKGFuY2hvci5yZWxlYXNlKCkpOworICAgIGZyYWdtZW50LT5hcHBl
bmRDaGlsZChXVEY6Om1vdmUoYW5jaG9yKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTYz
NSwxMSArNjM1LDExIEBAIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gRWRpdG9yOjpjcmVh
dGVGcmFnbWVudEZvckltYWdlUmVzb3VyY2VBbmRBZGRSZXNvdXJjCiAgICAgaWYgKERvY3VtZW50
TG9hZGVyKiBsb2FkZXIgPSBtX2ZyYW1lLmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCkpCiAgICAg
ICAgIGxvYWRlci0+YWRkQXJjaGl2ZVJlc291cmNlKHJlc291cmNlLmdldCgpKTsKIAotICAgIFJl
ZlB0cjxFbGVtZW50PiBpbWFnZUVsZW1lbnQgPSBkb2N1bWVudCgpLmNyZWF0ZUVsZW1lbnQoSFRN
TE5hbWVzOjppbWdUYWcsIGZhbHNlKTsKKyAgICBSZWY8RWxlbWVudD4gaW1hZ2VFbGVtZW50ID0g
ZG9jdW1lbnQoKS5jcmVhdGVFbGVtZW50KEhUTUxOYW1lczo6aW1nVGFnLCBmYWxzZSk7CiAgICAg
aW1hZ2VFbGVtZW50LT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpzcmNBdHRyLCByZXNvdXJjZS0+
dXJsKCkuc3RyaW5nKCkpOwogCiAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50
ID0gZG9jdW1lbnQoKS5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAgZnJhZ21lbnQtPmFw
cGVuZENoaWxkKGltYWdlRWxlbWVudC5yZWxlYXNlKCkpOworICAgIGZyYWdtZW50LT5hcHBlbmRD
aGlsZChXVEY6Om1vdmUoaW1hZ2VFbGVtZW50KSk7CiAKICAgICByZXR1cm4gZnJhZ21lbnQucmVs
ZWFzZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCmluZGV4IDBjYWM4YjQwZmQ4YTNj
NjUxODA0MTU0OGViNjQ5ZDk0YjUzNmQyZDIuLjIwNTRjNGU4ZGJmYjYxZTFiMzc1MmQ4ZWFhYmMy
MmEwODEzMTBkMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKQEAgLTcwNCwxMiArNzA0
LDEyIEBAIFN0cmluZyBjcmVhdGVNYXJrdXAoY29uc3QgTm9kZSYgbm9kZSwgRUNoaWxkcmVuT25s
eSBjaGlsZHJlbk9ubHksIFZlY3RvcjxOb2RlKj4qCiAgICAgcmV0dXJuIGFjY3VtdWxhdG9yLnNl
cmlhbGl6ZU5vZGVzKGNvbnN0X2Nhc3Q8Tm9kZSY+KG5vZGUpLCBjaGlsZHJlbk9ubHksIHRhZ05h
bWVzVG9Ta2lwKTsKIH0KIAotc3RhdGljIHZvaWQgZmlsbENvbnRhaW5lckZyb21TdHJpbmcoQ29u
dGFpbmVyTm9kZSogcGFyYWdyYXBoLCBjb25zdCBTdHJpbmcmIHN0cmluZykKK3N0YXRpYyB2b2lk
IGZpbGxDb250YWluZXJGcm9tU3RyaW5nKENvbnRhaW5lck5vZGUmIHBhcmFncmFwaCwgY29uc3Qg
U3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gcGFyYWdyYXBoLT5k
b2N1bWVudCgpOworICAgIERvY3VtZW50JiBkb2N1bWVudCA9IHBhcmFncmFwaC5kb2N1bWVudCgp
OwogCiAgICAgaWYgKHN0cmluZy5pc0VtcHR5KCkpIHsKLSAgICAgICAgcGFyYWdyYXBoLT5hcHBl
bmRDaGlsZChjcmVhdGVCbG9ja1BsYWNlaG9sZGVyRWxlbWVudChkb2N1bWVudCksIEFTU0VSVF9O
T19FWENFUFRJT04pOworICAgICAgICBwYXJhZ3JhcGguYXBwZW5kQ2hpbGQoY3JlYXRlQmxvY2tQ
bGFjZWhvbGRlckVsZW1lbnQoZG9jdW1lbnQpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIApAQCAtNzI2LDExICs3MjYsMTEgQEAgc3RhdGljIHZvaWQgZmls
bENvbnRhaW5lckZyb21TdHJpbmcoQ29udGFpbmVyTm9kZSogcGFyYWdyYXBoLCBjb25zdCBTdHJp
bmcmIHN0cmkKICAgICAgICAgLy8gYXBwZW5kIHRoZSBub24tdGFiIHRleHR1YWwgcGFydAogICAg
ICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBpZiAoIXRhYlRleHQuaXNFbXB0
eSgpKSB7Ci0gICAgICAgICAgICAgICAgcGFyYWdyYXBoLT5hcHBlbmRDaGlsZChjcmVhdGVUYWJT
cGFuRWxlbWVudChkb2N1bWVudCwgdGFiVGV4dCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAg
ICAgICAgICAgICAgIHBhcmFncmFwaC5hcHBlbmRDaGlsZChjcmVhdGVUYWJTcGFuRWxlbWVudChk
b2N1bWVudCwgdGFiVGV4dCksIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgICAgICAgICAgICAg
IHRhYlRleHQgPSBlbXB0eVN0cmluZygpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgUmVm
UHRyPE5vZGU+IHRleHROb2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoc3RyaW5nV2l0aFJl
YmFsYW5jZWRXaGl0ZXNwYWNlKHMsIGZpcnN0LCBpICsgMSA9PSBudW1FbnRyaWVzKSk7Ci0gICAg
ICAgICAgICBwYXJhZ3JhcGgtPmFwcGVuZENoaWxkKHRleHROb2RlLnJlbGVhc2UoKSwgQVNTRVJU
X05PX0VYQ0VQVElPTik7CisgICAgICAgICAgICBSZWY8Tm9kZT4gdGV4dE5vZGUgPSBkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZShzdHJpbmdXaXRoUmViYWxhbmNlZFdoaXRlc3BhY2UocywgZmlyc3Qs
IGkgKyAxID09IG51bUVudHJpZXMpKTsKKyAgICAgICAgICAgIHBhcmFncmFwaC5hcHBlbmRDaGls
ZChXVEY6Om1vdmUodGV4dE5vZGUpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICAgICAgfQog
CiAgICAgICAgIC8vIHRoZXJlIGlzIGEgdGFiIGFmdGVyIGV2ZXJ5IGVudHJ5LCBleGNlcHQgdGhl
IGxhc3QgZW50cnkKQEAgLTczOCw3ICs3MzgsNyBAQCBzdGF0aWMgdm9pZCBmaWxsQ29udGFpbmVy
RnJvbVN0cmluZyhDb250YWluZXJOb2RlKiBwYXJhZ3JhcGgsIGNvbnN0IFN0cmluZyYgc3RyaQog
ICAgICAgICBpZiAoaSArIDEgIT0gbnVtRW50cmllcykKICAgICAgICAgICAgIHRhYlRleHQuYXBw
ZW5kKCdcdCcpOwogICAgICAgICBlbHNlIGlmICghdGFiVGV4dC5pc0VtcHR5KCkpCi0gICAgICAg
ICAgICBwYXJhZ3JhcGgtPmFwcGVuZENoaWxkKGNyZWF0ZVRhYlNwYW5FbGVtZW50KGRvY3VtZW50
LCB0YWJUZXh0KSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAgICAgICBwYXJhZ3JhcGgu
YXBwZW5kQ2hpbGQoY3JlYXRlVGFiU3BhbkVsZW1lbnQoZG9jdW1lbnQsIHRhYlRleHQpLCBBU1NF
UlRfTk9fRVhDRVBUSU9OKTsKIAogICAgICAgICBmaXJzdCA9IGZhbHNlOwogICAgIH0KQEAgLTc3
OCwxMyArNzc4LDEzIEBAIHN0YXRpYyBib29sIGNvbnRleHRQcmVzZXJ2ZXNOZXdsaW5lKGNvbnN0
IFJhbmdlJiBjb250ZXh0KQogICAgIHJldHVybiBjb250YWluZXItPnJlbmRlcmVyKCktPnN0eWxl
KCkucHJlc2VydmVOZXdsaW5lKCk7CiB9CiAKLVBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4g
Y3JlYXRlRnJhZ21lbnRGcm9tVGV4dChSYW5nZSYgY29udGV4dCwgY29uc3QgU3RyaW5nJiB0ZXh0
KQorUmVmPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoUmFuZ2UmIGNv
bnRleHQsIGNvbnN0IFN0cmluZyYgdGV4dCkKIHsKICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBj
b250ZXh0Lm93bmVyRG9jdW1lbnQoKTsKLSAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJh
Z21lbnQgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7CisgICAgUmVmPERvY3Vt
ZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgp
OwogICAgIAogICAgIGlmICh0ZXh0LmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIGZyYWdtZW50
LnJlbGVhc2UoKTsKKyAgICAgICAgcmV0dXJuIGZyYWdtZW50OwogCiAgICAgU3RyaW5nIHN0cmlu
ZyA9IHRleHQ7CiAgICAgc3RyaW5nLnJlcGxhY2UoIlxyXG4iLCAiXG4iKTsKQEAgLTc5MywxNyAr
NzkzLDE3IEBAIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGcm9t
VGV4dChSYW5nZSYgY29udGV4dCwgY29uc3QgU3RyaW5nCiAgICAgaWYgKGNvbnRleHRQcmVzZXJ2
ZXNOZXdsaW5lKGNvbnRleHQpKSB7CiAgICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZShzdHJpbmcpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICAg
ICAgaWYgKHN0cmluZy5lbmRzV2l0aCgnXG4nKSkgewotICAgICAgICAgICAgUmVmUHRyPEVsZW1l
bnQ+IGVsZW1lbnQgPSBjcmVhdGVCcmVha0VsZW1lbnQoZG9jdW1lbnQpOworICAgICAgICAgICAg
UmVmPEVsZW1lbnQ+IGVsZW1lbnQgPSBjcmVhdGVCcmVha0VsZW1lbnQoZG9jdW1lbnQpOwogICAg
ICAgICAgICAgZWxlbWVudC0+c2V0QXR0cmlidXRlKGNsYXNzQXR0ciwgQXBwbGVJbnRlcmNoYW5n
ZU5ld2xpbmUpOyAgICAgICAgICAgIAotICAgICAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxk
KGVsZW1lbnQucmVsZWFzZSgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgICAgIGZy
YWdtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoZWxlbWVudCksIEFTU0VSVF9OT19FWENFUFRJ
T04pOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiBmcmFnbWVudC5yZWxlYXNlKCk7CisgICAg
ICAgIHJldHVybiBmcmFnbWVudDsKICAgICB9CiAKICAgICAvLyBBIHN0cmluZyB3aXRoIG5vIG5l
d2xpbmVzIGdldHMgYWRkZWQgaW5saW5lLCByYXRoZXIgdGhhbiBiZWluZyBwdXQgaW50byBhIHBh
cmFncmFwaC4KICAgICBpZiAoc3RyaW5nLmZpbmQoJ1xuJykgPT0gbm90Rm91bmQpIHsKLSAgICAg
ICAgZmlsbENvbnRhaW5lckZyb21TdHJpbmcoZnJhZ21lbnQuZ2V0KCksIHN0cmluZyk7Ci0gICAg
ICAgIHJldHVybiBmcmFnbWVudC5yZWxlYXNlKCk7CisgICAgICAgIGZpbGxDb250YWluZXJGcm9t
U3RyaW5nKGZyYWdtZW50LCBzdHJpbmcpOworICAgICAgICByZXR1cm4gZnJhZ21lbnQ7CiAgICAg
fQogCiAgICAgLy8gQnJlYWsgc3RyaW5nIGludG8gcGFyYWdyYXBocy4gRXh0cmEgbGluZSBicmVh
a3MgdHVybiBpbnRvIGVtcHR5IHBhcmFncmFwaHMuCkBAIC04MjksMTcgKzgyOSwxNyBAQCBQYXNz
UmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoUmFuZ2UmIGNv
bnRleHQsIGNvbnN0IFN0cmluZwogICAgICAgICAgICAgZWxlbWVudC0+c2V0QXR0cmlidXRlKGNs
YXNzQXR0ciwgQXBwbGVJbnRlcmNoYW5nZU5ld2xpbmUpOwogICAgICAgICB9IGVsc2UgaWYgKHVz
ZUxpbmVCcmVhaykgewogICAgICAgICAgICAgZWxlbWVudCA9IGNyZWF0ZUJyZWFrRWxlbWVudChk
b2N1bWVudCk7Ci0gICAgICAgICAgICBmaWxsQ29udGFpbmVyRnJvbVN0cmluZyhmcmFnbWVudC5n
ZXQoKSwgcyk7CisgICAgICAgICAgICBmaWxsQ29udGFpbmVyRnJvbVN0cmluZyhmcmFnbWVudCwg
cyk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBpZiAodXNlQ2xvbmVzT2ZFbmNsb3Np
bmdCbG9jaykKICAgICAgICAgICAgICAgICBlbGVtZW50ID0gYmxvY2stPmNsb25lRWxlbWVudFdp
dGhvdXRDaGlsZHJlbihkb2N1bWVudCk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAg
ICAgZWxlbWVudCA9IGNyZWF0ZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50KGRvY3VtZW50KTsKLSAg
ICAgICAgICAgIGZpbGxDb250YWluZXJGcm9tU3RyaW5nKGVsZW1lbnQuZ2V0KCksIHMpOworICAg
ICAgICAgICAgZmlsbENvbnRhaW5lckZyb21TdHJpbmcoKmVsZW1lbnQsIHMpOwogICAgICAgICB9
Ci0gICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChlbGVtZW50LnJlbGVhc2UoKSwgQVNTRVJU
X05PX0VYQ0VQVElPTik7CisgICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChlbGVtZW50LnJl
bGVhc2VOb25OdWxsKCksIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgIH0KLSAgICByZXR1cm4g
ZnJhZ21lbnQucmVsZWFzZSgpOworICAgIHJldHVybiBmcmFnbWVudDsKIH0KIAogU3RyaW5nIGRv
Y3VtZW50VHlwZVN0cmluZyhjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpCkBAIC05NDUsMTAgKzk0
NSwxMCBAQCBzdGF0aWMgdm9pZCByZW1vdmVFbGVtZW50RnJvbUZyYWdtZW50UHJlc2VydmluZ0No
aWxkcmVuKERvY3VtZW50RnJhZ21lbnQmIGZyYWdtZQogICAgIFJlZlB0cjxOb2RlPiBuZXh0Q2hp
bGQ7CiAgICAgZm9yIChSZWZQdHI8Tm9kZT4gY2hpbGQgPSBlbGVtZW50LmZpcnN0Q2hpbGQoKTsg
Y2hpbGQ7IGNoaWxkID0gbmV4dENoaWxkKSB7CiAgICAgICAgIG5leHRDaGlsZCA9IGNoaWxkLT5u
ZXh0U2libGluZygpOwotICAgICAgICBlbGVtZW50LnJlbW92ZUNoaWxkKGNoaWxkLmdldCgpLCBB
U1NFUlRfTk9fRVhDRVBUSU9OKTsKLSAgICAgICAgZnJhZ21lbnQuaW5zZXJ0QmVmb3JlKGNoaWxk
LCAmZWxlbWVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAgIGVsZW1lbnQucmVtb3Zl
Q2hpbGQoKmNoaWxkLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgZnJhZ21lbnQuaW5z
ZXJ0QmVmb3JlKCpjaGlsZCwgJmVsZW1lbnQsIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgIH0K
LSAgICBmcmFnbWVudC5yZW1vdmVDaGlsZCgmZWxlbWVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7
CisgICAgZnJhZ21lbnQucmVtb3ZlQ2hpbGQoZWxlbWVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7
CiB9CiAKIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlQ29udGV4dHVhbEZyYWdt
ZW50KGNvbnN0IFN0cmluZyYgbWFya3VwLCBIVE1MRWxlbWVudCogZWxlbWVudCwgUGFyc2VyQ29u
dGVudFBvbGljeSBwYXJzZXJDb250ZW50UG9saWN5LCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTk5
MCw3ICs5OTAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaGFzT25lVGV4dENoaWxkKENvbnRhaW5l
ck5vZGUmIG5vZGUpCiAgICAgcmV0dXJuIGhhc09uZUNoaWxkKG5vZGUpICYmIG5vZGUuZmlyc3RD
aGlsZCgpLT5pc1RleHROb2RlKCk7CiB9CiAKLXZvaWQgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdt
ZW50KENvbnRhaW5lck5vZGUmIGNvbnRhaW5lciwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50
PiBmcmFnbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIHJlcGxhY2VDaGlsZHJlbldpdGhG
cmFnbWVudChDb250YWluZXJOb2RlJiBjb250YWluZXIsIFJlZjxEb2N1bWVudEZyYWdtZW50PiYm
IGZyYWdtZW50LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBSZWY8Q29udGFpbmVyTm9kZT4g
Y29udGFpbmVyTm9kZShjb250YWluZXIpOwogICAgIENoaWxkTGlzdE11dGF0aW9uU2NvcGUgbXV0
YXRpb24oY29udGFpbmVyTm9kZSk7CkBAIC0xMDAwLDE4ICsxMDAwLDE4IEBAIHZvaWQgcmVwbGFj
ZUNoaWxkcmVuV2l0aEZyYWdtZW50KENvbnRhaW5lck5vZGUmIGNvbnRhaW5lciwgUGFzc1JlZlB0
cjxEb2N1bWVudEZyCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoaGFzT25lVGV4
dENoaWxkKGNvbnRhaW5lck5vZGUpICYmIGhhc09uZVRleHRDaGlsZCgqZnJhZ21lbnQpKSB7Cisg
ICAgaWYgKGhhc09uZVRleHRDaGlsZChjb250YWluZXJOb2RlKSAmJiBoYXNPbmVUZXh0Q2hpbGQo
ZnJhZ21lbnQpKSB7CiAgICAgICAgIGRvd25jYXN0PFRleHQ+KCpjb250YWluZXJOb2RlLT5maXJz
dENoaWxkKCkpLnNldERhdGEoZG93bmNhc3Q8VGV4dD4oKmZyYWdtZW50LT5maXJzdENoaWxkKCkp
LmRhdGEoKSwgZWMpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKGhhc09uZUNo
aWxkKGNvbnRhaW5lck5vZGUpKSB7Ci0gICAgICAgIGNvbnRhaW5lck5vZGUtPnJlcGxhY2VDaGls
ZChmcmFnbWVudCwgY29udGFpbmVyTm9kZS0+Zmlyc3RDaGlsZCgpLCBlYyk7CisgICAgICAgIGNv
bnRhaW5lck5vZGUtPnJlcGxhY2VDaGlsZChXVEY6Om1vdmUoZnJhZ21lbnQpLCAqY29udGFpbmVy
Tm9kZS0+Zmlyc3RDaGlsZCgpLCBlYyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBj
b250YWluZXJOb2RlLT5yZW1vdmVDaGlsZHJlbigpOwotICAgIGNvbnRhaW5lck5vZGUtPmFwcGVu
ZENoaWxkKGZyYWdtZW50LCBlYyk7CisgICAgY29udGFpbmVyTm9kZS0+YXBwZW5kQ2hpbGQoV1RG
Ojptb3ZlKGZyYWdtZW50KSwgZWMpOwogfQogCiB2b2lkIHJlcGxhY2VDaGlsZHJlbldpdGhUZXh0
KENvbnRhaW5lck5vZGUmIGNvbnRhaW5lciwgY29uc3QgU3RyaW5nJiB0ZXh0LCBFeGNlcHRpb25D
b2RlJiBlYykKQEAgLTEwMjcsNyArMTAyNyw3IEBAIHZvaWQgcmVwbGFjZUNoaWxkcmVuV2l0aFRl
eHQoQ29udGFpbmVyTm9kZSYgY29udGFpbmVyLCBjb25zdCBTdHJpbmcmIHRleHQsIEV4Y2VwCiAg
ICAgUmVmPFRleHQ+IHRleHROb2RlID0gVGV4dDo6Y3JlYXRlKGNvbnRhaW5lck5vZGUtPmRvY3Vt
ZW50KCksIHRleHQpOwogCiAgICAgaWYgKGhhc09uZUNoaWxkKGNvbnRhaW5lck5vZGUpKSB7Ci0g
ICAgICAgIGNvbnRhaW5lck5vZGUtPnJlcGxhY2VDaGlsZChXVEY6Om1vdmUodGV4dE5vZGUpLCBj
b250YWluZXJOb2RlLT5maXJzdENoaWxkKCksIGVjKTsKKyAgICAgICAgY29udGFpbmVyTm9kZS0+
cmVwbGFjZUNoaWxkKFdURjo6bW92ZSh0ZXh0Tm9kZSksICpjb250YWluZXJOb2RlLT5maXJzdENo
aWxkKCksIGVjKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3Vw
LmgKaW5kZXggYzU1MjAxMDc2NjA3MmVmNWU2MWQyNmEzMTNjMWIwMDNiMWI4MzRiOC4uYTU0NWJh
NTQ2NmYyZmQxODNkNTViYjRlODMyMDk0NDhjODhmMzc5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9tYXJrdXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1
cC5oCkBAIC00OSw3ICs0OSw3IEBAIGVudW0gRUNoaWxkcmVuT25seSB7IEluY2x1ZGVOb2RlLCBD
aGlsZHJlbk9ubHkgfTsKIGVudW0gRUFic29sdXRlVVJMcyB7IERvTm90UmVzb2x2ZVVSTHMsIFJl
c29sdmVBbGxVUkxzLCBSZXNvbHZlTm9uTG9jYWxVUkxzIH07CiBlbnVtIEVGcmFnbWVudFNlcmlh
bGl6YXRpb24geyBIVE1MRnJhZ21lbnRTZXJpYWxpemF0aW9uLCBYTUxGcmFnbWVudFNlcmlhbGl6
YXRpb24gfTsKIAotV0VCQ09SRV9FWFBPUlQgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBj
cmVhdGVGcmFnbWVudEZyb21UZXh0KFJhbmdlJiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIHRleHQp
OworV0VCQ09SRV9FWFBPUlQgUmVmPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJv
bVRleHQoUmFuZ2UmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgdGV4dCk7CiBXRUJDT1JFX0VYUE9S
VCBSZWY8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGcm9tTWFya3VwKERvY3VtZW50
JiwgY29uc3QgU3RyaW5nJiBtYXJrdXAsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgUGFyc2VyQ29u
dGVudFBvbGljeSA9IEFsbG93U2NyaXB0aW5nQ29udGVudCk7CiBQYXNzUmVmUHRyPERvY3VtZW50
RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50Rm9ySW5uZXJPdXRlckhUTUwoY29uc3QgU3RyaW5nJiwg
RWxlbWVudCosIFBhcnNlckNvbnRlbnRQb2xpY3ksIEV4Y2VwdGlvbkNvZGUmKTsKIFBhc3NSZWZQ
dHI8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGb3JUcmFuc2Zvcm1Ub0ZyYWdtZW50
KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgc291cmNlTUlNRVR5cGUsIERvY3VtZW50KiBv
dXRwdXREb2MpOwpAQCAtNTksMTEgKzU5LDExIEBAIGJvb2wgaXNQbGFpblRleHRNYXJrdXAoTm9k
ZSopOwogCiAvLyBUaGVzZSBtZXRob2RzIGFyZSB1c2VkIGJ5IEhUTUxFbGVtZW50ICYgU2hhZG93
Um9vdCB0byByZXBsYWNlIHRoZQogLy8gY2hpbGRyZW4gd2l0aCByZXNwZWN0ZWQgZnJhZ21lbnQv
dGV4dC4KLXZvaWQgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KENvbnRhaW5lck5vZGUmLCBQ
YXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+LCBFeGNlcHRpb25Db2RlJik7Cit2b2lkIHJlcGxh
Y2VDaGlsZHJlbldpdGhGcmFnbWVudChDb250YWluZXJOb2RlJiwgUmVmPERvY3VtZW50RnJhZ21l
bnQ+JiYsIEV4Y2VwdGlvbkNvZGUmKTsKIHZvaWQgcmVwbGFjZUNoaWxkcmVuV2l0aFRleHQoQ29u
dGFpbmVyTm9kZSYsIGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKIAotU3RyaW5nIGNy
ZWF0ZU1hcmt1cChjb25zdCBSYW5nZSYsIFZlY3RvcjxOb2RlKj4qID0gMCwgRUFubm90YXRlRm9y
SW50ZXJjaGFuZ2UgPSBEb05vdEFubm90YXRlRm9ySW50ZXJjaGFuZ2UsIGJvb2wgY29udmVydEJs
b2Nrc1RvSW5saW5lcyA9IGZhbHNlLCBFQWJzb2x1dGVVUkxzID0gRG9Ob3RSZXNvbHZlVVJMcyk7
Ci1TdHJpbmcgY3JlYXRlTWFya3VwKGNvbnN0IE5vZGUmLCBFQ2hpbGRyZW5Pbmx5ID0gSW5jbHVk
ZU5vZGUsIFZlY3RvcjxOb2RlKj4qID0gMCwgRUFic29sdXRlVVJMcyA9IERvTm90UmVzb2x2ZVVS
THMsIFZlY3RvcjxRdWFsaWZpZWROYW1lPiogdGFnTmFtZXNUb1NraXAgPSAwLCBFRnJhZ21lbnRT
ZXJpYWxpemF0aW9uID0gSFRNTEZyYWdtZW50U2VyaWFsaXphdGlvbik7CitTdHJpbmcgY3JlYXRl
TWFya3VwKGNvbnN0IFJhbmdlJiwgVmVjdG9yPE5vZGUqPiogPSBudWxscHRyLCBFQW5ub3RhdGVG
b3JJbnRlcmNoYW5nZSA9IERvTm90QW5ub3RhdGVGb3JJbnRlcmNoYW5nZSwgYm9vbCBjb252ZXJ0
QmxvY2tzVG9JbmxpbmVzID0gZmFsc2UsIEVBYnNvbHV0ZVVSTHMgPSBEb05vdFJlc29sdmVVUkxz
KTsKK1N0cmluZyBjcmVhdGVNYXJrdXAoY29uc3QgTm9kZSYsIEVDaGlsZHJlbk9ubHkgPSBJbmNs
dWRlTm9kZSwgVmVjdG9yPE5vZGUqPiogPSBudWxscHRyLCBFQWJzb2x1dGVVUkxzID0gRG9Ob3RS
ZXNvbHZlVVJMcywgVmVjdG9yPFF1YWxpZmllZE5hbWU+KiB0YWdOYW1lc1RvU2tpcCA9IDAsIEVG
cmFnbWVudFNlcmlhbGl6YXRpb24gPSBIVE1MRnJhZ21lbnRTZXJpYWxpemF0aW9uKTsKIAogV0VC
Q09SRV9FWFBPUlQgU3RyaW5nIGNyZWF0ZUZ1bGxNYXJrdXAoY29uc3QgTm9kZSYpOwogV0VCQ09S
RV9FWFBPUlQgU3RyaW5nIGNyZWF0ZUZ1bGxNYXJrdXAoY29uc3QgUmFuZ2UmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlu
cHV0VHlwZS5jcHAKaW5kZXggZGJlYTBlOTliZDkzNGM3ZGJkZWE1MmQyNWQwMWMyZjgxNzVkYzFk
MC4uNTdlMzg4YmYxZGNlYTRiODE5NmI0NjBmMGNjMzcxMWZmMGY4NzM0YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlu
cHV0VHlwZS5jcHAKQEAgLTYwLDkgKzYwLDkgQEAgdm9pZCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5k
VGltZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7CiAgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgdmFsdWVDb250YWluZXJQc2V1ZG8sICgi
LXdlYmtpdC1kYXRlLWFuZC10aW1lLXZhbHVlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOwogCi0gICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiB2YWx1ZUNvbnRhaW5lciA9
IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLmRvY3VtZW50KCkpOworICAgIFJlZjxI
VE1MRGl2RWxlbWVudD4gdmFsdWVDb250YWluZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGVs
ZW1lbnQoKS5kb2N1bWVudCgpKTsKICAgICB2YWx1ZUNvbnRhaW5lci0+c2V0UHNldWRvKHZhbHVl
Q29udGFpbmVyUHNldWRvKTsKLSAgICBlbGVtZW50KCkudXNlckFnZW50U2hhZG93Um9vdCgpLT5h
cHBlbmRDaGlsZCh2YWx1ZUNvbnRhaW5lci5nZXQoKSk7CisgICAgZWxlbWVudCgpLnVzZXJBZ2Vu
dFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHZhbHVlQ29udGFpbmVyKSk7CiAg
ICAgdXBkYXRlQXBwZWFyYW5jZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0NvbG9ySW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5
cGUuY3BwCmluZGV4IDhiYmRiOTdjMjUyNGI2MmFiMzlhYTY0ZTY4NDA4NTVjYTQ2OTU1OWMuLmM1
Mzg1YTA0YjY3NzhjNWVhMmQ0MzViNDM5YTk0YmYyMDdiYjY2NjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQ29sb3JJbnB1dFR5cGUuY3BwCkBAIC0xMDcsMTIgKzEwNywxMiBAQCB2b2lkIENvbG9ySW5w
dXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKICAgICBBU1NFUlQoZWxlbWVudCgpLnNoYWRv
d1Jvb3QoKSk7CiAKICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBlbGVtZW50KCkuZG9jdW1lbnQo
KTsKLSAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IHdyYXBwZXJFbGVtZW50ID0gSFRNTERpdkVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgUmVmPEhUTUxEaXZFbGVtZW50PiB3cmFwcGVy
RWxlbWVudCA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIHdyYXBwZXJF
bGVtZW50LT5zZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LWNvbG9yLXN3YXRjaC13cmFw
cGVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIFJlZlB0cjxI
VE1MRGl2RWxlbWVudD4gY29sb3JTd2F0Y2ggPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KTsKKyAgICBSZWY8SFRNTERpdkVsZW1lbnQ+IGNvbG9yU3dhdGNoID0gSFRNTERpdkVsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29sb3JTd2F0Y2gtPnNldFBzZXVkbyhBdG9taWNT
dHJpbmcoIi13ZWJraXQtY29sb3Itc3dhdGNoIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOwotICAgIHdyYXBwZXJFbGVtZW50LT5hcHBlbmRDaGlsZChjb2xvclN3YXRjaC5y
ZWxlYXNlKCksIEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgIGVsZW1lbnQoKS51c2VyQWdlbnRT
aGFkb3dSb290KCktPmFwcGVuZENoaWxkKHdyYXBwZXJFbGVtZW50LnJlbGVhc2UoKSwgQVNTRVJU
X05PX0VYQ0VQVElPTik7CisgICAgd3JhcHBlckVsZW1lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92
ZShjb2xvclN3YXRjaCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIGVsZW1lbnQoKS51c2Vy
QWdlbnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKFdURjo6bW92ZSh3cmFwcGVyRWxlbWVudCks
IEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgIAogICAgIHVwZGF0ZUNvbG9yU3dhdGNoKCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwCmluZGV4IDQw
NjVhMTc4ZDI4MmE5Mjk3MTQ1MTE1NWI2NmQ2M2RkMzRhMWYyZDUuLjE0NDdhNDYzNWY3MjEyZWZh
OTJhMTFjMTdmOTJmN2Y2OTM3ZWFlZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGly
ZWN0b3J5RG9jdW1lbnQuY3BwCkBAIC0xMDQsMjcgKzEwNCwyNyBAQCB2b2lkIEZUUERpcmVjdG9y
eURvY3VtZW50UGFyc2VyOjphcHBlbmRFbnRyeShjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25z
dCBTdHJpbgogICAgIFJlZlB0cjxFbGVtZW50PiByb3dFbGVtZW50ID0gbV90YWJsZUVsZW1lbnQt
Pmluc2VydFJvdygtMSwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgcm93RWxlbWVudC0+c2V0QXR0
cmlidXRlKEhUTUxOYW1lczo6Y2xhc3NBdHRyLCAiZnRwRGlyZWN0b3J5RW50cnlSb3ciKTsKIAot
ICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudCh0
ZFRhZywgZmFsc2UpOworICAgIFJlZjxFbGVtZW50PiBlbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3Jl
YXRlRWxlbWVudCh0ZFRhZywgZmFsc2UpOwogICAgIGVsZW1lbnQtPmFwcGVuZENoaWxkKFRleHQ6
OmNyZWF0ZSgqZG9jdW1lbnQoKSwgU3RyaW5nKCZub0JyZWFrU3BhY2UsIDEpKSwgSUdOT1JFX0VY
Q0VQVElPTik7CiAgICAgaWYgKGlzRGlyZWN0b3J5KQogICAgICAgICBlbGVtZW50LT5zZXRBdHRy
aWJ1dGUoSFRNTE5hbWVzOjpjbGFzc0F0dHIsICJmdHBEaXJlY3RvcnlJY29uIGZ0cERpcmVjdG9y
eVR5cGVEaXJlY3RvcnkiKTsKICAgICBlbHNlCiAgICAgICAgIGVsZW1lbnQtPnNldEF0dHJpYnV0
ZShIVE1MTmFtZXM6OmNsYXNzQXR0ciwgImZ0cERpcmVjdG9yeUljb24gZnRwRGlyZWN0b3J5VHlw
ZUZpbGUiKTsKLSAgICByb3dFbGVtZW50LT5hcHBlbmRDaGlsZChlbGVtZW50LCBJR05PUkVfRVhD
RVBUSU9OKTsKKyAgICByb3dFbGVtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoZWxlbWVudCks
IElHTk9SRV9FWENFUFRJT04pOwogCiAgICAgZWxlbWVudCA9IGNyZWF0ZVRERm9yRmlsZW5hbWUo
ZmlsZW5hbWUpOwogICAgIGVsZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNsYXNzQXR0
ciwgImZ0cERpcmVjdG9yeUZpbGVOYW1lIik7Ci0gICAgcm93RWxlbWVudC0+YXBwZW5kQ2hpbGQo
ZWxlbWVudCwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgcm93RWxlbWVudC0+YXBwZW5kQ2hpbGQo
V1RGOjptb3ZlKGVsZW1lbnQpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAogICAgIGVsZW1lbnQgPSBk
b2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KHRkVGFnLCBmYWxzZSk7CiAgICAgZWxlbWVudC0+YXBw
ZW5kQ2hpbGQoVGV4dDo6Y3JlYXRlKCpkb2N1bWVudCgpLCBkYXRlKSwgSUdOT1JFX0VYQ0VQVElP
Tik7CiAgICAgZWxlbWVudC0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6Y2xhc3NBdHRyLCAiZnRw
RGlyZWN0b3J5RmlsZURhdGUiKTsKLSAgICByb3dFbGVtZW50LT5hcHBlbmRDaGlsZChlbGVtZW50
LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICByb3dFbGVtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1v
dmUoZWxlbWVudCksIElHTk9SRV9FWENFUFRJT04pOwogCiAgICAgZWxlbWVudCA9IGRvY3VtZW50
KCktPmNyZWF0ZUVsZW1lbnQodGRUYWcsIGZhbHNlKTsKICAgICBlbGVtZW50LT5hcHBlbmRDaGls
ZChUZXh0OjpjcmVhdGUoKmRvY3VtZW50KCksIHNpemUpLCBJR05PUkVfRVhDRVBUSU9OKTsKICAg
ICBlbGVtZW50LT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpjbGFzc0F0dHIsICJmdHBEaXJlY3Rv
cnlGaWxlU2l6ZSIpOwotICAgIHJvd0VsZW1lbnQtPmFwcGVuZENoaWxkKGVsZW1lbnQsIElHTk9S
RV9FWENFUFRJT04pOworICAgIHJvd0VsZW1lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShlbGVt
ZW50KSwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CiAKIFJlZjxFbGVtZW50PiBGVFBEaXJlY3RvcnlE
b2N1bWVudFBhcnNlcjo6Y3JlYXRlVERGb3JGaWxlbmFtZShjb25zdCBTdHJpbmcmIGZpbGVuYW1l
KQpAQCAtMTM1LDEyICsxMzUsMTIgQEAgUmVmPEVsZW1lbnQ+IEZUUERpcmVjdG9yeURvY3VtZW50
UGFyc2VyOjpjcmVhdGVUREZvckZpbGVuYW1lKGNvbnN0IFN0cmluZyYgZmlsZW4KICAgICBlbHNl
CiAgICAgICAgIGZ1bGxVUkwgPSBmdWxsVVJMICsgJy8nICsgZmlsZW5hbWU7CiAKLSAgICBSZWZQ
dHI8RWxlbWVudD4gYW5jaG9yRWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoYVRh
ZywgZmFsc2UpOworICAgIFJlZjxFbGVtZW50PiBhbmNob3JFbGVtZW50ID0gZG9jdW1lbnQoKS0+
Y3JlYXRlRWxlbWVudChhVGFnLCBmYWxzZSk7CiAgICAgYW5jaG9yRWxlbWVudC0+c2V0QXR0cmli
dXRlKEhUTUxOYW1lczo6aHJlZkF0dHIsIGZ1bGxVUkwpOwogICAgIGFuY2hvckVsZW1lbnQtPmFw
cGVuZENoaWxkKFRleHQ6OmNyZWF0ZSgqZG9jdW1lbnQoKSwgZmlsZW5hbWUpLCBJR05PUkVfRVhD
RVBUSU9OKTsKIAogICAgIFJlZjxFbGVtZW50PiB0ZEVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVh
dGVFbGVtZW50KHRkVGFnLCBmYWxzZSk7Ci0gICAgdGRFbGVtZW50LT5hcHBlbmRDaGlsZChhbmNo
b3JFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICB0ZEVsZW1lbnQtPmFwcGVuZENoaWxk
KFdURjo6bW92ZShhbmNob3JFbGVtZW50KSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKICAgICByZXR1
cm4gdGRFbGVtZW50OwogfQpAQCAtMzEyLDkgKzMxMiw5IEBAIGJvb2wgRlRQRGlyZWN0b3J5RG9j
dW1lbnRQYXJzZXI6OmxvYWREb2N1bWVudFRlbXBsYXRlKCkKICAgICAvLyBJZiB0aGF0IGZhaWxz
IGZvciBzb21lIHJlYXNvbiwgY3JhbSBpdCBvbiB0aGUgZW5kIG9mIHRoZSBkb2N1bWVudCBhcyBh
IGxhc3QKICAgICAvLyBkaXRjaCBlZmZvcnQKICAgICBpZiAoYXV0byogYm9keSA9IGRvY3VtZW50
KCktPmJvZHlPckZyYW1lc2V0KCkpCi0gICAgICAgIGJvZHktPmFwcGVuZENoaWxkKG1fdGFibGVF
bGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgYm9keS0+YXBwZW5kQ2hpbGQoKm1f
dGFibGVFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICBlbHNlCi0gICAgICAgIGRvY3Vt
ZW50KCktPmFwcGVuZENoaWxkKG1fdGFibGVFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAg
ICAgICAgZG9jdW1lbnQoKS0+YXBwZW5kQ2hpbGQoKm1fdGFibGVFbGVtZW50LCBJR05PUkVfRVhD
RVBUSU9OKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMzI1LDE2ICszMjUsMTYgQEAgdm9p
ZCBGVFBEaXJlY3RvcnlEb2N1bWVudFBhcnNlcjo6Y3JlYXRlQmFzaWNEb2N1bWVudCgpCiAKICAg
ICAvLyBGSVhNRTogTWFrZSB0aGlzICJiYXNpYyBkb2N1bWVudCIgbW9yZSBhY2NlcHRhYmxlCiAK
LSAgICBSZWZQdHI8RWxlbWVudD4gYm9keUVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVt
ZW50KGJvZHlUYWcsIGZhbHNlKTsKKyAgICBSZWY8RWxlbWVudD4gYm9keUVsZW1lbnQgPSBkb2N1
bWVudCgpLT5jcmVhdGVFbGVtZW50KGJvZHlUYWcsIGZhbHNlKTsKIAotICAgIGRvY3VtZW50KCkt
PmFwcGVuZENoaWxkKGJvZHlFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBkb2N1bWVu
dCgpLT5hcHBlbmRDaGlsZChib2R5RWxlbWVudC5jb3B5UmVmKCksIElHTk9SRV9FWENFUFRJT04p
OwogCi0gICAgUmVmUHRyPEVsZW1lbnQ+IHRhYmxlRWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0
ZUVsZW1lbnQodGFibGVUYWcsIGZhbHNlKTsKLSAgICBtX3RhYmxlRWxlbWVudCA9IGRvd25jYXN0
PEhUTUxUYWJsZUVsZW1lbnQ+KHRhYmxlRWxlbWVudC5nZXQoKSk7CisgICAgUmVmPEVsZW1lbnQ+
IHRhYmxlRWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQodGFibGVUYWcsIGZhbHNl
KTsKKyAgICBtX3RhYmxlRWxlbWVudCA9IGRvd25jYXN0PEhUTUxUYWJsZUVsZW1lbnQ+KHRhYmxl
RWxlbWVudC5wdHIoKSk7CiAgICAgbV90YWJsZUVsZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1MTmFt
ZXM6OmlkQXR0ciwgImZ0cERpcmVjdG9yeVRhYmxlIik7CiAgICAgbV90YWJsZUVsZW1lbnQtPnNl
dEF0dHJpYnV0ZShIVE1MTmFtZXM6OnN0eWxlQXR0ciwgIndpZHRoOjEwMCUiKTsKIAotICAgIGJv
ZHlFbGVtZW50LT5hcHBlbmRDaGlsZChtX3RhYmxlRWxlbWVudCwgSUdOT1JFX0VYQ0VQVElPTik7
CisgICAgYm9keUVsZW1lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZSh0YWJsZUVsZW1lbnQpLCBJ
R05PUkVfRVhDRVBUSU9OKTsKIAogICAgIGRvY3VtZW50KCktPnByb2Nlc3NWaWV3cG9ydCgid2lk
dGg9ZGV2aWNlLXdpZHRoIiwgVmlld3BvcnRBcmd1bWVudHM6OlZpZXdwb3J0TWV0YSk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKaW5kZXggNDMwMjEyYzFh
YjgwNzA5MTYzZTU0ZjUzZDFkYmMyZjdjYWRhOGIxZi4uNDhjYzliODQ4ZTU0MTdhYzc5ZmE2NTAx
OWU0ODcwNWUxNzEyN2EwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0
YWlsc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVt
ZW50LmNwcApAQCAtOTAsMTEgKzkwLDExIEBAIHByaXZhdGU6CiAKIFJlZjxEZXRhaWxzU3VtbWFy
eUVsZW1lbnQ+IERldGFpbHNTdW1tYXJ5RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVu
dCkKIHsKLSAgICBSZWZQdHI8SFRNTFN1bW1hcnlFbGVtZW50PiBzdW1tYXJ5ID0gSFRNTFN1bW1h
cnlFbGVtZW50OjpjcmVhdGUoc3VtbWFyeVRhZywgZG9jdW1lbnQpOworICAgIFJlZjxIVE1MU3Vt
bWFyeUVsZW1lbnQ+IHN1bW1hcnkgPSBIVE1MU3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZShzdW1tYXJ5
VGFnLCBkb2N1bWVudCk7CiAgICAgc3VtbWFyeS0+YXBwZW5kQ2hpbGQoVGV4dDo6Y3JlYXRlKGRv
Y3VtZW50LCBkZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKIAogICAgIFJlZjxEZXRhaWxzU3VtbWFyeUVsZW1lbnQ+IGRldGFpbHNTdW1tYXJ5ID0gYWRv
cHRSZWYoKm5ldyBEZXRhaWxzU3VtbWFyeUVsZW1lbnQoZG9jdW1lbnQpKTsKLSAgICBkZXRhaWxz
U3VtbWFyeS0+YXBwZW5kQ2hpbGQoc3VtbWFyeSk7CisgICAgZGV0YWlsc1N1bW1hcnktPmFwcGVu
ZENoaWxkKFdURjo6bW92ZShzdW1tYXJ5KSk7CiAgICAgcmV0dXJuIGRldGFpbHNTdW1tYXJ5Owog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IDUyMGNlMDNlNzBjYzdhZDc4
NmNiNTM3YTc3MzA5OTdmODYyM2MzNWUuLjA2ZDBhY2U5ZWY2NDRjNDdmNmFlNjI3YzViZTJhZjkw
MjNlZmJkOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC01ODQsOSArNTg0
LDkgQEAgdm9pZCBIVE1MRWxlbWVudDo6c2V0SW5uZXJUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwg
RXhjZXB0aW9uQ29kZSYgZWMpCiAKICAgICAvLyBBZGQgdGV4dCBub2RlcyBhbmQgPGJyPiBlbGVt
ZW50cy4KICAgICBlYyA9IDA7Ci0gICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50
ID0gdGV4dFRvRnJhZ21lbnQodGV4dCwgZWMpOworICAgIFJlZjxEb2N1bWVudEZyYWdtZW50PiBm
cmFnbWVudCA9IHRleHRUb0ZyYWdtZW50KHRleHQsIGVjKTsKICAgICBpZiAoIWVjKQotICAgICAg
ICByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQoKnRoaXMsIGZyYWdtZW50LnJlbGVhc2UoKSwg
ZWMpOworICAgICAgICByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQoKnRoaXMsIFdURjo6bW92
ZShmcmFnbWVudCksIGVjKTsKIH0KIAogdm9pZCBIVE1MRWxlbWVudDo6c2V0T3V0ZXJUZXh0KGNv
bnN0IFN0cmluZyYgdGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC02MDgsMjAgKzYwOCwxNiBA
QCB2b2lkIEhUTUxFbGVtZW50OjpzZXRPdXRlclRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBFeGNl
cHRpb25Db2RlJiBlYykKIAogICAgIFJlZlB0cjxOb2RlPiBwcmV2ID0gcHJldmlvdXNTaWJsaW5n
KCk7CiAgICAgUmVmUHRyPE5vZGU+IG5leHQgPSBuZXh0U2libGluZygpOwotICAgIFJlZlB0cjxO
b2RlPiBuZXdDaGlsZDsKICAgICBlYyA9IDA7CiAgICAgCiAgICAgLy8gQ29udmVydCB0ZXh0IHRv
IGZyYWdtZW50IHdpdGggPGJyPiB0YWdzIGluc3RlYWQgb2YgbGluZWJyZWFrcyBpZiBuZWVkZWQu
Ci0gICAgaWYgKHRleHQuY29udGFpbnMoJ1xyJykgfHwgdGV4dC5jb250YWlucygnXG4nKSkKLSAg
ICAgICAgbmV3Q2hpbGQgPSB0ZXh0VG9GcmFnbWVudCh0ZXh0LCBlYyk7Ci0gICAgZWxzZQotICAg
ICAgICBuZXdDaGlsZCA9IFRleHQ6OmNyZWF0ZShkb2N1bWVudCgpLCB0ZXh0KTsKKyAgICBSZWY8
Tm9kZT4gbmV3Q2hpbGQgPSB0ZXh0LmNvbnRhaW5zKCdccicpIHx8IHRleHQuY29udGFpbnMoJ1xu
JykgPyBSZWY8Tm9kZT4odGV4dFRvRnJhZ21lbnQodGV4dCwgZWMpKSA6IFJlZjxOb2RlPihUZXh0
OjpjcmVhdGUoZG9jdW1lbnQoKSwgdGV4dCkpOwogCiAgICAgaWYgKCFwYXJlbnROb2RlKCkpCiAg
ICAgICAgIGVjID0gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwogICAgIGlmIChlYykKICAgICAgICAg
cmV0dXJuOwotICAgIHBhcmVudC0+cmVwbGFjZUNoaWxkKG5ld0NoaWxkLnJlbGVhc2UoKSwgdGhp
cywgZWMpOworICAgIHBhcmVudC0+cmVwbGFjZUNoaWxkKFdURjo6bW92ZShuZXdDaGlsZCksICp0
aGlzLCBlYyk7CiAKICAgICBSZWZQdHI8Tm9kZT4gbm9kZSA9IG5leHQgPyBuZXh0LT5wcmV2aW91
c1NpYmxpbmcoKSA6IG51bGxwdHI7CiAgICAgaWYgKCFlYyAmJiBpczxUZXh0Pihub2RlLmdldCgp
KSkKQEAgLTYzMCw3ICs2MjYsNyBAQCB2b2lkIEhUTUxFbGVtZW50OjpzZXRPdXRlclRleHQoY29u
c3QgU3RyaW5nJiB0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgbWVyZ2VXaXRoTmV4
dFRleHROb2RlKGRvd25jYXN0PFRleHQ+KCpwcmV2KSwgZWMpOwogfQogCi1Ob2RlKiBIVE1MRWxl
bWVudDo6aW5zZXJ0QWRqYWNlbnQoY29uc3QgU3RyaW5nJiB3aGVyZSwgTm9kZSogbmV3Q2hpbGQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQorTm9kZSogSFRNTEVsZW1lbnQ6Omluc2VydEFkamFjZW50KGNv
bnN0IFN0cmluZyYgd2hlcmUsIFJlZjxOb2RlPiYmIG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBl
YykKIHsKICAgICAvLyBJbiBJbnRlcm5ldCBFeHBsb3JlciBpZiB0aGUgZWxlbWVudCBoYXMgbm8g
cGFyZW50IGFuZCB3aGVyZSBpcyAiYmVmb3JlQmVnaW4iIG9yICJhZnRlckVuZCIsCiAgICAgLy8g
YSBkb2N1bWVudCBmcmFnbWVudCBpcyBjcmVhdGVkIGFuZCB0aGUgZWxlbWVudHMgYXBwZW5kZWQg
aW4gdGhlIGNvcnJlY3Qgb3JkZXIuIFRoaXMgZG9jdW1lbnQKQEAgLTY0MSwxOCArNjM3LDE4IEBA
IE5vZGUqIEhUTUxFbGVtZW50OjppbnNlcnRBZGphY2VudChjb25zdCBTdHJpbmcmIHdoZXJlLCBO
b2RlKiBuZXdDaGlsZCwgRXhjZXB0aW9uCiAKICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2Uod2hl
cmUsICJiZWZvcmVCZWdpbiIpKSB7CiAgICAgICAgIENvbnRhaW5lck5vZGUqIHBhcmVudCA9IHRo
aXMtPnBhcmVudE5vZGUoKTsKLSAgICAgICAgcmV0dXJuIChwYXJlbnQgJiYgcGFyZW50LT5pbnNl
cnRCZWZvcmUobmV3Q2hpbGQsIHRoaXMsIGVjKSkgPyBuZXdDaGlsZCA6IG51bGxwdHI7CisgICAg
ICAgIHJldHVybiAocGFyZW50ICYmIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG5ld0NoaWxkLmNvcHlS
ZWYoKSwgdGhpcywgZWMpKSA/IG5ld0NoaWxkLnB0cigpIDogbnVsbHB0cjsKICAgICB9CiAKICAg
ICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2Uod2hlcmUsICJhZnRlckJlZ2luIikpCi0gICAgICAgIHJl
dHVybiBpbnNlcnRCZWZvcmUobmV3Q2hpbGQsIGZpcnN0Q2hpbGQoKSwgZWMpID8gbmV3Q2hpbGQg
OiBudWxscHRyOworICAgICAgICByZXR1cm4gaW5zZXJ0QmVmb3JlKG5ld0NoaWxkLmNvcHlSZWYo
KSwgZmlyc3RDaGlsZCgpLCBlYykgPyBuZXdDaGlsZC5wdHIoKSA6IG51bGxwdHI7CiAKICAgICBp
ZiAoZXF1YWxJZ25vcmluZ0Nhc2Uod2hlcmUsICJiZWZvcmVFbmQiKSkKLSAgICAgICAgcmV0dXJu
IGFwcGVuZENoaWxkKG5ld0NoaWxkLCBlYykgPyBuZXdDaGlsZCA6IG51bGxwdHI7CisgICAgICAg
IHJldHVybiBhcHBlbmRDaGlsZChuZXdDaGlsZC5jb3B5UmVmKCksIGVjKSA/IG5ld0NoaWxkLnB0
cigpIDogbnVsbHB0cjsKIAogICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh3aGVyZSwgImFmdGVy
RW5kIikpIHsKICAgICAgICAgQ29udGFpbmVyTm9kZSogcGFyZW50ID0gdGhpcy0+cGFyZW50Tm9k
ZSgpOwotICAgICAgICByZXR1cm4gKHBhcmVudCAmJiBwYXJlbnQtPmluc2VydEJlZm9yZShuZXdD
aGlsZCwgbmV4dFNpYmxpbmcoKSwgZWMpKSA/IG5ld0NoaWxkIDogbnVsbHB0cjsKKyAgICAgICAg
cmV0dXJuIChwYXJlbnQgJiYgcGFyZW50LT5pbnNlcnRCZWZvcmUobmV3Q2hpbGQuY29weVJlZigp
LCBuZXh0U2libGluZygpLCBlYykpID8gbmV3Q2hpbGQucHRyKCkgOiBudWxscHRyOwogICAgIH0K
ICAgICAKICAgICAvLyBJRSB0aHJvd3MgQ09NIEV4Y2VwdGlvbiBFX0lOVkFMSURBUkc7IHRoaXMg
aXMgdGhlIGJlc3QgRE9NIGV4Y2VwdGlvbiBhbHRlcm5hdGl2ZS4KQEAgLTY2OCw3ICs2NjQsNyBA
QCBFbGVtZW50KiBIVE1MRWxlbWVudDo6aW5zZXJ0QWRqYWNlbnRFbGVtZW50KGNvbnN0IFN0cmlu
ZyYgd2hlcmUsIEVsZW1lbnQqIG5ld0NoaQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9
CiAKLSAgICBOb2RlKiByZXR1cm5WYWx1ZSA9IGluc2VydEFkamFjZW50KHdoZXJlLCBuZXdDaGls
ZCwgZWMpOworICAgIE5vZGUqIHJldHVyblZhbHVlID0gaW5zZXJ0QWRqYWNlbnQod2hlcmUsICpu
ZXdDaGlsZCwgZWMpOwogICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFyZXR1
cm5WYWx1ZSB8fCBpczxFbGVtZW50PigqcmV0dXJuVmFsdWUpKTsKICAgICByZXR1cm4gZG93bmNh
c3Q8RWxlbWVudD4ocmV0dXJuVmFsdWUpOyAKIH0KQEAgLTY5OSwxMyArNjk1LDEyIEBAIHZvaWQg
SFRNTEVsZW1lbnQ6Omluc2VydEFkamFjZW50SFRNTChjb25zdCBTdHJpbmcmIHdoZXJlLCBjb25z
dCBTdHJpbmcmIG1hcmt1cCwKICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQg
PSBjcmVhdGVGcmFnbWVudEZvcklubmVyT3V0ZXJIVE1MKG1hcmt1cCwgY29udGV4dEVsZW1lbnQs
IEFsbG93U2NyaXB0aW5nQ29udGVudCwgZWMpOwogICAgIGlmICghZnJhZ21lbnQpCiAgICAgICAg
IHJldHVybjsKLSAgICBpbnNlcnRBZGphY2VudCh3aGVyZSwgZnJhZ21lbnQuZ2V0KCksIGVjKTsK
KyAgICBpbnNlcnRBZGphY2VudCh3aGVyZSwgZnJhZ21lbnQucmVsZWFzZU5vbk51bGwoKSwgZWMp
OwogfQogCiB2b2lkIEhUTUxFbGVtZW50OjppbnNlcnRBZGphY2VudFRleHQoY29uc3QgU3RyaW5n
JiB3aGVyZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBS
ZWZQdHI8VGV4dD4gdGV4dE5vZGUgPSBkb2N1bWVudCgpLmNyZWF0ZVRleHROb2RlKHRleHQpOwot
ICAgIGluc2VydEFkamFjZW50KHdoZXJlLCB0ZXh0Tm9kZS5nZXQoKSwgZWMpOworICAgIGluc2Vy
dEFkamFjZW50KHdoZXJlLCBkb2N1bWVudCgpLmNyZWF0ZVRleHROb2RlKHRleHQpLCBlYyk7CiB9
CiAKIHZvaWQgSFRNTEVsZW1lbnQ6OmFwcGx5QWxpZ25tZW50QXR0cmlidXRlVG9TdHlsZShjb25z
dCBBdG9taWNTdHJpbmcmIGFsaWdubWVudCwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5bGUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKaW5kZXggMzBlMzc3NWEwMDRlMzFiZWFlODM1Y2Y2
OTBjYjQwOWIxZGZlYjc3YS4uNzBkNDk2MWNlZDJkY2U5NmQ0NTU0ZWMxNjY2OTBkMGQ4NWMwNjNl
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaApAQCAtMTMwLDcgKzEzMCw3IEBAIHByaXZh
dGU6CiAKICAgICB2aXJ0dWFsIEhUTUxGb3JtRWxlbWVudCogdmlydHVhbEZvcm0oKSBjb25zdDsK
IAotICAgIE5vZGUqIGluc2VydEFkamFjZW50KGNvbnN0IFN0cmluZyYgd2hlcmUsIE5vZGUqIG5l
d0NoaWxkLCBFeGNlcHRpb25Db2RlJik7CisgICAgTm9kZSogaW5zZXJ0QWRqYWNlbnQoY29uc3Qg
U3RyaW5nJiB3aGVyZSwgUmVmPE5vZGU+JiYgbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmKTsKICAg
ICBSZWY8RG9jdW1lbnRGcmFnbWVudD4gdGV4dFRvRnJhZ21lbnQoY29uc3QgU3RyaW5nJiwgRXhj
ZXB0aW9uQ29kZSYpOwogCiAgICAgdm9pZCBkaXJBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IEF0b21p
Y1N0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKaW5kZXgg
YjJhMjc3YTU1OWJhMzVkMWYzOTU1ZjQyODNjN2M4MjkxMzRiMGEwNi4uYTRhNzNjYTZiNjA5N2Rj
NzhiZDY5ZjNiYjQxMjFlNGQyN2RlZDRiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFn
ZUVsZW1lbnQuY3BwCkBAIC01MDQsNyArNTA0LDcgQEAgdm9pZCBIVE1MSW1hZ2VFbGVtZW50Ojpj
cmVhdGVJbWFnZUNvbnRyb2xzKCkKICAgICBpZiAoIWltYWdlQ29udHJvbHMpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKS5hcHBlbmRDaGlsZChpbWFn
ZUNvbnRyb2xzKTsKKyAgICBlbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCkuYXBwZW5kQ2hpbGQo
aW1hZ2VDb250cm9scy5yZWxlYXNlTm9uTnVsbCgpKTsKIAogICAgIGF1dG8qIHJlbmRlck9iamVj
dCA9IHJlbmRlcmVyKCk7CiAgICAgaWYgKCFyZW5kZXJPYmplY3QpCkBAIC01MjEsNyArNTIxLDcg
QEAgdm9pZCBIVE1MSW1hZ2VFbGVtZW50OjpkZXN0cm95SW1hZ2VDb250cm9scygpCiAKICAgICBp
ZiAoTm9kZSogbm9kZSA9IHNoYWRvd1Jvb3QtPmZpcnN0Q2hpbGQoKSkgewogICAgICAgICBBU1NF
UlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihub2RlLT5pc0ltYWdlQ29udHJvbHNSb290RWxl
bWVudCgpKTsKLSAgICAgICAgc2hhZG93Um9vdC0+cmVtb3ZlQ2hpbGQobm9kZSk7CisgICAgICAg
IHNoYWRvd1Jvb3QtPnJlbW92ZUNoaWxkKCpub2RlKTsKICAgICB9CiAKICAgICBhdXRvKiByZW5k
ZXJPYmplY3QgPSByZW5kZXJlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MS2V5Z2VuRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVt
ZW50LmNwcAppbmRleCBlN2Q5MTQ4MjVjNWViODExNGQ5YjJlZWExZmRjZjAzMDI2YWEwYmEyLi40
YTYzYjAwYTRhNDEzNGI1OGNmMjQ1ZmViNjkyZjhhNDY2MTZiZjE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcApAQCAtNTgsNyArNTgsNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgfQogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgUmVmUHRyPEVsZW1lbnQ+IGNsb25lRWxl
bWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50
KSBvdmVycmlkZQorICAgIHZpcnR1YWwgUmVmPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRB
dHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50KSBvdmVycmlkZQog
ICAgIHsKICAgICAgICAgcmV0dXJuIGNyZWF0ZSh0YXJnZXREb2N1bWVudCk7CiAgICAgfQpAQCAt
NzMsMTQgKzczLDE0IEBAIGlubGluZSBIVE1MS2V5Z2VuRWxlbWVudDo6SFRNTEtleWdlbkVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lCiAgICAgVmVjdG9yPFN0cmlu
Zz4ga2V5czsKICAgICBnZXRTdXBwb3J0ZWRLZXlTaXplcyhrZXlzKTsKIAotICAgIFJlZlB0cjxI
VE1MU2VsZWN0RWxlbWVudD4gc2VsZWN0ID0gS2V5Z2VuU2VsZWN0RWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50KTsKKyAgICBSZWY8SFRNTFNlbGVjdEVsZW1lbnQ+IHNlbGVjdCA9IEtleWdlblNlbGVj
dEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBr
ZXlzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIFJlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gb3B0
aW9uID0gSFRNTE9wdGlvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgICAgIHNlbGVj
dC0+YXBwZW5kQ2hpbGQob3B0aW9uLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgUmVmPEhU
TUxPcHRpb25FbGVtZW50PiBvcHRpb24gPSBIVE1MT3B0aW9uRWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KTsKKyAgICAgICAgc2VsZWN0LT5hcHBlbmRDaGlsZChvcHRpb24uY29weVJlZigpLCBJR05P
UkVfRVhDRVBUSU9OKTsKICAgICAgICAgb3B0aW9uLT5hcHBlbmRDaGlsZChUZXh0OjpjcmVhdGUo
ZG9jdW1lbnQsIGtleXNbaV0pLCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICB9CiAKLSAgICBlbnN1
cmVVc2VyQWdlbnRTaGFkb3dSb290KCkuYXBwZW5kQ2hpbGQoc2VsZWN0LCBJR05PUkVfRVhDRVBU
SU9OKTsKKyAgICBlbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCkuYXBwZW5kQ2hpbGQoV1RGOjpt
b3ZlKHNlbGVjdCksIElHTk9SRV9FWENFUFRJT04pOwogfQogCiBSZWY8SFRNTEtleWdlbkVsZW1l
bnQ+IEhUTUxLZXlnZW5FbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcAppbmRleCAyMmIyZjM5ODFlMzk1MjM3OTNmNWUy
YjMxZTZjYzVkMjhiZmE3NzgwLi5lNWUzZGUwMzY4MzgxNTQ1ZWE3ODUwYzA4Zjk2YTdmMWJjMDc1
OTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAKQEAgLTIyOSwx
NiArMjI5LDE2IEBAIHZvaWQgSFRNTE1ldGVyRWxlbWVudDo6ZGlkQWRkVXNlckFnZW50U2hhZG93
Um9vdChTaGFkb3dSb290KiByb290KQogewogICAgIEFTU0VSVCghbV92YWx1ZSk7CiAKLSAgICBS
ZWZQdHI8TWV0ZXJJbm5lckVsZW1lbnQ+IGlubmVyID0gTWV0ZXJJbm5lckVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCgpKTsKLSAgICByb290LT5hcHBlbmRDaGlsZChpbm5lcik7CisgICAgUmVmPE1l
dGVySW5uZXJFbGVtZW50PiBpbm5lciA9IE1ldGVySW5uZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQoKSk7CisgICAgcm9vdC0+YXBwZW5kQ2hpbGQoaW5uZXIuY29weVJlZigpKTsKIAotICAgIFJl
ZlB0cjxNZXRlckJhckVsZW1lbnQ+IGJhciA9IE1ldGVyQmFyRWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KCkpOworICAgIFJlZjxNZXRlckJhckVsZW1lbnQ+IGJhciA9IE1ldGVyQmFyRWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50KCkpOwogICAgIG1fdmFsdWUgPSBNZXRlclZhbHVlRWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50KCkpOwogICAgIG1fdmFsdWUtPnNldFdpZHRoUGVyY2VudGFnZSgwKTsKICAg
ICBtX3ZhbHVlLT51cGRhdGVQc2V1ZG8oKTsKLSAgICBiYXItPmFwcGVuZENoaWxkKG1fdmFsdWUs
IEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIGJhci0+YXBwZW5kQ2hpbGQoKm1fdmFsdWUsIEFT
U0VSVF9OT19FWENFUFRJT04pOwogCi0gICAgaW5uZXItPmFwcGVuZENoaWxkKGJhciwgQVNTRVJU
X05PX0VYQ0VQVElPTik7CisgICAgaW5uZXItPmFwcGVuZENoaWxkKFdURjo6bW92ZShiYXIpLCBB
U1NFUlRfTk9fRVhDRVBUSU9OKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKaW5kZXggMmRmZmYyNjM1M2VmOTFmNDgxMGNlMTg3
NzcwNmFkYzk1MGZjMzZhZS4uZWQ5Y2FlYTE1YTYyMTMzODJjMjBkMWRmNjc0Y2FhOGUyYTlmMjJi
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKQEAgLTcxLDEy
ICs3MSwxMiBAQCBSZWZQdHI8SFRNTE9wdGlvbkVsZW1lbnQ+IEhUTUxPcHRpb25FbGVtZW50Ojpj
cmVhdGVGb3JKU0NvbnN0cnVjdG9yKERvY3VtZW50JiBkbwogewogICAgIFJlZlB0cjxIVE1MT3B0
aW9uRWxlbWVudD4gZWxlbWVudCA9IGFkb3B0UmVmKG5ldyBIVE1MT3B0aW9uRWxlbWVudChvcHRp
b25UYWcsIGRvY3VtZW50KSk7CiAKLSAgICBSZWZQdHI8VGV4dD4gdGV4dCA9IFRleHQ6OmNyZWF0
ZShkb2N1bWVudCwgZGF0YS5pc051bGwoKSA/ICIiIDogZGF0YSk7CisgICAgUmVmPFRleHQ+IHRl
eHQgPSBUZXh0OjpjcmVhdGUoZG9jdW1lbnQsIGRhdGEuaXNOdWxsKCkgPyAiIiA6IGRhdGEpOwog
CiAgICAgZWMgPSAwOwotICAgIGVsZW1lbnQtPmFwcGVuZENoaWxkKHRleHQucmVsZWFzZSgpLCBl
Yyk7CisgICAgZWxlbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHRleHQpLCBlYyk7CiAgICAg
aWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAg
ICBpZiAoIXZhbHVlLmlzTnVsbCgpKQogICAgICAgICBlbGVtZW50LT5zZXRWYWx1ZSh2YWx1ZSk7
CkBAIC04NCw3ICs4NCw3IEBAIFJlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gSFRNTE9wdGlvbkVs
ZW1lbnQ6OmNyZWF0ZUZvckpTQ29uc3RydWN0b3IoRG9jdW1lbnQmIGRvCiAgICAgICAgIGVsZW1l
bnQtPnNldEF0dHJpYnV0ZShzZWxlY3RlZEF0dHIsIGVtcHR5QXRvbSk7CiAgICAgZWxlbWVudC0+
c2V0U2VsZWN0ZWQoc2VsZWN0ZWQpOwogCi0gICAgcmV0dXJuIGVsZW1lbnQucmVsZWFzZSgpOwor
ICAgIHJldHVybiBlbGVtZW50OwogfQogCiBib29sIEhUTUxPcHRpb25FbGVtZW50Ojppc0ZvY3Vz
YWJsZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVz
c0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNw
cAppbmRleCA4N2YwZTM3MGNhMDJjM2FjOWJiMTQ2ZmI5YmQwNzZlYmI0YTQ4NTM1Li5kYjdkMDZh
OGI3OTMwNTIzZWFjNjljOTA3ZTQ3ZGM0ODI5NzMyYzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAKQEAgLTE0OSwxNiArMTQ5LDE2IEBAIHZvaWQgSFRN
TFByb2dyZXNzRWxlbWVudDo6ZGlkQWRkVXNlckFnZW50U2hhZG93Um9vdChTaGFkb3dSb290KiBy
b290KQogewogICAgIEFTU0VSVCghbV92YWx1ZSk7CiAKLSAgICBSZWZQdHI8UHJvZ3Jlc3NJbm5l
ckVsZW1lbnQ+IGlubmVyID0gUHJvZ3Jlc3NJbm5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgp
KTsKLSAgICByb290LT5hcHBlbmRDaGlsZChpbm5lcik7CisgICAgUmVmPFByb2dyZXNzSW5uZXJF
bGVtZW50PiBpbm5lciA9IFByb2dyZXNzSW5uZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7
CisgICAgcm9vdC0+YXBwZW5kQ2hpbGQoaW5uZXIuY29weVJlZigpKTsKIAotICAgIFJlZlB0cjxQ
cm9ncmVzc0JhckVsZW1lbnQ+IGJhciA9IFByb2dyZXNzQmFyRWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KCkpOwotICAgIFJlZlB0cjxQcm9ncmVzc1ZhbHVlRWxlbWVudD4gdmFsdWUgPSBQcm9ncmVz
c1ZhbHVlRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwotICAgIG1fdmFsdWUgPSB2YWx1ZS5n
ZXQoKTsKKyAgICBSZWY8UHJvZ3Jlc3NCYXJFbGVtZW50PiBiYXIgPSBQcm9ncmVzc0JhckVsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKKyAgICBSZWY8UHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ+IHZh
bHVlID0gUHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKKyAgICBtX3Zh
bHVlID0gdmFsdWUucHRyKCk7CiAgICAgbV92YWx1ZS0+c2V0V2lkdGhQZXJjZW50YWdlKEhUTUxQ
cm9ncmVzc0VsZW1lbnQ6OkluZGV0ZXJtaW5hdGVQb3NpdGlvbiAqIDEwMCk7Ci0gICAgYmFyLT5h
cHBlbmRDaGlsZChtX3ZhbHVlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBiYXItPmFwcGVu
ZENoaWxkKCptX3ZhbHVlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAotICAgIGlubmVyLT5hcHBl
bmRDaGlsZChiYXIsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIGlubmVyLT5hcHBlbmRDaGls
ZChXVEY6Om1vdmUoYmFyKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiB9CiAKIGJvb2wgSFRNTFBy
b2dyZXNzRWxlbWVudDo6c2hvdWxkQXBwZWFySW5kZXRlcm1pbmF0ZSgpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDY5NTExNDY2ODA0OTE0Yjdh
YjIwOWZiZTk2MWM1YmY4MzJlMTA3YTcuLmUxM2E1Y2RkY2NhMmNiM2I3NTZhOGQzYTU3ZTIzZjgw
YTliNDNlNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCkBA
IC0xNjksOSArMTY5LDkgQEAgdm9pZCBIVE1MU2NyaXB0RWxlbWVudDo6ZGlzcGF0Y2hMb2FkRXZl
bnQoKQogICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkubG9hZEV2
ZW50LCBmYWxzZSwgZmFsc2UpKTsKIH0KIAotUmVmUHRyPEVsZW1lbnQ+IEhUTUxTY3JpcHRFbGVt
ZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50JiB0
YXJnZXREb2N1bWVudCkKK1JlZjxFbGVtZW50PiBIVE1MU2NyaXB0RWxlbWVudDo6Y2xvbmVFbGVt
ZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MU2NyaXB0RWxlbWVudCh0YWdRTmFtZSgp
LCB0YXJnZXREb2N1bWVudCwgZmFsc2UsIGFscmVhZHlTdGFydGVkKCkpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBIVE1MU2NyaXB0RWxlbWVudCh0YWdRTmFtZSgpLCB0YXJnZXREb2N1bWVu
dCwgZmFsc2UsIGFscmVhZHlTdGFydGVkKCkpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU2NyaXB0RWxlbWVudC5oCmluZGV4IGUzOWMxMGNhNWU4NmMzNjZhNTM4ZDE3YzY2NDRiM2Ey
NGQxMzgyMDkuLjMxMmM2NjI2ZThiODMxNGU4NWUyZGY2ODdkYmYwOWYyYjJmZTM3YjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKQEAgLTY1LDcgKzY1LDcgQEAgcHJp
dmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaExvYWRFdmVudCgpIG92ZXJyaWRlOwog
Ci0gICAgdmlydHVhbCBSZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0
ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPEVsZW1l
bnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmKSBv
dmVycmlkZTsKIH07CiAKIH0gLy9uYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2Vs
ZWN0RWxlbWVudC5jcHAKaW5kZXggZWI3Mzk0NTM1ZDQ5NjM1MzQ2YzY1ODJkMTc1OTZkM2Q0M2Yw
Nzk1ZS4uNGYxMDQ1ODAxMzIyNzNmZGVkZjEyNTc4ZDRiMWJiNjEwZWNjYWYwNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKQEAgLTIyNyw3ICsyMjcsNyBAQCB2
b2lkIEhUTUxTZWxlY3RFbGVtZW50OjphZGQoSFRNTEVsZW1lbnQqIGVsZW1lbnQsIEhUTUxFbGVt
ZW50KiBiZWZvcmVFbGVtZW50LCBFeAogICAgIC8vIE1ha2Ugc3VyZSB0aGUgZWxlbWVudCBpcyBy
ZWYnZCBhbmQgZGVyZWYnZCBzbyB3ZSBkb24ndCBsZWFrIGl0LgogICAgIFJlZjxIVE1MRWxlbWVu
dD4gcHJvdGVjdE5ld0NoaWxkKCplbGVtZW50KTsKIAotICAgIGluc2VydEJlZm9yZShlbGVtZW50
LCBiZWZvcmVFbGVtZW50LCBlYyk7CisgICAgaW5zZXJ0QmVmb3JlKCplbGVtZW50LCBiZWZvcmVF
bGVtZW50LCBlYyk7CiAgICAgdXBkYXRlVmFsaWRpdHkoKTsKIH0KIApAQCAtNDg2LDEyICs0ODYs
MTIgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6c2V0TGVuZ3RoKHVuc2lnbmVkIG5ld0xlbiwg
RXhjZXB0aW9uQ29kZSYgZWMpCiAKICAgICAgICAgLy8gUmVtb3ZpbmcgY2hpbGRyZW4gZmlyZXMg
bXV0YXRpb24gZXZlbnRzLCB3aGljaCBtaWdodCBtdXRhdGUgdGhlIERPTSBmdXJ0aGVyLCBzbyB3
ZSBmaXJzdCBjb3B5IG91dCBhIGxpc3QKICAgICAgICAgLy8gb2YgZWxlbWVudHMgdGhhdCB3ZSBp
bnRlbmQgdG8gcmVtb3ZlIHRoZW4gYXR0ZW1wdCB0byByZW1vdmUgdGhlbSBvbmUgYXQgYSB0aW1l
LgotICAgICAgICBWZWN0b3I8UmVmUHRyPEVsZW1lbnQ+PiBpdGVtc1RvUmVtb3ZlOworICAgICAg
ICBWZWN0b3I8UmVmPEVsZW1lbnQ+PiBpdGVtc1RvUmVtb3ZlOwogICAgICAgICBzaXplX3Qgb3B0
aW9uSW5kZXggPSAwOwogICAgICAgICBmb3IgKGF1dG8mIGl0ZW0gOiBpdGVtcykgewogICAgICAg
ICAgICAgaWYgKGlzPEhUTUxPcHRpb25FbGVtZW50PigqaXRlbSkgJiYgb3B0aW9uSW5kZXgrKyA+
PSBuZXdMZW4pIHsKICAgICAgICAgICAgICAgICBBU1NFUlQoaXRlbS0+cGFyZW50Tm9kZSgpKTsK
LSAgICAgICAgICAgICAgICBpdGVtc1RvUmVtb3ZlLmFwcGVuZChpdGVtKTsKKyAgICAgICAgICAg
ICAgICBpdGVtc1RvUmVtb3ZlLmFwcGVuZCgqaXRlbSk7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAKaW5kZXggY2ZiNGRl
M2ZhMzY3ODAyYTMwMzFkNmFlOGU4NWZiMzhlZDRhYmIwNi4uMzVmZjcwODY0YWY4NjRkMzEzYzA2
OWJjMzZlN2QxMWVkMGZkMTExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGFibGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1l
bnQuY3BwCkBAIC04MSw3ICs4MSw3IEBAIHZvaWQgSFRNTFRhYmxlRWxlbWVudDo6c2V0Q2FwdGlv
bihQYXNzUmVmUHRyPEhUTUxUYWJsZUNhcHRpb25FbGVtZW50PiBuZXdDYXB0aW9uCiB7CiAgICAg
ZGVsZXRlQ2FwdGlvbigpOwogICAgIGlmIChuZXdDYXB0aW9uKQotICAgICAgICBpbnNlcnRCZWZv
cmUobmV3Q2FwdGlvbiwgZmlyc3RDaGlsZCgpLCBlYyk7CisgICAgICAgIGluc2VydEJlZm9yZSgq
bmV3Q2FwdGlvbiwgZmlyc3RDaGlsZCgpLCBlYyk7CiB9CiAKIEhUTUxUYWJsZVNlY3Rpb25FbGVt
ZW50KiBIVE1MVGFibGVFbGVtZW50Ojp0SGVhZCgpIGNvbnN0CkBAIC0xMTAsNyArMTEwLDcgQEAg
dm9pZCBIVE1MVGFibGVFbGVtZW50OjpzZXRUSGVhZChQYXNzUmVmUHRyPEhUTUxUYWJsZVNlY3Rp
b25FbGVtZW50PiBuZXdIZWFkLCBFeGMKICAgICAgICAgaWYgKGNoaWxkLT5pc0VsZW1lbnROb2Rl
KCkgJiYgIWNoaWxkLT5oYXNUYWdOYW1lKGNhcHRpb25UYWcpICYmICFjaGlsZC0+aGFzVGFnTmFt
ZShjb2xncm91cFRhZykpCiAgICAgICAgICAgICBicmVhazsKIAotICAgIGluc2VydEJlZm9yZShu
ZXdIZWFkLCBjaGlsZCwgZWMpOworICAgIGluc2VydEJlZm9yZSgqbmV3SGVhZCwgY2hpbGQsIGVj
KTsKIH0KIAogSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqIEhUTUxUYWJsZUVsZW1lbnQ6OnRGb290
KCkgY29uc3QKQEAgLTEzOSw3ICsxMzksNyBAQCB2b2lkIEhUTUxUYWJsZUVsZW1lbnQ6OnNldFRG
b290KFBhc3NSZWZQdHI8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+IG5ld0Zvb3QsIEV4YwogICAg
ICAgICBpZiAoY2hpbGQtPmlzRWxlbWVudE5vZGUoKSAmJiAhY2hpbGQtPmhhc1RhZ05hbWUoY2Fw
dGlvblRhZykgJiYgIWNoaWxkLT5oYXNUYWdOYW1lKGNvbGdyb3VwVGFnKSAmJiAhY2hpbGQtPmhh
c1RhZ05hbWUodGhlYWRUYWcpKQogICAgICAgICAgICAgYnJlYWs7CiAKLSAgICBpbnNlcnRCZWZv
cmUobmV3Rm9vdCwgY2hpbGQsIGVjKTsKKyAgICBpbnNlcnRCZWZvcmUoKm5ld0Zvb3QsIGNoaWxk
LCBlYyk7CiB9CiAKIFJlZlB0cjxIVE1MRWxlbWVudD4gSFRNTFRhYmxlRWxlbWVudDo6Y3JlYXRl
VEhlYWQoKQpAQCAtMTUzLDcgKzE1Myw4IEBAIFJlZlB0cjxIVE1MRWxlbWVudD4gSFRNTFRhYmxl
RWxlbWVudDo6Y3JlYXRlVEhlYWQoKQogCiB2b2lkIEhUTUxUYWJsZUVsZW1lbnQ6OmRlbGV0ZVRI
ZWFkKCkKIHsKLSAgICByZW1vdmVDaGlsZCh0SGVhZCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAg
ICBpZiAoYXV0byogdEhlYWQgPSB0aGlzLT50SGVhZCgpKQorICAgICAgICByZW1vdmVDaGlsZCgq
dEhlYWQsIElHTk9SRV9FWENFUFRJT04pOwogfQogCiBSZWZQdHI8SFRNTEVsZW1lbnQ+IEhUTUxU
YWJsZUVsZW1lbnQ6OmNyZWF0ZVRGb290KCkKQEAgLTE2NywxNSArMTY4LDE2IEBAIFJlZlB0cjxI
VE1MRWxlbWVudD4gSFRNTFRhYmxlRWxlbWVudDo6Y3JlYXRlVEZvb3QoKQogCiB2b2lkIEhUTUxU
YWJsZUVsZW1lbnQ6OmRlbGV0ZVRGb290KCkKIHsKLSAgICByZW1vdmVDaGlsZCh0Rm9vdCgpLCBJ
R05PUkVfRVhDRVBUSU9OKTsKKyAgICBpZiAoYXV0byogdEZvb3QgPSB0aGlzLT50Rm9vdCgpKQor
ICAgICAgICByZW1vdmVDaGlsZCgqdEZvb3QsIElHTk9SRV9FWENFUFRJT04pOwogfQogCiBSZWZQ
dHI8SFRNTEVsZW1lbnQ+IEhUTUxUYWJsZUVsZW1lbnQ6OmNyZWF0ZVRCb2R5KCkKIHsKLSAgICBS
ZWZQdHI8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+IGJvZHkgPSBIVE1MVGFibGVTZWN0aW9uRWxl
bWVudDo6Y3JlYXRlKHRib2R5VGFnLCBkb2N1bWVudCgpKTsKLSAgICBOb2RlKiByZWZlcmVuY2VF
bGVtZW50ID0gbGFzdEJvZHkoKSA/IGxhc3RCb2R5KCktPm5leHRTaWJsaW5nKCkgOiAwOwotICAg
IGluc2VydEJlZm9yZShib2R5LCByZWZlcmVuY2VFbGVtZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKLSAgICByZXR1cm4gYm9keTsKKyAgICBSZWY8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+IGJv
ZHkgPSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDo6Y3JlYXRlKHRib2R5VGFnLCBkb2N1bWVudCgp
KTsKKyAgICBOb2RlKiByZWZlcmVuY2VFbGVtZW50ID0gbGFzdEJvZHkoKSA/IGxhc3RCb2R5KCkt
Pm5leHRTaWJsaW5nKCkgOiBudWxscHRyOworICAgIGluc2VydEJlZm9yZShib2R5LmNvcHlSZWYo
KSwgcmVmZXJlbmNlRWxlbWVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgcmV0dXJuIFdU
Rjo6bW92ZShib2R5KTsKIH0KIAogUmVmUHRyPEhUTUxFbGVtZW50PiBIVE1MVGFibGVFbGVtZW50
OjpjcmVhdGVDYXB0aW9uKCkKQEAgLTE4OSw3ICsxOTEsOCBAQCBSZWZQdHI8SFRNTEVsZW1lbnQ+
IEhUTUxUYWJsZUVsZW1lbnQ6OmNyZWF0ZUNhcHRpb24oKQogCiB2b2lkIEhUTUxUYWJsZUVsZW1l
bnQ6OmRlbGV0ZUNhcHRpb24oKQogewotICAgIHJlbW92ZUNoaWxkKGNhcHRpb24oKSwgSUdOT1JF
X0VYQ0VQVElPTik7CisgICAgaWYgKGF1dG8qIGNhcHRpb24gPSB0aGlzLT5jYXB0aW9uKCkpCisg
ICAgICAgIHJlbW92ZUNoaWxkKCpjYXB0aW9uLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KIAogSFRN
TFRhYmxlU2VjdGlvbkVsZW1lbnQqIEhUTUxUYWJsZUVsZW1lbnQ6Omxhc3RCb2R5KCkgY29uc3QK
QEAgLTIzNCwyMiArMjM3LDIyIEBAIFJlZlB0cjxIVE1MRWxlbWVudD4gSFRNTFRhYmxlRWxlbWVu
dDo6aW5zZXJ0Um93KGludCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgZWxzZSB7CiAg
ICAgICAgIHBhcmVudCA9IGxhc3RCb2R5KCk7CiAgICAgICAgIGlmICghcGFyZW50KSB7Ci0gICAg
ICAgICAgICBSZWZQdHI8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+IG5ld0JvZHkgPSBIVE1MVGFi
bGVTZWN0aW9uRWxlbWVudDo6Y3JlYXRlKHRib2R5VGFnLCBkb2N1bWVudCgpKTsKLSAgICAgICAg
ICAgIFJlZlB0cjxIVE1MVGFibGVSb3dFbGVtZW50PiBuZXdSb3cgPSBIVE1MVGFibGVSb3dFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7Ci0gICAgICAgICAgICBuZXdCb2R5LT5hcHBlbmRDaGls
ZChuZXdSb3csIGVjKTsKLSAgICAgICAgICAgIGFwcGVuZENoaWxkKG5ld0JvZHkucmVsZWFzZSgp
LCBlYyk7Ci0gICAgICAgICAgICByZXR1cm4gbmV3Um93OworICAgICAgICAgICAgUmVmPEhUTUxU
YWJsZVNlY3Rpb25FbGVtZW50PiBuZXdCb2R5ID0gSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ6OmNy
ZWF0ZSh0Ym9keVRhZywgZG9jdW1lbnQoKSk7CisgICAgICAgICAgICBSZWY8SFRNTFRhYmxlUm93
RWxlbWVudD4gbmV3Um93ID0gSFRNTFRhYmxlUm93RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkp
OworICAgICAgICAgICAgbmV3Qm9keS0+YXBwZW5kQ2hpbGQobmV3Um93LmNvcHlSZWYoKSwgZWMp
OworICAgICAgICAgICAgYXBwZW5kQ2hpbGQoV1RGOjptb3ZlKG5ld0JvZHkpLCBlYyk7CisgICAg
ICAgICAgICByZXR1cm4gV1RGOjptb3ZlKG5ld1Jvdyk7CiAgICAgICAgIH0KICAgICB9CiAKLSAg
ICBSZWZQdHI8SFRNTFRhYmxlUm93RWxlbWVudD4gbmV3Um93ID0gSFRNTFRhYmxlUm93RWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50KCkpOwotICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG5ld1Jvdywg
cm93LmdldCgpLCBlYyk7Ci0gICAgcmV0dXJuIG5ld1JvdzsKKyAgICBSZWY8SFRNTFRhYmxlUm93
RWxlbWVudD4gbmV3Um93ID0gSFRNTFRhYmxlUm93RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkp
OworICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG5ld1Jvdy5jb3B5UmVmKCksIHJvdy5nZXQoKSwg
ZWMpOworICAgIHJldHVybiBXVEY6Om1vdmUobmV3Um93KTsKIH0KIAogdm9pZCBIVE1MVGFibGVF
bGVtZW50OjpkZWxldGVSb3coaW50IGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBI
VE1MVGFibGVSb3dFbGVtZW50KiByb3cgPSAwOworICAgIEhUTUxUYWJsZVJvd0VsZW1lbnQqIHJv
dyA9IG51bGxwdHI7CiAgICAgaWYgKGluZGV4ID09IC0xKQogICAgICAgICByb3cgPSBIVE1MVGFi
bGVSb3dzQ29sbGVjdGlvbjo6bGFzdFJvdygqdGhpcyk7CiAgICAgZWxzZSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmNwcAppbmRleCBjODcyNTlmNWVjYjk2ZDBh
YTYwNDhkNGQxNGFlOGI2MGY5M2I2OGI2Li45NWM2OTI5ZTAxMDNhZDkzZDFiMTAwMzFmM2UxMzY5
ZjkxNjBjZDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0Vs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5j
cHAKQEAgLTEyNSwyMSArMTI1LDIxIEBAIFJlZlB0cjxIVE1MRWxlbWVudD4gSFRNTFRhYmxlUm93
RWxlbWVudDo6aW5zZXJ0Q2VsbChpbnQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjCiAgICAgaW50
IG51bUNlbGxzID0gY2hpbGRyZW4tPmxlbmd0aCgpOwogICAgIGlmIChpbmRleCA8IC0xIHx8IGlu
ZGV4ID4gbnVtQ2VsbHMpIHsKICAgICAgICAgZWMgPSBJTkRFWF9TSVpFX0VSUjsKLSAgICAgICAg
cmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIFJlZlB0cjxI
VE1MVGFibGVDZWxsRWxlbWVudD4gY2VsbCA9IEhUTUxUYWJsZUNlbGxFbGVtZW50OjpjcmVhdGUo
dGRUYWcsIGRvY3VtZW50KCkpOworICAgIFJlZjxIVE1MVGFibGVDZWxsRWxlbWVudD4gY2VsbCA9
IEhUTUxUYWJsZUNlbGxFbGVtZW50OjpjcmVhdGUodGRUYWcsIGRvY3VtZW50KCkpOwogICAgIGlm
IChpbmRleCA8IDAgfHwgaW5kZXggPj0gbnVtQ2VsbHMpCi0gICAgICAgIGFwcGVuZENoaWxkKGNl
bGwsIGVjKTsKKyAgICAgICAgYXBwZW5kQ2hpbGQoY2VsbC5jb3B5UmVmKCksIGVjKTsKICAgICBl
bHNlIHsKICAgICAgICAgTm9kZSogbjsKICAgICAgICAgaWYgKGluZGV4IDwgMSkKICAgICAgICAg
ICAgIG4gPSBmaXJzdENoaWxkKCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG4gPSBjaGls
ZHJlbi0+aXRlbShpbmRleCk7Ci0gICAgICAgIGluc2VydEJlZm9yZShjZWxsLCBuLCBlYyk7Cisg
ICAgICAgIGluc2VydEJlZm9yZShjZWxsLmNvcHlSZWYoKSwgbiwgZWMpOwogICAgIH0KLSAgICBy
ZXR1cm4gY2VsbDsKKyAgICByZXR1cm4gV1RGOjptb3ZlKGNlbGwpOwogfQogCiB2b2lkIEhUTUxU
YWJsZVJvd0VsZW1lbnQ6OmRlbGV0ZUNlbGwoaW50IGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykK
QEAgLTE1MCw3ICsxNTAsNyBAQCB2b2lkIEhUTUxUYWJsZVJvd0VsZW1lbnQ6OmRlbGV0ZUNlbGwo
aW50IGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgaW5kZXggPSBudW1DZWxscy0x
OwogICAgIGlmIChpbmRleCA+PSAwICYmIGluZGV4IDwgbnVtQ2VsbHMpIHsKICAgICAgICAgUmVm
UHRyPE5vZGU+IGNlbGwgPSBjaGlsZHJlbi0+aXRlbShpbmRleCk7Ci0gICAgICAgIEhUTUxFbGVt
ZW50OjpyZW1vdmVDaGlsZChjZWxsLmdldCgpLCBlYyk7CisgICAgICAgIEhUTUxFbGVtZW50Ojpy
ZW1vdmVDaGlsZCgqY2VsbCwgZWMpOwogICAgIH0gZWxzZQogICAgICAgICBlYyA9IElOREVYX1NJ
WkVfRVJSOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0
aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVt
ZW50LmNwcAppbmRleCA5ZTQ1MzE2ZjhmM2Y0ZmM2ZGE4ZTNkY2RiMWIzZTRlMmRkOTI3ZDg2Li5m
ZDAyYzYwMmY5NDZjZjM0ZDEwZTgzYzIyMjI0OGZhMzg4MDEyM2VhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcApAQCAtNjgsMTQgKzY4LDE0
IEBAIFJlZlB0cjxIVE1MRWxlbWVudD4gSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ6Omluc2VydFJv
dyhpbnQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmCiAgICAgZWxzZSB7CiAgICAgICAgIHJvdyA9IEhU
TUxUYWJsZVJvd0VsZW1lbnQ6OmNyZWF0ZSh0clRhZywgZG9jdW1lbnQoKSk7CiAgICAgICAgIGlm
IChudW1Sb3dzID09IGluZGV4IHx8IGluZGV4ID09IC0xKQotICAgICAgICAgICAgYXBwZW5kQ2hp
bGQocm93LCBlYyk7CisgICAgICAgICAgICBhcHBlbmRDaGlsZCgqcm93LCBlYyk7CiAgICAgICAg
IGVsc2UgewogICAgICAgICAgICAgTm9kZSogbjsKICAgICAgICAgICAgIGlmIChpbmRleCA8IDEp
CiAgICAgICAgICAgICAgICAgbiA9IGZpcnN0Q2hpbGQoKTsKICAgICAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgICAgICBuID0gY2hpbGRyZW4tPml0ZW0oaW5kZXgpOwotICAgICAgICAgICAgaW5z
ZXJ0QmVmb3JlKHJvdywgbiwgZWMpOworICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKCpyb3csIG4s
IGVjKTsKICAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4gcm93OwpAQCAtODksNyArODksNyBA
QCB2b2lkIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50OjpkZWxldGVSb3coaW50IGluZGV4LCBFeGNl
cHRpb25Db2RlJiBlYykKICAgICAgICAgaW5kZXggPSBudW1Sb3dzIC0gMTsKICAgICBpZiAoaW5k
ZXggPj0gMCAmJiBpbmRleCA8IG51bVJvd3MpIHsKICAgICAgICAgUmVmUHRyPE5vZGU+IHJvdyA9
IGNoaWxkcmVuLT5pdGVtKGluZGV4KTsKLSAgICAgICAgSFRNTEVsZW1lbnQ6OnJlbW92ZUNoaWxk
KHJvdy5nZXQoKSwgZWMpOworICAgICAgICBIVE1MRWxlbWVudDo6cmVtb3ZlQ2hpbGQoKnJvdywg
ZWMpOwogICAgIH0gZWxzZQogICAgICAgICBlYyA9IElOREVYX1NJWkVfRVJSOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAKaW5kZXggYWVjMzAxMGY2ZDZj
ZmUxYmVkYjMyYzQ5NzA5YWVjYWQwYjZkN2Y3Mi4uMmUxZWRiMjM2YzA3OGVlYjZkZWJlNmU5ZTU2
MTFlNzE3Y2RjODM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxh
dGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1l
bnQuY3BwCkBAIC02OCw3ICs2OCw3IEBAIERvY3VtZW50RnJhZ21lbnQqIEhUTUxUZW1wbGF0ZUVs
ZW1lbnQ6OmNvbnRlbnQoKSBjb25zdAogICAgIHJldHVybiBtX2NvbnRlbnQuZ2V0KCk7CiB9CiAK
LVJlZlB0cjxOb2RlPiBIVE1MVGVtcGxhdGVFbGVtZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1
bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24gdHlwZSkKK1JlZjxOb2RlPiBI
VE1MVGVtcGxhdGVFbGVtZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9j
dW1lbnQsIENsb25pbmdPcGVyYXRpb24gdHlwZSkKIHsKICAgICBSZWZQdHI8Tm9kZT4gY2xvbmU7
CiAgICAgc3dpdGNoICh0eXBlKSB7CkBAIC04Miw4ICs4Miw4IEBAIFJlZlB0cjxOb2RlPiBIVE1M
VGVtcGxhdGVFbGVtZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1l
bnQsIENsCiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBpZiAobV9jb250ZW50KQotICAgICAg
ICBjb250ZW50KCktPmNsb25lQ2hpbGROb2Rlcyhkb3duY2FzdDxIVE1MVGVtcGxhdGVFbGVtZW50
PihjbG9uZS5nZXQoKSktPmNvbnRlbnQoKSk7Ci0gICAgcmV0dXJuIGNsb25lLnJlbGVhc2UoKTsK
KyAgICAgICAgY29udGVudCgpLT5jbG9uZUNoaWxkTm9kZXMoKmRvd25jYXN0PEhUTUxUZW1wbGF0
ZUVsZW1lbnQ+KGNsb25lLmdldCgpKS0+Y29udGVudCgpKTsKKyAgICByZXR1cm4gY2xvbmUucmVs
ZWFzZU5vbk51bGwoKTsKIH0KIAogdm9pZCBIVE1MVGVtcGxhdGVFbGVtZW50OjpkaWRNb3ZlVG9O
ZXdEb2N1bWVudChEb2N1bWVudCogb2xkRG9jdW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRlbXBsYXRlRWxlbWVudC5oCmluZGV4IDc2N2YyYTE4NGVhODUzN2RiYzM2NDQ1ZGFiODJjODVl
MDA1ZjA3NGIuLmQxZmE4NjQwNjlkY2I3NTA5YzlmMTg3NzBkYWI1MmYxZTg1NmJkMTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oCkBAIC01MCw3ICs1MCw3IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTFRlbXBsYXRlRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1YWwgUmVmUHRyPE5vZGU+IGNsb25lTm9k
ZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0
aW9uKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9j
dW1lbnQqIG9sZERvY3VtZW50KSBvdmVycmlkZTsKIAogICAgIG11dGFibGUgUmVmUHRyPFRlbXBs
YXRlQ29udGVudERvY3VtZW50RnJhZ21lbnQ+IG1fY29udGVudDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCmluZGV4IDkzOTI5MTE1NTA5MjYxNzdlYjA2ZmM0
MjFlNWEyZDA5ZDdhOTIxZTYuLmEyZGU3MzBjNWU3YzlkMWU1YzIwZDkwYjJkNDIzYzI4ZWU0ZGM1
ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcApAQCAt
NDA2LDkgKzQwNiw5IEBAIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6c2V0RGVmYXVsdFZhbHVl
KGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlKQogICAgIFJlZjxIVE1MVGV4dEFyZWFFbGVtZW50
PiBwcm90ZWN0RnJvbU11dGF0aW9uRXZlbnRzKCp0aGlzKTsKIAogICAgIC8vIFRvIHByZXNlcnZl
IGNvbW1lbnRzLCByZW1vdmUgb25seSB0aGUgdGV4dCBub2RlcywgdGhlbiBhZGQgYSBzaW5nbGUg
dGV4dCBub2RlLgotICAgIFZlY3RvcjxSZWZQdHI8VGV4dD4+IHRleHROb2RlczsKKyAgICBWZWN0
b3I8UmVmPFRleHQ+PiB0ZXh0Tm9kZXM7CiAgICAgZm9yIChUZXh0KiB0ZXh0Tm9kZSA9IFRleHRO
b2RlVHJhdmVyc2FsOjpmaXJzdENoaWxkKCp0aGlzKTsgdGV4dE5vZGU7IHRleHROb2RlID0gVGV4
dE5vZGVUcmF2ZXJzYWw6Om5leHRTaWJsaW5nKCp0ZXh0Tm9kZSkpCi0gICAgICAgIHRleHROb2Rl
cy5hcHBlbmQodGV4dE5vZGUpOworICAgICAgICB0ZXh0Tm9kZXMuYXBwZW5kKCp0ZXh0Tm9kZSk7
CiAKICAgICBzaXplX3Qgc2l6ZSA9IHRleHROb2Rlcy5zaXplKCk7CiAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBzaXplOyArK2kpCkBAIC01MjMsOCArNTIzLDggQEAgdm9pZCBIVE1MVGV4dEFy
ZWFFbGVtZW50Ojp1cGRhdGVQbGFjZWhvbGRlclRleHQoKQogICAgIFN0cmluZyBwbGFjZWhvbGRl
clRleHQgPSBzdHJpcHBlZFBsYWNlaG9sZGVyKCk7CiAgICAgaWYgKHBsYWNlaG9sZGVyVGV4dC5p
c0VtcHR5KCkpIHsKICAgICAgICAgaWYgKG1fcGxhY2Vob2xkZXIpIHsKLSAgICAgICAgICAgIHVz
ZXJBZ2VudFNoYWRvd1Jvb3QoKS0+cmVtb3ZlQ2hpbGQobV9wbGFjZWhvbGRlciwgQVNTRVJUX05P
X0VYQ0VQVElPTik7Ci0gICAgICAgICAgICBtX3BsYWNlaG9sZGVyID0gMDsKKyAgICAgICAgICAg
IHVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+cmVtb3ZlQ2hpbGQoKm1fcGxhY2Vob2xkZXIsIEFTU0VS
VF9OT19FWENFUFRJT04pOworICAgICAgICAgICAgbV9wbGFjZWhvbGRlciA9IG51bGxwdHI7CiAg
ICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTUzMyw3ICs1MzMsNyBAQCB2b2lk
IEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnVwZGF0ZVBsYWNlaG9sZGVyVGV4dCgpCiAgICAgICAgIG1f
cGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlci5nZXQoKTsKICAgICAgICAgbV9wbGFjZWhvbGRlci0+
c2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAgICAgbV9wbGFjZWhvbGRlci0+
c2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eURpc3BsYXksIGlzUGxhY2Vob2xkZXJW
aXNpYmxlKCkgPyBDU1NWYWx1ZUJsb2NrIDogQ1NTVmFsdWVOb25lLCB0cnVlKTsKLSAgICAgICAg
dXNlckFnZW50U2hhZG93Um9vdCgpLT5pbnNlcnRCZWZvcmUobV9wbGFjZWhvbGRlciwgaW5uZXJU
ZXh0RWxlbWVudCgpLT5uZXh0U2libGluZygpKTsKKyAgICAgICAgdXNlckFnZW50U2hhZG93Um9v
dCgpLT5pbnNlcnRCZWZvcmUoKm1fcGxhY2Vob2xkZXIsIGlubmVyVGV4dEVsZW1lbnQoKS0+bmV4
dFNpYmxpbmcoKSk7CiAgICAgfQogICAgIG1fcGxhY2Vob2xkZXItPnNldElubmVyVGV4dChwbGFj
ZWhvbGRlclRleHQsIEFTU0VSVF9OT19FWENFUFRJT04pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9JbWFnZURvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1h
Z2VEb2N1bWVudC5jcHAKaW5kZXggODFiNWVlZWQ5NTUxYmZiNmUzMzNkNGMxZDliNzk2Y2Q3OWQ2
MWZjYy4uMDNkYjM3OTc3YjBmZTFhYTg3ZDZkYTY5NGMyYjMzNjE2MTdiMTk3NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZURvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0ltYWdlRG9jdW1lbnQuY3BwCkBAIC05Miw3ICs5Miw3IEBAIHByaXZhdGU6CiAK
IGNsYXNzIEltYWdlRG9jdW1lbnRFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxJbWFnZUVsZW1l
bnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8SW1hZ2VEb2N1bWVudEVsZW1lbnQ+IGNy
ZWF0ZShJbWFnZURvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxJbWFnZURvY3VtZW50RWxlbWVu
dD4gY3JlYXRlKEltYWdlRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICBJbWFnZURvY3VtZW50
RWxlbWVudChJbWFnZURvY3VtZW50JiBkb2N1bWVudCkKQEAgLTEwNyw5ICsxMDcsOSBAQCBwcml2
YXRlOgogICAgIEltYWdlRG9jdW1lbnQqIG1faW1hZ2VEb2N1bWVudDsKIH07CiAKLWlubGluZSBS
ZWZQdHI8SW1hZ2VEb2N1bWVudEVsZW1lbnQ+IEltYWdlRG9jdW1lbnRFbGVtZW50OjpjcmVhdGUo
SW1hZ2VEb2N1bWVudCYgZG9jdW1lbnQpCitpbmxpbmUgUmVmPEltYWdlRG9jdW1lbnRFbGVtZW50
PiBJbWFnZURvY3VtZW50RWxlbWVudDo6Y3JlYXRlKEltYWdlRG9jdW1lbnQmIGRvY3VtZW50KQog
ewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW1hZ2VEb2N1bWVudEVsZW1lbnQoZG9jdW1lbnQp
KTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbWFnZURvY3VtZW50RWxlbWVudChkb2N1bWVu
dCkpOwogfQogCiAvLyAtLS0tLS0tLQpAQCAtMjEwLDE5ICsyMTAsMTkgQEAgUmVmPERvY3VtZW50
UGFyc2VyPiBJbWFnZURvY3VtZW50OjpjcmVhdGVQYXJzZXIoKQogCiB2b2lkIEltYWdlRG9jdW1l
bnQ6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCkKIHsKLSAgICBSZWZQdHI8RWxlbWVudD4gcm9v
dEVsZW1lbnQgPSBEb2N1bWVudDo6Y3JlYXRlRWxlbWVudChodG1sVGFnLCBmYWxzZSk7Ci0gICAg
YXBwZW5kQ2hpbGQocm9vdEVsZW1lbnQpOwotICAgIGRvd25jYXN0PEhUTUxIdG1sRWxlbWVudD4o
KnJvb3RFbGVtZW50KS5pbnNlcnRlZEJ5UGFyc2VyKCk7CisgICAgUmVmPEVsZW1lbnQ+IHJvb3RF
bGVtZW50ID0gRG9jdW1lbnQ6OmNyZWF0ZUVsZW1lbnQoaHRtbFRhZywgZmFsc2UpOworICAgIGFw
cGVuZENoaWxkKHJvb3RFbGVtZW50LmNvcHlSZWYoKSk7CisgICAgZG93bmNhc3Q8SFRNTEh0bWxF
bGVtZW50Pihyb290RWxlbWVudC5nZXQoKSkuaW5zZXJ0ZWRCeVBhcnNlcigpOwogCiAgICAgZnJh
bWUoKS0+aW5qZWN0VXNlclNjcmlwdHMoSW5qZWN0QXREb2N1bWVudFN0YXJ0KTsKIAotICAgIFJl
ZlB0cjxFbGVtZW50PiBib2R5ID0gRG9jdW1lbnQ6OmNyZWF0ZUVsZW1lbnQoYm9keVRhZywgZmFs
c2UpOworICAgIFJlZjxFbGVtZW50PiBib2R5ID0gRG9jdW1lbnQ6OmNyZWF0ZUVsZW1lbnQoYm9k
eVRhZywgZmFsc2UpOwogICAgIGJvZHktPnNldEF0dHJpYnV0ZShzdHlsZUF0dHIsICJtYXJnaW46
IDBweCIpOwogICAgIGlmIChNSU1FVHlwZVJlZ2lzdHJ5Ojppc1BERk1JTUVUeXBlKGRvY3VtZW50
KCkubG9hZGVyKCktPnJlc3BvbnNlTUlNRVR5cGUoKSkpCi0gICAgICAgIGRvd25jYXN0PEhUTUxC
b2R5RWxlbWVudD4oKmJvZHkpLnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlCYWNr
Z3JvdW5kQ29sb3IsICJ3aGl0ZSIsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfSURFTlQpOwotICAg
IHJvb3RFbGVtZW50LT5hcHBlbmRDaGlsZChib2R5KTsKKyAgICAgICAgZG93bmNhc3Q8SFRNTEJv
ZHlFbGVtZW50Pihib2R5LmdldCgpKS5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5
QmFja2dyb3VuZENvbG9yLCAid2hpdGUiLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0lERU5UKTsK
KyAgICByb290RWxlbWVudC0+YXBwZW5kQ2hpbGQoYm9keS5jb3B5UmVmKCkpOwogICAgIAotICAg
IFJlZlB0cjxJbWFnZURvY3VtZW50RWxlbWVudD4gaW1hZ2VFbGVtZW50ID0gSW1hZ2VEb2N1bWVu
dEVsZW1lbnQ6OmNyZWF0ZSgqdGhpcyk7CisgICAgUmVmPEltYWdlRG9jdW1lbnRFbGVtZW50PiBp
bWFnZUVsZW1lbnQgPSBJbWFnZURvY3VtZW50RWxlbWVudDo6Y3JlYXRlKCp0aGlzKTsKICAgICBp
ZiAobV9zaG91bGRTaHJpbmtJbWFnZSkKICAgICAgICAgaW1hZ2VFbGVtZW50LT5zZXRBdHRyaWJ1
dGUoc3R5bGVBdHRyLCAiLXdlYmtpdC11c2VyLXNlbGVjdDpub25lOyBkaXNwbGF5OmJsb2NrOyBt
YXJnaW46YXV0bzsiKTsKICAgICBlbHNlCkBAIC0yMzAsNyArMjMwLDcgQEAgdm9pZCBJbWFnZURv
Y3VtZW50OjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCiAgICAgaW1hZ2VFbGVtZW50LT5zZXRM
b2FkTWFudWFsbHkodHJ1ZSk7CiAgICAgaW1hZ2VFbGVtZW50LT5zZXRTcmModXJsKCkuc3RyaW5n
KCkpOwogICAgIGltYWdlRWxlbWVudC0+Y2FjaGVkSW1hZ2UoKS0+c2V0UmVzcG9uc2UobG9hZGVy
KCktPnJlc3BvbnNlKCkpOwotICAgIGJvZHktPmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7Cisg
ICAgYm9keS0+YXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50LmNvcHlSZWYoKSk7CiAgICAgCiAgICAg
aWYgKG1fc2hvdWxkU2hyaW5rSW1hZ2UpIHsKICNpZiBQTEFURk9STShJT1MpCkBAIC0yNDQsNyAr
MjQ0LDcgQEAgdm9pZCBJbWFnZURvY3VtZW50OjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCiAj
ZW5kaWYKICAgICB9CiAKLSAgICBtX2ltYWdlRWxlbWVudCA9IGltYWdlRWxlbWVudC5nZXQoKTsK
KyAgICBtX2ltYWdlRWxlbWVudCA9IGltYWdlRWxlbWVudC5wdHIoKTsKIH0KIAogdm9pZCBJbWFn
ZURvY3VtZW50OjppbWFnZVVwZGF0ZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9NZWRpYURvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5j
cHAKaW5kZXggMTg1YWJhODM0MDNjZTgyMmM3NzZlZTBjMjhkYmE3MzAwMTkyOTk5Yi4uZDc2MjQ1
MmMyNTBlOThmOTZjMWMzNTUwZmFlMTgxZjg1ZTAyYjVhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01l
ZGlhRG9jdW1lbnQuY3BwCkBAIC03OCwzMCArNzgsMzAgQEAgcHJpdmF0ZToKICAgICAKIHZvaWQg
TWVkaWFEb2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKQogewotICAgIFJl
ZlB0cjxFbGVtZW50PiByb290RWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoaHRt
bFRhZywgZmFsc2UpOwotICAgIGRvY3VtZW50KCktPmFwcGVuZENoaWxkKHJvb3RFbGVtZW50LCBJ
R05PUkVfRVhDRVBUSU9OKTsKLSAgICBkb2N1bWVudCgpLT5zZXRDU1NUYXJnZXQocm9vdEVsZW1l
bnQuZ2V0KCkpOwotICAgIGRvd25jYXN0PEhUTUxIdG1sRWxlbWVudD4oKnJvb3RFbGVtZW50KS5p
bnNlcnRlZEJ5UGFyc2VyKCk7CisgICAgUmVmPEVsZW1lbnQ+IHJvb3RFbGVtZW50ID0gZG9jdW1l
bnQoKS0+Y3JlYXRlRWxlbWVudChodG1sVGFnLCBmYWxzZSk7CisgICAgZG9jdW1lbnQoKS0+YXBw
ZW5kQ2hpbGQocm9vdEVsZW1lbnQuY29weVJlZigpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBk
b2N1bWVudCgpLT5zZXRDU1NUYXJnZXQocm9vdEVsZW1lbnQucHRyKCkpOworICAgIGRvd25jYXN0
PEhUTUxIdG1sRWxlbWVudD4ocm9vdEVsZW1lbnQuZ2V0KCkpLmluc2VydGVkQnlQYXJzZXIoKTsK
IAogICAgIGlmIChkb2N1bWVudCgpLT5mcmFtZSgpKQogICAgICAgICBkb2N1bWVudCgpLT5mcmFt
ZSgpLT5pbmplY3RVc2VyU2NyaXB0cyhJbmplY3RBdERvY3VtZW50U3RhcnQpOwogCiAjaWYgUExB
VEZPUk0oSU9TKQotICAgIFJlZlB0cjxFbGVtZW50PiBoZWFkRWxlbWVudCA9IGRvY3VtZW50KCkt
PmNyZWF0ZUVsZW1lbnQoaGVhZFRhZywgZmFsc2UpOwotICAgIHJvb3RFbGVtZW50LT5hcHBlbmRD
aGlsZChoZWFkRWxlbWVudCwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgUmVmPEVsZW1lbnQ+IGhl
YWRFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChoZWFkVGFnLCBmYWxzZSk7Cisg
ICAgcm9vdEVsZW1lbnQtPmFwcGVuZENoaWxkKGhlYWRFbGVtZW50LmNvcHlSZWYoKSwgSUdOT1JF
X0VYQ0VQVElPTik7CiAKLSAgICBSZWZQdHI8RWxlbWVudD4gbWV0YUVsZW1lbnQgPSBkb2N1bWVu
dCgpLT5jcmVhdGVFbGVtZW50KG1ldGFUYWcsIGZhbHNlKTsKKyAgICBSZWY8RWxlbWVudD4gbWV0
YUVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KG1ldGFUYWcsIGZhbHNlKTsKICAg
ICBtZXRhRWxlbWVudC0+c2V0QXR0cmlidXRlKG5hbWVBdHRyLCAidmlld3BvcnQiKTsKICAgICBt
ZXRhRWxlbWVudC0+c2V0QXR0cmlidXRlKGNvbnRlbnRBdHRyLCAid2lkdGg9ZGV2aWNlLXdpZHRo
LGluaXRpYWwtc2NhbGU9MSx1c2VyLXNjYWxhYmxlPW5vIik7Ci0gICAgaGVhZEVsZW1lbnQtPmFw
cGVuZENoaWxkKG1ldGFFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBoZWFkRWxlbWVu
dC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKG1ldGFFbGVtZW50KSwgSUdOT1JFX0VYQ0VQVElPTik7
CiAjZW5kaWYKIAotICAgIFJlZlB0cjxFbGVtZW50PiBib2R5ID0gZG9jdW1lbnQoKS0+Y3JlYXRl
RWxlbWVudChib2R5VGFnLCBmYWxzZSk7Ci0gICAgcm9vdEVsZW1lbnQtPmFwcGVuZENoaWxkKGJv
ZHksIElHTk9SRV9FWENFUFRJT04pOworICAgIFJlZjxFbGVtZW50PiBib2R5ID0gZG9jdW1lbnQo
KS0+Y3JlYXRlRWxlbWVudChib2R5VGFnLCBmYWxzZSk7CisgICAgcm9vdEVsZW1lbnQtPmFwcGVu
ZENoaWxkKGJvZHkuY29weVJlZigpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIFJlZlB0cjxF
bGVtZW50PiBtZWRpYUVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KHZpZGVvVGFn
LCBmYWxzZSk7CisgICAgUmVmPEVsZW1lbnQ+IG1lZGlhRWxlbWVudCA9IGRvY3VtZW50KCktPmNy
ZWF0ZUVsZW1lbnQodmlkZW9UYWcsIGZhbHNlKTsKIAotICAgIG1fbWVkaWFFbGVtZW50ID0gZG93
bmNhc3Q8SFRNTFZpZGVvRWxlbWVudD4obWVkaWFFbGVtZW50LmdldCgpKTsKKyAgICBtX21lZGlh
RWxlbWVudCA9IGRvd25jYXN0PEhUTUxWaWRlb0VsZW1lbnQ+KG1lZGlhRWxlbWVudC5wdHIoKSk7
CiAgICAgbV9tZWRpYUVsZW1lbnQtPnNldEF0dHJpYnV0ZShjb250cm9sc0F0dHIsIGVtcHR5QXRv
bSk7CiAgICAgbV9tZWRpYUVsZW1lbnQtPnNldEF0dHJpYnV0ZShhdXRvcGxheUF0dHIsIGVtcHR5
QXRvbSk7CiAKQEAgLTExNCwxNSArMTE0LDE1IEBAIHZvaWQgTWVkaWFEb2N1bWVudFBhcnNlcjo6
Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKQogI2VuZGlmCiAgICAgbV9tZWRpYUVsZW1lbnQtPnNl
dEF0dHJpYnV0ZShzdHlsZUF0dHIsIGVsZW1lbnRTdHlsZS50b1N0cmluZygpKTsKIAotICAgIFJl
ZlB0cjxFbGVtZW50PiBzb3VyY2VFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChz
b3VyY2VUYWcsIGZhbHNlKTsKLSAgICBIVE1MU291cmNlRWxlbWVudCYgc291cmNlID0gZG93bmNh
c3Q8SFRNTFNvdXJjZUVsZW1lbnQ+KCpzb3VyY2VFbGVtZW50KTsKKyAgICBSZWY8RWxlbWVudD4g
c291cmNlRWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoc291cmNlVGFnLCBmYWxz
ZSk7CisgICAgSFRNTFNvdXJjZUVsZW1lbnQmIHNvdXJjZSA9IGRvd25jYXN0PEhUTUxTb3VyY2VF
bGVtZW50Pihzb3VyY2VFbGVtZW50LmdldCgpKTsKICAgICBzb3VyY2Uuc2V0U3JjKGRvY3VtZW50
KCktPnVybCgpKTsKIAogICAgIGlmIChEb2N1bWVudExvYWRlciogbG9hZGVyID0gZG9jdW1lbnQo
KS0+bG9hZGVyKCkpCiAgICAgICAgIHNvdXJjZS5zZXRUeXBlKGxvYWRlci0+cmVzcG9uc2VNSU1F
VHlwZSgpKTsKIAotICAgIG1fbWVkaWFFbGVtZW50LT5hcHBlbmRDaGlsZChzb3VyY2VFbGVtZW50
LCBJR05PUkVfRVhDRVBUSU9OKTsKLSAgICBib2R5LT5hcHBlbmRDaGlsZChtZWRpYUVsZW1lbnQs
IElHTk9SRV9FWENFUFRJT04pOworICAgIG1fbWVkaWFFbGVtZW50LT5hcHBlbmRDaGlsZChXVEY6
Om1vdmUoc291cmNlRWxlbWVudCksIElHTk9SRV9FWENFUFRJT04pOworICAgIGJvZHktPmFwcGVu
ZENoaWxkKFdURjo6bW92ZShtZWRpYUVsZW1lbnQpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAogICAg
IEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkKQEAg
LTI1Myw3ICsyNTMsNyBAQCB2b2lkIE1lZGlhRG9jdW1lbnQ6OnJlcGxhY2VNZWRpYUVsZW1lbnRU
aW1lckZpcmVkKCkKICAgICAgICAgaWYgKGRvY3VtZW50TG9hZGVyKQogICAgICAgICAgICAgZW1i
ZWRFbGVtZW50LnNldEF0dHJpYnV0ZSh0eXBlQXR0ciwgZG9jdW1lbnRMb2FkZXItPndyaXRlcigp
Lm1pbWVUeXBlKCkpOwogCi0gICAgICAgIHZpZGVvRWxlbWVudC0+cGFyZW50Tm9kZSgpLT5yZXBs
YWNlQ2hpbGQoJmVtYmVkRWxlbWVudCwgdmlkZW9FbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsK
KyAgICAgICAgdmlkZW9FbGVtZW50LT5wYXJlbnROb2RlKCktPnJlcGxhY2VDaGlsZChlbWJlZEVs
ZW1lbnQsICp2aWRlb0VsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcAppbmRleCBlOTY3NzA5MGY0YzM4NTNhN2Nm
ZjIwOGIyM2MzMWRjOWQyNTQ0ODIxLi5jMGE4MGJhNTU3MTM5MDliOTNiMThiMWJkYTg4MDNmZjE1
Mjc1YmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcApAQCAtNjcsOSAr
NjcsOSBAQCBwcml2YXRlOgogCiB2b2lkIFBsdWdpbkRvY3VtZW50UGFyc2VyOjpjcmVhdGVEb2N1
bWVudFN0cnVjdHVyZSgpCiB7Ci0gICAgUmVmUHRyPEVsZW1lbnQ+IHJvb3RFbGVtZW50ID0gZG9j
dW1lbnQoKS0+Y3JlYXRlRWxlbWVudChodG1sVGFnLCBmYWxzZSk7Ci0gICAgZG9jdW1lbnQoKS0+
YXBwZW5kQ2hpbGQocm9vdEVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOwotICAgIGRvd25jYXN0
PEhUTUxIdG1sRWxlbWVudD4oKnJvb3RFbGVtZW50KS5pbnNlcnRlZEJ5UGFyc2VyKCk7CisgICAg
UmVmPEVsZW1lbnQ+IHJvb3RFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChodG1s
VGFnLCBmYWxzZSk7CisgICAgZG9jdW1lbnQoKS0+YXBwZW5kQ2hpbGQocm9vdEVsZW1lbnQuY29w
eVJlZigpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBkb3duY2FzdDxIVE1MSHRtbEVsZW1lbnQ+
KHJvb3RFbGVtZW50LmdldCgpKS5pbnNlcnRlZEJ5UGFyc2VyKCk7CiAKICAgICBpZiAoZG9jdW1l
bnQoKS0+ZnJhbWUoKSkKICAgICAgICAgZG9jdW1lbnQoKS0+ZnJhbWUoKS0+aW5qZWN0VXNlclNj
cmlwdHMoSW5qZWN0QXREb2N1bWVudFN0YXJ0KTsKQEAgLTc5LDcgKzc5LDcgQEAgdm9pZCBQbHVn
aW5Eb2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKQogICAgIGRvY3VtZW50
KCktPnByb2Nlc3NWaWV3cG9ydChBU0NJSUxpdGVyYWwoInVzZXItc2NhbGFibGU9bm8iKSwgVmll
d3BvcnRBcmd1bWVudHM6OlBsdWdpbkRvY3VtZW50KTsKICNlbmRpZgogCi0gICAgUmVmUHRyPEVs
ZW1lbnQ+IGJvZHkgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KGJvZHlUYWcsIGZhbHNlKTsK
KyAgICBSZWY8RWxlbWVudD4gYm9keSA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoYm9keVRh
ZywgZmFsc2UpOwogICAgIGJvZHktPnNldEF0dHJpYnV0ZShtYXJnaW53aWR0aEF0dHIsIEF0b21p
Y1N0cmluZygiMCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBi
b2R5LT5zZXRBdHRyaWJ1dGUobWFyZ2luaGVpZ2h0QXR0ciwgQXRvbWljU3RyaW5nKCIwIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogI2lmIFBMQVRGT1JNKElPUykKQEAg
LTg4LDExICs4OCwxMSBAQCB2b2lkIFBsdWdpbkRvY3VtZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVu
dFN0cnVjdHVyZSgpCiAgICAgYm9keS0+c2V0QXR0cmlidXRlKHN0eWxlQXR0ciwgQXRvbWljU3Ry
aW5nKCJiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMzgsMzgsMzgpIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOwogI2VuZGlmCiAKLSAgICByb290RWxlbWVudC0+YXBwZW5kQ2hp
bGQoYm9keSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgcm9vdEVsZW1lbnQtPmFwcGVuZENoaWxk
KGJvZHkuY29weVJlZigpLCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICAgICAgCi0gICAgUmVmUHRy
PEVsZW1lbnQ+IGVtYmVkRWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoZW1iZWRU
YWcsIGZhbHNlKTsKKyAgICBSZWY8RWxlbWVudD4gZW1iZWRFbGVtZW50ID0gZG9jdW1lbnQoKS0+
Y3JlYXRlRWxlbWVudChlbWJlZFRhZywgZmFsc2UpOwogICAgICAgICAKLSAgICBtX2VtYmVkRWxl
bWVudCA9IGRvd25jYXN0PEhUTUxFbWJlZEVsZW1lbnQ+KGVtYmVkRWxlbWVudC5nZXQoKSk7Cisg
ICAgbV9lbWJlZEVsZW1lbnQgPSBkb3duY2FzdDxIVE1MRW1iZWRFbGVtZW50PihlbWJlZEVsZW1l
bnQucHRyKCkpOwogICAgIG1fZW1iZWRFbGVtZW50LT5zZXRBdHRyaWJ1dGUod2lkdGhBdHRyLCAi
MTAwJSIpOwogICAgIG1fZW1iZWRFbGVtZW50LT5zZXRBdHRyaWJ1dGUoaGVpZ2h0QXR0ciwgIjEw
MCUiKTsKICAgICAKQEAgLTEwNiw3ICsxMDYsNyBAQCB2b2lkIFBsdWdpbkRvY3VtZW50UGFyc2Vy
OjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCiAKICAgICBkb3duY2FzdDxQbHVnaW5Eb2N1bWVu
dD4oKmRvY3VtZW50KCkpLnNldFBsdWdpbkVsZW1lbnQobV9lbWJlZEVsZW1lbnQpOwogCi0gICAg
Ym9keS0+YXBwZW5kQ2hpbGQoZW1iZWRFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBi
b2R5LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoZW1iZWRFbGVtZW50KSwgSUdOT1JFX0VYQ0VQVElP
Tik7CiB9CiAKIHZvaWQgUGx1Z2luRG9jdW1lbnRQYXJzZXI6OmFwcGVuZEJ5dGVzKERvY3VtZW50
V3JpdGVyJiwgY29uc3QgY2hhciosIHNpemVfdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0
VHlwZS5jcHAKaW5kZXggYjViOWU3OTQxMzExOTNiNTBmZTc5NzlhMTZhMTRjYjMwODA0ZTdkNy4u
NjZhNzQxNWU4YTRjZjExZjkxZGM2N2MxNmExZDkwNjAyNWNmZmZkMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKQEAgLTI1MywxMiArMjUzLDEyIEBAIHZvaWQgUmFuZ2VJ
bnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogICAgIEFTU0VSVChlbGVtZW50KCkudXNl
ckFnZW50U2hhZG93Um9vdCgpKTsKIAogICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGVsZW1lbnQo
KS5kb2N1bWVudCgpOwotICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gdHJhY2sgPSBIVE1MRGl2
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBSZWY8SFRNTERpdkVsZW1lbnQ+IHRyYWNr
ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgdHJhY2stPnNldFBzZXVk
byhBdG9taWNTdHJpbmcoIi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHRyYWNrLT5hcHBlbmRDaGlsZChTbGlk
ZXJUaHVtYkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCksIElHTk9SRV9FWENFUFRJT04pOwotICAg
IFJlZlB0cjxIVE1MRWxlbWVudD4gY29udGFpbmVyID0gU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBjb250YWluZXItPmFwcGVuZENoaWxkKHRyYWNrLnJlbGVh
c2UoKSwgSUdOT1JFX0VYQ0VQVElPTik7Ci0gICAgZWxlbWVudCgpLnVzZXJBZ2VudFNoYWRvd1Jv
b3QoKS0+YXBwZW5kQ2hpbGQoY29udGFpbmVyLnJlbGVhc2UoKSwgSUdOT1JFX0VYQ0VQVElPTik7
CisgICAgUmVmPEhUTUxFbGVtZW50PiBjb250YWluZXIgPSBTbGlkZXJDb250YWluZXJFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoV1RGOjptb3Zl
KHRyYWNrKSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgZWxlbWVudCgpLnVzZXJBZ2VudFNoYWRv
d1Jvb3QoKS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNvbnRhaW5lciksIElHTk9SRV9FWENFUFRJ
T04pOwogfQogCiBIVE1MRWxlbWVudCogUmFuZ2VJbnB1dFR5cGU6OnNsaWRlclRyYWNrRWxlbWVu
dCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAKaW5kZXggZGU0
M2RiNTgwNDkzYmM2NTk5ZjllN2FlODg3ZTcwYzk4MWM0MmU2Ny4uMzU3YzdhNjA1YjRkYjcyYzAw
ZTdiOTZkZWQ2ZGQ2NDYyMGU4ZDZmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9T
ZWFyY2hJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRU
eXBlLmNwcApAQCAtMTA3LDE0ICsxMDcsMTQgQEAgdm9pZCBTZWFyY2hJbnB1dFR5cGU6OmNyZWF0
ZVNoYWRvd1N1YnRyZWUoKQogICAgIEFTU0VSVChjb250YWluZXIpOwogICAgIEFTU0VSVCh0ZXh0
V3JhcHBlcik7CiAKLSAgICBSZWZQdHI8U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudD4g
cmVzdWx0c0J1dHRvbiA9IFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZShl
bGVtZW50KCkuZG9jdW1lbnQoKSk7Ci0gICAgbV9yZXN1bHRzQnV0dG9uID0gcmVzdWx0c0J1dHRv
bi5nZXQoKTsKLSAgICB1cGRhdGVSZXN1bHRCdXR0b25Qc2V1ZG9UeXBlKCptX3Jlc3VsdHNCdXR0
b24sIGVsZW1lbnQoKS5tYXhSZXN1bHRzKCkpOwotICAgIGNvbnRhaW5lci0+aW5zZXJ0QmVmb3Jl
KG1fcmVzdWx0c0J1dHRvbiwgdGV4dFdyYXBwZXIsIElHTk9SRV9FWENFUFRJT04pOwotCi0gICAg
UmVmUHRyPFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudD4gY2FuY2VsQnV0dG9uID0gU2Vh
cmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLmRvY3VtZW50KCkp
OwotICAgIG1fY2FuY2VsQnV0dG9uID0gY2FuY2VsQnV0dG9uLmdldCgpOwotICAgIGNvbnRhaW5l
ci0+aW5zZXJ0QmVmb3JlKG1fY2FuY2VsQnV0dG9uLCB0ZXh0V3JhcHBlci0+bmV4dFNpYmxpbmco
KSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgUmVmPFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVs
ZW1lbnQ+IHJlc3VsdHNCdXR0b24gPSBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50Ojpj
cmVhdGUoZWxlbWVudCgpLmRvY3VtZW50KCkpOworICAgIG1fcmVzdWx0c0J1dHRvbiA9IHJlc3Vs
dHNCdXR0b24ucHRyKCk7CisgICAgdXBkYXRlUmVzdWx0QnV0dG9uUHNldWRvVHlwZShyZXN1bHRz
QnV0dG9uLmdldCgpLCBlbGVtZW50KCkubWF4UmVzdWx0cygpKTsKKyAgICBjb250YWluZXItPmlu
c2VydEJlZm9yZShXVEY6Om1vdmUocmVzdWx0c0J1dHRvbiksIHRleHRXcmFwcGVyLCBJR05PUkVf
RVhDRVBUSU9OKTsKKworICAgIFJlZjxTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ+IGNh
bmNlbEJ1dHRvbiA9IFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGVsZW1l
bnQoKS5kb2N1bWVudCgpKTsKKyAgICBtX2NhbmNlbEJ1dHRvbiA9IGNhbmNlbEJ1dHRvbi5wdHIo
KTsKKyAgICBjb250YWluZXItPmluc2VydEJlZm9yZShXVEY6Om1vdmUoY2FuY2VsQnV0dG9uKSwg
dGV4dFdyYXBwZXItPm5leHRTaWJsaW5nKCksIElHTk9SRV9FWENFUFRJT04pOwogfQogCiBIVE1M
RWxlbWVudCogU2VhcmNoSW5wdXRUeXBlOjpyZXN1bHRzQnV0dG9uRWxlbWVudCgpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKaW5kZXggZWFlM2RiMjll
ZWUzYzJkZTk1ZmU3MTgwYzU0NmZmOGU3ZTJhNzY3ZS4uMTM2ZjA5NzUxYjVkYTYxMDAwNjE2NDli
NTViNTQ5YWM5ZDIzNDJiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0Rmll
bGRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRU
eXBlLmNwcApAQCAtMjc0LDcgKzI3NCw3IEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVh
dGVTaGFkb3dTdWJ0cmVlKCkKICAgICBtX2lubmVyVGV4dCA9IFRleHRDb250cm9sSW5uZXJUZXh0
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKIAogICAgIGlmICghY3JlYXRlc0NvbnRhaW5lcikg
ewotICAgICAgICBlbGVtZW50KCkudXNlckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZCht
X2lubmVyVGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgICAgIGVsZW1lbnQoKS51c2VyQWdl
bnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKCptX2lubmVyVGV4dCwgSUdOT1JFX0VYQ0VQVElP
Tik7CiAgICAgICAgIHVwZGF0ZVBsYWNlaG9sZGVyVGV4dCgpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQpAQCAtMjg0LDcgKzI4NCw3IEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVT
aGFkb3dTdWJ0cmVlKCkKIAogICAgIGlmIChzaG91bGRIYXZlU3BpbkJ1dHRvbikgewogICAgICAg
ICBtX2lubmVyU3BpbkJ1dHRvbiA9IFNwaW5CdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQs
ICp0aGlzKTsKLSAgICAgICAgbV9jb250YWluZXItPmFwcGVuZENoaWxkKG1faW5uZXJTcGluQnV0
dG9uLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgbV9jb250YWluZXItPmFwcGVuZENoaWxk
KCptX2lubmVyU3BpbkJ1dHRvbiwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgfQogCiAgICAgaWYg
KHNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRvcikgewpAQCAtMjk0LDcgKzI5NCw3IEBAIHZvaWQg
VGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKICAgICAgICAgYm9vbCBz
aG91bGREcmF3Q2Fwc0xvY2tJbmRpY2F0b3IgPSB0aGlzLT5zaG91bGREcmF3Q2Fwc0xvY2tJbmRp
Y2F0b3IoKTsKICAgICAgICAgbV9jYXBzTG9ja0luZGljYXRvci0+c2V0SW5saW5lU3R5bGVQcm9w
ZXJ0eShDU1NQcm9wZXJ0eURpc3BsYXksIHNob3VsZERyYXdDYXBzTG9ja0luZGljYXRvciA/IENT
U1ZhbHVlQmxvY2sgOiBDU1NWYWx1ZU5vbmUsIHRydWUpOwogCi0gICAgICAgIG1fY29udGFpbmVy
LT5hcHBlbmRDaGlsZChtX2NhcHNMb2NrSW5kaWNhdG9yLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAg
ICAgICAgbV9jb250YWluZXItPmFwcGVuZENoaWxkKCptX2NhcHNMb2NrSW5kaWNhdG9yLCBJR05P
UkVfRVhDRVBUSU9OKTsKICAgICB9CiAKICAgICB1cGRhdGVBdXRvRmlsbEJ1dHRvbigpOwpAQCAt
NDYxLDcgKzQ2MSw3IEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjp1cGRhdGVQbGFjZWhvbGRl
clRleHQoKQogICAgIFN0cmluZyBwbGFjZWhvbGRlclRleHQgPSBlbGVtZW50KCkuc3RyaXBwZWRQ
bGFjZWhvbGRlcigpOwogICAgIGlmIChwbGFjZWhvbGRlclRleHQuaXNFbXB0eSgpKSB7CiAgICAg
ICAgIGlmIChtX3BsYWNlaG9sZGVyKSB7Ci0gICAgICAgICAgICBtX3BsYWNlaG9sZGVyLT5wYXJl
bnROb2RlKCktPnJlbW92ZUNoaWxkKG1fcGxhY2Vob2xkZXIuZ2V0KCksIEFTU0VSVF9OT19FWENF
UFRJT04pOworICAgICAgICAgICAgbV9wbGFjZWhvbGRlci0+cGFyZW50Tm9kZSgpLT5yZW1vdmVD
aGlsZCgqbV9wbGFjZWhvbGRlciwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgICAgICAgICBt
X3BsYWNlaG9sZGVyID0gbnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm47CkBAIC00
NzAsNyArNDcwLDcgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OnVwZGF0ZVBsYWNlaG9sZGVy
VGV4dCgpCiAgICAgICAgIG1fcGxhY2Vob2xkZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGVs
ZW1lbnQoKS5kb2N1bWVudCgpKTsKICAgICAgICAgbV9wbGFjZWhvbGRlci0+c2V0UHNldWRvKEF0
b21pY1N0cmluZygiLXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAgICAgbV9wbGFjZWhvbGRlci0+c2V0SW5saW5lU3R5
bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eURpc3BsYXksIGVsZW1lbnQoKS5pc1BsYWNlaG9sZGVyVmlz
aWJsZSgpID8gQ1NTVmFsdWVCbG9jayA6IENTU1ZhbHVlTm9uZSwgdHJ1ZSk7Ci0gICAgICAgIGVs
ZW1lbnQoKS51c2VyQWdlbnRTaGFkb3dSb290KCktPmluc2VydEJlZm9yZShtX3BsYWNlaG9sZGVy
LCBtX2NvbnRhaW5lciA/IG1fY29udGFpbmVyLmdldCgpIDogaW5uZXJUZXh0RWxlbWVudCgpLCBB
U1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgZWxlbWVudCgpLnVzZXJBZ2VudFNoYWRvd1Jv
b3QoKS0+aW5zZXJ0QmVmb3JlKCptX3BsYWNlaG9sZGVyLCBtX2NvbnRhaW5lciA/IG1fY29udGFp
bmVyLmdldCgpIDogaW5uZXJUZXh0RWxlbWVudCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAg
ICAgICAgCiAgICAgfQogICAgIG1fcGxhY2Vob2xkZXItPnNldElubmVyVGV4dChwbGFjZWhvbGRl
clRleHQsIEFTU0VSVF9OT19FWENFUFRJT04pOwpAQCAtNjAwLDEwICs2MDAsMTAgQEAgdm9pZCBU
ZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZUNvbnRhaW5lcigpCiAgICAgbV9jb250YWluZXItPnNl
dFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtdGV4dGZpZWxkLWRlY29yYXRpb24tY29udGFp
bmVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogCiAgICAgbV9pbm5l
ckJsb2NrID0gVGV4dENvbnRyb2xJbm5lckVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCkuZG9jdW1l
bnQoKSk7Ci0gICAgbV9pbm5lckJsb2NrLT5hcHBlbmRDaGlsZChtX2lubmVyVGV4dCwgSUdOT1JF
X0VYQ0VQVElPTik7Ci0gICAgbV9jb250YWluZXItPmFwcGVuZENoaWxkKG1faW5uZXJCbG9jaywg
SUdOT1JFX0VYQ0VQVElPTik7CisgICAgbV9pbm5lckJsb2NrLT5hcHBlbmRDaGlsZCgqbV9pbm5l
clRleHQsIElHTk9SRV9FWENFUFRJT04pOworICAgIG1fY29udGFpbmVyLT5hcHBlbmRDaGlsZCgq
bV9pbm5lckJsb2NrLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGVsZW1lbnQoKS51c2VyQWdl
bnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKG1fY29udGFpbmVyLCBJR05PUkVfRVhDRVBUSU9O
KTsKKyAgICBlbGVtZW50KCkudXNlckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZCgqbV9j
b250YWluZXIsIElHTk9SRV9FWENFUFRJT04pOwogfQogCiB2b2lkIFRleHRGaWVsZElucHV0VHlw
ZTo6Y3JlYXRlQXV0b0ZpbGxCdXR0b24oKQpAQCAtNjEyLDcgKzYxMiw3IEBAIHZvaWQgVGV4dEZp
ZWxkSW5wdXRUeXBlOjpjcmVhdGVBdXRvRmlsbEJ1dHRvbigpCiAKICAgICBtX2F1dG9GaWxsQnV0
dG9uID0gQXV0b0ZpbGxCdXR0b25FbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLmRvY3VtZW50KCks
ICp0aGlzKTsKICAgICBtX2F1dG9GaWxsQnV0dG9uLT5zZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCIt
d2Via2l0LWF1dG8tZmlsbC1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7Ci0gICAgbV9jb250YWluZXItPmFwcGVuZENoaWxkKG1fYXV0b0ZpbGxCdXR0b24sIElH
Tk9SRV9FWENFUFRJT04pOworICAgIG1fY29udGFpbmVyLT5hcHBlbmRDaGlsZCgqbV9hdXRvRmls
bEJ1dHRvbiwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CiAKIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBl
Ojp1cGRhdGVBdXRvRmlsbEJ1dHRvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1ZhbGlkYXRpb25NZXNzYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1l
c3NhZ2UuY3BwCmluZGV4IGY2MWUxYjVlZmUyNzA5MzFkYWIwZWMyZWVkZjBmMzRiZDc3ODJiOTYu
LjkwNjI5NWUxOThmNzg0NTY1NjEyYWE1MmNiOWU2YWM0ZDUzMGZhZGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCkBAIC0xODAsMzIgKzE4MCwzMiBAQCB2b2lk
IFZhbGlkYXRpb25NZXNzYWdlOjpidWlsZEJ1YmJsZVRyZWUoKQogICAgIC8vIE5lZWQgdG8gZm9y
Y2UgcG9zaXRpb246YWJzb2x1dGUgYmVjYXVzZSBSZW5kZXJNZW51TGlzdCBkb2Vzbid0IGFzc3Vt
ZSBpdAogICAgIC8vIGNvbnRhaW5zIG5vbi1hYnNvbHV0ZSBvciBub24tZml4ZWQgcmVuZGVyZXJz
IGFzIGNoaWxkcmVuLgogICAgIG1fYnViYmxlLT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1By
b3BlcnR5UG9zaXRpb24sIENTU1ZhbHVlQWJzb2x1dGUpOwotICAgIHNoYWRvd1Jvb3QuYXBwZW5k
Q2hpbGQobV9idWJibGUuZ2V0KCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIHNoYWRvd1Jv
b3QuYXBwZW5kQ2hpbGQoKm1fYnViYmxlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICBkb2N1
bWVudC51cGRhdGVMYXlvdXQoKTsKICAgICBhZGp1c3RCdWJibGVQb3NpdGlvbihtX2VsZW1lbnQt
PnJlbmRlcmVyKCktPmFic29sdXRlQm91bmRpbmdCb3hSZWN0KCksIG1fYnViYmxlLmdldCgpKTsK
IAotICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gY2xpcHBlciA9IEhUTUxEaXZFbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQpOworICAgIFJlZjxIVE1MRGl2RWxlbWVudD4gY2xpcHBlciA9IEhUTUxE
aXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGNsaXBwZXItPnNldFBzZXVkbyhBdG9t
aWNTdHJpbmcoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtYXJyb3ctY2xpcHBlciIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBSZWZQdHI8SFRNTERpdkVsZW1l
bnQ+IGJ1YmJsZUFycm93ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAg
UmVmPEhUTUxEaXZFbGVtZW50PiBidWJibGVBcnJvdyA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQpOwogICAgIGJ1YmJsZUFycm93LT5zZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Vi
a2l0LXZhbGlkYXRpb24tYnViYmxlLWFycm93IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOwotICAgIGNsaXBwZXItPmFwcGVuZENoaWxkKGJ1YmJsZUFycm93LnJlbGVhc2Uo
KSwgQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0gICAgbV9idWJibGUtPmFwcGVuZENoaWxkKGNsaXBw
ZXIucmVsZWFzZSgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBjbGlwcGVyLT5hcHBlbmRD
aGlsZChXVEY6Om1vdmUoYnViYmxlQXJyb3cpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBt
X2J1YmJsZS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNsaXBwZXIpLCBBU1NFUlRfTk9fRVhDRVBU
SU9OKTsKIAotICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gbWVzc2FnZSA9IEhUTUxEaXZFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIFJlZjxIVE1MRWxlbWVudD4gbWVzc2FnZSA9IEhUTUxE
aXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIG1lc3NhZ2UtPnNldFBzZXVkbyhBdG9t
aWNTdHJpbmcoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtbWVzc2FnZSIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IGljb24g
PSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBSZWY8SFRNTEVsZW1lbnQ+
IGljb24gPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBpY29uLT5zZXRQ
c2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLWljb24iLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgbWVzc2FnZS0+YXBwZW5kQ2hp
bGQoaWNvbi5yZWxlYXNlKCksIEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgIFJlZlB0cjxIVE1M
RWxlbWVudD4gdGV4dEJsb2NrID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Cisg
ICAgbWVzc2FnZS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGljb24pLCBBU1NFUlRfTk9fRVhDRVBU
SU9OKTsKKyAgICBSZWY8SFRNTEVsZW1lbnQ+IHRleHRCbG9jayA9IEhUTUxEaXZFbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQpOwogICAgIHRleHRCbG9jay0+c2V0UHNldWRvKEF0b21pY1N0cmluZygi
LXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS10ZXh0LWJsb2NrIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIG1fbWVzc2FnZUhlYWRpbmcgPSBIVE1MRGl2RWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBtX21lc3NhZ2VIZWFkaW5nLT5zZXRQc2V1ZG8oQXRv
bWljU3RyaW5nKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLWhlYWRpbmciLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgdGV4dEJsb2NrLT5hcHBlbmRDaGlsZCht
X21lc3NhZ2VIZWFkaW5nLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICB0ZXh0QmxvY2stPmFw
cGVuZENoaWxkKCptX21lc3NhZ2VIZWFkaW5nLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICBt
X21lc3NhZ2VCb2R5ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgbV9t
ZXNzYWdlQm9keS0+c2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC12YWxpZGF0aW9uLWJ1
YmJsZS1ib2R5IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIHRl
eHRCbG9jay0+YXBwZW5kQ2hpbGQobV9tZXNzYWdlQm9keSwgQVNTRVJUX05PX0VYQ0VQVElPTik7
Ci0gICAgbWVzc2FnZS0+YXBwZW5kQ2hpbGQodGV4dEJsb2NrLnJlbGVhc2UoKSwgQVNTRVJUX05P
X0VYQ0VQVElPTik7Ci0gICAgbV9idWJibGUtPmFwcGVuZENoaWxkKG1lc3NhZ2UucmVsZWFzZSgp
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICB0ZXh0QmxvY2stPmFwcGVuZENoaWxkKCptX21l
c3NhZ2VCb2R5LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBtZXNzYWdlLT5hcHBlbmRDaGls
ZChXVEY6Om1vdmUodGV4dEJsb2NrKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgbV9idWJi
bGUtPmFwcGVuZENoaWxkKFdURjo6bW92ZShtZXNzYWdlKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7
CiAKICAgICBzZXRNZXNzYWdlRE9NQW5kU3RhcnRUaW1lcigpOwogCkBAIC0yMzcsNyArMjM3LDcg
QEAgdm9pZCBWYWxpZGF0aW9uTWVzc2FnZTo6ZGVsZXRlQnViYmxlVHJlZSgpCiAgICAgaWYgKG1f
YnViYmxlKSB7CiAgICAgICAgIG1fbWVzc2FnZUhlYWRpbmcgPSBudWxscHRyOwogICAgICAgICBt
X21lc3NhZ2VCb2R5ID0gbnVsbHB0cjsKLSAgICAgICAgbV9lbGVtZW50LT51c2VyQWdlbnRTaGFk
b3dSb290KCktPnJlbW92ZUNoaWxkKG1fYnViYmxlLmdldCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKKyAgICAgICAgbV9lbGVtZW50LT51c2VyQWdlbnRTaGFkb3dSb290KCktPnJlbW92ZUNoaWxk
KCptX2J1YmJsZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgICAgIG1fYnViYmxlID0gbnVs
bHB0cjsKICAgICB9CiAgICAgbV9tZXNzYWdlID0gU3RyaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKaW5kZXggOWU0ODNh
OTlkNDU4OTBlMDY3NmM3ZjhhMjY4ZmJiYTRkNDA1NDBjMi4uMjJjZTMzOWQzNDgyNTg0ZmNmMTNm
NGNhZWVkOGEwYjQ1NmZmYTdkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcApAQCAtODA3LDIxICs4MDcsMjEgQEAgdm9pZCBN
ZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ6OnJlYnVpbGRUcmFja0xp
c3RNZW51KCkKICAgICBDYXB0aW9uVXNlclByZWZlcmVuY2VzKiBjYXB0aW9uUHJlZmVyZW5jZXMg
PSBkb2N1bWVudCgpLnBhZ2UoKS0+Z3JvdXAoKS5jYXB0aW9uUHJlZmVyZW5jZXMoKTsKICAgICBW
ZWN0b3I8UmVmUHRyPFRleHRUcmFjaz4+IHRyYWNrc0Zvck1lbnUgPSBjYXB0aW9uUHJlZmVyZW5j
ZXMtPnNvcnRlZFRyYWNrTGlzdEZvck1lbnUodHJhY2tMaXN0KTsKIAotICAgIFJlZlB0cjxFbGVt
ZW50PiBjYXB0aW9uc0hlYWRlciA9IGRvY3VtZW50KCkuY3JlYXRlRWxlbWVudChoM1RhZywgQVNT
RVJUX05PX0VYQ0VQVElPTik7CisgICAgUmVmPEVsZW1lbnQ+IGNhcHRpb25zSGVhZGVyID0gZG9j
dW1lbnQoKS5jcmVhdGVFbGVtZW50KGgzVGFnLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICBj
YXB0aW9uc0hlYWRlci0+YXBwZW5kQ2hpbGQoZG9jdW1lbnQoKS5jcmVhdGVUZXh0Tm9kZSh0ZXh0
VHJhY2tTdWJ0aXRsZXNUZXh0KCkpKTsKLSAgICBhcHBlbmRDaGlsZChjYXB0aW9uc0hlYWRlcik7
Ci0gICAgUmVmUHRyPEVsZW1lbnQ+IGNhcHRpb25zTWVudUxpc3QgPSBkb2N1bWVudCgpLmNyZWF0
ZUVsZW1lbnQodWxUYWcsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIGFwcGVuZENoaWxkKFdU
Rjo6bW92ZShjYXB0aW9uc0hlYWRlcikpOworICAgIFJlZjxFbGVtZW50PiBjYXB0aW9uc01lbnVM
aXN0ID0gZG9jdW1lbnQoKS5jcmVhdGVFbGVtZW50KHVsVGFnLCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDAsIGxlbmd0aCA9IHRyYWNrc0Zvck1lbnUuc2l6
ZSgpOyBpIDwgbGVuZ3RoOyArK2kpIHsKICAgICAgICAgUmVmUHRyPFRleHRUcmFjaz4gdGV4dFRy
YWNrID0gdHJhY2tzRm9yTWVudVtpXTsKLSAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IG1lbnVJdGVt
ID0gZG9jdW1lbnQoKS5jcmVhdGVFbGVtZW50KGxpVGFnLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsK
KyAgICAgICAgUmVmPEVsZW1lbnQ+IG1lbnVJdGVtID0gZG9jdW1lbnQoKS5jcmVhdGVFbGVtZW50
KGxpVGFnLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICAgICAgbWVudUl0ZW0tPmFwcGVuZENo
aWxkKGRvY3VtZW50KCkuY3JlYXRlVGV4dE5vZGUoY2FwdGlvblByZWZlcmVuY2VzLT5kaXNwbGF5
TmFtZUZvclRyYWNrKHRleHRUcmFjay5nZXQoKSkpKTsKLSAgICAgICAgY2FwdGlvbnNNZW51TGlz
dC0+YXBwZW5kQ2hpbGQobWVudUl0ZW0pOwotICAgICAgICBtX21lbnVJdGVtcy5hcHBlbmQobWVu
dUl0ZW0pOwotICAgICAgICBtX21lbnVUb1RyYWNrTWFwLmFkZChtZW51SXRlbSwgdGV4dFRyYWNr
KTsKKyAgICAgICAgY2FwdGlvbnNNZW51TGlzdC0+YXBwZW5kQ2hpbGQobWVudUl0ZW0uY29weVJl
ZigpKTsKKyAgICAgICAgbV9tZW51SXRlbXMuYXBwZW5kKG1lbnVJdGVtLnB0cigpKTsKKyAgICAg
ICAgbV9tZW51VG9UcmFja01hcC5hZGQobWVudUl0ZW0ucHRyKCksIHRleHRUcmFjayk7CiAgICAg
fQogCi0gICAgYXBwZW5kQ2hpbGQoY2FwdGlvbnNNZW51TGlzdCk7CisgICAgYXBwZW5kQ2hpbGQo
V1RGOjptb3ZlKGNhcHRpb25zTWVudUxpc3QpKTsKICNlbmRpZgogfQogCkBAIC0xMTg2LDE2ICsx
MTg2LDE2IEBAIHZvaWQgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6dXBk
YXRlRGlzcGxheSgpCiAgICAgICAgICAgICAvLyB0cmFjayBjdWUgcmVnaW9uIGlkZW50aWZpZXIs
IHJ1biB0aGUgZm9sbG93aW5nIHN1YnN0ZXBzOgogICAgICAgICAgICAgaWYgKGRpc3BsYXlCb3gt
Pmhhc0NoaWxkTm9kZXMoKSAmJiAhY29udGFpbnMoZGlzcGxheUJveC5nZXQoKSkpIHsKICAgICAg
ICAgICAgICAgICAvLyBOb3RlOiB0aGUgZGlzcGxheSB0cmVlIG9mIGEgY3VlIGlzIHJlbW92ZWQg
d2hlbiB0aGUgYWN0aXZlIGZsYWcgb2YgdGhlIGN1ZSBpcyB1bnNldC4KLSAgICAgICAgICAgICAg
ICBhcHBlbmRDaGlsZChkaXNwbGF5Qm94LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAg
ICAgICAgICBhcHBlbmRDaGlsZCgqZGlzcGxheUJveCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAg
ICAgICAgICAgICAgICAgY3VlLT5zZXRGb250U2l6ZShtX2ZvbnRTaXplLCBtX3ZpZGVvRGlzcGxh
eVNpemUuc2l6ZSgpLCBtX2ZvbnRTaXplSXNJbXBvcnRhbnQpOwogICAgICAgICAgICAgfQogICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgLy8gTGV0IHJlZ2lvbiBiZSB0aGUgV2ViVlRUIHJl
Z2lvbiB3aG9zZSByZWdpb24gaWRlbnRpZmllcgogICAgICAgICAgICAgLy8gbWF0Y2hlcyB0aGUg
dGV4dCB0cmFjayBjdWUgcmVnaW9uIGlkZW50aWZpZXIgb2YgY3VlLgotICAgICAgICAgICAgUmVm
UHRyPEhUTUxEaXZFbGVtZW50PiByZWdpb25Ob2RlID0gcmVnaW9uLT5nZXREaXNwbGF5VHJlZSgp
OworICAgICAgICAgICAgUmVmPEhUTUxEaXZFbGVtZW50PiByZWdpb25Ob2RlID0gcmVnaW9uLT5n
ZXREaXNwbGF5VHJlZSgpOwogCiAgICAgICAgICAgICAvLyBBcHBlbmQgdGhlIHJlZ2lvbiB0byB0
aGUgdmlld3BvcnQsIGlmIGl0IHdhcyBub3QgYWxyZWFkeS4KLSAgICAgICAgICAgIGlmICghY29u
dGFpbnMocmVnaW9uTm9kZS5nZXQoKSkpCisgICAgICAgICAgICBpZiAoIWNvbnRhaW5zKHJlZ2lv
bk5vZGUucHRyKCkpKQogICAgICAgICAgICAgICAgIGFwcGVuZENoaWxkKHJlZ2lvbi0+Z2V0RGlz
cGxheVRyZWUoKSk7CiAKICAgICAgICAgICAgIHJlZ2lvbi0+YXBwZW5kVGV4dFRyYWNrQ3VlQm94
KGRpc3BsYXlCb3gpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVk
aWFDb250cm9scy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xz
LmNwcAppbmRleCAzZGQ2ZGU4NmRhMWZjY2QxZmUxYTA2MDg1M2Q0NzEyM2E0YTcwZDk4Li45ZGY5
OThmMWE5ODdiYzkyZmY3ODg0ZDU1MzMxODYyYTE1Y2I5YjIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmNwcApAQCAtMzgwLDE0ICszODAsMTQgQEAgdm9p
ZCBNZWRpYUNvbnRyb2xzOjpjcmVhdGVUZXh0VHJhY2tEaXNwbGF5KCkKICAgICBpZiAobV90ZXh0
RGlzcGxheUNvbnRhaW5lcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVmUHRyPE1lZGlhQ29u
dHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ+IHRleHREaXNwbGF5Q29udGFpbmVyID0gTWVk
aWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwot
ICAgIG1fdGV4dERpc3BsYXlDb250YWluZXIgPSB0ZXh0RGlzcGxheUNvbnRhaW5lci5nZXQoKTsK
KyAgICBSZWY8TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudD4gdGV4dERpc3Bs
YXlDb250YWluZXIgPSBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQoKSk7CisgICAgbV90ZXh0RGlzcGxheUNvbnRhaW5lciA9IHRleHREaXNwbGF5
Q29udGFpbmVyLnB0cigpOwogCiAgICAgaWYgKG1fbWVkaWFDb250cm9sbGVyKQogICAgICAgICBt
X3RleHREaXNwbGF5Q29udGFpbmVyLT5zZXRNZWRpYUNvbnRyb2xsZXIobV9tZWRpYUNvbnRyb2xs
ZXIpOwogCiAgICAgLy8gSW5zZXJ0IGl0IGJlZm9yZSB0aGUgZmlyc3QgY29udHJvbGxlciBlbGVt
ZW50IHNvIGl0IGFsd2F5cyBkaXNwbGF5cyBiZWhpbmQgdGhlIGNvbnRyb2xzLgotICAgIGluc2Vy
dEJlZm9yZSh0ZXh0RGlzcGxheUNvbnRhaW5lci5yZWxlYXNlKCksIG1fcGFuZWwsIElHTk9SRV9F
WENFUFRJT04pOworICAgIGluc2VydEJlZm9yZShXVEY6Om1vdmUodGV4dERpc3BsYXlDb250YWlu
ZXIpLCBtX3BhbmVsLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KIAogdm9pZCBNZWRpYUNvbnRyb2xz
OjpzaG93VGV4dFRyYWNrRGlzcGxheSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9NZWRpYUNvbnRyb2xzQXBwbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sc0FwcGxlLmNwcAppbmRleCA4ZmRiYTBkMDM0ODUwM2EyYTZlOGUwZDBl
ODY0N2U5M2Y5NjY0ZjgzLi4wOTI1NmQ1YjRlZGE3YzhmOTYzOWViZTI5NzJhNzhmMDhhMjZkOGZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQXBw
bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNBcHBs
ZS5jcHAKQEAgLTYzLDE2NSArNjMsMTY1IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9scz4gTWVk
aWFDb250cm9sczo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIFBhc3NSZWZQdHI8TWVkaWFD
b250cm9sc0FwcGxlPiBNZWRpYUNvbnRyb2xzQXBwbGU6OmNyZWF0ZUNvbnRyb2xzKERvY3VtZW50
JiBkb2N1bWVudCkKIHsKICAgICBpZiAoIWRvY3VtZW50LnBhZ2UoKSkKLSAgICAgICAgcmV0dXJu
IDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbHNB
cHBsZT4gY29udHJvbHMgPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sc0FwcGxlKGRvY3VtZW50
KSk7CiAKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxFbGVtZW50PiBwYW5lbCA9IE1lZGlh
Q29udHJvbFBhbmVsRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBSZWY8TWVkaWFDb250
cm9sUGFuZWxFbGVtZW50PiBwYW5lbCA9IE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWM7CiAKLSAgICBSZWZQdHI8TWVkaWFD
b250cm9sUmV3aW5kQnV0dG9uRWxlbWVudD4gcmV3aW5kQnV0dG9uID0gTWVkaWFDb250cm9sUmV3
aW5kQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBjb250cm9scy0+bV9yZXdp
bmRCdXR0b24gPSByZXdpbmRCdXR0b24uZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKHJl
d2luZEJ1dHRvbi5yZWxlYXNlKCksIGVjKTsKKyAgICBSZWY8TWVkaWFDb250cm9sUmV3aW5kQnV0
dG9uRWxlbWVudD4gcmV3aW5kQnV0dG9uID0gTWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBjb250cm9scy0+bV9yZXdpbmRCdXR0b24gPSByZXdp
bmRCdXR0b24ucHRyKCk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdURjo6bW92ZShyZXdpbmRC
dXR0b24pLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ+
IHBsYXlCdXR0b24gPSBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KTsKLSAgICBjb250cm9scy0+bV9wbGF5QnV0dG9uID0gcGxheUJ1dHRvbi5nZXQoKTsKLSAg
ICBwYW5lbC0+YXBwZW5kQ2hpbGQocGxheUJ1dHRvbi5yZWxlYXNlKCksIGVjKTsKKyAgICBSZWY8
TWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ+IHBsYXlCdXR0b24gPSBNZWRpYUNvbnRyb2xQ
bGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBjb250cm9scy0+bV9wbGF5
QnV0dG9uID0gcGxheUJ1dHRvbi5wdHIoKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGOjpt
b3ZlKHBsYXlCdXR0b24pLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sUmV0dXJuVG9S
ZWFsdGltZUJ1dHRvbkVsZW1lbnQ+IHJldHVyblRvUmVhbHRpbWVCdXR0b24gPSBNZWRpYUNvbnRy
b2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBj
b250cm9scy0+bV9yZXR1cm5Ub1JlYWxUaW1lQnV0dG9uID0gcmV0dXJuVG9SZWFsdGltZUJ1dHRv
bi5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQocmV0dXJuVG9SZWFsdGltZUJ1dHRvbi5y
ZWxlYXNlKCksIGVjKTsKKyAgICBSZWY8TWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRv
bkVsZW1lbnQ+IHJldHVyblRvUmVhbHRpbWVCdXR0b24gPSBNZWRpYUNvbnRyb2xSZXR1cm5Ub1Jl
YWx0aW1lQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBjb250cm9scy0+bV9y
ZXR1cm5Ub1JlYWxUaW1lQnV0dG9uID0gcmV0dXJuVG9SZWFsdGltZUJ1dHRvbi5wdHIoKTsKKyAg
ICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHJldHVyblRvUmVhbHRpbWVCdXR0b24pLCBl
Yyk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKICAgICBpZiAoZG9jdW1lbnQucGFnZSgpLT50aGVtZSgpLnVzZXNNZWRpYUNvbnRyb2xT
dGF0dXNEaXNwbGF5KCkpIHsKLSAgICAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFN0YXR1c0Rpc3Bs
YXlFbGVtZW50PiBzdGF0dXNEaXNwbGF5ID0gTWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgICAgIGNvbnRyb2xzLT5tX3N0YXR1c0Rpc3BsYXkg
PSBzdGF0dXNEaXNwbGF5LmdldCgpOwotICAgICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoc3RhdHVz
RGlzcGxheS5yZWxlYXNlKCksIGVjKTsKKyAgICAgICAgUmVmPE1lZGlhQ29udHJvbFN0YXR1c0Rp
c3BsYXlFbGVtZW50PiBzdGF0dXNEaXNwbGF5ID0gTWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgICAgIGNvbnRyb2xzLT5tX3N0YXR1c0Rpc3Bs
YXkgPSBzdGF0dXNEaXNwbGF5LnB0cigpOworICAgICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RG
Ojptb3ZlKHN0YXR1c0Rpc3BsYXkpLCBlYyk7CiAgICAgICAgIGlmIChlYykKLSAgICAgICAgICAg
IHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgUmVm
UHRyPE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudD4gdGltZWxpbmVDb250YWlu
ZXIgPSBNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCk7CisgICAgUmVmPE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudD4gdGltZWxp
bmVDb250YWluZXIgPSBNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCk7CiAKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5
RWxlbWVudD4gY3VycmVudFRpbWVEaXNwbGF5ID0gTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNw
bGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBjb250cm9scy0+bV9jdXJyZW50VGlt
ZURpc3BsYXkgPSBjdXJyZW50VGltZURpc3BsYXkuZ2V0KCk7Ci0gICAgdGltZWxpbmVDb250YWlu
ZXItPmFwcGVuZENoaWxkKGN1cnJlbnRUaW1lRGlzcGxheS5yZWxlYXNlKCksIGVjKTsKKyAgICBS
ZWY8TWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudD4gY3VycmVudFRpbWVEaXNw
bGF5ID0gTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KTsKKyAgICBjb250cm9scy0+bV9jdXJyZW50VGltZURpc3BsYXkgPSBjdXJyZW50VGltZURp
c3BsYXkucHRyKCk7CisgICAgdGltZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKFdURjo6bW92
ZShjdXJyZW50VGltZURpc3BsYXkpLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sVGlt
ZWxpbmVFbGVtZW50PiB0aW1lbGluZSA9IE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50LCBjb250cm9scy5nZXQoKSk7Ci0gICAgY29udHJvbHMtPm1fdGltZWxpbmUg
PSB0aW1lbGluZS5nZXQoKTsKLSAgICB0aW1lbGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQodGlt
ZWxpbmUucmVsZWFzZSgpLCBlYyk7CisgICAgUmVmPE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVu
dD4gdGltZWxpbmUgPSBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCwgY29udHJvbHMuZ2V0KCkpOworICAgIGNvbnRyb2xzLT5tX3RpbWVsaW5lID0gdGltZWxpbmUu
cHRyKCk7CisgICAgdGltZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKFdURjo6bW92ZSh0aW1l
bGluZSksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxh
eUVsZW1lbnQ+IHRpbWVSZW1haW5pbmdEaXNwbGF5ID0gTWVkaWFDb250cm9sVGltZVJlbWFpbmlu
Z0Rpc3BsYXlFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNvbnRyb2xzLT5tX3RpbWVS
ZW1haW5pbmdEaXNwbGF5ID0gdGltZVJlbWFpbmluZ0Rpc3BsYXkuZ2V0KCk7Ci0gICAgdGltZWxp
bmVDb250YWluZXItPmFwcGVuZENoaWxkKHRpbWVSZW1haW5pbmdEaXNwbGF5LnJlbGVhc2UoKSwg
ZWMpOworICAgIFJlZjxNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ+IHRp
bWVSZW1haW5pbmdEaXNwbGF5ID0gTWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNvbnRyb2xzLT5tX3RpbWVSZW1haW5pbmdEaXNw
bGF5ID0gdGltZVJlbWFpbmluZ0Rpc3BsYXkucHRyKCk7CisgICAgdGltZWxpbmVDb250YWluZXIt
PmFwcGVuZENoaWxkKFdURjo6bW92ZSh0aW1lUmVtYWluaW5nRGlzcGxheSksIGVjKTsKICAgICBp
ZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAg
IGNvbnRyb2xzLT5tX3RpbWVsaW5lQ29udGFpbmVyID0gdGltZWxpbmVDb250YWluZXIuZ2V0KCk7
Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKHRpbWVsaW5lQ29udGFpbmVyLnJlbGVhc2UoKSwgZWMp
OworICAgIGNvbnRyb2xzLT5tX3RpbWVsaW5lQ29udGFpbmVyID0gdGltZWxpbmVDb250YWluZXIu
cHRyKCk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdURjo6bW92ZSh0aW1lbGluZUNvbnRhaW5l
ciksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAogICAgIC8vIEZJWE1FOiBPbmx5IGNyZWF0ZSB3aGVuIG5lZWRlZCA8aHR0cDov
L3dlYmtpdC5vcmcvYi81NzE2Mz4KLSAgICBSZWZQdHI8TWVkaWFDb250cm9sU2Vla0JhY2tCdXR0
b25FbGVtZW50PiBzZWVrQmFja0J1dHRvbiA9IE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBjb250cm9scy0+bV9zZWVrQmFja0J1dHRvbiA9
IHNlZWtCYWNrQnV0dG9uLmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChzZWVrQmFja0J1
dHRvbi5yZWxlYXNlKCksIGVjKTsKKyAgICBSZWY8TWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25F
bGVtZW50PiBzZWVrQmFja0J1dHRvbiA9IE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBjb250cm9scy0+bV9zZWVrQmFja0J1dHRvbiA9IHNl
ZWtCYWNrQnV0dG9uLnB0cigpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoc2Vl
a0JhY2tCdXR0b24pLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBGSVhNRTogT25seSBjcmVhdGUgd2hlbiBuZWVk
ZWQgPGh0dHA6Ly93ZWJraXQub3JnL2IvNTcxNjM+Ci0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFNl
ZWtGb3J3YXJkQnV0dG9uRWxlbWVudD4gc2Vla0ZvcndhcmRCdXR0b24gPSBNZWRpYUNvbnRyb2xT
ZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJvbHMt
Pm1fc2Vla0ZvcndhcmRCdXR0b24gPSBzZWVrRm9yd2FyZEJ1dHRvbi5nZXQoKTsKLSAgICBwYW5l
bC0+YXBwZW5kQ2hpbGQoc2Vla0ZvcndhcmRCdXR0b24ucmVsZWFzZSgpLCBlYyk7CisgICAgUmVm
PE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudD4gc2Vla0ZvcndhcmRCdXR0b24g
PSBNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7
CisgICAgY29udHJvbHMtPm1fc2Vla0ZvcndhcmRCdXR0b24gPSBzZWVrRm9yd2FyZEJ1dHRvbi5w
dHIoKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHNlZWtGb3J3YXJkQnV0dG9u
KSwgZWMpOwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBu
dWxscHRyOwogCiAgICAgaWYgKGRvY3VtZW50LnBhZ2UoKS0+dGhlbWUoKS5zdXBwb3J0c0Nsb3Nl
ZENhcHRpb25pbmcoKSkgewotICAgICAgICBSZWZQdHI8TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlv
bnNDb250YWluZXJFbGVtZW50PiBjbG9zZWRDYXB0aW9uc0NvbnRhaW5lciA9IE1lZGlhQ29udHJv
bENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICAg
ICAgUmVmPE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudD4gY2xvc2Vk
Q2FwdGlvbnNDb250YWluZXIgPSBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAKLSAgICAgICAgUmVmUHRyPE1lZGlhQ29udHJvbENs
b3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudD4gY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QgPSBN
ZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCwgY29udHJvbHMuZ2V0KCkpOwotICAgICAgICBjb250cm9scy0+bV9jbG9zZWRDYXB0aW9uc1Ry
YWNrTGlzdCA9IGNsb3NlZENhcHRpb25zVHJhY2tMaXN0LmdldCgpOwotICAgICAgICBjbG9zZWRD
YXB0aW9uc0NvbnRhaW5lci0+YXBwZW5kQ2hpbGQoY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QucmVs
ZWFzZSgpLCBlYyk7CisgICAgICAgIFJlZjxNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNr
TGlzdEVsZW1lbnQ+IGNsb3NlZENhcHRpb25zVHJhY2tMaXN0ID0gTWVkaWFDb250cm9sQ2xvc2Vk
Q2FwdGlvbnNUcmFja0xpc3RFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgp
KTsKKyAgICAgICAgY29udHJvbHMtPm1fY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QgPSBjbG9zZWRD
YXB0aW9uc1RyYWNrTGlzdC5wdHIoKTsKKyAgICAgICAgY2xvc2VkQ2FwdGlvbnNDb250YWluZXIt
PmFwcGVuZENoaWxkKFdURjo6bW92ZShjbG9zZWRDYXB0aW9uc1RyYWNrTGlzdCksIGVjKTsKICAg
ICAgICAgaWYgKGVjKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAotICAgICAgICBSZWZQdHI8TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlv
bnNCdXR0b25FbGVtZW50PiB0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbiA9IE1lZGlhQ29udHJv
bFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBjb250
cm9scy5nZXQoKSk7Ci0gICAgICAgIGNvbnRyb2xzLT5tX3RvZ2dsZUNsb3NlZENhcHRpb25zQnV0
dG9uID0gdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24uZ2V0KCk7Ci0gICAgICAgIHBhbmVsLT5h
cHBlbmRDaGlsZCh0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbi5yZWxlYXNlKCksIGVjKTsKKyAg
ICAgICAgUmVmPE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudD4g
dG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24gPSBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0
aW9uc0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOworICAg
ICAgICBjb250cm9scy0+bV90b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbiA9IHRvZ2dsZUNsb3Nl
ZENhcHRpb25zQnV0dG9uLnB0cigpOworICAgICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGOjpt
b3ZlKHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uKSwgZWMpOwogICAgICAgICBpZiAoZWMpCi0g
ICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAg
ICAgIGNvbnRyb2xzLT5tX2Nsb3NlZENhcHRpb25zQ29udGFpbmVyID0gY2xvc2VkQ2FwdGlvbnND
b250YWluZXIuZ2V0KCk7Ci0gICAgICAgIGNvbnRyb2xzLT5hcHBlbmRDaGlsZChjbG9zZWRDYXB0
aW9uc0NvbnRhaW5lci5yZWxlYXNlKCksIGVjKTsKKyAgICAgICAgY29udHJvbHMtPm1fY2xvc2Vk
Q2FwdGlvbnNDb250YWluZXIgPSBjbG9zZWRDYXB0aW9uc0NvbnRhaW5lci5wdHIoKTsKKyAgICAg
ICAgY29udHJvbHMtPmFwcGVuZENoaWxkKFdURjo6bW92ZShjbG9zZWRDYXB0aW9uc0NvbnRhaW5l
ciksIGVjKTsKICAgICAgICAgaWYgKGVjKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICAvLyBGSVhNRTogT25seSBjcmVhdGUg
d2hlbiBuZWVkZWQgPGh0dHA6Ly93ZWJraXQub3JnL2IvNTcxNjM+Ci0gICAgUmVmUHRyPE1lZGlh
Q29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50PiBmdWxsU2NyZWVuQnV0dG9uID0gTWVkaWFD
b250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgY29u
dHJvbHMtPm1fZnVsbFNjcmVlbkJ1dHRvbiA9IGZ1bGxTY3JlZW5CdXR0b24uZ2V0KCk7Ci0gICAg
cGFuZWwtPmFwcGVuZENoaWxkKGZ1bGxTY3JlZW5CdXR0b24ucmVsZWFzZSgpLCBlYyk7CisgICAg
UmVmPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50PiBmdWxsU2NyZWVuQnV0dG9u
ID0gTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7
CisgICAgY29udHJvbHMtPm1fZnVsbFNjcmVlbkJ1dHRvbiA9IGZ1bGxTY3JlZW5CdXR0b24ucHRy
KCk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdURjo6bW92ZShmdWxsU2NyZWVuQnV0dG9uKSwg
ZWMpOwogCiAgICAgLy8gVGhlIG11dGUgYnV0dG9uIGFuZCB0aGUgc2xpZGVyIGVsZW1lbnQgc2hv
dWxkIGJlIGluIHRoZSBzYW1lIGRpdi4KLSAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IHBhbmVs
Vm9sdW1lQ29udHJvbENvbnRhaW5lciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQp
OworICAgIFJlZjxIVE1MRGl2RWxlbWVudD4gcGFuZWxWb2x1bWVDb250cm9sQ29udGFpbmVyID0g
SFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAKICAgICBpZiAoZG9jdW1lbnQucGFn
ZSgpLT50aGVtZSgpLnVzZXNNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXIoKSkgewotICAgICAgICBS
ZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudD4gdm9sdW1lU2xp
ZGVyQ29udGFpbmVyID0gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50KTsKKyAgICAgICAgUmVmPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNv
bnRhaW5lckVsZW1lbnQ+IHZvbHVtZVNsaWRlckNvbnRhaW5lciA9IE1lZGlhQ29udHJvbFZvbHVt
ZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAKLSAgICAgICAgUmVm
UHRyPE1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xpZGVyRWxlbWVudD4gc2xpZGVyID0gTWVkaWFD
b250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgICAg
ICBjb250cm9scy0+bV92b2x1bWVTbGlkZXIgPSBzbGlkZXIuZ2V0KCk7Ci0gICAgICAgIHZvbHVt
ZVNsaWRlckNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoc2xpZGVyLnJlbGVhc2UoKSwgZWMpOworICAg
ICAgICBSZWY8TWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50PiBzbGlkZXIgPSBN
ZWRpYUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Cisg
ICAgICAgIGNvbnRyb2xzLT5tX3ZvbHVtZVNsaWRlciA9IHNsaWRlci5wdHIoKTsKKyAgICAgICAg
dm9sdW1lU2xpZGVyQ29udGFpbmVyLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoc2xpZGVyKSwgZWMp
OwogICAgICAgICBpZiAoZWMpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJl
dHVybiBudWxscHRyOwogCiAgICAgICAgIC8vIFRoaXMgaXMgYSBkdXBsaWNhdGUgbXV0ZSBidXR0
b24sIHdoaWNoIGlzIHZpc2libGUgaW4gc29tZSBwb3J0cyBhdCB0aGUgYm90dG9tIG9mIHRoZSB2
b2x1bWUgYmFyLgogICAgICAgICAvLyBJdCdzIGltcG9ydGFudCBvbmx5IHdoZW4gdGhlIHZvbHVt
ZSBiYXIgaXMgZGlzcGxheWVkIGJlbG93IHRoZSBjb250cm9scy4KLSAgICAgICAgUmVmUHRyPE1l
ZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50PiB2b2x1bWVTbGlkZXJNdXRl
QnV0dG9uID0gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCk7Ci0gICAgICAgIGNvbnRyb2xzLT5tX3ZvbHVtZVNsaWRlck11dGVCdXR0b24g
PSB2b2x1bWVTbGlkZXJNdXRlQnV0dG9uLmdldCgpOwotICAgICAgICB2b2x1bWVTbGlkZXJDb250
YWluZXItPmFwcGVuZENoaWxkKHZvbHVtZVNsaWRlck11dGVCdXR0b24ucmVsZWFzZSgpLCBlYyk7
CisgICAgICAgIFJlZjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudD4g
dm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbiA9IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0
b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgICAgICBjb250cm9scy0+bV92b2x1bWVT
bGlkZXJNdXRlQnV0dG9uID0gdm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbi5wdHIoKTsKKyAgICAgICAg
dm9sdW1lU2xpZGVyQ29udGFpbmVyLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUodm9sdW1lU2xpZGVy
TXV0ZUJ1dHRvbiksIGVjKTsKIAogICAgICAgICBpZiAoZWMpCi0gICAgICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgICAgIGNvbnRyb2xzLT5tX3Zv
bHVtZVNsaWRlckNvbnRhaW5lciA9IHZvbHVtZVNsaWRlckNvbnRhaW5lci5nZXQoKTsKLSAgICAg
ICAgcGFuZWxWb2x1bWVDb250cm9sQ29udGFpbmVyLT5hcHBlbmRDaGlsZCh2b2x1bWVTbGlkZXJD
b250YWluZXIucmVsZWFzZSgpLCBlYyk7CisgICAgICAgIGNvbnRyb2xzLT5tX3ZvbHVtZVNsaWRl
ckNvbnRhaW5lciA9IHZvbHVtZVNsaWRlckNvbnRhaW5lci5wdHIoKTsKKyAgICAgICAgcGFuZWxW
b2x1bWVDb250cm9sQ29udGFpbmVyLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUodm9sdW1lU2xpZGVy
Q29udGFpbmVyKSwgZWMpOwogICAgICAgICBpZiAoZWMpCi0gICAgICAgICAgICByZXR1cm4gMDsK
KyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIFJlZlB0cjxNZWRpYUNv
bnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50PiBwYW5lbE11dGVCdXR0b24gPSBNZWRpYUNvbnRy
b2xQYW5lbE11dGVCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgp
KTsKLSAgICBjb250cm9scy0+bV9wYW5lbE11dGVCdXR0b24gPSBwYW5lbE11dGVCdXR0b24uZ2V0
KCk7Ci0gICAgcGFuZWxWb2x1bWVDb250cm9sQ29udGFpbmVyLT5hcHBlbmRDaGlsZChwYW5lbE11
dGVCdXR0b24ucmVsZWFzZSgpLCBlYyk7CisgICAgUmVmPE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1
dHRvbkVsZW1lbnQ+IHBhbmVsTXV0ZUJ1dHRvbiA9IE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRv
bkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOworICAgIGNvbnRyb2xz
LT5tX3BhbmVsTXV0ZUJ1dHRvbiA9IHBhbmVsTXV0ZUJ1dHRvbi5wdHIoKTsKKyAgICBwYW5lbFZv
bHVtZUNvbnRyb2xDb250YWluZXItPmFwcGVuZENoaWxkKFdURjo6bW92ZShwYW5lbE11dGVCdXR0
b24pLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQocGFuZWxWb2x1bWVDb250cm9sQ29u
dGFpbmVyLCBlYyk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdURjo6bW92ZShwYW5lbFZvbHVt
ZUNvbnRyb2xDb250YWluZXIpLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBGSVhNRTogT25seSBjcmVhdGUgd2hl
biBuZWVkZWQgPGh0dHA6Ly93ZWJraXQub3JnL2IvNTcxNjM+Ci0gICAgUmVmUHRyPE1lZGlhQ29u
dHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50PiBmdWxsU2NyZWVuTWluVm9sdW1l
QnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJvbHMtPm1fZnVsbFNjcmVlbk1pblZvbHVtZUJ1dHRv
biA9IGZ1bGxTY3JlZW5NaW5Wb2x1bWVCdXR0b24uZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENo
aWxkKGZ1bGxTY3JlZW5NaW5Wb2x1bWVCdXR0b24ucmVsZWFzZSgpLCBlYyk7CisgICAgUmVmPE1l
ZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50PiBmdWxsU2NyZWVuTWlu
Vm9sdW1lQnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgY29udHJvbHMtPm1fZnVsbFNjcmVlbk1pblZvbHVt
ZUJ1dHRvbiA9IGZ1bGxTY3JlZW5NaW5Wb2x1bWVCdXR0b24ucHRyKCk7CisgICAgcGFuZWwtPmFw
cGVuZENoaWxkKFdURjo6bW92ZShmdWxsU2NyZWVuTWluVm9sdW1lQnV0dG9uKSwgZWMpOwogICAg
IGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0g
ICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50PiBmdWxs
U2NyZWVuVm9sdW1lU2xpZGVyID0gTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJvbHMtPm1fZnVsbFNjcmVlblZvbHVt
ZVNsaWRlciA9IGZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXIuZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVu
ZENoaWxkKGZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXIucmVsZWFzZSgpLCBlYyk7CisgICAgUmVmPE1l
ZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50PiBmdWxsU2NyZWVuVm9sdW1l
U2xpZGVyID0gTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCk7CisgICAgY29udHJvbHMtPm1fZnVsbFNjcmVlblZvbHVtZVNsaWRlciA9IGZ1
bGxTY3JlZW5Wb2x1bWVTbGlkZXIucHRyKCk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdURjo6
bW92ZShmdWxsU2NyZWVuVm9sdW1lU2xpZGVyKSwgZWMpOwogICAgIGlmIChlYykKLSAgICAgICAg
cmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgUmVmUHRyPE1lZGlhQ29u
dHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50PiBmdWxsU2NyZWVuTWF4Vm9sdW1l
QnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJvbHMtPm1fZnVsbFNjcmVlbk1heFZvbHVtZUJ1dHRv
biA9IGZ1bGxTY3JlZW5NYXhWb2x1bWVCdXR0b24uZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENo
aWxkKGZ1bGxTY3JlZW5NYXhWb2x1bWVCdXR0b24ucmVsZWFzZSgpLCBlYyk7CisgICAgUmVmPE1l
ZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50PiBmdWxsU2NyZWVuTWF4
Vm9sdW1lQnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgY29udHJvbHMtPm1fZnVsbFNjcmVlbk1heFZvbHVt
ZUJ1dHRvbiA9IGZ1bGxTY3JlZW5NYXhWb2x1bWVCdXR0b24ucHRyKCk7CisgICAgcGFuZWwtPmFw
cGVuZENoaWxkKFdURjo6bW92ZShmdWxsU2NyZWVuTWF4Vm9sdW1lQnV0dG9uKSwgZWMpOwogICAg
IGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0g
ICAgY29udHJvbHMtPm1fcGFuZWwgPSBwYW5lbC5nZXQoKTsKLSAgICBjb250cm9scy0+YXBwZW5k
Q2hpbGQocGFuZWwucmVsZWFzZSgpLCBlYyk7CisgICAgY29udHJvbHMtPm1fcGFuZWwgPSBwYW5l
bC5wdHIoKTsKKyAgICBjb250cm9scy0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHBhbmVsKSwgZWMp
OwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRy
OwogCiAgICAgcmV0dXJuIGNvbnRyb2xzLnJlbGVhc2UoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCmluZGV4IDUyY2FjMDUwYzk0
NjI5NmMyNmYxYWMzNTZjYTY5ZWY3NTFiMTIxYzguLjJjYWM2ZjRjODgwODkyMjY4NjNlMzVlMTJl
YmQ5ODYxM2U1NzNmNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Ns
aWRlclRodW1iRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xp
ZGVyVGh1bWJFbGVtZW50LmNwcApAQCAtNjEyLDcgKzYxMiw3IEBAIGNvbnN0IEF0b21pY1N0cmlu
ZyYgU2xpZGVyVGh1bWJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiAgICAgfQogfQog
Ci1SZWZQdHI8RWxlbWVudD4gU2xpZGVyVGh1bWJFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0
QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCkKK1JlZjxFbGVt
ZW50PiBTbGlkZXJUaHVtYkVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5k
Q2hpbGRyZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50KQogewogICAgIHJldHVybiBjcmVhdGUo
dGFyZ2V0RG9jdW1lbnQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvU2xpZGVyVGh1bWJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlk
ZXJUaHVtYkVsZW1lbnQuaAppbmRleCA0OGVjZDU1MjZkMGIwYTU3ODE2MGY3MmQ4MjYyYjJmMTdi
ZmU2YWI4Li5jZjJmODVhN2VkZGY3OTRlNzg1ZGY3NmJhYzA5ZjkzODY1NWZkMjExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaApAQCAtNjIs
NyArNjIsNyBAQCBwcml2YXRlOgogICAgIFNsaWRlclRodW1iRWxlbWVudChEb2N1bWVudCYpOwog
CiAgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJp
ZGU7Ci0gICAgdmlydHVhbCBSZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJp
YnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPEVs
ZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQm
KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNEaXNhYmxlZEZvcm1Db250cm9sKCkgY29u
c3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIG1hdGNoZXNSZWFkV3JpdGVQc2V1ZG9DbGFz
cygpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgRWxlbWVudCogZm9jdXNEZWxlZ2F0ZSgp
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0lt
YWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcAppbmRleCBhNDRhNWRlMDY5MmEx
NmIzYjQ5ZGI4NzQxMTk1YmFhYWRlN2Y1OTZjLi5jNDRjNTE4ODJjYjgxODc4NjFiNjZiNTZjZmM1
YTljMjI4ZTJhZWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMv
SW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcApAQCAtODUsMTIgKzg1
LDEzIEBAIFJlZlB0cjxJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQ+IEltYWdlQ29udHJvbHNSb290
RWxlbWVudDo6bWF5YmVDcmVhdGUoRG9jdW1lbnQmCiAgICAgaWYgKCFkb2N1bWVudC5wYWdlKCkp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgUmVmUHRyPEltYWdlQ29udHJvbHNSb290
RWxlbWVudE1hYz4gY29udHJvbHMgPSBhZG9wdFJlZigqbmV3IEltYWdlQ29udHJvbHNSb290RWxl
bWVudE1hYyhkb2N1bWVudCkpOworICAgIFJlZjxJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWM+
IGNvbnRyb2xzID0gYWRvcHRSZWYoKm5ldyBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMoZG9j
dW1lbnQpKTsKICAgICBjb250cm9scy0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6Y2xhc3NBdHRy
LCAieC13ZWJraXQtaW1hZ2UtY29udHJvbHMiKTsKIAotICAgIGNvbnRyb2xzLT5hcHBlbmRDaGls
ZChJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYzo6bWF5YmVDcmVhdGUoZG9jdW1lbnQpKTsK
KyAgICBpZiAoUmVmUHRyPEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjPiBidXR0b24gPSBJ
bWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYzo6bWF5YmVDcmVhdGUoZG9jdW1lbnQpKQorICAg
ICAgICBjb250cm9scy0+YXBwZW5kQ2hpbGQoYnV0dG9uLnJlbGVhc2VOb25OdWxsKCkpOwogCi0g
ICAgcmV0dXJuIGNvbnRyb2xzLnJlbGVhc2UoKTsKKyAgICByZXR1cm4gV1RGOjptb3ZlKGNvbnRy
b2xzKTsKIH0KIAogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjOjpJbWFnZUNvbnRyb2xzUm9v
dEVsZW1lbnRNYWMoRG9jdW1lbnQmIGRvY3VtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9WVFRDdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRD
dWUuY3BwCmluZGV4IGE5NjkwZDZmOTk2MTlmMzcwOWE2YjhhMjVkNmJmZTMxNTM1MGFhZWQuLjlk
NmNhNzJkYThkODE1Yjc3ZjA1OThmOGQ5ZjIzMTIzOWI5ZjU2OTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1ZUVEN1ZS5jcHAKQEAgLTQ5Niw3ICs0OTYsNyBAQCB2b2lkIFZUVEN1ZTo6Y29weVdl
YlZUVE5vZGVUb0RPTVRyZWUoQ29udGFpbmVyTm9kZSogd2ViVlRUTm9kZSwgQ29udGFpbmVyTm9k
ZSogcAogICAgICAgICAgICAgY2xvbmVkTm9kZSA9IGRvd25jYXN0PFdlYlZUVEVsZW1lbnQ+KCpu
b2RlKS5jcmVhdGVFcXVpdmFsZW50SFRNTEVsZW1lbnQob3duZXJEb2N1bWVudCgpKTsKICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgY2xvbmVkTm9kZSA9IG5vZGUtPmNsb25lTm9kZShmYWxzZSk7
Ci0gICAgICAgIHBhcmVudC0+YXBwZW5kQ2hpbGQoY2xvbmVkTm9kZSwgQVNTRVJUX05PX0VYQ0VQ
VElPTik7CisgICAgICAgIHBhcmVudC0+YXBwZW5kQ2hpbGQoKmNsb25lZE5vZGUsIEFTU0VSVF9O
T19FWENFUFRJT04pOwogICAgICAgICBpZiAoaXM8Q29udGFpbmVyTm9kZT4oKm5vZGUpKQogICAg
ICAgICAgICAgY29weVdlYlZUVE5vZGVUb0RPTVRyZWUoZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4o
bm9kZSksIGRvd25jYXN0PENvbnRhaW5lck5vZGU+KGNsb25lZE5vZGUuZ2V0KCkpKTsKICAgICB9
CkBAIC01MTgsMTAgKzUxOCwxMCBAQCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFZUVEN1
ZTo6Y3JlYXRlQ3VlUmVuZGVyaW5nVHJlZSgpCiAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IGNsb25lZEZyYWdtZW50OwogICAgIGNyZWF0ZVdlYlZUVE5vZGVUcmVlKCk7CiAgICAgaWYgKCFt
X3dlYlZUVE5vZGVUcmVlKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKICAgICBjbG9uZWRGcmFnbWVudCA9IERvY3VtZW50RnJhZ21lbnQ6OmNyZWF0ZShvd25l
ckRvY3VtZW50KCkpOwotICAgIG1fd2ViVlRUTm9kZVRyZWUtPmNsb25lQ2hpbGROb2RlcyhjbG9u
ZWRGcmFnbWVudC5nZXQoKSk7CisgICAgbV93ZWJWVFROb2RlVHJlZS0+Y2xvbmVDaGlsZE5vZGVz
KCpjbG9uZWRGcmFnbWVudCk7CiAgICAgcmV0dXJuIGNsb25lZEZyYWdtZW50LnJlbGVhc2UoKTsK
IH0KIApAQCAtNzg1LDcgKzc4NSw3IEBAIHZvaWQgVlRUQ3VlOjp1cGRhdGVEaXNwbGF5VHJlZShj
b25zdCBNZWRpYVRpbWUmIG1vdmllVGltZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbWFya0Z1
dHVyZUFuZFBhc3ROb2RlcyhyZWZlcmVuY2VUcmVlLmdldCgpLCBzdGFydE1lZGlhVGltZSgpLCBt
b3ZpZVRpbWUpOwotICAgIG1fY3VlSGlnaGxpZ2h0Qm94LT5hcHBlbmRDaGlsZChyZWZlcmVuY2VU
cmVlKTsKKyAgICBtX2N1ZUhpZ2hsaWdodEJveC0+YXBwZW5kQ2hpbGQocmVmZXJlbmNlVHJlZS5y
ZWxlYXNlTm9uTnVsbCgpKTsKIH0KIAogVlRUQ3VlQm94KiBWVFRDdWU6OmdldERpc3BsYXlUcmVl
KGNvbnN0IEludFNpemUmIHZpZGVvU2l6ZSwgaW50IGZvbnRTaXplKQpAQCAtODEyLDggKzgxMiw4
IEBAIFZUVEN1ZUJveCogVlRUQ3VlOjpnZXREaXNwbGF5VHJlZShjb25zdCBJbnRTaXplJiB2aWRl
b1NpemUsIGludCBmb250U2l6ZSkKICAgICBtX2N1ZUhpZ2hsaWdodEJveC0+c2V0UHNldWRvKGN1
ZVNoYWRvd1BzZXVkb0lkKCkpOwogCiAgICAgbV9jdWVCYWNrZHJvcEJveC0+c2V0UHNldWRvKGN1
ZUJhY2tkcm9wU2hhZG93UHNldWRvSWQoKSk7Ci0gICAgbV9jdWVCYWNrZHJvcEJveC0+YXBwZW5k
Q2hpbGQobV9jdWVIaWdobGlnaHRCb3gsIEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgIGRpc3Bs
YXlUcmVlLT5hcHBlbmRDaGlsZChtX2N1ZUJhY2tkcm9wQm94LCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKKyAgICBtX2N1ZUJhY2tkcm9wQm94LT5hcHBlbmRDaGlsZCgqbV9jdWVIaWdobGlnaHRCb3gs
IEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIGRpc3BsYXlUcmVlLT5hcHBlbmRDaGlsZCgqbV9j
dWVCYWNrZHJvcEJveCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKICAgICAvLyBGSVhNRShCVUcg
Nzk5MTYpOiBSdW5zIG9mIGNoaWxkcmVuIG9mIFdlYlZUVCBSdWJ5IE9iamVjdHMgdGhhdCBhcmUg
bm90CiAgICAgLy8gV2ViVlRUIFJ1YnkgVGV4dCBPYmplY3RzIG11c3QgYmUgd3JhcHBlZCBpbiBh
bm9ueW1vdXMgYm94ZXMgd2hvc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svVlRUUmVnaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmNw
cAppbmRleCBjY2IzMmUwMzlkNWM1M2FmZWVjMDUwMmI2NWUwMGFjMWU2ZmZkZWYzLi44NTc5ODY4
ZTk4MWZmYmYyOTE2NjJiNjU0ZDUzZWI5YWRmYmRiYjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9WVFRSZWdpb24uY3BwCkBAIC0zNTQsNyArMzU0LDcgQEAgdm9pZCBWVFRSZWdpb246OmFw
cGVuZFRleHRUcmFja0N1ZUJveChQYXNzUmVmUHRyPFZUVEN1ZUJveD4gZGlzcGxheUJveCkKICAg
ICBpZiAobV9jdWVDb250YWluZXItPmNvbnRhaW5zKGRpc3BsYXlCb3guZ2V0KCkpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBtX2N1ZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoZGlzcGxheUJveCwg
QVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgbV9jdWVDb250YWluZXItPmFwcGVuZENoaWxkKCpk
aXNwbGF5Qm94LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICBkaXNwbGF5TGFzdFRleHRUcmFj
a0N1ZUJveCgpOwogfQogCkBAIC00MDQsMTQgKzQwNCwxNCBAQCB2b2lkIFZUVFJlZ2lvbjo6d2ls
bFJlbW92ZVRleHRUcmFja0N1ZUJveChWVFRDdWVCb3gqIGJveCkKICAgICBtX2N1ZUNvbnRhaW5l
ci0+c2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eVRvcCwgbV9jdXJyZW50VG9wLCBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BYKTsKIH0KIAotUGFzc1JlZlB0cjxIVE1MRGl2RWxlbWVu
dD4gVlRUUmVnaW9uOjpnZXREaXNwbGF5VHJlZSgpCitIVE1MRGl2RWxlbWVudCYgVlRUUmVnaW9u
OjpnZXREaXNwbGF5VHJlZSgpCiB7CiAgICAgaWYgKCFtX3JlZ2lvbkRpc3BsYXlUcmVlKSB7CiAg
ICAgICAgIG1fcmVnaW9uRGlzcGxheVRyZWUgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKCpvd25l
ckRvY3VtZW50KCkpOwogICAgICAgICBwcmVwYXJlUmVnaW9uRGlzcGxheVRyZWUoKTsKICAgICB9
CiAKLSAgICByZXR1cm4gbV9yZWdpb25EaXNwbGF5VHJlZTsKKyAgICByZXR1cm4gKm1fcmVnaW9u
RGlzcGxheVRyZWU7CiB9CiAKIHZvaWQgVlRUUmVnaW9uOjpwcmVwYXJlUmVnaW9uRGlzcGxheVRy
ZWUoKQpAQCAtNDUzLDcgKzQ1Myw3IEBAIHZvaWQgVlRUUmVnaW9uOjpwcmVwYXJlUmVnaW9uRGlz
cGxheVRyZWUoKQogICAgIG1fY3VlQ29udGFpbmVyLT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENT
U1Byb3BlcnR5VG9wLCAwLjBmLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BYKTsKIAogICAgIG1f
Y3VlQ29udGFpbmVyLT5zZXRQc2V1ZG8odGV4dFRyYWNrQ3VlQ29udGFpbmVyU2hhZG93UHNldWRv
SWQoKSk7Ci0gICAgbV9yZWdpb25EaXNwbGF5VHJlZS0+YXBwZW5kQ2hpbGQobV9jdWVDb250YWlu
ZXIpOworICAgIG1fcmVnaW9uRGlzcGxheVRyZWUtPmFwcGVuZENoaWxkKCptX2N1ZUNvbnRhaW5l
cik7CiAKICAgICAvLyA3LjUgRXZlcnkgV2ViVlRUIHJlZ2lvbiBvYmplY3QgaXMgaW5pdGlhbGlz
ZWQgd2l0aCB0aGUgZm9sbG93aW5nIENTUwogICAgIG1fcmVnaW9uRGlzcGxheVRyZWUtPnNldFBz
ZXVkbyh0ZXh0VHJhY2tSZWdpb25TaGFkb3dQc2V1ZG9JZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1ZUVFJlZ2lvbi5oCmluZGV4IDc3NzFlOGViMDA4NTdiZjQzMmMxY2Q1NGI0ODYxNzczNmQw
NGU2NWQuLjg5MjVhZjFiYzM3MjA1ZWIwN2E1YTdiOGU4Y2Y2OTcyMTgwY2EwNTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24uaApAQCAtODksNyArODksNyBAQCBwdWJsaWM6CiAK
ICAgICBib29sIGlzU2Nyb2xsaW5nUmVnaW9uKCkgeyByZXR1cm4gbV9zY3JvbGw7IH0KIAotICAg
IFBhc3NSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IGdldERpc3BsYXlUcmVlKCk7CisgICAgSFRNTERp
dkVsZW1lbnQmIGdldERpc3BsYXlUcmVlKCk7CiAgICAgCiAgICAgdm9pZCBhcHBlbmRUZXh0VHJh
Y2tDdWVCb3goUGFzc1JlZlB0cjxWVFRDdWVCb3g+KTsKICAgICB2b2lkIGRpc3BsYXlMYXN0VGV4
dFRyYWNrQ3VlQm94KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dl
YlZUVEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50
LmNwcAppbmRleCA0YTJmMzFiM2U1NjM0ZjMxMDJmZjU0ZWJmMGZhMGQ5NjZhOTU3YTBlLi4xNDk2
YmIwM2E2YTUwMGY1Yjc5NjE0MGQ1OTBjM2Q5NWZlZmIyMjBjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5jcHAKQEAgLTgwLDExICs4MCwxMSBAQCBSZWY8V2Vi
VlRURWxlbWVudD4gV2ViVlRURWxlbWVudDo6Y3JlYXRlKFdlYlZUVE5vZGVUeXBlIG5vZGVUeXBl
LCBEb2N1bWVudCYgZG9jdQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlZUVEVsZW1lbnQo
bm9kZVR5cGUsIGRvY3VtZW50KSk7CiB9CiAKLVJlZlB0cjxFbGVtZW50PiBXZWJWVFRFbGVtZW50
OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50JiB0YXJn
ZXREb2N1bWVudCkKK1JlZjxFbGVtZW50PiBXZWJWVFRFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRo
b3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCkKIHsKLSAg
ICBSZWZQdHI8V2ViVlRURWxlbWVudD4gY2xvbmUgPSBjcmVhdGUoc3RhdGljX2Nhc3Q8V2ViVlRU
Tm9kZVR5cGU+KG1fd2ViVlRUTm9kZVR5cGUpLCB0YXJnZXREb2N1bWVudCk7CisgICAgUmVmPFdl
YlZUVEVsZW1lbnQ+IGNsb25lID0gY3JlYXRlKHN0YXRpY19jYXN0PFdlYlZUVE5vZGVUeXBlPiht
X3dlYlZUVE5vZGVUeXBlKSwgdGFyZ2V0RG9jdW1lbnQpOwogICAgIGNsb25lLT5zZXRMYW5ndWFn
ZShtX2xhbmd1YWdlKTsKLSAgICByZXR1cm4gY2xvbmU7CisgICAgcmV0dXJuIFdURjo6bW92ZShj
bG9uZSk7CiB9CiAKIFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IFdlYlZUVEVsZW1lbnQ6OmNyZWF0
ZUVxdWl2YWxlbnRIVE1MRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5oCmluZGV4IDFiZTc2MzZjMzY2M2Q4NThiZDc2MzZh
ZWNjYzE5YjcwNmRmYzZiOGMuLjg5ZDNkMmM1NGRiYzZiOWU1MjA2MmZmNGYyYWNmNzQ5OGI5ZmM3
YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5oCkBAIC00OSw3
ICs0OSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYlZUVEVsZW1lbnQ+IGNyZWF0ZShj
b25zdCBXZWJWVFROb2RlVHlwZSwgRG9jdW1lbnQmKTsKICAgICBQYXNzUmVmUHRyPEhUTUxFbGVt
ZW50PiBjcmVhdGVFcXVpdmFsZW50SFRNTEVsZW1lbnQoRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1
YWwgUmVmUHRyPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRy
ZW4oRG9jdW1lbnQmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxFbGVtZW50PiBjbG9uZUVs
ZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50Jikgb3ZlcnJpZGU7CiAK
ICAgICB2b2lkIHNldFdlYlZUVE5vZGVUeXBlKFdlYlZUVE5vZGVUeXBlIHR5cGUpIHsgbV93ZWJW
VFROb2RlVHlwZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPih0eXBlKTsgfQogICAgIFdlYlZUVE5v
ZGVUeXBlIHdlYlZUVE5vZGVUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViVlRU
Tm9kZVR5cGU+KG1fd2ViVlRUTm9kZVR5cGUpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNTU0FnZW50LmNwcAppbmRleCBiNmEzMTEzZWY3ZDY3OTk0MDVlYWEzMTQz
MDYzZjhiYmFkZWEwMmI1Li44NTdhZDE5MTc2NzU2N2E1YmExNzViNjljY2FmMjE0ZjQ2MDYyYmMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAK
QEAgLTc5Niw3ICs3OTYsNyBAQCBJbnNwZWN0b3JTdHlsZVNoZWV0KiBJbnNwZWN0b3JDU1NBZ2Vu
dDo6Y3JlYXRlSW5zcGVjdG9yU3R5bGVTaGVldEZvckRvY3VtZW50KERvYwogICAgIC8vIFNldCB0
aGlzIGZsYWcsIHNvIHdoZW4gd2UgY3JlYXRlIGl0LCB3ZSBwdXQgaXQgaW50byB0aGUgdmlhIGlu
c3BlY3RvciBtYXAuCiAgICAgbV9jcmVhdGluZ1ZpYUluc3BlY3RvclN0eWxlU2hlZXQgPSB0cnVl
OwogICAgIElubGluZVN0eWxlT3ZlcnJpZGVTY29wZSBvdmVycmlkZVNjb3BlKGRvY3VtZW50KTsK
LSAgICB0YXJnZXROb2RlLT5hcHBlbmRDaGlsZChzdHlsZUVsZW1lbnQsIGVjKTsKKyAgICB0YXJn
ZXROb2RlLT5hcHBlbmRDaGlsZChzdHlsZUVsZW1lbnQucmVsZWFzZU5vbk51bGwoKSwgZWMpOwog
ICAgIG1fY3JlYXRpbmdWaWFJbnNwZWN0b3JTdHlsZVNoZWV0ID0gZmFsc2U7CiAgICAgaWYgKGVj
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxl
ci5jcHAKaW5kZXggY2ViNGFhMWE1MTZmNDdkNTY5ODAxYjU2NjBkNzlmM2U2OTMyN2MyZi4uYzRk
OTYzZWE4NmY0YThmNmE0NjMxYWVlMDQ3YzA3ODZkOGY5ZTI0NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTEzOCw3ICsxMzgsNyBAQCBzdGF0aWMgUGFzc1JlZlB0
cjxEb2N1bWVudEZyYWdtZW50PiBkb2N1bWVudEZyYWdtZW50RnJvbURyYWdEYXRhKERyYWdEYXRh
JiBkcmFnRAogICAgICAgICAgICAgU3RyaW5nIHRpdGxlOwogICAgICAgICAgICAgU3RyaW5nIHVy
bCA9IGRyYWdEYXRhLmFzVVJMKERyYWdEYXRhOjpEb05vdENvbnZlcnRGaWxlbmFtZXMsICZ0aXRs
ZSk7CiAgICAgICAgICAgICBpZiAoIXVybC5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICBS
ZWZQdHI8SFRNTEFuY2hvckVsZW1lbnQ+IGFuY2hvciA9IEhUTUxBbmNob3JFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQpOworICAgICAgICAgICAgICAgIFJlZjxIVE1MQW5jaG9yRWxlbWVudD4gYW5j
aG9yID0gSFRNTEFuY2hvckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgICAgICAgICAg
ICAgYW5jaG9yLT5zZXRIcmVmKHVybCk7CiAgICAgICAgICAgICAgICAgaWYgKHRpdGxlLmlzRW1w
dHkoKSkgewogICAgICAgICAgICAgICAgICAgICAvLyBUcnkgdGhlIHBsYWluIHRleHQgZmlyc3Qg
YmVjYXVzZSB0aGUgdXJsIG1pZ2h0IGJlIG5vcm1hbGl6ZWQgb3IgZXNjYXBlZC4KQEAgLTE0Nywy
MCArMTQ3LDE5IEBAIHN0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGRvY3VtZW50
RnJhZ21lbnRGcm9tRHJhZ0RhdGEoRHJhZ0RhdGEmIGRyYWdECiAgICAgICAgICAgICAgICAgICAg
IGlmICh0aXRsZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IHVy
bDsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgUmVmUHRyPE5vZGU+IGFuY2hv
clRleHQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0aXRsZSk7Ci0gICAgICAgICAgICAgICAg
YW5jaG9yLT5hcHBlbmRDaGlsZChhbmNob3JUZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKLSAgICAg
ICAgICAgICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBkb2N1bWVudC5j
cmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAgICAgICAgICAgICAgZnJhZ21lbnQtPmFwcGVu
ZENoaWxkKGFuY2hvciwgSUdOT1JFX0VYQ0VQVElPTik7Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IGZyYWdtZW50LmdldCgpOworICAgICAgICAgICAgICAgIGFuY2hvci0+YXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUodGl0bGUpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAg
ICAgICAgICBSZWY8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBkb2N1bWVudC5jcmVhdGVE
b2N1bWVudEZyYWdtZW50KCk7CisgICAgICAgICAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxk
KFdURjo6bW92ZShhbmNob3IpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gZnJhZ21lbnQucHRyKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAg
ICAgaWYgKGFsbG93UGxhaW5UZXh0ICYmIGRyYWdEYXRhLmNvbnRhaW5zUGxhaW5UZXh0KCkpIHsK
ICAgICAgICAgY2hvc2VQbGFpblRleHQgPSB0cnVlOwotICAgICAgICByZXR1cm4gY3JlYXRlRnJh
Z21lbnRGcm9tVGV4dChjb250ZXh0LCBkcmFnRGF0YS5hc1BsYWluVGV4dCgpKS5nZXQoKTsKKyAg
ICAgICAgcmV0dXJuIGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoY29udGV4dCwgZHJhZ0RhdGEuYXNQ
bGFpblRleHQoKSkucHRyKCk7CiAgICAgfQogCi0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51
bGxwdHI7CiB9CiAKIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OmRyYWdJc01vdmUoRnJhbWVTZWxlY3Rp
b24mIHNlbGVjdGlvbiwgRHJhZ0RhdGEmIGRyYWdEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9pb3MvRnJhbWVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9GcmFt
ZUlPUy5tbQppbmRleCA0NjY3NGZjYmMwM2Y5ZTcyOWQwYjZkMjMzOTVkNTU5ZTUwYTdiMDdiLi5h
M2U3ZThkYmM5Zjg2Y2EwYjQwZWZmYzkwMTY0MGVkMTU2M2YxYmJhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2lvcy9GcmFtZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2lvcy9GcmFtZUlPUy5tbQpAQCAtOTUsOCArOTUsOCBAQCB2b2lkIEZyYW1lOjppbml0V2l0aFNp
bXBsZUhUTUxEb2N1bWVudChjb25zdCBTdHJpbmcmIHN0eWxlLCBjb25zdCBVUkwmIHVybCkKICAg
ICBpZiAoIXN0eWxlLmlzRW1wdHkoKSkKICAgICAgICAgYm9keS0+c2V0QXR0cmlidXRlKEhUTUxO
YW1lczo6c3R5bGVBdHRyLCBzdHlsZSk7CiAKLSAgICByb290RWxlbWVudC0+YXBwZW5kQ2hpbGQo
Ym9keSwgZWMpOwotICAgIGRvY3VtZW50LT5hcHBlbmRDaGlsZChyb290RWxlbWVudCwgZWMpOwor
ICAgIHJvb3RFbGVtZW50LT5hcHBlbmRDaGlsZChib2R5LnJlbGVhc2VOb25OdWxsKCksIGVjKTsK
KyAgICBkb2N1bWVudC0+YXBwZW5kQ2hpbGQocm9vdEVsZW1lbnQucmVsZWFzZU5vbk51bGwoKSwg
ZWMpOwogfQogCiBjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgRnJhbWU6OnZpZXdwb3J0QXJndW1l
bnRzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcAppbmRleCA2
ZjNjYTgzZTg1MzIyMmRmZDVlODA1MjcyZjBmNWM5NDY0MzRkMjI0Li44YWRmY2ZhNDEwYWJlNDdl
MzMyNGFlNWI4ZDkyNDNmNTY2NjQ1ZDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVs
ZW1lbnQuY3BwCkBAIC0xNTYsOSArMTU2LDkgQEAgYm9vbCBTVkdTY3JpcHRFbGVtZW50OjpoYXNT
b3VyY2VBdHRyaWJ1dGUoKSBjb25zdAogICAgIHJldHVybiBoYXNBdHRyaWJ1dGUoWExpbmtOYW1l
czo6aHJlZkF0dHIpOwogfQogCi1SZWZQdHI8RWxlbWVudD4gU1ZHU2NyaXB0RWxlbWVudDo6Y2xv
bmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9j
dW1lbnQpCitSZWY8RWxlbWVudD4gU1ZHU2NyaXB0RWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aG91
dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdTY3JpcHRFbGVtZW50KHRhZ1FOYW1lKCksIHRhcmdldERv
Y3VtZW50LCBmYWxzZSwgYWxyZWFkeVN0YXJ0ZWQoKSkpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFNWR1NjcmlwdEVsZW1lbnQodGFnUU5hbWUoKSwgdGFyZ2V0RG9jdW1lbnQsIGZhbHNlLCBh
bHJlYWR5U3RhcnRlZCgpKSk7CiB9CiAKICNpZm5kZWYgTkRFQlVHCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1NjcmlwdEVsZW1lbnQuaAppbmRleCA0YzFhYTA4ZTZkMmZjOGZmOGRhOTlmNDI3Y2VjN2Q0ZjJj
NjRlMzA1Li41MzVlNDJlNmYwNjQ2ZDgwMTA0MTkwOTNjNjIyOTI0YjM4M2Q3MTAxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKQEAgLTY1LDcgKzY1LDcgQEAgcHJpdmF0ZToK
IAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaExvYWRFdmVudCgpIG92ZXJyaWRlIHsgU1ZHRXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6ZGlzcGF0Y2hMb2FkRXZlbnQodGhpcyk7IH0KIAotICAg
IHZpcnR1YWwgUmVmUHRyPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5k
Q2hpbGRyZW4oRG9jdW1lbnQmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxFbGVtZW50PiBj
bG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50Jikgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUm
KSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgLy8gU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCmluZGV4IDcwNGZlNGEy
Mjk4MmU5YjQwNDQxNTkxMjE3ZDM3NWQ1NTc0ZDUzNWIuLjY0ZTEwYWE2MDA0ZjQ3MDA2MWJmMzVh
NjI5YTA0ZDg4ODcyYjJkNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKQEAg
LTMzMiw3ICszMzIsNyBAQCBzdGF0aWMgdm9pZCByZW1vdmVEaXNhbGxvd2VkRWxlbWVudHNGcm9t
U3VidHJlZShTVkdFbGVtZW50JiBzdWJ0cmVlKQogICAgIGZvciAoYXV0byogZWxlbWVudCA6IGRp
c2FsbG93ZWRFbGVtZW50cykgewogICAgICAgICBmb3IgKGF1dG8mIGRlc2NlbmRhbnQgOiBkZXNj
ZW5kYW50c09mVHlwZTxTVkdFbGVtZW50PigqZWxlbWVudCkpCiAgICAgICAgICAgICBkZXNjZW5k
YW50LnNldENvcnJlc3BvbmRpbmdFbGVtZW50KG51bGxwdHIpOwotICAgICAgICBlbGVtZW50LT5w
YXJlbnROb2RlKCktPnJlbW92ZUNoaWxkKGVsZW1lbnQpOworICAgICAgICBlbGVtZW50LT5wYXJl
bnROb2RlKCktPnJlbW92ZUNoaWxkKCplbGVtZW50KTsKICAgICB9CiB9CiAKQEAgLTQwNSw3ICs0
MDUsNyBAQCBTVkdFbGVtZW50KiBTVkdVc2VFbGVtZW50OjpmaW5kVGFyZ2V0KFN0cmluZyogdGFy
Z2V0SUQpIGNvbnN0CiAKIHZvaWQgU1ZHVXNlRWxlbWVudDo6Y2xvbmVUYXJnZXQoQ29udGFpbmVy
Tm9kZSYgY29udGFpbmVyLCBTVkdFbGVtZW50JiB0YXJnZXQpIGNvbnN0CiB7Ci0gICAgUmVmPFNW
R0VsZW1lbnQ+IHRhcmdldENsb25lID0gc3RhdGljX3BvaW50ZXJfY2FzdDxTVkdFbGVtZW50Pih0
YXJnZXQuY2xvbmVFbGVtZW50V2l0aENoaWxkcmVuKGRvY3VtZW50KCkpKS5yZWxlYXNlTm9uTnVs
bCgpOworICAgIFJlZjxTVkdFbGVtZW50PiB0YXJnZXRDbG9uZSA9IHN0YXRpY19jYXN0PFNWR0Vs
ZW1lbnQmPih0YXJnZXQuY2xvbmVFbGVtZW50V2l0aENoaWxkcmVuKGRvY3VtZW50KCkpLmdldCgp
KTsKICAgICBhc3NvY2lhdGVDbG9uZXNXaXRoT3JpZ2luYWxzKHRhcmdldENsb25lLmdldCgpLCB0
YXJnZXQpOwogICAgIHJlbW92ZURpc2FsbG93ZWRFbGVtZW50c0Zyb21TdWJ0cmVlKHRhcmdldENs
b25lLmdldCgpKTsKICAgICB0cmFuc2ZlclNpemVBdHRyaWJ1dGVzVG9UYXJnZXRDbG9uZSh0YXJn
ZXRDbG9uZS5nZXQoKSk7CkBAIC00MTksNyArNDE5LDcgQEAgc3RhdGljIHZvaWQgY2xvbmVEYXRh
QW5kQ2hpbGRyZW4oU1ZHRWxlbWVudCYgcmVwbGFjZW1lbnRDbG9uZSwgU1ZHRWxlbWVudCYgb3Jp
Z2kKICAgICBBU1NFUlQoIXJlcGxhY2VtZW50Q2xvbmUucGFyZW50Tm9kZSgpKTsKIAogICAgIHJl
cGxhY2VtZW50Q2xvbmUuY2xvbmVEYXRhRnJvbUVsZW1lbnQob3JpZ2luYWxDbG9uZSk7Ci0gICAg
b3JpZ2luYWxDbG9uZS5jbG9uZUNoaWxkTm9kZXMoJnJlcGxhY2VtZW50Q2xvbmUpOworICAgIG9y
aWdpbmFsQ2xvbmUuY2xvbmVDaGlsZE5vZGVzKHJlcGxhY2VtZW50Q2xvbmUpOwogICAgIGFzc29j
aWF0ZVJlcGxhY2VtZW50Q2xvbmVzV2l0aE9yaWdpbmFscyhyZXBsYWNlbWVudENsb25lLCBvcmln
aW5hbENsb25lKTsKICAgICByZW1vdmVEaXNhbGxvd2VkRWxlbWVudHNGcm9tU3VidHJlZShyZXBs
YWNlbWVudENsb25lKTsKIH0KQEAgLTQ0OCw3ICs0NDgsNyBAQCB2b2lkIFNWR1VzZUVsZW1lbnQ6
OmV4cGFuZFVzZUVsZW1lbnRzSW5TaGFkb3dUcmVlKCkgY29uc3QKICAgICAgICAgaWYgKHRhcmdl
dCkKICAgICAgICAgICAgIG9yaWdpbmFsQ2xvbmUuY2xvbmVUYXJnZXQocmVwbGFjZW1lbnRDbG9u
ZS5nZXQoKSwgKnRhcmdldCk7CiAKLSAgICAgICAgb3JpZ2luYWxDbG9uZS5wYXJlbnROb2RlKCkt
PnJlcGxhY2VDaGlsZChyZXBsYWNlbWVudENsb25lLnB0cigpLCAmb3JpZ2luYWxDbG9uZSk7Cisg
ICAgICAgIG9yaWdpbmFsQ2xvbmUucGFyZW50Tm9kZSgpLT5yZXBsYWNlQ2hpbGQocmVwbGFjZW1l
bnRDbG9uZS5jb3B5UmVmKCksIG9yaWdpbmFsQ2xvbmUpOwogCiAgICAgICAgIC8vIFJlc3VtZSBp
dGVyYXRpbmcsIHN0YXJ0aW5nIGp1c3QgaW5zaWRlIHRoZSByZXBsYWNlbWVudCBjbG9uZS4KICAg
ICAgICAgaXQgPSBkZXNjZW5kYW50cy5mcm9tKHJlcGxhY2VtZW50Q2xvbmUuZ2V0KCkpOwpAQCAt
NDcyLDcgKzQ3Miw3IEBAIHZvaWQgU1ZHVXNlRWxlbWVudDo6ZXhwYW5kU3ltYm9sRWxlbWVudHNJ
blNoYWRvd1RyZWUoKSBjb25zdAogICAgICAgICBhdXRvIHJlcGxhY2VtZW50Q2xvbmUgPSBTVkdT
VkdFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CiAgICAgICAgIGNsb25lRGF0YUFuZENoaWxk
cmVuKHJlcGxhY2VtZW50Q2xvbmUuZ2V0KCksIG9yaWdpbmFsQ2xvbmUpOwogCi0gICAgICAgIG9y
aWdpbmFsQ2xvbmUucGFyZW50Tm9kZSgpLT5yZXBsYWNlQ2hpbGQocmVwbGFjZW1lbnRDbG9uZS5w
dHIoKSwgJm9yaWdpbmFsQ2xvbmUpOworICAgICAgICBvcmlnaW5hbENsb25lLnBhcmVudE5vZGUo
KS0+cmVwbGFjZUNoaWxkKHJlcGxhY2VtZW50Q2xvbmUuY29weVJlZigpLCBvcmlnaW5hbENsb25l
KTsKIAogICAgICAgICAvLyBSZXN1bWUgaXRlcmF0aW5nLCBzdGFydGluZyBqdXN0IGluc2lkZSB0
aGUgcmVwbGFjZW1lbnQgY2xvbmUuCiAgICAgICAgIGl0ID0gZGVzY2VuZGFudHMuZnJvbShyZXBs
YWNlbWVudENsb25lLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxU
cmVlVmlld2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxUcmVlVmlld2VyLmNwcAppbmRl
eCA0MDk2ZTQzNWQ2M2Y1NzA4NDQ4MDJjMjE3NzA4YWRkOWViNjA1MTc1Li5hOWY3N2VhMTYzODQ4
Zjg1MGI2MzVjOTJiOTBjYTk0Mjc3MmY4OGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94
bWwvWE1MVHJlZVZpZXdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTFRyZWVWaWV3
ZXIuY3BwCkBAIC02MSw4ICs2MSw4IEBAIHZvaWQgWE1MVHJlZVZpZXdlcjo6dHJhbnNmb3JtRG9j
dW1lbnRUb1RyZWVWaWV3KCkKICAgICBtX2RvY3VtZW50LmZyYW1lKCktPnNjcmlwdCgpLmV2YWx1
YXRlKFNjcmlwdFNvdXJjZUNvZGUoQXRvbWljU3RyaW5nKCJwcmVwYXJlV2ViS2l0WE1MVmlld2Vy
KCdUaGlzIFhNTCBmaWxlIGRvZXMgbm90IGFwcGVhciB0byBoYXZlIGFueSBzdHlsZSBpbmZvcm1h
dGlvbiBhc3NvY2lhdGVkIHdpdGggaXQuIFRoZSBkb2N1bWVudCB0cmVlIGlzIHNob3duIGJlbG93
LicpOyIpKSk7CiAKICAgICBTdHJpbmcgY3NzU3RyaW5nID0gU3RyaW5nSW1wbDo6Y3JlYXRlV2l0
aG91dENvcHlpbmcoWE1MVmlld2VyX2Nzcywgc2l6ZW9mKFhNTFZpZXdlcl9jc3MpKTsKLSAgICBS
ZWZQdHI8VGV4dD4gdGV4dCA9IG1fZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzU3RyaW5nKTsK
LSAgICBtX2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKFN0cmluZyhBU0NJSUxpdGVyYWwoInhtbC12
aWV3ZXItc3R5bGUiKSkpLT5hcHBlbmRDaGlsZCh0ZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAg
ICBSZWY8VGV4dD4gdGV4dCA9IG1fZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzU3RyaW5nKTsK
KyAgICBtX2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKFN0cmluZyhBU0NJSUxpdGVyYWwoInhtbC12
aWV3ZXItc3R5bGUiKSkpLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUodGV4dCksIElHTk9SRV9FWENF
UFRJT04pOwogICAgIG1fZG9jdW1lbnQuc3R5bGVSZXNvbHZlckNoYW5nZWQoUmVjYWxjU3R5bGVJ
bW1lZGlhdGVseSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4
IDBiMzIxMjA3YzMyM2U0ZGEwMDkzMGU5YzgwNGUwZDIzOGE5NGNkZDkuLjI4MWEzY2FkNmY4ODFi
MWE2YzA2ZTEyYTZiYzgyNTRlMmIwMmY2ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJG
cmFtZS5tbQpAQCAtODkwLDkgKzg5MCw5IEBAIC0gKERPTURvY3VtZW50RnJhZ21lbnQgKilfZG9j
dW1lbnRGcmFnbWVudFdpdGhOb2Rlc0FzUGFyYWdyYXBoczooTlNBcnJheSAqKW5vZGVzCiAgICAg
UmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gZG9jdW1lbnQtPmNyZWF0ZURvY3Vt
ZW50RnJhZ21lbnQoKTsKIAogICAgIGZvciAoYXV0byogbm9kZSA6IG5vZGVzVmVjdG9yKSB7Ci0g
ICAgICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gY3JlYXRlRGVmYXVsdFBhcmFncmFwaEVs
ZW1lbnQoKmRvY3VtZW50KTsKLSAgICAgICAgZWxlbWVudC0+YXBwZW5kQ2hpbGQobm9kZSk7Ci0g
ICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChlbGVtZW50LnJlbGVhc2UoKSk7CisgICAgICAg
IFJlZjxFbGVtZW50PiBlbGVtZW50ID0gY3JlYXRlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQoKmRv
Y3VtZW50KTsKKyAgICAgICAgZWxlbWVudC0+YXBwZW5kQ2hpbGQoKm5vZGUpOworICAgICAgICBm
cmFnbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGVsZW1lbnQpKTsKICAgICB9CiAKICAgICBy
ZXR1cm4ga2l0KGZyYWdtZW50LnJlbGVhc2UoKS5nZXQoKSk7CkBAIC0xODczLDcgKzE4NzMsNyBA
QCAtICh2b2lkKV9yZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQ6KE5TU3RyaW5nICopdGV4dCBzZWxl
Y3RSZXBsYWNlbWVudDooQk9PTClzZWxlYwogewogICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBf
cHJpdmF0ZS0+Y29yZUZyYW1lLT5zZWxlY3Rpb24oKS50b05vcm1hbGl6ZWRSYW5nZSgpOwogCi0g
ICAgRE9NRG9jdW1lbnRGcmFnbWVudCogZnJhZ21lbnQgPSByYW5nZSA/IGtpdChjcmVhdGVGcmFn
bWVudEZyb21UZXh0KCpyYW5nZSwgdGV4dCkuZ2V0KCkpIDogbmlsOworICAgIERPTURvY3VtZW50
RnJhZ21lbnQqIGZyYWdtZW50ID0gcmFuZ2UgPyBraXQoY3JlYXRlRnJhZ21lbnRGcm9tVGV4dCgq
cmFuZ2UsIHRleHQpLnB0cigpKSA6IG5pbDsKICAgICBbc2VsZiBfcmVwbGFjZVNlbGVjdGlvbldp
dGhGcmFnbWVudDpmcmFnbWVudCBzZWxlY3RSZXBsYWNlbWVudDpzZWxlY3RSZXBsYWNlbWVudCBz
bWFydFJlcGxhY2U6c21hcnRSZXBsYWNlIG1hdGNoU3R5bGU6bWF0Y2hTdHlsZV07CiB9CiAKQEAg
LTE5NTgsNyArMTk1OCw3IEBAIC0gKHZvaWQpX3JlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dDooTlNT
dHJpbmcgKil0ZXh0IHNlbGVjdFJlcGxhY2VtZW50OihCT09MKXNlbGVjCiB7CiAgICAgUmVmUHRy
PFJhbmdlPiByYW5nZSA9IF9wcml2YXRlLT5jb3JlRnJhbWUtPnNlbGVjdGlvbigpLnRvTm9ybWFs
aXplZFJhbmdlKCk7CiAgICAgCi0gICAgRE9NRG9jdW1lbnRGcmFnbWVudCogZnJhZ21lbnQgPSBy
YW5nZSA/IGtpdChjcmVhdGVGcmFnbWVudEZyb21UZXh0KCpyYW5nZSwgdGV4dCkuZ2V0KCkpIDog
bmlsOworICAgIERPTURvY3VtZW50RnJhZ21lbnQqIGZyYWdtZW50ID0gcmFuZ2UgPyBraXQoY3Jl
YXRlRnJhZ21lbnRGcm9tVGV4dCgqcmFuZ2UsIHRleHQpLnB0cigpKSA6IG5pbDsKICAgICBbc2Vs
ZiBfcmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudDpmcmFnbWVudCBzZWxlY3RSZXBsYWNlbWVu
dDpzZWxlY3RSZXBsYWNlbWVudCBzbWFydFJlcGxhY2U6c21hcnRSZXBsYWNlIG1hdGNoU3R5bGU6
WUVTXTsKIH0KIApAQCAtMjI2NCw3ICsyMjY0LDcgQEAgLSAoTlNBcnJheSAqKV9jb21wdXRlUGFn
ZVJlY3RzV2l0aFByaW50U2NhbGVGYWN0b3I6KGZsb2F0KXByaW50U2NhbGVGYWN0b3IgcGFnZVMK
ICNpZiBQTEFURk9STShJT1MpCiAtIChET01Eb2N1bWVudEZyYWdtZW50ICopX2RvY3VtZW50RnJh
Z21lbnRGb3JUZXh0OihOU1N0cmluZyAqKXRleHQKIHsKLSAgICByZXR1cm4ga2l0KGNyZWF0ZUZy
YWdtZW50RnJvbVRleHQoKl9wcml2YXRlLT5jb3JlRnJhbWUtPnNlbGVjdGlvbigpLnRvTm9ybWFs
aXplZFJhbmdlKCkuZ2V0KCksIHRleHQpLmdldCgpKTsKKyAgICByZXR1cm4ga2l0KGNyZWF0ZUZy
YWdtZW50RnJvbVRleHQoKl9wcml2YXRlLT5jb3JlRnJhbWUtPnNlbGVjdGlvbigpLnRvTm9ybWFs
aXplZFJhbmdlKCkuZ2V0KCksIHRleHQpLnB0cigpKTsKIH0KIAogLSAoRE9NRG9jdW1lbnRGcmFn
bWVudCAqKV9kb2N1bWVudEZyYWdtZW50Rm9yV2ViQXJjaGl2ZTooV2ViQXJjaGl2ZSAqKXdlYkFy
Y2hpdmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcu
bW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4IDMwOTgw
ZDMwYWE2N2UyZGViOTgyMWU5N2QwMDcyMjUwZTU1YmQyYTQuLmIyNTcxOWZiOTBiNmE0NDdjYzI4
NzRkZGE1ZGNmM2FlOTFjY2NlMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViSFRNTFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1M
Vmlldy5tbQpAQCAtMjI2Nyw3ICsyMjY3LDcgQEAgLSAoRE9NRG9jdW1lbnRGcmFnbWVudCAqKV9k
b2N1bWVudEZyYWdtZW50RnJvbVBhc3RlYm9hcmQ6KE5TUGFzdGVib2FyZCAqKXBhc3RlYm8KICAg
ICBpZiAocGJvYXJkVHlwZSA9PSBOU1N0cmluZ1Bib2FyZFR5cGUpIHsKICAgICAgICAgaWYgKCFj
b250ZXh0KQogICAgICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICAgICAgcmV0dXJuIGtpdChjcmVh
dGVGcmFnbWVudEZyb21UZXh0KCpjb3JlKGNvbnRleHQpLCBbW3Bhc3RlYm9hcmQgc3RyaW5nRm9y
VHlwZTpOU1N0cmluZ1Bib2FyZFR5cGVdIHByZWNvbXBvc2VkU3RyaW5nV2l0aENhbm9uaWNhbE1h
cHBpbmddKS5nZXQoKSk7CisgICAgICAgIHJldHVybiBraXQoY3JlYXRlRnJhZ21lbnRGcm9tVGV4
dCgqY29yZShjb250ZXh0KSwgW1twYXN0ZWJvYXJkIHN0cmluZ0ZvclR5cGU6TlNTdHJpbmdQYm9h
cmRUeXBlXSBwcmVjb21wb3NlZFN0cmluZ1dpdGhDYW5vbmljYWxNYXBwaW5nXSkucHRyKCkpOwog
ICAgIH0KICAgICByZXR1cm4gbmlsOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQppbmRleCA1M2RiZmE1OTA2ZTM3MmIxMzRmM2U4
OWNjYzRkYjJiYWEyMDBjMGRhLi4xNzM0MGRlMzYzNDk3Mjc4YTBkODhkZTQ1ZDVjNmI5Mzk0OWZk
Y2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BE
RlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BE
RlBsdWdpbi5tbQpAQCAtNTI1LDExICs1MjUsMTEgQEAgUERGUGx1Z2luOjpQREZQbHVnaW4oV2Vi
RnJhbWUqIGZyYW1lKQogICAgICAgICBtX2Fubm90YXRpb25Db250YWluZXIgPSBkb2N1bWVudC0+
Y3JlYXRlRWxlbWVudChkaXZUYWcsIGZhbHNlKTsKICAgICAgICAgbV9hbm5vdGF0aW9uQ29udGFp
bmVyLT5zZXRBdHRyaWJ1dGUoaWRBdHRyLCAiYW5ub3RhdGlvbkNvbnRhaW5lciIpOwogCi0gICAg
ICAgIFJlZlB0cjxFbGVtZW50PiBtX2Fubm90YXRpb25TdHlsZSA9IGRvY3VtZW50LT5jcmVhdGVF
bGVtZW50KHN0eWxlVGFnLCBmYWxzZSk7Ci0gICAgICAgIG1fYW5ub3RhdGlvblN0eWxlLT5zZXRU
ZXh0Q29udGVudChhbm5vdGF0aW9uU3R5bGUsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAg
ICBSZWY8RWxlbWVudD4gYW5ub3RhdGlvblN0eWxlRWxlbWVudCA9IGRvY3VtZW50LT5jcmVhdGVF
bGVtZW50KHN0eWxlVGFnLCBmYWxzZSk7CisgICAgICAgIGFubm90YXRpb25TdHlsZUVsZW1lbnQt
PnNldFRleHRDb250ZW50KGFubm90YXRpb25TdHlsZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAK
LSAgICAgICAgbV9hbm5vdGF0aW9uQ29udGFpbmVyLT5hcHBlbmRDaGlsZChtX2Fubm90YXRpb25T
dHlsZS5nZXQoKSk7Ci0gICAgICAgIGRvY3VtZW50LT5ib2R5T3JGcmFtZXNldCgpLT5hcHBlbmRD
aGlsZChtX2Fubm90YXRpb25Db250YWluZXIuZ2V0KCkpOworICAgICAgICBtX2Fubm90YXRpb25D
b250YWluZXItPmFwcGVuZENoaWxkKFdURjo6bW92ZShhbm5vdGF0aW9uU3R5bGVFbGVtZW50KSk7
CisgICAgICAgIGRvY3VtZW50LT5ib2R5T3JGcmFtZXNldCgpLT5hcHBlbmRDaGlsZCgqbV9hbm5v
dGF0aW9uQ29udGFpbmVyKTsKICAgICB9CiAKICAgICBtX2FjY2Vzc2liaWxpdHlPYmplY3QgPSBh
ZG9wdE5TKFtbV0tQREZQbHVnaW5BY2Nlc3NpYmlsaXR5T2JqZWN0IGFsbG9jXSBpbml0V2l0aFBE
RlBsdWdpbjp0aGlzXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvUERGL1BERlBsdWdpbkFubm90YXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkFubm90YXRpb24ubW0KaW5kZXggMzRiNTIyZDg5YmEz
Mjk2ZWYxZTBlY2U1YmJlMjIxODYxOGU2MzZmMS4uYTAyOWQyNWY5MWU4MmU2ZGIxYjJmMGZhNWEy
YmUzOGQ2YzFjNzJiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9QREZQbHVnaW5Bbm5vdGF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQW5ub3RhdGlvbi5tbQpAQCAtNzQsNyArNzQsNyBA
QCB2b2lkIFBERlBsdWdpbkFubm90YXRpb246OmF0dGFjaChFbGVtZW50KiBwYXJlbnQpCiAKICAg
ICB1cGRhdGVHZW9tZXRyeSgpOwogCi0gICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKG1fZWxlbWVu
dCk7CisgICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKCptX2VsZW1lbnQpOwogCiAgICAgLy8gRklY
TUU6IFRoZSB0ZXh0IGN1cnNvciBkb2Vzbid0IGJsaW5rIGFmdGVyIHRoaXMuIFdoeT8KICAgICBt
X2VsZW1lbnQtPmZvY3VzKCk7CkBAIC05Miw3ICs5Miw3IEBAIFBERlBsdWdpbkFubm90YXRpb246
On5QREZQbHVnaW5Bbm5vdGF0aW9uKCkKIAogICAgIG1fZXZlbnRMaXN0ZW5lci0+c2V0QW5ub3Rh
dGlvbigwKTsKIAotICAgIG1fcGFyZW50LT5yZW1vdmVDaGlsZChlbGVtZW50KCkpOworICAgIG1f
cGFyZW50LT5yZW1vdmVDaGlsZCgqZWxlbWVudCgpKTsKIH0KIAogdm9pZCBQREZQbHVnaW5Bbm5v
dGF0aW9uOjp1cGRhdGVHZW9tZXRyeSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24ubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24u
bW0KaW5kZXggZTFhOGU1ODIyYjI1ZTg3OTM1MWYzNDkwYmU5NTRkMWRiODE5ZGQ0Yi4uNjIxZGMw
MTFkYjg3NGZkZjNkZjIzMDVhZTQwNzM2NzlmMzZmMGYzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hv
aWNlQW5ub3RhdGlvbi5tbQpAQCAtODMsMTQgKzgzLDE0IEBAIFBhc3NSZWZQdHI8RWxlbWVudD4g
UERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbjo6Y3JlYXRlQW5ub3RhdGlvbkVsZW1lbnQoKQogICAg
IE5TU3RyaW5nICpzZWxlY3RlZENob2ljZSA9IGNob2ljZUFubm90YXRpb24uc3RyaW5nVmFsdWU7
CiAKICAgICBmb3IgKE5TU3RyaW5nICpjaG9pY2UgaW4gY2hvaWNlcykgewotICAgICAgICBSZWZQ
dHI8RWxlbWVudD4gY2hvaWNlT3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChvcHRpb25U
YWcsIGZhbHNlKTsKKyAgICAgICAgUmVmPEVsZW1lbnQ+IGNob2ljZU9wdGlvbiA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQob3B0aW9uVGFnLCBmYWxzZSk7CiAgICAgICAgIGNob2ljZU9wdGlvbi0+
c2V0QXR0cmlidXRlKHZhbHVlQXR0ciwgY2hvaWNlKTsKICAgICAgICAgY2hvaWNlT3B0aW9uLT5z
ZXRUZXh0Q29udGVudChjaG9pY2UsIEFTU0VSVF9OT19FWENFUFRJT04pOwogCiAgICAgICAgIGlm
IChjaG9pY2UgPT0gc2VsZWN0ZWRDaG9pY2UpCiAgICAgICAgICAgICBjaG9pY2VPcHRpb24tPnNl
dEF0dHJpYnV0ZShzZWxlY3RlZEF0dHIsICJzZWxlY3RlZCIpOwogCi0gICAgICAgIHN0eWxlZEVs
ZW1lbnQtPmFwcGVuZENoaWxkKGNob2ljZU9wdGlvbik7CisgICAgICAgIHN0eWxlZEVsZW1lbnQt
PmFwcGVuZENoaWxkKFdURjo6bW92ZShjaG9pY2VPcHRpb24pKTsKICAgICB9CiAKICAgICByZXR1
cm4gZWxlbWVudDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCA2NDE2OGVlYTU4ODdhNzg2MDYwNzQ0YTRjYTA1ZjJhODk2MGZh
MjJhLi4xMTQ2ZDBlMWFjNzZjZWU1Y2M3MWNkOGQ5ZjIwZDdjNmE3NGUwZmYwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjcgQEAKKzIwMTUtMDktMDggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBOb2RlLmFwcGVuZENoaWxkKG51bGwpIC8gcmVwbGFjZUNoaWxkKG51bGwsIG51
bGwpIC8gcmVtb3ZlQ2hpbGQobnVsbCkgLyBpbnNlcnRCZWZvcmUobnVsbCwgcmVmKSBzaG91bGQg
dGhyb3cgYSBUeXBlRXJyb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0ODk3MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjI1NjA4ODM+CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8yMjU1OTIyNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgLyByZWJhc2VsaW5lIHRlc3RzIG5vdyB0aGF0
IHdlIHRocm93IGEgZGlmZmVyZW50IGV4Y2VwdGlvbiB0eXBlLgorCisgICAgICAgICogZmFzdC9k
b20vRG9jdW1lbnQvcmVwbGFjZUNoaWxkLW51bGwtb2xkQ2hpbGQtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvZG9tL0RvY3VtZW50L3NjcmlwdC10ZXN0cy9yZXBsYWNlQ2hpbGQtbnVsbC1v
bGRDaGlsZC5qczoKKyAgICAgICAgKiBmYXN0L2RvbS9Ob2RlL2ZyYWdtZW50LW11dGF0aW9uLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9Ob2RlL2ZyYWdtZW50LW11dGF0aW9uLmh0
bWw6CisgICAgICAgICogZmFzdC9kb20vaW5jb21wYXRpYmxlLW9wZXJhdGlvbnMtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGZhc3QvZG9tL2luY29tcGF0aWJsZS1vcGVyYXRpb25zLmh0bWw6Cisg
ICAgICAgICogZmFzdC9kb20vbW92ZS1ub2Rlcy1hY3Jvc3MtZG9jdW1lbnRzLmh0bWw6CisgICAg
ICAgICogZmFzdC9kb20vcHJvY2Vzc2luZy1pbnN0cnVjdGlvbi1hcHBlbmRDaGlsZC1leGNlcHRp
b25zLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9wcm9jZXNzaW5nLWluc3RydWN0
aW9uLWFwcGVuZENoaWxkLWV4Y2VwdGlvbnMueGh0bWw6CisgICAgICAgICogZmFzdC9kb20vc2V0
dGVyLXR5cGUtZW5mb3JjZW1lbnQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL3Rp
bWVyLWNsZWFyLWludGVydmFsLWluLWhhbmRsZXItYW5kLWdlbmVyYXRlLWVycm9yLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBmYXN0L2luc3BlY3Rvci1zdXBwb3J0L3VuY2F1Z2h0LWRvbTgtZXhj
ZXB0aW9uLmh0bWw6CisKIDIwMTUtMDktMDkgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29t
PgogCiAgICAgICAgIFJFR1JFU1NJT046IElubGluZS1ibG9jayBiYXNlbGluZSBpcyB3cm9uZyB3
aGVuIHplcm8td2lkdGggcmVwbGFjZWQgY2hpbGQgaXMgcHJlc2VudApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cKaW5kZXggNzI3ODJlMDUyMDdkZTM1YWYyMTg5MGJmNzBjODMyZjkxYTViMmQx
NC4uN2FmNjUwNTc5ZjdiYTdjNjRiNzliMzM4ZmE4MDJjODk3OTAyZWEwNiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjMgQEAKIDIwMTUtMDktMDggIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAorICAgICAgICBOb2RlLmFwcGVuZENoaWxkKG51bGwp
IC8gcmVwbGFjZUNoaWxkKG51bGwsIG51bGwpIC8gcmVtb3ZlQ2hpbGQobnVsbCkgLyBpbnNlcnRC
ZWZvcmUobnVsbCwgcmVmKSBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3IKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODk3MQorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMjI1NjA4ODM+CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjU1OTIyNT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWJhc2VsaW5l
IFczQyB0ZXN0cyBub3cgdGhhdCBtb3JlIGNoZWNrcyBhcmUgcGFzc2luZy4KKworICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLWFwcGVuZENoaWxkLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtaW5zZXJ0
QmVmb3JlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25v
ZGVzL05vZGUtcmVtb3ZlQ2hpbGQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9kb20vbm9kZXMvTm9kZS1yZXBsYWNlQ2hpbGQtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dDoK
KworMjAxNS0wOS0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCiAgICAgICAg
IFVucmV2aWV3ZWQsIGRyb3AgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Nl
bWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2xvY2F0aW9uLW9mLXRoZS1t
ZWRpYS1yZXNvdXJjZS9jdXJyZW50U3JjLmh0bWwuCiAKICAgICAgICAgVGhpcyByZWNlbnRseSBp
bXBvcnRlZCB0ZXN0IGlzIGZsYWt5LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
RG9jdW1lbnQvcmVwbGFjZUNoaWxkLW51bGwtb2xkQ2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvcmVwbGFjZUNoaWxkLW51bGwtb2xkQ2hpbGQtZXhwZWN0
ZWQudHh0CmluZGV4IGJiYjE2NmIyMjdhNTJlNjUxNDVhZGJmNDA0ODc4NTNiMGQzNjhkMjQuLmFm
NWE0NjlmNWY4Y2M2OTcxMDFiYzkyYTQwZjgyNDU1YjhiZTVjZDAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50L3JlcGxhY2VDaGlsZC1udWxsLW9sZENoaWxkLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Eb2N1bWVudC9yZXBsYWNlQ2hpbGQt
bnVsbC1vbGRDaGlsZC1leHBlY3RlZC50eHQKQEAgLTMsNyArMyw3IEBAIFRlc3QgYmVoYXZpb3Ig
b2YgRG9jdW1lbnQucmVwbGFjZUNoaWxkKCkgd2hlbiBvbGRDaGlsZCBpcyBudWxsLgogT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1MgZG9jdW1lbnQucmVwbGFjZUNoaWxkKGRvY3Vt
ZW50LmZpcnN0Q2hpbGQsIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm90Rm91bmRFcnJv
cjogRE9NIEV4Y2VwdGlvbiA4LgorUEFTUyBkb2N1bWVudC5yZXBsYWNlQ2hpbGQoZG9jdW1lbnQu
Zmlyc3RDaGlsZCwgbnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4K
IFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvc2NyaXB0LXRlc3RzL3JlcGxhY2VD
aGlsZC1udWxsLW9sZENoaWxkLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvc2Ny
aXB0LXRlc3RzL3JlcGxhY2VDaGlsZC1udWxsLW9sZENoaWxkLmpzCmluZGV4IGRhOTI1MjgwMDUx
ZTE5N2UxYWY1YzllYTRhMjViNDFiOTZlYzNhNWYuLmMwOWJmMWIxOGQyOTllNjc0NTIzMDUzNjY3
YThjMjVkOGE5ODA3MGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50
L3NjcmlwdC10ZXN0cy9yZXBsYWNlQ2hpbGQtbnVsbC1vbGRDaGlsZC5qcworKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9Eb2N1bWVudC9zY3JpcHQtdGVzdHMvcmVwbGFjZUNoaWxkLW51bGwtb2xk
Q2hpbGQuanMKQEAgLTEsMyArMSwzIEBACiBkZXNjcmlwdGlvbignVGVzdCBiZWhhdmlvciBvZiBE
b2N1bWVudC5yZXBsYWNlQ2hpbGQoKSB3aGVuIG9sZENoaWxkIGlzIG51bGwuJyk7CiAKLXNob3Vs
ZFRocm93KCdkb2N1bWVudC5yZXBsYWNlQ2hpbGQoZG9jdW1lbnQuZmlyc3RDaGlsZCwgbnVsbCkn
LCAnIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiJyk7CitzaG91bGRUaHJv
dygnZG9jdW1lbnQucmVwbGFjZUNoaWxkKGRvY3VtZW50LmZpcnN0Q2hpbGQsIG51bGwpJywgJyJU
eXBlRXJyb3I6IFR5cGUgZXJyb3IiJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9Ob2RlL2ZyYWdtZW50LW11dGF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL05vZGUvZnJhZ21lbnQtbXV0YXRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDBmMDRlNjZhMGU1
M2U2ZjViMTkwMWM1ZGNiMTc2ZjY3ZjJlNGY4NjguLjRiYTk1MjRjNzJjZDVkN2ExMTMyOTQ0ZDA2
ZGRkYmM2ZjZjN2Q4NWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvZnJh
Z21lbnQtbXV0YXRpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL05v
ZGUvZnJhZ21lbnQtbXV0YXRpb24tZXhwZWN0ZWQudHh0CkBAIC0yLDEyICsyLDEyIEBAIFRoaXMg
dGVzdCBjcmVhdGVzIGEgZnJhZ21lbnQgY29udGFpbmluZyB0aHJlZSBlbGVtZW50czogIkIiLCAi
VSIsIGFuZCAiUCIsIGF0dGVtCiAKIEluc2VydGluZyBhbiBlbGVtZW50IGluIGZyb250IG9mIHRo
ZSBuZXh0IGl0ZW0gaW4gZnJhZ21lbnQgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIHJlc3VsdDogUEFT
UwogQXBwZW5kaW5nIGFuIGVsZW1lbnQgYXQgdGhlIGVuZCBvZiB0aGUgZnJhZ21lbnQgc2hvdWxk
IG5vdCBhZmZlY3QgdGhlIHJlc3VsdDogUEFTUwotQ29udGludWFsbHkgcmUtYXBwZW5kaW5nIHJl
bW92ZWQgZWxlbWVudCB0byB0aGUgZnJhZ21lbnQgc2hvdWxkIGV2ZW50dWFsbHkgdGhyb3cgTk9U
X0ZPVU5EX0VSUjogUEFTUworQ29udGludWFsbHkgcmUtYXBwZW5kaW5nIHJlbW92ZWQgZWxlbWVu
dCB0byB0aGUgZnJhZ21lbnQgc2hvdWxkIGV2ZW50dWFsbHkgdGhyb3cgYSBUeXBlRXJyb3I6IFBB
U1MKIAogVGhpcyB0ZXN0IGNyZWF0ZXMgYSBmcmFnbWVudCBjb250YWluaW5nIHRocmVlIGVsZW1l
bnRzOiAiQiIsICJVIiwgYW5kICJQIiwgYXR0ZW1wdHMgdG8gaW5zZXJ0QmVmb3JlIHRoaXMgZnJh
Z21lbnQgYW5kIHN0dWRpZXMgZWZmZWN0cyBvZiBtdXRhdGlvbiBldmVudHMgb24gdGhlIGZyYWdt
ZW50LgogCiBJbnNlcnRpbmcgYW4gZWxlbWVudCBpbiBmcm9udCBvZiB0aGUgbmV4dCBpdGVtIGlu
IGZyYWdtZW50IHNob3VsZCBub3QgYWZmZWN0IHRoZSByZXN1bHQ6IFBBU1MKIEFwcGVuZGluZyBh
biBlbGVtZW50IGF0IHRoZSBlbmQgb2YgdGhlIGZyYWdtZW50IHNob3VsZCBub3QgYWZmZWN0IHRo
ZSByZXN1bHQ6IFBBU1MKLUNvbnRpbnVhbGx5IHJlLWFwcGVuZGluZyByZW1vdmVkIGVsZW1lbnQg
dG8gdGhlIGZyYWdtZW50IHNob3VsZCBldmVudHVhbGx5IHRocm93IE5PVF9GT1VORF9FUlI6IFBB
U1MKK0NvbnRpbnVhbGx5IHJlLWFwcGVuZGluZyByZW1vdmVkIGVsZW1lbnQgdG8gdGhlIGZyYWdt
ZW50IHNob3VsZCBldmVudHVhbGx5IHRocm93IGEgVHlwZUVycm9yOiBQQVNTCiAKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZS9mcmFnbWVudC1tdXRhdGlvbi5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZS9mcmFnbWVudC1tdXRhdGlvbi5odG1sCmluZGV4IDg0
ZTY3ZjY1MzlkNjRiNzNlMzUxMTAyMGMwNzZlMDRjOWU4MDBjYmYuLjQ4OTQ5N2Y1MGFjNmI2YThm
ODEwMDZiYjU4ZTZhYzE3NTU3YzZiODQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L05vZGUvZnJhZ21lbnQtbXV0YXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9O
b2RlL2ZyYWdtZW50LW11dGF0aW9uLmh0bWwKQEAgLTM2LDE1ICszNiwxNSBAQCBmdW5jdGlvbiBw
cm9kdWNlTm9kZU5hbWVTdHJpbmcobm9kZXMpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotZnVu
Y3Rpb24gZXhwZWN0RXhjZXB0aW9uKGNvZGUpCitmdW5jdGlvbiBleHBlY3RUeXBlRXJyb3IoKQog
ewogICAgIHJldHVybiBmdW5jdGlvbihzdGFzaCwgZXhjZXB0aW9uKSB7CiAgICAgICAgIGlmICgh
ZXhjZXB0aW9uKQotICAgICAgICAgICAgcmV0dXJuICJGQUlMLCBleHBlY3RlZCBleGNlcHRpb24g
d2l0aCBjb2RlICIgKyBjb2RlICsgIi4gVGhlIHJlc3VsdGluZyBmcmFnbWVudCB3YXM6IFwiIiAr
IHByb2R1Y2VOb2RlTmFtZVN0cmluZyhzdGFzaCkgKyAiXCIuIjsKKyAgICAgICAgICAgIHJldHVy
biAiRkFJTCwgZXhwZWN0ZWQgVHlwZUVycm9yLiBUaGUgcmVzdWx0aW5nIGZyYWdtZW50IHdhczog
XCIiICsgcHJvZHVjZU5vZGVOYW1lU3RyaW5nKHN0YXNoKSArICJcIi4iOwogCi0gICAgICAgIGlm
IChjb2RlID09IGV4Y2VwdGlvbi5jb2RlKQorICAgICAgICBpZiAoZXhjZXB0aW9uLm5hbWUgPSAi
VHlwZUVycm9yIikKICAgICAgICAgICAgIHJldHVybiAiUEFTUyI7Ci0gICAgICAgIHJldHVybiAi
RkFJTCwgZXhwZWN0ZWQgZXhjZXB0aW9uIGNvZGU6ICIgKyBjb2RlICsgIiwgd2FzOiAiICsgZXhj
ZXB0aW9uICsgIi4iOworICAgICAgICByZXR1cm4gIkZBSUwsIGV4cGVjdGVkIFR5cGVFcnJvciwg
d2FzOiAiICsgZXhjZXB0aW9uLm5hbWUgKyAiLiI7CiAgICAgfQogfQogCkBAIC0xMTksMTAgKzEx
OSwxMCBAQCBmdW5jdGlvbiBydW5UZXN0KG1ldGhvZE5hbWUsIG1ldGhvZCkKICAgICAgICAgZnJh
Zy5hcHBlbmRDaGlsZChleHRyYSk7CiAgICAgfSwgZXhwZWN0Tm9kZXMoIkJVUCIpKTsKIAotICAg
IHRlc3RGcmFnbWVudChtZXRob2QsICJDb250aW51YWxseSByZS1hcHBlbmRpbmcgcmVtb3ZlZCBl
bGVtZW50IHRvIHRoZSBmcmFnbWVudCBzaG91bGQgZXZlbnR1YWxseSB0aHJvdyBOT1RfRk9VTkRf
RVJSIiwgZnVuY3Rpb24oZXZ0LCBmcmFnLCBzdGFzaCkKKyAgICB0ZXN0RnJhZ21lbnQobWV0aG9k
LCAiQ29udGludWFsbHkgcmUtYXBwZW5kaW5nIHJlbW92ZWQgZWxlbWVudCB0byB0aGUgZnJhZ21l
bnQgc2hvdWxkIGV2ZW50dWFsbHkgdGhyb3cgYSBUeXBlRXJyb3IiLCBmdW5jdGlvbihldnQsIGZy
YWcsIHN0YXNoKQogICAgIHsKICAgICAgICAgc3Rhc2guaW5zZXJ0QmVmb3JlKGZyYWcubGFzdENo
aWxkLCBzdGFzaC5maXJzdENoaWxkKTsKLSAgICB9LCBleHBlY3RFeGNlcHRpb24oOCksIHRydWUp
OworICAgIH0sIGV4cGVjdFR5cGVFcnJvcigpLCB0cnVlKTsKICAgICBwcmludExvZyhtZXRob2RO
YW1lKTsKIH0KIGZ1bmN0aW9uIHJ1blRlc3RzKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL2luY29tcGF0aWJsZS1vcGVyYXRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL2luY29tcGF0aWJsZS1vcGVyYXRpb25zLWV4cGVjdGVkLnR4dAppbmRleCBkNTc2
NGMxZTVhYzYyNjRlZTNhNGRmNWI5MjQ1ZWJlMTc3ZjY1NDgwLi44NWNjZDU0NGZjOWU5OWE3OGRh
YTI3NzU1YTMzZmM4ODBhN2ZmMGQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9p
bmNvbXBhdGlibGUtb3BlcmF0aW9ucy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vaW5jb21wYXRpYmxlLW9wZXJhdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0zLDkgKzMsOSBA
QCBUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiBET00gb3BlcmF0aW9ucyB3aGVuIGNh
bGxlZCBvbiBub24tRE9NIG9yIGluY29tcAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAK
LVBBU1MgYU5vZGUuYXBwZW5kQ2hpbGQoYURPTUltcGxlbWVudGF0aW9uKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOC4KLVBBU1MgYU5vZGUuYXBw
ZW5kQ2hpbGQoJ2tub3J0JykgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb3RGb3VuZEVycm9yOiBE
T00gRXhjZXB0aW9uIDguCi1QQVNTIGFOb2RlLmFwcGVuZENoaWxkKHZvaWQgMCkgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDguCitQQVNTIGFOb2Rl
LmFwcGVuZENoaWxkKGFET01JbXBsZW1lbnRhdGlvbikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogVHlwZSBlcnJvci4KK1BBU1MgYU5vZGUuYXBwZW5kQ2hpbGQoJ2tub3J0JykgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgYU5vZGUuYXBwZW5kQ2hpbGQodm9p
ZCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgogUEFTUyBhTm9kZS5p
c1NhbWVOb2RlKGFET01JbXBsZW1lbnRhdGlvbikgaXMgZmFsc2UKIFBBU1MgYU5vZGUuaXNTYW1l
Tm9kZSgnZm9vJykgaXMgZmFsc2UKIFBBU1MgYU5vZGUuaXNTYW1lTm9kZSh2b2lkIDApIGlzIGZh
bHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pbmNvbXBhdGlibGUtb3BlcmF0
aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaW5jb21wYXRpYmxlLW9wZXJhdGlvbnMu
aHRtbAppbmRleCAyMWFhNzFhZmU4ZTNkZWFhOGNlOGIwNGQzZjNjZjIzZDU4MjU0MjMwLi4yZjBl
NGFmZTZjYWNiZGMyYjg1NzM1ZTc2NjBlZThmOWU1ZDAxYjBmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9pbmNvbXBhdGlibGUtb3BlcmF0aW9ucy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL2luY29tcGF0aWJsZS1vcGVyYXRpb25zLmh0bWwKQEAgLTI4LDExICsyOCwx
MSBAQCB2YXIgYU5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKIHZhciBhU2Vj
b25kTm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogYU5vZGUuYXBwZW5kQ2hp
bGQoYVNlY29uZE5vZGUpOwogCi1zaG91bGRUaHJvdygiYU5vZGUuYXBwZW5kQ2hpbGQoYURPTUlt
cGxlbWVudGF0aW9uKSIsICInRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCci
KTsKK3Nob3VsZFRocm93KCJhTm9kZS5hcHBlbmRDaGlsZChhRE9NSW1wbGVtZW50YXRpb24pIiwg
IidUeXBlRXJyb3I6IFR5cGUgZXJyb3InIik7CiAKLXNob3VsZFRocm93KCJhTm9kZS5hcHBlbmRD
aGlsZCgna25vcnQnKSIsICInRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCci
KTsKK3Nob3VsZFRocm93KCJhTm9kZS5hcHBlbmRDaGlsZCgna25vcnQnKSIsICInVHlwZUVycm9y
OiBUeXBlIGVycm9yJyIpOwogCi1zaG91bGRUaHJvdygiYU5vZGUuYXBwZW5kQ2hpbGQodm9pZCAw
KSIsICInRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCciKTsKK3Nob3VsZFRo
cm93KCJhTm9kZS5hcHBlbmRDaGlsZCh2b2lkIDApIiwgIidUeXBlRXJyb3I6IFR5cGUgZXJyb3In
Iik7CiAKIHNob3VsZEJlRmFsc2UoImFOb2RlLmlzU2FtZU5vZGUoYURPTUltcGxlbWVudGF0aW9u
KSIpOwogc2hvdWxkQmVGYWxzZSgiYU5vZGUuaXNTYW1lTm9kZSgnZm9vJykiKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL21vdmUtbm9kZXMtYWNyb3NzLWRvY3VtZW50cy5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vbW92ZS1ub2Rlcy1hY3Jvc3MtZG9jdW1lbnRzLmh0bWwK
aW5kZXggZDM1MDFhMTdkYjg2YzRlYzg2MGZiNWYxMjJjN2Q1Y2RhZTZmNWEzNS4uMzg4MWYwNDk5
MjFiMTNkZDNmYjY2ZmU2ZDdhNTJlYzc0YWY2ODU4MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vbW92ZS1ub2Rlcy1hY3Jvc3MtZG9jdW1lbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vbW92ZS1ub2Rlcy1hY3Jvc3MtZG9jdW1lbnRzLmh0bWwKQEAgLTE3OSw3ICsx
NzksNyBAQCBmdW5jdGlvbiBydW4oKQogICAgIHJ1blRlc3QoZnVuY3Rpb24oKSB7CiAgICAgICAg
IGlmcmFtZURvYy5hcHBlbmRDaGlsZChkb2N1bWVudC5kb2N0eXBlKTsKICAgICAgICAgY29uc29s
ZS5sb2coZG9jdW1lbnQuZG9jdHlwZSk7Ci0gICAgfSwgJ05vdEZvdW5kRXJyb3InKTsKKyAgICB9
LCAnVHlwZUVycm9yJyk7CiAKICAgICAvLyBXaGVuIHNldHRpbmcgYSBib3VuZGFyeSBvZiB0aGUg
cmFuZ2UgaW4gYSBkaWZmZXJlbnQKICAgICAvLyBkb2N1bWVudCwgdGhlIGNhbGwgc2hvdWxkIHN1
Y2NlZWQgYW5kIHRoZSByYW5nZSBzaG91bGQgYmUgY29sbGFwc2VkLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vcHJvY2Vzc2luZy1pbnN0cnVjdGlvbi1hcHBlbmRDaGlsZC1leGNl
cHRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb2Nlc3NpbmctaW5z
dHJ1Y3Rpb24tYXBwZW5kQ2hpbGQtZXhjZXB0aW9ucy1leHBlY3RlZC50eHQKaW5kZXggN2ExMzg2
OGE3YjJmZmZhNmQyNjQyYWI2MjE3MjI3YjJkYWI5MmZiOS4uMGUzYmRmMjI2ZTBjNWE2NTkxNzEy
MDQ1YzM1NTVkODM2YmNjYmIyZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJv
Y2Vzc2luZy1pbnN0cnVjdGlvbi1hcHBlbmRDaGlsZC1leGNlcHRpb25zLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm9jZXNzaW5nLWluc3RydWN0aW9uLWFwcGVuZENo
aWxkLWV4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0zLDcgKzMsNyBAQCBUZXN0IHRoYXQgYXBw
cm9wcmlhdGUgZXhjZXB0aW9ucyBhcmUgdGhyb3duIHdoZW4gYWRkaW5nIGNoaWxkcmVuIHRvIGEg
UHJvY2Vzc2luZwogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1MgcGkuYXBwZW5k
Q2hpbGQobnVsbCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6
IERPTSBFeGNlcHRpb24gMy4KK1BBU1MgcGkuYXBwZW5kQ2hpbGQobnVsbCkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1MgcGkuYXBwZW5kQ2hpbGQoZGl2KSB0aHJl
dyBleGNlcHRpb24gRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAz
LgogUEFTUyBwaS5hcHBlbmRDaGlsZCh0ZXh0Tm9kZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBI
aWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMy4KIFBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb2Nlc3Np
bmctaW5zdHJ1Y3Rpb24tYXBwZW5kQ2hpbGQtZXhjZXB0aW9ucy54aHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3Byb2Nlc3NpbmctaW5zdHJ1Y3Rpb24tYXBwZW5kQ2hpbGQtZXhjZXB0aW9ucy54
aHRtbAppbmRleCBiMDAyODk5YzIzMjA2N2ZjMTczM2ZhOTFlYWZlMTMxNDIyYzQ5OTYwLi5jOTAy
YmE0YjM1OTg5N2Q5MzhiZDQ5ZjgwYmM2ZjIyYzIwMTkyZmQ4IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9wcm9jZXNzaW5nLWluc3RydWN0aW9uLWFwcGVuZENoaWxkLWV4Y2VwdGlv
bnMueGh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvY2Vzc2luZy1pbnN0cnVjdGlv
bi1hcHBlbmRDaGlsZC1leGNlcHRpb25zLnhodG1sCkBAIC01LDcgKzUsNyBAQAogPCFbQ0RBVEFb
CiBkZXNjcmlwdGlvbigiVGVzdCB0aGF0IGFwcHJvcHJpYXRlIGV4Y2VwdGlvbnMgYXJlIHRocm93
biB3aGVuIGFkZGluZyBjaGlsZHJlbiB0byBhIFByb2Nlc3NpbmdJbnN0cnVjdGlvbi4iKTsKIHZh
ciBwaSA9IGRvY3VtZW50LmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigndGFyZ2V0JywgJ2Rh
dGEnKTsKLXNob3VsZFRocm93KCJwaS5hcHBlbmRDaGlsZChudWxsKSIsICInRXJyb3I6IEhpZXJh
cmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzJyIpOworc2hvdWxkVGhyb3coInBpLmFw
cGVuZENoaWxkKG51bGwpIiwgIidUeXBlRXJyb3I6IFR5cGUgZXJyb3InIik7CiB2YXIgZGl2ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiBzaG91bGRUaHJvdygicGkuYXBwZW5kQ2hp
bGQoZGl2KSIsICInRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAz
JyIpOwogdmFyIHRleHROb2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ3NvbWV0ZXh0Jyk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS90aW1lci1jbGVhci1pbnRlcnZhbC1p
bi1oYW5kbGVyLWFuZC1nZW5lcmF0ZS1lcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS90aW1lci1jbGVhci1pbnRlcnZhbC1pbi1oYW5kbGVyLWFuZC1nZW5lcmF0ZS1lcnJv
ci1leHBlY3RlZC50eHQKaW5kZXggOTlhYWM2YTA1ZGNhZTg4NjMyNjljNjliYjZkY2IzYTkyOTRi
NjQ3Ny4uNWYyZmQ1MTQxNzAwYzgzMzM0ODliNTBlMWEzZDIyMmIyNjk0MjVhMCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vdGltZXItY2xlYXItaW50ZXJ2YWwtaW4taGFuZGxlci1h
bmQtZ2VuZXJhdGUtZXJyb3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3RpbWVyLWNsZWFyLWludGVydmFsLWluLWhhbmRsZXItYW5kLWdlbmVyYXRlLWVycm9yLWV4cGVj
dGVkLnR4dApAQCAtMSwyICsxLDIgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMDogTm90Rm91
bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4OiBBbiBhdHRlbXB0IHdhcyBtYWRlIHRvIHJlZmVyZW5j
ZSBhIE5vZGUgaW4gYSBjb250ZXh0IHdoZXJlIGl0IGRvZXMgbm90IGV4aXN0LgorQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDEwOiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVtb3ZlLXRhcmdldC13aXRoLXNoYWRvdy1pbi1kcmFnLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3JlbW92ZS10YXJnZXQtd2l0aC1z
aGFkb3ctaW4tZHJhZy1leHBlY3RlZC50eHQKaW5kZXggNDVjMTE5ZmU5YjMwY2FkMmE1MGYxZGZm
OGMwMTcxMTkyMDVhZmU3YS4uMTI4OTY0ZjVmYTRhYWE4MmVjODlhZGY3YmQyM2UzZjgwZWEzOWI2
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVtb3ZlLXRhcmdldC13aXRo
LXNoYWRvdy1pbi1kcmFnLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9yZW1vdmUtdGFyZ2V0LXdpdGgtc2hhZG93LWluLWRyYWctZXhwZWN0ZWQudHh0CkBAIC0xLDMg
KzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM0OiBOb3RGb3VuZEVycm9yOiBET00gRXhj
ZXB0aW9uIDg6IEFuIGF0dGVtcHQgd2FzIG1hZGUgdG8gcmVmZXJlbmNlIGEgTm9kZSBpbiBhIGNv
bnRleHQgd2hlcmUgaXQgZG9lcyBub3QgZXhpc3QuCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMzQ6
IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gODogQW4gYXR0ZW1wdCB3YXMgbWFkZSB0byBy
ZWZlcmVuY2UgYSBOb2RlIGluIGEgY29udGV4dCB3aGVyZSBpdCBkb2VzIG5vdCBleGlzdC4KK0NP
TlNPTEUgTUVTU0FHRTogbGluZSAzNDogVHlwZUVycm9yOiBUeXBlIGVycm9yCitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMzQ6IFR5cGVFcnJvcjogVHlwZSBlcnJvcgogUEFTUy4gRFJUIGRpZG4ndCBj
cmFzaC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW5zcGVjdG9yLXN1cHBvcnQvdW5j
YXVnaHQtZG9tOC1leGNlcHRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW5zcGVjdG9yLXN1
cHBvcnQvdW5jYXVnaHQtZG9tOC1leGNlcHRpb24uaHRtbAppbmRleCBiYzYwOGY0ZmFlMDQ5Mzcw
NmM5Yjc5ZTUxMzdiY2ZlNzgzNDIyNWRiLi41ZmE0ZTViOGI2NjY2Mzk0MjJkNWI0YWQ5YTY3ZmVh
NjJkNGVlOTBhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2luc3BlY3Rvci1zdXBwb3J0
L3VuY2F1Z2h0LWRvbTgtZXhjZXB0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbnNw
ZWN0b3Itc3VwcG9ydC91bmNhdWdodC1kb204LWV4Y2VwdGlvbi5odG1sCkBAIC02LDcgKzYsNyBA
QCBmdW5jdGlvbiBvbmxvYWQoKQogewogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgZG9jdW1lbnQuYXBwZW5kQ2hpbGQoKTsK
KyAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUF0dHJpYnV0ZU5vZGUoZG9jdW1lbnQuY3JlYXRlQXR0
cmlidXRlKCJkb2VzTm90RXhpc3QiKSk7CiB9CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaW50ZXJmYWNlcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dAppbmRleCBmZGIxOTgwYThiY2ZjNGY5MWU1Y2E2
ZjlkNTZjMGQ3MTJlNGE3MGVhLi5jZjdiMjNhMjc4OTRhOTI5NmFhMzU5NmMwMmViZDY3ZDQ4MjQx
MDc1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dApAQCAt
NjM0LDIxICs2MzQsMTUgQEAgRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpc0RlZmF1bHRO
YW1lc3BhY2UoRE9NU3RyaW5nKSBvbiB4bWxEb2Mgd2l0aCB0b28gZmUKICAgICBbbmF0aXZlIGNv
ZGVdCiB9IiBkaWQgbm90IHRocm93CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiB4bWxEb2MgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJpbnNlcnRCZWZvcmUiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MCkg
Ci1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9u
IHhtbERvYyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2Vy
dF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7
CitGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9u
IHhtbERvYyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2Vy
dF90aHJvd3M6IENhbGxlZCB3aXRoIDEgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7
CiAgICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJv
cjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5
cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5
UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikg
ZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKIFBBU1MgTm9kZSBpbnRl
cmZhY2U6IHhtbERvYyBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFwcGVuZENoaWxkIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAoNDEpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRD
aGlsZChOb2RlKSBvbiB4bWxEb2Mgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5
cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAi
ZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6
IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0
ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6
IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24geG1sRG9jIHdpdGggdG9vIGZldyBhcmd1bWVu
dHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiB4bWxEb2MgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJyZXBsYWNlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0
MikgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUp
IG9uIHhtbERvYyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFz
c2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAo
KSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgZGlkIG5vdCB0aHJvdworUEFTUyBOb2RlIGludGVy
ZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiB4bWxEb2Mgd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6
IHhtbERvYyBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlbW92ZUNoaWxkIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAoNDMpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChO
b2RlKSBvbiB4bWxEb2Mgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJv
ciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rp
b24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZv
dW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2Jq
ZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxp
bmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24geG1sRG9jIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVz
dCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogeG1sRG9jIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYWRkRXZlbnRMaXN0ZW5lciIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgKDApIAogRkFJTCBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGNhbGxpbmcgYWRkRXZlbnRMaXN0
ZW5lcihET01TdHJpbmcsRXZlbnRMaXN0ZW5lcixib29sZWFuKSBvbiB4bWxEb2Mgd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQg
d2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29k
ZV0KQEAgLTc5MywyMSArNzg3LDE1IEBAIEZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaXNE
ZWZhdWx0TmFtZXNwYWNlKERPTVN0cmluZykgb24gZG9jdW1lbnQuY3JlYXRlRG9jCiAgICAgW25h
dGl2ZSBjb2RlXQogfSIgZGlkIG5vdCB0aHJvdwogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1l
bnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5zZXJ0
QmVmb3JlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDApIAotRkFJTCBOb2RlIGludGVyZmFjZTog
Y2FsbGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVEb2N1bWVu
dEZyYWdtZW50KCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBh
c3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24g
KCkgeworRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2Rl
KSBvbiBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkgd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAxIGFy
Z3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KLX0iIHRo
cmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RG
b3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK30i
IGRpZCBub3QgdGhyb3cKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZURvY3Vt
ZW50RnJhZ21lbnQoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFwcGVuZENoaWxkIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAoNDEpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRD
aGlsZChOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkgd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQg
d2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29k
ZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24g
OCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVy
cm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24g
ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMg
bXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVh
dGVEb2N1bWVudEZyYWdtZW50KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZXBsYWNlQ2hpbGQi
IHdpdGggdGhlIHByb3BlciB0eXBlICg0MikgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5n
IHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21l
bnQoKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90
aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0g
ICAgW25hdGl2ZSBjb2RlXQotfSIgZGlkIG5vdCB0aHJvdworUEFTUyBOb2RlIGludGVyZmFjZTog
Y2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVEb2N1bWVu
dEZyYWdtZW50KCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAK
IFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgInJlbW92ZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAo
NDMpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiBk
b2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBt
dXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50
cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9i
amVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVy
cm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9k
ZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRl
RG9jdW1lbnRGcmFnbWVudCgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBl
RXJyb3IgCiBQQVNTIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRG9jdW1l
bnRGcmFnbWVudCgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYWRkRXZlbnRMaXN0ZW5lciIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgKDApIAogRkFJTCBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGNhbGxp
bmcgYWRkRXZlbnRMaXN0ZW5lcihET01TdHJpbmcsRXZlbnRMaXN0ZW5lcixib29sZWFuKSBvbiBk
b2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBt
dXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50
cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KQEAgLTkxNSwyMSAr
OTAzLDE1IEBAIEZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaXNEZWZhdWx0TmFtZXNwYWNl
KERPTVN0cmluZykgb24gZG9jdW1lbnQuZG9jdHlwZSB3CiAgICAgW25hdGl2ZSBjb2RlXQogfSIg
ZGlkIG5vdCB0aHJvdwogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuZG9jdHlwZSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgImluc2VydEJlZm9yZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQw
KSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkg
b24gZG9jdW1lbnQuZG9jdHlwZSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlw
ZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJm
dW5jdGlvbiAoKSB7CitGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShO
b2RlLE5vZGUpIG9uIGRvY3VtZW50LmRvY3R5cGUgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0
IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAxIGFyZ3VtZW50cyBm
dW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KIH0iIHRocmV3IG9iamVj
dCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJh
cmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJv
ciIpCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5kb2N0eXBlIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAiYXBwZW5kQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MSkgCi1GQUlMIE5v
ZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmRvY3R5
cGUgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhy
b3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAg
IFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RF
cnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVk
IG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBj
YWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmRvY3R5cGUgd2l0aCB0b28gZmV3
IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRv
Y3VtZW50LmRvY3R5cGUgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZXBsYWNlQ2hpbGQiIHdpdGgg
dGhlIHByb3BlciB0eXBlICg0MikgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxh
Y2VDaGlsZChOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmRvY3R5cGUgd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFy
Z3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRo
cmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAz
IiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAo
IlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChO
b2RlLE5vZGUpIG9uIGRvY3VtZW50LmRvY3R5cGUgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0
IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmRvY3R5cGUg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZW1vdmVDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
KDQzKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24g
ZG9jdW1lbnQuZG9jdHlwZSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVy
cm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5j
dGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90
Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBv
YmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTogY2Fs
bGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5kb2N0eXBlIHdpdGggdG9vIGZldyBh
cmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIEV2ZW50VGFyZ2V0IGludGVyZmFj
ZTogZG9jdW1lbnQuZG9jdHlwZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFkZEV2ZW50TGlzdGVu
ZXIiIHdpdGggdGhlIHByb3BlciB0eXBlICgwKSAKIEZBSUwgRXZlbnRUYXJnZXQgaW50ZXJmYWNl
OiBjYWxsaW5nIGFkZEV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nLEV2ZW50TGlzdGVuZXIsYm9vbGVh
bikgb24gZG9jdW1lbnQuZG9jdHlwZSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cg
VHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9u
ICJmdW5jdGlvbiAoKSB7CiAgICAgW25hdGl2ZSBjb2RlXQpAQCAtMTE4NywyMSArMTE2OSwxNSBA
QCBGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGlzRGVmYXVsdE5hbWVzcGFjZShET01TdHJp
bmcpIG9uIGVsZW1lbnQgd2l0aCB0b28gZgogICAgIFtuYXRpdmUgY29kZV0KIH0iIGRpZCBub3Qg
dGhyb3cKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGVsZW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJpbnNlcnRCZWZvcmUiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MCkgCi1GQUlMIE5vZGUgaW50
ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGVsZW1lbnQgd2l0aCB0
b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxs
ZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworRkFJTCBOb2RlIGlu
dGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBvbiBlbGVtZW50IHdpdGgg
dG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2Fs
bGVkIHdpdGggMSBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZl
IGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0
aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5
cGVFcnJvciIpCit9IiBkaWQgbm90IHRocm93CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBlbGVtZW50
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXBwZW5kQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBl
ICg0MSkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9u
IGVsZW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3Nl
cnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkg
ewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJy
b3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJU
eXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBw
ZW5kQ2hpbGQoTm9kZSkgb24gZWxlbWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhy
b3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGludGVyZmFjZTogZWxlbWVudCBtdXN0IGluaGVyaXQg
cHJvcGVydHkgInJlcGxhY2VDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQyKSAKLUZBSUwg
Tm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24gZWxlbWVu
dCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJv
d3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAg
W25hdGl2ZSBjb2RlXQotfSIgZGlkIG5vdCB0aHJvdworUEFTUyBOb2RlIGludGVyZmFjZTogY2Fs
bGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiBlbGVtZW50IHdpdGggdG9vIGZldyBhcmd1
bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBlbGVtZW50
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVtb3ZlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBl
ICg0MykgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9u
IGVsZW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3Nl
cnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkg
ewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJy
b3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJU
eXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVt
b3ZlQ2hpbGQoTm9kZSkgb24gZWxlbWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhy
b3cgVHlwZUVycm9yIAogUEFTUyBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGVsZW1lbnQgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJhZGRFdmVudExpc3RlbmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAo
MCkgCiBGQUlMIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogY2FsbGluZyBhZGRFdmVudExpc3RlbmVy
KERPTVN0cmluZyxFdmVudExpc3RlbmVyLGJvb2xlYW4pIG9uIGVsZW1lbnQgd2l0aCB0b28gZmV3
IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0
aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0K
QEAgLTE0MDksMjEgKzEzODUsMTUgQEAgRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpc0Rl
ZmF1bHROYW1lc3BhY2UoRE9NU3RyaW5nKSBvbiBkb2N1bWVudC5jcmVhdGVUZXgKICAgICBbbmF0
aXZlIGNvZGVdCiB9IiBkaWQgbm90IHRocm93CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJpbnNlcnRCZWZv
cmUiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MCkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxs
aW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJh
YmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90
aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CitG
QUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3Qg
dGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDEgYXJndW1lbnRzIGZ1
bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAgICAgW25hdGl2ZSBjb2RlXQogfSIgdGhyZXcgb2JqZWN0
ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFy
Y2h5UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9y
IikKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhYmMiKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgImFwcGVuZENoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAo
NDEpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiBk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0
IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBm
dW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVj
dCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJh
cmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJv
ciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3Qg
dGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUoImFiYyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVwbGFjZUNoaWxkIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAoNDIpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNl
Q2hpbGQoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgd2l0aCB0
b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxs
ZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUg
Y29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9N
IEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAi
VHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJl
cGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhYmMiKSB3
aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGlu
dGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoImFiYyIpIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAicmVtb3ZlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MykgCi1GQUlMIE5vZGUg
aW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9y
IGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlv
biAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91
bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmpl
Y3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGlu
ZyByZW1vdmVDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgd2l0
aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgRXZlbnRUYXJn
ZXQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJhZGRFdmVudExpc3RlbmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMCkgCiBG
QUlMIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogY2FsbGluZyBhZGRFdmVudExpc3RlbmVyKERPTVN0
cmluZyxFdmVudExpc3RlbmVyLGJvb2xlYW4pIG9uIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJh
YmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90
aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAg
ICAgW25hdGl2ZSBjb2RlXQpAQCAtMTU0MywyMSArMTUxMywxNSBAQCBGQUlMIE5vZGUgaW50ZXJm
YWNlOiBjYWxsaW5nIGlzRGVmYXVsdE5hbWVzcGFjZShET01TdHJpbmcpIG9uIHhtbERvYy5jcmVh
dGVQcm9jZQogICAgIFtuYXRpdmUgY29kZV0KIH0iIGRpZCBub3QgdGhyb3cKIFBBU1MgTm9kZSBp
bnRlcmZhY2U6IHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oImFiYyIsICJkZWYi
KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImluc2VydEJlZm9yZSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgKDQwKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUs
Tm9kZSkgb24geG1sRG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiYWJjIiwgImRlZiIp
IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93
czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKK0ZBSUwg
Tm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24geG1sRG9j
LmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiYWJjIiwgImRlZiIpIHdpdGggdG9vIGZldyBh
cmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGgg
MSBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCiB9
IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRp
b24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJv
ciIgKCJUeXBlRXJyb3IiKQogUEFTUyBOb2RlIGludGVyZmFjZTogeG1sRG9jLmNyZWF0ZVByb2Nl
c3NpbmdJbnN0cnVjdGlvbigiYWJjIiwgImRlZiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXBw
ZW5kQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MSkgCi1GQUlMIE5vZGUgaW50ZXJmYWNl
OiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24oImFiYyIsICJkZWYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cg
VHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9u
ICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJv
cjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVx
dWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BB
U1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24geG1sRG9jLmNy
ZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiYWJjIiwgImRlZiIpIHdpdGggdG9vIGZldyBhcmd1
bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiB4bWxEb2Mu
Y3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJhYmMiLCAiZGVmIikgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJyZXBsYWNlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MikgCi1GQUlMIE5v
ZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIHhtbERvYy5j
cmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oImFiYyIsICJkZWYiKSB3aXRoIHRvbyBmZXcgYXJn
dW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAg
YXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIg
dGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9u
IDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3Ii
ICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxk
KE5vZGUsTm9kZSkgb24geG1sRG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiYWJjIiwg
ImRlZiIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNT
IE5vZGUgaW50ZXJmYWNlOiB4bWxEb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJhYmMi
LCAiZGVmIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZW1vdmVDaGlsZCIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgKDQzKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQo
Tm9kZSkgb24geG1sRG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiYWJjIiwgImRlZiIp
IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93
czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBb
bmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00g
RXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9y
IiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxk
KE5vZGUpIG9uIHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oImFiYyIsICJkZWYi
KSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBFdmVu
dFRhcmdldCBpbnRlcmZhY2U6IHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oImFi
YyIsICJkZWYiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFkZEV2ZW50TGlzdGVuZXIiIHdpdGgg
dGhlIHByb3BlciB0eXBlICgwKSAKIEZBSUwgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBjYWxsaW5n
IGFkZEV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nLEV2ZW50TGlzdGVuZXIsYm9vbGVhbikgb24geG1s
RG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiYWJjIiwgImRlZiIpIHdpdGggdG9vIGZl
dyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdp
dGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVd
CkBAIC0xNjczLDIxICsxNjM3LDE1IEBAIEZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaXNE
ZWZhdWx0TmFtZXNwYWNlKERPTVN0cmluZykgb24gZG9jdW1lbnQuY3JlYXRlQ29tCiAgICAgW25h
dGl2ZSBjb2RlXQogfSIgZGlkIG5vdCB0aHJvdwogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1l
bnQuY3JlYXRlQ29tbWVudCgiYWJjIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJpbnNlcnRCZWZv
cmUiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MCkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxs
aW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFi
YyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Ro
cm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKK0ZB
SUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24gZG9j
dW1lbnQuY3JlYXRlQ29tbWVudCgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRo
cm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAxIGFyZ3VtZW50cyBmdW5j
dGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KIH0iIHRocmV3IG9iamVjdCAi
RXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNo
eVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIp
CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVDb21tZW50KCJhYmMiKSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgImFwcGVuZENoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDEp
IAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiBkb2N1
bWVudC5jcmVhdGVDb21tZW50KCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhy
b3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0
aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJF
cnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5
UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikK
K1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24gZG9jdW1l
bnQuY3JlYXRlQ29tbWVudCgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93
IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQo
ImFiYyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVwbGFjZUNoaWxkIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAoNDIpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQo
Tm9kZSxOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVDb21tZW50KCJhYmMiKSB3aXRoIHRvbyBmZXcg
YXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRo
IDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQot
fSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0
aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJy
b3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNo
aWxkKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiYWJjIikgd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6
IGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVt
b3ZlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MykgCi1GQUlMIE5vZGUgaW50ZXJmYWNl
OiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFi
YyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Ro
cm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAg
ICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBE
T00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVy
cm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNo
aWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIpIHdpdGggdG9vIGZldyBh
cmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIEV2ZW50VGFyZ2V0IGludGVyZmFj
ZTogZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiYWJjIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJh
ZGRFdmVudExpc3RlbmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMCkgCiBGQUlMIEV2ZW50VGFy
Z2V0IGludGVyZmFjZTogY2FsbGluZyBhZGRFdmVudExpc3RlbmVyKERPTVN0cmluZyxFdmVudExp
c3RlbmVyLGJvb2xlYW4pIG9uIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIpIHdpdGggdG9v
IGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVk
IHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNv
ZGVdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9ub2Rlcy9Ob2RlLWFwcGVuZENoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtYXBwZW5kQ2hp
bGQtZXhwZWN0ZWQudHh0CmluZGV4IDNhMjg5ZTgzMmU2YTJkOTQ4OTBjMDI0YTU2MTQ5NjhjMDE0
NTkzYmQuLmIxMzBjYWZmZDg0ODI3NjRmNzBjMzQwM2U0ZjA4MDI4OWEyYTkwZTAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVz
L05vZGUtYXBwZW5kQ2hpbGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtYXBwZW5kQ2hpbGQtZXhwZWN0
ZWQudHh0CkBAIC0xLDEyICsxLDEyIEBACiAKIAotRkFJTCBXZWJJREwgdGVzdHMgYXNzZXJ0X3Ro
cm93czogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChu
dWxsKSB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9u
IDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVF
cnJvciIpCitQQVNTIFdlYklETCB0ZXN0cyAKIFBBU1MgQXBwZW5kaW5nIHRvIGEgbGVhZiBub2Rl
LiAKLUZBSUwgQXBwZW5kaW5nIG51bGwgdG8gYSB0ZXh0IG5vZGUgYXNzZXJ0X3Rocm93czogZnVu
Y3Rpb24gImZ1bmN0aW9uICgpIHsgbm9kZS5hcHBlbmRDaGlsZChudWxsKSB9IiB0aHJldyBvYmpl
Y3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVy
YXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJy
b3IiKQorUEFTUyBBcHBlbmRpbmcgbnVsbCB0byBhIHRleHQgbm9kZSAKIFBBU1MgQXBwZW5kaW5n
IHRvIGEgdGV4dCBub2RlIAotRkFJTCBBcHBlbmRpbmcgbnVsbCB0byBhIGNvbW1lbnQgYXNzZXJ0
X3Rocm93czogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgbm9kZS5hcHBlbmRDaGlsZChudWxsKSB9
IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRp
b24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJv
ciIgKCJUeXBlRXJyb3IiKQorUEFTUyBBcHBlbmRpbmcgbnVsbCB0byBhIGNvbW1lbnQgCiBQQVNT
IEFwcGVuZGluZyB0byBhIGNvbW1lbnQgCi1GQUlMIEFwcGVuZGluZyBudWxsIHRvIGEgZG9jdHlw
ZSBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyBub2RlLmFwcGVuZENoaWxk
KG51bGwpIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9N
IEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAi
VHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIEFwcGVuZGluZyBudWxsIHRvIGEgZG9jdHlw
ZSAKIFBBU1MgQXBwZW5kaW5nIHRvIGEgZG9jdHlwZSAKIFBBU1MgQXBwZW5kaW5nIGEgZG9jdW1l
bnQgCiBQQVNTIEFkb3B0aW5nIGFuIG9ycGhhbiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtaW5zZXJ0QmVmb3Jl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZG9tL25vZGVzL05vZGUtaW5zZXJ0QmVmb3JlLWV4cGVjdGVkLnR4dAppbmRleCA1NmJjZDJh
ODBiYjM0ZDM3YWMwODRmNzc0MTY0ZjAxY2ZiZTk0YTc4Li5jNjYyMjMzZGMwNTYzODU3ZjIzYjYw
NjkwMzRhYzhmNzViOGNlYTZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLWluc2VydEJlZm9yZS1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20v
bm9kZXMvTm9kZS1pbnNlcnRCZWZvcmUtZXhwZWN0ZWQudHh0CkBAIC0xLDEyICsxLDEyIEBACiAK
LUZBSUwgQ2FsbGluZyBpbnNlcnRCZWZvcmUgd2l0aCBhIG5vbi1Ob2RlIGZpcnN0IGFyZ3VtZW50
IG11c3QgdGhyb3cgVHlwZUVycm9yLiBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24g
KCkgeyBkb2N1bWVudC5ib2R5Lmluc2VydEJlZm9yZShudWxsLCBudWxsKSB9IiB0aHJldyBvYmpl
Y3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJv
ciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCi1GQUlMIENhbGxp
bmcgaW5zZXJ0QmVmb3JlIHdpdGggYSBub24tTm9kZSBmaXJzdCBhcmd1bWVudCBvbiBhIGxlYWYg
bm9kZSBEb2N1bWVudFR5cGUgbXVzdCB0aHJvdyBUeXBlRXJyb3IuIGFzc2VydF90aHJvd3M6IGZ1
bmN0aW9uICJmdW5jdGlvbiAoKSB7IG5vZGUuaW5zZXJ0QmVmb3JlKG51bGwsIG51bGwpIH0iIHRo
cmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAz
IiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAo
IlR5cGVFcnJvciIpCitQQVNTIENhbGxpbmcgaW5zZXJ0QmVmb3JlIHdpdGggYSBub24tTm9kZSBm
aXJzdCBhcmd1bWVudCBtdXN0IHRocm93IFR5cGVFcnJvci4gCitQQVNTIENhbGxpbmcgaW5zZXJ0
QmVmb3JlIHdpdGggYSBub24tTm9kZSBmaXJzdCBhcmd1bWVudCBvbiBhIGxlYWYgbm9kZSBEb2N1
bWVudFR5cGUgbXVzdCB0aHJvdyBUeXBlRXJyb3IuIAogUEFTUyBDYWxsaW5nIGluc2VydEJlZm9y
ZSBhbiBhIGxlYWYgbm9kZSBEb2N1bWVudFR5cGUgbXVzdCB0aHJvdyBISUVSQVJDSFlfUkVRVUVT
VF9FUlIuIAotRkFJTCBDYWxsaW5nIGluc2VydEJlZm9yZSB3aXRoIGEgbm9uLU5vZGUgZmlyc3Qg
YXJndW1lbnQgb24gYSBsZWFmIG5vZGUgVGV4dCBtdXN0IHRocm93IFR5cGVFcnJvci4gYXNzZXJ0
X3Rocm93czogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgbm9kZS5pbnNlcnRCZWZvcmUobnVsbCwg
bnVsbCkgfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00g
RXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJU
eXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgQ2FsbGluZyBpbnNlcnRCZWZvcmUgd2l0aCBh
IG5vbi1Ob2RlIGZpcnN0IGFyZ3VtZW50IG9uIGEgbGVhZiBub2RlIFRleHQgbXVzdCB0aHJvdyBU
eXBlRXJyb3IuIAogUEFTUyBDYWxsaW5nIGluc2VydEJlZm9yZSBhbiBhIGxlYWYgbm9kZSBUZXh0
IG11c3QgdGhyb3cgSElFUkFSQ0hZX1JFUVVFU1RfRVJSLiAKLUZBSUwgQ2FsbGluZyBpbnNlcnRC
ZWZvcmUgd2l0aCBhIG5vbi1Ob2RlIGZpcnN0IGFyZ3VtZW50IG9uIGEgbGVhZiBub2RlIENvbW1l
bnQgbXVzdCB0aHJvdyBUeXBlRXJyb3IuIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlv
biAoKSB7IG5vZGUuaW5zZXJ0QmVmb3JlKG51bGwsIG51bGwpIH0iIHRocmV3IG9iamVjdCAiRXJy
b3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJl
cXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQ
QVNTIENhbGxpbmcgaW5zZXJ0QmVmb3JlIHdpdGggYSBub24tTm9kZSBmaXJzdCBhcmd1bWVudCBv
biBhIGxlYWYgbm9kZSBDb21tZW50IG11c3QgdGhyb3cgVHlwZUVycm9yLiAKIFBBU1MgQ2FsbGlu
ZyBpbnNlcnRCZWZvcmUgYW4gYSBsZWFmIG5vZGUgQ29tbWVudCBtdXN0IHRocm93IEhJRVJBUkNI
WV9SRVFVRVNUX0VSUi4gCi1GQUlMIENhbGxpbmcgaW5zZXJ0QmVmb3JlIHdpdGggYSBub24tTm9k
ZSBmaXJzdCBhcmd1bWVudCBvbiBhIGxlYWYgbm9kZSBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gbXVz
dCB0aHJvdyBUeXBlRXJyb3IuIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7
IG5vZGUuaW5zZXJ0QmVmb3JlKG51bGwsIG51bGwpIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhp
ZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RF
cnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIENh
bGxpbmcgaW5zZXJ0QmVmb3JlIHdpdGggYSBub24tTm9kZSBmaXJzdCBhcmd1bWVudCBvbiBhIGxl
YWYgbm9kZSBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gbXVzdCB0aHJvdyBUeXBlRXJyb3IuIAogUEFT
UyBDYWxsaW5nIGluc2VydEJlZm9yZSBhbiBhIGxlYWYgbm9kZSBQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24gbXVzdCB0aHJvdyBISUVSQVJDSFlfUkVRVUVTVF9FUlIuIAogUEFTUyBDYWxsaW5nIGluc2Vy
dEJlZm9yZSB3aXRoIGFuIGluY2x1c2l2ZSBhbmNlc3RvciBvZiB0aGUgY29udGV4dCBvYmplY3Qg
bXVzdCB0aHJvdyBISUVSQVJDSFlfUkVRVUVTVF9FUlIuIAogUEFTUyBDYWxsaW5nIGluc2VydEJl
Zm9yZSB3aXRoIGEgcmVmZXJlbmNlIGNoaWxkIHdob3NlIHBhcmVudCBpcyBub3QgdGhlIGNvbnRl
eHQgbm9kZSBtdXN0IHRocm93IGEgTm90Rm91bmRFcnJvci4gCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLXJlbW92
ZUNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZG9tL25vZGVzL05vZGUtcmVtb3ZlQ2hpbGQtZXhwZWN0ZWQudHh0CmluZGV4IDAy
OTEwYmY5Y2QyNDBhMGNkZDgzY2YxMzc2MGM0NTYwZGZkOTQzYTIuLjEzOTdjNGViZWY2Yzk3OGUx
MDNhYjMxYTM4MTZmOTJkZWRjM2VmNTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtcmVtb3ZlQ2hpbGQtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL25vZGVzL05vZGUtcmVtb3ZlQ2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0yNyw1ICsyNyw1IEBA
IFBBU1MgQ2FsbGluZyByZW1vdmVDaGlsZCBvbiBhIHRleHQgZnJvbSBhIHN5bnRoZXRpYyBkb2N1
bWVudCB3aXRoIG5vIGNoaWxkcmVuIHNoCiBQQVNTIFBhc3NpbmcgYSBkZXRhY2hlZCBjb21tZW50
IGZyb20gYSBzeW50aGV0aWMgZG9jdW1lbnQgdG8gcmVtb3ZlQ2hpbGQgc2hvdWxkIG5vdCBhZmZl
Y3QgaXQuIAogUEFTUyBQYXNzaW5nIGEgbm9uLWRldGFjaGVkIGNvbW1lbnQgZnJvbSBhIHN5bnRo
ZXRpYyBkb2N1bWVudCB0byByZW1vdmVDaGlsZCBzaG91bGQgbm90IGFmZmVjdCBpdC4gCiBQQVNT
IENhbGxpbmcgcmVtb3ZlQ2hpbGQgb24gYSBjb21tZW50IGZyb20gYSBzeW50aGV0aWMgZG9jdW1l
bnQgd2l0aCBubyBjaGlsZHJlbiBzaG91bGQgdGhyb3cgTk9UX0ZPVU5EX0VSUi4gCi1GQUlMIFBh
c3NpbmcgYSB2YWx1ZSB0aGF0IGlzIG5vdCBhIE5vZGUgcmVmZXJlbmNlIHRvIHJlbW92ZUNoaWxk
IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlv
biAoKSB7IGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobnVsbCkgfSIgdGhyZXcgb2JqZWN0ICJF
cnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBl
eHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBQYXNzaW5nIGEg
dmFsdWUgdGhhdCBpcyBub3QgYSBOb2RlIHJlZmVyZW5jZSB0byByZW1vdmVDaGlsZCBzaG91bGQg
dGhyb3cgVHlwZUVycm9yLiAKIGIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtcmVwbGFjZUNoaWxkLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25v
ZGVzL05vZGUtcmVwbGFjZUNoaWxkLWV4cGVjdGVkLnR4dAppbmRleCBlN2Y3MGZhMzZjNWMxY2Jm
OTJjN2U0YjdhNDlmYmY4YWRjYmM0ZjZkLi5kMTdjOGI1NzBlYjEyMWU5NjczNmE5YzY5NGZiMjVm
MTgxYWFmY2MwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLXJlcGxhY2VDaGlsZC1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9k
ZS1yZXBsYWNlQ2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNSBAQAogCi1GQUlMIFBhc3Np
bmcgbnVsbCB0byByZXBsYWNlQ2hpbGQgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yLiBhc3NlcnRf
dGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIGEucmVwbGFjZUNoaWxkKG51bGws
IG51bGwpOwotICB9IiBkaWQgbm90IHRocm93CitQQVNTIFBhc3NpbmcgbnVsbCB0byByZXBsYWNl
Q2hpbGQgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yLiAKIEZBSUwgSWYgY2hpbGQncyBwYXJlbnQg
aXMgbm90IHRoZSBjb250ZXh0IG5vZGUsIGEgTm90Rm91bmRFcnJvciBleGNlcHRpb24gc2hvdWxk
IGJlIHRocm93biBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIGEu
cmVwbGFjZUNoaWxkKGEsIGMpOwogICB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlS
ZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24g
Tm90Rm91bmRFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDMsIGV4cGVjdGVkIDgK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDJlNThhZTYzNTE5YTc1NTM3ZWRkMmQ4OTc0MTBmMjI1NjAwYzM2YzYuLjA0NjIyMDM1OWFh
MTA4OGU5OTUwNjEwYjFmMTQ3NDZlMmJlMWQ2N2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vaW50ZXJmYWNlcy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dApAQCAtMTIyNSwyMSArMTIyNSwxNSBAQCBG
QUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGlzRGVmYXVsdE5hbWVzcGFjZShET01TdHJpbmcp
IG9uIGlmcmFtZS5jb250ZW50RG9jdQogICAgIFtuYXRpdmUgY29kZV0KIH0iIGRpZCBub3QgdGhy
b3cKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGlmcmFtZS5jb250ZW50RG9jdW1lbnQgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJpbnNlcnRCZWZvcmUiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MCkgCi1G
QUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGlm
cmFtZS5jb250ZW50RG9jdW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5
cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAi
ZnVuY3Rpb24gKCkgeworRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZvcmUo
Tm9kZSxOb2RlKSBvbiBpZnJhbWUuY29udGVudERvY3VtZW50IHdpdGggdG9vIGZldyBhcmd1bWVu
dHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMSBhcmd1
bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJl
dyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91
bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCit9IiB0
aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24g
MyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIg
KCJUeXBlRXJyb3IiKQogUEFTUyBOb2RlIGludGVyZmFjZTogaWZyYW1lLmNvbnRlbnREb2N1bWVu
dCBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFwcGVuZENoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAoNDEpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBv
biBpZnJhbWUuY29udGVudERvY3VtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rp
b24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVy
cm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4
cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJm
YWNlOiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGlmcmFtZS5jb250ZW50RG9jdW1lbnQg
d2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBp
bnRlcmZhY2U6IGlmcmFtZS5jb250ZW50RG9jdW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJy
ZXBsYWNlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MikgCi1GQUlMIE5vZGUgaW50ZXJm
YWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIGlmcmFtZS5jb250ZW50RG9j
dW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRf
dGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewot
ICAgIFtuYXRpdmUgY29kZV0KLX0iIGRpZCBub3QgdGhyb3cKK1BBU1MgTm9kZSBpbnRlcmZhY2U6
IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24gaWZyYW1lLmNvbnRlbnREb2N1bWVu
dCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2Rl
IGludGVyZmFjZTogaWZyYW1lLmNvbnRlbnREb2N1bWVudCBtdXN0IGluaGVyaXQgcHJvcGVydHkg
InJlbW92ZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDMpIAotRkFJTCBOb2RlIGludGVy
ZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiBpZnJhbWUuY29udGVudERvY3VtZW50
IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93
czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBb
bmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00g
RXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9y
IiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxk
KE5vZGUpIG9uIGlmcmFtZS5jb250ZW50RG9jdW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBt
dXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBpZnJhbWUu
Y29udGVudERvY3VtZW50IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYWRkRXZlbnRMaXN0ZW5lciIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgKDApIAogRkFJTCBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGNh
bGxpbmcgYWRkRXZlbnRMaXN0ZW5lcihET01TdHJpbmcsRXZlbnRMaXN0ZW5lcixib29sZWFuKSBv
biBpZnJhbWUuY29udGVudERvY3VtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rp
b24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCkBAIC0xNTUxLDIxICsxNTQ1LDE1
IEBAIEZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaXNEZWZhdWx0TmFtZXNwYWNlKERPTVN0
cmluZykgb24gZG9jdW1lbnQuaW1wbGVtZW50CiAgICAgW25hdGl2ZSBjb2RlXQogfSIgZGlkIG5v
dCB0aHJvdwogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3Jl
YXRlRG9jdW1lbnQobnVsbCwgIiIsIG51bGwpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5zZXJ0
QmVmb3JlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDApIAotRkFJTCBOb2RlIGludGVyZmFjZTog
Y2FsbGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5pbXBsZW1lbnRhdGlv
bi5jcmVhdGVEb2N1bWVudChudWxsLCAiIiwgbnVsbCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBt
dXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50
cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBp
bnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVE
b2N1bWVudChudWxsLCAiIiwgbnVsbCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93
IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAxIGFyZ3VtZW50cyBmdW5jdGlv
biAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJy
b3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhw
ZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK30iIHRocmV3IG9iamVjdCAi
RXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNo
eVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIp
CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1
bWVudChudWxsLCAiIiwgbnVsbCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhcHBlbmRDaGlsZCIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQxKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcg
YXBwZW5kQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1l
bnQobnVsbCwgIiIsIG51bGwpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBl
RXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1
bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBO
b3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVk
IG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBj
YWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0
ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhy
b3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuaW1wbGVtZW50YXRp
b24uY3JlYXRlRG9jdW1lbnQobnVsbCwgIiIsIG51bGwpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
cmVwbGFjZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDIpIAotRkFJTCBOb2RlIGludGVy
ZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5pbXBsZW1l
bnRhdGlvbi5jcmVhdGVEb2N1bWVudChudWxsLCAiIiwgbnVsbCkgd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFy
Z3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIGRp
ZCBub3QgdGhyb3cKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5v
ZGUsTm9kZSkgb24gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwg
IiIsIG51bGwpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQ
QVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVu
dChudWxsLCAiIiwgbnVsbCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZW1vdmVDaGlsZCIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgKDQzKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVt
b3ZlQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQo
bnVsbCwgIiIsIG51bGwpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJy
b3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0
aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RG
b3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9i
amVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxs
aW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURv
Y3VtZW50KG51bGwsICIiLCBudWxsKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cg
VHlwZUVycm9yIAogUEFTUyBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGRvY3VtZW50LmltcGxlbWVu
dGF0aW9uLmNyZWF0ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgImFkZEV2ZW50TGlzdGVuZXIiIHdpdGggdGhlIHByb3BlciB0eXBlICgwKSAKIEZBSUwgRXZl
bnRUYXJnZXQgaW50ZXJmYWNlOiBjYWxsaW5nIGFkZEV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nLEV2
ZW50TGlzdGVuZXIsYm9vbGVhbikgb24gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9j
dW1lbnQobnVsbCwgIiIsIG51bGwpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBU
eXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24g
ImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCkBAIC0yMTcxLDIxICsyMTU5LDE1IEBA
IEZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaXNEZWZhdWx0TmFtZXNwYWNlKERPTVN0cmlu
Zykgb24gZG9jdW1lbnQuY3JlYXRlRWxlCiAgICAgW25hdGl2ZSBjb2RlXQogfSIgZGlkIG5vdCB0
aHJvdwogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibm9zY3Jp
cHQiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImluc2VydEJlZm9yZSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgKDQwKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5v
ZGUsTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibm9zY3JpcHQiKSB3aXRoIHRvbyBm
ZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3
aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CitGQUlMIE5vZGUgaW50ZXJm
YWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoIm5vc2NyaXB0Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVF
cnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAxIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVu
Y3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5v
dEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQg
b2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK30iIGRpZCBub3QgdGhyb3cKIFBBU1Mg
Tm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm5vc2NyaXB0IikgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJhcHBlbmRDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQxKSAK
LUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgibm9zY3JpcHQiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3Qg
dGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1
bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0
ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3Ii
KSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGlu
dGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJub3NjcmlwdCIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJy
b3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJub3Njcmlw
dCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVwbGFjZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAoNDIpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9k
ZSxOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJub3NjcmlwdCIpIHdpdGggdG9vIGZl
dyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdp
dGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVd
Ci19IiBkaWQgbm90IHRocm93CitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VD
aGlsZChOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm5vc2NyaXB0Iikgd2l0
aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRl
cmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm5vc2NyaXB0IikgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJyZW1vdmVDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQzKSAKLUZBSUwgTm9k
ZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgibm9zY3JpcHQiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlw
ZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJm
dW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjog
Tm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3Rl
ZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTog
Y2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJub3Nj
cmlwdCIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNT
IEV2ZW50VGFyZ2V0IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibm9zY3JpcHQi
KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFkZEV2ZW50TGlzdGVuZXIiIHdpdGggdGhlIHByb3Bl
ciB0eXBlICgwKSAKIEZBSUwgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBjYWxsaW5nIGFkZEV2ZW50
TGlzdGVuZXIoRE9NU3RyaW5nLEV2ZW50TGlzdGVuZXIsYm9vbGVhbikgb24gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgibm9zY3JpcHQiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cg
VHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9u
ICJmdW5jdGlvbiAoKSB7CiAgICAgW25hdGl2ZSBjb2RlXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvanMvZG9tL2RvdC1ub2RlLWJhc2UtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2pzL2RvbS9kb3Qtbm9kZS1iYXNlLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKaW5kZXggZjQ0
MDZjYmZlZDM2MWQ2N2I5YzU2ZTc1YjE5ZTE4MzI4YWIzYmNkMi4uMzZkNTNiNGViODE1YTFhZDNi
ODBjZGM3N2YxMDA4OWMzMjcwMzAwZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvZG9tL2Rv
dC1ub2RlLWJhc2UtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9qcy9k
b20vZG90LW5vZGUtYmFzZS1leGNlcHRpb24tZXhwZWN0ZWQudHh0CkBAIC0zLDcgKzMsNyBAQCBU
aGlzIHRlc3QgY2hlY2tzIHRoYXQgYSBjb3JyZWN0IGV4Y2VwdGlvbiBpcyByYWlzZWQgd2hlbiBj
YWxjdWxhdGluZyB0aGUgYmFzZSB2YQogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBB
U1MgKGRvY3VtZW50LmFwcGVuZENoaWxkKCkpLmZvb2JhcigpIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4LgorUEFTUyAoZG9jdW1lbnQuYXBwZW5k
Q2hpbGQoKSkuZm9vYmFyKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4K
IFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9kb3Qtbm9kZS1iYXNlLWV4Y2Vw
dGlvbi5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvZG90LW5vZGUtYmFzZS1l
eGNlcHRpb24uanMKaW5kZXggOWYzNjJhN2Y3ODgxN2JjYjhmYzdjODdlZDI2YzYzY2YyYTc4YTE5
NS4uNzFkNDcxOTk5NzU2NTg0MzI5YjhkZGNkNzQ3Yzc3NzFlNDQwNzUxYiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9kb3Qtbm9kZS1iYXNlLWV4Y2VwdGlvbi5q
cworKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2RvdC1ub2RlLWJhc2UtZXhj
ZXB0aW9uLmpzCkBAIC0zLDQgKzMsNCBAQCBkZXNjcmlwdGlvbigKICk7CiAKIC8vIFNob3VsZCBi
ZSBhIERPTSBleGNlcHRpb24sIG5vdCBqdXN0IHNvbWUgIlR5cGVFcnJvcjogTnVsbCB2YWx1ZSIu
Ci1zaG91bGRUaHJvdygnKGRvY3VtZW50LmFwcGVuZENoaWxkKCkpLmZvb2JhcigpJywgJyJFcnJv
cjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IicpOworc2hvdWxkVGhyb3coJyhkb2N1
bWVudC5hcHBlbmRDaGlsZCgpKS5mb29iYXIoKScsICciVHlwZUVycm9yOiBUeXBlIGVycm9yIicp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260862</attachid>
            <date>2015-09-09 10:09:26 -0700</date>
            <delta_ts>2015-09-09 21:49:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148971-20150909100921.patch</filename>
            <type>text/plain</type>
            <size>253090</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2ZiNGVmMGY2N2IyOGNi
YTFhNjA3ZDdlZTExOGRkYjAzZWExMzg2OS4uN2U3MjBhMmU3OGUwZWNkMzM1OTRiOTM1ZDE0NDc0
ODEzMzgzYzk3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE1LTA5LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTm9kZS5hcHBlbmRDaGlsZChu
dWxsKSAvIHJlcGxhY2VDaGlsZChudWxsLCBudWxsKSAvIHJlbW92ZUNoaWxkKG51bGwpIC8gaW5z
ZXJ0QmVmb3JlKG51bGwsIHJlZikgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg5NzEKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzIyNTYwODgzPgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjI1NTkyMjU+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm9kZS5h
cHBlbmRDaGlsZChudWxsKSAvIHJlcGxhY2VDaGlsZChudWxsLCBudWxsKSAvIHJlbW92ZUNoaWxk
KG51bGwpCisgICAgICAgIGFuZCBpbnNlcnRCZWZvcmUobnVsbCwgcmVmKSBzaG91bGQgdGhyb3cg
YSBUeXBlRXJyb3IgaW5zdGVhZCBvZiBhCisgICAgICAgIE5vdEZvdW5kRXJyb3IsIGFzIHBlciB0
aGUgc3BlY2lmaWNhdGlvbjoKKyAgICAgICAgaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNu
b2RlCisKKyAgICAgICAgVGhlIHBhcmFtZXRlcnMgYXJlIG5vdCBudWxsYWJsZSBzbyB0aGUgV2Vi
IElETCBzcGVjaWZpY2F0aW9uIHNheXMKKyAgICAgICAgd2Ugc2hvdWxkIHRocm93IGEgVHlwZUVy
cm9yIGluIHRoaXMgY2FzZS4KKworICAgICAgICBUaGlzIHBhdGNoIG1vdmVzIHRoZSBudWxsLWNo
ZWNraW5nIGZyb20gQ29udGFpbmVyTm9kZSB0byB0aGUgbWV0aG9kcworICAgICAgICBvbiBOb2Rl
LiBUaGUgbnVsbC1jaGVja2luZyBpcyBzdXBwb3NlZCB0byBiZSBkb25lIGJ5IHRoZSBiaW5kaW5n
cyBjb2RlCisgICAgICAgIGJ1dCBvdXIgZ2VuZXJhdG9yIGN1cnJlbnRseSBkb2VzIG5vdCBzdXBw
b3J0IHRoaXMgc28gd2UgZG8gdGhlIG51bGwKKyAgICAgICAgY2hlY2tpbmcgYXMgY2xvc2UgdG8g
dGhlIGJpbmRpbmdzIGFzIHBvc3NpYmxlLiBUaGUgYmluZGluZ3MgY29kZSBpcworICAgICAgICBj
YWxsaW5nIHRoZSBtZXRob2RzIG9uIE5vZGUuIFRoaXMgYWxzbyBtYWtlcyBzdXJlIHdlIHRocm93
IGEgVHlwZUVycm9yCisgICAgICAgIGZvciBudWxsLWFyZ3VtZW50IHdoZW4gdGhlIE5vZGUgaXMg
bm90IGEgQ29udGFpbmVyTm9kZS4gRm9yIGUuZy4KKyAgICAgICAgVGV4dC5hcHBlbmRDaGlsZChu
dWxsKSBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3IgdG9vLgorCisgICAgICAgIFRoZSBtZXRob2Rz
IG9uIENvbnRhaW5lck5vZGUgbm93IHRha2UgcmVmZXJlbmNlcyBpbnN0ZWFhZCBvZiBwb2ludGVy
CisgICAgICAgIHBhcmFtZXRlcnMgbm93IHRoYXQgdGhlIG51bGwtY2hlY2tpbmcgaXMgZG9uZSBh
dCB0aGUgY2FsbCBzaXRlIGluCisgICAgICAgIE5vZGUuIFRoaXMgbGVhZCB0byBhIGxvdCBvZiBj
b2RlIHVwZGF0ZSBhcyB0aG9zZSBtZXRob2RzIGFyZSB1c2VkCisgICAgICAgIGEgbG90IHRocm91
Z2hvdXQgdGhlIGNvZGUgYmFzZS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGFscmVhZHkgY292
ZXJlZCBieSBwcmUtZXhpc3RpbmcgbGF5b3V0IHRlc3RzLgorCiAyMDE1LTA5LTA5ICBDb21taXQg
UXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCBy
b2xsaW5nIG91dCByMTg5NTM2IGFuZCByMTg5NTM4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDYwYWRm
NzMyYWM4N2FiZTA0MTIyNzEzY2YzNTkxNzA4MzFkYzllMTUuLmY4Mjc5NGNhNTA2Y2M0MjgzNDUw
NmNiMDU2YmNkZjA2YTZjYzYyZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAor
MjAxNS0wOS0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIE5v
ZGUuYXBwZW5kQ2hpbGQobnVsbCkgLyByZXBsYWNlQ2hpbGQobnVsbCwgbnVsbCkgLyByZW1vdmVD
aGlsZChudWxsKSAvIGluc2VydEJlZm9yZShudWxsLCByZWYpIHNob3VsZCB0aHJvdyBhIFR5cGVF
cnJvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4
OTcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjU2MDg4Mz4KKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzIyNTU5MjI1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIENvbnRhaW5lck5vZGU6OmFwcGVuZENoaWxkKCkgbm93IHRha2VzIGEgUmVmPE5v
ZGU+JiYgcGFyYW1ldGVyIHNvIHdlCisgICAgICAgIG5lZWQgdG8gdXBkYXRlIHRoZSBjYWxsIHNp
dGUuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lLm1tOgorICAgICAgICAoLVtXZWJGcmFt
ZSBfZG9jdW1lbnRGcmFnbWVudFdpdGhOb2Rlc0FzUGFyYWdyYXBoczpdKToKKwogMjAxNS0wOS0w
NyAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW01hY10gRGVidWdS
ZWxlYXNlIGJ1aWxkcyBzaG91bGQgbGluayBhZ2FpbnN0IGxpYldlYktpdFN5c3RlbUludGVyZmFj
ZUVsQ2FwaXRhbi5hIG9uIDEwLjExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjQxOTI1ZDEwOTFhNmI0ZDhmZGU0
ZDVjYWJlOWY3N2U2OTRlYzBjZS4uOGQ4YzlhYTAyMDljM2RhN2MyZmVkODAxNGMzNDVlNTBmYjlm
ZjE1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE1LTA5LTA4ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTm9kZS5hcHBlbmRDaGlsZChudWxsKSAv
IHJlcGxhY2VDaGlsZChudWxsLCBudWxsKSAvIHJlbW92ZUNoaWxkKG51bGwpIC8gaW5zZXJ0QmVm
b3JlKG51bGwsIHJlZikgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg5NzEKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzIyNTYwODgzPgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjI1NTkyMjU+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29udGFpbmVyTm9k
ZTo6YXBwZW5kQ2hpbGQoKSBub3cgdGFrZXMgYSBSZWY8Tm9kZT4mJiBwYXJhbWV0ZXIgc28gd2UK
KyAgICAgICAgbmVlZCB0byB1cGRhdGUgdGhlIGNhbGwgc2l0ZXMuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1
Z2luOjpQREZQbHVnaW4pOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1
Z2luQW5ub3RhdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luQW5ub3RhdGlvbjo6
YXR0YWNoKToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luQW5ub3RhdGlvbjo6flBERlBsdWdp
bkFubm90YXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2lu
Q2hvaWNlQW5ub3RhdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luQ2hvaWNlQW5u
b3RhdGlvbjo6Y3JlYXRlQW5ub3RhdGlvbkVsZW1lbnQpOgorCiAyMDE1LTA5LTA4ICBEYW5pZWwg
QmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjXSBFeHBvc2UgRW5hYmxl
L0Rpc2FibGUgQWNjZWxlcmF0ZWQgRHJhd2luZyBpbiBNaW5pQnJvd3NlcgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2Vt
ZW50LmNwcAppbmRleCA4Zjk2YzlmMDI4YzcyOGZkYTAzYmI1MGE3ZWU5NmJhZmMzZGE5MDViLi5i
NDRjZmQyMDg1OWU3NGUxMzE3YTkzNGExNWM1NzY2OThiN2UxN2I5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2Vt
ZW50LmNwcApAQCAtODEsOSArODEsOSBAQCBib29sIFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudDo6
aW5zdGFsbFJlcGxhY2VtZW50KFNoYWRvd1Jvb3QqIHJvb3QpCiB7CiAgICAgbV9lbWJlZFNoYWRv
d0VsZW1lbnQgPSBZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50OjpjcmVhdGUobV9wYXJlbnRFbGVt
ZW50LT5kb2N1bWVudCgpKTsKIAotICAgIHJvb3QtPmFwcGVuZENoaWxkKG1fZW1iZWRTaGFkb3dF
bGVtZW50LmdldCgpKTsKKyAgICByb290LT5hcHBlbmRDaGlsZCgqbV9lbWJlZFNoYWRvd0VsZW1l
bnQpOwogCi0gICAgUmVmUHRyPEhUTUxJRnJhbWVFbGVtZW50PiBpZnJhbWVFbGVtZW50ID0gSFRN
TElGcmFtZUVsZW1lbnQ6OmNyZWF0ZShIVE1MTmFtZXM6OmlmcmFtZVRhZywgbV9wYXJlbnRFbGVt
ZW50LT5kb2N1bWVudCgpKTsKKyAgICBSZWY8SFRNTElGcmFtZUVsZW1lbnQ+IGlmcmFtZUVsZW1l
bnQgPSBIVE1MSUZyYW1lRWxlbWVudDo6Y3JlYXRlKEhUTUxOYW1lczo6aWZyYW1lVGFnLCBtX3Bh
cmVudEVsZW1lbnQtPmRvY3VtZW50KCkpOwogICAgIGlmIChtX2F0dHJpYnV0ZXMuY29udGFpbnMo
IndpZHRoIikpCiAgICAgICAgIGlmcmFtZUVsZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6
OndpZHRoQXR0ciwgQXRvbWljU3RyaW5nKCIxMDAlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOwogICAgIApAQCAtOTgsNyArOTgsNyBAQCBib29sIFlvdVR1YmVQbHVnaW5S
ZXBsYWNlbWVudDo6aW5zdGFsbFJlcGxhY2VtZW50KFNoYWRvd1Jvb3QqIHJvb3QpCiAgICAgCiAg
ICAgLy8gRGlzYWJsZSBmcmFtZSBmbGF0dGVuaW5nIGZvciB0aGlzIGlmcmFtZS4KICAgICBpZnJh
bWVFbGVtZW50LT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpzY3JvbGxpbmdBdHRyLCBBdG9taWNT
dHJpbmcoIm5vIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIG1f
ZW1iZWRTaGFkb3dFbGVtZW50LT5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsKKyAgICBtX2Vt
YmVkU2hhZG93RWxlbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGlmcmFtZUVsZW1lbnQpKTsK
IAogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9ET01IVE1MLm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1M
Lm1tCmluZGV4IDBkZTIyY2UzY2RhYzRmNzg4YTdmZGE3Y2YwNDU1NzA2YTA5MDViZmMuLjAyNzU5
NWUxZTkxYjJmM2FhNjI4ZTI5MzYxNWJhNTFkMmZmMDU5ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9vYmpjL0RPTUhUTUwubW0KQEAgLTE1Miw3ICsxNTIsNyBAQCAtIChET01Eb2N1bWVudEZy
YWdtZW50ICopY3JlYXRlRG9jdW1lbnRGcmFnbWVudFdpdGhNYXJrdXBTdHJpbmc6KE5TU3RyaW5n
ICopbWFyawogLSAoRE9NRG9jdW1lbnRGcmFnbWVudCAqKWNyZWF0ZURvY3VtZW50RnJhZ21lbnRX
aXRoVGV4dDooTlNTdHJpbmcgKil0ZXh0CiB7CiAgICAgLy8gRklYTUU6IFNpbmNlIHRoaXMgaXMg
bm90IGEgY29udGV4dHVhbCBmcmFnbWVudCwgaXQgd29uJ3QgaGFuZGxlIHdoaXRlc3BhY2UgcHJv
cGVybHkuCi0gICAgcmV0dXJuIGtpdChjcmVhdGVGcmFnbWVudEZyb21UZXh0KGNvcmUoc2VsZikt
PmNyZWF0ZVJhbmdlKCksIHRleHQpLmdldCgpKTsKKyAgICByZXR1cm4ga2l0KGNyZWF0ZUZyYWdt
ZW50RnJvbVRleHQoY29yZShzZWxmKS0+Y3JlYXRlUmFuZ2UoKSwgdGV4dCkucHRyKCkpOwogfQog
CiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vQXR0ci5jcHAKaW5kZXggMTg1NzBmMWQ4NzQzMWExZjNhNDRkYTAzZTU4YTJl
YzVmZjcxYTc4Yy4uYWM3YjY2Zjk5NzA1ZDg5OWVlY2UzYzI4OTRmODllMWY4MDlkMTVmOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9BdHRyLmNwcApAQCAtMTM4LDExICsxMzgsMTEgQEAgdm9pZCBBdHRyOjpzZXROb2RlVmFs
dWUoY29uc3QgU3RyaW5nJiB2LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBzZXRWYWx1ZSh2LCBl
Yyk7CiB9CiAKLVJlZlB0cjxOb2RlPiBBdHRyOjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYg
dGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24pCitSZWY8Tm9kZT4gQXR0cjo6Y2xvbmVO
b2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uKQog
ewotICAgIFJlZlB0cjxBdHRyPiBjbG9uZSA9IGFkb3B0UmVmKG5ldyBBdHRyKHRhcmdldERvY3Vt
ZW50LCBxdWFsaWZpZWROYW1lKCksIHZhbHVlKCkpKTsKLSAgICBjbG9uZUNoaWxkTm9kZXMoY2xv
bmUuZ2V0KCkpOwotICAgIHJldHVybiBjbG9uZS5yZWxlYXNlKCk7CisgICAgUmVmPEF0dHI+IGNs
b25lID0gYWRvcHRSZWYoKm5ldyBBdHRyKHRhcmdldERvY3VtZW50LCBxdWFsaWZpZWROYW1lKCks
IHZhbHVlKCkpKTsKKyAgICBjbG9uZUNoaWxkTm9kZXMoY2xvbmUpOworICAgIHJldHVybiBXVEY6
Om1vdmUoY2xvbmUpOwogfQogCiAvLyBET00gU2VjdGlvbiAxLjEuMQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0F0dHIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmgKaW5kZXgg
YzdhOTRmOThmMGJmYjU3ZWIwYzNhYjUxNzk4OGE0NDgwYjM0OTAxMC4uMTI0YzZkN2EyYWEyODY4
MzBmY2JhMjk2Mjg4ODhiNzIwMjI5OTI4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0F0dHIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5oCkBAIC04MCw3ICs4MCw3IEBA
IHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFN0cmluZyBub2RlVmFsdWUoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiB2YWx1ZSgpOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldE5vZGVWYWx1ZShjb25z
dCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZWZQdHI8
Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYs
IENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIGlzQXR0cmli
dXRlTm9kZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGJv
b2wgY2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vQ0RBVEFTZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9DREFUQVNlY3Rpb24uY3BwCmluZGV4IGM1OWJmMWU5NThmZGE0NTBhZTkyZGYyMmI3NDA5ZmZi
OTY4YTBiZWIuLmFmZDczMjI3MGYxMmM2ZDhkY2ZmYjhmZjgyN2ExMzljYzMxYTMxZTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DREFUQVNlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9DREFUQVNlY3Rpb24uY3BwCkBAIC00Niw3ICs0Niw3IEBAIE5vZGU6Ok5vZGVU
eXBlIENEQVRBU2VjdGlvbjo6bm9kZVR5cGUoKSBjb25zdAogICAgIHJldHVybiBDREFUQV9TRUNU
SU9OX05PREU7CiB9CiAKLVJlZlB0cjxOb2RlPiBDREFUQVNlY3Rpb246OmNsb25lTm9kZUludGVy
bmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikKK1JlZjxOb2Rl
PiBDREFUQVNlY3Rpb246OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVu
dCwgQ2xvbmluZ09wZXJhdGlvbikKIHsKICAgICByZXR1cm4gY3JlYXRlKHRhcmdldERvY3VtZW50
LCBkYXRhKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NEQVRBU2VjdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0NEQVRBU2VjdGlvbi5oCmluZGV4IGJmNWE2MWM2MjY4
NWIyMzcwNWQ2NGI0Y2UzOTQ2YTYzNzg0OTIzYTcuLmQ2Yjk5MzdkZmM3NWE1OGU5NmVhYjUyZGYy
NmFkOWI0YjdkZWYyNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DREFUQVNlY3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ0RBVEFTZWN0aW9uLmgKQEAgLTM2LDcgKzM2
LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1lKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCBOb2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwot
ICAgIHZpcnR1YWwgUmVmUHRyPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xv
bmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2Rl
SW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIGJvb2wgY2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCBSZWY8VGV4dD4gdmlydHVhbENyZWF0ZShjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vQ29tbWVudC5jcHAKaW5kZXggNGM3NGFhZjYzYWQ5MDUzYzZhYmU1OTU1NjIz
MTg1ZDI3ZDk4OWQ2Yi4uNDEyNWE2ZWFlMWFkZjlhOGY4NjZmZWI1NDI5ZjRmM2Q0MjBiNzI0YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Db21tZW50LmNwcApAQCAtNDYsNyArNDYsNyBAQCBOb2RlOjpOb2RlVHlwZSBD
b21tZW50Ojpub2RlVHlwZSgpIGNvbnN0CiAgICAgcmV0dXJuIENPTU1FTlRfTk9ERTsKIH0KIAot
UmVmUHRyPE5vZGU+IENvbW1lbnQ6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXRE
b2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikKK1JlZjxOb2RlPiBDb21tZW50OjpjbG9uZU5vZGVJ
bnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24pCiB7CiAg
ICAgcmV0dXJuIGNyZWF0ZSh0YXJnZXREb2N1bWVudCwgZGF0YSgpKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Db21tZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tbWVu
dC5oCmluZGV4IGZjYWM2MGEzM2U1ZTMwYTFlNTljMWRjOWVmM2I2Mzk0YWRlN2I3NTkuLjE1NjYz
MjMzMmEyMDY4ZjNhOWI4NTI2Y2JjYzc0NjU0ODYxNTk5YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Db21tZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbW1lbnQuaApA
QCAtMzYsNyArMzYsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBTdHJpbmcgbm9kZU5hbWUo
KSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIE5vZGVUeXBlIG5vZGVUeXBlKCkgY29uc3Qg
b3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZWZQdHI8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9j
dW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxOb2Rl
PiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlKSBjb25zdCBvdmVy
cmlkZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2Rl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAppbmRleCBmMDYzMWI2
YmRkNGRhN2RhMmRhNGJkNGZhOTk0YzE5Y2Y5OTBjM2Q1Li42MzE0MTc1MzRmYjZlY2EwZGM2Njdk
MjkxOTE2MjI5N2I2ODM1YmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFp
bmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCkBA
IC03Niw3ICs3Niw3IEBAIHN0YXRpYyB2b2lkIGNvbGxlY3RDaGlsZHJlbkFuZFJlbW92ZUZyb21P
bGRQYXJlbnQoTm9kZSYgbm9kZSwgTm9kZVZlY3RvciYgbm9kZXMsCiAgICAgaWYgKCFpczxEb2N1
bWVudEZyYWdtZW50Pihub2RlKSkgewogICAgICAgICBub2Rlcy5hcHBlbmQobm9kZSk7CiAgICAg
ICAgIGlmIChDb250YWluZXJOb2RlKiBvbGRQYXJlbnQgPSBub2RlLnBhcmVudE5vZGUoKSkKLSAg
ICAgICAgICAgIG9sZFBhcmVudC0+cmVtb3ZlQ2hpbGQoJm5vZGUsIGVjKTsKKyAgICAgICAgICAg
IG9sZFBhcmVudC0+cmVtb3ZlQ2hpbGQobm9kZSwgZWMpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC0xNDYsMTMgKzE0NiwxMyBAQCBDb250YWluZXJOb2RlOjp+Q29udGFpbmVyTm9kZSgp
CiAgICAgcmVtb3ZlRGV0YWNoZWRDaGlsZHJlbigpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wg
aXNDaGlsZFR5cGVBbGxvd2VkKENvbnRhaW5lck5vZGUqIG5ld1BhcmVudCwgTm9kZSogY2hpbGQp
CitzdGF0aWMgaW5saW5lIGJvb2wgaXNDaGlsZFR5cGVBbGxvd2VkKENvbnRhaW5lck5vZGUmIG5l
d1BhcmVudCwgTm9kZSYgY2hpbGQpCiB7Ci0gICAgaWYgKCFjaGlsZC0+aXNEb2N1bWVudEZyYWdt
ZW50KCkpCi0gICAgICAgIHJldHVybiBuZXdQYXJlbnQtPmNoaWxkVHlwZUFsbG93ZWQoY2hpbGQt
Pm5vZGVUeXBlKCkpOworICAgIGlmICghY2hpbGQuaXNEb2N1bWVudEZyYWdtZW50KCkpCisgICAg
ICAgIHJldHVybiBuZXdQYXJlbnQuY2hpbGRUeXBlQWxsb3dlZChjaGlsZC5ub2RlVHlwZSgpKTsK
IAotICAgIGZvciAoTm9kZSogbm9kZSA9IGNoaWxkLT5maXJzdENoaWxkKCk7IG5vZGU7IG5vZGUg
PSBub2RlLT5uZXh0U2libGluZygpKSB7Ci0gICAgICAgIGlmICghbmV3UGFyZW50LT5jaGlsZFR5
cGVBbGxvd2VkKG5vZGUtPm5vZGVUeXBlKCkpKQorICAgIGZvciAoTm9kZSogbm9kZSA9IGNoaWxk
LmZpcnN0Q2hpbGQoKTsgbm9kZTsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAg
ICAgaWYgKCFuZXdQYXJlbnQuY2hpbGRUeXBlQWxsb3dlZChub2RlLT5ub2RlVHlwZSgpKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgcmV0dXJuIHRydWU7CkBAIC0xNjks
MjMgKzE2OSwxOSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNJblRlbXBsYXRlQ29udGVudChjb25z
dCBOb2RlKiBub2RlKQogI2VuZGlmCiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBjb250YWluc0Nv
bnNpZGVyaW5nSG9zdEVsZW1lbnRzKGNvbnN0IE5vZGUqIG5ld0NoaWxkLCBjb25zdCBOb2RlKiBu
ZXdQYXJlbnQpCitzdGF0aWMgaW5saW5lIGJvb2wgY29udGFpbnNDb25zaWRlcmluZ0hvc3RFbGVt
ZW50cyhjb25zdCBOb2RlJiBuZXdDaGlsZCwgY29uc3QgTm9kZSYgbmV3UGFyZW50KQogewotICAg
IHJldHVybiAobmV3UGFyZW50LT5pc0luU2hhZG93VHJlZSgpIHx8IGlzSW5UZW1wbGF0ZUNvbnRl
bnQobmV3UGFyZW50KSkKLSAgICAgICAgPyBuZXdDaGlsZC0+Y29udGFpbnNJbmNsdWRpbmdIb3N0
RWxlbWVudHMobmV3UGFyZW50KQotICAgICAgICA6IG5ld0NoaWxkLT5jb250YWlucyhuZXdQYXJl
bnQpOworICAgIHJldHVybiAobmV3UGFyZW50LmlzSW5TaGFkb3dUcmVlKCkgfHwgaXNJblRlbXBs
YXRlQ29udGVudCgmbmV3UGFyZW50KSkKKyAgICAgICAgPyBuZXdDaGlsZC5jb250YWluc0luY2x1
ZGluZ0hvc3RFbGVtZW50cygmbmV3UGFyZW50KQorICAgICAgICA6IG5ld0NoaWxkLmNvbnRhaW5z
KCZuZXdQYXJlbnQpOwogfQogCi1zdGF0aWMgaW5saW5lIEV4Y2VwdGlvbkNvZGUgY2hlY2tBY2Nl
cHRDaGlsZChDb250YWluZXJOb2RlKiBuZXdQYXJlbnQsIE5vZGUqIG5ld0NoaWxkLCBOb2RlKiBv
bGRDaGlsZCkKK3N0YXRpYyBpbmxpbmUgRXhjZXB0aW9uQ29kZSBjaGVja0FjY2VwdENoaWxkKENv
bnRhaW5lck5vZGUmIG5ld1BhcmVudCwgTm9kZSYgbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkKQog
ewotICAgIC8vIE5vdCBtZW50aW9uZWQgaW4gc3BlYzogdGhyb3cgTk9UX0ZPVU5EX0VSUiBpZiBu
ZXdDaGlsZCBpcyBudWxsCi0gICAgaWYgKCFuZXdDaGlsZCkKLSAgICAgICAgcmV0dXJuIE5PVF9G
T1VORF9FUlI7Ci0KICAgICAvLyBVc2UgY29tbW9uIGNhc2UgZmFzdCBwYXRoIGlmIHBvc3NpYmxl
LgotICAgIGlmICgobmV3Q2hpbGQtPmlzRWxlbWVudE5vZGUoKSB8fCBuZXdDaGlsZC0+aXNUZXh0
Tm9kZSgpKSAmJiBuZXdQYXJlbnQtPmlzRWxlbWVudE5vZGUoKSkgewotICAgICAgICBBU1NFUlQo
IW5ld1BhcmVudC0+aXNSZWFkT25seU5vZGUoKSk7Ci0gICAgICAgIEFTU0VSVCghbmV3UGFyZW50
LT5pc0RvY3VtZW50VHlwZU5vZGUoKSk7CisgICAgaWYgKChuZXdDaGlsZC5pc0VsZW1lbnROb2Rl
KCkgfHwgbmV3Q2hpbGQuaXNUZXh0Tm9kZSgpKSAmJiBuZXdQYXJlbnQuaXNFbGVtZW50Tm9kZSgp
KSB7CisgICAgICAgIEFTU0VSVCghbmV3UGFyZW50LmlzUmVhZE9ubHlOb2RlKCkpOworICAgICAg
ICBBU1NFUlQoIW5ld1BhcmVudC5pc0RvY3VtZW50VHlwZU5vZGUoKSk7CiAgICAgICAgIEFTU0VS
VChpc0NoaWxkVHlwZUFsbG93ZWQobmV3UGFyZW50LCBuZXdDaGlsZCkpOwogICAgICAgICBpZiAo
Y29udGFpbnNDb25zaWRlcmluZ0hvc3RFbGVtZW50cyhuZXdDaGlsZCwgbmV3UGFyZW50KSkKICAg
ICAgICAgICAgIHJldHVybiBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CkBAIC0xOTMsMTcgKzE4OSwx
NyBAQCBzdGF0aWMgaW5saW5lIEV4Y2VwdGlvbkNvZGUgY2hlY2tBY2NlcHRDaGlsZChDb250YWlu
ZXJOb2RlKiBuZXdQYXJlbnQsIE5vZGUqIG5ldwogICAgIH0KIAogICAgIC8vIFRoaXMgc2hvdWxk
IG5ldmVyIGhhcHBlbiwgYnV0IGFsc28gcHJvdGVjdCByZWxlYXNlIGJ1aWxkcyBmcm9tIHRyZWUg
Y29ycnVwdGlvbi4KLSAgICBBU1NFUlQoIW5ld0NoaWxkLT5pc1BzZXVkb0VsZW1lbnQoKSk7Ci0g
ICAgaWYgKG5ld0NoaWxkLT5pc1BzZXVkb0VsZW1lbnQoKSkKKyAgICBBU1NFUlQoIW5ld0NoaWxk
LmlzUHNldWRvRWxlbWVudCgpKTsKKyAgICBpZiAobmV3Q2hpbGQuaXNQc2V1ZG9FbGVtZW50KCkp
CiAgICAgICAgIHJldHVybiBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAKLSAgICBpZiAobmV3UGFy
ZW50LT5pc1JlYWRPbmx5Tm9kZSgpKQorICAgIGlmIChuZXdQYXJlbnQuaXNSZWFkT25seU5vZGUo
KSkKICAgICAgICAgcmV0dXJuIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjsKICAgICBpZiAo
Y29udGFpbnNDb25zaWRlcmluZ0hvc3RFbGVtZW50cyhuZXdDaGlsZCwgbmV3UGFyZW50KSkKICAg
ICAgICAgcmV0dXJuIEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKIAotICAgIGlmIChvbGRDaGlsZCAm
JiBpczxEb2N1bWVudD4oKm5ld1BhcmVudCkpIHsKLSAgICAgICAgaWYgKCFkb3duY2FzdDxEb2N1
bWVudD4oKm5ld1BhcmVudCkuY2FuUmVwbGFjZUNoaWxkKG5ld0NoaWxkLCBvbGRDaGlsZCkpCisg
ICAgaWYgKG9sZENoaWxkICYmIGlzPERvY3VtZW50PihuZXdQYXJlbnQpKSB7CisgICAgICAgIGlm
ICghZG93bmNhc3Q8RG9jdW1lbnQ+KG5ld1BhcmVudCkuY2FuUmVwbGFjZUNoaWxkKG5ld0NoaWxk
LCAqb2xkQ2hpbGQpKQogICAgICAgICAgICAgcmV0dXJuIEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsK
ICAgICB9IGVsc2UgaWYgKCFpc0NoaWxkVHlwZUFsbG93ZWQobmV3UGFyZW50LCBuZXdDaGlsZCkp
CiAgICAgICAgIHJldHVybiBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CkBAIC0yMTEsMTIgKzIwNywx
MiBAQCBzdGF0aWMgaW5saW5lIEV4Y2VwdGlvbkNvZGUgY2hlY2tBY2NlcHRDaGlsZChDb250YWlu
ZXJOb2RlKiBuZXdQYXJlbnQsIE5vZGUqIG5ldwogICAgIHJldHVybiAwOwogfQogCi1zdGF0aWMg
aW5saW5lIGJvb2wgY2hlY2tBY2NlcHRDaGlsZEd1YXJhbnRlZWROb2RlVHlwZXMoQ29udGFpbmVy
Tm9kZSogbmV3UGFyZW50LCBOb2RlKiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCitzdGF0
aWMgaW5saW5lIGJvb2wgY2hlY2tBY2NlcHRDaGlsZEd1YXJhbnRlZWROb2RlVHlwZXMoQ29udGFp
bmVyTm9kZSYgbmV3UGFyZW50LCBOb2RlJiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
Ci0gICAgQVNTRVJUKCFuZXdQYXJlbnQtPmlzUmVhZE9ubHlOb2RlKCkpOwotICAgIEFTU0VSVCgh
bmV3UGFyZW50LT5pc0RvY3VtZW50VHlwZU5vZGUoKSk7CisgICAgQVNTRVJUKCFuZXdQYXJlbnQu
aXNSZWFkT25seU5vZGUoKSk7CisgICAgQVNTRVJUKCFuZXdQYXJlbnQuaXNEb2N1bWVudFR5cGVO
b2RlKCkpOwogICAgIEFTU0VSVChpc0NoaWxkVHlwZUFsbG93ZWQobmV3UGFyZW50LCBuZXdDaGls
ZCkpOwotICAgIGlmIChuZXdDaGlsZC0+Y29udGFpbnMobmV3UGFyZW50KSkgeworICAgIGlmIChu
ZXdDaGlsZC5jb250YWlucygmbmV3UGFyZW50KSkgewogICAgICAgICBlYyA9IEhJRVJBUkNIWV9S
RVFVRVNUX0VSUjsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTIyNCwyNSArMjIw
LDE5IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBjaGVja0FjY2VwdENoaWxkR3VhcmFudGVlZE5vZGVU
eXBlcyhDb250YWluZXJOb2RlKiBuZXdQYXJlbnQsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0
YXRpYyBpbmxpbmUgYm9vbCBjaGVja0FkZENoaWxkKENvbnRhaW5lck5vZGUqIG5ld1BhcmVudCwg
Tm9kZSogbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQorc3RhdGljIGlubGluZSBib29sIGNo
ZWNrQWRkQ2hpbGQoQ29udGFpbmVyTm9kZSYgbmV3UGFyZW50LCBOb2RlJiBuZXdDaGlsZCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgZWMgPSBjaGVja0FjY2VwdENoaWxkKG5ld1BhcmVudCwg
bmV3Q2hpbGQsIDApOwotICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAg
cmV0dXJuIHRydWU7CisgICAgZWMgPSBjaGVja0FjY2VwdENoaWxkKG5ld1BhcmVudCwgbmV3Q2hp
bGQsIG51bGxwdHIpOworICAgIHJldHVybiAhZWM7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBj
aGVja1JlcGxhY2VDaGlsZChDb250YWluZXJOb2RlKiBuZXdQYXJlbnQsIE5vZGUqIG5ld0NoaWxk
LCBOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCitzdGF0aWMgaW5saW5lIGJvb2wg
Y2hlY2tSZXBsYWNlQ2hpbGQoQ29udGFpbmVyTm9kZSYgbmV3UGFyZW50LCBOb2RlJiBuZXdDaGls
ZCwgTm9kZSYgb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIGVjID0gY2hlY2tB
Y2NlcHRDaGlsZChuZXdQYXJlbnQsIG5ld0NoaWxkLCBvbGRDaGlsZCk7Ci0gICAgaWYgKGVjKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBlYyA9IGNoZWNr
QWNjZXB0Q2hpbGQobmV3UGFyZW50LCBuZXdDaGlsZCwgJm9sZENoaWxkKTsKKyAgICByZXR1cm4g
IWVjOwogfQogCi1ib29sIENvbnRhaW5lck5vZGU6Omluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5v
ZGU+IG5ld0NoaWxkLCBOb2RlKiByZWZDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCitib29sIENv
bnRhaW5lck5vZGU6Omluc2VydEJlZm9yZShSZWY8Tm9kZT4mJiBuZXdDaGlsZCwgTm9kZSogcmVm
Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIC8vIENoZWNrIHRoYXQgdGhpcyBub2Rl
IGlzIG5vdCAiZmxvYXRpbmciLgogICAgIC8vIElmIGl0IGlzLCBpdCBjYW4gYmUgZGVsZXRlZCBh
cyBhIHNpZGUgZWZmZWN0IG9mIHNlbmRpbmcgbXV0YXRpb24gZXZlbnRzLgpAQCAtMjU0LDEwICsy
NDQsMTAgQEAgYm9vbCBDb250YWluZXJOb2RlOjppbnNlcnRCZWZvcmUoUGFzc1JlZlB0cjxOb2Rl
PiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hpbGQsIEV4Y2UKIAogICAgIC8vIGluc2VydEJlZm9yZShu
b2RlLCAwKSBpcyBlcXVpdmFsZW50IHRvIGFwcGVuZENoaWxkKG5vZGUpCiAgICAgaWYgKCFyZWZD
aGlsZCkKLSAgICAgICAgcmV0dXJuIGFwcGVuZENoaWxkKG5ld0NoaWxkLCBlYyk7CisgICAgICAg
IHJldHVybiBhcHBlbmRDaGlsZChXVEY6Om1vdmUobmV3Q2hpbGQpLCBlYyk7CiAKICAgICAvLyBN
YWtlIHN1cmUgYWRkaW5nIHRoZSBuZXcgY2hpbGQgaXMgT0suCi0gICAgaWYgKCFjaGVja0FkZENo
aWxkKHRoaXMsIG5ld0NoaWxkLmdldCgpLCBlYykpCisgICAgaWYgKCFjaGVja0FkZENoaWxkKCp0
aGlzLCBuZXdDaGlsZCwgZWMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBOT1Rf
Rk9VTkRfRVJSOiBSYWlzZWQgaWYgcmVmQ2hpbGQgaXMgbm90IGEgY2hpbGQgb2YgdGhpcyBub2Rl
CkBAIC0yNjYsMjAgKzI1NiwyMCBAQCBib29sIENvbnRhaW5lck5vZGU6Omluc2VydEJlZm9yZShQ
YXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiByZWZDaGlsZCwgRXhjZQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgaWYgKHJlZkNoaWxkLT5wcmV2aW91c1NpYmxpbmco
KSA9PSBuZXdDaGlsZCB8fCByZWZDaGlsZCA9PSBuZXdDaGlsZCkgLy8gbm90aGluZyB0byBkbwor
ICAgIGlmIChyZWZDaGlsZC0+cHJldmlvdXNTaWJsaW5nKCkgPT0gbmV3Q2hpbGQucHRyKCkgfHwg
cmVmQ2hpbGQgPT0gbmV3Q2hpbGQucHRyKCkpIC8vIG5vdGhpbmcgdG8gZG8KICAgICAgICAgcmV0
dXJuIHRydWU7CiAKICAgICBSZWY8Tm9kZT4gbmV4dCgqcmVmQ2hpbGQpOwogCiAgICAgTm9kZVZl
Y3RvciB0YXJnZXRzOwotICAgIGNvbGxlY3RDaGlsZHJlbkFuZFJlbW92ZUZyb21PbGRQYXJlbnQo
Km5ld0NoaWxkLmdldCgpLCB0YXJnZXRzLCBlYyk7CisgICAgY29sbGVjdENoaWxkcmVuQW5kUmVt
b3ZlRnJvbU9sZFBhcmVudChuZXdDaGlsZCwgdGFyZ2V0cywgZWMpOwogICAgIGlmIChlYykKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICh0YXJnZXRzLmlzRW1wdHkoKSkKICAgICAgICAg
cmV0dXJuIHRydWU7CiAKICAgICAvLyBXZSBuZWVkIHRoaXMgZXh0cmEgY2hlY2sgYmVjYXVzZSBj
b2xsZWN0Q2hpbGRyZW5BbmRSZW1vdmVGcm9tT2xkUGFyZW50KCkgY2FuIGZpcmUgbXV0YXRpb24g
ZXZlbnRzLgotICAgIGlmICghY2hlY2tBY2NlcHRDaGlsZEd1YXJhbnRlZWROb2RlVHlwZXModGhp
cywgbmV3Q2hpbGQuZ2V0KCksIGVjKSkKKyAgICBpZiAoIWNoZWNrQWNjZXB0Q2hpbGRHdWFyYW50
ZWVkTm9kZVR5cGVzKCp0aGlzLCBuZXdDaGlsZCwgZWMpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxJbnNlcnRET01Ob2RlKGRvY3Vt
ZW50KCksICp0aGlzKTsKQEAgLTM5MCw3ICszODAsNyBAQCB2b2lkIENvbnRhaW5lck5vZGU6OnBh
cnNlckluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiBuZXh0Q2hp
bAogICAgIG5ld0NoaWxkLT5zZXROZWVkc1N0eWxlUmVjYWxjKFJlY29uc3RydWN0UmVuZGVyVHJl
ZSk7CiB9CiAKLWJvb2wgQ29udGFpbmVyTm9kZTo6cmVwbGFjZUNoaWxkKFBhc3NSZWZQdHI8Tm9k
ZT4gbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKK2Jvb2wgQ29u
dGFpbmVyTm9kZTo6cmVwbGFjZUNoaWxkKFJlZjxOb2RlPiYmIG5ld0NoaWxkLCBOb2RlJiBvbGRD
aGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgLy8gQ2hlY2sgdGhhdCB0aGlzIG5vZGUg
aXMgbm90ICJmbG9hdGluZyIuCiAgICAgLy8gSWYgaXQgaXMsIGl0IGNhbiBiZSBkZWxldGVkIGFz
IGEgc2lkZSBlZmZlY3Qgb2Ygc2VuZGluZyBtdXRhdGlvbiBldmVudHMuCkBAIC00MDAsNDggKzM5
MCw0MyBAQCBib29sIENvbnRhaW5lck5vZGU6OnJlcGxhY2VDaGlsZChQYXNzUmVmUHRyPE5vZGU+
IG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCwgRXhjZQogCiAgICAgZWMgPSAwOwogCi0gICAgaWYg
KG9sZENoaWxkID09IG5ld0NoaWxkKSAvLyBub3RoaW5nIHRvIGRvCisgICAgaWYgKCZvbGRDaGls
ZCA9PSBuZXdDaGlsZC5wdHIoKSkgLy8gbm90aGluZyB0byBkbwogICAgICAgICByZXR1cm4gdHJ1
ZTsKIAotICAgIGlmICghb2xkQ2hpbGQpIHsKLSAgICAgICAgZWMgPSBOT1RfRk9VTkRfRVJSOwot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCiAgICAgLy8gTWFrZSBzdXJlIHJlcGxhY2lu
ZyB0aGUgb2xkIGNoaWxkIHdpdGggdGhlIG5ldyBpcyBvawotICAgIGlmICghY2hlY2tSZXBsYWNl
Q2hpbGQodGhpcywgbmV3Q2hpbGQuZ2V0KCksIG9sZENoaWxkLCBlYykpCisgICAgaWYgKCFjaGVj
a1JlcGxhY2VDaGlsZCgqdGhpcywgbmV3Q2hpbGQsIG9sZENoaWxkLCBlYykpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIC8vIE5PVF9GT1VORF9FUlI6IFJhaXNlZCBpZiBvbGRDaGlsZCBp
cyBub3QgYSBjaGlsZCBvZiB0aGlzIG5vZGUuCi0gICAgaWYgKG9sZENoaWxkLT5wYXJlbnROb2Rl
KCkgIT0gdGhpcykgeworICAgIGlmIChvbGRDaGlsZC5wYXJlbnROb2RlKCkgIT0gdGhpcykgewog
ICAgICAgICBlYyA9IE5PVF9GT1VORF9FUlI7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
CiAKICAgICBDaGlsZExpc3RNdXRhdGlvblNjb3BlIG11dGF0aW9uKCp0aGlzKTsKIAotICAgIFJl
ZlB0cjxOb2RlPiBuZXh0ID0gb2xkQ2hpbGQtPm5leHRTaWJsaW5nKCk7CisgICAgUmVmUHRyPE5v
ZGU+IG5leHQgPSBvbGRDaGlsZC5uZXh0U2libGluZygpOwogCiAgICAgLy8gUmVtb3ZlIHRoZSBu
b2RlIHdlJ3JlIHJlcGxhY2luZwotICAgIFJlZjxOb2RlPiByZW1vdmVkQ2hpbGQoKm9sZENoaWxk
KTsKKyAgICBSZWY8Tm9kZT4gcmVtb3ZlZENoaWxkKG9sZENoaWxkKTsKICAgICByZW1vdmVDaGls
ZChvbGRDaGlsZCwgZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0g
ICAgaWYgKG5leHQgJiYgKG5leHQtPnByZXZpb3VzU2libGluZygpID09IG5ld0NoaWxkIHx8IG5l
eHQgPT0gbmV3Q2hpbGQpKSAvLyBub3RoaW5nIHRvIGRvCisgICAgaWYgKG5leHQgJiYgKG5leHQt
PnByZXZpb3VzU2libGluZygpID09IG5ld0NoaWxkLnB0cigpIHx8IG5leHQgPT0gbmV3Q2hpbGQu
cHRyKCkpKSAvLyBub3RoaW5nIHRvIGRvCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgLy8g
RG9lcyB0aGlzIG9uZSBtb3JlIHRpbWUgYmVjYXVzZSByZW1vdmVDaGlsZCgpIGZpcmVzIGEgTXV0
YXRpb25FdmVudC4KLSAgICBpZiAoIWNoZWNrUmVwbGFjZUNoaWxkKHRoaXMsIG5ld0NoaWxkLmdl
dCgpLCBvbGRDaGlsZCwgZWMpKQorICAgIGlmICghY2hlY2tSZXBsYWNlQ2hpbGQoKnRoaXMsIG5l
d0NoaWxkLCBvbGRDaGlsZCwgZWMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBOb2Rl
VmVjdG9yIHRhcmdldHM7Ci0gICAgY29sbGVjdENoaWxkcmVuQW5kUmVtb3ZlRnJvbU9sZFBhcmVu
dCgqbmV3Q2hpbGQuZ2V0KCksIHRhcmdldHMsIGVjKTsKKyAgICBjb2xsZWN0Q2hpbGRyZW5BbmRS
ZW1vdmVGcm9tT2xkUGFyZW50KG5ld0NoaWxkLCB0YXJnZXRzLCBlYyk7CiAgICAgaWYgKGVjKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBEb2VzIHRoaXMgeWV0IGFub3RoZXIgY2hl
Y2sgYmVjYXVzZSBjb2xsZWN0Q2hpbGRyZW5BbmRSZW1vdmVGcm9tT2xkUGFyZW50KCkgZmlyZXMg
YSBNdXRhdGlvbkV2ZW50LgotICAgIGlmICghY2hlY2tSZXBsYWNlQ2hpbGQodGhpcywgbmV3Q2hp
bGQuZ2V0KCksIG9sZENoaWxkLCBlYykpCisgICAgaWYgKCFjaGVja1JlcGxhY2VDaGlsZCgqdGhp
cywgbmV3Q2hpbGQsIG9sZENoaWxkLCBlYykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEluc2VydERPTU5vZGUoZG9jdW1lbnQoKSwg
KnRoaXMpOwpAQCAtNTE1LDcgKzUwMCw3IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6ZGlzY29ubmVj
dERlc2NlbmRhbnRGcmFtZXMoKQogICAgIGRpc2Nvbm5lY3RTdWJmcmFtZXNJZk5lZWRlZCgqdGhp
cywgUm9vdEFuZERlc2NlbmRhbnRzKTsKIH0KIAotYm9vbCBDb250YWluZXJOb2RlOjpyZW1vdmVD
aGlsZChOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCitib29sIENvbnRhaW5lck5v
ZGU6OnJlbW92ZUNoaWxkKE5vZGUmIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAg
ICAvLyBDaGVjayB0aGF0IHRoaXMgbm9kZSBpcyBub3QgImZsb2F0aW5nIi4KICAgICAvLyBJZiBp
dCBpcywgaXQgY2FuIGJlIGRlbGV0ZWQgYXMgYSBzaWRlIGVmZmVjdCBvZiBzZW5kaW5nIG11dGF0
aW9uIGV2ZW50cy4KQEAgLTUzMiwxMiArNTE3LDEyIEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6cmVt
b3ZlQ2hpbGQoTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIH0KIAogICAg
IC8vIE5PVF9GT1VORF9FUlI6IFJhaXNlZCBpZiBvbGRDaGlsZCBpcyBub3QgYSBjaGlsZCBvZiB0
aGlzIG5vZGUuCi0gICAgaWYgKCFvbGRDaGlsZCB8fCBvbGRDaGlsZC0+cGFyZW50Tm9kZSgpICE9
IHRoaXMpIHsKKyAgICBpZiAob2xkQ2hpbGQucGFyZW50Tm9kZSgpICE9IHRoaXMpIHsKICAgICAg
ICAgZWMgPSBOT1RfRk9VTkRfRVJSOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0g
ICAgUmVmPE5vZGU+IGNoaWxkKCpvbGRDaGlsZCk7CisgICAgUmVmPE5vZGU+IGNoaWxkKG9sZENo
aWxkKTsKIAogICAgIGRvY3VtZW50KCkucmVtb3ZlRm9jdXNlZE5vZGVPZlN1YnRyZWUoY2hpbGQu
cHRyKCkpOwogCkBAIC02NzAsNyArNjU1LDcgQEAgdm9pZCBDb250YWluZXJOb2RlOjpyZW1vdmVD
aGlsZHJlbigpCiAgICAgZGlzcGF0Y2hTdWJ0cmVlTW9kaWZpZWRFdmVudCgpOwogfQogCi1ib29s
IENvbnRhaW5lck5vZGU6OmFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIEV4
Y2VwdGlvbkNvZGUmIGVjKQorYm9vbCBDb250YWluZXJOb2RlOjphcHBlbmRDaGlsZChSZWY8Tm9k
ZT4mJiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgUmVmPENvbnRhaW5lck5v
ZGU+IHByb3RlY3QoKnRoaXMpOwogCkBAIC02ODEsMTQgKzY2NiwxNCBAQCBib29sIENvbnRhaW5l
ck5vZGU6OmFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogICAgIGVjID0gMDsKIAogICAgIC8vIE1ha2Ugc3VyZSBhZGRpbmcgdGhlIG5ldyBj
aGlsZCBpcyBvawotICAgIGlmICghY2hlY2tBZGRDaGlsZCh0aGlzLCBuZXdDaGlsZC5nZXQoKSwg
ZWMpKQorICAgIGlmICghY2hlY2tBZGRDaGlsZCgqdGhpcywgbmV3Q2hpbGQsIGVjKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKG5ld0NoaWxkID09IG1fbGFzdENoaWxkKSAvLyBu
b3RoaW5nIHRvIGRvCi0gICAgICAgIHJldHVybiBuZXdDaGlsZDsKKyAgICBpZiAobmV3Q2hpbGQu
cHRyKCkgPT0gbV9sYXN0Q2hpbGQpIC8vIG5vdGhpbmcgdG8gZG8KKyAgICAgICAgcmV0dXJuIHRy
dWU7CiAKICAgICBOb2RlVmVjdG9yIHRhcmdldHM7Ci0gICAgY29sbGVjdENoaWxkcmVuQW5kUmVt
b3ZlRnJvbU9sZFBhcmVudCgqbmV3Q2hpbGQuZ2V0KCksIHRhcmdldHMsIGVjKTsKKyAgICBjb2xs
ZWN0Q2hpbGRyZW5BbmRSZW1vdmVGcm9tT2xkUGFyZW50KG5ld0NoaWxkLCB0YXJnZXRzLCBlYyk7
CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTY5Niw3ICs2ODEsNyBA
QCBib29sIENvbnRhaW5lck5vZGU6OmFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hp
bGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIC8vIFdl
IG5lZWQgdGhpcyBleHRyYSBjaGVjayBiZWNhdXNlIGNvbGxlY3RDaGlsZHJlbkFuZFJlbW92ZUZy
b21PbGRQYXJlbnQoKSBjYW4gZmlyZSBtdXRhdGlvbiBldmVudHMuCi0gICAgaWYgKCFjaGVja0Fj
Y2VwdENoaWxkR3VhcmFudGVlZE5vZGVUeXBlcyh0aGlzLCBuZXdDaGlsZC5nZXQoKSwgZWMpKQor
ICAgIGlmICghY2hlY2tBY2NlcHRDaGlsZEd1YXJhbnRlZWROb2RlVHlwZXMoKnRoaXMsIG5ld0No
aWxkLCBlYykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6d2lsbEluc2VydERPTU5vZGUoZG9jdW1lbnQoKSwgKnRoaXMpOwpAQCAtNzU5LDE2
ICs3NDQsMTYgQEAgdm9pZCBDb250YWluZXJOb2RlOjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hp
bGRDaGFuZ2UmIGNoYW5nZSkKICAgICBpbnZhbGlkYXRlTm9kZUxpc3RBbmRDb2xsZWN0aW9uQ2Fj
aGVzSW5BbmNlc3RvcnMoKTsKIH0KIAotdm9pZCBDb250YWluZXJOb2RlOjpjbG9uZUNoaWxkTm9k
ZXMoQ29udGFpbmVyTm9kZSogY2xvbmUpCit2b2lkIENvbnRhaW5lck5vZGU6OmNsb25lQ2hpbGRO
b2RlcyhDb250YWluZXJOb2RlJiBjbG9uZSkKIHsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsK
LSAgICBEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQgPSBjbG9uZS0+ZG9jdW1lbnQoKTsKKyAgICBE
b2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQgPSBjbG9uZS5kb2N1bWVudCgpOwogICAgIGZvciAoTm9k
ZSogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkICYmICFlYzsgY2hpbGQgPSBjaGlsZC0+bmV4
dFNpYmxpbmcoKSkgewotICAgICAgICBSZWZQdHI8Tm9kZT4gY2xvbmVkQ2hpbGQgPSBjaGlsZC0+
Y2xvbmVOb2RlSW50ZXJuYWwodGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb246OlNlbGZX
aXRoVGVtcGxhdGVDb250ZW50KTsKLSAgICAgICAgY2xvbmUtPmFwcGVuZENoaWxkKGNsb25lZENo
aWxkLCBlYyk7CisgICAgICAgIFJlZjxOb2RlPiBjbG9uZWRDaGlsZCA9IGNoaWxkLT5jbG9uZU5v
ZGVJbnRlcm5hbCh0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbjo6U2VsZldpdGhUZW1w
bGF0ZUNvbnRlbnQpOworICAgICAgICBjbG9uZS5hcHBlbmRDaGlsZChjbG9uZWRDaGlsZC5jb3B5
UmVmKCksIGVjKTsKIAotICAgICAgICBpZiAoIWVjICYmIGlzPENvbnRhaW5lck5vZGU+KGNoaWxk
KSkKLSAgICAgICAgICAgIGRvd25jYXN0PENvbnRhaW5lck5vZGU+KGNoaWxkKS0+Y2xvbmVDaGls
ZE5vZGVzKGRvd25jYXN0PENvbnRhaW5lck5vZGU+KGNsb25lZENoaWxkLmdldCgpKSk7CisgICAg
ICAgIGlmICghZWMgJiYgaXM8Q29udGFpbmVyTm9kZT4oKmNoaWxkKSkKKyAgICAgICAgICAgIGRv
d25jYXN0PENvbnRhaW5lck5vZGU+KCpjaGlsZCkuY2xvbmVDaGlsZE5vZGVzKGRvd25jYXN0PENv
bnRhaW5lck5vZGU+KGNsb25lZENoaWxkLmdldCgpKSk7CiAgICAgfQogfQogCkBAIC05NDcsNyAr
OTMyLDcgQEAgdm9pZCBDb250YWluZXJOb2RlOjphcHBlbmQoVmVjdG9yPE5vZGVPclN0cmluZz4m
JiBub2RlT3JTdHJpbmdWZWN0b3IsIEV4Y2VwdGlvbkMKICAgICBpZiAoZWMgfHwgIW5vZGUpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGFwcGVuZENoaWxkKG5vZGUucmVsZWFzZSgpLCBlYyk7Cisg
ICAgYXBwZW5kQ2hpbGQobm9kZS5yZWxlYXNlTm9uTnVsbCgpLCBlYyk7CiB9CiAKIHZvaWQgQ29u
dGFpbmVyTm9kZTo6cHJlcGVuZChWZWN0b3I8Tm9kZU9yU3RyaW5nPiYmIG5vZGVPclN0cmluZ1Zl
Y3RvciwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC05NTYsNyArOTQxLDcgQEAgdm9pZCBDb250YWlu
ZXJOb2RlOjpwcmVwZW5kKFZlY3RvcjxOb2RlT3JTdHJpbmc+JiYgbm9kZU9yU3RyaW5nVmVjdG9y
LCBFeGNlcHRpb24KICAgICBpZiAoZWMgfHwgIW5vZGUpCiAgICAgICAgIHJldHVybjsKIAotICAg
IGluc2VydEJlZm9yZShub2RlLnJlbGVhc2UoKSwgZmlyc3RDaGlsZCgpLCBlYyk7CisgICAgaW5z
ZXJ0QmVmb3JlKG5vZGUucmVsZWFzZU5vbk51bGwoKSwgZmlyc3RDaGlsZCgpLCBlYyk7CiB9CiAK
IEhUTUxDb2xsZWN0aW9uKiBDb250YWluZXJOb2RlOjpjYWNoZWRIVE1MQ29sbGVjdGlvbihDb2xs
ZWN0aW9uVHlwZSB0eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5l
ck5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmgKaW5kZXggMDQ1MjQw
MDQxZjJiNzEzMWZiMjZhNGU4ZjE5MTZiOWE2Y2I5YjBhZS4uYTZiMTBhNzY1ZjBlZThiY2E3MmI4
ZmZmMDM0MzNiNzNiMTg3YmEzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRh
aW5lck5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5oCkBAIC0x
MDIsMTAgKzEwMiwxMCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdW5zaWduZWQgY291
bnRDaGlsZE5vZGVzKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgTm9kZSogdHJhdmVyc2VU
b0NoaWxkQXQodW5zaWduZWQpIGNvbnN0OwogCi0gICAgYm9vbCBpbnNlcnRCZWZvcmUoUGFzc1Jl
ZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmID0gQVNT
RVJUX05PX0VYQ0VQVElPTik7Ci0gICAgYm9vbCByZXBsYWNlQ2hpbGQoUGFzc1JlZlB0cjxOb2Rl
PiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmID0gQVNTRVJUX05PX0VY
Q0VQVElPTik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCByZW1vdmVDaGlsZChOb2RlKiBjaGls
ZCwgRXhjZXB0aW9uQ29kZSYgPSBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKLSAgICBXRUJDT1JFX0VY
UE9SVCBib29sIGFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIEV4Y2VwdGlv
bkNvZGUmID0gQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgYm9vbCBpbnNlcnRCZWZvcmUoUmVm
PE5vZGU+JiYgbmV3Q2hpbGQsIE5vZGUqIHJlZkNoaWxkLCBFeGNlcHRpb25Db2RlJiA9IEFTU0VS
VF9OT19FWENFUFRJT04pOworICAgIGJvb2wgcmVwbGFjZUNoaWxkKFJlZjxOb2RlPiYmIG5ld0No
aWxkLCBOb2RlJiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgPSBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIHJlbW92ZUNoaWxkKE5vZGUmIGNoaWxkLCBFeGNl
cHRpb25Db2RlJiA9IEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIFdFQkNPUkVfRVhQT1JUIGJv
b2wgYXBwZW5kQ2hpbGQoUmVmPE5vZGU+JiYgbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmID0gQVNT
RVJUX05PX0VYQ0VQVElPTik7CiAKICAgICAvLyBUaGVzZSBtZXRob2RzIGFyZSBvbmx5IHVzZWQg
ZHVyaW5nIHBhcnNpbmcuCiAgICAgLy8gVGhleSBkb24ndCBzZW5kIERPTSBtdXRhdGlvbiBldmVu
dHMgb3IgaGFuZGxlIHJlcGFyZW50aW5nLgpAQCAtMTE3LDcgKzExNyw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHJlbW92ZUNoaWxkcmVuKCk7CiAgICAgdm9pZCB0YWtlQWxsQ2hpbGRyZW5Gcm9tKENv
bnRhaW5lck5vZGUqKTsKIAotICAgIHZvaWQgY2xvbmVDaGlsZE5vZGVzKENvbnRhaW5lck5vZGUq
IGNsb25lKTsKKyAgICB2b2lkIGNsb25lQ2hpbGROb2RlcyhDb250YWluZXJOb2RlJiBjbG9uZSk7
CiAKICAgICBlbnVtIENoaWxkQ2hhbmdlVHlwZSB7IEVsZW1lbnRJbnNlcnRlZCwgRWxlbWVudFJl
bW92ZWQsIFRleHRJbnNlcnRlZCwgVGV4dFJlbW92ZWQsIFRleHRDaGFuZ2VkLCBBbGxDaGlsZHJl
blJlbW92ZWQsIE5vbkNvbnRlbnRzQ2hpbGRDaGFuZ2VkIH07CiAgICAgZW51bSBDaGlsZENoYW5n
ZVNvdXJjZSB7IENoaWxkQ2hhbmdlU291cmNlUGFyc2VyLCBDaGlsZENoYW5nZVNvdXJjZUFQSSB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKaW5kZXggYTRhM2Y4ZDU5
YWEyYTE2MWY2NzJmNDRkNjNmZjg0ODY0YjdiMjAzMy4uNjMzZDI5MTNmNzE2ZWE4NGI2N2Y2ZDI4
MDkzZTY4ZDQxMWUzMTliNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxl
bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24u
Y3BwCkBAIC0yMzEsOSArMjMxLDkgQEAgUmVmUHRyPERvY3VtZW50PiBET01JbXBsZW1lbnRhdGlv
bjo6Y3JlYXRlRG9jdW1lbnQoY29uc3QgU3RyaW5nJiBuYW1lc3BhY2VVUkksCiAgICAgfQogCiAg
ICAgaWYgKGRvY3R5cGUpCi0gICAgICAgIGRvYy0+YXBwZW5kQ2hpbGQoZG9jdHlwZSk7CisgICAg
ICAgIGRvYy0+YXBwZW5kQ2hpbGQoKmRvY3R5cGUpOwogICAgIGlmIChkb2N1bWVudEVsZW1lbnQp
Ci0gICAgICAgIGRvYy0+YXBwZW5kQ2hpbGQoZG9jdW1lbnRFbGVtZW50LnJlbGVhc2UoKSk7Cisg
ICAgICAgIGRvYy0+YXBwZW5kQ2hpbGQoZG9jdW1lbnRFbGVtZW50LnJlbGVhc2VOb25OdWxsKCkp
OwogCiAgICAgcmV0dXJuIGRvYzsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGMwOTQx
ZDI1MTkxNDE0NTgyMGI1YmRjNTMwNThkNjhjZDkzZjM0YWIuLjYwMzEyY2EzNTAxMzY1NDI5Nzc0
N2M4MTRmMWIzNGY4N2Q0NzQ1NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTAwOSw3
ICsxMDA5LDcgQEAgUmVmUHRyPE5vZGU+IERvY3VtZW50OjphZG9wdE5vZGUoUGFzc1JlZlB0cjxO
b2RlPiBzb3VyY2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICAgICAgfQogICAgICAgICB9
CiAgICAgICAgIGlmIChzb3VyY2UtPnBhcmVudE5vZGUoKSkgewotICAgICAgICAgICAgc291cmNl
LT5wYXJlbnROb2RlKCktPnJlbW92ZUNoaWxkKHNvdXJjZS5nZXQoKSwgZWMpOworICAgICAgICAg
ICAgc291cmNlLT5wYXJlbnROb2RlKCktPnJlbW92ZUNoaWxkKCpzb3VyY2UsIGVjKTsKICAgICAg
ICAgICAgIGlmIChlYykKICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAg
fQpAQCAtMTUzNyw3ICsxNTM3LDcgQEAgdm9pZCBEb2N1bWVudDo6c2V0VGl0bGUoY29uc3QgU3Ry
aW5nJiB0aXRsZSkKICAgICBlbHNlIGlmICghbV90aXRsZUVsZW1lbnQpIHsKICAgICAgICAgaWYg
KEhUTUxFbGVtZW50KiBoZWFkRWxlbWVudCA9IGhlYWQoKSkgewogICAgICAgICAgICAgbV90aXRs
ZUVsZW1lbnQgPSBjcmVhdGVFbGVtZW50KHRpdGxlVGFnLCBmYWxzZSk7Ci0gICAgICAgICAgICBo
ZWFkRWxlbWVudC0+YXBwZW5kQ2hpbGQobV90aXRsZUVsZW1lbnQsIEFTU0VSVF9OT19FWENFUFRJ
T04pOworICAgICAgICAgICAgaGVhZEVsZW1lbnQtPmFwcGVuZENoaWxkKCptX3RpdGxlRWxlbWVu
dCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTI1MDksMTEg
KzI1MDksMTAgQEAgdm9pZCBEb2N1bWVudDo6c2V0Qm9keU9yRnJhbWVzZXQoUGFzc1JlZlB0cjxI
VE1MRWxlbWVudD4gcHJwTmV3Qm9keSwgRXhjZXB0aW9uQ28KICAgICAgICAgbmV3Qm9keSA9IGRv
d25jYXN0PEhUTUxFbGVtZW50Pihub2RlLmdldCgpKTsKICAgICB9CiAKLSAgICBIVE1MRWxlbWVu
dCogYiA9IGJvZHlPckZyYW1lc2V0KCk7Ci0gICAgaWYgKCFiKQotICAgICAgICBkb2N1bWVudEVs
ZW1lbnQoKS0+YXBwZW5kQ2hpbGQobmV3Qm9keS5yZWxlYXNlKCksIGVjKTsKKyAgICBpZiAoYXV0
byogYm9keSA9IGJvZHlPckZyYW1lc2V0KCkpCisgICAgICAgIGRvY3VtZW50RWxlbWVudCgpLT5y
ZXBsYWNlQ2hpbGQobmV3Qm9keS5yZWxlYXNlTm9uTnVsbCgpLCAqYm9keSwgZWMpOwogICAgIGVs
c2UKLSAgICAgICAgZG9jdW1lbnRFbGVtZW50KCktPnJlcGxhY2VDaGlsZChuZXdCb2R5LnJlbGVh
c2UoKSwgYiwgZWMpOworICAgICAgICBkb2N1bWVudEVsZW1lbnQoKS0+YXBwZW5kQ2hpbGQobmV3
Qm9keS5yZWxlYXNlTm9uTnVsbCgpLCBlYyk7CiB9CiAKIEhUTUxIZWFkRWxlbWVudCogRG9jdW1l
bnQ6OmhlYWQoKQpAQCAtMzMxNywxMyArMzMxNiw5IEBAIGJvb2wgRG9jdW1lbnQ6OmNoaWxkVHlw
ZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJv
b2wgRG9jdW1lbnQ6OmNhblJlcGxhY2VDaGlsZChOb2RlKiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hp
bGQpCitib29sIERvY3VtZW50OjpjYW5SZXBsYWNlQ2hpbGQoTm9kZSYgbmV3Q2hpbGQsIE5vZGUm
IG9sZENoaWxkKQogewotICAgIGlmICghb2xkQ2hpbGQpCi0gICAgICAgIC8vIENvbnRhaW5lck5v
ZGU6OnJlcGxhY2VDaGlsZCB3aWxsIHJhaXNlIGEgTk9UX0ZPVU5EX0VSUi4KLSAgICAgICAgcmV0
dXJuIHRydWU7Ci0KLSAgICBpZiAob2xkQ2hpbGQtPm5vZGVUeXBlKCkgPT0gbmV3Q2hpbGQtPm5v
ZGVUeXBlKCkpCisgICAgaWYgKG9sZENoaWxkLm5vZGVUeXBlKCkgPT0gbmV3Q2hpbGQubm9kZVR5
cGUoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBpbnQgbnVtRG9jdHlwZXMgPSAwOwpA
QCAtMzMzMiw3ICszMzI3LDcgQEAgYm9vbCBEb2N1bWVudDo6Y2FuUmVwbGFjZUNoaWxkKE5vZGUq
IG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCkKICAgICAvLyBGaXJzdCwgY2hlY2sgaG93IG1hbnkg
ZG9jdHlwZXMgYW5kIGVsZW1lbnRzIHdlIGhhdmUsIG5vdCBjb3VudGluZwogICAgIC8vIHRoZSBj
aGlsZCB3ZSdyZSBhYm91dCB0byByZW1vdmUuCiAgICAgZm9yIChOb2RlKiBjID0gZmlyc3RDaGls
ZCgpOyBjOyBjID0gYy0+bmV4dFNpYmxpbmcoKSkgewotICAgICAgICBpZiAoYyA9PSBvbGRDaGls
ZCkKKyAgICAgICAgaWYgKGMgPT0gJm9sZENoaWxkKQogICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgIAogICAgICAgICBzd2l0Y2ggKGMtPm5vZGVUeXBlKCkpIHsKQEAgLTMzNDgsOCArMzM0
Myw4IEBAIGJvb2wgRG9jdW1lbnQ6OmNhblJlcGxhY2VDaGlsZChOb2RlKiBuZXdDaGlsZCwgTm9k
ZSogb2xkQ2hpbGQpCiAgICAgfQogICAgIAogICAgIC8vIFRoZW4sIHNlZSBob3cgbWFueSBkb2N0
eXBlcyBhbmQgZWxlbWVudHMgbWlnaHQgYmUgYWRkZWQgYnkgdGhlIG5ldyBjaGlsZC4KLSAgICBp
ZiAobmV3Q2hpbGQtPmlzRG9jdW1lbnRGcmFnbWVudCgpKSB7Ci0gICAgICAgIGZvciAoTm9kZSog
YyA9IG5ld0NoaWxkLT5maXJzdENoaWxkKCk7IGM7IGMgPSBjLT5uZXh0U2libGluZygpKSB7Cisg
ICAgaWYgKG5ld0NoaWxkLmlzRG9jdW1lbnRGcmFnbWVudCgpKSB7CisgICAgICAgIGZvciAoTm9k
ZSogYyA9IG5ld0NoaWxkLmZpcnN0Q2hpbGQoKTsgYzsgYyA9IGMtPm5leHRTaWJsaW5nKCkpIHsK
ICAgICAgICAgICAgIHN3aXRjaCAoYy0+bm9kZVR5cGUoKSkgewogICAgICAgICAgICAgY2FzZSBB
VFRSSUJVVEVfTk9ERToKICAgICAgICAgICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9OT0RFOgpAQCAt
MzM3Miw3ICszMzY3LDcgQEAgYm9vbCBEb2N1bWVudDo6Y2FuUmVwbGFjZUNoaWxkKE5vZGUqIG5l
d0NoaWxkLCBOb2RlKiBvbGRDaGlsZCkKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0g
ZWxzZSB7Ci0gICAgICAgIHN3aXRjaCAobmV3Q2hpbGQtPm5vZGVUeXBlKCkpIHsKKyAgICAgICAg
c3dpdGNoIChuZXdDaGlsZC5ub2RlVHlwZSgpKSB7CiAgICAgICAgIGNhc2UgQVRUUklCVVRFX05P
REU6CiAgICAgICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9OT0RFOgogICAgICAgICBjYXNlIERPQ1VN
RU5UX0ZSQUdNRU5UX05PREU6CkBAIC0zNDAwLDcgKzMzOTUsNyBAQCBib29sIERvY3VtZW50Ojpj
YW5SZXBsYWNlQ2hpbGQoTm9kZSogbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkKQogICAgIHJldHVy
biB0cnVlOwogfQogCi1SZWZQdHI8Tm9kZT4gRG9jdW1lbnQ6OmNsb25lTm9kZUludGVybmFsKERv
Y3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbiB0eXBlKQorUmVmPE5vZGU+IERvY3VtZW50OjpjbG9u
ZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24gdHlwZSkKIHsKICAgICBS
ZWY8RG9jdW1lbnQ+IGNsb25lID0gY2xvbmVEb2N1bWVudFdpdGhvdXRDaGlsZHJlbigpOwogICAg
IGNsb25lLT5jbG9uZURhdGFGcm9tRG9jdW1lbnQoKnRoaXMpOwpAQCAtMzQwOSw3ICszNDA0LDcg
QEAgUmVmUHRyPE5vZGU+IERvY3VtZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENs
b25pbmdPcGVyYXRpb24gdHlwZSkKICAgICBjYXNlIENsb25pbmdPcGVyYXRpb246OlNlbGZXaXRo
VGVtcGxhdGVDb250ZW50OgogICAgICAgICBicmVhazsKICAgICBjYXNlIENsb25pbmdPcGVyYXRp
b246OkV2ZXJ5dGhpbmc6Ci0gICAgICAgIGNsb25lQ2hpbGROb2RlcyhjbG9uZS5wdHIoKSk7Cisg
ICAgICAgIGNsb25lQ2hpbGROb2RlcyhjbG9uZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAg
ICByZXR1cm4gV1RGOjptb3ZlKGNsb25lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggOWVmNDhj
OTMzODA3M2FlMDI5YzJlYTM3YzkzNzVkNWNlYjk5YTZkNC4uMTM1YzdlNjM5NTUwYWQyYzc0ZThk
M2Y3MzZkZmQyODFiYmRhZWNhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTc0Nyw3ICs3NDcs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBub2RlQ2hpbGRyZW5XaWxsQmVSZW1vdmVkKENvbnRhaW5l
ck5vZGUmKTsKICAgICAvLyBub2RlV2lsbEJlUmVtb3ZlZCBpcyBvbmx5IHNhZmUgd2hlbiByZW1v
dmluZyBvbmUgbm9kZSBhdCBhIHRpbWUuCiAgICAgdm9pZCBub2RlV2lsbEJlUmVtb3ZlZChOb2Rl
Jik7Ci0gICAgYm9vbCBjYW5SZXBsYWNlQ2hpbGQoTm9kZSogbmV3Q2hpbGQsIE5vZGUqIG9sZENo
aWxkKTsKKyAgICBib29sIGNhblJlcGxhY2VDaGlsZChOb2RlJiBuZXdDaGlsZCwgTm9kZSYgb2xk
Q2hpbGQpOwogCiAgICAgdm9pZCB0ZXh0SW5zZXJ0ZWQoTm9kZSosIHVuc2lnbmVkIG9mZnNldCwg
dW5zaWduZWQgbGVuZ3RoKTsKICAgICB2b2lkIHRleHRSZW1vdmVkKE5vZGUqLCB1bnNpZ25lZCBv
ZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCk7CkBAIC0xMzExLDcgKzEzMTEsNyBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7CiAgICAg
dmlydHVhbCBOb2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOwogICAgIHZp
cnR1YWwgYm9vbCBjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlKSBjb25zdCBvdmVycmlkZSBmaW5h
bDsKLSAgICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYs
IENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgUmVmPE5vZGU+
IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGUg
ZmluYWw7CiAgICAgdm9pZCBjbG9uZURhdGFGcm9tRG9jdW1lbnQoY29uc3QgRG9jdW1lbnQmKTsK
IAogICAgIHZpcnR1YWwgdm9pZCByZWZTY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgb3ZlcnJpZGUg
ZmluYWwgeyByZWYoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
RnJhZ21lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCmlu
ZGV4IDRmYWI1OGUzNGQ0NjU1ZWNmNGUzN2RhNWRkOWMzYzU2MjJmNDA3NjguLmY5YjM4YTBiZDI4
ZThlM2M2MDkzNGFmZjFhNjAwNTkyNzA5MDNmZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnRGcmFnbWVudC5jcHAKQEAgLTY3LDE4ICs2NywxOCBAQCBib29sIERvY3VtZW50RnJhZ21lbnQ6
OmNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkgY29uc3QKICAgICB9CiB9CiAKLVJlZlB0
cjxOb2RlPiBEb2N1bWVudEZyYWdtZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFy
Z2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24gdHlwZSkKK1JlZjxOb2RlPiBEb2N1bWVudEZy
YWdtZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25p
bmdPcGVyYXRpb24gdHlwZSkKIHsKLSAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY2xvbmUg
PSBjcmVhdGUodGFyZ2V0RG9jdW1lbnQpOworICAgIFJlZjxEb2N1bWVudEZyYWdtZW50PiBjbG9u
ZSA9IGNyZWF0ZSh0YXJnZXREb2N1bWVudCk7CiAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgY2Fz
ZSBDbG9uaW5nT3BlcmF0aW9uOjpPbmx5U2VsZjoKICAgICBjYXNlIENsb25pbmdPcGVyYXRpb246
OlNlbGZXaXRoVGVtcGxhdGVDb250ZW50OgogICAgICAgICBicmVhazsKICAgICBjYXNlIENsb25p
bmdPcGVyYXRpb246OkV2ZXJ5dGhpbmc6Ci0gICAgICAgIGNsb25lQ2hpbGROb2RlcyhjbG9uZS5n
ZXQoKSk7CisgICAgICAgIGNsb25lQ2hpbGROb2RlcyhjbG9uZSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KLSAgICByZXR1cm4gY2xvbmU7CisgICAgcmV0dXJuIFdURjo6bW92ZShjbG9uZSk7CiB9
CiAKIHZvaWQgRG9jdW1lbnRGcmFnbWVudDo6cGFyc2VIVE1MKGNvbnN0IFN0cmluZyYgc291cmNl
LCBFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgUGFyc2VyQ29udGVudFBvbGljeSBwYXJzZXJDb250
ZW50UG9saWN5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmgKaW5kZXggZDA3ZTAz
NGMwMDdlNjYyOTYyNTFiZDBjMGIxNjA2ZDcwOWEwNWY2NS4uNmViMWVkNjFjNDYyMDEzZmQwNTc0
ZDRhZmUzZWNjNWUyNGM4NDVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50RnJhZ21lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5o
CkBAIC00OCw3ICs0OCw3IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIE5v
ZGVUeXBlIG5vZGVUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7Ci0gICAgdmlydHVhbCBSZWZQ
dHI8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVu
dCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFR5
cGVBbGxvd2VkKE5vZGVUeXBlKSBjb25zdCBvdmVycmlkZTsKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50VHlwZS5jcHAKaW5kZXggNjdlM2Q1Mzg0M2Y4MmEwYmM1OWI5ZDBlZmZjYWUyN2FmMzBi
OTYzNC4uYzE5ZDAxODJhZmFmZGE1ZDhjMjBlY2ZkN2QzOWQxNWJhMDE4N2ViYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50VHlwZS5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgTm9kZTo6Tm9kZVR5cGUg
RG9jdW1lbnRUeXBlOjpub2RlVHlwZSgpIGNvbnN0CiAgICAgcmV0dXJuIERPQ1VNRU5UX1RZUEVf
Tk9ERTsKIH0KIAotUmVmUHRyPE5vZGU+IERvY3VtZW50VHlwZTo6Y2xvbmVOb2RlSW50ZXJuYWwo
RG9jdW1lbnQmIGRvY3VtZW50VGFyZ2V0LCBDbG9uaW5nT3BlcmF0aW9uKQorUmVmPE5vZGU+IERv
Y3VtZW50VHlwZTo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIGRvY3VtZW50VGFyZ2V0LCBD
bG9uaW5nT3BlcmF0aW9uKQogewogICAgIHJldHVybiBjcmVhdGUoZG9jdW1lbnRUYXJnZXQsIG1f
bmFtZSwgbV9wdWJsaWNJZCwgbV9zeXN0ZW1JZCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRUeXBl
LmgKaW5kZXggYzdhMWQ5YjUyNmY2ZWVlYTExY2EzYTcyNzVlYjMxZjVhNmUxMzJhNS4uYzc5YzBj
ZWE4NjlkMjA1OWJiZGJiODIxNTljOGZmMTA3ODgzOGVkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dFR5cGUuaApAQCAtNTIsNyArNTIsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgVVJMIGJhc2VV
UkkoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFN0cmluZyBub2RlTmFtZSgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgTm9kZVR5cGUgbm9kZVR5cGUoKSBjb25zdCBvdmVycmlk
ZTsKLSAgICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYs
IENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNsb25l
Tm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CiAKICAg
ICBTdHJpbmcgbV9uYW1lOwogICAgIFN0cmluZyBtX3B1YmxpY0lkOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCmluZGV4IDY3NTAwMGE1NGE3MDgyOWMwZDExMTJkOThiZjg5YmNhY2RkN2MzOWMuLjNhODkw
NjE3ZmEzYTA3YzdhMTljYTdhMzQyOTdjMTcxOTI4NGI5OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAKQEAgLTMxMiwzOCArMzEyLDM3IEBAIHZvaWQgRWxlbWVudDo6ZGlzcGF0Y2hTaW11bGF0ZWRD
bGljayhFdmVudCogdW5kZXJseWluZ0V2ZW50LCBTaW11bGF0ZWRDbGlja01vdXNlCiAgICAgRXZl
bnREaXNwYXRjaGVyOjpkaXNwYXRjaFNpbXVsYXRlZENsaWNrKHRoaXMsIHVuZGVybHlpbmdFdmVu
dCwgZXZlbnRPcHRpb25zLCB2aXN1YWxPcHRpb25zKTsKIH0KIAotUmVmUHRyPE5vZGU+IEVsZW1l
bnQ6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09w
ZXJhdGlvbiB0eXBlKQorUmVmPE5vZGU+IEVsZW1lbnQ6OmNsb25lTm9kZUludGVybmFsKERvY3Vt
ZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbiB0eXBlKQogewogICAgIHN3aXRj
aCAodHlwZSkgewogICAgIGNhc2UgQ2xvbmluZ09wZXJhdGlvbjo6T25seVNlbGY6CiAgICAgY2Fz
ZSBDbG9uaW5nT3BlcmF0aW9uOjpTZWxmV2l0aFRlbXBsYXRlQ29udGVudDoKICAgICAgICAgcmV0
dXJuIGNsb25lRWxlbWVudFdpdGhvdXRDaGlsZHJlbih0YXJnZXREb2N1bWVudCk7CiAgICAgY2Fz
ZSBDbG9uaW5nT3BlcmF0aW9uOjpFdmVyeXRoaW5nOgotICAgICAgICByZXR1cm4gY2xvbmVFbGVt
ZW50V2l0aENoaWxkcmVuKHRhcmdldERvY3VtZW50KTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQot
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVy
biBjbG9uZUVsZW1lbnRXaXRoQ2hpbGRyZW4odGFyZ2V0RG9jdW1lbnQpOwogfQogCi1SZWZQdHI8
RWxlbWVudD4gRWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aENoaWxkcmVuKERvY3VtZW50JiB0YXJn
ZXREb2N1bWVudCkKK1JlZjxFbGVtZW50PiBFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRoQ2hpbGRy
ZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50KQogewotICAgIFJlZlB0cjxFbGVtZW50PiBjbG9u
ZSA9IGNsb25lRWxlbWVudFdpdGhvdXRDaGlsZHJlbih0YXJnZXREb2N1bWVudCk7Ci0gICAgY2xv
bmVDaGlsZE5vZGVzKGNsb25lLmdldCgpKTsKLSAgICByZXR1cm4gY2xvbmUucmVsZWFzZSgpOwor
ICAgIFJlZjxFbGVtZW50PiBjbG9uZSA9IGNsb25lRWxlbWVudFdpdGhvdXRDaGlsZHJlbih0YXJn
ZXREb2N1bWVudCk7CisgICAgY2xvbmVDaGlsZE5vZGVzKGNsb25lKTsKKyAgICByZXR1cm4gY2xv
bmU7CiB9CiAKLVJlZlB0cjxFbGVtZW50PiBFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0Q2hp
bGRyZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50KQorUmVmPEVsZW1lbnQ+IEVsZW1lbnQ6OmNs
b25lRWxlbWVudFdpdGhvdXRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQpCiB7Ci0g
ICAgUmVmUHRyPEVsZW1lbnQ+IGNsb25lID0gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNB
bmRDaGlsZHJlbih0YXJnZXREb2N1bWVudCk7CisgICAgUmVmPEVsZW1lbnQ+IGNsb25lID0gY2xv
bmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbih0YXJnZXREb2N1bWVudCk7CiAg
ICAgLy8gVGhpcyB3aWxsIGNhdGNoIEhUTUwgZWxlbWVudHMgaW4gdGhlIHdyb25nIG5hbWVzcGFj
ZSB0aGF0IGFyZSBub3QgY29ycmVjdGx5IGNvcGllZC4KICAgICAvLyBUaGlzIGlzIGEgc2FuaXR5
IGNoZWNrIGFzIEhUTUwgb3ZlcmxvYWRzIHNvbWUgb2YgdGhlIERPTSBtZXRob2RzLgogICAgIEFT
U0VSVChpc0hUTUxFbGVtZW50KCkgPT0gY2xvbmUtPmlzSFRNTEVsZW1lbnQoKSk7CiAKICAgICBj
bG9uZS0+Y2xvbmVEYXRhRnJvbUVsZW1lbnQoKnRoaXMpOwotICAgIHJldHVybiBjbG9uZS5yZWxl
YXNlKCk7CisgICAgcmV0dXJuIGNsb25lOwogfQogCi1SZWZQdHI8RWxlbWVudD4gRWxlbWVudDo6
Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0
RG9jdW1lbnQpCitSZWY8RWxlbWVudD4gRWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJp
YnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQpCiB7CiAgICAgcmV0dXJu
IHRhcmdldERvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnUU5hbWUoKSwgZmFsc2UpOwogfQpAQCAt
MjMxOSw3ICsyMzE4LDcgQEAgdm9pZCBFbGVtZW50OjpzZXRPdXRlckhUTUwoY29uc3QgU3RyaW5n
JiBodG1sLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybjsK
ICAgICAKLSAgICBwYXJlbnQtPnJlcGxhY2VDaGlsZChmcmFnbWVudC5yZWxlYXNlKCksIHRoaXMs
IGVjKTsKKyAgICBwYXJlbnQtPnJlcGxhY2VDaGlsZChmcmFnbWVudC5yZWxlYXNlTm9uTnVsbCgp
LCAqdGhpcywgZWMpOwogICAgIFJlZlB0cjxOb2RlPiBub2RlID0gbmV4dCA/IG5leHQtPnByZXZp
b3VzU2libGluZygpIDogbnVsbHB0cjsKICAgICBpZiAoIWVjICYmIGlzPFRleHQ+KG5vZGUuZ2V0
KCkpKQogICAgICAgICBtZXJnZVdpdGhOZXh0VGV4dE5vZGUoZG93bmNhc3Q8VGV4dD4oKm5vZGUp
LCBlYyk7CkBAIC0yMzM4LDcgKzIzMzcsNyBAQCB2b2lkIEVsZW1lbnQ6OnNldElubmVySFRNTChj
b25zdCBTdHJpbmcmIGh0bWwsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICAgICAgY29udGFp
bmVyID0gZG93bmNhc3Q8SFRNTFRlbXBsYXRlRWxlbWVudD4oKnRoaXMpLmNvbnRlbnQoKTsKICNl
bmRpZgogCi0gICAgICAgIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudCgqY29udGFpbmVyLCBm
cmFnbWVudC5yZWxlYXNlKCksIGVjKTsKKyAgICAgICAgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdt
ZW50KCpjb250YWluZXIsIGZyYWdtZW50LnJlbGVhc2VOb25OdWxsKCksIGVjKTsKICAgICB9CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5oCmluZGV4IDFlNjA3MDNjYjZiMmZkOTM2MDcxZjg1YjliOWRhOWQ3
YWE0MGNjNGIuLjA0ODEwZTFjZjg0OTVlZDI0ZmQ4OTQ1MDUzZmFmYmNkNDMyMmQxMWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuaApAQCAtMjAxLDggKzIwMSw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
U3RyaW5nIG5vZGVOYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBSZWZQdHI8RWxlbWVudD4g
Y2xvbmVFbGVtZW50V2l0aENoaWxkcmVuKERvY3VtZW50Jik7Ci0gICAgUmVmUHRyPEVsZW1lbnQ+
IGNsb25lRWxlbWVudFdpdGhvdXRDaGlsZHJlbihEb2N1bWVudCYpOworICAgIFJlZjxFbGVtZW50
PiBjbG9uZUVsZW1lbnRXaXRoQ2hpbGRyZW4oRG9jdW1lbnQmKTsKKyAgICBSZWY8RWxlbWVudD4g
Y2xvbmVFbGVtZW50V2l0aG91dENoaWxkcmVuKERvY3VtZW50Jik7CiAKICAgICB2b2lkIG5vcm1h
bGl6ZUF0dHJpYnV0ZXMoKTsKICAgICBTdHJpbmcgbm9kZU5hbWVQcmVzZXJ2aW5nQ2FzZSgpIGNv
bnN0OwpAQCAtNTYzLDggKzU2Myw4IEBAIHByaXZhdGU6CiAKICAgICAvLyBjbG9uZU5vZGUgaXMg
cHJpdmF0ZSBzbyB0aGF0IG5vbi12aXJ0dWFsIGNsb25lRWxlbWVudFdpdGhDaGlsZHJlbiBhbmQg
Y2xvbmVFbGVtZW50V2l0aG91dENoaWxkcmVuCiAgICAgLy8gYXJlIHVzZWQgaW5zdGVhZC4KLSAg
ICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25p
bmdPcGVyYXRpb24pIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVmUHRyPEVsZW1lbnQ+IGNsb25l
RWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmKTsKKyAgICB2aXJ0
dWFsIFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRp
b24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhv
dXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmKTsKIAogICAgIHZvaWQgYWRkU2hhZG93
Um9vdChSZWY8U2hhZG93Um9vdD4mJik7CiAgICAgdm9pZCByZW1vdmVTaGFkb3dSb290KCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuY3BwCmluZGV4IGEyZmY2M2IwMTBlNmUyOGUw
ZmM0ZWFhZTg1YTc0YTEzZmU5ZDZjN2YuLjdlOTFhNDYyZGE4MjA5ZDkyMmM0NWRjODRjNDFhMDg1
NWFkNmJlMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuY3BwCkBAIC00Niw3
ICs0Niw3IEBAIE5vZGU6Ok5vZGVUeXBlIEVudGl0eVJlZmVyZW5jZTo6bm9kZVR5cGUoKSBjb25z
dAogICAgIHJldHVybiBFTlRJVFlfUkVGRVJFTkNFX05PREU7CiB9CiAKLVJlZlB0cjxOb2RlPiBF
bnRpdHlSZWZlcmVuY2U6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVu
dCwgQ2xvbmluZ09wZXJhdGlvbikKK1JlZjxOb2RlPiBFbnRpdHlSZWZlcmVuY2U6OmNsb25lTm9k
ZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikKIHsK
ICAgICByZXR1cm4gY3JlYXRlKHRhcmdldERvY3VtZW50LCBtX2VudGl0eU5hbWUpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5oCmluZGV4IDAzZjQzY2RmOTVlYTY4ZjAwNGQ5ZjEx
M2JhMTY4ZjBmN2JmYWYzOTYuLjg2ZGZlYjM5ODI1YjM0NTBlNzUzNTkyNTA2ODUxMTBiM2FmMGNh
OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmgKQEAgLTM1LDcgKzM1LDcgQEAg
cHJpdmF0ZToKIAogICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1lKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCBOb2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZp
cnR1YWwgUmVmUHRyPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09w
ZXJhdGlvbikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJu
YWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKIAogICAgIFN0cmluZyBt
X2VudGl0eU5hbWU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IGZkYzdmYjU1MGRhMTVmM2M1OWU1
OTZkNTYxM2Y3MzI1MmM5NTE4YmEuLjI4ZjIxMTQ1ZTE1MmVjNDk5NTUyMTFlM2IyZmU4NGQ4Y2Zi
ZTQ4MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTQyOSwzOCArNDI5LDU0IEBAIEVsZW1lbnQqIE5v
ZGU6Om5leHRFbGVtZW50U2libGluZygpIGNvbnN0CiAKIGJvb2wgTm9kZTo6aW5zZXJ0QmVmb3Jl
KFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIHJlZkNoaWxkLCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKKyAgICBpZiAoIW5ld0NoaWxkKSB7CisgICAgICAgIGVjID0gVHlwZUVycm9yOwor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogICAgIGlmICghaXM8Q29udGFpbmVyTm9kZT4o
KnRoaXMpKSB7CiAgICAgICAgIGVjID0gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIHJldHVybiBkb3duY2FzdDxDb250YWluZXJOb2RlPigq
dGhpcykuaW5zZXJ0QmVmb3JlKG5ld0NoaWxkLCByZWZDaGlsZCwgZWMpOworICAgIHJldHVybiBk
b3duY2FzdDxDb250YWluZXJOb2RlPigqdGhpcykuaW5zZXJ0QmVmb3JlKCpuZXdDaGlsZCwgcmVm
Q2hpbGQsIGVjKTsKIH0KIAogYm9vbCBOb2RlOjpyZXBsYWNlQ2hpbGQoUGFzc1JlZlB0cjxOb2Rl
PiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogeworICAgIGlm
ICghbmV3Q2hpbGQgfHwgIW9sZENoaWxkKSB7CisgICAgICAgIGVjID0gVHlwZUVycm9yOworICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogICAgIGlmICghaXM8Q29udGFpbmVyTm9kZT4oKnRo
aXMpKSB7CiAgICAgICAgIGVjID0gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQotICAgIHJldHVybiBkb3duY2FzdDxDb250YWluZXJOb2RlPigqdGhp
cykucmVwbGFjZUNoaWxkKG5ld0NoaWxkLCBvbGRDaGlsZCwgZWMpOworICAgIHJldHVybiBkb3du
Y2FzdDxDb250YWluZXJOb2RlPigqdGhpcykucmVwbGFjZUNoaWxkKCpuZXdDaGlsZCwgKm9sZENo
aWxkLCBlYyk7CiB9CiAKIGJvb2wgTm9kZTo6cmVtb3ZlQ2hpbGQoTm9kZSogb2xkQ2hpbGQsIEV4
Y2VwdGlvbkNvZGUmIGVjKQogeworICAgIGlmICghb2xkQ2hpbGQpIHsKKyAgICAgICAgZWMgPSBU
eXBlRXJyb3I7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAgICAgaWYgKCFpczxDb250
YWluZXJOb2RlPigqdGhpcykpIHsKICAgICAgICAgZWMgPSBOT1RfRk9VTkRfRVJSOwogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIHJldHVybiBkb3duY2FzdDxDb250YWluZXJOb2Rl
PigqdGhpcykucmVtb3ZlQ2hpbGQob2xkQ2hpbGQsIGVjKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8
Q29udGFpbmVyTm9kZT4oKnRoaXMpLnJlbW92ZUNoaWxkKCpvbGRDaGlsZCwgZWMpOwogfQogCiBi
b29sIE5vZGU6OmFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIEV4Y2VwdGlv
bkNvZGUmIGVjKQogeworICAgIGlmICghbmV3Q2hpbGQpIHsKKyAgICAgICAgZWMgPSBUeXBlRXJy
b3I7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAgICAgaWYgKCFpczxDb250YWluZXJO
b2RlPigqdGhpcykpIHsKICAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIGRvd25jYXN0PENvbnRhaW5lck5v
ZGU+KCp0aGlzKS5hcHBlbmRDaGlsZChuZXdDaGlsZCwgZWMpOworICAgIHJldHVybiBkb3duY2Fz
dDxDb250YWluZXJOb2RlPigqdGhpcykuYXBwZW5kQ2hpbGQoKm5ld0NoaWxkLCBlYyk7CiB9CiAK
IHN0YXRpYyBIYXNoU2V0PFJlZlB0cjxOb2RlPj4gbm9kZVNldFByZVRyYW5zZm9ybWVkRnJvbU5v
ZGVPclN0cmluZ1ZlY3Rvcihjb25zdCBWZWN0b3I8Tm9kZU9yU3RyaW5nPiYgbm9kZU9yU3RyaW5n
VmVjdG9yKQpAQCAtNTE1LDcgKzUzMSw3IEBAIHZvaWQgTm9kZTo6YmVmb3JlKFZlY3RvcjxOb2Rl
T3JTdHJpbmc+JiYgbm9kZU9yU3RyaW5nVmVjdG9yLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBl
bHNlCiAgICAgICAgIHZpYWJsZVByZXZpb3VzU2libGluZyA9IHBhcmVudC0+Zmlyc3RDaGlsZCgp
OwogCi0gICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobm9kZS5yZWxlYXNlKCksIHZpYWJsZVByZXZp
b3VzU2libGluZy5nZXQoKSwgZWMpOworICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG5vZGUucmVs
ZWFzZU5vbk51bGwoKSwgdmlhYmxlUHJldmlvdXNTaWJsaW5nLmdldCgpLCBlYyk7CiB9CiAKIHZv
aWQgTm9kZTo6YWZ0ZXIoVmVjdG9yPE5vZGVPclN0cmluZz4mJiBub2RlT3JTdHJpbmdWZWN0b3Is
IEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtNTMxLDcgKzU0Nyw3IEBAIHZvaWQgTm9kZTo6YWZ0ZXIo
VmVjdG9yPE5vZGVPclN0cmluZz4mJiBub2RlT3JTdHJpbmdWZWN0b3IsIEV4Y2VwdGlvbkNvZGUm
IGVjKQogICAgIGlmIChlYyB8fCAhbm9kZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcGFyZW50
LT5pbnNlcnRCZWZvcmUobm9kZS5yZWxlYXNlKCksIHZpYWJsZU5leHRTaWJsaW5nLmdldCgpLCBl
Yyk7CisgICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobm9kZS5yZWxlYXNlTm9uTnVsbCgpLCB2aWFi
bGVOZXh0U2libGluZy5nZXQoKSwgZWMpOwogfQogCiB2b2lkIE5vZGU6OnJlcGxhY2VXaXRoKFZl
Y3RvcjxOb2RlT3JTdHJpbmc+JiYgbm9kZU9yU3RyaW5nVmVjdG9yLCBFeGNlcHRpb25Db2RlJiBl
YykKQEAgLTU0OCwxNSArNTY0LDE1IEBAIHZvaWQgTm9kZTo6cmVwbGFjZVdpdGgoVmVjdG9yPE5v
ZGVPclN0cmluZz4mJiBub2RlT3JTdHJpbmdWZWN0b3IsIEV4Y2VwdGlvbkNvZGUmCiAgICAgICAg
IHJldHVybjsKIAogICAgIGlmIChwYXJlbnROb2RlKCkgPT0gcGFyZW50KQotICAgICAgICBwYXJl
bnQtPnJlcGxhY2VDaGlsZChub2RlLnJlbGVhc2UoKSwgdGhpcywgZWMpOworICAgICAgICBwYXJl
bnQtPnJlcGxhY2VDaGlsZChub2RlLnJlbGVhc2VOb25OdWxsKCksICp0aGlzLCBlYyk7CiAgICAg
ZWxzZQotICAgICAgICBwYXJlbnQtPmluc2VydEJlZm9yZShub2RlLnJlbGVhc2UoKSwgdmlhYmxl
TmV4dFNpYmxpbmcuZ2V0KCksIGVjKTsKKyAgICAgICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobm9k
ZS5yZWxlYXNlTm9uTnVsbCgpLCB2aWFibGVOZXh0U2libGluZy5nZXQoKSwgZWMpOwogfQogCiB2
b2lkIE5vZGU6OnJlbW92ZShFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAoQ29udGFpbmVy
Tm9kZSogcGFyZW50ID0gcGFyZW50Tm9kZSgpKQotICAgICAgICBwYXJlbnQtPnJlbW92ZUNoaWxk
KHRoaXMsIGVjKTsKKyAgICAgICAgcGFyZW50LT5yZW1vdmVDaGlsZCgqdGhpcywgZWMpOwogfQog
CiB2b2lkIE5vZGU6Om5vcm1hbGl6ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCA5MjllY2U0MmM4ZWI3YzJi
NWE0MzhlNTlmNWUxNzc2YWIxODlkMDY1Li5hNTJmMGY0M2YxNTEwNjFlODI2ZDVhNTg5NTQzZjlh
MTU5OTNkOGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTIwMSw4ICsyMDEsOCBAQCBwdWJsaWM6CiAgICAg
ICAgIFNlbGZXaXRoVGVtcGxhdGVDb250ZW50LAogICAgICAgICBFdmVyeXRoaW5nLAogICAgIH07
Ci0gICAgdmlydHVhbCBSZWZQdHI8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBD
bG9uaW5nT3BlcmF0aW9uKSA9IDA7Ci0gICAgUmVmUHRyPE5vZGU+IGNsb25lTm9kZShib29sIGRl
ZXApIHsgcmV0dXJuIGNsb25lTm9kZUludGVybmFsKGRvY3VtZW50KCksIGRlZXAgPyBDbG9uaW5n
T3BlcmF0aW9uOjpFdmVyeXRoaW5nIDogQ2xvbmluZ09wZXJhdGlvbjo6T25seVNlbGYpOyB9Cisg
ICAgdmlydHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5n
T3BlcmF0aW9uKSA9IDA7CisgICAgUmVmPE5vZGU+IGNsb25lTm9kZShib29sIGRlZXApIHsgcmV0
dXJuIGNsb25lTm9kZUludGVybmFsKGRvY3VtZW50KCksIGRlZXAgPyBDbG9uaW5nT3BlcmF0aW9u
OjpFdmVyeXRoaW5nIDogQ2xvbmluZ09wZXJhdGlvbjo6T25seVNlbGYpOyB9CiAKICAgICB2aXJ0
dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lKCkgY29uc3Q7CiAgICAgdmlydHVhbCBj
b25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcAppbmRleCBiMzQzY2EzYTAxYWU4ZWVmZGI1
OTdlNWQ0ZTIyZTI3Yjk5M2ZlZjkwLi4zMDAwOWI3YjBkZmNlYTU2OWUyY2NlYTE4MzE1Y2IyNzUx
MzFjMDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNw
cApAQCAtNzksNyArNzksNyBAQCBOb2RlOjpOb2RlVHlwZSBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb246
Om5vZGVUeXBlKCkgY29uc3QKICAgICByZXR1cm4gUFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RF
OwogfQogCi1SZWZQdHI8Tm9kZT4gUHJvY2Vzc2luZ0luc3RydWN0aW9uOjpjbG9uZU5vZGVJbnRl
cm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24pCitSZWY8Tm9k
ZT4gUHJvY2Vzc2luZ0luc3RydWN0aW9uOjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFy
Z2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24pCiB7CiAgICAgLy8gRklYTUU6IElzIGl0IGEg
cHJvYmxlbSB0aGF0IHRoaXMgZG9lcyBub3QgY29weSBtX2xvY2FsSHJlZj8KICAgICAvLyBXaGF0
IGFib3V0IG90aGVyIGRhdGEgbWVtYmVycz8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24uaAppbmRleCAyMWZkOWU5N2NkMmY3NWM4ZmQ3NTgwMGUwMjJhZGEyOTUzOTc2
ZjhlLi5lZmE5MDViNjY2M2YzYTI5M2M5NzcxMDUzNGZkNmZkYTk4NDJlOTdhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5oCkBAIC01OCw3ICs1OCw3IEBAIHBy
aXZhdGU6CiAKICAgICB2aXJ0dWFsIFN0cmluZyBub2RlTmFtZSgpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgTm9kZVR5cGUgbm9kZVR5cGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0
dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVy
YXRpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNsb25lTm9kZUludGVybmFs
KERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIElu
c2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYpIG92
ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKaW5kZXggNGQyMjdkYWFmNGU0NDg4MTg4NDI3MWMxYmRl
OWYxODgzZjVhYzRhNC4uMjY1MDhjZjA0NzJkNGYwZWRlZmE1ZDM1NTdjZTkyM2M3OGIxYjkyNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vUmFuZ2UuY3BwCkBAIC02NjUsNyArNjY1LDcgQEAgUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+IFJhbmdlOjpwcm9jZXNzQ29udGVudHMoQWN0aW9uVHlwZSBhY3Rpb24sIEV4Y2VwdGlv
bkNvZGUKICAgICAvLyAob3IganVzdCBkZWxldGUgdGhlIHN0dWZmIGluIGJldHdlZW4pCiAKICAg
ICBpZiAoKGFjdGlvbiA9PSBFeHRyYWN0IHx8IGFjdGlvbiA9PSBDbG9uZSkgJiYgbGVmdENvbnRl
bnRzKQotICAgICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQobGVmdENvbnRlbnRzLCBlYyk7Cisg
ICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZCgqbGVmdENvbnRlbnRzLCBlYyk7CiAKICAgICBp
ZiAocHJvY2Vzc1N0YXJ0KSB7CiAgICAgICAgIE5vZGVWZWN0b3Igbm9kZXM7CkBAIC02NzUsNyAr
Njc1LDcgQEAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFJhbmdlOjpwcm9jZXNzQ29udGVudHMo
QWN0aW9uVHlwZSBhY3Rpb24sIEV4Y2VwdGlvbkNvZGUKICAgICB9CiAKICAgICBpZiAoKGFjdGlv
biA9PSBFeHRyYWN0IHx8IGFjdGlvbiA9PSBDbG9uZSkgJiYgcmlnaHRDb250ZW50cykKLSAgICAg
ICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKHJpZ2h0Q29udGVudHMsIGVjKTsKKyAgICAgICAgZnJh
Z21lbnQtPmFwcGVuZENoaWxkKCpyaWdodENvbnRlbnRzLCBlYyk7CiAKICAgICByZXR1cm4gZnJh
Z21lbnQ7CiB9CkBAIC03MDIsNyArNzAyLDcgQEAgUmVmUHRyPE5vZGU+IFJhbmdlOjpwcm9jZXNz
Q29udGVudHNCZXR3ZWVuT2Zmc2V0cyhBY3Rpb25UeXBlIGFjdGlvbiwgUGFzc1JlZlB0cjwKICAg
ICAgICAgZW5kT2Zmc2V0ID0gc3RkOjptaW4oZW5kT2Zmc2V0LCBzdGF0aWNfY2FzdDxDaGFyYWN0
ZXJEYXRhKj4oY29udGFpbmVyKS0+bGVuZ3RoKCkpOwogICAgICAgICBzdGFydE9mZnNldCA9IHN0
ZDo6bWluKHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQpOwogICAgICAgICBpZiAoYWN0aW9uID09IEV4
dHJhY3QgfHwgYWN0aW9uID09IENsb25lKSB7Ci0gICAgICAgICAgICBSZWZQdHI8Q2hhcmFjdGVy
RGF0YT4gYyA9IHN0YXRpY19wb2ludGVyX2Nhc3Q8Q2hhcmFjdGVyRGF0YT4oY29udGFpbmVyLT5j
bG9uZU5vZGUodHJ1ZSkpOworICAgICAgICAgICAgUmVmUHRyPENoYXJhY3RlckRhdGE+IGMgPSBz
dGF0aWNfY2FzdDxDaGFyYWN0ZXJEYXRhKj4oY29udGFpbmVyLT5jbG9uZU5vZGUodHJ1ZSkucHRy
KCkpOwogICAgICAgICAgICAgZGVsZXRlQ2hhcmFjdGVyRGF0YShjLCBzdGFydE9mZnNldCwgZW5k
T2Zmc2V0LCBlYyk7CiAgICAgICAgICAgICBpZiAoZnJhZ21lbnQpIHsKICAgICAgICAgICAgICAg
ICByZXN1bHQgPSBmcmFnbWVudDsKQEAgLTcxNyw3ICs3MTcsNyBAQCBSZWZQdHI8Tm9kZT4gUmFu
Z2U6OnByb2Nlc3NDb250ZW50c0JldHdlZW5PZmZzZXRzKEFjdGlvblR5cGUgYWN0aW9uLCBQYXNz
UmVmUHRyPAogICAgICAgICBlbmRPZmZzZXQgPSBzdGQ6Om1pbihlbmRPZmZzZXQsIHN0YXRpY19j
YXN0PFByb2Nlc3NpbmdJbnN0cnVjdGlvbio+KGNvbnRhaW5lciktPmRhdGEoKS5sZW5ndGgoKSk7
CiAgICAgICAgIHN0YXJ0T2Zmc2V0ID0gc3RkOjptaW4oc3RhcnRPZmZzZXQsIGVuZE9mZnNldCk7
CiAgICAgICAgIGlmIChhY3Rpb24gPT0gRXh0cmFjdCB8fCBhY3Rpb24gPT0gQ2xvbmUpIHsKLSAg
ICAgICAgICAgIFJlZlB0cjxQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24+IGMgPSBzdGF0aWNfcG9pbnRl
cl9jYXN0PFByb2Nlc3NpbmdJbnN0cnVjdGlvbj4oY29udGFpbmVyLT5jbG9uZU5vZGUodHJ1ZSkp
OworICAgICAgICAgICAgUmVmUHRyPFByb2Nlc3NpbmdJbnN0cnVjdGlvbj4gYyA9IHN0YXRpY19j
YXN0PFByb2Nlc3NpbmdJbnN0cnVjdGlvbio+KGNvbnRhaW5lci0+Y2xvbmVOb2RlKHRydWUpLnB0
cigpKTsKICAgICAgICAgICAgIGMtPnNldERhdGEoYy0+ZGF0YSgpLnN1YnN0cmluZyhzdGFydE9m
ZnNldCwgZW5kT2Zmc2V0IC0gc3RhcnRPZmZzZXQpLCBlYyk7CiAgICAgICAgICAgICBpZiAoZnJh
Z21lbnQpIHsKICAgICAgICAgICAgICAgICByZXN1bHQgPSBmcmFnbWVudDsKQEAgLTkzNSw3ICs5
MzUsNyBAQCB2b2lkIFJhbmdlOjppbnNlcnROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gcHJwTmV3Tm9k
ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIAogICAg
ICAgICBjb250YWluZXIgPSAmc3RhcnRDb250YWluZXIoKTsKLSAgICAgICAgY29udGFpbmVyLT5w
YXJlbnROb2RlKCktPmluc2VydEJlZm9yZShuZXdOb2RlLnJlbGVhc2UoKSwgbmV3VGV4dC5nZXQo
KSwgZWMpOworICAgICAgICBjb250YWluZXItPnBhcmVudE5vZGUoKS0+aW5zZXJ0QmVmb3JlKG5l
d05vZGUucmVsZWFzZU5vbk51bGwoKSwgbmV3VGV4dC5nZXQoKSwgZWMpOwogICAgICAgICBpZiAo
ZWMpCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTEzMDMsNyArMTMwMyw3IEBAIHZvaWQgUmFu
Z2U6OnN1cnJvdW5kQ29udGVudHMoUGFzc1JlZlB0cjxOb2RlPiBwYXNzTmV3UGFyZW50LCBFeGNl
cHRpb25Db2RlJiBlYykKIAogICAgIGVjID0gMDsKICAgICB3aGlsZSAoTm9kZSogbiA9IG5ld1Bh
cmVudC0+Zmlyc3RDaGlsZCgpKSB7Ci0gICAgICAgIGRvd25jYXN0PENvbnRhaW5lck5vZGU+KCpu
ZXdQYXJlbnQpLnJlbW92ZUNoaWxkKG4sIGVjKTsKKyAgICAgICAgZG93bmNhc3Q8Q29udGFpbmVy
Tm9kZT4oKm5ld1BhcmVudCkucmVtb3ZlQ2hpbGQoKm4sIGVjKTsKICAgICAgICAgaWYgKGVjKQog
ICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TaGFkb3dSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAppbmRl
eCBhMTIyNTdmODJkZGFkYzgwMzhlOGEzMGEzNDI1MmY2MzI5ZjdiYjZjLi44ODYxMDBkYjQ2OWUy
NDFlNDZiOTU2YmM1NzAxZGEwY2M1ZTY2OTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93Um9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3Bw
CkBAIC05Miw3ICs5Miw3IEBAIHZvaWQgU2hhZG93Um9vdDo6c2V0SW5uZXJIVE1MKGNvbnN0IFN0
cmluZyYgbWFya3VwLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICB9CiAKICAgICBpZiAoUmVmUHRy
PERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGb3JJbm5lck91dGVy
SFRNTChtYXJrdXAsIGhvc3QoKSwgQWxsb3dTY3JpcHRpbmdDb250ZW50LCBlYykpCi0gICAgICAg
IHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudCgqdGhpcywgZnJhZ21lbnQucmVsZWFzZSgpLCBl
Yyk7CisgICAgICAgIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudCgqdGhpcywgZnJhZ21lbnQu
cmVsZWFzZU5vbk51bGwoKSwgZWMpOwogfQogCiBib29sIFNoYWRvd1Jvb3Q6OmNoaWxkVHlwZUFs
bG93ZWQoTm9kZVR5cGUgdHlwZSkgY29uc3QKQEAgLTEzMSw5ICsxMzEsMTAgQEAgdm9pZCBTaGFk
b3dSb290OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5nZSkKICAgICBp
bnZhbGlkYXRlRGlzdHJpYnV0aW9uKCk7CiB9CiAKLVJlZlB0cjxOb2RlPiBTaGFkb3dSb290Ojpj
bG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pCitSZWY8Tm9kZT4g
U2hhZG93Um9vdDo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9u
KQogewotICAgIHJldHVybiBudWxscHRyOyAvLyBTaGFkb3dSb290cyBzaG91bGQgbmV2ZXIgYmUg
Y2xvbmVkLgorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuICpz
dGF0aWNfY2FzdDxOb2RlKj4obnVsbHB0cik7IC8vIFNoYWRvd1Jvb3RzIHNob3VsZCBuZXZlciBi
ZSBjbG9uZWQuCiB9CiAKIHZvaWQgU2hhZG93Um9vdDo6cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKaW5kZXggNmQzMTFmZGI2MjYzZGExMmRjOWQ5MDRmNzEw
ZDA3YjllYzg1YThjZi4uNjMxNjA4YWYxYWQ0NDM2YTI1YmE2MWViMzlkZWQ4ZmY2YTIyYmJkOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCkBAIC03Niw3ICs3Niw3IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCBib29sIGNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBvdmVy
cmlkZTsKIAotICAgIHZpcnR1YWwgUmVmUHRyPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3Vt
ZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8Tm9kZT4g
Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsK
IAogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZG4ndCBoYXBwZW4uIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODgzNAogICAgIGJvb2wgaXNPcnBoYW4oKSBjb25zdCB7
IHJldHVybiAhbV9ob3N0OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKaW5kZXggYjExNzFkNzYxMWJlNmRlNjUx
NmI2MDVkY2ZlMWI2ZGMxOWQ3MTM0My4uNmM0Yzg5ZGE5ZWI2ZWZjZjA2YWI4NDI5ZWE1YzRkMTIy
M2VlMzQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcApAQCAtNzMsNyArNzMsNyBAQCBSZWZQdHI8VGV4dD4g
VGV4dDo6c3BsaXRUZXh0KHVuc2lnbmVkIG9mZnNldCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAg
ZGlzcGF0Y2hNb2RpZmllZEV2ZW50KG9sZFN0cik7CiAKICAgICBpZiAocGFyZW50Tm9kZSgpKQot
ICAgICAgICBwYXJlbnROb2RlKCktPmluc2VydEJlZm9yZShuZXdUZXh0LnB0cigpLCBuZXh0U2li
bGluZygpLCBlYyk7CisgICAgICAgIHBhcmVudE5vZGUoKS0+aW5zZXJ0QmVmb3JlKG5ld1RleHQu
Y29weVJlZigpLCBuZXh0U2libGluZygpLCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1
cm4gMDsKIApAQCAtMTMyLDI4ICsxMzIsMjggQEAgUmVmUHRyPFRleHQ+IFRleHQ6OnJlcGxhY2VX
aG9sZVRleHQoY29uc3QgU3RyaW5nJiBuZXdUZXh0LCBFeGNlcHRpb25Db2RlJikKICAgICBSZWZQ
dHI8VGV4dD4gcHJvdGVjdGVkVGhpcyh0aGlzKTsgLy8gTXV0YXRpb24gZXZlbnQgaGFuZGxlcnMg
Y291bGQgY2F1c2Ugb3VyIGxhc3QgcmVmIHRvIGdvIGF3YXkKICAgICBSZWZQdHI8Q29udGFpbmVy
Tm9kZT4gcGFyZW50ID0gcGFyZW50Tm9kZSgpOyAvLyBQcm90ZWN0IGFnYWluc3QgbXV0YXRpb24g
aGFuZGxlcnMgbW92aW5nIHRoaXMgbm9kZSBkdXJpbmcgdHJhdmVyc2FsCiAgICAgZm9yIChSZWZQ
dHI8Tm9kZT4gbiA9IHN0YXJ0VGV4dDsgbiAmJiBuICE9IHRoaXMgJiYgbi0+aXNUZXh0Tm9kZSgp
ICYmIG4tPnBhcmVudE5vZGUoKSA9PSBwYXJlbnQ7KSB7Ci0gICAgICAgIFJlZlB0cjxOb2RlPiBu
b2RlVG9SZW1vdmUobi5yZWxlYXNlKCkpOworICAgICAgICBSZWY8Tm9kZT4gbm9kZVRvUmVtb3Zl
KG4ucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgICAgIG4gPSBub2RlVG9SZW1vdmUtPm5leHRTaWJs
aW5nKCk7Ci0gICAgICAgIHBhcmVudC0+cmVtb3ZlQ2hpbGQobm9kZVRvUmVtb3ZlLmdldCgpLCBJ
R05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgcGFyZW50LT5yZW1vdmVDaGlsZChXVEY6Om1vdmUo
bm9kZVRvUmVtb3ZlKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgfQogCiAgICAgaWYgKHRoaXMg
IT0gZW5kVGV4dCkgewogICAgICAgICBOb2RlKiBvbmVQYXN0RW5kVGV4dCA9IGVuZFRleHQtPm5l
eHRTaWJsaW5nKCk7CiAgICAgICAgIGZvciAoUmVmUHRyPE5vZGU+IG4gPSBuZXh0U2libGluZygp
OyBuICYmIG4gIT0gb25lUGFzdEVuZFRleHQgJiYgbi0+aXNUZXh0Tm9kZSgpICYmIG4tPnBhcmVu
dE5vZGUoKSA9PSBwYXJlbnQ7KSB7Ci0gICAgICAgICAgICBSZWZQdHI8Tm9kZT4gbm9kZVRvUmVt
b3ZlKG4ucmVsZWFzZSgpKTsKKyAgICAgICAgICAgIFJlZjxOb2RlPiBub2RlVG9SZW1vdmUobi5y
ZWxlYXNlTm9uTnVsbCgpKTsKICAgICAgICAgICAgIG4gPSBub2RlVG9SZW1vdmUtPm5leHRTaWJs
aW5nKCk7Ci0gICAgICAgICAgICBwYXJlbnQtPnJlbW92ZUNoaWxkKG5vZGVUb1JlbW92ZS5nZXQo
KSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgICAgICAgICBwYXJlbnQtPnJlbW92ZUNoaWxkKFdU
Rjo6bW92ZShub2RlVG9SZW1vdmUpLCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICAgICAgfQogICAg
IH0KIAogICAgIGlmIChuZXdUZXh0LmlzRW1wdHkoKSkgewogICAgICAgICBpZiAocGFyZW50ICYm
IHBhcmVudE5vZGUoKSA9PSBwYXJlbnQpCi0gICAgICAgICAgICBwYXJlbnQtPnJlbW92ZUNoaWxk
KHRoaXMsIElHTk9SRV9FWENFUFRJT04pOwotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAg
IHBhcmVudC0+cmVtb3ZlQ2hpbGQoKnRoaXMsIElHTk9SRV9FWENFUFRJT04pOworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBzZXREYXRhKG5ld1RleHQsIElHTk9SRV9FWENF
UFRJT04pOwotICAgIHJldHVybiBwcm90ZWN0ZWRUaGlzLnJlbGVhc2UoKTsKKyAgICByZXR1cm4g
cHJvdGVjdGVkVGhpczsKIH0KIAogU3RyaW5nIFRleHQ6Om5vZGVOYW1lKCkgY29uc3QKQEAgLTE2
Niw3ICsxNjYsNyBAQCBOb2RlOjpOb2RlVHlwZSBUZXh0Ojpub2RlVHlwZSgpIGNvbnN0CiAgICAg
cmV0dXJuIFRFWFRfTk9ERTsKIH0KIAotUmVmUHRyPE5vZGU+IFRleHQ6OmNsb25lTm9kZUludGVy
bmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikKK1JlZjxOb2Rl
PiBUZXh0OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25p
bmdPcGVyYXRpb24pCiB7CiAgICAgcmV0dXJuIGNyZWF0ZSh0YXJnZXREb2N1bWVudCwgZGF0YSgp
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vVGV4dC5oCmluZGV4IGE5Njc0MzY0Y2RhMGRlZGI4ZWNhNTljYzBhMjVhNTM3MmJi
YTk3ZDQuLmVmZDZiZGU5MjdjMWY5OTkzNTdlMjUxZWU0NTQyMDlhZDFjZjUwZmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Rl
eHQuaApAQCAtNjIsNyArNjIsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHZpcnR1YWwg
U3RyaW5nIG5vZGVOYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBOb2RlVHlwZSBu
b2RlVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVmUHRyPE5vZGU+IGNsb25l
Tm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3Bl
cmF0aW9uKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRUeXBlQWxsb3dlZChOb2Rl
VHlwZSkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIFJlZjxUZXh0PiB2aXJ0dWFsQ3Jl
YXRlKGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9B
cHBlbmROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVD
b21tYW5kLmNwcAppbmRleCA2YThkOWU5MWEyNTFiMWFiOTdhMTllMjMyMzIwY2I4NDY4YjVjMzA0
Li44Y2NjMjdlMzYxMjcyNmNkZDdlZWNlOWMzOWUzYjgwYmI0NjAwNjhmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcApAQCAtMzUsMTMgKzM1LDEyIEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQXBwZW5kTm9kZUNvbW1hbmQ6OkFwcGVuZE5vZGVD
b21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+
IG5vZGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKK0FwcGVuZE5vZGVDb21tYW5kOjpBcHBl
bmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgTm9kZSYgbm9k
ZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQogICAgIDogU2ltcGxlRWRpdENvbW1hbmQocGFy
ZW50LT5kb2N1bWVudCgpLCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9wYXJlbnQocGFyZW50KQog
ICAgICwgbV9ub2RlKG5vZGUpCiB7CiAgICAgQVNTRVJUKG1fcGFyZW50KTsKLSAgICBBU1NFUlQo
bV9ub2RlKTsKICAgICBBU1NFUlQoIW1fbm9kZS0+cGFyZW50Tm9kZSgpKTsKIAogICAgIEFTU0VS
VChtX3BhcmVudC0+aGFzRWRpdGFibGVTdHlsZSgpIHx8ICFtX3BhcmVudC0+cmVuZGVyZXIoKSk7
CkBAIC02OCwxMCArNjcsMTAgQEAgdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAg
ICAgaWYgKCFtX3BhcmVudC0+aGFzRWRpdGFibGVTdHlsZSgpICYmIG1fcGFyZW50LT5yZW5kZXJl
cigpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3BhcmVudC0+YXBwZW5kQ2hpbGQobV9ub2Rl
LmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBtX3BhcmVudC0+YXBwZW5kQ2hpbGQobV9u
b2RlLmNvcHlSZWYoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKICAgICBpZiAoc2hvdWxkUG9zdEFj
Y2Vzc2liaWxpdHlOb3RpZmljYXRpb24oKSkKLSAgICAgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25v
cmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCkpOworICAgICAgICBz
ZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUucHRyKCksIGFwcGx5RWRp
dFR5cGUoKSk7CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCkBAIC04
MSw3ICs4MCw3IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiAKICAgICAv
LyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAog
ICAgIGlmIChzaG91bGRQb3N0QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbigpKQotICAgICAgICBz
ZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIHVuYXBwbHlF
ZGl0VHlwZSgpKTsKKyAgICAgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3Mo
bV9ub2RlLnB0cigpLCB1bmFwcGx5RWRpdFR5cGUoKSk7CiAKICAgICBtX25vZGUtPnJlbW92ZShJ
R05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTkwLDcgKzg5LDcgQEAgdm9pZCBBcHBlbmROb2RlQ29t
bWFuZDo6ZG9VbmFwcGx5KCkKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21t
YW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIHsKICAgICBhZGROb2RlQW5kRGVzY2VuZGFudHMo
bV9wYXJlbnQuZ2V0KCksIG5vZGVzKTsKLSAgICBhZGROb2RlQW5kRGVzY2VuZGFudHMobV9ub2Rl
LmdldCgpLCBub2Rlcyk7CisgICAgYWRkTm9kZUFuZERlc2NlbmRhbnRzKG1fbm9kZS5wdHIoKSwg
bm9kZXMpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QXBwZW5kTm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNv
bW1hbmQuaAppbmRleCBmNzgyOTc1Yjg5MjE1MGFlMzZkMjlhNmJiZWNhOWYxZGMxMzA3YzMxLi5m
NjRiYWRjMDBkMDNhOTNmMzczZGUyNzE4NmI4NGY1NGVkNDljOTdlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCkBAIC0zMiwxMyArMzIsMTMgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBBcHBlbmROb2RlQ29tbWFuZCA6IHB1YmxpYyBTaW1wbGVF
ZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxBcHBlbmROb2RlQ29tbWFuZD4g
Y3JlYXRlKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+
IG5vZGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICBzdGF0aWMgUmVmPEFwcGVuZE5v
ZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIE5vZGUm
IG5vZGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKICAgICB7CiAgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEFwcGVuZE5vZGVDb21tYW5kKHBhcmVudCwgbm9kZSwgZWRpdGluZ0FjdGlv
bikpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRy
PENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0cjxOb2RlPiwgRWRpdEFjdGlvbik7Cisg
ICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIE5v
ZGUmLCBFZGl0QWN0aW9uKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwpAQCAtNDgsNyArNDgsNyBA
QCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBSZWZQdHI8Q29udGFpbmVyTm9kZT4gbV9wYXJlbnQ7
Ci0gICAgUmVmUHRyPE5vZGU+IG1fbm9kZTsKKyAgICBSZWY8Tm9kZT4gbV9ub2RlOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBv
c2l0ZUVkaXRDb21tYW5kLmNwcAppbmRleCAzZDc3OTQyNDhkMjNlOWI3YTIzOTE2MmY5NzFhNDQ3
NDc1MWI2MzAzLi41ZDlkMzZmZjUwZjVkY2Y2N2QwOGQwZTRhNjI1MzYzNmU5MWI1MDYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcApAQCAt
Mzk1LDcgKzM5NSw4IEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVBdChQ
YXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBjb25zdCBQb3NpCiB2b2lkIENvbXBvc2l0ZUVk
aXRDb21tYW5kOjphcHBlbmROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgUGFzc1JlZlB0cjxD
b250YWluZXJOb2RlPiBwYXJlbnQpCiB7CiAgICAgQVNTRVJUKGNhbkhhdmVDaGlsZHJlbkZvckVk
aXRpbmcocGFyZW50LmdldCgpKSk7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoQXBwZW5k
Tm9kZUNvbW1hbmQ6OmNyZWF0ZShwYXJlbnQsIG5vZGUsIGVkaXRpbmdBY3Rpb24oKSkpOworICAg
IEFTU0VSVChub2RlKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShBcHBlbmROb2RlQ29t
bWFuZDo6Y3JlYXRlKHBhcmVudCwgKm5vZGUsIGVkaXRpbmdBY3Rpb24oKSkpOwogfQogCiB2b2lk
IENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVDaGlsZHJlbkluUmFuZ2UoUGFzc1JlZlB0cjxO
b2RlPiBub2RlLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bykKQEAgLTQxNCw3ICs0MTUsNyBA
QCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVOb2RlKFBhc3NSZWZQdHI8Tm9kZT4g
bm9kZSwgU2hvdWxkQXNzdW1lQ29udGVudAogewogICAgIGlmICghbm9kZSB8fCAhbm9kZS0+bm9u
U2hhZG93Qm91bmRhcnlQYXJlbnROb2RlKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBhcHBseUNv
bW1hbmRUb0NvbXBvc2l0ZShSZW1vdmVOb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIHNob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3Np
dGUoUmVtb3ZlTm9kZUNvbW1hbmQ6OmNyZWF0ZSgqbm9kZSwgc2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUpKTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVtb3Zl
Tm9kZVByZXNlcnZpbmdDaGlsZHJlbihQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlKQpAQCAtMTU0MSw3ICsxNTQyLDcgQEAgUGFzc1JlZlB0cjxOb2RlPiBDb21wb3NpdGVFZGl0
Q29tbWFuZDo6c3BsaXRUcmVlVG9Ob2RlKE5vZGUqIHN0YXJ0LCBOb2RlKiBlbmQsIGIKICAgICBy
ZXR1cm4gbm9kZS5yZWxlYXNlKCk7CiB9CiAKLVBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlQmxv
Y2tQbGFjZWhvbGRlckVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEVsZW1lbnQ+IGNy
ZWF0ZUJsb2NrUGxhY2Vob2xkZXJFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBy
ZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChiclRhZywgZmFsc2UpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggYzY0
OTFkMjY5MjY1ZTVhYjZjZTk2NWVhYTk1MzQxYjY1NDQ3ZDFhZS4uNTYwOTk3MTMzZjYxOWUzZDBh
NzJkY2JkYWZiYWIxNzhkOGYzMGQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC02MzIsNyArNjMyLDcgQEAgdm9pZCBEZWxl
dGVTZWxlY3Rpb25Db21tYW5kOjptZXJnZVBhcmFncmFwaHMoKQogICAgIAogICAgIC8vIFdlIG5l
ZWQgdG8gbWVyZ2UgaW50byBtX3Vwc3RyZWFtU3RhcnQncyBibG9jaywgYnV0IGl0J3MgYmVlbiBl
bXB0aWVkIG91dCBhbmQgY29sbGFwc2VkIGJ5IGRlbGV0aW9uLgogICAgIGlmICghbWVyZ2VEZXN0
aW5hdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWROb2RlKCkgfHwgIW1lcmdlRGVzdGlu
YXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkTm9kZSgpLT5pc0Rlc2NlbmRhbnRPZihl
bmNsb3NpbmdCbG9jayhtX3Vwc3RyZWFtU3RhcnQuY29udGFpbmVyTm9kZSgpKSkgfHwgbV9zdGFy
dHNBdEVtcHR5TGluZSkgewotICAgICAgICBpbnNlcnROb2RlQXQoY3JlYXRlQnJlYWtFbGVtZW50
KGRvY3VtZW50KCkpLmdldCgpLCBtX3Vwc3RyZWFtU3RhcnQpOworICAgICAgICBpbnNlcnROb2Rl
QXQoY3JlYXRlQnJlYWtFbGVtZW50KGRvY3VtZW50KCkpLnB0cigpLCBtX3Vwc3RyZWFtU3RhcnQp
OwogICAgICAgICBtZXJnZURlc3RpbmF0aW9uID0gVmlzaWJsZVBvc2l0aW9uKG1fdXBzdHJlYW1T
dGFydCk7CiAgICAgfQogICAgIApAQCAtODU1LDcgKzg1NSw3IEBAIHZvaWQgRGVsZXRlU2VsZWN0
aW9uQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgCiAgICAgcmVtb3ZlUHJldmlvdXNseVNlbGVjdGVk
RW1wdHlUYWJsZVJvd3MoKTsKICAgICAKLSAgICBSZWZQdHI8Tm9kZT4gcGxhY2Vob2xkZXIgPSBt
X25lZWRQbGFjZWhvbGRlciA/IGNyZWF0ZUJyZWFrRWxlbWVudChkb2N1bWVudCgpKS5nZXQoKSA6
IDA7CisgICAgUmVmUHRyPE5vZGU+IHBsYWNlaG9sZGVyID0gbV9uZWVkUGxhY2Vob2xkZXIgPyBj
cmVhdGVCcmVha0VsZW1lbnQoZG9jdW1lbnQoKSkucHRyKCkgOiBudWxscHRyOwogICAgIAogICAg
IGlmIChwbGFjZWhvbGRlcikgewogICAgICAgICBpZiAobV9zYW5pdGl6ZU1hcmt1cCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCAxNDhlMzVjOGNjZmE5NmM1YjEwODQyYWVmNjFkYzZk
N2UxODY2ODM0Li40NGIyYWM3MzgyMTZkODkzN2U0NTRiNDljYWM5ZDhkY2I3NTA2YWZhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC02MTMsOCArNjEzLDggQEAgdm9pZCBFZGl0b3I6
OnNldFRleHRBc0NoaWxkT2ZFbGVtZW50KGNvbnN0IFN0cmluZyYgdGV4dCwgRWxlbWVudCogZWxl
bSkKICAgICAgICAgICAgIAogICAgICAgICBSZWZQdHI8UmFuZ2U+IGNvbnRleHQgPSBkb2N1bWVu
dCgpLmNyZWF0ZVJhbmdlKCk7CiAgICAgICAgIGNvbnRleHQtPnNlbGVjdE5vZGVDb250ZW50cyhl
bGVtLCBlYyk7Ci0gICAgICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGNy
ZWF0ZUZyYWdtZW50RnJvbVRleHQoKmNvbnRleHQuZ2V0KCksIHRleHQpOwotICAgICAgICBlbGVt
LT5hcHBlbmRDaGlsZChmcmFnbWVudCwgZWMpOworICAgICAgICBSZWY8RG9jdW1lbnRGcmFnbWVu
dD4gZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21UZXh0KCpjb250ZXh0LmdldCgpLCB0ZXh0
KTsKKyAgICAgICAgZWxlbS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGZyYWdtZW50KSwgZWMpOwog
ICAgIAogICAgICAgICAvLyByZXN0b3JlIGVsZW1lbnQgdG8gZG9jdW1lbnQKICAgICAgICAgaWYg
KHBhcmVudCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21t
YW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKaW5kZXgg
MGY4Zjg4MDMzYTRmZWZhMjNkNzUyNjg5OWVlNDc0MTlmZDQwNzIyYi4uMTJjZGQyMWQ4ZWMxM2Q3
MGU1ZmIwMDNjZTg3ZjJkOTI1MTY4MmMyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3JDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ckNvbW1hbmQuY3BwCkBAIC0xNjUsMTEgKzE2NSwxMSBAQCBzdGF0aWMgYm9vbCBleGVjdXRlSW5z
ZXJ0RnJhZ21lbnQoRnJhbWUmIGZyYW1lLCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZy
YQogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgYm9vbCBleGVjdXRlSW5zZXJ0Tm9kZShG
cmFtZSYgZnJhbWUsIFBhc3NSZWZQdHI8Tm9kZT4gY29udGVudCkKK3N0YXRpYyBib29sIGV4ZWN1
dGVJbnNlcnROb2RlKEZyYW1lJiBmcmFtZSwgUmVmPE5vZGU+JiYgY29udGVudCkKIHsKICAgICBS
ZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBEb2N1bWVudEZyYWdtZW50OjpjcmVh
dGUoKmZyYW1lLmRvY3VtZW50KCkpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGZy
YWdtZW50LT5hcHBlbmRDaGlsZChjb250ZW50LCBlYyk7CisgICAgZnJhZ21lbnQtPmFwcGVuZENo
aWxkKFdURjo6bW92ZShjb250ZW50KSwgZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIHJldHVybiBleGVjdXRlSW5zZXJ0RnJhZ21lbnQoZnJhbWUsIGZyYWdtZW50
LnJlbGVhc2UoKSk7CkBAIC00NjQsMTAgKzQ2NCwxMCBAQCBzdGF0aWMgYm9vbCBleGVjdXRlSW5z
ZXJ0QmFja3RhYihGcmFtZSYgZnJhbWUsIEV2ZW50KiBldmVudCwgRWRpdG9yQ29tbWFuZFNvdXJj
ZQogCiBzdGF0aWMgYm9vbCBleGVjdXRlSW5zZXJ0SG9yaXpvbnRhbFJ1bGUoRnJhbWUmIGZyYW1l
LCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7Ci0g
ICAgUmVmUHRyPEhUTUxIUkVsZW1lbnQ+IHJ1bGUgPSBIVE1MSFJFbGVtZW50OjpjcmVhdGUoKmZy
YW1lLmRvY3VtZW50KCkpOworICAgIFJlZjxIVE1MSFJFbGVtZW50PiBydWxlID0gSFRNTEhSRWxl
bWVudDo6Y3JlYXRlKCpmcmFtZS5kb2N1bWVudCgpKTsKICAgICBpZiAoIXZhbHVlLmlzRW1wdHko
KSkKICAgICAgICAgcnVsZS0+c2V0SWRBdHRyaWJ1dGUodmFsdWUpOwotICAgIHJldHVybiBleGVj
dXRlSW5zZXJ0Tm9kZShmcmFtZSwgcnVsZS5yZWxlYXNlKCkpOworICAgIHJldHVybiBleGVjdXRl
SW5zZXJ0Tm9kZShmcmFtZSwgV1RGOjptb3ZlKHJ1bGUpKTsKIH0KIAogc3RhdGljIGJvb2wgZXhl
Y3V0ZUluc2VydEhUTUwoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2Us
IGNvbnN0IFN0cmluZyYgdmFsdWUpCkBAIC00NzgsOSArNDc4LDkgQEAgc3RhdGljIGJvb2wgZXhl
Y3V0ZUluc2VydEhUTUwoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2Us
IGNvbnN0IFMKIHN0YXRpYyBib29sIGV4ZWN1dGVJbnNlcnRJbWFnZShGcmFtZSYgZnJhbWUsIEV2
ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKICAgICAv
LyBGSVhNRTogSWYgdXNlckludGVyZmFjZSBpcyB0cnVlLCB3ZSBzaG91bGQgZGlzcGxheSBhIGRp
YWxvZyBib3ggYW5kIGxldCB0aGUgdXNlciBjaG9vc2UgYSBsb2NhbCBpbWFnZS4KLSAgICBSZWZQ
dHI8SFRNTEltYWdlRWxlbWVudD4gaW1hZ2UgPSBIVE1MSW1hZ2VFbGVtZW50OjpjcmVhdGUoKmZy
YW1lLmRvY3VtZW50KCkpOworICAgIFJlZjxIVE1MSW1hZ2VFbGVtZW50PiBpbWFnZSA9IEhUTUxJ
bWFnZUVsZW1lbnQ6OmNyZWF0ZSgqZnJhbWUuZG9jdW1lbnQoKSk7CiAgICAgaW1hZ2UtPnNldFNy
Yyh2YWx1ZSk7Ci0gICAgcmV0dXJuIGV4ZWN1dGVJbnNlcnROb2RlKGZyYW1lLCBpbWFnZS5yZWxl
YXNlKCkpOworICAgIHJldHVybiBleGVjdXRlSW5zZXJ0Tm9kZShmcmFtZSwgV1RGOjptb3ZlKGlt
YWdlKSk7CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVJbnNlcnRMaW5lQnJlYWsoRnJhbWUmIGZy
YW1lLCBFdmVudCogZXZlbnQsIEVkaXRvckNvbW1hbmRTb3VyY2Ugc291cmNlLCBjb25zdCBTdHJp
bmcmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRMaW5lQnJlYWtD
b21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0TGluZUJyZWFrQ29tbWFu
ZC5jcHAKaW5kZXggNmVlMjFkOTIyNzNkY2U1NWYxMjQ4NmY4Zjk3ODdhMjY4MGVlMzkwMC4uMjVh
YjA3MTI0ZTc5Mjc3MjAyNDVlZTZkNmU0NmNlZDFjNmU5Yzg1MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9JbnNlcnRMaW5lQnJlYWtDb21tYW5kLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydExpbmVCcmVha0NvbW1hbmQuY3BwCkBAIC0xMjksNyArMTI5
LDcgQEAgdm9pZCBJbnNlcnRMaW5lQnJlYWtDb21tYW5kOjpkb0FwcGx5KCkKICAgICAgICAgCiAg
ICAgICAgIC8vIEluc2VydCBhbiBleHRyYSBiciBvciAnXG4nIGlmIHRoZSBqdXN0IGluc2VydGVk
IG9uZSBjb2xsYXBzZWQuCiAgICAgICAgIGlmICghaXNTdGFydE9mUGFyYWdyYXBoKHBvc2l0aW9u
QmVmb3JlTm9kZShub2RlVG9JbnNlcnQuZ2V0KCkpKSkKLSAgICAgICAgICAgIGluc2VydE5vZGVC
ZWZvcmUobm9kZVRvSW5zZXJ0LT5jbG9uZU5vZGUoZmFsc2UpLmdldCgpLCBub2RlVG9JbnNlcnQu
Z2V0KCkpOworICAgICAgICAgICAgaW5zZXJ0Tm9kZUJlZm9yZShub2RlVG9JbnNlcnQtPmNsb25l
Tm9kZShmYWxzZSksIG5vZGVUb0luc2VydC5nZXQoKSk7CiAgICAgICAgIAogICAgICAgICBzZXRF
bmRpbmdTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihwb3NpdGlvbkluUGFyZW50QWZ0ZXJOb2Rl
KG5vZGVUb0luc2VydC5nZXQoKSksIERPV05TVFJFQU0sIGVuZGluZ1NlbGVjdGlvbigpLmlzRGly
ZWN0aW9uYWwoKSkpOwogICAgIC8vIElmIHdlJ3JlIGluc2VydGluZyBhZnRlciBhbGwgb2YgdGhl
IHJlbmRlcmVkIHRleHQgaW4gYSB0ZXh0IG5vZGUsIG9yIGludG8gYSBub24tdGV4dCBub2RlLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cAppbmRleCBmYTE0ZDA3NjZlYWY3NWZhNDMxOWU2ZDg4NTc0YWYzZDNhMDNlNDM2Li41MGY2NTQ1
ZTYyZjdiZGI4NGZkMGM1ZWI1MzRlNGVjYzg2MWRiYTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtNTUsNyArNTUsNyBA
QCB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb0FwcGx5KCkKICAgICAgICAgcmV0dXJu
OwogICAgIEFTU0VSVChpc0VkaXRhYmxlTm9kZSgqcGFyZW50KSk7CiAKLSAgICBwYXJlbnQtPmlu
c2VydEJlZm9yZShtX2luc2VydENoaWxkLmdldCgpLCBtX3JlZkNoaWxkLmdldCgpLCBJR05PUkVf
RVhDRVBUSU9OKTsKKyAgICBwYXJlbnQtPmluc2VydEJlZm9yZSgqbV9pbnNlcnRDaGlsZCwgbV9y
ZWZDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKICAgICBpZiAoc2hvdWxkUG9zdEFj
Y2Vzc2liaWxpdHlOb3RpZmljYXRpb24oKSkgewogICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9
IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4o
bV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG1f
aW5zZXJ0Q2hpbGQuZ2V0KCksIDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5jcHAKaW5kZXggN2RkMDE2MGNk
MDM0M2RhYWRmMTI0MzQxMmUzZWFhZmYxNjE3ZDY1YS4uMTUwMzIyOTJhZGU2NTg4NDRhN2Y5MjA2
Y2ZhYjcwOWZiNTY0MTBjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNl
cnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuY3BwCkBAIC0zNjgsNyArMzY4LDcg
QEAgdm9pZCBJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kOjpkb0FwcGx5KCkKICAgICAv
LyBjcmVhdGVkLiAgQWxsIG9mIHRoZSBub2Rlcywgc3RhcnRpbmcgYXQgdmlzaWJsZVBvcywgYXJl
IGFib3V0IHRvIGJlIGFkZGVkIHRvIHRoZSBuZXcgcGFyYWdyYXBoIAogICAgIC8vIGVsZW1lbnQu
ICBJZiB0aGUgZmlyc3Qgbm9kZSB0byBiZSBpbnNlcnRlZCB3b24ndCBiZSBvbmUgdGhhdCB3aWxs
IGhvbGQgYW4gZW1wdHkgbGluZSBvcGVuLCBhZGQgYSBici4KICAgICBpZiAoaXNFbmRPZlBhcmFn
cmFwaCh2aXNpYmxlUG9zKSAmJiAhbGluZUJyZWFrRXhpc3RzQXRWaXNpYmxlUG9zaXRpb24odmlz
aWJsZVBvcykpCi0gICAgICAgIGFwcGVuZE5vZGUoY3JlYXRlQnJlYWtFbGVtZW50KGRvY3VtZW50
KCkpLmdldCgpLCBibG9ja1RvSW5zZXJ0LmdldCgpKTsKKyAgICAgICAgYXBwZW5kTm9kZShjcmVh
dGVCcmVha0VsZW1lbnQoZG9jdW1lbnQoKSksIGJsb2NrVG9JbnNlcnQuZ2V0KCkpOwogCiAgICAg
Ly8gTW92ZSB0aGUgc3RhcnQgbm9kZSBhbmQgdGhlIHNpYmxpbmdzIG9mIHRoZSBzdGFydCBub2Rl
LgogICAgIGlmIChWaXNpYmxlUG9zaXRpb24oaW5zZXJ0aW9uUG9zaXRpb24pICE9IFZpc2libGVQ
b3NpdGlvbihwb3NpdGlvbkJlZm9yZU5vZGUoYmxvY2tUb0luc2VydC5nZXQoKSkpKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21t
YW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWVyZ2VJZGVudGljYWxFbGVtZW50c0Nv
bW1hbmQuY3BwCmluZGV4IDQ2NTE4ODQ2MzY0ZmEzM2MyODVjZjYwMDk3ZjA0M2IyYzJjZjM4N2Uu
LjRhNTllZjY4MGQ2YTBkZjIxNzM1YTllYjIwNTBhMThlZGY2NmYxY2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvTWVyZ2VJZGVudGljYWxFbGVtZW50c0NvbW1hbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWVyZ2VJZGVudGljYWxFbGVtZW50c0NvbW1hbmQu
Y3BwCkBAIC00NywxMyArNDcsMTMgQEAgdm9pZCBNZXJnZUlkZW50aWNhbEVsZW1lbnRzQ29tbWFu
ZDo6ZG9BcHBseSgpCiAKICAgICBtX2F0Q2hpbGQgPSBtX2VsZW1lbnQyLT5maXJzdENoaWxkKCk7
CiAKLSAgICBWZWN0b3I8UmVmUHRyPE5vZGU+PiBjaGlsZHJlbjsKKyAgICBWZWN0b3I8UmVmPE5v
ZGU+PiBjaGlsZHJlbjsKICAgICBmb3IgKE5vZGUqIGNoaWxkID0gbV9lbGVtZW50MS0+Zmlyc3RD
aGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKLSAgICAgICAgY2hp
bGRyZW4uYXBwZW5kKGNoaWxkKTsKKyAgICAgICAgY2hpbGRyZW4uYXBwZW5kKCpjaGlsZCk7CiAK
ICAgICBzaXplX3Qgc2l6ZSA9IGNoaWxkcmVuLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgbV9lbGVtZW50Mi0+aW5zZXJ0QmVmb3JlKGNoaWxk
cmVuW2ldLnJlbGVhc2UoKSwgbV9hdENoaWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAg
ICAgICAgbV9lbGVtZW50Mi0+aW5zZXJ0QmVmb3JlKFdURjo6bW92ZShjaGlsZHJlbltpXSksIG1f
YXRDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKICAgICBtX2VsZW1lbnQxLT5yZW1v
dmUoSUdOT1JFX0VYQ0VQVElPTik7CiB9CkBAIC03MSwxNyArNzEsMTcgQEAgdm9pZCBNZXJnZUlk
ZW50aWNhbEVsZW1lbnRzQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIAogICAgIEV4Y2VwdGlvbkNvZGUg
ZWMgPSAwOwogCi0gICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobV9lbGVtZW50MS5nZXQoKSwgbV9l
bGVtZW50Mi5nZXQoKSwgZWMpOworICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKCptX2VsZW1lbnQx
LCBtX2VsZW1lbnQyLmdldCgpLCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm47CiAK
LSAgICBWZWN0b3I8UmVmUHRyPE5vZGU+PiBjaGlsZHJlbjsKKyAgICBWZWN0b3I8UmVmPE5vZGU+
PiBjaGlsZHJlbjsKICAgICBmb3IgKE5vZGUqIGNoaWxkID0gbV9lbGVtZW50Mi0+Zmlyc3RDaGls
ZCgpOyBjaGlsZCAmJiBjaGlsZCAhPSBhdENoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGlu
ZygpKQotICAgICAgICBjaGlsZHJlbi5hcHBlbmQoY2hpbGQpOworICAgICAgICBjaGlsZHJlbi5h
cHBlbmQoKmNoaWxkKTsKIAogICAgIHNpemVfdCBzaXplID0gY2hpbGRyZW4uc2l6ZSgpOwogICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICBtX2VsZW1lbnQxLT5h
cHBlbmRDaGlsZChjaGlsZHJlbltpXS5yZWxlYXNlKCksIGVjKTsKKyAgICAgICAgbV9lbGVtZW50
MS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNoaWxkcmVuW2ldKSwgZWMpOwogfQogCiAjaWZuZGVm
IE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlQ29t
bWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmNwcApp
bmRleCAzMWM1NGQxZTg4MmUyZDQ2NTQwNDA4ZTQ1MDYwYzQ5ZDkwOGJiZWM2Li5iZWVjN2U0ZGFl
NDRiMTA0YzJiZDE1ZmFjMDlmZWQ3OTQ2OWRmYTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlbW92ZU5vZGVDb21tYW5kLmNwcApAQCAtMzQsMTIgKzM0LDExIEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotUmVtb3ZlTm9kZUNvbW1hbmQ6OlJlbW92ZU5vZGVDb21tYW5kKFBhc3NS
ZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hv
dWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCi0gICAgOiBTaW1wbGVFZGl0Q29tbWFu
ZChub2RlLT5kb2N1bWVudCgpKQorUmVtb3ZlTm9kZUNvbW1hbmQ6OlJlbW92ZU5vZGVDb21tYW5k
KE5vZGUmIG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIDogU2ltcGxlRWRpdENvbW1hbmQobm9k
ZS5kb2N1bWVudCgpKQogICAgICwgbV9ub2RlKG5vZGUpCiAgICAgLCBtX3Nob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlKHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
KQogewotICAgIEFTU0VSVChtX25vZGUpOwogICAgIEFTU0VSVChtX25vZGUtPnBhcmVudE5vZGUo
KSk7CiB9CiAKQEAgLTY0LDcgKzYzLDcgQEAgdm9pZCBSZW1vdmVOb2RlQ29tbWFuZDo6ZG9VbmFw
cGx5KCkKICAgICBpZiAoIXBhcmVudCB8fCAhcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxlKCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG1fbm9kZS5nZXQoKSwg
cmVmQ2hpbGQuZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOworICAgIHBhcmVudC0+aW5zZXJ0QmVm
b3JlKG1fbm9kZS5jb3B5UmVmKCksIHJlZkNoaWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsK
IH0KIAogI2lmbmRlZiBOREVCVUcKQEAgLTcyLDcgKzcxLDcgQEAgdm9pZCBSZW1vdmVOb2RlQ29t
bWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogewogICAgIGFk
ZE5vZGVBbmREZXNjZW5kYW50cyhtX3BhcmVudC5nZXQoKSwgbm9kZXMpOwogICAgIGFkZE5vZGVB
bmREZXNjZW5kYW50cyhtX3JlZkNoaWxkLmdldCgpLCBub2Rlcyk7Ci0gICAgYWRkTm9kZUFuZERl
c2NlbmRhbnRzKG1fbm9kZS5nZXQoKSwgbm9kZXMpOworICAgIGFkZE5vZGVBbmREZXNjZW5kYW50
cyhtX25vZGUucHRyKCksIG5vZGVzKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlbW92ZU5vZGVDb21tYW5kLmgKaW5kZXggMTgxZTk4NWQ3ZjMwY2Q0NDk2NjRlNmZmOGNj
YTk0MmYyNmY2Y2Y2ZS4uMDEzNTE3ZmY3ZGYzZGFlZTgwZjRkNmYxYjEwZDgxODU5YWFkNmM3YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuaApAQCAtMzIsMTMg
KzMyLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVtb3ZlTm9kZUNvbW1hbmQg
OiBwdWJsaWMgU2ltcGxlRWRpdENvbW1hbmQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8UmVt
b3ZlTm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlKQorICAgIHN0YXRpYyBSZWY8UmVtb3ZlTm9kZUNvbW1hbmQ+IGNyZWF0ZShOb2RlJiBub2Rl
LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50
SXNBbHdheXNFZGl0YWJsZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJl
bW92ZU5vZGVDb21tYW5kKG5vZGUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
KSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFJlbW92ZU5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKyAg
ICBSZW1vdmVOb2RlQ29tbWFuZChOb2RlJiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRp
dGFibGUpOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CkBAIC00Nyw3ICs0Nyw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwog
I2VuZGlmCiAKLSAgICBSZWZQdHI8Tm9kZT4gbV9ub2RlOworICAgIFJlZjxOb2RlPiBtX25vZGU7
CiAgICAgUmVmUHRyPENvbnRhaW5lck5vZGU+IG1fcGFyZW50OwogICAgIFJlZlB0cjxOb2RlPiBt
X3JlZkNoaWxkOwogICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIG1fc2hv
dWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwCmluZGV4IDBlMTg5YmRl
ZjY3ZDNmM2RlNzI0NmQ3MWFhYzdkNDA4NzkwN2ZkZmUuLjEwYmVmM2EwOWExY2M0MjFjYjc3ZTlh
Yjc4ZTAwY2Q2ZTIyMjMwYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVw
bGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwCkBAIC00OCwxOSArNDgsMTkgQEAgUmVwbGFj
ZU5vZGVXaXRoU3BhbkNvbW1hbmQ6OlJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kKFBhc3NSZWZQ
dHI8SFRNTEVsZW1lbnQ+IGUKICAgICBBU1NFUlQobV9lbGVtZW50VG9SZXBsYWNlKTsKIH0KIAot
c3RhdGljIHZvaWQgc3dhcEluTm9kZVByZXNlcnZpbmdBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oSFRN
TEVsZW1lbnQqIG5ld05vZGUsIEhUTUxFbGVtZW50KiBub2RlVG9SZXBsYWNlKQorc3RhdGljIHZv
aWQgc3dhcEluTm9kZVByZXNlcnZpbmdBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oSFRNTEVsZW1lbnQm
IG5ld05vZGUsIEhUTUxFbGVtZW50JiBub2RlVG9SZXBsYWNlKQogewotICAgIEFTU0VSVChub2Rl
VG9SZXBsYWNlLT5pbkRvY3VtZW50KCkpOwotICAgIFJlZlB0cjxDb250YWluZXJOb2RlPiBwYXJl
bnROb2RlID0gbm9kZVRvUmVwbGFjZS0+cGFyZW50Tm9kZSgpOworICAgIEFTU0VSVChub2RlVG9S
ZXBsYWNlLmluRG9jdW1lbnQoKSk7CisgICAgUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudE5v
ZGUgPSBub2RlVG9SZXBsYWNlLnBhcmVudE5vZGUoKTsKIAogICAgIC8vIEZJWE1FOiBGaXggdGhp
cyB0byBzZW5kIHRoZSBwcm9wZXIgTXV0YXRpb25SZWNvcmRzIHdoZW4gTXV0YXRpb25PYnNlcnZl
cnMgYXJlIHByZXNlbnQuCi0gICAgbmV3Tm9kZS0+Y2xvbmVEYXRhRnJvbUVsZW1lbnQoKm5vZGVU
b1JlcGxhY2UpOworICAgIG5ld05vZGUuY2xvbmVEYXRhRnJvbUVsZW1lbnQobm9kZVRvUmVwbGFj
ZSk7CiAgICAgTm9kZVZlY3RvciBjaGlsZHJlbjsKLSAgICBnZXRDaGlsZE5vZGVzKCpub2RlVG9S
ZXBsYWNlLCBjaGlsZHJlbik7CisgICAgZ2V0Q2hpbGROb2Rlcyhub2RlVG9SZXBsYWNlLCBjaGls
ZHJlbik7CiAgICAgZm9yIChhdXRvJiBjaGlsZCA6IGNoaWxkcmVuKQotICAgICAgICBuZXdOb2Rl
LT5hcHBlbmRDaGlsZChjaGlsZC5wdHIoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAg
IG5ld05vZGUuYXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNoaWxkKSwgQVNTRVJUX05PX0VYQ0VQVElP
Tik7CiAKLSAgICBwYXJlbnROb2RlLT5pbnNlcnRCZWZvcmUobmV3Tm9kZSwgbm9kZVRvUmVwbGFj
ZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgcGFyZW50Tm9kZS0+aW5zZXJ0QmVmb3JlKG5l
d05vZGUsICZub2RlVG9SZXBsYWNlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICBwYXJlbnRO
b2RlLT5yZW1vdmVDaGlsZChub2RlVG9SZXBsYWNlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIH0K
IApAQCAtNzAsMTQgKzcwLDE0IEBAIHZvaWQgUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQ6OmRv
QXBwbHkoKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKCFtX3NwYW5FbGVtZW50KQogICAgICAg
ICBtX3NwYW5FbGVtZW50ID0gY3JlYXRlSFRNTEVsZW1lbnQobV9lbGVtZW50VG9SZXBsYWNlLT5k
b2N1bWVudCgpLCBzcGFuVGFnKTsKLSAgICBzd2FwSW5Ob2RlUHJlc2VydmluZ0F0dHJpYnV0ZXNB
bmRDaGlsZHJlbihtX3NwYW5FbGVtZW50LmdldCgpLCBtX2VsZW1lbnRUb1JlcGxhY2UuZ2V0KCkp
OworICAgIHN3YXBJbk5vZGVQcmVzZXJ2aW5nQXR0cmlidXRlc0FuZENoaWxkcmVuKCptX3NwYW5F
bGVtZW50LCAqbV9lbGVtZW50VG9SZXBsYWNlKTsKIH0KIAogdm9pZCBSZXBsYWNlTm9kZVdpdGhT
cGFuQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIHsKICAgICBpZiAoIW1fc3BhbkVsZW1lbnQtPmluRG9j
dW1lbnQoKSkKICAgICAgICAgcmV0dXJuOwotICAgIHN3YXBJbk5vZGVQcmVzZXJ2aW5nQXR0cmli
dXRlc0FuZENoaWxkcmVuKG1fZWxlbWVudFRvUmVwbGFjZS5nZXQoKSwgbV9zcGFuRWxlbWVudC5n
ZXQoKSk7CisgICAgc3dhcEluTm9kZVByZXNlcnZpbmdBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oKm1f
ZWxlbWVudFRvUmVwbGFjZSwgKm1fc3BhbkVsZW1lbnQpOwogfQogCiAjaWZuZGVmIE5ERUJVRwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFu
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNw
cAppbmRleCBlZWUyMjBjODZmOThhNWU3ZDI4OTljNDMzZmE5MWYwMDAwNTQ2YmUzLi4wOGM2Mjc3
ZGVmYzM0ZmEyMjM0YzJlNDYyZjIzNjQ3ZDZiYzk5YTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtMjM4LDcgKzIzOCw3
IEBAIHZvaWQgUmVwbGFjZW1lbnRGcmFnbWVudDo6cmVtb3ZlTm9kZShQYXNzUmVmUHRyPE5vZGU+
IG5vZGUpCiAgICAgaWYgKCFwYXJlbnQpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBwYXJl
bnQtPnJlbW92ZUNoaWxkKG5vZGUuZ2V0KCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIHBh
cmVudC0+cmVtb3ZlQ2hpbGQoKm5vZGUsIEFTU0VSVF9OT19FWENFUFRJT04pOwogfQogCiB2b2lk
IFJlcGxhY2VtZW50RnJhZ21lbnQ6Omluc2VydE5vZGVCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBu
b2RlLCBOb2RlKiByZWZOb2RlKQpAQCAtMjUwLDE0ICsyNTAsMTQgQEAgdm9pZCBSZXBsYWNlbWVu
dEZyYWdtZW50OjppbnNlcnROb2RlQmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgTm9kZSog
cmVmTm9kZSkKICAgICBpZiAoIXBhcmVudCkKICAgICAgICAgcmV0dXJuOwogICAgICAgICAKLSAg
ICBwYXJlbnQtPmluc2VydEJlZm9yZShub2RlLCByZWZOb2RlLCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKKyAgICBwYXJlbnQtPmluc2VydEJlZm9yZSgqbm9kZSwgcmVmTm9kZSwgQVNTRVJUX05PX0VY
Q0VQVElPTik7CiB9CiAKIFBhc3NSZWZQdHI8U3R5bGVkRWxlbWVudD4gUmVwbGFjZW1lbnRGcmFn
bWVudDo6aW5zZXJ0RnJhZ21lbnRGb3JUZXN0UmVuZGVyaW5nKE5vZGUqIHJvb3RFZGl0YWJsZUVs
ZW1lbnQpCiB7CiAgICAgUmVmUHRyPFN0eWxlZEVsZW1lbnQ+IGhvbGRlciA9IGNyZWF0ZURlZmF1
bHRQYXJhZ3JhcGhFbGVtZW50KGRvY3VtZW50KCkpOwogCi0gICAgaG9sZGVyLT5hcHBlbmRDaGls
ZChtX2ZyYWdtZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBob2xkZXItPmFwcGVuZENo
aWxkKCptX2ZyYWdtZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICByb290RWRpdGFibGVF
bGVtZW50LT5hcHBlbmRDaGlsZChob2xkZXIuZ2V0KCksIEFTU0VSVF9OT19FWENFUFRJT04pOwog
ICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAK
QEAgLTI3MCw4ICsyNzAsOCBAQCB2b2lkIFJlcGxhY2VtZW50RnJhZ21lbnQ6OnJlc3RvcmVBbmRS
ZW1vdmVUZXN0UmVuZGVyaW5nTm9kZXNUb0ZyYWdtZW50KFN0eWxlZEVsZQogICAgICAgICByZXR1
cm47CiAgICAgCiAgICAgd2hpbGUgKFJlZlB0cjxOb2RlPiBub2RlID0gaG9sZGVyLT5maXJzdENo
aWxkKCkpIHsKLSAgICAgICAgaG9sZGVyLT5yZW1vdmVDaGlsZChub2RlLmdldCgpLCBBU1NFUlRf
Tk9fRVhDRVBUSU9OKTsKLSAgICAgICAgbV9mcmFnbWVudC0+YXBwZW5kQ2hpbGQobm9kZS5nZXQo
KSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAgIGhvbGRlci0+cmVtb3ZlQ2hpbGQoKm5v
ZGUsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAgICBtX2ZyYWdtZW50LT5hcHBlbmRDaGls
ZCgqbm9kZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgfQogCiAgICAgcmVtb3ZlTm9kZSho
b2xkZXIpOwpAQCAtMTQ1NCw3ICsxNDU0LDcgQEAgTm9kZSogUmVwbGFjZVNlbGVjdGlvbkNvbW1h
bmQ6Omluc2VydEFzTGlzdEl0ZW1zKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IHBycExpc3QKICAg
ICB9CiAKICAgICB3aGlsZSAoUmVmUHRyPE5vZGU+IGxpc3RJdGVtID0gbGlzdEVsZW1lbnQtPmZp
cnN0Q2hpbGQoKSkgewotICAgICAgICBsaXN0RWxlbWVudC0+cmVtb3ZlQ2hpbGQobGlzdEl0ZW0u
Z2V0KCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAgICBsaXN0RWxlbWVudC0+cmVtb3Zl
Q2hpbGQoKmxpc3RJdGVtLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICAgICAgaWYgKGlzU3Rh
cnQgfHwgaXNNaWRkbGUpIHsKICAgICAgICAgICAgIGluc2VydE5vZGVCZWZvcmUobGlzdEl0ZW0s
IGxhc3ROb2RlKTsKICAgICAgICAgICAgIGluc2VydGVkTm9kZXMucmVzcG9uZFRvTm9kZUluc2Vy
dGlvbihsaXN0SXRlbS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1NwbGl0RWxlbWVudENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGxpdEVs
ZW1lbnRDb21tYW5kLmNwcAppbmRleCAwOWJlYjg1MTkzMWVlYWI2NTFkMjE3MWU0N2Q4NzMyNDU1
ZDFmMTA2Li4zNWQ4MjFiMmMxNmEyYmViMjc3MGE0ODE2ZjdjOGNjODU5MGQwNTNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0RWxlbWVudENvbW1hbmQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BsaXRFbGVtZW50Q29tbWFuZC5jcHAKQEAgLTQ3LDE2
ICs0NywxNiBAQCB2b2lkIFNwbGl0RWxlbWVudENvbW1hbmQ6OmV4ZWN1dGVBcHBseSgpCiAgICAg
aWYgKG1fYXRDaGlsZC0+cGFyZW50Tm9kZSgpICE9IG1fZWxlbWVudDIpCiAgICAgICAgIHJldHVy
bjsKICAgICAKLSAgICBWZWN0b3I8UmVmUHRyPE5vZGU+PiBjaGlsZHJlbjsKKyAgICBWZWN0b3I8
UmVmPE5vZGU+PiBjaGlsZHJlbjsKICAgICBmb3IgKE5vZGUqIG5vZGUgPSBtX2VsZW1lbnQyLT5m
aXJzdENoaWxkKCk7IG5vZGUgIT0gbV9hdENoaWxkOyBub2RlID0gbm9kZS0+bmV4dFNpYmxpbmco
KSkKLSAgICAgICAgY2hpbGRyZW4uYXBwZW5kKG5vZGUpOworICAgICAgICBjaGlsZHJlbi5hcHBl
bmQoKm5vZGUpOwogICAgIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIAogICAgIENv
bnRhaW5lck5vZGUqIHBhcmVudCA9IG1fZWxlbWVudDItPnBhcmVudE5vZGUoKTsKICAgICBpZiAo
IXBhcmVudCB8fCAhcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxlKCkpCiAgICAgICAgIHJldHVybjsK
LSAgICBwYXJlbnQtPmluc2VydEJlZm9yZShtX2VsZW1lbnQxLmdldCgpLCBtX2VsZW1lbnQyLmdl
dCgpLCBlYyk7CisgICAgcGFyZW50LT5pbnNlcnRCZWZvcmUoKm1fZWxlbWVudDEsIG1fZWxlbWVu
dDIuZ2V0KCksIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybjsKIApAQCAtNjUsNyAr
NjUsNyBAQCB2b2lkIFNwbGl0RWxlbWVudENvbW1hbmQ6OmV4ZWN1dGVBcHBseSgpCiAKICAgICBz
aXplX3Qgc2l6ZSA9IGNoaWxkcmVuLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IHNpemU7ICsraSkKLSAgICAgICAgbV9lbGVtZW50MS0+YXBwZW5kQ2hpbGQoY2hpbGRyZW5baV0s
IGVjKTsKKyAgICAgICAgbV9lbGVtZW50MS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNoaWxkcmVu
W2ldKSwgZWMpOwogfQogICAgIAogdm9pZCBTcGxpdEVsZW1lbnRDb21tYW5kOjpkb0FwcGx5KCkK
QEAgLTgwLDE1ICs4MCwxNSBAQCB2b2lkIFNwbGl0RWxlbWVudENvbW1hbmQ6OmRvVW5hcHBseSgp
CiAgICAgaWYgKCFtX2VsZW1lbnQxIHx8ICFtX2VsZW1lbnQxLT5oYXNFZGl0YWJsZVN0eWxlKCkg
fHwgIW1fZWxlbWVudDItPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgVmVjdG9yPFJlZlB0cjxOb2RlPj4gY2hpbGRyZW47CisgICAgVmVjdG9yPFJlZjxOb2RlPj4g
Y2hpbGRyZW47CiAgICAgZm9yIChOb2RlKiBub2RlID0gbV9lbGVtZW50MS0+Zmlyc3RDaGlsZCgp
OyBub2RlOyBub2RlID0gbm9kZS0+bmV4dFNpYmxpbmcoKSkKLSAgICAgICAgY2hpbGRyZW4uYXBw
ZW5kKG5vZGUpOworICAgICAgICBjaGlsZHJlbi5hcHBlbmQoKm5vZGUpOwogCiAgICAgUmVmUHRy
PE5vZGU+IHJlZkNoaWxkID0gbV9lbGVtZW50Mi0+Zmlyc3RDaGlsZCgpOwogCiAgICAgc2l6ZV90
IHNpemUgPSBjaGlsZHJlbi5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXpl
OyArK2kpCi0gICAgICAgIG1fZWxlbWVudDItPmluc2VydEJlZm9yZShjaGlsZHJlbltpXS5nZXQo
KSwgcmVmQ2hpbGQuZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOworICAgICAgICBtX2VsZW1lbnQy
LT5pbnNlcnRCZWZvcmUoV1RGOjptb3ZlKGNoaWxkcmVuW2ldKSwgcmVmQ2hpbGQuZ2V0KCksIElH
Tk9SRV9FWENFUFRJT04pOwogCiAgICAgLy8gUmVjb3ZlciB0aGUgaWQgYXR0cmlidXRlIG9mIHRo
ZSBvcmlnaW5hbCBlbGVtZW50LgogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgaWQgPSBtX2VsZW1l
bnQxLT5nZXRJZEF0dHJpYnV0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9TcGxpdFRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0
VGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCAxN2E4MTdmOWFjMjZkZTk5NGQ0MThkNGQ2NDlhNmI4
ZjZmOGM0ZjBiLi42OTk5MTM5OTVkZmZlM2EwMWUzZTAyNWYwZDExMGI4YjZiNTBkNjBjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0VGV4dE5vZGVDb21tYW5kLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0VGV4dE5vZGVDb21tYW5kLmNwcApAQCAt
OTUsNyArOTUsNyBAQCB2b2lkIFNwbGl0VGV4dE5vZGVDb21tYW5kOjpkb1JlYXBwbHkoKQogdm9p
ZCBTcGxpdFRleHROb2RlQ29tbWFuZDo6aW5zZXJ0VGV4dDFBbmRUcmltVGV4dDIoKQogewogICAg
IEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIG1fdGV4dDItPnBhcmVudE5vZGUoKS0+aW5zZXJ0
QmVmb3JlKG1fdGV4dDEuZ2V0KCksIG1fdGV4dDIuZ2V0KCksIGVjKTsKKyAgICBtX3RleHQyLT5w
YXJlbnROb2RlKCktPmluc2VydEJlZm9yZSgqbV90ZXh0MSwgbV90ZXh0Mi5nZXQoKSwgZWMpOwog
ICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuOwogICAgIG1fdGV4dDItPmRlbGV0ZURhdGEoMCwg
bV9vZmZzZXQsIGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvV3JhcENv
bnRlbnRzSW5EdW1teVNwYW5Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvV3Jh
cENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kLmNwcAppbmRleCA1NjQ2ZjM0MTZjODVmMmU2MDMw
ZjQ3NGQ0MzBiZjhmNzQyNWU3ZmQ2Li5mODBiNzczN2Y4YWQ5NmUzZTc4ZjE0NTliZjU3ZTJmMzUx
OWViOWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1dyYXBDb250ZW50c0lu
RHVtbXlTcGFuQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9XcmFwQ29u
dGVudHNJbkR1bW15U3BhbkNvbW1hbmQuY3BwCkBAIC00MCwxNSArNDAsMTUgQEAgV3JhcENvbnRl
bnRzSW5EdW1teVNwYW5Db21tYW5kOjpXcmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1hbmQoUGFz
c1JlZlB0cjxFbGVtZW4KIAogdm9pZCBXcmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1hbmQ6OmV4
ZWN1dGVBcHBseSgpCiB7Ci0gICAgVmVjdG9yPFJlZlB0cjxOb2RlPj4gY2hpbGRyZW47CisgICAg
VmVjdG9yPFJlZjxOb2RlPj4gY2hpbGRyZW47CiAgICAgZm9yIChOb2RlKiBjaGlsZCA9IG1fZWxl
bWVudC0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkK
LSAgICAgICAgY2hpbGRyZW4uYXBwZW5kKGNoaWxkKTsKKyAgICAgICAgY2hpbGRyZW4uYXBwZW5k
KCpjaGlsZCk7CiAKICAgICBzaXplX3Qgc2l6ZSA9IGNoaWxkcmVuLnNpemUoKTsKICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgbV9kdW1teVNwYW4tPmFwcGVu
ZENoaWxkKGNoaWxkcmVuW2ldLnJlbGVhc2UoKSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgICAg
IG1fZHVtbXlTcGFuLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoY2hpbGRyZW5baV0pLCBJR05PUkVf
RVhDRVBUSU9OKTsKIAotICAgIG1fZWxlbWVudC0+YXBwZW5kQ2hpbGQobV9kdW1teVNwYW4uZ2V0
KCksIElHTk9SRV9FWENFUFRJT04pOworICAgIG1fZWxlbWVudC0+YXBwZW5kQ2hpbGQoKm1fZHVt
bXlTcGFuLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KIAogdm9pZCBXcmFwQ29udGVudHNJbkR1bW15
U3BhbkNvbW1hbmQ6OmRvQXBwbHkoKQpAQCAtNjUsMTMgKzY1LDEzIEBAIHZvaWQgV3JhcENvbnRl
bnRzSW5EdW1teVNwYW5Db21tYW5kOjpkb1VuYXBwbHkoKQogICAgIGlmICghbV9kdW1teVNwYW4g
fHwgIW1fZWxlbWVudC0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBWZWN0b3I8UmVmUHRyPE5vZGU+PiBjaGlsZHJlbjsKKyAgICBWZWN0b3I8UmVmPE5vZGU+PiBj
aGlsZHJlbjsKICAgICBmb3IgKE5vZGUqIGNoaWxkID0gbV9kdW1teVNwYW4tPmZpcnN0Q2hpbGQo
KTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCi0gICAgICAgIGNoaWxkcmVu
LmFwcGVuZChjaGlsZCk7CisgICAgICAgIGNoaWxkcmVuLmFwcGVuZCgqY2hpbGQpOwogCiAgICAg
c2l6ZV90IHNpemUgPSBjaGlsZHJlbi5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBzaXplOyArK2kpCi0gICAgICAgIG1fZWxlbWVudC0+YXBwZW5kQ2hpbGQoY2hpbGRyZW5baV0u
cmVsZWFzZSgpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgbV9lbGVtZW50LT5hcHBlbmRD
aGlsZChXVEY6Om1vdmUoY2hpbGRyZW5baV0pLCBJR05PUkVfRVhDRVBUSU9OKTsKIAogICAgIG1f
ZHVtbXlTcGFuLT5yZW1vdmUoSUdOT1JFX0VYQ0VQVElPTik7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0VkaXRvckNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9jb2NvYS9FZGl0b3JDb2NvYS5tbQppbmRleCBjZTRiY2JjYTRiZjMyYTlkNTMzN2Jl
YjkyZGYxZjdlMGZhOWM5OGYzLi45NWU2NmRiMGRlYTc4Mjk0NmVkNjAwNjEzZTZkN2M5MWM0ZDE2
ZDE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0VkaXRvckNvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRWRpdG9yQ29jb2EubW0KQEAg
LTU2LDE2ICs1NiwxNiBAQCBSZW5kZXJTdHlsZSogRWRpdG9yOjpzdHlsZUZvclNlbGVjdGlvblN0
YXJ0KEZyYW1lKiBmcmFtZSwgTm9kZSAqJm5vZGVUb1JlbW92ZSkKICAgICBpZiAoIXR5cGluZ1N0
eWxlIHx8ICF0eXBpbmdTdHlsZS0+c3R5bGUoKSkKICAgICAgICAgcmV0dXJuICZwb3NpdGlvbi5k
ZXByZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigpLT5zdHlsZSgpOwogCi0gICAgUmVmUHRyPEVsZW1l
bnQ+IHN0eWxlRWxlbWVudCA9IGZyYW1lLT5kb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KEhUTUxO
YW1lczo6c3BhblRhZywgZmFsc2UpOworICAgIFJlZjxFbGVtZW50PiBzdHlsZUVsZW1lbnQgPSBm
cmFtZS0+ZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChIVE1MTmFtZXM6OnNwYW5UYWcsIGZhbHNl
KTsKIAogICAgIFN0cmluZyBzdHlsZVRleHQgPSB0eXBpbmdTdHlsZS0+c3R5bGUoKS0+YXNUZXh0
KCkgKyAiIGRpc3BsYXk6IGlubGluZSI7CiAgICAgc3R5bGVFbGVtZW50LT5zZXRBdHRyaWJ1dGUo
SFRNTE5hbWVzOjpzdHlsZUF0dHIsIHN0eWxlVGV4dCk7CiAKICAgICBzdHlsZUVsZW1lbnQtPmFw
cGVuZENoaWxkKGZyYW1lLT5kb2N1bWVudCgpLT5jcmVhdGVFZGl0aW5nVGV4dE5vZGUoIiIpLCBB
U1NFUlRfTk9fRVhDRVBUSU9OKTsKIAotICAgIHBvc2l0aW9uLmRlcHJlY2F0ZWROb2RlKCktPnBh
cmVudE5vZGUoKS0+YXBwZW5kQ2hpbGQoc3R5bGVFbGVtZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKKyAgICBwb3NpdGlvbi5kZXByZWNhdGVkTm9kZSgpLT5wYXJlbnROb2RlKCktPmFwcGVuZENo
aWxkKHN0eWxlRWxlbWVudC5jb3B5UmVmKCksIEFTU0VSVF9OT19FWENFUFRJT04pOwogCi0gICAg
bm9kZVRvUmVtb3ZlID0gc3R5bGVFbGVtZW50LmdldCgpOworICAgIG5vZGVUb1JlbW92ZSA9IHN0
eWxlRWxlbWVudC5wdHIoKTsKIAogICAgIGZyYW1lLT5kb2N1bWVudCgpLT51cGRhdGVTdHlsZUlm
TmVlZGVkKCk7CiAgICAgcmV0dXJuIHN0eWxlRWxlbWVudC0+cmVuZGVyZXIoKSA/ICZzdHlsZUVs
ZW1lbnQtPnJlbmRlcmVyKCktPnN0eWxlKCkgOiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L2h0bWxlZGl0aW5nLmNwcAppbmRleCA4ZjA0ZDA4MTM1MmI5NjMyNTZmYmFkNzU3ZmUxMzVlNmRj
ZDNkNzUwLi43Y2FhMTRmNGJlMzdjNjEzNDQ5Yzk0YTZhZGRiYzU5ZWI1ZTZiZTUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcApAQCAtODk5LDIwICs4OTksMTggQEAgYm9v
bCBpc0VtcHR5VGFibGVDZWxsKGNvbnN0IE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuICFjaGlsZFJl
bmRlcmVyLT5uZXh0U2libGluZygpOwogfQogCi1QYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVh
dGVEZWZhdWx0UGFyYWdyYXBoRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8SFRNTEVs
ZW1lbnQ+IGNyZWF0ZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkK
IHsKICAgICBzd2l0Y2ggKGRvY3VtZW50LmZyYW1lKCktPmVkaXRvcigpLmRlZmF1bHRQYXJhZ3Jh
cGhTZXBhcmF0b3IoKSkgewogICAgIGNhc2UgRWRpdG9yUGFyYWdyYXBoU2VwYXJhdG9ySXNEaXY6
CiAgICAgICAgIHJldHVybiBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBj
YXNlIEVkaXRvclBhcmFncmFwaFNlcGFyYXRvcklzUDoKLSAgICAgICAgcmV0dXJuIEhUTUxQYXJh
Z3JhcGhFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgICAgICBicmVhazsKICAgICB9Ci0K
LSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gSFRN
TFBhcmFncmFwaEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiB9CiAKLVBhc3NSZWZQdHI8SFRN
TEVsZW1lbnQ+IGNyZWF0ZUJyZWFrRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8SFRN
TEVsZW1lbnQ+IGNyZWF0ZUJyZWFrRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAg
cmV0dXJuIEhUTUxCUkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiB9CkBAIC05NzEsNyArOTY5
LDcgQEAgUG9zaXRpb24gcG9zaXRpb25PdXRzaWRlVGFiU3Bhbihjb25zdCBQb3NpdGlvbiYgcG9z
KQogICAgIHJldHVybiBwb3NpdGlvbkluUGFyZW50QmVmb3JlTm9kZShub2RlKTsKIH0KIAotUGFz
c1JlZlB0cjxFbGVtZW50PiBjcmVhdGVUYWJTcGFuRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQs
IFBhc3NSZWZQdHI8Tm9kZT4gcHJwVGFiVGV4dE5vZGUpCitSZWY8RWxlbWVudD4gY3JlYXRlVGFi
U3BhbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBQYXNzUmVmUHRyPE5vZGU+IHBycFRhYlRl
eHROb2RlKQogewogICAgIFJlZlB0cjxOb2RlPiB0YWJUZXh0Tm9kZSA9IHBycFRhYlRleHROb2Rl
OwogCkBAIC05ODQsMTcgKzk4MiwxNyBAQCBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZVRhYlNw
YW5FbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZlB0cjxOb2RlPiBwcgogICAgIGlm
ICghdGFiVGV4dE5vZGUpCiAgICAgICAgIHRhYlRleHROb2RlID0gZG9jdW1lbnQuY3JlYXRlRWRp
dGluZ1RleHROb2RlKCJcdCIpOwogCi0gICAgc3BhbkVsZW1lbnQtPmFwcGVuZENoaWxkKHRhYlRl
eHROb2RlLnJlbGVhc2UoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgc3BhbkVsZW1lbnQt
PmFwcGVuZENoaWxkKHRhYlRleHROb2RlLnJlbGVhc2VOb25OdWxsKCksIEFTU0VSVF9OT19FWENF
UFRJT04pOwogCi0gICAgcmV0dXJuIHNwYW5FbGVtZW50LnJlbGVhc2UoKTsKKyAgICByZXR1cm4g
c3BhbkVsZW1lbnQucmVsZWFzZU5vbk51bGwoKTsKIH0KIAotUGFzc1JlZlB0cjxFbGVtZW50PiBj
cmVhdGVUYWJTcGFuRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGFi
VGV4dCkKK1JlZjxFbGVtZW50PiBjcmVhdGVUYWJTcGFuRWxlbWVudChEb2N1bWVudCYgZG9jdW1l
bnQsIGNvbnN0IFN0cmluZyYgdGFiVGV4dCkKIHsKICAgICByZXR1cm4gY3JlYXRlVGFiU3BhbkVs
ZW1lbnQoZG9jdW1lbnQsIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRhYlRleHQpKTsKIH0KIAot
UGFzc1JlZlB0cjxFbGVtZW50PiBjcmVhdGVUYWJTcGFuRWxlbWVudChEb2N1bWVudCYgZG9jdW1l
bnQpCitSZWY8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50
KQogewogICAgIHJldHVybiBjcmVhdGVUYWJTcGFuRWxlbWVudChkb2N1bWVudCwgUGFzc1JlZlB0
cjxOb2RlPigpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVk
aXRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuaAppbmRleCA3ODhh
ZjNmY2ZiOTVlN2QyZDIyODc2MmE1MTU1NjFlZjA4OTNkMGVlLi5mNjlkOWQ4ZWM3NTE3ODExYjll
ZDRmM2M3MDc3NDUwYTE1ODExNTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L2h0bWxlZGl0aW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5o
CkBAIC0yMDYsOCArMjA2LDggQEAgVmlzaWJsZVBvc2l0aW9uIHZpc2libGVQb3NpdGlvbkZvcklu
ZGV4VXNpbmdDaGFyYWN0ZXJJdGVyYXRvcihOb2RlKiwgaW50IGluZGV4KTsKICAgICAKIC8vIEZ1
bmN0aW9ucyByZXR1cm5pbmcgSFRNTEVsZW1lbnQKICAgICAKLVdFQkNPUkVfRVhQT1JUIFBhc3NS
ZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50KERvY3VtZW50
Jik7Ci1QYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVCcmVha0VsZW1lbnQoRG9jdW1lbnQm
KTsKK1dFQkNPUkVfRVhQT1JUIFJlZjxIVE1MRWxlbWVudD4gY3JlYXRlRGVmYXVsdFBhcmFncmFw
aEVsZW1lbnQoRG9jdW1lbnQmKTsKK1JlZjxIVE1MRWxlbWVudD4gY3JlYXRlQnJlYWtFbGVtZW50
KERvY3VtZW50Jik7CiBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVPcmRlcmVkTGlzdEVs
ZW1lbnQoRG9jdW1lbnQmKTsKIFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZVVub3JkZXJl
ZExpc3RFbGVtZW50KERvY3VtZW50Jik7CiBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVM
aXN0SXRlbUVsZW1lbnQoRG9jdW1lbnQmKTsKQEAgLTIyMiwxMCArMjIyLDEwIEBAIE5vZGUqIGVu
Y2xvc2luZ0xpc3RDaGlsZChOb2RlKik7CiAvLyBFbGVtZW50CiAvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAKLVBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmKTsK
LVBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmLCBQYXNz
UmVmUHRyPE5vZGU+IHRhYlRleHROb2RlKTsKLVBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlVGFi
U3BhbkVsZW1lbnQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRhYlRleHQpOwotUGFzc1JlZlB0
cjxFbGVtZW50PiBjcmVhdGVCbG9ja1BsYWNlaG9sZGVyRWxlbWVudChEb2N1bWVudCYpOworUmVm
PEVsZW1lbnQ+IGNyZWF0ZVRhYlNwYW5FbGVtZW50KERvY3VtZW50Jik7CitSZWY8RWxlbWVudD4g
Y3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmLCBQYXNzUmVmUHRyPE5vZGU+IHRhYlRleHRO
b2RlKTsKK1JlZjxFbGVtZW50PiBjcmVhdGVUYWJTcGFuRWxlbWVudChEb2N1bWVudCYsIGNvbnN0
IFN0cmluZyYgdGFiVGV4dCk7CitSZWY8RWxlbWVudD4gY3JlYXRlQmxvY2tQbGFjZWhvbGRlckVs
ZW1lbnQoRG9jdW1lbnQmKTsKIAogRWxlbWVudCogZWRpdGFibGVSb290Rm9yUG9zaXRpb24oY29u
c3QgUG9zaXRpb24mLCBFZGl0YWJsZVR5cGUgPSBDb250ZW50SXNFZGl0YWJsZSk7CiBFbGVtZW50
KiB1bnNwbGl0dGFibGVFbGVtZW50Rm9yUG9zaXRpb24oY29uc3QgUG9zaXRpb24mKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbQppbmRleCAyMjZlYWQ1YTQzYmY1OTgyZDli
MWJhODE0OWEyMDhlMTJhZTcwMTFmLi44MTUxOTg1ZjBiOTFlNzZmMDAzMTU2YjFhNTIzNjJmNjI3
MGFmMDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1Mu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tCkBAIC0zOTcs
NyArMzk3LDcgQEAgdm9pZCBFZGl0b3I6OldlYkNvbnRlbnRSZWFkZXI6OmFkZEZyYWdtZW50KFBh
c3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gbmV3RnJhZ20KICAgICBpZiAoZnJhZ21lbnQpIHsK
ICAgICAgICAgaWYgKG5ld0ZyYWdtZW50ICYmIG5ld0ZyYWdtZW50LT5maXJzdENoaWxkKCkpIHsK
ICAgICAgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWM7Ci0gICAgICAgICAgICBmcmFnbWVudC0+YXBw
ZW5kQ2hpbGQobmV3RnJhZ21lbnQtPmZpcnN0Q2hpbGQoKSwgZWMpOworICAgICAgICAgICAgZnJh
Z21lbnQtPmFwcGVuZENoaWxkKCpuZXdGcmFnbWVudC0+Zmlyc3RDaGlsZCgpLCBlYyk7CiAgICAg
ICAgIH0KICAgICB9IGVsc2UKICAgICAgICAgZnJhZ21lbnQgPSBuZXdGcmFnbWVudDsKQEAgLTQ5
NCwxMiArNDk0LDEyIEBAIGJvb2wgRWRpdG9yOjpXZWJDb250ZW50UmVhZGVyOjpyZWFkVVJMKGNv
bnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmKQogICAgICAgICAgICAgcmV0dXJuIGZyYWdtZW50
OwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKLSAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IGFuY2hv
ciA9IGZyYW1lLmRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoSFRNTE5hbWVzOjphVGFnLCBmYWxz
ZSk7CisgICAgICAgIFJlZjxFbGVtZW50PiBhbmNob3IgPSBmcmFtZS5kb2N1bWVudCgpLT5jcmVh
dGVFbGVtZW50KEhUTUxOYW1lczo6YVRhZywgZmFsc2UpOwogICAgICAgICBhbmNob3ItPnNldEF0
dHJpYnV0ZShIVE1MTmFtZXM6OmhyZWZBdHRyLCB1cmwuc3RyaW5nKCkpOwogICAgICAgICBhbmNo
b3ItPmFwcGVuZENoaWxkKGZyYW1lLmRvY3VtZW50KCktPmNyZWF0ZVRleHROb2RlKFtbKE5TVVJM
ICopdXJsIGFic29sdXRlU3RyaW5nXSBwcmVjb21wb3NlZFN0cmluZ1dpdGhDYW5vbmljYWxNYXBw
aW5nXSkpOwogCiAgICAgICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBuZXdGcmFnbWVudCA9
IGZyYW1lLmRvY3VtZW50KCktPmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAgICAgICAgbmV3
RnJhZ21lbnQtPmFwcGVuZENoaWxkKGFuY2hvci5yZWxlYXNlKCkpOworICAgICAgICBuZXdGcmFn
bWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGFuY2hvcikpOwogICAgICAgICBhZGRGcmFnbWVu
dChuZXdGcmFnbWVudCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KQEAgLTU4Myw3ICs1
ODMsNyBAQCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IEVkaXRvcjo6Y3JlYXRlRnJhZ21l
bnRGb3JJbWFnZVJlc291cmNlQW5kQWRkUmVzb3VyYwogICAgIGlmICghcmVzb3VyY2UpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCi0gICAgUmVmUHRyPEVsZW1lbnQ+IGltYWdlRWxlbWVudCA9
IG1fZnJhbWUuZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChIVE1MTmFtZXM6OmltZ1RhZywgZmFs
c2UpOworICAgIFJlZjxFbGVtZW50PiBpbWFnZUVsZW1lbnQgPSBtX2ZyYW1lLmRvY3VtZW50KCkt
PmNyZWF0ZUVsZW1lbnQoSFRNTE5hbWVzOjppbWdUYWcsIGZhbHNlKTsKICAgICAvLyBGSVhNRTog
VGhlIGNvZGUgaW4gY3JlYXRlRnJhZ21lbnRBbmRBZGRSZXNvdXJjZXMgY2FsbHMgc2V0RGVmZXJz
TG9hZGluZyh0cnVlKS4gRG9uJ3Qgd2UgbmVlZCB0aGF0IGhlcmU/CiAgICAgaWYgKERvY3VtZW50
TG9hZGVyKiBsb2FkZXIgPSBtX2ZyYW1lLmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCkpCiAgICAg
ICAgIGxvYWRlci0+YWRkQXJjaGl2ZVJlc291cmNlKHJlc291cmNlLmdldCgpKTsKQEAgLTU5Miw3
ICs1OTIsNyBAQCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IEVkaXRvcjo6Y3JlYXRlRnJh
Z21lbnRGb3JJbWFnZVJlc291cmNlQW5kQWRkUmVzb3VyYwogICAgIGltYWdlRWxlbWVudC0+c2V0
QXR0cmlidXRlKEhUTUxOYW1lczo6c3JjQXR0ciwgW1VSTCBpc0ZpbGVVUkxdID8gW1VSTCBhYnNv
bHV0ZVN0cmluZ10gOiByZXNvdXJjZS0+dXJsKCkpOwogCiAgICAgUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+IGZyYWdtZW50ID0gbV9mcmFtZS5kb2N1bWVudCgpLT5jcmVhdGVEb2N1bWVudEZyYWdt
ZW50KCk7Ci0gICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKGltYWdlRWxlbWVudC5yZWxlYXNlKCkp
OworICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoaW1hZ2VFbGVtZW50KSk7CiAK
ICAgICByZXR1cm4gZnJhZ21lbnQucmVsZWFzZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9t
YWMvRWRpdG9yTWFjLm1tCmluZGV4IDZjZWY0ODk5NTliNDk1ZDA3Njk5MDE1M2JiOTVhMWMyZjA5
ZmFmMDQuLmNkMjUyZGNmZDMxYzNlMDBjMTU3N2RiZjkzMGM4NjgzYjUwZGQwMGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KQEAgLTUyNywxNSArNTI3LDE1IEBAIGJv
b2wgRWRpdG9yOjpXZWJDb250ZW50UmVhZGVyOjpyZWFkRmlsZW5hbWVzKGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBwYXRocykKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7IGkrKykgewog
ICAgICAgICBTdHJpbmcgdGV4dCA9IHBhdGhzW2ldOwogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VM
RU1FTlQpCi0gICAgICAgIFJlZlB0cjxIVE1MQXR0YWNobWVudEVsZW1lbnQ+IGF0dGFjaG1lbnQg
PSBIVE1MQXR0YWNobWVudEVsZW1lbnQ6OmNyZWF0ZShhdHRhY2htZW50VGFnLCBkb2N1bWVudCk7
CisgICAgICAgIFJlZjxIVE1MQXR0YWNobWVudEVsZW1lbnQ+IGF0dGFjaG1lbnQgPSBIVE1MQXR0
YWNobWVudEVsZW1lbnQ6OmNyZWF0ZShhdHRhY2htZW50VGFnLCBkb2N1bWVudCk7CiAgICAgICAg
IGF0dGFjaG1lbnQtPnNldEZpbGUoRmlsZTo6Y3JlYXRlKFtbTlNVUkwgZmlsZVVSTFdpdGhQYXRo
OnRleHRdIHBhdGhdKS5wdHIoKSk7Ci0gICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChhdHRh
Y2htZW50LnJlbGVhc2UoKSk7CisgICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1v
dmUoYXR0YWNobWVudCkpOwogI2Vsc2UKICAgICAgICAgdGV4dCA9IGZyYW1lLmVkaXRvcigpLmNs
aWVudCgpLT51c2VyVmlzaWJsZVN0cmluZyhbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOnRleHRdKTsK
IAotICAgICAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IHBhcmFncmFwaCA9IGNyZWF0ZURlZmF1bHRQ
YXJhZ3JhcGhFbGVtZW50KGRvY3VtZW50KTsKKyAgICAgICAgUmVmPEhUTUxFbGVtZW50PiBwYXJh
Z3JhcGggPSBjcmVhdGVEZWZhdWx0UGFyYWdyYXBoRWxlbWVudChkb2N1bWVudCk7CiAgICAgICAg
IHBhcmFncmFwaC0+YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGV4dCkpOwot
ICAgICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQocGFyYWdyYXBoLnJlbGVhc2UoKSk7CisgICAg
ICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUocGFyYWdyYXBoKSk7CiAjZW5kaWYK
ICAgICB9CiAKQEAgLTU5NCwxMiArNTk0LDEyIEBAIGJvb2wgRWRpdG9yOjpXZWJDb250ZW50UmVh
ZGVyOjpyZWFkVVJMKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlKQogICAgIGlm
ICh1cmwuc3RyaW5nKCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBS
ZWZQdHI8RWxlbWVudD4gYW5jaG9yID0gZnJhbWUuZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChI
VE1MTmFtZXM6OmFUYWcsIGZhbHNlKTsKKyAgICBSZWY8RWxlbWVudD4gYW5jaG9yID0gZnJhbWUu
ZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChIVE1MTmFtZXM6OmFUYWcsIGZhbHNlKTsKICAgICBh
bmNob3ItPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmhyZWZBdHRyLCB1cmwuc3RyaW5nKCkpOwog
ICAgIGFuY2hvci0+YXBwZW5kQ2hpbGQoZnJhbWUuZG9jdW1lbnQoKS0+Y3JlYXRlVGV4dE5vZGUo
W3RpdGxlIHByZWNvbXBvc2VkU3RyaW5nV2l0aENhbm9uaWNhbE1hcHBpbmddKSk7CiAKICAgICBm
cmFnbWVudCA9IGZyYW1lLmRvY3VtZW50KCktPmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAg
ICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoYW5jaG9yLnJlbGVhc2UoKSk7CisgICAgZnJhZ21lbnQt
PmFwcGVuZENoaWxkKFdURjo6bW92ZShhbmNob3IpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApA
QCAtNjM1LDExICs2MzUsMTEgQEAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBFZGl0b3I6
OmNyZWF0ZUZyYWdtZW50Rm9ySW1hZ2VSZXNvdXJjZUFuZEFkZFJlc291cmMKICAgICBpZiAoRG9j
dW1lbnRMb2FkZXIqIGxvYWRlciA9IG1fZnJhbWUubG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKSkK
ICAgICAgICAgbG9hZGVyLT5hZGRBcmNoaXZlUmVzb3VyY2UocmVzb3VyY2UuZ2V0KCkpOwogCi0g
ICAgUmVmUHRyPEVsZW1lbnQ+IGltYWdlRWxlbWVudCA9IGRvY3VtZW50KCkuY3JlYXRlRWxlbWVu
dChIVE1MTmFtZXM6OmltZ1RhZywgZmFsc2UpOworICAgIFJlZjxFbGVtZW50PiBpbWFnZUVsZW1l
bnQgPSBkb2N1bWVudCgpLmNyZWF0ZUVsZW1lbnQoSFRNTE5hbWVzOjppbWdUYWcsIGZhbHNlKTsK
ICAgICBpbWFnZUVsZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OnNyY0F0dHIsIHJlc291
cmNlLT51cmwoKS5zdHJpbmcoKSk7CiAKICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJh
Z21lbnQgPSBkb2N1bWVudCgpLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAgICBmcmFnbWVu
dC0+YXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50LnJlbGVhc2UoKSk7CisgICAgZnJhZ21lbnQtPmFw
cGVuZENoaWxkKFdURjo6bW92ZShpbWFnZUVsZW1lbnQpKTsKIAogICAgIHJldHVybiBmcmFnbWVu
dC5yZWxlYXNlKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1
cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKaW5kZXggMGNhYzhiNDBm
ZDhhM2M2NTE4MDQxNTQ4ZWI2NDlkOTRiNTM2ZDJkMi4uMjA1NGM0ZThkYmZiNjFlMWIzNzUyZDhl
YWFiYzIyYTA4MTMxMGQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJr
dXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcApAQCAtNzA0LDEy
ICs3MDQsMTIgQEAgU3RyaW5nIGNyZWF0ZU1hcmt1cChjb25zdCBOb2RlJiBub2RlLCBFQ2hpbGRy
ZW5Pbmx5IGNoaWxkcmVuT25seSwgVmVjdG9yPE5vZGUqPioKICAgICByZXR1cm4gYWNjdW11bGF0
b3Iuc2VyaWFsaXplTm9kZXMoY29uc3RfY2FzdDxOb2RlJj4obm9kZSksIGNoaWxkcmVuT25seSwg
dGFnTmFtZXNUb1NraXApOwogfQogCi1zdGF0aWMgdm9pZCBmaWxsQ29udGFpbmVyRnJvbVN0cmlu
ZyhDb250YWluZXJOb2RlKiBwYXJhZ3JhcGgsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQorc3RhdGlj
IHZvaWQgZmlsbENvbnRhaW5lckZyb21TdHJpbmcoQ29udGFpbmVyTm9kZSYgcGFyYWdyYXBoLCBj
b25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBwYXJhZ3Jh
cGgtPmRvY3VtZW50KCk7CisgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gcGFyYWdyYXBoLmRvY3Vt
ZW50KCk7CiAKICAgICBpZiAoc3RyaW5nLmlzRW1wdHkoKSkgewotICAgICAgICBwYXJhZ3JhcGgt
PmFwcGVuZENoaWxkKGNyZWF0ZUJsb2NrUGxhY2Vob2xkZXJFbGVtZW50KGRvY3VtZW50KSwgQVNT
RVJUX05PX0VYQ0VQVElPTik7CisgICAgICAgIHBhcmFncmFwaC5hcHBlbmRDaGlsZChjcmVhdGVC
bG9ja1BsYWNlaG9sZGVyRWxlbWVudChkb2N1bWVudCksIEFTU0VSVF9OT19FWENFUFRJT04pOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC03MjYsMTEgKzcyNiwxMSBAQCBzdGF0aWMgdm9p
ZCBmaWxsQ29udGFpbmVyRnJvbVN0cmluZyhDb250YWluZXJOb2RlKiBwYXJhZ3JhcGgsIGNvbnN0
IFN0cmluZyYgc3RyaQogICAgICAgICAvLyBhcHBlbmQgdGhlIG5vbi10YWIgdGV4dHVhbCBwYXJ0
CiAgICAgICAgIGlmICghcy5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIGlmICghdGFiVGV4dC5p
c0VtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICBwYXJhZ3JhcGgtPmFwcGVuZENoaWxkKGNyZWF0
ZVRhYlNwYW5FbGVtZW50KGRvY3VtZW50LCB0YWJUZXh0KSwgQVNTRVJUX05PX0VYQ0VQVElPTik7
CisgICAgICAgICAgICAgICAgcGFyYWdyYXBoLmFwcGVuZENoaWxkKGNyZWF0ZVRhYlNwYW5FbGVt
ZW50KGRvY3VtZW50LCB0YWJUZXh0KSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgICAgICAg
ICAgICAgdGFiVGV4dCA9IGVtcHR5U3RyaW5nKCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBSZWZQdHI8Tm9kZT4gdGV4dE5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHJpbmdX
aXRoUmViYWxhbmNlZFdoaXRlc3BhY2UocywgZmlyc3QsIGkgKyAxID09IG51bUVudHJpZXMpKTsK
LSAgICAgICAgICAgIHBhcmFncmFwaC0+YXBwZW5kQ2hpbGQodGV4dE5vZGUucmVsZWFzZSgpLCBB
U1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgICAgIFJlZjxOb2RlPiB0ZXh0Tm9kZSA9IGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cmluZ1dpdGhSZWJhbGFuY2VkV2hpdGVzcGFjZShzLCBm
aXJzdCwgaSArIDEgPT0gbnVtRW50cmllcykpOworICAgICAgICAgICAgcGFyYWdyYXBoLmFwcGVu
ZENoaWxkKFdURjo6bW92ZSh0ZXh0Tm9kZSksIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgICAg
ICB9CiAKICAgICAgICAgLy8gdGhlcmUgaXMgYSB0YWIgYWZ0ZXIgZXZlcnkgZW50cnksIGV4Y2Vw
dCB0aGUgbGFzdCBlbnRyeQpAQCAtNzM4LDcgKzczOCw3IEBAIHN0YXRpYyB2b2lkIGZpbGxDb250
YWluZXJGcm9tU3RyaW5nKENvbnRhaW5lck5vZGUqIHBhcmFncmFwaCwgY29uc3QgU3RyaW5nJiBz
dHJpCiAgICAgICAgIGlmIChpICsgMSAhPSBudW1FbnRyaWVzKQogICAgICAgICAgICAgdGFiVGV4
dC5hcHBlbmQoJ1x0Jyk7CiAgICAgICAgIGVsc2UgaWYgKCF0YWJUZXh0LmlzRW1wdHkoKSkKLSAg
ICAgICAgICAgIHBhcmFncmFwaC0+YXBwZW5kQ2hpbGQoY3JlYXRlVGFiU3BhbkVsZW1lbnQoZG9j
dW1lbnQsIHRhYlRleHQpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgICAgIHBhcmFn
cmFwaC5hcHBlbmRDaGlsZChjcmVhdGVUYWJTcGFuRWxlbWVudChkb2N1bWVudCwgdGFiVGV4dCks
IEFTU0VSVF9OT19FWENFUFRJT04pOwogCiAgICAgICAgIGZpcnN0ID0gZmFsc2U7CiAgICAgfQpA
QCAtNzc4LDEzICs3NzgsMTMgQEAgc3RhdGljIGJvb2wgY29udGV4dFByZXNlcnZlc05ld2xpbmUo
Y29uc3QgUmFuZ2UmIGNvbnRleHQpCiAgICAgcmV0dXJuIGNvbnRhaW5lci0+cmVuZGVyZXIoKS0+
c3R5bGUoKS5wcmVzZXJ2ZU5ld2xpbmUoKTsKIH0KIAotUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdt
ZW50PiBjcmVhdGVGcmFnbWVudEZyb21UZXh0KFJhbmdlJiBjb250ZXh0LCBjb25zdCBTdHJpbmcm
IHRleHQpCitSZWY8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGcm9tVGV4dChSYW5n
ZSYgY29udGV4dCwgY29uc3QgU3RyaW5nJiB0ZXh0KQogewogICAgIERvY3VtZW50JiBkb2N1bWVu
dCA9IGNvbnRleHQub3duZXJEb2N1bWVudCgpOwotICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50
PiBmcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKKyAgICBSZWY8
RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdt
ZW50KCk7CiAgICAgCiAgICAgaWYgKHRleHQuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gZnJh
Z21lbnQucmVsZWFzZSgpOworICAgICAgICByZXR1cm4gZnJhZ21lbnQ7CiAKICAgICBTdHJpbmcg
c3RyaW5nID0gdGV4dDsKICAgICBzdHJpbmcucmVwbGFjZSgiXHJcbiIsICJcbiIpOwpAQCAtNzkz
LDE3ICs3OTMsMTcgQEAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVu
dEZyb21UZXh0KFJhbmdlJiBjb250ZXh0LCBjb25zdCBTdHJpbmcKICAgICBpZiAoY29udGV4dFBy
ZXNlcnZlc05ld2xpbmUoY29udGV4dCkpIHsKICAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cmluZyksIEFTU0VSVF9OT19FWENFUFRJT04pOwog
ICAgICAgICBpZiAoc3RyaW5nLmVuZHNXaXRoKCdcbicpKSB7Ci0gICAgICAgICAgICBSZWZQdHI8
RWxlbWVudD4gZWxlbWVudCA9IGNyZWF0ZUJyZWFrRWxlbWVudChkb2N1bWVudCk7CisgICAgICAg
ICAgICBSZWY8RWxlbWVudD4gZWxlbWVudCA9IGNyZWF0ZUJyZWFrRWxlbWVudChkb2N1bWVudCk7
CiAgICAgICAgICAgICBlbGVtZW50LT5zZXRBdHRyaWJ1dGUoY2xhc3NBdHRyLCBBcHBsZUludGVy
Y2hhbmdlTmV3bGluZSk7ICAgICAgICAgICAgCi0gICAgICAgICAgICBmcmFnbWVudC0+YXBwZW5k
Q2hpbGQoZWxlbWVudC5yZWxlYXNlKCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAgICAg
ICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShlbGVtZW50KSwgQVNTRVJUX05PX0VY
Q0VQVElPTik7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGZyYWdtZW50LnJlbGVhc2UoKTsK
KyAgICAgICAgcmV0dXJuIGZyYWdtZW50OwogICAgIH0KIAogICAgIC8vIEEgc3RyaW5nIHdpdGgg
bm8gbmV3bGluZXMgZ2V0cyBhZGRlZCBpbmxpbmUsIHJhdGhlciB0aGFuIGJlaW5nIHB1dCBpbnRv
IGEgcGFyYWdyYXBoLgogICAgIGlmIChzdHJpbmcuZmluZCgnXG4nKSA9PSBub3RGb3VuZCkgewot
ICAgICAgICBmaWxsQ29udGFpbmVyRnJvbVN0cmluZyhmcmFnbWVudC5nZXQoKSwgc3RyaW5nKTsK
LSAgICAgICAgcmV0dXJuIGZyYWdtZW50LnJlbGVhc2UoKTsKKyAgICAgICAgZmlsbENvbnRhaW5l
ckZyb21TdHJpbmcoZnJhZ21lbnQsIHN0cmluZyk7CisgICAgICAgIHJldHVybiBmcmFnbWVudDsK
ICAgICB9CiAKICAgICAvLyBCcmVhayBzdHJpbmcgaW50byBwYXJhZ3JhcGhzLiBFeHRyYSBsaW5l
IGJyZWFrcyB0dXJuIGludG8gZW1wdHkgcGFyYWdyYXBocy4KQEAgLTgyOSwxNyArODI5LDE3IEBA
IFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGcm9tVGV4dChSYW5n
ZSYgY29udGV4dCwgY29uc3QgU3RyaW5nCiAgICAgICAgICAgICBlbGVtZW50LT5zZXRBdHRyaWJ1
dGUoY2xhc3NBdHRyLCBBcHBsZUludGVyY2hhbmdlTmV3bGluZSk7CiAgICAgICAgIH0gZWxzZSBp
ZiAodXNlTGluZUJyZWFrKSB7CiAgICAgICAgICAgICBlbGVtZW50ID0gY3JlYXRlQnJlYWtFbGVt
ZW50KGRvY3VtZW50KTsKLSAgICAgICAgICAgIGZpbGxDb250YWluZXJGcm9tU3RyaW5nKGZyYWdt
ZW50LmdldCgpLCBzKTsKKyAgICAgICAgICAgIGZpbGxDb250YWluZXJGcm9tU3RyaW5nKGZyYWdt
ZW50LCBzKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmICh1c2VDbG9uZXNPZkVu
Y2xvc2luZ0Jsb2NrKQogICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBibG9jay0+Y2xvbmVFbGVt
ZW50V2l0aG91dENoaWxkcmVuKGRvY3VtZW50KTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgICAgICBlbGVtZW50ID0gY3JlYXRlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQoZG9jdW1lbnQp
OwotICAgICAgICAgICAgZmlsbENvbnRhaW5lckZyb21TdHJpbmcoZWxlbWVudC5nZXQoKSwgcyk7
CisgICAgICAgICAgICBmaWxsQ29udGFpbmVyRnJvbVN0cmluZygqZWxlbWVudCwgcyk7CiAgICAg
ICAgIH0KLSAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKGVsZW1lbnQucmVsZWFzZSgpLCBB
U1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKGVsZW1l
bnQucmVsZWFzZU5vbk51bGwoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgfQotICAgIHJl
dHVybiBmcmFnbWVudC5yZWxlYXNlKCk7CisgICAgcmV0dXJuIGZyYWdtZW50OwogfQogCiBTdHJp
bmcgZG9jdW1lbnRUeXBlU3RyaW5nKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkKQEAgLTk0NSwx
MCArOTQ1LDEwIEBAIHN0YXRpYyB2b2lkIHJlbW92ZUVsZW1lbnRGcm9tRnJhZ21lbnRQcmVzZXJ2
aW5nQ2hpbGRyZW4oRG9jdW1lbnRGcmFnbWVudCYgZnJhZ21lCiAgICAgUmVmUHRyPE5vZGU+IG5l
eHRDaGlsZDsKICAgICBmb3IgKFJlZlB0cjxOb2RlPiBjaGlsZCA9IGVsZW1lbnQuZmlyc3RDaGls
ZCgpOyBjaGlsZDsgY2hpbGQgPSBuZXh0Q2hpbGQpIHsKICAgICAgICAgbmV4dENoaWxkID0gY2hp
bGQtPm5leHRTaWJsaW5nKCk7Ci0gICAgICAgIGVsZW1lbnQucmVtb3ZlQ2hpbGQoY2hpbGQuZ2V0
KCksIEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgICAgICBmcmFnbWVudC5pbnNlcnRCZWZvcmUo
Y2hpbGQsICZlbGVtZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgZWxlbWVudC5y
ZW1vdmVDaGlsZCgqY2hpbGQsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAgICBmcmFnbWVu
dC5pbnNlcnRCZWZvcmUoKmNoaWxkLCAmZWxlbWVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAg
ICAgfQotICAgIGZyYWdtZW50LnJlbW92ZUNoaWxkKCZlbGVtZW50LCBBU1NFUlRfTk9fRVhDRVBU
SU9OKTsKKyAgICBmcmFnbWVudC5yZW1vdmVDaGlsZChlbGVtZW50LCBBU1NFUlRfTk9fRVhDRVBU
SU9OKTsKIH0KIAogUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVDb250ZXh0dWFs
RnJhZ21lbnQoY29uc3QgU3RyaW5nJiBtYXJrdXAsIEhUTUxFbGVtZW50KiBlbGVtZW50LCBQYXJz
ZXJDb250ZW50UG9saWN5IHBhcnNlckNvbnRlbnRQb2xpY3ksIEV4Y2VwdGlvbkNvZGUmIGVjKQpA
QCAtOTkwLDcgKzk5MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBoYXNPbmVUZXh0Q2hpbGQoQ29u
dGFpbmVyTm9kZSYgbm9kZSkKICAgICByZXR1cm4gaGFzT25lQ2hpbGQobm9kZSkgJiYgbm9kZS5m
aXJzdENoaWxkKCktPmlzVGV4dE5vZGUoKTsKIH0KIAotdm9pZCByZXBsYWNlQ2hpbGRyZW5XaXRo
RnJhZ21lbnQoQ29udGFpbmVyTm9kZSYgY29udGFpbmVyLCBQYXNzUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+IGZyYWdtZW50LCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgcmVwbGFjZUNoaWxkcmVu
V2l0aEZyYWdtZW50KENvbnRhaW5lck5vZGUmIGNvbnRhaW5lciwgUmVmPERvY3VtZW50RnJhZ21l
bnQ+JiYgZnJhZ21lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIFJlZjxDb250YWluZXJO
b2RlPiBjb250YWluZXJOb2RlKGNvbnRhaW5lcik7CiAgICAgQ2hpbGRMaXN0TXV0YXRpb25TY29w
ZSBtdXRhdGlvbihjb250YWluZXJOb2RlKTsKQEAgLTEwMDAsMTggKzEwMDAsMTggQEAgdm9pZCBy
ZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQoQ29udGFpbmVyTm9kZSYgY29udGFpbmVyLCBQYXNz
UmVmUHRyPERvY3VtZW50RnIKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChoYXNP
bmVUZXh0Q2hpbGQoY29udGFpbmVyTm9kZSkgJiYgaGFzT25lVGV4dENoaWxkKCpmcmFnbWVudCkp
IHsKKyAgICBpZiAoaGFzT25lVGV4dENoaWxkKGNvbnRhaW5lck5vZGUpICYmIGhhc09uZVRleHRD
aGlsZChmcmFnbWVudCkpIHsKICAgICAgICAgZG93bmNhc3Q8VGV4dD4oKmNvbnRhaW5lck5vZGUt
PmZpcnN0Q2hpbGQoKSkuc2V0RGF0YShkb3duY2FzdDxUZXh0PigqZnJhZ21lbnQtPmZpcnN0Q2hp
bGQoKSkuZGF0YSgpLCBlYyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoaGFz
T25lQ2hpbGQoY29udGFpbmVyTm9kZSkpIHsKLSAgICAgICAgY29udGFpbmVyTm9kZS0+cmVwbGFj
ZUNoaWxkKGZyYWdtZW50LCBjb250YWluZXJOb2RlLT5maXJzdENoaWxkKCksIGVjKTsKKyAgICAg
ICAgY29udGFpbmVyTm9kZS0+cmVwbGFjZUNoaWxkKFdURjo6bW92ZShmcmFnbWVudCksICpjb250
YWluZXJOb2RlLT5maXJzdENoaWxkKCksIGVjKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
ICAgIGNvbnRhaW5lck5vZGUtPnJlbW92ZUNoaWxkcmVuKCk7Ci0gICAgY29udGFpbmVyTm9kZS0+
YXBwZW5kQ2hpbGQoZnJhZ21lbnQsIGVjKTsKKyAgICBjb250YWluZXJOb2RlLT5hcHBlbmRDaGls
ZChXVEY6Om1vdmUoZnJhZ21lbnQpLCBlYyk7CiB9CiAKIHZvaWQgcmVwbGFjZUNoaWxkcmVuV2l0
aFRleHQoQ29udGFpbmVyTm9kZSYgY29udGFpbmVyLCBjb25zdCBTdHJpbmcmIHRleHQsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQpAQCAtMTAyNyw3ICsxMDI3LDcgQEAgdm9pZCByZXBsYWNlQ2hpbGRyZW5X
aXRoVGV4dChDb250YWluZXJOb2RlJiBjb250YWluZXIsIGNvbnN0IFN0cmluZyYgdGV4dCwgRXhj
ZXAKICAgICBSZWY8VGV4dD4gdGV4dE5vZGUgPSBUZXh0OjpjcmVhdGUoY29udGFpbmVyTm9kZS0+
ZG9jdW1lbnQoKSwgdGV4dCk7CiAKICAgICBpZiAoaGFzT25lQ2hpbGQoY29udGFpbmVyTm9kZSkp
IHsKLSAgICAgICAgY29udGFpbmVyTm9kZS0+cmVwbGFjZUNoaWxkKFdURjo6bW92ZSh0ZXh0Tm9k
ZSksIGNvbnRhaW5lck5vZGUtPmZpcnN0Q2hpbGQoKSwgZWMpOworICAgICAgICBjb250YWluZXJO
b2RlLT5yZXBsYWNlQ2hpbGQoV1RGOjptb3ZlKHRleHROb2RlKSwgKmNvbnRhaW5lck5vZGUtPmZp
cnN0Q2hpbGQoKSwgZWMpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9t
YXJrdXAuaAppbmRleCBjNTUyMDEwNzY2MDcyZWY1ZTYxZDI2YTMxM2MxYjAwM2IxYjgzNGI4Li5h
NTQ1YmE1NDY2ZjJmZDE4M2Q1NWJiNGU4MzIwOTQ0OGM4OGYzNzkzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
bWFya3VwLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgZW51bSBFQ2hpbGRyZW5Pbmx5IHsgSW5jbHVkZU5v
ZGUsIENoaWxkcmVuT25seSB9OwogZW51bSBFQWJzb2x1dGVVUkxzIHsgRG9Ob3RSZXNvbHZlVVJM
cywgUmVzb2x2ZUFsbFVSTHMsIFJlc29sdmVOb25Mb2NhbFVSTHMgfTsKIGVudW0gRUZyYWdtZW50
U2VyaWFsaXphdGlvbiB7IEhUTUxGcmFnbWVudFNlcmlhbGl6YXRpb24sIFhNTEZyYWdtZW50U2Vy
aWFsaXphdGlvbiB9OwogCi1XRUJDT1JFX0VYUE9SVCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21l
bnQ+IGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoUmFuZ2UmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYg
dGV4dCk7CitXRUJDT1JFX0VYUE9SVCBSZWY8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21l
bnRGcm9tVGV4dChSYW5nZSYgY29udGV4dCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKIFdFQkNPUkVf
RVhQT1JUIFJlZjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21NYXJrdXAoRG9j
dW1lbnQmLCBjb25zdCBTdHJpbmcmIG1hcmt1cCwgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBQYXJz
ZXJDb250ZW50UG9saWN5ID0gQWxsb3dTY3JpcHRpbmdDb250ZW50KTsKIFBhc3NSZWZQdHI8RG9j
dW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGb3JJbm5lck91dGVySFRNTChjb25zdCBTdHJp
bmcmLCBFbGVtZW50KiwgUGFyc2VyQ29udGVudFBvbGljeSwgRXhjZXB0aW9uQ29kZSYpOwogUGFz
c1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZvclRyYW5zZm9ybVRvRnJh
Z21lbnQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBzb3VyY2VNSU1FVHlwZSwgRG9jdW1l
bnQqIG91dHB1dERvYyk7CkBAIC01OSwxMSArNTksMTEgQEAgYm9vbCBpc1BsYWluVGV4dE1hcmt1
cChOb2RlKik7CiAKIC8vIFRoZXNlIG1ldGhvZHMgYXJlIHVzZWQgYnkgSFRNTEVsZW1lbnQgJiBT
aGFkb3dSb290IHRvIHJlcGxhY2UgdGhlCiAvLyBjaGlsZHJlbiB3aXRoIHJlc3BlY3RlZCBmcmFn
bWVudC90ZXh0Lgotdm9pZCByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQoQ29udGFpbmVyTm9k
ZSYsIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4sIEV4Y2VwdGlvbkNvZGUmKTsKK3ZvaWQg
cmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KENvbnRhaW5lck5vZGUmLCBSZWY8RG9jdW1lbnRG
cmFnbWVudD4mJiwgRXhjZXB0aW9uQ29kZSYpOwogdm9pZCByZXBsYWNlQ2hpbGRyZW5XaXRoVGV4
dChDb250YWluZXJOb2RlJiwgY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwogCi1TdHJp
bmcgY3JlYXRlTWFya3VwKGNvbnN0IFJhbmdlJiwgVmVjdG9yPE5vZGUqPiogPSAwLCBFQW5ub3Rh
dGVGb3JJbnRlcmNoYW5nZSA9IERvTm90QW5ub3RhdGVGb3JJbnRlcmNoYW5nZSwgYm9vbCBjb252
ZXJ0QmxvY2tzVG9JbmxpbmVzID0gZmFsc2UsIEVBYnNvbHV0ZVVSTHMgPSBEb05vdFJlc29sdmVV
UkxzKTsKLVN0cmluZyBjcmVhdGVNYXJrdXAoY29uc3QgTm9kZSYsIEVDaGlsZHJlbk9ubHkgPSBJ
bmNsdWRlTm9kZSwgVmVjdG9yPE5vZGUqPiogPSAwLCBFQWJzb2x1dGVVUkxzID0gRG9Ob3RSZXNv
bHZlVVJMcywgVmVjdG9yPFF1YWxpZmllZE5hbWU+KiB0YWdOYW1lc1RvU2tpcCA9IDAsIEVGcmFn
bWVudFNlcmlhbGl6YXRpb24gPSBIVE1MRnJhZ21lbnRTZXJpYWxpemF0aW9uKTsKK1N0cmluZyBj
cmVhdGVNYXJrdXAoY29uc3QgUmFuZ2UmLCBWZWN0b3I8Tm9kZSo+KiA9IG51bGxwdHIsIEVBbm5v
dGF0ZUZvckludGVyY2hhbmdlID0gRG9Ob3RBbm5vdGF0ZUZvckludGVyY2hhbmdlLCBib29sIGNv
bnZlcnRCbG9ja3NUb0lubGluZXMgPSBmYWxzZSwgRUFic29sdXRlVVJMcyA9IERvTm90UmVzb2x2
ZVVSTHMpOworU3RyaW5nIGNyZWF0ZU1hcmt1cChjb25zdCBOb2RlJiwgRUNoaWxkcmVuT25seSA9
IEluY2x1ZGVOb2RlLCBWZWN0b3I8Tm9kZSo+KiA9IG51bGxwdHIsIEVBYnNvbHV0ZVVSTHMgPSBE
b05vdFJlc29sdmVVUkxzLCBWZWN0b3I8UXVhbGlmaWVkTmFtZT4qIHRhZ05hbWVzVG9Ta2lwID0g
MCwgRUZyYWdtZW50U2VyaWFsaXphdGlvbiA9IEhUTUxGcmFnbWVudFNlcmlhbGl6YXRpb24pOwog
CiBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY3JlYXRlRnVsbE1hcmt1cChjb25zdCBOb2RlJik7CiBX
RUJDT1JFX0VYUE9SVCBTdHJpbmcgY3JlYXRlRnVsbE1hcmt1cChjb25zdCBSYW5nZSYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlu
cHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRU
aW1lSW5wdXRUeXBlLmNwcAppbmRleCBkYmVhMGU5OWJkOTM0YzdkYmRlYTUyZDI1ZDAxYzJmODE3
NWRjMWQwLi41N2UzODhiZjFkY2VhNGI4MTk2YjQ2MGYwY2MzNzExZmYwZjg3MzRjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRU
eXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRU
aW1lSW5wdXRUeXBlLmNwcApAQCAtNjAsOSArNjAsOSBAQCB2b2lkIEJhc2VDaG9vc2VyT25seURh
dGVBbmRUaW1lSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKICAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCB2YWx1ZUNvbnRhaW5lclBzZXVk
bywgKCItd2Via2l0LWRhdGUtYW5kLXRpbWUtdmFsdWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CiAKLSAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IHZhbHVlQ29udGFp
bmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCkuZG9jdW1lbnQoKSk7CisgICAg
UmVmPEhUTUxEaXZFbGVtZW50PiB2YWx1ZUNvbnRhaW5lciA9IEhUTUxEaXZFbGVtZW50OjpjcmVh
dGUoZWxlbWVudCgpLmRvY3VtZW50KCkpOwogICAgIHZhbHVlQ29udGFpbmVyLT5zZXRQc2V1ZG8o
dmFsdWVDb250YWluZXJQc2V1ZG8pOwotICAgIGVsZW1lbnQoKS51c2VyQWdlbnRTaGFkb3dSb290
KCktPmFwcGVuZENoaWxkKHZhbHVlQ29udGFpbmVyLmdldCgpKTsKKyAgICBlbGVtZW50KCkudXNl
ckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUodmFsdWVDb250YWluZXIp
KTsKICAgICB1cGRhdGVBcHBlYXJhbmNlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklu
cHV0VHlwZS5jcHAKaW5kZXggOGJiZGI5N2MyNTI0YjYyYWIzOWFhNjRlNjg0MDg1NWNhNDY5NTU5
Yy4uYzUzODVhMDRiNjc3OGM1ZWEyZDQzNWI0MzlhOTRiZjIwN2JiNjY2MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKQEAgLTEwNywxMiArMTA3LDEyIEBAIHZvaWQgQ29s
b3JJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogICAgIEFTU0VSVChlbGVtZW50KCku
c2hhZG93Um9vdCgpKTsKIAogICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGVsZW1lbnQoKS5kb2N1
bWVudCgpOwotICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gd3JhcHBlckVsZW1lbnQgPSBIVE1M
RGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBSZWY8SFRNTERpdkVsZW1lbnQ+IHdy
YXBwZXJFbGVtZW50ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgd3Jh
cHBlckVsZW1lbnQtPnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtY29sb3Itc3dhdGNo
LXdyYXBwZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgUmVm
UHRyPEhUTUxEaXZFbGVtZW50PiBjb2xvclN3YXRjaCA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQpOworICAgIFJlZjxIVE1MRGl2RWxlbWVudD4gY29sb3JTd2F0Y2ggPSBIVE1MRGl2
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb2xvclN3YXRjaC0+c2V0UHNldWRvKEF0
b21pY1N0cmluZygiLXdlYmtpdC1jb2xvci1zd2F0Y2giLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7Ci0gICAgd3JhcHBlckVsZW1lbnQtPmFwcGVuZENoaWxkKGNvbG9yU3dh
dGNoLnJlbGVhc2UoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0gICAgZWxlbWVudCgpLnVzZXJB
Z2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQod3JhcHBlckVsZW1lbnQucmVsZWFzZSgpLCBB
U1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICB3cmFwcGVyRWxlbWVudC0+YXBwZW5kQ2hpbGQoV1RG
Ojptb3ZlKGNvbG9yU3dhdGNoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgZWxlbWVudCgp
LnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHdyYXBwZXJFbGVt
ZW50KSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgCiAgICAgdXBkYXRlQ29sb3JTd2F0Y2go
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5RG9jdW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAKaW5k
ZXggNDA2NWExNzhkMjgyYTkyOTcxNDUxMTU1YjY2ZDYzZGQzNGExZjJkNS4uMTQ0N2E0NjM1Zjcy
MTJlZmE5MmExMWMxN2Y5MmY3ZjY5MzdlYWVmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9G
VFBEaXJlY3RvcnlEb2N1bWVudC5jcHAKQEAgLTEwNCwyNyArMTA0LDI3IEBAIHZvaWQgRlRQRGly
ZWN0b3J5RG9jdW1lbnRQYXJzZXI6OmFwcGVuZEVudHJ5KGNvbnN0IFN0cmluZyYgZmlsZW5hbWUs
IGNvbnN0IFN0cmluCiAgICAgUmVmUHRyPEVsZW1lbnQ+IHJvd0VsZW1lbnQgPSBtX3RhYmxlRWxl
bWVudC0+aW5zZXJ0Um93KC0xLCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICByb3dFbGVtZW50LT5z
ZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpjbGFzc0F0dHIsICJmdHBEaXJlY3RvcnlFbnRyeVJvdyIp
OwogCi0gICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVt
ZW50KHRkVGFnLCBmYWxzZSk7CisgICAgUmVmPEVsZW1lbnQ+IGVsZW1lbnQgPSBkb2N1bWVudCgp
LT5jcmVhdGVFbGVtZW50KHRkVGFnLCBmYWxzZSk7CiAgICAgZWxlbWVudC0+YXBwZW5kQ2hpbGQo
VGV4dDo6Y3JlYXRlKCpkb2N1bWVudCgpLCBTdHJpbmcoJm5vQnJlYWtTcGFjZSwgMSkpLCBJR05P
UkVfRVhDRVBUSU9OKTsKICAgICBpZiAoaXNEaXJlY3RvcnkpCiAgICAgICAgIGVsZW1lbnQtPnNl
dEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNsYXNzQXR0ciwgImZ0cERpcmVjdG9yeUljb24gZnRwRGly
ZWN0b3J5VHlwZURpcmVjdG9yeSIpOwogICAgIGVsc2UKICAgICAgICAgZWxlbWVudC0+c2V0QXR0
cmlidXRlKEhUTUxOYW1lczo6Y2xhc3NBdHRyLCAiZnRwRGlyZWN0b3J5SWNvbiBmdHBEaXJlY3Rv
cnlUeXBlRmlsZSIpOwotICAgIHJvd0VsZW1lbnQtPmFwcGVuZENoaWxkKGVsZW1lbnQsIElHTk9S
RV9FWENFUFRJT04pOworICAgIHJvd0VsZW1lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShlbGVt
ZW50KSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKICAgICBlbGVtZW50ID0gY3JlYXRlVERGb3JGaWxl
bmFtZShmaWxlbmFtZSk7CiAgICAgZWxlbWVudC0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6Y2xh
c3NBdHRyLCAiZnRwRGlyZWN0b3J5RmlsZU5hbWUiKTsKLSAgICByb3dFbGVtZW50LT5hcHBlbmRD
aGlsZChlbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICByb3dFbGVtZW50LT5hcHBlbmRD
aGlsZChXVEY6Om1vdmUoZWxlbWVudCksIElHTk9SRV9FWENFUFRJT04pOwogCiAgICAgZWxlbWVu
dCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQodGRUYWcsIGZhbHNlKTsKICAgICBlbGVtZW50
LT5hcHBlbmRDaGlsZChUZXh0OjpjcmVhdGUoKmRvY3VtZW50KCksIGRhdGUpLCBJR05PUkVfRVhD
RVBUSU9OKTsKICAgICBlbGVtZW50LT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpjbGFzc0F0dHIs
ICJmdHBEaXJlY3RvcnlGaWxlRGF0ZSIpOwotICAgIHJvd0VsZW1lbnQtPmFwcGVuZENoaWxkKGVs
ZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOworICAgIHJvd0VsZW1lbnQtPmFwcGVuZENoaWxkKFdU
Rjo6bW92ZShlbGVtZW50KSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKICAgICBlbGVtZW50ID0gZG9j
dW1lbnQoKS0+Y3JlYXRlRWxlbWVudCh0ZFRhZywgZmFsc2UpOwogICAgIGVsZW1lbnQtPmFwcGVu
ZENoaWxkKFRleHQ6OmNyZWF0ZSgqZG9jdW1lbnQoKSwgc2l6ZSksIElHTk9SRV9FWENFUFRJT04p
OwogICAgIGVsZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNsYXNzQXR0ciwgImZ0cERp
cmVjdG9yeUZpbGVTaXplIik7Ci0gICAgcm93RWxlbWVudC0+YXBwZW5kQ2hpbGQoZWxlbWVudCwg
SUdOT1JFX0VYQ0VQVElPTik7CisgICAgcm93RWxlbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3Zl
KGVsZW1lbnQpLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KIAogUmVmPEVsZW1lbnQ+IEZUUERpcmVj
dG9yeURvY3VtZW50UGFyc2VyOjpjcmVhdGVUREZvckZpbGVuYW1lKGNvbnN0IFN0cmluZyYgZmls
ZW5hbWUpCkBAIC0xMzUsMTIgKzEzNSwxMiBAQCBSZWY8RWxlbWVudD4gRlRQRGlyZWN0b3J5RG9j
dW1lbnRQYXJzZXI6OmNyZWF0ZVRERm9yRmlsZW5hbWUoY29uc3QgU3RyaW5nJiBmaWxlbgogICAg
IGVsc2UKICAgICAgICAgZnVsbFVSTCA9IGZ1bGxVUkwgKyAnLycgKyBmaWxlbmFtZTsKIAotICAg
IFJlZlB0cjxFbGVtZW50PiBhbmNob3JFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVu
dChhVGFnLCBmYWxzZSk7CisgICAgUmVmPEVsZW1lbnQ+IGFuY2hvckVsZW1lbnQgPSBkb2N1bWVu
dCgpLT5jcmVhdGVFbGVtZW50KGFUYWcsIGZhbHNlKTsKICAgICBhbmNob3JFbGVtZW50LT5zZXRB
dHRyaWJ1dGUoSFRNTE5hbWVzOjpocmVmQXR0ciwgZnVsbFVSTCk7CiAgICAgYW5jaG9yRWxlbWVu
dC0+YXBwZW5kQ2hpbGQoVGV4dDo6Y3JlYXRlKCpkb2N1bWVudCgpLCBmaWxlbmFtZSksIElHTk9S
RV9FWENFUFRJT04pOwogCiAgICAgUmVmPEVsZW1lbnQ+IHRkRWxlbWVudCA9IGRvY3VtZW50KCkt
PmNyZWF0ZUVsZW1lbnQodGRUYWcsIGZhbHNlKTsKLSAgICB0ZEVsZW1lbnQtPmFwcGVuZENoaWxk
KGFuY2hvckVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOworICAgIHRkRWxlbWVudC0+YXBwZW5k
Q2hpbGQoV1RGOjptb3ZlKGFuY2hvckVsZW1lbnQpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAogICAg
IHJldHVybiB0ZEVsZW1lbnQ7CiB9CkBAIC0zMTIsOSArMzEyLDkgQEAgYm9vbCBGVFBEaXJlY3Rv
cnlEb2N1bWVudFBhcnNlcjo6bG9hZERvY3VtZW50VGVtcGxhdGUoKQogICAgIC8vIElmIHRoYXQg
ZmFpbHMgZm9yIHNvbWUgcmVhc29uLCBjcmFtIGl0IG9uIHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50
IGFzIGEgbGFzdAogICAgIC8vIGRpdGNoIGVmZm9ydAogICAgIGlmIChhdXRvKiBib2R5ID0gZG9j
dW1lbnQoKS0+Ym9keU9yRnJhbWVzZXQoKSkKLSAgICAgICAgYm9keS0+YXBwZW5kQ2hpbGQobV90
YWJsZUVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOworICAgICAgICBib2R5LT5hcHBlbmRDaGls
ZCgqbV90YWJsZUVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOwogICAgIGVsc2UKLSAgICAgICAg
ZG9jdW1lbnQoKS0+YXBwZW5kQ2hpbGQobV90YWJsZUVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04p
OworICAgICAgICBkb2N1bWVudCgpLT5hcHBlbmRDaGlsZCgqbV90YWJsZUVsZW1lbnQsIElHTk9S
RV9FWENFUFRJT04pOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0zMjUsMTYgKzMyNSwxNiBA
QCB2b2lkIEZUUERpcmVjdG9yeURvY3VtZW50UGFyc2VyOjpjcmVhdGVCYXNpY0RvY3VtZW50KCkK
IAogICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgImJhc2ljIGRvY3VtZW50IiBtb3JlIGFjY2VwdGFi
bGUKIAotICAgIFJlZlB0cjxFbGVtZW50PiBib2R5RWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0
ZUVsZW1lbnQoYm9keVRhZywgZmFsc2UpOworICAgIFJlZjxFbGVtZW50PiBib2R5RWxlbWVudCA9
IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoYm9keVRhZywgZmFsc2UpOwogCi0gICAgZG9jdW1l
bnQoKS0+YXBwZW5kQ2hpbGQoYm9keUVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOworICAgIGRv
Y3VtZW50KCktPmFwcGVuZENoaWxkKGJvZHlFbGVtZW50LmNvcHlSZWYoKSwgSUdOT1JFX0VYQ0VQ
VElPTik7CiAKLSAgICBSZWZQdHI8RWxlbWVudD4gdGFibGVFbGVtZW50ID0gZG9jdW1lbnQoKS0+
Y3JlYXRlRWxlbWVudCh0YWJsZVRhZywgZmFsc2UpOwotICAgIG1fdGFibGVFbGVtZW50ID0gZG93
bmNhc3Q8SFRNTFRhYmxlRWxlbWVudD4odGFibGVFbGVtZW50LmdldCgpKTsKKyAgICBSZWY8RWxl
bWVudD4gdGFibGVFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudCh0YWJsZVRhZywg
ZmFsc2UpOworICAgIG1fdGFibGVFbGVtZW50ID0gZG93bmNhc3Q8SFRNTFRhYmxlRWxlbWVudD4o
dGFibGVFbGVtZW50LnB0cigpKTsKICAgICBtX3RhYmxlRWxlbWVudC0+c2V0QXR0cmlidXRlKEhU
TUxOYW1lczo6aWRBdHRyLCAiZnRwRGlyZWN0b3J5VGFibGUiKTsKICAgICBtX3RhYmxlRWxlbWVu
dC0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6c3R5bGVBdHRyLCAid2lkdGg6MTAwJSIpOwogCi0g
ICAgYm9keUVsZW1lbnQtPmFwcGVuZENoaWxkKG1fdGFibGVFbGVtZW50LCBJR05PUkVfRVhDRVBU
SU9OKTsKKyAgICBib2R5RWxlbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHRhYmxlRWxlbWVu
dCksIElHTk9SRV9FWENFUFRJT04pOwogCiAgICAgZG9jdW1lbnQoKS0+cHJvY2Vzc1ZpZXdwb3J0
KCJ3aWR0aD1kZXZpY2Utd2lkdGgiLCBWaWV3cG9ydEFyZ3VtZW50czo6Vmlld3BvcnRNZXRhKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAppbmRleCA0MzAy
MTJjMWFiODA3MDkxNjNlNTRmNTNkMWRiYzJmN2NhZGE4YjFmLi40OGNjOWI4NDhlNTQxN2FjNzlm
YTY1MDE5ZTQ4NzA1ZTE3MTI3YTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxEZXRhaWxzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWls
c0VsZW1lbnQuY3BwCkBAIC05MCwxMSArOTAsMTEgQEAgcHJpdmF0ZToKIAogUmVmPERldGFpbHNT
dW1tYXJ5RWxlbWVudD4gRGV0YWlsc1N1bW1hcnlFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRv
Y3VtZW50KQogewotICAgIFJlZlB0cjxIVE1MU3VtbWFyeUVsZW1lbnQ+IHN1bW1hcnkgPSBIVE1M
U3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZShzdW1tYXJ5VGFnLCBkb2N1bWVudCk7CisgICAgUmVmPEhU
TUxTdW1tYXJ5RWxlbWVudD4gc3VtbWFyeSA9IEhUTUxTdW1tYXJ5RWxlbWVudDo6Y3JlYXRlKHN1
bW1hcnlUYWcsIGRvY3VtZW50KTsKICAgICBzdW1tYXJ5LT5hcHBlbmRDaGlsZChUZXh0OjpjcmVh
dGUoZG9jdW1lbnQsIGRlZmF1bHREZXRhaWxzU3VtbWFyeVRleHQoKSksIEFTU0VSVF9OT19FWENF
UFRJT04pOwogCiAgICAgUmVmPERldGFpbHNTdW1tYXJ5RWxlbWVudD4gZGV0YWlsc1N1bW1hcnkg
PSBhZG9wdFJlZigqbmV3IERldGFpbHNTdW1tYXJ5RWxlbWVudChkb2N1bWVudCkpOwotICAgIGRl
dGFpbHNTdW1tYXJ5LT5hcHBlbmRDaGlsZChzdW1tYXJ5KTsKKyAgICBkZXRhaWxzU3VtbWFyeS0+
YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHN1bW1hcnkpKTsKICAgICByZXR1cm4gZGV0YWlsc1N1bW1h
cnk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKaW5kZXggNTIwY2UwM2U3MGNj
N2FkNzg2Y2I1MzdhNzczMDk5N2Y4NjIzYzM1ZS4uNWMzNzdkYWVlMzk2ZmE2MGZhMzQxZGRiZjZh
OTY5NzczNzgwYTZiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKQEAgLTU4NCw5
ICs1ODQsOSBAQCB2b2lkIEhUTUxFbGVtZW50OjpzZXRJbm5lclRleHQoY29uc3QgU3RyaW5nJiB0
ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKIAogICAgIC8vIEFkZCB0ZXh0IG5vZGVzIGFuZCA8YnI+
IGVsZW1lbnRzLgogICAgIGVjID0gMDsKLSAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJh
Z21lbnQgPSB0ZXh0VG9GcmFnbWVudCh0ZXh0LCBlYyk7CisgICAgUmVmPERvY3VtZW50RnJhZ21l
bnQ+IGZyYWdtZW50ID0gdGV4dFRvRnJhZ21lbnQodGV4dCwgZWMpOwogICAgIGlmICghZWMpCi0g
ICAgICAgIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudCgqdGhpcywgZnJhZ21lbnQucmVsZWFz
ZSgpLCBlYyk7CisgICAgICAgIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudCgqdGhpcywgV1RG
Ojptb3ZlKGZyYWdtZW50KSwgZWMpOwogfQogCiB2b2lkIEhUTUxFbGVtZW50OjpzZXRPdXRlclRl
eHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTYyMSw3ICs2MjEs
NyBAQCB2b2lkIEhUTUxFbGVtZW50OjpzZXRPdXRlclRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBF
eGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAg
ICAgaWYgKGVjKQogICAgICAgICByZXR1cm47Ci0gICAgcGFyZW50LT5yZXBsYWNlQ2hpbGQobmV3
Q2hpbGQucmVsZWFzZSgpLCB0aGlzLCBlYyk7CisgICAgcGFyZW50LT5yZXBsYWNlQ2hpbGQobmV3
Q2hpbGQucmVsZWFzZU5vbk51bGwoKSwgKnRoaXMsIGVjKTsKIAogICAgIFJlZlB0cjxOb2RlPiBu
b2RlID0gbmV4dCA/IG5leHQtPnByZXZpb3VzU2libGluZygpIDogbnVsbHB0cjsKICAgICBpZiAo
IWVjICYmIGlzPFRleHQ+KG5vZGUuZ2V0KCkpKQpAQCAtNjMwLDcgKzYzMCw3IEBAIHZvaWQgSFRN
TEVsZW1lbnQ6OnNldE91dGVyVGV4dChjb25zdCBTdHJpbmcmIHRleHQsIEV4Y2VwdGlvbkNvZGUm
IGVjKQogICAgICAgICBtZXJnZVdpdGhOZXh0VGV4dE5vZGUoZG93bmNhc3Q8VGV4dD4oKnByZXYp
LCBlYyk7CiB9CiAKLU5vZGUqIEhUTUxFbGVtZW50OjppbnNlcnRBZGphY2VudChjb25zdCBTdHJp
bmcmIHdoZXJlLCBOb2RlKiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCitOb2RlKiBIVE1M
RWxlbWVudDo6aW5zZXJ0QWRqYWNlbnQoY29uc3QgU3RyaW5nJiB3aGVyZSwgUmVmPE5vZGU+JiYg
bmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIC8vIEluIEludGVybmV0IEV4cGxv
cmVyIGlmIHRoZSBlbGVtZW50IGhhcyBubyBwYXJlbnQgYW5kIHdoZXJlIGlzICJiZWZvcmVCZWdp
biIgb3IgImFmdGVyRW5kIiwKICAgICAvLyBhIGRvY3VtZW50IGZyYWdtZW50IGlzIGNyZWF0ZWQg
YW5kIHRoZSBlbGVtZW50cyBhcHBlbmRlZCBpbiB0aGUgY29ycmVjdCBvcmRlci4gVGhpcyBkb2N1
bWVudApAQCAtNjQxLDE4ICs2NDEsMTggQEAgTm9kZSogSFRNTEVsZW1lbnQ6Omluc2VydEFkamFj
ZW50KGNvbnN0IFN0cmluZyYgd2hlcmUsIE5vZGUqIG5ld0NoaWxkLCBFeGNlcHRpb24KIAogICAg
IGlmIChlcXVhbElnbm9yaW5nQ2FzZSh3aGVyZSwgImJlZm9yZUJlZ2luIikpIHsKICAgICAgICAg
Q29udGFpbmVyTm9kZSogcGFyZW50ID0gdGhpcy0+cGFyZW50Tm9kZSgpOwotICAgICAgICByZXR1
cm4gKHBhcmVudCAmJiBwYXJlbnQtPmluc2VydEJlZm9yZShuZXdDaGlsZCwgdGhpcywgZWMpKSA/
IG5ld0NoaWxkIDogbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIChwYXJlbnQgJiYgcGFyZW50LT5p
bnNlcnRCZWZvcmUobmV3Q2hpbGQuY29weVJlZigpLCB0aGlzLCBlYykpID8gbmV3Q2hpbGQucHRy
KCkgOiBudWxscHRyOwogICAgIH0KIAogICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh3aGVyZSwg
ImFmdGVyQmVnaW4iKSkKLSAgICAgICAgcmV0dXJuIGluc2VydEJlZm9yZShuZXdDaGlsZCwgZmly
c3RDaGlsZCgpLCBlYykgPyBuZXdDaGlsZCA6IG51bGxwdHI7CisgICAgICAgIHJldHVybiBpbnNl
cnRCZWZvcmUobmV3Q2hpbGQuY29weVJlZigpLCBmaXJzdENoaWxkKCksIGVjKSA/IG5ld0NoaWxk
LnB0cigpIDogbnVsbHB0cjsKIAogICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh3aGVyZSwgImJl
Zm9yZUVuZCIpKQotICAgICAgICByZXR1cm4gYXBwZW5kQ2hpbGQobmV3Q2hpbGQsIGVjKSA/IG5l
d0NoaWxkIDogbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIGFwcGVuZENoaWxkKG5ld0NoaWxkLmNv
cHlSZWYoKSwgZWMpID8gbmV3Q2hpbGQucHRyKCkgOiBudWxscHRyOwogCiAgICAgaWYgKGVxdWFs
SWdub3JpbmdDYXNlKHdoZXJlLCAiYWZ0ZXJFbmQiKSkgewogICAgICAgICBDb250YWluZXJOb2Rl
KiBwYXJlbnQgPSB0aGlzLT5wYXJlbnROb2RlKCk7Ci0gICAgICAgIHJldHVybiAocGFyZW50ICYm
IHBhcmVudC0+aW5zZXJ0QmVmb3JlKG5ld0NoaWxkLCBuZXh0U2libGluZygpLCBlYykpID8gbmV3
Q2hpbGQgOiBudWxscHRyOworICAgICAgICByZXR1cm4gKHBhcmVudCAmJiBwYXJlbnQtPmluc2Vy
dEJlZm9yZShuZXdDaGlsZC5jb3B5UmVmKCksIG5leHRTaWJsaW5nKCksIGVjKSkgPyBuZXdDaGls
ZC5wdHIoKSA6IG51bGxwdHI7CiAgICAgfQogICAgIAogICAgIC8vIElFIHRocm93cyBDT00gRXhj
ZXB0aW9uIEVfSU5WQUxJREFSRzsgdGhpcyBpcyB0aGUgYmVzdCBET00gZXhjZXB0aW9uIGFsdGVy
bmF0aXZlLgpAQCAtNjY4LDcgKzY2OCw3IEBAIEVsZW1lbnQqIEhUTUxFbGVtZW50OjppbnNlcnRB
ZGphY2VudEVsZW1lbnQoY29uc3QgU3RyaW5nJiB3aGVyZSwgRWxlbWVudCogbmV3Q2hpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIE5vZGUqIHJldHVyblZhbHVlID0gaW5z
ZXJ0QWRqYWNlbnQod2hlcmUsIG5ld0NoaWxkLCBlYyk7CisgICAgTm9kZSogcmV0dXJuVmFsdWUg
PSBpbnNlcnRBZGphY2VudCh3aGVyZSwgKm5ld0NoaWxkLCBlYyk7CiAgICAgQVNTRVJUX1dJVEhf
U0VDVVJJVFlfSU1QTElDQVRJT04oIXJldHVyblZhbHVlIHx8IGlzPEVsZW1lbnQ+KCpyZXR1cm5W
YWx1ZSkpOwogICAgIHJldHVybiBkb3duY2FzdDxFbGVtZW50PihyZXR1cm5WYWx1ZSk7IAogfQpA
QCAtNjk5LDEzICs2OTksMTIgQEAgdm9pZCBIVE1MRWxlbWVudDo6aW5zZXJ0QWRqYWNlbnRIVE1M
KGNvbnN0IFN0cmluZyYgd2hlcmUsIGNvbnN0IFN0cmluZyYgbWFya3VwLAogICAgIFJlZlB0cjxE
b2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGNyZWF0ZUZyYWdtZW50Rm9ySW5uZXJPdXRlckhU
TUwobWFya3VwLCBjb250ZXh0RWxlbWVudCwgQWxsb3dTY3JpcHRpbmdDb250ZW50LCBlYyk7CiAg
ICAgaWYgKCFmcmFnbWVudCkKICAgICAgICAgcmV0dXJuOwotICAgIGluc2VydEFkamFjZW50KHdo
ZXJlLCBmcmFnbWVudC5nZXQoKSwgZWMpOworICAgIGluc2VydEFkamFjZW50KHdoZXJlLCBmcmFn
bWVudC5yZWxlYXNlTm9uTnVsbCgpLCBlYyk7CiB9CiAKIHZvaWQgSFRNTEVsZW1lbnQ6Omluc2Vy
dEFkamFjZW50VGV4dChjb25zdCBTdHJpbmcmIHdoZXJlLCBjb25zdCBTdHJpbmcmIHRleHQsIEV4
Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIFJlZlB0cjxUZXh0PiB0ZXh0Tm9kZSA9IGRvY3VtZW50
KCkuY3JlYXRlVGV4dE5vZGUodGV4dCk7Ci0gICAgaW5zZXJ0QWRqYWNlbnQod2hlcmUsIHRleHRO
b2RlLmdldCgpLCBlYyk7CisgICAgaW5zZXJ0QWRqYWNlbnQod2hlcmUsIGRvY3VtZW50KCkuY3Jl
YXRlVGV4dE5vZGUodGV4dCksIGVjKTsKIH0KIAogdm9pZCBIVE1MRWxlbWVudDo6YXBwbHlBbGln
bm1lbnRBdHRyaWJ1dGVUb1N0eWxlKGNvbnN0IEF0b21pY1N0cmluZyYgYWxpZ25tZW50LCBNdXRh
YmxlU3R5bGVQcm9wZXJ0aWVzJiBzdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAppbmRl
eCAzMGUzNzc1YTAwNGUzMWJlYWU4MzVjZjY5MGNiNDA5YjFkZmViNzdhLi43MGQ0OTYxY2VkMmRj
ZTk2ZDQ1NTRlYzE2NjY5MGQwZDg1YzA2M2ViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5o
CkBAIC0xMzAsNyArMTMwLDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgSFRNTEZvcm1FbGVt
ZW50KiB2aXJ0dWFsRm9ybSgpIGNvbnN0OwogCi0gICAgTm9kZSogaW5zZXJ0QWRqYWNlbnQoY29u
c3QgU3RyaW5nJiB3aGVyZSwgTm9kZSogbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBO
b2RlKiBpbnNlcnRBZGphY2VudChjb25zdCBTdHJpbmcmIHdoZXJlLCBSZWY8Tm9kZT4mJiBuZXdD
aGlsZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFJlZjxEb2N1bWVudEZyYWdtZW50PiB0ZXh0VG9G
cmFnbWVudChjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICB2b2lkIGRpckF0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW1hZ2VFbGVtZW50LmNwcAppbmRleCBiMmEyNzdhNTU5YmEzNWQxZjM5NTVmNDI4M2M3Yzgy
OTEzNGIwYTA2Li5hNGE3M2NhNmI2MDk3ZGM3OGJkNjlmM2JiNDEyMWU0ZDI3ZGVkNGI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKQEAgLTUwNCw3ICs1MDQsNyBA
QCB2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OmNyZWF0ZUltYWdlQ29udHJvbHMoKQogICAgIGlmICgh
aW1hZ2VDb250cm9scykKICAgICAgICAgcmV0dXJuOwogCi0gICAgZW5zdXJlVXNlckFnZW50U2hh
ZG93Um9vdCgpLmFwcGVuZENoaWxkKGltYWdlQ29udHJvbHMpOworICAgIGVuc3VyZVVzZXJBZ2Vu
dFNoYWRvd1Jvb3QoKS5hcHBlbmRDaGlsZChpbWFnZUNvbnRyb2xzLnJlbGVhc2VOb25OdWxsKCkp
OwogCiAgICAgYXV0byogcmVuZGVyT2JqZWN0ID0gcmVuZGVyZXIoKTsKICAgICBpZiAoIXJlbmRl
ck9iamVjdCkKQEAgLTUyMSw3ICs1MjEsNyBAQCB2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OmRlc3Ry
b3lJbWFnZUNvbnRyb2xzKCkKIAogICAgIGlmIChOb2RlKiBub2RlID0gc2hhZG93Um9vdC0+Zmly
c3RDaGlsZCgpKSB7CiAgICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG5v
ZGUtPmlzSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50KCkpOwotICAgICAgICBzaGFkb3dSb290LT5y
ZW1vdmVDaGlsZChub2RlKTsKKyAgICAgICAgc2hhZG93Um9vdC0+cmVtb3ZlQ2hpbGQoKm5vZGUp
OwogICAgIH0KIAogICAgIGF1dG8qIHJlbmRlck9iamVjdCA9IHJlbmRlcmVyKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCmluZGV4IGU3ZDkxNDgyNWM1ZWI4MTE0
ZDliMmVlYTFmZGNmMDMwMjZhYTBiYTIuLjRhNjNiMDBhNGE0MTM0YjU4Y2YyNDVmZWI2OTJmOGE0
NjYxNmJmMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCkBA
IC01OCw3ICs1OCw3IEBAIHByb3RlY3RlZDoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgdmlydHVh
bCBSZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJl
bihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQpIG92ZXJyaWRlCisgICAgdmlydHVhbCBSZWY8RWxl
bWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYg
dGFyZ2V0RG9jdW1lbnQpIG92ZXJyaWRlCiAgICAgewogICAgICAgICByZXR1cm4gY3JlYXRlKHRh
cmdldERvY3VtZW50KTsKICAgICB9CkBAIC03MywxNCArNzMsMTQgQEAgaW5saW5lIEhUTUxLZXln
ZW5FbGVtZW50OjpIVE1MS2V5Z2VuRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWUKICAgICBWZWN0b3I8U3RyaW5nPiBrZXlzOwogICAgIGdldFN1cHBvcnRlZEtleVNp
emVzKGtleXMpOwogCi0gICAgUmVmUHRyPEhUTUxTZWxlY3RFbGVtZW50PiBzZWxlY3QgPSBLZXln
ZW5TZWxlY3RFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIFJlZjxIVE1MU2VsZWN0RWxl
bWVudD4gc2VsZWN0ID0gS2V5Z2VuU2VsZWN0RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGtleXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgUmVm
UHRyPEhUTUxPcHRpb25FbGVtZW50PiBvcHRpb24gPSBIVE1MT3B0aW9uRWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KTsKLSAgICAgICAgc2VsZWN0LT5hcHBlbmRDaGlsZChvcHRpb24sIElHTk9SRV9F
WENFUFRJT04pOworICAgICAgICBSZWY8SFRNTE9wdGlvbkVsZW1lbnQ+IG9wdGlvbiA9IEhUTUxP
cHRpb25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgICAgICBzZWxlY3QtPmFwcGVuZENo
aWxkKG9wdGlvbi5jb3B5UmVmKCksIElHTk9SRV9FWENFUFRJT04pOwogICAgICAgICBvcHRpb24t
PmFwcGVuZENoaWxkKFRleHQ6OmNyZWF0ZShkb2N1bWVudCwga2V5c1tpXSksIElHTk9SRV9FWENF
UFRJT04pOwogICAgIH0KIAotICAgIGVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKS5hcHBlbmRD
aGlsZChzZWxlY3QsIElHTk9SRV9FWENFUFRJT04pOworICAgIGVuc3VyZVVzZXJBZ2VudFNoYWRv
d1Jvb3QoKS5hcHBlbmRDaGlsZChXVEY6Om1vdmUoc2VsZWN0KSwgSUdOT1JFX0VYQ0VQVElPTik7
CiB9CiAKIFJlZjxIVE1MS2V5Z2VuRWxlbWVudD4gSFRNTEtleWdlbkVsZW1lbnQ6OmNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxGb3Jt
RWxlbWVudCogZm9ybSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVy
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCmlu
ZGV4IDIyYjJmMzk4MWUzOTUyMzc5M2Y1ZTJiMzFlNmNjNWQyOGJmYTc3ODAuLmU1ZTNkZTAzNjgz
ODE1NDVlYTc4NTBjMDhmOTZhN2YxYmMwNzU5OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWV0ZXJFbGVtZW50LmNwcApAQCAtMjI5LDE2ICsyMjksMTYgQEAgdm9pZCBIVE1MTWV0ZXJFbGVt
ZW50OjpkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QqIHJvb3QpCiB7CiAgICAg
QVNTRVJUKCFtX3ZhbHVlKTsKIAotICAgIFJlZlB0cjxNZXRlcklubmVyRWxlbWVudD4gaW5uZXIg
PSBNZXRlcklubmVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwotICAgIHJvb3QtPmFwcGVu
ZENoaWxkKGlubmVyKTsKKyAgICBSZWY8TWV0ZXJJbm5lckVsZW1lbnQ+IGlubmVyID0gTWV0ZXJJ
bm5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKKyAgICByb290LT5hcHBlbmRDaGlsZChp
bm5lci5jb3B5UmVmKCkpOwogCi0gICAgUmVmUHRyPE1ldGVyQmFyRWxlbWVudD4gYmFyID0gTWV0
ZXJCYXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CisgICAgUmVmPE1ldGVyQmFyRWxlbWVu
dD4gYmFyID0gTWV0ZXJCYXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CiAgICAgbV92YWx1
ZSA9IE1ldGVyVmFsdWVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CiAgICAgbV92YWx1ZS0+
c2V0V2lkdGhQZXJjZW50YWdlKDApOwogICAgIG1fdmFsdWUtPnVwZGF0ZVBzZXVkbygpOwotICAg
IGJhci0+YXBwZW5kQ2hpbGQobV92YWx1ZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgYmFy
LT5hcHBlbmRDaGlsZCgqbV92YWx1ZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKLSAgICBpbm5l
ci0+YXBwZW5kQ2hpbGQoYmFyLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBpbm5lci0+YXBw
ZW5kQ2hpbGQoV1RGOjptb3ZlKGJhciksIEFTU0VSVF9OT19FWENFUFRJT04pOwogfQogCiB9IC8v
IG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAppbmRl
eCAyZGZmZjI2MzUzZWY5MWY0ODEwY2UxODc3NzA2YWRjOTUwZmMzNmFlLi5lZDljYWVhMTVhNjIx
MzM4MmMyMGQxZGY2NzRjYWE4ZTJhOWYyMmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxP
cHRpb25FbGVtZW50LmNwcApAQCAtNzEsMTIgKzcxLDEyIEBAIFJlZlB0cjxIVE1MT3B0aW9uRWxl
bWVudD4gSFRNTE9wdGlvbkVsZW1lbnQ6OmNyZWF0ZUZvckpTQ29uc3RydWN0b3IoRG9jdW1lbnQm
IGRvCiB7CiAgICAgUmVmUHRyPEhUTUxPcHRpb25FbGVtZW50PiBlbGVtZW50ID0gYWRvcHRSZWYo
bmV3IEhUTUxPcHRpb25FbGVtZW50KG9wdGlvblRhZywgZG9jdW1lbnQpKTsKIAotICAgIFJlZlB0
cjxUZXh0PiB0ZXh0ID0gVGV4dDo6Y3JlYXRlKGRvY3VtZW50LCBkYXRhLmlzTnVsbCgpID8gIiIg
OiBkYXRhKTsKKyAgICBSZWY8VGV4dD4gdGV4dCA9IFRleHQ6OmNyZWF0ZShkb2N1bWVudCwgZGF0
YS5pc051bGwoKSA/ICIiIDogZGF0YSk7CiAKICAgICBlYyA9IDA7Ci0gICAgZWxlbWVudC0+YXBw
ZW5kQ2hpbGQodGV4dC5yZWxlYXNlKCksIGVjKTsKKyAgICBlbGVtZW50LT5hcHBlbmRDaGlsZChX
VEY6Om1vdmUodGV4dCksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGlmICghdmFsdWUuaXNOdWxsKCkpCiAgICAgICAg
IGVsZW1lbnQtPnNldFZhbHVlKHZhbHVlKTsKQEAgLTg0LDcgKzg0LDcgQEAgUmVmUHRyPEhUTUxP
cHRpb25FbGVtZW50PiBIVE1MT3B0aW9uRWxlbWVudDo6Y3JlYXRlRm9ySlNDb25zdHJ1Y3RvcihE
b2N1bWVudCYgZG8KICAgICAgICAgZWxlbWVudC0+c2V0QXR0cmlidXRlKHNlbGVjdGVkQXR0ciwg
ZW1wdHlBdG9tKTsKICAgICBlbGVtZW50LT5zZXRTZWxlY3RlZChzZWxlY3RlZCk7CiAKLSAgICBy
ZXR1cm4gZWxlbWVudC5yZWxlYXNlKCk7CisgICAgcmV0dXJuIGVsZW1lbnQ7CiB9CiAKIGJvb2wg
SFRNTE9wdGlvbkVsZW1lbnQ6OmlzRm9jdXNhYmxlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwCmluZGV4IDg3ZjBlMzcwY2EwMmMzYWM5YmIxNDZm
YjliZDA3NmViYjRhNDg1MzUuLmRiN2QwNmE4Yjc5MzA1MjNlYWM2OWM5MDdlNDdkYzQ4Mjk3MzJj
MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcApAQCAt
MTQ5LDE2ICsxNDksMTYgQEAgdm9pZCBIVE1MUHJvZ3Jlc3NFbGVtZW50OjpkaWRBZGRVc2VyQWdl
bnRTaGFkb3dSb290KFNoYWRvd1Jvb3QqIHJvb3QpCiB7CiAgICAgQVNTRVJUKCFtX3ZhbHVlKTsK
IAotICAgIFJlZlB0cjxQcm9ncmVzc0lubmVyRWxlbWVudD4gaW5uZXIgPSBQcm9ncmVzc0lubmVy
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwotICAgIHJvb3QtPmFwcGVuZENoaWxkKGlubmVy
KTsKKyAgICBSZWY8UHJvZ3Jlc3NJbm5lckVsZW1lbnQ+IGlubmVyID0gUHJvZ3Jlc3NJbm5lckVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKKyAgICByb290LT5hcHBlbmRDaGlsZChpbm5lci5j
b3B5UmVmKCkpOwogCi0gICAgUmVmUHRyPFByb2dyZXNzQmFyRWxlbWVudD4gYmFyID0gUHJvZ3Jl
c3NCYXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7Ci0gICAgUmVmUHRyPFByb2dyZXNzVmFs
dWVFbGVtZW50PiB2YWx1ZSA9IFByb2dyZXNzVmFsdWVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQo
KSk7Ci0gICAgbV92YWx1ZSA9IHZhbHVlLmdldCgpOworICAgIFJlZjxQcm9ncmVzc0JhckVsZW1l
bnQ+IGJhciA9IFByb2dyZXNzQmFyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOworICAgIFJl
ZjxQcm9ncmVzc1ZhbHVlRWxlbWVudD4gdmFsdWUgPSBQcm9ncmVzc1ZhbHVlRWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50KCkpOworICAgIG1fdmFsdWUgPSB2YWx1ZS5wdHIoKTsKICAgICBtX3ZhbHVl
LT5zZXRXaWR0aFBlcmNlbnRhZ2UoSFRNTFByb2dyZXNzRWxlbWVudDo6SW5kZXRlcm1pbmF0ZVBv
c2l0aW9uICogMTAwKTsKLSAgICBiYXItPmFwcGVuZENoaWxkKG1fdmFsdWUsIEFTU0VSVF9OT19F
WENFUFRJT04pOworICAgIGJhci0+YXBwZW5kQ2hpbGQoKm1fdmFsdWUsIEFTU0VSVF9OT19FWENF
UFRJT04pOwogCi0gICAgaW5uZXItPmFwcGVuZENoaWxkKGJhciwgQVNTRVJUX05PX0VYQ0VQVElP
Tik7CisgICAgaW5uZXItPmFwcGVuZENoaWxkKFdURjo6bW92ZShiYXIpLCBBU1NFUlRfTk9fRVhD
RVBUSU9OKTsKIH0KIAogYm9vbCBIVE1MUHJvZ3Jlc3NFbGVtZW50OjpzaG91bGRBcHBlYXJJbmRl
dGVybWluYXRlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNj
cmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5j
cHAKaW5kZXggNjk1MTE0NjY4MDQ5MTRiN2FiMjA5ZmJlOTYxYzViZjgzMmUxMDdhNy4uZTEzYTVj
ZGRjY2EyY2IzYjc1NmE4ZDNhNTdlMjNmODBhOWI0M2U0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKQEAgLTE2OSw5ICsxNjksOSBAQCB2b2lkIEhUTUxTY3Jp
cHRFbGVtZW50OjpkaXNwYXRjaExvYWRFdmVudCgpCiAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6
Y3JlYXRlKGV2ZW50TmFtZXMoKS5sb2FkRXZlbnQsIGZhbHNlLCBmYWxzZSkpOwogfQogCi1SZWZQ
dHI8RWxlbWVudD4gSFRNTFNjcmlwdEVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1
dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50KQorUmVmPEVsZW1lbnQ+IEhU
TUxTY3JpcHRFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVu
KERvY3VtZW50JiB0YXJnZXREb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhU
TUxTY3JpcHRFbGVtZW50KHRhZ1FOYW1lKCksIHRhcmdldERvY3VtZW50LCBmYWxzZSwgYWxyZWFk
eVN0YXJ0ZWQoKSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxTY3JpcHRFbGVtZW50
KHRhZ1FOYW1lKCksIHRhcmdldERvY3VtZW50LCBmYWxzZSwgYWxyZWFkeVN0YXJ0ZWQoKSkpOwog
fQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKaW5kZXggZTM5YzEw
Y2E1ZTg2YzM2NmE1MzhkMTdjNjY0NGIzYTI0ZDEzODIwOS4uMzEyYzY2MjZlOGI4MzE0ZTg1ZTJk
ZjY4N2RiZjA5ZjJiMmZlMzdiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1l
bnQuaApAQCAtNjUsNyArNjUsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGRpc3Bh
dGNoTG9hZEV2ZW50KCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFJlZlB0cjxFbGVtZW50PiBj
bG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50Jikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBSZWY8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0
ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYpIG92ZXJyaWRlOwogfTsKIAogfSAvL25hbWVzcGFjZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAppbmRleCBlYjczOTQ1MzVk
NDk2MzUzNDZjNjU4MmQxNzU5NmQzZDQzZjA3OTVlLi40ZjEwNDU4MDEzMjI3M2ZkZWRmMTI1Nzhk
NGIxYmI2MTBlY2NhZjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxl
Y3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50
LmNwcApAQCAtMjI3LDcgKzIyNyw3IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmFkZChIVE1M
RWxlbWVudCogZWxlbWVudCwgSFRNTEVsZW1lbnQqIGJlZm9yZUVsZW1lbnQsIEV4CiAgICAgLy8g
TWFrZSBzdXJlIHRoZSBlbGVtZW50IGlzIHJlZidkIGFuZCBkZXJlZidkIHNvIHdlIGRvbid0IGxl
YWsgaXQuCiAgICAgUmVmPEhUTUxFbGVtZW50PiBwcm90ZWN0TmV3Q2hpbGQoKmVsZW1lbnQpOwog
Ci0gICAgaW5zZXJ0QmVmb3JlKGVsZW1lbnQsIGJlZm9yZUVsZW1lbnQsIGVjKTsKKyAgICBpbnNl
cnRCZWZvcmUoKmVsZW1lbnQsIGJlZm9yZUVsZW1lbnQsIGVjKTsKICAgICB1cGRhdGVWYWxpZGl0
eSgpOwogfQogCkBAIC00ODYsMTIgKzQ4NiwxMiBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50Ojpz
ZXRMZW5ndGgodW5zaWduZWQgbmV3TGVuLCBFeGNlcHRpb25Db2RlJiBlYykKIAogICAgICAgICAv
LyBSZW1vdmluZyBjaGlsZHJlbiBmaXJlcyBtdXRhdGlvbiBldmVudHMsIHdoaWNoIG1pZ2h0IG11
dGF0ZSB0aGUgRE9NIGZ1cnRoZXIsIHNvIHdlIGZpcnN0IGNvcHkgb3V0IGEgbGlzdAogICAgICAg
ICAvLyBvZiBlbGVtZW50cyB0aGF0IHdlIGludGVuZCB0byByZW1vdmUgdGhlbiBhdHRlbXB0IHRv
IHJlbW92ZSB0aGVtIG9uZSBhdCBhIHRpbWUuCi0gICAgICAgIFZlY3RvcjxSZWZQdHI8RWxlbWVu
dD4+IGl0ZW1zVG9SZW1vdmU7CisgICAgICAgIFZlY3RvcjxSZWY8RWxlbWVudD4+IGl0ZW1zVG9S
ZW1vdmU7CiAgICAgICAgIHNpemVfdCBvcHRpb25JbmRleCA9IDA7CiAgICAgICAgIGZvciAoYXV0
byYgaXRlbSA6IGl0ZW1zKSB7CiAgICAgICAgICAgICBpZiAoaXM8SFRNTE9wdGlvbkVsZW1lbnQ+
KCppdGVtKSAmJiBvcHRpb25JbmRleCsrID49IG5ld0xlbikgewogICAgICAgICAgICAgICAgIEFT
U0VSVChpdGVtLT5wYXJlbnROb2RlKCkpOwotICAgICAgICAgICAgICAgIGl0ZW1zVG9SZW1vdmUu
YXBwZW5kKGl0ZW0pOworICAgICAgICAgICAgICAgIGl0ZW1zVG9SZW1vdmUuYXBwZW5kKCppdGVt
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFi
bGVFbGVtZW50LmNwcAppbmRleCBjZmI0ZGUzZmEzNjc4MDJhMzAzMWQ2YWU4ZTg1ZmIzOGVkNGFi
YjA2Li5jZjllOWE1ZjJmYTU3NWU4ZmY4ZGY4ZmMzZDAzMDIxOGMxNTQ4MTFjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAKQEAgLTgxLDcgKzgxLDcgQEAgdm9pZCBI
VE1MVGFibGVFbGVtZW50OjpzZXRDYXB0aW9uKFBhc3NSZWZQdHI8SFRNTFRhYmxlQ2FwdGlvbkVs
ZW1lbnQ+IG5ld0NhcHRpb24KIHsKICAgICBkZWxldGVDYXB0aW9uKCk7CiAgICAgaWYgKG5ld0Nh
cHRpb24pCi0gICAgICAgIGluc2VydEJlZm9yZShuZXdDYXB0aW9uLCBmaXJzdENoaWxkKCksIGVj
KTsKKyAgICAgICAgaW5zZXJ0QmVmb3JlKCpuZXdDYXB0aW9uLCBmaXJzdENoaWxkKCksIGVjKTsK
IH0KIAogSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqIEhUTUxUYWJsZUVsZW1lbnQ6OnRIZWFkKCkg
Y29uc3QKQEAgLTExMCw3ICsxMTAsNyBAQCB2b2lkIEhUTUxUYWJsZUVsZW1lbnQ6OnNldFRIZWFk
KFBhc3NSZWZQdHI8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+IG5ld0hlYWQsIEV4YwogICAgICAg
ICBpZiAoY2hpbGQtPmlzRWxlbWVudE5vZGUoKSAmJiAhY2hpbGQtPmhhc1RhZ05hbWUoY2FwdGlv
blRhZykgJiYgIWNoaWxkLT5oYXNUYWdOYW1lKGNvbGdyb3VwVGFnKSkKICAgICAgICAgICAgIGJy
ZWFrOwogCi0gICAgaW5zZXJ0QmVmb3JlKG5ld0hlYWQsIGNoaWxkLCBlYyk7CisgICAgaW5zZXJ0
QmVmb3JlKCpuZXdIZWFkLCBjaGlsZCwgZWMpOwogfQogCiBIVE1MVGFibGVTZWN0aW9uRWxlbWVu
dCogSFRNTFRhYmxlRWxlbWVudDo6dEZvb3QoKSBjb25zdApAQCAtMTM5LDU3ICsxMzksNjAgQEAg
dm9pZCBIVE1MVGFibGVFbGVtZW50OjpzZXRURm9vdChQYXNzUmVmUHRyPEhUTUxUYWJsZVNlY3Rp
b25FbGVtZW50PiBuZXdGb290LCBFeGMKICAgICAgICAgaWYgKGNoaWxkLT5pc0VsZW1lbnROb2Rl
KCkgJiYgIWNoaWxkLT5oYXNUYWdOYW1lKGNhcHRpb25UYWcpICYmICFjaGlsZC0+aGFzVGFnTmFt
ZShjb2xncm91cFRhZykgJiYgIWNoaWxkLT5oYXNUYWdOYW1lKHRoZWFkVGFnKSkKICAgICAgICAg
ICAgIGJyZWFrOwogCi0gICAgaW5zZXJ0QmVmb3JlKG5ld0Zvb3QsIGNoaWxkLCBlYyk7CisgICAg
aW5zZXJ0QmVmb3JlKCpuZXdGb290LCBjaGlsZCwgZWMpOwogfQogCi1SZWZQdHI8SFRNTEVsZW1l
bnQ+IEhUTUxUYWJsZUVsZW1lbnQ6OmNyZWF0ZVRIZWFkKCkKK1JlZjxIVE1MVGFibGVTZWN0aW9u
RWxlbWVudD4gSFRNTFRhYmxlRWxlbWVudDo6Y3JlYXRlVEhlYWQoKQogewogICAgIGlmIChIVE1M
VGFibGVTZWN0aW9uRWxlbWVudCogZXhpc3RpbmdIZWFkID0gdEhlYWQoKSkKLSAgICAgICAgcmV0
dXJuIGV4aXN0aW5nSGVhZDsKLSAgICBSZWZQdHI8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+IGhl
YWQgPSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDo6Y3JlYXRlKHRoZWFkVGFnLCBkb2N1bWVudCgp
KTsKLSAgICBzZXRUSGVhZChoZWFkLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgcmV0dXJu
ICpleGlzdGluZ0hlYWQ7CisgICAgUmVmPEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50PiBoZWFkID0g
SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ6OmNyZWF0ZSh0aGVhZFRhZywgZG9jdW1lbnQoKSk7Cisg
ICAgc2V0VEhlYWQoaGVhZC5wdHIoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgcmV0dXJuIGhl
YWQ7CiB9CiAKIHZvaWQgSFRNTFRhYmxlRWxlbWVudDo6ZGVsZXRlVEhlYWQoKQogewotICAgIHJl
bW92ZUNoaWxkKHRIZWFkKCksIElHTk9SRV9FWENFUFRJT04pOworICAgIGlmIChhdXRvKiB0SGVh
ZCA9IHRoaXMtPnRIZWFkKCkpCisgICAgICAgIHJlbW92ZUNoaWxkKCp0SGVhZCwgSUdOT1JFX0VY
Q0VQVElPTik7CiB9CiAKLVJlZlB0cjxIVE1MRWxlbWVudD4gSFRNTFRhYmxlRWxlbWVudDo6Y3Jl
YXRlVEZvb3QoKQorUmVmPEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50PiBIVE1MVGFibGVFbGVtZW50
OjpjcmVhdGVURm9vdCgpCiB7CiAgICAgaWYgKEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KiBleGlz
dGluZ0Zvb3QgPSB0Rm9vdCgpKQotICAgICAgICByZXR1cm4gZXhpc3RpbmdGb290OwotICAgIFJl
ZlB0cjxIVE1MVGFibGVTZWN0aW9uRWxlbWVudD4gZm9vdCA9IEhUTUxUYWJsZVNlY3Rpb25FbGVt
ZW50OjpjcmVhdGUodGZvb3RUYWcsIGRvY3VtZW50KCkpOwotICAgIHNldFRGb290KGZvb3QsIElH
Tk9SRV9FWENFUFRJT04pOworICAgICAgICByZXR1cm4gKmV4aXN0aW5nRm9vdDsKKyAgICBSZWY8
SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+IGZvb3QgPSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDo6
Y3JlYXRlKHRmb290VGFnLCBkb2N1bWVudCgpKTsKKyAgICBzZXRURm9vdChmb290LnB0cigpLCBJ
R05PUkVfRVhDRVBUSU9OKTsKICAgICByZXR1cm4gZm9vdDsKIH0KIAogdm9pZCBIVE1MVGFibGVF
bGVtZW50OjpkZWxldGVURm9vdCgpCiB7Ci0gICAgcmVtb3ZlQ2hpbGQodEZvb3QoKSwgSUdOT1JF
X0VYQ0VQVElPTik7CisgICAgaWYgKGF1dG8qIHRGb290ID0gdGhpcy0+dEZvb3QoKSkKKyAgICAg
ICAgcmVtb3ZlQ2hpbGQoKnRGb290LCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KIAotUmVmUHRyPEhU
TUxFbGVtZW50PiBIVE1MVGFibGVFbGVtZW50OjpjcmVhdGVUQm9keSgpCitSZWY8SFRNTFRhYmxl
U2VjdGlvbkVsZW1lbnQ+IEhUTUxUYWJsZUVsZW1lbnQ6OmNyZWF0ZVRCb2R5KCkKIHsKLSAgICBS
ZWZQdHI8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+IGJvZHkgPSBIVE1MVGFibGVTZWN0aW9uRWxl
bWVudDo6Y3JlYXRlKHRib2R5VGFnLCBkb2N1bWVudCgpKTsKLSAgICBOb2RlKiByZWZlcmVuY2VF
bGVtZW50ID0gbGFzdEJvZHkoKSA/IGxhc3RCb2R5KCktPm5leHRTaWJsaW5nKCkgOiAwOwotICAg
IGluc2VydEJlZm9yZShib2R5LCByZWZlcmVuY2VFbGVtZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKKyAgICBSZWY8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+IGJvZHkgPSBIVE1MVGFibGVTZWN0
aW9uRWxlbWVudDo6Y3JlYXRlKHRib2R5VGFnLCBkb2N1bWVudCgpKTsKKyAgICBOb2RlKiByZWZl
cmVuY2VFbGVtZW50ID0gbGFzdEJvZHkoKSA/IGxhc3RCb2R5KCktPm5leHRTaWJsaW5nKCkgOiBu
dWxscHRyOworICAgIGluc2VydEJlZm9yZShib2R5LmNvcHlSZWYoKSwgcmVmZXJlbmNlRWxlbWVu
dCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgcmV0dXJuIGJvZHk7CiB9CiAKLVJlZlB0cjxI
VE1MRWxlbWVudD4gSFRNTFRhYmxlRWxlbWVudDo6Y3JlYXRlQ2FwdGlvbigpCitSZWY8SFRNTFRh
YmxlQ2FwdGlvbkVsZW1lbnQ+IEhUTUxUYWJsZUVsZW1lbnQ6OmNyZWF0ZUNhcHRpb24oKQogewog
ICAgIGlmIChIVE1MVGFibGVDYXB0aW9uRWxlbWVudCogZXhpc3RpbmdDYXB0aW9uID0gY2FwdGlv
bigpKQotICAgICAgICByZXR1cm4gZXhpc3RpbmdDYXB0aW9uOwotICAgIFJlZlB0cjxIVE1MVGFi
bGVDYXB0aW9uRWxlbWVudD4gY2FwdGlvbiA9IEhUTUxUYWJsZUNhcHRpb25FbGVtZW50OjpjcmVh
dGUoY2FwdGlvblRhZywgZG9jdW1lbnQoKSk7Ci0gICAgc2V0Q2FwdGlvbihjYXB0aW9uLCBJR05P
UkVfRVhDRVBUSU9OKTsKKyAgICAgICAgcmV0dXJuICpleGlzdGluZ0NhcHRpb247CisgICAgUmVm
PEhUTUxUYWJsZUNhcHRpb25FbGVtZW50PiBjYXB0aW9uID0gSFRNTFRhYmxlQ2FwdGlvbkVsZW1l
bnQ6OmNyZWF0ZShjYXB0aW9uVGFnLCBkb2N1bWVudCgpKTsKKyAgICBzZXRDYXB0aW9uKGNhcHRp
b24ucHRyKCksIElHTk9SRV9FWENFUFRJT04pOwogICAgIHJldHVybiBjYXB0aW9uOwogfQogCiB2
b2lkIEhUTUxUYWJsZUVsZW1lbnQ6OmRlbGV0ZUNhcHRpb24oKQogewotICAgIHJlbW92ZUNoaWxk
KGNhcHRpb24oKSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgaWYgKGF1dG8qIGNhcHRpb24gPSB0
aGlzLT5jYXB0aW9uKCkpCisgICAgICAgIHJlbW92ZUNoaWxkKCpjYXB0aW9uLCBJR05PUkVfRVhD
RVBUSU9OKTsKIH0KIAogSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqIEhUTUxUYWJsZUVsZW1lbnQ6
Omxhc3RCb2R5KCkgY29uc3QKQEAgLTIzNCwyMiArMjM3LDIyIEBAIFJlZlB0cjxIVE1MRWxlbWVu
dD4gSFRNTFRhYmxlRWxlbWVudDo6aW5zZXJ0Um93KGludCBpbmRleCwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiAgICAgZWxzZSB7CiAgICAgICAgIHBhcmVudCA9IGxhc3RCb2R5KCk7CiAgICAgICAgIGlm
ICghcGFyZW50KSB7Ci0gICAgICAgICAgICBSZWZQdHI8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+
IG5ld0JvZHkgPSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDo6Y3JlYXRlKHRib2R5VGFnLCBkb2N1
bWVudCgpKTsKLSAgICAgICAgICAgIFJlZlB0cjxIVE1MVGFibGVSb3dFbGVtZW50PiBuZXdSb3cg
PSBIVE1MVGFibGVSb3dFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7Ci0gICAgICAgICAgICBu
ZXdCb2R5LT5hcHBlbmRDaGlsZChuZXdSb3csIGVjKTsKLSAgICAgICAgICAgIGFwcGVuZENoaWxk
KG5ld0JvZHkucmVsZWFzZSgpLCBlYyk7Ci0gICAgICAgICAgICByZXR1cm4gbmV3Um93OworICAg
ICAgICAgICAgUmVmPEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50PiBuZXdCb2R5ID0gSFRNTFRhYmxl
U2VjdGlvbkVsZW1lbnQ6OmNyZWF0ZSh0Ym9keVRhZywgZG9jdW1lbnQoKSk7CisgICAgICAgICAg
ICBSZWY8SFRNTFRhYmxlUm93RWxlbWVudD4gbmV3Um93ID0gSFRNTFRhYmxlUm93RWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50KCkpOworICAgICAgICAgICAgbmV3Qm9keS0+YXBwZW5kQ2hpbGQobmV3
Um93LmNvcHlSZWYoKSwgZWMpOworICAgICAgICAgICAgYXBwZW5kQ2hpbGQoV1RGOjptb3ZlKG5l
d0JvZHkpLCBlYyk7CisgICAgICAgICAgICByZXR1cm4gV1RGOjptb3ZlKG5ld1Jvdyk7CiAgICAg
ICAgIH0KICAgICB9CiAKLSAgICBSZWZQdHI8SFRNTFRhYmxlUm93RWxlbWVudD4gbmV3Um93ID0g
SFRNTFRhYmxlUm93RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwotICAgIHBhcmVudC0+aW5z
ZXJ0QmVmb3JlKG5ld1Jvdywgcm93LmdldCgpLCBlYyk7Ci0gICAgcmV0dXJuIG5ld1JvdzsKKyAg
ICBSZWY8SFRNTFRhYmxlUm93RWxlbWVudD4gbmV3Um93ID0gSFRNTFRhYmxlUm93RWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50KCkpOworICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG5ld1Jvdy5jb3B5
UmVmKCksIHJvdy5nZXQoKSwgZWMpOworICAgIHJldHVybiBXVEY6Om1vdmUobmV3Um93KTsKIH0K
IAogdm9pZCBIVE1MVGFibGVFbGVtZW50OjpkZWxldGVSb3coaW50IGluZGV4LCBFeGNlcHRpb25D
b2RlJiBlYykKIHsKLSAgICBIVE1MVGFibGVSb3dFbGVtZW50KiByb3cgPSAwOworICAgIEhUTUxU
YWJsZVJvd0VsZW1lbnQqIHJvdyA9IG51bGxwdHI7CiAgICAgaWYgKGluZGV4ID09IC0xKQogICAg
ICAgICByb3cgPSBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbjo6bGFzdFJvdygqdGhpcyk7CiAgICAg
ZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5oCmluZGV4IGNmNWY0YTBj
ZDQ2Y2EzNjc1YjI0MGZjZjMyMzAyMzczNzVmZDM0MmUuLjMwNzU4MzUyNDI4NGY4MDhmNTFmZTM4
NTJhZjEwZWFiNTMwZTQxN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRh
YmxlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5o
CkBAIC00OSwxMiArNDksMTIgQEAgcHVibGljOgogICAgIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50
KiB0Rm9vdCgpIGNvbnN0OwogICAgIHZvaWQgc2V0VEZvb3QoUGFzc1JlZlB0cjxIVE1MVGFibGVT
ZWN0aW9uRWxlbWVudD4sIEV4Y2VwdGlvbkNvZGUmKTsKIAotICAgIFJlZlB0cjxIVE1MRWxlbWVu
dD4gY3JlYXRlVEhlYWQoKTsKKyAgICBSZWY8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+IGNyZWF0
ZVRIZWFkKCk7CiAgICAgdm9pZCBkZWxldGVUSGVhZCgpOwotICAgIFJlZlB0cjxIVE1MRWxlbWVu
dD4gY3JlYXRlVEZvb3QoKTsKKyAgICBSZWY8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+IGNyZWF0
ZVRGb290KCk7CiAgICAgdm9pZCBkZWxldGVURm9vdCgpOwotICAgIFJlZlB0cjxIVE1MRWxlbWVu
dD4gY3JlYXRlVEJvZHkoKTsKLSAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZUNhcHRpb24o
KTsKKyAgICBSZWY8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+IGNyZWF0ZVRCb2R5KCk7CisgICAg
UmVmPEhUTUxUYWJsZUNhcHRpb25FbGVtZW50PiBjcmVhdGVDYXB0aW9uKCk7CiAgICAgdm9pZCBk
ZWxldGVDYXB0aW9uKCk7CiAgICAgUmVmUHRyPEhUTUxFbGVtZW50PiBpbnNlcnRSb3coRXhjZXB0
aW9uQ29kZSYgZWMpIHsgcmV0dXJuIGluc2VydFJvdygtMSwgZWMpOyB9CiAgICAgUmVmUHRyPEhU
TUxFbGVtZW50PiBpbnNlcnRSb3coaW50IGluZGV4LCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmNwcAppbmRleCBjODcyNTlmNWVjYjk2
ZDBhYTYwNDhkNGQxNGFlOGI2MGY5M2I2OGI2Li5kODg5M2NkOWExZmYzYjhlYzMzNDJiNTA4ZDY3
ZTMzNjM3NjkzMmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJv
d0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVu
dC5jcHAKQEAgLTI4LDcgKzI4LDYgQEAKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5j
bHVkZSAiR2VuZXJpY0NhY2hlZEhUTUxDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVz
LmgiCi0jaW5jbHVkZSAiSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVGFi
bGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCIKICNpbmNs
dWRlICJOb2RlTGlzdC5oIgpAQCAtMTE5LDI3ICsxMTgsMjcgQEAgaW50IEhUTUxUYWJsZVJvd0Vs
ZW1lbnQ6OnNlY3Rpb25Sb3dJbmRleCgpIGNvbnN0CiAgICAgcmV0dXJuIHJJbmRleDsKIH0KIAot
UmVmUHRyPEhUTUxFbGVtZW50PiBIVE1MVGFibGVSb3dFbGVtZW50OjppbnNlcnRDZWxsKGludCBp
bmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCitSZWZQdHI8SFRNTFRhYmxlQ2VsbEVsZW1lbnQ+IEhU
TUxUYWJsZVJvd0VsZW1lbnQ6Omluc2VydENlbGwoaW50IGluZGV4LCBFeGNlcHRpb25Db2RlJiBl
YykKIHsKICAgICBSZWY8SFRNTENvbGxlY3Rpb24+IGNoaWxkcmVuID0gY2VsbHMoKTsKICAgICBp
bnQgbnVtQ2VsbHMgPSBjaGlsZHJlbi0+bGVuZ3RoKCk7CiAgICAgaWYgKGluZGV4IDwgLTEgfHwg
aW5kZXggPiBudW1DZWxscykgewogICAgICAgICBlYyA9IElOREVYX1NJWkVfRVJSOwotICAgICAg
ICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgUmVmUHRy
PEhUTUxUYWJsZUNlbGxFbGVtZW50PiBjZWxsID0gSFRNTFRhYmxlQ2VsbEVsZW1lbnQ6OmNyZWF0
ZSh0ZFRhZywgZG9jdW1lbnQoKSk7CisgICAgUmVmPEhUTUxUYWJsZUNlbGxFbGVtZW50PiBjZWxs
ID0gSFRNTFRhYmxlQ2VsbEVsZW1lbnQ6OmNyZWF0ZSh0ZFRhZywgZG9jdW1lbnQoKSk7CiAgICAg
aWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSBudW1DZWxscykKLSAgICAgICAgYXBwZW5kQ2hpbGQo
Y2VsbCwgZWMpOworICAgICAgICBhcHBlbmRDaGlsZChjZWxsLmNvcHlSZWYoKSwgZWMpOwogICAg
IGVsc2UgewogICAgICAgICBOb2RlKiBuOwogICAgICAgICBpZiAoaW5kZXggPCAxKQogICAgICAg
ICAgICAgbiA9IGZpcnN0Q2hpbGQoKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbiA9IGNo
aWxkcmVuLT5pdGVtKGluZGV4KTsKLSAgICAgICAgaW5zZXJ0QmVmb3JlKGNlbGwsIG4sIGVjKTsK
KyAgICAgICAgaW5zZXJ0QmVmb3JlKGNlbGwuY29weVJlZigpLCBuLCBlYyk7CiAgICAgfQotICAg
IHJldHVybiBjZWxsOworICAgIHJldHVybiBXVEY6Om1vdmUoY2VsbCk7CiB9CiAKIHZvaWQgSFRN
TFRhYmxlUm93RWxlbWVudDo6ZGVsZXRlQ2VsbChpbnQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVj
KQpAQCAtMTUwLDcgKzE0OSw3IEBAIHZvaWQgSFRNTFRhYmxlUm93RWxlbWVudDo6ZGVsZXRlQ2Vs
bChpbnQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICBpbmRleCA9IG51bUNlbGxz
LTE7CiAgICAgaWYgKGluZGV4ID49IDAgJiYgaW5kZXggPCBudW1DZWxscykgewogICAgICAgICBS
ZWZQdHI8Tm9kZT4gY2VsbCA9IGNoaWxkcmVuLT5pdGVtKGluZGV4KTsKLSAgICAgICAgSFRNTEVs
ZW1lbnQ6OnJlbW92ZUNoaWxkKGNlbGwuZ2V0KCksIGVjKTsKKyAgICAgICAgSFRNTEVsZW1lbnQ6
OnJlbW92ZUNoaWxkKCpjZWxsLCBlYyk7CiAgICAgfSBlbHNlCiAgICAgICAgIGVjID0gSU5ERVhf
U0laRV9FUlI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJv
d0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5oCmlu
ZGV4IGM5OTdhZWM5MWYxNDIxMDJhNDlhYWU1ODhjYjU2Yjg0OGU4NzhhMTMuLmM5ZGY1YjZjNWM2
ODM2NjVjNjAxNWNjODgyZjI2NGUzZTFmMzMxY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlUm93RWxlbWVudC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEhUTUxUYWJsZVJv
d0VsZW1lbnRfaAogI2RlZmluZSBIVE1MVGFibGVSb3dFbGVtZW50X2gKIAorI2luY2x1ZGUgIkhU
TUxUYWJsZUNlbGxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRhYmxlUGFydEVsZW1lbnQuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDEsOCArNDIsOCBAQCBwdWJsaWM6CiAgICAgaW50
IHNlY3Rpb25Sb3dJbmRleCgpIGNvbnN0OwogICAgIHZvaWQgc2V0U2VjdGlvblJvd0luZGV4KGlu
dCk7CiAKLSAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IGluc2VydENlbGwoRXhjZXB0aW9uQ29kZSYg
ZWMpIHsgcmV0dXJuIGluc2VydENlbGwoLTEsIGVjKTsgfQotICAgIFJlZlB0cjxIVE1MRWxlbWVu
dD4gaW5zZXJ0Q2VsbChpbnQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBSZWZQdHI8SFRN
TFRhYmxlQ2VsbEVsZW1lbnQ+IGluc2VydENlbGwoRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJu
IGluc2VydENlbGwoLTEsIGVjKTsgfQorICAgIFJlZlB0cjxIVE1MVGFibGVDZWxsRWxlbWVudD4g
aW5zZXJ0Q2VsbChpbnQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIGRlbGV0ZUNl
bGwoaW50IGluZGV4LCBFeGNlcHRpb25Db2RlJik7CiAKICAgICBSZWY8SFRNTENvbGxlY3Rpb24+
IGNlbGxzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVNlY3Rp
b25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1l
bnQuY3BwCmluZGV4IDllNDUzMTZmOGYzZjRmYzZkYThlM2RjZGIxYjNlNGUyZGQ5MjdkODYuLmZk
MDJjNjAyZjk0NmNmMzRkMTBlODNjMjIyMjQ4ZmEzODgwMTIzZWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwCkBAIC02OCwxNCArNjgsMTQg
QEAgUmVmUHRyPEhUTUxFbGVtZW50PiBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDo6aW5zZXJ0Um93
KGludCBpbmRleCwgRXhjZXB0aW9uQ29kZSYKICAgICBlbHNlIHsKICAgICAgICAgcm93ID0gSFRN
TFRhYmxlUm93RWxlbWVudDo6Y3JlYXRlKHRyVGFnLCBkb2N1bWVudCgpKTsKICAgICAgICAgaWYg
KG51bVJvd3MgPT0gaW5kZXggfHwgaW5kZXggPT0gLTEpCi0gICAgICAgICAgICBhcHBlbmRDaGls
ZChyb3csIGVjKTsKKyAgICAgICAgICAgIGFwcGVuZENoaWxkKCpyb3csIGVjKTsKICAgICAgICAg
ZWxzZSB7CiAgICAgICAgICAgICBOb2RlKiBuOwogICAgICAgICAgICAgaWYgKGluZGV4IDwgMSkK
ICAgICAgICAgICAgICAgICBuID0gZmlyc3RDaGlsZCgpOwogICAgICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgICAgIG4gPSBjaGlsZHJlbi0+aXRlbShpbmRleCk7Ci0gICAgICAgICAgICBpbnNl
cnRCZWZvcmUocm93LCBuLCBlYyk7CisgICAgICAgICAgICBpbnNlcnRCZWZvcmUoKnJvdywgbiwg
ZWMpOwogICAgICAgICB9CiAgICAgfQogICAgIHJldHVybiByb3c7CkBAIC04OSw3ICs4OSw3IEBA
IHZvaWQgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ6OmRlbGV0ZVJvdyhpbnQgaW5kZXgsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogICAgICAgICBpbmRleCA9IG51bVJvd3MgLSAxOwogICAgIGlmIChpbmRl
eCA+PSAwICYmIGluZGV4IDwgbnVtUm93cykgewogICAgICAgICBSZWZQdHI8Tm9kZT4gcm93ID0g
Y2hpbGRyZW4tPml0ZW0oaW5kZXgpOwotICAgICAgICBIVE1MRWxlbWVudDo6cmVtb3ZlQ2hpbGQo
cm93LmdldCgpLCBlYyk7CisgICAgICAgIEhUTUxFbGVtZW50OjpyZW1vdmVDaGlsZCgqcm93LCBl
Yyk7CiAgICAgfSBlbHNlCiAgICAgICAgIGVjID0gSU5ERVhfU0laRV9FUlI7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmNwcAppbmRleCBhZWMzMDEwZjZkNmNm
ZTFiZWRiMzJjNDk3MDlhZWNhZDBiNmQ3ZjcyLi4yZTFlZGIyMzZjMDc4ZWViNmRlYmU2ZTllNTYx
MWU3MTdjZGM4MzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0
ZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVu
dC5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgRG9jdW1lbnRGcmFnbWVudCogSFRNTFRlbXBsYXRlRWxl
bWVudDo6Y29udGVudCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY29udGVudC5nZXQoKTsKIH0KIAot
UmVmUHRyPE5vZGU+IEhUTUxUZW1wbGF0ZUVsZW1lbnQ6OmNsb25lTm9kZUludGVybmFsKERvY3Vt
ZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbiB0eXBlKQorUmVmPE5vZGU+IEhU
TUxUZW1wbGF0ZUVsZW1lbnQ6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1
bWVudCwgQ2xvbmluZ09wZXJhdGlvbiB0eXBlKQogewogICAgIFJlZlB0cjxOb2RlPiBjbG9uZTsK
ICAgICBzd2l0Y2ggKHR5cGUpIHsKQEAgLTgyLDggKzgyLDggQEAgUmVmUHRyPE5vZGU+IEhUTUxU
ZW1wbGF0ZUVsZW1lbnQ6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVu
dCwgQ2wKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGlmIChtX2NvbnRlbnQpCi0gICAgICAg
IGNvbnRlbnQoKS0+Y2xvbmVDaGlsZE5vZGVzKGRvd25jYXN0PEhUTUxUZW1wbGF0ZUVsZW1lbnQ+
KGNsb25lLmdldCgpKS0+Y29udGVudCgpKTsKLSAgICByZXR1cm4gY2xvbmUucmVsZWFzZSgpOwor
ICAgICAgICBjb250ZW50KCktPmNsb25lQ2hpbGROb2RlcygqZG93bmNhc3Q8SFRNTFRlbXBsYXRl
RWxlbWVudD4oY2xvbmUuZ2V0KCkpLT5jb250ZW50KCkpOworICAgIHJldHVybiBjbG9uZS5yZWxl
YXNlTm9uTnVsbCgpOwogfQogCiB2b2lkIEhUTUxUZW1wbGF0ZUVsZW1lbnQ6OmRpZE1vdmVUb05l
d0RvY3VtZW50KERvY3VtZW50KiBvbGREb2N1bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGVtcGxhdGVFbGVtZW50LmgKaW5kZXggNzY3ZjJhMTg0ZWE4NTM3ZGJjMzY0NDVkYWI4MmM4NWUw
MDVmMDc0Yi4uZDFmYTg2NDA2OWRjYjc1MDljOWYxODc3MGRhYjUyZjFlODU2YmQxNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgKQEAgLTUwLDcgKzUwLDcgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MVGVtcGxhdGVFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgdmlydHVhbCBSZWZQdHI8Tm9kZT4gY2xvbmVOb2Rl
SW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRp
b24pIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1
bWVudCogb2xkRG9jdW1lbnQpIG92ZXJyaWRlOwogCiAgICAgbXV0YWJsZSBSZWZQdHI8VGVtcGxh
dGVDb250ZW50RG9jdW1lbnRGcmFnbWVudD4gbV9jb250ZW50OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKaW5kZXggOTM5MjkxMTU1MDkyNjE3N2ViMDZmYzQy
MWU1YTJkMDlkN2E5MjFlNi4uYTJkZTczMGM1ZTdjOWQxZTVjMjBkOTBiMmQ0MjNjMjhlZTRkYzVl
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCkBAIC00
MDYsOSArNDA2LDkgQEAgdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50OjpzZXREZWZhdWx0VmFsdWUo
Y29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUpCiAgICAgUmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+
IHByb3RlY3RGcm9tTXV0YXRpb25FdmVudHMoKnRoaXMpOwogCiAgICAgLy8gVG8gcHJlc2VydmUg
Y29tbWVudHMsIHJlbW92ZSBvbmx5IHRoZSB0ZXh0IG5vZGVzLCB0aGVuIGFkZCBhIHNpbmdsZSB0
ZXh0IG5vZGUuCi0gICAgVmVjdG9yPFJlZlB0cjxUZXh0Pj4gdGV4dE5vZGVzOworICAgIFZlY3Rv
cjxSZWY8VGV4dD4+IHRleHROb2RlczsKICAgICBmb3IgKFRleHQqIHRleHROb2RlID0gVGV4dE5v
ZGVUcmF2ZXJzYWw6OmZpcnN0Q2hpbGQoKnRoaXMpOyB0ZXh0Tm9kZTsgdGV4dE5vZGUgPSBUZXh0
Tm9kZVRyYXZlcnNhbDo6bmV4dFNpYmxpbmcoKnRleHROb2RlKSkKLSAgICAgICAgdGV4dE5vZGVz
LmFwcGVuZCh0ZXh0Tm9kZSk7CisgICAgICAgIHRleHROb2Rlcy5hcHBlbmQoKnRleHROb2RlKTsK
IAogICAgIHNpemVfdCBzaXplID0gdGV4dE5vZGVzLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHNpemU7ICsraSkKQEAgLTUyMyw4ICs1MjMsOCBAQCB2b2lkIEhUTUxUZXh0QXJl
YUVsZW1lbnQ6OnVwZGF0ZVBsYWNlaG9sZGVyVGV4dCgpCiAgICAgU3RyaW5nIHBsYWNlaG9sZGVy
VGV4dCA9IHN0cmlwcGVkUGxhY2Vob2xkZXIoKTsKICAgICBpZiAocGxhY2Vob2xkZXJUZXh0Lmlz
RW1wdHkoKSkgewogICAgICAgICBpZiAobV9wbGFjZWhvbGRlcikgewotICAgICAgICAgICAgdXNl
ckFnZW50U2hhZG93Um9vdCgpLT5yZW1vdmVDaGlsZChtX3BsYWNlaG9sZGVyLCBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKLSAgICAgICAgICAgIG1fcGxhY2Vob2xkZXIgPSAwOworICAgICAgICAgICAg
dXNlckFnZW50U2hhZG93Um9vdCgpLT5yZW1vdmVDaGlsZCgqbV9wbGFjZWhvbGRlciwgQVNTRVJU
X05PX0VYQ0VQVElPTik7CisgICAgICAgICAgICBtX3BsYWNlaG9sZGVyID0gbnVsbHB0cjsKICAg
ICAgICAgfQogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNTMzLDcgKzUzMyw3IEBAIHZvaWQg
SFRNTFRleHRBcmVhRWxlbWVudDo6dXBkYXRlUGxhY2Vob2xkZXJUZXh0KCkKICAgICAgICAgbV9w
bGFjZWhvbGRlciA9IHBsYWNlaG9sZGVyLmdldCgpOwogICAgICAgICBtX3BsYWNlaG9sZGVyLT5z
ZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAgICBtX3BsYWNlaG9sZGVyLT5z
ZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5RGlzcGxheSwgaXNQbGFjZWhvbGRlclZp
c2libGUoKSA/IENTU1ZhbHVlQmxvY2sgOiBDU1NWYWx1ZU5vbmUsIHRydWUpOwotICAgICAgICB1
c2VyQWdlbnRTaGFkb3dSb290KCktPmluc2VydEJlZm9yZShtX3BsYWNlaG9sZGVyLCBpbm5lclRl
eHRFbGVtZW50KCktPm5leHRTaWJsaW5nKCkpOworICAgICAgICB1c2VyQWdlbnRTaGFkb3dSb290
KCktPmluc2VydEJlZm9yZSgqbV9wbGFjZWhvbGRlciwgaW5uZXJUZXh0RWxlbWVudCgpLT5uZXh0
U2libGluZygpKTsKICAgICB9CiAgICAgbV9wbGFjZWhvbGRlci0+c2V0SW5uZXJUZXh0KHBsYWNl
aG9sZGVyVGV4dCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0ltYWdlRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFn
ZURvY3VtZW50LmNwcAppbmRleCA4MWI1ZWVlZDk1NTFiZmI2ZTMzM2Q0YzFkOWI3OTZjZDc5ZDYx
ZmNjLi4wM2RiMzc5NzdiMGZlMWFhODdkNmRhNjk0YzJiMzM2MTYxN2IxOTc3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW1hZ2VEb2N1bWVudC5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgcHJpdmF0ZToKIAog
Y2xhc3MgSW1hZ2VEb2N1bWVudEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEltYWdlRWxlbWVu
dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxJbWFnZURvY3VtZW50RWxlbWVudD4gY3Jl
YXRlKEltYWdlRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPEltYWdlRG9jdW1lbnRFbGVtZW50
PiBjcmVhdGUoSW1hZ2VEb2N1bWVudCYpOwogCiBwcml2YXRlOgogICAgIEltYWdlRG9jdW1lbnRF
bGVtZW50KEltYWdlRG9jdW1lbnQmIGRvY3VtZW50KQpAQCAtMTA3LDkgKzEwNyw5IEBAIHByaXZh
dGU6CiAgICAgSW1hZ2VEb2N1bWVudCogbV9pbWFnZURvY3VtZW50OwogfTsKIAotaW5saW5lIFJl
ZlB0cjxJbWFnZURvY3VtZW50RWxlbWVudD4gSW1hZ2VEb2N1bWVudEVsZW1lbnQ6OmNyZWF0ZShJ
bWFnZURvY3VtZW50JiBkb2N1bWVudCkKK2lubGluZSBSZWY8SW1hZ2VEb2N1bWVudEVsZW1lbnQ+
IEltYWdlRG9jdW1lbnRFbGVtZW50OjpjcmVhdGUoSW1hZ2VEb2N1bWVudCYgZG9jdW1lbnQpCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbWFnZURvY3VtZW50RWxlbWVudChkb2N1bWVudCkp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEltYWdlRG9jdW1lbnRFbGVtZW50KGRvY3VtZW50
KSk7CiB9CiAKIC8vIC0tLS0tLS0tCkBAIC0yMTAsMTkgKzIxMCwxOSBAQCBSZWY8RG9jdW1lbnRQ
YXJzZXI+IEltYWdlRG9jdW1lbnQ6OmNyZWF0ZVBhcnNlcigpCiAKIHZvaWQgSW1hZ2VEb2N1bWVu
dDo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKQogewotICAgIFJlZlB0cjxFbGVtZW50PiByb290
RWxlbWVudCA9IERvY3VtZW50OjpjcmVhdGVFbGVtZW50KGh0bWxUYWcsIGZhbHNlKTsKLSAgICBh
cHBlbmRDaGlsZChyb290RWxlbWVudCk7Ci0gICAgZG93bmNhc3Q8SFRNTEh0bWxFbGVtZW50Pigq
cm9vdEVsZW1lbnQpLmluc2VydGVkQnlQYXJzZXIoKTsKKyAgICBSZWY8RWxlbWVudD4gcm9vdEVs
ZW1lbnQgPSBEb2N1bWVudDo6Y3JlYXRlRWxlbWVudChodG1sVGFnLCBmYWxzZSk7CisgICAgYXBw
ZW5kQ2hpbGQocm9vdEVsZW1lbnQuY29weVJlZigpKTsKKyAgICBkb3duY2FzdDxIVE1MSHRtbEVs
ZW1lbnQ+KHJvb3RFbGVtZW50LmdldCgpKS5pbnNlcnRlZEJ5UGFyc2VyKCk7CiAKICAgICBmcmFt
ZSgpLT5pbmplY3RVc2VyU2NyaXB0cyhJbmplY3RBdERvY3VtZW50U3RhcnQpOwogCi0gICAgUmVm
UHRyPEVsZW1lbnQ+IGJvZHkgPSBEb2N1bWVudDo6Y3JlYXRlRWxlbWVudChib2R5VGFnLCBmYWxz
ZSk7CisgICAgUmVmPEVsZW1lbnQ+IGJvZHkgPSBEb2N1bWVudDo6Y3JlYXRlRWxlbWVudChib2R5
VGFnLCBmYWxzZSk7CiAgICAgYm9keS0+c2V0QXR0cmlidXRlKHN0eWxlQXR0ciwgIm1hcmdpbjog
MHB4Iik7CiAgICAgaWYgKE1JTUVUeXBlUmVnaXN0cnk6OmlzUERGTUlNRVR5cGUoZG9jdW1lbnQo
KS5sb2FkZXIoKS0+cmVzcG9uc2VNSU1FVHlwZSgpKSkKLSAgICAgICAgZG93bmNhc3Q8SFRNTEJv
ZHlFbGVtZW50PigqYm9keSkuc2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eUJhY2tn
cm91bmRDb2xvciwgIndoaXRlIiwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19JREVOVCk7Ci0gICAg
cm9vdEVsZW1lbnQtPmFwcGVuZENoaWxkKGJvZHkpOworICAgICAgICBkb3duY2FzdDxIVE1MQm9k
eUVsZW1lbnQ+KGJvZHkuZ2V0KCkpLnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlC
YWNrZ3JvdW5kQ29sb3IsICJ3aGl0ZSIsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfSURFTlQpOwor
ICAgIHJvb3RFbGVtZW50LT5hcHBlbmRDaGlsZChib2R5LmNvcHlSZWYoKSk7CiAgICAgCi0gICAg
UmVmUHRyPEltYWdlRG9jdW1lbnRFbGVtZW50PiBpbWFnZUVsZW1lbnQgPSBJbWFnZURvY3VtZW50
RWxlbWVudDo6Y3JlYXRlKCp0aGlzKTsKKyAgICBSZWY8SW1hZ2VEb2N1bWVudEVsZW1lbnQ+IGlt
YWdlRWxlbWVudCA9IEltYWdlRG9jdW1lbnRFbGVtZW50OjpjcmVhdGUoKnRoaXMpOwogICAgIGlm
IChtX3Nob3VsZFNocmlua0ltYWdlKQogICAgICAgICBpbWFnZUVsZW1lbnQtPnNldEF0dHJpYnV0
ZShzdHlsZUF0dHIsICItd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7IGRpc3BsYXk6YmxvY2s7IG1h
cmdpbjphdXRvOyIpOwogICAgIGVsc2UKQEAgLTIzMCw3ICsyMzAsNyBAQCB2b2lkIEltYWdlRG9j
dW1lbnQ6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCkKICAgICBpbWFnZUVsZW1lbnQtPnNldExv
YWRNYW51YWxseSh0cnVlKTsKICAgICBpbWFnZUVsZW1lbnQtPnNldFNyYyh1cmwoKS5zdHJpbmco
KSk7CiAgICAgaW1hZ2VFbGVtZW50LT5jYWNoZWRJbWFnZSgpLT5zZXRSZXNwb25zZShsb2FkZXIo
KS0+cmVzcG9uc2UoKSk7Ci0gICAgYm9keS0+YXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKKyAg
ICBib2R5LT5hcHBlbmRDaGlsZChpbWFnZUVsZW1lbnQuY29weVJlZigpKTsKICAgICAKICAgICBp
ZiAobV9zaG91bGRTaHJpbmtJbWFnZSkgewogI2lmIFBMQVRGT1JNKElPUykKQEAgLTI0NCw3ICsy
NDQsNyBAQCB2b2lkIEltYWdlRG9jdW1lbnQ6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCkKICNl
bmRpZgogICAgIH0KIAotICAgIG1faW1hZ2VFbGVtZW50ID0gaW1hZ2VFbGVtZW50LmdldCgpOwor
ICAgIG1faW1hZ2VFbGVtZW50ID0gaW1hZ2VFbGVtZW50LnB0cigpOwogfQogCiB2b2lkIEltYWdl
RG9jdW1lbnQ6OmltYWdlVXBkYXRlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L01lZGlhRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNw
cAppbmRleCAxODVhYmE4MzQwM2NlODIyYzc3NmVlMGMyOGRiYTczMDAxOTI5OTliLi5kNzYyNDUy
YzI1MGU5OGY5NmMxYzM1NTBmYWUxODFmODVlMDJiNWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVk
aWFEb2N1bWVudC5jcHAKQEAgLTc4LDMwICs3OCwzMCBAQCBwcml2YXRlOgogICAgIAogdm9pZCBN
ZWRpYURvY3VtZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCiB7Ci0gICAgUmVm
UHRyPEVsZW1lbnQ+IHJvb3RFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChodG1s
VGFnLCBmYWxzZSk7Ci0gICAgZG9jdW1lbnQoKS0+YXBwZW5kQ2hpbGQocm9vdEVsZW1lbnQsIElH
Tk9SRV9FWENFUFRJT04pOwotICAgIGRvY3VtZW50KCktPnNldENTU1RhcmdldChyb290RWxlbWVu
dC5nZXQoKSk7Ci0gICAgZG93bmNhc3Q8SFRNTEh0bWxFbGVtZW50Pigqcm9vdEVsZW1lbnQpLmlu
c2VydGVkQnlQYXJzZXIoKTsKKyAgICBSZWY8RWxlbWVudD4gcm9vdEVsZW1lbnQgPSBkb2N1bWVu
dCgpLT5jcmVhdGVFbGVtZW50KGh0bWxUYWcsIGZhbHNlKTsKKyAgICBkb2N1bWVudCgpLT5hcHBl
bmRDaGlsZChyb290RWxlbWVudC5jb3B5UmVmKCksIElHTk9SRV9FWENFUFRJT04pOworICAgIGRv
Y3VtZW50KCktPnNldENTU1RhcmdldChyb290RWxlbWVudC5wdHIoKSk7CisgICAgZG93bmNhc3Q8
SFRNTEh0bWxFbGVtZW50Pihyb290RWxlbWVudC5nZXQoKSkuaW5zZXJ0ZWRCeVBhcnNlcigpOwog
CiAgICAgaWYgKGRvY3VtZW50KCktPmZyYW1lKCkpCiAgICAgICAgIGRvY3VtZW50KCktPmZyYW1l
KCktPmluamVjdFVzZXJTY3JpcHRzKEluamVjdEF0RG9jdW1lbnRTdGFydCk7CiAKICNpZiBQTEFU
Rk9STShJT1MpCi0gICAgUmVmUHRyPEVsZW1lbnQ+IGhlYWRFbGVtZW50ID0gZG9jdW1lbnQoKS0+
Y3JlYXRlRWxlbWVudChoZWFkVGFnLCBmYWxzZSk7Ci0gICAgcm9vdEVsZW1lbnQtPmFwcGVuZENo
aWxkKGhlYWRFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBSZWY8RWxlbWVudD4gaGVh
ZEVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KGhlYWRUYWcsIGZhbHNlKTsKKyAg
ICByb290RWxlbWVudC0+YXBwZW5kQ2hpbGQoaGVhZEVsZW1lbnQuY29weVJlZigpLCBJR05PUkVf
RVhDRVBUSU9OKTsKIAotICAgIFJlZlB0cjxFbGVtZW50PiBtZXRhRWxlbWVudCA9IGRvY3VtZW50
KCktPmNyZWF0ZUVsZW1lbnQobWV0YVRhZywgZmFsc2UpOworICAgIFJlZjxFbGVtZW50PiBtZXRh
RWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQobWV0YVRhZywgZmFsc2UpOwogICAg
IG1ldGFFbGVtZW50LT5zZXRBdHRyaWJ1dGUobmFtZUF0dHIsICJ2aWV3cG9ydCIpOwogICAgIG1l
dGFFbGVtZW50LT5zZXRBdHRyaWJ1dGUoY29udGVudEF0dHIsICJ3aWR0aD1kZXZpY2Utd2lkdGgs
aW5pdGlhbC1zY2FsZT0xLHVzZXItc2NhbGFibGU9bm8iKTsKLSAgICBoZWFkRWxlbWVudC0+YXBw
ZW5kQ2hpbGQobWV0YUVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOworICAgIGhlYWRFbGVtZW50
LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUobWV0YUVsZW1lbnQpLCBJR05PUkVfRVhDRVBUSU9OKTsK
ICNlbmRpZgogCi0gICAgUmVmUHRyPEVsZW1lbnQ+IGJvZHkgPSBkb2N1bWVudCgpLT5jcmVhdGVF
bGVtZW50KGJvZHlUYWcsIGZhbHNlKTsKLSAgICByb290RWxlbWVudC0+YXBwZW5kQ2hpbGQoYm9k
eSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgUmVmPEVsZW1lbnQ+IGJvZHkgPSBkb2N1bWVudCgp
LT5jcmVhdGVFbGVtZW50KGJvZHlUYWcsIGZhbHNlKTsKKyAgICByb290RWxlbWVudC0+YXBwZW5k
Q2hpbGQoYm9keS5jb3B5UmVmKCksIElHTk9SRV9FWENFUFRJT04pOwogCi0gICAgUmVmUHRyPEVs
ZW1lbnQ+IG1lZGlhRWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQodmlkZW9UYWcs
IGZhbHNlKTsKKyAgICBSZWY8RWxlbWVudD4gbWVkaWFFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3Jl
YXRlRWxlbWVudCh2aWRlb1RhZywgZmFsc2UpOwogCi0gICAgbV9tZWRpYUVsZW1lbnQgPSBkb3du
Y2FzdDxIVE1MVmlkZW9FbGVtZW50PihtZWRpYUVsZW1lbnQuZ2V0KCkpOworICAgIG1fbWVkaWFF
bGVtZW50ID0gZG93bmNhc3Q8SFRNTFZpZGVvRWxlbWVudD4obWVkaWFFbGVtZW50LnB0cigpKTsK
ICAgICBtX21lZGlhRWxlbWVudC0+c2V0QXR0cmlidXRlKGNvbnRyb2xzQXR0ciwgZW1wdHlBdG9t
KTsKICAgICBtX21lZGlhRWxlbWVudC0+c2V0QXR0cmlidXRlKGF1dG9wbGF5QXR0ciwgZW1wdHlB
dG9tKTsKIApAQCAtMTE0LDE1ICsxMTQsMTUgQEAgdm9pZCBNZWRpYURvY3VtZW50UGFyc2VyOjpj
cmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCiAjZW5kaWYKICAgICBtX21lZGlhRWxlbWVudC0+c2V0
QXR0cmlidXRlKHN0eWxlQXR0ciwgZWxlbWVudFN0eWxlLnRvU3RyaW5nKCkpOwogCi0gICAgUmVm
UHRyPEVsZW1lbnQ+IHNvdXJjZUVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KHNv
dXJjZVRhZywgZmFsc2UpOwotICAgIEhUTUxTb3VyY2VFbGVtZW50JiBzb3VyY2UgPSBkb3duY2Fz
dDxIVE1MU291cmNlRWxlbWVudD4oKnNvdXJjZUVsZW1lbnQpOworICAgIFJlZjxFbGVtZW50PiBz
b3VyY2VFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChzb3VyY2VUYWcsIGZhbHNl
KTsKKyAgICBIVE1MU291cmNlRWxlbWVudCYgc291cmNlID0gZG93bmNhc3Q8SFRNTFNvdXJjZUVs
ZW1lbnQ+KHNvdXJjZUVsZW1lbnQuZ2V0KCkpOwogICAgIHNvdXJjZS5zZXRTcmMoZG9jdW1lbnQo
KS0+dXJsKCkpOwogCiAgICAgaWYgKERvY3VtZW50TG9hZGVyKiBsb2FkZXIgPSBkb2N1bWVudCgp
LT5sb2FkZXIoKSkKICAgICAgICAgc291cmNlLnNldFR5cGUobG9hZGVyLT5yZXNwb25zZU1JTUVU
eXBlKCkpOwogCi0gICAgbV9tZWRpYUVsZW1lbnQtPmFwcGVuZENoaWxkKHNvdXJjZUVsZW1lbnQs
IElHTk9SRV9FWENFUFRJT04pOwotICAgIGJvZHktPmFwcGVuZENoaWxkKG1lZGlhRWxlbWVudCwg
SUdOT1JFX0VYQ0VQVElPTik7CisgICAgbV9tZWRpYUVsZW1lbnQtPmFwcGVuZENoaWxkKFdURjo6
bW92ZShzb3VyY2VFbGVtZW50KSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgYm9keS0+YXBwZW5k
Q2hpbGQoV1RGOjptb3ZlKG1lZGlhRWxlbWVudCksIElHTk9SRV9FWENFUFRJT04pOwogCiAgICAg
RnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS0+ZnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKQpAQCAt
MjUzLDcgKzI1Myw3IEBAIHZvaWQgTWVkaWFEb2N1bWVudDo6cmVwbGFjZU1lZGlhRWxlbWVudFRp
bWVyRmlyZWQoKQogICAgICAgICBpZiAoZG9jdW1lbnRMb2FkZXIpCiAgICAgICAgICAgICBlbWJl
ZEVsZW1lbnQuc2V0QXR0cmlidXRlKHR5cGVBdHRyLCBkb2N1bWVudExvYWRlci0+d3JpdGVyKCku
bWltZVR5cGUoKSk7CiAKLSAgICAgICAgdmlkZW9FbGVtZW50LT5wYXJlbnROb2RlKCktPnJlcGxh
Y2VDaGlsZCgmZW1iZWRFbGVtZW50LCB2aWRlb0VsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOwor
ICAgICAgICB2aWRlb0VsZW1lbnQtPnBhcmVudE5vZGUoKS0+cmVwbGFjZUNoaWxkKGVtYmVkRWxl
bWVudCwgKnZpZGVvRWxlbWVudCwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgfQogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCmluZGV4IGU5Njc3MDkwZjRjMzg1M2E3Y2Zm
MjA4YjIzYzMxZGM5ZDI1NDQ4MjEuLmMwYTgwYmE1NTcxMzkwOWI5M2IxOGIxYmRhODgwM2ZmMTUy
NzViZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCkBAIC02Nyw5ICs2
Nyw5IEBAIHByaXZhdGU6CiAKIHZvaWQgUGx1Z2luRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURvY3Vt
ZW50U3RydWN0dXJlKCkKIHsKLSAgICBSZWZQdHI8RWxlbWVudD4gcm9vdEVsZW1lbnQgPSBkb2N1
bWVudCgpLT5jcmVhdGVFbGVtZW50KGh0bWxUYWcsIGZhbHNlKTsKLSAgICBkb2N1bWVudCgpLT5h
cHBlbmRDaGlsZChyb290RWxlbWVudCwgSUdOT1JFX0VYQ0VQVElPTik7Ci0gICAgZG93bmNhc3Q8
SFRNTEh0bWxFbGVtZW50Pigqcm9vdEVsZW1lbnQpLmluc2VydGVkQnlQYXJzZXIoKTsKKyAgICBS
ZWY8RWxlbWVudD4gcm9vdEVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KGh0bWxU
YWcsIGZhbHNlKTsKKyAgICBkb2N1bWVudCgpLT5hcHBlbmRDaGlsZChyb290RWxlbWVudC5jb3B5
UmVmKCksIElHTk9SRV9FWENFUFRJT04pOworICAgIGRvd25jYXN0PEhUTUxIdG1sRWxlbWVudD4o
cm9vdEVsZW1lbnQuZ2V0KCkpLmluc2VydGVkQnlQYXJzZXIoKTsKIAogICAgIGlmIChkb2N1bWVu
dCgpLT5mcmFtZSgpKQogICAgICAgICBkb2N1bWVudCgpLT5mcmFtZSgpLT5pbmplY3RVc2VyU2Ny
aXB0cyhJbmplY3RBdERvY3VtZW50U3RhcnQpOwpAQCAtNzksNyArNzksNyBAQCB2b2lkIFBsdWdp
bkRvY3VtZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCiAgICAgZG9jdW1lbnQo
KS0+cHJvY2Vzc1ZpZXdwb3J0KEFTQ0lJTGl0ZXJhbCgidXNlci1zY2FsYWJsZT1ubyIpLCBWaWV3
cG9ydEFyZ3VtZW50czo6UGx1Z2luRG9jdW1lbnQpOwogI2VuZGlmCiAKLSAgICBSZWZQdHI8RWxl
bWVudD4gYm9keSA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoYm9keVRhZywgZmFsc2UpOwor
ICAgIFJlZjxFbGVtZW50PiBib2R5ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChib2R5VGFn
LCBmYWxzZSk7CiAgICAgYm9keS0+c2V0QXR0cmlidXRlKG1hcmdpbndpZHRoQXR0ciwgQXRvbWlj
U3RyaW5nKCIwIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIGJv
ZHktPnNldEF0dHJpYnV0ZShtYXJnaW5oZWlnaHRBdHRyLCBBdG9taWNTdHJpbmcoIjAiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAjaWYgUExBVEZPUk0oSU9TKQpAQCAt
ODgsMTEgKzg4LDExIEBAIHZvaWQgUGx1Z2luRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURvY3VtZW50
U3RydWN0dXJlKCkKICAgICBib2R5LT5zZXRBdHRyaWJ1dGUoc3R5bGVBdHRyLCBBdG9taWNTdHJp
bmcoImJhY2tncm91bmQtY29sb3I6IHJnYigzOCwzOCwzOCkiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CiAjZW5kaWYKIAotICAgIHJvb3RFbGVtZW50LT5hcHBlbmRDaGls
ZChib2R5LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICByb290RWxlbWVudC0+YXBwZW5kQ2hpbGQo
Ym9keS5jb3B5UmVmKCksIElHTk9SRV9FWENFUFRJT04pOwogICAgICAgICAKLSAgICBSZWZQdHI8
RWxlbWVudD4gZW1iZWRFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChlbWJlZFRh
ZywgZmFsc2UpOworICAgIFJlZjxFbGVtZW50PiBlbWJlZEVsZW1lbnQgPSBkb2N1bWVudCgpLT5j
cmVhdGVFbGVtZW50KGVtYmVkVGFnLCBmYWxzZSk7CiAgICAgICAgIAotICAgIG1fZW1iZWRFbGVt
ZW50ID0gZG93bmNhc3Q8SFRNTEVtYmVkRWxlbWVudD4oZW1iZWRFbGVtZW50LmdldCgpKTsKKyAg
ICBtX2VtYmVkRWxlbWVudCA9IGRvd25jYXN0PEhUTUxFbWJlZEVsZW1lbnQ+KGVtYmVkRWxlbWVu
dC5wdHIoKSk7CiAgICAgbV9lbWJlZEVsZW1lbnQtPnNldEF0dHJpYnV0ZSh3aWR0aEF0dHIsICIx
MDAlIik7CiAgICAgbV9lbWJlZEVsZW1lbnQtPnNldEF0dHJpYnV0ZShoZWlnaHRBdHRyLCAiMTAw
JSIpOwogICAgIApAQCAtMTA2LDcgKzEwNiw3IEBAIHZvaWQgUGx1Z2luRG9jdW1lbnRQYXJzZXI6
OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCkKIAogICAgIGRvd25jYXN0PFBsdWdpbkRvY3VtZW50
PigqZG9jdW1lbnQoKSkuc2V0UGx1Z2luRWxlbWVudChtX2VtYmVkRWxlbWVudCk7CiAKLSAgICBi
b2R5LT5hcHBlbmRDaGlsZChlbWJlZEVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOworICAgIGJv
ZHktPmFwcGVuZENoaWxkKFdURjo6bW92ZShlbWJlZEVsZW1lbnQpLCBJR05PUkVfRVhDRVBUSU9O
KTsKIH0KIAogdm9pZCBQbHVnaW5Eb2N1bWVudFBhcnNlcjo6YXBwZW5kQnl0ZXMoRG9jdW1lbnRX
cml0ZXImLCBjb25zdCBjaGFyKiwgc2l6ZV90KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9SYW5nZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRU
eXBlLmNwcAppbmRleCBiNWI5ZTc5NDEzMTE5M2I1MGZlNzk3OWExNmExNGNiMzA4MDRlN2Q3Li42
NmE3NDE1ZThhNGNmMTFmOTFkYzY3YzE2YTFkOTA2MDI1Y2ZmZmQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1JhbmdlSW5wdXRUeXBlLmNwcApAQCAtMjUzLDEyICsyNTMsMTIgQEAgdm9pZCBSYW5nZUlu
cHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAgICAgQVNTRVJUKGVsZW1lbnQoKS51c2Vy
QWdlbnRTaGFkb3dSb290KCkpOwogCiAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gZWxlbWVudCgp
LmRvY3VtZW50KCk7Ci0gICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiB0cmFjayA9IEhUTUxEaXZF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIFJlZjxIVE1MRGl2RWxlbWVudD4gdHJhY2sg
PSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICB0cmFjay0+c2V0UHNldWRv
KEF0b21pY1N0cmluZygiLXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2siLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgdHJhY2stPmFwcGVuZENoaWxkKFNsaWRl
clRodW1iRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KSwgSUdOT1JFX0VYQ0VQVElPTik7Ci0gICAg
UmVmUHRyPEhUTUxFbGVtZW50PiBjb250YWluZXIgPSBTbGlkZXJDb250YWluZXJFbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQpOwotICAgIGNvbnRhaW5lci0+YXBwZW5kQ2hpbGQodHJhY2sucmVsZWFz
ZSgpLCBJR05PUkVfRVhDRVBUSU9OKTsKLSAgICBlbGVtZW50KCkudXNlckFnZW50U2hhZG93Um9v
dCgpLT5hcHBlbmRDaGlsZChjb250YWluZXIucmVsZWFzZSgpLCBJR05PUkVfRVhDRVBUSU9OKTsK
KyAgICBSZWY8SFRNTEVsZW1lbnQ+IGNvbnRhaW5lciA9IFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6
OmNyZWF0ZShkb2N1bWVudCk7CisgICAgY29udGFpbmVyLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUo
dHJhY2spLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBlbGVtZW50KCkudXNlckFnZW50U2hhZG93
Um9vdCgpLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoY29udGFpbmVyKSwgSUdOT1JFX0VYQ0VQVElP
Tik7CiB9CiAKIEhUTUxFbGVtZW50KiBSYW5nZUlucHV0VHlwZTo6c2xpZGVyVHJhY2tFbGVtZW50
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcAppbmRleCBkZTQz
ZGI1ODA0OTNiYzY1OTlmOWU3YWU4ODdlNzBjOTgxYzQyZTY3Li4zNTdjN2E2MDViNGRiNzJjMDBl
N2I5NmRlZDZkZDY0NjIwZThkNmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Nl
YXJjaElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5
cGUuY3BwCkBAIC0xMDcsMTQgKzEwNywxNCBAQCB2b2lkIFNlYXJjaElucHV0VHlwZTo6Y3JlYXRl
U2hhZG93U3VidHJlZSgpCiAgICAgQVNTRVJUKGNvbnRhaW5lcik7CiAgICAgQVNTRVJUKHRleHRX
cmFwcGVyKTsKIAotICAgIFJlZlB0cjxTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50PiBy
ZXN1bHRzQnV0dG9uID0gU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGVs
ZW1lbnQoKS5kb2N1bWVudCgpKTsKLSAgICBtX3Jlc3VsdHNCdXR0b24gPSByZXN1bHRzQnV0dG9u
LmdldCgpOwotICAgIHVwZGF0ZVJlc3VsdEJ1dHRvblBzZXVkb1R5cGUoKm1fcmVzdWx0c0J1dHRv
biwgZWxlbWVudCgpLm1heFJlc3VsdHMoKSk7Ci0gICAgY29udGFpbmVyLT5pbnNlcnRCZWZvcmUo
bV9yZXN1bHRzQnV0dG9uLCB0ZXh0V3JhcHBlciwgSUdOT1JFX0VYQ0VQVElPTik7Ci0KLSAgICBS
ZWZQdHI8U2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50PiBjYW5jZWxCdXR0b24gPSBTZWFy
Y2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCkuZG9jdW1lbnQoKSk7
Ci0gICAgbV9jYW5jZWxCdXR0b24gPSBjYW5jZWxCdXR0b24uZ2V0KCk7Ci0gICAgY29udGFpbmVy
LT5pbnNlcnRCZWZvcmUobV9jYW5jZWxCdXR0b24sIHRleHRXcmFwcGVyLT5uZXh0U2libGluZygp
LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBSZWY8U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxl
bWVudD4gcmVzdWx0c0J1dHRvbiA9IFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ6OmNy
ZWF0ZShlbGVtZW50KCkuZG9jdW1lbnQoKSk7CisgICAgbV9yZXN1bHRzQnV0dG9uID0gcmVzdWx0
c0J1dHRvbi5wdHIoKTsKKyAgICB1cGRhdGVSZXN1bHRCdXR0b25Qc2V1ZG9UeXBlKHJlc3VsdHNC
dXR0b24uZ2V0KCksIGVsZW1lbnQoKS5tYXhSZXN1bHRzKCkpOworICAgIGNvbnRhaW5lci0+aW5z
ZXJ0QmVmb3JlKFdURjo6bW92ZShyZXN1bHRzQnV0dG9uKSwgdGV4dFdyYXBwZXIsIElHTk9SRV9F
WENFUFRJT04pOworCisgICAgUmVmPFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudD4gY2Fu
Y2VsQnV0dG9uID0gU2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50OjpjcmVhdGUoZWxlbWVu
dCgpLmRvY3VtZW50KCkpOworICAgIG1fY2FuY2VsQnV0dG9uID0gY2FuY2VsQnV0dG9uLnB0cigp
OworICAgIGNvbnRhaW5lci0+aW5zZXJ0QmVmb3JlKFdURjo6bW92ZShjYW5jZWxCdXR0b24pLCB0
ZXh0V3JhcHBlci0+bmV4dFNpYmxpbmcoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CiAKIEhUTUxF
bGVtZW50KiBTZWFyY2hJbnB1dFR5cGU6OnJlc3VsdHNCdXR0b25FbGVtZW50KCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcAppbmRleCBlYWUzZGIyOWVl
ZTNjMmRlOTVmZTcxODBjNTQ2ZmY4ZTdlMmE3NjdlLi4xMzZmMDk3NTFiNWRhNjEwMDA2MTY0OWI1
NWI1NDlhYzlkMjM0MmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVs
ZElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5
cGUuY3BwCkBAIC0yNzQsNyArMjc0LDcgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0
ZVNoYWRvd1N1YnRyZWUoKQogICAgIG1faW5uZXJUZXh0ID0gVGV4dENvbnRyb2xJbm5lclRleHRF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogCiAgICAgaWYgKCFjcmVhdGVzQ29udGFpbmVyKSB7
Ci0gICAgICAgIGVsZW1lbnQoKS51c2VyQWdlbnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKG1f
aW5uZXJUZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgZWxlbWVudCgpLnVzZXJBZ2Vu
dFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoKm1faW5uZXJUZXh0LCBJR05PUkVfRVhDRVBUSU9O
KTsKICAgICAgICAgdXBkYXRlUGxhY2Vob2xkZXJUZXh0KCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CkBAIC0yODQsNyArMjg0LDcgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNo
YWRvd1N1YnRyZWUoKQogCiAgICAgaWYgKHNob3VsZEhhdmVTcGluQnV0dG9uKSB7CiAgICAgICAg
IG1faW5uZXJTcGluQnV0dG9uID0gU3BpbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwg
KnRoaXMpOwotICAgICAgICBtX2NvbnRhaW5lci0+YXBwZW5kQ2hpbGQobV9pbm5lclNwaW5CdXR0
b24sIElHTk9SRV9FWENFUFRJT04pOworICAgICAgICBtX2NvbnRhaW5lci0+YXBwZW5kQ2hpbGQo
Km1faW5uZXJTcGluQnV0dG9uLCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICB9CiAKICAgICBpZiAo
c2hvdWxkSGF2ZUNhcHNMb2NrSW5kaWNhdG9yKSB7CkBAIC0yOTQsNyArMjk0LDcgQEAgdm9pZCBU
ZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogICAgICAgICBib29sIHNo
b3VsZERyYXdDYXBzTG9ja0luZGljYXRvciA9IHRoaXMtPnNob3VsZERyYXdDYXBzTG9ja0luZGlj
YXRvcigpOwogICAgICAgICBtX2NhcHNMb2NrSW5kaWNhdG9yLT5zZXRJbmxpbmVTdHlsZVByb3Bl
cnR5KENTU1Byb3BlcnR5RGlzcGxheSwgc2hvdWxkRHJhd0NhcHNMb2NrSW5kaWNhdG9yID8gQ1NT
VmFsdWVCbG9jayA6IENTU1ZhbHVlTm9uZSwgdHJ1ZSk7CiAKLSAgICAgICAgbV9jb250YWluZXIt
PmFwcGVuZENoaWxkKG1fY2Fwc0xvY2tJbmRpY2F0b3IsIElHTk9SRV9FWENFUFRJT04pOworICAg
ICAgICBtX2NvbnRhaW5lci0+YXBwZW5kQ2hpbGQoKm1fY2Fwc0xvY2tJbmRpY2F0b3IsIElHTk9S
RV9FWENFUFRJT04pOwogICAgIH0KIAogICAgIHVwZGF0ZUF1dG9GaWxsQnV0dG9uKCk7CkBAIC00
NjEsNyArNDYxLDcgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OnVwZGF0ZVBsYWNlaG9sZGVy
VGV4dCgpCiAgICAgU3RyaW5nIHBsYWNlaG9sZGVyVGV4dCA9IGVsZW1lbnQoKS5zdHJpcHBlZFBs
YWNlaG9sZGVyKCk7CiAgICAgaWYgKHBsYWNlaG9sZGVyVGV4dC5pc0VtcHR5KCkpIHsKICAgICAg
ICAgaWYgKG1fcGxhY2Vob2xkZXIpIHsKLSAgICAgICAgICAgIG1fcGxhY2Vob2xkZXItPnBhcmVu
dE5vZGUoKS0+cmVtb3ZlQ2hpbGQobV9wbGFjZWhvbGRlci5nZXQoKSwgQVNTRVJUX05PX0VYQ0VQ
VElPTik7CisgICAgICAgICAgICBtX3BsYWNlaG9sZGVyLT5wYXJlbnROb2RlKCktPnJlbW92ZUNo
aWxkKCptX3BsYWNlaG9sZGVyLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICAgICAgICAgIG1f
cGxhY2Vob2xkZXIgPSBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybjsKQEAgLTQ3
MCw3ICs0NzAsNyBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6dXBkYXRlUGxhY2Vob2xkZXJU
ZXh0KCkKICAgICAgICAgbV9wbGFjZWhvbGRlciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZWxl
bWVudCgpLmRvY3VtZW50KCkpOwogICAgICAgICBtX3BsYWNlaG9sZGVyLT5zZXRQc2V1ZG8oQXRv
bWljU3RyaW5nKCItd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAgICBtX3BsYWNlaG9sZGVyLT5zZXRJbmxpbmVTdHls
ZVByb3BlcnR5KENTU1Byb3BlcnR5RGlzcGxheSwgZWxlbWVudCgpLmlzUGxhY2Vob2xkZXJWaXNp
YmxlKCkgPyBDU1NWYWx1ZUJsb2NrIDogQ1NTVmFsdWVOb25lLCB0cnVlKTsKLSAgICAgICAgZWxl
bWVudCgpLnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+aW5zZXJ0QmVmb3JlKG1fcGxhY2Vob2xkZXIs
IG1fY29udGFpbmVyID8gbV9jb250YWluZXIuZ2V0KCkgOiBpbm5lclRleHRFbGVtZW50KCksIEFT
U0VSVF9OT19FWENFUFRJT04pOworICAgICAgICBlbGVtZW50KCkudXNlckFnZW50U2hhZG93Um9v
dCgpLT5pbnNlcnRCZWZvcmUoKm1fcGxhY2Vob2xkZXIsIG1fY29udGFpbmVyID8gbV9jb250YWlu
ZXIuZ2V0KCkgOiBpbm5lclRleHRFbGVtZW50KCksIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAg
ICAgICAKICAgICB9CiAgICAgbV9wbGFjZWhvbGRlci0+c2V0SW5uZXJUZXh0KHBsYWNlaG9sZGVy
VGV4dCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CkBAIC02MDAsMTAgKzYwMCwxMCBAQCB2b2lkIFRl
eHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlQ29udGFpbmVyKCkKICAgICBtX2NvbnRhaW5lci0+c2V0
UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC10ZXh0ZmllbGQtZGVjb3JhdGlvbi1jb250YWlu
ZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAKICAgICBtX2lubmVy
QmxvY2sgPSBUZXh0Q29udHJvbElubmVyRWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS5kb2N1bWVu
dCgpKTsKLSAgICBtX2lubmVyQmxvY2stPmFwcGVuZENoaWxkKG1faW5uZXJUZXh0LCBJR05PUkVf
RVhDRVBUSU9OKTsKLSAgICBtX2NvbnRhaW5lci0+YXBwZW5kQ2hpbGQobV9pbm5lckJsb2NrLCBJ
R05PUkVfRVhDRVBUSU9OKTsKKyAgICBtX2lubmVyQmxvY2stPmFwcGVuZENoaWxkKCptX2lubmVy
VGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgbV9jb250YWluZXItPmFwcGVuZENoaWxkKCpt
X2lubmVyQmxvY2ssIElHTk9SRV9FWENFUFRJT04pOwogCi0gICAgZWxlbWVudCgpLnVzZXJBZ2Vu
dFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQobV9jb250YWluZXIsIElHTk9SRV9FWENFUFRJT04p
OworICAgIGVsZW1lbnQoKS51c2VyQWdlbnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKCptX2Nv
bnRhaW5lciwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CiAKIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBl
OjpjcmVhdGVBdXRvRmlsbEJ1dHRvbigpCkBAIC02MTIsNyArNjEyLDcgQEAgdm9pZCBUZXh0Rmll
bGRJbnB1dFR5cGU6OmNyZWF0ZUF1dG9GaWxsQnV0dG9uKCkKIAogICAgIG1fYXV0b0ZpbGxCdXR0
b24gPSBBdXRvRmlsbEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCkuZG9jdW1lbnQoKSwg
KnRoaXMpOwogICAgIG1fYXV0b0ZpbGxCdXR0b24tPnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13
ZWJraXQtYXV0by1maWxsLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKLSAgICBtX2NvbnRhaW5lci0+YXBwZW5kQ2hpbGQobV9hdXRvRmlsbEJ1dHRvbiwgSUdO
T1JFX0VYQ0VQVElPTik7CisgICAgbV9jb250YWluZXItPmFwcGVuZENoaWxkKCptX2F1dG9GaWxs
QnV0dG9uLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KIAogdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6
OnVwZGF0ZUF1dG9GaWxsQnV0dG9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VmFsaWRhdGlvbk1lc3NhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVz
c2FnZS5jcHAKaW5kZXggZjYxZTFiNWVmZTI3MDkzMWRhYjBlYzJlZWRmMGYzNGJkNzc4MmI5Ni4u
OTA2Mjk1ZTE5OGY3ODQ1NjU2MTJhYTUyY2I5ZTZhYzRkNTMwZmFkYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKQEAgLTE4MCwzMiArMTgwLDMyIEBAIHZvaWQg
VmFsaWRhdGlvbk1lc3NhZ2U6OmJ1aWxkQnViYmxlVHJlZSgpCiAgICAgLy8gTmVlZCB0byBmb3Jj
ZSBwb3NpdGlvbjphYnNvbHV0ZSBiZWNhdXNlIFJlbmRlck1lbnVMaXN0IGRvZXNuJ3QgYXNzdW1l
IGl0CiAgICAgLy8gY29udGFpbnMgbm9uLWFic29sdXRlIG9yIG5vbi1maXhlZCByZW5kZXJlcnMg
YXMgY2hpbGRyZW4uCiAgICAgbV9idWJibGUtPnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJv
cGVydHlQb3NpdGlvbiwgQ1NTVmFsdWVBYnNvbHV0ZSk7Ci0gICAgc2hhZG93Um9vdC5hcHBlbmRD
aGlsZChtX2J1YmJsZS5nZXQoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgc2hhZG93Um9v
dC5hcHBlbmRDaGlsZCgqbV9idWJibGUsIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgIGRvY3Vt
ZW50LnVwZGF0ZUxheW91dCgpOwogICAgIGFkanVzdEJ1YmJsZVBvc2l0aW9uKG1fZWxlbWVudC0+
cmVuZGVyZXIoKS0+YWJzb2x1dGVCb3VuZGluZ0JveFJlY3QoKSwgbV9idWJibGUuZ2V0KCkpOwog
Ci0gICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBjbGlwcGVyID0gSFRNTERpdkVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCk7CisgICAgUmVmPEhUTUxEaXZFbGVtZW50PiBjbGlwcGVyID0gSFRNTERp
dkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY2xpcHBlci0+c2V0UHNldWRvKEF0b21p
Y1N0cmluZygiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1hcnJvdy1jbGlwcGVyIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVu
dD4gYnViYmxlQXJyb3cgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBS
ZWY8SFRNTERpdkVsZW1lbnQ+IGJ1YmJsZUFycm93ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCk7CiAgICAgYnViYmxlQXJyb3ctPnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJr
aXQtdmFsaWRhdGlvbi1idWJibGUtYXJyb3ciLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7Ci0gICAgY2xpcHBlci0+YXBwZW5kQ2hpbGQoYnViYmxlQXJyb3cucmVsZWFzZSgp
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKLSAgICBtX2J1YmJsZS0+YXBwZW5kQ2hpbGQoY2xpcHBl
ci5yZWxlYXNlKCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIGNsaXBwZXItPmFwcGVuZENo
aWxkKFdURjo6bW92ZShidWJibGVBcnJvdyksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIG1f
YnViYmxlLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoY2xpcHBlciksIEFTU0VSVF9OT19FWENFUFRJ
T04pOwogCi0gICAgUmVmUHRyPEhUTUxFbGVtZW50PiBtZXNzYWdlID0gSFRNTERpdkVsZW1lbnQ6
OmNyZWF0ZShkb2N1bWVudCk7CisgICAgUmVmPEhUTUxFbGVtZW50PiBtZXNzYWdlID0gSFRNTERp
dkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgbWVzc2FnZS0+c2V0UHNldWRvKEF0b21p
Y1N0cmluZygiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1tZXNzYWdlIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gaWNvbiA9
IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIFJlZjxIVE1MRWxlbWVudD4g
aWNvbiA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGljb24tPnNldFBz
ZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtaWNvbiIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBtZXNzYWdlLT5hcHBlbmRDaGls
ZChpY29uLnJlbGVhc2UoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0gICAgUmVmUHRyPEhUTUxF
bGVtZW50PiB0ZXh0QmxvY2sgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAg
ICBtZXNzYWdlLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoaWNvbiksIEFTU0VSVF9OT19FWENFUFRJ
T04pOworICAgIFJlZjxIVE1MRWxlbWVudD4gdGV4dEJsb2NrID0gSFRNTERpdkVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCk7CiAgICAgdGV4dEJsb2NrLT5zZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCIt
d2Via2l0LXZhbGlkYXRpb24tYnViYmxlLXRleHQtYmxvY2siLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgbV9tZXNzYWdlSGVhZGluZyA9IEhUTUxEaXZFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIG1fbWVzc2FnZUhlYWRpbmctPnNldFBzZXVkbyhBdG9t
aWNTdHJpbmcoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtaGVhZGluZyIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICB0ZXh0QmxvY2stPmFwcGVuZENoaWxkKG1f
bWVzc2FnZUhlYWRpbmcsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIHRleHRCbG9jay0+YXBw
ZW5kQ2hpbGQoKm1fbWVzc2FnZUhlYWRpbmcsIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgIG1f
bWVzc2FnZUJvZHkgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBtX21l
c3NhZ2VCb2R5LT5zZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LXZhbGlkYXRpb24tYnVi
YmxlLWJvZHkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgdGV4
dEJsb2NrLT5hcHBlbmRDaGlsZChtX21lc3NhZ2VCb2R5LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsK
LSAgICBtZXNzYWdlLT5hcHBlbmRDaGlsZCh0ZXh0QmxvY2sucmVsZWFzZSgpLCBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKLSAgICBtX2J1YmJsZS0+YXBwZW5kQ2hpbGQobWVzc2FnZS5yZWxlYXNlKCks
IEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIHRleHRCbG9jay0+YXBwZW5kQ2hpbGQoKm1fbWVz
c2FnZUJvZHksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIG1lc3NhZ2UtPmFwcGVuZENoaWxk
KFdURjo6bW92ZSh0ZXh0QmxvY2spLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBtX2J1YmJs
ZS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKG1lc3NhZ2UpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsK
IAogICAgIHNldE1lc3NhZ2VET01BbmRTdGFydFRpbWVyKCk7CiAKQEAgLTIzNyw3ICsyMzcsNyBA
QCB2b2lkIFZhbGlkYXRpb25NZXNzYWdlOjpkZWxldGVCdWJibGVUcmVlKCkKICAgICBpZiAobV9i
dWJibGUpIHsKICAgICAgICAgbV9tZXNzYWdlSGVhZGluZyA9IG51bGxwdHI7CiAgICAgICAgIG1f
bWVzc2FnZUJvZHkgPSBudWxscHRyOwotICAgICAgICBtX2VsZW1lbnQtPnVzZXJBZ2VudFNoYWRv
d1Jvb3QoKS0+cmVtb3ZlQ2hpbGQobV9idWJibGUuZ2V0KCksIEFTU0VSVF9OT19FWENFUFRJT04p
OworICAgICAgICBtX2VsZW1lbnQtPnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+cmVtb3ZlQ2hpbGQo
Km1fYnViYmxlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICAgICAgbV9idWJibGUgPSBudWxs
cHRyOwogICAgIH0KICAgICBtX21lc3NhZ2UgPSBTdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAppbmRleCA5ZTQ4M2E5
OWQ0NTg5MGUwNjc2YzdmOGEyNjhmYmJhNGQ0MDU0MGMyLi4yMmNlMzM5ZDM0ODI1ODRmY2YxM2Y0
Y2FlZWQ4YTBiNDU2ZmZhN2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCkBAIC04MDcsMjEgKzgwNywyMSBAQCB2b2lkIE1l
ZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudDo6cmVidWlsZFRyYWNrTGlz
dE1lbnUoKQogICAgIENhcHRpb25Vc2VyUHJlZmVyZW5jZXMqIGNhcHRpb25QcmVmZXJlbmNlcyA9
IGRvY3VtZW50KCkucGFnZSgpLT5ncm91cCgpLmNhcHRpb25QcmVmZXJlbmNlcygpOwogICAgIFZl
Y3RvcjxSZWZQdHI8VGV4dFRyYWNrPj4gdHJhY2tzRm9yTWVudSA9IGNhcHRpb25QcmVmZXJlbmNl
cy0+c29ydGVkVHJhY2tMaXN0Rm9yTWVudSh0cmFja0xpc3QpOwogCi0gICAgUmVmUHRyPEVsZW1l
bnQ+IGNhcHRpb25zSGVhZGVyID0gZG9jdW1lbnQoKS5jcmVhdGVFbGVtZW50KGgzVGFnLCBBU1NF
UlRfTk9fRVhDRVBUSU9OKTsKKyAgICBSZWY8RWxlbWVudD4gY2FwdGlvbnNIZWFkZXIgPSBkb2N1
bWVudCgpLmNyZWF0ZUVsZW1lbnQoaDNUYWcsIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgIGNh
cHRpb25zSGVhZGVyLT5hcHBlbmRDaGlsZChkb2N1bWVudCgpLmNyZWF0ZVRleHROb2RlKHRleHRU
cmFja1N1YnRpdGxlc1RleHQoKSkpOwotICAgIGFwcGVuZENoaWxkKGNhcHRpb25zSGVhZGVyKTsK
LSAgICBSZWZQdHI8RWxlbWVudD4gY2FwdGlvbnNNZW51TGlzdCA9IGRvY3VtZW50KCkuY3JlYXRl
RWxlbWVudCh1bFRhZywgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgYXBwZW5kQ2hpbGQoV1RG
Ojptb3ZlKGNhcHRpb25zSGVhZGVyKSk7CisgICAgUmVmPEVsZW1lbnQ+IGNhcHRpb25zTWVudUxp
c3QgPSBkb2N1bWVudCgpLmNyZWF0ZUVsZW1lbnQodWxUYWcsIEFTU0VSVF9OT19FWENFUFRJT04p
OwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgbGVuZ3RoID0gdHJhY2tzRm9yTWVudS5zaXpl
KCk7IGkgPCBsZW5ndGg7ICsraSkgewogICAgICAgICBSZWZQdHI8VGV4dFRyYWNrPiB0ZXh0VHJh
Y2sgPSB0cmFja3NGb3JNZW51W2ldOwotICAgICAgICBSZWZQdHI8RWxlbWVudD4gbWVudUl0ZW0g
PSBkb2N1bWVudCgpLmNyZWF0ZUVsZW1lbnQobGlUYWcsIEFTU0VSVF9OT19FWENFUFRJT04pOwor
ICAgICAgICBSZWY8RWxlbWVudD4gbWVudUl0ZW0gPSBkb2N1bWVudCgpLmNyZWF0ZUVsZW1lbnQo
bGlUYWcsIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgICAgICBtZW51SXRlbS0+YXBwZW5kQ2hp
bGQoZG9jdW1lbnQoKS5jcmVhdGVUZXh0Tm9kZShjYXB0aW9uUHJlZmVyZW5jZXMtPmRpc3BsYXlO
YW1lRm9yVHJhY2sodGV4dFRyYWNrLmdldCgpKSkpOwotICAgICAgICBjYXB0aW9uc01lbnVMaXN0
LT5hcHBlbmRDaGlsZChtZW51SXRlbSk7Ci0gICAgICAgIG1fbWVudUl0ZW1zLmFwcGVuZChtZW51
SXRlbSk7Ci0gICAgICAgIG1fbWVudVRvVHJhY2tNYXAuYWRkKG1lbnVJdGVtLCB0ZXh0VHJhY2sp
OworICAgICAgICBjYXB0aW9uc01lbnVMaXN0LT5hcHBlbmRDaGlsZChtZW51SXRlbS5jb3B5UmVm
KCkpOworICAgICAgICBtX21lbnVJdGVtcy5hcHBlbmQobWVudUl0ZW0ucHRyKCkpOworICAgICAg
ICBtX21lbnVUb1RyYWNrTWFwLmFkZChtZW51SXRlbS5wdHIoKSwgdGV4dFRyYWNrKTsKICAgICB9
CiAKLSAgICBhcHBlbmRDaGlsZChjYXB0aW9uc01lbnVMaXN0KTsKKyAgICBhcHBlbmRDaGlsZChX
VEY6Om1vdmUoY2FwdGlvbnNNZW51TGlzdCkpOwogI2VuZGlmCiB9CiAKQEAgLTExODYsMTYgKzEx
ODYsMTYgQEAgdm9pZCBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojp1cGRh
dGVEaXNwbGF5KCkKICAgICAgICAgICAgIC8vIHRyYWNrIGN1ZSByZWdpb24gaWRlbnRpZmllciwg
cnVuIHRoZSBmb2xsb3dpbmcgc3Vic3RlcHM6CiAgICAgICAgICAgICBpZiAoZGlzcGxheUJveC0+
aGFzQ2hpbGROb2RlcygpICYmICFjb250YWlucyhkaXNwbGF5Qm94LmdldCgpKSkgewogICAgICAg
ICAgICAgICAgIC8vIE5vdGU6IHRoZSBkaXNwbGF5IHRyZWUgb2YgYSBjdWUgaXMgcmVtb3ZlZCB3
aGVuIHRoZSBhY3RpdmUgZmxhZyBvZiB0aGUgY3VlIGlzIHVuc2V0LgotICAgICAgICAgICAgICAg
IGFwcGVuZENoaWxkKGRpc3BsYXlCb3gsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAgICAg
ICAgICAgIGFwcGVuZENoaWxkKCpkaXNwbGF5Qm94LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAg
ICAgICAgICAgICAgICBjdWUtPnNldEZvbnRTaXplKG1fZm9udFNpemUsIG1fdmlkZW9EaXNwbGF5
U2l6ZS5zaXplKCksIG1fZm9udFNpemVJc0ltcG9ydGFudCk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAvLyBMZXQgcmVnaW9uIGJlIHRoZSBXZWJWVFQgcmVn
aW9uIHdob3NlIHJlZ2lvbiBpZGVudGlmaWVyCiAgICAgICAgICAgICAvLyBtYXRjaGVzIHRoZSB0
ZXh0IHRyYWNrIGN1ZSByZWdpb24gaWRlbnRpZmllciBvZiBjdWUuCi0gICAgICAgICAgICBSZWZQ
dHI8SFRNTERpdkVsZW1lbnQ+IHJlZ2lvbk5vZGUgPSByZWdpb24tPmdldERpc3BsYXlUcmVlKCk7
CisgICAgICAgICAgICBSZWY8SFRNTERpdkVsZW1lbnQ+IHJlZ2lvbk5vZGUgPSByZWdpb24tPmdl
dERpc3BsYXlUcmVlKCk7CiAKICAgICAgICAgICAgIC8vIEFwcGVuZCB0aGUgcmVnaW9uIHRvIHRo
ZSB2aWV3cG9ydCwgaWYgaXQgd2FzIG5vdCBhbHJlYWR5LgotICAgICAgICAgICAgaWYgKCFjb250
YWlucyhyZWdpb25Ob2RlLmdldCgpKSkKKyAgICAgICAgICAgIGlmICghY29udGFpbnMocmVnaW9u
Tm9kZS5wdHIoKSkpCiAgICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQocmVnaW9uLT5nZXREaXNw
bGF5VHJlZSgpKTsKIAogICAgICAgICAgICAgcmVnaW9uLT5hcHBlbmRUZXh0VHJhY2tDdWVCb3go
ZGlzcGxheUJveCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMu
Y3BwCmluZGV4IDNkZDZkZTg2ZGExZmNjZDFmZTFhMDYwODUzZDQ3MTIzYTRhNzBkOTguLjlkZjk5
OGYxYTk4N2JjOTJmZjc4ODRkNTUzMzE4NjJhMTVjYjliMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuY3BwCkBAIC0zODAsMTQgKzM4MCwxNCBAQCB2b2lk
IE1lZGlhQ29udHJvbHM6OmNyZWF0ZVRleHRUcmFja0Rpc3BsYXkoKQogICAgIGlmIChtX3RleHRE
aXNwbGF5Q29udGFpbmVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBSZWZQdHI8TWVkaWFDb250
cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudD4gdGV4dERpc3BsYXlDb250YWluZXIgPSBNZWRp
YUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7Ci0g
ICAgbV90ZXh0RGlzcGxheUNvbnRhaW5lciA9IHRleHREaXNwbGF5Q29udGFpbmVyLmdldCgpOwor
ICAgIFJlZjxNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50PiB0ZXh0RGlzcGxh
eUNvbnRhaW5lciA9IE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCgpKTsKKyAgICBtX3RleHREaXNwbGF5Q29udGFpbmVyID0gdGV4dERpc3BsYXlD
b250YWluZXIucHRyKCk7CiAKICAgICBpZiAobV9tZWRpYUNvbnRyb2xsZXIpCiAgICAgICAgIG1f
dGV4dERpc3BsYXlDb250YWluZXItPnNldE1lZGlhQ29udHJvbGxlcihtX21lZGlhQ29udHJvbGxl
cik7CiAKICAgICAvLyBJbnNlcnQgaXQgYmVmb3JlIHRoZSBmaXJzdCBjb250cm9sbGVyIGVsZW1l
bnQgc28gaXQgYWx3YXlzIGRpc3BsYXlzIGJlaGluZCB0aGUgY29udHJvbHMuCi0gICAgaW5zZXJ0
QmVmb3JlKHRleHREaXNwbGF5Q29udGFpbmVyLnJlbGVhc2UoKSwgbV9wYW5lbCwgSUdOT1JFX0VY
Q0VQVElPTik7CisgICAgaW5zZXJ0QmVmb3JlKFdURjo6bW92ZSh0ZXh0RGlzcGxheUNvbnRhaW5l
ciksIG1fcGFuZWwsIElHTk9SRV9FWENFUFRJT04pOwogfQogCiB2b2lkIE1lZGlhQ29udHJvbHM6
OnNob3dUZXh0VHJhY2tEaXNwbGF5KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L01lZGlhQ29udHJvbHNBcHBsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xzQXBwbGUuY3BwCmluZGV4IDhmZGJhMGQwMzQ4NTAzYTJhNmU4ZTBkMGU4
NjQ3ZTkzZjk2NjRmODMuLjA5MjU2ZDViNGVkYTdjOGY5NjM5ZWJlMjk3MmE3OGYwOGEyNmQ4ZmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNBcHBs
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0FwcGxl
LmNwcApAQCAtNjMsMTY1ICs2MywxNjUgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzPiBNZWRp
YUNvbnRyb2xzOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogUGFzc1JlZlB0cjxNZWRpYUNv
bnRyb2xzQXBwbGU+IE1lZGlhQ29udHJvbHNBcHBsZTo6Y3JlYXRlQ29udHJvbHMoRG9jdW1lbnQm
IGRvY3VtZW50KQogewogICAgIGlmICghZG9jdW1lbnQucGFnZSgpKQotICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9sc0Fw
cGxlPiBjb250cm9scyA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xzQXBwbGUoZG9jdW1lbnQp
KTsKIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ+IHBhbmVsID0gTWVkaWFD
b250cm9sUGFuZWxFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIFJlZjxNZWRpYUNvbnRy
b2xQYW5lbEVsZW1lbnQ+IHBhbmVsID0gTWVkaWFDb250cm9sUGFuZWxFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQpOwogCiAgICAgRXhjZXB0aW9uQ29kZSBlYzsKIAotICAgIFJlZlB0cjxNZWRpYUNv
bnRyb2xSZXdpbmRCdXR0b25FbGVtZW50PiByZXdpbmRCdXR0b24gPSBNZWRpYUNvbnRyb2xSZXdp
bmRCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNvbnRyb2xzLT5tX3Jld2lu
ZEJ1dHRvbiA9IHJld2luZEJ1dHRvbi5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQocmV3
aW5kQnV0dG9uLnJlbGVhc2UoKSwgZWMpOworICAgIFJlZjxNZWRpYUNvbnRyb2xSZXdpbmRCdXR0
b25FbGVtZW50PiByZXdpbmRCdXR0b24gPSBNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNvbnRyb2xzLT5tX3Jld2luZEJ1dHRvbiA9IHJld2lu
ZEJ1dHRvbi5wdHIoKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHJld2luZEJ1
dHRvbiksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudD4g
cGxheUJ1dHRvbiA9IE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQpOwotICAgIGNvbnRyb2xzLT5tX3BsYXlCdXR0b24gPSBwbGF5QnV0dG9uLmdldCgpOwotICAg
IHBhbmVsLT5hcHBlbmRDaGlsZChwbGF5QnV0dG9uLnJlbGVhc2UoKSwgZWMpOworICAgIFJlZjxN
ZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudD4gcGxheUJ1dHRvbiA9IE1lZGlhQ29udHJvbFBs
YXlCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNvbnRyb2xzLT5tX3BsYXlC
dXR0b24gPSBwbGF5QnV0dG9uLnB0cigpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChXVEY6Om1v
dmUocGxheUJ1dHRvbiksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xSZXR1cm5Ub1Jl
YWx0aW1lQnV0dG9uRWxlbWVudD4gcmV0dXJuVG9SZWFsdGltZUJ1dHRvbiA9IE1lZGlhQ29udHJv
bFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNv
bnRyb2xzLT5tX3JldHVyblRvUmVhbFRpbWVCdXR0b24gPSByZXR1cm5Ub1JlYWx0aW1lQnV0dG9u
LmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChyZXR1cm5Ub1JlYWx0aW1lQnV0dG9uLnJl
bGVhc2UoKSwgZWMpOworICAgIFJlZjxNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9u
RWxlbWVudD4gcmV0dXJuVG9SZWFsdGltZUJ1dHRvbiA9IE1lZGlhQ29udHJvbFJldHVyblRvUmVh
bHRpbWVCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNvbnRyb2xzLT5tX3Jl
dHVyblRvUmVhbFRpbWVCdXR0b24gPSByZXR1cm5Ub1JlYWx0aW1lQnV0dG9uLnB0cigpOworICAg
IHBhbmVsLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUocmV0dXJuVG9SZWFsdGltZUJ1dHRvbiksIGVj
KTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIAogICAgIGlmIChkb2N1bWVudC5wYWdlKCktPnRoZW1lKCkudXNlc01lZGlhQ29udHJvbFN0
YXR1c0Rpc3BsYXkoKSkgewotICAgICAgICBSZWZQdHI8TWVkaWFDb250cm9sU3RhdHVzRGlzcGxh
eUVsZW1lbnQ+IHN0YXR1c0Rpc3BsYXkgPSBNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICAgICAgY29udHJvbHMtPm1fc3RhdHVzRGlzcGxheSA9
IHN0YXR1c0Rpc3BsYXkuZ2V0KCk7Ci0gICAgICAgIHBhbmVsLT5hcHBlbmRDaGlsZChzdGF0dXNE
aXNwbGF5LnJlbGVhc2UoKSwgZWMpOworICAgICAgICBSZWY8TWVkaWFDb250cm9sU3RhdHVzRGlz
cGxheUVsZW1lbnQ+IHN0YXR1c0Rpc3BsYXkgPSBNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICAgICAgY29udHJvbHMtPm1fc3RhdHVzRGlzcGxh
eSA9IHN0YXR1c0Rpc3BsYXkucHRyKCk7CisgICAgICAgIHBhbmVsLT5hcHBlbmRDaGlsZChXVEY6
Om1vdmUoc3RhdHVzRGlzcGxheSksIGVjKTsKICAgICAgICAgaWYgKGVjKQotICAgICAgICAgICAg
cmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBSZWZQ
dHI8TWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50PiB0aW1lbGluZUNvbnRhaW5l
ciA9IE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
KTsKKyAgICBSZWY8TWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50PiB0aW1lbGlu
ZUNvbnRhaW5lciA9IE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KTsKIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlF
bGVtZW50PiBjdXJyZW50VGltZURpc3BsYXkgPSBNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3Bs
YXlFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNvbnRyb2xzLT5tX2N1cnJlbnRUaW1l
RGlzcGxheSA9IGN1cnJlbnRUaW1lRGlzcGxheS5nZXQoKTsKLSAgICB0aW1lbGluZUNvbnRhaW5l
ci0+YXBwZW5kQ2hpbGQoY3VycmVudFRpbWVEaXNwbGF5LnJlbGVhc2UoKSwgZWMpOworICAgIFJl
ZjxNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50PiBjdXJyZW50VGltZURpc3Bs
YXkgPSBNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQpOworICAgIGNvbnRyb2xzLT5tX2N1cnJlbnRUaW1lRGlzcGxheSA9IGN1cnJlbnRUaW1lRGlz
cGxheS5wdHIoKTsKKyAgICB0aW1lbGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoV1RGOjptb3Zl
KGN1cnJlbnRUaW1lRGlzcGxheSksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAw
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUaW1l
bGluZUVsZW1lbnQ+IHRpbWVsaW5lID0gTWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKLSAgICBjb250cm9scy0+bV90aW1lbGluZSA9
IHRpbWVsaW5lLmdldCgpOwotICAgIHRpbWVsaW5lQ29udGFpbmVyLT5hcHBlbmRDaGlsZCh0aW1l
bGluZS5yZWxlYXNlKCksIGVjKTsKKyAgICBSZWY8TWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50
PiB0aW1lbGluZSA9IE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
LCBjb250cm9scy5nZXQoKSk7CisgICAgY29udHJvbHMtPm1fdGltZWxpbmUgPSB0aW1lbGluZS5w
dHIoKTsKKyAgICB0aW1lbGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHRpbWVs
aW5lKSwgZWMpOwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVy
biBudWxscHRyOwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5
RWxlbWVudD4gdGltZVJlbWFpbmluZ0Rpc3BsYXkgPSBNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5n
RGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJvbHMtPm1fdGltZVJl
bWFpbmluZ0Rpc3BsYXkgPSB0aW1lUmVtYWluaW5nRGlzcGxheS5nZXQoKTsKLSAgICB0aW1lbGlu
ZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQodGltZVJlbWFpbmluZ0Rpc3BsYXkucmVsZWFzZSgpLCBl
Yyk7CisgICAgUmVmPE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudD4gdGlt
ZVJlbWFpbmluZ0Rpc3BsYXkgPSBNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgY29udHJvbHMtPm1fdGltZVJlbWFpbmluZ0Rpc3Bs
YXkgPSB0aW1lUmVtYWluaW5nRGlzcGxheS5wdHIoKTsKKyAgICB0aW1lbGluZUNvbnRhaW5lci0+
YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHRpbWVSZW1haW5pbmdEaXNwbGF5KSwgZWMpOwogICAgIGlm
IChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAg
Y29udHJvbHMtPm1fdGltZWxpbmVDb250YWluZXIgPSB0aW1lbGluZUNvbnRhaW5lci5nZXQoKTsK
LSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQodGltZWxpbmVDb250YWluZXIucmVsZWFzZSgpLCBlYyk7
CisgICAgY29udHJvbHMtPm1fdGltZWxpbmVDb250YWluZXIgPSB0aW1lbGluZUNvbnRhaW5lci5w
dHIoKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHRpbWVsaW5lQ29udGFpbmVy
KSwgZWMpOwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBu
dWxscHRyOwogCiAgICAgLy8gRklYTUU6IE9ubHkgY3JlYXRlIHdoZW4gbmVlZGVkIDxodHRwOi8v
d2Via2l0Lm9yZy9iLzU3MTYzPgotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRv
bkVsZW1lbnQ+IHNlZWtCYWNrQnV0dG9uID0gTWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNvbnRyb2xzLT5tX3NlZWtCYWNrQnV0dG9uID0g
c2Vla0JhY2tCdXR0b24uZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKHNlZWtCYWNrQnV0
dG9uLnJlbGVhc2UoKSwgZWMpOworICAgIFJlZjxNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVs
ZW1lbnQ+IHNlZWtCYWNrQnV0dG9uID0gTWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNvbnRyb2xzLT5tX3NlZWtCYWNrQnV0dG9uID0gc2Vl
a0JhY2tCdXR0b24ucHRyKCk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdURjo6bW92ZShzZWVr
QmFja0J1dHRvbiksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAogICAgIC8vIEZJWE1FOiBPbmx5IGNyZWF0ZSB3aGVuIG5lZWRl
ZCA8aHR0cDovL3dlYmtpdC5vcmcvYi81NzE2Mz4KLSAgICBSZWZQdHI8TWVkaWFDb250cm9sU2Vl
a0ZvcndhcmRCdXR0b25FbGVtZW50PiBzZWVrRm9yd2FyZEJ1dHRvbiA9IE1lZGlhQ29udHJvbFNl
ZWtGb3J3YXJkQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBjb250cm9scy0+
bV9zZWVrRm9yd2FyZEJ1dHRvbiA9IHNlZWtGb3J3YXJkQnV0dG9uLmdldCgpOwotICAgIHBhbmVs
LT5hcHBlbmRDaGlsZChzZWVrRm9yd2FyZEJ1dHRvbi5yZWxlYXNlKCksIGVjKTsKKyAgICBSZWY8
TWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50PiBzZWVrRm9yd2FyZEJ1dHRvbiA9
IE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsK
KyAgICBjb250cm9scy0+bV9zZWVrRm9yd2FyZEJ1dHRvbiA9IHNlZWtGb3J3YXJkQnV0dG9uLnB0
cigpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoc2Vla0ZvcndhcmRCdXR0b24p
LCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKICAgICBpZiAoZG9jdW1lbnQucGFnZSgpLT50aGVtZSgpLnN1cHBvcnRzQ2xvc2Vk
Q2FwdGlvbmluZygpKSB7Ci0gICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9u
c0NvbnRhaW5lckVsZW1lbnQ+IGNsb3NlZENhcHRpb25zQ29udGFpbmVyID0gTWVkaWFDb250cm9s
Q2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgICAg
ICBSZWY8TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50PiBjbG9zZWRD
YXB0aW9uc0NvbnRhaW5lciA9IE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKIAotICAgICAgICBSZWZQdHI8TWVkaWFDb250cm9sQ2xv
c2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50PiBjbG9zZWRDYXB0aW9uc1RyYWNrTGlzdCA9IE1l
ZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
LCBjb250cm9scy5nZXQoKSk7Ci0gICAgICAgIGNvbnRyb2xzLT5tX2Nsb3NlZENhcHRpb25zVHJh
Y2tMaXN0ID0gY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QuZ2V0KCk7Ci0gICAgICAgIGNsb3NlZENh
cHRpb25zQ29udGFpbmVyLT5hcHBlbmRDaGlsZChjbG9zZWRDYXB0aW9uc1RyYWNrTGlzdC5yZWxl
YXNlKCksIGVjKTsKKyAgICAgICAgUmVmPE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tM
aXN0RWxlbWVudD4gY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QgPSBNZWRpYUNvbnRyb2xDbG9zZWRD
YXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkp
OworICAgICAgICBjb250cm9scy0+bV9jbG9zZWRDYXB0aW9uc1RyYWNrTGlzdCA9IGNsb3NlZENh
cHRpb25zVHJhY2tMaXN0LnB0cigpOworICAgICAgICBjbG9zZWRDYXB0aW9uc0NvbnRhaW5lci0+
YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNsb3NlZENhcHRpb25zVHJhY2tMaXN0KSwgZWMpOwogICAg
ICAgICBpZiAoZWMpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCi0gICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9u
c0J1dHRvbkVsZW1lbnQ+IHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uID0gTWVkaWFDb250cm9s
VG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRy
b2xzLmdldCgpKTsKLSAgICAgICAgY29udHJvbHMtPm1fdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0
b24gPSB0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbi5nZXQoKTsKLSAgICAgICAgcGFuZWwtPmFw
cGVuZENoaWxkKHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uLnJlbGVhc2UoKSwgZWMpOworICAg
ICAgICBSZWY8TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50PiB0
b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbiA9IE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRp
b25zQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBjb250cm9scy5nZXQoKSk7CisgICAg
ICAgIGNvbnRyb2xzLT5tX3RvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uID0gdG9nZ2xlQ2xvc2Vk
Q2FwdGlvbnNCdXR0b24ucHRyKCk7CisgICAgICAgIHBhbmVsLT5hcHBlbmRDaGlsZChXVEY6Om1v
dmUodG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24pLCBlYyk7CiAgICAgICAgIGlmIChlYykKLSAg
ICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICAg
ICAgY29udHJvbHMtPm1fY2xvc2VkQ2FwdGlvbnNDb250YWluZXIgPSBjbG9zZWRDYXB0aW9uc0Nv
bnRhaW5lci5nZXQoKTsKLSAgICAgICAgY29udHJvbHMtPmFwcGVuZENoaWxkKGNsb3NlZENhcHRp
b25zQ29udGFpbmVyLnJlbGVhc2UoKSwgZWMpOworICAgICAgICBjb250cm9scy0+bV9jbG9zZWRD
YXB0aW9uc0NvbnRhaW5lciA9IGNsb3NlZENhcHRpb25zQ29udGFpbmVyLnB0cigpOworICAgICAg
ICBjb250cm9scy0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNsb3NlZENhcHRpb25zQ29udGFpbmVy
KSwgZWMpOwogICAgICAgICBpZiAoZWMpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIC8vIEZJWE1FOiBPbmx5IGNyZWF0ZSB3
aGVuIG5lZWRlZCA8aHR0cDovL3dlYmtpdC5vcmcvYi81NzE2Mz4KLSAgICBSZWZQdHI8TWVkaWFD
b250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ+IGZ1bGxTY3JlZW5CdXR0b24gPSBNZWRpYUNv
bnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBjb250
cm9scy0+bV9mdWxsU2NyZWVuQnV0dG9uID0gZnVsbFNjcmVlbkJ1dHRvbi5nZXQoKTsKLSAgICBw
YW5lbC0+YXBwZW5kQ2hpbGQoZnVsbFNjcmVlbkJ1dHRvbi5yZWxlYXNlKCksIGVjKTsKKyAgICBS
ZWY8TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ+IGZ1bGxTY3JlZW5CdXR0b24g
PSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsK
KyAgICBjb250cm9scy0+bV9mdWxsU2NyZWVuQnV0dG9uID0gZnVsbFNjcmVlbkJ1dHRvbi5wdHIo
KTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGZ1bGxTY3JlZW5CdXR0b24pLCBl
Yyk7CiAKICAgICAvLyBUaGUgbXV0ZSBidXR0b24gYW5kIHRoZSBzbGlkZXIgZWxlbWVudCBzaG91
bGQgYmUgaW4gdGhlIHNhbWUgZGl2LgotICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gcGFuZWxW
b2x1bWVDb250cm9sQ29udGFpbmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7
CisgICAgUmVmPEhUTUxEaXZFbGVtZW50PiBwYW5lbFZvbHVtZUNvbnRyb2xDb250YWluZXIgPSBI
VE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKIAogICAgIGlmIChkb2N1bWVudC5wYWdl
KCktPnRoZW1lKCkudXNlc01lZGlhQ29udHJvbFZvbHVtZVNsaWRlcigpKSB7Ci0gICAgICAgIFJl
ZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50PiB2b2x1bWVTbGlk
ZXJDb250YWluZXIgPSBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQpOworICAgICAgICBSZWY8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29u
dGFpbmVyRWxlbWVudD4gdm9sdW1lU2xpZGVyQ29udGFpbmVyID0gTWVkaWFDb250cm9sVm9sdW1l
U2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKIAotICAgICAgICBSZWZQ
dHI8TWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50PiBzbGlkZXIgPSBNZWRpYUNv
bnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgICAg
IGNvbnRyb2xzLT5tX3ZvbHVtZVNsaWRlciA9IHNsaWRlci5nZXQoKTsKLSAgICAgICAgdm9sdW1l
U2xpZGVyQ29udGFpbmVyLT5hcHBlbmRDaGlsZChzbGlkZXIucmVsZWFzZSgpLCBlYyk7CisgICAg
ICAgIFJlZjxNZWRpYUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1lbnQ+IHNsaWRlciA9IE1l
ZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xpZGVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAg
ICAgICAgY29udHJvbHMtPm1fdm9sdW1lU2xpZGVyID0gc2xpZGVyLnB0cigpOworICAgICAgICB2
b2x1bWVTbGlkZXJDb250YWluZXItPmFwcGVuZENoaWxkKFdURjo6bW92ZShzbGlkZXIpLCBlYyk7
CiAgICAgICAgIGlmIChlYykKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKICAgICAgICAgLy8gVGhpcyBpcyBhIGR1cGxpY2F0ZSBtdXRlIGJ1dHRv
biwgd2hpY2ggaXMgdmlzaWJsZSBpbiBzb21lIHBvcnRzIGF0IHRoZSBib3R0b20gb2YgdGhlIHZv
bHVtZSBiYXIuCiAgICAgICAgIC8vIEl0J3MgaW1wb3J0YW50IG9ubHkgd2hlbiB0aGUgdm9sdW1l
IGJhciBpcyBkaXNwbGF5ZWQgYmVsb3cgdGhlIGNvbnRyb2xzLgotICAgICAgICBSZWZQdHI8TWVk
aWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ+IHZvbHVtZVNsaWRlck11dGVC
dXR0b24gPSBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KTsKLSAgICAgICAgY29udHJvbHMtPm1fdm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbiA9
IHZvbHVtZVNsaWRlck11dGVCdXR0b24uZ2V0KCk7Ci0gICAgICAgIHZvbHVtZVNsaWRlckNvbnRh
aW5lci0+YXBwZW5kQ2hpbGQodm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbi5yZWxlYXNlKCksIGVjKTsK
KyAgICAgICAgUmVmPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50PiB2
b2x1bWVTbGlkZXJNdXRlQnV0dG9uID0gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRv
bkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgICAgIGNvbnRyb2xzLT5tX3ZvbHVtZVNs
aWRlck11dGVCdXR0b24gPSB2b2x1bWVTbGlkZXJNdXRlQnV0dG9uLnB0cigpOworICAgICAgICB2
b2x1bWVTbGlkZXJDb250YWluZXItPmFwcGVuZENoaWxkKFdURjo6bW92ZSh2b2x1bWVTbGlkZXJN
dXRlQnV0dG9uKSwgZWMpOwogCiAgICAgICAgIGlmIChlYykKLSAgICAgICAgICAgIHJldHVybiAw
OworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICAgICAgY29udHJvbHMtPm1fdm9s
dW1lU2xpZGVyQ29udGFpbmVyID0gdm9sdW1lU2xpZGVyQ29udGFpbmVyLmdldCgpOwotICAgICAg
ICBwYW5lbFZvbHVtZUNvbnRyb2xDb250YWluZXItPmFwcGVuZENoaWxkKHZvbHVtZVNsaWRlckNv
bnRhaW5lci5yZWxlYXNlKCksIGVjKTsKKyAgICAgICAgY29udHJvbHMtPm1fdm9sdW1lU2xpZGVy
Q29udGFpbmVyID0gdm9sdW1lU2xpZGVyQ29udGFpbmVyLnB0cigpOworICAgICAgICBwYW5lbFZv
bHVtZUNvbnRyb2xDb250YWluZXItPmFwcGVuZENoaWxkKFdURjo6bW92ZSh2b2x1bWVTbGlkZXJD
b250YWluZXIpLCBlYyk7CiAgICAgICAgIGlmIChlYykKLSAgICAgICAgICAgIHJldHVybiAwOwor
ICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgUmVmUHRyPE1lZGlhQ29u
dHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ+IHBhbmVsTXV0ZUJ1dHRvbiA9IE1lZGlhQ29udHJv
bFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkp
OwotICAgIGNvbnRyb2xzLT5tX3BhbmVsTXV0ZUJ1dHRvbiA9IHBhbmVsTXV0ZUJ1dHRvbi5nZXQo
KTsKLSAgICBwYW5lbFZvbHVtZUNvbnRyb2xDb250YWluZXItPmFwcGVuZENoaWxkKHBhbmVsTXV0
ZUJ1dHRvbi5yZWxlYXNlKCksIGVjKTsKKyAgICBSZWY8TWVkaWFDb250cm9sUGFuZWxNdXRlQnV0
dG9uRWxlbWVudD4gcGFuZWxNdXRlQnV0dG9uID0gTWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9u
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBjb250cm9scy5nZXQoKSk7CisgICAgY29udHJvbHMt
Pm1fcGFuZWxNdXRlQnV0dG9uID0gcGFuZWxNdXRlQnV0dG9uLnB0cigpOworICAgIHBhbmVsVm9s
dW1lQ29udHJvbENvbnRhaW5lci0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHBhbmVsTXV0ZUJ1dHRv
biksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChwYW5lbFZvbHVtZUNvbnRyb2xDb250
YWluZXIsIGVjKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHBhbmVsVm9sdW1l
Q29udHJvbENvbnRhaW5lciksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIC8vIEZJWE1FOiBPbmx5IGNyZWF0ZSB3aGVu
IG5lZWRlZCA8aHR0cDovL3dlYmtpdC5vcmcvYi81NzE2Mz4KLSAgICBSZWZQdHI8TWVkaWFDb250
cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQ+IGZ1bGxTY3JlZW5NaW5Wb2x1bWVC
dXR0b24gPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50KTsKLSAgICBjb250cm9scy0+bV9mdWxsU2NyZWVuTWluVm9sdW1lQnV0dG9u
ID0gZnVsbFNjcmVlbk1pblZvbHVtZUJ1dHRvbi5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hp
bGQoZnVsbFNjcmVlbk1pblZvbHVtZUJ1dHRvbi5yZWxlYXNlKCksIGVjKTsKKyAgICBSZWY8TWVk
aWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQ+IGZ1bGxTY3JlZW5NaW5W
b2x1bWVCdXR0b24gPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBjb250cm9scy0+bV9mdWxsU2NyZWVuTWluVm9sdW1l
QnV0dG9uID0gZnVsbFNjcmVlbk1pblZvbHVtZUJ1dHRvbi5wdHIoKTsKKyAgICBwYW5lbC0+YXBw
ZW5kQ2hpbGQoV1RGOjptb3ZlKGZ1bGxTY3JlZW5NaW5Wb2x1bWVCdXR0b24pLCBlYyk7CiAgICAg
aWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAg
ICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQ+IGZ1bGxT
Y3JlZW5Wb2x1bWVTbGlkZXIgPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBjb250cm9scy0+bV9mdWxsU2NyZWVuVm9sdW1l
U2xpZGVyID0gZnVsbFNjcmVlblZvbHVtZVNsaWRlci5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5k
Q2hpbGQoZnVsbFNjcmVlblZvbHVtZVNsaWRlci5yZWxlYXNlKCksIGVjKTsKKyAgICBSZWY8TWVk
aWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQ+IGZ1bGxTY3JlZW5Wb2x1bWVT
bGlkZXIgPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KTsKKyAgICBjb250cm9scy0+bV9mdWxsU2NyZWVuVm9sdW1lU2xpZGVyID0gZnVs
bFNjcmVlblZvbHVtZVNsaWRlci5wdHIoKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGOjpt
b3ZlKGZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXIpLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAgICBy
ZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBSZWZQdHI8TWVkaWFDb250
cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQ+IGZ1bGxTY3JlZW5NYXhWb2x1bWVC
dXR0b24gPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50KTsKLSAgICBjb250cm9scy0+bV9mdWxsU2NyZWVuTWF4Vm9sdW1lQnV0dG9u
ID0gZnVsbFNjcmVlbk1heFZvbHVtZUJ1dHRvbi5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hp
bGQoZnVsbFNjcmVlbk1heFZvbHVtZUJ1dHRvbi5yZWxlYXNlKCksIGVjKTsKKyAgICBSZWY8TWVk
aWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQ+IGZ1bGxTY3JlZW5NYXhW
b2x1bWVCdXR0b24gPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBjb250cm9scy0+bV9mdWxsU2NyZWVuTWF4Vm9sdW1l
QnV0dG9uID0gZnVsbFNjcmVlbk1heFZvbHVtZUJ1dHRvbi5wdHIoKTsKKyAgICBwYW5lbC0+YXBw
ZW5kQ2hpbGQoV1RGOjptb3ZlKGZ1bGxTY3JlZW5NYXhWb2x1bWVCdXR0b24pLCBlYyk7CiAgICAg
aWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAg
ICBjb250cm9scy0+bV9wYW5lbCA9IHBhbmVsLmdldCgpOwotICAgIGNvbnRyb2xzLT5hcHBlbmRD
aGlsZChwYW5lbC5yZWxlYXNlKCksIGVjKTsKKyAgICBjb250cm9scy0+bV9wYW5lbCA9IHBhbmVs
LnB0cigpOworICAgIGNvbnRyb2xzLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUocGFuZWwpLCBlYyk7
CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKICAgICByZXR1cm4gY29udHJvbHMucmVsZWFzZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKaW5kZXggMGExYmI4M2ZiMTlj
NzU1NmRhY2QxNmNmZGRjNzg2OTg0YmQ1MTc4My4uOWRkZDU1MmJkOGNlZTk2YzYxZmVhYjgxZmUz
ZDQ2YjZlMDBkZTliNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xp
ZGVyVGh1bWJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlk
ZXJUaHVtYkVsZW1lbnQuY3BwCkBAIC02MTEsNyArNjExLDcgQEAgY29uc3QgQXRvbWljU3RyaW5n
JiBTbGlkZXJUaHVtYkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKICAgICB9CiB9CiAK
LVJlZlB0cjxFbGVtZW50PiBTbGlkZXJUaHVtYkVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhvdXRB
dHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50KQorUmVmPEVsZW1l
bnQ+IFNsaWRlclRodW1iRWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRD
aGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZSh0
YXJnZXREb2N1bWVudCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9TbGlkZXJUaHVtYkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRl
clRodW1iRWxlbWVudC5oCmluZGV4IDQ4ZWNkNTUyNmQwYjBhNTc4MTYwZjcyZDgyNjJiMmYxN2Jm
ZTZhYjguLmNmMmY4NWE3ZWRkZjc5NGU3ODVkZjc2YmFjMDlmOTM4NjU1ZmQyMTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oCkBAIC02Miw3
ICs2Miw3IEBAIHByaXZhdGU6CiAgICAgU2xpZGVyVGh1bWJFbGVtZW50KERvY3VtZW50Jik7CiAK
ICAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlk
ZTsKLSAgICB2aXJ0dWFsIFJlZlB0cjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmli
dXRlc0FuZENoaWxkcmVuKERvY3VtZW50Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8RWxl
bWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYp
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc0Rpc2FibGVkRm9ybUNvbnRyb2woKSBjb25z
dCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgbWF0Y2hlc1JlYWRXcml0ZVBzZXVkb0NsYXNz
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBFbGVtZW50KiBmb2N1c0RlbGVnYXRlKCkg
b3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1h
Z2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwCmluZGV4IGE0NGE1ZGUwNjkyYTE2
YjNiNDlkYjg3NDExOTViYWFhZGU3ZjU5NmMuLmM0NGM1MTg4MmNiODE4Nzg2MWI2NmI1NmNmYzVh
OWMyMjhlMmFlZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9J
bWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwCkBAIC04NSwxMiArODUs
MTMgQEAgUmVmUHRyPEltYWdlQ29udHJvbHNSb290RWxlbWVudD4gSW1hZ2VDb250cm9sc1Jvb3RF
bGVtZW50OjptYXliZUNyZWF0ZShEb2N1bWVudCYKICAgICBpZiAoIWRvY3VtZW50LnBhZ2UoKSkK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBSZWZQdHI8SW1hZ2VDb250cm9sc1Jvb3RF
bGVtZW50TWFjPiBjb250cm9scyA9IGFkb3B0UmVmKCpuZXcgSW1hZ2VDb250cm9sc1Jvb3RFbGVt
ZW50TWFjKGRvY3VtZW50KSk7CisgICAgUmVmPEltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYz4g
Y29udHJvbHMgPSBhZG9wdFJlZigqbmV3IEltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYyhkb2N1
bWVudCkpOwogICAgIGNvbnRyb2xzLT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpjbGFzc0F0dHIs
ICJ4LXdlYmtpdC1pbWFnZS1jb250cm9scyIpOwogCi0gICAgY29udHJvbHMtPmFwcGVuZENoaWxk
KEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjOjptYXliZUNyZWF0ZShkb2N1bWVudCkpOwor
ICAgIGlmIChSZWZQdHI8SW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWM+IGJ1dHRvbiA9IElt
YWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjOjptYXliZUNyZWF0ZShkb2N1bWVudCkpCisgICAg
ICAgIGNvbnRyb2xzLT5hcHBlbmRDaGlsZChidXR0b24ucmVsZWFzZU5vbk51bGwoKSk7CiAKLSAg
ICByZXR1cm4gY29udHJvbHMucmVsZWFzZSgpOworICAgIHJldHVybiBXVEY6Om1vdmUoY29udHJv
bHMpOwogfQogCiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWM6OkltYWdlQ29udHJvbHNSb290
RWxlbWVudE1hYyhEb2N1bWVudCYgZG9jdW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1
ZS5jcHAKaW5kZXggYTk2OTBkNmY5OTYxOWYzNzA5YTZiOGEyNWQ2YmZlMzE1MzUwYWFlZC4uOWQ2
Y2E3MmRhOGQ4MTViNzdmMDU5OGY4ZDlmMjMxMjM5YjlmNTY5OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVlRUQ3VlLmNwcApAQCAtNDk2LDcgKzQ5Niw3IEBAIHZvaWQgVlRUQ3VlOjpjb3B5V2Vi
VlRUTm9kZVRvRE9NVHJlZShDb250YWluZXJOb2RlKiB3ZWJWVFROb2RlLCBDb250YWluZXJOb2Rl
KiBwCiAgICAgICAgICAgICBjbG9uZWROb2RlID0gZG93bmNhc3Q8V2ViVlRURWxlbWVudD4oKm5v
ZGUpLmNyZWF0ZUVxdWl2YWxlbnRIVE1MRWxlbWVudChvd25lckRvY3VtZW50KCkpOwogICAgICAg
ICBlbHNlCiAgICAgICAgICAgICBjbG9uZWROb2RlID0gbm9kZS0+Y2xvbmVOb2RlKGZhbHNlKTsK
LSAgICAgICAgcGFyZW50LT5hcHBlbmRDaGlsZChjbG9uZWROb2RlLCBBU1NFUlRfTk9fRVhDRVBU
SU9OKTsKKyAgICAgICAgcGFyZW50LT5hcHBlbmRDaGlsZCgqY2xvbmVkTm9kZSwgQVNTRVJUX05P
X0VYQ0VQVElPTik7CiAgICAgICAgIGlmIChpczxDb250YWluZXJOb2RlPigqbm9kZSkpCiAgICAg
ICAgICAgICBjb3B5V2ViVlRUTm9kZVRvRE9NVHJlZShkb3duY2FzdDxDb250YWluZXJOb2RlPihu
b2RlKSwgZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4oY2xvbmVkTm9kZS5nZXQoKSkpOwogICAgIH0K
QEAgLTUxOCwxMCArNTE4LDEwIEBAIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gVlRUQ3Vl
OjpjcmVhdGVDdWVSZW5kZXJpbmdUcmVlKCkKICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4g
Y2xvbmVkRnJhZ21lbnQ7CiAgICAgY3JlYXRlV2ViVlRUTm9kZVRyZWUoKTsKICAgICBpZiAoIW1f
d2ViVlRUTm9kZVRyZWUpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIAogICAgIGNsb25lZEZyYWdtZW50ID0gRG9jdW1lbnRGcmFnbWVudDo6Y3JlYXRlKG93bmVy
RG9jdW1lbnQoKSk7Ci0gICAgbV93ZWJWVFROb2RlVHJlZS0+Y2xvbmVDaGlsZE5vZGVzKGNsb25l
ZEZyYWdtZW50LmdldCgpKTsKKyAgICBtX3dlYlZUVE5vZGVUcmVlLT5jbG9uZUNoaWxkTm9kZXMo
KmNsb25lZEZyYWdtZW50KTsKICAgICByZXR1cm4gY2xvbmVkRnJhZ21lbnQucmVsZWFzZSgpOwog
fQogCkBAIC03ODUsNyArNzg1LDcgQEAgdm9pZCBWVFRDdWU6OnVwZGF0ZURpc3BsYXlUcmVlKGNv
bnN0IE1lZGlhVGltZSYgbW92aWVUaW1lKQogICAgICAgICByZXR1cm47CiAKICAgICBtYXJrRnV0
dXJlQW5kUGFzdE5vZGVzKHJlZmVyZW5jZVRyZWUuZ2V0KCksIHN0YXJ0TWVkaWFUaW1lKCksIG1v
dmllVGltZSk7Ci0gICAgbV9jdWVIaWdobGlnaHRCb3gtPmFwcGVuZENoaWxkKHJlZmVyZW5jZVRy
ZWUpOworICAgIG1fY3VlSGlnaGxpZ2h0Qm94LT5hcHBlbmRDaGlsZChyZWZlcmVuY2VUcmVlLnJl
bGVhc2VOb25OdWxsKCkpOwogfQogCiBWVFRDdWVCb3gqIFZUVEN1ZTo6Z2V0RGlzcGxheVRyZWUo
Y29uc3QgSW50U2l6ZSYgdmlkZW9TaXplLCBpbnQgZm9udFNpemUpCkBAIC04MTIsOCArODEyLDgg
QEAgVlRUQ3VlQm94KiBWVFRDdWU6OmdldERpc3BsYXlUcmVlKGNvbnN0IEludFNpemUmIHZpZGVv
U2l6ZSwgaW50IGZvbnRTaXplKQogICAgIG1fY3VlSGlnaGxpZ2h0Qm94LT5zZXRQc2V1ZG8oY3Vl
U2hhZG93UHNldWRvSWQoKSk7CiAKICAgICBtX2N1ZUJhY2tkcm9wQm94LT5zZXRQc2V1ZG8oY3Vl
QmFja2Ryb3BTaGFkb3dQc2V1ZG9JZCgpKTsKLSAgICBtX2N1ZUJhY2tkcm9wQm94LT5hcHBlbmRD
aGlsZChtX2N1ZUhpZ2hsaWdodEJveCwgQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0gICAgZGlzcGxh
eVRyZWUtPmFwcGVuZENoaWxkKG1fY3VlQmFja2Ryb3BCb3gsIEFTU0VSVF9OT19FWENFUFRJT04p
OworICAgIG1fY3VlQmFja2Ryb3BCb3gtPmFwcGVuZENoaWxkKCptX2N1ZUhpZ2hsaWdodEJveCwg
QVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgZGlzcGxheVRyZWUtPmFwcGVuZENoaWxkKCptX2N1
ZUJhY2tkcm9wQm94LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAogICAgIC8vIEZJWE1FKEJVRyA3
OTkxNik6IFJ1bnMgb2YgY2hpbGRyZW4gb2YgV2ViVlRUIFJ1YnkgT2JqZWN0cyB0aGF0IGFyZSBu
b3QKICAgICAvLyBXZWJWVFQgUnVieSBUZXh0IE9iamVjdHMgbXVzdCBiZSB3cmFwcGVkIGluIGFu
b255bW91cyBib3hlcyB3aG9zZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9WVFRSZWdpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24uY3Bw
CmluZGV4IGNjYjMyZTAzOWQ1YzUzYWZlZWMwNTAyYjY1ZTAwYWMxZTZmZmRlZjMuLjg1Nzk4Njhl
OTgxZmZiZjI5MTY2MmI2NTRkNTNlYjlhZGZiZGJiNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1ZUVFJlZ2lvbi5jcHAKQEAgLTM1NCw3ICszNTQsNyBAQCB2b2lkIFZUVFJlZ2lvbjo6YXBw
ZW5kVGV4dFRyYWNrQ3VlQm94KFBhc3NSZWZQdHI8VlRUQ3VlQm94PiBkaXNwbGF5Qm94KQogICAg
IGlmIChtX2N1ZUNvbnRhaW5lci0+Y29udGFpbnMoZGlzcGxheUJveC5nZXQoKSkpCiAgICAgICAg
IHJldHVybjsKIAotICAgIG1fY3VlQ29udGFpbmVyLT5hcHBlbmRDaGlsZChkaXNwbGF5Qm94LCBB
U1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBtX2N1ZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoKmRp
c3BsYXlCb3gsIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgIGRpc3BsYXlMYXN0VGV4dFRyYWNr
Q3VlQm94KCk7CiB9CiAKQEAgLTQwNCwxNCArNDA0LDE0IEBAIHZvaWQgVlRUUmVnaW9uOjp3aWxs
UmVtb3ZlVGV4dFRyYWNrQ3VlQm94KFZUVEN1ZUJveCogYm94KQogICAgIG1fY3VlQ29udGFpbmVy
LT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5VG9wLCBtX2N1cnJlbnRUb3AsIENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NfUFgpOwogfQogCi1QYXNzUmVmUHRyPEhUTUxEaXZFbGVtZW50
PiBWVFRSZWdpb246OmdldERpc3BsYXlUcmVlKCkKK0hUTUxEaXZFbGVtZW50JiBWVFRSZWdpb246
OmdldERpc3BsYXlUcmVlKCkKIHsKICAgICBpZiAoIW1fcmVnaW9uRGlzcGxheVRyZWUpIHsKICAg
ICAgICAgbV9yZWdpb25EaXNwbGF5VHJlZSA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoKm93bmVy
RG9jdW1lbnQoKSk7CiAgICAgICAgIHByZXBhcmVSZWdpb25EaXNwbGF5VHJlZSgpOwogICAgIH0K
IAotICAgIHJldHVybiBtX3JlZ2lvbkRpc3BsYXlUcmVlOworICAgIHJldHVybiAqbV9yZWdpb25E
aXNwbGF5VHJlZTsKIH0KIAogdm9pZCBWVFRSZWdpb246OnByZXBhcmVSZWdpb25EaXNwbGF5VHJl
ZSgpCkBAIC00NTMsNyArNDUzLDcgQEAgdm9pZCBWVFRSZWdpb246OnByZXBhcmVSZWdpb25EaXNw
bGF5VHJlZSgpCiAgICAgbV9jdWVDb250YWluZXItPnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NT
UHJvcGVydHlUb3AsIDAuMGYsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUFgpOwogCiAgICAgbV9j
dWVDb250YWluZXItPnNldFBzZXVkbyh0ZXh0VHJhY2tDdWVDb250YWluZXJTaGFkb3dQc2V1ZG9J
ZCgpKTsKLSAgICBtX3JlZ2lvbkRpc3BsYXlUcmVlLT5hcHBlbmRDaGlsZChtX2N1ZUNvbnRhaW5l
cik7CisgICAgbV9yZWdpb25EaXNwbGF5VHJlZS0+YXBwZW5kQ2hpbGQoKm1fY3VlQ29udGFpbmVy
KTsKIAogICAgIC8vIDcuNSBFdmVyeSBXZWJWVFQgcmVnaW9uIG9iamVjdCBpcyBpbml0aWFsaXNl
ZCB3aXRoIHRoZSBmb2xsb3dpbmcgQ1NTCiAgICAgbV9yZWdpb25EaXNwbGF5VHJlZS0+c2V0UHNl
dWRvKHRleHRUcmFja1JlZ2lvblNoYWRvd1BzZXVkb0lkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svVlRUUmVnaW9uLmgKaW5kZXggNzc3MWU4ZWIwMDg1N2JmNDMyYzFjZDU0YjQ4NjE3NzM2ZDA0
ZTY1ZC4uODkyNWFmMWJjMzcyMDVlYjA3YTVhN2I4ZThjZjY5NzIxODBjYTA1NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5oCkBAIC04OSw3ICs4OSw3IEBAIHB1YmxpYzoKIAog
ICAgIGJvb2wgaXNTY3JvbGxpbmdSZWdpb24oKSB7IHJldHVybiBtX3Njcm9sbDsgfQogCi0gICAg
UGFzc1JlZlB0cjxIVE1MRGl2RWxlbWVudD4gZ2V0RGlzcGxheVRyZWUoKTsKKyAgICBIVE1MRGl2
RWxlbWVudCYgZ2V0RGlzcGxheVRyZWUoKTsKICAgICAKICAgICB2b2lkIGFwcGVuZFRleHRUcmFj
a0N1ZUJveChQYXNzUmVmUHRyPFZUVEN1ZUJveD4pOwogICAgIHZvaWQgZGlzcGxheUxhc3RUZXh0
VHJhY2tDdWVCb3goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2Vi
VlRURWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQu
Y3BwCmluZGV4IDRhMmYzMWIzZTU2MzRmMzEwMmZmNTRlYmYwZmEwZDk2NmE5NTdhMGUuLjE0OTZi
YjAzYTZhNTAwZjViNzk2MTQwZDU5MGMzZDk1ZmVmYjIyMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmNwcApAQCAtODAsMTEgKzgwLDExIEBAIFJlZjxXZWJW
VFRFbGVtZW50PiBXZWJWVFRFbGVtZW50OjpjcmVhdGUoV2ViVlRUTm9kZVR5cGUgbm9kZVR5cGUs
IERvY3VtZW50JiBkb2N1CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViVlRURWxlbWVudChu
b2RlVHlwZSwgZG9jdW1lbnQpKTsKIH0KIAotUmVmUHRyPEVsZW1lbnQ+IFdlYlZUVEVsZW1lbnQ6
OmNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmIHRhcmdl
dERvY3VtZW50KQorUmVmPEVsZW1lbnQ+IFdlYlZUVEVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhv
dXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50KQogewotICAg
IFJlZlB0cjxXZWJWVFRFbGVtZW50PiBjbG9uZSA9IGNyZWF0ZShzdGF0aWNfY2FzdDxXZWJWVFRO
b2RlVHlwZT4obV93ZWJWVFROb2RlVHlwZSksIHRhcmdldERvY3VtZW50KTsKKyAgICBSZWY8V2Vi
VlRURWxlbWVudD4gY2xvbmUgPSBjcmVhdGUoc3RhdGljX2Nhc3Q8V2ViVlRUTm9kZVR5cGU+KG1f
d2ViVlRUTm9kZVR5cGUpLCB0YXJnZXREb2N1bWVudCk7CiAgICAgY2xvbmUtPnNldExhbmd1YWdl
KG1fbGFuZ3VhZ2UpOwotICAgIHJldHVybiBjbG9uZTsKKyAgICByZXR1cm4gV1RGOjptb3ZlKGNs
b25lKTsKIH0KIAogUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gV2ViVlRURWxlbWVudDo6Y3JlYXRl
RXF1aXZhbGVudEhUTUxFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmgKaW5kZXggMWJlNzYzNmMzNjYzZDg1OGJkNzYzNmFl
Y2NjMTliNzA2ZGZjNmI4Yy4uODlkM2QyYzU0ZGJjNmI5ZTUyMDYyZmY0ZjJhY2Y3NDk4YjlmYzdi
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmgKQEAgLTQ5LDcg
KzQ5LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2ViVlRURWxlbWVudD4gY3JlYXRlKGNv
bnN0IFdlYlZUVE5vZGVUeXBlLCBEb2N1bWVudCYpOwogICAgIFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGNyZWF0ZUVxdWl2YWxlbnRIVE1MRWxlbWVudChEb2N1bWVudCYpOwogCi0gICAgdmlydHVh
bCBSZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJl
bihEb2N1bWVudCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPEVsZW1lbnQ+IGNsb25lRWxl
bWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmKSBvdmVycmlkZTsKIAog
ICAgIHZvaWQgc2V0V2ViVlRUTm9kZVR5cGUoV2ViVlRUTm9kZVR5cGUgdHlwZSkgeyBtX3dlYlZU
VE5vZGVUeXBlID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHR5cGUpOyB9CiAgICAgV2ViVlRUTm9k
ZVR5cGUgd2ViVlRUTm9kZVR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxXZWJWVFRO
b2RlVHlwZT4obV93ZWJWVFROb2RlVHlwZSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmluZGV4IGI2YTMxMTNlZjdkNjc5OTQwNWVhYTMxNDMw
NjNmOGJiYWRlYTAyYjUuLjg1N2FkMTkxNzY3NTY3YTViYTE3NWI2OWNjYWYyMTRmNDYwNjJiYzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcApA
QCAtNzk2LDcgKzc5Niw3IEBAIEluc3BlY3RvclN0eWxlU2hlZXQqIEluc3BlY3RvckNTU0FnZW50
OjpjcmVhdGVJbnNwZWN0b3JTdHlsZVNoZWV0Rm9yRG9jdW1lbnQoRG9jCiAgICAgLy8gU2V0IHRo
aXMgZmxhZywgc28gd2hlbiB3ZSBjcmVhdGUgaXQsIHdlIHB1dCBpdCBpbnRvIHRoZSB2aWEgaW5z
cGVjdG9yIG1hcC4KICAgICBtX2NyZWF0aW5nVmlhSW5zcGVjdG9yU3R5bGVTaGVldCA9IHRydWU7
CiAgICAgSW5saW5lU3R5bGVPdmVycmlkZVNjb3BlIG92ZXJyaWRlU2NvcGUoZG9jdW1lbnQpOwot
ICAgIHRhcmdldE5vZGUtPmFwcGVuZENoaWxkKHN0eWxlRWxlbWVudCwgZWMpOworICAgIHRhcmdl
dE5vZGUtPmFwcGVuZENoaWxkKHN0eWxlRWxlbWVudC5yZWxlYXNlTm9uTnVsbCgpLCBlYyk7CiAg
ICAgbV9jcmVhdGluZ1ZpYUluc3BlY3RvclN0eWxlU2hlZXQgPSBmYWxzZTsKICAgICBpZiAoZWMp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9EcmFnQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVy
LmNwcAppbmRleCBjZWI0YWExYTUxNmY0N2Q1Njk4MDFiNTY2MGQ3OWYzZTY5MzI3YzJmLi5jNGQ5
NjNlYTg2ZjRhOGY2YTQ2MzFhZWUwNDdjMDc4NmQ4ZjllMjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RyYWdDb250cm9sbGVyLmNwcApAQCAtMTM4LDcgKzEzOCw3IEBAIHN0YXRpYyBQYXNzUmVmUHRy
PERvY3VtZW50RnJhZ21lbnQ+IGRvY3VtZW50RnJhZ21lbnRGcm9tRHJhZ0RhdGEoRHJhZ0RhdGEm
IGRyYWdECiAgICAgICAgICAgICBTdHJpbmcgdGl0bGU7CiAgICAgICAgICAgICBTdHJpbmcgdXJs
ID0gZHJhZ0RhdGEuYXNVUkwoRHJhZ0RhdGE6OkRvTm90Q29udmVydEZpbGVuYW1lcywgJnRpdGxl
KTsKICAgICAgICAgICAgIGlmICghdXJsLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgICAgIFJl
ZlB0cjxIVE1MQW5jaG9yRWxlbWVudD4gYW5jaG9yID0gSFRNTEFuY2hvckVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCk7CisgICAgICAgICAgICAgICAgUmVmPEhUTUxBbmNob3JFbGVtZW50PiBhbmNo
b3IgPSBIVE1MQW5jaG9yRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICAgICAgICAgICAg
ICBhbmNob3ItPnNldEhyZWYodXJsKTsKICAgICAgICAgICAgICAgICBpZiAodGl0bGUuaXNFbXB0
eSgpKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFRyeSB0aGUgcGxhaW4gdGV4dCBmaXJzdCBi
ZWNhdXNlIHRoZSB1cmwgbWlnaHQgYmUgbm9ybWFsaXplZCBvciBlc2NhcGVkLgpAQCAtMTQ3LDIw
ICsxNDcsMTkgQEAgc3RhdGljIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZG9jdW1lbnRG
cmFnbWVudEZyb21EcmFnRGF0YShEcmFnRGF0YSYgZHJhZ0QKICAgICAgICAgICAgICAgICAgICAg
aWYgKHRpdGxlLmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlID0gdXJs
OwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBSZWZQdHI8Tm9kZT4gYW5jaG9y
VGV4dCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRpdGxlKTsKLSAgICAgICAgICAgICAgICBh
bmNob3ItPmFwcGVuZENoaWxkKGFuY2hvclRleHQsIElHTk9SRV9FWENFUFRJT04pOwotICAgICAg
ICAgICAgICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGRvY3VtZW50LmNy
ZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAgICAgICAgICAgICAgICBmcmFnbWVudC0+YXBwZW5k
Q2hpbGQoYW5jaG9yLCBJR05PUkVfRVhDRVBUSU9OKTsKLSAgICAgICAgICAgICAgICByZXR1cm4g
ZnJhZ21lbnQuZ2V0KCk7CisgICAgICAgICAgICAgICAgYW5jaG9yLT5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZSh0aXRsZSksIElHTk9SRV9FWENFUFRJT04pOworICAgICAgICAg
ICAgICAgIFJlZjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURv
Y3VtZW50RnJhZ21lbnQoKTsKKyAgICAgICAgICAgICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQo
V1RGOjptb3ZlKGFuY2hvciksIElHTk9SRV9FWENFUFRJT04pOworICAgICAgICAgICAgICAgIHJl
dHVybiBmcmFnbWVudC5wdHIoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KICAg
ICBpZiAoYWxsb3dQbGFpblRleHQgJiYgZHJhZ0RhdGEuY29udGFpbnNQbGFpblRleHQoKSkgewog
ICAgICAgICBjaG9zZVBsYWluVGV4dCA9IHRydWU7Ci0gICAgICAgIHJldHVybiBjcmVhdGVGcmFn
bWVudEZyb21UZXh0KGNvbnRleHQsIGRyYWdEYXRhLmFzUGxhaW5UZXh0KCkpLmdldCgpOworICAg
ICAgICByZXR1cm4gY3JlYXRlRnJhZ21lbnRGcm9tVGV4dChjb250ZXh0LCBkcmFnRGF0YS5hc1Bs
YWluVGV4dCgpKS5wdHIoKTsKICAgICB9CiAKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVs
bHB0cjsKIH0KIAogYm9vbCBEcmFnQ29udHJvbGxlcjo6ZHJhZ0lzTW92ZShGcmFtZVNlbGVjdGlv
biYgc2VsZWN0aW9uLCBEcmFnRGF0YSYgZHJhZ0RhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2lvcy9GcmFtZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0ZyYW1l
SU9TLm1tCmluZGV4IDQ2Njc0ZmNiYzAzZjllNzI5ZDBiNmQyMzM5NWQ1NTllNTBhN2IwN2IuLmEz
ZTdlOGRiYzlmODZjYTBiNDBlZmZjOTAxNjQwZWQxNTYzZjFiYmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvaW9zL0ZyYW1lSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
aW9zL0ZyYW1lSU9TLm1tCkBAIC05NSw4ICs5NSw4IEBAIHZvaWQgRnJhbWU6OmluaXRXaXRoU2lt
cGxlSFRNTERvY3VtZW50KGNvbnN0IFN0cmluZyYgc3R5bGUsIGNvbnN0IFVSTCYgdXJsKQogICAg
IGlmICghc3R5bGUuaXNFbXB0eSgpKQogICAgICAgICBib2R5LT5zZXRBdHRyaWJ1dGUoSFRNTE5h
bWVzOjpzdHlsZUF0dHIsIHN0eWxlKTsKIAotICAgIHJvb3RFbGVtZW50LT5hcHBlbmRDaGlsZChi
b2R5LCBlYyk7Ci0gICAgZG9jdW1lbnQtPmFwcGVuZENoaWxkKHJvb3RFbGVtZW50LCBlYyk7Cisg
ICAgcm9vdEVsZW1lbnQtPmFwcGVuZENoaWxkKGJvZHkucmVsZWFzZU5vbk51bGwoKSwgZWMpOwor
ICAgIGRvY3VtZW50LT5hcHBlbmRDaGlsZChyb290RWxlbWVudC5yZWxlYXNlTm9uTnVsbCgpLCBl
Yyk7CiB9CiAKIGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJiBGcmFtZTo6dmlld3BvcnRBcmd1bWVu
dHMoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDZm
M2NhODNlODUzMjIyZGZkNWU4MDUyNzJmMGY1Yzk0NjQzNGQyMjQuLjhhZGZjZmE0MTBhYmU0N2Uz
MzI0YWU1YjhkOTI0M2Y1NjY2NDVkOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTY3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxl
bWVudC5jcHAKQEAgLTE1Niw5ICsxNTYsOSBAQCBib29sIFNWR1NjcmlwdEVsZW1lbnQ6Omhhc1Nv
dXJjZUF0dHJpYnV0ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGhhc0F0dHJpYnV0ZShYTGlua05hbWVz
OjpocmVmQXR0cik7CiB9CiAKLVJlZlB0cjxFbGVtZW50PiBTVkdTY3JpcHRFbGVtZW50OjpjbG9u
ZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50JiB0YXJnZXREb2N1
bWVudCkKK1JlZjxFbGVtZW50PiBTVkdTY3JpcHRFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0
QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCkKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFNWR1NjcmlwdEVsZW1lbnQodGFnUU5hbWUoKSwgdGFyZ2V0RG9j
dW1lbnQsIGZhbHNlLCBhbHJlYWR5U3RhcnRlZCgpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU1ZHU2NyaXB0RWxlbWVudCh0YWdRTmFtZSgpLCB0YXJnZXREb2N1bWVudCwgZmFsc2UsIGFs
cmVhZHlTdGFydGVkKCkpKTsKIH0KIAogI2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U2NyaXB0RWxlbWVudC5oCmluZGV4IDRjMWFhMDhlNmQyZmM4ZmY4ZGE5OWY0MjdjZWM3ZDRmMmM2
NGUzMDUuLjUzNWU0MmU2ZjA2NDZkODAxMDQxOTA5M2M2MjI5MjRiMzgzZDcxMDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaApAQCAtNjUsNyArNjUsNyBAQCBwcml2YXRlOgog
CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoTG9hZEV2ZW50KCkgb3ZlcnJpZGUgeyBTVkdFeHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkOjpkaXNwYXRjaExvYWRFdmVudCh0aGlzKTsgfQogCi0gICAg
dmlydHVhbCBSZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRD
aGlsZHJlbihEb2N1bWVudCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPEVsZW1lbnQ+IGNs
b25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYp
IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICAvLyBTVkdFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKaW5kZXggNzA0ZmU0YTIy
OTgyZTliNDA0NDE1OTEyMTdkMzc1ZDU1NzRkNTM1Yi4uNjRlMTBhYTYwMDRmNDcwMDYxYmYzNWE2
MjlhMDRkODg4NzJiMmQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcApAQCAt
MzMyLDcgKzMzMiw3IEBAIHN0YXRpYyB2b2lkIHJlbW92ZURpc2FsbG93ZWRFbGVtZW50c0Zyb21T
dWJ0cmVlKFNWR0VsZW1lbnQmIHN1YnRyZWUpCiAgICAgZm9yIChhdXRvKiBlbGVtZW50IDogZGlz
YWxsb3dlZEVsZW1lbnRzKSB7CiAgICAgICAgIGZvciAoYXV0byYgZGVzY2VuZGFudCA6IGRlc2Nl
bmRhbnRzT2ZUeXBlPFNWR0VsZW1lbnQ+KCplbGVtZW50KSkKICAgICAgICAgICAgIGRlc2NlbmRh
bnQuc2V0Q29ycmVzcG9uZGluZ0VsZW1lbnQobnVsbHB0cik7Ci0gICAgICAgIGVsZW1lbnQtPnBh
cmVudE5vZGUoKS0+cmVtb3ZlQ2hpbGQoZWxlbWVudCk7CisgICAgICAgIGVsZW1lbnQtPnBhcmVu
dE5vZGUoKS0+cmVtb3ZlQ2hpbGQoKmVsZW1lbnQpOwogICAgIH0KIH0KIApAQCAtNDA1LDcgKzQw
NSw3IEBAIFNWR0VsZW1lbnQqIFNWR1VzZUVsZW1lbnQ6OmZpbmRUYXJnZXQoU3RyaW5nKiB0YXJn
ZXRJRCkgY29uc3QKIAogdm9pZCBTVkdVc2VFbGVtZW50OjpjbG9uZVRhcmdldChDb250YWluZXJO
b2RlJiBjb250YWluZXIsIFNWR0VsZW1lbnQmIHRhcmdldCkgY29uc3QKIHsKLSAgICBSZWY8U1ZH
RWxlbWVudD4gdGFyZ2V0Q2xvbmUgPSBzdGF0aWNfcG9pbnRlcl9jYXN0PFNWR0VsZW1lbnQ+KHRh
cmdldC5jbG9uZUVsZW1lbnRXaXRoQ2hpbGRyZW4oZG9jdW1lbnQoKSkpLnJlbGVhc2VOb25OdWxs
KCk7CisgICAgUmVmPFNWR0VsZW1lbnQ+IHRhcmdldENsb25lID0gc3RhdGljX2Nhc3Q8U1ZHRWxl
bWVudCY+KHRhcmdldC5jbG9uZUVsZW1lbnRXaXRoQ2hpbGRyZW4oZG9jdW1lbnQoKSkuZ2V0KCkp
OwogICAgIGFzc29jaWF0ZUNsb25lc1dpdGhPcmlnaW5hbHModGFyZ2V0Q2xvbmUuZ2V0KCksIHRh
cmdldCk7CiAgICAgcmVtb3ZlRGlzYWxsb3dlZEVsZW1lbnRzRnJvbVN1YnRyZWUodGFyZ2V0Q2xv
bmUuZ2V0KCkpOwogICAgIHRyYW5zZmVyU2l6ZUF0dHJpYnV0ZXNUb1RhcmdldENsb25lKHRhcmdl
dENsb25lLmdldCgpKTsKQEAgLTQxOSw3ICs0MTksNyBAQCBzdGF0aWMgdm9pZCBjbG9uZURhdGFB
bmRDaGlsZHJlbihTVkdFbGVtZW50JiByZXBsYWNlbWVudENsb25lLCBTVkdFbGVtZW50JiBvcmln
aQogICAgIEFTU0VSVCghcmVwbGFjZW1lbnRDbG9uZS5wYXJlbnROb2RlKCkpOwogCiAgICAgcmVw
bGFjZW1lbnRDbG9uZS5jbG9uZURhdGFGcm9tRWxlbWVudChvcmlnaW5hbENsb25lKTsKLSAgICBv
cmlnaW5hbENsb25lLmNsb25lQ2hpbGROb2RlcygmcmVwbGFjZW1lbnRDbG9uZSk7CisgICAgb3Jp
Z2luYWxDbG9uZS5jbG9uZUNoaWxkTm9kZXMocmVwbGFjZW1lbnRDbG9uZSk7CiAgICAgYXNzb2Np
YXRlUmVwbGFjZW1lbnRDbG9uZXNXaXRoT3JpZ2luYWxzKHJlcGxhY2VtZW50Q2xvbmUsIG9yaWdp
bmFsQ2xvbmUpOwogICAgIHJlbW92ZURpc2FsbG93ZWRFbGVtZW50c0Zyb21TdWJ0cmVlKHJlcGxh
Y2VtZW50Q2xvbmUpOwogfQpAQCAtNDQ4LDcgKzQ0OCw3IEBAIHZvaWQgU1ZHVXNlRWxlbWVudDo6
ZXhwYW5kVXNlRWxlbWVudHNJblNoYWRvd1RyZWUoKSBjb25zdAogICAgICAgICBpZiAodGFyZ2V0
KQogICAgICAgICAgICAgb3JpZ2luYWxDbG9uZS5jbG9uZVRhcmdldChyZXBsYWNlbWVudENsb25l
LmdldCgpLCAqdGFyZ2V0KTsKIAotICAgICAgICBvcmlnaW5hbENsb25lLnBhcmVudE5vZGUoKS0+
cmVwbGFjZUNoaWxkKHJlcGxhY2VtZW50Q2xvbmUucHRyKCksICZvcmlnaW5hbENsb25lKTsKKyAg
ICAgICAgb3JpZ2luYWxDbG9uZS5wYXJlbnROb2RlKCktPnJlcGxhY2VDaGlsZChyZXBsYWNlbWVu
dENsb25lLmNvcHlSZWYoKSwgb3JpZ2luYWxDbG9uZSk7CiAKICAgICAgICAgLy8gUmVzdW1lIGl0
ZXJhdGluZywgc3RhcnRpbmcganVzdCBpbnNpZGUgdGhlIHJlcGxhY2VtZW50IGNsb25lLgogICAg
ICAgICBpdCA9IGRlc2NlbmRhbnRzLmZyb20ocmVwbGFjZW1lbnRDbG9uZS5nZXQoKSk7CkBAIC00
NzIsNyArNDcyLDcgQEAgdm9pZCBTVkdVc2VFbGVtZW50OjpleHBhbmRTeW1ib2xFbGVtZW50c0lu
U2hhZG93VHJlZSgpIGNvbnN0CiAgICAgICAgIGF1dG8gcmVwbGFjZW1lbnRDbG9uZSA9IFNWR1NW
R0VsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKICAgICAgICAgY2xvbmVEYXRhQW5kQ2hpbGRy
ZW4ocmVwbGFjZW1lbnRDbG9uZS5nZXQoKSwgb3JpZ2luYWxDbG9uZSk7CiAKLSAgICAgICAgb3Jp
Z2luYWxDbG9uZS5wYXJlbnROb2RlKCktPnJlcGxhY2VDaGlsZChyZXBsYWNlbWVudENsb25lLnB0
cigpLCAmb3JpZ2luYWxDbG9uZSk7CisgICAgICAgIG9yaWdpbmFsQ2xvbmUucGFyZW50Tm9kZSgp
LT5yZXBsYWNlQ2hpbGQocmVwbGFjZW1lbnRDbG9uZS5jb3B5UmVmKCksIG9yaWdpbmFsQ2xvbmUp
OwogCiAgICAgICAgIC8vIFJlc3VtZSBpdGVyYXRpbmcsIHN0YXJ0aW5nIGp1c3QgaW5zaWRlIHRo
ZSByZXBsYWNlbWVudCBjbG9uZS4KICAgICAgICAgaXQgPSBkZXNjZW5kYW50cy5mcm9tKHJlcGxh
Y2VtZW50Q2xvbmUuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTFRy
ZWVWaWV3ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTFRyZWVWaWV3ZXIuY3BwCmluZGV4
IDQwOTZlNDM1ZDYzZjU3MDg0NDgwMmMyMTc3MDhhZGQ5ZWI2MDUxNzUuLmE5Zjc3ZWExNjM4NDhm
ODUwYjYzNWM5MmI5MGNhOTQyNzcyZjg4YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3ht
bC9YTUxUcmVlVmlld2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MVHJlZVZpZXdl
ci5jcHAKQEAgLTYxLDggKzYxLDggQEAgdm9pZCBYTUxUcmVlVmlld2VyOjp0cmFuc2Zvcm1Eb2N1
bWVudFRvVHJlZVZpZXcoKQogICAgIG1fZG9jdW1lbnQuZnJhbWUoKS0+c2NyaXB0KCkuZXZhbHVh
dGUoU2NyaXB0U291cmNlQ29kZShBdG9taWNTdHJpbmcoInByZXBhcmVXZWJLaXRYTUxWaWV3ZXIo
J1RoaXMgWE1MIGZpbGUgZG9lcyBub3QgYXBwZWFyIHRvIGhhdmUgYW55IHN0eWxlIGluZm9ybWF0
aW9uIGFzc29jaWF0ZWQgd2l0aCBpdC4gVGhlIGRvY3VtZW50IHRyZWUgaXMgc2hvd24gYmVsb3cu
Jyk7IikpKTsKIAogICAgIFN0cmluZyBjc3NTdHJpbmcgPSBTdHJpbmdJbXBsOjpjcmVhdGVXaXRo
b3V0Q29weWluZyhYTUxWaWV3ZXJfY3NzLCBzaXplb2YoWE1MVmlld2VyX2NzcykpOwotICAgIFJl
ZlB0cjxUZXh0PiB0ZXh0ID0gbV9kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjc3NTdHJpbmcpOwot
ICAgIG1fZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoU3RyaW5nKEFTQ0lJTGl0ZXJhbCgieG1sLXZp
ZXdlci1zdHlsZSIpKSktPmFwcGVuZENoaWxkKHRleHQsIElHTk9SRV9FWENFUFRJT04pOworICAg
IFJlZjxUZXh0PiB0ZXh0ID0gbV9kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjc3NTdHJpbmcpOwor
ICAgIG1fZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoU3RyaW5nKEFTQ0lJTGl0ZXJhbCgieG1sLXZp
ZXdlci1zdHlsZSIpKSktPmFwcGVuZENoaWxkKFdURjo6bW92ZSh0ZXh0KSwgSUdOT1JFX0VYQ0VQ
VElPTik7CiAgICAgbV9kb2N1bWVudC5zdHlsZVJlc29sdmVyQ2hhbmdlZChSZWNhbGNTdHlsZUlt
bWVkaWF0ZWx5KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJGcmFtZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KaW5kZXgg
MGIzMjEyMDdjMzIzZTRkYTAwOTMwZTljODA0ZTBkMjM4YTk0Y2RkOS4uMjgxYTNjYWQ2Zjg4MWIx
YTZjMDZlMTJhNmJjODI1NGUyYjAyZjZmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZy
YW1lLm1tCkBAIC04OTAsOSArODkwLDkgQEAgLSAoRE9NRG9jdW1lbnRGcmFnbWVudCAqKV9kb2N1
bWVudEZyYWdtZW50V2l0aE5vZGVzQXNQYXJhZ3JhcGhzOihOU0FycmF5ICopbm9kZXMKICAgICBS
ZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBkb2N1bWVudC0+Y3JlYXRlRG9jdW1l
bnRGcmFnbWVudCgpOwogCiAgICAgZm9yIChhdXRvKiBub2RlIDogbm9kZXNWZWN0b3IpIHsKLSAg
ICAgICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSBjcmVhdGVEZWZhdWx0UGFyYWdyYXBoRWxl
bWVudCgqZG9jdW1lbnQpOwotICAgICAgICBlbGVtZW50LT5hcHBlbmRDaGlsZChub2RlKTsKLSAg
ICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKGVsZW1lbnQucmVsZWFzZSgpKTsKKyAgICAgICAg
UmVmPEVsZW1lbnQ+IGVsZW1lbnQgPSBjcmVhdGVEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCgqZG9j
dW1lbnQpOworICAgICAgICBlbGVtZW50LT5hcHBlbmRDaGlsZCgqbm9kZSk7CisgICAgICAgIGZy
YWdtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoZWxlbWVudCkpOwogICAgIH0KIAogICAgIHJl
dHVybiBraXQoZnJhZ21lbnQucmVsZWFzZSgpLmdldCgpKTsKQEAgLTE4NzMsNyArMTg3Myw3IEBA
IC0gKHZvaWQpX3JlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dDooTlNTdHJpbmcgKil0ZXh0IHNlbGVj
dFJlcGxhY2VtZW50OihCT09MKXNlbGVjCiB7CiAgICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IF9w
cml2YXRlLT5jb3JlRnJhbWUtPnNlbGVjdGlvbigpLnRvTm9ybWFsaXplZFJhbmdlKCk7CiAKLSAg
ICBET01Eb2N1bWVudEZyYWdtZW50KiBmcmFnbWVudCA9IHJhbmdlID8ga2l0KGNyZWF0ZUZyYWdt
ZW50RnJvbVRleHQoKnJhbmdlLCB0ZXh0KS5nZXQoKSkgOiBuaWw7CisgICAgRE9NRG9jdW1lbnRG
cmFnbWVudCogZnJhZ21lbnQgPSByYW5nZSA/IGtpdChjcmVhdGVGcmFnbWVudEZyb21UZXh0KCpy
YW5nZSwgdGV4dCkucHRyKCkpIDogbmlsOwogICAgIFtzZWxmIF9yZXBsYWNlU2VsZWN0aW9uV2l0
aEZyYWdtZW50OmZyYWdtZW50IHNlbGVjdFJlcGxhY2VtZW50OnNlbGVjdFJlcGxhY2VtZW50IHNt
YXJ0UmVwbGFjZTpzbWFydFJlcGxhY2UgbWF0Y2hTdHlsZTptYXRjaFN0eWxlXTsKIH0KIApAQCAt
MTk1OCw3ICsxOTU4LDcgQEAgLSAodm9pZClfcmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0OihOU1N0
cmluZyAqKXRleHQgc2VsZWN0UmVwbGFjZW1lbnQ6KEJPT0wpc2VsZWMKIHsKICAgICBSZWZQdHI8
UmFuZ2U+IHJhbmdlID0gX3ByaXZhdGUtPmNvcmVGcmFtZS0+c2VsZWN0aW9uKCkudG9Ob3JtYWxp
emVkUmFuZ2UoKTsKICAgICAKLSAgICBET01Eb2N1bWVudEZyYWdtZW50KiBmcmFnbWVudCA9IHJh
bmdlID8ga2l0KGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoKnJhbmdlLCB0ZXh0KS5nZXQoKSkgOiBu
aWw7CisgICAgRE9NRG9jdW1lbnRGcmFnbWVudCogZnJhZ21lbnQgPSByYW5nZSA/IGtpdChjcmVh
dGVGcmFnbWVudEZyb21UZXh0KCpyYW5nZSwgdGV4dCkucHRyKCkpIDogbmlsOwogICAgIFtzZWxm
IF9yZXBsYWNlU2VsZWN0aW9uV2l0aEZyYWdtZW50OmZyYWdtZW50IHNlbGVjdFJlcGxhY2VtZW50
OnNlbGVjdFJlcGxhY2VtZW50IHNtYXJ0UmVwbGFjZTpzbWFydFJlcGxhY2UgbWF0Y2hTdHlsZTpZ
RVNdOwogfQogCkBAIC0yMjY0LDcgKzIyNjQsNyBAQCAtIChOU0FycmF5ICopX2NvbXB1dGVQYWdl
UmVjdHNXaXRoUHJpbnRTY2FsZUZhY3RvcjooZmxvYXQpcHJpbnRTY2FsZUZhY3RvciBwYWdlUwog
I2lmIFBMQVRGT1JNKElPUykKIC0gKERPTURvY3VtZW50RnJhZ21lbnQgKilfZG9jdW1lbnRGcmFn
bWVudEZvclRleHQ6KE5TU3RyaW5nICopdGV4dAogewotICAgIHJldHVybiBraXQoY3JlYXRlRnJh
Z21lbnRGcm9tVGV4dCgqX3ByaXZhdGUtPmNvcmVGcmFtZS0+c2VsZWN0aW9uKCkudG9Ob3JtYWxp
emVkUmFuZ2UoKS5nZXQoKSwgdGV4dCkuZ2V0KCkpOworICAgIHJldHVybiBraXQoY3JlYXRlRnJh
Z21lbnRGcm9tVGV4dCgqX3ByaXZhdGUtPmNvcmVGcmFtZS0+c2VsZWN0aW9uKCkudG9Ob3JtYWxp
emVkUmFuZ2UoKS5nZXQoKSwgdGV4dCkucHRyKCkpOwogfQogCiAtIChET01Eb2N1bWVudEZyYWdt
ZW50ICopX2RvY3VtZW50RnJhZ21lbnRGb3JXZWJBcmNoaXZlOihXZWJBcmNoaXZlICopd2ViQXJj
aGl2ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggMzA5ODBk
MzBhYTY3ZTJkZWI5ODIxZTk3ZDAwNzIyNTBlNTViZDJhNC4uYjI1NzE5ZmI5MGI2YTQ0N2NjMjg3
NGRkYTVkY2YzYWU5MWNjY2UxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJIVE1MVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxW
aWV3Lm1tCkBAIC0yMjY3LDcgKzIyNjcsNyBAQCAtIChET01Eb2N1bWVudEZyYWdtZW50ICopX2Rv
Y3VtZW50RnJhZ21lbnRGcm9tUGFzdGVib2FyZDooTlNQYXN0ZWJvYXJkICopcGFzdGVibwogICAg
IGlmIChwYm9hcmRUeXBlID09IE5TU3RyaW5nUGJvYXJkVHlwZSkgewogICAgICAgICBpZiAoIWNv
bnRleHQpCiAgICAgICAgICAgICByZXR1cm4gbmlsOwotICAgICAgICByZXR1cm4ga2l0KGNyZWF0
ZUZyYWdtZW50RnJvbVRleHQoKmNvcmUoY29udGV4dCksIFtbcGFzdGVib2FyZCBzdHJpbmdGb3JU
eXBlOk5TU3RyaW5nUGJvYXJkVHlwZV0gcHJlY29tcG9zZWRTdHJpbmdXaXRoQ2Fub25pY2FsTWFw
cGluZ10pLmdldCgpKTsKKyAgICAgICAgcmV0dXJuIGtpdChjcmVhdGVGcmFnbWVudEZyb21UZXh0
KCpjb3JlKGNvbnRleHQpLCBbW3Bhc3RlYm9hcmQgc3RyaW5nRm9yVHlwZTpOU1N0cmluZ1Bib2Fy
ZFR5cGVdIHByZWNvbXBvc2VkU3RyaW5nV2l0aENhbm9uaWNhbE1hcHBpbmddKS5wdHIoKSk7CiAg
ICAgfQogICAgIHJldHVybiBuaWw7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCmluZGV4IDUzZGJmYTU5MDZlMzcyYjEzNGYzZTg5
Y2NjNGRiMmJhYTIwMGMwZGEuLjE3MzQwZGUzNjM0OTcyNzhhMGQ4OGRlNDVkNWM2YjkzOTQ5ZmRj
YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERG
UGx1Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERG
UGx1Z2luLm1tCkBAIC01MjUsMTEgKzUyNSwxMSBAQCBQREZQbHVnaW46OlBERlBsdWdpbihXZWJG
cmFtZSogZnJhbWUpCiAgICAgICAgIG1fYW5ub3RhdGlvbkNvbnRhaW5lciA9IGRvY3VtZW50LT5j
cmVhdGVFbGVtZW50KGRpdlRhZywgZmFsc2UpOwogICAgICAgICBtX2Fubm90YXRpb25Db250YWlu
ZXItPnNldEF0dHJpYnV0ZShpZEF0dHIsICJhbm5vdGF0aW9uQ29udGFpbmVyIik7CiAKLSAgICAg
ICAgUmVmUHRyPEVsZW1lbnQ+IG1fYW5ub3RhdGlvblN0eWxlID0gZG9jdW1lbnQtPmNyZWF0ZUVs
ZW1lbnQoc3R5bGVUYWcsIGZhbHNlKTsKLSAgICAgICAgbV9hbm5vdGF0aW9uU3R5bGUtPnNldFRl
eHRDb250ZW50KGFubm90YXRpb25TdHlsZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAg
IFJlZjxFbGVtZW50PiBhbm5vdGF0aW9uU3R5bGVFbGVtZW50ID0gZG9jdW1lbnQtPmNyZWF0ZUVs
ZW1lbnQoc3R5bGVUYWcsIGZhbHNlKTsKKyAgICAgICAgYW5ub3RhdGlvblN0eWxlRWxlbWVudC0+
c2V0VGV4dENvbnRlbnQoYW5ub3RhdGlvblN0eWxlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAot
ICAgICAgICBtX2Fubm90YXRpb25Db250YWluZXItPmFwcGVuZENoaWxkKG1fYW5ub3RhdGlvblN0
eWxlLmdldCgpKTsKLSAgICAgICAgZG9jdW1lbnQtPmJvZHlPckZyYW1lc2V0KCktPmFwcGVuZENo
aWxkKG1fYW5ub3RhdGlvbkNvbnRhaW5lci5nZXQoKSk7CisgICAgICAgIG1fYW5ub3RhdGlvbkNv
bnRhaW5lci0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGFubm90YXRpb25TdHlsZUVsZW1lbnQpKTsK
KyAgICAgICAgZG9jdW1lbnQtPmJvZHlPckZyYW1lc2V0KCktPmFwcGVuZENoaWxkKCptX2Fubm90
YXRpb25Db250YWluZXIpOwogICAgIH0KIAogICAgIG1fYWNjZXNzaWJpbGl0eU9iamVjdCA9IGFk
b3B0TlMoW1tXS1BERlBsdWdpbkFjY2Vzc2liaWxpdHlPYmplY3QgYWxsb2NdIGluaXRXaXRoUERG
UGx1Z2luOnRoaXNdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QREYvUERGUGx1Z2luQW5ub3RhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQW5ub3RhdGlvbi5tbQppbmRleCAzNGI1MjJkODliYTMy
OTZlZjFlMGVjZTViYmUyMjE4NjE4ZTYzNmYxLi5hMDI5ZDI1ZjkxZTgyZTZkYjFiMmYwZmE1YTJi
ZTM4ZDZjMWM3MmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUERGL1BERlBsdWdpbkFubm90YXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5Bbm5vdGF0aW9uLm1tCkBAIC03NCw3ICs3NCw3IEBA
IHZvaWQgUERGUGx1Z2luQW5ub3RhdGlvbjo6YXR0YWNoKEVsZW1lbnQqIHBhcmVudCkKIAogICAg
IHVwZGF0ZUdlb21ldHJ5KCk7CiAKLSAgICBtX3BhcmVudC0+YXBwZW5kQ2hpbGQobV9lbGVtZW50
KTsKKyAgICBtX3BhcmVudC0+YXBwZW5kQ2hpbGQoKm1fZWxlbWVudCk7CiAKICAgICAvLyBGSVhN
RTogVGhlIHRleHQgY3Vyc29yIGRvZXNuJ3QgYmxpbmsgYWZ0ZXIgdGhpcy4gV2h5PwogICAgIG1f
ZWxlbWVudC0+Zm9jdXMoKTsKQEAgLTkyLDcgKzkyLDcgQEAgUERGUGx1Z2luQW5ub3RhdGlvbjo6
flBERlBsdWdpbkFubm90YXRpb24oKQogCiAgICAgbV9ldmVudExpc3RlbmVyLT5zZXRBbm5vdGF0
aW9uKDApOwogCi0gICAgbV9wYXJlbnQtPnJlbW92ZUNoaWxkKGVsZW1lbnQoKSk7CisgICAgbV9w
YXJlbnQtPnJlbW92ZUNoaWxkKCplbGVtZW50KCkpOwogfQogCiB2b2lkIFBERlBsdWdpbkFubm90
YXRpb246OnVwZGF0ZUdlb21ldHJ5KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbi5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbi5t
bQppbmRleCBlMWE4ZTU4MjJiMjVlODc5MzUxZjM0OTBiZTk1NGQxZGI4MTlkZDRiLi42MjFkYzAx
MWRiODc0ZmRmM2RmMjMwNWFlNDA3MzY3OWYzNmYwZjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24ubW0K
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5DaG9p
Y2VBbm5vdGF0aW9uLm1tCkBAIC04MywxNCArODMsMTQgQEAgUGFzc1JlZlB0cjxFbGVtZW50PiBQ
REZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uOjpjcmVhdGVBbm5vdGF0aW9uRWxlbWVudCgpCiAgICAg
TlNTdHJpbmcgKnNlbGVjdGVkQ2hvaWNlID0gY2hvaWNlQW5ub3RhdGlvbi5zdHJpbmdWYWx1ZTsK
IAogICAgIGZvciAoTlNTdHJpbmcgKmNob2ljZSBpbiBjaG9pY2VzKSB7Ci0gICAgICAgIFJlZlB0
cjxFbGVtZW50PiBjaG9pY2VPcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KG9wdGlvblRh
ZywgZmFsc2UpOworICAgICAgICBSZWY8RWxlbWVudD4gY2hvaWNlT3B0aW9uID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudChvcHRpb25UYWcsIGZhbHNlKTsKICAgICAgICAgY2hvaWNlT3B0aW9uLT5z
ZXRBdHRyaWJ1dGUodmFsdWVBdHRyLCBjaG9pY2UpOwogICAgICAgICBjaG9pY2VPcHRpb24tPnNl
dFRleHRDb250ZW50KGNob2ljZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKICAgICAgICAgaWYg
KGNob2ljZSA9PSBzZWxlY3RlZENob2ljZSkKICAgICAgICAgICAgIGNob2ljZU9wdGlvbi0+c2V0
QXR0cmlidXRlKHNlbGVjdGVkQXR0ciwgInNlbGVjdGVkIik7CiAKLSAgICAgICAgc3R5bGVkRWxl
bWVudC0+YXBwZW5kQ2hpbGQoY2hvaWNlT3B0aW9uKTsKKyAgICAgICAgc3R5bGVkRWxlbWVudC0+
YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNob2ljZU9wdGlvbikpOwogICAgIH0KIAogICAgIHJldHVy
biBlbGVtZW50OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDZlZTgzZDE2MGMzODg5Zjk4NjkzNWM5ZmFmMzM5NmRhNTNhZjM0
NTguLmRmNDcyMGFiN2I1Y2UzZGI5MWM2YTc5OTY1MDI1YzlhMmExZWJiYjUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAxNS0wOS0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIE5vZGUuYXBwZW5kQ2hpbGQobnVsbCkgLyByZXBsYWNlQ2hpbGQobnVsbCwgbnVs
bCkgLyByZW1vdmVDaGlsZChudWxsKSAvIGluc2VydEJlZm9yZShudWxsLCByZWYpIHNob3VsZCB0
aHJvdyBhIFR5cGVFcnJvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQ4OTcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjU2MDg4Mz4KKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzIyNTU5MjI1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSAvIHJlYmFzZWxpbmUgdGVzdHMgbm93IHRoYXQg
d2UgdGhyb3cgYSBkaWZmZXJlbnQgZXhjZXB0aW9uIHR5cGUuCisKKyAgICAgICAgKiBmYXN0L2Rv
bS9Eb2N1bWVudC9yZXBsYWNlQ2hpbGQtbnVsbC1vbGRDaGlsZC1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9kb20vRG9jdW1lbnQvc2NyaXB0LXRlc3RzL3JlcGxhY2VDaGlsZC1udWxsLW9s
ZENoaWxkLmpzOgorICAgICAgICAqIGZhc3QvZG9tL05vZGUvZnJhZ21lbnQtbXV0YXRpb24tZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL05vZGUvZnJhZ21lbnQtbXV0YXRpb24uaHRt
bDoKKyAgICAgICAgKiBmYXN0L2RvbS9pbmNvbXBhdGlibGUtb3BlcmF0aW9ucy1leHBlY3RlZC50
eHQ6CisgICAgICAgICogZmFzdC9kb20vaW5jb21wYXRpYmxlLW9wZXJhdGlvbnMuaHRtbDoKKyAg
ICAgICAgKiBmYXN0L2RvbS9tb3ZlLW5vZGVzLWFjcm9zcy1kb2N1bWVudHMuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L2RvbS9wcm9jZXNzaW5nLWluc3RydWN0aW9uLWFwcGVuZENoaWxkLWV4Y2VwdGlv
bnMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL3Byb2Nlc3NpbmctaW5zdHJ1Y3Rp
b24tYXBwZW5kQ2hpbGQtZXhjZXB0aW9ucy54aHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9zZXR0
ZXItdHlwZS1lbmZvcmNlbWVudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vdGlt
ZXItY2xlYXItaW50ZXJ2YWwtaW4taGFuZGxlci1hbmQtZ2VuZXJhdGUtZXJyb3ItZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGZhc3QvaW5zcGVjdG9yLXN1cHBvcnQvdW5jYXVnaHQtZG9tOC1leGNl
cHRpb24uaHRtbDoKKwogMjAxNS0wOS0wOCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+
CiAKICAgICAgICAgW2lPU10gQWRkIGxheW91dCB0ZXN0cyBmb3IgUXVpY2tMb29rCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA3Mjc4MmUwNTIwN2RlMzVhZjIxODkwYmY3MGM4MzJm
OTFhNWIyZDE0Li43YWY2NTA1NzlmN2JhN2M2NGI3OWIzMzhmYTgwMmM4OTc5MDJlYTA2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMyBAQAogMjAxNS0wOS0wOCAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCisgICAgICAgIE5vZGUuYXBwZW5kQ2hp
bGQobnVsbCkgLyByZXBsYWNlQ2hpbGQobnVsbCwgbnVsbCkgLyByZW1vdmVDaGlsZChudWxsKSAv
IGluc2VydEJlZm9yZShudWxsLCByZWYpIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4OTcxCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS8yMjU2MDg4Mz4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIyNTU5
MjI1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
YmFzZWxpbmUgVzNDIHRlc3RzIG5vdyB0aGF0IG1vcmUgY2hlY2tzIGFyZSBwYXNzaW5nLgorCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtYXBwZW5kQ2hpbGQt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9k
ZS1pbnNlcnRCZWZvcmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9kb20vbm9kZXMvTm9kZS1yZW1vdmVDaGlsZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLXJlcGxhY2VDaGlsZC1leHBlY3RlZC50eHQ6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2ludGVyZmFjZXMtZXhwZWN0
ZWQudHh0OgorCisyMDE1LTA5LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
ICAgICAgICAgVW5yZXZpZXdlZCwgZHJvcCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvbG9jYXRpb24t
b2YtdGhlLW1lZGlhLXJlc291cmNlL2N1cnJlbnRTcmMuaHRtbC4KIAogICAgICAgICBUaGlzIHJl
Y2VudGx5IGltcG9ydGVkIHRlc3QgaXMgZmxha3kuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9Eb2N1bWVudC9yZXBsYWNlQ2hpbGQtbnVsbC1vbGRDaGlsZC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Eb2N1bWVudC9yZXBsYWNlQ2hpbGQtbnVsbC1vbGRDaGls
ZC1leHBlY3RlZC50eHQKaW5kZXggYmJiMTY2YjIyN2E1MmU2NTE0NWFkYmY0MDQ4Nzg1M2IwZDM2
OGQyNC4uYWY1YTQ2OWY1ZjhjYzY5NzEwMWJjOTJhNDBmODI0NTViOGJlNWNkMCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvcmVwbGFjZUNoaWxkLW51bGwtb2xkQ2hp
bGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50L3JlcGxh
Y2VDaGlsZC1udWxsLW9sZENoaWxkLWV4cGVjdGVkLnR4dApAQCAtMyw3ICszLDcgQEAgVGVzdCBi
ZWhhdmlvciBvZiBEb2N1bWVudC5yZXBsYWNlQ2hpbGQoKSB3aGVuIG9sZENoaWxkIGlzIG51bGwu
CiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBkb2N1bWVudC5yZXBsYWNlQ2hp
bGQoZG9jdW1lbnQuZmlyc3RDaGlsZCwgbnVsbCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb3RG
b3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDguCitQQVNTIGRvY3VtZW50LnJlcGxhY2VDaGlsZChk
b2N1bWVudC5maXJzdENoaWxkLCBudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBl
IGVycm9yLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRF
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Eb2N1bWVudC9zY3JpcHQtdGVzdHMv
cmVwbGFjZUNoaWxkLW51bGwtb2xkQ2hpbGQuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Eb2N1
bWVudC9zY3JpcHQtdGVzdHMvcmVwbGFjZUNoaWxkLW51bGwtb2xkQ2hpbGQuanMKaW5kZXggZGE5
MjUyODAwNTFlMTk3ZTFhZjVjOWVhNGEyNWI0MWI5NmVjM2E1Zi4uYzA5YmYxYjE4ZDI5OWU2NzQ1
MjMwNTM2NjdhOGMyNWQ4YTk4MDcwZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
RG9jdW1lbnQvc2NyaXB0LXRlc3RzL3JlcGxhY2VDaGlsZC1udWxsLW9sZENoaWxkLmpzCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50L3NjcmlwdC10ZXN0cy9yZXBsYWNlQ2hpbGQt
bnVsbC1vbGRDaGlsZC5qcwpAQCAtMSwzICsxLDMgQEAKIGRlc2NyaXB0aW9uKCdUZXN0IGJlaGF2
aW9yIG9mIERvY3VtZW50LnJlcGxhY2VDaGlsZCgpIHdoZW4gb2xkQ2hpbGQgaXMgbnVsbC4nKTsK
IAotc2hvdWxkVGhyb3coJ2RvY3VtZW50LnJlcGxhY2VDaGlsZChkb2N1bWVudC5maXJzdENoaWxk
LCBudWxsKScsICciRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCInKTsKK3No
b3VsZFRocm93KCdkb2N1bWVudC5yZXBsYWNlQ2hpbGQoZG9jdW1lbnQuZmlyc3RDaGlsZCwgbnVs
bCknLCAnIlR5cGVFcnJvcjogVHlwZSBlcnJvciInKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL05vZGUvZnJhZ21lbnQtbXV0YXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vTm9kZS9mcmFnbWVudC1tdXRhdGlvbi1leHBlY3RlZC50eHQKaW5kZXggMGYw
NGU2NmEwZTUzZTZmNWIxOTAxYzVkY2IxNzZmNjdmMmU0Zjg2OC4uNGJhOTUyNGM3MmNkNWQ3YTEx
MzI5NDRkMDZkZGRiYzZmNmM3ZDg1YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
Tm9kZS9mcmFnbWVudC1tdXRhdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vTm9kZS9mcmFnbWVudC1tdXRhdGlvbi1leHBlY3RlZC50eHQKQEAgLTIsMTIgKzIsMTIg
QEAgVGhpcyB0ZXN0IGNyZWF0ZXMgYSBmcmFnbWVudCBjb250YWluaW5nIHRocmVlIGVsZW1lbnRz
OiAiQiIsICJVIiwgYW5kICJQIiwgYXR0ZW0KIAogSW5zZXJ0aW5nIGFuIGVsZW1lbnQgaW4gZnJv
bnQgb2YgdGhlIG5leHQgaXRlbSBpbiBmcmFnbWVudCBzaG91bGQgbm90IGFmZmVjdCB0aGUgcmVz
dWx0OiBQQVNTCiBBcHBlbmRpbmcgYW4gZWxlbWVudCBhdCB0aGUgZW5kIG9mIHRoZSBmcmFnbWVu
dCBzaG91bGQgbm90IGFmZmVjdCB0aGUgcmVzdWx0OiBQQVNTCi1Db250aW51YWxseSByZS1hcHBl
bmRpbmcgcmVtb3ZlZCBlbGVtZW50IHRvIHRoZSBmcmFnbWVudCBzaG91bGQgZXZlbnR1YWxseSB0
aHJvdyBOT1RfRk9VTkRfRVJSOiBQQVNTCitDb250aW51YWxseSByZS1hcHBlbmRpbmcgcmVtb3Zl
ZCBlbGVtZW50IHRvIHRoZSBmcmFnbWVudCBzaG91bGQgZXZlbnR1YWxseSB0aHJvdyBhIFR5cGVF
cnJvcjogUEFTUwogCiBUaGlzIHRlc3QgY3JlYXRlcyBhIGZyYWdtZW50IGNvbnRhaW5pbmcgdGhy
ZWUgZWxlbWVudHM6ICJCIiwgIlUiLCBhbmQgIlAiLCBhdHRlbXB0cyB0byBpbnNlcnRCZWZvcmUg
dGhpcyBmcmFnbWVudCBhbmQgc3R1ZGllcyBlZmZlY3RzIG9mIG11dGF0aW9uIGV2ZW50cyBvbiB0
aGUgZnJhZ21lbnQuCiAKIEluc2VydGluZyBhbiBlbGVtZW50IGluIGZyb250IG9mIHRoZSBuZXh0
IGl0ZW0gaW4gZnJhZ21lbnQgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIHJlc3VsdDogUEFTUwogQXBw
ZW5kaW5nIGFuIGVsZW1lbnQgYXQgdGhlIGVuZCBvZiB0aGUgZnJhZ21lbnQgc2hvdWxkIG5vdCBh
ZmZlY3QgdGhlIHJlc3VsdDogUEFTUwotQ29udGludWFsbHkgcmUtYXBwZW5kaW5nIHJlbW92ZWQg
ZWxlbWVudCB0byB0aGUgZnJhZ21lbnQgc2hvdWxkIGV2ZW50dWFsbHkgdGhyb3cgTk9UX0ZPVU5E
X0VSUjogUEFTUworQ29udGludWFsbHkgcmUtYXBwZW5kaW5nIHJlbW92ZWQgZWxlbWVudCB0byB0
aGUgZnJhZ21lbnQgc2hvdWxkIGV2ZW50dWFsbHkgdGhyb3cgYSBUeXBlRXJyb3I6IFBBU1MKIAog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2ZyYWdtZW50LW11dGF0aW9u
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2ZyYWdtZW50LW11dGF0aW9uLmh0bWwK
aW5kZXggODRlNjdmNjUzOWQ2NGI3M2UzNTExMDIwYzA3NmUwNGM5ZTgwMGNiZi4uNDg5NDk3ZjUw
YWM2YjZhOGY4MTAwNmJiNThlNmFjMTc1NTdjNmI4NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vTm9kZS9mcmFnbWVudC1tdXRhdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL05vZGUvZnJhZ21lbnQtbXV0YXRpb24uaHRtbApAQCAtMzYsMTUgKzM2LDE1IEBAIGZ1
bmN0aW9uIHByb2R1Y2VOb2RlTmFtZVN0cmluZyhub2RlcykKICAgICByZXR1cm4gcmVzdWx0Owog
fQogCi1mdW5jdGlvbiBleHBlY3RFeGNlcHRpb24oY29kZSkKK2Z1bmN0aW9uIGV4cGVjdFR5cGVF
cnJvcigpCiB7CiAgICAgcmV0dXJuIGZ1bmN0aW9uKHN0YXNoLCBleGNlcHRpb24pIHsKICAgICAg
ICAgaWYgKCFleGNlcHRpb24pCi0gICAgICAgICAgICByZXR1cm4gIkZBSUwsIGV4cGVjdGVkIGV4
Y2VwdGlvbiB3aXRoIGNvZGUgIiArIGNvZGUgKyAiLiBUaGUgcmVzdWx0aW5nIGZyYWdtZW50IHdh
czogXCIiICsgcHJvZHVjZU5vZGVOYW1lU3RyaW5nKHN0YXNoKSArICJcIi4iOworICAgICAgICAg
ICAgcmV0dXJuICJGQUlMLCBleHBlY3RlZCBUeXBlRXJyb3IuIFRoZSByZXN1bHRpbmcgZnJhZ21l
bnQgd2FzOiBcIiIgKyBwcm9kdWNlTm9kZU5hbWVTdHJpbmcoc3Rhc2gpICsgIlwiLiI7CiAKLSAg
ICAgICAgaWYgKGNvZGUgPT0gZXhjZXB0aW9uLmNvZGUpCisgICAgICAgIGlmIChleGNlcHRpb24u
bmFtZSA9ICJUeXBlRXJyb3IiKQogICAgICAgICAgICAgcmV0dXJuICJQQVNTIjsKLSAgICAgICAg
cmV0dXJuICJGQUlMLCBleHBlY3RlZCBleGNlcHRpb24gY29kZTogIiArIGNvZGUgKyAiLCB3YXM6
ICIgKyBleGNlcHRpb24gKyAiLiI7CisgICAgICAgIHJldHVybiAiRkFJTCwgZXhwZWN0ZWQgVHlw
ZUVycm9yLCB3YXM6ICIgKyBleGNlcHRpb24ubmFtZSArICIuIjsKICAgICB9CiB9CiAKQEAgLTEx
OSwxMCArMTE5LDEwIEBAIGZ1bmN0aW9uIHJ1blRlc3QobWV0aG9kTmFtZSwgbWV0aG9kKQogICAg
ICAgICBmcmFnLmFwcGVuZENoaWxkKGV4dHJhKTsKICAgICB9LCBleHBlY3ROb2RlcygiQlVQIikp
OwogCi0gICAgdGVzdEZyYWdtZW50KG1ldGhvZCwgIkNvbnRpbnVhbGx5IHJlLWFwcGVuZGluZyBy
ZW1vdmVkIGVsZW1lbnQgdG8gdGhlIGZyYWdtZW50IHNob3VsZCBldmVudHVhbGx5IHRocm93IE5P
VF9GT1VORF9FUlIiLCBmdW5jdGlvbihldnQsIGZyYWcsIHN0YXNoKQorICAgIHRlc3RGcmFnbWVu
dChtZXRob2QsICJDb250aW51YWxseSByZS1hcHBlbmRpbmcgcmVtb3ZlZCBlbGVtZW50IHRvIHRo
ZSBmcmFnbWVudCBzaG91bGQgZXZlbnR1YWxseSB0aHJvdyBhIFR5cGVFcnJvciIsIGZ1bmN0aW9u
KGV2dCwgZnJhZywgc3Rhc2gpCiAgICAgewogICAgICAgICBzdGFzaC5pbnNlcnRCZWZvcmUoZnJh
Zy5sYXN0Q2hpbGQsIHN0YXNoLmZpcnN0Q2hpbGQpOwotICAgIH0sIGV4cGVjdEV4Y2VwdGlvbig4
KSwgdHJ1ZSk7CisgICAgfSwgZXhwZWN0VHlwZUVycm9yKCksIHRydWUpOwogICAgIHByaW50TG9n
KG1ldGhvZE5hbWUpOwogfQogZnVuY3Rpb24gcnVuVGVzdHMoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vaW5jb21wYXRpYmxlLW9wZXJhdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vaW5jb21wYXRpYmxlLW9wZXJhdGlvbnMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGQ1NzY0YzFlNWFjNjI2NGVlM2E0ZGY1YjkyNDVlYmUxNzdmNjU0ODAuLjg1Y2NkNTQ0ZmM5
ZTk5YTc4ZGFhMjc3NTVhMzNmYzg4MGE3ZmYwZDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL2luY29tcGF0aWJsZS1vcGVyYXRpb25zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9pbmNvbXBhdGlibGUtb3BlcmF0aW9ucy1leHBlY3RlZC50eHQKQEAgLTMs
OSArMyw5IEBAIFRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIERPTSBvcGVyYXRpb25z
IHdoZW4gY2FsbGVkIG9uIG5vbi1ET00gb3IgaW5jb21wCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCiAKIAotUEFTUyBhTm9kZS5hcHBlbmRDaGlsZChhRE9NSW1wbGVtZW50YXRpb24pIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4LgotUEFTUyBh
Tm9kZS5hcHBlbmRDaGlsZCgna25vcnQnKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5vdEZvdW5k
RXJyb3I6IERPTSBFeGNlcHRpb24gOC4KLVBBU1MgYU5vZGUuYXBwZW5kQ2hpbGQodm9pZCAwKSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOC4KK1BB
U1MgYU5vZGUuYXBwZW5kQ2hpbGQoYURPTUltcGxlbWVudGF0aW9uKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBhTm9kZS5hcHBlbmRDaGlsZCgna25vcnQnKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBhTm9kZS5hcHBlbmRD
aGlsZCh2b2lkIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNT
IGFOb2RlLmlzU2FtZU5vZGUoYURPTUltcGxlbWVudGF0aW9uKSBpcyBmYWxzZQogUEFTUyBhTm9k
ZS5pc1NhbWVOb2RlKCdmb28nKSBpcyBmYWxzZQogUEFTUyBhTm9kZS5pc1NhbWVOb2RlKHZvaWQg
MCkgaXMgZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2luY29tcGF0aWJs
ZS1vcGVyYXRpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pbmNvbXBhdGlibGUtb3Bl
cmF0aW9ucy5odG1sCmluZGV4IDIxYWE3MWFmZThlM2RlYWE4Y2U4YjA0ZDNmM2NmMjNkNTgyNTQy
MzAuLjJmMGU0YWZlNmNhY2JkYzJiODU3MzVlNzY2MGVlOGY5ZTVkMDFiMGYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL2luY29tcGF0aWJsZS1vcGVyYXRpb25zLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vaW5jb21wYXRpYmxlLW9wZXJhdGlvbnMuaHRtbApAQCAtMjgs
MTEgKzI4LDExIEBAIHZhciBhTm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwog
dmFyIGFTZWNvbmROb2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiBhTm9kZS5h
cHBlbmRDaGlsZChhU2Vjb25kTm9kZSk7CiAKLXNob3VsZFRocm93KCJhTm9kZS5hcHBlbmRDaGls
ZChhRE9NSW1wbGVtZW50YXRpb24pIiwgIidFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2Vw
dGlvbiA4JyIpOworc2hvdWxkVGhyb3coImFOb2RlLmFwcGVuZENoaWxkKGFET01JbXBsZW1lbnRh
dGlvbikiLCAiJ1R5cGVFcnJvcjogVHlwZSBlcnJvciciKTsKIAotc2hvdWxkVGhyb3coImFOb2Rl
LmFwcGVuZENoaWxkKCdrbm9ydCcpIiwgIidFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2Vw
dGlvbiA4JyIpOworc2hvdWxkVGhyb3coImFOb2RlLmFwcGVuZENoaWxkKCdrbm9ydCcpIiwgIidU
eXBlRXJyb3I6IFR5cGUgZXJyb3InIik7CiAKLXNob3VsZFRocm93KCJhTm9kZS5hcHBlbmRDaGls
ZCh2b2lkIDApIiwgIidFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4JyIpOwor
c2hvdWxkVGhyb3coImFOb2RlLmFwcGVuZENoaWxkKHZvaWQgMCkiLCAiJ1R5cGVFcnJvcjogVHlw
ZSBlcnJvciciKTsKIAogc2hvdWxkQmVGYWxzZSgiYU5vZGUuaXNTYW1lTm9kZShhRE9NSW1wbGVt
ZW50YXRpb24pIik7CiBzaG91bGRCZUZhbHNlKCJhTm9kZS5pc1NhbWVOb2RlKCdmb28nKSIpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbW92ZS1ub2Rlcy1hY3Jvc3MtZG9jdW1l
bnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9tb3ZlLW5vZGVzLWFjcm9zcy1kb2N1bWVu
dHMuaHRtbAppbmRleCBkMzUwMWExN2RiODZjNGVjODYwZmI1ZjEyMmM3ZDVjZGFlNmY1YTM1Li4z
ODgxZjA0OTkyMWIxM2RkM2ZiNjZmZTZkN2E1MmVjNzRhZjY4NTgzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9tb3ZlLW5vZGVzLWFjcm9zcy1kb2N1bWVudHMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9tb3ZlLW5vZGVzLWFjcm9zcy1kb2N1bWVudHMuaHRtbApAQCAt
MTc5LDcgKzE3OSw3IEBAIGZ1bmN0aW9uIHJ1bigpCiAgICAgcnVuVGVzdChmdW5jdGlvbigpIHsK
ICAgICAgICAgaWZyYW1lRG9jLmFwcGVuZENoaWxkKGRvY3VtZW50LmRvY3R5cGUpOwogICAgICAg
ICBjb25zb2xlLmxvZyhkb2N1bWVudC5kb2N0eXBlKTsKLSAgICB9LCAnTm90Rm91bmRFcnJvcicp
OworICAgIH0sICdUeXBlRXJyb3InKTsKIAogICAgIC8vIFdoZW4gc2V0dGluZyBhIGJvdW5kYXJ5
IG9mIHRoZSByYW5nZSBpbiBhIGRpZmZlcmVudAogICAgIC8vIGRvY3VtZW50LCB0aGUgY2FsbCBz
aG91bGQgc3VjY2VlZCBhbmQgdGhlIHJhbmdlIHNob3VsZCBiZSBjb2xsYXBzZWQuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm9jZXNzaW5nLWluc3RydWN0aW9uLWFwcGVuZENo
aWxkLWV4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvY2Vz
c2luZy1pbnN0cnVjdGlvbi1hcHBlbmRDaGlsZC1leGNlcHRpb25zLWV4cGVjdGVkLnR4dAppbmRl
eCA3YTEzODY4YTdiMmZmZmE2ZDI2NDJhYjYyMTcyMjdiMmRhYjkyZmI5Li4wZTNiZGYyMjZlMGM1
YTY1OTE3MTIwNDVjMzU1NWQ4MzZiY2NiYjJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9wcm9jZXNzaW5nLWluc3RydWN0aW9uLWFwcGVuZENoaWxkLWV4Y2VwdGlvbnMtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb2Nlc3NpbmctaW5zdHJ1Y3Rpb24t
YXBwZW5kQ2hpbGQtZXhjZXB0aW9ucy1leHBlY3RlZC50eHQKQEAgLTMsNyArMyw3IEBAIFRlc3Qg
dGhhdCBhcHByb3ByaWF0ZSBleGNlcHRpb25zIGFyZSB0aHJvd24gd2hlbiBhZGRpbmcgY2hpbGRy
ZW4gdG8gYSBQcm9jZXNzaW5nCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBw
aS5hcHBlbmRDaGlsZChudWxsKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEhpZXJhcmNoeVJlcXVl
c3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzLgorUEFTUyBwaS5hcHBlbmRDaGlsZChudWxsKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgogUEFTUyBwaS5hcHBlbmRDaGlsZChk
aXYpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhj
ZXB0aW9uIDMuCiBQQVNTIHBpLmFwcGVuZENoaWxkKHRleHROb2RlKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzLgogUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
cHJvY2Vzc2luZy1pbnN0cnVjdGlvbi1hcHBlbmRDaGlsZC1leGNlcHRpb25zLnhodG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vcHJvY2Vzc2luZy1pbnN0cnVjdGlvbi1hcHBlbmRDaGlsZC1leGNl
cHRpb25zLnhodG1sCmluZGV4IGIwMDI4OTljMjMyMDY3ZmMxNzMzZmE5MWVhZmUxMzE0MjJjNDk5
NjAuLmM5MDJiYTRiMzU5ODk3ZDkzOGJkNDlmODBiYzZmMjJjMjAxOTJmZDggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb2Nlc3NpbmctaW5zdHJ1Y3Rpb24tYXBwZW5kQ2hpbGQt
ZXhjZXB0aW9ucy54aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm9jZXNzaW5nLWlu
c3RydWN0aW9uLWFwcGVuZENoaWxkLWV4Y2VwdGlvbnMueGh0bWwKQEAgLTUsNyArNSw3IEBACiA8
IVtDREFUQVsKIGRlc2NyaXB0aW9uKCJUZXN0IHRoYXQgYXBwcm9wcmlhdGUgZXhjZXB0aW9ucyBh
cmUgdGhyb3duIHdoZW4gYWRkaW5nIGNoaWxkcmVuIHRvIGEgUHJvY2Vzc2luZ0luc3RydWN0aW9u
LiIpOwogdmFyIHBpID0gZG9jdW1lbnQuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCd0YXJn
ZXQnLCAnZGF0YScpOwotc2hvdWxkVGhyb3coInBpLmFwcGVuZENoaWxkKG51bGwpIiwgIidFcnJv
cjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMnIik7CitzaG91bGRUaHJv
dygicGkuYXBwZW5kQ2hpbGQobnVsbCkiLCAiJ1R5cGVFcnJvcjogVHlwZSBlcnJvciciKTsKIHZh
ciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKIHNob3VsZFRocm93KCJwaS5h
cHBlbmRDaGlsZChkaXYpIiwgIidFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhj
ZXB0aW9uIDMnIik7CiB2YXIgdGV4dE5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnc29t
ZXRleHQnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3RpbWVyLWNsZWFyLWlu
dGVydmFsLWluLWhhbmRsZXItYW5kLWdlbmVyYXRlLWVycm9yLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3RpbWVyLWNsZWFyLWludGVydmFsLWluLWhhbmRsZXItYW5kLWdlbmVy
YXRlLWVycm9yLWV4cGVjdGVkLnR4dAppbmRleCA5OWFhYzZhMDVkY2FlODg2MzI2OWM2OWJiNmRj
YjNhOTI5NGI2NDc3Li41ZjJmZDUxNDE3MDBjODMzMzQ4OWI1MGUxYTNkMjIyYjI2OTQyNWEwIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS90aW1lci1jbGVhci1pbnRlcnZhbC1pbi1o
YW5kbGVyLWFuZC1nZW5lcmF0ZS1lcnJvci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vdGltZXItY2xlYXItaW50ZXJ2YWwtaW4taGFuZGxlci1hbmQtZ2VuZXJhdGUtZXJy
b3ItZXhwZWN0ZWQudHh0CkBAIC0xLDIgKzEsMiBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEw
OiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDg6IEFuIGF0dGVtcHQgd2FzIG1hZGUgdG8g
cmVmZXJlbmNlIGEgTm9kZSBpbiBhIGNvbnRleHQgd2hlcmUgaXQgZG9lcyBub3QgZXhpc3QuCitD
T05TT0xFIE1FU1NBR0U6IGxpbmUgMTA6IFR5cGVFcnJvcjogVHlwZSBlcnJvcgogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZW1vdmUtdGFyZ2V0LXdpdGgtc2hhZG93LWlu
LWRyYWctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVtb3ZlLXRhcmdl
dC13aXRoLXNoYWRvdy1pbi1kcmFnLWV4cGVjdGVkLnR4dAppbmRleCA0NWMxMTlmZTliMzBjYWQy
YTUwZjFkZmY4YzAxNzExOTIwNWFmZTdhLi4xMjg5NjRmNWZhNGFhYTgyZWM4OWFkZjdiZDIzZTNm
ODBlYTM5YjYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZW1vdmUtdGFy
Z2V0LXdpdGgtc2hhZG93LWluLWRyYWctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3JlbW92ZS10YXJnZXQtd2l0aC1zaGFkb3ctaW4tZHJhZy1leHBlY3RlZC50eHQK
QEAgLTEsMyArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMzQ6IE5vdEZvdW5kRXJyb3I6
IERPTSBFeGNlcHRpb24gODogQW4gYXR0ZW1wdCB3YXMgbWFkZSB0byByZWZlcmVuY2UgYSBOb2Rl
IGluIGEgY29udGV4dCB3aGVyZSBpdCBkb2VzIG5vdCBleGlzdC4KLUNPTlNPTEUgTUVTU0FHRTog
bGluZSAzNDogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4OiBBbiBhdHRlbXB0IHdhcyBt
YWRlIHRvIHJlZmVyZW5jZSBhIE5vZGUgaW4gYSBjb250ZXh0IHdoZXJlIGl0IGRvZXMgbm90IGV4
aXN0LgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM0OiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IKK0NP
TlNPTEUgTUVTU0FHRTogbGluZSAzNDogVHlwZUVycm9yOiBUeXBlIGVycm9yCiBQQVNTLiBEUlQg
ZGlkbid0IGNyYXNoLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbnNwZWN0b3Itc3Vw
cG9ydC91bmNhdWdodC1kb204LWV4Y2VwdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbnNw
ZWN0b3Itc3VwcG9ydC91bmNhdWdodC1kb204LWV4Y2VwdGlvbi5odG1sCmluZGV4IGJjNjA4ZjRm
YWUwNDkzNzA2YzliNzllNTEzN2JjZmU3ODM0MjI1ZGIuLjVmYTRlNWI4YjY2NjYzOTQyMmQ1YjRh
ZDlhNjdmZWE2MmQ0ZWU5MGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW5zcGVjdG9y
LXN1cHBvcnQvdW5jYXVnaHQtZG9tOC1leGNlcHRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2luc3BlY3Rvci1zdXBwb3J0L3VuY2F1Z2h0LWRvbTgtZXhjZXB0aW9uLmh0bWwKQEAgLTYs
NyArNiw3IEBAIGZ1bmN0aW9uIG9ubG9hZCgpCiB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICBkb2N1bWVudC5hcHBlbmRD
aGlsZCgpOworICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQXR0cmlidXRlTm9kZShkb2N1bWVudC5j
cmVhdGVBdHRyaWJ1dGUoImRvZXNOb3RFeGlzdCIpKTsKIH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9pbnRl
cmZhY2VzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0CmluZGV4IGZkYjE5ODBhOGJjZmM0
ZjkxZTVjYTZmOWQ1NmMwZDcxMmU0YTcwZWEuLmNmN2IyM2EyNzg5NGE5Mjk2YWEzNTk2YzAyZWJk
NjdkNDgyNDEwNzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQu
dHh0CkBAIC02MzQsMjEgKzYzNCwxNSBAQCBGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGlz
RGVmYXVsdE5hbWVzcGFjZShET01TdHJpbmcpIG9uIHhtbERvYyB3aXRoIHRvbyBmZQogICAgIFtu
YXRpdmUgY29kZV0KIH0iIGRpZCBub3QgdGhyb3cKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IHhtbERv
YyBtdXN0IGluaGVyaXQgcHJvcGVydHkgImluc2VydEJlZm9yZSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgKDQwKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUs
Tm9kZSkgb24geG1sRG9jIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJy
b3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0
aW9uICgpIHsKK0ZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUs
Tm9kZSkgb24geG1sRG9jIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJy
b3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMSBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0
aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RG
b3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9i
amVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCit9IiB0aHJldyBvYmplY3QgIkVycm9yOiBI
aWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0
RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQogUEFTUyBO
b2RlIGludGVyZmFjZTogeG1sRG9jIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXBwZW5kQ2hpbGQi
IHdpdGggdGhlIHByb3BlciB0eXBlICg0MSkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5n
IGFwcGVuZENoaWxkKE5vZGUpIG9uIHhtbERvYyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3Qg
dGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1
bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0
ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3Ii
KSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGlu
dGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiB4bWxEb2Mgd2l0aCB0b28gZmV3
IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IHht
bERvYyBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlcGxhY2VDaGlsZCIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgKDQyKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5v
ZGUsTm9kZSkgb24geG1sRG9jIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBl
RXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1
bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiBkaWQgbm90IHRocm93CitQQVNTIE5v
ZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIHhtbERvYyB3
aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGlu
dGVyZmFjZTogeG1sRG9jIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVtb3ZlQ2hpbGQiIHdpdGgg
dGhlIHByb3BlciB0eXBlICg0MykgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92
ZUNoaWxkKE5vZGUpIG9uIHhtbERvYyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cg
VHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9u
ICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJv
cjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBl
Y3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFj
ZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiB4bWxEb2Mgd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiB4
bWxEb2MgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhZGRFdmVudExpc3RlbmVyIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAoMCkgCiBGQUlMIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogY2FsbGluZyBhZGRF
dmVudExpc3RlbmVyKERPTVN0cmluZyxFdmVudExpc3RlbmVyLGJvb2xlYW4pIG9uIHhtbERvYyB3
aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6
IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAgICAgW25h
dGl2ZSBjb2RlXQpAQCAtNzkzLDIxICs3ODcsMTUgQEAgRkFJTCBOb2RlIGludGVyZmFjZTogY2Fs
bGluZyBpc0RlZmF1bHROYW1lc3BhY2UoRE9NU3RyaW5nKSBvbiBkb2N1bWVudC5jcmVhdGVEb2MK
ICAgICBbbmF0aXZlIGNvZGVdCiB9IiBkaWQgbm90IHRocm93CiBQQVNTIE5vZGUgaW50ZXJmYWNl
OiBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJpbnNlcnRCZWZvcmUiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MCkgCi1GQUlMIE5vZGUgaW50
ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0
ZURvY3VtZW50RnJhZ21lbnQoKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlw
ZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJm
dW5jdGlvbiAoKSB7CitGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShO
b2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSB3aXRoIHRvbyBm
ZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3
aXRoIDEgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAgICAgW25hdGl2ZSBjb2Rl
XQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4
IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJy
b3IiKQorfSIgZGlkIG5vdCB0aHJvdwogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuY3Jl
YXRlRG9jdW1lbnRGcmFnbWVudCgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXBwZW5kQ2hpbGQi
IHdpdGggdGhlIHByb3BlciB0eXBlICg0MSkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5n
IGFwcGVuZENoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSB3
aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6
IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25h
dGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4
Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIg
KCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChO
b2RlKSBvbiBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkgd2l0aCB0b28gZmV3IGFy
Z3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3Vt
ZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlcGxh
Y2VDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQyKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6
IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlRG9jdW1l
bnRGcmFnbWVudCgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3Ig
YXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9u
ICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiBkaWQgbm90IHRocm93CitQQVNTIE5vZGUgaW50
ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0
ZURvY3VtZW50RnJhZ21lbnQoKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlw
ZUVycm9yIAogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFn
bWVudCgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVtb3ZlQ2hpbGQiIHdpdGggdGhlIHByb3Bl
ciB0eXBlICg0MykgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5v
ZGUpIG9uIGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSB3aXRoIHRvbyBmZXcgYXJn
dW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAg
YXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIg
dGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5v
dEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQor
UEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiBkb2N1bWVu
dC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRo
cm93IFR5cGVFcnJvciAKIFBBU1MgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVh
dGVEb2N1bWVudEZyYWdtZW50KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhZGRFdmVudExpc3Rl
bmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMCkgCiBGQUlMIEV2ZW50VGFyZ2V0IGludGVyZmFj
ZTogY2FsbGluZyBhZGRFdmVudExpc3RlbmVyKERPTVN0cmluZyxFdmVudExpc3RlbmVyLGJvb2xl
YW4pIG9uIGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSB3aXRoIHRvbyBmZXcgYXJn
dW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAg
YXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAgICAgW25hdGl2ZSBjb2RlXQpAQCAt
OTE1LDIxICs5MDMsMTUgQEAgRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpc0RlZmF1bHRO
YW1lc3BhY2UoRE9NU3RyaW5nKSBvbiBkb2N1bWVudC5kb2N0eXBlIHcKICAgICBbbmF0aXZlIGNv
ZGVdCiB9IiBkaWQgbm90IHRocm93CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5kb2N0
eXBlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5zZXJ0QmVmb3JlIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAoNDApIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZvcmUoTm9k
ZSxOb2RlKSBvbiBkb2N1bWVudC5kb2N0eXBlIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0
aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVu
Y3Rpb24gImZ1bmN0aW9uICgpIHsKK0ZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0
QmVmb3JlKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuZG9jdHlwZSB3aXRoIHRvbyBmZXcgYXJndW1l
bnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDEgYXJn
dW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAgICAgW25hdGl2ZSBjb2RlXQogfSIgdGhy
ZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMi
ICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgi
VHlwZUVycm9yIikKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmRvY3R5cGUgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJhcHBlbmRDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQxKSAK
LUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24gZG9jdW1l
bnQuZG9jdHlwZSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFz
c2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAo
KSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5
UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikg
ZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRl
cmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuZG9jdHlwZSB3aXRo
IHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGludGVy
ZmFjZTogZG9jdW1lbnQuZG9jdHlwZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlcGxhY2VDaGls
ZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQyKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxp
bmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuZG9jdHlwZSB3aXRoIHRvbyBm
ZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3
aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2Rl
XQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhj
ZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBl
RXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFj
ZUNoaWxkKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuZG9jdHlwZSB3aXRoIHRvbyBmZXcgYXJndW1l
bnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQu
ZG9jdHlwZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlbW92ZUNoaWxkIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAoNDMpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChO
b2RlKSBvbiBkb2N1bWVudC5kb2N0eXBlIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rp
b24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVy
cm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4
cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJm
YWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmRvY3R5cGUgd2l0aCB0
b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgRXZlbnRUYXJnZXQg
aW50ZXJmYWNlOiBkb2N1bWVudC5kb2N0eXBlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYWRkRXZl
bnRMaXN0ZW5lciIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDApIAogRkFJTCBFdmVudFRhcmdldCBp
bnRlcmZhY2U6IGNhbGxpbmcgYWRkRXZlbnRMaXN0ZW5lcihET01TdHJpbmcsRXZlbnRMaXN0ZW5l
cixib29sZWFuKSBvbiBkb2N1bWVudC5kb2N0eXBlIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVz
dCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMg
ZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCkBAIC0xMTg3LDIxICsx
MTY5LDE1IEBAIEZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaXNEZWZhdWx0TmFtZXNwYWNl
KERPTVN0cmluZykgb24gZWxlbWVudCB3aXRoIHRvbyBmCiAgICAgW25hdGl2ZSBjb2RlXQogfSIg
ZGlkIG5vdCB0aHJvdwogUEFTUyBOb2RlIGludGVyZmFjZTogZWxlbWVudCBtdXN0IGluaGVyaXQg
cHJvcGVydHkgImluc2VydEJlZm9yZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQwKSAKLUZBSUwg
Tm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24gZWxlbWVu
dCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJv
d3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CitGQUlM
IE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGVsZW1l
bnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhy
b3dzOiBDYWxsZWQgd2l0aCAxIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAg
IFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERP
TSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJy
b3IiICgiVHlwZUVycm9yIikKK30iIGRpZCBub3QgdGhyb3cKIFBBU1MgTm9kZSBpbnRlcmZhY2U6
IGVsZW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhcHBlbmRDaGlsZCIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgKDQxKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQo
Tm9kZSkgb24gZWxlbWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVy
cm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5j
dGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90
Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBv
YmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTogY2Fs
bGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiBlbGVtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMg
bXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBlbGVtZW50IG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAicmVwbGFjZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDIp
IAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBv
biBlbGVtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNz
ZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgp
IHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiBkaWQgbm90IHRocm93CitQQVNTIE5vZGUgaW50ZXJm
YWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIGVsZW1lbnQgd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6
IGVsZW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZW1vdmVDaGlsZCIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgKDQzKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQo
Tm9kZSkgb24gZWxlbWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVy
cm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5j
dGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90
Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBv
YmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTogY2Fs
bGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiBlbGVtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMg
bXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogZWxlbWVu
dCBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFkZEV2ZW50TGlzdGVuZXIiIHdpdGggdGhlIHByb3Bl
ciB0eXBlICgwKSAKIEZBSUwgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBjYWxsaW5nIGFkZEV2ZW50
TGlzdGVuZXIoRE9NU3RyaW5nLEV2ZW50TGlzdGVuZXIsYm9vbGVhbikgb24gZWxlbWVudCB3aXRo
IHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENh
bGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAgICAgW25hdGl2
ZSBjb2RlXQpAQCAtMTQwOSwyMSArMTM4NSwxNSBAQCBGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxs
aW5nIGlzRGVmYXVsdE5hbWVzcGFjZShET01TdHJpbmcpIG9uIGRvY3VtZW50LmNyZWF0ZVRleAog
ICAgIFtuYXRpdmUgY29kZV0KIH0iIGRpZCBub3QgdGhyb3cKIFBBU1MgTm9kZSBpbnRlcmZhY2U6
IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhYmMiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImlu
c2VydEJlZm9yZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQwKSAKLUZBSUwgTm9kZSBpbnRlcmZh
Y2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUoImFiYyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3Ig
YXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9u
ICgpIHsKK0ZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9k
ZSkgb24gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoImFiYyIpIHdpdGggdG9vIGZldyBhcmd1bWVu
dHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMSBhcmd1
bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCiB9IiB0aHJl
dyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIg
KCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJU
eXBlRXJyb3IiKQogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
ImFiYyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXBwZW5kQ2hpbGQiIHdpdGggdGhlIHByb3Bl
ciB0eXBlICg0MSkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENoaWxkKE5v
ZGUpIG9uIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1l
bnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJn
dW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhy
ZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMi
ICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgi
VHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9k
ZSkgb24gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoImFiYyIpIHdpdGggdG9vIGZldyBhcmd1bWVu
dHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZSgiYWJjIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZXBsYWNlQ2hpbGQi
IHdpdGggdGhlIHByb3BlciB0eXBlICg0MikgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5n
IHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhYmMi
KSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJv
d3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAg
W25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVy
cm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQg
b2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNh
bGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
ImFiYyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNT
IE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJyZW1vdmVDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQzKSAKLUZB
SUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUoImFiYyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBU
eXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24g
ImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9y
OiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVj
dGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNl
OiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJh
YmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBF
dmVudFRhcmdldCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhYmMiKSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgImFkZEV2ZW50TGlzdGVuZXIiIHdpdGggdGhlIHByb3BlciB0eXBl
ICgwKSAKIEZBSUwgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBjYWxsaW5nIGFkZEV2ZW50TGlzdGVu
ZXIoRE9NU3RyaW5nLEV2ZW50TGlzdGVuZXIsYm9vbGVhbikgb24gZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUoImFiYyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3Ig
YXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9u
ICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCkBAIC0xNTQzLDIxICsxNTEzLDE1IEBAIEZBSUwgTm9k
ZSBpbnRlcmZhY2U6IGNhbGxpbmcgaXNEZWZhdWx0TmFtZXNwYWNlKERPTVN0cmluZykgb24geG1s
RG9jLmNyZWF0ZVByb2NlCiAgICAgW25hdGl2ZSBjb2RlXQogfSIgZGlkIG5vdCB0aHJvdwogUEFT
UyBOb2RlIGludGVyZmFjZTogeG1sRG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiYWJj
IiwgImRlZiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5zZXJ0QmVmb3JlIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAoNDApIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZv
cmUoTm9kZSxOb2RlKSBvbiB4bWxEb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJhYmMi
LCAiZGVmIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3Nl
cnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkg
eworRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBv
biB4bWxEb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJhYmMiLCAiZGVmIikgd2l0aCB0
b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxs
ZWQgd2l0aCAxIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUg
Y29kZV0KIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9N
IEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAi
VHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiB4bWxEb2MuY3Jl
YXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJhYmMiLCAiZGVmIikgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJhcHBlbmRDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQxKSAKLUZBSUwgTm9kZSBp
bnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24geG1sRG9jLmNyZWF0ZVByb2Nl
c3NpbmdJbnN0cnVjdGlvbigiYWJjIiwgImRlZiIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVz
dCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMg
ZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmpl
Y3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVy
YXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJy
b3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiB4
bWxEb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJhYmMiLCAiZGVmIikgd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6
IHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oImFiYyIsICJkZWYiKSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgInJlcGxhY2VDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQyKSAK
LUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24g
eG1sRG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiYWJjIiwgImRlZiIpIHdpdGggdG9v
IGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVk
IHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNv
ZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBF
eGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5
cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBs
YWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiB4bWxEb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9u
KCJhYmMiLCAiZGVmIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJv
ciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24oImFiYyIsICJkZWYiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlbW92ZUNoaWxkIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAoNDMpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZW1v
dmVDaGlsZChOb2RlKSBvbiB4bWxEb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJhYmMi
LCAiZGVmIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3Nl
cnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkg
ewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJy
b3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJU
eXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVt
b3ZlQ2hpbGQoTm9kZSkgb24geG1sRG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiYWJj
IiwgImRlZiIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQ
QVNTIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogeG1sRG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVj
dGlvbigiYWJjIiwgImRlZiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYWRkRXZlbnRMaXN0ZW5l
ciIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDApIAogRkFJTCBFdmVudFRhcmdldCBpbnRlcmZhY2U6
IGNhbGxpbmcgYWRkRXZlbnRMaXN0ZW5lcihET01TdHJpbmcsRXZlbnRMaXN0ZW5lcixib29sZWFu
KSBvbiB4bWxEb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJhYmMiLCAiZGVmIikgd2l0
aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBD
YWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRp
dmUgY29kZV0KQEAgLTE2NzMsMjEgKzE2MzcsMTUgQEAgRkFJTCBOb2RlIGludGVyZmFjZTogY2Fs
bGluZyBpc0RlZmF1bHROYW1lc3BhY2UoRE9NU3RyaW5nKSBvbiBkb2N1bWVudC5jcmVhdGVDb20K
ICAgICBbbmF0aXZlIGNvZGVdCiB9IiBkaWQgbm90IHRocm93CiBQQVNTIE5vZGUgaW50ZXJmYWNl
OiBkb2N1bWVudC5jcmVhdGVDb21tZW50KCJhYmMiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImlu
c2VydEJlZm9yZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQwKSAKLUZBSUwgTm9kZSBpbnRlcmZh
Y2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlQ29t
bWVudCgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBh
c3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24g
KCkgeworRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2Rl
KSBvbiBkb2N1bWVudC5jcmVhdGVDb21tZW50KCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRz
IG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDEgYXJndW1l
bnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAgICAgW25hdGl2ZSBjb2RlXQogfSIgdGhyZXcg
b2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgi
SGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlw
ZUVycm9yIikKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFi
YyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXBwZW5kQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0
eXBlICg0MSkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUp
IG9uIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMg
bXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVu
dHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBv
YmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJI
aWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBl
RXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBv
biBkb2N1bWVudC5jcmVhdGVDb21tZW50KCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11
c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRl
Q29tbWVudCgiYWJjIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZXBsYWNlQ2hpbGQiIHdpdGgg
dGhlIHByb3BlciB0eXBlICg0MikgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxh
Y2VDaGlsZChOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIpIHdpdGgg
dG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2Fs
bGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZl
IGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERP
TSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3Qg
IlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyBy
ZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVDb21tZW50KCJhYmMiKSB3
aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGlu
dGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiYWJjIikgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJyZW1vdmVDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQzKSAKLUZBSUwgTm9kZSBp
bnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlQ29t
bWVudCgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBh
c3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24g
KCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5k
RXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0
ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcg
cmVtb3ZlQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiYWJjIikgd2l0aCB0
b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgRXZlbnRUYXJnZXQg
aW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVDb21tZW50KCJhYmMiKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgImFkZEV2ZW50TGlzdGVuZXIiIHdpdGggdGhlIHByb3BlciB0eXBlICgwKSAKIEZBSUwg
RXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBjYWxsaW5nIGFkZEV2ZW50TGlzdGVuZXIoRE9NU3RyaW5n
LEV2ZW50TGlzdGVuZXIsYm9vbGVhbikgb24gZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiYWJjIikg
d2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dz
OiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtu
YXRpdmUgY29kZV0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtYXBwZW5kQ2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1h
cHBlbmRDaGlsZC1leHBlY3RlZC50eHQKaW5kZXggM2EyODllODMyZTZhMmQ5NDg5MGMwMjRhNTYx
NDk2OGMwMTQ1OTNiZC4uYjEzMGNhZmZkODQ4Mjc2NGY3MGMzNDAzZTRmMDgwMjg5YTJhOTBlMCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9k
b20vbm9kZXMvTm9kZS1hcHBlbmRDaGlsZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1hcHBlbmRDaGls
ZC1leHBlY3RlZC50eHQKQEAgLTEsMTIgKzEsMTIgQEAKIAogCi1GQUlMIFdlYklETCB0ZXN0cyBh
c3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKG51bGwpIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBF
eGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3Ii
ICgiVHlwZUVycm9yIikKK1BBU1MgV2ViSURMIHRlc3RzIAogUEFTUyBBcHBlbmRpbmcgdG8gYSBs
ZWFmIG5vZGUuIAotRkFJTCBBcHBlbmRpbmcgbnVsbCB0byBhIHRleHQgbm9kZSBhc3NlcnRfdGhy
b3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyBub2RlLmFwcGVuZENoaWxkKG51bGwpIH0iIHRo
cmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAz
IiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAo
IlR5cGVFcnJvciIpCitQQVNTIEFwcGVuZGluZyBudWxsIHRvIGEgdGV4dCBub2RlIAogUEFTUyBB
cHBlbmRpbmcgdG8gYSB0ZXh0IG5vZGUgCi1GQUlMIEFwcGVuZGluZyBudWxsIHRvIGEgY29tbWVu
dCBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyBub2RlLmFwcGVuZENoaWxk
KG51bGwpIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9N
IEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAi
VHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIEFwcGVuZGluZyBudWxsIHRvIGEgY29tbWVu
dCAKIFBBU1MgQXBwZW5kaW5nIHRvIGEgY29tbWVudCAKLUZBSUwgQXBwZW5kaW5nIG51bGwgdG8g
YSBkb2N0eXBlIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IG5vZGUuYXBw
ZW5kQ2hpbGQobnVsbCkgfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVy
cm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQg
b2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgQXBwZW5kaW5nIG51bGwgdG8g
YSBkb2N0eXBlIAogUEFTUyBBcHBlbmRpbmcgdG8gYSBkb2N0eXBlIAogUEFTUyBBcHBlbmRpbmcg
YSBkb2N1bWVudCAKIFBBU1MgQWRvcHRpbmcgYW4gb3JwaGFuIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1pbnNl
cnRCZWZvcmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1pbnNlcnRCZWZvcmUtZXhwZWN0ZWQudHh0CmluZGV4
IDU2YmNkMmE4MGJiMzRkMzdhYzA4NGY3NzQxNjRmMDFjZmJlOTRhNzguLmM2NjIyMzNkYzA1NjM4
NTdmMjNiNjA2OTAzNGFjOGY3NWI4Y2VhNmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtaW5zZXJ0QmVmb3JlLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9ub2Rlcy9Ob2RlLWluc2VydEJlZm9yZS1leHBlY3RlZC50eHQKQEAgLTEsMTIgKzEs
MTIgQEAKIAotRkFJTCBDYWxsaW5nIGluc2VydEJlZm9yZSB3aXRoIGEgbm9uLU5vZGUgZmlyc3Qg
YXJndW1lbnQgbXVzdCB0aHJvdyBUeXBlRXJyb3IuIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJm
dW5jdGlvbiAoKSB7IGRvY3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKG51bGwsIG51bGwpIH0iIHRo
cmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RG
b3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKLUZB
SUwgQ2FsbGluZyBpbnNlcnRCZWZvcmUgd2l0aCBhIG5vbi1Ob2RlIGZpcnN0IGFyZ3VtZW50IG9u
IGEgbGVhZiBub2RlIERvY3VtZW50VHlwZSBtdXN0IHRocm93IFR5cGVFcnJvci4gYXNzZXJ0X3Ro
cm93czogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgbm9kZS5pbnNlcnRCZWZvcmUobnVsbCwgbnVs
bCkgfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhj
ZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBl
RXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgQ2FsbGluZyBpbnNlcnRCZWZvcmUgd2l0aCBhIG5v
bi1Ob2RlIGZpcnN0IGFyZ3VtZW50IG11c3QgdGhyb3cgVHlwZUVycm9yLiAKK1BBU1MgQ2FsbGlu
ZyBpbnNlcnRCZWZvcmUgd2l0aCBhIG5vbi1Ob2RlIGZpcnN0IGFyZ3VtZW50IG9uIGEgbGVhZiBu
b2RlIERvY3VtZW50VHlwZSBtdXN0IHRocm93IFR5cGVFcnJvci4gCiBQQVNTIENhbGxpbmcgaW5z
ZXJ0QmVmb3JlIGFuIGEgbGVhZiBub2RlIERvY3VtZW50VHlwZSBtdXN0IHRocm93IEhJRVJBUkNI
WV9SRVFVRVNUX0VSUi4gCi1GQUlMIENhbGxpbmcgaW5zZXJ0QmVmb3JlIHdpdGggYSBub24tTm9k
ZSBmaXJzdCBhcmd1bWVudCBvbiBhIGxlYWYgbm9kZSBUZXh0IG11c3QgdGhyb3cgVHlwZUVycm9y
LiBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyBub2RlLmluc2VydEJlZm9y
ZShudWxsLCBudWxsKSB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJy
b3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBv
YmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBDYWxsaW5nIGluc2VydEJlZm9y
ZSB3aXRoIGEgbm9uLU5vZGUgZmlyc3QgYXJndW1lbnQgb24gYSBsZWFmIG5vZGUgVGV4dCBtdXN0
IHRocm93IFR5cGVFcnJvci4gCiBQQVNTIENhbGxpbmcgaW5zZXJ0QmVmb3JlIGFuIGEgbGVhZiBu
b2RlIFRleHQgbXVzdCB0aHJvdyBISUVSQVJDSFlfUkVRVUVTVF9FUlIuIAotRkFJTCBDYWxsaW5n
IGluc2VydEJlZm9yZSB3aXRoIGEgbm9uLU5vZGUgZmlyc3QgYXJndW1lbnQgb24gYSBsZWFmIG5v
ZGUgQ29tbWVudCBtdXN0IHRocm93IFR5cGVFcnJvci4gYXNzZXJ0X3Rocm93czogZnVuY3Rpb24g
ImZ1bmN0aW9uICgpIHsgbm9kZS5pbnNlcnRCZWZvcmUobnVsbCwgbnVsbCkgfSIgdGhyZXcgb2Jq
ZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGll
cmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVy
cm9yIikKK1BBU1MgQ2FsbGluZyBpbnNlcnRCZWZvcmUgd2l0aCBhIG5vbi1Ob2RlIGZpcnN0IGFy
Z3VtZW50IG9uIGEgbGVhZiBub2RlIENvbW1lbnQgbXVzdCB0aHJvdyBUeXBlRXJyb3IuIAogUEFT
UyBDYWxsaW5nIGluc2VydEJlZm9yZSBhbiBhIGxlYWYgbm9kZSBDb21tZW50IG11c3QgdGhyb3cg
SElFUkFSQ0hZX1JFUVVFU1RfRVJSLiAKLUZBSUwgQ2FsbGluZyBpbnNlcnRCZWZvcmUgd2l0aCBh
IG5vbi1Ob2RlIGZpcnN0IGFyZ3VtZW50IG9uIGEgbGVhZiBub2RlIFByb2Nlc3NpbmdJbnN0cnVj
dGlvbiBtdXN0IHRocm93IFR5cGVFcnJvci4gYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gImZ1bmN0
aW9uICgpIHsgbm9kZS5pbnNlcnRCZWZvcmUobnVsbCwgbnVsbCkgfSIgdGhyZXcgb2JqZWN0ICJF
cnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5
UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikK
K1BBU1MgQ2FsbGluZyBpbnNlcnRCZWZvcmUgd2l0aCBhIG5vbi1Ob2RlIGZpcnN0IGFyZ3VtZW50
IG9uIGEgbGVhZiBub2RlIFByb2Nlc3NpbmdJbnN0cnVjdGlvbiBtdXN0IHRocm93IFR5cGVFcnJv
ci4gCiBQQVNTIENhbGxpbmcgaW5zZXJ0QmVmb3JlIGFuIGEgbGVhZiBub2RlIFByb2Nlc3NpbmdJ
bnN0cnVjdGlvbiBtdXN0IHRocm93IEhJRVJBUkNIWV9SRVFVRVNUX0VSUi4gCiBQQVNTIENhbGxp
bmcgaW5zZXJ0QmVmb3JlIHdpdGggYW4gaW5jbHVzaXZlIGFuY2VzdG9yIG9mIHRoZSBjb250ZXh0
IG9iamVjdCBtdXN0IHRocm93IEhJRVJBUkNIWV9SRVFVRVNUX0VSUi4gCiBQQVNTIENhbGxpbmcg
aW5zZXJ0QmVmb3JlIHdpdGggYSByZWZlcmVuY2UgY2hpbGQgd2hvc2UgcGFyZW50IGlzIG5vdCB0
aGUgY29udGV4dCBub2RlIG11c3QgdGhyb3cgYSBOb3RGb3VuZEVycm9yLiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05v
ZGUtcmVtb3ZlQ2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1yZW1vdmVDaGlsZC1leHBlY3RlZC50eHQK
aW5kZXggMDI5MTBiZjljZDI0MGEwY2RkODNjZjEzNzYwYzQ1NjBkZmQ5NDNhMi4uMTM5N2M0ZWJl
ZjZjOTc4ZTEwM2FiMzFhMzgxNmY5MmRlZGMzZWY1OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1yZW1vdmVDaGls
ZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9kb20vbm9kZXMvTm9kZS1yZW1vdmVDaGlsZC1leHBlY3RlZC50eHQKQEAgLTI3LDUg
KzI3LDUgQEAgUEFTUyBDYWxsaW5nIHJlbW92ZUNoaWxkIG9uIGEgdGV4dCBmcm9tIGEgc3ludGhl
dGljIGRvY3VtZW50IHdpdGggbm8gY2hpbGRyZW4gc2gKIFBBU1MgUGFzc2luZyBhIGRldGFjaGVk
IGNvbW1lbnQgZnJvbSBhIHN5bnRoZXRpYyBkb2N1bWVudCB0byByZW1vdmVDaGlsZCBzaG91bGQg
bm90IGFmZmVjdCBpdC4gCiBQQVNTIFBhc3NpbmcgYSBub24tZGV0YWNoZWQgY29tbWVudCBmcm9t
IGEgc3ludGhldGljIGRvY3VtZW50IHRvIHJlbW92ZUNoaWxkIHNob3VsZCBub3QgYWZmZWN0IGl0
LiAKIFBBU1MgQ2FsbGluZyByZW1vdmVDaGlsZCBvbiBhIGNvbW1lbnQgZnJvbSBhIHN5bnRoZXRp
YyBkb2N1bWVudCB3aXRoIG5vIGNoaWxkcmVuIHNob3VsZCB0aHJvdyBOT1RfRk9VTkRfRVJSLiAK
LUZBSUwgUGFzc2luZyBhIHZhbHVlIHRoYXQgaXMgbm90IGEgTm9kZSByZWZlcmVuY2UgdG8gcmVt
b3ZlQ2hpbGQgc2hvdWxkIHRocm93IFR5cGVFcnJvci4gYXNzZXJ0X3Rocm93czogZnVuY3Rpb24g
ImZ1bmN0aW9uICgpIHsgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChudWxsKSB9IiB0aHJldyBv
YmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRF
cnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIFBh
c3NpbmcgYSB2YWx1ZSB0aGF0IGlzIG5vdCBhIE5vZGUgcmVmZXJlbmNlIHRvIHJlbW92ZUNoaWxk
IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuIAogYgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1yZXBsYWNlQ2hpbGQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9kb20vbm9kZXMvTm9kZS1yZXBsYWNlQ2hpbGQtZXhwZWN0ZWQudHh0CmluZGV4IGU3ZjcwZmEz
NmM1YzFjYmY5MmM3ZTRiN2E0OWZiZjhhZGNiYzRmNmQuLmQxN2M4YjU3MGViMTIxZTk2NzM2YTlj
Njk0ZmIyNWYxODFhYWZjYzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtcmVwbGFjZUNoaWxkLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9u
b2Rlcy9Ob2RlLXJlcGxhY2VDaGlsZC1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw1IEBACiAKLUZB
SUwgUGFzc2luZyBudWxsIHRvIHJlcGxhY2VDaGlsZCBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3Iu
IGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgYS5yZXBsYWNlQ2hp
bGQobnVsbCwgbnVsbCk7Ci0gIH0iIGRpZCBub3QgdGhyb3cKK1BBU1MgUGFzc2luZyBudWxsIHRv
IHJlcGxhY2VDaGlsZCBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3IuIAogRkFJTCBJZiBjaGlsZCdz
IHBhcmVudCBpcyBub3QgdGhlIGNvbnRleHQgbm9kZSwgYSBOb3RGb3VuZEVycm9yIGV4Y2VwdGlv
biBzaG91bGQgYmUgdGhyb3duIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7
CiAgICAgYS5yZXBsYWNlQ2hpbGQoYSwgYyk7CiAgIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhp
ZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiB0aGF0IGlzIG5vdCBhIERPTUV4
Y2VwdGlvbiBOb3RGb3VuZEVycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gMywgZXhw
ZWN0ZWQgOApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vaW50ZXJmYWNlcy1leHBlY3Rl
ZC50eHQKaW5kZXggMmU1OGFlNjM1MTlhNzU1MzdlZGQyZDg5NzQxMGYyMjU2MDBjMzZjNi4uMDQ2
MjIwMzU5YWExMDg4ZTk5NTA2MTBiMWYxNDc0NmUyYmUxZDY3YyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9pbnRlcmZhY2Vz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0CkBAIC0xMjI1LDIxICsxMjI1
LDE1IEBAIEZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaXNEZWZhdWx0TmFtZXNwYWNlKERP
TVN0cmluZykgb24gaWZyYW1lLmNvbnRlbnREb2N1CiAgICAgW25hdGl2ZSBjb2RlXQogfSIgZGlk
IG5vdCB0aHJvdwogUEFTUyBOb2RlIGludGVyZmFjZTogaWZyYW1lLmNvbnRlbnREb2N1bWVudCBt
dXN0IGluaGVyaXQgcHJvcGVydHkgImluc2VydEJlZm9yZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
KDQwKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9k
ZSkgb24gaWZyYW1lLmNvbnRlbnREb2N1bWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3Qg
dGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1
bmN0aW9uICJmdW5jdGlvbiAoKSB7CitGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGluc2Vy
dEJlZm9yZShOb2RlLE5vZGUpIG9uIGlmcmFtZS5jb250ZW50RG9jdW1lbnQgd2l0aCB0b28gZmV3
IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0
aCAxIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0K
LX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIg
KCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9y
IikKK30iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4
Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlw
ZUVycm9yIiAoIlR5cGVFcnJvciIpCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBpZnJhbWUuY29udGVu
dERvY3VtZW50IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXBwZW5kQ2hpbGQiIHdpdGggdGhlIHBy
b3BlciB0eXBlICg0MSkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENoaWxk
KE5vZGUpIG9uIGlmcmFtZS5jb250ZW50RG9jdW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBt
dXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50
cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9i
amVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVy
cm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9k
ZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24gaWZyYW1lLmNvbnRlbnRE
b2N1bWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFT
UyBOb2RlIGludGVyZmFjZTogaWZyYW1lLmNvbnRlbnREb2N1bWVudCBtdXN0IGluaGVyaXQgcHJv
cGVydHkgInJlcGxhY2VDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQyKSAKLUZBSUwgTm9k
ZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24gaWZyYW1lLmNv
bnRlbnREb2N1bWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9y
IGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlv
biAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgZGlkIG5vdCB0aHJvdworUEFTUyBOb2RlIGlu
dGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiBpZnJhbWUuY29udGVu
dERvY3VtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQ
QVNTIE5vZGUgaW50ZXJmYWNlOiBpZnJhbWUuY29udGVudERvY3VtZW50IG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAicmVtb3ZlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MykgCi1GQUlMIE5v
ZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIGlmcmFtZS5jb250ZW50
RG9jdW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3Nl
cnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkg
ewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJy
b3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJU
eXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVt
b3ZlQ2hpbGQoTm9kZSkgb24gaWZyYW1lLmNvbnRlbnREb2N1bWVudCB3aXRoIHRvbyBmZXcgYXJn
dW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBFdmVudFRhcmdldCBpbnRlcmZhY2U6
IGlmcmFtZS5jb250ZW50RG9jdW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhZGRFdmVudExp
c3RlbmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMCkgCiBGQUlMIEV2ZW50VGFyZ2V0IGludGVy
ZmFjZTogY2FsbGluZyBhZGRFdmVudExpc3RlbmVyKERPTVN0cmluZyxFdmVudExpc3RlbmVyLGJv
b2xlYW4pIG9uIGlmcmFtZS5jb250ZW50RG9jdW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBt
dXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50
cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KQEAgLTE1NTEsMjEg
KzE1NDUsMTUgQEAgRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpc0RlZmF1bHROYW1lc3Bh
Y2UoRE9NU3RyaW5nKSBvbiBkb2N1bWVudC5pbXBsZW1lbnQKICAgICBbbmF0aXZlIGNvZGVdCiB9
IiBkaWQgbm90IHRocm93CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5pbXBsZW1lbnRh
dGlvbi5jcmVhdGVEb2N1bWVudChudWxsLCAiIiwgbnVsbCkgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJpbnNlcnRCZWZvcmUiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MCkgCi1GQUlMIE5vZGUgaW50
ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmltcGxl
bWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSB3aXRoIHRvbyBmZXcgYXJn
dW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAg
YXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CitGQUlMIE5vZGUgaW50ZXJmYWNlOiBj
YWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmltcGxlbWVudGF0aW9u
LmNyZWF0ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11
c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDEgYXJndW1lbnRz
IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAgICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2Jq
ZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJy
b3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorfSIgdGhyZXcg
b2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgi
SGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlw
ZUVycm9yIikKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNy
ZWF0ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFwcGVu
ZENoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDEpIAotRkFJTCBOb2RlIGludGVyZmFjZTog
Y2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVh
dGVEb2N1bWVudChudWxsLCAiIiwgbnVsbCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRo
cm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5j
dGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAi
RXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikg
ZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRl
cmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuaW1wbGVtZW50YXRp
b24uY3JlYXRlRG9jdW1lbnQobnVsbCwgIiIsIG51bGwpIHdpdGggdG9vIGZldyBhcmd1bWVudHMg
bXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5pbXBs
ZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudChudWxsLCAiIiwgbnVsbCkgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJyZXBsYWNlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MikgCi1GQUlMIE5v
ZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIGRvY3VtZW50
LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSB3aXRoIHRvbyBm
ZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3
aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2Rl
XQotfSIgZGlkIG5vdCB0aHJvdworUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNl
Q2hpbGQoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVu
dChudWxsLCAiIiwgbnVsbCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVF
cnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0
ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlbW92ZUNo
aWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDMpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2Fs
bGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVE
b2N1bWVudChudWxsLCAiIiwgbnVsbCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93
IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlv
biAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJy
b3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhw
ZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZh
Y2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24u
Y3JlYXRlRG9jdW1lbnQobnVsbCwgIiIsIG51bGwpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVz
dCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogZG9jdW1lbnQu
aW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwgIiIsIG51bGwpIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAiYWRkRXZlbnRMaXN0ZW5lciIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDApIAog
RkFJTCBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGNhbGxpbmcgYWRkRXZlbnRMaXN0ZW5lcihET01T
dHJpbmcsRXZlbnRMaXN0ZW5lcixib29sZWFuKSBvbiBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5j
cmVhdGVEb2N1bWVudChudWxsLCAiIiwgbnVsbCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0
IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBm
dW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KQEAgLTIxNzEsMjEgKzIx
NTksMTUgQEAgRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpc0RlZmF1bHROYW1lc3BhY2Uo
RE9NU3RyaW5nKSBvbiBkb2N1bWVudC5jcmVhdGVFbGUKICAgICBbbmF0aXZlIGNvZGVdCiB9IiBk
aWQgbm90IHRocm93CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJub3NjcmlwdCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5zZXJ0QmVmb3JlIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAoNDApIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRC
ZWZvcmUoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJub3NjcmlwdCIpIHdp
dGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czog
Q2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKK0ZBSUwgTm9k
ZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgibm9zY3JpcHQiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhy
b3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDEgYXJndW1lbnRzIGZ1bmN0
aW9uICJmdW5jdGlvbiAoKSB7CiAgICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJF
cnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBl
eHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorfSIgZGlkIG5vdCB0aHJv
dwogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibm9zY3JpcHQi
KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFwcGVuZENoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAoNDEpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBv
biBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJub3NjcmlwdCIpIHdpdGggdG9vIGZldyBhcmd1bWVu
dHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1
bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJl
dyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91
bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNT
IE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoIm5vc2NyaXB0Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93
IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
Im5vc2NyaXB0IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZXBsYWNlQ2hpbGQiIHdpdGggdGhl
IHByb3BlciB0eXBlICg0MikgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VD
aGlsZChOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm5vc2NyaXB0Iikgd2l0
aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBD
YWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRp
dmUgY29kZV0KLX0iIGRpZCBub3QgdGhyb3cKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcg
cmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibm9zY3Jp
cHQiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBO
b2RlIGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibm9zY3JpcHQiKSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgInJlbW92ZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDMpIAot
RkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJub3NjcmlwdCIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0
aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVu
Y3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3Qg
IkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIp
IGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50
ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoIm5vc2NyaXB0Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJv
ciAKIFBBU1MgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJu
b3NjcmlwdCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYWRkRXZlbnRMaXN0ZW5lciIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgKDApIAogRkFJTCBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGNhbGxpbmcg
YWRkRXZlbnRMaXN0ZW5lcihET01TdHJpbmcsRXZlbnRMaXN0ZW5lcixib29sZWFuKSBvbiBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJub3NjcmlwdCIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVz
dCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMg
ZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9qcy9kb20vZG90LW5vZGUtYmFzZS1leGNlcHRpb24tZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvanMvZG9tL2RvdC1ub2RlLWJhc2UtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dApp
bmRleCBmNDQwNmNiZmVkMzYxZDY3YjljNTZlNzViMTllMTgzMjhhYjNiY2QyLi4zNmQ1M2I0ZWI4
MTVhMWFkM2I4MGNkYzc3ZjEwMDg5YzMyNzAzMDBmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9q
cy9kb20vZG90LW5vZGUtYmFzZS1leGNlcHRpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2pzL2RvbS9kb3Qtbm9kZS1iYXNlLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKQEAgLTMsNyAr
Myw3IEBAIFRoaXMgdGVzdCBjaGVja3MgdGhhdCBhIGNvcnJlY3QgZXhjZXB0aW9uIGlzIHJhaXNl
ZCB3aGVuIGNhbGN1bGF0aW5nIHRoZSBiYXNlIHZhCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CiAKIAotUEFTUyAoZG9jdW1lbnQuYXBwZW5kQ2hpbGQoKSkuZm9vYmFyKCkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDguCitQQVNTIChkb2N1bWVu
dC5hcHBlbmRDaGlsZCgpKS5mb29iYXIoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBl
IGVycm9yLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRF
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2RvdC1ub2RlLWJh
c2UtZXhjZXB0aW9uLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9kb3Qtbm9k
ZS1iYXNlLWV4Y2VwdGlvbi5qcwppbmRleCA5ZjM2MmE3Zjc4ODE3YmNiOGZjN2M4N2VkMjZjNjNj
ZjJhNzhhMTk1Li43MWQ0NzE5OTk3NTY1ODQzMjliOGRkY2Q3NDdjNzc3MWU0NDA3NTFiIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2RvdC1ub2RlLWJhc2UtZXhj
ZXB0aW9uLmpzCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvZG90LW5vZGUt
YmFzZS1leGNlcHRpb24uanMKQEAgLTMsNCArMyw0IEBAIGRlc2NyaXB0aW9uKAogKTsKIAogLy8g
U2hvdWxkIGJlIGEgRE9NIGV4Y2VwdGlvbiwgbm90IGp1c3Qgc29tZSAiVHlwZUVycm9yOiBOdWxs
IHZhbHVlIi4KLXNob3VsZFRocm93KCcoZG9jdW1lbnQuYXBwZW5kQ2hpbGQoKSkuZm9vYmFyKCkn
LCAnIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiJyk7CitzaG91bGRUaHJv
dygnKGRvY3VtZW50LmFwcGVuZENoaWxkKCkpLmZvb2JhcigpJywgJyJUeXBlRXJyb3I6IFR5cGUg
ZXJyb3IiJyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260908</attachid>
            <date>2015-09-09 21:49:15 -0700</date>
            <delta_ts>2015-09-10 09:24:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148971-20150909214907.patch</filename>
            <type>text/plain</type>
            <size>252990</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTlmOWI0MDdkNDVjOWIz
Y2Q0MzU5Y2Y0OTYzNTc3ZjVkNzc1OTFmMS4uZGRjOWQ5ODNkYjFkZTg4MjM4MzdiZGI0N2M5ZWI1
NTA1ZWQwNzUyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE1LTA5LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTm9kZS5hcHBlbmRDaGlsZChu
dWxsKSAvIHJlcGxhY2VDaGlsZChudWxsLCBudWxsKSAvIHJlbW92ZUNoaWxkKG51bGwpIC8gaW5z
ZXJ0QmVmb3JlKG51bGwsIHJlZikgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg5NzEKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzIyNTYwODgzPgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjI1NTkyMjU+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm9kZS5h
cHBlbmRDaGlsZChudWxsKSAvIHJlcGxhY2VDaGlsZChudWxsLCBudWxsKSAvIHJlbW92ZUNoaWxk
KG51bGwpCisgICAgICAgIGFuZCBpbnNlcnRCZWZvcmUobnVsbCwgcmVmKSBzaG91bGQgdGhyb3cg
YSBUeXBlRXJyb3IgaW5zdGVhZCBvZiBhCisgICAgICAgIE5vdEZvdW5kRXJyb3IsIGFzIHBlciB0
aGUgc3BlY2lmaWNhdGlvbjoKKyAgICAgICAgaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNu
b2RlCisKKyAgICAgICAgVGhlIHBhcmFtZXRlcnMgYXJlIG5vdCBudWxsYWJsZSBzbyB0aGUgV2Vi
IElETCBzcGVjaWZpY2F0aW9uIHNheXMKKyAgICAgICAgd2Ugc2hvdWxkIHRocm93IGEgVHlwZUVy
cm9yIGluIHRoaXMgY2FzZS4KKworICAgICAgICBUaGlzIHBhdGNoIG1vdmVzIHRoZSBudWxsLWNo
ZWNraW5nIGZyb20gQ29udGFpbmVyTm9kZSB0byB0aGUgbWV0aG9kcworICAgICAgICBvbiBOb2Rl
LiBUaGUgbnVsbC1jaGVja2luZyBpcyBzdXBwb3NlZCB0byBiZSBkb25lIGJ5IHRoZSBiaW5kaW5n
cyBjb2RlCisgICAgICAgIGJ1dCBvdXIgZ2VuZXJhdG9yIGN1cnJlbnRseSBkb2VzIG5vdCBzdXBw
b3J0IHRoaXMgc28gd2UgZG8gdGhlIG51bGwKKyAgICAgICAgY2hlY2tpbmcgYXMgY2xvc2UgdG8g
dGhlIGJpbmRpbmdzIGFzIHBvc3NpYmxlLiBUaGUgYmluZGluZ3MgY29kZSBpcworICAgICAgICBj
YWxsaW5nIHRoZSBtZXRob2RzIG9uIE5vZGUuIFRoaXMgYWxzbyBtYWtlcyBzdXJlIHdlIHRocm93
IGEgVHlwZUVycm9yCisgICAgICAgIGZvciBudWxsLWFyZ3VtZW50IHdoZW4gdGhlIE5vZGUgaXMg
bm90IGEgQ29udGFpbmVyTm9kZS4gRm9yIGUuZy4KKyAgICAgICAgVGV4dC5hcHBlbmRDaGlsZChu
dWxsKSBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3IgdG9vLgorCisgICAgICAgIFRoZSBtZXRob2Rz
IG9uIENvbnRhaW5lck5vZGUgbm93IHRha2UgcmVmZXJlbmNlcyBpbnN0ZWFhZCBvZiBwb2ludGVy
CisgICAgICAgIHBhcmFtZXRlcnMgbm93IHRoYXQgdGhlIG51bGwtY2hlY2tpbmcgaXMgZG9uZSBh
dCB0aGUgY2FsbCBzaXRlIGluCisgICAgICAgIE5vZGUuIFRoaXMgbGVhZCB0byBhIGxvdCBvZiBj
b2RlIHVwZGF0ZSBhcyB0aG9zZSBtZXRob2RzIGFyZSB1c2VkCisgICAgICAgIGEgbG90IHRocm91
Z2hvdXQgdGhlIGNvZGUgYmFzZS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGFscmVhZHkgY292
ZXJlZCBieSBwcmUtZXhpc3RpbmcgbGF5b3V0IHRlc3RzLgorCiAyMDE1LTA5LTA5ICBHeXV5b3Vu
ZyBLaW0gIDxneXV5b3VuZy5raW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgYWxsIHVz
ZXMgb2YgUGFzc1JlZlB0ciBpbiBXZWJDb3JlL3N2ZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDYwYWRm
NzMyYWM4N2FiZTA0MTIyNzEzY2YzNTkxNzA4MzFkYzllMTUuLmY4Mjc5NGNhNTA2Y2M0MjgzNDUw
NmNiMDU2YmNkZjA2YTZjYzYyZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAor
MjAxNS0wOS0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIE5v
ZGUuYXBwZW5kQ2hpbGQobnVsbCkgLyByZXBsYWNlQ2hpbGQobnVsbCwgbnVsbCkgLyByZW1vdmVD
aGlsZChudWxsKSAvIGluc2VydEJlZm9yZShudWxsLCByZWYpIHNob3VsZCB0aHJvdyBhIFR5cGVF
cnJvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4
OTcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjU2MDg4Mz4KKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzIyNTU5MjI1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIENvbnRhaW5lck5vZGU6OmFwcGVuZENoaWxkKCkgbm93IHRha2VzIGEgUmVmPE5v
ZGU+JiYgcGFyYW1ldGVyIHNvIHdlCisgICAgICAgIG5lZWQgdG8gdXBkYXRlIHRoZSBjYWxsIHNp
dGUuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lLm1tOgorICAgICAgICAoLVtXZWJGcmFt
ZSBfZG9jdW1lbnRGcmFnbWVudFdpdGhOb2Rlc0FzUGFyYWdyYXBoczpdKToKKwogMjAxNS0wOS0w
NyAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW01hY10gRGVidWdS
ZWxlYXNlIGJ1aWxkcyBzaG91bGQgbGluayBhZ2FpbnN0IGxpYldlYktpdFN5c3RlbUludGVyZmFj
ZUVsQ2FwaXRhbi5hIG9uIDEwLjExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggN2MwMDUxNzY4Y2NkM2VmYTA1ZjY0
NjEwZGViMjg0ZmI0NGY5MjQ3Zi4uMGJkYmM2YjkzNGQ3YzZkMTIyZTBkMTU4MDRkYTRlYjJlZGFi
M2FlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE1LTA5LTA4ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTm9kZS5hcHBlbmRDaGlsZChudWxsKSAv
IHJlcGxhY2VDaGlsZChudWxsLCBudWxsKSAvIHJlbW92ZUNoaWxkKG51bGwpIC8gaW5zZXJ0QmVm
b3JlKG51bGwsIHJlZikgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg5NzEKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzIyNTYwODgzPgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjI1NTkyMjU+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29udGFpbmVyTm9k
ZTo6YXBwZW5kQ2hpbGQoKSBub3cgdGFrZXMgYSBSZWY8Tm9kZT4mJiBwYXJhbWV0ZXIgc28gd2UK
KyAgICAgICAgbmVlZCB0byB1cGRhdGUgdGhlIGNhbGwgc2l0ZXMuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1
Z2luOjpQREZQbHVnaW4pOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1
Z2luQW5ub3RhdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luQW5ub3RhdGlvbjo6
YXR0YWNoKToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luQW5ub3RhdGlvbjo6flBERlBsdWdp
bkFubm90YXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2lu
Q2hvaWNlQW5ub3RhdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luQ2hvaWNlQW5u
b3RhdGlvbjo6Y3JlYXRlQW5ub3RhdGlvbkVsZW1lbnQpOgorCiAyMDE1LTA5LTA5ICBKb3NlcGgg
UGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjog
UmVtb3ZlIGRlYWQgV2ViSW5zcGVjdG9yUHJveHkgcmVsYXRlZCBjb2RlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1l
bnQuY3BwCmluZGV4IDhmOTZjOWYwMjhjNzI4ZmRhMDNiYjUwYTdlZTk2YmFmYzNkYTkwNWIuLmI0
NGNmZDIwODU5ZTc0ZTEzMTdhOTM0YTE1YzU3NjY5OGI3ZTE3YjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1l
bnQuY3BwCkBAIC04MSw5ICs4MSw5IEBAIGJvb2wgWW91VHViZVBsdWdpblJlcGxhY2VtZW50Ojpp
bnN0YWxsUmVwbGFjZW1lbnQoU2hhZG93Um9vdCogcm9vdCkKIHsKICAgICBtX2VtYmVkU2hhZG93
RWxlbWVudCA9IFlvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQ6OmNyZWF0ZShtX3BhcmVudEVsZW1l
bnQtPmRvY3VtZW50KCkpOwogCi0gICAgcm9vdC0+YXBwZW5kQ2hpbGQobV9lbWJlZFNoYWRvd0Vs
ZW1lbnQuZ2V0KCkpOworICAgIHJvb3QtPmFwcGVuZENoaWxkKCptX2VtYmVkU2hhZG93RWxlbWVu
dCk7CiAKLSAgICBSZWZQdHI8SFRNTElGcmFtZUVsZW1lbnQ+IGlmcmFtZUVsZW1lbnQgPSBIVE1M
SUZyYW1lRWxlbWVudDo6Y3JlYXRlKEhUTUxOYW1lczo6aWZyYW1lVGFnLCBtX3BhcmVudEVsZW1l
bnQtPmRvY3VtZW50KCkpOworICAgIFJlZjxIVE1MSUZyYW1lRWxlbWVudD4gaWZyYW1lRWxlbWVu
dCA9IEhUTUxJRnJhbWVFbGVtZW50OjpjcmVhdGUoSFRNTE5hbWVzOjppZnJhbWVUYWcsIG1fcGFy
ZW50RWxlbWVudC0+ZG9jdW1lbnQoKSk7CiAgICAgaWYgKG1fYXR0cmlidXRlcy5jb250YWlucygi
d2lkdGgiKSkKICAgICAgICAgaWZyYW1lRWxlbWVudC0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6
d2lkdGhBdHRyLCBBdG9taWNTdHJpbmcoIjEwMCUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CiAgICAgCkBAIC05OCw3ICs5OCw3IEBAIGJvb2wgWW91VHViZVBsdWdpblJl
cGxhY2VtZW50OjppbnN0YWxsUmVwbGFjZW1lbnQoU2hhZG93Um9vdCogcm9vdCkKICAgICAKICAg
ICAvLyBEaXNhYmxlIGZyYW1lIGZsYXR0ZW5pbmcgZm9yIHRoaXMgaWZyYW1lLgogICAgIGlmcmFt
ZUVsZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OnNjcm9sbGluZ0F0dHIsIEF0b21pY1N0
cmluZygibm8iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgbV9l
bWJlZFNoYWRvd0VsZW1lbnQtPmFwcGVuZENoaWxkKGlmcmFtZUVsZW1lbnQpOworICAgIG1fZW1i
ZWRTaGFkb3dFbGVtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoaWZyYW1lRWxlbWVudCkpOwog
CiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTUhUTUwubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUwu
bW0KaW5kZXggMGRlMjJjZTNjZGFjNGY3ODhhN2ZkYTdjZjA0NTU3MDZhMDkwNWJmYy4uMDI3NTk1
ZTFlOTFiMmYzYWE2MjhlMjkzNjE1YmE1MWQyZmYwNTlkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NSFRNTC5tbQpAQCAtMTUyLDcgKzE1Miw3IEBAIC0gKERPTURvY3VtZW50RnJh
Z21lbnQgKiljcmVhdGVEb2N1bWVudEZyYWdtZW50V2l0aE1hcmt1cFN0cmluZzooTlNTdHJpbmcg
KiltYXJrCiAtIChET01Eb2N1bWVudEZyYWdtZW50ICopY3JlYXRlRG9jdW1lbnRGcmFnbWVudFdp
dGhUZXh0OihOU1N0cmluZyAqKXRleHQKIHsKICAgICAvLyBGSVhNRTogU2luY2UgdGhpcyBpcyBu
b3QgYSBjb250ZXh0dWFsIGZyYWdtZW50LCBpdCB3b24ndCBoYW5kbGUgd2hpdGVzcGFjZSBwcm9w
ZXJseS4KLSAgICByZXR1cm4ga2l0KGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoY29yZShzZWxmKS0+
Y3JlYXRlUmFuZ2UoKSwgdGV4dCkuZ2V0KCkpOworICAgIHJldHVybiBraXQoY3JlYXRlRnJhZ21l
bnRGcm9tVGV4dChjb3JlKHNlbGYpLT5jcmVhdGVSYW5nZSgpLCB0ZXh0KS5wdHIoKSk7CiB9CiAK
IEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9BdHRyLmNwcAppbmRleCAxODU3MGYxZDg3NDMxYTFmM2E0NGRhMDNlNThhMmVj
NWZmNzFhNzhjLi5hYzdiNjZmOTk3MDVkODk5ZWVjZTNjMjg5NGY4OWUxZjgwOWQxNWY4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0F0dHIuY3BwCkBAIC0xMzgsMTEgKzEzOCwxMSBAQCB2b2lkIEF0dHI6OnNldE5vZGVWYWx1
ZShjb25zdCBTdHJpbmcmIHYsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIHNldFZhbHVlKHYsIGVj
KTsKIH0KIAotUmVmUHRyPE5vZGU+IEF0dHI6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0
YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikKK1JlZjxOb2RlPiBBdHRyOjpjbG9uZU5v
ZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24pCiB7
Ci0gICAgUmVmUHRyPEF0dHI+IGNsb25lID0gYWRvcHRSZWYobmV3IEF0dHIodGFyZ2V0RG9jdW1l
bnQsIHF1YWxpZmllZE5hbWUoKSwgdmFsdWUoKSkpOwotICAgIGNsb25lQ2hpbGROb2RlcyhjbG9u
ZS5nZXQoKSk7Ci0gICAgcmV0dXJuIGNsb25lLnJlbGVhc2UoKTsKKyAgICBSZWY8QXR0cj4gY2xv
bmUgPSBhZG9wdFJlZigqbmV3IEF0dHIodGFyZ2V0RG9jdW1lbnQsIHF1YWxpZmllZE5hbWUoKSwg
dmFsdWUoKSkpOworICAgIGNsb25lQ2hpbGROb2RlcyhjbG9uZSk7CisgICAgcmV0dXJuIFdURjo6
bW92ZShjbG9uZSk7CiB9CiAKIC8vIERPTSBTZWN0aW9uIDEuMS4xCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQXR0ci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuaAppbmRleCBj
N2E5NGY5OGYwYmZiNTdlYjBjM2FiNTE3OTg4YTQ0ODBiMzQ5MDEwLi4xMjRjNmQ3YTJhYTI4Njgz
MGZjYmEyOTYyODg4OGI3MjAyMjk5Mjg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
QXR0ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmgKQEAgLTgwLDcgKzgwLDcgQEAg
cHJpdmF0ZToKIAogICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIHZhbHVlKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0Tm9kZVZhbHVlKGNvbnN0
IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlZlB0cjxO
b2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50Jiwg
Q2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNBdHRyaWJ1
dGVOb2RlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9v
bCBjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9DREFUQVNlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0NEQVRBU2VjdGlvbi5jcHAKaW5kZXggYzU5YmYxZTk1OGZkYTQ1MGFlOTJkZjIyYjc0MDlmZmI5
NjhhMGJlYi4uYWZkNzMyMjcwZjEyYzZkOGRjZmZiOGZmODI3YTEzOWNjMzFhMzFlNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NEQVRBU2VjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0NEQVRBU2VjdGlvbi5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgTm9kZTo6Tm9kZVR5
cGUgQ0RBVEFTZWN0aW9uOjpub2RlVHlwZSgpIGNvbnN0CiAgICAgcmV0dXJuIENEQVRBX1NFQ1RJ
T05fTk9ERTsKIH0KIAotUmVmUHRyPE5vZGU+IENEQVRBU2VjdGlvbjo6Y2xvbmVOb2RlSW50ZXJu
YWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uKQorUmVmPE5vZGU+
IENEQVRBU2VjdGlvbjo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50
LCBDbG9uaW5nT3BlcmF0aW9uKQogewogICAgIHJldHVybiBjcmVhdGUodGFyZ2V0RG9jdW1lbnQs
IGRhdGEoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ0RBVEFTZWN0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ0RBVEFTZWN0aW9uLmgKaW5kZXggYmY1YTYxYzYyNjg1
YjIzNzA1ZDY0YjRjZTM5NDZhNjM3ODQ5MjNhNy4uZDZiOTkzN2RmYzc1YTU4ZTk2ZWFiNTJkZjI2
YWQ5YjRiN2RlZjI2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NEQVRBU2VjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DREFUQVNlY3Rpb24uaApAQCAtMzYsNyArMzYs
NyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBTdHJpbmcgbm9kZU5hbWUoKSBjb25zdCBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIE5vZGVUeXBlIG5vZGVUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0g
ICAgdmlydHVhbCBSZWZQdHI8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9u
aW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxOb2RlPiBjbG9uZU5vZGVJ
bnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgYm9vbCBjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlKSBjb25zdCBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIFJlZjxUZXh0PiB2aXJ0dWFsQ3JlYXRlKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21tZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Db21tZW50LmNwcAppbmRleCA0Yzc0YWFmNjNhZDkwNTNjNmFiZTU5NTU2MjMx
ODVkMjdkOTg5ZDZiLi40MTI1YTZlYWUxYWRmOWE4Zjg2NmZlYjU0MjlmNGYzZDQyMGI3MjRiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0NvbW1lbnQuY3BwCkBAIC00Niw3ICs0Niw3IEBAIE5vZGU6Ok5vZGVUeXBlIENv
bW1lbnQ6Om5vZGVUeXBlKCkgY29uc3QKICAgICByZXR1cm4gQ09NTUVOVF9OT0RFOwogfQogCi1S
ZWZQdHI8Tm9kZT4gQ29tbWVudDo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERv
Y3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uKQorUmVmPE5vZGU+IENvbW1lbnQ6OmNsb25lTm9kZUlu
dGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikKIHsKICAg
ICByZXR1cm4gY3JlYXRlKHRhcmdldERvY3VtZW50LCBkYXRhKCkpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0NvbW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21tZW50
LmgKaW5kZXggZmNhYzYwYTMzZTVlMzBhMWU1OWMxZGM5ZWYzYjYzOTRhZGU3Yjc1OS4uMTU2NjMy
MzMyYTIwNjhmM2E5Yjg1MjZjYmNjNzQ2NTQ4NjE1OTljMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0NvbW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tbWVudC5oCkBA
IC0zNiw3ICszNiw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFN0cmluZyBub2RlTmFtZSgp
IGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgTm9kZVR5cGUgbm9kZVR5cGUoKSBjb25zdCBv
dmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1
bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPE5vZGU+
IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCBib29sIGNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUpIGNvbnN0IG92ZXJy
aWRlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCmluZGV4IGYwNjMxYjZi
ZGQ0ZGE3ZGEyZGE0YmQ0ZmE5OTRjMTljZjk5MGMzZDUuLjYzMTQxNzUzNGZiNmVjYTBkYzY2N2Qy
OTE5MTYyMjk3YjY4MzViYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWlu
ZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKQEAg
LTc2LDcgKzc2LDcgQEAgc3RhdGljIHZvaWQgY29sbGVjdENoaWxkcmVuQW5kUmVtb3ZlRnJvbU9s
ZFBhcmVudChOb2RlJiBub2RlLCBOb2RlVmVjdG9yJiBub2RlcywKICAgICBpZiAoIWlzPERvY3Vt
ZW50RnJhZ21lbnQ+KG5vZGUpKSB7CiAgICAgICAgIG5vZGVzLmFwcGVuZChub2RlKTsKICAgICAg
ICAgaWYgKENvbnRhaW5lck5vZGUqIG9sZFBhcmVudCA9IG5vZGUucGFyZW50Tm9kZSgpKQotICAg
ICAgICAgICAgb2xkUGFyZW50LT5yZW1vdmVDaGlsZCgmbm9kZSwgZWMpOworICAgICAgICAgICAg
b2xkUGFyZW50LT5yZW1vdmVDaGlsZChub2RlLCBlYyk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKQEAgLTE0NiwxMyArMTQ2LDEzIEBAIENvbnRhaW5lck5vZGU6On5Db250YWluZXJOb2RlKCkK
ICAgICByZW1vdmVEZXRhY2hlZENoaWxkcmVuKCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBp
c0NoaWxkVHlwZUFsbG93ZWQoQ29udGFpbmVyTm9kZSogbmV3UGFyZW50LCBOb2RlKiBjaGlsZCkK
K3N0YXRpYyBpbmxpbmUgYm9vbCBpc0NoaWxkVHlwZUFsbG93ZWQoQ29udGFpbmVyTm9kZSYgbmV3
UGFyZW50LCBOb2RlJiBjaGlsZCkKIHsKLSAgICBpZiAoIWNoaWxkLT5pc0RvY3VtZW50RnJhZ21l
bnQoKSkKLSAgICAgICAgcmV0dXJuIG5ld1BhcmVudC0+Y2hpbGRUeXBlQWxsb3dlZChjaGlsZC0+
bm9kZVR5cGUoKSk7CisgICAgaWYgKCFjaGlsZC5pc0RvY3VtZW50RnJhZ21lbnQoKSkKKyAgICAg
ICAgcmV0dXJuIG5ld1BhcmVudC5jaGlsZFR5cGVBbGxvd2VkKGNoaWxkLm5vZGVUeXBlKCkpOwog
Ci0gICAgZm9yIChOb2RlKiBub2RlID0gY2hpbGQtPmZpcnN0Q2hpbGQoKTsgbm9kZTsgbm9kZSA9
IG5vZGUtPm5leHRTaWJsaW5nKCkpIHsKLSAgICAgICAgaWYgKCFuZXdQYXJlbnQtPmNoaWxkVHlw
ZUFsbG93ZWQobm9kZS0+bm9kZVR5cGUoKSkpCisgICAgZm9yIChOb2RlKiBub2RlID0gY2hpbGQu
Zmlyc3RDaGlsZCgpOyBub2RlOyBub2RlID0gbm9kZS0+bmV4dFNpYmxpbmcoKSkgeworICAgICAg
ICBpZiAoIW5ld1BhcmVudC5jaGlsZFR5cGVBbGxvd2VkKG5vZGUtPm5vZGVUeXBlKCkpKQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE2OSwy
MyArMTY5LDE5IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0luVGVtcGxhdGVDb250ZW50KGNvbnN0
IE5vZGUqIG5vZGUpCiAjZW5kaWYKIH0KIAotc3RhdGljIGlubGluZSBib29sIGNvbnRhaW5zQ29u
c2lkZXJpbmdIb3N0RWxlbWVudHMoY29uc3QgTm9kZSogbmV3Q2hpbGQsIGNvbnN0IE5vZGUqIG5l
d1BhcmVudCkKK3N0YXRpYyBpbmxpbmUgYm9vbCBjb250YWluc0NvbnNpZGVyaW5nSG9zdEVsZW1l
bnRzKGNvbnN0IE5vZGUmIG5ld0NoaWxkLCBjb25zdCBOb2RlJiBuZXdQYXJlbnQpCiB7Ci0gICAg
cmV0dXJuIChuZXdQYXJlbnQtPmlzSW5TaGFkb3dUcmVlKCkgfHwgaXNJblRlbXBsYXRlQ29udGVu
dChuZXdQYXJlbnQpKQotICAgICAgICA/IG5ld0NoaWxkLT5jb250YWluc0luY2x1ZGluZ0hvc3RF
bGVtZW50cyhuZXdQYXJlbnQpCi0gICAgICAgIDogbmV3Q2hpbGQtPmNvbnRhaW5zKG5ld1BhcmVu
dCk7CisgICAgcmV0dXJuIChuZXdQYXJlbnQuaXNJblNoYWRvd1RyZWUoKSB8fCBpc0luVGVtcGxh
dGVDb250ZW50KCZuZXdQYXJlbnQpKQorICAgICAgICA/IG5ld0NoaWxkLmNvbnRhaW5zSW5jbHVk
aW5nSG9zdEVsZW1lbnRzKCZuZXdQYXJlbnQpCisgICAgICAgIDogbmV3Q2hpbGQuY29udGFpbnMo
Jm5ld1BhcmVudCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgRXhjZXB0aW9uQ29kZSBjaGVja0FjY2Vw
dENoaWxkKENvbnRhaW5lck5vZGUqIG5ld1BhcmVudCwgTm9kZSogbmV3Q2hpbGQsIE5vZGUqIG9s
ZENoaWxkKQorc3RhdGljIGlubGluZSBFeGNlcHRpb25Db2RlIGNoZWNrQWNjZXB0Q2hpbGQoQ29u
dGFpbmVyTm9kZSYgbmV3UGFyZW50LCBOb2RlJiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQpCiB7
Ci0gICAgLy8gTm90IG1lbnRpb25lZCBpbiBzcGVjOiB0aHJvdyBOT1RfRk9VTkRfRVJSIGlmIG5l
d0NoaWxkIGlzIG51bGwKLSAgICBpZiAoIW5ld0NoaWxkKQotICAgICAgICByZXR1cm4gTk9UX0ZP
VU5EX0VSUjsKLQogICAgIC8vIFVzZSBjb21tb24gY2FzZSBmYXN0IHBhdGggaWYgcG9zc2libGUu
Ci0gICAgaWYgKChuZXdDaGlsZC0+aXNFbGVtZW50Tm9kZSgpIHx8IG5ld0NoaWxkLT5pc1RleHRO
b2RlKCkpICYmIG5ld1BhcmVudC0+aXNFbGVtZW50Tm9kZSgpKSB7Ci0gICAgICAgIEFTU0VSVCgh
bmV3UGFyZW50LT5pc1JlYWRPbmx5Tm9kZSgpKTsKLSAgICAgICAgQVNTRVJUKCFuZXdQYXJlbnQt
PmlzRG9jdW1lbnRUeXBlTm9kZSgpKTsKKyAgICBpZiAoKG5ld0NoaWxkLmlzRWxlbWVudE5vZGUo
KSB8fCBuZXdDaGlsZC5pc1RleHROb2RlKCkpICYmIG5ld1BhcmVudC5pc0VsZW1lbnROb2RlKCkp
IHsKKyAgICAgICAgQVNTRVJUKCFuZXdQYXJlbnQuaXNSZWFkT25seU5vZGUoKSk7CisgICAgICAg
IEFTU0VSVCghbmV3UGFyZW50LmlzRG9jdW1lbnRUeXBlTm9kZSgpKTsKICAgICAgICAgQVNTRVJU
KGlzQ2hpbGRUeXBlQWxsb3dlZChuZXdQYXJlbnQsIG5ld0NoaWxkKSk7CiAgICAgICAgIGlmIChj
b250YWluc0NvbnNpZGVyaW5nSG9zdEVsZW1lbnRzKG5ld0NoaWxkLCBuZXdQYXJlbnQpKQogICAg
ICAgICAgICAgcmV0dXJuIEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKQEAgLTE5MywxNyArMTg5LDE3
IEBAIHN0YXRpYyBpbmxpbmUgRXhjZXB0aW9uQ29kZSBjaGVja0FjY2VwdENoaWxkKENvbnRhaW5l
ck5vZGUqIG5ld1BhcmVudCwgTm9kZSogbmV3CiAgICAgfQogCiAgICAgLy8gVGhpcyBzaG91bGQg
bmV2ZXIgaGFwcGVuLCBidXQgYWxzbyBwcm90ZWN0IHJlbGVhc2UgYnVpbGRzIGZyb20gdHJlZSBj
b3JydXB0aW9uLgotICAgIEFTU0VSVCghbmV3Q2hpbGQtPmlzUHNldWRvRWxlbWVudCgpKTsKLSAg
ICBpZiAobmV3Q2hpbGQtPmlzUHNldWRvRWxlbWVudCgpKQorICAgIEFTU0VSVCghbmV3Q2hpbGQu
aXNQc2V1ZG9FbGVtZW50KCkpOworICAgIGlmIChuZXdDaGlsZC5pc1BzZXVkb0VsZW1lbnQoKSkK
ICAgICAgICAgcmV0dXJuIEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKIAotICAgIGlmIChuZXdQYXJl
bnQtPmlzUmVhZE9ubHlOb2RlKCkpCisgICAgaWYgKG5ld1BhcmVudC5pc1JlYWRPbmx5Tm9kZSgp
KQogICAgICAgICByZXR1cm4gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOwogICAgIGlmIChj
b250YWluc0NvbnNpZGVyaW5nSG9zdEVsZW1lbnRzKG5ld0NoaWxkLCBuZXdQYXJlbnQpKQogICAg
ICAgICByZXR1cm4gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwogCi0gICAgaWYgKG9sZENoaWxkICYm
IGlzPERvY3VtZW50PigqbmV3UGFyZW50KSkgewotICAgICAgICBpZiAoIWRvd25jYXN0PERvY3Vt
ZW50PigqbmV3UGFyZW50KS5jYW5SZXBsYWNlQ2hpbGQobmV3Q2hpbGQsIG9sZENoaWxkKSkKKyAg
ICBpZiAob2xkQ2hpbGQgJiYgaXM8RG9jdW1lbnQ+KG5ld1BhcmVudCkpIHsKKyAgICAgICAgaWYg
KCFkb3duY2FzdDxEb2N1bWVudD4obmV3UGFyZW50KS5jYW5SZXBsYWNlQ2hpbGQobmV3Q2hpbGQs
ICpvbGRDaGlsZCkpCiAgICAgICAgICAgICByZXR1cm4gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwog
ICAgIH0gZWxzZSBpZiAoIWlzQ2hpbGRUeXBlQWxsb3dlZChuZXdQYXJlbnQsIG5ld0NoaWxkKSkK
ICAgICAgICAgcmV0dXJuIEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKQEAgLTIxMSwxMiArMjA3LDEy
IEBAIHN0YXRpYyBpbmxpbmUgRXhjZXB0aW9uQ29kZSBjaGVja0FjY2VwdENoaWxkKENvbnRhaW5l
ck5vZGUqIG5ld1BhcmVudCwgTm9kZSogbmV3CiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBp
bmxpbmUgYm9vbCBjaGVja0FjY2VwdENoaWxkR3VhcmFudGVlZE5vZGVUeXBlcyhDb250YWluZXJO
b2RlKiBuZXdQYXJlbnQsIE5vZGUqIG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKK3N0YXRp
YyBpbmxpbmUgYm9vbCBjaGVja0FjY2VwdENoaWxkR3VhcmFudGVlZE5vZGVUeXBlcyhDb250YWlu
ZXJOb2RlJiBuZXdQYXJlbnQsIE5vZGUmIG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsK
LSAgICBBU1NFUlQoIW5ld1BhcmVudC0+aXNSZWFkT25seU5vZGUoKSk7Ci0gICAgQVNTRVJUKCFu
ZXdQYXJlbnQtPmlzRG9jdW1lbnRUeXBlTm9kZSgpKTsKKyAgICBBU1NFUlQoIW5ld1BhcmVudC5p
c1JlYWRPbmx5Tm9kZSgpKTsKKyAgICBBU1NFUlQoIW5ld1BhcmVudC5pc0RvY3VtZW50VHlwZU5v
ZGUoKSk7CiAgICAgQVNTRVJUKGlzQ2hpbGRUeXBlQWxsb3dlZChuZXdQYXJlbnQsIG5ld0NoaWxk
KSk7Ci0gICAgaWYgKG5ld0NoaWxkLT5jb250YWlucyhuZXdQYXJlbnQpKSB7CisgICAgaWYgKG5l
d0NoaWxkLmNvbnRhaW5zKCZuZXdQYXJlbnQpKSB7CiAgICAgICAgIGVjID0gSElFUkFSQ0hZX1JF
UVVFU1RfRVJSOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMjI0LDI1ICsyMjAs
MTkgQEAgc3RhdGljIGlubGluZSBib29sIGNoZWNrQWNjZXB0Q2hpbGRHdWFyYW50ZWVkTm9kZVR5
cGVzKENvbnRhaW5lck5vZGUqIG5ld1BhcmVudCwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3Rh
dGljIGlubGluZSBib29sIGNoZWNrQWRkQ2hpbGQoQ29udGFpbmVyTm9kZSogbmV3UGFyZW50LCBO
b2RlKiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCitzdGF0aWMgaW5saW5lIGJvb2wgY2hl
Y2tBZGRDaGlsZChDb250YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5vZGUmIG5ld0NoaWxkLCBFeGNl
cHRpb25Db2RlJiBlYykKIHsKLSAgICBlYyA9IGNoZWNrQWNjZXB0Q2hpbGQobmV3UGFyZW50LCBu
ZXdDaGlsZCwgMCk7Ci0gICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICBlYyA9IGNoZWNrQWNjZXB0Q2hpbGQobmV3UGFyZW50LCBuZXdDaGls
ZCwgbnVsbHB0cik7CisgICAgcmV0dXJuICFlYzsKIH0KIAotc3RhdGljIGlubGluZSBib29sIGNo
ZWNrUmVwbGFjZUNoaWxkKENvbnRhaW5lck5vZGUqIG5ld1BhcmVudCwgTm9kZSogbmV3Q2hpbGQs
IE5vZGUqIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKK3N0YXRpYyBpbmxpbmUgYm9vbCBj
aGVja1JlcGxhY2VDaGlsZChDb250YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5vZGUmIG5ld0NoaWxk
LCBOb2RlJiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgZWMgPSBjaGVja0Fj
Y2VwdENoaWxkKG5ld1BhcmVudCwgbmV3Q2hpbGQsIG9sZENoaWxkKTsKLSAgICBpZiAoZWMpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiB0cnVlOworICAgIGVjID0gY2hlY2tB
Y2NlcHRDaGlsZChuZXdQYXJlbnQsIG5ld0NoaWxkLCAmb2xkQ2hpbGQpOworICAgIHJldHVybiAh
ZWM7CiB9CiAKLWJvb2wgQ29udGFpbmVyTm9kZTo6aW5zZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9k
ZT4gbmV3Q2hpbGQsIE5vZGUqIHJlZkNoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKK2Jvb2wgQ29u
dGFpbmVyTm9kZTo6aW5zZXJ0QmVmb3JlKFJlZjxOb2RlPiYmIG5ld0NoaWxkLCBOb2RlKiByZWZD
aGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgLy8gQ2hlY2sgdGhhdCB0aGlzIG5vZGUg
aXMgbm90ICJmbG9hdGluZyIuCiAgICAgLy8gSWYgaXQgaXMsIGl0IGNhbiBiZSBkZWxldGVkIGFz
IGEgc2lkZSBlZmZlY3Qgb2Ygc2VuZGluZyBtdXRhdGlvbiBldmVudHMuCkBAIC0yNTQsMTAgKzI0
NCwxMCBAQCBib29sIENvbnRhaW5lck5vZGU6Omluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5vZGU+
IG5ld0NoaWxkLCBOb2RlKiByZWZDaGlsZCwgRXhjZQogCiAgICAgLy8gaW5zZXJ0QmVmb3JlKG5v
ZGUsIDApIGlzIGVxdWl2YWxlbnQgdG8gYXBwZW5kQ2hpbGQobm9kZSkKICAgICBpZiAoIXJlZkNo
aWxkKQotICAgICAgICByZXR1cm4gYXBwZW5kQ2hpbGQobmV3Q2hpbGQsIGVjKTsKKyAgICAgICAg
cmV0dXJuIGFwcGVuZENoaWxkKFdURjo6bW92ZShuZXdDaGlsZCksIGVjKTsKIAogICAgIC8vIE1h
a2Ugc3VyZSBhZGRpbmcgdGhlIG5ldyBjaGlsZCBpcyBPSy4KLSAgICBpZiAoIWNoZWNrQWRkQ2hp
bGQodGhpcywgbmV3Q2hpbGQuZ2V0KCksIGVjKSkKKyAgICBpZiAoIWNoZWNrQWRkQ2hpbGQoKnRo
aXMsIG5ld0NoaWxkLCBlYykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIE5PVF9G
T1VORF9FUlI6IFJhaXNlZCBpZiByZWZDaGlsZCBpcyBub3QgYSBjaGlsZCBvZiB0aGlzIG5vZGUK
QEAgLTI2NiwyMCArMjU2LDIwIEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6aW5zZXJ0QmVmb3JlKFBh
c3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIHJlZkNoaWxkLCBFeGNlCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBpZiAocmVmQ2hpbGQtPnByZXZpb3VzU2libGluZygp
ID09IG5ld0NoaWxkIHx8IHJlZkNoaWxkID09IG5ld0NoaWxkKSAvLyBub3RoaW5nIHRvIGRvCisg
ICAgaWYgKHJlZkNoaWxkLT5wcmV2aW91c1NpYmxpbmcoKSA9PSBuZXdDaGlsZC5wdHIoKSB8fCBy
ZWZDaGlsZCA9PSBuZXdDaGlsZC5wdHIoKSkgLy8gbm90aGluZyB0byBkbwogICAgICAgICByZXR1
cm4gdHJ1ZTsKIAogICAgIFJlZjxOb2RlPiBuZXh0KCpyZWZDaGlsZCk7CiAKICAgICBOb2RlVmVj
dG9yIHRhcmdldHM7Ci0gICAgY29sbGVjdENoaWxkcmVuQW5kUmVtb3ZlRnJvbU9sZFBhcmVudCgq
bmV3Q2hpbGQuZ2V0KCksIHRhcmdldHMsIGVjKTsKKyAgICBjb2xsZWN0Q2hpbGRyZW5BbmRSZW1v
dmVGcm9tT2xkUGFyZW50KG5ld0NoaWxkLCB0YXJnZXRzLCBlYyk7CiAgICAgaWYgKGVjKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKHRhcmdldHMuaXNFbXB0eSgpKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKIAogICAgIC8vIFdlIG5lZWQgdGhpcyBleHRyYSBjaGVjayBiZWNhdXNlIGNv
bGxlY3RDaGlsZHJlbkFuZFJlbW92ZUZyb21PbGRQYXJlbnQoKSBjYW4gZmlyZSBtdXRhdGlvbiBl
dmVudHMuCi0gICAgaWYgKCFjaGVja0FjY2VwdENoaWxkR3VhcmFudGVlZE5vZGVUeXBlcyh0aGlz
LCBuZXdDaGlsZC5nZXQoKSwgZWMpKQorICAgIGlmICghY2hlY2tBY2NlcHRDaGlsZEd1YXJhbnRl
ZWROb2RlVHlwZXMoKnRoaXMsIG5ld0NoaWxkLCBlYykpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEluc2VydERPTU5vZGUoZG9jdW1l
bnQoKSwgKnRoaXMpOwpAQCAtMzkwLDcgKzM4MCw3IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6cGFy
c2VySW5zZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIG5leHRDaGls
CiAgICAgbmV3Q2hpbGQtPnNldE5lZWRzU3R5bGVSZWNhbGMoUmVjb25zdHJ1Y3RSZW5kZXJUcmVl
KTsKIH0KIAotYm9vbCBDb250YWluZXJOb2RlOjpyZXBsYWNlQ2hpbGQoUGFzc1JlZlB0cjxOb2Rl
PiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQorYm9vbCBDb250
YWluZXJOb2RlOjpyZXBsYWNlQ2hpbGQoUmVmPE5vZGU+JiYgbmV3Q2hpbGQsIE5vZGUmIG9sZENo
aWxkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICAvLyBDaGVjayB0aGF0IHRoaXMgbm9kZSBp
cyBub3QgImZsb2F0aW5nIi4KICAgICAvLyBJZiBpdCBpcywgaXQgY2FuIGJlIGRlbGV0ZWQgYXMg
YSBzaWRlIGVmZmVjdCBvZiBzZW5kaW5nIG11dGF0aW9uIGV2ZW50cy4KQEAgLTQwMCw0OCArMzkw
LDQzIEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6cmVwbGFjZUNoaWxkKFBhc3NSZWZQdHI8Tm9kZT4g
bmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkLCBFeGNlCiAKICAgICBlYyA9IDA7CiAKLSAgICBpZiAo
b2xkQ2hpbGQgPT0gbmV3Q2hpbGQpIC8vIG5vdGhpbmcgdG8gZG8KKyAgICBpZiAoJm9sZENoaWxk
ID09IG5ld0NoaWxkLnB0cigpKSAvLyBub3RoaW5nIHRvIGRvCiAgICAgICAgIHJldHVybiB0cnVl
OwogCi0gICAgaWYgKCFvbGRDaGlsZCkgewotICAgICAgICBlYyA9IE5PVF9GT1VORF9FUlI7Ci0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KICAgICAvLyBNYWtlIHN1cmUgcmVwbGFjaW5n
IHRoZSBvbGQgY2hpbGQgd2l0aCB0aGUgbmV3IGlzIG9rCi0gICAgaWYgKCFjaGVja1JlcGxhY2VD
aGlsZCh0aGlzLCBuZXdDaGlsZC5nZXQoKSwgb2xkQ2hpbGQsIGVjKSkKKyAgICBpZiAoIWNoZWNr
UmVwbGFjZUNoaWxkKCp0aGlzLCBuZXdDaGlsZCwgb2xkQ2hpbGQsIGVjKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgLy8gTk9UX0ZPVU5EX0VSUjogUmFpc2VkIGlmIG9sZENoaWxkIGlz
IG5vdCBhIGNoaWxkIG9mIHRoaXMgbm9kZS4KLSAgICBpZiAob2xkQ2hpbGQtPnBhcmVudE5vZGUo
KSAhPSB0aGlzKSB7CisgICAgaWYgKG9sZENoaWxkLnBhcmVudE5vZGUoKSAhPSB0aGlzKSB7CiAg
ICAgICAgIGVjID0gTk9UX0ZPVU5EX0VSUjsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
IAogICAgIENoaWxkTGlzdE11dGF0aW9uU2NvcGUgbXV0YXRpb24oKnRoaXMpOwogCi0gICAgUmVm
UHRyPE5vZGU+IG5leHQgPSBvbGRDaGlsZC0+bmV4dFNpYmxpbmcoKTsKKyAgICBSZWZQdHI8Tm9k
ZT4gbmV4dCA9IG9sZENoaWxkLm5leHRTaWJsaW5nKCk7CiAKICAgICAvLyBSZW1vdmUgdGhlIG5v
ZGUgd2UncmUgcmVwbGFjaW5nCi0gICAgUmVmPE5vZGU+IHJlbW92ZWRDaGlsZCgqb2xkQ2hpbGQp
OworICAgIFJlZjxOb2RlPiByZW1vdmVkQ2hpbGQob2xkQ2hpbGQpOwogICAgIHJlbW92ZUNoaWxk
KG9sZENoaWxkLCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAg
ICBpZiAobmV4dCAmJiAobmV4dC0+cHJldmlvdXNTaWJsaW5nKCkgPT0gbmV3Q2hpbGQgfHwgbmV4
dCA9PSBuZXdDaGlsZCkpIC8vIG5vdGhpbmcgdG8gZG8KKyAgICBpZiAobmV4dCAmJiAobmV4dC0+
cHJldmlvdXNTaWJsaW5nKCkgPT0gbmV3Q2hpbGQucHRyKCkgfHwgbmV4dCA9PSBuZXdDaGlsZC5w
dHIoKSkpIC8vIG5vdGhpbmcgdG8gZG8KICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAvLyBE
b2VzIHRoaXMgb25lIG1vcmUgdGltZSBiZWNhdXNlIHJlbW92ZUNoaWxkKCkgZmlyZXMgYSBNdXRh
dGlvbkV2ZW50LgotICAgIGlmICghY2hlY2tSZXBsYWNlQ2hpbGQodGhpcywgbmV3Q2hpbGQuZ2V0
KCksIG9sZENoaWxkLCBlYykpCisgICAgaWYgKCFjaGVja1JlcGxhY2VDaGlsZCgqdGhpcywgbmV3
Q2hpbGQsIG9sZENoaWxkLCBlYykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIE5vZGVW
ZWN0b3IgdGFyZ2V0czsKLSAgICBjb2xsZWN0Q2hpbGRyZW5BbmRSZW1vdmVGcm9tT2xkUGFyZW50
KCpuZXdDaGlsZC5nZXQoKSwgdGFyZ2V0cywgZWMpOworICAgIGNvbGxlY3RDaGlsZHJlbkFuZFJl
bW92ZUZyb21PbGRQYXJlbnQobmV3Q2hpbGQsIHRhcmdldHMsIGVjKTsKICAgICBpZiAoZWMpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIERvZXMgdGhpcyB5ZXQgYW5vdGhlciBjaGVj
ayBiZWNhdXNlIGNvbGxlY3RDaGlsZHJlbkFuZFJlbW92ZUZyb21PbGRQYXJlbnQoKSBmaXJlcyBh
IE11dGF0aW9uRXZlbnQuCi0gICAgaWYgKCFjaGVja1JlcGxhY2VDaGlsZCh0aGlzLCBuZXdDaGls
ZC5nZXQoKSwgb2xkQ2hpbGQsIGVjKSkKKyAgICBpZiAoIWNoZWNrUmVwbGFjZUNoaWxkKCp0aGlz
LCBuZXdDaGlsZCwgb2xkQ2hpbGQsIGVjKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsSW5zZXJ0RE9NTm9kZShkb2N1bWVudCgpLCAq
dGhpcyk7CkBAIC01MTUsNyArNTAwLDcgQEAgdm9pZCBDb250YWluZXJOb2RlOjpkaXNjb25uZWN0
RGVzY2VuZGFudEZyYW1lcygpCiAgICAgZGlzY29ubmVjdFN1YmZyYW1lc0lmTmVlZGVkKCp0aGlz
LCBSb290QW5kRGVzY2VuZGFudHMpOwogfQogCi1ib29sIENvbnRhaW5lck5vZGU6OnJlbW92ZUNo
aWxkKE5vZGUqIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKK2Jvb2wgQ29udGFpbmVyTm9k
ZTo6cmVtb3ZlQ2hpbGQoTm9kZSYgb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAg
IC8vIENoZWNrIHRoYXQgdGhpcyBub2RlIGlzIG5vdCAiZmxvYXRpbmciLgogICAgIC8vIElmIGl0
IGlzLCBpdCBjYW4gYmUgZGVsZXRlZCBhcyBhIHNpZGUgZWZmZWN0IG9mIHNlbmRpbmcgbXV0YXRp
b24gZXZlbnRzLgpAQCAtNTMyLDEyICs1MTcsMTIgQEAgYm9vbCBDb250YWluZXJOb2RlOjpyZW1v
dmVDaGlsZChOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgfQogCiAgICAg
Ly8gTk9UX0ZPVU5EX0VSUjogUmFpc2VkIGlmIG9sZENoaWxkIGlzIG5vdCBhIGNoaWxkIG9mIHRo
aXMgbm9kZS4KLSAgICBpZiAoIW9sZENoaWxkIHx8IG9sZENoaWxkLT5wYXJlbnROb2RlKCkgIT0g
dGhpcykgeworICAgIGlmIChvbGRDaGlsZC5wYXJlbnROb2RlKCkgIT0gdGhpcykgewogICAgICAg
ICBlYyA9IE5PVF9GT1VORF9FUlI7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAg
ICBSZWY8Tm9kZT4gY2hpbGQoKm9sZENoaWxkKTsKKyAgICBSZWY8Tm9kZT4gY2hpbGQob2xkQ2hp
bGQpOwogCiAgICAgZG9jdW1lbnQoKS5yZW1vdmVGb2N1c2VkTm9kZU9mU3VidHJlZShjaGlsZC5w
dHIoKSk7CiAKQEAgLTY3MCw3ICs2NTUsNyBAQCB2b2lkIENvbnRhaW5lck5vZGU6OnJlbW92ZUNo
aWxkcmVuKCkKICAgICBkaXNwYXRjaFN1YnRyZWVNb2RpZmllZEV2ZW50KCk7CiB9CiAKLWJvb2wg
Q29udGFpbmVyTm9kZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCitib29sIENvbnRhaW5lck5vZGU6OmFwcGVuZENoaWxkKFJlZjxOb2Rl
PiYmIG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBSZWY8Q29udGFpbmVyTm9k
ZT4gcHJvdGVjdCgqdGhpcyk7CiAKQEAgLTY4MSwxNCArNjY2LDE0IEBAIGJvb2wgQ29udGFpbmVy
Tm9kZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiAgICAgZWMgPSAwOwogCiAgICAgLy8gTWFrZSBzdXJlIGFkZGluZyB0aGUgbmV3IGNo
aWxkIGlzIG9rCi0gICAgaWYgKCFjaGVja0FkZENoaWxkKHRoaXMsIG5ld0NoaWxkLmdldCgpLCBl
YykpCisgICAgaWYgKCFjaGVja0FkZENoaWxkKCp0aGlzLCBuZXdDaGlsZCwgZWMpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAobmV3Q2hpbGQgPT0gbV9sYXN0Q2hpbGQpIC8vIG5v
dGhpbmcgdG8gZG8KLSAgICAgICAgcmV0dXJuIG5ld0NoaWxkOworICAgIGlmIChuZXdDaGlsZC5w
dHIoKSA9PSBtX2xhc3RDaGlsZCkgLy8gbm90aGluZyB0byBkbworICAgICAgICByZXR1cm4gdHJ1
ZTsKIAogICAgIE5vZGVWZWN0b3IgdGFyZ2V0czsKLSAgICBjb2xsZWN0Q2hpbGRyZW5BbmRSZW1v
dmVGcm9tT2xkUGFyZW50KCpuZXdDaGlsZC5nZXQoKSwgdGFyZ2V0cywgZWMpOworICAgIGNvbGxl
Y3RDaGlsZHJlbkFuZFJlbW92ZUZyb21PbGRQYXJlbnQobmV3Q2hpbGQsIHRhcmdldHMsIGVjKTsK
ICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtNjk2LDcgKzY4MSw3IEBA
IGJvb2wgQ29udGFpbmVyTm9kZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGls
ZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgLy8gV2Ug
bmVlZCB0aGlzIGV4dHJhIGNoZWNrIGJlY2F1c2UgY29sbGVjdENoaWxkcmVuQW5kUmVtb3ZlRnJv
bU9sZFBhcmVudCgpIGNhbiBmaXJlIG11dGF0aW9uIGV2ZW50cy4KLSAgICBpZiAoIWNoZWNrQWNj
ZXB0Q2hpbGRHdWFyYW50ZWVkTm9kZVR5cGVzKHRoaXMsIG5ld0NoaWxkLmdldCgpLCBlYykpCisg
ICAgaWYgKCFjaGVja0FjY2VwdENoaWxkR3VhcmFudGVlZE5vZGVUeXBlcygqdGhpcywgbmV3Q2hp
bGQsIGVjKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjp3aWxsSW5zZXJ0RE9NTm9kZShkb2N1bWVudCgpLCAqdGhpcyk7CkBAIC03NTksMTYg
Kzc0NCwxNiBAQCB2b2lkIENvbnRhaW5lck5vZGU6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGls
ZENoYW5nZSYgY2hhbmdlKQogICAgIGludmFsaWRhdGVOb2RlTGlzdEFuZENvbGxlY3Rpb25DYWNo
ZXNJbkFuY2VzdG9ycygpOwogfQogCi12b2lkIENvbnRhaW5lck5vZGU6OmNsb25lQ2hpbGROb2Rl
cyhDb250YWluZXJOb2RlKiBjbG9uZSkKK3ZvaWQgQ29udGFpbmVyTm9kZTo6Y2xvbmVDaGlsZE5v
ZGVzKENvbnRhaW5lck5vZGUmIGNsb25lKQogewogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwot
ICAgIERvY3VtZW50JiB0YXJnZXREb2N1bWVudCA9IGNsb25lLT5kb2N1bWVudCgpOworICAgIERv
Y3VtZW50JiB0YXJnZXREb2N1bWVudCA9IGNsb25lLmRvY3VtZW50KCk7CiAgICAgZm9yIChOb2Rl
KiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQgJiYgIWVjOyBjaGlsZCA9IGNoaWxkLT5uZXh0
U2libGluZygpKSB7Ci0gICAgICAgIFJlZlB0cjxOb2RlPiBjbG9uZWRDaGlsZCA9IGNoaWxkLT5j
bG9uZU5vZGVJbnRlcm5hbCh0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbjo6U2VsZldp
dGhUZW1wbGF0ZUNvbnRlbnQpOwotICAgICAgICBjbG9uZS0+YXBwZW5kQ2hpbGQoY2xvbmVkQ2hp
bGQsIGVjKTsKKyAgICAgICAgUmVmPE5vZGU+IGNsb25lZENoaWxkID0gY2hpbGQtPmNsb25lTm9k
ZUludGVybmFsKHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uOjpTZWxmV2l0aFRlbXBs
YXRlQ29udGVudCk7CisgICAgICAgIGNsb25lLmFwcGVuZENoaWxkKGNsb25lZENoaWxkLmNvcHlS
ZWYoKSwgZWMpOwogCi0gICAgICAgIGlmICghZWMgJiYgaXM8Q29udGFpbmVyTm9kZT4oY2hpbGQp
KQotICAgICAgICAgICAgZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4oY2hpbGQpLT5jbG9uZUNoaWxk
Tm9kZXMoZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4oY2xvbmVkQ2hpbGQuZ2V0KCkpKTsKKyAgICAg
ICAgaWYgKCFlYyAmJiBpczxDb250YWluZXJOb2RlPigqY2hpbGQpKQorICAgICAgICAgICAgZG93
bmNhc3Q8Q29udGFpbmVyTm9kZT4oKmNoaWxkKS5jbG9uZUNoaWxkTm9kZXMoZG93bmNhc3Q8Q29u
dGFpbmVyTm9kZT4oY2xvbmVkQ2hpbGQuZ2V0KCkpKTsKICAgICB9CiB9CiAKQEAgLTk0Nyw3ICs5
MzIsNyBAQCB2b2lkIENvbnRhaW5lck5vZGU6OmFwcGVuZChWZWN0b3I8Tm9kZU9yU3RyaW5nPiYm
IG5vZGVPclN0cmluZ1ZlY3RvciwgRXhjZXB0aW9uQwogICAgIGlmIChlYyB8fCAhbm9kZSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgYXBwZW5kQ2hpbGQobm9kZS5yZWxlYXNlKCksIGVjKTsKKyAg
ICBhcHBlbmRDaGlsZChub2RlLnJlbGVhc2VOb25OdWxsKCksIGVjKTsKIH0KIAogdm9pZCBDb250
YWluZXJOb2RlOjpwcmVwZW5kKFZlY3RvcjxOb2RlT3JTdHJpbmc+JiYgbm9kZU9yU3RyaW5nVmVj
dG9yLCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTk1Niw3ICs5NDEsNyBAQCB2b2lkIENvbnRhaW5l
ck5vZGU6OnByZXBlbmQoVmVjdG9yPE5vZGVPclN0cmluZz4mJiBub2RlT3JTdHJpbmdWZWN0b3Is
IEV4Y2VwdGlvbgogICAgIGlmIChlYyB8fCAhbm9kZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
aW5zZXJ0QmVmb3JlKG5vZGUucmVsZWFzZSgpLCBmaXJzdENoaWxkKCksIGVjKTsKKyAgICBpbnNl
cnRCZWZvcmUobm9kZS5yZWxlYXNlTm9uTnVsbCgpLCBmaXJzdENoaWxkKCksIGVjKTsKIH0KIAog
SFRNTENvbGxlY3Rpb24qIENvbnRhaW5lck5vZGU6OmNhY2hlZEhUTUxDb2xsZWN0aW9uKENvbGxl
Y3Rpb25UeXBlIHR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVy
Tm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaAppbmRleCAwNDUyNDAw
NDFmMmI3MTMxZmIyNmE0ZThmMTkxNmI5YTZjYjliMGFlLi5hNmIxMGE3NjVmMGVlOGJjYTcyYjhm
ZmYwMzQzM2I3M2IxODdiYTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFp
bmVyTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmgKQEAgLTEw
MiwxMCArMTAyLDEwIEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB1bnNpZ25lZCBjb3Vu
dENoaWxkTm9kZXMoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBOb2RlKiB0cmF2ZXJzZVRv
Q2hpbGRBdCh1bnNpZ25lZCkgY29uc3Q7CiAKLSAgICBib29sIGluc2VydEJlZm9yZShQYXNzUmVm
UHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiByZWZDaGlsZCwgRXhjZXB0aW9uQ29kZSYgPSBBU1NF
UlRfTk9fRVhDRVBUSU9OKTsKLSAgICBib29sIHJlcGxhY2VDaGlsZChQYXNzUmVmUHRyPE5vZGU+
IG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgPSBBU1NFUlRfTk9fRVhD
RVBUSU9OKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIHJlbW92ZUNoaWxkKE5vZGUqIGNoaWxk
LCBFeGNlcHRpb25Db2RlJiA9IEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgIFdFQkNPUkVfRVhQ
T1JUIGJvb2wgYXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgRXhjZXB0aW9u
Q29kZSYgPSBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBib29sIGluc2VydEJlZm9yZShSZWY8
Tm9kZT4mJiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmID0gQVNTRVJU
X05PX0VYQ0VQVElPTik7CisgICAgYm9vbCByZXBsYWNlQ2hpbGQoUmVmPE5vZGU+JiYgbmV3Q2hp
bGQsIE5vZGUmIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiA9IEFTU0VSVF9OT19FWENFUFRJT04p
OworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgcmVtb3ZlQ2hpbGQoTm9kZSYgY2hpbGQsIEV4Y2Vw
dGlvbkNvZGUmID0gQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9v
bCBhcHBlbmRDaGlsZChSZWY8Tm9kZT4mJiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgPSBBU1NF
UlRfTk9fRVhDRVBUSU9OKTsKIAogICAgIC8vIFRoZXNlIG1ldGhvZHMgYXJlIG9ubHkgdXNlZCBk
dXJpbmcgcGFyc2luZy4KICAgICAvLyBUaGV5IGRvbid0IHNlbmQgRE9NIG11dGF0aW9uIGV2ZW50
cyBvciBoYW5kbGUgcmVwYXJlbnRpbmcuCkBAIC0xMTcsNyArMTE3LDcgQEAgcHVibGljOgogICAg
IHZvaWQgcmVtb3ZlQ2hpbGRyZW4oKTsKICAgICB2b2lkIHRha2VBbGxDaGlsZHJlbkZyb20oQ29u
dGFpbmVyTm9kZSopOwogCi0gICAgdm9pZCBjbG9uZUNoaWxkTm9kZXMoQ29udGFpbmVyTm9kZSog
Y2xvbmUpOworICAgIHZvaWQgY2xvbmVDaGlsZE5vZGVzKENvbnRhaW5lck5vZGUmIGNsb25lKTsK
IAogICAgIGVudW0gQ2hpbGRDaGFuZ2VUeXBlIHsgRWxlbWVudEluc2VydGVkLCBFbGVtZW50UmVt
b3ZlZCwgVGV4dEluc2VydGVkLCBUZXh0UmVtb3ZlZCwgVGV4dENoYW5nZWQsIEFsbENoaWxkcmVu
UmVtb3ZlZCwgTm9uQ29udGVudHNDaGlsZENoYW5nZWQgfTsKICAgICBlbnVtIENoaWxkQ2hhbmdl
U291cmNlIHsgQ2hpbGRDaGFuZ2VTb3VyY2VQYXJzZXIsIENoaWxkQ2hhbmdlU291cmNlQVBJIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAppbmRleCBhNGEzZjhkNTlh
YTJhMTYxZjY3MmY0NGQ2M2ZmODQ4NjRiN2IyMDMzLi42MzNkMjkxM2Y3MTZlYTg0YjY3ZjZkMjgw
OTNlNjhkNDExZTMxOWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVt
ZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5j
cHAKQEAgLTIzMSw5ICsyMzEsOSBAQCBSZWZQdHI8RG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aW9u
OjpjcmVhdGVEb2N1bWVudChjb25zdCBTdHJpbmcmIG5hbWVzcGFjZVVSSSwKICAgICB9CiAKICAg
ICBpZiAoZG9jdHlwZSkKLSAgICAgICAgZG9jLT5hcHBlbmRDaGlsZChkb2N0eXBlKTsKKyAgICAg
ICAgZG9jLT5hcHBlbmRDaGlsZCgqZG9jdHlwZSk7CiAgICAgaWYgKGRvY3VtZW50RWxlbWVudCkK
LSAgICAgICAgZG9jLT5hcHBlbmRDaGlsZChkb2N1bWVudEVsZW1lbnQucmVsZWFzZSgpKTsKKyAg
ICAgICAgZG9jLT5hcHBlbmRDaGlsZChkb2N1bWVudEVsZW1lbnQucmVsZWFzZU5vbk51bGwoKSk7
CiAKICAgICByZXR1cm4gZG9jOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZDBjZGM1
N2UzMTI2YWIyNzkwNmRlZmVhYjllNTZiMTUxZTZlZGU5Yi4uNjc2YmRkODJiZmIwOGM2YThjNTY4
ZTNjODBkYTllMmVkNWIyN2NmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xMDA5LDcg
KzEwMDksNyBAQCBSZWZQdHI8Tm9kZT4gRG9jdW1lbnQ6OmFkb3B0Tm9kZShQYXNzUmVmUHRyPE5v
ZGU+IHNvdXJjZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
ICAgICAgICAgaWYgKHNvdXJjZS0+cGFyZW50Tm9kZSgpKSB7Ci0gICAgICAgICAgICBzb3VyY2Ut
PnBhcmVudE5vZGUoKS0+cmVtb3ZlQ2hpbGQoc291cmNlLmdldCgpLCBlYyk7CisgICAgICAgICAg
ICBzb3VyY2UtPnBhcmVudE5vZGUoKS0+cmVtb3ZlQ2hpbGQoKnNvdXJjZSwgZWMpOwogICAgICAg
ICAgICAgaWYgKGVjKQogICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICB9
CkBAIC0xNTQ3LDcgKzE1NDcsNyBAQCB2b2lkIERvY3VtZW50OjpzZXRUaXRsZShjb25zdCBTdHJp
bmcmIHRpdGxlKQogICAgICAgICBpZiAoIWhlYWRFbGVtZW50KQogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICBtX3RpdGxlRWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQodGl0bGVUYWcsIGZhbHNl
KTsKLSAgICAgICAgaGVhZEVsZW1lbnQtPmFwcGVuZENoaWxkKG1fdGl0bGVFbGVtZW50LCBBU1NF
UlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgaGVhZEVsZW1lbnQtPmFwcGVuZENoaWxkKCptX3Rp
dGxlRWxlbWVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgfQogCiAgICAgLy8gVGhlIERP
TSBBUEkgaGFzIG5vIG1ldGhvZCBvZiBzcGVjaWZ5aW5nIGRpcmVjdGlvbiwgc28gYXNzdW1lIExU
Ui4KQEAgLTI1MTgsMTEgKzI1MTgsMTAgQEAgdm9pZCBEb2N1bWVudDo6c2V0Qm9keU9yRnJhbWVz
ZXQoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gcHJwTmV3Qm9keSwgRXhjZXB0aW9uQ28KICAgICAg
ICAgbmV3Qm9keSA9IGRvd25jYXN0PEhUTUxFbGVtZW50Pihub2RlLmdldCgpKTsKICAgICB9CiAK
LSAgICBIVE1MRWxlbWVudCogYiA9IGJvZHlPckZyYW1lc2V0KCk7Ci0gICAgaWYgKCFiKQotICAg
ICAgICBkb2N1bWVudEVsZW1lbnQoKS0+YXBwZW5kQ2hpbGQobmV3Qm9keS5yZWxlYXNlKCksIGVj
KTsKKyAgICBpZiAoYXV0byogYm9keSA9IGJvZHlPckZyYW1lc2V0KCkpCisgICAgICAgIGRvY3Vt
ZW50RWxlbWVudCgpLT5yZXBsYWNlQ2hpbGQobmV3Qm9keS5yZWxlYXNlTm9uTnVsbCgpLCAqYm9k
eSwgZWMpOwogICAgIGVsc2UKLSAgICAgICAgZG9jdW1lbnRFbGVtZW50KCktPnJlcGxhY2VDaGls
ZChuZXdCb2R5LnJlbGVhc2UoKSwgYiwgZWMpOworICAgICAgICBkb2N1bWVudEVsZW1lbnQoKS0+
YXBwZW5kQ2hpbGQobmV3Qm9keS5yZWxlYXNlTm9uTnVsbCgpLCBlYyk7CiB9CiAKIEhUTUxIZWFk
RWxlbWVudCogRG9jdW1lbnQ6OmhlYWQoKQpAQCAtMzMyNiwxMyArMzMyNSw5IEBAIGJvb2wgRG9j
dW1lbnQ6OmNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkgY29uc3QKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKLWJvb2wgRG9jdW1lbnQ6OmNhblJlcGxhY2VDaGlsZChOb2RlKiBuZXdDaGls
ZCwgTm9kZSogb2xkQ2hpbGQpCitib29sIERvY3VtZW50OjpjYW5SZXBsYWNlQ2hpbGQoTm9kZSYg
bmV3Q2hpbGQsIE5vZGUmIG9sZENoaWxkKQogewotICAgIGlmICghb2xkQ2hpbGQpCi0gICAgICAg
IC8vIENvbnRhaW5lck5vZGU6OnJlcGxhY2VDaGlsZCB3aWxsIHJhaXNlIGEgTk9UX0ZPVU5EX0VS
Ui4KLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBpZiAob2xkQ2hpbGQtPm5vZGVUeXBlKCkg
PT0gbmV3Q2hpbGQtPm5vZGVUeXBlKCkpCisgICAgaWYgKG9sZENoaWxkLm5vZGVUeXBlKCkgPT0g
bmV3Q2hpbGQubm9kZVR5cGUoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBpbnQgbnVt
RG9jdHlwZXMgPSAwOwpAQCAtMzM0MSw3ICszMzM2LDcgQEAgYm9vbCBEb2N1bWVudDo6Y2FuUmVw
bGFjZUNoaWxkKE5vZGUqIG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCkKICAgICAvLyBGaXJzdCwg
Y2hlY2sgaG93IG1hbnkgZG9jdHlwZXMgYW5kIGVsZW1lbnRzIHdlIGhhdmUsIG5vdCBjb3VudGlu
ZwogICAgIC8vIHRoZSBjaGlsZCB3ZSdyZSBhYm91dCB0byByZW1vdmUuCiAgICAgZm9yIChOb2Rl
KiBjID0gZmlyc3RDaGlsZCgpOyBjOyBjID0gYy0+bmV4dFNpYmxpbmcoKSkgewotICAgICAgICBp
ZiAoYyA9PSBvbGRDaGlsZCkKKyAgICAgICAgaWYgKGMgPT0gJm9sZENoaWxkKQogICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgIAogICAgICAgICBzd2l0Y2ggKGMtPm5vZGVUeXBlKCkpIHsK
QEAgLTMzNTcsOCArMzM1Miw4IEBAIGJvb2wgRG9jdW1lbnQ6OmNhblJlcGxhY2VDaGlsZChOb2Rl
KiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQpCiAgICAgfQogICAgIAogICAgIC8vIFRoZW4sIHNl
ZSBob3cgbWFueSBkb2N0eXBlcyBhbmQgZWxlbWVudHMgbWlnaHQgYmUgYWRkZWQgYnkgdGhlIG5l
dyBjaGlsZC4KLSAgICBpZiAobmV3Q2hpbGQtPmlzRG9jdW1lbnRGcmFnbWVudCgpKSB7Ci0gICAg
ICAgIGZvciAoTm9kZSogYyA9IG5ld0NoaWxkLT5maXJzdENoaWxkKCk7IGM7IGMgPSBjLT5uZXh0
U2libGluZygpKSB7CisgICAgaWYgKG5ld0NoaWxkLmlzRG9jdW1lbnRGcmFnbWVudCgpKSB7Cisg
ICAgICAgIGZvciAoTm9kZSogYyA9IG5ld0NoaWxkLmZpcnN0Q2hpbGQoKTsgYzsgYyA9IGMtPm5l
eHRTaWJsaW5nKCkpIHsKICAgICAgICAgICAgIHN3aXRjaCAoYy0+bm9kZVR5cGUoKSkgewogICAg
ICAgICAgICAgY2FzZSBBVFRSSUJVVEVfTk9ERToKICAgICAgICAgICAgIGNhc2UgQ0RBVEFfU0VD
VElPTl9OT0RFOgpAQCAtMzM4MSw3ICszMzc2LDcgQEAgYm9vbCBEb2N1bWVudDo6Y2FuUmVwbGFj
ZUNoaWxkKE5vZGUqIG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCkKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQogICAgIH0gZWxzZSB7Ci0gICAgICAgIHN3aXRjaCAobmV3Q2hpbGQtPm5vZGVUeXBl
KCkpIHsKKyAgICAgICAgc3dpdGNoIChuZXdDaGlsZC5ub2RlVHlwZSgpKSB7CiAgICAgICAgIGNh
c2UgQVRUUklCVVRFX05PREU6CiAgICAgICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9OT0RFOgogICAg
ICAgICBjYXNlIERPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CkBAIC0zNDA5LDcgKzM0MDQsNyBAQCBi
b29sIERvY3VtZW50OjpjYW5SZXBsYWNlQ2hpbGQoTm9kZSogbmV3Q2hpbGQsIE5vZGUqIG9sZENo
aWxkKQogICAgIHJldHVybiB0cnVlOwogfQogCi1SZWZQdHI8Tm9kZT4gRG9jdW1lbnQ6OmNsb25l
Tm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbiB0eXBlKQorUmVmPE5vZGU+
IERvY3VtZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24g
dHlwZSkKIHsKICAgICBSZWY8RG9jdW1lbnQ+IGNsb25lID0gY2xvbmVEb2N1bWVudFdpdGhvdXRD
aGlsZHJlbigpOwogICAgIGNsb25lLT5jbG9uZURhdGFGcm9tRG9jdW1lbnQoKnRoaXMpOwpAQCAt
MzQxOCw3ICszNDEzLDcgQEAgUmVmUHRyPE5vZGU+IERvY3VtZW50OjpjbG9uZU5vZGVJbnRlcm5h
bChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24gdHlwZSkKICAgICBjYXNlIENsb25pbmdPcGVy
YXRpb246OlNlbGZXaXRoVGVtcGxhdGVDb250ZW50OgogICAgICAgICBicmVhazsKICAgICBjYXNl
IENsb25pbmdPcGVyYXRpb246OkV2ZXJ5dGhpbmc6Ci0gICAgICAgIGNsb25lQ2hpbGROb2Rlcyhj
bG9uZS5wdHIoKSk7CisgICAgICAgIGNsb25lQ2hpbGROb2RlcyhjbG9uZSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KICAgICByZXR1cm4gV1RGOjptb3ZlKGNsb25lKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgKaW5kZXggNGYwOWI3Y2U1NzM1YzRhOWIyZWNjMGQyZDZiYTRkYWI4MDU1ZTg0Yi4uZTBhZDFi
YzJiOWU3ZGZhNWIxODc2ZGFiN2Q0ZGYwMzI3YTkwZGY0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
QEAgLTc0Niw3ICs3NDYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBub2RlQ2hpbGRyZW5XaWxsQmVS
ZW1vdmVkKENvbnRhaW5lck5vZGUmKTsKICAgICAvLyBub2RlV2lsbEJlUmVtb3ZlZCBpcyBvbmx5
IHNhZmUgd2hlbiByZW1vdmluZyBvbmUgbm9kZSBhdCBhIHRpbWUuCiAgICAgdm9pZCBub2RlV2ls
bEJlUmVtb3ZlZChOb2RlJik7Ci0gICAgYm9vbCBjYW5SZXBsYWNlQ2hpbGQoTm9kZSogbmV3Q2hp
bGQsIE5vZGUqIG9sZENoaWxkKTsKKyAgICBib29sIGNhblJlcGxhY2VDaGlsZChOb2RlJiBuZXdD
aGlsZCwgTm9kZSYgb2xkQ2hpbGQpOwogCiAgICAgdm9pZCB0ZXh0SW5zZXJ0ZWQoTm9kZSosIHVu
c2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKTsKICAgICB2b2lkIHRleHRSZW1vdmVkKE5v
ZGUqLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCk7CkBAIC0xMzEwLDcgKzEzMTAs
NyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1lKCkgY29uc3Qgb3ZlcnJp
ZGUgZmluYWw7CiAgICAgdmlydHVhbCBOb2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0IG92ZXJyaWRl
IGZpbmFsOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlKSBjb25z
dCBvdmVycmlkZSBmaW5hbDsKLSAgICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRl
cm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlIGZpbmFsOworICAgIHZp
cnR1YWwgUmVmPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJh
dGlvbikgb3ZlcnJpZGUgZmluYWw7CiAgICAgdm9pZCBjbG9uZURhdGFGcm9tRG9jdW1lbnQoY29u
c3QgRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZWZTY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkgb3ZlcnJpZGUgZmluYWwgeyByZWYoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
RnJhZ21lbnQuY3BwCmluZGV4IDRmYWI1OGUzNGQ0NjU1ZWNmNGUzN2RhNWRkOWMzYzU2MjJmNDA3
NjguLmY5YjM4YTBiZDI4ZThlM2M2MDkzNGFmZjFhNjAwNTkyNzA5MDNmZWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5jcHAKQEAgLTY3LDE4ICs2NywxOCBAQCBib29sIERv
Y3VtZW50RnJhZ21lbnQ6OmNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkgY29uc3QKICAg
ICB9CiB9CiAKLVJlZlB0cjxOb2RlPiBEb2N1bWVudEZyYWdtZW50OjpjbG9uZU5vZGVJbnRlcm5h
bChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24gdHlwZSkKK1JlZjxO
b2RlPiBEb2N1bWVudEZyYWdtZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0
RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24gdHlwZSkKIHsKLSAgICBSZWZQdHI8RG9jdW1lbnRG
cmFnbWVudD4gY2xvbmUgPSBjcmVhdGUodGFyZ2V0RG9jdW1lbnQpOworICAgIFJlZjxEb2N1bWVu
dEZyYWdtZW50PiBjbG9uZSA9IGNyZWF0ZSh0YXJnZXREb2N1bWVudCk7CiAgICAgc3dpdGNoICh0
eXBlKSB7CiAgICAgY2FzZSBDbG9uaW5nT3BlcmF0aW9uOjpPbmx5U2VsZjoKICAgICBjYXNlIENs
b25pbmdPcGVyYXRpb246OlNlbGZXaXRoVGVtcGxhdGVDb250ZW50OgogICAgICAgICBicmVhazsK
ICAgICBjYXNlIENsb25pbmdPcGVyYXRpb246OkV2ZXJ5dGhpbmc6Ci0gICAgICAgIGNsb25lQ2hp
bGROb2RlcyhjbG9uZS5nZXQoKSk7CisgICAgICAgIGNsb25lQ2hpbGROb2RlcyhjbG9uZSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KLSAgICByZXR1cm4gY2xvbmU7CisgICAgcmV0dXJuIFdURjo6
bW92ZShjbG9uZSk7CiB9CiAKIHZvaWQgRG9jdW1lbnRGcmFnbWVudDo6cGFyc2VIVE1MKGNvbnN0
IFN0cmluZyYgc291cmNlLCBFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgUGFyc2VyQ29udGVudFBv
bGljeSBwYXJzZXJDb250ZW50UG9saWN5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50RnJhZ21lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50
LmgKaW5kZXggZDA3ZTAzNGMwMDdlNjYyOTYyNTFiZDBjMGIxNjA2ZDcwOWEwNWY2NS4uNmViMWVk
NjFjNDYyMDEzZmQwNTc0ZDRhZmUzZWNjNWUyNGM4NDVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnRGcmFnbWVudC5oCkBAIC00OCw3ICs0OCw3IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIE5vZGVUeXBlIG5vZGVUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7Ci0g
ICAgdmlydHVhbCBSZWZQdHI8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9u
aW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxOb2RlPiBjbG9uZU5vZGVJ
bnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgYm9vbCBjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlKSBjb25zdCBvdmVycmlkZTsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFR5cGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50VHlwZS5jcHAKaW5kZXggNjdlM2Q1Mzg0M2Y4MmEwYmM1OWI5
ZDBlZmZjYWUyN2FmMzBiOTYzNC4uYzE5ZDAxODJhZmFmZGE1ZDhjMjBlY2ZkN2QzOWQxNWJhMDE4
N2ViYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50VHlwZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50VHlwZS5jcHAKQEAgLTUxLDcgKzUxLDcgQEAg
Tm9kZTo6Tm9kZVR5cGUgRG9jdW1lbnRUeXBlOjpub2RlVHlwZSgpIGNvbnN0CiAgICAgcmV0dXJu
IERPQ1VNRU5UX1RZUEVfTk9ERTsKIH0KIAotUmVmUHRyPE5vZGU+IERvY3VtZW50VHlwZTo6Y2xv
bmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIGRvY3VtZW50VGFyZ2V0LCBDbG9uaW5nT3BlcmF0aW9u
KQorUmVmPE5vZGU+IERvY3VtZW50VHlwZTo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIGRv
Y3VtZW50VGFyZ2V0LCBDbG9uaW5nT3BlcmF0aW9uKQogewogICAgIHJldHVybiBjcmVhdGUoZG9j
dW1lbnRUYXJnZXQsIG1fbmFtZSwgbV9wdWJsaWNJZCwgbV9zeXN0ZW1JZCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnRUeXBlLmgKaW5kZXggYzdhMWQ5YjUyNmY2ZWVlYTExY2EzYTcyNzVlYjMxZjVh
NmUxMzJhNS4uYzc5YzBjZWE4NjlkMjA1OWJiZGJiODIxNTljOGZmMTA3ODgzOGVkNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudFR5cGUuaApAQCAtNTIsNyArNTIsNyBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgVVJMIGJhc2VVUkkoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFN0cmluZyBu
b2RlTmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgTm9kZVR5cGUgbm9kZVR5cGUo
KSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRl
cm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
UmVmPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikg
b3ZlcnJpZGU7CiAKICAgICBTdHJpbmcgbV9uYW1lOwogICAgIFN0cmluZyBtX3B1YmxpY0lkOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDY3NTAwMGE1NGE3MDgyOWMwZDExMTJkOThiZjg5YmNh
Y2RkN2MzOWMuLjNhODkwNjE3ZmEzYTA3YzdhMTljYTdhMzQyOTdjMTcxOTI4NGI5OWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAKQEAgLTMxMiwzOCArMzEyLDM3IEBAIHZvaWQgRWxlbWVudDo6ZGlz
cGF0Y2hTaW11bGF0ZWRDbGljayhFdmVudCogdW5kZXJseWluZ0V2ZW50LCBTaW11bGF0ZWRDbGlj
a01vdXNlCiAgICAgRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaFNpbXVsYXRlZENsaWNrKHRoaXMs
IHVuZGVybHlpbmdFdmVudCwgZXZlbnRPcHRpb25zLCB2aXN1YWxPcHRpb25zKTsKIH0KIAotUmVm
UHRyPE5vZGU+IEVsZW1lbnQ6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1
bWVudCwgQ2xvbmluZ09wZXJhdGlvbiB0eXBlKQorUmVmPE5vZGU+IEVsZW1lbnQ6OmNsb25lTm9k
ZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbiB0eXBl
KQogewogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgQ2xvbmluZ09wZXJhdGlvbjo6T25s
eVNlbGY6CiAgICAgY2FzZSBDbG9uaW5nT3BlcmF0aW9uOjpTZWxmV2l0aFRlbXBsYXRlQ29udGVu
dDoKICAgICAgICAgcmV0dXJuIGNsb25lRWxlbWVudFdpdGhvdXRDaGlsZHJlbih0YXJnZXREb2N1
bWVudCk7CiAgICAgY2FzZSBDbG9uaW5nT3BlcmF0aW9uOjpFdmVyeXRoaW5nOgotICAgICAgICBy
ZXR1cm4gY2xvbmVFbGVtZW50V2l0aENoaWxkcmVuKHRhcmdldERvY3VtZW50KTsKKyAgICAgICAg
YnJlYWs7CiAgICAgfQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBudWxs
cHRyOworICAgIHJldHVybiBjbG9uZUVsZW1lbnRXaXRoQ2hpbGRyZW4odGFyZ2V0RG9jdW1lbnQp
OwogfQogCi1SZWZQdHI8RWxlbWVudD4gRWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aENoaWxkcmVu
KERvY3VtZW50JiB0YXJnZXREb2N1bWVudCkKK1JlZjxFbGVtZW50PiBFbGVtZW50OjpjbG9uZUVs
ZW1lbnRXaXRoQ2hpbGRyZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50KQogewotICAgIFJlZlB0
cjxFbGVtZW50PiBjbG9uZSA9IGNsb25lRWxlbWVudFdpdGhvdXRDaGlsZHJlbih0YXJnZXREb2N1
bWVudCk7Ci0gICAgY2xvbmVDaGlsZE5vZGVzKGNsb25lLmdldCgpKTsKLSAgICByZXR1cm4gY2xv
bmUucmVsZWFzZSgpOworICAgIFJlZjxFbGVtZW50PiBjbG9uZSA9IGNsb25lRWxlbWVudFdpdGhv
dXRDaGlsZHJlbih0YXJnZXREb2N1bWVudCk7CisgICAgY2xvbmVDaGlsZE5vZGVzKGNsb25lKTsK
KyAgICByZXR1cm4gY2xvbmU7CiB9CiAKLVJlZlB0cjxFbGVtZW50PiBFbGVtZW50OjpjbG9uZUVs
ZW1lbnRXaXRob3V0Q2hpbGRyZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50KQorUmVmPEVsZW1l
bnQ+IEVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhvdXRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0
RG9jdW1lbnQpCiB7Ci0gICAgUmVmUHRyPEVsZW1lbnQ+IGNsb25lID0gY2xvbmVFbGVtZW50V2l0
aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbih0YXJnZXREb2N1bWVudCk7CisgICAgUmVmPEVsZW1l
bnQ+IGNsb25lID0gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbih0YXJn
ZXREb2N1bWVudCk7CiAgICAgLy8gVGhpcyB3aWxsIGNhdGNoIEhUTUwgZWxlbWVudHMgaW4gdGhl
IHdyb25nIG5hbWVzcGFjZSB0aGF0IGFyZSBub3QgY29ycmVjdGx5IGNvcGllZC4KICAgICAvLyBU
aGlzIGlzIGEgc2FuaXR5IGNoZWNrIGFzIEhUTUwgb3ZlcmxvYWRzIHNvbWUgb2YgdGhlIERPTSBt
ZXRob2RzLgogICAgIEFTU0VSVChpc0hUTUxFbGVtZW50KCkgPT0gY2xvbmUtPmlzSFRNTEVsZW1l
bnQoKSk7CiAKICAgICBjbG9uZS0+Y2xvbmVEYXRhRnJvbUVsZW1lbnQoKnRoaXMpOwotICAgIHJl
dHVybiBjbG9uZS5yZWxlYXNlKCk7CisgICAgcmV0dXJuIGNsb25lOwogfQogCi1SZWZQdHI8RWxl
bWVudD4gRWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihE
b2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQpCitSZWY8RWxlbWVudD4gRWxlbWVudDo6Y2xvbmVFbGVt
ZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQp
CiB7CiAgICAgcmV0dXJuIHRhcmdldERvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnUU5hbWUoKSwg
ZmFsc2UpOwogfQpAQCAtMjMxOSw3ICsyMzE4LDcgQEAgdm9pZCBFbGVtZW50OjpzZXRPdXRlckhU
TUwoY29uc3QgU3RyaW5nJiBodG1sLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBpZiAoZWMpCiAg
ICAgICAgIHJldHVybjsKICAgICAKLSAgICBwYXJlbnQtPnJlcGxhY2VDaGlsZChmcmFnbWVudC5y
ZWxlYXNlKCksIHRoaXMsIGVjKTsKKyAgICBwYXJlbnQtPnJlcGxhY2VDaGlsZChmcmFnbWVudC5y
ZWxlYXNlTm9uTnVsbCgpLCAqdGhpcywgZWMpOwogICAgIFJlZlB0cjxOb2RlPiBub2RlID0gbmV4
dCA/IG5leHQtPnByZXZpb3VzU2libGluZygpIDogbnVsbHB0cjsKICAgICBpZiAoIWVjICYmIGlz
PFRleHQ+KG5vZGUuZ2V0KCkpKQogICAgICAgICBtZXJnZVdpdGhOZXh0VGV4dE5vZGUoZG93bmNh
c3Q8VGV4dD4oKm5vZGUpLCBlYyk7CkBAIC0yMzM4LDcgKzIzMzcsNyBAQCB2b2lkIEVsZW1lbnQ6
OnNldElubmVySFRNTChjb25zdCBTdHJpbmcmIGh0bWwsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAg
ICAgICAgICAgY29udGFpbmVyID0gZG93bmNhc3Q8SFRNTFRlbXBsYXRlRWxlbWVudD4oKnRoaXMp
LmNvbnRlbnQoKTsKICNlbmRpZgogCi0gICAgICAgIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVu
dCgqY29udGFpbmVyLCBmcmFnbWVudC5yZWxlYXNlKCksIGVjKTsKKyAgICAgICAgcmVwbGFjZUNo
aWxkcmVuV2l0aEZyYWdtZW50KCpjb250YWluZXIsIGZyYWdtZW50LnJlbGVhc2VOb25OdWxsKCks
IGVjKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IDFlNjA3MDNjYjZiMmZkOTM2
MDcxZjg1YjliOWRhOWQ3YWE0MGNjNGIuLjA0ODEwZTFjZjg0OTVlZDI0ZmQ4OTQ1MDUzZmFmYmNk
NDMyMmQxMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMjAxLDggKzIwMSw4IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBS
ZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aENoaWxkcmVuKERvY3VtZW50Jik7Ci0gICAg
UmVmUHRyPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRDaGlsZHJlbihEb2N1bWVudCYpOwor
ICAgIFJlZjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRoQ2hpbGRyZW4oRG9jdW1lbnQmKTsKKyAg
ICBSZWY8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dENoaWxkcmVuKERvY3VtZW50Jik7CiAK
ICAgICB2b2lkIG5vcm1hbGl6ZUF0dHJpYnV0ZXMoKTsKICAgICBTdHJpbmcgbm9kZU5hbWVQcmVz
ZXJ2aW5nQ2FzZSgpIGNvbnN0OwpAQCAtNTYzLDggKzU2Myw4IEBAIHByaXZhdGU6CiAKICAgICAv
LyBjbG9uZU5vZGUgaXMgcHJpdmF0ZSBzbyB0aGF0IG5vbi12aXJ0dWFsIGNsb25lRWxlbWVudFdp
dGhDaGlsZHJlbiBhbmQgY2xvbmVFbGVtZW50V2l0aG91dENoaWxkcmVuCiAgICAgLy8gYXJlIHVz
ZWQgaW5zdGVhZC4KLSAgICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChE
b2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVmUHRy
PEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1l
bnQmKTsKKyAgICB2aXJ0dWFsIFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYs
IENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPEVsZW1lbnQ+IGNs
b25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmKTsKIAogICAg
IHZvaWQgYWRkU2hhZG93Um9vdChSZWY8U2hhZG93Um9vdD4mJik7CiAgICAgdm9pZCByZW1vdmVT
aGFkb3dSb290KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJl
bmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuY3BwCmluZGV4IGEy
ZmY2M2IwMTBlNmUyOGUwZmM0ZWFhZTg1YTc0YTEzZmU5ZDZjN2YuLjdlOTFhNDYyZGE4MjA5ZDky
MmM0NWRjODRjNDFhMDg1NWFkNmJlMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bnRpdHlSZWZlcmVuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVu
Y2UuY3BwCkBAIC00Niw3ICs0Niw3IEBAIE5vZGU6Ok5vZGVUeXBlIEVudGl0eVJlZmVyZW5jZTo6
bm9kZVR5cGUoKSBjb25zdAogICAgIHJldHVybiBFTlRJVFlfUkVGRVJFTkNFX05PREU7CiB9CiAK
LVJlZlB0cjxOb2RlPiBFbnRpdHlSZWZlcmVuY2U6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50
JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikKK1JlZjxOb2RlPiBFbnRpdHlSZWZl
cmVuY2U6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmlu
Z09wZXJhdGlvbikKIHsKICAgICByZXR1cm4gY3JlYXRlKHRhcmdldERvY3VtZW50LCBtX2VudGl0
eU5hbWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5j
ZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5oCmluZGV4IDAzZjQzY2Rm
OTVlYTY4ZjAwNGQ5ZjExM2JhMTY4ZjBmN2JmYWYzOTYuLjg2ZGZlYjM5ODI1YjM0NTBlNzUzNTky
NTA2ODUxMTBiM2FmMGNhOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlS
ZWZlcmVuY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmgKQEAg
LTM1LDcgKzM1LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1lKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBOb2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0IG92
ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVmUHRyPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3Vt
ZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8Tm9kZT4g
Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsK
IAogICAgIFN0cmluZyBtX2VudGl0eU5hbWU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDhhYTRh
MWYyYTI0ZmMwZThmMWRlODY0YWNhY2MxZTJkYzVkNmNhNTMuLjJmOGM2Zjc5OWFiYzdiZTQ2ZTk3
ODNlZTU2MTJmYzhhOTQ0MTQ5MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTQyOSwzOCArNDI5LDU0
IEBAIEVsZW1lbnQqIE5vZGU6Om5leHRFbGVtZW50U2libGluZygpIGNvbnN0CiAKIGJvb2wgTm9k
ZTo6aW5zZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIHJlZkNoaWxk
LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKKyAgICBpZiAoIW5ld0NoaWxkKSB7CisgICAgICAgIGVj
ID0gVHlwZUVycm9yOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogICAgIGlmICghaXM8
Q29udGFpbmVyTm9kZT4oKnRoaXMpKSB7CiAgICAgICAgIGVjID0gSElFUkFSQ0hZX1JFUVVFU1Rf
RVJSOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIHJldHVybiBkb3duY2FzdDxD
b250YWluZXJOb2RlPigqdGhpcykuaW5zZXJ0QmVmb3JlKG5ld0NoaWxkLCByZWZDaGlsZCwgZWMp
OworICAgIHJldHVybiBkb3duY2FzdDxDb250YWluZXJOb2RlPigqdGhpcykuaW5zZXJ0QmVmb3Jl
KCpuZXdDaGlsZCwgcmVmQ2hpbGQsIGVjKTsKIH0KIAogYm9vbCBOb2RlOjpyZXBsYWNlQ2hpbGQo
UGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUm
IGVjKQogeworICAgIGlmICghbmV3Q2hpbGQgfHwgIW9sZENoaWxkKSB7CisgICAgICAgIGVjID0g
VHlwZUVycm9yOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogICAgIGlmICghaXM8Q29u
dGFpbmVyTm9kZT4oKnRoaXMpKSB7CiAgICAgICAgIGVjID0gSElFUkFSQ0hZX1JFUVVFU1RfRVJS
OwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIHJldHVybiBkb3duY2FzdDxDb250
YWluZXJOb2RlPigqdGhpcykucmVwbGFjZUNoaWxkKG5ld0NoaWxkLCBvbGRDaGlsZCwgZWMpOwor
ICAgIHJldHVybiBkb3duY2FzdDxDb250YWluZXJOb2RlPigqdGhpcykucmVwbGFjZUNoaWxkKCpu
ZXdDaGlsZCwgKm9sZENoaWxkLCBlYyk7CiB9CiAKIGJvb2wgTm9kZTo6cmVtb3ZlQ2hpbGQoTm9k
ZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogeworICAgIGlmICghb2xkQ2hpbGQpIHsK
KyAgICAgICAgZWMgPSBUeXBlRXJyb3I7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAg
ICAgaWYgKCFpczxDb250YWluZXJOb2RlPigqdGhpcykpIHsKICAgICAgICAgZWMgPSBOT1RfRk9V
TkRfRVJSOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIHJldHVybiBkb3duY2Fz
dDxDb250YWluZXJOb2RlPigqdGhpcykucmVtb3ZlQ2hpbGQob2xkQ2hpbGQsIGVjKTsKKyAgICBy
ZXR1cm4gZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4oKnRoaXMpLnJlbW92ZUNoaWxkKCpvbGRDaGls
ZCwgZWMpOwogfQogCiBib29sIE5vZGU6OmFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3
Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogeworICAgIGlmICghbmV3Q2hpbGQpIHsKKyAgICAg
ICAgZWMgPSBUeXBlRXJyb3I7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAgICAgaWYg
KCFpczxDb250YWluZXJOb2RlPigqdGhpcykpIHsKICAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVR
VUVTVF9FUlI7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIGRvd25j
YXN0PENvbnRhaW5lck5vZGU+KCp0aGlzKS5hcHBlbmRDaGlsZChuZXdDaGlsZCwgZWMpOworICAg
IHJldHVybiBkb3duY2FzdDxDb250YWluZXJOb2RlPigqdGhpcykuYXBwZW5kQ2hpbGQoKm5ld0No
aWxkLCBlYyk7CiB9CiAKIHN0YXRpYyBIYXNoU2V0PFJlZlB0cjxOb2RlPj4gbm9kZVNldFByZVRy
YW5zZm9ybWVkRnJvbU5vZGVPclN0cmluZ1ZlY3Rvcihjb25zdCBWZWN0b3I8Tm9kZU9yU3RyaW5n
PiYgbm9kZU9yU3RyaW5nVmVjdG9yKQpAQCAtNTE1LDcgKzUzMSw3IEBAIHZvaWQgTm9kZTo6YmVm
b3JlKFZlY3RvcjxOb2RlT3JTdHJpbmc+JiYgbm9kZU9yU3RyaW5nVmVjdG9yLCBFeGNlcHRpb25D
b2RlJiBlYykKICAgICBlbHNlCiAgICAgICAgIHZpYWJsZVByZXZpb3VzU2libGluZyA9IHBhcmVu
dC0+Zmlyc3RDaGlsZCgpOwogCi0gICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobm9kZS5yZWxlYXNl
KCksIHZpYWJsZVByZXZpb3VzU2libGluZy5nZXQoKSwgZWMpOworICAgIHBhcmVudC0+aW5zZXJ0
QmVmb3JlKG5vZGUucmVsZWFzZU5vbk51bGwoKSwgdmlhYmxlUHJldmlvdXNTaWJsaW5nLmdldCgp
LCBlYyk7CiB9CiAKIHZvaWQgTm9kZTo6YWZ0ZXIoVmVjdG9yPE5vZGVPclN0cmluZz4mJiBub2Rl
T3JTdHJpbmdWZWN0b3IsIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtNTMxLDcgKzU0Nyw3IEBAIHZv
aWQgTm9kZTo6YWZ0ZXIoVmVjdG9yPE5vZGVPclN0cmluZz4mJiBub2RlT3JTdHJpbmdWZWN0b3Is
IEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIGlmIChlYyB8fCAhbm9kZSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobm9kZS5yZWxlYXNlKCksIHZpYWJsZU5leHRT
aWJsaW5nLmdldCgpLCBlYyk7CisgICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobm9kZS5yZWxlYXNl
Tm9uTnVsbCgpLCB2aWFibGVOZXh0U2libGluZy5nZXQoKSwgZWMpOwogfQogCiB2b2lkIE5vZGU6
OnJlcGxhY2VXaXRoKFZlY3RvcjxOb2RlT3JTdHJpbmc+JiYgbm9kZU9yU3RyaW5nVmVjdG9yLCBF
eGNlcHRpb25Db2RlJiBlYykKQEAgLTU0OCwxNSArNTY0LDE1IEBAIHZvaWQgTm9kZTo6cmVwbGFj
ZVdpdGgoVmVjdG9yPE5vZGVPclN0cmluZz4mJiBub2RlT3JTdHJpbmdWZWN0b3IsIEV4Y2VwdGlv
bkNvZGUmCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChwYXJlbnROb2RlKCkgPT0gcGFyZW50
KQotICAgICAgICBwYXJlbnQtPnJlcGxhY2VDaGlsZChub2RlLnJlbGVhc2UoKSwgdGhpcywgZWMp
OworICAgICAgICBwYXJlbnQtPnJlcGxhY2VDaGlsZChub2RlLnJlbGVhc2VOb25OdWxsKCksICp0
aGlzLCBlYyk7CiAgICAgZWxzZQotICAgICAgICBwYXJlbnQtPmluc2VydEJlZm9yZShub2RlLnJl
bGVhc2UoKSwgdmlhYmxlTmV4dFNpYmxpbmcuZ2V0KCksIGVjKTsKKyAgICAgICAgcGFyZW50LT5p
bnNlcnRCZWZvcmUobm9kZS5yZWxlYXNlTm9uTnVsbCgpLCB2aWFibGVOZXh0U2libGluZy5nZXQo
KSwgZWMpOwogfQogCiB2b2lkIE5vZGU6OnJlbW92ZShFeGNlcHRpb25Db2RlJiBlYykKIHsKICAg
ICBpZiAoQ29udGFpbmVyTm9kZSogcGFyZW50ID0gcGFyZW50Tm9kZSgpKQotICAgICAgICBwYXJl
bnQtPnJlbW92ZUNoaWxkKHRoaXMsIGVjKTsKKyAgICAgICAgcGFyZW50LT5yZW1vdmVDaGlsZCgq
dGhpcywgZWMpOwogfQogCiB2b2lkIE5vZGU6Om5vcm1hbGl6ZSgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCAx
ODQ4N2E2ZTU2OWFmNDM3MmE2YmE2MjcwYjA3MTlkY2VjNGI3Nzk3Li40YTQ2YTc5ZWYwZDlkMDA0
MWRhODcxNTAxYTBmYmM5MjYyMzBiYTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTIwMSw4ICsyMDEsOCBA
QCBwdWJsaWM6CiAgICAgICAgIFNlbGZXaXRoVGVtcGxhdGVDb250ZW50LAogICAgICAgICBFdmVy
eXRoaW5nLAogICAgIH07Ci0gICAgdmlydHVhbCBSZWZQdHI8Tm9kZT4gY2xvbmVOb2RlSW50ZXJu
YWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSA9IDA7Ci0gICAgUmVmUHRyPE5vZGU+IGNs
b25lTm9kZShib29sIGRlZXApIHsgcmV0dXJuIGNsb25lTm9kZUludGVybmFsKGRvY3VtZW50KCks
IGRlZXAgPyBDbG9uaW5nT3BlcmF0aW9uOjpFdmVyeXRoaW5nIDogQ2xvbmluZ09wZXJhdGlvbjo6
T25seVNlbGYpOyB9CisgICAgdmlydHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9j
dW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSA9IDA7CisgICAgUmVmPE5vZGU+IGNsb25lTm9kZShi
b29sIGRlZXApIHsgcmV0dXJuIGNsb25lTm9kZUludGVybmFsKGRvY3VtZW50KCksIGRlZXAgPyBD
bG9uaW5nT3BlcmF0aW9uOjpFdmVyeXRoaW5nIDogQ2xvbmluZ09wZXJhdGlvbjo6T25seVNlbGYp
OyB9CiAKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lKCkgY29uc3Q7
CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSgpIGNvbnN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcAppbmRleCBiMzQz
Y2EzYTAxYWU4ZWVmZGI1OTdlNWQ0ZTIyZTI3Yjk5M2ZlZjkwLi4zMDAwOWI3YjBkZmNlYTU2OWUy
Y2NlYTE4MzE1Y2IyNzUxMzFjMDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJv
Y2Vzc2luZ0luc3RydWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2lu
Z0luc3RydWN0aW9uLmNwcApAQCAtNzksNyArNzksNyBAQCBOb2RlOjpOb2RlVHlwZSBQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb246Om5vZGVUeXBlKCkgY29uc3QKICAgICByZXR1cm4gUFJPQ0VTU0lOR19J
TlNUUlVDVElPTl9OT0RFOwogfQogCi1SZWZQdHI8Tm9kZT4gUHJvY2Vzc2luZ0luc3RydWN0aW9u
OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVy
YXRpb24pCitSZWY8Tm9kZT4gUHJvY2Vzc2luZ0luc3RydWN0aW9uOjpjbG9uZU5vZGVJbnRlcm5h
bChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24pCiB7CiAgICAgLy8g
RklYTUU6IElzIGl0IGEgcHJvYmxlbSB0aGF0IHRoaXMgZG9lcyBub3QgY29weSBtX2xvY2FsSHJl
Zj8KICAgICAvLyBXaGF0IGFib3V0IG90aGVyIGRhdGEgbWVtYmVycz8KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaAppbmRleCAyMWZkOWU5N2NkMmY3NWM4ZmQ3NTgw
MGUwMjJhZGEyOTUzOTc2ZjhlLi5lZmE5MDViNjY2M2YzYTI5M2M5NzcxMDUzNGZkNmZkYTk4NDJl
OTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5oCkBAIC01
OCw3ICs1OCw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFN0cmluZyBub2RlTmFtZSgpIGNv
bnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgTm9kZVR5cGUgbm9kZVR5cGUoKSBjb25zdCBvdmVy
cmlkZTsKLSAgICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVu
dCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNs
b25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CiAK
ICAgICB2aXJ0dWFsIEluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENv
bnRhaW5lck5vZGUmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb20oQ29u
dGFpbmVyTm9kZSYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Jh
bmdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKaW5kZXggNGQyMjdkYWFmNGU0
NDg4MTg4NDI3MWMxYmRlOWYxODgzZjVhYzRhNC4uMjY1MDhjZjA0NzJkNGYwZWRlZmE1ZDM1NTdj
ZTkyM2M3OGIxYjkyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCkBAIC02NjUsNyArNjY1LDcgQEAgUmVm
UHRyPERvY3VtZW50RnJhZ21lbnQ+IFJhbmdlOjpwcm9jZXNzQ29udGVudHMoQWN0aW9uVHlwZSBh
Y3Rpb24sIEV4Y2VwdGlvbkNvZGUKICAgICAvLyAob3IganVzdCBkZWxldGUgdGhlIHN0dWZmIGlu
IGJldHdlZW4pCiAKICAgICBpZiAoKGFjdGlvbiA9PSBFeHRyYWN0IHx8IGFjdGlvbiA9PSBDbG9u
ZSkgJiYgbGVmdENvbnRlbnRzKQotICAgICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQobGVmdENv
bnRlbnRzLCBlYyk7CisgICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZCgqbGVmdENvbnRlbnRz
LCBlYyk7CiAKICAgICBpZiAocHJvY2Vzc1N0YXJ0KSB7CiAgICAgICAgIE5vZGVWZWN0b3Igbm9k
ZXM7CkBAIC02NzUsNyArNjc1LDcgQEAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFJhbmdlOjpw
cm9jZXNzQ29udGVudHMoQWN0aW9uVHlwZSBhY3Rpb24sIEV4Y2VwdGlvbkNvZGUKICAgICB9CiAK
ICAgICBpZiAoKGFjdGlvbiA9PSBFeHRyYWN0IHx8IGFjdGlvbiA9PSBDbG9uZSkgJiYgcmlnaHRD
b250ZW50cykKLSAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKHJpZ2h0Q29udGVudHMsIGVj
KTsKKyAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKCpyaWdodENvbnRlbnRzLCBlYyk7CiAK
ICAgICByZXR1cm4gZnJhZ21lbnQ7CiB9CkBAIC03MDIsNyArNzAyLDcgQEAgUmVmUHRyPE5vZGU+
IFJhbmdlOjpwcm9jZXNzQ29udGVudHNCZXR3ZWVuT2Zmc2V0cyhBY3Rpb25UeXBlIGFjdGlvbiwg
UGFzc1JlZlB0cjwKICAgICAgICAgZW5kT2Zmc2V0ID0gc3RkOjptaW4oZW5kT2Zmc2V0LCBzdGF0
aWNfY2FzdDxDaGFyYWN0ZXJEYXRhKj4oY29udGFpbmVyKS0+bGVuZ3RoKCkpOwogICAgICAgICBz
dGFydE9mZnNldCA9IHN0ZDo6bWluKHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQpOwogICAgICAgICBp
ZiAoYWN0aW9uID09IEV4dHJhY3QgfHwgYWN0aW9uID09IENsb25lKSB7Ci0gICAgICAgICAgICBS
ZWZQdHI8Q2hhcmFjdGVyRGF0YT4gYyA9IHN0YXRpY19wb2ludGVyX2Nhc3Q8Q2hhcmFjdGVyRGF0
YT4oY29udGFpbmVyLT5jbG9uZU5vZGUodHJ1ZSkpOworICAgICAgICAgICAgUmVmUHRyPENoYXJh
Y3RlckRhdGE+IGMgPSBzdGF0aWNfY2FzdDxDaGFyYWN0ZXJEYXRhKj4oY29udGFpbmVyLT5jbG9u
ZU5vZGUodHJ1ZSkucHRyKCkpOwogICAgICAgICAgICAgZGVsZXRlQ2hhcmFjdGVyRGF0YShjLCBz
dGFydE9mZnNldCwgZW5kT2Zmc2V0LCBlYyk7CiAgICAgICAgICAgICBpZiAoZnJhZ21lbnQpIHsK
ICAgICAgICAgICAgICAgICByZXN1bHQgPSBmcmFnbWVudDsKQEAgLTcxNyw3ICs3MTcsNyBAQCBS
ZWZQdHI8Tm9kZT4gUmFuZ2U6OnByb2Nlc3NDb250ZW50c0JldHdlZW5PZmZzZXRzKEFjdGlvblR5
cGUgYWN0aW9uLCBQYXNzUmVmUHRyPAogICAgICAgICBlbmRPZmZzZXQgPSBzdGQ6Om1pbihlbmRP
ZmZzZXQsIHN0YXRpY19jYXN0PFByb2Nlc3NpbmdJbnN0cnVjdGlvbio+KGNvbnRhaW5lciktPmRh
dGEoKS5sZW5ndGgoKSk7CiAgICAgICAgIHN0YXJ0T2Zmc2V0ID0gc3RkOjptaW4oc3RhcnRPZmZz
ZXQsIGVuZE9mZnNldCk7CiAgICAgICAgIGlmIChhY3Rpb24gPT0gRXh0cmFjdCB8fCBhY3Rpb24g
PT0gQ2xvbmUpIHsKLSAgICAgICAgICAgIFJlZlB0cjxQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24+IGMg
PSBzdGF0aWNfcG9pbnRlcl9jYXN0PFByb2Nlc3NpbmdJbnN0cnVjdGlvbj4oY29udGFpbmVyLT5j
bG9uZU5vZGUodHJ1ZSkpOworICAgICAgICAgICAgUmVmUHRyPFByb2Nlc3NpbmdJbnN0cnVjdGlv
bj4gYyA9IHN0YXRpY19jYXN0PFByb2Nlc3NpbmdJbnN0cnVjdGlvbio+KGNvbnRhaW5lci0+Y2xv
bmVOb2RlKHRydWUpLnB0cigpKTsKICAgICAgICAgICAgIGMtPnNldERhdGEoYy0+ZGF0YSgpLnN1
YnN0cmluZyhzdGFydE9mZnNldCwgZW5kT2Zmc2V0IC0gc3RhcnRPZmZzZXQpLCBlYyk7CiAgICAg
ICAgICAgICBpZiAoZnJhZ21lbnQpIHsKICAgICAgICAgICAgICAgICByZXN1bHQgPSBmcmFnbWVu
dDsKQEAgLTkzNSw3ICs5MzUsNyBAQCB2b2lkIFJhbmdlOjppbnNlcnROb2RlKFBhc3NSZWZQdHI8
Tm9kZT4gcHJwTmV3Tm9kZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIAogICAgICAgICBjb250YWluZXIgPSAmc3RhcnRDb250YWluZXIoKTsKLSAgICAg
ICAgY29udGFpbmVyLT5wYXJlbnROb2RlKCktPmluc2VydEJlZm9yZShuZXdOb2RlLnJlbGVhc2Uo
KSwgbmV3VGV4dC5nZXQoKSwgZWMpOworICAgICAgICBjb250YWluZXItPnBhcmVudE5vZGUoKS0+
aW5zZXJ0QmVmb3JlKG5ld05vZGUucmVsZWFzZU5vbk51bGwoKSwgbmV3VGV4dC5nZXQoKSwgZWMp
OwogICAgICAgICBpZiAoZWMpCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTEzMDMsNyArMTMw
Myw3IEBAIHZvaWQgUmFuZ2U6OnN1cnJvdW5kQ29udGVudHMoUGFzc1JlZlB0cjxOb2RlPiBwYXNz
TmV3UGFyZW50LCBFeGNlcHRpb25Db2RlJiBlYykKIAogICAgIGVjID0gMDsKICAgICB3aGlsZSAo
Tm9kZSogbiA9IG5ld1BhcmVudC0+Zmlyc3RDaGlsZCgpKSB7Ci0gICAgICAgIGRvd25jYXN0PENv
bnRhaW5lck5vZGU+KCpuZXdQYXJlbnQpLnJlbW92ZUNoaWxkKG4sIGVjKTsKKyAgICAgICAgZG93
bmNhc3Q8Q29udGFpbmVyTm9kZT4oKm5ld1BhcmVudCkucmVtb3ZlQ2hpbGQoKm4sIGVjKTsKICAg
ICAgICAgaWYgKGVjKQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFk
b3dSb290LmNwcAppbmRleCBhMTIyNTdmODJkZGFkYzgwMzhlOGEzMGEzNDI1MmY2MzI5ZjdiYjZj
Li44ODYxMDBkYjQ2OWUyNDFlNDZiOTU2YmM1NzAxZGEwY2M1ZTY2OTVhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1NoYWRvd1Jvb3QuY3BwCkBAIC05Miw3ICs5Miw3IEBAIHZvaWQgU2hhZG93Um9vdDo6c2V0SW5u
ZXJIVE1MKGNvbnN0IFN0cmluZyYgbWFya3VwLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICB9CiAK
ICAgICBpZiAoUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21l
bnRGb3JJbm5lck91dGVySFRNTChtYXJrdXAsIGhvc3QoKSwgQWxsb3dTY3JpcHRpbmdDb250ZW50
LCBlYykpCi0gICAgICAgIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudCgqdGhpcywgZnJhZ21l
bnQucmVsZWFzZSgpLCBlYyk7CisgICAgICAgIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudCgq
dGhpcywgZnJhZ21lbnQucmVsZWFzZU5vbk51bGwoKSwgZWMpOwogfQogCiBib29sIFNoYWRvd1Jv
b3Q6OmNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkgY29uc3QKQEAgLTEzMSw5ICsxMzEs
MTAgQEAgdm9pZCBTaGFkb3dSb290OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2Um
IGNoYW5nZSkKICAgICBpbnZhbGlkYXRlRGlzdHJpYnV0aW9uKCk7CiB9CiAKLVJlZlB0cjxOb2Rl
PiBTaGFkb3dSb290OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRp
b24pCitSZWY8Tm9kZT4gU2hhZG93Um9vdDo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBD
bG9uaW5nT3BlcmF0aW9uKQogewotICAgIHJldHVybiBudWxscHRyOyAvLyBTaGFkb3dSb290cyBz
aG91bGQgbmV2ZXIgYmUgY2xvbmVkLgorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgcmV0dXJuICpzdGF0aWNfY2FzdDxOb2RlKj4obnVsbHB0cik7IC8vIFNoYWRvd1Jvb3Rz
IHNob3VsZCBuZXZlciBiZSBjbG9uZWQuCiB9CiAKIHZvaWQgU2hhZG93Um9vdDo6cmVtb3ZlQWxs
RXZlbnRMaXN0ZW5lcnMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jv
b3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKaW5kZXggNmQzMTFmZGI2MjYz
ZGExMmRjOWQ5MDRmNzEwZDA3YjllYzg1YThjZi4uNjMxNjA4YWYxYWQ0NDM2YTI1YmE2MWViMzlk
ZWQ4ZmY2YTIyYmJkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCkBAIC03Niw3ICs3Niw3IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUpIGNv
bnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hp
bGRDaGFuZ2UmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgUmVmUHRyPE5vZGU+IGNsb25lTm9k
ZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0
aW9uKSBvdmVycmlkZTsKIAogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZG4ndCBoYXBwZW4uIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODgzNAogICAgIGJvb2wgaXNP
cnBoYW4oKSBjb25zdCB7IHJldHVybiAhbV9ob3N0OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKaW5kZXggYjEx
NzFkNzYxMWJlNmRlNjUxNmI2MDVkY2ZlMWI2ZGMxOWQ3MTM0My4uNmM0Yzg5ZGE5ZWI2ZWZjZjA2
YWI4NDI5ZWE1YzRkMTIyM2VlMzQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Rl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcApAQCAtNzMsNyArNzMsNyBA
QCBSZWZQdHI8VGV4dD4gVGV4dDo6c3BsaXRUZXh0KHVuc2lnbmVkIG9mZnNldCwgRXhjZXB0aW9u
Q29kZSYgZWMpCiAgICAgZGlzcGF0Y2hNb2RpZmllZEV2ZW50KG9sZFN0cik7CiAKICAgICBpZiAo
cGFyZW50Tm9kZSgpKQotICAgICAgICBwYXJlbnROb2RlKCktPmluc2VydEJlZm9yZShuZXdUZXh0
LnB0cigpLCBuZXh0U2libGluZygpLCBlYyk7CisgICAgICAgIHBhcmVudE5vZGUoKS0+aW5zZXJ0
QmVmb3JlKG5ld1RleHQuY29weVJlZigpLCBuZXh0U2libGluZygpLCBlYyk7CiAgICAgaWYgKGVj
KQogICAgICAgICByZXR1cm4gMDsKIApAQCAtMTMyLDI4ICsxMzIsMjggQEAgUmVmUHRyPFRleHQ+
IFRleHQ6OnJlcGxhY2VXaG9sZVRleHQoY29uc3QgU3RyaW5nJiBuZXdUZXh0LCBFeGNlcHRpb25D
b2RlJikKICAgICBSZWZQdHI8VGV4dD4gcHJvdGVjdGVkVGhpcyh0aGlzKTsgLy8gTXV0YXRpb24g
ZXZlbnQgaGFuZGxlcnMgY291bGQgY2F1c2Ugb3VyIGxhc3QgcmVmIHRvIGdvIGF3YXkKICAgICBS
ZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50ID0gcGFyZW50Tm9kZSgpOyAvLyBQcm90ZWN0IGFn
YWluc3QgbXV0YXRpb24gaGFuZGxlcnMgbW92aW5nIHRoaXMgbm9kZSBkdXJpbmcgdHJhdmVyc2Fs
CiAgICAgZm9yIChSZWZQdHI8Tm9kZT4gbiA9IHN0YXJ0VGV4dDsgbiAmJiBuICE9IHRoaXMgJiYg
bi0+aXNUZXh0Tm9kZSgpICYmIG4tPnBhcmVudE5vZGUoKSA9PSBwYXJlbnQ7KSB7Ci0gICAgICAg
IFJlZlB0cjxOb2RlPiBub2RlVG9SZW1vdmUobi5yZWxlYXNlKCkpOworICAgICAgICBSZWY8Tm9k
ZT4gbm9kZVRvUmVtb3ZlKG4ucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgICAgIG4gPSBub2RlVG9S
ZW1vdmUtPm5leHRTaWJsaW5nKCk7Ci0gICAgICAgIHBhcmVudC0+cmVtb3ZlQ2hpbGQobm9kZVRv
UmVtb3ZlLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgcGFyZW50LT5yZW1vdmVD
aGlsZChXVEY6Om1vdmUobm9kZVRvUmVtb3ZlKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgfQog
CiAgICAgaWYgKHRoaXMgIT0gZW5kVGV4dCkgewogICAgICAgICBOb2RlKiBvbmVQYXN0RW5kVGV4
dCA9IGVuZFRleHQtPm5leHRTaWJsaW5nKCk7CiAgICAgICAgIGZvciAoUmVmUHRyPE5vZGU+IG4g
PSBuZXh0U2libGluZygpOyBuICYmIG4gIT0gb25lUGFzdEVuZFRleHQgJiYgbi0+aXNUZXh0Tm9k
ZSgpICYmIG4tPnBhcmVudE5vZGUoKSA9PSBwYXJlbnQ7KSB7Ci0gICAgICAgICAgICBSZWZQdHI8
Tm9kZT4gbm9kZVRvUmVtb3ZlKG4ucmVsZWFzZSgpKTsKKyAgICAgICAgICAgIFJlZjxOb2RlPiBu
b2RlVG9SZW1vdmUobi5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICAgICAgICAgIG4gPSBub2RlVG9S
ZW1vdmUtPm5leHRTaWJsaW5nKCk7Ci0gICAgICAgICAgICBwYXJlbnQtPnJlbW92ZUNoaWxkKG5v
ZGVUb1JlbW92ZS5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgICAgICAgICBwYXJlbnQt
PnJlbW92ZUNoaWxkKFdURjo6bW92ZShub2RlVG9SZW1vdmUpLCBJR05PUkVfRVhDRVBUSU9OKTsK
ICAgICAgICAgfQogICAgIH0KIAogICAgIGlmIChuZXdUZXh0LmlzRW1wdHkoKSkgewogICAgICAg
ICBpZiAocGFyZW50ICYmIHBhcmVudE5vZGUoKSA9PSBwYXJlbnQpCi0gICAgICAgICAgICBwYXJl
bnQtPnJlbW92ZUNoaWxkKHRoaXMsIElHTk9SRV9FWENFUFRJT04pOwotICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgICAgIHBhcmVudC0+cmVtb3ZlQ2hpbGQoKnRoaXMsIElHTk9SRV9FWENFUFRJ
T04pOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBzZXREYXRhKG5ld1Rl
eHQsIElHTk9SRV9FWENFUFRJT04pOwotICAgIHJldHVybiBwcm90ZWN0ZWRUaGlzLnJlbGVhc2Uo
KTsKKyAgICByZXR1cm4gcHJvdGVjdGVkVGhpczsKIH0KIAogU3RyaW5nIFRleHQ6Om5vZGVOYW1l
KCkgY29uc3QKQEAgLTE2Niw3ICsxNjYsNyBAQCBOb2RlOjpOb2RlVHlwZSBUZXh0Ojpub2RlVHlw
ZSgpIGNvbnN0CiAgICAgcmV0dXJuIFRFWFRfTk9ERTsKIH0KIAotUmVmUHRyPE5vZGU+IFRleHQ6
OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJh
dGlvbikKK1JlZjxOb2RlPiBUZXh0OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0
RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24pCiB7CiAgICAgcmV0dXJuIGNyZWF0ZSh0YXJnZXRE
b2N1bWVudCwgZGF0YSgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5oCmluZGV4IGE5Njc0MzY0Y2RhMGRlZGI4ZWNh
NTljYzBhMjVhNTM3MmJiYTk3ZDQuLmVmZDZiZGU5MjdjMWY5OTkzNTdlMjUxZWU0NTQyMDlhZDFj
ZjUwZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1RleHQuaApAQCAtNjIsNyArNjIsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRl
OgogICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCBOb2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVm
UHRyPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1l
bnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRU
eXBlQWxsb3dlZChOb2RlVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIFJlZjxU
ZXh0PiB2aXJ0dWFsQ3JlYXRlKGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcAppbmRleCA2YThkOWU5MWEyNTFiMWFiOTdhMTllMjMy
MzIwY2I4NDY4YjVjMzA0Li44Y2NjMjdlMzYxMjcyNmNkZDdlZWNlOWMzOWUzYjgwYmI0NjAwNjhm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcApAQCAt
MzUsMTMgKzM1LDEyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQXBwZW5kTm9kZUNvbW1h
bmQ6OkFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQ
YXNzUmVmUHRyPE5vZGU+IG5vZGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKK0FwcGVuZE5v
ZGVDb21tYW5kOjpBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBh
cmVudCwgTm9kZSYgbm9kZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQogICAgIDogU2ltcGxl
RWRpdENvbW1hbmQocGFyZW50LT5kb2N1bWVudCgpLCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9w
YXJlbnQocGFyZW50KQogICAgICwgbV9ub2RlKG5vZGUpCiB7CiAgICAgQVNTRVJUKG1fcGFyZW50
KTsKLSAgICBBU1NFUlQobV9ub2RlKTsKICAgICBBU1NFUlQoIW1fbm9kZS0+cGFyZW50Tm9kZSgp
KTsKIAogICAgIEFTU0VSVChtX3BhcmVudC0+aGFzRWRpdGFibGVTdHlsZSgpIHx8ICFtX3BhcmVu
dC0+cmVuZGVyZXIoKSk7CkBAIC02OCwxMCArNjcsMTAgQEAgdm9pZCBBcHBlbmROb2RlQ29tbWFu
ZDo6ZG9BcHBseSgpCiAgICAgaWYgKCFtX3BhcmVudC0+aGFzRWRpdGFibGVTdHlsZSgpICYmIG1f
cGFyZW50LT5yZW5kZXJlcigpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3BhcmVudC0+YXBw
ZW5kQ2hpbGQobV9ub2RlLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBtX3BhcmVudC0+
YXBwZW5kQ2hpbGQobV9ub2RlLmNvcHlSZWYoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKICAgICBp
ZiAoc2hvdWxkUG9zdEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24oKSkKLSAgICAgICAgc2VuZEFY
VGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBl
KCkpOworICAgICAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUu
cHRyKCksIGFwcGx5RWRpdFR5cGUoKSk7CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRv
VW5hcHBseSgpCkBAIC04MSw3ICs4MCw3IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5h
cHBseSgpCiAKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxl
dGluZyB0aGUgdGV4dAogICAgIGlmIChzaG91bGRQb3N0QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlv
bigpKQotICAgICAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUu
Z2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpKTsKKyAgICAgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25v
cmluZ0xpbmVCcmVha3MobV9ub2RlLnB0cigpLCB1bmFwcGx5RWRpdFR5cGUoKSk7CiAKICAgICBt
X25vZGUtPnJlbW92ZShJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTkwLDcgKzg5LDcgQEAgdm9p
ZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6
OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIHsKICAgICBhZGROb2Rl
QW5kRGVzY2VuZGFudHMobV9wYXJlbnQuZ2V0KCksIG5vZGVzKTsKLSAgICBhZGROb2RlQW5kRGVz
Y2VuZGFudHMobV9ub2RlLmdldCgpLCBub2Rlcyk7CisgICAgYWRkTm9kZUFuZERlc2NlbmRhbnRz
KG1fbm9kZS5wdHIoKSwgbm9kZXMpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwZW5kTm9kZUNvbW1hbmQuaAppbmRleCBmNzgyOTc1Yjg5MjE1MGFlMzZkMjlhNmJiZWNh
OWYxZGMxMzA3YzMxLi5mNjRiYWRjMDBkMDNhOTNmMzczZGUyNzE4NmI4NGY1NGVkNDljOTdlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCkBAIC0zMiwxMyAr
MzIsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBcHBlbmROb2RlQ29tbWFuZCA6
IHB1YmxpYyBTaW1wbGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxBcHBl
bmROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQ
YXNzUmVmUHRyPE5vZGU+IG5vZGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICBzdGF0
aWMgUmVmPEFwcGVuZE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxDb250YWluZXJOb2Rl
PiBwYXJlbnQsIE5vZGUmIG5vZGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKICAgICB7CiAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFwcGVuZE5vZGVDb21tYW5kKHBhcmVudCwgbm9k
ZSwgZWRpdGluZ0FjdGlvbikpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBBcHBlbmROb2RlQ29t
bWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0cjxOb2RlPiwg
RWRpdEFjdGlvbik7CisgICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJO
b2RlPiBwYXJlbnQsIE5vZGUmLCBFZGl0QWN0aW9uKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0Fw
cGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwpA
QCAtNDgsNyArNDgsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBSZWZQdHI8Q29udGFpbmVy
Tm9kZT4gbV9wYXJlbnQ7Ci0gICAgUmVmUHRyPE5vZGU+IG1fbm9kZTsKKyAgICBSZWY8Tm9kZT4g
bV9ub2RlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAppbmRleCAzZDc3OTQyNDhkMjNlOWI3
YTIzOTE2MmY5NzFhNDQ3NDc1MWI2MzAzLi41ZDlkMzZmZjUwZjVkY2Y2N2QwOGQwZTRhNjI1MzYz
NmU5MWI1MDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVk
aXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRD
b21tYW5kLmNwcApAQCAtMzk1LDcgKzM5NSw4IEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6
Omluc2VydE5vZGVBdChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBjb25zdCBQb3NpCiB2
b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjphcHBlbmROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gbm9k
ZSwgUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQpCiB7CiAgICAgQVNTRVJUKGNhbkhh
dmVDaGlsZHJlbkZvckVkaXRpbmcocGFyZW50LmdldCgpKSk7Ci0gICAgYXBwbHlDb21tYW5kVG9D
b21wb3NpdGUoQXBwZW5kTm9kZUNvbW1hbmQ6OmNyZWF0ZShwYXJlbnQsIG5vZGUsIGVkaXRpbmdB
Y3Rpb24oKSkpOworICAgIEFTU0VSVChub2RlKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0
ZShBcHBlbmROb2RlQ29tbWFuZDo6Y3JlYXRlKHBhcmVudCwgKm5vZGUsIGVkaXRpbmdBY3Rpb24o
KSkpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVDaGlsZHJlbkluUmFu
Z2UoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bykKQEAg
LTQxNCw3ICs0MTUsNyBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVOb2RlKFBh
c3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVudAogewogICAgIGlmICghbm9k
ZSB8fCAhbm9kZS0+bm9uU2hhZG93Qm91bmRhcnlQYXJlbnROb2RlKCkpCiAgICAgICAgIHJldHVy
bjsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShSZW1vdmVOb2RlQ29tbWFuZDo6Y3JlYXRl
KG5vZGUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CisgICAgYXBwbHlD
b21tYW5kVG9Db21wb3NpdGUoUmVtb3ZlTm9kZUNvbW1hbmQ6OmNyZWF0ZSgqbm9kZSwgc2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0
Q29tbWFuZDo6cmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbihQYXNzUmVmUHRyPE5vZGU+IG5v
ZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlKQpAQCAtMTU0MSw3ICsxNTQyLDcgQEAgUGFzc1JlZlB0cjxOb2Rl
PiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6c3BsaXRUcmVlVG9Ob2RlKE5vZGUqIHN0YXJ0LCBOb2Rl
KiBlbmQsIGIKICAgICByZXR1cm4gbm9kZS5yZWxlYXNlKCk7CiB9CiAKLVBhc3NSZWZQdHI8RWxl
bWVudD4gY3JlYXRlQmxvY2tQbGFjZWhvbGRlckVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQor
UmVmPEVsZW1lbnQ+IGNyZWF0ZUJsb2NrUGxhY2Vob2xkZXJFbGVtZW50KERvY3VtZW50JiBkb2N1
bWVudCkKIHsKICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChiclRhZywgZmFsc2Up
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25D
b21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZC5jcHAKaW5kZXggYzY0OTFkMjY5MjY1ZTVhYjZjZTk2NWVhYTk1MzQxYjY1NDQ3ZDFhZS4uNTYw
OTk3MTMzZjYxOWUzZDBhNzJkY2JkYWZiYWIxNzhkOGYzMGQxYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC02MzIsNyArNjMy
LDcgQEAgdm9pZCBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjptZXJnZVBhcmFncmFwaHMoKQogICAg
IAogICAgIC8vIFdlIG5lZWQgdG8gbWVyZ2UgaW50byBtX3Vwc3RyZWFtU3RhcnQncyBibG9jaywg
YnV0IGl0J3MgYmVlbiBlbXB0aWVkIG91dCBhbmQgY29sbGFwc2VkIGJ5IGRlbGV0aW9uLgogICAg
IGlmICghbWVyZ2VEZXN0aW5hdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWROb2RlKCkg
fHwgIW1lcmdlRGVzdGluYXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkTm9kZSgpLT5p
c0Rlc2NlbmRhbnRPZihlbmNsb3NpbmdCbG9jayhtX3Vwc3RyZWFtU3RhcnQuY29udGFpbmVyTm9k
ZSgpKSkgfHwgbV9zdGFydHNBdEVtcHR5TGluZSkgewotICAgICAgICBpbnNlcnROb2RlQXQoY3Jl
YXRlQnJlYWtFbGVtZW50KGRvY3VtZW50KCkpLmdldCgpLCBtX3Vwc3RyZWFtU3RhcnQpOworICAg
ICAgICBpbnNlcnROb2RlQXQoY3JlYXRlQnJlYWtFbGVtZW50KGRvY3VtZW50KCkpLnB0cigpLCBt
X3Vwc3RyZWFtU3RhcnQpOwogICAgICAgICBtZXJnZURlc3RpbmF0aW9uID0gVmlzaWJsZVBvc2l0
aW9uKG1fdXBzdHJlYW1TdGFydCk7CiAgICAgfQogICAgIApAQCAtODU1LDcgKzg1NSw3IEBAIHZv
aWQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgCiAgICAgcmVtb3ZlUHJl
dmlvdXNseVNlbGVjdGVkRW1wdHlUYWJsZVJvd3MoKTsKICAgICAKLSAgICBSZWZQdHI8Tm9kZT4g
cGxhY2Vob2xkZXIgPSBtX25lZWRQbGFjZWhvbGRlciA/IGNyZWF0ZUJyZWFrRWxlbWVudChkb2N1
bWVudCgpKS5nZXQoKSA6IDA7CisgICAgUmVmUHRyPE5vZGU+IHBsYWNlaG9sZGVyID0gbV9uZWVk
UGxhY2Vob2xkZXIgPyBjcmVhdGVCcmVha0VsZW1lbnQoZG9jdW1lbnQoKSkucHRyKCkgOiBudWxs
cHRyOwogICAgIAogICAgIGlmIChwbGFjZWhvbGRlcikgewogICAgICAgICBpZiAobV9zYW5pdGl6
ZU1hcmt1cCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCAxNDhlMzVjOGNjZmE5NmM1
YjEwODQyYWVmNjFkYzZkN2UxODY2ODM0Li40NGIyYWM3MzgyMTZkODkzN2U0NTRiNDljYWM5ZDhk
Y2I3NTA2YWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC02MTMsOCArNjEzLDgg
QEAgdm9pZCBFZGl0b3I6OnNldFRleHRBc0NoaWxkT2ZFbGVtZW50KGNvbnN0IFN0cmluZyYgdGV4
dCwgRWxlbWVudCogZWxlbSkKICAgICAgICAgICAgIAogICAgICAgICBSZWZQdHI8UmFuZ2U+IGNv
bnRleHQgPSBkb2N1bWVudCgpLmNyZWF0ZVJhbmdlKCk7CiAgICAgICAgIGNvbnRleHQtPnNlbGVj
dE5vZGVDb250ZW50cyhlbGVtLCBlYyk7Ci0gICAgICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50
PiBmcmFnbWVudCA9IGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoKmNvbnRleHQuZ2V0KCksIHRleHQp
OwotICAgICAgICBlbGVtLT5hcHBlbmRDaGlsZChmcmFnbWVudCwgZWMpOworICAgICAgICBSZWY8
RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21UZXh0KCpjb250
ZXh0LmdldCgpLCB0ZXh0KTsKKyAgICAgICAgZWxlbS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGZy
YWdtZW50KSwgZWMpOwogICAgIAogICAgICAgICAvLyByZXN0b3JlIGVsZW1lbnQgdG8gZG9jdW1l
bnQKICAgICAgICAgaWYgKHBhcmVudCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3JDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29t
bWFuZC5jcHAKaW5kZXggMGY4Zjg4MDMzYTRmZWZhMjNkNzUyNjg5OWVlNDc0MTlmZDQwNzIyYi4u
MTJjZGQyMWQ4ZWMxM2Q3MGU1ZmIwMDNjZTg3ZjJkOTI1MTY4MmMyYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCkBAIC0xNjUsMTEgKzE2NSwxMSBAQCBzdGF0aWMg
Ym9vbCBleGVjdXRlSW5zZXJ0RnJhZ21lbnQoRnJhbWUmIGZyYW1lLCBQYXNzUmVmUHRyPERvY3Vt
ZW50RnJhZ21lbnQ+IGZyYQogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgYm9vbCBleGVj
dXRlSW5zZXJ0Tm9kZShGcmFtZSYgZnJhbWUsIFBhc3NSZWZQdHI8Tm9kZT4gY29udGVudCkKK3N0
YXRpYyBib29sIGV4ZWN1dGVJbnNlcnROb2RlKEZyYW1lJiBmcmFtZSwgUmVmPE5vZGU+JiYgY29u
dGVudCkKIHsKICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBEb2N1bWVu
dEZyYWdtZW50OjpjcmVhdGUoKmZyYW1lLmRvY3VtZW50KCkpOwogICAgIEV4Y2VwdGlvbkNvZGUg
ZWMgPSAwOwotICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChjb250ZW50LCBlYyk7CisgICAgZnJh
Z21lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShjb250ZW50KSwgZWMpOwogICAgIGlmIChlYykK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJldHVybiBleGVjdXRlSW5zZXJ0RnJhZ21lbnQo
ZnJhbWUsIGZyYWdtZW50LnJlbGVhc2UoKSk7CkBAIC00NjQsMTAgKzQ2NCwxMCBAQCBzdGF0aWMg
Ym9vbCBleGVjdXRlSW5zZXJ0QmFja3RhYihGcmFtZSYgZnJhbWUsIEV2ZW50KiBldmVudCwgRWRp
dG9yQ29tbWFuZFNvdXJjZQogCiBzdGF0aWMgYm9vbCBleGVjdXRlSW5zZXJ0SG9yaXpvbnRhbFJ1
bGUoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0cmlu
ZyYgdmFsdWUpCiB7Ci0gICAgUmVmUHRyPEhUTUxIUkVsZW1lbnQ+IHJ1bGUgPSBIVE1MSFJFbGVt
ZW50OjpjcmVhdGUoKmZyYW1lLmRvY3VtZW50KCkpOworICAgIFJlZjxIVE1MSFJFbGVtZW50PiBy
dWxlID0gSFRNTEhSRWxlbWVudDo6Y3JlYXRlKCpmcmFtZS5kb2N1bWVudCgpKTsKICAgICBpZiAo
IXZhbHVlLmlzRW1wdHkoKSkKICAgICAgICAgcnVsZS0+c2V0SWRBdHRyaWJ1dGUodmFsdWUpOwot
ICAgIHJldHVybiBleGVjdXRlSW5zZXJ0Tm9kZShmcmFtZSwgcnVsZS5yZWxlYXNlKCkpOworICAg
IHJldHVybiBleGVjdXRlSW5zZXJ0Tm9kZShmcmFtZSwgV1RGOjptb3ZlKHJ1bGUpKTsKIH0KIAog
c3RhdGljIGJvb2wgZXhlY3V0ZUluc2VydEhUTUwoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRv
ckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0cmluZyYgdmFsdWUpCkBAIC00NzgsOSArNDc4LDkgQEAg
c3RhdGljIGJvb2wgZXhlY3V0ZUluc2VydEhUTUwoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRv
ckNvbW1hbmRTb3VyY2UsIGNvbnN0IFMKIHN0YXRpYyBib29sIGV4ZWN1dGVJbnNlcnRJbWFnZShG
cmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29uc3QgU3RyaW5nJiB2
YWx1ZSkKIHsKICAgICAvLyBGSVhNRTogSWYgdXNlckludGVyZmFjZSBpcyB0cnVlLCB3ZSBzaG91
bGQgZGlzcGxheSBhIGRpYWxvZyBib3ggYW5kIGxldCB0aGUgdXNlciBjaG9vc2UgYSBsb2NhbCBp
bWFnZS4KLSAgICBSZWZQdHI8SFRNTEltYWdlRWxlbWVudD4gaW1hZ2UgPSBIVE1MSW1hZ2VFbGVt
ZW50OjpjcmVhdGUoKmZyYW1lLmRvY3VtZW50KCkpOworICAgIFJlZjxIVE1MSW1hZ2VFbGVtZW50
PiBpbWFnZSA9IEhUTUxJbWFnZUVsZW1lbnQ6OmNyZWF0ZSgqZnJhbWUuZG9jdW1lbnQoKSk7CiAg
ICAgaW1hZ2UtPnNldFNyYyh2YWx1ZSk7Ci0gICAgcmV0dXJuIGV4ZWN1dGVJbnNlcnROb2RlKGZy
YW1lLCBpbWFnZS5yZWxlYXNlKCkpOworICAgIHJldHVybiBleGVjdXRlSW5zZXJ0Tm9kZShmcmFt
ZSwgV1RGOjptb3ZlKGltYWdlKSk7CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVJbnNlcnRMaW5l
QnJlYWsoRnJhbWUmIGZyYW1lLCBFdmVudCogZXZlbnQsIEVkaXRvckNvbW1hbmRTb3VyY2Ugc291
cmNlLCBjb25zdCBTdHJpbmcmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9J
bnNlcnRMaW5lQnJlYWtDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0
TGluZUJyZWFrQ29tbWFuZC5jcHAKaW5kZXggNmVlMjFkOTIyNzNkY2U1NWYxMjQ4NmY4Zjk3ODdh
MjY4MGVlMzkwMC4uMjVhYjA3MTI0ZTc5Mjc3MjAyNDVlZTZkNmU0NmNlZDFjNmU5Yzg1MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRMaW5lQnJlYWtDb21tYW5kLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydExpbmVCcmVha0NvbW1hbmQuY3Bw
CkBAIC0xMjksNyArMTI5LDcgQEAgdm9pZCBJbnNlcnRMaW5lQnJlYWtDb21tYW5kOjpkb0FwcGx5
KCkKICAgICAgICAgCiAgICAgICAgIC8vIEluc2VydCBhbiBleHRyYSBiciBvciAnXG4nIGlmIHRo
ZSBqdXN0IGluc2VydGVkIG9uZSBjb2xsYXBzZWQuCiAgICAgICAgIGlmICghaXNTdGFydE9mUGFy
YWdyYXBoKHBvc2l0aW9uQmVmb3JlTm9kZShub2RlVG9JbnNlcnQuZ2V0KCkpKSkKLSAgICAgICAg
ICAgIGluc2VydE5vZGVCZWZvcmUobm9kZVRvSW5zZXJ0LT5jbG9uZU5vZGUoZmFsc2UpLmdldCgp
LCBub2RlVG9JbnNlcnQuZ2V0KCkpOworICAgICAgICAgICAgaW5zZXJ0Tm9kZUJlZm9yZShub2Rl
VG9JbnNlcnQtPmNsb25lTm9kZShmYWxzZSksIG5vZGVUb0luc2VydC5nZXQoKSk7CiAgICAgICAg
IAogICAgICAgICBzZXRFbmRpbmdTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihwb3NpdGlvbklu
UGFyZW50QWZ0ZXJOb2RlKG5vZGVUb0luc2VydC5nZXQoKSksIERPV05TVFJFQU0sIGVuZGluZ1Nl
bGVjdGlvbigpLmlzRGlyZWN0aW9uYWwoKSkpOwogICAgIC8vIElmIHdlJ3JlIGluc2VydGluZyBh
ZnRlciBhbGwgb2YgdGhlIHJlbmRlcmVkIHRleHQgaW4gYSB0ZXh0IG5vZGUsIG9yIGludG8gYSBu
b24tdGV4dCBub2RlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmNwcAppbmRleCBmYTE0ZDA3NjZlYWY3NWZhNDMxOWU2ZDg4NTc0YWYzZDNh
MDNlNDM2Li41MGY2NTQ1ZTYyZjdiZGI4NGZkMGM1ZWI1MzRlNGVjYzg2MWRiYTI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApA
QCAtNTUsNyArNTUsNyBAQCB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb0FwcGx5KCkK
ICAgICAgICAgcmV0dXJuOwogICAgIEFTU0VSVChpc0VkaXRhYmxlTm9kZSgqcGFyZW50KSk7CiAK
LSAgICBwYXJlbnQtPmluc2VydEJlZm9yZShtX2luc2VydENoaWxkLmdldCgpLCBtX3JlZkNoaWxk
LmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBwYXJlbnQtPmluc2VydEJlZm9yZSgqbV9p
bnNlcnRDaGlsZCwgbV9yZWZDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKICAgICBp
ZiAoc2hvdWxkUG9zdEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24oKSkgewogICAgICAgICBQb3Np
dGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpID8gUG9zaXRpb24o
ZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDogY3JlYXRlTGVnYWN5RWRp
dGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDApOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5jcHAK
aW5kZXggN2RkMDE2MGNkMDM0M2RhYWRmMTI0MzQxMmUzZWFhZmYxNjE3ZDY1YS4uMTUwMzIyOTJh
ZGU2NTg4NDRhN2Y5MjA2Y2ZhYjcwOWZiNTY0MTBjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuY3BwCkBA
IC0zNjgsNyArMzY4LDcgQEAgdm9pZCBJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kOjpk
b0FwcGx5KCkKICAgICAvLyBjcmVhdGVkLiAgQWxsIG9mIHRoZSBub2Rlcywgc3RhcnRpbmcgYXQg
dmlzaWJsZVBvcywgYXJlIGFib3V0IHRvIGJlIGFkZGVkIHRvIHRoZSBuZXcgcGFyYWdyYXBoIAog
ICAgIC8vIGVsZW1lbnQuICBJZiB0aGUgZmlyc3Qgbm9kZSB0byBiZSBpbnNlcnRlZCB3b24ndCBi
ZSBvbmUgdGhhdCB3aWxsIGhvbGQgYW4gZW1wdHkgbGluZSBvcGVuLCBhZGQgYSBici4KICAgICBp
ZiAoaXNFbmRPZlBhcmFncmFwaCh2aXNpYmxlUG9zKSAmJiAhbGluZUJyZWFrRXhpc3RzQXRWaXNp
YmxlUG9zaXRpb24odmlzaWJsZVBvcykpCi0gICAgICAgIGFwcGVuZE5vZGUoY3JlYXRlQnJlYWtF
bGVtZW50KGRvY3VtZW50KCkpLmdldCgpLCBibG9ja1RvSW5zZXJ0LmdldCgpKTsKKyAgICAgICAg
YXBwZW5kTm9kZShjcmVhdGVCcmVha0VsZW1lbnQoZG9jdW1lbnQoKSksIGJsb2NrVG9JbnNlcnQu
Z2V0KCkpOwogCiAgICAgLy8gTW92ZSB0aGUgc3RhcnQgbm9kZSBhbmQgdGhlIHNpYmxpbmdzIG9m
IHRoZSBzdGFydCBub2RlLgogICAgIGlmIChWaXNpYmxlUG9zaXRpb24oaW5zZXJ0aW9uUG9zaXRp
b24pICE9IFZpc2libGVQb3NpdGlvbihwb3NpdGlvbkJlZm9yZU5vZGUoYmxvY2tUb0luc2VydC5n
ZXQoKSkpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01lcmdlSWRlbnRp
Y2FsRWxlbWVudHNDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWVyZ2VJZGVu
dGljYWxFbGVtZW50c0NvbW1hbmQuY3BwCmluZGV4IDQ2NTE4ODQ2MzY0ZmEzM2MyODVjZjYwMDk3
ZjA0M2IyYzJjZjM4N2UuLjRhNTllZjY4MGQ2YTBkZjIxNzM1YTllYjIwNTBhMThlZGY2NmYxY2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWVyZ2VJZGVudGljYWxFbGVtZW50
c0NvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWVyZ2VJZGVudGljYWxF
bGVtZW50c0NvbW1hbmQuY3BwCkBAIC00NywxMyArNDcsMTMgQEAgdm9pZCBNZXJnZUlkZW50aWNh
bEVsZW1lbnRzQ29tbWFuZDo6ZG9BcHBseSgpCiAKICAgICBtX2F0Q2hpbGQgPSBtX2VsZW1lbnQy
LT5maXJzdENoaWxkKCk7CiAKLSAgICBWZWN0b3I8UmVmUHRyPE5vZGU+PiBjaGlsZHJlbjsKKyAg
ICBWZWN0b3I8UmVmPE5vZGU+PiBjaGlsZHJlbjsKICAgICBmb3IgKE5vZGUqIGNoaWxkID0gbV9l
bGVtZW50MS0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmco
KSkKLSAgICAgICAgY2hpbGRyZW4uYXBwZW5kKGNoaWxkKTsKKyAgICAgICAgY2hpbGRyZW4uYXBw
ZW5kKCpjaGlsZCk7CiAKICAgICBzaXplX3Qgc2l6ZSA9IGNoaWxkcmVuLnNpemUoKTsKICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgbV9lbGVtZW50Mi0+aW5z
ZXJ0QmVmb3JlKGNoaWxkcmVuW2ldLnJlbGVhc2UoKSwgbV9hdENoaWxkLmdldCgpLCBJR05PUkVf
RVhDRVBUSU9OKTsKKyAgICAgICAgbV9lbGVtZW50Mi0+aW5zZXJ0QmVmb3JlKFdURjo6bW92ZShj
aGlsZHJlbltpXSksIG1fYXRDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKICAgICBt
X2VsZW1lbnQxLT5yZW1vdmUoSUdOT1JFX0VYQ0VQVElPTik7CiB9CkBAIC03MSwxNyArNzEsMTcg
QEAgdm9pZCBNZXJnZUlkZW50aWNhbEVsZW1lbnRzQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIAogICAg
IEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogCi0gICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobV9lbGVt
ZW50MS5nZXQoKSwgbV9lbGVtZW50Mi5nZXQoKSwgZWMpOworICAgIHBhcmVudC0+aW5zZXJ0QmVm
b3JlKCptX2VsZW1lbnQxLCBtX2VsZW1lbnQyLmdldCgpLCBlYyk7CiAgICAgaWYgKGVjKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBWZWN0b3I8UmVmUHRyPE5vZGU+PiBjaGlsZHJlbjsKKyAgICBW
ZWN0b3I8UmVmPE5vZGU+PiBjaGlsZHJlbjsKICAgICBmb3IgKE5vZGUqIGNoaWxkID0gbV9lbGVt
ZW50Mi0+Zmlyc3RDaGlsZCgpOyBjaGlsZCAmJiBjaGlsZCAhPSBhdENoaWxkOyBjaGlsZCA9IGNo
aWxkLT5uZXh0U2libGluZygpKQotICAgICAgICBjaGlsZHJlbi5hcHBlbmQoY2hpbGQpOworICAg
ICAgICBjaGlsZHJlbi5hcHBlbmQoKmNoaWxkKTsKIAogICAgIHNpemVfdCBzaXplID0gY2hpbGRy
ZW4uc2l6ZSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQotICAgICAg
ICBtX2VsZW1lbnQxLT5hcHBlbmRDaGlsZChjaGlsZHJlbltpXS5yZWxlYXNlKCksIGVjKTsKKyAg
ICAgICAgbV9lbGVtZW50MS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNoaWxkcmVuW2ldKSwgZWMp
OwogfQogCiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZW1vdmVOb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5v
ZGVDb21tYW5kLmNwcAppbmRleCAzMWM1NGQxZTg4MmUyZDQ2NTQwNDA4ZTQ1MDYwYzQ5ZDkwOGJi
ZWM2Li5iZWVjN2U0ZGFlNDRiMTA0YzJiZDE1ZmFjMDlmZWQ3OTQ2OWRmYTBhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmNwcApAQCAtMzQsMTIgKzM0LDEx
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVtb3ZlTm9kZUNvbW1hbmQ6OlJlbW92ZU5v
ZGVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCi0gICAgOiBT
aW1wbGVFZGl0Q29tbWFuZChub2RlLT5kb2N1bWVudCgpKQorUmVtb3ZlTm9kZUNvbW1hbmQ6OlJl
bW92ZU5vZGVDb21tYW5kKE5vZGUmIG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIDogU2ltcGxl
RWRpdENvbW1hbmQobm9kZS5kb2N1bWVudCgpKQogICAgICwgbV9ub2RlKG5vZGUpCiAgICAgLCBt
X3Nob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKHNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlKQogewotICAgIEFTU0VSVChtX25vZGUpOwogICAgIEFTU0VSVChtX25v
ZGUtPnBhcmVudE5vZGUoKSk7CiB9CiAKQEAgLTY0LDcgKzYzLDcgQEAgdm9pZCBSZW1vdmVOb2Rl
Q29tbWFuZDo6ZG9VbmFwcGx5KCkKICAgICBpZiAoIXBhcmVudCB8fCAhcGFyZW50LT5oYXNFZGl0
YWJsZVN0eWxlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHBhcmVudC0+aW5zZXJ0QmVmb3Jl
KG1fbm9kZS5nZXQoKSwgcmVmQ2hpbGQuZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOworICAgIHBh
cmVudC0+aW5zZXJ0QmVmb3JlKG1fbm9kZS5jb3B5UmVmKCksIHJlZkNoaWxkLmdldCgpLCBJR05P
UkVfRVhDRVBUSU9OKTsKIH0KIAogI2lmbmRlZiBOREVCVUcKQEAgLTcyLDcgKzcxLDcgQEAgdm9p
ZCBSZW1vdmVOb2RlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5v
ZGVzKQogewogICAgIGFkZE5vZGVBbmREZXNjZW5kYW50cyhtX3BhcmVudC5nZXQoKSwgbm9kZXMp
OwogICAgIGFkZE5vZGVBbmREZXNjZW5kYW50cyhtX3JlZkNoaWxkLmdldCgpLCBub2Rlcyk7Ci0g
ICAgYWRkTm9kZUFuZERlc2NlbmRhbnRzKG1fbm9kZS5nZXQoKSwgbm9kZXMpOworICAgIGFkZE5v
ZGVBbmREZXNjZW5kYW50cyhtX25vZGUucHRyKCksIG5vZGVzKTsKIH0KICNlbmRpZgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmgKaW5kZXggMTgxZTk4NWQ3ZjMw
Y2Q0NDk2NjRlNmZmOGNjYTk0MmYyNmY2Y2Y2ZS4uMDEzNTE3ZmY3ZGYzZGFlZTgwZjRkNmYxYjEw
ZDgxODU5YWFkNmM3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVO
b2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZUNvbW1h
bmQuaApAQCAtMzIsMTMgKzMyLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVt
b3ZlTm9kZUNvbW1hbmQgOiBwdWJsaWMgU2ltcGxlRWRpdENvbW1hbmQgewogcHVibGljOgotICAg
IHN0YXRpYyBSZWY8UmVtb3ZlTm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IG5v
ZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHN0YXRpYyBSZWY8UmVtb3ZlTm9kZUNvbW1hbmQ+IGNy
ZWF0ZShOb2RlJiBub2RlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKICAgICB7CiAgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFJlbW92ZU5vZGVDb21tYW5kKG5vZGUsIHNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFJlbW92
ZU5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlKTsKKyAgICBSZW1vdmVOb2RlQ29tbWFuZChOb2RlJiwgU2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUpOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CkBAIC00Nyw3ICs0
Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUq
PiYpIG92ZXJyaWRlOwogI2VuZGlmCiAKLSAgICBSZWZQdHI8Tm9kZT4gbV9ub2RlOworICAgIFJl
ZjxOb2RlPiBtX25vZGU7CiAgICAgUmVmUHRyPENvbnRhaW5lck5vZGU+IG1fcGFyZW50OwogICAg
IFJlZlB0cjxOb2RlPiBtX3JlZkNoaWxkOwogICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlIG1fc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3Bw
CmluZGV4IDBlMTg5YmRlZjY3ZDNmM2RlNzI0NmQ3MWFhYzdkNDA4NzkwN2ZkZmUuLjEwYmVmM2Ew
OWExY2M0MjFjYjc3ZTlhYjc4ZTAwY2Q2ZTIyMjMwYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwCkBAIC00OCwxOSAr
NDgsMTkgQEAgUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQ6OlJlcGxhY2VOb2RlV2l0aFNwYW5D
b21tYW5kKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGUKICAgICBBU1NFUlQobV9lbGVtZW50VG9S
ZXBsYWNlKTsKIH0KIAotc3RhdGljIHZvaWQgc3dhcEluTm9kZVByZXNlcnZpbmdBdHRyaWJ1dGVz
QW5kQ2hpbGRyZW4oSFRNTEVsZW1lbnQqIG5ld05vZGUsIEhUTUxFbGVtZW50KiBub2RlVG9SZXBs
YWNlKQorc3RhdGljIHZvaWQgc3dhcEluTm9kZVByZXNlcnZpbmdBdHRyaWJ1dGVzQW5kQ2hpbGRy
ZW4oSFRNTEVsZW1lbnQmIG5ld05vZGUsIEhUTUxFbGVtZW50JiBub2RlVG9SZXBsYWNlKQogewot
ICAgIEFTU0VSVChub2RlVG9SZXBsYWNlLT5pbkRvY3VtZW50KCkpOwotICAgIFJlZlB0cjxDb250
YWluZXJOb2RlPiBwYXJlbnROb2RlID0gbm9kZVRvUmVwbGFjZS0+cGFyZW50Tm9kZSgpOworICAg
IEFTU0VSVChub2RlVG9SZXBsYWNlLmluRG9jdW1lbnQoKSk7CisgICAgUmVmUHRyPENvbnRhaW5l
ck5vZGU+IHBhcmVudE5vZGUgPSBub2RlVG9SZXBsYWNlLnBhcmVudE5vZGUoKTsKIAogICAgIC8v
IEZJWE1FOiBGaXggdGhpcyB0byBzZW5kIHRoZSBwcm9wZXIgTXV0YXRpb25SZWNvcmRzIHdoZW4g
TXV0YXRpb25PYnNlcnZlcnMgYXJlIHByZXNlbnQuCi0gICAgbmV3Tm9kZS0+Y2xvbmVEYXRhRnJv
bUVsZW1lbnQoKm5vZGVUb1JlcGxhY2UpOworICAgIG5ld05vZGUuY2xvbmVEYXRhRnJvbUVsZW1l
bnQobm9kZVRvUmVwbGFjZSk7CiAgICAgTm9kZVZlY3RvciBjaGlsZHJlbjsKLSAgICBnZXRDaGls
ZE5vZGVzKCpub2RlVG9SZXBsYWNlLCBjaGlsZHJlbik7CisgICAgZ2V0Q2hpbGROb2Rlcyhub2Rl
VG9SZXBsYWNlLCBjaGlsZHJlbik7CiAgICAgZm9yIChhdXRvJiBjaGlsZCA6IGNoaWxkcmVuKQot
ICAgICAgICBuZXdOb2RlLT5hcHBlbmRDaGlsZChjaGlsZC5wdHIoKSwgQVNTRVJUX05PX0VYQ0VQ
VElPTik7CisgICAgICAgIG5ld05vZGUuYXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNoaWxkKSwgQVNT
RVJUX05PX0VYQ0VQVElPTik7CiAKLSAgICBwYXJlbnROb2RlLT5pbnNlcnRCZWZvcmUobmV3Tm9k
ZSwgbm9kZVRvUmVwbGFjZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgcGFyZW50Tm9kZS0+
aW5zZXJ0QmVmb3JlKG5ld05vZGUsICZub2RlVG9SZXBsYWNlLCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKICAgICBwYXJlbnROb2RlLT5yZW1vdmVDaGlsZChub2RlVG9SZXBsYWNlLCBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKIH0KIApAQCAtNzAsMTQgKzcwLDE0IEBAIHZvaWQgUmVwbGFjZU5vZGVXaXRo
U3BhbkNvbW1hbmQ6OmRvQXBwbHkoKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKCFtX3NwYW5F
bGVtZW50KQogICAgICAgICBtX3NwYW5FbGVtZW50ID0gY3JlYXRlSFRNTEVsZW1lbnQobV9lbGVt
ZW50VG9SZXBsYWNlLT5kb2N1bWVudCgpLCBzcGFuVGFnKTsKLSAgICBzd2FwSW5Ob2RlUHJlc2Vy
dmluZ0F0dHJpYnV0ZXNBbmRDaGlsZHJlbihtX3NwYW5FbGVtZW50LmdldCgpLCBtX2VsZW1lbnRU
b1JlcGxhY2UuZ2V0KCkpOworICAgIHN3YXBJbk5vZGVQcmVzZXJ2aW5nQXR0cmlidXRlc0FuZENo
aWxkcmVuKCptX3NwYW5FbGVtZW50LCAqbV9lbGVtZW50VG9SZXBsYWNlKTsKIH0KIAogdm9pZCBS
ZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIHsKICAgICBpZiAoIW1fc3Bh
bkVsZW1lbnQtPmluRG9jdW1lbnQoKSkKICAgICAgICAgcmV0dXJuOwotICAgIHN3YXBJbk5vZGVQ
cmVzZXJ2aW5nQXR0cmlidXRlc0FuZENoaWxkcmVuKG1fZWxlbWVudFRvUmVwbGFjZS5nZXQoKSwg
bV9zcGFuRWxlbWVudC5nZXQoKSk7CisgICAgc3dhcEluTm9kZVByZXNlcnZpbmdBdHRyaWJ1dGVz
QW5kQ2hpbGRyZW4oKm1fZWxlbWVudFRvUmVwbGFjZSwgKm1fc3BhbkVsZW1lbnQpOwogfQogCiAj
aWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kLmNwcAppbmRleCBlZWUyMjBjODZmOThhNWU3ZDI4OTljNDMzZmE5MWYwMDAw
NTQ2YmUzLi4wOGM2Mjc3ZGVmYzM0ZmEyMjM0YzJlNDYyZjIzNjQ3ZDZiYzk5YTNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcApA
QCAtMjM4LDcgKzIzOCw3IEBAIHZvaWQgUmVwbGFjZW1lbnRGcmFnbWVudDo6cmVtb3ZlTm9kZShQ
YXNzUmVmUHRyPE5vZGU+IG5vZGUpCiAgICAgaWYgKCFwYXJlbnQpCiAgICAgICAgIHJldHVybjsK
ICAgICAKLSAgICBwYXJlbnQtPnJlbW92ZUNoaWxkKG5vZGUuZ2V0KCksIEFTU0VSVF9OT19FWENF
UFRJT04pOworICAgIHBhcmVudC0+cmVtb3ZlQ2hpbGQoKm5vZGUsIEFTU0VSVF9OT19FWENFUFRJ
T04pOwogfQogCiB2b2lkIFJlcGxhY2VtZW50RnJhZ21lbnQ6Omluc2VydE5vZGVCZWZvcmUoUGFz
c1JlZlB0cjxOb2RlPiBub2RlLCBOb2RlKiByZWZOb2RlKQpAQCAtMjUwLDE0ICsyNTAsMTQgQEAg
dm9pZCBSZXBsYWNlbWVudEZyYWdtZW50OjppbnNlcnROb2RlQmVmb3JlKFBhc3NSZWZQdHI8Tm9k
ZT4gbm9kZSwgTm9kZSogcmVmTm9kZSkKICAgICBpZiAoIXBhcmVudCkKICAgICAgICAgcmV0dXJu
OwogICAgICAgICAKLSAgICBwYXJlbnQtPmluc2VydEJlZm9yZShub2RlLCByZWZOb2RlLCBBU1NF
UlRfTk9fRVhDRVBUSU9OKTsKKyAgICBwYXJlbnQtPmluc2VydEJlZm9yZSgqbm9kZSwgcmVmTm9k
ZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiB9CiAKIFBhc3NSZWZQdHI8U3R5bGVkRWxlbWVudD4g
UmVwbGFjZW1lbnRGcmFnbWVudDo6aW5zZXJ0RnJhZ21lbnRGb3JUZXN0UmVuZGVyaW5nKE5vZGUq
IHJvb3RFZGl0YWJsZUVsZW1lbnQpCiB7CiAgICAgUmVmUHRyPFN0eWxlZEVsZW1lbnQ+IGhvbGRl
ciA9IGNyZWF0ZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50KGRvY3VtZW50KCkpOwogCi0gICAgaG9s
ZGVyLT5hcHBlbmRDaGlsZChtX2ZyYWdtZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBo
b2xkZXItPmFwcGVuZENoaWxkKCptX2ZyYWdtZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAg
ICByb290RWRpdGFibGVFbGVtZW50LT5hcHBlbmRDaGlsZChob2xkZXIuZ2V0KCksIEFTU0VSVF9O
T19FWENFUFRJT04pOwogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0
eWxlc2hlZXRzKCk7CiAKQEAgLTI3MCw4ICsyNzAsOCBAQCB2b2lkIFJlcGxhY2VtZW50RnJhZ21l
bnQ6OnJlc3RvcmVBbmRSZW1vdmVUZXN0UmVuZGVyaW5nTm9kZXNUb0ZyYWdtZW50KFN0eWxlZEVs
ZQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgd2hpbGUgKFJlZlB0cjxOb2RlPiBub2RlID0g
aG9sZGVyLT5maXJzdENoaWxkKCkpIHsKLSAgICAgICAgaG9sZGVyLT5yZW1vdmVDaGlsZChub2Rl
LmdldCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKLSAgICAgICAgbV9mcmFnbWVudC0+YXBwZW5k
Q2hpbGQobm9kZS5nZXQoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAgIGhvbGRlci0+
cmVtb3ZlQ2hpbGQoKm5vZGUsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAgICBtX2ZyYWdt
ZW50LT5hcHBlbmRDaGlsZCgqbm9kZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgfQogCiAg
ICAgcmVtb3ZlTm9kZShob2xkZXIpOwpAQCAtMTQ1NCw3ICsxNDU0LDcgQEAgTm9kZSogUmVwbGFj
ZVNlbGVjdGlvbkNvbW1hbmQ6Omluc2VydEFzTGlzdEl0ZW1zKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IHBycExpc3QKICAgICB9CiAKICAgICB3aGlsZSAoUmVmUHRyPE5vZGU+IGxpc3RJdGVtID0g
bGlzdEVsZW1lbnQtPmZpcnN0Q2hpbGQoKSkgewotICAgICAgICBsaXN0RWxlbWVudC0+cmVtb3Zl
Q2hpbGQobGlzdEl0ZW0uZ2V0KCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAgICBsaXN0
RWxlbWVudC0+cmVtb3ZlQ2hpbGQoKmxpc3RJdGVtLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAg
ICAgICAgaWYgKGlzU3RhcnQgfHwgaXNNaWRkbGUpIHsKICAgICAgICAgICAgIGluc2VydE5vZGVC
ZWZvcmUobGlzdEl0ZW0sIGxhc3ROb2RlKTsKICAgICAgICAgICAgIGluc2VydGVkTm9kZXMucmVz
cG9uZFRvTm9kZUluc2VydGlvbihsaXN0SXRlbS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1NwbGl0RWxlbWVudENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9TcGxpdEVsZW1lbnRDb21tYW5kLmNwcAppbmRleCAwOWJlYjg1MTkzMWVlYWI2NTFk
MjE3MWU0N2Q4NzMyNDU1ZDFmMTA2Li4zNWQ4MjFiMmMxNmEyYmViMjc3MGE0ODE2ZjdjOGNjODU5
MGQwNTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0RWxlbWVudENv
bW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BsaXRFbGVtZW50Q29tbWFu
ZC5jcHAKQEAgLTQ3LDE2ICs0NywxNiBAQCB2b2lkIFNwbGl0RWxlbWVudENvbW1hbmQ6OmV4ZWN1
dGVBcHBseSgpCiAgICAgaWYgKG1fYXRDaGlsZC0+cGFyZW50Tm9kZSgpICE9IG1fZWxlbWVudDIp
CiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBWZWN0b3I8UmVmUHRyPE5vZGU+PiBjaGlsZHJl
bjsKKyAgICBWZWN0b3I8UmVmPE5vZGU+PiBjaGlsZHJlbjsKICAgICBmb3IgKE5vZGUqIG5vZGUg
PSBtX2VsZW1lbnQyLT5maXJzdENoaWxkKCk7IG5vZGUgIT0gbV9hdENoaWxkOyBub2RlID0gbm9k
ZS0+bmV4dFNpYmxpbmcoKSkKLSAgICAgICAgY2hpbGRyZW4uYXBwZW5kKG5vZGUpOworICAgICAg
ICBjaGlsZHJlbi5hcHBlbmQoKm5vZGUpOwogICAgIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAw
OwogICAgIAogICAgIENvbnRhaW5lck5vZGUqIHBhcmVudCA9IG1fZWxlbWVudDItPnBhcmVudE5v
ZGUoKTsKICAgICBpZiAoIXBhcmVudCB8fCAhcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxlKCkpCiAg
ICAgICAgIHJldHVybjsKLSAgICBwYXJlbnQtPmluc2VydEJlZm9yZShtX2VsZW1lbnQxLmdldCgp
LCBtX2VsZW1lbnQyLmdldCgpLCBlYyk7CisgICAgcGFyZW50LT5pbnNlcnRCZWZvcmUoKm1fZWxl
bWVudDEsIG1fZWxlbWVudDIuZ2V0KCksIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVy
bjsKIApAQCAtNjUsNyArNjUsNyBAQCB2b2lkIFNwbGl0RWxlbWVudENvbW1hbmQ6OmV4ZWN1dGVB
cHBseSgpCiAKICAgICBzaXplX3Qgc2l6ZSA9IGNoaWxkcmVuLnNpemUoKTsKICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgbV9lbGVtZW50MS0+YXBwZW5kQ2hp
bGQoY2hpbGRyZW5baV0sIGVjKTsKKyAgICAgICAgbV9lbGVtZW50MS0+YXBwZW5kQ2hpbGQoV1RG
Ojptb3ZlKGNoaWxkcmVuW2ldKSwgZWMpOwogfQogICAgIAogdm9pZCBTcGxpdEVsZW1lbnRDb21t
YW5kOjpkb0FwcGx5KCkKQEAgLTgwLDE1ICs4MCwxNSBAQCB2b2lkIFNwbGl0RWxlbWVudENvbW1h
bmQ6OmRvVW5hcHBseSgpCiAgICAgaWYgKCFtX2VsZW1lbnQxIHx8ICFtX2VsZW1lbnQxLT5oYXNF
ZGl0YWJsZVN0eWxlKCkgfHwgIW1fZWxlbWVudDItPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgVmVjdG9yPFJlZlB0cjxOb2RlPj4gY2hpbGRyZW47CisgICAgVmVj
dG9yPFJlZjxOb2RlPj4gY2hpbGRyZW47CiAgICAgZm9yIChOb2RlKiBub2RlID0gbV9lbGVtZW50
MS0+Zmlyc3RDaGlsZCgpOyBub2RlOyBub2RlID0gbm9kZS0+bmV4dFNpYmxpbmcoKSkKLSAgICAg
ICAgY2hpbGRyZW4uYXBwZW5kKG5vZGUpOworICAgICAgICBjaGlsZHJlbi5hcHBlbmQoKm5vZGUp
OwogCiAgICAgUmVmUHRyPE5vZGU+IHJlZkNoaWxkID0gbV9lbGVtZW50Mi0+Zmlyc3RDaGlsZCgp
OwogCiAgICAgc2l6ZV90IHNpemUgPSBjaGlsZHJlbi5zaXplKCk7CiAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBzaXplOyArK2kpCi0gICAgICAgIG1fZWxlbWVudDItPmluc2VydEJlZm9yZShj
aGlsZHJlbltpXS5nZXQoKSwgcmVmQ2hpbGQuZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOworICAg
ICAgICBtX2VsZW1lbnQyLT5pbnNlcnRCZWZvcmUoV1RGOjptb3ZlKGNoaWxkcmVuW2ldKSwgcmVm
Q2hpbGQuZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOwogCiAgICAgLy8gUmVjb3ZlciB0aGUgaWQg
YXR0cmlidXRlIG9mIHRoZSBvcmlnaW5hbCBlbGVtZW50LgogICAgIGNvbnN0IEF0b21pY1N0cmlu
ZyYgaWQgPSBtX2VsZW1lbnQxLT5nZXRJZEF0dHJpYnV0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1NwbGl0VGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCAxN2E4MTdmOWFjMjZkZTk5
NGQ0MThkNGQ2NDlhNmI4ZjZmOGM0ZjBiLi42OTk5MTM5OTVkZmZlM2EwMWUzZTAyNWYwZDExMGI4
YjZiNTBkNjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0VGV4dE5v
ZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0VGV4dE5vZGVD
b21tYW5kLmNwcApAQCAtOTUsNyArOTUsNyBAQCB2b2lkIFNwbGl0VGV4dE5vZGVDb21tYW5kOjpk
b1JlYXBwbHkoKQogdm9pZCBTcGxpdFRleHROb2RlQ29tbWFuZDo6aW5zZXJ0VGV4dDFBbmRUcmlt
VGV4dDIoKQogewogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIG1fdGV4dDItPnBhcmVu
dE5vZGUoKS0+aW5zZXJ0QmVmb3JlKG1fdGV4dDEuZ2V0KCksIG1fdGV4dDIuZ2V0KCksIGVjKTsK
KyAgICBtX3RleHQyLT5wYXJlbnROb2RlKCktPmluc2VydEJlZm9yZSgqbV90ZXh0MSwgbV90ZXh0
Mi5nZXQoKSwgZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuOwogICAgIG1fdGV4dDIt
PmRlbGV0ZURhdGEoMCwgbV9vZmZzZXQsIGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvV3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvV3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kLmNwcAppbmRleCA1NjQ2
ZjM0MTZjODVmMmU2MDMwZjQ3NGQ0MzBiZjhmNzQyNWU3ZmQ2Li5mODBiNzczN2Y4YWQ5NmUzZTc4
ZjE0NTliZjU3ZTJmMzUxOWViOWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1dyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9XcmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1hbmQuY3BwCkBAIC00MCwxNSArNDAs
MTUgQEAgV3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kOjpXcmFwQ29udGVudHNJbkR1bW15
U3BhbkNvbW1hbmQoUGFzc1JlZlB0cjxFbGVtZW4KIAogdm9pZCBXcmFwQ29udGVudHNJbkR1bW15
U3BhbkNvbW1hbmQ6OmV4ZWN1dGVBcHBseSgpCiB7Ci0gICAgVmVjdG9yPFJlZlB0cjxOb2RlPj4g
Y2hpbGRyZW47CisgICAgVmVjdG9yPFJlZjxOb2RlPj4gY2hpbGRyZW47CiAgICAgZm9yIChOb2Rl
KiBjaGlsZCA9IG1fZWxlbWVudC0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+
bmV4dFNpYmxpbmcoKSkKLSAgICAgICAgY2hpbGRyZW4uYXBwZW5kKGNoaWxkKTsKKyAgICAgICAg
Y2hpbGRyZW4uYXBwZW5kKCpjaGlsZCk7CiAKICAgICBzaXplX3Qgc2l6ZSA9IGNoaWxkcmVuLnNp
emUoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgbV9k
dW1teVNwYW4tPmFwcGVuZENoaWxkKGNoaWxkcmVuW2ldLnJlbGVhc2UoKSwgSUdOT1JFX0VYQ0VQ
VElPTik7CisgICAgICAgIG1fZHVtbXlTcGFuLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoY2hpbGRy
ZW5baV0pLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIG1fZWxlbWVudC0+YXBwZW5kQ2hpbGQo
bV9kdW1teVNwYW4uZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOworICAgIG1fZWxlbWVudC0+YXBw
ZW5kQ2hpbGQoKm1fZHVtbXlTcGFuLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KIAogdm9pZCBXcmFw
Q29udGVudHNJbkR1bW15U3BhbkNvbW1hbmQ6OmRvQXBwbHkoKQpAQCAtNjUsMTMgKzY1LDEzIEBA
IHZvaWQgV3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kOjpkb1VuYXBwbHkoKQogICAgIGlm
ICghbV9kdW1teVNwYW4gfHwgIW1fZWxlbWVudC0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBWZWN0b3I8UmVmUHRyPE5vZGU+PiBjaGlsZHJlbjsKKyAgICBWZWN0
b3I8UmVmPE5vZGU+PiBjaGlsZHJlbjsKICAgICBmb3IgKE5vZGUqIGNoaWxkID0gbV9kdW1teVNw
YW4tPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCi0g
ICAgICAgIGNoaWxkcmVuLmFwcGVuZChjaGlsZCk7CisgICAgICAgIGNoaWxkcmVuLmFwcGVuZCgq
Y2hpbGQpOwogCiAgICAgc2l6ZV90IHNpemUgPSBjaGlsZHJlbi5zaXplKCk7CiAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCi0gICAgICAgIG1fZWxlbWVudC0+YXBwZW5kQ2hp
bGQoY2hpbGRyZW5baV0ucmVsZWFzZSgpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgbV9l
bGVtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoY2hpbGRyZW5baV0pLCBJR05PUkVfRVhDRVBU
SU9OKTsKIAogICAgIG1fZHVtbXlTcGFuLT5yZW1vdmUoSUdOT1JFX0VYQ0VQVElPTik7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0VkaXRvckNvY29hLm1tIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9FZGl0b3JDb2NvYS5tbQppbmRleCBjZTRiY2Jj
YTRiZjMyYTlkNTMzN2JlYjkyZGYxZjdlMGZhOWM5OGYzLi45NWU2NmRiMGRlYTc4Mjk0NmVkNjAw
NjEzZTZkN2M5MWM0ZDE2ZDE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2Nv
Y29hL0VkaXRvckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRWRp
dG9yQ29jb2EubW0KQEAgLTU2LDE2ICs1NiwxNiBAQCBSZW5kZXJTdHlsZSogRWRpdG9yOjpzdHls
ZUZvclNlbGVjdGlvblN0YXJ0KEZyYW1lKiBmcmFtZSwgTm9kZSAqJm5vZGVUb1JlbW92ZSkKICAg
ICBpZiAoIXR5cGluZ1N0eWxlIHx8ICF0eXBpbmdTdHlsZS0+c3R5bGUoKSkKICAgICAgICAgcmV0
dXJuICZwb3NpdGlvbi5kZXByZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigpLT5zdHlsZSgpOwogCi0g
ICAgUmVmUHRyPEVsZW1lbnQ+IHN0eWxlRWxlbWVudCA9IGZyYW1lLT5kb2N1bWVudCgpLT5jcmVh
dGVFbGVtZW50KEhUTUxOYW1lczo6c3BhblRhZywgZmFsc2UpOworICAgIFJlZjxFbGVtZW50PiBz
dHlsZUVsZW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChIVE1MTmFtZXM6
OnNwYW5UYWcsIGZhbHNlKTsKIAogICAgIFN0cmluZyBzdHlsZVRleHQgPSB0eXBpbmdTdHlsZS0+
c3R5bGUoKS0+YXNUZXh0KCkgKyAiIGRpc3BsYXk6IGlubGluZSI7CiAgICAgc3R5bGVFbGVtZW50
LT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpzdHlsZUF0dHIsIHN0eWxlVGV4dCk7CiAKICAgICBz
dHlsZUVsZW1lbnQtPmFwcGVuZENoaWxkKGZyYW1lLT5kb2N1bWVudCgpLT5jcmVhdGVFZGl0aW5n
VGV4dE5vZGUoIiIpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAotICAgIHBvc2l0aW9uLmRlcHJl
Y2F0ZWROb2RlKCktPnBhcmVudE5vZGUoKS0+YXBwZW5kQ2hpbGQoc3R5bGVFbGVtZW50LCBBU1NF
UlRfTk9fRVhDRVBUSU9OKTsKKyAgICBwb3NpdGlvbi5kZXByZWNhdGVkTm9kZSgpLT5wYXJlbnRO
b2RlKCktPmFwcGVuZENoaWxkKHN0eWxlRWxlbWVudC5jb3B5UmVmKCksIEFTU0VSVF9OT19FWENF
UFRJT04pOwogCi0gICAgbm9kZVRvUmVtb3ZlID0gc3R5bGVFbGVtZW50LmdldCgpOworICAgIG5v
ZGVUb1JlbW92ZSA9IHN0eWxlRWxlbWVudC5wdHIoKTsKIAogICAgIGZyYW1lLT5kb2N1bWVudCgp
LT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CiAgICAgcmV0dXJuIHN0eWxlRWxlbWVudC0+cmVuZGVy
ZXIoKSA/ICZzdHlsZUVsZW1lbnQtPnJlbmRlcmVyKCktPnN0eWxlKCkgOiBudWxscHRyOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAppbmRleCA4ZjA0ZDA4MTM1MmI5NjMyNTZm
YmFkNzU3ZmUxMzVlNmRjZDNkNzUwLi43Y2FhMTRmNGJlMzdjNjEzNDQ5Yzk0YTZhZGRiYzU5ZWI1
ZTZiZTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcApAQCAtODk5LDIw
ICs4OTksMTggQEAgYm9vbCBpc0VtcHR5VGFibGVDZWxsKGNvbnN0IE5vZGUqIG5vZGUpCiAgICAg
cmV0dXJuICFjaGlsZFJlbmRlcmVyLT5uZXh0U2libGluZygpOwogfQogCi1QYXNzUmVmUHRyPEhU
TUxFbGVtZW50PiBjcmVhdGVEZWZhdWx0UGFyYWdyYXBoRWxlbWVudChEb2N1bWVudCYgZG9jdW1l
bnQpCitSZWY8SFRNTEVsZW1lbnQ+IGNyZWF0ZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50KERvY3Vt
ZW50JiBkb2N1bWVudCkKIHsKICAgICBzd2l0Y2ggKGRvY3VtZW50LmZyYW1lKCktPmVkaXRvcigp
LmRlZmF1bHRQYXJhZ3JhcGhTZXBhcmF0b3IoKSkgewogICAgIGNhc2UgRWRpdG9yUGFyYWdyYXBo
U2VwYXJhdG9ySXNEaXY6CiAgICAgICAgIHJldHVybiBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50KTsKICAgICBjYXNlIEVkaXRvclBhcmFncmFwaFNlcGFyYXRvcklzUDoKLSAgICAgICAg
cmV0dXJuIEhUTUxQYXJhZ3JhcGhFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgICAgICBi
cmVhazsKICAgICB9Ci0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gMDsK
KyAgICByZXR1cm4gSFRNTFBhcmFncmFwaEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiB9CiAK
LVBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZUJyZWFrRWxlbWVudChEb2N1bWVudCYgZG9j
dW1lbnQpCitSZWY8SFRNTEVsZW1lbnQ+IGNyZWF0ZUJyZWFrRWxlbWVudChEb2N1bWVudCYgZG9j
dW1lbnQpCiB7CiAgICAgcmV0dXJuIEhUTUxCUkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiB9
CkBAIC05NzEsNyArOTY5LDcgQEAgUG9zaXRpb24gcG9zaXRpb25PdXRzaWRlVGFiU3Bhbihjb25z
dCBQb3NpdGlvbiYgcG9zKQogICAgIHJldHVybiBwb3NpdGlvbkluUGFyZW50QmVmb3JlTm9kZShu
b2RlKTsKIH0KIAotUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVhdGVUYWJTcGFuRWxlbWVudChEb2N1
bWVudCYgZG9jdW1lbnQsIFBhc3NSZWZQdHI8Tm9kZT4gcHJwVGFiVGV4dE5vZGUpCitSZWY8RWxl
bWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBQYXNzUmVmUHRy
PE5vZGU+IHBycFRhYlRleHROb2RlKQogewogICAgIFJlZlB0cjxOb2RlPiB0YWJUZXh0Tm9kZSA9
IHBycFRhYlRleHROb2RlOwogCkBAIC05ODQsMTcgKzk4MiwxNyBAQCBQYXNzUmVmUHRyPEVsZW1l
bnQ+IGNyZWF0ZVRhYlNwYW5FbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZlB0cjxO
b2RlPiBwcgogICAgIGlmICghdGFiVGV4dE5vZGUpCiAgICAgICAgIHRhYlRleHROb2RlID0gZG9j
dW1lbnQuY3JlYXRlRWRpdGluZ1RleHROb2RlKCJcdCIpOwogCi0gICAgc3BhbkVsZW1lbnQtPmFw
cGVuZENoaWxkKHRhYlRleHROb2RlLnJlbGVhc2UoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7Cisg
ICAgc3BhbkVsZW1lbnQtPmFwcGVuZENoaWxkKHRhYlRleHROb2RlLnJlbGVhc2VOb25OdWxsKCks
IEFTU0VSVF9OT19FWENFUFRJT04pOwogCi0gICAgcmV0dXJuIHNwYW5FbGVtZW50LnJlbGVhc2Uo
KTsKKyAgICByZXR1cm4gc3BhbkVsZW1lbnQucmVsZWFzZU5vbk51bGwoKTsKIH0KIAotUGFzc1Jl
ZlB0cjxFbGVtZW50PiBjcmVhdGVUYWJTcGFuRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIGNv
bnN0IFN0cmluZyYgdGFiVGV4dCkKK1JlZjxFbGVtZW50PiBjcmVhdGVUYWJTcGFuRWxlbWVudChE
b2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGFiVGV4dCkKIHsKICAgICByZXR1cm4g
Y3JlYXRlVGFiU3BhbkVsZW1lbnQoZG9jdW1lbnQsIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRh
YlRleHQpKTsKIH0KIAotUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVhdGVUYWJTcGFuRWxlbWVudChE
b2N1bWVudCYgZG9jdW1lbnQpCitSZWY8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9j
dW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBjcmVhdGVUYWJTcGFuRWxlbWVudChkb2N1
bWVudCwgUGFzc1JlZlB0cjxOb2RlPigpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvaHRtbGVkaXRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRp
bmcuaAppbmRleCA3ODhhZjNmY2ZiOTVlN2QyZDIyODc2MmE1MTU1NjFlZjA4OTNkMGVlLi5mNjlk
OWQ4ZWM3NTE3ODExYjllZDRmM2M3MDc3NDUwYTE1ODExNTFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9odG1sZWRpdGluZy5oCkBAIC0yMDYsOCArMjA2LDggQEAgVmlzaWJsZVBvc2l0aW9uIHZpc2li
bGVQb3NpdGlvbkZvckluZGV4VXNpbmdDaGFyYWN0ZXJJdGVyYXRvcihOb2RlKiwgaW50IGluZGV4
KTsKICAgICAKIC8vIEZ1bmN0aW9ucyByZXR1cm5pbmcgSFRNTEVsZW1lbnQKICAgICAKLVdFQkNP
UkVfRVhQT1JUIFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZURlZmF1bHRQYXJhZ3JhcGhF
bGVtZW50KERvY3VtZW50Jik7Ci1QYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVCcmVha0Vs
ZW1lbnQoRG9jdW1lbnQmKTsKK1dFQkNPUkVfRVhQT1JUIFJlZjxIVE1MRWxlbWVudD4gY3JlYXRl
RGVmYXVsdFBhcmFncmFwaEVsZW1lbnQoRG9jdW1lbnQmKTsKK1JlZjxIVE1MRWxlbWVudD4gY3Jl
YXRlQnJlYWtFbGVtZW50KERvY3VtZW50Jik7CiBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVh
dGVPcmRlcmVkTGlzdEVsZW1lbnQoRG9jdW1lbnQmKTsKIFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+
IGNyZWF0ZVVub3JkZXJlZExpc3RFbGVtZW50KERvY3VtZW50Jik7CiBQYXNzUmVmUHRyPEhUTUxF
bGVtZW50PiBjcmVhdGVMaXN0SXRlbUVsZW1lbnQoRG9jdW1lbnQmKTsKQEAgLTIyMiwxMCArMjIy
LDEwIEBAIE5vZGUqIGVuY2xvc2luZ0xpc3RDaGlsZChOb2RlKik7CiAvLyBFbGVtZW50CiAvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCiAKLVBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVsZW1l
bnQoRG9jdW1lbnQmKTsKLVBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQo
RG9jdW1lbnQmLCBQYXNzUmVmUHRyPE5vZGU+IHRhYlRleHROb2RlKTsKLVBhc3NSZWZQdHI8RWxl
bWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRhYlRl
eHQpOwotUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVhdGVCbG9ja1BsYWNlaG9sZGVyRWxlbWVudChE
b2N1bWVudCYpOworUmVmPEVsZW1lbnQ+IGNyZWF0ZVRhYlNwYW5FbGVtZW50KERvY3VtZW50Jik7
CitSZWY8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmLCBQYXNzUmVmUHRy
PE5vZGU+IHRhYlRleHROb2RlKTsKK1JlZjxFbGVtZW50PiBjcmVhdGVUYWJTcGFuRWxlbWVudChE
b2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGFiVGV4dCk7CitSZWY8RWxlbWVudD4gY3JlYXRlQmxv
Y2tQbGFjZWhvbGRlckVsZW1lbnQoRG9jdW1lbnQmKTsKIAogRWxlbWVudCogZWRpdGFibGVSb290
Rm9yUG9zaXRpb24oY29uc3QgUG9zaXRpb24mLCBFZGl0YWJsZVR5cGUgPSBDb250ZW50SXNFZGl0
YWJsZSk7CiBFbGVtZW50KiB1bnNwbGl0dGFibGVFbGVtZW50Rm9yUG9zaXRpb24oY29uc3QgUG9z
aXRpb24mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklP
Uy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbQppbmRleCAyMjZl
YWQ1YTQzYmY1OTgyZDliMWJhODE0OWEyMDhlMTJhZTcwMTFmLi44MTUxOTg1ZjBiOTFlNzZmMDAz
MTU2YjFhNTIzNjJmNjI3MGFmMDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L2lvcy9FZGl0b3JJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9y
SU9TLm1tCkBAIC0zOTcsNyArMzk3LDcgQEAgdm9pZCBFZGl0b3I6OldlYkNvbnRlbnRSZWFkZXI6
OmFkZEZyYWdtZW50KFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gbmV3RnJhZ20KICAgICBp
ZiAoZnJhZ21lbnQpIHsKICAgICAgICAgaWYgKG5ld0ZyYWdtZW50ICYmIG5ld0ZyYWdtZW50LT5m
aXJzdENoaWxkKCkpIHsKICAgICAgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWM7Ci0gICAgICAgICAg
ICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQobmV3RnJhZ21lbnQtPmZpcnN0Q2hpbGQoKSwgZWMpOwor
ICAgICAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKCpuZXdGcmFnbWVudC0+Zmlyc3RDaGls
ZCgpLCBlYyk7CiAgICAgICAgIH0KICAgICB9IGVsc2UKICAgICAgICAgZnJhZ21lbnQgPSBuZXdG
cmFnbWVudDsKQEAgLTQ5NCwxMiArNDk0LDEyIEBAIGJvb2wgRWRpdG9yOjpXZWJDb250ZW50UmVh
ZGVyOjpyZWFkVVJMKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmKQogICAgICAgICAgICAg
cmV0dXJuIGZyYWdtZW50OwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKLSAgICAgICAgUmVmUHRy
PEVsZW1lbnQ+IGFuY2hvciA9IGZyYW1lLmRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoSFRNTE5h
bWVzOjphVGFnLCBmYWxzZSk7CisgICAgICAgIFJlZjxFbGVtZW50PiBhbmNob3IgPSBmcmFtZS5k
b2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KEhUTUxOYW1lczo6YVRhZywgZmFsc2UpOwogICAgICAg
ICBhbmNob3ItPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmhyZWZBdHRyLCB1cmwuc3RyaW5nKCkp
OwogICAgICAgICBhbmNob3ItPmFwcGVuZENoaWxkKGZyYW1lLmRvY3VtZW50KCktPmNyZWF0ZVRl
eHROb2RlKFtbKE5TVVJMICopdXJsIGFic29sdXRlU3RyaW5nXSBwcmVjb21wb3NlZFN0cmluZ1dp
dGhDYW5vbmljYWxNYXBwaW5nXSkpOwogCiAgICAgICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50
PiBuZXdGcmFnbWVudCA9IGZyYW1lLmRvY3VtZW50KCktPmNyZWF0ZURvY3VtZW50RnJhZ21lbnQo
KTsKLSAgICAgICAgbmV3RnJhZ21lbnQtPmFwcGVuZENoaWxkKGFuY2hvci5yZWxlYXNlKCkpOwor
ICAgICAgICBuZXdGcmFnbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGFuY2hvcikpOwogICAg
ICAgICBhZGRGcmFnbWVudChuZXdGcmFnbWVudCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KQEAgLTU4Myw3ICs1ODMsNyBAQCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IEVkaXRv
cjo6Y3JlYXRlRnJhZ21lbnRGb3JJbWFnZVJlc291cmNlQW5kQWRkUmVzb3VyYwogICAgIGlmICgh
cmVzb3VyY2UpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgUmVmUHRyPEVsZW1lbnQ+
IGltYWdlRWxlbWVudCA9IG1fZnJhbWUuZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChIVE1MTmFt
ZXM6OmltZ1RhZywgZmFsc2UpOworICAgIFJlZjxFbGVtZW50PiBpbWFnZUVsZW1lbnQgPSBtX2Zy
YW1lLmRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoSFRNTE5hbWVzOjppbWdUYWcsIGZhbHNlKTsK
ICAgICAvLyBGSVhNRTogVGhlIGNvZGUgaW4gY3JlYXRlRnJhZ21lbnRBbmRBZGRSZXNvdXJjZXMg
Y2FsbHMgc2V0RGVmZXJzTG9hZGluZyh0cnVlKS4gRG9uJ3Qgd2UgbmVlZCB0aGF0IGhlcmU/CiAg
ICAgaWYgKERvY3VtZW50TG9hZGVyKiBsb2FkZXIgPSBtX2ZyYW1lLmxvYWRlcigpLmRvY3VtZW50
TG9hZGVyKCkpCiAgICAgICAgIGxvYWRlci0+YWRkQXJjaGl2ZVJlc291cmNlKHJlc291cmNlLmdl
dCgpKTsKQEAgLTU5Miw3ICs1OTIsNyBAQCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IEVk
aXRvcjo6Y3JlYXRlRnJhZ21lbnRGb3JJbWFnZVJlc291cmNlQW5kQWRkUmVzb3VyYwogICAgIGlt
YWdlRWxlbWVudC0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6c3JjQXR0ciwgW1VSTCBpc0ZpbGVV
UkxdID8gW1VSTCBhYnNvbHV0ZVN0cmluZ10gOiByZXNvdXJjZS0+dXJsKCkpOwogCiAgICAgUmVm
UHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gbV9mcmFtZS5kb2N1bWVudCgpLT5jcmVh
dGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKGltYWdlRWxl
bWVudC5yZWxlYXNlKCkpOworICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoaW1h
Z2VFbGVtZW50KSk7CiAKICAgICByZXR1cm4gZnJhZ21lbnQucmVsZWFzZSgpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCmluZGV4IDZjZWY0ODk5NTliNDk1ZDA3Njk5
MDE1M2JiOTVhMWMyZjA5ZmFmMDQuLmNkMjUyZGNmZDMxYzNlMDBjMTU3N2RiZjkzMGM4NjgzYjUw
ZGQwMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KQEAgLTUyNywx
NSArNTI3LDE1IEBAIGJvb2wgRWRpdG9yOjpXZWJDb250ZW50UmVhZGVyOjpyZWFkRmlsZW5hbWVz
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXRocykKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IHNpemU7IGkrKykgewogICAgICAgICBTdHJpbmcgdGV4dCA9IHBhdGhzW2ldOwogI2lmIEVOQUJM
RShBVFRBQ0hNRU5UX0VMRU1FTlQpCi0gICAgICAgIFJlZlB0cjxIVE1MQXR0YWNobWVudEVsZW1l
bnQ+IGF0dGFjaG1lbnQgPSBIVE1MQXR0YWNobWVudEVsZW1lbnQ6OmNyZWF0ZShhdHRhY2htZW50
VGFnLCBkb2N1bWVudCk7CisgICAgICAgIFJlZjxIVE1MQXR0YWNobWVudEVsZW1lbnQ+IGF0dGFj
aG1lbnQgPSBIVE1MQXR0YWNobWVudEVsZW1lbnQ6OmNyZWF0ZShhdHRhY2htZW50VGFnLCBkb2N1
bWVudCk7CiAgICAgICAgIGF0dGFjaG1lbnQtPnNldEZpbGUoRmlsZTo6Y3JlYXRlKFtbTlNVUkwg
ZmlsZVVSTFdpdGhQYXRoOnRleHRdIHBhdGhdKS5wdHIoKSk7Ci0gICAgICAgIGZyYWdtZW50LT5h
cHBlbmRDaGlsZChhdHRhY2htZW50LnJlbGVhc2UoKSk7CisgICAgICAgIGZyYWdtZW50LT5hcHBl
bmRDaGlsZChXVEY6Om1vdmUoYXR0YWNobWVudCkpOwogI2Vsc2UKICAgICAgICAgdGV4dCA9IGZy
YW1lLmVkaXRvcigpLmNsaWVudCgpLT51c2VyVmlzaWJsZVN0cmluZyhbTlNVUkwgZmlsZVVSTFdp
dGhQYXRoOnRleHRdKTsKIAotICAgICAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IHBhcmFncmFwaCA9
IGNyZWF0ZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50KGRvY3VtZW50KTsKKyAgICAgICAgUmVmPEhU
TUxFbGVtZW50PiBwYXJhZ3JhcGggPSBjcmVhdGVEZWZhdWx0UGFyYWdyYXBoRWxlbWVudChkb2N1
bWVudCk7CiAgICAgICAgIHBhcmFncmFwaC0+YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUodGV4dCkpOwotICAgICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQocGFyYWdyYXBoLnJl
bGVhc2UoKSk7CisgICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUocGFyYWdy
YXBoKSk7CiAjZW5kaWYKICAgICB9CiAKQEAgLTU5NCwxMiArNTk0LDEyIEBAIGJvb2wgRWRpdG9y
OjpXZWJDb250ZW50UmVhZGVyOjpyZWFkVVJMKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcm
IHRpdGxlKQogICAgIGlmICh1cmwuc3RyaW5nKCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICBSZWZQdHI8RWxlbWVudD4gYW5jaG9yID0gZnJhbWUuZG9jdW1lbnQoKS0+
Y3JlYXRlRWxlbWVudChIVE1MTmFtZXM6OmFUYWcsIGZhbHNlKTsKKyAgICBSZWY8RWxlbWVudD4g
YW5jaG9yID0gZnJhbWUuZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChIVE1MTmFtZXM6OmFUYWcs
IGZhbHNlKTsKICAgICBhbmNob3ItPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmhyZWZBdHRyLCB1
cmwuc3RyaW5nKCkpOwogICAgIGFuY2hvci0+YXBwZW5kQ2hpbGQoZnJhbWUuZG9jdW1lbnQoKS0+
Y3JlYXRlVGV4dE5vZGUoW3RpdGxlIHByZWNvbXBvc2VkU3RyaW5nV2l0aENhbm9uaWNhbE1hcHBp
bmddKSk7CiAKICAgICBmcmFnbWVudCA9IGZyYW1lLmRvY3VtZW50KCktPmNyZWF0ZURvY3VtZW50
RnJhZ21lbnQoKTsKLSAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoYW5jaG9yLnJlbGVhc2UoKSk7
CisgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShhbmNob3IpKTsKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIApAQCAtNjM1LDExICs2MzUsMTEgQEAgUGFzc1JlZlB0cjxEb2N1bWVudEZy
YWdtZW50PiBFZGl0b3I6OmNyZWF0ZUZyYWdtZW50Rm9ySW1hZ2VSZXNvdXJjZUFuZEFkZFJlc291
cmMKICAgICBpZiAoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciA9IG1fZnJhbWUubG9hZGVyKCkuZG9j
dW1lbnRMb2FkZXIoKSkKICAgICAgICAgbG9hZGVyLT5hZGRBcmNoaXZlUmVzb3VyY2UocmVzb3Vy
Y2UuZ2V0KCkpOwogCi0gICAgUmVmUHRyPEVsZW1lbnQ+IGltYWdlRWxlbWVudCA9IGRvY3VtZW50
KCkuY3JlYXRlRWxlbWVudChIVE1MTmFtZXM6OmltZ1RhZywgZmFsc2UpOworICAgIFJlZjxFbGVt
ZW50PiBpbWFnZUVsZW1lbnQgPSBkb2N1bWVudCgpLmNyZWF0ZUVsZW1lbnQoSFRNTE5hbWVzOjpp
bWdUYWcsIGZhbHNlKTsKICAgICBpbWFnZUVsZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6
OnNyY0F0dHIsIHJlc291cmNlLT51cmwoKS5zdHJpbmcoKSk7CiAKICAgICBSZWZQdHI8RG9jdW1l
bnRGcmFnbWVudD4gZnJhZ21lbnQgPSBkb2N1bWVudCgpLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQo
KTsKLSAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50LnJlbGVhc2UoKSk7Cisg
ICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShpbWFnZUVsZW1lbnQpKTsKIAogICAg
IHJldHVybiBmcmFnbWVudC5yZWxlYXNlKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL21hcmt1cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAK
aW5kZXggMGNhYzhiNDBmZDhhM2M2NTE4MDQxNTQ4ZWI2NDlkOTRiNTM2ZDJkMi4uMjA1NGM0ZThk
YmZiNjFlMWIzNzUyZDhlYWFiYzIyYTA4MTMxMGQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9tYXJrdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3Vw
LmNwcApAQCAtNzA0LDEyICs3MDQsMTIgQEAgU3RyaW5nIGNyZWF0ZU1hcmt1cChjb25zdCBOb2Rl
JiBub2RlLCBFQ2hpbGRyZW5Pbmx5IGNoaWxkcmVuT25seSwgVmVjdG9yPE5vZGUqPioKICAgICBy
ZXR1cm4gYWNjdW11bGF0b3Iuc2VyaWFsaXplTm9kZXMoY29uc3RfY2FzdDxOb2RlJj4obm9kZSks
IGNoaWxkcmVuT25seSwgdGFnTmFtZXNUb1NraXApOwogfQogCi1zdGF0aWMgdm9pZCBmaWxsQ29u
dGFpbmVyRnJvbVN0cmluZyhDb250YWluZXJOb2RlKiBwYXJhZ3JhcGgsIGNvbnN0IFN0cmluZyYg
c3RyaW5nKQorc3RhdGljIHZvaWQgZmlsbENvbnRhaW5lckZyb21TdHJpbmcoQ29udGFpbmVyTm9k
ZSYgcGFyYWdyYXBoLCBjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBEb2N1bWVudCYgZG9j
dW1lbnQgPSBwYXJhZ3JhcGgtPmRvY3VtZW50KCk7CisgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0g
cGFyYWdyYXBoLmRvY3VtZW50KCk7CiAKICAgICBpZiAoc3RyaW5nLmlzRW1wdHkoKSkgewotICAg
ICAgICBwYXJhZ3JhcGgtPmFwcGVuZENoaWxkKGNyZWF0ZUJsb2NrUGxhY2Vob2xkZXJFbGVtZW50
KGRvY3VtZW50KSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAgIHBhcmFncmFwaC5hcHBl
bmRDaGlsZChjcmVhdGVCbG9ja1BsYWNlaG9sZGVyRWxlbWVudChkb2N1bWVudCksIEFTU0VSVF9O
T19FWENFUFRJT04pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC03MjYsMTEgKzcyNiwx
MSBAQCBzdGF0aWMgdm9pZCBmaWxsQ29udGFpbmVyRnJvbVN0cmluZyhDb250YWluZXJOb2RlKiBw
YXJhZ3JhcGgsIGNvbnN0IFN0cmluZyYgc3RyaQogICAgICAgICAvLyBhcHBlbmQgdGhlIG5vbi10
YWIgdGV4dHVhbCBwYXJ0CiAgICAgICAgIGlmICghcy5pc0VtcHR5KCkpIHsKICAgICAgICAgICAg
IGlmICghdGFiVGV4dC5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICBwYXJhZ3JhcGgtPmFw
cGVuZENoaWxkKGNyZWF0ZVRhYlNwYW5FbGVtZW50KGRvY3VtZW50LCB0YWJUZXh0KSwgQVNTRVJU
X05PX0VYQ0VQVElPTik7CisgICAgICAgICAgICAgICAgcGFyYWdyYXBoLmFwcGVuZENoaWxkKGNy
ZWF0ZVRhYlNwYW5FbGVtZW50KGRvY3VtZW50LCB0YWJUZXh0KSwgQVNTRVJUX05PX0VYQ0VQVElP
Tik7CiAgICAgICAgICAgICAgICAgdGFiVGV4dCA9IGVtcHR5U3RyaW5nKCk7CiAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBSZWZQdHI8Tm9kZT4gdGV4dE5vZGUgPSBkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZShzdHJpbmdXaXRoUmViYWxhbmNlZFdoaXRlc3BhY2UocywgZmlyc3QsIGkgKyAxID09
IG51bUVudHJpZXMpKTsKLSAgICAgICAgICAgIHBhcmFncmFwaC0+YXBwZW5kQ2hpbGQodGV4dE5v
ZGUucmVsZWFzZSgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgICAgIFJlZjxOb2Rl
PiB0ZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cmluZ1dpdGhSZWJhbGFuY2Vk
V2hpdGVzcGFjZShzLCBmaXJzdCwgaSArIDEgPT0gbnVtRW50cmllcykpOworICAgICAgICAgICAg
cGFyYWdyYXBoLmFwcGVuZENoaWxkKFdURjo6bW92ZSh0ZXh0Tm9kZSksIEFTU0VSVF9OT19FWENF
UFRJT04pOwogICAgICAgICB9CiAKICAgICAgICAgLy8gdGhlcmUgaXMgYSB0YWIgYWZ0ZXIgZXZl
cnkgZW50cnksIGV4Y2VwdCB0aGUgbGFzdCBlbnRyeQpAQCAtNzM4LDcgKzczOCw3IEBAIHN0YXRp
YyB2b2lkIGZpbGxDb250YWluZXJGcm9tU3RyaW5nKENvbnRhaW5lck5vZGUqIHBhcmFncmFwaCwg
Y29uc3QgU3RyaW5nJiBzdHJpCiAgICAgICAgIGlmIChpICsgMSAhPSBudW1FbnRyaWVzKQogICAg
ICAgICAgICAgdGFiVGV4dC5hcHBlbmQoJ1x0Jyk7CiAgICAgICAgIGVsc2UgaWYgKCF0YWJUZXh0
LmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHBhcmFncmFwaC0+YXBwZW5kQ2hpbGQoY3JlYXRlVGFi
U3BhbkVsZW1lbnQoZG9jdW1lbnQsIHRhYlRleHQpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAg
ICAgICAgICAgIHBhcmFncmFwaC5hcHBlbmRDaGlsZChjcmVhdGVUYWJTcGFuRWxlbWVudChkb2N1
bWVudCwgdGFiVGV4dCksIEFTU0VSVF9OT19FWENFUFRJT04pOwogCiAgICAgICAgIGZpcnN0ID0g
ZmFsc2U7CiAgICAgfQpAQCAtNzc4LDEzICs3NzgsMTMgQEAgc3RhdGljIGJvb2wgY29udGV4dFBy
ZXNlcnZlc05ld2xpbmUoY29uc3QgUmFuZ2UmIGNvbnRleHQpCiAgICAgcmV0dXJuIGNvbnRhaW5l
ci0+cmVuZGVyZXIoKS0+c3R5bGUoKS5wcmVzZXJ2ZU5ld2xpbmUoKTsKIH0KIAotUGFzc1JlZlB0
cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21UZXh0KFJhbmdlJiBjb250ZXh0
LCBjb25zdCBTdHJpbmcmIHRleHQpCitSZWY8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21l
bnRGcm9tVGV4dChSYW5nZSYgY29udGV4dCwgY29uc3QgU3RyaW5nJiB0ZXh0KQogewogICAgIERv
Y3VtZW50JiBkb2N1bWVudCA9IGNvbnRleHQub3duZXJEb2N1bWVudCgpOwotICAgIFJlZlB0cjxE
b2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21l
bnQoKTsKKyAgICBSZWY8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBkb2N1bWVudC5jcmVh
dGVEb2N1bWVudEZyYWdtZW50KCk7CiAgICAgCiAgICAgaWYgKHRleHQuaXNFbXB0eSgpKQotICAg
ICAgICByZXR1cm4gZnJhZ21lbnQucmVsZWFzZSgpOworICAgICAgICByZXR1cm4gZnJhZ21lbnQ7
CiAKICAgICBTdHJpbmcgc3RyaW5nID0gdGV4dDsKICAgICBzdHJpbmcucmVwbGFjZSgiXHJcbiIs
ICJcbiIpOwpAQCAtNzkzLDE3ICs3OTMsMTcgQEAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50
PiBjcmVhdGVGcmFnbWVudEZyb21UZXh0KFJhbmdlJiBjb250ZXh0LCBjb25zdCBTdHJpbmcKICAg
ICBpZiAoY29udGV4dFByZXNlcnZlc05ld2xpbmUoY29udGV4dCkpIHsKICAgICAgICAgZnJhZ21l
bnQtPmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cmluZyksIEFTU0VSVF9O
T19FWENFUFRJT04pOwogICAgICAgICBpZiAoc3RyaW5nLmVuZHNXaXRoKCdcbicpKSB7Ci0gICAg
ICAgICAgICBSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IGNyZWF0ZUJyZWFrRWxlbWVudChkb2N1
bWVudCk7CisgICAgICAgICAgICBSZWY8RWxlbWVudD4gZWxlbWVudCA9IGNyZWF0ZUJyZWFrRWxl
bWVudChkb2N1bWVudCk7CiAgICAgICAgICAgICBlbGVtZW50LT5zZXRBdHRyaWJ1dGUoY2xhc3NB
dHRyLCBBcHBsZUludGVyY2hhbmdlTmV3bGluZSk7ICAgICAgICAgICAgCi0gICAgICAgICAgICBm
cmFnbWVudC0+YXBwZW5kQ2hpbGQoZWxlbWVudC5yZWxlYXNlKCksIEFTU0VSVF9OT19FWENFUFRJ
T04pOworICAgICAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShlbGVtZW50
KSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGZyYWdt
ZW50LnJlbGVhc2UoKTsKKyAgICAgICAgcmV0dXJuIGZyYWdtZW50OwogICAgIH0KIAogICAgIC8v
IEEgc3RyaW5nIHdpdGggbm8gbmV3bGluZXMgZ2V0cyBhZGRlZCBpbmxpbmUsIHJhdGhlciB0aGFu
IGJlaW5nIHB1dCBpbnRvIGEgcGFyYWdyYXBoLgogICAgIGlmIChzdHJpbmcuZmluZCgnXG4nKSA9
PSBub3RGb3VuZCkgewotICAgICAgICBmaWxsQ29udGFpbmVyRnJvbVN0cmluZyhmcmFnbWVudC5n
ZXQoKSwgc3RyaW5nKTsKLSAgICAgICAgcmV0dXJuIGZyYWdtZW50LnJlbGVhc2UoKTsKKyAgICAg
ICAgZmlsbENvbnRhaW5lckZyb21TdHJpbmcoZnJhZ21lbnQsIHN0cmluZyk7CisgICAgICAgIHJl
dHVybiBmcmFnbWVudDsKICAgICB9CiAKICAgICAvLyBCcmVhayBzdHJpbmcgaW50byBwYXJhZ3Jh
cGhzLiBFeHRyYSBsaW5lIGJyZWFrcyB0dXJuIGludG8gZW1wdHkgcGFyYWdyYXBocy4KQEAgLTgy
OSwxNyArODI5LDE3IEBAIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21l
bnRGcm9tVGV4dChSYW5nZSYgY29udGV4dCwgY29uc3QgU3RyaW5nCiAgICAgICAgICAgICBlbGVt
ZW50LT5zZXRBdHRyaWJ1dGUoY2xhc3NBdHRyLCBBcHBsZUludGVyY2hhbmdlTmV3bGluZSk7CiAg
ICAgICAgIH0gZWxzZSBpZiAodXNlTGluZUJyZWFrKSB7CiAgICAgICAgICAgICBlbGVtZW50ID0g
Y3JlYXRlQnJlYWtFbGVtZW50KGRvY3VtZW50KTsKLSAgICAgICAgICAgIGZpbGxDb250YWluZXJG
cm9tU3RyaW5nKGZyYWdtZW50LmdldCgpLCBzKTsKKyAgICAgICAgICAgIGZpbGxDb250YWluZXJG
cm9tU3RyaW5nKGZyYWdtZW50LCBzKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlm
ICh1c2VDbG9uZXNPZkVuY2xvc2luZ0Jsb2NrKQogICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBi
bG9jay0+Y2xvbmVFbGVtZW50V2l0aG91dENoaWxkcmVuKGRvY3VtZW50KTsKICAgICAgICAgICAg
IGVsc2UKICAgICAgICAgICAgICAgICBlbGVtZW50ID0gY3JlYXRlRGVmYXVsdFBhcmFncmFwaEVs
ZW1lbnQoZG9jdW1lbnQpOwotICAgICAgICAgICAgZmlsbENvbnRhaW5lckZyb21TdHJpbmcoZWxl
bWVudC5nZXQoKSwgcyk7CisgICAgICAgICAgICBmaWxsQ29udGFpbmVyRnJvbVN0cmluZygqZWxl
bWVudCwgcyk7CiAgICAgICAgIH0KLSAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKGVsZW1l
bnQucmVsZWFzZSgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgZnJhZ21lbnQtPmFw
cGVuZENoaWxkKGVsZW1lbnQucmVsZWFzZU5vbk51bGwoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7
CiAgICAgfQotICAgIHJldHVybiBmcmFnbWVudC5yZWxlYXNlKCk7CisgICAgcmV0dXJuIGZyYWdt
ZW50OwogfQogCiBTdHJpbmcgZG9jdW1lbnRUeXBlU3RyaW5nKGNvbnN0IERvY3VtZW50JiBkb2N1
bWVudCkKQEAgLTk0NSwxMCArOTQ1LDEwIEBAIHN0YXRpYyB2b2lkIHJlbW92ZUVsZW1lbnRGcm9t
RnJhZ21lbnRQcmVzZXJ2aW5nQ2hpbGRyZW4oRG9jdW1lbnRGcmFnbWVudCYgZnJhZ21lCiAgICAg
UmVmUHRyPE5vZGU+IG5leHRDaGlsZDsKICAgICBmb3IgKFJlZlB0cjxOb2RlPiBjaGlsZCA9IGVs
ZW1lbnQuZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBuZXh0Q2hpbGQpIHsKICAgICAgICAg
bmV4dENoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCk7Ci0gICAgICAgIGVsZW1lbnQucmVtb3Zl
Q2hpbGQoY2hpbGQuZ2V0KCksIEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgICAgICBmcmFnbWVu
dC5pbnNlcnRCZWZvcmUoY2hpbGQsICZlbGVtZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAg
ICAgICAgZWxlbWVudC5yZW1vdmVDaGlsZCgqY2hpbGQsIEFTU0VSVF9OT19FWENFUFRJT04pOwor
ICAgICAgICBmcmFnbWVudC5pbnNlcnRCZWZvcmUoKmNoaWxkLCAmZWxlbWVudCwgQVNTRVJUX05P
X0VYQ0VQVElPTik7CiAgICAgfQotICAgIGZyYWdtZW50LnJlbW92ZUNoaWxkKCZlbGVtZW50LCBB
U1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBmcmFnbWVudC5yZW1vdmVDaGlsZChlbGVtZW50LCBB
U1NFUlRfTk9fRVhDRVBUSU9OKTsKIH0KIAogUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBj
cmVhdGVDb250ZXh0dWFsRnJhZ21lbnQoY29uc3QgU3RyaW5nJiBtYXJrdXAsIEhUTUxFbGVtZW50
KiBlbGVtZW50LCBQYXJzZXJDb250ZW50UG9saWN5IHBhcnNlckNvbnRlbnRQb2xpY3ksIEV4Y2Vw
dGlvbkNvZGUmIGVjKQpAQCAtOTkwLDcgKzk5MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBoYXNP
bmVUZXh0Q2hpbGQoQ29udGFpbmVyTm9kZSYgbm9kZSkKICAgICByZXR1cm4gaGFzT25lQ2hpbGQo
bm9kZSkgJiYgbm9kZS5maXJzdENoaWxkKCktPmlzVGV4dE5vZGUoKTsKIH0KIAotdm9pZCByZXBs
YWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQoQ29udGFpbmVyTm9kZSYgY29udGFpbmVyLCBQYXNzUmVm
UHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQg
cmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KENvbnRhaW5lck5vZGUmIGNvbnRhaW5lciwgUmVm
PERvY3VtZW50RnJhZ21lbnQ+JiYgZnJhZ21lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAg
IFJlZjxDb250YWluZXJOb2RlPiBjb250YWluZXJOb2RlKGNvbnRhaW5lcik7CiAgICAgQ2hpbGRM
aXN0TXV0YXRpb25TY29wZSBtdXRhdGlvbihjb250YWluZXJOb2RlKTsKQEAgLTEwMDAsMTggKzEw
MDAsMTggQEAgdm9pZCByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQoQ29udGFpbmVyTm9kZSYg
Y29udGFpbmVyLCBQYXNzUmVmUHRyPERvY3VtZW50RnIKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIGlmIChoYXNPbmVUZXh0Q2hpbGQoY29udGFpbmVyTm9kZSkgJiYgaGFzT25lVGV4dENo
aWxkKCpmcmFnbWVudCkpIHsKKyAgICBpZiAoaGFzT25lVGV4dENoaWxkKGNvbnRhaW5lck5vZGUp
ICYmIGhhc09uZVRleHRDaGlsZChmcmFnbWVudCkpIHsKICAgICAgICAgZG93bmNhc3Q8VGV4dD4o
KmNvbnRhaW5lck5vZGUtPmZpcnN0Q2hpbGQoKSkuc2V0RGF0YShkb3duY2FzdDxUZXh0PigqZnJh
Z21lbnQtPmZpcnN0Q2hpbGQoKSkuZGF0YSgpLCBlYyk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKICAgICBpZiAoaGFzT25lQ2hpbGQoY29udGFpbmVyTm9kZSkpIHsKLSAgICAgICAgY29udGFp
bmVyTm9kZS0+cmVwbGFjZUNoaWxkKGZyYWdtZW50LCBjb250YWluZXJOb2RlLT5maXJzdENoaWxk
KCksIGVjKTsKKyAgICAgICAgY29udGFpbmVyTm9kZS0+cmVwbGFjZUNoaWxkKFdURjo6bW92ZShm
cmFnbWVudCksICpjb250YWluZXJOb2RlLT5maXJzdENoaWxkKCksIGVjKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAogICAgIGNvbnRhaW5lck5vZGUtPnJlbW92ZUNoaWxkcmVuKCk7Ci0gICAg
Y29udGFpbmVyTm9kZS0+YXBwZW5kQ2hpbGQoZnJhZ21lbnQsIGVjKTsKKyAgICBjb250YWluZXJO
b2RlLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoZnJhZ21lbnQpLCBlYyk7CiB9CiAKIHZvaWQgcmVw
bGFjZUNoaWxkcmVuV2l0aFRleHQoQ29udGFpbmVyTm9kZSYgY29udGFpbmVyLCBjb25zdCBTdHJp
bmcmIHRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtMTAyNyw3ICsxMDI3LDcgQEAgdm9pZCBy
ZXBsYWNlQ2hpbGRyZW5XaXRoVGV4dChDb250YWluZXJOb2RlJiBjb250YWluZXIsIGNvbnN0IFN0
cmluZyYgdGV4dCwgRXhjZXAKICAgICBSZWY8VGV4dD4gdGV4dE5vZGUgPSBUZXh0OjpjcmVhdGUo
Y29udGFpbmVyTm9kZS0+ZG9jdW1lbnQoKSwgdGV4dCk7CiAKICAgICBpZiAoaGFzT25lQ2hpbGQo
Y29udGFpbmVyTm9kZSkpIHsKLSAgICAgICAgY29udGFpbmVyTm9kZS0+cmVwbGFjZUNoaWxkKFdU
Rjo6bW92ZSh0ZXh0Tm9kZSksIGNvbnRhaW5lck5vZGUtPmZpcnN0Q2hpbGQoKSwgZWMpOworICAg
ICAgICBjb250YWluZXJOb2RlLT5yZXBsYWNlQ2hpbGQoV1RGOjptb3ZlKHRleHROb2RlKSwgKmNv
bnRhaW5lck5vZGUtPmZpcnN0Q2hpbGQoKSwgZWMpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5oIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9tYXJrdXAuaAppbmRleCBjNTUyMDEwNzY2MDcyZWY1ZTYxZDI2YTMxM2Mx
YjAwM2IxYjgzNGI4Li5hNTQ1YmE1NDY2ZjJmZDE4M2Q1NWJiNGU4MzIwOTQ0OGM4OGYzNzkzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvbWFya3VwLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgZW51bSBFQ2hpbGRyZW5P
bmx5IHsgSW5jbHVkZU5vZGUsIENoaWxkcmVuT25seSB9OwogZW51bSBFQWJzb2x1dGVVUkxzIHsg
RG9Ob3RSZXNvbHZlVVJMcywgUmVzb2x2ZUFsbFVSTHMsIFJlc29sdmVOb25Mb2NhbFVSTHMgfTsK
IGVudW0gRUZyYWdtZW50U2VyaWFsaXphdGlvbiB7IEhUTUxGcmFnbWVudFNlcmlhbGl6YXRpb24s
IFhNTEZyYWdtZW50U2VyaWFsaXphdGlvbiB9OwogCi1XRUJDT1JFX0VYUE9SVCBQYXNzUmVmUHRy
PERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoUmFuZ2UmIGNvbnRleHQs
IGNvbnN0IFN0cmluZyYgdGV4dCk7CitXRUJDT1JFX0VYUE9SVCBSZWY8RG9jdW1lbnRGcmFnbWVu
dD4gY3JlYXRlRnJhZ21lbnRGcm9tVGV4dChSYW5nZSYgY29udGV4dCwgY29uc3QgU3RyaW5nJiB0
ZXh0KTsKIFdFQkNPUkVfRVhQT1JUIFJlZjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVu
dEZyb21NYXJrdXAoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIG1hcmt1cCwgY29uc3QgU3RyaW5n
JiBiYXNlVVJMLCBQYXJzZXJDb250ZW50UG9saWN5ID0gQWxsb3dTY3JpcHRpbmdDb250ZW50KTsK
IFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGb3JJbm5lck91dGVy
SFRNTChjb25zdCBTdHJpbmcmLCBFbGVtZW50KiwgUGFyc2VyQ29udGVudFBvbGljeSwgRXhjZXB0
aW9uQ29kZSYpOwogUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZv
clRyYW5zZm9ybVRvRnJhZ21lbnQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBzb3VyY2VN
SU1FVHlwZSwgRG9jdW1lbnQqIG91dHB1dERvYyk7CkBAIC01OSwxMSArNTksMTEgQEAgYm9vbCBp
c1BsYWluVGV4dE1hcmt1cChOb2RlKik7CiAKIC8vIFRoZXNlIG1ldGhvZHMgYXJlIHVzZWQgYnkg
SFRNTEVsZW1lbnQgJiBTaGFkb3dSb290IHRvIHJlcGxhY2UgdGhlCiAvLyBjaGlsZHJlbiB3aXRo
IHJlc3BlY3RlZCBmcmFnbWVudC90ZXh0Lgotdm9pZCByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21l
bnQoQ29udGFpbmVyTm9kZSYsIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4sIEV4Y2VwdGlv
bkNvZGUmKTsKK3ZvaWQgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KENvbnRhaW5lck5vZGUm
LCBSZWY8RG9jdW1lbnRGcmFnbWVudD4mJiwgRXhjZXB0aW9uQ29kZSYpOwogdm9pZCByZXBsYWNl
Q2hpbGRyZW5XaXRoVGV4dChDb250YWluZXJOb2RlJiwgY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9u
Q29kZSYpOwogCi1TdHJpbmcgY3JlYXRlTWFya3VwKGNvbnN0IFJhbmdlJiwgVmVjdG9yPE5vZGUq
PiogPSAwLCBFQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSA9IERvTm90QW5ub3RhdGVGb3JJbnRlcmNo
YW5nZSwgYm9vbCBjb252ZXJ0QmxvY2tzVG9JbmxpbmVzID0gZmFsc2UsIEVBYnNvbHV0ZVVSTHMg
PSBEb05vdFJlc29sdmVVUkxzKTsKLVN0cmluZyBjcmVhdGVNYXJrdXAoY29uc3QgTm9kZSYsIEVD
aGlsZHJlbk9ubHkgPSBJbmNsdWRlTm9kZSwgVmVjdG9yPE5vZGUqPiogPSAwLCBFQWJzb2x1dGVV
UkxzID0gRG9Ob3RSZXNvbHZlVVJMcywgVmVjdG9yPFF1YWxpZmllZE5hbWU+KiB0YWdOYW1lc1Rv
U2tpcCA9IDAsIEVGcmFnbWVudFNlcmlhbGl6YXRpb24gPSBIVE1MRnJhZ21lbnRTZXJpYWxpemF0
aW9uKTsKK1N0cmluZyBjcmVhdGVNYXJrdXAoY29uc3QgUmFuZ2UmLCBWZWN0b3I8Tm9kZSo+KiA9
IG51bGxwdHIsIEVBbm5vdGF0ZUZvckludGVyY2hhbmdlID0gRG9Ob3RBbm5vdGF0ZUZvckludGVy
Y2hhbmdlLCBib29sIGNvbnZlcnRCbG9ja3NUb0lubGluZXMgPSBmYWxzZSwgRUFic29sdXRlVVJM
cyA9IERvTm90UmVzb2x2ZVVSTHMpOworU3RyaW5nIGNyZWF0ZU1hcmt1cChjb25zdCBOb2RlJiwg
RUNoaWxkcmVuT25seSA9IEluY2x1ZGVOb2RlLCBWZWN0b3I8Tm9kZSo+KiA9IG51bGxwdHIsIEVB
YnNvbHV0ZVVSTHMgPSBEb05vdFJlc29sdmVVUkxzLCBWZWN0b3I8UXVhbGlmaWVkTmFtZT4qIHRh
Z05hbWVzVG9Ta2lwID0gMCwgRUZyYWdtZW50U2VyaWFsaXphdGlvbiA9IEhUTUxGcmFnbWVudFNl
cmlhbGl6YXRpb24pOwogCiBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY3JlYXRlRnVsbE1hcmt1cChj
b25zdCBOb2RlJik7CiBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY3JlYXRlRnVsbE1hcmt1cChjb25z
dCBSYW5nZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9u
bHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9v
c2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAppbmRleCBkYmVhMGU5OWJkOTM0YzdkYmRl
YTUyZDI1ZDAxYzJmODE3NWRjMWQwLi41N2UzODhiZjFkY2VhNGI4MTk2YjQ2MGYwY2MzNzExZmYw
Zjg3MzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURh
dGVBbmRUaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9v
c2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcApAQCAtNjAsOSArNjAsOSBAQCB2b2lkIEJh
c2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkK
IHsKICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCB2YWx1
ZUNvbnRhaW5lclBzZXVkbywgKCItd2Via2l0LWRhdGUtYW5kLXRpbWUtdmFsdWUiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAKLSAgICBSZWZQdHI8SFRNTERpdkVsZW1l
bnQ+IHZhbHVlQ29udGFpbmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCkuZG9j
dW1lbnQoKSk7CisgICAgUmVmPEhUTUxEaXZFbGVtZW50PiB2YWx1ZUNvbnRhaW5lciA9IEhUTUxE
aXZFbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLmRvY3VtZW50KCkpOwogICAgIHZhbHVlQ29udGFp
bmVyLT5zZXRQc2V1ZG8odmFsdWVDb250YWluZXJQc2V1ZG8pOwotICAgIGVsZW1lbnQoKS51c2Vy
QWdlbnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKHZhbHVlQ29udGFpbmVyLmdldCgpKTsKKyAg
ICBlbGVtZW50KCkudXNlckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUo
dmFsdWVDb250YWluZXIpKTsKICAgICB1cGRhdGVBcHBlYXJhbmNlKCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKaW5kZXggOGJiZGI5N2MyNTI0YjYyYWIzOWFhNjRl
Njg0MDg1NWNhNDY5NTU5Yy4uYzUzODVhMDRiNjc3OGM1ZWEyZDQzNWI0MzlhOTRiZjIwN2JiNjY2
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKQEAgLTEwNywxMiArMTA3
LDEyIEBAIHZvaWQgQ29sb3JJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogICAgIEFT
U0VSVChlbGVtZW50KCkuc2hhZG93Um9vdCgpKTsKIAogICAgIERvY3VtZW50JiBkb2N1bWVudCA9
IGVsZW1lbnQoKS5kb2N1bWVudCgpOwotICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gd3JhcHBl
ckVsZW1lbnQgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBSZWY8SFRN
TERpdkVsZW1lbnQ+IHdyYXBwZXJFbGVtZW50ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCk7CiAgICAgd3JhcHBlckVsZW1lbnQtPnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJr
aXQtY29sb3Itc3dhdGNoLXdyYXBwZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7Ci0gICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBjb2xvclN3YXRjaCA9IEhUTUxEaXZF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIFJlZjxIVE1MRGl2RWxlbWVudD4gY29sb3JT
d2F0Y2ggPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb2xvclN3YXRj
aC0+c2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC1jb2xvci1zd2F0Y2giLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgd3JhcHBlckVsZW1lbnQtPmFwcGVu
ZENoaWxkKGNvbG9yU3dhdGNoLnJlbGVhc2UoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0gICAg
ZWxlbWVudCgpLnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQod3JhcHBlckVsZW1l
bnQucmVsZWFzZSgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICB3cmFwcGVyRWxlbWVudC0+
YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNvbG9yU3dhdGNoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7
CisgICAgZWxlbWVudCgpLnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoV1RGOjpt
b3ZlKHdyYXBwZXJFbGVtZW50KSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgCiAgICAgdXBk
YXRlQ29sb3JTd2F0Y2goKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQ
RGlyZWN0b3J5RG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GVFBEaXJlY3RvcnlE
b2N1bWVudC5jcHAKaW5kZXggNDA2NWExNzhkMjgyYTkyOTcxNDUxMTU1YjY2ZDYzZGQzNGExZjJk
NS4uMTQ0N2E0NjM1ZjcyMTJlZmE5MmExMWMxN2Y5MmY3ZjY5MzdlYWVmZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAKQEAgLTEwNCwyNyArMTA0LDI3
IEBAIHZvaWQgRlRQRGlyZWN0b3J5RG9jdW1lbnRQYXJzZXI6OmFwcGVuZEVudHJ5KGNvbnN0IFN0
cmluZyYgZmlsZW5hbWUsIGNvbnN0IFN0cmluCiAgICAgUmVmUHRyPEVsZW1lbnQ+IHJvd0VsZW1l
bnQgPSBtX3RhYmxlRWxlbWVudC0+aW5zZXJ0Um93KC0xLCBJR05PUkVfRVhDRVBUSU9OKTsKICAg
ICByb3dFbGVtZW50LT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpjbGFzc0F0dHIsICJmdHBEaXJl
Y3RvcnlFbnRyeVJvdyIpOwogCi0gICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSBkb2N1bWVu
dCgpLT5jcmVhdGVFbGVtZW50KHRkVGFnLCBmYWxzZSk7CisgICAgUmVmPEVsZW1lbnQ+IGVsZW1l
bnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KHRkVGFnLCBmYWxzZSk7CiAgICAgZWxlbWVu
dC0+YXBwZW5kQ2hpbGQoVGV4dDo6Y3JlYXRlKCpkb2N1bWVudCgpLCBTdHJpbmcoJm5vQnJlYWtT
cGFjZSwgMSkpLCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICBpZiAoaXNEaXJlY3RvcnkpCiAgICAg
ICAgIGVsZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNsYXNzQXR0ciwgImZ0cERpcmVj
dG9yeUljb24gZnRwRGlyZWN0b3J5VHlwZURpcmVjdG9yeSIpOwogICAgIGVsc2UKICAgICAgICAg
ZWxlbWVudC0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6Y2xhc3NBdHRyLCAiZnRwRGlyZWN0b3J5
SWNvbiBmdHBEaXJlY3RvcnlUeXBlRmlsZSIpOwotICAgIHJvd0VsZW1lbnQtPmFwcGVuZENoaWxk
KGVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOworICAgIHJvd0VsZW1lbnQtPmFwcGVuZENoaWxk
KFdURjo6bW92ZShlbGVtZW50KSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKICAgICBlbGVtZW50ID0g
Y3JlYXRlVERGb3JGaWxlbmFtZShmaWxlbmFtZSk7CiAgICAgZWxlbWVudC0+c2V0QXR0cmlidXRl
KEhUTUxOYW1lczo6Y2xhc3NBdHRyLCAiZnRwRGlyZWN0b3J5RmlsZU5hbWUiKTsKLSAgICByb3dF
bGVtZW50LT5hcHBlbmRDaGlsZChlbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICByb3dF
bGVtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoZWxlbWVudCksIElHTk9SRV9FWENFUFRJT04p
OwogCiAgICAgZWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQodGRUYWcsIGZhbHNl
KTsKICAgICBlbGVtZW50LT5hcHBlbmRDaGlsZChUZXh0OjpjcmVhdGUoKmRvY3VtZW50KCksIGRh
dGUpLCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICBlbGVtZW50LT5zZXRBdHRyaWJ1dGUoSFRNTE5h
bWVzOjpjbGFzc0F0dHIsICJmdHBEaXJlY3RvcnlGaWxlRGF0ZSIpOwotICAgIHJvd0VsZW1lbnQt
PmFwcGVuZENoaWxkKGVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOworICAgIHJvd0VsZW1lbnQt
PmFwcGVuZENoaWxkKFdURjo6bW92ZShlbGVtZW50KSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKICAg
ICBlbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudCh0ZFRhZywgZmFsc2UpOwogICAg
IGVsZW1lbnQtPmFwcGVuZENoaWxkKFRleHQ6OmNyZWF0ZSgqZG9jdW1lbnQoKSwgc2l6ZSksIElH
Tk9SRV9FWENFUFRJT04pOwogICAgIGVsZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNs
YXNzQXR0ciwgImZ0cERpcmVjdG9yeUZpbGVTaXplIik7Ci0gICAgcm93RWxlbWVudC0+YXBwZW5k
Q2hpbGQoZWxlbWVudCwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgcm93RWxlbWVudC0+YXBwZW5k
Q2hpbGQoV1RGOjptb3ZlKGVsZW1lbnQpLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KIAogUmVmPEVs
ZW1lbnQ+IEZUUERpcmVjdG9yeURvY3VtZW50UGFyc2VyOjpjcmVhdGVUREZvckZpbGVuYW1lKGNv
bnN0IFN0cmluZyYgZmlsZW5hbWUpCkBAIC0xMzUsMTIgKzEzNSwxMiBAQCBSZWY8RWxlbWVudD4g
RlRQRGlyZWN0b3J5RG9jdW1lbnRQYXJzZXI6OmNyZWF0ZVRERm9yRmlsZW5hbWUoY29uc3QgU3Ry
aW5nJiBmaWxlbgogICAgIGVsc2UKICAgICAgICAgZnVsbFVSTCA9IGZ1bGxVUkwgKyAnLycgKyBm
aWxlbmFtZTsKIAotICAgIFJlZlB0cjxFbGVtZW50PiBhbmNob3JFbGVtZW50ID0gZG9jdW1lbnQo
KS0+Y3JlYXRlRWxlbWVudChhVGFnLCBmYWxzZSk7CisgICAgUmVmPEVsZW1lbnQ+IGFuY2hvckVs
ZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KGFUYWcsIGZhbHNlKTsKICAgICBhbmNo
b3JFbGVtZW50LT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpocmVmQXR0ciwgZnVsbFVSTCk7CiAg
ICAgYW5jaG9yRWxlbWVudC0+YXBwZW5kQ2hpbGQoVGV4dDo6Y3JlYXRlKCpkb2N1bWVudCgpLCBm
aWxlbmFtZSksIElHTk9SRV9FWENFUFRJT04pOwogCiAgICAgUmVmPEVsZW1lbnQ+IHRkRWxlbWVu
dCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQodGRUYWcsIGZhbHNlKTsKLSAgICB0ZEVsZW1l
bnQtPmFwcGVuZENoaWxkKGFuY2hvckVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOworICAgIHRk
RWxlbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGFuY2hvckVsZW1lbnQpLCBJR05PUkVfRVhD
RVBUSU9OKTsKIAogICAgIHJldHVybiB0ZEVsZW1lbnQ7CiB9CkBAIC0zMTIsOSArMzEyLDkgQEAg
Ym9vbCBGVFBEaXJlY3RvcnlEb2N1bWVudFBhcnNlcjo6bG9hZERvY3VtZW50VGVtcGxhdGUoKQog
ICAgIC8vIElmIHRoYXQgZmFpbHMgZm9yIHNvbWUgcmVhc29uLCBjcmFtIGl0IG9uIHRoZSBlbmQg
b2YgdGhlIGRvY3VtZW50IGFzIGEgbGFzdAogICAgIC8vIGRpdGNoIGVmZm9ydAogICAgIGlmIChh
dXRvKiBib2R5ID0gZG9jdW1lbnQoKS0+Ym9keU9yRnJhbWVzZXQoKSkKLSAgICAgICAgYm9keS0+
YXBwZW5kQ2hpbGQobV90YWJsZUVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOworICAgICAgICBi
b2R5LT5hcHBlbmRDaGlsZCgqbV90YWJsZUVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOwogICAg
IGVsc2UKLSAgICAgICAgZG9jdW1lbnQoKS0+YXBwZW5kQ2hpbGQobV90YWJsZUVsZW1lbnQsIElH
Tk9SRV9FWENFUFRJT04pOworICAgICAgICBkb2N1bWVudCgpLT5hcHBlbmRDaGlsZCgqbV90YWJs
ZUVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0z
MjUsMTYgKzMyNSwxNiBAQCB2b2lkIEZUUERpcmVjdG9yeURvY3VtZW50UGFyc2VyOjpjcmVhdGVC
YXNpY0RvY3VtZW50KCkKIAogICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgImJhc2ljIGRvY3VtZW50
IiBtb3JlIGFjY2VwdGFibGUKIAotICAgIFJlZlB0cjxFbGVtZW50PiBib2R5RWxlbWVudCA9IGRv
Y3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoYm9keVRhZywgZmFsc2UpOworICAgIFJlZjxFbGVtZW50
PiBib2R5RWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoYm9keVRhZywgZmFsc2Up
OwogCi0gICAgZG9jdW1lbnQoKS0+YXBwZW5kQ2hpbGQoYm9keUVsZW1lbnQsIElHTk9SRV9FWENF
UFRJT04pOworICAgIGRvY3VtZW50KCktPmFwcGVuZENoaWxkKGJvZHlFbGVtZW50LmNvcHlSZWYo
KSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBSZWZQdHI8RWxlbWVudD4gdGFibGVFbGVtZW50
ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudCh0YWJsZVRhZywgZmFsc2UpOwotICAgIG1fdGFi
bGVFbGVtZW50ID0gZG93bmNhc3Q8SFRNTFRhYmxlRWxlbWVudD4odGFibGVFbGVtZW50LmdldCgp
KTsKKyAgICBSZWY8RWxlbWVudD4gdGFibGVFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxl
bWVudCh0YWJsZVRhZywgZmFsc2UpOworICAgIG1fdGFibGVFbGVtZW50ID0gZG93bmNhc3Q8SFRN
TFRhYmxlRWxlbWVudD4odGFibGVFbGVtZW50LnB0cigpKTsKICAgICBtX3RhYmxlRWxlbWVudC0+
c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6aWRBdHRyLCAiZnRwRGlyZWN0b3J5VGFibGUiKTsKICAg
ICBtX3RhYmxlRWxlbWVudC0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6c3R5bGVBdHRyLCAid2lk
dGg6MTAwJSIpOwogCi0gICAgYm9keUVsZW1lbnQtPmFwcGVuZENoaWxkKG1fdGFibGVFbGVtZW50
LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBib2R5RWxlbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjpt
b3ZlKHRhYmxlRWxlbWVudCksIElHTk9SRV9FWENFUFRJT04pOwogCiAgICAgZG9jdW1lbnQoKS0+
cHJvY2Vzc1ZpZXdwb3J0KCJ3aWR0aD1kZXZpY2Utd2lkdGgiLCBWaWV3cG9ydEFyZ3VtZW50czo6
Vmlld3BvcnRNZXRhKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERl
dGFpbHNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50
LmNwcAppbmRleCA0MzAyMTJjMWFiODA3MDkxNjNlNTRmNTNkMWRiYzJmN2NhZGE4YjFmLi40OGNj
OWI4NDhlNTQxN2FjNzlmYTY1MDE5ZTQ4NzA1ZTE3MTI3YTA5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCkBAIC05MCwxMSArOTAsMTEgQEAgcHJpdmF0ZToK
IAogUmVmPERldGFpbHNTdW1tYXJ5RWxlbWVudD4gRGV0YWlsc1N1bW1hcnlFbGVtZW50OjpjcmVh
dGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIFJlZlB0cjxIVE1MU3VtbWFyeUVsZW1lbnQ+
IHN1bW1hcnkgPSBIVE1MU3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZShzdW1tYXJ5VGFnLCBkb2N1bWVu
dCk7CisgICAgUmVmPEhUTUxTdW1tYXJ5RWxlbWVudD4gc3VtbWFyeSA9IEhUTUxTdW1tYXJ5RWxl
bWVudDo6Y3JlYXRlKHN1bW1hcnlUYWcsIGRvY3VtZW50KTsKICAgICBzdW1tYXJ5LT5hcHBlbmRD
aGlsZChUZXh0OjpjcmVhdGUoZG9jdW1lbnQsIGRlZmF1bHREZXRhaWxzU3VtbWFyeVRleHQoKSks
IEFTU0VSVF9OT19FWENFUFRJT04pOwogCiAgICAgUmVmPERldGFpbHNTdW1tYXJ5RWxlbWVudD4g
ZGV0YWlsc1N1bW1hcnkgPSBhZG9wdFJlZigqbmV3IERldGFpbHNTdW1tYXJ5RWxlbWVudChkb2N1
bWVudCkpOwotICAgIGRldGFpbHNTdW1tYXJ5LT5hcHBlbmRDaGlsZChzdW1tYXJ5KTsKKyAgICBk
ZXRhaWxzU3VtbWFyeS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHN1bW1hcnkpKTsKICAgICByZXR1
cm4gZGV0YWlsc1N1bW1hcnk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKaW5k
ZXggNTIwY2UwM2U3MGNjN2FkNzg2Y2I1MzdhNzczMDk5N2Y4NjIzYzM1ZS4uNWMzNzdkYWVlMzk2
ZmE2MGZhMzQxZGRiZjZhOTY5NzczNzgwYTZiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVu
dC5jcHAKQEAgLTU4NCw5ICs1ODQsOSBAQCB2b2lkIEhUTUxFbGVtZW50OjpzZXRJbm5lclRleHQo
Y29uc3QgU3RyaW5nJiB0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKIAogICAgIC8vIEFkZCB0ZXh0
IG5vZGVzIGFuZCA8YnI+IGVsZW1lbnRzLgogICAgIGVjID0gMDsKLSAgICBSZWZQdHI8RG9jdW1l
bnRGcmFnbWVudD4gZnJhZ21lbnQgPSB0ZXh0VG9GcmFnbWVudCh0ZXh0LCBlYyk7CisgICAgUmVm
PERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gdGV4dFRvRnJhZ21lbnQodGV4dCwgZWMpOwog
ICAgIGlmICghZWMpCi0gICAgICAgIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudCgqdGhpcywg
ZnJhZ21lbnQucmVsZWFzZSgpLCBlYyk7CisgICAgICAgIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFn
bWVudCgqdGhpcywgV1RGOjptb3ZlKGZyYWdtZW50KSwgZWMpOwogfQogCiB2b2lkIEhUTUxFbGVt
ZW50OjpzZXRPdXRlclRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykK
QEAgLTYyMSw3ICs2MjEsNyBAQCB2b2lkIEhUTUxFbGVtZW50OjpzZXRPdXRlclRleHQoY29uc3Qg
U3RyaW5nJiB0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgZWMgPSBISUVSQVJDSFlf
UkVRVUVTVF9FUlI7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm47Ci0gICAgcGFyZW50LT5y
ZXBsYWNlQ2hpbGQobmV3Q2hpbGQucmVsZWFzZSgpLCB0aGlzLCBlYyk7CisgICAgcGFyZW50LT5y
ZXBsYWNlQ2hpbGQobmV3Q2hpbGQucmVsZWFzZU5vbk51bGwoKSwgKnRoaXMsIGVjKTsKIAogICAg
IFJlZlB0cjxOb2RlPiBub2RlID0gbmV4dCA/IG5leHQtPnByZXZpb3VzU2libGluZygpIDogbnVs
bHB0cjsKICAgICBpZiAoIWVjICYmIGlzPFRleHQ+KG5vZGUuZ2V0KCkpKQpAQCAtNjMwLDcgKzYz
MCw3IEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnNldE91dGVyVGV4dChjb25zdCBTdHJpbmcmIHRleHQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICBtZXJnZVdpdGhOZXh0VGV4dE5vZGUoZG93bmNh
c3Q8VGV4dD4oKnByZXYpLCBlYyk7CiB9CiAKLU5vZGUqIEhUTUxFbGVtZW50OjppbnNlcnRBZGph
Y2VudChjb25zdCBTdHJpbmcmIHdoZXJlLCBOb2RlKiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYg
ZWMpCitOb2RlKiBIVE1MRWxlbWVudDo6aW5zZXJ0QWRqYWNlbnQoY29uc3QgU3RyaW5nJiB3aGVy
ZSwgUmVmPE5vZGU+JiYgbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIC8vIElu
IEludGVybmV0IEV4cGxvcmVyIGlmIHRoZSBlbGVtZW50IGhhcyBubyBwYXJlbnQgYW5kIHdoZXJl
IGlzICJiZWZvcmVCZWdpbiIgb3IgImFmdGVyRW5kIiwKICAgICAvLyBhIGRvY3VtZW50IGZyYWdt
ZW50IGlzIGNyZWF0ZWQgYW5kIHRoZSBlbGVtZW50cyBhcHBlbmRlZCBpbiB0aGUgY29ycmVjdCBv
cmRlci4gVGhpcyBkb2N1bWVudApAQCAtNjQxLDE4ICs2NDEsMTggQEAgTm9kZSogSFRNTEVsZW1l
bnQ6Omluc2VydEFkamFjZW50KGNvbnN0IFN0cmluZyYgd2hlcmUsIE5vZGUqIG5ld0NoaWxkLCBF
eGNlcHRpb24KIAogICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh3aGVyZSwgImJlZm9yZUJlZ2lu
IikpIHsKICAgICAgICAgQ29udGFpbmVyTm9kZSogcGFyZW50ID0gdGhpcy0+cGFyZW50Tm9kZSgp
OwotICAgICAgICByZXR1cm4gKHBhcmVudCAmJiBwYXJlbnQtPmluc2VydEJlZm9yZShuZXdDaGls
ZCwgdGhpcywgZWMpKSA/IG5ld0NoaWxkIDogbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIChwYXJl
bnQgJiYgcGFyZW50LT5pbnNlcnRCZWZvcmUobmV3Q2hpbGQuY29weVJlZigpLCB0aGlzLCBlYykp
ID8gbmV3Q2hpbGQucHRyKCkgOiBudWxscHRyOwogICAgIH0KIAogICAgIGlmIChlcXVhbElnbm9y
aW5nQ2FzZSh3aGVyZSwgImFmdGVyQmVnaW4iKSkKLSAgICAgICAgcmV0dXJuIGluc2VydEJlZm9y
ZShuZXdDaGlsZCwgZmlyc3RDaGlsZCgpLCBlYykgPyBuZXdDaGlsZCA6IG51bGxwdHI7CisgICAg
ICAgIHJldHVybiBpbnNlcnRCZWZvcmUobmV3Q2hpbGQuY29weVJlZigpLCBmaXJzdENoaWxkKCks
IGVjKSA/IG5ld0NoaWxkLnB0cigpIDogbnVsbHB0cjsKIAogICAgIGlmIChlcXVhbElnbm9yaW5n
Q2FzZSh3aGVyZSwgImJlZm9yZUVuZCIpKQotICAgICAgICByZXR1cm4gYXBwZW5kQ2hpbGQobmV3
Q2hpbGQsIGVjKSA/IG5ld0NoaWxkIDogbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIGFwcGVuZENo
aWxkKG5ld0NoaWxkLmNvcHlSZWYoKSwgZWMpID8gbmV3Q2hpbGQucHRyKCkgOiBudWxscHRyOwog
CiAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHdoZXJlLCAiYWZ0ZXJFbmQiKSkgewogICAgICAg
ICBDb250YWluZXJOb2RlKiBwYXJlbnQgPSB0aGlzLT5wYXJlbnROb2RlKCk7Ci0gICAgICAgIHJl
dHVybiAocGFyZW50ICYmIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG5ld0NoaWxkLCBuZXh0U2libGlu
ZygpLCBlYykpID8gbmV3Q2hpbGQgOiBudWxscHRyOworICAgICAgICByZXR1cm4gKHBhcmVudCAm
JiBwYXJlbnQtPmluc2VydEJlZm9yZShuZXdDaGlsZC5jb3B5UmVmKCksIG5leHRTaWJsaW5nKCks
IGVjKSkgPyBuZXdDaGlsZC5wdHIoKSA6IG51bGxwdHI7CiAgICAgfQogICAgIAogICAgIC8vIElF
IHRocm93cyBDT00gRXhjZXB0aW9uIEVfSU5WQUxJREFSRzsgdGhpcyBpcyB0aGUgYmVzdCBET00g
ZXhjZXB0aW9uIGFsdGVybmF0aXZlLgpAQCAtNjY4LDcgKzY2OCw3IEBAIEVsZW1lbnQqIEhUTUxF
bGVtZW50OjppbnNlcnRBZGphY2VudEVsZW1lbnQoY29uc3QgU3RyaW5nJiB3aGVyZSwgRWxlbWVu
dCogbmV3Q2hpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIE5vZGUqIHJl
dHVyblZhbHVlID0gaW5zZXJ0QWRqYWNlbnQod2hlcmUsIG5ld0NoaWxkLCBlYyk7CisgICAgTm9k
ZSogcmV0dXJuVmFsdWUgPSBpbnNlcnRBZGphY2VudCh3aGVyZSwgKm5ld0NoaWxkLCBlYyk7CiAg
ICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIXJldHVyblZhbHVlIHx8IGlzPEVs
ZW1lbnQ+KCpyZXR1cm5WYWx1ZSkpOwogICAgIHJldHVybiBkb3duY2FzdDxFbGVtZW50PihyZXR1
cm5WYWx1ZSk7IAogfQpAQCAtNjk5LDEzICs2OTksMTIgQEAgdm9pZCBIVE1MRWxlbWVudDo6aW5z
ZXJ0QWRqYWNlbnRIVE1MKGNvbnN0IFN0cmluZyYgd2hlcmUsIGNvbnN0IFN0cmluZyYgbWFya3Vw
LAogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGNyZWF0ZUZyYWdtZW50
Rm9ySW5uZXJPdXRlckhUTUwobWFya3VwLCBjb250ZXh0RWxlbWVudCwgQWxsb3dTY3JpcHRpbmdD
b250ZW50LCBlYyk7CiAgICAgaWYgKCFmcmFnbWVudCkKICAgICAgICAgcmV0dXJuOwotICAgIGlu
c2VydEFkamFjZW50KHdoZXJlLCBmcmFnbWVudC5nZXQoKSwgZWMpOworICAgIGluc2VydEFkamFj
ZW50KHdoZXJlLCBmcmFnbWVudC5yZWxlYXNlTm9uTnVsbCgpLCBlYyk7CiB9CiAKIHZvaWQgSFRN
TEVsZW1lbnQ6Omluc2VydEFkamFjZW50VGV4dChjb25zdCBTdHJpbmcmIHdoZXJlLCBjb25zdCBT
dHJpbmcmIHRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIFJlZlB0cjxUZXh0PiB0ZXh0
Tm9kZSA9IGRvY3VtZW50KCkuY3JlYXRlVGV4dE5vZGUodGV4dCk7Ci0gICAgaW5zZXJ0QWRqYWNl
bnQod2hlcmUsIHRleHROb2RlLmdldCgpLCBlYyk7CisgICAgaW5zZXJ0QWRqYWNlbnQod2hlcmUs
IGRvY3VtZW50KCkuY3JlYXRlVGV4dE5vZGUodGV4dCksIGVjKTsKIH0KIAogdm9pZCBIVE1MRWxl
bWVudDo6YXBwbHlBbGlnbm1lbnRBdHRyaWJ1dGVUb1N0eWxlKGNvbnN0IEF0b21pY1N0cmluZyYg
YWxpZ25tZW50LCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBzdHlsZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEVsZW1lbnQuaAppbmRleCAzMGUzNzc1YTAwNGUzMWJlYWU4MzVjZjY5MGNiNDA5YjFkZmViNzdh
Li43MGQ0OTYxY2VkMmRjZTk2ZDQ1NTRlYzE2NjY5MGQwZDg1YzA2M2ViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRWxlbWVudC5oCkBAIC0xMzAsNyArMTMwLDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1
YWwgSFRNTEZvcm1FbGVtZW50KiB2aXJ0dWFsRm9ybSgpIGNvbnN0OwogCi0gICAgTm9kZSogaW5z
ZXJ0QWRqYWNlbnQoY29uc3QgU3RyaW5nJiB3aGVyZSwgTm9kZSogbmV3Q2hpbGQsIEV4Y2VwdGlv
bkNvZGUmKTsKKyAgICBOb2RlKiBpbnNlcnRBZGphY2VudChjb25zdCBTdHJpbmcmIHdoZXJlLCBS
ZWY8Tm9kZT4mJiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFJlZjxEb2N1bWVudEZy
YWdtZW50PiB0ZXh0VG9GcmFnbWVudChjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CiAK
ICAgICB2b2lkIGRpckF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAppbmRleCBiMmEyNzdhNTU5YmEzNWQx
ZjM5NTVmNDI4M2M3YzgyOTEzNGIwYTA2Li5hNGE3M2NhNmI2MDk3ZGM3OGJkNjlmM2JiNDEyMWU0
ZDI3ZGVkNGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKQEAg
LTUwNCw3ICs1MDQsNyBAQCB2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OmNyZWF0ZUltYWdlQ29udHJv
bHMoKQogICAgIGlmICghaW1hZ2VDb250cm9scykKICAgICAgICAgcmV0dXJuOwogCi0gICAgZW5z
dXJlVXNlckFnZW50U2hhZG93Um9vdCgpLmFwcGVuZENoaWxkKGltYWdlQ29udHJvbHMpOworICAg
IGVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKS5hcHBlbmRDaGlsZChpbWFnZUNvbnRyb2xzLnJl
bGVhc2VOb25OdWxsKCkpOwogCiAgICAgYXV0byogcmVuZGVyT2JqZWN0ID0gcmVuZGVyZXIoKTsK
ICAgICBpZiAoIXJlbmRlck9iamVjdCkKQEAgLTUyMSw3ICs1MjEsNyBAQCB2b2lkIEhUTUxJbWFn
ZUVsZW1lbnQ6OmRlc3Ryb3lJbWFnZUNvbnRyb2xzKCkKIAogICAgIGlmIChOb2RlKiBub2RlID0g
c2hhZG93Um9vdC0+Zmlyc3RDaGlsZCgpKSB7CiAgICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZ
X0lNUExJQ0FUSU9OKG5vZGUtPmlzSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50KCkpOwotICAgICAg
ICBzaGFkb3dSb290LT5yZW1vdmVDaGlsZChub2RlKTsKKyAgICAgICAgc2hhZG93Um9vdC0+cmVt
b3ZlQ2hpbGQoKm5vZGUpOwogICAgIH0KIAogICAgIGF1dG8qIHJlbmRlck9iamVjdCA9IHJlbmRl
cmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCmluZGV4IGU3
ZDkxNDgyNWM1ZWI4MTE0ZDliMmVlYTFmZGNmMDMwMjZhYTBiYTIuLjRhNjNiMDBhNGE0MTM0YjU4
Y2YyNDVmZWI2OTJmOGE0NjYxNmJmMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEtleWdlbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdl
bkVsZW1lbnQuY3BwCkBAIC01OCw3ICs1OCw3IEBAIHByb3RlY3RlZDoKICAgICB9CiAKIHByaXZh
dGU6Ci0gICAgdmlydHVhbCBSZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJp
YnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQpIG92ZXJyaWRlCisgICAg
dmlydHVhbCBSZWY8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGls
ZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBy
ZXR1cm4gY3JlYXRlKHRhcmdldERvY3VtZW50KTsKICAgICB9CkBAIC03MywxNCArNzMsMTQgQEAg
aW5saW5lIEhUTUxLZXlnZW5FbGVtZW50OjpIVE1MS2V5Z2VuRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWUKICAgICBWZWN0b3I8U3RyaW5nPiBrZXlzOwogICAgIGdl
dFN1cHBvcnRlZEtleVNpemVzKGtleXMpOwogCi0gICAgUmVmUHRyPEhUTUxTZWxlY3RFbGVtZW50
PiBzZWxlY3QgPSBLZXlnZW5TZWxlY3RFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIFJl
ZjxIVE1MU2VsZWN0RWxlbWVudD4gc2VsZWN0ID0gS2V5Z2VuU2VsZWN0RWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGtleXMuc2l6ZSgpOyArK2kp
IHsKLSAgICAgICAgUmVmUHRyPEhUTUxPcHRpb25FbGVtZW50PiBvcHRpb24gPSBIVE1MT3B0aW9u
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICAgICAgc2VsZWN0LT5hcHBlbmRDaGlsZChv
cHRpb24sIElHTk9SRV9FWENFUFRJT04pOworICAgICAgICBSZWY8SFRNTE9wdGlvbkVsZW1lbnQ+
IG9wdGlvbiA9IEhUTUxPcHRpb25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgICAgICBz
ZWxlY3QtPmFwcGVuZENoaWxkKG9wdGlvbi5jb3B5UmVmKCksIElHTk9SRV9FWENFUFRJT04pOwog
ICAgICAgICBvcHRpb24tPmFwcGVuZENoaWxkKFRleHQ6OmNyZWF0ZShkb2N1bWVudCwga2V5c1tp
XSksIElHTk9SRV9FWENFUFRJT04pOwogICAgIH0KIAotICAgIGVuc3VyZVVzZXJBZ2VudFNoYWRv
d1Jvb3QoKS5hcHBlbmRDaGlsZChzZWxlY3QsIElHTk9SRV9FWENFUFRJT04pOworICAgIGVuc3Vy
ZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKS5hcHBlbmRDaGlsZChXVEY6Om1vdmUoc2VsZWN0KSwgSUdO
T1JFX0VYQ0VQVElPTik7CiB9CiAKIFJlZjxIVE1MS2V5Z2VuRWxlbWVudD4gSFRNTEtleWdlbkVs
ZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9j
dW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRl
ckVsZW1lbnQuY3BwCmluZGV4IDIyYjJmMzk4MWUzOTUyMzc5M2Y1ZTJiMzFlNmNjNWQyOGJmYTc3
ODAuLmU1ZTNkZTAzNjgzODE1NDVlYTc4NTBjMDhmOTZhN2YxYmMwNzU5OWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcApAQCAtMjI5LDE2ICsyMjksMTYgQEAgdm9p
ZCBIVE1MTWV0ZXJFbGVtZW50OjpkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3Qq
IHJvb3QpCiB7CiAgICAgQVNTRVJUKCFtX3ZhbHVlKTsKIAotICAgIFJlZlB0cjxNZXRlcklubmVy
RWxlbWVudD4gaW5uZXIgPSBNZXRlcklubmVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwot
ICAgIHJvb3QtPmFwcGVuZENoaWxkKGlubmVyKTsKKyAgICBSZWY8TWV0ZXJJbm5lckVsZW1lbnQ+
IGlubmVyID0gTWV0ZXJJbm5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKKyAgICByb290
LT5hcHBlbmRDaGlsZChpbm5lci5jb3B5UmVmKCkpOwogCi0gICAgUmVmUHRyPE1ldGVyQmFyRWxl
bWVudD4gYmFyID0gTWV0ZXJCYXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CisgICAgUmVm
PE1ldGVyQmFyRWxlbWVudD4gYmFyID0gTWV0ZXJCYXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQo
KSk7CiAgICAgbV92YWx1ZSA9IE1ldGVyVmFsdWVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7
CiAgICAgbV92YWx1ZS0+c2V0V2lkdGhQZXJjZW50YWdlKDApOwogICAgIG1fdmFsdWUtPnVwZGF0
ZVBzZXVkbygpOwotICAgIGJhci0+YXBwZW5kQ2hpbGQobV92YWx1ZSwgQVNTRVJUX05PX0VYQ0VQ
VElPTik7CisgICAgYmFyLT5hcHBlbmRDaGlsZCgqbV92YWx1ZSwgQVNTRVJUX05PX0VYQ0VQVElP
Tik7CiAKLSAgICBpbm5lci0+YXBwZW5kQ2hpbGQoYmFyLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsK
KyAgICBpbm5lci0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGJhciksIEFTU0VSVF9OT19FWENFUFRJ
T04pOwogfQogCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MT3B0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25F
bGVtZW50LmNwcAppbmRleCAyZGZmZjI2MzUzZWY5MWY0ODEwY2UxODc3NzA2YWRjOTUwZmMzNmFl
Li5lZDljYWVhMTVhNjIxMzM4MmMyMGQxZGY2NzRjYWE4ZTJhOWYyMmJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcApAQCAtNzEsMTIgKzcxLDEyIEBAIFJlZlB0
cjxIVE1MT3B0aW9uRWxlbWVudD4gSFRNTE9wdGlvbkVsZW1lbnQ6OmNyZWF0ZUZvckpTQ29uc3Ry
dWN0b3IoRG9jdW1lbnQmIGRvCiB7CiAgICAgUmVmUHRyPEhUTUxPcHRpb25FbGVtZW50PiBlbGVt
ZW50ID0gYWRvcHRSZWYobmV3IEhUTUxPcHRpb25FbGVtZW50KG9wdGlvblRhZywgZG9jdW1lbnQp
KTsKIAotICAgIFJlZlB0cjxUZXh0PiB0ZXh0ID0gVGV4dDo6Y3JlYXRlKGRvY3VtZW50LCBkYXRh
LmlzTnVsbCgpID8gIiIgOiBkYXRhKTsKKyAgICBSZWY8VGV4dD4gdGV4dCA9IFRleHQ6OmNyZWF0
ZShkb2N1bWVudCwgZGF0YS5pc051bGwoKSA/ICIiIDogZGF0YSk7CiAKICAgICBlYyA9IDA7Ci0g
ICAgZWxlbWVudC0+YXBwZW5kQ2hpbGQodGV4dC5yZWxlYXNlKCksIGVjKTsKKyAgICBlbGVtZW50
LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUodGV4dCksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAg
IHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGlmICghdmFsdWUuaXNO
dWxsKCkpCiAgICAgICAgIGVsZW1lbnQtPnNldFZhbHVlKHZhbHVlKTsKQEAgLTg0LDcgKzg0LDcg
QEAgUmVmUHRyPEhUTUxPcHRpb25FbGVtZW50PiBIVE1MT3B0aW9uRWxlbWVudDo6Y3JlYXRlRm9y
SlNDb25zdHJ1Y3RvcihEb2N1bWVudCYgZG8KICAgICAgICAgZWxlbWVudC0+c2V0QXR0cmlidXRl
KHNlbGVjdGVkQXR0ciwgZW1wdHlBdG9tKTsKICAgICBlbGVtZW50LT5zZXRTZWxlY3RlZChzZWxl
Y3RlZCk7CiAKLSAgICByZXR1cm4gZWxlbWVudC5yZWxlYXNlKCk7CisgICAgcmV0dXJuIGVsZW1l
bnQ7CiB9CiAKIGJvb2wgSFRNTE9wdGlvbkVsZW1lbnQ6OmlzRm9jdXNhYmxlKCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwCmluZGV4IDg3ZjBlMzcw
Y2EwMmMzYWM5YmIxNDZmYjliZDA3NmViYjRhNDg1MzUuLmRiN2QwNmE4Yjc5MzA1MjNlYWM2OWM5
MDdlNDdkYzQ4Mjk3MzJjMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBy
b2dyZXNzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NF
bGVtZW50LmNwcApAQCAtMTQ5LDE2ICsxNDksMTYgQEAgdm9pZCBIVE1MUHJvZ3Jlc3NFbGVtZW50
OjpkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QqIHJvb3QpCiB7CiAgICAgQVNT
RVJUKCFtX3ZhbHVlKTsKIAotICAgIFJlZlB0cjxQcm9ncmVzc0lubmVyRWxlbWVudD4gaW5uZXIg
PSBQcm9ncmVzc0lubmVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwotICAgIHJvb3QtPmFw
cGVuZENoaWxkKGlubmVyKTsKKyAgICBSZWY8UHJvZ3Jlc3NJbm5lckVsZW1lbnQ+IGlubmVyID0g
UHJvZ3Jlc3NJbm5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKKyAgICByb290LT5hcHBl
bmRDaGlsZChpbm5lci5jb3B5UmVmKCkpOwogCi0gICAgUmVmUHRyPFByb2dyZXNzQmFyRWxlbWVu
dD4gYmFyID0gUHJvZ3Jlc3NCYXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7Ci0gICAgUmVm
UHRyPFByb2dyZXNzVmFsdWVFbGVtZW50PiB2YWx1ZSA9IFByb2dyZXNzVmFsdWVFbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQoKSk7Ci0gICAgbV92YWx1ZSA9IHZhbHVlLmdldCgpOworICAgIFJlZjxQ
cm9ncmVzc0JhckVsZW1lbnQ+IGJhciA9IFByb2dyZXNzQmFyRWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KCkpOworICAgIFJlZjxQcm9ncmVzc1ZhbHVlRWxlbWVudD4gdmFsdWUgPSBQcm9ncmVzc1Zh
bHVlRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOworICAgIG1fdmFsdWUgPSB2YWx1ZS5wdHIo
KTsKICAgICBtX3ZhbHVlLT5zZXRXaWR0aFBlcmNlbnRhZ2UoSFRNTFByb2dyZXNzRWxlbWVudDo6
SW5kZXRlcm1pbmF0ZVBvc2l0aW9uICogMTAwKTsKLSAgICBiYXItPmFwcGVuZENoaWxkKG1fdmFs
dWUsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIGJhci0+YXBwZW5kQ2hpbGQoKm1fdmFsdWUs
IEFTU0VSVF9OT19FWENFUFRJT04pOwogCi0gICAgaW5uZXItPmFwcGVuZENoaWxkKGJhciwgQVNT
RVJUX05PX0VYQ0VQVElPTik7CisgICAgaW5uZXItPmFwcGVuZENoaWxkKFdURjo6bW92ZShiYXIp
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIH0KIAogYm9vbCBIVE1MUHJvZ3Jlc3NFbGVtZW50Ojpz
aG91bGRBcHBlYXJJbmRldGVybWluYXRlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U2NyaXB0RWxlbWVudC5jcHAKaW5kZXggNjk1MTE0NjY4MDQ5MTRiN2FiMjA5ZmJlOTYxYzViZjgz
MmUxMDdhNy4uZTEzYTVjZGRjY2EyY2IzYjc1NmE4ZDNhNTdlMjNmODBhOWI0M2U0OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKQEAgLTE2OSw5ICsxNjksOSBA
QCB2b2lkIEhUTUxTY3JpcHRFbGVtZW50OjpkaXNwYXRjaExvYWRFdmVudCgpCiAgICAgZGlzcGF0
Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5sb2FkRXZlbnQsIGZhbHNlLCBmYWxz
ZSkpOwogfQogCi1SZWZQdHI8RWxlbWVudD4gSFRNTFNjcmlwdEVsZW1lbnQ6OmNsb25lRWxlbWVu
dFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50KQor
UmVmPEVsZW1lbnQ+IEhUTUxTY3JpcHRFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmli
dXRlc0FuZENoaWxkcmVuKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IEhUTUxTY3JpcHRFbGVtZW50KHRhZ1FOYW1lKCksIHRhcmdldERvY3VtZW50
LCBmYWxzZSwgYWxyZWFkeVN0YXJ0ZWQoKSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhU
TUxTY3JpcHRFbGVtZW50KHRhZ1FOYW1lKCksIHRhcmdldERvY3VtZW50LCBmYWxzZSwgYWxyZWFk
eVN0YXJ0ZWQoKSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxTY3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50
LmgKaW5kZXggZTM5YzEwY2E1ZTg2YzM2NmE1MzhkMTdjNjY0NGIzYTI0ZDEzODIwOS4uMzEyYzY2
MjZlOGI4MzE0ZTg1ZTJkZjY4N2RiZjA5ZjJiMmZlMzdiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFNjcmlwdEVsZW1lbnQuaApAQCAtNjUsNyArNjUsNyBAQCBwcml2YXRlOgogCiAgICAgdmly
dHVhbCB2b2lkIGRpc3BhdGNoTG9hZEV2ZW50KCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFJl
ZlB0cjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERv
Y3VtZW50Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8RWxlbWVudD4gY2xvbmVFbGVtZW50
V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYpIG92ZXJyaWRlOwogfTsKIAog
fSAvL25hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcApp
bmRleCBlYjczOTQ1MzVkNDk2MzUzNDZjNjU4MmQxNzU5NmQzZDQzZjA3OTVlLi40ZjEwNDU4MDEz
MjI3M2ZkZWRmMTI1NzhkNGIxYmI2MTBlY2NhZjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxTZWxlY3RFbGVtZW50LmNwcApAQCAtMjI3LDcgKzIyNyw3IEBAIHZvaWQgSFRNTFNlbGVjdEVs
ZW1lbnQ6OmFkZChIVE1MRWxlbWVudCogZWxlbWVudCwgSFRNTEVsZW1lbnQqIGJlZm9yZUVsZW1l
bnQsIEV4CiAgICAgLy8gTWFrZSBzdXJlIHRoZSBlbGVtZW50IGlzIHJlZidkIGFuZCBkZXJlZidk
IHNvIHdlIGRvbid0IGxlYWsgaXQuCiAgICAgUmVmPEhUTUxFbGVtZW50PiBwcm90ZWN0TmV3Q2hp
bGQoKmVsZW1lbnQpOwogCi0gICAgaW5zZXJ0QmVmb3JlKGVsZW1lbnQsIGJlZm9yZUVsZW1lbnQs
IGVjKTsKKyAgICBpbnNlcnRCZWZvcmUoKmVsZW1lbnQsIGJlZm9yZUVsZW1lbnQsIGVjKTsKICAg
ICB1cGRhdGVWYWxpZGl0eSgpOwogfQogCkBAIC00ODYsMTIgKzQ4NiwxMiBAQCB2b2lkIEhUTUxT
ZWxlY3RFbGVtZW50OjpzZXRMZW5ndGgodW5zaWduZWQgbmV3TGVuLCBFeGNlcHRpb25Db2RlJiBl
YykKIAogICAgICAgICAvLyBSZW1vdmluZyBjaGlsZHJlbiBmaXJlcyBtdXRhdGlvbiBldmVudHMs
IHdoaWNoIG1pZ2h0IG11dGF0ZSB0aGUgRE9NIGZ1cnRoZXIsIHNvIHdlIGZpcnN0IGNvcHkgb3V0
IGEgbGlzdAogICAgICAgICAvLyBvZiBlbGVtZW50cyB0aGF0IHdlIGludGVuZCB0byByZW1vdmUg
dGhlbiBhdHRlbXB0IHRvIHJlbW92ZSB0aGVtIG9uZSBhdCBhIHRpbWUuCi0gICAgICAgIFZlY3Rv
cjxSZWZQdHI8RWxlbWVudD4+IGl0ZW1zVG9SZW1vdmU7CisgICAgICAgIFZlY3RvcjxSZWY8RWxl
bWVudD4+IGl0ZW1zVG9SZW1vdmU7CiAgICAgICAgIHNpemVfdCBvcHRpb25JbmRleCA9IDA7CiAg
ICAgICAgIGZvciAoYXV0byYgaXRlbSA6IGl0ZW1zKSB7CiAgICAgICAgICAgICBpZiAoaXM8SFRN
TE9wdGlvbkVsZW1lbnQ+KCppdGVtKSAmJiBvcHRpb25JbmRleCsrID49IG5ld0xlbikgewogICAg
ICAgICAgICAgICAgIEFTU0VSVChpdGVtLT5wYXJlbnROb2RlKCkpOwotICAgICAgICAgICAgICAg
IGl0ZW1zVG9SZW1vdmUuYXBwZW5kKGl0ZW0pOworICAgICAgICAgICAgICAgIGl0ZW1zVG9SZW1v
dmUuYXBwZW5kKCppdGVtKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcAppbmRleCBjZmI0ZGUzZmEzNjc4MDJhMzAzMWQ2
YWU4ZTg1ZmIzOGVkNGFiYjA2Li5jZjllOWE1ZjJmYTU3NWU4ZmY4ZGY4ZmMzZDAzMDIxOGMxNTQ4
MTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAKQEAgLTgxLDcg
KzgxLDcgQEAgdm9pZCBIVE1MVGFibGVFbGVtZW50OjpzZXRDYXB0aW9uKFBhc3NSZWZQdHI8SFRN
TFRhYmxlQ2FwdGlvbkVsZW1lbnQ+IG5ld0NhcHRpb24KIHsKICAgICBkZWxldGVDYXB0aW9uKCk7
CiAgICAgaWYgKG5ld0NhcHRpb24pCi0gICAgICAgIGluc2VydEJlZm9yZShuZXdDYXB0aW9uLCBm
aXJzdENoaWxkKCksIGVjKTsKKyAgICAgICAgaW5zZXJ0QmVmb3JlKCpuZXdDYXB0aW9uLCBmaXJz
dENoaWxkKCksIGVjKTsKIH0KIAogSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqIEhUTUxUYWJsZUVs
ZW1lbnQ6OnRIZWFkKCkgY29uc3QKQEAgLTExMCw3ICsxMTAsNyBAQCB2b2lkIEhUTUxUYWJsZUVs
ZW1lbnQ6OnNldFRIZWFkKFBhc3NSZWZQdHI8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+IG5ld0hl
YWQsIEV4YwogICAgICAgICBpZiAoY2hpbGQtPmlzRWxlbWVudE5vZGUoKSAmJiAhY2hpbGQtPmhh
c1RhZ05hbWUoY2FwdGlvblRhZykgJiYgIWNoaWxkLT5oYXNUYWdOYW1lKGNvbGdyb3VwVGFnKSkK
ICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgaW5zZXJ0QmVmb3JlKG5ld0hlYWQsIGNoaWxkLCBl
Yyk7CisgICAgaW5zZXJ0QmVmb3JlKCpuZXdIZWFkLCBjaGlsZCwgZWMpOwogfQogCiBIVE1MVGFi
bGVTZWN0aW9uRWxlbWVudCogSFRNTFRhYmxlRWxlbWVudDo6dEZvb3QoKSBjb25zdApAQCAtMTM5
LDU3ICsxMzksNjAgQEAgdm9pZCBIVE1MVGFibGVFbGVtZW50OjpzZXRURm9vdChQYXNzUmVmUHRy
PEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50PiBuZXdGb290LCBFeGMKICAgICAgICAgaWYgKGNoaWxk
LT5pc0VsZW1lbnROb2RlKCkgJiYgIWNoaWxkLT5oYXNUYWdOYW1lKGNhcHRpb25UYWcpICYmICFj
aGlsZC0+aGFzVGFnTmFtZShjb2xncm91cFRhZykgJiYgIWNoaWxkLT5oYXNUYWdOYW1lKHRoZWFk
VGFnKSkKICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgaW5zZXJ0QmVmb3JlKG5ld0Zvb3QsIGNo
aWxkLCBlYyk7CisgICAgaW5zZXJ0QmVmb3JlKCpuZXdGb290LCBjaGlsZCwgZWMpOwogfQogCi1S
ZWZQdHI8SFRNTEVsZW1lbnQ+IEhUTUxUYWJsZUVsZW1lbnQ6OmNyZWF0ZVRIZWFkKCkKK1JlZjxI
VE1MVGFibGVTZWN0aW9uRWxlbWVudD4gSFRNTFRhYmxlRWxlbWVudDo6Y3JlYXRlVEhlYWQoKQog
ewogICAgIGlmIChIVE1MVGFibGVTZWN0aW9uRWxlbWVudCogZXhpc3RpbmdIZWFkID0gdEhlYWQo
KSkKLSAgICAgICAgcmV0dXJuIGV4aXN0aW5nSGVhZDsKLSAgICBSZWZQdHI8SFRNTFRhYmxlU2Vj
dGlvbkVsZW1lbnQ+IGhlYWQgPSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDo6Y3JlYXRlKHRoZWFk
VGFnLCBkb2N1bWVudCgpKTsKLSAgICBzZXRUSGVhZChoZWFkLCBJR05PUkVfRVhDRVBUSU9OKTsK
KyAgICAgICAgcmV0dXJuICpleGlzdGluZ0hlYWQ7CisgICAgUmVmPEhUTUxUYWJsZVNlY3Rpb25F
bGVtZW50PiBoZWFkID0gSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ6OmNyZWF0ZSh0aGVhZFRhZywg
ZG9jdW1lbnQoKSk7CisgICAgc2V0VEhlYWQoaGVhZC5wdHIoKSwgSUdOT1JFX0VYQ0VQVElPTik7
CiAgICAgcmV0dXJuIGhlYWQ7CiB9CiAKIHZvaWQgSFRNTFRhYmxlRWxlbWVudDo6ZGVsZXRlVEhl
YWQoKQogewotICAgIHJlbW92ZUNoaWxkKHRIZWFkKCksIElHTk9SRV9FWENFUFRJT04pOworICAg
IGlmIChhdXRvKiB0SGVhZCA9IHRoaXMtPnRIZWFkKCkpCisgICAgICAgIHJlbW92ZUNoaWxkKCp0
SGVhZCwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CiAKLVJlZlB0cjxIVE1MRWxlbWVudD4gSFRNTFRh
YmxlRWxlbWVudDo6Y3JlYXRlVEZvb3QoKQorUmVmPEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50PiBI
VE1MVGFibGVFbGVtZW50OjpjcmVhdGVURm9vdCgpCiB7CiAgICAgaWYgKEhUTUxUYWJsZVNlY3Rp
b25FbGVtZW50KiBleGlzdGluZ0Zvb3QgPSB0Rm9vdCgpKQotICAgICAgICByZXR1cm4gZXhpc3Rp
bmdGb290OwotICAgIFJlZlB0cjxIVE1MVGFibGVTZWN0aW9uRWxlbWVudD4gZm9vdCA9IEhUTUxU
YWJsZVNlY3Rpb25FbGVtZW50OjpjcmVhdGUodGZvb3RUYWcsIGRvY3VtZW50KCkpOwotICAgIHNl
dFRGb290KGZvb3QsIElHTk9SRV9FWENFUFRJT04pOworICAgICAgICByZXR1cm4gKmV4aXN0aW5n
Rm9vdDsKKyAgICBSZWY8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+IGZvb3QgPSBIVE1MVGFibGVT
ZWN0aW9uRWxlbWVudDo6Y3JlYXRlKHRmb290VGFnLCBkb2N1bWVudCgpKTsKKyAgICBzZXRURm9v
dChmb290LnB0cigpLCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICByZXR1cm4gZm9vdDsKIH0KIAog
dm9pZCBIVE1MVGFibGVFbGVtZW50OjpkZWxldGVURm9vdCgpCiB7Ci0gICAgcmVtb3ZlQ2hpbGQo
dEZvb3QoKSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgaWYgKGF1dG8qIHRGb290ID0gdGhpcy0+
dEZvb3QoKSkKKyAgICAgICAgcmVtb3ZlQ2hpbGQoKnRGb290LCBJR05PUkVfRVhDRVBUSU9OKTsK
IH0KIAotUmVmUHRyPEhUTUxFbGVtZW50PiBIVE1MVGFibGVFbGVtZW50OjpjcmVhdGVUQm9keSgp
CitSZWY8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+IEhUTUxUYWJsZUVsZW1lbnQ6OmNyZWF0ZVRC
b2R5KCkKIHsKLSAgICBSZWZQdHI8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+IGJvZHkgPSBIVE1M
VGFibGVTZWN0aW9uRWxlbWVudDo6Y3JlYXRlKHRib2R5VGFnLCBkb2N1bWVudCgpKTsKLSAgICBO
b2RlKiByZWZlcmVuY2VFbGVtZW50ID0gbGFzdEJvZHkoKSA/IGxhc3RCb2R5KCktPm5leHRTaWJs
aW5nKCkgOiAwOwotICAgIGluc2VydEJlZm9yZShib2R5LCByZWZlcmVuY2VFbGVtZW50LCBBU1NF
UlRfTk9fRVhDRVBUSU9OKTsKKyAgICBSZWY8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+IGJvZHkg
PSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDo6Y3JlYXRlKHRib2R5VGFnLCBkb2N1bWVudCgpKTsK
KyAgICBOb2RlKiByZWZlcmVuY2VFbGVtZW50ID0gbGFzdEJvZHkoKSA/IGxhc3RCb2R5KCktPm5l
eHRTaWJsaW5nKCkgOiBudWxscHRyOworICAgIGluc2VydEJlZm9yZShib2R5LmNvcHlSZWYoKSwg
cmVmZXJlbmNlRWxlbWVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgcmV0dXJuIGJvZHk7
CiB9CiAKLVJlZlB0cjxIVE1MRWxlbWVudD4gSFRNTFRhYmxlRWxlbWVudDo6Y3JlYXRlQ2FwdGlv
bigpCitSZWY8SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQ+IEhUTUxUYWJsZUVsZW1lbnQ6OmNyZWF0
ZUNhcHRpb24oKQogewogICAgIGlmIChIVE1MVGFibGVDYXB0aW9uRWxlbWVudCogZXhpc3RpbmdD
YXB0aW9uID0gY2FwdGlvbigpKQotICAgICAgICByZXR1cm4gZXhpc3RpbmdDYXB0aW9uOwotICAg
IFJlZlB0cjxIVE1MVGFibGVDYXB0aW9uRWxlbWVudD4gY2FwdGlvbiA9IEhUTUxUYWJsZUNhcHRp
b25FbGVtZW50OjpjcmVhdGUoY2FwdGlvblRhZywgZG9jdW1lbnQoKSk7Ci0gICAgc2V0Q2FwdGlv
bihjYXB0aW9uLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgcmV0dXJuICpleGlzdGluZ0Nh
cHRpb247CisgICAgUmVmPEhUTUxUYWJsZUNhcHRpb25FbGVtZW50PiBjYXB0aW9uID0gSFRNTFRh
YmxlQ2FwdGlvbkVsZW1lbnQ6OmNyZWF0ZShjYXB0aW9uVGFnLCBkb2N1bWVudCgpKTsKKyAgICBz
ZXRDYXB0aW9uKGNhcHRpb24ucHRyKCksIElHTk9SRV9FWENFUFRJT04pOwogICAgIHJldHVybiBj
YXB0aW9uOwogfQogCiB2b2lkIEhUTUxUYWJsZUVsZW1lbnQ6OmRlbGV0ZUNhcHRpb24oKQogewot
ICAgIHJlbW92ZUNoaWxkKGNhcHRpb24oKSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgaWYgKGF1
dG8qIGNhcHRpb24gPSB0aGlzLT5jYXB0aW9uKCkpCisgICAgICAgIHJlbW92ZUNoaWxkKCpjYXB0
aW9uLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KIAogSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqIEhU
TUxUYWJsZUVsZW1lbnQ6Omxhc3RCb2R5KCkgY29uc3QKQEAgLTIzNCwyMiArMjM3LDIyIEBAIFJl
ZlB0cjxIVE1MRWxlbWVudD4gSFRNTFRhYmxlRWxlbWVudDo6aW5zZXJ0Um93KGludCBpbmRleCwg
RXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgZWxzZSB7CiAgICAgICAgIHBhcmVudCA9IGxhc3RCb2R5
KCk7CiAgICAgICAgIGlmICghcGFyZW50KSB7Ci0gICAgICAgICAgICBSZWZQdHI8SFRNTFRhYmxl
U2VjdGlvbkVsZW1lbnQ+IG5ld0JvZHkgPSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDo6Y3JlYXRl
KHRib2R5VGFnLCBkb2N1bWVudCgpKTsKLSAgICAgICAgICAgIFJlZlB0cjxIVE1MVGFibGVSb3dF
bGVtZW50PiBuZXdSb3cgPSBIVE1MVGFibGVSb3dFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7
Ci0gICAgICAgICAgICBuZXdCb2R5LT5hcHBlbmRDaGlsZChuZXdSb3csIGVjKTsKLSAgICAgICAg
ICAgIGFwcGVuZENoaWxkKG5ld0JvZHkucmVsZWFzZSgpLCBlYyk7Ci0gICAgICAgICAgICByZXR1
cm4gbmV3Um93OworICAgICAgICAgICAgUmVmPEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50PiBuZXdC
b2R5ID0gSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ6OmNyZWF0ZSh0Ym9keVRhZywgZG9jdW1lbnQo
KSk7CisgICAgICAgICAgICBSZWY8SFRNTFRhYmxlUm93RWxlbWVudD4gbmV3Um93ID0gSFRNTFRh
YmxlUm93RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOworICAgICAgICAgICAgbmV3Qm9keS0+
YXBwZW5kQ2hpbGQobmV3Um93LmNvcHlSZWYoKSwgZWMpOworICAgICAgICAgICAgYXBwZW5kQ2hp
bGQoV1RGOjptb3ZlKG5ld0JvZHkpLCBlYyk7CisgICAgICAgICAgICByZXR1cm4gV1RGOjptb3Zl
KG5ld1Jvdyk7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBSZWZQdHI8SFRNTFRhYmxlUm93RWxl
bWVudD4gbmV3Um93ID0gSFRNTFRhYmxlUm93RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwot
ICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG5ld1Jvdywgcm93LmdldCgpLCBlYyk7Ci0gICAgcmV0
dXJuIG5ld1JvdzsKKyAgICBSZWY8SFRNTFRhYmxlUm93RWxlbWVudD4gbmV3Um93ID0gSFRNTFRh
YmxlUm93RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOworICAgIHBhcmVudC0+aW5zZXJ0QmVm
b3JlKG5ld1Jvdy5jb3B5UmVmKCksIHJvdy5nZXQoKSwgZWMpOworICAgIHJldHVybiBXVEY6Om1v
dmUobmV3Um93KTsKIH0KIAogdm9pZCBIVE1MVGFibGVFbGVtZW50OjpkZWxldGVSb3coaW50IGlu
ZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBIVE1MVGFibGVSb3dFbGVtZW50KiByb3cg
PSAwOworICAgIEhUTUxUYWJsZVJvd0VsZW1lbnQqIHJvdyA9IG51bGxwdHI7CiAgICAgaWYgKGlu
ZGV4ID09IC0xKQogICAgICAgICByb3cgPSBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbjo6bGFzdFJv
dygqdGhpcyk7CiAgICAgZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUYWJsZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5o
CmluZGV4IGNmNWY0YTBjZDQ2Y2EzNjc1YjI0MGZjZjMyMzAyMzczNzVmZDM0MmUuLjMwNzU4MzUy
NDI4NGY4MDhmNTFmZTM4NTJhZjEwZWFiNTMwZTQxN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlRWxlbWVudC5oCkBAIC00OSwxMiArNDksMTIgQEAgcHVibGljOgogICAgIEhUTUxUYWJs
ZVNlY3Rpb25FbGVtZW50KiB0Rm9vdCgpIGNvbnN0OwogICAgIHZvaWQgc2V0VEZvb3QoUGFzc1Jl
ZlB0cjxIVE1MVGFibGVTZWN0aW9uRWxlbWVudD4sIEV4Y2VwdGlvbkNvZGUmKTsKIAotICAgIFJl
ZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRlVEhlYWQoKTsKKyAgICBSZWY8SFRNTFRhYmxlU2VjdGlv
bkVsZW1lbnQ+IGNyZWF0ZVRIZWFkKCk7CiAgICAgdm9pZCBkZWxldGVUSGVhZCgpOwotICAgIFJl
ZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRlVEZvb3QoKTsKKyAgICBSZWY8SFRNTFRhYmxlU2VjdGlv
bkVsZW1lbnQ+IGNyZWF0ZVRGb290KCk7CiAgICAgdm9pZCBkZWxldGVURm9vdCgpOwotICAgIFJl
ZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRlVEJvZHkoKTsKLSAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+
IGNyZWF0ZUNhcHRpb24oKTsKKyAgICBSZWY8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+IGNyZWF0
ZVRCb2R5KCk7CisgICAgUmVmPEhUTUxUYWJsZUNhcHRpb25FbGVtZW50PiBjcmVhdGVDYXB0aW9u
KCk7CiAgICAgdm9pZCBkZWxldGVDYXB0aW9uKCk7CiAgICAgUmVmUHRyPEhUTUxFbGVtZW50PiBp
bnNlcnRSb3coRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIGluc2VydFJvdygtMSwgZWMpOyB9
CiAgICAgUmVmUHRyPEhUTUxFbGVtZW50PiBpbnNlcnRSb3coaW50IGluZGV4LCBFeGNlcHRpb25D
b2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmNwcAppbmRl
eCBjODcyNTlmNWVjYjk2ZDBhYTYwNDhkNGQxNGFlOGI2MGY5M2I2OGI2Li5kODg5M2NkOWExZmYz
YjhlYzMzNDJiNTA4ZDY3ZTMzNjM3NjkzMmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlUm93RWxlbWVudC5jcHAKQEAgLTI4LDcgKzI4LDYgQEAKICNpbmNsdWRlICJFeGNlcHRp
b25Db2RlLmgiCiAjaW5jbHVkZSAiR2VuZXJpY0NhY2hlZEhUTUxDb2xsZWN0aW9uLmgiCiAjaW5j
bHVkZSAiSFRNTE5hbWVzLmgiCi0jaW5jbHVkZSAiSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaCIKICNp
bmNsdWRlICJIVE1MVGFibGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRhYmxlU2VjdGlvbkVs
ZW1lbnQuaCIKICNpbmNsdWRlICJOb2RlTGlzdC5oIgpAQCAtMTE5LDI3ICsxMTgsMjcgQEAgaW50
IEhUTUxUYWJsZVJvd0VsZW1lbnQ6OnNlY3Rpb25Sb3dJbmRleCgpIGNvbnN0CiAgICAgcmV0dXJu
IHJJbmRleDsKIH0KIAotUmVmUHRyPEhUTUxFbGVtZW50PiBIVE1MVGFibGVSb3dFbGVtZW50Ojpp
bnNlcnRDZWxsKGludCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCitSZWZQdHI8SFRNTFRhYmxl
Q2VsbEVsZW1lbnQ+IEhUTUxUYWJsZVJvd0VsZW1lbnQ6Omluc2VydENlbGwoaW50IGluZGV4LCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBSZWY8SFRNTENvbGxlY3Rpb24+IGNoaWxkcmVuID0g
Y2VsbHMoKTsKICAgICBpbnQgbnVtQ2VsbHMgPSBjaGlsZHJlbi0+bGVuZ3RoKCk7CiAgICAgaWYg
KGluZGV4IDwgLTEgfHwgaW5kZXggPiBudW1DZWxscykgewogICAgICAgICBlYyA9IElOREVYX1NJ
WkVfRVJSOwotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
fQogCi0gICAgUmVmUHRyPEhUTUxUYWJsZUNlbGxFbGVtZW50PiBjZWxsID0gSFRNTFRhYmxlQ2Vs
bEVsZW1lbnQ6OmNyZWF0ZSh0ZFRhZywgZG9jdW1lbnQoKSk7CisgICAgUmVmPEhUTUxUYWJsZUNl
bGxFbGVtZW50PiBjZWxsID0gSFRNTFRhYmxlQ2VsbEVsZW1lbnQ6OmNyZWF0ZSh0ZFRhZywgZG9j
dW1lbnQoKSk7CiAgICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSBudW1DZWxscykKLSAgICAg
ICAgYXBwZW5kQ2hpbGQoY2VsbCwgZWMpOworICAgICAgICBhcHBlbmRDaGlsZChjZWxsLmNvcHlS
ZWYoKSwgZWMpOwogICAgIGVsc2UgewogICAgICAgICBOb2RlKiBuOwogICAgICAgICBpZiAoaW5k
ZXggPCAxKQogICAgICAgICAgICAgbiA9IGZpcnN0Q2hpbGQoKTsKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgbiA9IGNoaWxkcmVuLT5pdGVtKGluZGV4KTsKLSAgICAgICAgaW5zZXJ0QmVmb3Jl
KGNlbGwsIG4sIGVjKTsKKyAgICAgICAgaW5zZXJ0QmVmb3JlKGNlbGwuY29weVJlZigpLCBuLCBl
Yyk7CiAgICAgfQotICAgIHJldHVybiBjZWxsOworICAgIHJldHVybiBXVEY6Om1vdmUoY2VsbCk7
CiB9CiAKIHZvaWQgSFRNTFRhYmxlUm93RWxlbWVudDo6ZGVsZXRlQ2VsbChpbnQgaW5kZXgsIEV4
Y2VwdGlvbkNvZGUmIGVjKQpAQCAtMTUwLDcgKzE0OSw3IEBAIHZvaWQgSFRNTFRhYmxlUm93RWxl
bWVudDo6ZGVsZXRlQ2VsbChpbnQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICBp
bmRleCA9IG51bUNlbGxzLTE7CiAgICAgaWYgKGluZGV4ID49IDAgJiYgaW5kZXggPCBudW1DZWxs
cykgewogICAgICAgICBSZWZQdHI8Tm9kZT4gY2VsbCA9IGNoaWxkcmVuLT5pdGVtKGluZGV4KTsK
LSAgICAgICAgSFRNTEVsZW1lbnQ6OnJlbW92ZUNoaWxkKGNlbGwuZ2V0KCksIGVjKTsKKyAgICAg
ICAgSFRNTEVsZW1lbnQ6OnJlbW92ZUNoaWxkKCpjZWxsLCBlYyk7CiAgICAgfSBlbHNlCiAgICAg
ICAgIGVjID0gSU5ERVhfU0laRV9FUlI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxl
Um93RWxlbWVudC5oCmluZGV4IGM5OTdhZWM5MWYxNDIxMDJhNDlhYWU1ODhjYjU2Yjg0OGU4Nzhh
MTMuLmM5ZGY1YjZjNWM2ODM2NjVjNjAxNWNjODgyZjI2NGUzZTFmMzMxY2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZu
ZGVmIEhUTUxUYWJsZVJvd0VsZW1lbnRfaAogI2RlZmluZSBIVE1MVGFibGVSb3dFbGVtZW50X2gK
IAorI2luY2x1ZGUgIkhUTUxUYWJsZUNlbGxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRhYmxl
UGFydEVsZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDEsOCArNDIsOCBAQCBw
dWJsaWM6CiAgICAgaW50IHNlY3Rpb25Sb3dJbmRleCgpIGNvbnN0OwogICAgIHZvaWQgc2V0U2Vj
dGlvblJvd0luZGV4KGludCk7CiAKLSAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IGluc2VydENlbGwo
RXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIGluc2VydENlbGwoLTEsIGVjKTsgfQotICAgIFJl
ZlB0cjxIVE1MRWxlbWVudD4gaW5zZXJ0Q2VsbChpbnQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmKTsK
KyAgICBSZWZQdHI8SFRNTFRhYmxlQ2VsbEVsZW1lbnQ+IGluc2VydENlbGwoRXhjZXB0aW9uQ29k
ZSYgZWMpIHsgcmV0dXJuIGluc2VydENlbGwoLTEsIGVjKTsgfQorICAgIFJlZlB0cjxIVE1MVGFi
bGVDZWxsRWxlbWVudD4gaW5zZXJ0Q2VsbChpbnQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmKTsKICAg
ICB2b2lkIGRlbGV0ZUNlbGwoaW50IGluZGV4LCBFeGNlcHRpb25Db2RlJik7CiAKICAgICBSZWY8
SFRNTENvbGxlY3Rpb24+IGNlbGxzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRh
YmxlU2VjdGlvbkVsZW1lbnQuY3BwCmluZGV4IDllNDUzMTZmOGYzZjRmYzZkYThlM2RjZGIxYjNl
NGUyZGQ5MjdkODYuLmZkMDJjNjAyZjk0NmNmMzRkMTBlODNjMjIyMjQ4ZmEzODgwMTIzZWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwCkBA
IC02OCwxNCArNjgsMTQgQEAgUmVmUHRyPEhUTUxFbGVtZW50PiBIVE1MVGFibGVTZWN0aW9uRWxl
bWVudDo6aW5zZXJ0Um93KGludCBpbmRleCwgRXhjZXB0aW9uQ29kZSYKICAgICBlbHNlIHsKICAg
ICAgICAgcm93ID0gSFRNTFRhYmxlUm93RWxlbWVudDo6Y3JlYXRlKHRyVGFnLCBkb2N1bWVudCgp
KTsKICAgICAgICAgaWYgKG51bVJvd3MgPT0gaW5kZXggfHwgaW5kZXggPT0gLTEpCi0gICAgICAg
ICAgICBhcHBlbmRDaGlsZChyb3csIGVjKTsKKyAgICAgICAgICAgIGFwcGVuZENoaWxkKCpyb3cs
IGVjKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBOb2RlKiBuOwogICAgICAgICAgICAg
aWYgKGluZGV4IDwgMSkKICAgICAgICAgICAgICAgICBuID0gZmlyc3RDaGlsZCgpOwogICAgICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG4gPSBjaGlsZHJlbi0+aXRlbShpbmRleCk7Ci0g
ICAgICAgICAgICBpbnNlcnRCZWZvcmUocm93LCBuLCBlYyk7CisgICAgICAgICAgICBpbnNlcnRC
ZWZvcmUoKnJvdywgbiwgZWMpOwogICAgICAgICB9CiAgICAgfQogICAgIHJldHVybiByb3c7CkBA
IC04OSw3ICs4OSw3IEBAIHZvaWQgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ6OmRlbGV0ZVJvdyhp
bnQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICBpbmRleCA9IG51bVJvd3MgLSAx
OwogICAgIGlmIChpbmRleCA+PSAwICYmIGluZGV4IDwgbnVtUm93cykgewogICAgICAgICBSZWZQ
dHI8Tm9kZT4gcm93ID0gY2hpbGRyZW4tPml0ZW0oaW5kZXgpOwotICAgICAgICBIVE1MRWxlbWVu
dDo6cmVtb3ZlQ2hpbGQocm93LmdldCgpLCBlYyk7CisgICAgICAgIEhUTUxFbGVtZW50OjpyZW1v
dmVDaGlsZCgqcm93LCBlYyk7CiAgICAgfSBlbHNlCiAgICAgICAgIGVjID0gSU5ERVhfU0laRV9F
UlI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmNwcAppbmRl
eCBhZWMzMDEwZjZkNmNmZTFiZWRiMzJjNDk3MDlhZWNhZDBiNmQ3ZjcyLi4yZTFlZGIyMzZjMDc4
ZWViNmRlYmU2ZTllNTYxMWU3MTdjZGM4MzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRlbXBsYXRlRWxlbWVudC5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgRG9jdW1lbnRGcmFnbWVudCog
SFRNTFRlbXBsYXRlRWxlbWVudDo6Y29udGVudCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY29udGVu
dC5nZXQoKTsKIH0KIAotUmVmUHRyPE5vZGU+IEhUTUxUZW1wbGF0ZUVsZW1lbnQ6OmNsb25lTm9k
ZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbiB0eXBl
KQorUmVmPE5vZGU+IEhUTUxUZW1wbGF0ZUVsZW1lbnQ6OmNsb25lTm9kZUludGVybmFsKERvY3Vt
ZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbiB0eXBlKQogewogICAgIFJlZlB0
cjxOb2RlPiBjbG9uZTsKICAgICBzd2l0Y2ggKHR5cGUpIHsKQEAgLTgyLDggKzgyLDggQEAgUmVm
UHRyPE5vZGU+IEhUTUxUZW1wbGF0ZUVsZW1lbnQ6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50
JiB0YXJnZXREb2N1bWVudCwgQ2wKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGlmIChtX2Nv
bnRlbnQpCi0gICAgICAgIGNvbnRlbnQoKS0+Y2xvbmVDaGlsZE5vZGVzKGRvd25jYXN0PEhUTUxU
ZW1wbGF0ZUVsZW1lbnQ+KGNsb25lLmdldCgpKS0+Y29udGVudCgpKTsKLSAgICByZXR1cm4gY2xv
bmUucmVsZWFzZSgpOworICAgICAgICBjb250ZW50KCktPmNsb25lQ2hpbGROb2RlcygqZG93bmNh
c3Q8SFRNTFRlbXBsYXRlRWxlbWVudD4oY2xvbmUuZ2V0KCkpLT5jb250ZW50KCkpOworICAgIHJl
dHVybiBjbG9uZS5yZWxlYXNlTm9uTnVsbCgpOwogfQogCiB2b2lkIEhUTUxUZW1wbGF0ZUVsZW1l
bnQ6OmRpZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50KiBvbGREb2N1bWVudCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgKaW5kZXggNzY3ZjJhMTg0ZWE4NTM3ZGJj
MzY0NDVkYWI4MmM4NWUwMDVmMDc0Yi4uZDFmYTg2NDA2OWRjYjc1MDljOWYxODc3MGRhYjUyZjFl
ODU2YmQxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgKQEAg
LTUwLDcgKzUwLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MVGVtcGxhdGVFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgdmlydHVhbCBSZWZQdHI8
Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYs
IENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRNb3ZlVG9O
ZXdEb2N1bWVudChEb2N1bWVudCogb2xkRG9jdW1lbnQpIG92ZXJyaWRlOwogCiAgICAgbXV0YWJs
ZSBSZWZQdHI8VGVtcGxhdGVDb250ZW50RG9jdW1lbnRGcmFnbWVudD4gbV9jb250ZW50OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKaW5kZXggOTM5MjkxMTU1
MDkyNjE3N2ViMDZmYzQyMWU1YTJkMDlkN2E5MjFlNi4uYTJkZTczMGM1ZTdjOWQxZTVjMjBkOTBi
MmQ0MjNjMjhlZTRkYzVlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4
dEFyZWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVs
ZW1lbnQuY3BwCkBAIC00MDYsOSArNDA2LDkgQEAgdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50Ojpz
ZXREZWZhdWx0VmFsdWUoY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUpCiAgICAgUmVmPEhUTUxU
ZXh0QXJlYUVsZW1lbnQ+IHByb3RlY3RGcm9tTXV0YXRpb25FdmVudHMoKnRoaXMpOwogCiAgICAg
Ly8gVG8gcHJlc2VydmUgY29tbWVudHMsIHJlbW92ZSBvbmx5IHRoZSB0ZXh0IG5vZGVzLCB0aGVu
IGFkZCBhIHNpbmdsZSB0ZXh0IG5vZGUuCi0gICAgVmVjdG9yPFJlZlB0cjxUZXh0Pj4gdGV4dE5v
ZGVzOworICAgIFZlY3RvcjxSZWY8VGV4dD4+IHRleHROb2RlczsKICAgICBmb3IgKFRleHQqIHRl
eHROb2RlID0gVGV4dE5vZGVUcmF2ZXJzYWw6OmZpcnN0Q2hpbGQoKnRoaXMpOyB0ZXh0Tm9kZTsg
dGV4dE5vZGUgPSBUZXh0Tm9kZVRyYXZlcnNhbDo6bmV4dFNpYmxpbmcoKnRleHROb2RlKSkKLSAg
ICAgICAgdGV4dE5vZGVzLmFwcGVuZCh0ZXh0Tm9kZSk7CisgICAgICAgIHRleHROb2Rlcy5hcHBl
bmQoKnRleHROb2RlKTsKIAogICAgIHNpemVfdCBzaXplID0gdGV4dE5vZGVzLnNpemUoKTsKICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKQEAgLTUyMyw4ICs1MjMsOCBAQCB2
b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnVwZGF0ZVBsYWNlaG9sZGVyVGV4dCgpCiAgICAgU3Ry
aW5nIHBsYWNlaG9sZGVyVGV4dCA9IHN0cmlwcGVkUGxhY2Vob2xkZXIoKTsKICAgICBpZiAocGxh
Y2Vob2xkZXJUZXh0LmlzRW1wdHkoKSkgewogICAgICAgICBpZiAobV9wbGFjZWhvbGRlcikgewot
ICAgICAgICAgICAgdXNlckFnZW50U2hhZG93Um9vdCgpLT5yZW1vdmVDaGlsZChtX3BsYWNlaG9s
ZGVyLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKLSAgICAgICAgICAgIG1fcGxhY2Vob2xkZXIgPSAw
OworICAgICAgICAgICAgdXNlckFnZW50U2hhZG93Um9vdCgpLT5yZW1vdmVDaGlsZCgqbV9wbGFj
ZWhvbGRlciwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAgICAgICBtX3BsYWNlaG9sZGVy
ID0gbnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNTMzLDcg
KzUzMyw3IEBAIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6dXBkYXRlUGxhY2Vob2xkZXJUZXh0
KCkKICAgICAgICAgbV9wbGFjZWhvbGRlciA9IHBsYWNlaG9sZGVyLmdldCgpOwogICAgICAgICBt
X3BsYWNlaG9sZGVyLT5zZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LWlucHV0LXBsYWNl
aG9sZGVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAgICBt
X3BsYWNlaG9sZGVyLT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5RGlzcGxheSwg
aXNQbGFjZWhvbGRlclZpc2libGUoKSA/IENTU1ZhbHVlQmxvY2sgOiBDU1NWYWx1ZU5vbmUsIHRy
dWUpOwotICAgICAgICB1c2VyQWdlbnRTaGFkb3dSb290KCktPmluc2VydEJlZm9yZShtX3BsYWNl
aG9sZGVyLCBpbm5lclRleHRFbGVtZW50KCktPm5leHRTaWJsaW5nKCkpOworICAgICAgICB1c2Vy
QWdlbnRTaGFkb3dSb290KCktPmluc2VydEJlZm9yZSgqbV9wbGFjZWhvbGRlciwgaW5uZXJUZXh0
RWxlbWVudCgpLT5uZXh0U2libGluZygpKTsKICAgICB9CiAgICAgbV9wbGFjZWhvbGRlci0+c2V0
SW5uZXJUZXh0KHBsYWNlaG9sZGVyVGV4dCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlRG9jdW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9JbWFnZURvY3VtZW50LmNwcAppbmRleCA5ODBlYTRlY2YxZDZmNGJkY2FiN2Rm
NzkxYjgzYmRkMzc5Mjc2NDY2Li4wZDFhYjgwOTNiZjU1OTQ2YTE1Y2Q4NzQxZGM4MjdkYjY3ZjIz
MDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlRG9jdW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VEb2N1bWVudC5jcHAKQEAgLTkyLDcgKzkyLDcg
QEAgcHJpdmF0ZToKIAogY2xhc3MgSW1hZ2VEb2N1bWVudEVsZW1lbnQgZmluYWwgOiBwdWJsaWMg
SFRNTEltYWdlRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxJbWFnZURvY3Vt
ZW50RWxlbWVudD4gY3JlYXRlKEltYWdlRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPEltYWdl
RG9jdW1lbnRFbGVtZW50PiBjcmVhdGUoSW1hZ2VEb2N1bWVudCYpOwogCiBwcml2YXRlOgogICAg
IEltYWdlRG9jdW1lbnRFbGVtZW50KEltYWdlRG9jdW1lbnQmIGRvY3VtZW50KQpAQCAtMTA3LDkg
KzEwNyw5IEBAIHByaXZhdGU6CiAgICAgSW1hZ2VEb2N1bWVudCogbV9pbWFnZURvY3VtZW50Owog
fTsKIAotaW5saW5lIFJlZlB0cjxJbWFnZURvY3VtZW50RWxlbWVudD4gSW1hZ2VEb2N1bWVudEVs
ZW1lbnQ6OmNyZWF0ZShJbWFnZURvY3VtZW50JiBkb2N1bWVudCkKK2lubGluZSBSZWY8SW1hZ2VE
b2N1bWVudEVsZW1lbnQ+IEltYWdlRG9jdW1lbnRFbGVtZW50OjpjcmVhdGUoSW1hZ2VEb2N1bWVu
dCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbWFnZURvY3VtZW50RWxl
bWVudChkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEltYWdlRG9jdW1lbnRF
bGVtZW50KGRvY3VtZW50KSk7CiB9CiAKIC8vIC0tLS0tLS0tCkBAIC0yMTAsMTkgKzIxMCwxOSBA
QCBSZWY8RG9jdW1lbnRQYXJzZXI+IEltYWdlRG9jdW1lbnQ6OmNyZWF0ZVBhcnNlcigpCiAKIHZv
aWQgSW1hZ2VEb2N1bWVudDo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKQogewotICAgIFJlZlB0
cjxFbGVtZW50PiByb290RWxlbWVudCA9IERvY3VtZW50OjpjcmVhdGVFbGVtZW50KGh0bWxUYWcs
IGZhbHNlKTsKLSAgICBhcHBlbmRDaGlsZChyb290RWxlbWVudCk7Ci0gICAgZG93bmNhc3Q8SFRN
TEh0bWxFbGVtZW50Pigqcm9vdEVsZW1lbnQpLmluc2VydGVkQnlQYXJzZXIoKTsKKyAgICBSZWY8
RWxlbWVudD4gcm9vdEVsZW1lbnQgPSBEb2N1bWVudDo6Y3JlYXRlRWxlbWVudChodG1sVGFnLCBm
YWxzZSk7CisgICAgYXBwZW5kQ2hpbGQocm9vdEVsZW1lbnQuY29weVJlZigpKTsKKyAgICBkb3du
Y2FzdDxIVE1MSHRtbEVsZW1lbnQ+KHJvb3RFbGVtZW50LmdldCgpKS5pbnNlcnRlZEJ5UGFyc2Vy
KCk7CiAKICAgICBmcmFtZSgpLT5pbmplY3RVc2VyU2NyaXB0cyhJbmplY3RBdERvY3VtZW50U3Rh
cnQpOwogCi0gICAgUmVmUHRyPEVsZW1lbnQ+IGJvZHkgPSBEb2N1bWVudDo6Y3JlYXRlRWxlbWVu
dChib2R5VGFnLCBmYWxzZSk7CisgICAgUmVmPEVsZW1lbnQ+IGJvZHkgPSBEb2N1bWVudDo6Y3Jl
YXRlRWxlbWVudChib2R5VGFnLCBmYWxzZSk7CiAgICAgYm9keS0+c2V0QXR0cmlidXRlKHN0eWxl
QXR0ciwgIm1hcmdpbjogMHB4Iik7CiAgICAgaWYgKE1JTUVUeXBlUmVnaXN0cnk6OmlzUERGTUlN
RVR5cGUoZG9jdW1lbnQoKS5sb2FkZXIoKS0+cmVzcG9uc2VNSU1FVHlwZSgpKSkKLSAgICAgICAg
ZG93bmNhc3Q8SFRNTEJvZHlFbGVtZW50PigqYm9keSkuc2V0SW5saW5lU3R5bGVQcm9wZXJ0eShD
U1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvciwgIndoaXRlIiwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U19JREVOVCk7Ci0gICAgcm9vdEVsZW1lbnQtPmFwcGVuZENoaWxkKGJvZHkpOworICAgICAgICBk
b3duY2FzdDxIVE1MQm9keUVsZW1lbnQ+KGJvZHkuZ2V0KCkpLnNldElubGluZVN0eWxlUHJvcGVy
dHkoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IsICJ3aGl0ZSIsIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NfSURFTlQpOworICAgIHJvb3RFbGVtZW50LT5hcHBlbmRDaGlsZChib2R5LmNvcHlSZWYo
KSk7CiAgICAgCi0gICAgUmVmUHRyPEltYWdlRG9jdW1lbnRFbGVtZW50PiBpbWFnZUVsZW1lbnQg
PSBJbWFnZURvY3VtZW50RWxlbWVudDo6Y3JlYXRlKCp0aGlzKTsKKyAgICBSZWY8SW1hZ2VEb2N1
bWVudEVsZW1lbnQ+IGltYWdlRWxlbWVudCA9IEltYWdlRG9jdW1lbnRFbGVtZW50OjpjcmVhdGUo
KnRoaXMpOwogICAgIGlmIChtX3Nob3VsZFNocmlua0ltYWdlKQogICAgICAgICBpbWFnZUVsZW1l
bnQtPnNldEF0dHJpYnV0ZShzdHlsZUF0dHIsICItd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7IGRp
c3BsYXk6YmxvY2s7IG1hcmdpbjphdXRvOyIpOwogICAgIGVsc2UKQEAgLTIzMCw3ICsyMzAsNyBA
QCB2b2lkIEltYWdlRG9jdW1lbnQ6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCkKICAgICBpbWFn
ZUVsZW1lbnQtPnNldExvYWRNYW51YWxseSh0cnVlKTsKICAgICBpbWFnZUVsZW1lbnQtPnNldFNy
Yyh1cmwoKS5zdHJpbmcoKSk7CiAgICAgaW1hZ2VFbGVtZW50LT5jYWNoZWRJbWFnZSgpLT5zZXRS
ZXNwb25zZShsb2FkZXIoKS0+cmVzcG9uc2UoKSk7Ci0gICAgYm9keS0+YXBwZW5kQ2hpbGQoaW1h
Z2VFbGVtZW50KTsKKyAgICBib2R5LT5hcHBlbmRDaGlsZChpbWFnZUVsZW1lbnQuY29weVJlZigp
KTsKICAgICAKICAgICBpZiAobV9zaG91bGRTaHJpbmtJbWFnZSkgewogI2lmIFBMQVRGT1JNKElP
UykKQEAgLTI0NCw3ICsyNDQsNyBAQCB2b2lkIEltYWdlRG9jdW1lbnQ6OmNyZWF0ZURvY3VtZW50
U3RydWN0dXJlKCkKICNlbmRpZgogICAgIH0KIAotICAgIG1faW1hZ2VFbGVtZW50ID0gaW1hZ2VF
bGVtZW50LmdldCgpOworICAgIG1faW1hZ2VFbGVtZW50ID0gaW1hZ2VFbGVtZW50LnB0cigpOwog
fQogCiB2b2lkIEltYWdlRG9jdW1lbnQ6OmltYWdlVXBkYXRlZCgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9N
ZWRpYURvY3VtZW50LmNwcAppbmRleCAxODVhYmE4MzQwM2NlODIyYzc3NmVlMGMyOGRiYTczMDAx
OTI5OTliLi5kNzYyNDUyYzI1MGU5OGY5NmMxYzM1NTBmYWUxODFmODVlMDJiNWFmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAKQEAgLTc4LDMwICs3OCwzMCBAQCBwcml2YXRl
OgogICAgIAogdm9pZCBNZWRpYURvY3VtZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVudFN0cnVjdHVy
ZSgpCiB7Ci0gICAgUmVmUHRyPEVsZW1lbnQ+IHJvb3RFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3Jl
YXRlRWxlbWVudChodG1sVGFnLCBmYWxzZSk7Ci0gICAgZG9jdW1lbnQoKS0+YXBwZW5kQ2hpbGQo
cm9vdEVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOwotICAgIGRvY3VtZW50KCktPnNldENTU1Rh
cmdldChyb290RWxlbWVudC5nZXQoKSk7Ci0gICAgZG93bmNhc3Q8SFRNTEh0bWxFbGVtZW50Pigq
cm9vdEVsZW1lbnQpLmluc2VydGVkQnlQYXJzZXIoKTsKKyAgICBSZWY8RWxlbWVudD4gcm9vdEVs
ZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KGh0bWxUYWcsIGZhbHNlKTsKKyAgICBk
b2N1bWVudCgpLT5hcHBlbmRDaGlsZChyb290RWxlbWVudC5jb3B5UmVmKCksIElHTk9SRV9FWENF
UFRJT04pOworICAgIGRvY3VtZW50KCktPnNldENTU1RhcmdldChyb290RWxlbWVudC5wdHIoKSk7
CisgICAgZG93bmNhc3Q8SFRNTEh0bWxFbGVtZW50Pihyb290RWxlbWVudC5nZXQoKSkuaW5zZXJ0
ZWRCeVBhcnNlcigpOwogCiAgICAgaWYgKGRvY3VtZW50KCktPmZyYW1lKCkpCiAgICAgICAgIGRv
Y3VtZW50KCktPmZyYW1lKCktPmluamVjdFVzZXJTY3JpcHRzKEluamVjdEF0RG9jdW1lbnRTdGFy
dCk7CiAKICNpZiBQTEFURk9STShJT1MpCi0gICAgUmVmUHRyPEVsZW1lbnQ+IGhlYWRFbGVtZW50
ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChoZWFkVGFnLCBmYWxzZSk7Ci0gICAgcm9vdEVs
ZW1lbnQtPmFwcGVuZENoaWxkKGhlYWRFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBS
ZWY8RWxlbWVudD4gaGVhZEVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KGhlYWRU
YWcsIGZhbHNlKTsKKyAgICByb290RWxlbWVudC0+YXBwZW5kQ2hpbGQoaGVhZEVsZW1lbnQuY29w
eVJlZigpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIFJlZlB0cjxFbGVtZW50PiBtZXRhRWxl
bWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQobWV0YVRhZywgZmFsc2UpOworICAgIFJl
ZjxFbGVtZW50PiBtZXRhRWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQobWV0YVRh
ZywgZmFsc2UpOwogICAgIG1ldGFFbGVtZW50LT5zZXRBdHRyaWJ1dGUobmFtZUF0dHIsICJ2aWV3
cG9ydCIpOwogICAgIG1ldGFFbGVtZW50LT5zZXRBdHRyaWJ1dGUoY29udGVudEF0dHIsICJ3aWR0
aD1kZXZpY2Utd2lkdGgsaW5pdGlhbC1zY2FsZT0xLHVzZXItc2NhbGFibGU9bm8iKTsKLSAgICBo
ZWFkRWxlbWVudC0+YXBwZW5kQ2hpbGQobWV0YUVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOwor
ICAgIGhlYWRFbGVtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUobWV0YUVsZW1lbnQpLCBJR05P
UkVfRVhDRVBUSU9OKTsKICNlbmRpZgogCi0gICAgUmVmUHRyPEVsZW1lbnQ+IGJvZHkgPSBkb2N1
bWVudCgpLT5jcmVhdGVFbGVtZW50KGJvZHlUYWcsIGZhbHNlKTsKLSAgICByb290RWxlbWVudC0+
YXBwZW5kQ2hpbGQoYm9keSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgUmVmPEVsZW1lbnQ+IGJv
ZHkgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KGJvZHlUYWcsIGZhbHNlKTsKKyAgICByb290
RWxlbWVudC0+YXBwZW5kQ2hpbGQoYm9keS5jb3B5UmVmKCksIElHTk9SRV9FWENFUFRJT04pOwog
Ci0gICAgUmVmUHRyPEVsZW1lbnQ+IG1lZGlhRWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVs
ZW1lbnQodmlkZW9UYWcsIGZhbHNlKTsKKyAgICBSZWY8RWxlbWVudD4gbWVkaWFFbGVtZW50ID0g
ZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudCh2aWRlb1RhZywgZmFsc2UpOwogCi0gICAgbV9tZWRp
YUVsZW1lbnQgPSBkb3duY2FzdDxIVE1MVmlkZW9FbGVtZW50PihtZWRpYUVsZW1lbnQuZ2V0KCkp
OworICAgIG1fbWVkaWFFbGVtZW50ID0gZG93bmNhc3Q8SFRNTFZpZGVvRWxlbWVudD4obWVkaWFF
bGVtZW50LnB0cigpKTsKICAgICBtX21lZGlhRWxlbWVudC0+c2V0QXR0cmlidXRlKGNvbnRyb2xz
QXR0ciwgZW1wdHlBdG9tKTsKICAgICBtX21lZGlhRWxlbWVudC0+c2V0QXR0cmlidXRlKGF1dG9w
bGF5QXR0ciwgZW1wdHlBdG9tKTsKIApAQCAtMTE0LDE1ICsxMTQsMTUgQEAgdm9pZCBNZWRpYURv
Y3VtZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCiAjZW5kaWYKICAgICBtX21l
ZGlhRWxlbWVudC0+c2V0QXR0cmlidXRlKHN0eWxlQXR0ciwgZWxlbWVudFN0eWxlLnRvU3RyaW5n
KCkpOwogCi0gICAgUmVmUHRyPEVsZW1lbnQ+IHNvdXJjZUVsZW1lbnQgPSBkb2N1bWVudCgpLT5j
cmVhdGVFbGVtZW50KHNvdXJjZVRhZywgZmFsc2UpOwotICAgIEhUTUxTb3VyY2VFbGVtZW50JiBz
b3VyY2UgPSBkb3duY2FzdDxIVE1MU291cmNlRWxlbWVudD4oKnNvdXJjZUVsZW1lbnQpOworICAg
IFJlZjxFbGVtZW50PiBzb3VyY2VFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChz
b3VyY2VUYWcsIGZhbHNlKTsKKyAgICBIVE1MU291cmNlRWxlbWVudCYgc291cmNlID0gZG93bmNh
c3Q8SFRNTFNvdXJjZUVsZW1lbnQ+KHNvdXJjZUVsZW1lbnQuZ2V0KCkpOwogICAgIHNvdXJjZS5z
ZXRTcmMoZG9jdW1lbnQoKS0+dXJsKCkpOwogCiAgICAgaWYgKERvY3VtZW50TG9hZGVyKiBsb2Fk
ZXIgPSBkb2N1bWVudCgpLT5sb2FkZXIoKSkKICAgICAgICAgc291cmNlLnNldFR5cGUobG9hZGVy
LT5yZXNwb25zZU1JTUVUeXBlKCkpOwogCi0gICAgbV9tZWRpYUVsZW1lbnQtPmFwcGVuZENoaWxk
KHNvdXJjZUVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOwotICAgIGJvZHktPmFwcGVuZENoaWxk
KG1lZGlhRWxlbWVudCwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgbV9tZWRpYUVsZW1lbnQtPmFw
cGVuZENoaWxkKFdURjo6bW92ZShzb3VyY2VFbGVtZW50KSwgSUdOT1JFX0VYQ0VQVElPTik7Cisg
ICAgYm9keS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKG1lZGlhRWxlbWVudCksIElHTk9SRV9FWENF
UFRJT04pOwogCiAgICAgRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS0+ZnJhbWUoKTsKICAgICBp
ZiAoIWZyYW1lKQpAQCAtMjUzLDcgKzI1Myw3IEBAIHZvaWQgTWVkaWFEb2N1bWVudDo6cmVwbGFj
ZU1lZGlhRWxlbWVudFRpbWVyRmlyZWQoKQogICAgICAgICBpZiAoZG9jdW1lbnRMb2FkZXIpCiAg
ICAgICAgICAgICBlbWJlZEVsZW1lbnQuc2V0QXR0cmlidXRlKHR5cGVBdHRyLCBkb2N1bWVudExv
YWRlci0+d3JpdGVyKCkubWltZVR5cGUoKSk7CiAKLSAgICAgICAgdmlkZW9FbGVtZW50LT5wYXJl
bnROb2RlKCktPnJlcGxhY2VDaGlsZCgmZW1iZWRFbGVtZW50LCB2aWRlb0VsZW1lbnQsIElHTk9S
RV9FWENFUFRJT04pOworICAgICAgICB2aWRlb0VsZW1lbnQtPnBhcmVudE5vZGUoKS0+cmVwbGFj
ZUNoaWxkKGVtYmVkRWxlbWVudCwgKnZpZGVvRWxlbWVudCwgSUdOT1JFX0VYQ0VQVElPTik7CiAg
ICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCmluZGV4IGU5Njc3
MDkwZjRjMzg1M2E3Y2ZmMjA4YjIzYzMxZGM5ZDI1NDQ4MjEuLmMwYTgwYmE1NTcxMzkwOWI5M2Ix
OGIxYmRhODgwM2ZmMTUyNzViZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1
Z2luRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQu
Y3BwCkBAIC02Nyw5ICs2Nyw5IEBAIHByaXZhdGU6CiAKIHZvaWQgUGx1Z2luRG9jdW1lbnRQYXJz
ZXI6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCkKIHsKLSAgICBSZWZQdHI8RWxlbWVudD4gcm9v
dEVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KGh0bWxUYWcsIGZhbHNlKTsKLSAg
ICBkb2N1bWVudCgpLT5hcHBlbmRDaGlsZChyb290RWxlbWVudCwgSUdOT1JFX0VYQ0VQVElPTik7
Ci0gICAgZG93bmNhc3Q8SFRNTEh0bWxFbGVtZW50Pigqcm9vdEVsZW1lbnQpLmluc2VydGVkQnlQ
YXJzZXIoKTsKKyAgICBSZWY8RWxlbWVudD4gcm9vdEVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVh
dGVFbGVtZW50KGh0bWxUYWcsIGZhbHNlKTsKKyAgICBkb2N1bWVudCgpLT5hcHBlbmRDaGlsZChy
b290RWxlbWVudC5jb3B5UmVmKCksIElHTk9SRV9FWENFUFRJT04pOworICAgIGRvd25jYXN0PEhU
TUxIdG1sRWxlbWVudD4ocm9vdEVsZW1lbnQuZ2V0KCkpLmluc2VydGVkQnlQYXJzZXIoKTsKIAog
ICAgIGlmIChkb2N1bWVudCgpLT5mcmFtZSgpKQogICAgICAgICBkb2N1bWVudCgpLT5mcmFtZSgp
LT5pbmplY3RVc2VyU2NyaXB0cyhJbmplY3RBdERvY3VtZW50U3RhcnQpOwpAQCAtNzksNyArNzks
NyBAQCB2b2lkIFBsdWdpbkRvY3VtZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgp
CiAgICAgZG9jdW1lbnQoKS0+cHJvY2Vzc1ZpZXdwb3J0KEFTQ0lJTGl0ZXJhbCgidXNlci1zY2Fs
YWJsZT1ubyIpLCBWaWV3cG9ydEFyZ3VtZW50czo6UGx1Z2luRG9jdW1lbnQpOwogI2VuZGlmCiAK
LSAgICBSZWZQdHI8RWxlbWVudD4gYm9keSA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoYm9k
eVRhZywgZmFsc2UpOworICAgIFJlZjxFbGVtZW50PiBib2R5ID0gZG9jdW1lbnQoKS0+Y3JlYXRl
RWxlbWVudChib2R5VGFnLCBmYWxzZSk7CiAgICAgYm9keS0+c2V0QXR0cmlidXRlKG1hcmdpbndp
ZHRoQXR0ciwgQXRvbWljU3RyaW5nKCIwIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOwogICAgIGJvZHktPnNldEF0dHJpYnV0ZShtYXJnaW5oZWlnaHRBdHRyLCBBdG9taWNT
dHJpbmcoIjAiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAjaWYgUExB
VEZPUk0oSU9TKQpAQCAtODgsMTEgKzg4LDExIEBAIHZvaWQgUGx1Z2luRG9jdW1lbnRQYXJzZXI6
OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCkKICAgICBib2R5LT5zZXRBdHRyaWJ1dGUoc3R5bGVB
dHRyLCBBdG9taWNTdHJpbmcoImJhY2tncm91bmQtY29sb3I6IHJnYigzOCwzOCwzOCkiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAjZW5kaWYKIAotICAgIHJvb3RFbGVt
ZW50LT5hcHBlbmRDaGlsZChib2R5LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICByb290RWxlbWVu
dC0+YXBwZW5kQ2hpbGQoYm9keS5jb3B5UmVmKCksIElHTk9SRV9FWENFUFRJT04pOwogICAgICAg
ICAKLSAgICBSZWZQdHI8RWxlbWVudD4gZW1iZWRFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRl
RWxlbWVudChlbWJlZFRhZywgZmFsc2UpOworICAgIFJlZjxFbGVtZW50PiBlbWJlZEVsZW1lbnQg
PSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KGVtYmVkVGFnLCBmYWxzZSk7CiAgICAgICAgIAot
ICAgIG1fZW1iZWRFbGVtZW50ID0gZG93bmNhc3Q8SFRNTEVtYmVkRWxlbWVudD4oZW1iZWRFbGVt
ZW50LmdldCgpKTsKKyAgICBtX2VtYmVkRWxlbWVudCA9IGRvd25jYXN0PEhUTUxFbWJlZEVsZW1l
bnQ+KGVtYmVkRWxlbWVudC5wdHIoKSk7CiAgICAgbV9lbWJlZEVsZW1lbnQtPnNldEF0dHJpYnV0
ZSh3aWR0aEF0dHIsICIxMDAlIik7CiAgICAgbV9lbWJlZEVsZW1lbnQtPnNldEF0dHJpYnV0ZSho
ZWlnaHRBdHRyLCAiMTAwJSIpOwogICAgIApAQCAtMTA2LDcgKzEwNiw3IEBAIHZvaWQgUGx1Z2lu
RG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCkKIAogICAgIGRvd25jYXN0
PFBsdWdpbkRvY3VtZW50PigqZG9jdW1lbnQoKSkuc2V0UGx1Z2luRWxlbWVudChtX2VtYmVkRWxl
bWVudCk7CiAKLSAgICBib2R5LT5hcHBlbmRDaGlsZChlbWJlZEVsZW1lbnQsIElHTk9SRV9FWENF
UFRJT04pOworICAgIGJvZHktPmFwcGVuZENoaWxkKFdURjo6bW92ZShlbWJlZEVsZW1lbnQpLCBJ
R05PUkVfRVhDRVBUSU9OKTsKIH0KIAogdm9pZCBQbHVnaW5Eb2N1bWVudFBhcnNlcjo6YXBwZW5k
Qnl0ZXMoRG9jdW1lbnRXcml0ZXImLCBjb25zdCBjaGFyKiwgc2l6ZV90KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1JhbmdlSW5wdXRUeXBlLmNwcAppbmRleCBiNWI5ZTc5NDEzMTE5M2I1MGZlNzk3OWExNmEx
NGNiMzA4MDRlN2Q3Li42NmE3NDE1ZThhNGNmMTFmOTFkYzY3YzE2YTFkOTA2MDI1Y2ZmZmQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcApAQCAtMjUzLDEyICsyNTMsMTIg
QEAgdm9pZCBSYW5nZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAgICAgQVNTRVJU
KGVsZW1lbnQoKS51c2VyQWdlbnRTaGFkb3dSb290KCkpOwogCiAgICAgRG9jdW1lbnQmIGRvY3Vt
ZW50ID0gZWxlbWVudCgpLmRvY3VtZW50KCk7Ci0gICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiB0
cmFjayA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIFJlZjxIVE1MRGl2
RWxlbWVudD4gdHJhY2sgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICB0
cmFjay0+c2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJh
Y2siLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgdHJhY2stPmFw
cGVuZENoaWxkKFNsaWRlclRodW1iRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KSwgSUdOT1JFX0VY
Q0VQVElPTik7Ci0gICAgUmVmUHRyPEhUTUxFbGVtZW50PiBjb250YWluZXIgPSBTbGlkZXJDb250
YWluZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNvbnRhaW5lci0+YXBwZW5kQ2hp
bGQodHJhY2sucmVsZWFzZSgpLCBJR05PUkVfRVhDRVBUSU9OKTsKLSAgICBlbGVtZW50KCkudXNl
ckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChjb250YWluZXIucmVsZWFzZSgpLCBJR05P
UkVfRVhDRVBUSU9OKTsKKyAgICBSZWY8SFRNTEVsZW1lbnQ+IGNvbnRhaW5lciA9IFNsaWRlckNv
bnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgY29udGFpbmVyLT5hcHBlbmRD
aGlsZChXVEY6Om1vdmUodHJhY2spLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBlbGVtZW50KCku
dXNlckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoY29udGFpbmVyKSwg
SUdOT1JFX0VYQ0VQVElPTik7CiB9CiAKIEhUTUxFbGVtZW50KiBSYW5nZUlucHV0VHlwZTo6c2xp
ZGVyVHJhY2tFbGVtZW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
U2VhcmNoSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBl
LmNwcAppbmRleCBkZTQzZGI1ODA0OTNiYzY1OTlmOWU3YWU4ODdlNzBjOTgxYzQyZTY3Li4zNTdj
N2E2MDViNGRiNzJjMDBlN2I5NmRlZDZkZDY0NjIwZThkNmZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9TZWFyY2hJbnB1dFR5cGUuY3BwCkBAIC0xMDcsMTQgKzEwNywxNCBAQCB2b2lkIFNlYXJjaElu
cHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAgICAgQVNTRVJUKGNvbnRhaW5lcik7CiAg
ICAgQVNTRVJUKHRleHRXcmFwcGVyKTsKIAotICAgIFJlZlB0cjxTZWFyY2hGaWVsZFJlc3VsdHNC
dXR0b25FbGVtZW50PiByZXN1bHRzQnV0dG9uID0gU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxl
bWVudDo6Y3JlYXRlKGVsZW1lbnQoKS5kb2N1bWVudCgpKTsKLSAgICBtX3Jlc3VsdHNCdXR0b24g
PSByZXN1bHRzQnV0dG9uLmdldCgpOwotICAgIHVwZGF0ZVJlc3VsdEJ1dHRvblBzZXVkb1R5cGUo
Km1fcmVzdWx0c0J1dHRvbiwgZWxlbWVudCgpLm1heFJlc3VsdHMoKSk7Ci0gICAgY29udGFpbmVy
LT5pbnNlcnRCZWZvcmUobV9yZXN1bHRzQnV0dG9uLCB0ZXh0V3JhcHBlciwgSUdOT1JFX0VYQ0VQ
VElPTik7Ci0KLSAgICBSZWZQdHI8U2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50PiBjYW5j
ZWxCdXR0b24gPSBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50
KCkuZG9jdW1lbnQoKSk7Ci0gICAgbV9jYW5jZWxCdXR0b24gPSBjYW5jZWxCdXR0b24uZ2V0KCk7
Ci0gICAgY29udGFpbmVyLT5pbnNlcnRCZWZvcmUobV9jYW5jZWxCdXR0b24sIHRleHRXcmFwcGVy
LT5uZXh0U2libGluZygpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBSZWY8U2VhcmNoRmllbGRS
ZXN1bHRzQnV0dG9uRWxlbWVudD4gcmVzdWx0c0J1dHRvbiA9IFNlYXJjaEZpZWxkUmVzdWx0c0J1
dHRvbkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCkuZG9jdW1lbnQoKSk7CisgICAgbV9yZXN1bHRz
QnV0dG9uID0gcmVzdWx0c0J1dHRvbi5wdHIoKTsKKyAgICB1cGRhdGVSZXN1bHRCdXR0b25Qc2V1
ZG9UeXBlKHJlc3VsdHNCdXR0b24uZ2V0KCksIGVsZW1lbnQoKS5tYXhSZXN1bHRzKCkpOworICAg
IGNvbnRhaW5lci0+aW5zZXJ0QmVmb3JlKFdURjo6bW92ZShyZXN1bHRzQnV0dG9uKSwgdGV4dFdy
YXBwZXIsIElHTk9SRV9FWENFUFRJT04pOworCisgICAgUmVmPFNlYXJjaEZpZWxkQ2FuY2VsQnV0
dG9uRWxlbWVudD4gY2FuY2VsQnV0dG9uID0gU2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50
OjpjcmVhdGUoZWxlbWVudCgpLmRvY3VtZW50KCkpOworICAgIG1fY2FuY2VsQnV0dG9uID0gY2Fu
Y2VsQnV0dG9uLnB0cigpOworICAgIGNvbnRhaW5lci0+aW5zZXJ0QmVmb3JlKFdURjo6bW92ZShj
YW5jZWxCdXR0b24pLCB0ZXh0V3JhcHBlci0+bmV4dFNpYmxpbmcoKSwgSUdOT1JFX0VYQ0VQVElP
Tik7CiB9CiAKIEhUTUxFbGVtZW50KiBTZWFyY2hJbnB1dFR5cGU6OnJlc3VsdHNCdXR0b25FbGVt
ZW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5w
dXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcApp
bmRleCBlYWUzZGIyOWVlZTNjMmRlOTVmZTcxODBjNTQ2ZmY4ZTdlMmE3NjdlLi4xMzZmMDk3NTFi
NWRhNjEwMDA2MTY0OWI1NWI1NDlhYzlkMjM0MmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9U
ZXh0RmllbGRJbnB1dFR5cGUuY3BwCkBAIC0yNzQsNyArMjc0LDcgQEAgdm9pZCBUZXh0RmllbGRJ
bnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogICAgIG1faW5uZXJUZXh0ID0gVGV4dENv
bnRyb2xJbm5lclRleHRFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogCiAgICAgaWYgKCFjcmVh
dGVzQ29udGFpbmVyKSB7Ci0gICAgICAgIGVsZW1lbnQoKS51c2VyQWdlbnRTaGFkb3dSb290KCkt
PmFwcGVuZENoaWxkKG1faW5uZXJUZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgZWxl
bWVudCgpLnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoKm1faW5uZXJUZXh0LCBJ
R05PUkVfRVhDRVBUSU9OKTsKICAgICAgICAgdXBkYXRlUGxhY2Vob2xkZXJUZXh0KCk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CkBAIC0yODQsNyArMjg0LDcgQEAgdm9pZCBUZXh0RmllbGRJbnB1
dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogCiAgICAgaWYgKHNob3VsZEhhdmVTcGluQnV0
dG9uKSB7CiAgICAgICAgIG1faW5uZXJTcGluQnV0dG9uID0gU3BpbkJ1dHRvbkVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCwgKnRoaXMpOwotICAgICAgICBtX2NvbnRhaW5lci0+YXBwZW5kQ2hpbGQo
bV9pbm5lclNwaW5CdXR0b24sIElHTk9SRV9FWENFUFRJT04pOworICAgICAgICBtX2NvbnRhaW5l
ci0+YXBwZW5kQ2hpbGQoKm1faW5uZXJTcGluQnV0dG9uLCBJR05PUkVfRVhDRVBUSU9OKTsKICAg
ICB9CiAKICAgICBpZiAoc2hvdWxkSGF2ZUNhcHNMb2NrSW5kaWNhdG9yKSB7CkBAIC0yOTQsNyAr
Mjk0LDcgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQog
ICAgICAgICBib29sIHNob3VsZERyYXdDYXBzTG9ja0luZGljYXRvciA9IHRoaXMtPnNob3VsZERy
YXdDYXBzTG9ja0luZGljYXRvcigpOwogICAgICAgICBtX2NhcHNMb2NrSW5kaWNhdG9yLT5zZXRJ
bmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5RGlzcGxheSwgc2hvdWxkRHJhd0NhcHNMb2Nr
SW5kaWNhdG9yID8gQ1NTVmFsdWVCbG9jayA6IENTU1ZhbHVlTm9uZSwgdHJ1ZSk7CiAKLSAgICAg
ICAgbV9jb250YWluZXItPmFwcGVuZENoaWxkKG1fY2Fwc0xvY2tJbmRpY2F0b3IsIElHTk9SRV9F
WENFUFRJT04pOworICAgICAgICBtX2NvbnRhaW5lci0+YXBwZW5kQ2hpbGQoKm1fY2Fwc0xvY2tJ
bmRpY2F0b3IsIElHTk9SRV9FWENFUFRJT04pOwogICAgIH0KIAogICAgIHVwZGF0ZUF1dG9GaWxs
QnV0dG9uKCk7CkBAIC00NjEsNyArNDYxLDcgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OnVw
ZGF0ZVBsYWNlaG9sZGVyVGV4dCgpCiAgICAgU3RyaW5nIHBsYWNlaG9sZGVyVGV4dCA9IGVsZW1l
bnQoKS5zdHJpcHBlZFBsYWNlaG9sZGVyKCk7CiAgICAgaWYgKHBsYWNlaG9sZGVyVGV4dC5pc0Vt
cHR5KCkpIHsKICAgICAgICAgaWYgKG1fcGxhY2Vob2xkZXIpIHsKLSAgICAgICAgICAgIG1fcGxh
Y2Vob2xkZXItPnBhcmVudE5vZGUoKS0+cmVtb3ZlQ2hpbGQobV9wbGFjZWhvbGRlci5nZXQoKSwg
QVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAgICAgICBtX3BsYWNlaG9sZGVyLT5wYXJlbnRO
b2RlKCktPnJlbW92ZUNoaWxkKCptX3BsYWNlaG9sZGVyLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsK
ICAgICAgICAgICAgIG1fcGxhY2Vob2xkZXIgPSBudWxscHRyOwogICAgICAgICB9CiAgICAgICAg
IHJldHVybjsKQEAgLTQ3MCw3ICs0NzAsNyBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6dXBk
YXRlUGxhY2Vob2xkZXJUZXh0KCkKICAgICAgICAgbV9wbGFjZWhvbGRlciA9IEhUTUxEaXZFbGVt
ZW50OjpjcmVhdGUoZWxlbWVudCgpLmRvY3VtZW50KCkpOwogICAgICAgICBtX3BsYWNlaG9sZGVy
LT5zZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAgICBtX3BsYWNlaG9sZGVy
LT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5RGlzcGxheSwgZWxlbWVudCgpLmlz
UGxhY2Vob2xkZXJWaXNpYmxlKCkgPyBDU1NWYWx1ZUJsb2NrIDogQ1NTVmFsdWVOb25lLCB0cnVl
KTsKLSAgICAgICAgZWxlbWVudCgpLnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+aW5zZXJ0QmVmb3Jl
KG1fcGxhY2Vob2xkZXIsIG1fY29udGFpbmVyID8gbV9jb250YWluZXIuZ2V0KCkgOiBpbm5lclRl
eHRFbGVtZW50KCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAgICBlbGVtZW50KCkudXNl
ckFnZW50U2hhZG93Um9vdCgpLT5pbnNlcnRCZWZvcmUoKm1fcGxhY2Vob2xkZXIsIG1fY29udGFp
bmVyID8gbV9jb250YWluZXIuZ2V0KCkgOiBpbm5lclRleHRFbGVtZW50KCksIEFTU0VSVF9OT19F
WENFUFRJT04pOwogICAgICAgICAKICAgICB9CiAgICAgbV9wbGFjZWhvbGRlci0+c2V0SW5uZXJU
ZXh0KHBsYWNlaG9sZGVyVGV4dCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CkBAIC02MDAsMTAgKzYw
MCwxMCBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlQ29udGFpbmVyKCkKICAgICBt
X2NvbnRhaW5lci0+c2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC10ZXh0ZmllbGQtZGVj
b3JhdGlvbi1jb250YWluZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CiAKICAgICBtX2lubmVyQmxvY2sgPSBUZXh0Q29udHJvbElubmVyRWxlbWVudDo6Y3JlYXRlKGVs
ZW1lbnQoKS5kb2N1bWVudCgpKTsKLSAgICBtX2lubmVyQmxvY2stPmFwcGVuZENoaWxkKG1faW5u
ZXJUZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKLSAgICBtX2NvbnRhaW5lci0+YXBwZW5kQ2hpbGQo
bV9pbm5lckJsb2NrLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBtX2lubmVyQmxvY2stPmFwcGVu
ZENoaWxkKCptX2lubmVyVGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgbV9jb250YWluZXIt
PmFwcGVuZENoaWxkKCptX2lubmVyQmxvY2ssIElHTk9SRV9FWENFUFRJT04pOwogCi0gICAgZWxl
bWVudCgpLnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQobV9jb250YWluZXIsIElH
Tk9SRV9FWENFUFRJT04pOworICAgIGVsZW1lbnQoKS51c2VyQWdlbnRTaGFkb3dSb290KCktPmFw
cGVuZENoaWxkKCptX2NvbnRhaW5lciwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CiAKIHZvaWQgVGV4
dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVBdXRvRmlsbEJ1dHRvbigpCkBAIC02MTIsNyArNjEyLDcg
QEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZUF1dG9GaWxsQnV0dG9uKCkKIAogICAg
IG1fYXV0b0ZpbGxCdXR0b24gPSBBdXRvRmlsbEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50
KCkuZG9jdW1lbnQoKSwgKnRoaXMpOwogICAgIG1fYXV0b0ZpbGxCdXR0b24tPnNldFBzZXVkbyhB
dG9taWNTdHJpbmcoIi13ZWJraXQtYXV0by1maWxsLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBtX2NvbnRhaW5lci0+YXBwZW5kQ2hpbGQobV9hdXRv
RmlsbEJ1dHRvbiwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgbV9jb250YWluZXItPmFwcGVuZENo
aWxkKCptX2F1dG9GaWxsQnV0dG9uLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KIAogdm9pZCBUZXh0
RmllbGRJbnB1dFR5cGU6OnVwZGF0ZUF1dG9GaWxsQnV0dG9uKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKaW5kZXggZjYxZTFiNWVmZTI3MDkzMWRhYjBlYzJlZWRm
MGYzNGJkNzc4MmI5Ni4uOTA2Mjk1ZTE5OGY3ODQ1NjU2MTJhYTUyY2I5ZTZhYzRkNTMwZmFkYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKQEAgLTE4MCwzMiAr
MTgwLDMyIEBAIHZvaWQgVmFsaWRhdGlvbk1lc3NhZ2U6OmJ1aWxkQnViYmxlVHJlZSgpCiAgICAg
Ly8gTmVlZCB0byBmb3JjZSBwb3NpdGlvbjphYnNvbHV0ZSBiZWNhdXNlIFJlbmRlck1lbnVMaXN0
IGRvZXNuJ3QgYXNzdW1lIGl0CiAgICAgLy8gY29udGFpbnMgbm9uLWFic29sdXRlIG9yIG5vbi1m
aXhlZCByZW5kZXJlcnMgYXMgY2hpbGRyZW4uCiAgICAgbV9idWJibGUtPnNldElubGluZVN0eWxl
UHJvcGVydHkoQ1NTUHJvcGVydHlQb3NpdGlvbiwgQ1NTVmFsdWVBYnNvbHV0ZSk7Ci0gICAgc2hh
ZG93Um9vdC5hcHBlbmRDaGlsZChtX2J1YmJsZS5nZXQoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7
CisgICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZCgqbV9idWJibGUsIEFTU0VSVF9OT19FWENFUFRJ
T04pOwogICAgIGRvY3VtZW50LnVwZGF0ZUxheW91dCgpOwogICAgIGFkanVzdEJ1YmJsZVBvc2l0
aW9uKG1fZWxlbWVudC0+cmVuZGVyZXIoKS0+YWJzb2x1dGVCb3VuZGluZ0JveFJlY3QoKSwgbV9i
dWJibGUuZ2V0KCkpOwogCi0gICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBjbGlwcGVyID0gSFRN
TERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgUmVmPEhUTUxEaXZFbGVtZW50PiBj
bGlwcGVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY2xpcHBlci0+
c2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1hcnJvdy1j
bGlwcGVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIFJlZlB0
cjxIVE1MRGl2RWxlbWVudD4gYnViYmxlQXJyb3cgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50KTsKKyAgICBSZWY8SFRNTERpdkVsZW1lbnQ+IGJ1YmJsZUFycm93ID0gSFRNTERpdkVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgYnViYmxlQXJyb3ctPnNldFBzZXVkbyhBdG9t
aWNTdHJpbmcoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtYXJyb3ciLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgY2xpcHBlci0+YXBwZW5kQ2hpbGQoYnViYmxl
QXJyb3cucmVsZWFzZSgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKLSAgICBtX2J1YmJsZS0+YXBw
ZW5kQ2hpbGQoY2xpcHBlci5yZWxlYXNlKCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIGNs
aXBwZXItPmFwcGVuZENoaWxkKFdURjo6bW92ZShidWJibGVBcnJvdyksIEFTU0VSVF9OT19FWENF
UFRJT04pOworICAgIG1fYnViYmxlLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoY2xpcHBlciksIEFT
U0VSVF9OT19FWENFUFRJT04pOwogCi0gICAgUmVmUHRyPEhUTUxFbGVtZW50PiBtZXNzYWdlID0g
SFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgUmVmPEhUTUxFbGVtZW50PiBt
ZXNzYWdlID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgbWVzc2FnZS0+
c2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1tZXNzYWdl
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIFJlZlB0cjxIVE1M
RWxlbWVudD4gaWNvbiA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIFJl
ZjxIVE1MRWxlbWVudD4gaWNvbiA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwog
ICAgIGljb24tPnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJi
bGUtaWNvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBtZXNz
YWdlLT5hcHBlbmRDaGlsZChpY29uLnJlbGVhc2UoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0g
ICAgUmVmUHRyPEhUTUxFbGVtZW50PiB0ZXh0QmxvY2sgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KTsKKyAgICBtZXNzYWdlLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoaWNvbiksIEFT
U0VSVF9OT19FWENFUFRJT04pOworICAgIFJlZjxIVE1MRWxlbWVudD4gdGV4dEJsb2NrID0gSFRN
TERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgdGV4dEJsb2NrLT5zZXRQc2V1ZG8o
QXRvbWljU3RyaW5nKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLXRleHQtYmxvY2siLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgbV9tZXNzYWdlSGVhZGluZyA9
IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIG1fbWVzc2FnZUhlYWRpbmct
PnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtaGVhZGlu
ZyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICB0ZXh0QmxvY2st
PmFwcGVuZENoaWxkKG1fbWVzc2FnZUhlYWRpbmcsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAg
IHRleHRCbG9jay0+YXBwZW5kQ2hpbGQoKm1fbWVzc2FnZUhlYWRpbmcsIEFTU0VSVF9OT19FWENF
UFRJT04pOwogICAgIG1fbWVzc2FnZUJvZHkgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KTsKICAgICBtX21lc3NhZ2VCb2R5LT5zZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0
LXZhbGlkYXRpb24tYnViYmxlLWJvZHkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7Ci0gICAgdGV4dEJsb2NrLT5hcHBlbmRDaGlsZChtX21lc3NhZ2VCb2R5LCBBU1NFUlRf
Tk9fRVhDRVBUSU9OKTsKLSAgICBtZXNzYWdlLT5hcHBlbmRDaGlsZCh0ZXh0QmxvY2sucmVsZWFz
ZSgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKLSAgICBtX2J1YmJsZS0+YXBwZW5kQ2hpbGQobWVz
c2FnZS5yZWxlYXNlKCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIHRleHRCbG9jay0+YXBw
ZW5kQ2hpbGQoKm1fbWVzc2FnZUJvZHksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIG1lc3Nh
Z2UtPmFwcGVuZENoaWxkKFdURjo6bW92ZSh0ZXh0QmxvY2spLCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKKyAgICBtX2J1YmJsZS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKG1lc3NhZ2UpLCBBU1NFUlRf
Tk9fRVhDRVBUSU9OKTsKIAogICAgIHNldE1lc3NhZ2VET01BbmRTdGFydFRpbWVyKCk7CiAKQEAg
LTIzNyw3ICsyMzcsNyBAQCB2b2lkIFZhbGlkYXRpb25NZXNzYWdlOjpkZWxldGVCdWJibGVUcmVl
KCkKICAgICBpZiAobV9idWJibGUpIHsKICAgICAgICAgbV9tZXNzYWdlSGVhZGluZyA9IG51bGxw
dHI7CiAgICAgICAgIG1fbWVzc2FnZUJvZHkgPSBudWxscHRyOwotICAgICAgICBtX2VsZW1lbnQt
PnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+cmVtb3ZlQ2hpbGQobV9idWJibGUuZ2V0KCksIEFTU0VS
VF9OT19FWENFUFRJT04pOworICAgICAgICBtX2VsZW1lbnQtPnVzZXJBZ2VudFNoYWRvd1Jvb3Qo
KS0+cmVtb3ZlQ2hpbGQoKm1fYnViYmxlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICAgICAg
bV9idWJibGUgPSBudWxscHRyOwogICAgIH0KICAgICBtX21lc3NhZ2UgPSBTdHJpbmcoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNw
cAppbmRleCA5ZTQ4M2E5OWQ0NTg5MGUwNjc2YzdmOGEyNjhmYmJhNGQ0MDU0MGMyLi4yMmNlMzM5
ZDM0ODI1ODRmY2YxM2Y0Y2FlZWQ4YTBiNDU2ZmZhN2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCkBAIC04MDcsMjEgKzgw
NywyMSBAQCB2b2lkIE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudDo6
cmVidWlsZFRyYWNrTGlzdE1lbnUoKQogICAgIENhcHRpb25Vc2VyUHJlZmVyZW5jZXMqIGNhcHRp
b25QcmVmZXJlbmNlcyA9IGRvY3VtZW50KCkucGFnZSgpLT5ncm91cCgpLmNhcHRpb25QcmVmZXJl
bmNlcygpOwogICAgIFZlY3RvcjxSZWZQdHI8VGV4dFRyYWNrPj4gdHJhY2tzRm9yTWVudSA9IGNh
cHRpb25QcmVmZXJlbmNlcy0+c29ydGVkVHJhY2tMaXN0Rm9yTWVudSh0cmFja0xpc3QpOwogCi0g
ICAgUmVmUHRyPEVsZW1lbnQ+IGNhcHRpb25zSGVhZGVyID0gZG9jdW1lbnQoKS5jcmVhdGVFbGVt
ZW50KGgzVGFnLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBSZWY8RWxlbWVudD4gY2FwdGlv
bnNIZWFkZXIgPSBkb2N1bWVudCgpLmNyZWF0ZUVsZW1lbnQoaDNUYWcsIEFTU0VSVF9OT19FWENF
UFRJT04pOwogICAgIGNhcHRpb25zSGVhZGVyLT5hcHBlbmRDaGlsZChkb2N1bWVudCgpLmNyZWF0
ZVRleHROb2RlKHRleHRUcmFja1N1YnRpdGxlc1RleHQoKSkpOwotICAgIGFwcGVuZENoaWxkKGNh
cHRpb25zSGVhZGVyKTsKLSAgICBSZWZQdHI8RWxlbWVudD4gY2FwdGlvbnNNZW51TGlzdCA9IGRv
Y3VtZW50KCkuY3JlYXRlRWxlbWVudCh1bFRhZywgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAg
YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNhcHRpb25zSGVhZGVyKSk7CisgICAgUmVmPEVsZW1lbnQ+
IGNhcHRpb25zTWVudUxpc3QgPSBkb2N1bWVudCgpLmNyZWF0ZUVsZW1lbnQodWxUYWcsIEFTU0VS
VF9OT19FWENFUFRJT04pOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgbGVuZ3RoID0gdHJh
Y2tzRm9yTWVudS5zaXplKCk7IGkgPCBsZW5ndGg7ICsraSkgewogICAgICAgICBSZWZQdHI8VGV4
dFRyYWNrPiB0ZXh0VHJhY2sgPSB0cmFja3NGb3JNZW51W2ldOwotICAgICAgICBSZWZQdHI8RWxl
bWVudD4gbWVudUl0ZW0gPSBkb2N1bWVudCgpLmNyZWF0ZUVsZW1lbnQobGlUYWcsIEFTU0VSVF9O
T19FWENFUFRJT04pOworICAgICAgICBSZWY8RWxlbWVudD4gbWVudUl0ZW0gPSBkb2N1bWVudCgp
LmNyZWF0ZUVsZW1lbnQobGlUYWcsIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgICAgICBtZW51
SXRlbS0+YXBwZW5kQ2hpbGQoZG9jdW1lbnQoKS5jcmVhdGVUZXh0Tm9kZShjYXB0aW9uUHJlZmVy
ZW5jZXMtPmRpc3BsYXlOYW1lRm9yVHJhY2sodGV4dFRyYWNrLmdldCgpKSkpOwotICAgICAgICBj
YXB0aW9uc01lbnVMaXN0LT5hcHBlbmRDaGlsZChtZW51SXRlbSk7Ci0gICAgICAgIG1fbWVudUl0
ZW1zLmFwcGVuZChtZW51SXRlbSk7Ci0gICAgICAgIG1fbWVudVRvVHJhY2tNYXAuYWRkKG1lbnVJ
dGVtLCB0ZXh0VHJhY2spOworICAgICAgICBjYXB0aW9uc01lbnVMaXN0LT5hcHBlbmRDaGlsZCht
ZW51SXRlbS5jb3B5UmVmKCkpOworICAgICAgICBtX21lbnVJdGVtcy5hcHBlbmQobWVudUl0ZW0u
cHRyKCkpOworICAgICAgICBtX21lbnVUb1RyYWNrTWFwLmFkZChtZW51SXRlbS5wdHIoKSwgdGV4
dFRyYWNrKTsKICAgICB9CiAKLSAgICBhcHBlbmRDaGlsZChjYXB0aW9uc01lbnVMaXN0KTsKKyAg
ICBhcHBlbmRDaGlsZChXVEY6Om1vdmUoY2FwdGlvbnNNZW51TGlzdCkpOwogI2VuZGlmCiB9CiAK
QEAgLTExODYsMTYgKzExODYsMTYgQEAgdm9pZCBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWlu
ZXJFbGVtZW50Ojp1cGRhdGVEaXNwbGF5KCkKICAgICAgICAgICAgIC8vIHRyYWNrIGN1ZSByZWdp
b24gaWRlbnRpZmllciwgcnVuIHRoZSBmb2xsb3dpbmcgc3Vic3RlcHM6CiAgICAgICAgICAgICBp
ZiAoZGlzcGxheUJveC0+aGFzQ2hpbGROb2RlcygpICYmICFjb250YWlucyhkaXNwbGF5Qm94Lmdl
dCgpKSkgewogICAgICAgICAgICAgICAgIC8vIE5vdGU6IHRoZSBkaXNwbGF5IHRyZWUgb2YgYSBj
dWUgaXMgcmVtb3ZlZCB3aGVuIHRoZSBhY3RpdmUgZmxhZyBvZiB0aGUgY3VlIGlzIHVuc2V0Lgot
ICAgICAgICAgICAgICAgIGFwcGVuZENoaWxkKGRpc3BsYXlCb3gsIEFTU0VSVF9OT19FWENFUFRJ
T04pOworICAgICAgICAgICAgICAgIGFwcGVuZENoaWxkKCpkaXNwbGF5Qm94LCBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKICAgICAgICAgICAgICAgICBjdWUtPnNldEZvbnRTaXplKG1fZm9udFNpemUs
IG1fdmlkZW9EaXNwbGF5U2l6ZS5zaXplKCksIG1fZm9udFNpemVJc0ltcG9ydGFudCk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAvLyBMZXQgcmVnaW9uIGJl
IHRoZSBXZWJWVFQgcmVnaW9uIHdob3NlIHJlZ2lvbiBpZGVudGlmaWVyCiAgICAgICAgICAgICAv
LyBtYXRjaGVzIHRoZSB0ZXh0IHRyYWNrIGN1ZSByZWdpb24gaWRlbnRpZmllciBvZiBjdWUuCi0g
ICAgICAgICAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IHJlZ2lvbk5vZGUgPSByZWdpb24tPmdl
dERpc3BsYXlUcmVlKCk7CisgICAgICAgICAgICBSZWY8SFRNTERpdkVsZW1lbnQ+IHJlZ2lvbk5v
ZGUgPSByZWdpb24tPmdldERpc3BsYXlUcmVlKCk7CiAKICAgICAgICAgICAgIC8vIEFwcGVuZCB0
aGUgcmVnaW9uIHRvIHRoZSB2aWV3cG9ydCwgaWYgaXQgd2FzIG5vdCBhbHJlYWR5LgotICAgICAg
ICAgICAgaWYgKCFjb250YWlucyhyZWdpb25Ob2RlLmdldCgpKSkKKyAgICAgICAgICAgIGlmICgh
Y29udGFpbnMocmVnaW9uTm9kZS5wdHIoKSkpCiAgICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQo
cmVnaW9uLT5nZXREaXNwbGF5VHJlZSgpKTsKIAogICAgICAgICAgICAgcmVnaW9uLT5hcHBlbmRU
ZXh0VHJhY2tDdWVCb3goZGlzcGxheUJveCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L01lZGlhQ29udHJvbHMuY3BwCmluZGV4IDNkZDZkZTg2ZGExZmNjZDFmZTFhMDYwODUzZDQ3MTIz
YTRhNzBkOTguLjlkZjk5OGYxYTk4N2JjOTJmZjc4ODRkNTUzMzE4NjJhMTVjYjliMjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuY3BwCkBAIC0zODAsMTQg
KzM4MCwxNCBAQCB2b2lkIE1lZGlhQ29udHJvbHM6OmNyZWF0ZVRleHRUcmFja0Rpc3BsYXkoKQog
ICAgIGlmIChtX3RleHREaXNwbGF5Q29udGFpbmVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBS
ZWZQdHI8TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudD4gdGV4dERpc3BsYXlD
b250YWluZXIgPSBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQoKSk7Ci0gICAgbV90ZXh0RGlzcGxheUNvbnRhaW5lciA9IHRleHREaXNwbGF5Q29u
dGFpbmVyLmdldCgpOworICAgIFJlZjxNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVt
ZW50PiB0ZXh0RGlzcGxheUNvbnRhaW5lciA9IE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5l
ckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKKyAgICBtX3RleHREaXNwbGF5Q29udGFpbmVy
ID0gdGV4dERpc3BsYXlDb250YWluZXIucHRyKCk7CiAKICAgICBpZiAobV9tZWRpYUNvbnRyb2xs
ZXIpCiAgICAgICAgIG1fdGV4dERpc3BsYXlDb250YWluZXItPnNldE1lZGlhQ29udHJvbGxlciht
X21lZGlhQ29udHJvbGxlcik7CiAKICAgICAvLyBJbnNlcnQgaXQgYmVmb3JlIHRoZSBmaXJzdCBj
b250cm9sbGVyIGVsZW1lbnQgc28gaXQgYWx3YXlzIGRpc3BsYXlzIGJlaGluZCB0aGUgY29udHJv
bHMuCi0gICAgaW5zZXJ0QmVmb3JlKHRleHREaXNwbGF5Q29udGFpbmVyLnJlbGVhc2UoKSwgbV9w
YW5lbCwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgaW5zZXJ0QmVmb3JlKFdURjo6bW92ZSh0ZXh0
RGlzcGxheUNvbnRhaW5lciksIG1fcGFuZWwsIElHTk9SRV9FWENFUFRJT04pOwogfQogCiB2b2lk
IE1lZGlhQ29udHJvbHM6OnNob3dUZXh0VHJhY2tEaXNwbGF5KCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNBcHBsZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQXBwbGUuY3BwCmluZGV4IDNmNDJhYmE3NWM0
ZDJkOTdhZWJjMTIxZGI0OGI1YzgxNTgzYjA5Y2UuLjdmYjI2M2Q4YTc4OGM5MDdlOTZmMjVhYmYw
OTZlMTU1YmEwYmE5MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
ZGlhQ29udHJvbHNBcHBsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVk
aWFDb250cm9sc0FwcGxlLmNwcApAQCAtNjMsMTY1ICs2MywxNjUgQEAgUGFzc1JlZlB0cjxNZWRp
YUNvbnRyb2xzPiBNZWRpYUNvbnRyb2xzOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogUGFz
c1JlZlB0cjxNZWRpYUNvbnRyb2xzQXBwbGU+IE1lZGlhQ29udHJvbHNBcHBsZTo6Y3JlYXRlQ29u
dHJvbHMoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIGlmICghZG9jdW1lbnQucGFnZSgpKQot
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBSZWZQdHI8
TWVkaWFDb250cm9sc0FwcGxlPiBjb250cm9scyA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xz
QXBwbGUoZG9jdW1lbnQpKTsKIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ+
IHBhbmVsID0gTWVkaWFDb250cm9sUGFuZWxFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAg
IFJlZjxNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ+IHBhbmVsID0gTWVkaWFDb250cm9sUGFuZWxF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogCiAgICAgRXhjZXB0aW9uQ29kZSBlYzsKIAotICAg
IFJlZlB0cjxNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50PiByZXdpbmRCdXR0b24gPSBN
ZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNv
bnRyb2xzLT5tX3Jld2luZEJ1dHRvbiA9IHJld2luZEJ1dHRvbi5nZXQoKTsKLSAgICBwYW5lbC0+
YXBwZW5kQ2hpbGQocmV3aW5kQnV0dG9uLnJlbGVhc2UoKSwgZWMpOworICAgIFJlZjxNZWRpYUNv
bnRyb2xSZXdpbmRCdXR0b25FbGVtZW50PiByZXdpbmRCdXR0b24gPSBNZWRpYUNvbnRyb2xSZXdp
bmRCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNvbnRyb2xzLT5tX3Jld2lu
ZEJ1dHRvbiA9IHJld2luZEJ1dHRvbi5wdHIoKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RG
Ojptb3ZlKHJld2luZEJ1dHRvbiksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAw
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQbGF5
QnV0dG9uRWxlbWVudD4gcGxheUJ1dHRvbiA9IE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNvbnRyb2xzLT5tX3BsYXlCdXR0b24gPSBwbGF5QnV0
dG9uLmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChwbGF5QnV0dG9uLnJlbGVhc2UoKSwg
ZWMpOworICAgIFJlZjxNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudD4gcGxheUJ1dHRvbiA9
IE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNv
bnRyb2xzLT5tX3BsYXlCdXR0b24gPSBwbGF5QnV0dG9uLnB0cigpOworICAgIHBhbmVsLT5hcHBl
bmRDaGlsZChXVEY6Om1vdmUocGxheUJ1dHRvbiksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAg
IHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIFJlZlB0cjxNZWRpYUNv
bnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudD4gcmV0dXJuVG9SZWFsdGltZUJ1dHRv
biA9IE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQpOwotICAgIGNvbnRyb2xzLT5tX3JldHVyblRvUmVhbFRpbWVCdXR0b24gPSByZXR1cm5U
b1JlYWx0aW1lQnV0dG9uLmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChyZXR1cm5Ub1Jl
YWx0aW1lQnV0dG9uLnJlbGVhc2UoKSwgZWMpOworICAgIFJlZjxNZWRpYUNvbnRyb2xSZXR1cm5U
b1JlYWx0aW1lQnV0dG9uRWxlbWVudD4gcmV0dXJuVG9SZWFsdGltZUJ1dHRvbiA9IE1lZGlhQ29u
dHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAg
IGNvbnRyb2xzLT5tX3JldHVyblRvUmVhbFRpbWVCdXR0b24gPSByZXR1cm5Ub1JlYWx0aW1lQnV0
dG9uLnB0cigpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUocmV0dXJuVG9SZWFs
dGltZUJ1dHRvbiksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGlmIChkb2N1bWVudC5wYWdlKCktPnRoZW1lKCkudXNl
c01lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXkoKSkgewotICAgICAgICBSZWZQdHI8TWVkaWFDb250
cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ+IHN0YXR1c0Rpc3BsYXkgPSBNZWRpYUNvbnRyb2xTdGF0
dXNEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICAgICAgY29udHJvbHMtPm1f
c3RhdHVzRGlzcGxheSA9IHN0YXR1c0Rpc3BsYXkuZ2V0KCk7Ci0gICAgICAgIHBhbmVsLT5hcHBl
bmRDaGlsZChzdGF0dXNEaXNwbGF5LnJlbGVhc2UoKSwgZWMpOworICAgICAgICBSZWY8TWVkaWFD
b250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ+IHN0YXR1c0Rpc3BsYXkgPSBNZWRpYUNvbnRyb2xT
dGF0dXNEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICAgICAgY29udHJvbHMt
Pm1fc3RhdHVzRGlzcGxheSA9IHN0YXR1c0Rpc3BsYXkucHRyKCk7CisgICAgICAgIHBhbmVsLT5h
cHBlbmRDaGlsZChXVEY6Om1vdmUoc3RhdHVzRGlzcGxheSksIGVjKTsKICAgICAgICAgaWYgKGVj
KQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICB9CiAKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50PiB0
aW1lbGluZUNvbnRhaW5lciA9IE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBSZWY8TWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJF
bGVtZW50PiB0aW1lbGluZUNvbnRhaW5lciA9IE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVy
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xDdXJy
ZW50VGltZURpc3BsYXlFbGVtZW50PiBjdXJyZW50VGltZURpc3BsYXkgPSBNZWRpYUNvbnRyb2xD
dXJyZW50VGltZURpc3BsYXlFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNvbnRyb2xz
LT5tX2N1cnJlbnRUaW1lRGlzcGxheSA9IGN1cnJlbnRUaW1lRGlzcGxheS5nZXQoKTsKLSAgICB0
aW1lbGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoY3VycmVudFRpbWVEaXNwbGF5LnJlbGVhc2Uo
KSwgZWMpOworICAgIFJlZjxNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50PiBj
dXJyZW50VGltZURpc3BsYXkgPSBNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNvbnRyb2xzLT5tX2N1cnJlbnRUaW1lRGlzcGxheSA9
IGN1cnJlbnRUaW1lRGlzcGxheS5wdHIoKTsKKyAgICB0aW1lbGluZUNvbnRhaW5lci0+YXBwZW5k
Q2hpbGQoV1RGOjptb3ZlKGN1cnJlbnRUaW1lRGlzcGxheSksIGVjKTsKICAgICBpZiAoZWMpCi0g
ICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIFJlZlB0cjxN
ZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ+IHRpbWVsaW5lID0gTWVkaWFDb250cm9sVGltZWxp
bmVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKLSAgICBjb250cm9s
cy0+bV90aW1lbGluZSA9IHRpbWVsaW5lLmdldCgpOwotICAgIHRpbWVsaW5lQ29udGFpbmVyLT5h
cHBlbmRDaGlsZCh0aW1lbGluZS5yZWxlYXNlKCksIGVjKTsKKyAgICBSZWY8TWVkaWFDb250cm9s
VGltZWxpbmVFbGVtZW50PiB0aW1lbGluZSA9IE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50LCBjb250cm9scy5nZXQoKSk7CisgICAgY29udHJvbHMtPm1fdGltZWxp
bmUgPSB0aW1lbGluZS5wdHIoKTsKKyAgICB0aW1lbGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQo
V1RGOjptb3ZlKHRpbWVsaW5lKSwgZWMpOwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVS
ZW1haW5pbmdEaXNwbGF5RWxlbWVudD4gdGltZVJlbWFpbmluZ0Rpc3BsYXkgPSBNZWRpYUNvbnRy
b2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgY29u
dHJvbHMtPm1fdGltZVJlbWFpbmluZ0Rpc3BsYXkgPSB0aW1lUmVtYWluaW5nRGlzcGxheS5nZXQo
KTsKLSAgICB0aW1lbGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQodGltZVJlbWFpbmluZ0Rpc3Bs
YXkucmVsZWFzZSgpLCBlYyk7CisgICAgUmVmPE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNw
bGF5RWxlbWVudD4gdGltZVJlbWFpbmluZ0Rpc3BsYXkgPSBNZWRpYUNvbnRyb2xUaW1lUmVtYWlu
aW5nRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgY29udHJvbHMtPm1fdGlt
ZVJlbWFpbmluZ0Rpc3BsYXkgPSB0aW1lUmVtYWluaW5nRGlzcGxheS5wdHIoKTsKKyAgICB0aW1l
bGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHRpbWVSZW1haW5pbmdEaXNwbGF5
KSwgZWMpOwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBu
dWxscHRyOwogCi0gICAgY29udHJvbHMtPm1fdGltZWxpbmVDb250YWluZXIgPSB0aW1lbGluZUNv
bnRhaW5lci5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQodGltZWxpbmVDb250YWluZXIu
cmVsZWFzZSgpLCBlYyk7CisgICAgY29udHJvbHMtPm1fdGltZWxpbmVDb250YWluZXIgPSB0aW1l
bGluZUNvbnRhaW5lci5wdHIoKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHRp
bWVsaW5lQ29udGFpbmVyKSwgZWMpOwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7Cisg
ICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgLy8gRklYTUU6IE9ubHkgY3JlYXRlIHdoZW4g
bmVlZGVkIDxodHRwOi8vd2Via2l0Lm9yZy9iLzU3MTYzPgotICAgIFJlZlB0cjxNZWRpYUNvbnRy
b2xTZWVrQmFja0J1dHRvbkVsZW1lbnQ+IHNlZWtCYWNrQnV0dG9uID0gTWVkaWFDb250cm9sU2Vl
a0JhY2tCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNvbnRyb2xzLT5tX3Nl
ZWtCYWNrQnV0dG9uID0gc2Vla0JhY2tCdXR0b24uZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENo
aWxkKHNlZWtCYWNrQnV0dG9uLnJlbGVhc2UoKSwgZWMpOworICAgIFJlZjxNZWRpYUNvbnRyb2xT
ZWVrQmFja0J1dHRvbkVsZW1lbnQ+IHNlZWtCYWNrQnV0dG9uID0gTWVkaWFDb250cm9sU2Vla0Jh
Y2tCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNvbnRyb2xzLT5tX3NlZWtC
YWNrQnV0dG9uID0gc2Vla0JhY2tCdXR0b24ucHRyKCk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxk
KFdURjo6bW92ZShzZWVrQmFja0J1dHRvbiksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJl
dHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIC8vIEZJWE1FOiBPbmx5IGNy
ZWF0ZSB3aGVuIG5lZWRlZCA8aHR0cDovL3dlYmtpdC5vcmcvYi81NzE2Mz4KLSAgICBSZWZQdHI8
TWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50PiBzZWVrRm9yd2FyZEJ1dHRvbiA9
IE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsK
LSAgICBjb250cm9scy0+bV9zZWVrRm9yd2FyZEJ1dHRvbiA9IHNlZWtGb3J3YXJkQnV0dG9uLmdl
dCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChzZWVrRm9yd2FyZEJ1dHRvbi5yZWxlYXNlKCks
IGVjKTsKKyAgICBSZWY8TWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50PiBzZWVr
Rm9yd2FyZEJ1dHRvbiA9IE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50KTsKKyAgICBjb250cm9scy0+bV9zZWVrRm9yd2FyZEJ1dHRvbiA9IHNlZWtG
b3J3YXJkQnV0dG9uLnB0cigpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoc2Vl
a0ZvcndhcmRCdXR0b24pLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBpZiAoZG9jdW1lbnQucGFnZSgpLT50aGVtZSgp
LnN1cHBvcnRzQ2xvc2VkQ2FwdGlvbmluZygpKSB7Ci0gICAgICAgIFJlZlB0cjxNZWRpYUNvbnRy
b2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQ+IGNsb3NlZENhcHRpb25zQ29udGFpbmVy
ID0gTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQpOworICAgICAgICBSZWY8TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJF
bGVtZW50PiBjbG9zZWRDYXB0aW9uc0NvbnRhaW5lciA9IE1lZGlhQ29udHJvbENsb3NlZENhcHRp
b25zQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKIAotICAgICAgICBSZWZQdHI8
TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50PiBjbG9zZWRDYXB0aW9u
c1RyYWNrTGlzdCA9IE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50LCBjb250cm9scy5nZXQoKSk7Ci0gICAgICAgIGNvbnRyb2xzLT5tX2Ns
b3NlZENhcHRpb25zVHJhY2tMaXN0ID0gY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QuZ2V0KCk7Ci0g
ICAgICAgIGNsb3NlZENhcHRpb25zQ29udGFpbmVyLT5hcHBlbmRDaGlsZChjbG9zZWRDYXB0aW9u
c1RyYWNrTGlzdC5yZWxlYXNlKCksIGVjKTsKKyAgICAgICAgUmVmPE1lZGlhQ29udHJvbENsb3Nl
ZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudD4gY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QgPSBNZWRp
YUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwg
Y29udHJvbHMuZ2V0KCkpOworICAgICAgICBjb250cm9scy0+bV9jbG9zZWRDYXB0aW9uc1RyYWNr
TGlzdCA9IGNsb3NlZENhcHRpb25zVHJhY2tMaXN0LnB0cigpOworICAgICAgICBjbG9zZWRDYXB0
aW9uc0NvbnRhaW5lci0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNsb3NlZENhcHRpb25zVHJhY2tM
aXN0KSwgZWMpOwogICAgICAgICBpZiAoZWMpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAg
ICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUb2dn
bGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ+IHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9u
ID0gTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKLSAgICAgICAgY29udHJvbHMtPm1fdG9nZ2xlQ2xv
c2VkQ2FwdGlvbnNCdXR0b24gPSB0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbi5nZXQoKTsKLSAg
ICAgICAgcGFuZWwtPmFwcGVuZENoaWxkKHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uLnJlbGVh
c2UoKSwgZWMpOworICAgICAgICBSZWY8TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNC
dXR0b25FbGVtZW50PiB0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbiA9IE1lZGlhQ29udHJvbFRv
Z2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBjb250cm9s
cy5nZXQoKSk7CisgICAgICAgIGNvbnRyb2xzLT5tX3RvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9u
ID0gdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24ucHRyKCk7CisgICAgICAgIHBhbmVsLT5hcHBl
bmRDaGlsZChXVEY6Om1vdmUodG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24pLCBlYyk7CiAgICAg
ICAgIGlmIChlYykKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKLSAgICAgICAgY29udHJvbHMtPm1fY2xvc2VkQ2FwdGlvbnNDb250YWluZXIgPSBj
bG9zZWRDYXB0aW9uc0NvbnRhaW5lci5nZXQoKTsKLSAgICAgICAgY29udHJvbHMtPmFwcGVuZENo
aWxkKGNsb3NlZENhcHRpb25zQ29udGFpbmVyLnJlbGVhc2UoKSwgZWMpOworICAgICAgICBjb250
cm9scy0+bV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5lciA9IGNsb3NlZENhcHRpb25zQ29udGFpbmVy
LnB0cigpOworICAgICAgICBjb250cm9scy0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNsb3NlZENh
cHRpb25zQ29udGFpbmVyKSwgZWMpOwogICAgICAgICBpZiAoZWMpCi0gICAgICAgICAgICByZXR1
cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIC8vIEZJWE1F
OiBPbmx5IGNyZWF0ZSB3aGVuIG5lZWRlZCA8aHR0cDovL3dlYmtpdC5vcmcvYi81NzE2Mz4KLSAg
ICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ+IGZ1bGxTY3JlZW5C
dXR0b24gPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KTsKLSAgICBjb250cm9scy0+bV9mdWxsU2NyZWVuQnV0dG9uID0gZnVsbFNjcmVlbkJ1dHRv
bi5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoZnVsbFNjcmVlbkJ1dHRvbi5yZWxlYXNl
KCksIGVjKTsKKyAgICBSZWY8TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ+IGZ1
bGxTY3JlZW5CdXR0b24gPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50KTsKKyAgICBjb250cm9scy0+bV9mdWxsU2NyZWVuQnV0dG9uID0gZnVsbFNj
cmVlbkJ1dHRvbi5wdHIoKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGZ1bGxT
Y3JlZW5CdXR0b24pLCBlYyk7CiAKICAgICAvLyBUaGUgbXV0ZSBidXR0b24gYW5kIHRoZSBzbGlk
ZXIgZWxlbWVudCBzaG91bGQgYmUgaW4gdGhlIHNhbWUgZGl2LgotICAgIFJlZlB0cjxIVE1MRGl2
RWxlbWVudD4gcGFuZWxWb2x1bWVDb250cm9sQ29udGFpbmVyID0gSFRNTERpdkVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCk7CisgICAgUmVmPEhUTUxEaXZFbGVtZW50PiBwYW5lbFZvbHVtZUNvbnRy
b2xDb250YWluZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKIAogICAgIGlm
IChkb2N1bWVudC5wYWdlKCktPnRoZW1lKCkudXNlc01lZGlhQ29udHJvbFZvbHVtZVNsaWRlcigp
KSB7Ci0gICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVt
ZW50PiB2b2x1bWVTbGlkZXJDb250YWluZXIgPSBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250
YWluZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgICAgICBSZWY8TWVkaWFDb250cm9s
Vm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudD4gdm9sdW1lU2xpZGVyQ29udGFpbmVyID0gTWVk
aWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsK
IAotICAgICAgICBSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50PiBz
bGlkZXIgPSBNZWRpYUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCk7Ci0gICAgICAgIGNvbnRyb2xzLT5tX3ZvbHVtZVNsaWRlciA9IHNsaWRlci5nZXQoKTsK
LSAgICAgICAgdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5hcHBlbmRDaGlsZChzbGlkZXIucmVsZWFz
ZSgpLCBlYyk7CisgICAgICAgIFJlZjxNZWRpYUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1l
bnQ+IHNsaWRlciA9IE1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xpZGVyRWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KTsKKyAgICAgICAgY29udHJvbHMtPm1fdm9sdW1lU2xpZGVyID0gc2xpZGVyLnB0
cigpOworICAgICAgICB2b2x1bWVTbGlkZXJDb250YWluZXItPmFwcGVuZENoaWxkKFdURjo6bW92
ZShzbGlkZXIpLCBlYyk7CiAgICAgICAgIGlmIChlYykKLSAgICAgICAgICAgIHJldHVybiAwOwor
ICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAgICAgLy8gVGhpcyBpcyBhIGR1cGxp
Y2F0ZSBtdXRlIGJ1dHRvbiwgd2hpY2ggaXMgdmlzaWJsZSBpbiBzb21lIHBvcnRzIGF0IHRoZSBi
b3R0b20gb2YgdGhlIHZvbHVtZSBiYXIuCiAgICAgICAgIC8vIEl0J3MgaW1wb3J0YW50IG9ubHkg
d2hlbiB0aGUgdm9sdW1lIGJhciBpcyBkaXNwbGF5ZWQgYmVsb3cgdGhlIGNvbnRyb2xzLgotICAg
ICAgICBSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ+IHZv
bHVtZVNsaWRlck11dGVCdXR0b24gPSBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9u
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICAgICAgY29udHJvbHMtPm1fdm9sdW1lU2xp
ZGVyTXV0ZUJ1dHRvbiA9IHZvbHVtZVNsaWRlck11dGVCdXR0b24uZ2V0KCk7Ci0gICAgICAgIHZv
bHVtZVNsaWRlckNvbnRhaW5lci0+YXBwZW5kQ2hpbGQodm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbi5y
ZWxlYXNlKCksIGVjKTsKKyAgICAgICAgUmVmPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVC
dXR0b25FbGVtZW50PiB2b2x1bWVTbGlkZXJNdXRlQnV0dG9uID0gTWVkaWFDb250cm9sVm9sdW1l
U2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgICAgIGNvbnRy
b2xzLT5tX3ZvbHVtZVNsaWRlck11dGVCdXR0b24gPSB2b2x1bWVTbGlkZXJNdXRlQnV0dG9uLnB0
cigpOworICAgICAgICB2b2x1bWVTbGlkZXJDb250YWluZXItPmFwcGVuZENoaWxkKFdURjo6bW92
ZSh2b2x1bWVTbGlkZXJNdXRlQnV0dG9uKSwgZWMpOwogCiAgICAgICAgIGlmIChlYykKLSAgICAg
ICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICAgICAg
Y29udHJvbHMtPm1fdm9sdW1lU2xpZGVyQ29udGFpbmVyID0gdm9sdW1lU2xpZGVyQ29udGFpbmVy
LmdldCgpOwotICAgICAgICBwYW5lbFZvbHVtZUNvbnRyb2xDb250YWluZXItPmFwcGVuZENoaWxk
KHZvbHVtZVNsaWRlckNvbnRhaW5lci5yZWxlYXNlKCksIGVjKTsKKyAgICAgICAgY29udHJvbHMt
Pm1fdm9sdW1lU2xpZGVyQ29udGFpbmVyID0gdm9sdW1lU2xpZGVyQ29udGFpbmVyLnB0cigpOwor
ICAgICAgICBwYW5lbFZvbHVtZUNvbnRyb2xDb250YWluZXItPmFwcGVuZENoaWxkKFdURjo6bW92
ZSh2b2x1bWVTbGlkZXJDb250YWluZXIpLCBlYyk7CiAgICAgICAgIGlmIChlYykKLSAgICAgICAg
ICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAg
UmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ+IHBhbmVsTXV0ZUJ1dHRv
biA9IE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwg
Y29udHJvbHMuZ2V0KCkpOwotICAgIGNvbnRyb2xzLT5tX3BhbmVsTXV0ZUJ1dHRvbiA9IHBhbmVs
TXV0ZUJ1dHRvbi5nZXQoKTsKLSAgICBwYW5lbFZvbHVtZUNvbnRyb2xDb250YWluZXItPmFwcGVu
ZENoaWxkKHBhbmVsTXV0ZUJ1dHRvbi5yZWxlYXNlKCksIGVjKTsKKyAgICBSZWY8TWVkaWFDb250
cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudD4gcGFuZWxNdXRlQnV0dG9uID0gTWVkaWFDb250cm9s
UGFuZWxNdXRlQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBjb250cm9scy5nZXQoKSk7
CisgICAgY29udHJvbHMtPm1fcGFuZWxNdXRlQnV0dG9uID0gcGFuZWxNdXRlQnV0dG9uLnB0cigp
OworICAgIHBhbmVsVm9sdW1lQ29udHJvbENvbnRhaW5lci0+YXBwZW5kQ2hpbGQoV1RGOjptb3Zl
KHBhbmVsTXV0ZUJ1dHRvbiksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChwYW5lbFZv
bHVtZUNvbnRyb2xDb250YWluZXIsIGVjKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGOjpt
b3ZlKHBhbmVsVm9sdW1lQ29udHJvbENvbnRhaW5lciksIGVjKTsKICAgICBpZiAoZWMpCi0gICAg
ICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIC8vIEZJWE1FOiBP
bmx5IGNyZWF0ZSB3aGVuIG5lZWRlZCA8aHR0cDovL3dlYmtpdC5vcmcvYi81NzE2Mz4KLSAgICBS
ZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQ+IGZ1bGxT
Y3JlZW5NaW5Wb2x1bWVCdXR0b24gPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0
dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBjb250cm9scy0+bV9mdWxsU2NyZWVu
TWluVm9sdW1lQnV0dG9uID0gZnVsbFNjcmVlbk1pblZvbHVtZUJ1dHRvbi5nZXQoKTsKLSAgICBw
YW5lbC0+YXBwZW5kQ2hpbGQoZnVsbFNjcmVlbk1pblZvbHVtZUJ1dHRvbi5yZWxlYXNlKCksIGVj
KTsKKyAgICBSZWY8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQ+
IGZ1bGxTY3JlZW5NaW5Wb2x1bWVCdXR0b24gPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1l
TWluQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBjb250cm9scy0+bV9mdWxs
U2NyZWVuTWluVm9sdW1lQnV0dG9uID0gZnVsbFNjcmVlbk1pblZvbHVtZUJ1dHRvbi5wdHIoKTsK
KyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGZ1bGxTY3JlZW5NaW5Wb2x1bWVCdXR0
b24pLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRl
ckVsZW1lbnQ+IGZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXIgPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVu
Vm9sdW1lU2xpZGVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBjb250cm9scy0+bV9m
dWxsU2NyZWVuVm9sdW1lU2xpZGVyID0gZnVsbFNjcmVlblZvbHVtZVNsaWRlci5nZXQoKTsKLSAg
ICBwYW5lbC0+YXBwZW5kQ2hpbGQoZnVsbFNjcmVlblZvbHVtZVNsaWRlci5yZWxlYXNlKCksIGVj
KTsKKyAgICBSZWY8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQ+IGZ1
bGxTY3JlZW5Wb2x1bWVTbGlkZXIgPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVy
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBjb250cm9scy0+bV9mdWxsU2NyZWVuVm9s
dW1lU2xpZGVyID0gZnVsbFNjcmVlblZvbHVtZVNsaWRlci5wdHIoKTsKKyAgICBwYW5lbC0+YXBw
ZW5kQ2hpbGQoV1RGOjptb3ZlKGZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXIpLCBlYyk7CiAgICAgaWYg
KGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBS
ZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQ+IGZ1bGxT
Y3JlZW5NYXhWb2x1bWVCdXR0b24gPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0
dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBjb250cm9scy0+bV9mdWxsU2NyZWVu
TWF4Vm9sdW1lQnV0dG9uID0gZnVsbFNjcmVlbk1heFZvbHVtZUJ1dHRvbi5nZXQoKTsKLSAgICBw
YW5lbC0+YXBwZW5kQ2hpbGQoZnVsbFNjcmVlbk1heFZvbHVtZUJ1dHRvbi5yZWxlYXNlKCksIGVj
KTsKKyAgICBSZWY8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQ+
IGZ1bGxTY3JlZW5NYXhWb2x1bWVCdXR0b24gPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1l
TWF4QnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBjb250cm9scy0+bV9mdWxs
U2NyZWVuTWF4Vm9sdW1lQnV0dG9uID0gZnVsbFNjcmVlbk1heFZvbHVtZUJ1dHRvbi5wdHIoKTsK
KyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGZ1bGxTY3JlZW5NYXhWb2x1bWVCdXR0
b24pLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKLSAgICBjb250cm9scy0+bV9wYW5lbCA9IHBhbmVsLmdldCgpOwotICAgIGNv
bnRyb2xzLT5hcHBlbmRDaGlsZChwYW5lbC5yZWxlYXNlKCksIGVjKTsKKyAgICBjb250cm9scy0+
bV9wYW5lbCA9IHBhbmVsLnB0cigpOworICAgIGNvbnRyb2xzLT5hcHBlbmRDaGlsZChXVEY6Om1v
dmUocGFuZWwpLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKICAgICByZXR1cm4gY29udHJvbHMucmVsZWFzZSgpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKaW5k
ZXggMGExYmI4M2ZiMTljNzU1NmRhY2QxNmNmZGRjNzg2OTg0YmQ1MTc4My4uOWRkZDU1MmJkOGNl
ZTk2YzYxZmVhYjgxZmUzZDQ2YjZlMDBkZTliNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCkBAIC02MTEsNyArNjExLDcgQEAgY29u
c3QgQXRvbWljU3RyaW5nJiBTbGlkZXJUaHVtYkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29u
c3QKICAgICB9CiB9CiAKLVJlZlB0cjxFbGVtZW50PiBTbGlkZXJUaHVtYkVsZW1lbnQ6OmNsb25l
RWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmIHRhcmdldERvY3Vt
ZW50KQorUmVmPEVsZW1lbnQ+IFNsaWRlclRodW1iRWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aG91
dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQpCiB7CiAgICAg
cmV0dXJuIGNyZWF0ZSh0YXJnZXREb2N1bWVudCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oCmluZGV4IDQ4ZWNkNTUyNmQwYjBhNTc4MTYw
ZjcyZDgyNjJiMmYxN2JmZTZhYjguLmNmMmY4NWE3ZWRkZjc5NGU3ODVkZjc2YmFjMDlmOTM4NjU1
ZmQyMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1i
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxl
bWVudC5oCkBAIC02Miw3ICs2Miw3IEBAIHByaXZhdGU6CiAgICAgU2xpZGVyVGh1bWJFbGVtZW50
KERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUmVmPFJlbmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9z
aXRpb24mKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlZlB0cjxFbGVtZW50PiBjbG9uZUVsZW1l
bnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50Jikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBSZWY8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGls
ZHJlbihEb2N1bWVudCYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc0Rpc2FibGVkRm9y
bUNvbnRyb2woKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgbWF0Y2hlc1JlYWRX
cml0ZVBzZXVkb0NsYXNzKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBFbGVtZW50KiBm
b2N1c0RlbGVnYXRlKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwCmluZGV4
IGE0NGE1ZGUwNjkyYTE2YjNiNDlkYjg3NDExOTViYWFhZGU3ZjU5NmMuLmM0NGM1MTg4MmNiODE4
Nzg2MWI2NmI1NmNmYzVhOWMyMjhlMmFlZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3Bw
CkBAIC04NSwxMiArODUsMTMgQEAgUmVmUHRyPEltYWdlQ29udHJvbHNSb290RWxlbWVudD4gSW1h
Z2VDb250cm9sc1Jvb3RFbGVtZW50OjptYXliZUNyZWF0ZShEb2N1bWVudCYKICAgICBpZiAoIWRv
Y3VtZW50LnBhZ2UoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBSZWZQdHI8SW1h
Z2VDb250cm9sc1Jvb3RFbGVtZW50TWFjPiBjb250cm9scyA9IGFkb3B0UmVmKCpuZXcgSW1hZ2VD
b250cm9sc1Jvb3RFbGVtZW50TWFjKGRvY3VtZW50KSk7CisgICAgUmVmPEltYWdlQ29udHJvbHNS
b290RWxlbWVudE1hYz4gY29udHJvbHMgPSBhZG9wdFJlZigqbmV3IEltYWdlQ29udHJvbHNSb290
RWxlbWVudE1hYyhkb2N1bWVudCkpOwogICAgIGNvbnRyb2xzLT5zZXRBdHRyaWJ1dGUoSFRNTE5h
bWVzOjpjbGFzc0F0dHIsICJ4LXdlYmtpdC1pbWFnZS1jb250cm9scyIpOwogCi0gICAgY29udHJv
bHMtPmFwcGVuZENoaWxkKEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjOjptYXliZUNyZWF0
ZShkb2N1bWVudCkpOworICAgIGlmIChSZWZQdHI8SW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRN
YWM+IGJ1dHRvbiA9IEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjOjptYXliZUNyZWF0ZShk
b2N1bWVudCkpCisgICAgICAgIGNvbnRyb2xzLT5hcHBlbmRDaGlsZChidXR0b24ucmVsZWFzZU5v
bk51bGwoKSk7CiAKLSAgICByZXR1cm4gY29udHJvbHMucmVsZWFzZSgpOworICAgIHJldHVybiBX
VEY6Om1vdmUoY29udHJvbHMpOwogfQogCiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWM6Oklt
YWdlQ29udHJvbHNSb290RWxlbWVudE1hYyhEb2N1bWVudCYgZG9jdW1lbnQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1ZUVEN1ZS5jcHAKaW5kZXggYTk2OTBkNmY5OTYxOWYzNzA5YTZiOGEyNWQ2YmZl
MzE1MzUwYWFlZC4uOWQ2Y2E3MmRhOGQ4MTViNzdmMDU5OGY4ZDlmMjMxMjM5YjlmNTY5OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcApAQCAtNDk2LDcgKzQ5Niw3IEBAIHZvaWQg
VlRUQ3VlOjpjb3B5V2ViVlRUTm9kZVRvRE9NVHJlZShDb250YWluZXJOb2RlKiB3ZWJWVFROb2Rl
LCBDb250YWluZXJOb2RlKiBwCiAgICAgICAgICAgICBjbG9uZWROb2RlID0gZG93bmNhc3Q8V2Vi
VlRURWxlbWVudD4oKm5vZGUpLmNyZWF0ZUVxdWl2YWxlbnRIVE1MRWxlbWVudChvd25lckRvY3Vt
ZW50KCkpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBjbG9uZWROb2RlID0gbm9kZS0+Y2xv
bmVOb2RlKGZhbHNlKTsKLSAgICAgICAgcGFyZW50LT5hcHBlbmRDaGlsZChjbG9uZWROb2RlLCBB
U1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgcGFyZW50LT5hcHBlbmRDaGlsZCgqY2xvbmVk
Tm9kZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgICAgIGlmIChpczxDb250YWluZXJOb2Rl
Pigqbm9kZSkpCiAgICAgICAgICAgICBjb3B5V2ViVlRUTm9kZVRvRE9NVHJlZShkb3duY2FzdDxD
b250YWluZXJOb2RlPihub2RlKSwgZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4oY2xvbmVkTm9kZS5n
ZXQoKSkpOwogICAgIH0KQEAgLTUxOCwxMCArNTE4LDEwIEBAIFBhc3NSZWZQdHI8RG9jdW1lbnRG
cmFnbWVudD4gVlRUQ3VlOjpjcmVhdGVDdWVSZW5kZXJpbmdUcmVlKCkKICAgICBSZWZQdHI8RG9j
dW1lbnRGcmFnbWVudD4gY2xvbmVkRnJhZ21lbnQ7CiAgICAgY3JlYXRlV2ViVlRUTm9kZVRyZWUo
KTsKICAgICBpZiAoIW1fd2ViVlRUTm9kZVRyZWUpCi0gICAgICAgIHJldHVybiAwOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGNsb25lZEZyYWdtZW50ID0gRG9jdW1lbnRGcmFnbWVu
dDo6Y3JlYXRlKG93bmVyRG9jdW1lbnQoKSk7Ci0gICAgbV93ZWJWVFROb2RlVHJlZS0+Y2xvbmVD
aGlsZE5vZGVzKGNsb25lZEZyYWdtZW50LmdldCgpKTsKKyAgICBtX3dlYlZUVE5vZGVUcmVlLT5j
bG9uZUNoaWxkTm9kZXMoKmNsb25lZEZyYWdtZW50KTsKICAgICByZXR1cm4gY2xvbmVkRnJhZ21l
bnQucmVsZWFzZSgpOwogfQogCkBAIC03ODUsNyArNzg1LDcgQEAgdm9pZCBWVFRDdWU6OnVwZGF0
ZURpc3BsYXlUcmVlKGNvbnN0IE1lZGlhVGltZSYgbW92aWVUaW1lKQogICAgICAgICByZXR1cm47
CiAKICAgICBtYXJrRnV0dXJlQW5kUGFzdE5vZGVzKHJlZmVyZW5jZVRyZWUuZ2V0KCksIHN0YXJ0
TWVkaWFUaW1lKCksIG1vdmllVGltZSk7Ci0gICAgbV9jdWVIaWdobGlnaHRCb3gtPmFwcGVuZENo
aWxkKHJlZmVyZW5jZVRyZWUpOworICAgIG1fY3VlSGlnaGxpZ2h0Qm94LT5hcHBlbmRDaGlsZChy
ZWZlcmVuY2VUcmVlLnJlbGVhc2VOb25OdWxsKCkpOwogfQogCiBWVFRDdWVCb3gqIFZUVEN1ZTo6
Z2V0RGlzcGxheVRyZWUoY29uc3QgSW50U2l6ZSYgdmlkZW9TaXplLCBpbnQgZm9udFNpemUpCkBA
IC04MTIsOCArODEyLDggQEAgVlRUQ3VlQm94KiBWVFRDdWU6OmdldERpc3BsYXlUcmVlKGNvbnN0
IEludFNpemUmIHZpZGVvU2l6ZSwgaW50IGZvbnRTaXplKQogICAgIG1fY3VlSGlnaGxpZ2h0Qm94
LT5zZXRQc2V1ZG8oY3VlU2hhZG93UHNldWRvSWQoKSk7CiAKICAgICBtX2N1ZUJhY2tkcm9wQm94
LT5zZXRQc2V1ZG8oY3VlQmFja2Ryb3BTaGFkb3dQc2V1ZG9JZCgpKTsKLSAgICBtX2N1ZUJhY2tk
cm9wQm94LT5hcHBlbmRDaGlsZChtX2N1ZUhpZ2hsaWdodEJveCwgQVNTRVJUX05PX0VYQ0VQVElP
Tik7Ci0gICAgZGlzcGxheVRyZWUtPmFwcGVuZENoaWxkKG1fY3VlQmFja2Ryb3BCb3gsIEFTU0VS
VF9OT19FWENFUFRJT04pOworICAgIG1fY3VlQmFja2Ryb3BCb3gtPmFwcGVuZENoaWxkKCptX2N1
ZUhpZ2hsaWdodEJveCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgZGlzcGxheVRyZWUtPmFw
cGVuZENoaWxkKCptX2N1ZUJhY2tkcm9wQm94LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAogICAg
IC8vIEZJWE1FKEJVRyA3OTkxNik6IFJ1bnMgb2YgY2hpbGRyZW4gb2YgV2ViVlRUIFJ1YnkgT2Jq
ZWN0cyB0aGF0IGFyZSBub3QKICAgICAvLyBXZWJWVFQgUnVieSBUZXh0IE9iamVjdHMgbXVzdCBi
ZSB3cmFwcGVkIGluIGFub255bW91cyBib3hlcyB3aG9zZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9WVFRSZWdpb24uY3BwCmluZGV4IGNjYjMyZTAzOWQ1YzUzYWZlZWMwNTAyYjY1ZTAwYWMxZTZm
ZmRlZjMuLjg1Nzk4NjhlOTgxZmZiZjI5MTY2MmI2NTRkNTNlYjlhZGZiZGJiNTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5jcHAKQEAgLTM1NCw3ICszNTQsNyBAQCB2b2lk
IFZUVFJlZ2lvbjo6YXBwZW5kVGV4dFRyYWNrQ3VlQm94KFBhc3NSZWZQdHI8VlRUQ3VlQm94PiBk
aXNwbGF5Qm94KQogICAgIGlmIChtX2N1ZUNvbnRhaW5lci0+Y29udGFpbnMoZGlzcGxheUJveC5n
ZXQoKSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fY3VlQ29udGFpbmVyLT5hcHBlbmRDaGls
ZChkaXNwbGF5Qm94LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBtX2N1ZUNvbnRhaW5lci0+
YXBwZW5kQ2hpbGQoKmRpc3BsYXlCb3gsIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgIGRpc3Bs
YXlMYXN0VGV4dFRyYWNrQ3VlQm94KCk7CiB9CiAKQEAgLTQwNCwxNCArNDA0LDE0IEBAIHZvaWQg
VlRUUmVnaW9uOjp3aWxsUmVtb3ZlVGV4dFRyYWNrQ3VlQm94KFZUVEN1ZUJveCogYm94KQogICAg
IG1fY3VlQ29udGFpbmVyLT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5VG9wLCBt
X2N1cnJlbnRUb3AsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUFgpOwogfQogCi1QYXNzUmVmUHRy
PEhUTUxEaXZFbGVtZW50PiBWVFRSZWdpb246OmdldERpc3BsYXlUcmVlKCkKK0hUTUxEaXZFbGVt
ZW50JiBWVFRSZWdpb246OmdldERpc3BsYXlUcmVlKCkKIHsKICAgICBpZiAoIW1fcmVnaW9uRGlz
cGxheVRyZWUpIHsKICAgICAgICAgbV9yZWdpb25EaXNwbGF5VHJlZSA9IEhUTUxEaXZFbGVtZW50
OjpjcmVhdGUoKm93bmVyRG9jdW1lbnQoKSk7CiAgICAgICAgIHByZXBhcmVSZWdpb25EaXNwbGF5
VHJlZSgpOwogICAgIH0KIAotICAgIHJldHVybiBtX3JlZ2lvbkRpc3BsYXlUcmVlOworICAgIHJl
dHVybiAqbV9yZWdpb25EaXNwbGF5VHJlZTsKIH0KIAogdm9pZCBWVFRSZWdpb246OnByZXBhcmVS
ZWdpb25EaXNwbGF5VHJlZSgpCkBAIC00NTMsNyArNDUzLDcgQEAgdm9pZCBWVFRSZWdpb246OnBy
ZXBhcmVSZWdpb25EaXNwbGF5VHJlZSgpCiAgICAgbV9jdWVDb250YWluZXItPnNldElubGluZVN0
eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlUb3AsIDAuMGYsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1Nf
UFgpOwogCiAgICAgbV9jdWVDb250YWluZXItPnNldFBzZXVkbyh0ZXh0VHJhY2tDdWVDb250YWlu
ZXJTaGFkb3dQc2V1ZG9JZCgpKTsKLSAgICBtX3JlZ2lvbkRpc3BsYXlUcmVlLT5hcHBlbmRDaGls
ZChtX2N1ZUNvbnRhaW5lcik7CisgICAgbV9yZWdpb25EaXNwbGF5VHJlZS0+YXBwZW5kQ2hpbGQo
Km1fY3VlQ29udGFpbmVyKTsKIAogICAgIC8vIDcuNSBFdmVyeSBXZWJWVFQgcmVnaW9uIG9iamVj
dCBpcyBpbml0aWFsaXNlZCB3aXRoIHRoZSBmb2xsb3dpbmcgQ1NTCiAgICAgbV9yZWdpb25EaXNw
bGF5VHJlZS0+c2V0UHNldWRvKHRleHRUcmFja1JlZ2lvblNoYWRvd1BzZXVkb0lkKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmgKaW5kZXggNzc3MWU4ZWIwMDg1N2JmNDMyYzFj
ZDU0YjQ4NjE3NzM2ZDA0ZTY1ZC4uODkyNWFmMWJjMzcyMDVlYjA3YTVhN2I4ZThjZjY5NzIxODBj
YTA1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5oCkBAIC04OSw3ICs4OSw3
IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNTY3JvbGxpbmdSZWdpb24oKSB7IHJldHVybiBtX3Nj
cm9sbDsgfQogCi0gICAgUGFzc1JlZlB0cjxIVE1MRGl2RWxlbWVudD4gZ2V0RGlzcGxheVRyZWUo
KTsKKyAgICBIVE1MRGl2RWxlbWVudCYgZ2V0RGlzcGxheVRyZWUoKTsKICAgICAKICAgICB2b2lk
IGFwcGVuZFRleHRUcmFja0N1ZUJveChQYXNzUmVmUHRyPFZUVEN1ZUJveD4pOwogICAgIHZvaWQg
ZGlzcGxheUxhc3RUZXh0VHJhY2tDdWVCb3goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1dlYlZUVEVsZW1lbnQuY3BwCmluZGV4IDRhMmYzMWIzZTU2MzRmMzEwMmZmNTRlYmYwZmEwZDk2
NmE5NTdhMGUuLjE0OTZiYjAzYTZhNTAwZjViNzk2MTQwZDU5MGMzZDk1ZmVmYjIyMGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmNwcApAQCAtODAsMTEgKzgw
LDExIEBAIFJlZjxXZWJWVFRFbGVtZW50PiBXZWJWVFRFbGVtZW50OjpjcmVhdGUoV2ViVlRUTm9k
ZVR5cGUgbm9kZVR5cGUsIERvY3VtZW50JiBkb2N1CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
V2ViVlRURWxlbWVudChub2RlVHlwZSwgZG9jdW1lbnQpKTsKIH0KIAotUmVmUHRyPEVsZW1lbnQ+
IFdlYlZUVEVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4o
RG9jdW1lbnQmIHRhcmdldERvY3VtZW50KQorUmVmPEVsZW1lbnQ+IFdlYlZUVEVsZW1lbnQ6OmNs
b25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmIHRhcmdldERv
Y3VtZW50KQogewotICAgIFJlZlB0cjxXZWJWVFRFbGVtZW50PiBjbG9uZSA9IGNyZWF0ZShzdGF0
aWNfY2FzdDxXZWJWVFROb2RlVHlwZT4obV93ZWJWVFROb2RlVHlwZSksIHRhcmdldERvY3VtZW50
KTsKKyAgICBSZWY8V2ViVlRURWxlbWVudD4gY2xvbmUgPSBjcmVhdGUoc3RhdGljX2Nhc3Q8V2Vi
VlRUTm9kZVR5cGU+KG1fd2ViVlRUTm9kZVR5cGUpLCB0YXJnZXREb2N1bWVudCk7CiAgICAgY2xv
bmUtPnNldExhbmd1YWdlKG1fbGFuZ3VhZ2UpOwotICAgIHJldHVybiBjbG9uZTsKKyAgICByZXR1
cm4gV1RGOjptb3ZlKGNsb25lKTsKIH0KIAogUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gV2ViVlRU
RWxlbWVudDo6Y3JlYXRlRXF1aXZhbGVudEhUTUxFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmgKaW5kZXggMWJlNzYzNmMz
NjYzZDg1OGJkNzYzNmFlY2NjMTliNzA2ZGZjNmI4Yy4uODlkM2QyYzU0ZGJjNmI5ZTUyMDYyZmY0
ZjJhY2Y3NDk4YjlmYzdiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9X
ZWJWVFRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVt
ZW50LmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2ViVlRURWxl
bWVudD4gY3JlYXRlKGNvbnN0IFdlYlZUVE5vZGVUeXBlLCBEb2N1bWVudCYpOwogICAgIFBhc3NS
ZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZUVxdWl2YWxlbnRIVE1MRWxlbWVudChEb2N1bWVudCYp
OwogCi0gICAgdmlydHVhbCBSZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJp
YnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPEVs
ZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQm
KSBvdmVycmlkZTsKIAogICAgIHZvaWQgc2V0V2ViVlRUTm9kZVR5cGUoV2ViVlRUTm9kZVR5cGUg
dHlwZSkgeyBtX3dlYlZUVE5vZGVUeXBlID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHR5cGUpOyB9
CiAgICAgV2ViVlRUTm9kZVR5cGUgd2ViVlRUTm9kZVR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0
aWNfY2FzdDxXZWJWVFROb2RlVHlwZT4obV93ZWJWVFROb2RlVHlwZSk7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmluZGV4IGI2YTMxMTNlZjdk
Njc5OTQwNWVhYTMxNDMwNjNmOGJiYWRlYTAyYjUuLjg1N2FkMTkxNzY3NTY3YTViYTE3NWI2OWNj
YWYyMTRmNDYwNjJiYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDU1NBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNTU0FnZW50LmNwcApAQCAtNzk2LDcgKzc5Niw3IEBAIEluc3BlY3RvclN0eWxlU2hlZXQqIElu
c3BlY3RvckNTU0FnZW50OjpjcmVhdGVJbnNwZWN0b3JTdHlsZVNoZWV0Rm9yRG9jdW1lbnQoRG9j
CiAgICAgLy8gU2V0IHRoaXMgZmxhZywgc28gd2hlbiB3ZSBjcmVhdGUgaXQsIHdlIHB1dCBpdCBp
bnRvIHRoZSB2aWEgaW5zcGVjdG9yIG1hcC4KICAgICBtX2NyZWF0aW5nVmlhSW5zcGVjdG9yU3R5
bGVTaGVldCA9IHRydWU7CiAgICAgSW5saW5lU3R5bGVPdmVycmlkZVNjb3BlIG92ZXJyaWRlU2Nv
cGUoZG9jdW1lbnQpOwotICAgIHRhcmdldE5vZGUtPmFwcGVuZENoaWxkKHN0eWxlRWxlbWVudCwg
ZWMpOworICAgIHRhcmdldE5vZGUtPmFwcGVuZENoaWxkKHN0eWxlRWxlbWVudC5yZWxlYXNlTm9u
TnVsbCgpLCBlYyk7CiAgICAgbV9jcmVhdGluZ1ZpYUluc3BlY3RvclN0eWxlU2hlZXQgPSBmYWxz
ZTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RyYWdDb250cm9sbGVyLmNwcAppbmRleCBjZWI0YWExYTUxNmY0N2Q1Njk4MDFiNTY2MGQ3OWYz
ZTY5MzI3YzJmLi5jNGQ5NjNlYTg2ZjRhOGY2YTQ2MzFhZWUwNDdjMDc4NmQ4ZjllMjQ1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcApAQCAtMTM4LDcgKzEzOCw3IEBAIHN0
YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGRvY3VtZW50RnJhZ21lbnRGcm9tRHJh
Z0RhdGEoRHJhZ0RhdGEmIGRyYWdECiAgICAgICAgICAgICBTdHJpbmcgdGl0bGU7CiAgICAgICAg
ICAgICBTdHJpbmcgdXJsID0gZHJhZ0RhdGEuYXNVUkwoRHJhZ0RhdGE6OkRvTm90Q29udmVydEZp
bGVuYW1lcywgJnRpdGxlKTsKICAgICAgICAgICAgIGlmICghdXJsLmlzRW1wdHkoKSkgewotICAg
ICAgICAgICAgICAgIFJlZlB0cjxIVE1MQW5jaG9yRWxlbWVudD4gYW5jaG9yID0gSFRNTEFuY2hv
ckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgICAgICAgICAgICAgUmVmPEhUTUxBbmNo
b3JFbGVtZW50PiBhbmNob3IgPSBIVE1MQW5jaG9yRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsK
ICAgICAgICAgICAgICAgICBhbmNob3ItPnNldEhyZWYodXJsKTsKICAgICAgICAgICAgICAgICBp
ZiAodGl0bGUuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFRyeSB0aGUgcGxh
aW4gdGV4dCBmaXJzdCBiZWNhdXNlIHRoZSB1cmwgbWlnaHQgYmUgbm9ybWFsaXplZCBvciBlc2Nh
cGVkLgpAQCAtMTQ3LDIwICsxNDcsMTkgQEAgc3RhdGljIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFn
bWVudD4gZG9jdW1lbnRGcmFnbWVudEZyb21EcmFnRGF0YShEcmFnRGF0YSYgZHJhZ0QKICAgICAg
ICAgICAgICAgICAgICAgaWYgKHRpdGxlLmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICAgICAg
ICAgIHRpdGxlID0gdXJsOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBSZWZQ
dHI8Tm9kZT4gYW5jaG9yVGV4dCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRpdGxlKTsKLSAg
ICAgICAgICAgICAgICBhbmNob3ItPmFwcGVuZENoaWxkKGFuY2hvclRleHQsIElHTk9SRV9FWENF
UFRJT04pOwotICAgICAgICAgICAgICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVu
dCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAgICAgICAgICAgICAgICBm
cmFnbWVudC0+YXBwZW5kQ2hpbGQoYW5jaG9yLCBJR05PUkVfRVhDRVBUSU9OKTsKLSAgICAgICAg
ICAgICAgICByZXR1cm4gZnJhZ21lbnQuZ2V0KCk7CisgICAgICAgICAgICAgICAgYW5jaG9yLT5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0aXRsZSksIElHTk9SRV9FWENFUFRJ
T04pOworICAgICAgICAgICAgICAgIFJlZjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGRv
Y3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKKyAgICAgICAgICAgICAgICBmcmFnbWVu
dC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGFuY2hvciksIElHTk9SRV9FWENFUFRJT04pOworICAg
ICAgICAgICAgICAgIHJldHVybiBmcmFnbWVudC5wdHIoKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQogICAgIH0KICAgICBpZiAoYWxsb3dQbGFpblRleHQgJiYgZHJhZ0RhdGEuY29udGFpbnNQ
bGFpblRleHQoKSkgewogICAgICAgICBjaG9zZVBsYWluVGV4dCA9IHRydWU7Ci0gICAgICAgIHJl
dHVybiBjcmVhdGVGcmFnbWVudEZyb21UZXh0KGNvbnRleHQsIGRyYWdEYXRhLmFzUGxhaW5UZXh0
KCkpLmdldCgpOworICAgICAgICByZXR1cm4gY3JlYXRlRnJhZ21lbnRGcm9tVGV4dChjb250ZXh0
LCBkcmFnRGF0YS5hc1BsYWluVGV4dCgpKS5wdHIoKTsKICAgICB9CiAKLSAgICByZXR1cm4gMDsK
KyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogYm9vbCBEcmFnQ29udHJvbGxlcjo6ZHJhZ0lzTW92
ZShGcmFtZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBEcmFnRGF0YSYgZHJhZ0RhdGEpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9GcmFtZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvaW9zL0ZyYW1lSU9TLm1tCmluZGV4IDQ2Njc0ZmNiYzAzZjllNzI5ZDBiNmQyMzM5NWQ1
NTllNTBhN2IwN2IuLmEzZTdlOGRiYzlmODZjYTBiNDBlZmZjOTAxNjQwZWQxNTYzZjFiYmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0ZyYW1lSU9TLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvaW9zL0ZyYW1lSU9TLm1tCkBAIC05NSw4ICs5NSw4IEBAIHZvaWQgRnJh
bWU6OmluaXRXaXRoU2ltcGxlSFRNTERvY3VtZW50KGNvbnN0IFN0cmluZyYgc3R5bGUsIGNvbnN0
IFVSTCYgdXJsKQogICAgIGlmICghc3R5bGUuaXNFbXB0eSgpKQogICAgICAgICBib2R5LT5zZXRB
dHRyaWJ1dGUoSFRNTE5hbWVzOjpzdHlsZUF0dHIsIHN0eWxlKTsKIAotICAgIHJvb3RFbGVtZW50
LT5hcHBlbmRDaGlsZChib2R5LCBlYyk7Ci0gICAgZG9jdW1lbnQtPmFwcGVuZENoaWxkKHJvb3RF
bGVtZW50LCBlYyk7CisgICAgcm9vdEVsZW1lbnQtPmFwcGVuZENoaWxkKGJvZHkucmVsZWFzZU5v
bk51bGwoKSwgZWMpOworICAgIGRvY3VtZW50LT5hcHBlbmRDaGlsZChyb290RWxlbWVudC5yZWxl
YXNlTm9uTnVsbCgpLCBlYyk7CiB9CiAKIGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJiBGcmFtZTo6
dmlld3BvcnRBcmd1bWVudHMoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1l
bnQuY3BwCmluZGV4IDZmM2NhODNlODUzMjIyZGZkNWU4MDUyNzJmMGY1Yzk0NjQzNGQyMjQuLjhh
ZGZjZmE0MTBhYmU0N2UzMzI0YWU1YjhkOTI0M2Y1NjY2NDVkOTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAKQEAgLTE1Niw5ICsxNTYsOSBAQCBib29sIFNWR1Njcmlw
dEVsZW1lbnQ6Omhhc1NvdXJjZUF0dHJpYnV0ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGhhc0F0dHJp
YnV0ZShYTGlua05hbWVzOjpocmVmQXR0cik7CiB9CiAKLVJlZlB0cjxFbGVtZW50PiBTVkdTY3Jp
cHRFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3Vt
ZW50JiB0YXJnZXREb2N1bWVudCkKK1JlZjxFbGVtZW50PiBTVkdTY3JpcHRFbGVtZW50OjpjbG9u
ZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50JiB0YXJnZXREb2N1
bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR1NjcmlwdEVsZW1lbnQodGFnUU5h
bWUoKSwgdGFyZ2V0RG9jdW1lbnQsIGZhbHNlLCBhbHJlYWR5U3RhcnRlZCgpKSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU1ZHU2NyaXB0RWxlbWVudCh0YWdRTmFtZSgpLCB0YXJnZXREb2N1
bWVudCwgZmFsc2UsIGFscmVhZHlTdGFydGVkKCkpKTsKIH0KIAogI2lmbmRlZiBOREVCVUcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCmluZGV4IDRjMWFhMDhlNmQyZmM4ZmY4ZGE5
OWY0MjdjZWM3ZDRmMmM2NGUzMDUuLjUzNWU0MmU2ZjA2NDZkODAxMDQxOTA5M2M2MjI5MjRiMzgz
ZDcxMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaApAQCAtNjUsNyArNjUs
NyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoTG9hZEV2ZW50KCkgb3Zl
cnJpZGUgeyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjpkaXNwYXRjaExvYWRFdmVudCh0
aGlzKTsgfQogCi0gICAgdmlydHVhbCBSZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91
dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
UmVmPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9j
dW1lbnQmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25z
dCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICAvLyBTVkdF
eHRlcm5hbFJlc291cmNlc1JlcXVpcmVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVXNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAK
aW5kZXggNzA0ZmU0YTIyOTgyZTliNDA0NDE1OTEyMTdkMzc1ZDU1NzRkNTM1Yi4uNjRlMTBhYTYw
MDRmNDcwMDYxYmYzNWE2MjlhMDRkODg4NzJiMmQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VF
bGVtZW50LmNwcApAQCAtMzMyLDcgKzMzMiw3IEBAIHN0YXRpYyB2b2lkIHJlbW92ZURpc2FsbG93
ZWRFbGVtZW50c0Zyb21TdWJ0cmVlKFNWR0VsZW1lbnQmIHN1YnRyZWUpCiAgICAgZm9yIChhdXRv
KiBlbGVtZW50IDogZGlzYWxsb3dlZEVsZW1lbnRzKSB7CiAgICAgICAgIGZvciAoYXV0byYgZGVz
Y2VuZGFudCA6IGRlc2NlbmRhbnRzT2ZUeXBlPFNWR0VsZW1lbnQ+KCplbGVtZW50KSkKICAgICAg
ICAgICAgIGRlc2NlbmRhbnQuc2V0Q29ycmVzcG9uZGluZ0VsZW1lbnQobnVsbHB0cik7Ci0gICAg
ICAgIGVsZW1lbnQtPnBhcmVudE5vZGUoKS0+cmVtb3ZlQ2hpbGQoZWxlbWVudCk7CisgICAgICAg
IGVsZW1lbnQtPnBhcmVudE5vZGUoKS0+cmVtb3ZlQ2hpbGQoKmVsZW1lbnQpOwogICAgIH0KIH0K
IApAQCAtNDA1LDcgKzQwNSw3IEBAIFNWR0VsZW1lbnQqIFNWR1VzZUVsZW1lbnQ6OmZpbmRUYXJn
ZXQoU3RyaW5nKiB0YXJnZXRJRCkgY29uc3QKIAogdm9pZCBTVkdVc2VFbGVtZW50OjpjbG9uZVRh
cmdldChDb250YWluZXJOb2RlJiBjb250YWluZXIsIFNWR0VsZW1lbnQmIHRhcmdldCkgY29uc3QK
IHsKLSAgICBSZWY8U1ZHRWxlbWVudD4gdGFyZ2V0Q2xvbmUgPSBzdGF0aWNfcG9pbnRlcl9jYXN0
PFNWR0VsZW1lbnQ+KHRhcmdldC5jbG9uZUVsZW1lbnRXaXRoQ2hpbGRyZW4oZG9jdW1lbnQoKSkp
LnJlbGVhc2VOb25OdWxsKCk7CisgICAgUmVmPFNWR0VsZW1lbnQ+IHRhcmdldENsb25lID0gc3Rh
dGljX2Nhc3Q8U1ZHRWxlbWVudCY+KHRhcmdldC5jbG9uZUVsZW1lbnRXaXRoQ2hpbGRyZW4oZG9j
dW1lbnQoKSkuZ2V0KCkpOwogICAgIGFzc29jaWF0ZUNsb25lc1dpdGhPcmlnaW5hbHModGFyZ2V0
Q2xvbmUuZ2V0KCksIHRhcmdldCk7CiAgICAgcmVtb3ZlRGlzYWxsb3dlZEVsZW1lbnRzRnJvbVN1
YnRyZWUodGFyZ2V0Q2xvbmUuZ2V0KCkpOwogICAgIHRyYW5zZmVyU2l6ZUF0dHJpYnV0ZXNUb1Rh
cmdldENsb25lKHRhcmdldENsb25lLmdldCgpKTsKQEAgLTQxOSw3ICs0MTksNyBAQCBzdGF0aWMg
dm9pZCBjbG9uZURhdGFBbmRDaGlsZHJlbihTVkdFbGVtZW50JiByZXBsYWNlbWVudENsb25lLCBT
VkdFbGVtZW50JiBvcmlnaQogICAgIEFTU0VSVCghcmVwbGFjZW1lbnRDbG9uZS5wYXJlbnROb2Rl
KCkpOwogCiAgICAgcmVwbGFjZW1lbnRDbG9uZS5jbG9uZURhdGFGcm9tRWxlbWVudChvcmlnaW5h
bENsb25lKTsKLSAgICBvcmlnaW5hbENsb25lLmNsb25lQ2hpbGROb2RlcygmcmVwbGFjZW1lbnRD
bG9uZSk7CisgICAgb3JpZ2luYWxDbG9uZS5jbG9uZUNoaWxkTm9kZXMocmVwbGFjZW1lbnRDbG9u
ZSk7CiAgICAgYXNzb2NpYXRlUmVwbGFjZW1lbnRDbG9uZXNXaXRoT3JpZ2luYWxzKHJlcGxhY2Vt
ZW50Q2xvbmUsIG9yaWdpbmFsQ2xvbmUpOwogICAgIHJlbW92ZURpc2FsbG93ZWRFbGVtZW50c0Zy
b21TdWJ0cmVlKHJlcGxhY2VtZW50Q2xvbmUpOwogfQpAQCAtNDQ4LDcgKzQ0OCw3IEBAIHZvaWQg
U1ZHVXNlRWxlbWVudDo6ZXhwYW5kVXNlRWxlbWVudHNJblNoYWRvd1RyZWUoKSBjb25zdAogICAg
ICAgICBpZiAodGFyZ2V0KQogICAgICAgICAgICAgb3JpZ2luYWxDbG9uZS5jbG9uZVRhcmdldChy
ZXBsYWNlbWVudENsb25lLmdldCgpLCAqdGFyZ2V0KTsKIAotICAgICAgICBvcmlnaW5hbENsb25l
LnBhcmVudE5vZGUoKS0+cmVwbGFjZUNoaWxkKHJlcGxhY2VtZW50Q2xvbmUucHRyKCksICZvcmln
aW5hbENsb25lKTsKKyAgICAgICAgb3JpZ2luYWxDbG9uZS5wYXJlbnROb2RlKCktPnJlcGxhY2VD
aGlsZChyZXBsYWNlbWVudENsb25lLmNvcHlSZWYoKSwgb3JpZ2luYWxDbG9uZSk7CiAKICAgICAg
ICAgLy8gUmVzdW1lIGl0ZXJhdGluZywgc3RhcnRpbmcganVzdCBpbnNpZGUgdGhlIHJlcGxhY2Vt
ZW50IGNsb25lLgogICAgICAgICBpdCA9IGRlc2NlbmRhbnRzLmZyb20ocmVwbGFjZW1lbnRDbG9u
ZS5nZXQoKSk7CkBAIC00NzIsNyArNDcyLDcgQEAgdm9pZCBTVkdVc2VFbGVtZW50OjpleHBhbmRT
eW1ib2xFbGVtZW50c0luU2hhZG93VHJlZSgpIGNvbnN0CiAgICAgICAgIGF1dG8gcmVwbGFjZW1l
bnRDbG9uZSA9IFNWR1NWR0VsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKICAgICAgICAgY2xv
bmVEYXRhQW5kQ2hpbGRyZW4ocmVwbGFjZW1lbnRDbG9uZS5nZXQoKSwgb3JpZ2luYWxDbG9uZSk7
CiAKLSAgICAgICAgb3JpZ2luYWxDbG9uZS5wYXJlbnROb2RlKCktPnJlcGxhY2VDaGlsZChyZXBs
YWNlbWVudENsb25lLnB0cigpLCAmb3JpZ2luYWxDbG9uZSk7CisgICAgICAgIG9yaWdpbmFsQ2xv
bmUucGFyZW50Tm9kZSgpLT5yZXBsYWNlQ2hpbGQocmVwbGFjZW1lbnRDbG9uZS5jb3B5UmVmKCks
IG9yaWdpbmFsQ2xvbmUpOwogCiAgICAgICAgIC8vIFJlc3VtZSBpdGVyYXRpbmcsIHN0YXJ0aW5n
IGp1c3QgaW5zaWRlIHRoZSByZXBsYWNlbWVudCBjbG9uZS4KICAgICAgICAgaXQgPSBkZXNjZW5k
YW50cy5mcm9tKHJlcGxhY2VtZW50Q2xvbmUuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUveG1sL1hNTFRyZWVWaWV3ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTFRyZWVW
aWV3ZXIuY3BwCmluZGV4IDQwOTZlNDM1ZDYzZjU3MDg0NDgwMmMyMTc3MDhhZGQ5ZWI2MDUxNzUu
LmE5Zjc3ZWExNjM4NDhmODUwYjYzNWM5MmI5MGNhOTQyNzcyZjg4YWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3htbC9YTUxUcmVlVmlld2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94
bWwvWE1MVHJlZVZpZXdlci5jcHAKQEAgLTYxLDggKzYxLDggQEAgdm9pZCBYTUxUcmVlVmlld2Vy
Ojp0cmFuc2Zvcm1Eb2N1bWVudFRvVHJlZVZpZXcoKQogICAgIG1fZG9jdW1lbnQuZnJhbWUoKS0+
c2NyaXB0KCkuZXZhbHVhdGUoU2NyaXB0U291cmNlQ29kZShBdG9taWNTdHJpbmcoInByZXBhcmVX
ZWJLaXRYTUxWaWV3ZXIoJ1RoaXMgWE1MIGZpbGUgZG9lcyBub3QgYXBwZWFyIHRvIGhhdmUgYW55
IHN0eWxlIGluZm9ybWF0aW9uIGFzc29jaWF0ZWQgd2l0aCBpdC4gVGhlIGRvY3VtZW50IHRyZWUg
aXMgc2hvd24gYmVsb3cuJyk7IikpKTsKIAogICAgIFN0cmluZyBjc3NTdHJpbmcgPSBTdHJpbmdJ
bXBsOjpjcmVhdGVXaXRob3V0Q29weWluZyhYTUxWaWV3ZXJfY3NzLCBzaXplb2YoWE1MVmlld2Vy
X2NzcykpOwotICAgIFJlZlB0cjxUZXh0PiB0ZXh0ID0gbV9kb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZShjc3NTdHJpbmcpOwotICAgIG1fZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoU3RyaW5nKEFTQ0lJ
TGl0ZXJhbCgieG1sLXZpZXdlci1zdHlsZSIpKSktPmFwcGVuZENoaWxkKHRleHQsIElHTk9SRV9F
WENFUFRJT04pOworICAgIFJlZjxUZXh0PiB0ZXh0ID0gbV9kb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZShjc3NTdHJpbmcpOworICAgIG1fZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoU3RyaW5nKEFTQ0lJ
TGl0ZXJhbCgieG1sLXZpZXdlci1zdHlsZSIpKSktPmFwcGVuZENoaWxkKFdURjo6bW92ZSh0ZXh0
KSwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgbV9kb2N1bWVudC5zdHlsZVJlc29sdmVyQ2hhbmdl
ZChSZWNhbGNTdHlsZUltbWVkaWF0ZWx5KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
RnJhbWUubW0KaW5kZXggMGIzMjEyMDdjMzIzZTRkYTAwOTMwZTljODA0ZTBkMjM4YTk0Y2RkOS4u
MjgxYTNjYWQ2Zjg4MWIxYTZjMDZlMTJhNmJjODI1NGUyYjAyZjZmMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkZyYW1lLm1tCkBAIC04OTAsOSArODkwLDkgQEAgLSAoRE9NRG9jdW1lbnRG
cmFnbWVudCAqKV9kb2N1bWVudEZyYWdtZW50V2l0aE5vZGVzQXNQYXJhZ3JhcGhzOihOU0FycmF5
ICopbm9kZXMKICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBkb2N1bWVu
dC0+Y3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwogCiAgICAgZm9yIChhdXRvKiBub2RlIDogbm9k
ZXNWZWN0b3IpIHsKLSAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSBjcmVhdGVEZWZh
dWx0UGFyYWdyYXBoRWxlbWVudCgqZG9jdW1lbnQpOwotICAgICAgICBlbGVtZW50LT5hcHBlbmRD
aGlsZChub2RlKTsKLSAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKGVsZW1lbnQucmVsZWFz
ZSgpKTsKKyAgICAgICAgUmVmPEVsZW1lbnQ+IGVsZW1lbnQgPSBjcmVhdGVEZWZhdWx0UGFyYWdy
YXBoRWxlbWVudCgqZG9jdW1lbnQpOworICAgICAgICBlbGVtZW50LT5hcHBlbmRDaGlsZCgqbm9k
ZSk7CisgICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoZWxlbWVudCkpOwog
ICAgIH0KIAogICAgIHJldHVybiBraXQoZnJhZ21lbnQucmVsZWFzZSgpLmdldCgpKTsKQEAgLTE4
NzMsNyArMTg3Myw3IEBAIC0gKHZvaWQpX3JlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dDooTlNTdHJp
bmcgKil0ZXh0IHNlbGVjdFJlcGxhY2VtZW50OihCT09MKXNlbGVjCiB7CiAgICAgUmVmUHRyPFJh
bmdlPiByYW5nZSA9IF9wcml2YXRlLT5jb3JlRnJhbWUtPnNlbGVjdGlvbigpLnRvTm9ybWFsaXpl
ZFJhbmdlKCk7CiAKLSAgICBET01Eb2N1bWVudEZyYWdtZW50KiBmcmFnbWVudCA9IHJhbmdlID8g
a2l0KGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoKnJhbmdlLCB0ZXh0KS5nZXQoKSkgOiBuaWw7Cisg
ICAgRE9NRG9jdW1lbnRGcmFnbWVudCogZnJhZ21lbnQgPSByYW5nZSA/IGtpdChjcmVhdGVGcmFn
bWVudEZyb21UZXh0KCpyYW5nZSwgdGV4dCkucHRyKCkpIDogbmlsOwogICAgIFtzZWxmIF9yZXBs
YWNlU2VsZWN0aW9uV2l0aEZyYWdtZW50OmZyYWdtZW50IHNlbGVjdFJlcGxhY2VtZW50OnNlbGVj
dFJlcGxhY2VtZW50IHNtYXJ0UmVwbGFjZTpzbWFydFJlcGxhY2UgbWF0Y2hTdHlsZTptYXRjaFN0
eWxlXTsKIH0KIApAQCAtMTk1OCw3ICsxOTU4LDcgQEAgLSAodm9pZClfcmVwbGFjZVNlbGVjdGlv
bldpdGhUZXh0OihOU1N0cmluZyAqKXRleHQgc2VsZWN0UmVwbGFjZW1lbnQ6KEJPT0wpc2VsZWMK
IHsKICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gX3ByaXZhdGUtPmNvcmVGcmFtZS0+c2VsZWN0
aW9uKCkudG9Ob3JtYWxpemVkUmFuZ2UoKTsKICAgICAKLSAgICBET01Eb2N1bWVudEZyYWdtZW50
KiBmcmFnbWVudCA9IHJhbmdlID8ga2l0KGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoKnJhbmdlLCB0
ZXh0KS5nZXQoKSkgOiBuaWw7CisgICAgRE9NRG9jdW1lbnRGcmFnbWVudCogZnJhZ21lbnQgPSBy
YW5nZSA/IGtpdChjcmVhdGVGcmFnbWVudEZyb21UZXh0KCpyYW5nZSwgdGV4dCkucHRyKCkpIDog
bmlsOwogICAgIFtzZWxmIF9yZXBsYWNlU2VsZWN0aW9uV2l0aEZyYWdtZW50OmZyYWdtZW50IHNl
bGVjdFJlcGxhY2VtZW50OnNlbGVjdFJlcGxhY2VtZW50IHNtYXJ0UmVwbGFjZTpzbWFydFJlcGxh
Y2UgbWF0Y2hTdHlsZTpZRVNdOwogfQogCkBAIC0yMjY0LDcgKzIyNjQsNyBAQCAtIChOU0FycmF5
ICopX2NvbXB1dGVQYWdlUmVjdHNXaXRoUHJpbnRTY2FsZUZhY3RvcjooZmxvYXQpcHJpbnRTY2Fs
ZUZhY3RvciBwYWdlUwogI2lmIFBMQVRGT1JNKElPUykKIC0gKERPTURvY3VtZW50RnJhZ21lbnQg
KilfZG9jdW1lbnRGcmFnbWVudEZvclRleHQ6KE5TU3RyaW5nICopdGV4dAogewotICAgIHJldHVy
biBraXQoY3JlYXRlRnJhZ21lbnRGcm9tVGV4dCgqX3ByaXZhdGUtPmNvcmVGcmFtZS0+c2VsZWN0
aW9uKCkudG9Ob3JtYWxpemVkUmFuZ2UoKS5nZXQoKSwgdGV4dCkuZ2V0KCkpOworICAgIHJldHVy
biBraXQoY3JlYXRlRnJhZ21lbnRGcm9tVGV4dCgqX3ByaXZhdGUtPmNvcmVGcmFtZS0+c2VsZWN0
aW9uKCkudG9Ob3JtYWxpemVkUmFuZ2UoKS5nZXQoKSwgdGV4dCkucHRyKCkpOwogfQogCiAtIChE
T01Eb2N1bWVudEZyYWdtZW50ICopX2RvY3VtZW50RnJhZ21lbnRGb3JXZWJBcmNoaXZlOihXZWJB
cmNoaXZlICopd2ViQXJjaGl2ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcu
bW0KaW5kZXggMzA5ODBkMzBhYTY3ZTJkZWI5ODIxZTk3ZDAwNzIyNTBlNTViZDJhNC4uYjI1NzE5
ZmI5MGI2YTQ0N2NjMjg3NGRkYTVkY2YzYWU5MWNjY2UxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC0yMjY3LDcgKzIyNjcsNyBAQCAtIChET01Eb2N1bWVu
dEZyYWdtZW50ICopX2RvY3VtZW50RnJhZ21lbnRGcm9tUGFzdGVib2FyZDooTlNQYXN0ZWJvYXJk
ICopcGFzdGVibwogICAgIGlmIChwYm9hcmRUeXBlID09IE5TU3RyaW5nUGJvYXJkVHlwZSkgewog
ICAgICAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgICAgICByZXR1cm4gbmlsOwotICAgICAgICBy
ZXR1cm4ga2l0KGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoKmNvcmUoY29udGV4dCksIFtbcGFzdGVi
b2FyZCBzdHJpbmdGb3JUeXBlOk5TU3RyaW5nUGJvYXJkVHlwZV0gcHJlY29tcG9zZWRTdHJpbmdX
aXRoQ2Fub25pY2FsTWFwcGluZ10pLmdldCgpKTsKKyAgICAgICAgcmV0dXJuIGtpdChjcmVhdGVG
cmFnbWVudEZyb21UZXh0KCpjb3JlKGNvbnRleHQpLCBbW3Bhc3RlYm9hcmQgc3RyaW5nRm9yVHlw
ZTpOU1N0cmluZ1Bib2FyZFR5cGVdIHByZWNvbXBvc2VkU3RyaW5nV2l0aENhbm9uaWNhbE1hcHBp
bmddKS5wdHIoKSk7CiAgICAgfQogICAgIHJldHVybiBuaWw7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCmluZGV4IDUzZGJmYTU5
MDZlMzcyYjEzNGYzZTg5Y2NjNGRiMmJhYTIwMGMwZGEuLjE3MzQwZGUzNjM0OTcyNzhhMGQ4OGRl
NDVkNWM2YjkzOTQ5ZmRjYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCkBAIC01MjUsMTEgKzUyNSwxMSBAQCBQREZQbHVnaW46
OlBERlBsdWdpbihXZWJGcmFtZSogZnJhbWUpCiAgICAgICAgIG1fYW5ub3RhdGlvbkNvbnRhaW5l
ciA9IGRvY3VtZW50LT5jcmVhdGVFbGVtZW50KGRpdlRhZywgZmFsc2UpOwogICAgICAgICBtX2Fu
bm90YXRpb25Db250YWluZXItPnNldEF0dHJpYnV0ZShpZEF0dHIsICJhbm5vdGF0aW9uQ29udGFp
bmVyIik7CiAKLSAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IG1fYW5ub3RhdGlvblN0eWxlID0gZG9j
dW1lbnQtPmNyZWF0ZUVsZW1lbnQoc3R5bGVUYWcsIGZhbHNlKTsKLSAgICAgICAgbV9hbm5vdGF0
aW9uU3R5bGUtPnNldFRleHRDb250ZW50KGFubm90YXRpb25TdHlsZSwgQVNTRVJUX05PX0VYQ0VQ
VElPTik7CisgICAgICAgIFJlZjxFbGVtZW50PiBhbm5vdGF0aW9uU3R5bGVFbGVtZW50ID0gZG9j
dW1lbnQtPmNyZWF0ZUVsZW1lbnQoc3R5bGVUYWcsIGZhbHNlKTsKKyAgICAgICAgYW5ub3RhdGlv
blN0eWxlRWxlbWVudC0+c2V0VGV4dENvbnRlbnQoYW5ub3RhdGlvblN0eWxlLCBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKIAotICAgICAgICBtX2Fubm90YXRpb25Db250YWluZXItPmFwcGVuZENoaWxk
KG1fYW5ub3RhdGlvblN0eWxlLmdldCgpKTsKLSAgICAgICAgZG9jdW1lbnQtPmJvZHlPckZyYW1l
c2V0KCktPmFwcGVuZENoaWxkKG1fYW5ub3RhdGlvbkNvbnRhaW5lci5nZXQoKSk7CisgICAgICAg
IG1fYW5ub3RhdGlvbkNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGFubm90YXRpb25T
dHlsZUVsZW1lbnQpKTsKKyAgICAgICAgZG9jdW1lbnQtPmJvZHlPckZyYW1lc2V0KCktPmFwcGVu
ZENoaWxkKCptX2Fubm90YXRpb25Db250YWluZXIpOwogICAgIH0KIAogICAgIG1fYWNjZXNzaWJp
bGl0eU9iamVjdCA9IGFkb3B0TlMoW1tXS1BERlBsdWdpbkFjY2Vzc2liaWxpdHlPYmplY3QgYWxs
b2NdIGluaXRXaXRoUERGUGx1Z2luOnRoaXNdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQW5ub3RhdGlvbi5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQW5ub3RhdGlvbi5tbQppbmRl
eCAzNGI1MjJkODliYTMyOTZlZjFlMGVjZTViYmUyMjE4NjE4ZTYzNmYxLi5hMDI5ZDI1ZjkxZTgy
ZTZkYjFiMmYwZmE1YTJiZTM4ZDZjMWM3MmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkFubm90YXRpb24ubW0KKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5Bbm5vdGF0aW9uLm1tCkBA
IC03NCw3ICs3NCw3IEBAIHZvaWQgUERGUGx1Z2luQW5ub3RhdGlvbjo6YXR0YWNoKEVsZW1lbnQq
IHBhcmVudCkKIAogICAgIHVwZGF0ZUdlb21ldHJ5KCk7CiAKLSAgICBtX3BhcmVudC0+YXBwZW5k
Q2hpbGQobV9lbGVtZW50KTsKKyAgICBtX3BhcmVudC0+YXBwZW5kQ2hpbGQoKm1fZWxlbWVudCk7
CiAKICAgICAvLyBGSVhNRTogVGhlIHRleHQgY3Vyc29yIGRvZXNuJ3QgYmxpbmsgYWZ0ZXIgdGhp
cy4gV2h5PwogICAgIG1fZWxlbWVudC0+Zm9jdXMoKTsKQEAgLTkyLDcgKzkyLDcgQEAgUERGUGx1
Z2luQW5ub3RhdGlvbjo6flBERlBsdWdpbkFubm90YXRpb24oKQogCiAgICAgbV9ldmVudExpc3Rl
bmVyLT5zZXRBbm5vdGF0aW9uKDApOwogCi0gICAgbV9wYXJlbnQtPnJlbW92ZUNoaWxkKGVsZW1l
bnQoKSk7CisgICAgbV9wYXJlbnQtPnJlbW92ZUNoaWxkKCplbGVtZW50KCkpOwogfQogCiB2b2lk
IFBERlBsdWdpbkFubm90YXRpb246OnVwZGF0ZUdlb21ldHJ5KCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlv
bi5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hv
aWNlQW5ub3RhdGlvbi5tbQppbmRleCBlMWE4ZTU4MjJiMjVlODc5MzUxZjM0OTBiZTk1NGQxZGI4
MTlkZDRiLi42MjFkYzAxMWRiODc0ZmRmM2RmMjMwNWFlNDA3MzY3OWYzNmYwZjM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2lj
ZUFubm90YXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9QREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uLm1tCkBAIC04MywxNCArODMsMTQgQEAgUGFzc1Jl
ZlB0cjxFbGVtZW50PiBQREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uOjpjcmVhdGVBbm5vdGF0aW9u
RWxlbWVudCgpCiAgICAgTlNTdHJpbmcgKnNlbGVjdGVkQ2hvaWNlID0gY2hvaWNlQW5ub3RhdGlv
bi5zdHJpbmdWYWx1ZTsKIAogICAgIGZvciAoTlNTdHJpbmcgKmNob2ljZSBpbiBjaG9pY2VzKSB7
Ci0gICAgICAgIFJlZlB0cjxFbGVtZW50PiBjaG9pY2VPcHRpb24gPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KG9wdGlvblRhZywgZmFsc2UpOworICAgICAgICBSZWY8RWxlbWVudD4gY2hvaWNlT3B0
aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChvcHRpb25UYWcsIGZhbHNlKTsKICAgICAgICAg
Y2hvaWNlT3B0aW9uLT5zZXRBdHRyaWJ1dGUodmFsdWVBdHRyLCBjaG9pY2UpOwogICAgICAgICBj
aG9pY2VPcHRpb24tPnNldFRleHRDb250ZW50KGNob2ljZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7
CiAKICAgICAgICAgaWYgKGNob2ljZSA9PSBzZWxlY3RlZENob2ljZSkKICAgICAgICAgICAgIGNo
b2ljZU9wdGlvbi0+c2V0QXR0cmlidXRlKHNlbGVjdGVkQXR0ciwgInNlbGVjdGVkIik7CiAKLSAg
ICAgICAgc3R5bGVkRWxlbWVudC0+YXBwZW5kQ2hpbGQoY2hvaWNlT3B0aW9uKTsKKyAgICAgICAg
c3R5bGVkRWxlbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNob2ljZU9wdGlvbikpOwogICAg
IH0KIAogICAgIHJldHVybiBlbGVtZW50OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDUzZGFkNjBkYmJlZGQ3YTFiNDBkNWZh
YjBmOWIzM2U5MjEzNzBlOWQuLmExOGFjZGNmNTlmNzNmOWY1YmEyYzlmZDM4ZjM1YmQ4YzcxNzY3
M2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxNS0wOS0wOCAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgorCisgICAgICAgIE5vZGUuYXBwZW5kQ2hpbGQobnVsbCkgLyByZXBsYWNl
Q2hpbGQobnVsbCwgbnVsbCkgLyByZW1vdmVDaGlsZChudWxsKSAvIGluc2VydEJlZm9yZShudWxs
LCByZWYpIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4OTcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8y
MjU2MDg4Mz4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIyNTU5MjI1PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSAvIHJlYmFzZWxpbmUg
dGVzdHMgbm93IHRoYXQgd2UgdGhyb3cgYSBkaWZmZXJlbnQgZXhjZXB0aW9uIHR5cGUuCisKKyAg
ICAgICAgKiBmYXN0L2RvbS9Eb2N1bWVudC9yZXBsYWNlQ2hpbGQtbnVsbC1vbGRDaGlsZC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vRG9jdW1lbnQvc2NyaXB0LXRlc3RzL3JlcGxh
Y2VDaGlsZC1udWxsLW9sZENoaWxkLmpzOgorICAgICAgICAqIGZhc3QvZG9tL05vZGUvZnJhZ21l
bnQtbXV0YXRpb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL05vZGUvZnJhZ21l
bnQtbXV0YXRpb24uaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9pbmNvbXBhdGlibGUtb3BlcmF0
aW9ucy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vaW5jb21wYXRpYmxlLW9wZXJh
dGlvbnMuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9tb3ZlLW5vZGVzLWFjcm9zcy1kb2N1bWVu
dHMuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9wcm9jZXNzaW5nLWluc3RydWN0aW9uLWFwcGVu
ZENoaWxkLWV4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL3Byb2Nl
c3NpbmctaW5zdHJ1Y3Rpb24tYXBwZW5kQ2hpbGQtZXhjZXB0aW9ucy54aHRtbDoKKyAgICAgICAg
KiBmYXN0L2RvbS9zZXR0ZXItdHlwZS1lbmZvcmNlbWVudC1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogZmFzdC9kb20vdGltZXItY2xlYXItaW50ZXJ2YWwtaW4taGFuZGxlci1hbmQtZ2VuZXJhdGUt
ZXJyb3ItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvaW5zcGVjdG9yLXN1cHBvcnQvdW5j
YXVnaHQtZG9tOC1leGNlcHRpb24uaHRtbDoKKwogMjAxNS0wOS0wOSAgRGV3ZWkgWmh1ICA8ZGV3
ZWlfemh1QGFwcGxlLmNvbT4KIAogICAgICAgICBEb2N1bWVudC5jaGFyYWN0ZXJTZXQgc2hvdWxk
IHJldHVybiAiVVRGLTgiIGJ5IGRlZmF1bHQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpp
bmRleCBmMWUxNjI2ZTYxNDFjOWFmODY5ZTZmZGY2ZjYzNGY3YmE0YzViZWVkLi4wMGJlZjIyMWRi
ZDM5OTg5NzdjYWE2YTI4N2M1YjFkYzNkMmIzNjc2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNS0wOS0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIE5vZGUuYXBwZW5kQ2hpbGQobnVsbCkgLyByZXBsYWNlQ2hp
bGQobnVsbCwgbnVsbCkgLyByZW1vdmVDaGlsZChudWxsKSAvIGluc2VydEJlZm9yZShudWxsLCBy
ZWYpIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4OTcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjU2
MDg4Mz4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIyNTU5MjI1PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlYmFzZWxpbmUgVzNDIHRlc3RzIG5v
dyB0aGF0IG1vcmUgY2hlY2tzIGFyZSBwYXNzaW5nLgorCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvZG9tL25vZGVzL05vZGUtYXBwZW5kQ2hpbGQtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1pbnNlcnRCZWZvcmUtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1yZW1v
dmVDaGlsZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9u
b2Rlcy9Ob2RlLXJlcGxhY2VDaGlsZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0OgorCiAyMDE1LTA5LTA5
ICBEZXdlaSBaaHUgIDxkZXdlaV96aHVAYXBwbGUuY29tPgogCiAgICAgICAgIERvY3VtZW50LmNo
YXJhY3RlclNldCBzaG91bGQgcmV0dXJuICJVVEYtOCIgYnkgZGVmYXVsdC4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50L3JlcGxhY2VDaGlsZC1udWxsLW9sZENoaWxk
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50L3JlcGxhY2VDaGls
ZC1udWxsLW9sZENoaWxkLWV4cGVjdGVkLnR4dAppbmRleCBiYmIxNjZiMjI3YTUyZTY1MTQ1YWRi
ZjQwNDg3ODUzYjBkMzY4ZDI0Li5hZjVhNDY5ZjVmOGNjNjk3MTAxYmM5MmE0MGY4MjQ1NWI4YmU1
Y2QwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Eb2N1bWVudC9yZXBsYWNlQ2hp
bGQtbnVsbC1vbGRDaGlsZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
RG9jdW1lbnQvcmVwbGFjZUNoaWxkLW51bGwtb2xkQ2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0zLDcg
KzMsNyBAQCBUZXN0IGJlaGF2aW9yIG9mIERvY3VtZW50LnJlcGxhY2VDaGlsZCgpIHdoZW4gb2xk
Q2hpbGQgaXMgbnVsbC4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIGRvY3Vt
ZW50LnJlcGxhY2VDaGlsZChkb2N1bWVudC5maXJzdENoaWxkLCBudWxsKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOC4KK1BBU1MgZG9jdW1lbnQu
cmVwbGFjZUNoaWxkKGRvY3VtZW50LmZpcnN0Q2hpbGQsIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAK
IFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50
L3NjcmlwdC10ZXN0cy9yZXBsYWNlQ2hpbGQtbnVsbC1vbGRDaGlsZC5qcyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0RvY3VtZW50L3NjcmlwdC10ZXN0cy9yZXBsYWNlQ2hpbGQtbnVsbC1vbGRDaGls
ZC5qcwppbmRleCBkYTkyNTI4MDA1MWUxOTdlMWFmNWM5ZWE0YTI1YjQxYjk2ZWMzYTVmLi5jMDli
ZjFiMThkMjk5ZTY3NDUyMzA1MzY2N2E4YzI1ZDhhOTgwNzBlIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9Eb2N1bWVudC9zY3JpcHQtdGVzdHMvcmVwbGFjZUNoaWxkLW51bGwtb2xk
Q2hpbGQuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvc2NyaXB0LXRlc3Rz
L3JlcGxhY2VDaGlsZC1udWxsLW9sZENoaWxkLmpzCkBAIC0xLDMgKzEsMyBAQAogZGVzY3JpcHRp
b24oJ1Rlc3QgYmVoYXZpb3Igb2YgRG9jdW1lbnQucmVwbGFjZUNoaWxkKCkgd2hlbiBvbGRDaGls
ZCBpcyBudWxsLicpOwogCi1zaG91bGRUaHJvdygnZG9jdW1lbnQucmVwbGFjZUNoaWxkKGRvY3Vt
ZW50LmZpcnN0Q2hpbGQsIG51bGwpJywgJyJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2Vw
dGlvbiA4IicpOworc2hvdWxkVGhyb3coJ2RvY3VtZW50LnJlcGxhY2VDaGlsZChkb2N1bWVudC5m
aXJzdENoaWxkLCBudWxsKScsICciVHlwZUVycm9yOiBUeXBlIGVycm9yIicpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZS9mcmFnbWVudC1tdXRhdGlvbi1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2ZyYWdtZW50LW11dGF0aW9uLWV4cGVjdGVk
LnR4dAppbmRleCAwZjA0ZTY2YTBlNTNlNmY1YjE5MDFjNWRjYjE3NmY2N2YyZTRmODY4Li40YmE5
NTI0YzcyY2Q1ZDdhMTEzMjk0NGQwNmRkZGJjNmY2YzdkODVjIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9Ob2RlL2ZyYWdtZW50LW11dGF0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2ZyYWdtZW50LW11dGF0aW9uLWV4cGVjdGVkLnR4dApA
QCAtMiwxMiArMiwxMiBAQCBUaGlzIHRlc3QgY3JlYXRlcyBhIGZyYWdtZW50IGNvbnRhaW5pbmcg
dGhyZWUgZWxlbWVudHM6ICJCIiwgIlUiLCBhbmQgIlAiLCBhdHRlbQogCiBJbnNlcnRpbmcgYW4g
ZWxlbWVudCBpbiBmcm9udCBvZiB0aGUgbmV4dCBpdGVtIGluIGZyYWdtZW50IHNob3VsZCBub3Qg
YWZmZWN0IHRoZSByZXN1bHQ6IFBBU1MKIEFwcGVuZGluZyBhbiBlbGVtZW50IGF0IHRoZSBlbmQg
b2YgdGhlIGZyYWdtZW50IHNob3VsZCBub3QgYWZmZWN0IHRoZSByZXN1bHQ6IFBBU1MKLUNvbnRp
bnVhbGx5IHJlLWFwcGVuZGluZyByZW1vdmVkIGVsZW1lbnQgdG8gdGhlIGZyYWdtZW50IHNob3Vs
ZCBldmVudHVhbGx5IHRocm93IE5PVF9GT1VORF9FUlI6IFBBU1MKK0NvbnRpbnVhbGx5IHJlLWFw
cGVuZGluZyByZW1vdmVkIGVsZW1lbnQgdG8gdGhlIGZyYWdtZW50IHNob3VsZCBldmVudHVhbGx5
IHRocm93IGEgVHlwZUVycm9yOiBQQVNTCiAKIFRoaXMgdGVzdCBjcmVhdGVzIGEgZnJhZ21lbnQg
Y29udGFpbmluZyB0aHJlZSBlbGVtZW50czogIkIiLCAiVSIsIGFuZCAiUCIsIGF0dGVtcHRzIHRv
IGluc2VydEJlZm9yZSB0aGlzIGZyYWdtZW50IGFuZCBzdHVkaWVzIGVmZmVjdHMgb2YgbXV0YXRp
b24gZXZlbnRzIG9uIHRoZSBmcmFnbWVudC4KIAogSW5zZXJ0aW5nIGFuIGVsZW1lbnQgaW4gZnJv
bnQgb2YgdGhlIG5leHQgaXRlbSBpbiBmcmFnbWVudCBzaG91bGQgbm90IGFmZmVjdCB0aGUgcmVz
dWx0OiBQQVNTCiBBcHBlbmRpbmcgYW4gZWxlbWVudCBhdCB0aGUgZW5kIG9mIHRoZSBmcmFnbWVu
dCBzaG91bGQgbm90IGFmZmVjdCB0aGUgcmVzdWx0OiBQQVNTCi1Db250aW51YWxseSByZS1hcHBl
bmRpbmcgcmVtb3ZlZCBlbGVtZW50IHRvIHRoZSBmcmFnbWVudCBzaG91bGQgZXZlbnR1YWxseSB0
aHJvdyBOT1RfRk9VTkRfRVJSOiBQQVNTCitDb250aW51YWxseSByZS1hcHBlbmRpbmcgcmVtb3Zl
ZCBlbGVtZW50IHRvIHRoZSBmcmFnbWVudCBzaG91bGQgZXZlbnR1YWxseSB0aHJvdyBhIFR5cGVF
cnJvcjogUEFTUwogCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvZnJh
Z21lbnQtbXV0YXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvZnJhZ21lbnQt
bXV0YXRpb24uaHRtbAppbmRleCA4NGU2N2Y2NTM5ZDY0YjczZTM1MTEwMjBjMDc2ZTA0YzllODAw
Y2JmLi40ODk0OTdmNTBhYzZiNmE4ZjgxMDA2YmI1OGU2YWMxNzU1N2M2Yjg0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2ZyYWdtZW50LW11dGF0aW9uLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZS9mcmFnbWVudC1tdXRhdGlvbi5odG1sCkBAIC0zNiwx
NSArMzYsMTUgQEAgZnVuY3Rpb24gcHJvZHVjZU5vZGVOYW1lU3RyaW5nKG5vZGVzKQogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKLWZ1bmN0aW9uIGV4cGVjdEV4Y2VwdGlvbihjb2RlKQorZnVuY3Rp
b24gZXhwZWN0VHlwZUVycm9yKCkKIHsKICAgICByZXR1cm4gZnVuY3Rpb24oc3Rhc2gsIGV4Y2Vw
dGlvbikgewogICAgICAgICBpZiAoIWV4Y2VwdGlvbikKLSAgICAgICAgICAgIHJldHVybiAiRkFJ
TCwgZXhwZWN0ZWQgZXhjZXB0aW9uIHdpdGggY29kZSAiICsgY29kZSArICIuIFRoZSByZXN1bHRp
bmcgZnJhZ21lbnQgd2FzOiBcIiIgKyBwcm9kdWNlTm9kZU5hbWVTdHJpbmcoc3Rhc2gpICsgIlwi
LiI7CisgICAgICAgICAgICByZXR1cm4gIkZBSUwsIGV4cGVjdGVkIFR5cGVFcnJvci4gVGhlIHJl
c3VsdGluZyBmcmFnbWVudCB3YXM6IFwiIiArIHByb2R1Y2VOb2RlTmFtZVN0cmluZyhzdGFzaCkg
KyAiXCIuIjsKIAotICAgICAgICBpZiAoY29kZSA9PSBleGNlcHRpb24uY29kZSkKKyAgICAgICAg
aWYgKGV4Y2VwdGlvbi5uYW1lID0gIlR5cGVFcnJvciIpCiAgICAgICAgICAgICByZXR1cm4gIlBB
U1MiOwotICAgICAgICByZXR1cm4gIkZBSUwsIGV4cGVjdGVkIGV4Y2VwdGlvbiBjb2RlOiAiICsg
Y29kZSArICIsIHdhczogIiArIGV4Y2VwdGlvbiArICIuIjsKKyAgICAgICAgcmV0dXJuICJGQUlM
LCBleHBlY3RlZCBUeXBlRXJyb3IsIHdhczogIiArIGV4Y2VwdGlvbi5uYW1lICsgIi4iOwogICAg
IH0KIH0KIApAQCAtMTE5LDEwICsxMTksMTAgQEAgZnVuY3Rpb24gcnVuVGVzdChtZXRob2ROYW1l
LCBtZXRob2QpCiAgICAgICAgIGZyYWcuYXBwZW5kQ2hpbGQoZXh0cmEpOwogICAgIH0sIGV4cGVj
dE5vZGVzKCJCVVAiKSk7CiAKLSAgICB0ZXN0RnJhZ21lbnQobWV0aG9kLCAiQ29udGludWFsbHkg
cmUtYXBwZW5kaW5nIHJlbW92ZWQgZWxlbWVudCB0byB0aGUgZnJhZ21lbnQgc2hvdWxkIGV2ZW50
dWFsbHkgdGhyb3cgTk9UX0ZPVU5EX0VSUiIsIGZ1bmN0aW9uKGV2dCwgZnJhZywgc3Rhc2gpCisg
ICAgdGVzdEZyYWdtZW50KG1ldGhvZCwgIkNvbnRpbnVhbGx5IHJlLWFwcGVuZGluZyByZW1vdmVk
IGVsZW1lbnQgdG8gdGhlIGZyYWdtZW50IHNob3VsZCBldmVudHVhbGx5IHRocm93IGEgVHlwZUVy
cm9yIiwgZnVuY3Rpb24oZXZ0LCBmcmFnLCBzdGFzaCkKICAgICB7CiAgICAgICAgIHN0YXNoLmlu
c2VydEJlZm9yZShmcmFnLmxhc3RDaGlsZCwgc3Rhc2guZmlyc3RDaGlsZCk7Ci0gICAgfSwgZXhw
ZWN0RXhjZXB0aW9uKDgpLCB0cnVlKTsKKyAgICB9LCBleHBlY3RUeXBlRXJyb3IoKSwgdHJ1ZSk7
CiAgICAgcHJpbnRMb2cobWV0aG9kTmFtZSk7CiB9CiBmdW5jdGlvbiBydW5UZXN0cygpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pbmNvbXBhdGlibGUtb3BlcmF0aW9ucy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pbmNvbXBhdGlibGUtb3BlcmF0aW9ucy1l
eHBlY3RlZC50eHQKaW5kZXggZDU3NjRjMWU1YWM2MjY0ZWUzYTRkZjViOTI0NWViZTE3N2Y2NTQ4
MC4uODVjY2Q1NDRmYzllOTlhNzhkYWEyNzc1NWEzM2ZjODgwYTdmZjBkNiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vaW5jb21wYXRpYmxlLW9wZXJhdGlvbnMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2luY29tcGF0aWJsZS1vcGVyYXRpb25zLWV4cGVj
dGVkLnR4dApAQCAtMyw5ICszLDkgQEAgVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2Yg
RE9NIG9wZXJhdGlvbnMgd2hlbiBjYWxsZWQgb24gbm9uLURPTSBvciBpbmNvbXAKIE9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIGFOb2RlLmFwcGVuZENoaWxkKGFET01JbXBsZW1l
bnRhdGlvbikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0
aW9uIDguCi1QQVNTIGFOb2RlLmFwcGVuZENoaWxkKCdrbm9ydCcpIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4LgotUEFTUyBhTm9kZS5hcHBlbmRD
aGlsZCh2b2lkIDApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4
Y2VwdGlvbiA4LgorUEFTUyBhTm9kZS5hcHBlbmRDaGlsZChhRE9NSW1wbGVtZW50YXRpb24pIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGFOb2RlLmFwcGVuZENo
aWxkKCdrbm9ydCcpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNT
IGFOb2RlLmFwcGVuZENoaWxkKHZvaWQgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlw
ZSBlcnJvci4KIFBBU1MgYU5vZGUuaXNTYW1lTm9kZShhRE9NSW1wbGVtZW50YXRpb24pIGlzIGZh
bHNlCiBQQVNTIGFOb2RlLmlzU2FtZU5vZGUoJ2ZvbycpIGlzIGZhbHNlCiBQQVNTIGFOb2RlLmlz
U2FtZU5vZGUodm9pZCAwKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vaW5jb21wYXRpYmxlLW9wZXJhdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2lu
Y29tcGF0aWJsZS1vcGVyYXRpb25zLmh0bWwKaW5kZXggMjFhYTcxYWZlOGUzZGVhYThjZThiMDRk
M2YzY2YyM2Q1ODI1NDIzMC4uMmYwZTRhZmU2Y2FjYmRjMmI4NTczNWU3NjYwZWU4ZjllNWQwMWIw
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vaW5jb21wYXRpYmxlLW9wZXJhdGlv
bnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pbmNvbXBhdGlibGUtb3BlcmF0aW9u
cy5odG1sCkBAIC0yOCwxMSArMjgsMTEgQEAgdmFyIGFOb2RlID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2Iik7CiB2YXIgYVNlY29uZE5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKIGFOb2RlLmFwcGVuZENoaWxkKGFTZWNvbmROb2RlKTsKIAotc2hvdWxkVGhyb3coImFO
b2RlLmFwcGVuZENoaWxkKGFET01JbXBsZW1lbnRhdGlvbikiLCAiJ0Vycm9yOiBOb3RGb3VuZEVy
cm9yOiBET00gRXhjZXB0aW9uIDgnIik7CitzaG91bGRUaHJvdygiYU5vZGUuYXBwZW5kQ2hpbGQo
YURPTUltcGxlbWVudGF0aW9uKSIsICInVHlwZUVycm9yOiBUeXBlIGVycm9yJyIpOwogCi1zaG91
bGRUaHJvdygiYU5vZGUuYXBwZW5kQ2hpbGQoJ2tub3J0JykiLCAiJ0Vycm9yOiBOb3RGb3VuZEVy
cm9yOiBET00gRXhjZXB0aW9uIDgnIik7CitzaG91bGRUaHJvdygiYU5vZGUuYXBwZW5kQ2hpbGQo
J2tub3J0JykiLCAiJ1R5cGVFcnJvcjogVHlwZSBlcnJvciciKTsKIAotc2hvdWxkVGhyb3coImFO
b2RlLmFwcGVuZENoaWxkKHZvaWQgMCkiLCAiJ0Vycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhj
ZXB0aW9uIDgnIik7CitzaG91bGRUaHJvdygiYU5vZGUuYXBwZW5kQ2hpbGQodm9pZCAwKSIsICIn
VHlwZUVycm9yOiBUeXBlIGVycm9yJyIpOwogCiBzaG91bGRCZUZhbHNlKCJhTm9kZS5pc1NhbWVO
b2RlKGFET01JbXBsZW1lbnRhdGlvbikiKTsKIHNob3VsZEJlRmFsc2UoImFOb2RlLmlzU2FtZU5v
ZGUoJ2ZvbycpIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9tb3ZlLW5vZGVz
LWFjcm9zcy1kb2N1bWVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL21vdmUtbm9kZXMt
YWNyb3NzLWRvY3VtZW50cy5odG1sCmluZGV4IGQzNTAxYTE3ZGI4NmM0ZWM4NjBmYjVmMTIyYzdk
NWNkYWU2ZjVhMzUuLjM4ODFmMDQ5OTIxYjEzZGQzZmI2NmZlNmQ3YTUyZWM3NGFmNjg1ODMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL21vdmUtbm9kZXMtYWNyb3NzLWRvY3VtZW50
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL21vdmUtbm9kZXMtYWNyb3NzLWRvY3Vt
ZW50cy5odG1sCkBAIC0xNzksNyArMTc5LDcgQEAgZnVuY3Rpb24gcnVuKCkKICAgICBydW5UZXN0
KGZ1bmN0aW9uKCkgewogICAgICAgICBpZnJhbWVEb2MuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuZG9j
dHlwZSk7CiAgICAgICAgIGNvbnNvbGUubG9nKGRvY3VtZW50LmRvY3R5cGUpOwotICAgIH0sICdO
b3RGb3VuZEVycm9yJyk7CisgICAgfSwgJ1R5cGVFcnJvcicpOwogCiAgICAgLy8gV2hlbiBzZXR0
aW5nIGEgYm91bmRhcnkgb2YgdGhlIHJhbmdlIGluIGEgZGlmZmVyZW50CiAgICAgLy8gZG9jdW1l
bnQsIHRoZSBjYWxsIHNob3VsZCBzdWNjZWVkIGFuZCB0aGUgcmFuZ2Ugc2hvdWxkIGJlIGNvbGxh
cHNlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb2Nlc3NpbmctaW5zdHJ1
Y3Rpb24tYXBwZW5kQ2hpbGQtZXhjZXB0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9wcm9jZXNzaW5nLWluc3RydWN0aW9uLWFwcGVuZENoaWxkLWV4Y2VwdGlvbnMtZXhw
ZWN0ZWQudHh0CmluZGV4IDdhMTM4NjhhN2IyZmZmYTZkMjY0MmFiNjIxNzIyN2IyZGFiOTJmYjku
LjBlM2JkZjIyNmUwYzVhNjU5MTcxMjA0NWMzNTU1ZDgzNmJjY2JiMmYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3Byb2Nlc3NpbmctaW5zdHJ1Y3Rpb24tYXBwZW5kQ2hpbGQtZXhj
ZXB0aW9ucy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvY2Vzc2lu
Zy1pbnN0cnVjdGlvbi1hcHBlbmRDaGlsZC1leGNlcHRpb25zLWV4cGVjdGVkLnR4dApAQCAtMyw3
ICszLDcgQEAgVGVzdCB0aGF0IGFwcHJvcHJpYXRlIGV4Y2VwdGlvbnMgYXJlIHRocm93biB3aGVu
IGFkZGluZyBjaGlsZHJlbiB0byBhIFByb2Nlc3NpbmcKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KIAogCi1QQVNTIHBpLmFwcGVuZENoaWxkKG51bGwpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
SGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMuCitQQVNTIHBpLmFwcGVuZENo
aWxkKG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNTIHBp
LmFwcGVuZENoaWxkKGRpdikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0
RXJyb3I6IERPTSBFeGNlcHRpb24gMy4KIFBBU1MgcGkuYXBwZW5kQ2hpbGQodGV4dE5vZGUpIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9u
IDMuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9wcm9jZXNzaW5nLWluc3RydWN0aW9uLWFwcGVuZENoaWxkLWV4Y2VwdGlv
bnMueGh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm9jZXNzaW5nLWluc3RydWN0aW9uLWFw
cGVuZENoaWxkLWV4Y2VwdGlvbnMueGh0bWwKaW5kZXggYjAwMjg5OWMyMzIwNjdmYzE3MzNmYTkx
ZWFmZTEzMTQyMmM0OTk2MC4uYzkwMmJhNGIzNTk4OTdkOTM4YmQ0OWY4MGJjNmYyMmMyMDE5MmZk
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvY2Vzc2luZy1pbnN0cnVjdGlv
bi1hcHBlbmRDaGlsZC1leGNlcHRpb25zLnhodG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3Byb2Nlc3NpbmctaW5zdHJ1Y3Rpb24tYXBwZW5kQ2hpbGQtZXhjZXB0aW9ucy54aHRtbApAQCAt
NSw3ICs1LDcgQEAKIDwhW0NEQVRBWwogZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBhcHByb3ByaWF0
ZSBleGNlcHRpb25zIGFyZSB0aHJvd24gd2hlbiBhZGRpbmcgY2hpbGRyZW4gdG8gYSBQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24uIik7CiB2YXIgcGkgPSBkb2N1bWVudC5jcmVhdGVQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24oJ3RhcmdldCcsICdkYXRhJyk7Ci1zaG91bGRUaHJvdygicGkuYXBwZW5kQ2hpbGQo
bnVsbCkiLCAiJ0Vycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyci
KTsKK3Nob3VsZFRocm93KCJwaS5hcHBlbmRDaGlsZChudWxsKSIsICInVHlwZUVycm9yOiBUeXBl
IGVycm9yJyIpOwogdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogc2hv
dWxkVGhyb3coInBpLmFwcGVuZENoaWxkKGRpdikiLCAiJ0Vycm9yOiBIaWVyYXJjaHlSZXF1ZXN0
RXJyb3I6IERPTSBFeGNlcHRpb24gMyciKTsKIHZhciB0ZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKCdzb21ldGV4dCcpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
dGltZXItY2xlYXItaW50ZXJ2YWwtaW4taGFuZGxlci1hbmQtZ2VuZXJhdGUtZXJyb3ItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vdGltZXItY2xlYXItaW50ZXJ2YWwtaW4taGFu
ZGxlci1hbmQtZ2VuZXJhdGUtZXJyb3ItZXhwZWN0ZWQudHh0CmluZGV4IDk5YWFjNmEwNWRjYWU4
ODYzMjY5YzY5YmI2ZGNiM2E5Mjk0YjY0NzcuLjVmMmZkNTE0MTcwMGM4MzMzNDg5YjUwZTFhM2Qy
MjJiMjY5NDI1YTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3RpbWVyLWNsZWFy
LWludGVydmFsLWluLWhhbmRsZXItYW5kLWdlbmVyYXRlLWVycm9yLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS90aW1lci1jbGVhci1pbnRlcnZhbC1pbi1oYW5kbGVyLWFu
ZC1nZW5lcmF0ZS1lcnJvci1leHBlY3RlZC50eHQKQEAgLTEsMiArMSwyIEBACi1DT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTA6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gODogQW4gYXR0ZW1w
dCB3YXMgbWFkZSB0byByZWZlcmVuY2UgYSBOb2RlIGluIGEgY29udGV4dCB3aGVyZSBpdCBkb2Vz
IG5vdCBleGlzdC4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMDogVHlwZUVycm9yOiBUeXBlIGVy
cm9yCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3JlbW92ZS10YXJnZXQt
d2l0aC1zaGFkb3ctaW4tZHJhZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9yZW1vdmUtdGFyZ2V0LXdpdGgtc2hhZG93LWluLWRyYWctZXhwZWN0ZWQudHh0CmluZGV4IDQ1
YzExOWZlOWIzMGNhZDJhNTBmMWRmZjhjMDE3MTE5MjA1YWZlN2EuLjEyODk2NGY1ZmE0YWFhODJl
Yzg5YWRmN2JkMjNlM2Y4MGVhMzliNjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3JlbW92ZS10YXJnZXQtd2l0aC1zaGFkb3ctaW4tZHJhZy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVtb3ZlLXRhcmdldC13aXRoLXNoYWRvdy1pbi1kcmFn
LWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzNDog
Tm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4OiBBbiBhdHRlbXB0IHdhcyBtYWRlIHRvIHJl
ZmVyZW5jZSBhIE5vZGUgaW4gYSBjb250ZXh0IHdoZXJlIGl0IGRvZXMgbm90IGV4aXN0LgotQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDM0OiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDg6IEFu
IGF0dGVtcHQgd2FzIG1hZGUgdG8gcmVmZXJlbmNlIGEgTm9kZSBpbiBhIGNvbnRleHQgd2hlcmUg
aXQgZG9lcyBub3QgZXhpc3QuCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMzQ6IFR5cGVFcnJvcjog
VHlwZSBlcnJvcgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM0OiBUeXBlRXJyb3I6IFR5cGUgZXJy
b3IKIFBBU1MuIERSVCBkaWRuJ3QgY3Jhc2guCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2luc3BlY3Rvci1zdXBwb3J0L3VuY2F1Z2h0LWRvbTgtZXhjZXB0aW9uLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2luc3BlY3Rvci1zdXBwb3J0L3VuY2F1Z2h0LWRvbTgtZXhjZXB0aW9uLmh0bWwK
aW5kZXggYmM2MDhmNGZhZTA0OTM3MDZjOWI3OWU1MTM3YmNmZTc4MzQyMjVkYi4uNWZhNGU1Yjhi
NjY2NjM5NDIyZDViNGFkOWE2N2ZlYTYyZDRlZTkwYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9pbnNwZWN0b3Itc3VwcG9ydC91bmNhdWdodC1kb204LWV4Y2VwdGlvbi5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvaW5zcGVjdG9yLXN1cHBvcnQvdW5jYXVnaHQtZG9tOC1leGNlcHRp
b24uaHRtbApAQCAtNiw3ICs2LDcgQEAgZnVuY3Rpb24gb25sb2FkKCkKIHsKICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIGRv
Y3VtZW50LmFwcGVuZENoaWxkKCk7CisgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVBdHRyaWJ1dGVO
b2RlKGRvY3VtZW50LmNyZWF0ZUF0dHJpYnV0ZSgiZG9lc05vdEV4aXN0IikpOwogfQogCiA8L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKaW5kZXgg
NjQ5NTFiNDdjNDU0ZWFkNjJkYjU1NGYxNDkwMmVhZjM1MjZmNzMxMy4uYWFmOGQ0MjdlODUxMDEw
MmYwYWY3ZjBiNTJjNjM3OTY0NmM2MTliYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaW50ZXJm
YWNlcy1leHBlY3RlZC50eHQKQEAgLTYzNCwyMSArNjM0LDE1IEBAIEZBSUwgTm9kZSBpbnRlcmZh
Y2U6IGNhbGxpbmcgaXNEZWZhdWx0TmFtZXNwYWNlKERPTVN0cmluZykgb24geG1sRG9jIHdpdGgg
dG9vIGZlCiAgICAgW25hdGl2ZSBjb2RlXQogfSIgZGlkIG5vdCB0aHJvdwogUEFTUyBOb2RlIGlu
dGVyZmFjZTogeG1sRG9jIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5zZXJ0QmVmb3JlIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAoNDApIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNl
cnRCZWZvcmUoTm9kZSxOb2RlKSBvbiB4bWxEb2Mgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0
IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBm
dW5jdGlvbiAiZnVuY3Rpb24gKCkgeworRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNl
cnRCZWZvcmUoTm9kZSxOb2RlKSBvbiB4bWxEb2Mgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0
IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAxIGFyZ3VtZW50cyBm
dW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVj
dCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9y
IikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK30iIHRocmV3IG9i
amVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhp
ZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVF
cnJvciIpCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiB4bWxEb2MgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJhcHBlbmRDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQxKSAKLUZBSUwgTm9kZSBpbnRl
cmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24geG1sRG9jIHdpdGggdG9vIGZldyBh
cmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGgg
MCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19
IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgi
Tm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIp
CitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIHhtbERv
YyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2Rl
IGludGVyZmFjZTogeG1sRG9jIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVwbGFjZUNoaWxkIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDIpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBy
ZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiB4bWxEb2Mgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBt
dXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50
cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIGRpZCBub3Qg
dGhyb3cKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9k
ZSkgb24geG1sRG9jIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3Ig
CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiB4bWxEb2MgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZW1v
dmVDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQzKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6
IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24geG1sRG9jIHdpdGggdG9vIGZldyBhcmd1bWVu
dHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1
bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJl
dyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91
bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNT
IE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIHhtbERvYyB3aXRo
IHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBFdmVudFRhcmdl
dCBpbnRlcmZhY2U6IHhtbERvYyBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFkZEV2ZW50TGlzdGVu
ZXIiIHdpdGggdGhlIHByb3BlciB0eXBlICgwKSAKIEZBSUwgRXZlbnRUYXJnZXQgaW50ZXJmYWNl
OiBjYWxsaW5nIGFkZEV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nLEV2ZW50TGlzdGVuZXIsYm9vbGVh
bikgb24geG1sRG9jIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3Ig
YXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9u
ICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCkBAIC03OTMsMjEgKzc4NywxNSBAQCBGQUlMIE5vZGUg
aW50ZXJmYWNlOiBjYWxsaW5nIGlzRGVmYXVsdE5hbWVzcGFjZShET01TdHJpbmcpIG9uIGRvY3Vt
ZW50LmNyZWF0ZURvYwogICAgIFtuYXRpdmUgY29kZV0KIH0iIGRpZCBub3QgdGhyb3cKIFBBU1Mg
Tm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgImluc2VydEJlZm9yZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQwKSAK
LUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24g
ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMg
bXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVu
dHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKK0ZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcg
aW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVu
dCgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Ro
cm93czogQ2FsbGVkIHdpdGggMSBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAg
ICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBE
T00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVy
cm9yIiAoIlR5cGVFcnJvciIpCit9IiBkaWQgbm90IHRocm93CiBQQVNTIE5vZGUgaW50ZXJmYWNl
OiBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJhcHBlbmRDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQxKSAKLUZBSUwgTm9kZSBpbnRl
cmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlRG9jdW1l
bnRGcmFnbWVudCgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3Ig
YXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9u
ICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3Vu
ZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVj
dCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5n
IGFwcGVuZENoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSB3
aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGlu
dGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAicmVwbGFjZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDIpIAotRkFJTCBO
b2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiBkb2N1bWVu
dC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRo
cm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5j
dGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIGRpZCBub3QgdGhyb3cK
K1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24g
ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMg
bXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVh
dGVEb2N1bWVudEZyYWdtZW50KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZW1vdmVDaGlsZCIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQzKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcg
cmVtb3ZlQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpIHdp
dGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czog
Q2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0
aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhj
ZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAo
IlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5v
ZGUpIG9uIGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSB3aXRoIHRvbyBmZXcgYXJn
dW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBFdmVudFRhcmdldCBpbnRlcmZhY2U6
IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
ImFkZEV2ZW50TGlzdGVuZXIiIHdpdGggdGhlIHByb3BlciB0eXBlICgwKSAKIEZBSUwgRXZlbnRU
YXJnZXQgaW50ZXJmYWNlOiBjYWxsaW5nIGFkZEV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nLEV2ZW50
TGlzdGVuZXIsYm9vbGVhbikgb24gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpIHdp
dGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czog
Q2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0
aXZlIGNvZGVdCkBAIC05MTUsMjEgKzkwMywxNSBAQCBGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxs
aW5nIGlzRGVmYXVsdE5hbWVzcGFjZShET01TdHJpbmcpIG9uIGRvY3VtZW50LmRvY3R5cGUgdwog
ICAgIFtuYXRpdmUgY29kZV0KIH0iIGRpZCBub3QgdGhyb3cKIFBBU1MgTm9kZSBpbnRlcmZhY2U6
IGRvY3VtZW50LmRvY3R5cGUgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJpbnNlcnRCZWZvcmUiIHdp
dGggdGhlIHByb3BlciB0eXBlICg0MCkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGlu
c2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmRvY3R5cGUgd2l0aCB0b28gZmV3IGFy
Z3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAw
IGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworRkFJTCBOb2RlIGludGVyZmFjZTog
Y2FsbGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5kb2N0eXBlIHdpdGgg
dG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2Fs
bGVkIHdpdGggMSBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZl
IGNvZGVdCiB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERP
TSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3Qg
IlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQu
ZG9jdHlwZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFwcGVuZENoaWxkIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAoNDEpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChO
b2RlKSBvbiBkb2N1bWVudC5kb2N0eXBlIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rp
b24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVy
cm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlS
ZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQor
UEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiBkb2N1bWVu
dC5kb2N0eXBlIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQ
QVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5kb2N0eXBlIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAicmVwbGFjZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDIpIAotRkFJTCBOb2RlIGlu
dGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5kb2N0
eXBlIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Ro
cm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAg
ICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0
RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3Rl
ZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTog
Y2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5kb2N0eXBlIHdpdGgg
dG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJm
YWNlOiBkb2N1bWVudC5kb2N0eXBlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVtb3ZlQ2hpbGQi
IHdpdGggdGhlIHByb3BlciB0eXBlICg0MykgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5n
IHJlbW92ZUNoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmRvY3R5cGUgd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFy
Z3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRo
cmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RG
b3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BB
U1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQu
ZG9jdHlwZSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFT
UyBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGRvY3VtZW50LmRvY3R5cGUgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJhZGRFdmVudExpc3RlbmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMCkgCiBGQUlM
IEV2ZW50VGFyZ2V0IGludGVyZmFjZTogY2FsbGluZyBhZGRFdmVudExpc3RlbmVyKERPTVN0cmlu
ZyxFdmVudExpc3RlbmVyLGJvb2xlYW4pIG9uIGRvY3VtZW50LmRvY3R5cGUgd2l0aCB0b28gZmV3
IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0
aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0K
QEAgLTExODcsMjEgKzExNjksMTUgQEAgRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpc0Rl
ZmF1bHROYW1lc3BhY2UoRE9NU3RyaW5nKSBvbiBlbGVtZW50IHdpdGggdG9vIGYKICAgICBbbmF0
aXZlIGNvZGVdCiB9IiBkaWQgbm90IHRocm93CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBlbGVtZW50
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5zZXJ0QmVmb3JlIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAoNDApIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZvcmUoTm9kZSxO
b2RlKSBvbiBlbGVtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJy
b3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0
aW9uICgpIHsKK0ZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUs
Tm9kZSkgb24gZWxlbWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVy
cm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDEgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5j
dGlvbiAoKSB7CiAgICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90
Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBv
YmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorfSIgZGlkIG5vdCB0aHJvdwogUEFTUyBO
b2RlIGludGVyZmFjZTogZWxlbWVudCBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFwcGVuZENoaWxk
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDEpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGlu
ZyBhcHBlbmRDaGlsZChOb2RlKSBvbiBlbGVtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVz
dCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMg
ZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmpl
Y3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJv
ciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUg
aW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGVsZW1lbnQgd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6
IGVsZW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZXBsYWNlQ2hpbGQiIHdpdGggdGhlIHBy
b3BlciB0eXBlICg0MikgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGls
ZChOb2RlLE5vZGUpIG9uIGVsZW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93
IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlv
biAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIGRpZCBub3QgdGhyb3cKK1BB
U1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24gZWxl
bWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBO
b2RlIGludGVyZmFjZTogZWxlbWVudCBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlbW92ZUNoaWxk
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDMpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGlu
ZyByZW1vdmVDaGlsZChOb2RlKSBvbiBlbGVtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVz
dCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMg
ZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmpl
Y3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJv
ciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUg
aW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIGVsZW1lbnQgd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgRXZlbnRUYXJnZXQgaW50
ZXJmYWNlOiBlbGVtZW50IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYWRkRXZlbnRMaXN0ZW5lciIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgKDApIAogRkFJTCBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGNh
bGxpbmcgYWRkRXZlbnRMaXN0ZW5lcihET01TdHJpbmcsRXZlbnRMaXN0ZW5lcixib29sZWFuKSBv
biBlbGVtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNz
ZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgp
IHsKICAgICBbbmF0aXZlIGNvZGVdCkBAIC0xNDA5LDIxICsxMzg1LDE1IEBAIEZBSUwgTm9kZSBp
bnRlcmZhY2U6IGNhbGxpbmcgaXNEZWZhdWx0TmFtZXNwYWNlKERPTVN0cmluZykgb24gZG9jdW1l
bnQuY3JlYXRlVGV4CiAgICAgW25hdGl2ZSBjb2RlXQogfSIgZGlkIG5vdCB0aHJvdwogUEFTUyBO
b2RlIGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoImFiYyIpIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAiaW5zZXJ0QmVmb3JlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDApIAotRkFJ
TCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBvbiBkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRo
cm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5j
dGlvbiAiZnVuY3Rpb24gKCkgeworRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRC
ZWZvcmUoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgd2l0aCB0
b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxs
ZWQgd2l0aCAxIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUg
Y29kZV0KIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9N
IEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAi
VHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZSgiYWJjIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhcHBlbmRDaGlsZCIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQxKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcg
YXBwZW5kQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoImFiYyIpIHdpdGgg
dG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2Fs
bGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZl
IGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERP
TSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3Qg
IlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyBh
cHBlbmRDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgd2l0aCB0
b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZh
Y2U6IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhYmMiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
InJlcGxhY2VDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQyKSAKLUZBSUwgTm9kZSBpbnRl
cmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUoImFiYyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJy
b3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0
aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVy
YXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJy
b3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2Rl
IGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZSgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5
cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJh
YmMiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlbW92ZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAoNDMpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2Rl
KSBvbiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50
cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3Vt
ZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3
IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3Vu
ZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1Mg
Tm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3Jl
YXRlVGV4dE5vZGUoImFiYyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBl
RXJyb3IgCiBQQVNTIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoImFiYyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYWRkRXZlbnRMaXN0ZW5lciIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgKDApIAogRkFJTCBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGNhbGxpbmcg
YWRkRXZlbnRMaXN0ZW5lcihET01TdHJpbmcsRXZlbnRMaXN0ZW5lcixib29sZWFuKSBvbiBkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRo
cm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5j
dGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KQEAgLTE1NDMsMjEgKzE1MTMs
MTUgQEAgRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpc0RlZmF1bHROYW1lc3BhY2UoRE9N
U3RyaW5nKSBvbiB4bWxEb2MuY3JlYXRlUHJvY2UKICAgICBbbmF0aXZlIGNvZGVdCiB9IiBkaWQg
bm90IHRocm93CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiB4bWxEb2MuY3JlYXRlUHJvY2Vzc2luZ0lu
c3RydWN0aW9uKCJhYmMiLCAiZGVmIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJpbnNlcnRCZWZv
cmUiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MCkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxs
aW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24oImFiYyIsICJkZWYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cg
VHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9u
ICJmdW5jdGlvbiAoKSB7CitGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9y
ZShOb2RlLE5vZGUpIG9uIHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oImFiYyIs
ICJkZWYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2Vy
dF90aHJvd3M6IENhbGxlZCB3aXRoIDEgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7
CiAgICAgW25hdGl2ZSBjb2RlXQogfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVx
dWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhw
ZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKIFBBU1MgTm9kZSBpbnRlcmZh
Y2U6IHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oImFiYyIsICJkZWYiKSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgImFwcGVuZENoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDEp
IAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiB4bWxE
b2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJhYmMiLCAiZGVmIikgd2l0aCB0b28gZmV3
IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0
aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0K
LX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2Vw
dGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVy
cm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENo
aWxkKE5vZGUpIG9uIHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oImFiYyIsICJk
ZWYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBO
b2RlIGludGVyZmFjZTogeG1sRG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiYWJjIiwg
ImRlZiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVwbGFjZUNoaWxkIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAoNDIpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQo
Tm9kZSxOb2RlKSBvbiB4bWxEb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJhYmMiLCAi
ZGVmIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRf
dGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewot
ICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVl
c3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVj
dGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNl
OiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIHhtbERvYy5jcmVhdGVQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24oImFiYyIsICJkZWYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3Qg
dGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGludGVyZmFjZTogeG1sRG9jLmNyZWF0ZVByb2Nl
c3NpbmdJbnN0cnVjdGlvbigiYWJjIiwgImRlZiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVt
b3ZlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MykgCi1GQUlMIE5vZGUgaW50ZXJmYWNl
OiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24oImFiYyIsICJkZWYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cg
VHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9u
ICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJv
cjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBl
Y3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFj
ZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiB4bWxEb2MuY3JlYXRlUHJvY2Vzc2luZ0lu
c3RydWN0aW9uKCJhYmMiLCAiZGVmIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93
IFR5cGVFcnJvciAKIFBBU1MgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiB4bWxEb2MuY3JlYXRlUHJv
Y2Vzc2luZ0luc3RydWN0aW9uKCJhYmMiLCAiZGVmIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJh
ZGRFdmVudExpc3RlbmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMCkgCiBGQUlMIEV2ZW50VGFy
Z2V0IGludGVyZmFjZTogY2FsbGluZyBhZGRFdmVudExpc3RlbmVyKERPTVN0cmluZyxFdmVudExp
c3RlbmVyLGJvb2xlYW4pIG9uIHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oImFi
YyIsICJkZWYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFz
c2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAo
KSB7CiAgICAgW25hdGl2ZSBjb2RlXQpAQCAtMTY3MywyMSArMTYzNywxNSBAQCBGQUlMIE5vZGUg
aW50ZXJmYWNlOiBjYWxsaW5nIGlzRGVmYXVsdE5hbWVzcGFjZShET01TdHJpbmcpIG9uIGRvY3Vt
ZW50LmNyZWF0ZUNvbQogICAgIFtuYXRpdmUgY29kZV0KIH0iIGRpZCBub3QgdGhyb3cKIFBBU1Mg
Tm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIpIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAiaW5zZXJ0QmVmb3JlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDApIAotRkFJ
TCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBvbiBkb2N1
bWVudC5jcmVhdGVDb21tZW50KCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhy
b3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0
aW9uICJmdW5jdGlvbiAoKSB7CitGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJl
Zm9yZShOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIpIHdpdGggdG9v
IGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVk
IHdpdGggMSBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNv
ZGVdCiB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBF
eGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5
cGVFcnJvciIgKCJUeXBlRXJyb3IiKQogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuY3Jl
YXRlQ29tbWVudCgiYWJjIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhcHBlbmRDaGlsZCIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgKDQxKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBw
ZW5kQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiYWJjIikgd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQg
d2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29k
ZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4
Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlw
ZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVu
ZENoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIpIHdpdGggdG9vIGZl
dyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBk
b2N1bWVudC5jcmVhdGVDb21tZW50KCJhYmMiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlcGxh
Y2VDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQyKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6
IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlQ29tbWVu
dCgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3Nl
cnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkg
ewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJl
cXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4
cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJm
YWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUNv
bW1lbnQoImFiYyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3Ig
CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVDb21tZW50KCJhYmMiKSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgInJlbW92ZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDMp
IAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiBkb2N1
bWVudC5jcmVhdGVDb21tZW50KCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhy
b3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0
aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJF
cnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBl
eHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVy
ZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVDb21tZW50
KCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFT
UyBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIpIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYWRkRXZlbnRMaXN0ZW5lciIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgKDApIAogRkFJTCBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGNhbGxpbmcgYWRkRXZlbnRMaXN0
ZW5lcihET01TdHJpbmcsRXZlbnRMaXN0ZW5lcixib29sZWFuKSBvbiBkb2N1bWVudC5jcmVhdGVD
b21tZW50KCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9y
IGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlv
biAoKSB7CiAgICAgW25hdGl2ZSBjb2RlXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1hcHBlbmRDaGlsZC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Rv
bS9ub2Rlcy9Ob2RlLWFwcGVuZENoaWxkLWV4cGVjdGVkLnR4dAppbmRleCAzYTI4OWU4MzJlNmEy
ZDk0ODkwYzAyNGE1NjE0OTY4YzAxNDU5M2JkLi5iMTMwY2FmZmQ4NDgyNzY0ZjcwYzM0MDNlNGYw
ODAyODlhMmE5MGUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLWFwcGVuZENoaWxkLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9O
b2RlLWFwcGVuZENoaWxkLWV4cGVjdGVkLnR4dApAQCAtMSwxMiArMSwxMiBAQAogCiAKLUZBSUwg
V2ViSURMIHRlc3RzIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQobnVsbCkgfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91
bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmpl
Y3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBXZWJJREwgdGVzdHMgCiBQQVNTIEFw
cGVuZGluZyB0byBhIGxlYWYgbm9kZS4gCi1GQUlMIEFwcGVuZGluZyBudWxsIHRvIGEgdGV4dCBu
b2RlIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IG5vZGUuYXBwZW5kQ2hp
bGQobnVsbCkgfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBE
T00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0
ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgQXBwZW5kaW5nIG51bGwgdG8gYSB0ZXh0
IG5vZGUgCiBQQVNTIEFwcGVuZGluZyB0byBhIHRleHQgbm9kZSAKLUZBSUwgQXBwZW5kaW5nIG51
bGwgdG8gYSBjb21tZW50IGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IG5v
ZGUuYXBwZW5kQ2hpbGQobnVsbCkgfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVx
dWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhw
ZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgQXBwZW5kaW5nIG51
bGwgdG8gYSBjb21tZW50IAogUEFTUyBBcHBlbmRpbmcgdG8gYSBjb21tZW50IAotRkFJTCBBcHBl
bmRpbmcgbnVsbCB0byBhIGRvY3R5cGUgYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gImZ1bmN0aW9u
ICgpIHsgbm9kZS5hcHBlbmRDaGlsZChudWxsKSB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVy
YXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJy
b3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBBcHBl
bmRpbmcgbnVsbCB0byBhIGRvY3R5cGUgCiBQQVNTIEFwcGVuZGluZyB0byBhIGRvY3R5cGUgCiBQ
QVNTIEFwcGVuZGluZyBhIGRvY3VtZW50IAogUEFTUyBBZG9wdGluZyBhbiBvcnBoYW4gCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9u
b2Rlcy9Ob2RlLWluc2VydEJlZm9yZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLWluc2VydEJlZm9yZS1leHBl
Y3RlZC50eHQKaW5kZXggNTZiY2QyYTgwYmIzNGQzN2FjMDg0Zjc3NDE2NGYwMWNmYmU5NGE3OC4u
YzY2MjIzM2RjMDU2Mzg1N2YyM2I2MDY5MDM0YWM4Zjc1YjhjZWE2YyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1p
bnNlcnRCZWZvcmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtaW5zZXJ0QmVmb3JlLWV4cGVjdGVkLnR4
dApAQCAtMSwxMiArMSwxMiBAQAogCi1GQUlMIENhbGxpbmcgaW5zZXJ0QmVmb3JlIHdpdGggYSBu
b24tTm9kZSBmaXJzdCBhcmd1bWVudCBtdXN0IHRocm93IFR5cGVFcnJvci4gYXNzZXJ0X3Rocm93
czogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUobnVs
bCwgbnVsbCkgfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2Vw
dGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJU
eXBlRXJyb3IiKQotRkFJTCBDYWxsaW5nIGluc2VydEJlZm9yZSB3aXRoIGEgbm9uLU5vZGUgZmly
c3QgYXJndW1lbnQgb24gYSBsZWFmIG5vZGUgRG9jdW1lbnRUeXBlIG11c3QgdGhyb3cgVHlwZUVy
cm9yLiBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyBub2RlLmluc2VydEJl
Zm9yZShudWxsLCBudWxsKSB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0
RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3Rl
ZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBDYWxsaW5nIGluc2VydEJl
Zm9yZSB3aXRoIGEgbm9uLU5vZGUgZmlyc3QgYXJndW1lbnQgbXVzdCB0aHJvdyBUeXBlRXJyb3Iu
IAorUEFTUyBDYWxsaW5nIGluc2VydEJlZm9yZSB3aXRoIGEgbm9uLU5vZGUgZmlyc3QgYXJndW1l
bnQgb24gYSBsZWFmIG5vZGUgRG9jdW1lbnRUeXBlIG11c3QgdGhyb3cgVHlwZUVycm9yLiAKIFBB
U1MgQ2FsbGluZyBpbnNlcnRCZWZvcmUgYW4gYSBsZWFmIG5vZGUgRG9jdW1lbnRUeXBlIG11c3Qg
dGhyb3cgSElFUkFSQ0hZX1JFUVVFU1RfRVJSLiAKLUZBSUwgQ2FsbGluZyBpbnNlcnRCZWZvcmUg
d2l0aCBhIG5vbi1Ob2RlIGZpcnN0IGFyZ3VtZW50IG9uIGEgbGVhZiBub2RlIFRleHQgbXVzdCB0
aHJvdyBUeXBlRXJyb3IuIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IG5v
ZGUuaW5zZXJ0QmVmb3JlKG51bGwsIG51bGwpIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJh
cmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJv
ciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIENhbGxp
bmcgaW5zZXJ0QmVmb3JlIHdpdGggYSBub24tTm9kZSBmaXJzdCBhcmd1bWVudCBvbiBhIGxlYWYg
bm9kZSBUZXh0IG11c3QgdGhyb3cgVHlwZUVycm9yLiAKIFBBU1MgQ2FsbGluZyBpbnNlcnRCZWZv
cmUgYW4gYSBsZWFmIG5vZGUgVGV4dCBtdXN0IHRocm93IEhJRVJBUkNIWV9SRVFVRVNUX0VSUi4g
Ci1GQUlMIENhbGxpbmcgaW5zZXJ0QmVmb3JlIHdpdGggYSBub24tTm9kZSBmaXJzdCBhcmd1bWVu
dCBvbiBhIGxlYWYgbm9kZSBDb21tZW50IG11c3QgdGhyb3cgVHlwZUVycm9yLiBhc3NlcnRfdGhy
b3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyBub2RlLmluc2VydEJlZm9yZShudWxsLCBudWxs
KSB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNl
cHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVF
cnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBDYWxsaW5nIGluc2VydEJlZm9yZSB3aXRoIGEgbm9u
LU5vZGUgZmlyc3QgYXJndW1lbnQgb24gYSBsZWFmIG5vZGUgQ29tbWVudCBtdXN0IHRocm93IFR5
cGVFcnJvci4gCiBQQVNTIENhbGxpbmcgaW5zZXJ0QmVmb3JlIGFuIGEgbGVhZiBub2RlIENvbW1l
bnQgbXVzdCB0aHJvdyBISUVSQVJDSFlfUkVRVUVTVF9FUlIuIAotRkFJTCBDYWxsaW5nIGluc2Vy
dEJlZm9yZSB3aXRoIGEgbm9uLU5vZGUgZmlyc3QgYXJndW1lbnQgb24gYSBsZWFmIG5vZGUgUHJv
Y2Vzc2luZ0luc3RydWN0aW9uIG11c3QgdGhyb3cgVHlwZUVycm9yLiBhc3NlcnRfdGhyb3dzOiBm
dW5jdGlvbiAiZnVuY3Rpb24gKCkgeyBub2RlLmluc2VydEJlZm9yZShudWxsLCBudWxsKSB9IiB0
aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24g
MyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIg
KCJUeXBlRXJyb3IiKQorUEFTUyBDYWxsaW5nIGluc2VydEJlZm9yZSB3aXRoIGEgbm9uLU5vZGUg
Zmlyc3QgYXJndW1lbnQgb24gYSBsZWFmIG5vZGUgUHJvY2Vzc2luZ0luc3RydWN0aW9uIG11c3Qg
dGhyb3cgVHlwZUVycm9yLiAKIFBBU1MgQ2FsbGluZyBpbnNlcnRCZWZvcmUgYW4gYSBsZWFmIG5v
ZGUgUHJvY2Vzc2luZ0luc3RydWN0aW9uIG11c3QgdGhyb3cgSElFUkFSQ0hZX1JFUVVFU1RfRVJS
LiAKIFBBU1MgQ2FsbGluZyBpbnNlcnRCZWZvcmUgd2l0aCBhbiBpbmNsdXNpdmUgYW5jZXN0b3Ig
b2YgdGhlIGNvbnRleHQgb2JqZWN0IG11c3QgdGhyb3cgSElFUkFSQ0hZX1JFUVVFU1RfRVJSLiAK
IFBBU1MgQ2FsbGluZyBpbnNlcnRCZWZvcmUgd2l0aCBhIHJlZmVyZW5jZSBjaGlsZCB3aG9zZSBw
YXJlbnQgaXMgbm90IHRoZSBjb250ZXh0IG5vZGUgbXVzdCB0aHJvdyBhIE5vdEZvdW5kRXJyb3Iu
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9kb20vbm9kZXMvTm9kZS1yZW1vdmVDaGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLXJlbW92ZUNoaWxk
LWV4cGVjdGVkLnR4dAppbmRleCAwMjkxMGJmOWNkMjQwYTBjZGQ4M2NmMTM3NjBjNDU2MGRmZDk0
M2EyLi4xMzk3YzRlYmVmNmM5NzhlMTAzYWIzMWEzODE2ZjkyZGVkYzNlZjU5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9O
b2RlLXJlbW92ZUNoaWxkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLXJlbW92ZUNoaWxkLWV4cGVjdGVk
LnR4dApAQCAtMjcsNSArMjcsNSBAQCBQQVNTIENhbGxpbmcgcmVtb3ZlQ2hpbGQgb24gYSB0ZXh0
IGZyb20gYSBzeW50aGV0aWMgZG9jdW1lbnQgd2l0aCBubyBjaGlsZHJlbiBzaAogUEFTUyBQYXNz
aW5nIGEgZGV0YWNoZWQgY29tbWVudCBmcm9tIGEgc3ludGhldGljIGRvY3VtZW50IHRvIHJlbW92
ZUNoaWxkIHNob3VsZCBub3QgYWZmZWN0IGl0LiAKIFBBU1MgUGFzc2luZyBhIG5vbi1kZXRhY2hl
ZCBjb21tZW50IGZyb20gYSBzeW50aGV0aWMgZG9jdW1lbnQgdG8gcmVtb3ZlQ2hpbGQgc2hvdWxk
IG5vdCBhZmZlY3QgaXQuIAogUEFTUyBDYWxsaW5nIHJlbW92ZUNoaWxkIG9uIGEgY29tbWVudCBm
cm9tIGEgc3ludGhldGljIGRvY3VtZW50IHdpdGggbm8gY2hpbGRyZW4gc2hvdWxkIHRocm93IE5P
VF9GT1VORF9FUlIuIAotRkFJTCBQYXNzaW5nIGEgdmFsdWUgdGhhdCBpcyBub3QgYSBOb2RlIHJl
ZmVyZW5jZSB0byByZW1vdmVDaGlsZCBzaG91bGQgdGhyb3cgVHlwZUVycm9yLiBhc3NlcnRfdGhy
b3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKG51
bGwpIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24g
OCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVy
cm9yIikKK1BBU1MgUGFzc2luZyBhIHZhbHVlIHRoYXQgaXMgbm90IGEgTm9kZSByZWZlcmVuY2Ug
dG8gcmVtb3ZlQ2hpbGQgc2hvdWxkIHRocm93IFR5cGVFcnJvci4gCiBiCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2Rl
LXJlcGxhY2VDaGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLXJlcGxhY2VDaGlsZC1leHBlY3RlZC50eHQK
aW5kZXggZTdmNzBmYTM2YzVjMWNiZjkyYzdlNGI3YTQ5ZmJmOGFkY2JjNGY2ZC4uZDE3YzhiNTcw
ZWIxMjFlOTY3MzZhOWM2OTRmYjI1ZjE4MWFhZmNjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1yZXBsYWNlQ2hp
bGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZG9tL25vZGVzL05vZGUtcmVwbGFjZUNoaWxkLWV4cGVjdGVkLnR4dApAQCAtMSw3
ICsxLDUgQEAKIAotRkFJTCBQYXNzaW5nIG51bGwgdG8gcmVwbGFjZUNoaWxkIHNob3VsZCB0aHJv
dyBhIFR5cGVFcnJvci4gYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAg
ICBhLnJlcGxhY2VDaGlsZChudWxsLCBudWxsKTsKLSAgfSIgZGlkIG5vdCB0aHJvdworUEFTUyBQ
YXNzaW5nIG51bGwgdG8gcmVwbGFjZUNoaWxkIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvci4gCiBG
QUlMIElmIGNoaWxkJ3MgcGFyZW50IGlzIG5vdCB0aGUgY29udGV4dCBub2RlLCBhIE5vdEZvdW5k
RXJyb3IgZXhjZXB0aW9uIHNob3VsZCBiZSB0aHJvd24gYXNzZXJ0X3Rocm93czogZnVuY3Rpb24g
ImZ1bmN0aW9uICgpIHsKICAgICBhLnJlcGxhY2VDaGlsZChhLCBjKTsKICAgfSIgdGhyZXcgb2Jq
ZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiIHRoYXQg
aXMgbm90IGEgRE9NRXhjZXB0aW9uIE5vdEZvdW5kRXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBl
cXVhbCB0byAzLCBleHBlY3RlZCA4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9pbnRl
cmZhY2VzLWV4cGVjdGVkLnR4dAppbmRleCBmMmNjNDAzYzNlYWViNmVhODgwYTdmOWI3ZWZhM2Uy
MDI1MzU4MDcwLi4xMTU5ZDc0NWM5ZjZhNWEyYjJmNjE1NDRmMWMxOWFkNDBkNzc2N2MzIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
ZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKQEAg
LTEyMjUsMjEgKzEyMjUsMTUgQEAgRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpc0RlZmF1
bHROYW1lc3BhY2UoRE9NU3RyaW5nKSBvbiBpZnJhbWUuY29udGVudERvY3UKICAgICBbbmF0aXZl
IGNvZGVdCiB9IiBkaWQgbm90IHRocm93CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBpZnJhbWUuY29u
dGVudERvY3VtZW50IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5zZXJ0QmVmb3JlIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAoNDApIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRC
ZWZvcmUoTm9kZSxOb2RlKSBvbiBpZnJhbWUuY29udGVudERvY3VtZW50IHdpdGggdG9vIGZldyBh
cmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGgg
MCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKK0ZBSUwgTm9kZSBpbnRlcmZhY2U6
IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24gaWZyYW1lLmNvbnRlbnREb2N1bWVu
dCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJv
d3M6IENhbGxlZCB3aXRoIDEgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAgICAg
W25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9N
IEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJv
ciIgKCJUeXBlRXJyb3IiKQorfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVz
dEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0
ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKIFBBU1MgTm9kZSBpbnRlcmZhY2U6
IGlmcmFtZS5jb250ZW50RG9jdW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhcHBlbmRDaGls
ZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQxKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxp
bmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24gaWZyYW1lLmNvbnRlbnREb2N1bWVudCB3aXRoIHRvbyBm
ZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3
aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2Rl
XQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4
IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJy
b3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiBp
ZnJhbWUuY29udGVudERvY3VtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBU
eXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBpZnJhbWUuY29udGVudERvY3VtZW50IG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVwbGFjZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAo
NDIpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2Rl
KSBvbiBpZnJhbWUuY29udGVudERvY3VtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0
aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVu
Y3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiBkaWQgbm90IHRocm93
CitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9u
IGlmcmFtZS5jb250ZW50RG9jdW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93
IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGlmcmFtZS5jb250ZW50RG9jdW1lbnQg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZW1vdmVDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
KDQzKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24g
aWZyYW1lLmNvbnRlbnREb2N1bWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cg
VHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9u
ICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJv
cjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBl
Y3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFj
ZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiBpZnJhbWUuY29udGVudERvY3VtZW50IHdp
dGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIEV2ZW50VGFy
Z2V0IGludGVyZmFjZTogaWZyYW1lLmNvbnRlbnREb2N1bWVudCBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgImFkZEV2ZW50TGlzdGVuZXIiIHdpdGggdGhlIHByb3BlciB0eXBlICgwKSAKIEZBSUwgRXZl
bnRUYXJnZXQgaW50ZXJmYWNlOiBjYWxsaW5nIGFkZEV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nLEV2
ZW50TGlzdGVuZXIsYm9vbGVhbikgb24gaWZyYW1lLmNvbnRlbnREb2N1bWVudCB3aXRoIHRvbyBm
ZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3
aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAgICAgW25hdGl2ZSBjb2Rl
XQpAQCAtMTU1MSwyMSArMTU0NSwxNSBAQCBGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGlz
RGVmYXVsdE5hbWVzcGFjZShET01TdHJpbmcpIG9uIGRvY3VtZW50LmltcGxlbWVudAogICAgIFtu
YXRpdmUgY29kZV0KIH0iIGRpZCBub3QgdGhyb3cKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3Vt
ZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgImluc2VydEJlZm9yZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQwKSAK
LUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24g
ZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwgIiIsIG51bGwpIHdp
dGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czog
Q2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKK0ZBSUwgTm9k
ZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQu
aW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwgIiIsIG51bGwpIHdpdGggdG9vIGZl
dyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdp
dGggMSBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVd
Ci19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgi
ICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJv
ciIpCit9IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBF
eGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5
cGVFcnJvciIgKCJUeXBlRXJyb3IiKQogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuaW1w
bGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwgIiIsIG51bGwpIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAiYXBwZW5kQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MSkgCi1GQUlMIE5v
ZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmltcGxl
bWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSB3aXRoIHRvbyBmZXcgYXJn
dW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAg
YXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIg
dGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5v
dEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQor
UEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiBkb2N1bWVu
dC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudChudWxsLCAiIiwgbnVsbCkgd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6
IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgInJlcGxhY2VDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
KDQyKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9k
ZSkgb24gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwgIiIsIG51
bGwpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Ro
cm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAg
ICBbbmF0aXZlIGNvZGVdCi19IiBkaWQgbm90IHRocm93CitQQVNTIE5vZGUgaW50ZXJmYWNlOiBj
YWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmltcGxlbWVudGF0aW9u
LmNyZWF0ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11
c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuaW1wbGVt
ZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwgIiIsIG51bGwpIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAicmVtb3ZlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MykgCi1GQUlMIE5vZGUg
aW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmltcGxlbWVu
dGF0aW9uLmNyZWF0ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSB3aXRoIHRvbyBmZXcgYXJndW1l
bnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJn
dW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhy
ZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZv
dW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFT
UyBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5p
bXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudChudWxsLCAiIiwgbnVsbCkgd2l0aCB0b28gZmV3
IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgRXZlbnRUYXJnZXQgaW50ZXJm
YWNlOiBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudChudWxsLCAiIiwgbnVs
bCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhZGRFdmVudExpc3RlbmVyIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAoMCkgCiBGQUlMIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogY2FsbGluZyBhZGRFdmVu
dExpc3RlbmVyKERPTVN0cmluZyxFdmVudExpc3RlbmVyLGJvb2xlYW4pIG9uIGRvY3VtZW50Lmlt
cGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSB3aXRoIHRvbyBmZXcg
YXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRo
IDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAgICAgW25hdGl2ZSBjb2RlXQpA
QCAtMjE3MSwyMSArMjE1OSwxNSBAQCBGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGlzRGVm
YXVsdE5hbWVzcGFjZShET01TdHJpbmcpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZQogICAgIFtuYXRp
dmUgY29kZV0KIH0iIGRpZCBub3QgdGhyb3cKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoIm5vc2NyaXB0IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJpbnNlcnRC
ZWZvcmUiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MCkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBj
YWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
Im5vc2NyaXB0Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBh
c3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24g
KCkgeworRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2Rl
KSBvbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJub3NjcmlwdCIpIHdpdGggdG9vIGZldyBhcmd1
bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMSBh
cmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCi19IiB0
aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90
Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCit9
IiBkaWQgbm90IHRocm93CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJub3NjcmlwdCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXBwZW5kQ2hpbGQiIHdpdGgg
dGhlIHByb3BlciB0eXBlICg0MSkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVu
ZENoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm5vc2NyaXB0Iikgd2l0aCB0
b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxs
ZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUg
Y29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRp
b24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlw
ZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkg
b24gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibm9zY3JpcHQiKSB3aXRoIHRvbyBmZXcgYXJndW1l
bnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgibm9zY3JpcHQiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlcGxhY2VD
aGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQyKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNh
bGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
bm9zY3JpcHQiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFz
c2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAo
KSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgZGlkIG5vdCB0aHJvdworUEFTUyBOb2RlIGludGVy
ZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJub3NjcmlwdCIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBl
RXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJub3Nj
cmlwdCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVtb3ZlQ2hpbGQiIHdpdGggdGhlIHByb3Bl
ciB0eXBlICg0MykgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5v
ZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm5vc2NyaXB0Iikgd2l0aCB0b28gZmV3IGFy
Z3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAw
IGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0i
IHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJO
b3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikK
K1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgibm9zY3JpcHQiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3Qg
dGhyb3cgVHlwZUVycm9yIAogUEFTUyBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoIm5vc2NyaXB0IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhZGRFdmVudExp
c3RlbmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMCkgCiBGQUlMIEV2ZW50VGFyZ2V0IGludGVy
ZmFjZTogY2FsbGluZyBhZGRFdmVudExpc3RlbmVyKERPTVN0cmluZyxFdmVudExpc3RlbmVyLGJv
b2xlYW4pIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm5vc2NyaXB0Iikgd2l0aCB0b28gZmV3
IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0
aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9kb3Qtbm9kZS1iYXNlLWV4Y2VwdGlvbi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vZG90LW5vZGUtYmFzZS1leGNlcHRpb24t
ZXhwZWN0ZWQudHh0CmluZGV4IGY0NDA2Y2JmZWQzNjFkNjdiOWM1NmU3NWIxOWUxODMyOGFiM2Jj
ZDIuLjM2ZDUzYjRlYjgxNWExYWQzYjgwY2RjNzdmMTAwODljMzI3MDMwMGYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2pzL2RvbS9kb3Qtbm9kZS1iYXNlLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL2RvdC1ub2RlLWJhc2UtZXhjZXB0aW9uLWV4cGVjdGVk
LnR4dApAQCAtMyw3ICszLDcgQEAgVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IGEgY29ycmVjdCBleGNl
cHRpb24gaXMgcmFpc2VkIHdoZW4gY2FsY3VsYXRpbmcgdGhlIGJhc2UgdmEKIE9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIChkb2N1bWVudC5hcHBlbmRDaGlsZCgpKS5mb29iYXIo
KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOC4K
K1BBU1MgKGRvY3VtZW50LmFwcGVuZENoaWxkKCkpLmZvb2JhcigpIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAK
IFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVz
dHMvZG90LW5vZGUtYmFzZS1leGNlcHRpb24uanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0
LXRlc3RzL2RvdC1ub2RlLWJhc2UtZXhjZXB0aW9uLmpzCmluZGV4IDlmMzYyYTdmNzg4MTdiY2I4
ZmM3Yzg3ZWQyNmM2M2NmMmE3OGExOTUuLjcxZDQ3MTk5OTc1NjU4NDMyOWI4ZGRjZDc0N2M3Nzcx
ZTQ0MDc1MWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvZG90
LW5vZGUtYmFzZS1leGNlcHRpb24uanMKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10
ZXN0cy9kb3Qtbm9kZS1iYXNlLWV4Y2VwdGlvbi5qcwpAQCAtMyw0ICszLDQgQEAgZGVzY3JpcHRp
b24oCiApOwogCiAvLyBTaG91bGQgYmUgYSBET00gZXhjZXB0aW9uLCBub3QganVzdCBzb21lICJU
eXBlRXJyb3I6IE51bGwgdmFsdWUiLgotc2hvdWxkVGhyb3coJyhkb2N1bWVudC5hcHBlbmRDaGls
ZCgpKS5mb29iYXIoKScsICciRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIn
KTsKK3Nob3VsZFRocm93KCcoZG9jdW1lbnQuYXBwZW5kQ2hpbGQoKSkuZm9vYmFyKCknLCAnIlR5
cGVFcnJvcjogVHlwZSBlcnJvciInKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260930</attachid>
            <date>2015-09-10 09:25:01 -0700</date>
            <delta_ts>2015-09-10 09:44:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148971-20150910092454.patch</filename>
            <type>text/plain</type>
            <size>253272</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTlmOWI0MDdkNDVjOWIz
Y2Q0MzU5Y2Y0OTYzNTc3ZjVkNzc1OTFmMS4uNmMyOGM5Yjg0Mzc0NzUxZDgxMzhiMDRhYjQ5ZDYz
ZGJmOWQwZTgxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE1LTA5LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTm9kZS5hcHBlbmRDaGlsZChu
dWxsKSAvIHJlcGxhY2VDaGlsZChudWxsLCBudWxsKSAvIHJlbW92ZUNoaWxkKG51bGwpIC8gaW5z
ZXJ0QmVmb3JlKG51bGwsIHJlZikgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg5NzEKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzIyNTYwODgzPgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjI1NTkyMjU+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIE5vZGUuYXBw
ZW5kQ2hpbGQobnVsbCkgLyByZXBsYWNlQ2hpbGQobnVsbCwgbnVsbCkgLyByZW1vdmVDaGlsZChu
dWxsKQorICAgICAgICBhbmQgaW5zZXJ0QmVmb3JlKG51bGwsIHJlZikgc2hvdWxkIHRocm93IGEg
VHlwZUVycm9yIGluc3RlYWQgb2YgYQorICAgICAgICBOb3RGb3VuZEVycm9yLCBhcyBwZXIgdGhl
IHNwZWNpZmljYXRpb246CisgICAgICAgIGh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jbm9k
ZQorCisgICAgICAgIFRoZSBwYXJhbWV0ZXJzIGFyZSBub3QgbnVsbGFibGUgc28gdGhlIFdlYiBJ
REwgc3BlY2lmaWNhdGlvbiBzYXlzCisgICAgICAgIHdlIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJv
ciBpbiB0aGlzIGNhc2UuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtb3ZlcyB0aGUgbnVsbC1jaGVj
a2luZyBmcm9tIENvbnRhaW5lck5vZGUgdG8gdGhlIG1ldGhvZHMKKyAgICAgICAgb24gTm9kZS4g
VGhlIG51bGwtY2hlY2tpbmcgaXMgc3VwcG9zZWQgdG8gYmUgZG9uZSBieSB0aGUgYmluZGluZ3Mg
Y29kZQorICAgICAgICBidXQgb3VyIGdlbmVyYXRvciBjdXJyZW50bHkgZG9lcyBub3Qgc3VwcG9y
dCB0aGlzIHNvIHdlIGRvIHRoZSBudWxsCisgICAgICAgIGNoZWNraW5nIGFzIGNsb3NlIHRvIHRo
ZSBiaW5kaW5ncyBhcyBwb3NzaWJsZS4gVGhlIGJpbmRpbmdzIGNvZGUgaXMKKyAgICAgICAgY2Fs
bGluZyB0aGUgbWV0aG9kcyBvbiBOb2RlLiBUaGlzIGFsc28gbWFrZXMgc3VyZSB3ZSB0aHJvdyBh
IFR5cGVFcnJvcgorICAgICAgICBmb3IgbnVsbC1hcmd1bWVudCB3aGVuIHRoZSBOb2RlIGlzIG5v
dCBhIENvbnRhaW5lck5vZGUuIEZvciBlLmcuCisgICAgICAgIFRleHQuYXBwZW5kQ2hpbGQobnVs
bCkgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yIHRvby4KKworICAgICAgICBUaGUgbWV0aG9kcyBv
biBDb250YWluZXJOb2RlIG5vdyB0YWtlIHJlZmVyZW5jZXMgaW5zdGVhYWQgb2YgcG9pbnRlcgor
ICAgICAgICBwYXJhbWV0ZXJzIG5vdyB0aGF0IHRoZSBudWxsLWNoZWNraW5nIGlzIGRvbmUgYXQg
dGhlIGNhbGwgc2l0ZSBpbgorICAgICAgICBOb2RlLiBUaGlzIGxlYWQgdG8gYSBsb3Qgb2YgY29k
ZSB1cGRhdGUgYXMgdGhvc2UgbWV0aG9kcyBhcmUgdXNlZAorICAgICAgICBhIGxvdCB0aHJvdWdo
b3V0IHRoZSBjb2RlIGJhc2UuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBhbHJlYWR5IGNvdmVy
ZWQgYnkgcHJlLWV4aXN0aW5nIGxheW91dCB0ZXN0cy4KKwogMjAxNS0wOS0wOSAgR3l1eW91bmcg
S2ltICA8Z3l1eW91bmcua2ltQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIGFsbCB1c2Vz
IG9mIFBhc3NSZWZQdHIgaW4gV2ViQ29yZS9zdmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA2MGFkZjcz
MmFjODdhYmUwNDEyMjcxM2NmMzU5MTcwODMxZGM5ZTE1Li4xNWIwZjEwZGE1N2VlYzBiM2FhZjVh
ODRmNTk0OTAwNWIxYWQ4MWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIw
MTUtMDktMDggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBOb2Rl
LmFwcGVuZENoaWxkKG51bGwpIC8gcmVwbGFjZUNoaWxkKG51bGwsIG51bGwpIC8gcmVtb3ZlQ2hp
bGQobnVsbCkgLyBpbnNlcnRCZWZvcmUobnVsbCwgcmVmKSBzaG91bGQgdGhyb3cgYSBUeXBlRXJy
b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODk3
MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjI1NjA4ODM+CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8yMjU1OTIyNT4KKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAg
ICAgICAgQ29udGFpbmVyTm9kZTo6YXBwZW5kQ2hpbGQoKSBub3cgdGFrZXMgYSBSZWY8Tm9kZT4m
JiBwYXJhbWV0ZXIgc28gd2UKKyAgICAgICAgbmVlZCB0byB1cGRhdGUgdGhlIGNhbGwgc2l0ZS4K
KworICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06CisgICAgICAgICgtW1dlYkZyYW1lIF9k
b2N1bWVudEZyYWdtZW50V2l0aE5vZGVzQXNQYXJhZ3JhcGhzOl0pOgorCiAyMDE1LTA5LTA3ICBB
bmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjXSBEZWJ1Z1JlbGVh
c2UgYnVpbGRzIHNob3VsZCBsaW5rIGFnYWluc3QgbGliV2ViS2l0U3lzdGVtSW50ZXJmYWNlRWxD
YXBpdGFuLmEgb24gMTAuMTEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA3YzAwNTE3NjhjY2QzZWZhMDVmNjQ2MTBk
ZWIyODRmYjQ0ZjkyNDdmLi4xOTU5Yzg1OWY2ZWJiNWVkNDE2NTFiZjc1ZDExNzEwNzBkNDAyNGQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTUtMDktMDggIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBOb2RlLmFwcGVuZENoaWxkKG51bGwpIC8gcmVw
bGFjZUNoaWxkKG51bGwsIG51bGwpIC8gcmVtb3ZlQ2hpbGQobnVsbCkgLyBpbnNlcnRCZWZvcmUo
bnVsbCwgcmVmKSBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3IKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODk3MQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMjI1NjA4ODM+CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjU1OTIyNT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgQ29udGFpbmVyTm9kZTo6YXBw
ZW5kQ2hpbGQoKSBub3cgdGFrZXMgYSBSZWY8Tm9kZT4mJiBwYXJhbWV0ZXIgc28gd2UKKyAgICAg
ICAgbmVlZCB0byB1cGRhdGUgdGhlIGNhbGwgc2l0ZXMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjpQ
REZQbHVnaW4pOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQW5u
b3RhdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luQW5ub3RhdGlvbjo6YXR0YWNo
KToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luQW5ub3RhdGlvbjo6flBERlBsdWdpbkFubm90
YXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hvaWNl
QW5ub3RhdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlv
bjo6Y3JlYXRlQW5ub3RhdGlvbkVsZW1lbnQpOgorCiAyMDE1LTA5LTA5ICBKb3NlcGggUGVjb3Jh
cm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogUmVtb3Zl
IGRlYWQgV2ViSW5zcGVjdG9yUHJveHkgcmVsYXRlZCBjb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3Bw
CmluZGV4IDhmOTZjOWYwMjhjNzI4ZmRhMDNiYjUwYTdlZTk2YmFmYzNkYTkwNWIuLmI0NGNmZDIw
ODU5ZTc0ZTEzMTdhOTM0YTE1YzU3NjY5OGI3ZTE3YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3Bw
CkBAIC04MSw5ICs4MSw5IEBAIGJvb2wgWW91VHViZVBsdWdpblJlcGxhY2VtZW50OjppbnN0YWxs
UmVwbGFjZW1lbnQoU2hhZG93Um9vdCogcm9vdCkKIHsKICAgICBtX2VtYmVkU2hhZG93RWxlbWVu
dCA9IFlvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQ6OmNyZWF0ZShtX3BhcmVudEVsZW1lbnQtPmRv
Y3VtZW50KCkpOwogCi0gICAgcm9vdC0+YXBwZW5kQ2hpbGQobV9lbWJlZFNoYWRvd0VsZW1lbnQu
Z2V0KCkpOworICAgIHJvb3QtPmFwcGVuZENoaWxkKCptX2VtYmVkU2hhZG93RWxlbWVudCk7CiAK
LSAgICBSZWZQdHI8SFRNTElGcmFtZUVsZW1lbnQ+IGlmcmFtZUVsZW1lbnQgPSBIVE1MSUZyYW1l
RWxlbWVudDo6Y3JlYXRlKEhUTUxOYW1lczo6aWZyYW1lVGFnLCBtX3BhcmVudEVsZW1lbnQtPmRv
Y3VtZW50KCkpOworICAgIFJlZjxIVE1MSUZyYW1lRWxlbWVudD4gaWZyYW1lRWxlbWVudCA9IEhU
TUxJRnJhbWVFbGVtZW50OjpjcmVhdGUoSFRNTE5hbWVzOjppZnJhbWVUYWcsIG1fcGFyZW50RWxl
bWVudC0+ZG9jdW1lbnQoKSk7CiAgICAgaWYgKG1fYXR0cmlidXRlcy5jb250YWlucygid2lkdGgi
KSkKICAgICAgICAgaWZyYW1lRWxlbWVudC0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6d2lkdGhB
dHRyLCBBdG9taWNTdHJpbmcoIjEwMCUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CiAgICAgCkBAIC05OCw3ICs5OCw3IEBAIGJvb2wgWW91VHViZVBsdWdpblJlcGxhY2Vt
ZW50OjppbnN0YWxsUmVwbGFjZW1lbnQoU2hhZG93Um9vdCogcm9vdCkKICAgICAKICAgICAvLyBE
aXNhYmxlIGZyYW1lIGZsYXR0ZW5pbmcgZm9yIHRoaXMgaWZyYW1lLgogICAgIGlmcmFtZUVsZW1l
bnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OnNjcm9sbGluZ0F0dHIsIEF0b21pY1N0cmluZygi
bm8iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgbV9lbWJlZFNo
YWRvd0VsZW1lbnQtPmFwcGVuZENoaWxkKGlmcmFtZUVsZW1lbnQpOworICAgIG1fZW1iZWRTaGFk
b3dFbGVtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoaWZyYW1lRWxlbWVudCkpOwogCiAgICAg
cmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L0RPTUhUTUwubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUwubW0KaW5k
ZXggMGRlMjJjZTNjZGFjNGY3ODhhN2ZkYTdjZjA0NTU3MDZhMDkwNWJmYy4uMDI3NTk1ZTFlOTFi
MmYzYWE2MjhlMjkzNjE1YmE1MWQyZmYwNTlkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvb2JqYy9ET01IVE1MLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29i
amMvRE9NSFRNTC5tbQpAQCAtMTUyLDcgKzE1Miw3IEBAIC0gKERPTURvY3VtZW50RnJhZ21lbnQg
KiljcmVhdGVEb2N1bWVudEZyYWdtZW50V2l0aE1hcmt1cFN0cmluZzooTlNTdHJpbmcgKiltYXJr
CiAtIChET01Eb2N1bWVudEZyYWdtZW50ICopY3JlYXRlRG9jdW1lbnRGcmFnbWVudFdpdGhUZXh0
OihOU1N0cmluZyAqKXRleHQKIHsKICAgICAvLyBGSVhNRTogU2luY2UgdGhpcyBpcyBub3QgYSBj
b250ZXh0dWFsIGZyYWdtZW50LCBpdCB3b24ndCBoYW5kbGUgd2hpdGVzcGFjZSBwcm9wZXJseS4K
LSAgICByZXR1cm4ga2l0KGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoY29yZShzZWxmKS0+Y3JlYXRl
UmFuZ2UoKSwgdGV4dCkuZ2V0KCkpOworICAgIHJldHVybiBraXQoY3JlYXRlRnJhZ21lbnRGcm9t
VGV4dChjb3JlKHNlbGYpLT5jcmVhdGVSYW5nZSgpLCB0ZXh0KS5wdHIoKSk7CiB9CiAKIEBlbmQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9BdHRyLmNwcAppbmRleCAxODU3MGYxZDg3NDMxYTFmM2E0NGRhMDNlNThhMmVjNWZmNzFh
NzhjLi5hYzdiNjZmOTk3MDVkODk5ZWVjZTNjMjg5NGY4OWUxZjgwOWQxNWY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0F0
dHIuY3BwCkBAIC0xMzgsMTEgKzEzOCwxMSBAQCB2b2lkIEF0dHI6OnNldE5vZGVWYWx1ZShjb25z
dCBTdHJpbmcmIHYsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIHNldFZhbHVlKHYsIGVjKTsKIH0K
IAotUmVmUHRyPE5vZGU+IEF0dHI6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXRE
b2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikKK1JlZjxOb2RlPiBBdHRyOjpjbG9uZU5vZGVJbnRl
cm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24pCiB7Ci0gICAg
UmVmUHRyPEF0dHI+IGNsb25lID0gYWRvcHRSZWYobmV3IEF0dHIodGFyZ2V0RG9jdW1lbnQsIHF1
YWxpZmllZE5hbWUoKSwgdmFsdWUoKSkpOwotICAgIGNsb25lQ2hpbGROb2RlcyhjbG9uZS5nZXQo
KSk7Ci0gICAgcmV0dXJuIGNsb25lLnJlbGVhc2UoKTsKKyAgICBSZWY8QXR0cj4gY2xvbmUgPSBh
ZG9wdFJlZigqbmV3IEF0dHIodGFyZ2V0RG9jdW1lbnQsIHF1YWxpZmllZE5hbWUoKSwgdmFsdWUo
KSkpOworICAgIGNsb25lQ2hpbGROb2RlcyhjbG9uZSk7CisgICAgcmV0dXJuIFdURjo6bW92ZShj
bG9uZSk7CiB9CiAKIC8vIERPTSBTZWN0aW9uIDEuMS4xCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vQXR0ci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuaAppbmRleCBjN2E5NGY5
OGYwYmZiNTdlYjBjM2FiNTE3OTg4YTQ0ODBiMzQ5MDEwLi4xMjRjNmQ3YTJhYTI4NjgzMGZjYmEy
OTYyODg4OGI3MjAyMjk5Mjg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmgKQEAgLTgwLDcgKzgwLDcgQEAgcHJpdmF0
ZToKIAogICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIHZhbHVlKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0Tm9kZVZhbHVlKGNvbnN0IFN0cmlu
ZyYsIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBj
bG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmlu
Z09wZXJhdGlvbikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNBdHRyaWJ1dGVOb2Rl
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBjaGls
ZFR5cGVBbGxvd2VkKE5vZGVUeXBlKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9DREFUQVNlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NEQVRB
U2VjdGlvbi5jcHAKaW5kZXggYzU5YmYxZTk1OGZkYTQ1MGFlOTJkZjIyYjc0MDlmZmI5NjhhMGJl
Yi4uYWZkNzMyMjcwZjEyYzZkOGRjZmZiOGZmODI3YTEzOWNjMzFhMzFlNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0NEQVRBU2VjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0NEQVRBU2VjdGlvbi5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgTm9kZTo6Tm9kZVR5cGUgQ0RB
VEFTZWN0aW9uOjpub2RlVHlwZSgpIGNvbnN0CiAgICAgcmV0dXJuIENEQVRBX1NFQ1RJT05fTk9E
RTsKIH0KIAotUmVmUHRyPE5vZGU+IENEQVRBU2VjdGlvbjo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9j
dW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uKQorUmVmPE5vZGU+IENEQVRB
U2VjdGlvbjo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9u
aW5nT3BlcmF0aW9uKQogewogICAgIHJldHVybiBjcmVhdGUodGFyZ2V0RG9jdW1lbnQsIGRhdGEo
KSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ0RBVEFTZWN0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vQ0RBVEFTZWN0aW9uLmgKaW5kZXggYmY1YTYxYzYyNjg1YjIzNzA1
ZDY0YjRjZTM5NDZhNjM3ODQ5MjNhNy4uZDZiOTkzN2RmYzc1YTU4ZTk2ZWFiNTJkZjI2YWQ5YjRi
N2RlZjI2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NEQVRBU2VjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DREFUQVNlY3Rpb24uaApAQCAtMzYsNyArMzYsNyBAQCBw
cml2YXRlOgogCiAgICAgdmlydHVhbCBTdHJpbmcgbm9kZU5hbWUoKSBjb25zdCBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIE5vZGVUeXBlIG5vZGVUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmly
dHVhbCBSZWZQdHI8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3Bl
cmF0aW9uKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5h
bChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9v
bCBjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IFJlZjxUZXh0PiB2aXJ0dWFsQ3JlYXRlKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21tZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Db21tZW50LmNwcAppbmRleCA0Yzc0YWFmNjNhZDkwNTNjNmFiZTU5NTU2MjMxODVkMjdk
OTg5ZDZiLi40MTI1YTZlYWUxYWRmOWE4Zjg2NmZlYjU0MjlmNGYzZDQyMGI3MjRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0NvbW1lbnQuY3BwCkBAIC00Niw3ICs0Niw3IEBAIE5vZGU6Ok5vZGVUeXBlIENvbW1lbnQ6
Om5vZGVUeXBlKCkgY29uc3QKICAgICByZXR1cm4gQ09NTUVOVF9OT0RFOwogfQogCi1SZWZQdHI8
Tm9kZT4gQ29tbWVudDo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50
LCBDbG9uaW5nT3BlcmF0aW9uKQorUmVmPE5vZGU+IENvbW1lbnQ6OmNsb25lTm9kZUludGVybmFs
KERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikKIHsKICAgICByZXR1
cm4gY3JlYXRlKHRhcmdldERvY3VtZW50LCBkYXRhKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0NvbW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21tZW50LmgKaW5k
ZXggZmNhYzYwYTMzZTVlMzBhMWU1OWMxZGM5ZWYzYjYzOTRhZGU3Yjc1OS4uMTU2NjMyMzMyYTIw
NjhmM2E5Yjg1MjZjYmNjNzQ2NTQ4NjE1OTljMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0NvbW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tbWVudC5oCkBAIC0zNiw3
ICszNiw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFN0cmluZyBub2RlTmFtZSgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgTm9kZVR5cGUgbm9kZVR5cGUoKSBjb25zdCBvdmVycmlk
ZTsKLSAgICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYs
IENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNsb25l
Tm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCBib29sIGNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUpIGNvbnN0IG92ZXJyaWRlOwog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCmluZGV4IGYwNjMxYjZiZGQ0ZGE3
ZGEyZGE0YmQ0ZmE5OTRjMTljZjk5MGMzZDUuLjYzMTQxNzUzNGZiNmVjYTBkYzY2N2QyOTE5MTYy
Mjk3YjY4MzViYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2Rl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKQEAgLTc2LDcg
Kzc2LDcgQEAgc3RhdGljIHZvaWQgY29sbGVjdENoaWxkcmVuQW5kUmVtb3ZlRnJvbU9sZFBhcmVu
dChOb2RlJiBub2RlLCBOb2RlVmVjdG9yJiBub2RlcywKICAgICBpZiAoIWlzPERvY3VtZW50RnJh
Z21lbnQ+KG5vZGUpKSB7CiAgICAgICAgIG5vZGVzLmFwcGVuZChub2RlKTsKICAgICAgICAgaWYg
KENvbnRhaW5lck5vZGUqIG9sZFBhcmVudCA9IG5vZGUucGFyZW50Tm9kZSgpKQotICAgICAgICAg
ICAgb2xkUGFyZW50LT5yZW1vdmVDaGlsZCgmbm9kZSwgZWMpOworICAgICAgICAgICAgb2xkUGFy
ZW50LT5yZW1vdmVDaGlsZChub2RlLCBlYyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAg
LTE0NiwxMyArMTQ2LDEzIEBAIENvbnRhaW5lck5vZGU6On5Db250YWluZXJOb2RlKCkKICAgICBy
ZW1vdmVEZXRhY2hlZENoaWxkcmVuKCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBpc0NoaWxk
VHlwZUFsbG93ZWQoQ29udGFpbmVyTm9kZSogbmV3UGFyZW50LCBOb2RlKiBjaGlsZCkKK3N0YXRp
YyBpbmxpbmUgYm9vbCBpc0NoaWxkVHlwZUFsbG93ZWQoQ29udGFpbmVyTm9kZSYgbmV3UGFyZW50
LCBOb2RlJiBjaGlsZCkKIHsKLSAgICBpZiAoIWNoaWxkLT5pc0RvY3VtZW50RnJhZ21lbnQoKSkK
LSAgICAgICAgcmV0dXJuIG5ld1BhcmVudC0+Y2hpbGRUeXBlQWxsb3dlZChjaGlsZC0+bm9kZVR5
cGUoKSk7CisgICAgaWYgKCFjaGlsZC5pc0RvY3VtZW50RnJhZ21lbnQoKSkKKyAgICAgICAgcmV0
dXJuIG5ld1BhcmVudC5jaGlsZFR5cGVBbGxvd2VkKGNoaWxkLm5vZGVUeXBlKCkpOwogCi0gICAg
Zm9yIChOb2RlKiBub2RlID0gY2hpbGQtPmZpcnN0Q2hpbGQoKTsgbm9kZTsgbm9kZSA9IG5vZGUt
Pm5leHRTaWJsaW5nKCkpIHsKLSAgICAgICAgaWYgKCFuZXdQYXJlbnQtPmNoaWxkVHlwZUFsbG93
ZWQobm9kZS0+bm9kZVR5cGUoKSkpCisgICAgZm9yIChOb2RlKiBub2RlID0gY2hpbGQuZmlyc3RD
aGlsZCgpOyBub2RlOyBub2RlID0gbm9kZS0+bmV4dFNpYmxpbmcoKSkgeworICAgICAgICBpZiAo
IW5ld1BhcmVudC5jaGlsZFR5cGVBbGxvd2VkKG5vZGUtPm5vZGVUeXBlKCkpKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE2OSwyMyArMTY5
LDE5IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0luVGVtcGxhdGVDb250ZW50KGNvbnN0IE5vZGUq
IG5vZGUpCiAjZW5kaWYKIH0KIAotc3RhdGljIGlubGluZSBib29sIGNvbnRhaW5zQ29uc2lkZXJp
bmdIb3N0RWxlbWVudHMoY29uc3QgTm9kZSogbmV3Q2hpbGQsIGNvbnN0IE5vZGUqIG5ld1BhcmVu
dCkKK3N0YXRpYyBpbmxpbmUgYm9vbCBjb250YWluc0NvbnNpZGVyaW5nSG9zdEVsZW1lbnRzKGNv
bnN0IE5vZGUmIG5ld0NoaWxkLCBjb25zdCBOb2RlJiBuZXdQYXJlbnQpCiB7Ci0gICAgcmV0dXJu
IChuZXdQYXJlbnQtPmlzSW5TaGFkb3dUcmVlKCkgfHwgaXNJblRlbXBsYXRlQ29udGVudChuZXdQ
YXJlbnQpKQotICAgICAgICA/IG5ld0NoaWxkLT5jb250YWluc0luY2x1ZGluZ0hvc3RFbGVtZW50
cyhuZXdQYXJlbnQpCi0gICAgICAgIDogbmV3Q2hpbGQtPmNvbnRhaW5zKG5ld1BhcmVudCk7Cisg
ICAgcmV0dXJuIChuZXdQYXJlbnQuaXNJblNoYWRvd1RyZWUoKSB8fCBpc0luVGVtcGxhdGVDb250
ZW50KCZuZXdQYXJlbnQpKQorICAgICAgICA/IG5ld0NoaWxkLmNvbnRhaW5zSW5jbHVkaW5nSG9z
dEVsZW1lbnRzKCZuZXdQYXJlbnQpCisgICAgICAgIDogbmV3Q2hpbGQuY29udGFpbnMoJm5ld1Bh
cmVudCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgRXhjZXB0aW9uQ29kZSBjaGVja0FjY2VwdENoaWxk
KENvbnRhaW5lck5vZGUqIG5ld1BhcmVudCwgTm9kZSogbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxk
KQorc3RhdGljIGlubGluZSBFeGNlcHRpb25Db2RlIGNoZWNrQWNjZXB0Q2hpbGQoQ29udGFpbmVy
Tm9kZSYgbmV3UGFyZW50LCBOb2RlJiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQpCiB7Ci0gICAg
Ly8gTm90IG1lbnRpb25lZCBpbiBzcGVjOiB0aHJvdyBOT1RfRk9VTkRfRVJSIGlmIG5ld0NoaWxk
IGlzIG51bGwKLSAgICBpZiAoIW5ld0NoaWxkKQotICAgICAgICByZXR1cm4gTk9UX0ZPVU5EX0VS
UjsKLQogICAgIC8vIFVzZSBjb21tb24gY2FzZSBmYXN0IHBhdGggaWYgcG9zc2libGUuCi0gICAg
aWYgKChuZXdDaGlsZC0+aXNFbGVtZW50Tm9kZSgpIHx8IG5ld0NoaWxkLT5pc1RleHROb2RlKCkp
ICYmIG5ld1BhcmVudC0+aXNFbGVtZW50Tm9kZSgpKSB7Ci0gICAgICAgIEFTU0VSVCghbmV3UGFy
ZW50LT5pc1JlYWRPbmx5Tm9kZSgpKTsKLSAgICAgICAgQVNTRVJUKCFuZXdQYXJlbnQtPmlzRG9j
dW1lbnRUeXBlTm9kZSgpKTsKKyAgICBpZiAoKG5ld0NoaWxkLmlzRWxlbWVudE5vZGUoKSB8fCBu
ZXdDaGlsZC5pc1RleHROb2RlKCkpICYmIG5ld1BhcmVudC5pc0VsZW1lbnROb2RlKCkpIHsKKyAg
ICAgICAgQVNTRVJUKCFuZXdQYXJlbnQuaXNSZWFkT25seU5vZGUoKSk7CisgICAgICAgIEFTU0VS
VCghbmV3UGFyZW50LmlzRG9jdW1lbnRUeXBlTm9kZSgpKTsKICAgICAgICAgQVNTRVJUKGlzQ2hp
bGRUeXBlQWxsb3dlZChuZXdQYXJlbnQsIG5ld0NoaWxkKSk7CiAgICAgICAgIGlmIChjb250YWlu
c0NvbnNpZGVyaW5nSG9zdEVsZW1lbnRzKG5ld0NoaWxkLCBuZXdQYXJlbnQpKQogICAgICAgICAg
ICAgcmV0dXJuIEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKQEAgLTE5MywxNyArMTg5LDE3IEBAIHN0
YXRpYyBpbmxpbmUgRXhjZXB0aW9uQ29kZSBjaGVja0FjY2VwdENoaWxkKENvbnRhaW5lck5vZGUq
IG5ld1BhcmVudCwgTm9kZSogbmV3CiAgICAgfQogCiAgICAgLy8gVGhpcyBzaG91bGQgbmV2ZXIg
aGFwcGVuLCBidXQgYWxzbyBwcm90ZWN0IHJlbGVhc2UgYnVpbGRzIGZyb20gdHJlZSBjb3JydXB0
aW9uLgotICAgIEFTU0VSVCghbmV3Q2hpbGQtPmlzUHNldWRvRWxlbWVudCgpKTsKLSAgICBpZiAo
bmV3Q2hpbGQtPmlzUHNldWRvRWxlbWVudCgpKQorICAgIEFTU0VSVCghbmV3Q2hpbGQuaXNQc2V1
ZG9FbGVtZW50KCkpOworICAgIGlmIChuZXdDaGlsZC5pc1BzZXVkb0VsZW1lbnQoKSkKICAgICAg
ICAgcmV0dXJuIEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKIAotICAgIGlmIChuZXdQYXJlbnQtPmlz
UmVhZE9ubHlOb2RlKCkpCisgICAgaWYgKG5ld1BhcmVudC5pc1JlYWRPbmx5Tm9kZSgpKQogICAg
ICAgICByZXR1cm4gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOwogICAgIGlmIChjb250YWlu
c0NvbnNpZGVyaW5nSG9zdEVsZW1lbnRzKG5ld0NoaWxkLCBuZXdQYXJlbnQpKQogICAgICAgICBy
ZXR1cm4gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwogCi0gICAgaWYgKG9sZENoaWxkICYmIGlzPERv
Y3VtZW50PigqbmV3UGFyZW50KSkgewotICAgICAgICBpZiAoIWRvd25jYXN0PERvY3VtZW50Pigq
bmV3UGFyZW50KS5jYW5SZXBsYWNlQ2hpbGQobmV3Q2hpbGQsIG9sZENoaWxkKSkKKyAgICBpZiAo
b2xkQ2hpbGQgJiYgaXM8RG9jdW1lbnQ+KG5ld1BhcmVudCkpIHsKKyAgICAgICAgaWYgKCFkb3du
Y2FzdDxEb2N1bWVudD4obmV3UGFyZW50KS5jYW5SZXBsYWNlQ2hpbGQobmV3Q2hpbGQsICpvbGRD
aGlsZCkpCiAgICAgICAgICAgICByZXR1cm4gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwogICAgIH0g
ZWxzZSBpZiAoIWlzQ2hpbGRUeXBlQWxsb3dlZChuZXdQYXJlbnQsIG5ld0NoaWxkKSkKICAgICAg
ICAgcmV0dXJuIEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKQEAgLTIxMSwxMiArMjA3LDEyIEBAIHN0
YXRpYyBpbmxpbmUgRXhjZXB0aW9uQ29kZSBjaGVja0FjY2VwdENoaWxkKENvbnRhaW5lck5vZGUq
IG5ld1BhcmVudCwgTm9kZSogbmV3CiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
Ym9vbCBjaGVja0FjY2VwdENoaWxkR3VhcmFudGVlZE5vZGVUeXBlcyhDb250YWluZXJOb2RlKiBu
ZXdQYXJlbnQsIE5vZGUqIG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKK3N0YXRpYyBpbmxp
bmUgYm9vbCBjaGVja0FjY2VwdENoaWxkR3VhcmFudGVlZE5vZGVUeXBlcyhDb250YWluZXJOb2Rl
JiBuZXdQYXJlbnQsIE5vZGUmIG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBB
U1NFUlQoIW5ld1BhcmVudC0+aXNSZWFkT25seU5vZGUoKSk7Ci0gICAgQVNTRVJUKCFuZXdQYXJl
bnQtPmlzRG9jdW1lbnRUeXBlTm9kZSgpKTsKKyAgICBBU1NFUlQoIW5ld1BhcmVudC5pc1JlYWRP
bmx5Tm9kZSgpKTsKKyAgICBBU1NFUlQoIW5ld1BhcmVudC5pc0RvY3VtZW50VHlwZU5vZGUoKSk7
CiAgICAgQVNTRVJUKGlzQ2hpbGRUeXBlQWxsb3dlZChuZXdQYXJlbnQsIG5ld0NoaWxkKSk7Ci0g
ICAgaWYgKG5ld0NoaWxkLT5jb250YWlucyhuZXdQYXJlbnQpKSB7CisgICAgaWYgKG5ld0NoaWxk
LmNvbnRhaW5zKCZuZXdQYXJlbnQpKSB7CiAgICAgICAgIGVjID0gSElFUkFSQ0hZX1JFUVVFU1Rf
RVJSOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMjI0LDI1ICsyMjAsMTkgQEAg
c3RhdGljIGlubGluZSBib29sIGNoZWNrQWNjZXB0Q2hpbGRHdWFyYW50ZWVkTm9kZVR5cGVzKENv
bnRhaW5lck5vZGUqIG5ld1BhcmVudCwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGlu
bGluZSBib29sIGNoZWNrQWRkQ2hpbGQoQ29udGFpbmVyTm9kZSogbmV3UGFyZW50LCBOb2RlKiBu
ZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCitzdGF0aWMgaW5saW5lIGJvb2wgY2hlY2tBZGRD
aGlsZChDb250YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5vZGUmIG5ld0NoaWxkLCBFeGNlcHRpb25D
b2RlJiBlYykKIHsKLSAgICBlYyA9IGNoZWNrQWNjZXB0Q2hpbGQobmV3UGFyZW50LCBuZXdDaGls
ZCwgMCk7Ci0gICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4g
dHJ1ZTsKKyAgICBlYyA9IGNoZWNrQWNjZXB0Q2hpbGQobmV3UGFyZW50LCBuZXdDaGlsZCwgbnVs
bHB0cik7CisgICAgcmV0dXJuICFlYzsKIH0KIAotc3RhdGljIGlubGluZSBib29sIGNoZWNrUmVw
bGFjZUNoaWxkKENvbnRhaW5lck5vZGUqIG5ld1BhcmVudCwgTm9kZSogbmV3Q2hpbGQsIE5vZGUq
IG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKK3N0YXRpYyBpbmxpbmUgYm9vbCBjaGVja1Jl
cGxhY2VDaGlsZChDb250YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5vZGUmIG5ld0NoaWxkLCBOb2Rl
JiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgZWMgPSBjaGVja0FjY2VwdENo
aWxkKG5ld1BhcmVudCwgbmV3Q2hpbGQsIG9sZENoaWxkKTsKLSAgICBpZiAoZWMpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiB0cnVlOworICAgIGVjID0gY2hlY2tBY2NlcHRD
aGlsZChuZXdQYXJlbnQsIG5ld0NoaWxkLCAmb2xkQ2hpbGQpOworICAgIHJldHVybiAhZWM7CiB9
CiAKLWJvb2wgQ29udGFpbmVyTm9kZTo6aW5zZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3
Q2hpbGQsIE5vZGUqIHJlZkNoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKK2Jvb2wgQ29udGFpbmVy
Tm9kZTo6aW5zZXJ0QmVmb3JlKFJlZjxOb2RlPiYmIG5ld0NoaWxkLCBOb2RlKiByZWZDaGlsZCwg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgLy8gQ2hlY2sgdGhhdCB0aGlzIG5vZGUgaXMgbm90
ICJmbG9hdGluZyIuCiAgICAgLy8gSWYgaXQgaXMsIGl0IGNhbiBiZSBkZWxldGVkIGFzIGEgc2lk
ZSBlZmZlY3Qgb2Ygc2VuZGluZyBtdXRhdGlvbiBldmVudHMuCkBAIC0yNTQsMTAgKzI0NCwxMCBA
QCBib29sIENvbnRhaW5lck5vZGU6Omluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IG5ld0No
aWxkLCBOb2RlKiByZWZDaGlsZCwgRXhjZQogCiAgICAgLy8gaW5zZXJ0QmVmb3JlKG5vZGUsIDAp
IGlzIGVxdWl2YWxlbnQgdG8gYXBwZW5kQ2hpbGQobm9kZSkKICAgICBpZiAoIXJlZkNoaWxkKQot
ICAgICAgICByZXR1cm4gYXBwZW5kQ2hpbGQobmV3Q2hpbGQsIGVjKTsKKyAgICAgICAgcmV0dXJu
IGFwcGVuZENoaWxkKFdURjo6bW92ZShuZXdDaGlsZCksIGVjKTsKIAogICAgIC8vIE1ha2Ugc3Vy
ZSBhZGRpbmcgdGhlIG5ldyBjaGlsZCBpcyBPSy4KLSAgICBpZiAoIWNoZWNrQWRkQ2hpbGQodGhp
cywgbmV3Q2hpbGQuZ2V0KCksIGVjKSkKKyAgICBpZiAoIWNoZWNrQWRkQ2hpbGQoKnRoaXMsIG5l
d0NoaWxkLCBlYykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIE5PVF9GT1VORF9F
UlI6IFJhaXNlZCBpZiByZWZDaGlsZCBpcyBub3QgYSBjaGlsZCBvZiB0aGlzIG5vZGUKQEAgLTI2
NiwyMCArMjU2LDIwIEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6aW5zZXJ0QmVmb3JlKFBhc3NSZWZQ
dHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIHJlZkNoaWxkLCBFeGNlCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKLSAgICBpZiAocmVmQ2hpbGQtPnByZXZpb3VzU2libGluZygpID09IG5l
d0NoaWxkIHx8IHJlZkNoaWxkID09IG5ld0NoaWxkKSAvLyBub3RoaW5nIHRvIGRvCisgICAgaWYg
KHJlZkNoaWxkLT5wcmV2aW91c1NpYmxpbmcoKSA9PSBuZXdDaGlsZC5wdHIoKSB8fCByZWZDaGls
ZCA9PSBuZXdDaGlsZC5wdHIoKSkgLy8gbm90aGluZyB0byBkbwogICAgICAgICByZXR1cm4gdHJ1
ZTsKIAogICAgIFJlZjxOb2RlPiBuZXh0KCpyZWZDaGlsZCk7CiAKICAgICBOb2RlVmVjdG9yIHRh
cmdldHM7Ci0gICAgY29sbGVjdENoaWxkcmVuQW5kUmVtb3ZlRnJvbU9sZFBhcmVudCgqbmV3Q2hp
bGQuZ2V0KCksIHRhcmdldHMsIGVjKTsKKyAgICBjb2xsZWN0Q2hpbGRyZW5BbmRSZW1vdmVGcm9t
T2xkUGFyZW50KG5ld0NoaWxkLCB0YXJnZXRzLCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgaWYgKHRhcmdldHMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKIAogICAgIC8vIFdlIG5lZWQgdGhpcyBleHRyYSBjaGVjayBiZWNhdXNlIGNvbGxlY3RD
aGlsZHJlbkFuZFJlbW92ZUZyb21PbGRQYXJlbnQoKSBjYW4gZmlyZSBtdXRhdGlvbiBldmVudHMu
Ci0gICAgaWYgKCFjaGVja0FjY2VwdENoaWxkR3VhcmFudGVlZE5vZGVUeXBlcyh0aGlzLCBuZXdD
aGlsZC5nZXQoKSwgZWMpKQorICAgIGlmICghY2hlY2tBY2NlcHRDaGlsZEd1YXJhbnRlZWROb2Rl
VHlwZXMoKnRoaXMsIG5ld0NoaWxkLCBlYykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEluc2VydERPTU5vZGUoZG9jdW1lbnQoKSwg
KnRoaXMpOwpAQCAtMzkwLDcgKzM4MCw3IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6cGFyc2VySW5z
ZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIG5leHRDaGlsCiAgICAg
bmV3Q2hpbGQtPnNldE5lZWRzU3R5bGVSZWNhbGMoUmVjb25zdHJ1Y3RSZW5kZXJUcmVlKTsKIH0K
IAotYm9vbCBDb250YWluZXJOb2RlOjpyZXBsYWNlQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdD
aGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQorYm9vbCBDb250YWluZXJO
b2RlOjpyZXBsYWNlQ2hpbGQoUmVmPE5vZGU+JiYgbmV3Q2hpbGQsIE5vZGUmIG9sZENoaWxkLCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKICAgICAvLyBDaGVjayB0aGF0IHRoaXMgbm9kZSBpcyBub3Qg
ImZsb2F0aW5nIi4KICAgICAvLyBJZiBpdCBpcywgaXQgY2FuIGJlIGRlbGV0ZWQgYXMgYSBzaWRl
IGVmZmVjdCBvZiBzZW5kaW5nIG11dGF0aW9uIGV2ZW50cy4KQEAgLTQwMCw0OCArMzkwLDQzIEBA
IGJvb2wgQ29udGFpbmVyTm9kZTo6cmVwbGFjZUNoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hp
bGQsIE5vZGUqIG9sZENoaWxkLCBFeGNlCiAKICAgICBlYyA9IDA7CiAKLSAgICBpZiAob2xkQ2hp
bGQgPT0gbmV3Q2hpbGQpIC8vIG5vdGhpbmcgdG8gZG8KKyAgICBpZiAoJm9sZENoaWxkID09IG5l
d0NoaWxkLnB0cigpKSAvLyBub3RoaW5nIHRvIGRvCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0g
ICAgaWYgKCFvbGRDaGlsZCkgewotICAgICAgICBlYyA9IE5PVF9GT1VORF9FUlI7Ci0gICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICB9Ci0KICAgICAvLyBNYWtlIHN1cmUgcmVwbGFjaW5nIHRoZSBv
bGQgY2hpbGQgd2l0aCB0aGUgbmV3IGlzIG9rCi0gICAgaWYgKCFjaGVja1JlcGxhY2VDaGlsZCh0
aGlzLCBuZXdDaGlsZC5nZXQoKSwgb2xkQ2hpbGQsIGVjKSkKKyAgICBpZiAoIWNoZWNrUmVwbGFj
ZUNoaWxkKCp0aGlzLCBuZXdDaGlsZCwgb2xkQ2hpbGQsIGVjKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgLy8gTk9UX0ZPVU5EX0VSUjogUmFpc2VkIGlmIG9sZENoaWxkIGlzIG5vdCBh
IGNoaWxkIG9mIHRoaXMgbm9kZS4KLSAgICBpZiAob2xkQ2hpbGQtPnBhcmVudE5vZGUoKSAhPSB0
aGlzKSB7CisgICAgaWYgKG9sZENoaWxkLnBhcmVudE5vZGUoKSAhPSB0aGlzKSB7CiAgICAgICAg
IGVjID0gTk9UX0ZPVU5EX0VSUjsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAg
IENoaWxkTGlzdE11dGF0aW9uU2NvcGUgbXV0YXRpb24oKnRoaXMpOwogCi0gICAgUmVmUHRyPE5v
ZGU+IG5leHQgPSBvbGRDaGlsZC0+bmV4dFNpYmxpbmcoKTsKKyAgICBSZWZQdHI8Tm9kZT4gbmV4
dCA9IG9sZENoaWxkLm5leHRTaWJsaW5nKCk7CiAKICAgICAvLyBSZW1vdmUgdGhlIG5vZGUgd2Un
cmUgcmVwbGFjaW5nCi0gICAgUmVmPE5vZGU+IHJlbW92ZWRDaGlsZCgqb2xkQ2hpbGQpOworICAg
IFJlZjxOb2RlPiByZW1vdmVkQ2hpbGQob2xkQ2hpbGQpOwogICAgIHJlbW92ZUNoaWxkKG9sZENo
aWxkLCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAo
bmV4dCAmJiAobmV4dC0+cHJldmlvdXNTaWJsaW5nKCkgPT0gbmV3Q2hpbGQgfHwgbmV4dCA9PSBu
ZXdDaGlsZCkpIC8vIG5vdGhpbmcgdG8gZG8KKyAgICBpZiAobmV4dCAmJiAobmV4dC0+cHJldmlv
dXNTaWJsaW5nKCkgPT0gbmV3Q2hpbGQucHRyKCkgfHwgbmV4dCA9PSBuZXdDaGlsZC5wdHIoKSkp
IC8vIG5vdGhpbmcgdG8gZG8KICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAvLyBEb2VzIHRo
aXMgb25lIG1vcmUgdGltZSBiZWNhdXNlIHJlbW92ZUNoaWxkKCkgZmlyZXMgYSBNdXRhdGlvbkV2
ZW50LgotICAgIGlmICghY2hlY2tSZXBsYWNlQ2hpbGQodGhpcywgbmV3Q2hpbGQuZ2V0KCksIG9s
ZENoaWxkLCBlYykpCisgICAgaWYgKCFjaGVja1JlcGxhY2VDaGlsZCgqdGhpcywgbmV3Q2hpbGQs
IG9sZENoaWxkLCBlYykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIE5vZGVWZWN0b3Ig
dGFyZ2V0czsKLSAgICBjb2xsZWN0Q2hpbGRyZW5BbmRSZW1vdmVGcm9tT2xkUGFyZW50KCpuZXdD
aGlsZC5nZXQoKSwgdGFyZ2V0cywgZWMpOworICAgIGNvbGxlY3RDaGlsZHJlbkFuZFJlbW92ZUZy
b21PbGRQYXJlbnQobmV3Q2hpbGQsIHRhcmdldHMsIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIC8vIERvZXMgdGhpcyB5ZXQgYW5vdGhlciBjaGVjayBiZWNh
dXNlIGNvbGxlY3RDaGlsZHJlbkFuZFJlbW92ZUZyb21PbGRQYXJlbnQoKSBmaXJlcyBhIE11dGF0
aW9uRXZlbnQuCi0gICAgaWYgKCFjaGVja1JlcGxhY2VDaGlsZCh0aGlzLCBuZXdDaGlsZC5nZXQo
KSwgb2xkQ2hpbGQsIGVjKSkKKyAgICBpZiAoIWNoZWNrUmVwbGFjZUNoaWxkKCp0aGlzLCBuZXdD
aGlsZCwgb2xkQ2hpbGQsIGVjKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsSW5zZXJ0RE9NTm9kZShkb2N1bWVudCgpLCAqdGhpcyk7
CkBAIC01MTUsNyArNTAwLDcgQEAgdm9pZCBDb250YWluZXJOb2RlOjpkaXNjb25uZWN0RGVzY2Vu
ZGFudEZyYW1lcygpCiAgICAgZGlzY29ubmVjdFN1YmZyYW1lc0lmTmVlZGVkKCp0aGlzLCBSb290
QW5kRGVzY2VuZGFudHMpOwogfQogCi1ib29sIENvbnRhaW5lck5vZGU6OnJlbW92ZUNoaWxkKE5v
ZGUqIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKK2Jvb2wgQ29udGFpbmVyTm9kZTo6cmVt
b3ZlQ2hpbGQoTm9kZSYgb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIC8vIENo
ZWNrIHRoYXQgdGhpcyBub2RlIGlzIG5vdCAiZmxvYXRpbmciLgogICAgIC8vIElmIGl0IGlzLCBp
dCBjYW4gYmUgZGVsZXRlZCBhcyBhIHNpZGUgZWZmZWN0IG9mIHNlbmRpbmcgbXV0YXRpb24gZXZl
bnRzLgpAQCAtNTMyLDEyICs1MTcsMTIgQEAgYm9vbCBDb250YWluZXJOb2RlOjpyZW1vdmVDaGls
ZChOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgfQogCiAgICAgLy8gTk9U
X0ZPVU5EX0VSUjogUmFpc2VkIGlmIG9sZENoaWxkIGlzIG5vdCBhIGNoaWxkIG9mIHRoaXMgbm9k
ZS4KLSAgICBpZiAoIW9sZENoaWxkIHx8IG9sZENoaWxkLT5wYXJlbnROb2RlKCkgIT0gdGhpcykg
eworICAgIGlmIChvbGRDaGlsZC5wYXJlbnROb2RlKCkgIT0gdGhpcykgewogICAgICAgICBlYyA9
IE5PVF9GT1VORF9FUlI7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBSZWY8
Tm9kZT4gY2hpbGQoKm9sZENoaWxkKTsKKyAgICBSZWY8Tm9kZT4gY2hpbGQob2xkQ2hpbGQpOwog
CiAgICAgZG9jdW1lbnQoKS5yZW1vdmVGb2N1c2VkTm9kZU9mU3VidHJlZShjaGlsZC5wdHIoKSk7
CiAKQEAgLTY3MCw3ICs2NTUsNyBAQCB2b2lkIENvbnRhaW5lck5vZGU6OnJlbW92ZUNoaWxkcmVu
KCkKICAgICBkaXNwYXRjaFN1YnRyZWVNb2RpZmllZEV2ZW50KCk7CiB9CiAKLWJvb2wgQ29udGFp
bmVyTm9kZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgRXhjZXB0aW9u
Q29kZSYgZWMpCitib29sIENvbnRhaW5lck5vZGU6OmFwcGVuZENoaWxkKFJlZjxOb2RlPiYmIG5l
d0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBSZWY8Q29udGFpbmVyTm9kZT4gcHJv
dGVjdCgqdGhpcyk7CiAKQEAgLTY4MSwxNCArNjY2LDE0IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6
YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMp
CiAgICAgZWMgPSAwOwogCiAgICAgLy8gTWFrZSBzdXJlIGFkZGluZyB0aGUgbmV3IGNoaWxkIGlz
IG9rCi0gICAgaWYgKCFjaGVja0FkZENoaWxkKHRoaXMsIG5ld0NoaWxkLmdldCgpLCBlYykpCisg
ICAgaWYgKCFjaGVja0FkZENoaWxkKCp0aGlzLCBuZXdDaGlsZCwgZWMpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKLSAgICBpZiAobmV3Q2hpbGQgPT0gbV9sYXN0Q2hpbGQpIC8vIG5vdGhpbmcg
dG8gZG8KLSAgICAgICAgcmV0dXJuIG5ld0NoaWxkOworICAgIGlmIChuZXdDaGlsZC5wdHIoKSA9
PSBtX2xhc3RDaGlsZCkgLy8gbm90aGluZyB0byBkbworICAgICAgICByZXR1cm4gdHJ1ZTsKIAog
ICAgIE5vZGVWZWN0b3IgdGFyZ2V0czsKLSAgICBjb2xsZWN0Q2hpbGRyZW5BbmRSZW1vdmVGcm9t
T2xkUGFyZW50KCpuZXdDaGlsZC5nZXQoKSwgdGFyZ2V0cywgZWMpOworICAgIGNvbGxlY3RDaGls
ZHJlbkFuZFJlbW92ZUZyb21PbGRQYXJlbnQobmV3Q2hpbGQsIHRhcmdldHMsIGVjKTsKICAgICBp
ZiAoZWMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtNjk2LDcgKzY4MSw3IEBAIGJvb2wg
Q29udGFpbmVyTm9kZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgLy8gV2UgbmVlZCB0
aGlzIGV4dHJhIGNoZWNrIGJlY2F1c2UgY29sbGVjdENoaWxkcmVuQW5kUmVtb3ZlRnJvbU9sZFBh
cmVudCgpIGNhbiBmaXJlIG11dGF0aW9uIGV2ZW50cy4KLSAgICBpZiAoIWNoZWNrQWNjZXB0Q2hp
bGRHdWFyYW50ZWVkTm9kZVR5cGVzKHRoaXMsIG5ld0NoaWxkLmdldCgpLCBlYykpCisgICAgaWYg
KCFjaGVja0FjY2VwdENoaWxkR3VhcmFudGVlZE5vZGVUeXBlcygqdGhpcywgbmV3Q2hpbGQsIGVj
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Ojp3aWxsSW5zZXJ0RE9NTm9kZShkb2N1bWVudCgpLCAqdGhpcyk7CkBAIC03NTksMTYgKzc0NCwx
NiBAQCB2b2lkIENvbnRhaW5lck5vZGU6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5n
ZSYgY2hhbmdlKQogICAgIGludmFsaWRhdGVOb2RlTGlzdEFuZENvbGxlY3Rpb25DYWNoZXNJbkFu
Y2VzdG9ycygpOwogfQogCi12b2lkIENvbnRhaW5lck5vZGU6OmNsb25lQ2hpbGROb2RlcyhDb250
YWluZXJOb2RlKiBjbG9uZSkKK3ZvaWQgQ29udGFpbmVyTm9kZTo6Y2xvbmVDaGlsZE5vZGVzKENv
bnRhaW5lck5vZGUmIGNsb25lKQogewogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIERv
Y3VtZW50JiB0YXJnZXREb2N1bWVudCA9IGNsb25lLT5kb2N1bWVudCgpOworICAgIERvY3VtZW50
JiB0YXJnZXREb2N1bWVudCA9IGNsb25lLmRvY3VtZW50KCk7CiAgICAgZm9yIChOb2RlKiBjaGls
ZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQgJiYgIWVjOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGlu
ZygpKSB7Ci0gICAgICAgIFJlZlB0cjxOb2RlPiBjbG9uZWRDaGlsZCA9IGNoaWxkLT5jbG9uZU5v
ZGVJbnRlcm5hbCh0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbjo6U2VsZldpdGhUZW1w
bGF0ZUNvbnRlbnQpOwotICAgICAgICBjbG9uZS0+YXBwZW5kQ2hpbGQoY2xvbmVkQ2hpbGQsIGVj
KTsKKyAgICAgICAgUmVmPE5vZGU+IGNsb25lZENoaWxkID0gY2hpbGQtPmNsb25lTm9kZUludGVy
bmFsKHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uOjpTZWxmV2l0aFRlbXBsYXRlQ29u
dGVudCk7CisgICAgICAgIGNsb25lLmFwcGVuZENoaWxkKGNsb25lZENoaWxkLmNvcHlSZWYoKSwg
ZWMpOwogCi0gICAgICAgIGlmICghZWMgJiYgaXM8Q29udGFpbmVyTm9kZT4oY2hpbGQpKQotICAg
ICAgICAgICAgZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4oY2hpbGQpLT5jbG9uZUNoaWxkTm9kZXMo
ZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4oY2xvbmVkQ2hpbGQuZ2V0KCkpKTsKKyAgICAgICAgaWYg
KCFlYyAmJiBpczxDb250YWluZXJOb2RlPigqY2hpbGQpKQorICAgICAgICAgICAgZG93bmNhc3Q8
Q29udGFpbmVyTm9kZT4oKmNoaWxkKS5jbG9uZUNoaWxkTm9kZXMoZG93bmNhc3Q8Q29udGFpbmVy
Tm9kZT4oY2xvbmVkQ2hpbGQuZ2V0KCkpKTsKICAgICB9CiB9CiAKQEAgLTk0Nyw3ICs5MzIsNyBA
QCB2b2lkIENvbnRhaW5lck5vZGU6OmFwcGVuZChWZWN0b3I8Tm9kZU9yU3RyaW5nPiYmIG5vZGVP
clN0cmluZ1ZlY3RvciwgRXhjZXB0aW9uQwogICAgIGlmIChlYyB8fCAhbm9kZSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgYXBwZW5kQ2hpbGQobm9kZS5yZWxlYXNlKCksIGVjKTsKKyAgICBhcHBl
bmRDaGlsZChub2RlLnJlbGVhc2VOb25OdWxsKCksIGVjKTsKIH0KIAogdm9pZCBDb250YWluZXJO
b2RlOjpwcmVwZW5kKFZlY3RvcjxOb2RlT3JTdHJpbmc+JiYgbm9kZU9yU3RyaW5nVmVjdG9yLCBF
eGNlcHRpb25Db2RlJiBlYykKQEAgLTk1Niw3ICs5NDEsNyBAQCB2b2lkIENvbnRhaW5lck5vZGU6
OnByZXBlbmQoVmVjdG9yPE5vZGVPclN0cmluZz4mJiBub2RlT3JTdHJpbmdWZWN0b3IsIEV4Y2Vw
dGlvbgogICAgIGlmIChlYyB8fCAhbm9kZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaW5zZXJ0
QmVmb3JlKG5vZGUucmVsZWFzZSgpLCBmaXJzdENoaWxkKCksIGVjKTsKKyAgICBpbnNlcnRCZWZv
cmUobm9kZS5yZWxlYXNlTm9uTnVsbCgpLCBmaXJzdENoaWxkKCksIGVjKTsKIH0KIAogSFRNTENv
bGxlY3Rpb24qIENvbnRhaW5lck5vZGU6OmNhY2hlZEhUTUxDb2xsZWN0aW9uKENvbGxlY3Rpb25U
eXBlIHR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaAppbmRleCAwNDUyNDAwNDFmMmI3
MTMxZmIyNmE0ZThmMTkxNmI5YTZjYjliMGFlLi5hNmIxMGE3NjVmMGVlOGJjYTcyYjhmZmYwMzQz
M2I3M2IxODdiYTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9k
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmgKQEAgLTEwMiwxMCAr
MTAyLDEwIEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB1bnNpZ25lZCBjb3VudENoaWxk
Tm9kZXMoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBOb2RlKiB0cmF2ZXJzZVRvQ2hpbGRB
dCh1bnNpZ25lZCkgY29uc3Q7CiAKLSAgICBib29sIGluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5v
ZGU+IG5ld0NoaWxkLCBOb2RlKiByZWZDaGlsZCwgRXhjZXB0aW9uQ29kZSYgPSBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKLSAgICBib29sIHJlcGxhY2VDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0No
aWxkLCBOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgPSBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIHJlbW92ZUNoaWxkKE5vZGUqIGNoaWxkLCBFeGNl
cHRpb25Db2RlJiA9IEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgIFdFQkNPUkVfRVhQT1JUIGJv
b2wgYXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYg
PSBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBib29sIGluc2VydEJlZm9yZShSZWY8Tm9kZT4m
JiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmID0gQVNTRVJUX05PX0VY
Q0VQVElPTik7CisgICAgYm9vbCByZXBsYWNlQ2hpbGQoUmVmPE5vZGU+JiYgbmV3Q2hpbGQsIE5v
ZGUmIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiA9IEFTU0VSVF9OT19FWENFUFRJT04pOworICAg
IFdFQkNPUkVfRVhQT1JUIGJvb2wgcmVtb3ZlQ2hpbGQoTm9kZSYgY2hpbGQsIEV4Y2VwdGlvbkNv
ZGUmID0gQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBhcHBl
bmRDaGlsZChSZWY8Tm9kZT4mJiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgPSBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKIAogICAgIC8vIFRoZXNlIG1ldGhvZHMgYXJlIG9ubHkgdXNlZCBkdXJpbmcg
cGFyc2luZy4KICAgICAvLyBUaGV5IGRvbid0IHNlbmQgRE9NIG11dGF0aW9uIGV2ZW50cyBvciBo
YW5kbGUgcmVwYXJlbnRpbmcuCkBAIC0xMTcsNyArMTE3LDcgQEAgcHVibGljOgogICAgIHZvaWQg
cmVtb3ZlQ2hpbGRyZW4oKTsKICAgICB2b2lkIHRha2VBbGxDaGlsZHJlbkZyb20oQ29udGFpbmVy
Tm9kZSopOwogCi0gICAgdm9pZCBjbG9uZUNoaWxkTm9kZXMoQ29udGFpbmVyTm9kZSogY2xvbmUp
OworICAgIHZvaWQgY2xvbmVDaGlsZE5vZGVzKENvbnRhaW5lck5vZGUmIGNsb25lKTsKIAogICAg
IGVudW0gQ2hpbGRDaGFuZ2VUeXBlIHsgRWxlbWVudEluc2VydGVkLCBFbGVtZW50UmVtb3ZlZCwg
VGV4dEluc2VydGVkLCBUZXh0UmVtb3ZlZCwgVGV4dENoYW5nZWQsIEFsbENoaWxkcmVuUmVtb3Zl
ZCwgTm9uQ29udGVudHNDaGlsZENoYW5nZWQgfTsKICAgICBlbnVtIENoaWxkQ2hhbmdlU291cmNl
IHsgQ2hpbGRDaGFuZ2VTb3VyY2VQYXJzZXIsIENoaWxkQ2hhbmdlU291cmNlQVBJIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAppbmRleCBhNGEzZjhkNTlhYTJhMTYx
ZjY3MmY0NGQ2M2ZmODQ4NjRiN2IyMDMzLi42MzNkMjkxM2Y3MTZlYTg0YjY3ZjZkMjgwOTNlNjhk
NDExZTMxOWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKQEAg
LTIzMSw5ICsyMzEsOSBAQCBSZWZQdHI8RG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjpjcmVh
dGVEb2N1bWVudChjb25zdCBTdHJpbmcmIG5hbWVzcGFjZVVSSSwKICAgICB9CiAKICAgICBpZiAo
ZG9jdHlwZSkKLSAgICAgICAgZG9jLT5hcHBlbmRDaGlsZChkb2N0eXBlKTsKKyAgICAgICAgZG9j
LT5hcHBlbmRDaGlsZCgqZG9jdHlwZSk7CiAgICAgaWYgKGRvY3VtZW50RWxlbWVudCkKLSAgICAg
ICAgZG9jLT5hcHBlbmRDaGlsZChkb2N1bWVudEVsZW1lbnQucmVsZWFzZSgpKTsKKyAgICAgICAg
ZG9jLT5hcHBlbmRDaGlsZChkb2N1bWVudEVsZW1lbnQucmVsZWFzZU5vbk51bGwoKSk7CiAKICAg
ICByZXR1cm4gZG9jOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZDBjZGM1N2UzMTI2
YWIyNzkwNmRlZmVhYjllNTZiMTUxZTZlZGU5Yi4uNjc2YmRkODJiZmIwOGM2YThjNTY4ZTNjODBk
YTllMmVkNWIyN2NmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xMDA5LDcgKzEwMDks
NyBAQCBSZWZQdHI8Tm9kZT4gRG9jdW1lbnQ6OmFkb3B0Tm9kZShQYXNzUmVmUHRyPE5vZGU+IHNv
dXJjZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAg
ICAgaWYgKHNvdXJjZS0+cGFyZW50Tm9kZSgpKSB7Ci0gICAgICAgICAgICBzb3VyY2UtPnBhcmVu
dE5vZGUoKS0+cmVtb3ZlQ2hpbGQoc291cmNlLmdldCgpLCBlYyk7CisgICAgICAgICAgICBzb3Vy
Y2UtPnBhcmVudE5vZGUoKS0+cmVtb3ZlQ2hpbGQoKnNvdXJjZSwgZWMpOwogICAgICAgICAgICAg
aWYgKGVjKQogICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICB9CkBAIC0x
NTQ3LDcgKzE1NDcsNyBAQCB2b2lkIERvY3VtZW50OjpzZXRUaXRsZShjb25zdCBTdHJpbmcmIHRp
dGxlKQogICAgICAgICBpZiAoIWhlYWRFbGVtZW50KQogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICBtX3RpdGxlRWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQodGl0bGVUYWcsIGZhbHNlKTsKLSAg
ICAgICAgaGVhZEVsZW1lbnQtPmFwcGVuZENoaWxkKG1fdGl0bGVFbGVtZW50LCBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKKyAgICAgICAgaGVhZEVsZW1lbnQtPmFwcGVuZENoaWxkKCptX3RpdGxlRWxl
bWVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgfQogCiAgICAgLy8gVGhlIERPTSBBUEkg
aGFzIG5vIG1ldGhvZCBvZiBzcGVjaWZ5aW5nIGRpcmVjdGlvbiwgc28gYXNzdW1lIExUUi4KQEAg
LTI1MTgsMTEgKzI1MTgsMTAgQEAgdm9pZCBEb2N1bWVudDo6c2V0Qm9keU9yRnJhbWVzZXQoUGFz
c1JlZlB0cjxIVE1MRWxlbWVudD4gcHJwTmV3Qm9keSwgRXhjZXB0aW9uQ28KICAgICAgICAgbmV3
Qm9keSA9IGRvd25jYXN0PEhUTUxFbGVtZW50Pihub2RlLmdldCgpKTsKICAgICB9CiAKLSAgICBI
VE1MRWxlbWVudCogYiA9IGJvZHlPckZyYW1lc2V0KCk7Ci0gICAgaWYgKCFiKQotICAgICAgICBk
b2N1bWVudEVsZW1lbnQoKS0+YXBwZW5kQ2hpbGQobmV3Qm9keS5yZWxlYXNlKCksIGVjKTsKKyAg
ICBpZiAoYXV0byogYm9keSA9IGJvZHlPckZyYW1lc2V0KCkpCisgICAgICAgIGRvY3VtZW50RWxl
bWVudCgpLT5yZXBsYWNlQ2hpbGQobmV3Qm9keS5yZWxlYXNlTm9uTnVsbCgpLCAqYm9keSwgZWMp
OwogICAgIGVsc2UKLSAgICAgICAgZG9jdW1lbnRFbGVtZW50KCktPnJlcGxhY2VDaGlsZChuZXdC
b2R5LnJlbGVhc2UoKSwgYiwgZWMpOworICAgICAgICBkb2N1bWVudEVsZW1lbnQoKS0+YXBwZW5k
Q2hpbGQobmV3Qm9keS5yZWxlYXNlTm9uTnVsbCgpLCBlYyk7CiB9CiAKIEhUTUxIZWFkRWxlbWVu
dCogRG9jdW1lbnQ6OmhlYWQoKQpAQCAtMzMyNiwxMyArMzMyNSw5IEBAIGJvb2wgRG9jdW1lbnQ6
OmNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKLWJvb2wgRG9jdW1lbnQ6OmNhblJlcGxhY2VDaGlsZChOb2RlKiBuZXdDaGlsZCwgTm9k
ZSogb2xkQ2hpbGQpCitib29sIERvY3VtZW50OjpjYW5SZXBsYWNlQ2hpbGQoTm9kZSYgbmV3Q2hp
bGQsIE5vZGUmIG9sZENoaWxkKQogewotICAgIGlmICghb2xkQ2hpbGQpCi0gICAgICAgIC8vIENv
bnRhaW5lck5vZGU6OnJlcGxhY2VDaGlsZCB3aWxsIHJhaXNlIGEgTk9UX0ZPVU5EX0VSUi4KLSAg
ICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBpZiAob2xkQ2hpbGQtPm5vZGVUeXBlKCkgPT0gbmV3
Q2hpbGQtPm5vZGVUeXBlKCkpCisgICAgaWYgKG9sZENoaWxkLm5vZGVUeXBlKCkgPT0gbmV3Q2hp
bGQubm9kZVR5cGUoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBpbnQgbnVtRG9jdHlw
ZXMgPSAwOwpAQCAtMzM0MSw3ICszMzM2LDcgQEAgYm9vbCBEb2N1bWVudDo6Y2FuUmVwbGFjZUNo
aWxkKE5vZGUqIG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCkKICAgICAvLyBGaXJzdCwgY2hlY2sg
aG93IG1hbnkgZG9jdHlwZXMgYW5kIGVsZW1lbnRzIHdlIGhhdmUsIG5vdCBjb3VudGluZwogICAg
IC8vIHRoZSBjaGlsZCB3ZSdyZSBhYm91dCB0byByZW1vdmUuCiAgICAgZm9yIChOb2RlKiBjID0g
Zmlyc3RDaGlsZCgpOyBjOyBjID0gYy0+bmV4dFNpYmxpbmcoKSkgewotICAgICAgICBpZiAoYyA9
PSBvbGRDaGlsZCkKKyAgICAgICAgaWYgKGMgPT0gJm9sZENoaWxkKQogICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgIAogICAgICAgICBzd2l0Y2ggKGMtPm5vZGVUeXBlKCkpIHsKQEAgLTMz
NTcsOCArMzM1Miw4IEBAIGJvb2wgRG9jdW1lbnQ6OmNhblJlcGxhY2VDaGlsZChOb2RlKiBuZXdD
aGlsZCwgTm9kZSogb2xkQ2hpbGQpCiAgICAgfQogICAgIAogICAgIC8vIFRoZW4sIHNlZSBob3cg
bWFueSBkb2N0eXBlcyBhbmQgZWxlbWVudHMgbWlnaHQgYmUgYWRkZWQgYnkgdGhlIG5ldyBjaGls
ZC4KLSAgICBpZiAobmV3Q2hpbGQtPmlzRG9jdW1lbnRGcmFnbWVudCgpKSB7Ci0gICAgICAgIGZv
ciAoTm9kZSogYyA9IG5ld0NoaWxkLT5maXJzdENoaWxkKCk7IGM7IGMgPSBjLT5uZXh0U2libGlu
ZygpKSB7CisgICAgaWYgKG5ld0NoaWxkLmlzRG9jdW1lbnRGcmFnbWVudCgpKSB7CisgICAgICAg
IGZvciAoTm9kZSogYyA9IG5ld0NoaWxkLmZpcnN0Q2hpbGQoKTsgYzsgYyA9IGMtPm5leHRTaWJs
aW5nKCkpIHsKICAgICAgICAgICAgIHN3aXRjaCAoYy0+bm9kZVR5cGUoKSkgewogICAgICAgICAg
ICAgY2FzZSBBVFRSSUJVVEVfTk9ERToKICAgICAgICAgICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9O
T0RFOgpAQCAtMzM4MSw3ICszMzc2LDcgQEAgYm9vbCBEb2N1bWVudDo6Y2FuUmVwbGFjZUNoaWxk
KE5vZGUqIG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCkKICAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgIH0gZWxzZSB7Ci0gICAgICAgIHN3aXRjaCAobmV3Q2hpbGQtPm5vZGVUeXBlKCkpIHsK
KyAgICAgICAgc3dpdGNoIChuZXdDaGlsZC5ub2RlVHlwZSgpKSB7CiAgICAgICAgIGNhc2UgQVRU
UklCVVRFX05PREU6CiAgICAgICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9OT0RFOgogICAgICAgICBj
YXNlIERPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CkBAIC0zNDA5LDcgKzM0MDQsNyBAQCBib29sIERv
Y3VtZW50OjpjYW5SZXBsYWNlQ2hpbGQoTm9kZSogbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkKQog
ICAgIHJldHVybiB0cnVlOwogfQogCi1SZWZQdHI8Tm9kZT4gRG9jdW1lbnQ6OmNsb25lTm9kZUlu
dGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbiB0eXBlKQorUmVmPE5vZGU+IERvY3Vt
ZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24gdHlwZSkK
IHsKICAgICBSZWY8RG9jdW1lbnQ+IGNsb25lID0gY2xvbmVEb2N1bWVudFdpdGhvdXRDaGlsZHJl
bigpOwogICAgIGNsb25lLT5jbG9uZURhdGFGcm9tRG9jdW1lbnQoKnRoaXMpOwpAQCAtMzQxOCw3
ICszNDEzLDcgQEAgUmVmUHRyPE5vZGU+IERvY3VtZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1
bWVudCYsIENsb25pbmdPcGVyYXRpb24gdHlwZSkKICAgICBjYXNlIENsb25pbmdPcGVyYXRpb246
OlNlbGZXaXRoVGVtcGxhdGVDb250ZW50OgogICAgICAgICBicmVhazsKICAgICBjYXNlIENsb25p
bmdPcGVyYXRpb246OkV2ZXJ5dGhpbmc6Ci0gICAgICAgIGNsb25lQ2hpbGROb2RlcyhjbG9uZS5w
dHIoKSk7CisgICAgICAgIGNsb25lQ2hpbGROb2RlcyhjbG9uZSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KICAgICByZXR1cm4gV1RGOjptb3ZlKGNsb25lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5k
ZXggNGYwOWI3Y2U1NzM1YzRhOWIyZWNjMGQyZDZiYTRkYWI4MDU1ZTg0Yi4uZTBhZDFiYzJiOWU3
ZGZhNWIxODc2ZGFiN2Q0ZGYwMzI3YTkwZGY0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTc0
Niw3ICs3NDYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBub2RlQ2hpbGRyZW5XaWxsQmVSZW1vdmVk
KENvbnRhaW5lck5vZGUmKTsKICAgICAvLyBub2RlV2lsbEJlUmVtb3ZlZCBpcyBvbmx5IHNhZmUg
d2hlbiByZW1vdmluZyBvbmUgbm9kZSBhdCBhIHRpbWUuCiAgICAgdm9pZCBub2RlV2lsbEJlUmVt
b3ZlZChOb2RlJik7Ci0gICAgYm9vbCBjYW5SZXBsYWNlQ2hpbGQoTm9kZSogbmV3Q2hpbGQsIE5v
ZGUqIG9sZENoaWxkKTsKKyAgICBib29sIGNhblJlcGxhY2VDaGlsZChOb2RlJiBuZXdDaGlsZCwg
Tm9kZSYgb2xkQ2hpbGQpOwogCiAgICAgdm9pZCB0ZXh0SW5zZXJ0ZWQoTm9kZSosIHVuc2lnbmVk
IG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKTsKICAgICB2b2lkIHRleHRSZW1vdmVkKE5vZGUqLCB1
bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCk7CkBAIC0xMzEwLDcgKzEzMTAsNyBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgZmlu
YWw7CiAgICAgdmlydHVhbCBOb2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0IG92ZXJyaWRlIGZpbmFs
OwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlKSBjb25zdCBvdmVy
cmlkZSBmaW5hbDsKLSAgICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChE
b2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwg
UmVmPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikg
b3ZlcnJpZGUgZmluYWw7CiAgICAgdm9pZCBjbG9uZURhdGFGcm9tRG9jdW1lbnQoY29uc3QgRG9j
dW1lbnQmKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZWZTY3JpcHRFeGVjdXRpb25Db250ZXh0KCkg
b3ZlcnJpZGUgZmluYWwgeyByZWYoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50RnJhZ21lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21l
bnQuY3BwCmluZGV4IDRmYWI1OGUzNGQ0NjU1ZWNmNGUzN2RhNWRkOWMzYzU2MjJmNDA3NjguLmY5
YjM4YTBiZDI4ZThlM2M2MDkzNGFmZjFhNjAwNTkyNzA5MDNmZWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnRGcmFnbWVudC5jcHAKQEAgLTY3LDE4ICs2NywxOCBAQCBib29sIERvY3VtZW50
RnJhZ21lbnQ6OmNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkgY29uc3QKICAgICB9CiB9
CiAKLVJlZlB0cjxOb2RlPiBEb2N1bWVudEZyYWdtZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1
bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24gdHlwZSkKK1JlZjxOb2RlPiBE
b2N1bWVudEZyYWdtZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1l
bnQsIENsb25pbmdPcGVyYXRpb24gdHlwZSkKIHsKLSAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVu
dD4gY2xvbmUgPSBjcmVhdGUodGFyZ2V0RG9jdW1lbnQpOworICAgIFJlZjxEb2N1bWVudEZyYWdt
ZW50PiBjbG9uZSA9IGNyZWF0ZSh0YXJnZXREb2N1bWVudCk7CiAgICAgc3dpdGNoICh0eXBlKSB7
CiAgICAgY2FzZSBDbG9uaW5nT3BlcmF0aW9uOjpPbmx5U2VsZjoKICAgICBjYXNlIENsb25pbmdP
cGVyYXRpb246OlNlbGZXaXRoVGVtcGxhdGVDb250ZW50OgogICAgICAgICBicmVhazsKICAgICBj
YXNlIENsb25pbmdPcGVyYXRpb246OkV2ZXJ5dGhpbmc6Ci0gICAgICAgIGNsb25lQ2hpbGROb2Rl
cyhjbG9uZS5nZXQoKSk7CisgICAgICAgIGNsb25lQ2hpbGROb2RlcyhjbG9uZSk7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KLSAgICByZXR1cm4gY2xvbmU7CisgICAgcmV0dXJuIFdURjo6bW92ZShj
bG9uZSk7CiB9CiAKIHZvaWQgRG9jdW1lbnRGcmFnbWVudDo6cGFyc2VIVE1MKGNvbnN0IFN0cmlu
ZyYgc291cmNlLCBFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgUGFyc2VyQ29udGVudFBvbGljeSBw
YXJzZXJDb250ZW50UG9saWN5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50RnJhZ21lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmgKaW5k
ZXggZDA3ZTAzNGMwMDdlNjYyOTYyNTFiZDBjMGIxNjA2ZDcwOWEwNWY2NS4uNmViMWVkNjFjNDYy
MDEzZmQwNTc0ZDRhZmUzZWNjNWUyNGM4NDVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50RnJhZ21lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRG
cmFnbWVudC5oCkBAIC00OCw3ICs0OCw3IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICB2
aXJ0dWFsIE5vZGVUeXBlIG5vZGVUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7Ci0gICAgdmly
dHVhbCBSZWZQdHI8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3Bl
cmF0aW9uKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5h
bChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9v
bCBjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlKSBjb25zdCBvdmVycmlkZTsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFR5cGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50VHlwZS5jcHAKaW5kZXggNjdlM2Q1Mzg0M2Y4MmEwYmM1OWI5ZDBlZmZj
YWUyN2FmMzBiOTYzNC4uYzE5ZDAxODJhZmFmZGE1ZDhjMjBlY2ZkN2QzOWQxNWJhMDE4N2ViYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50VHlwZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50VHlwZS5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgTm9kZTo6
Tm9kZVR5cGUgRG9jdW1lbnRUeXBlOjpub2RlVHlwZSgpIGNvbnN0CiAgICAgcmV0dXJuIERPQ1VN
RU5UX1RZUEVfTk9ERTsKIH0KIAotUmVmUHRyPE5vZGU+IERvY3VtZW50VHlwZTo6Y2xvbmVOb2Rl
SW50ZXJuYWwoRG9jdW1lbnQmIGRvY3VtZW50VGFyZ2V0LCBDbG9uaW5nT3BlcmF0aW9uKQorUmVm
PE5vZGU+IERvY3VtZW50VHlwZTo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIGRvY3VtZW50
VGFyZ2V0LCBDbG9uaW5nT3BlcmF0aW9uKQogewogICAgIHJldHVybiBjcmVhdGUoZG9jdW1lbnRU
YXJnZXQsIG1fbmFtZSwgbV9wdWJsaWNJZCwgbV9zeXN0ZW1JZCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnRUeXBlLmgKaW5kZXggYzdhMWQ5YjUyNmY2ZWVlYTExY2EzYTcyNzVlYjMxZjVhNmUxMzJh
NS4uYzc5YzBjZWE4NjlkMjA1OWJiZGJiODIxNTljOGZmMTA3ODgzOGVkNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudFR5cGUuaApAQCAtNTIsNyArNTIsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
VVJMIGJhc2VVUkkoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFN0cmluZyBub2RlTmFt
ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgTm9kZVR5cGUgbm9kZVR5cGUoKSBjb25z
dCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChE
b2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPE5v
ZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJp
ZGU7CiAKICAgICBTdHJpbmcgbV9uYW1lOwogICAgIFN0cmluZyBtX3B1YmxpY0lkOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCmluZGV4IDY3NTAwMGE1NGE3MDgyOWMwZDExMTJkOThiZjg5YmNhY2RkN2Mz
OWMuLjNhODkwNjE3ZmEzYTA3YzdhMTljYTdhMzQyOTdjMTcxOTI4NGI5OWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKQEAgLTMxMiwzOCArMzEyLDM3IEBAIHZvaWQgRWxlbWVudDo6ZGlzcGF0Y2hT
aW11bGF0ZWRDbGljayhFdmVudCogdW5kZXJseWluZ0V2ZW50LCBTaW11bGF0ZWRDbGlja01vdXNl
CiAgICAgRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaFNpbXVsYXRlZENsaWNrKHRoaXMsIHVuZGVy
bHlpbmdFdmVudCwgZXZlbnRPcHRpb25zLCB2aXN1YWxPcHRpb25zKTsKIH0KIAotUmVmUHRyPE5v
ZGU+IEVsZW1lbnQ6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwg
Q2xvbmluZ09wZXJhdGlvbiB0eXBlKQorUmVmPE5vZGU+IEVsZW1lbnQ6OmNsb25lTm9kZUludGVy
bmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbiB0eXBlKQogewog
ICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgQ2xvbmluZ09wZXJhdGlvbjo6T25seVNlbGY6
CiAgICAgY2FzZSBDbG9uaW5nT3BlcmF0aW9uOjpTZWxmV2l0aFRlbXBsYXRlQ29udGVudDoKICAg
ICAgICAgcmV0dXJuIGNsb25lRWxlbWVudFdpdGhvdXRDaGlsZHJlbih0YXJnZXREb2N1bWVudCk7
CiAgICAgY2FzZSBDbG9uaW5nT3BlcmF0aW9uOjpFdmVyeXRoaW5nOgotICAgICAgICByZXR1cm4g
Y2xvbmVFbGVtZW50V2l0aENoaWxkcmVuKHRhcmdldERvY3VtZW50KTsKKyAgICAgICAgYnJlYWs7
CiAgICAgfQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBudWxscHRyOwor
ICAgIHJldHVybiBjbG9uZUVsZW1lbnRXaXRoQ2hpbGRyZW4odGFyZ2V0RG9jdW1lbnQpOwogfQog
Ci1SZWZQdHI8RWxlbWVudD4gRWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aENoaWxkcmVuKERvY3Vt
ZW50JiB0YXJnZXREb2N1bWVudCkKK1JlZjxFbGVtZW50PiBFbGVtZW50OjpjbG9uZUVsZW1lbnRX
aXRoQ2hpbGRyZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50KQogewotICAgIFJlZlB0cjxFbGVt
ZW50PiBjbG9uZSA9IGNsb25lRWxlbWVudFdpdGhvdXRDaGlsZHJlbih0YXJnZXREb2N1bWVudCk7
Ci0gICAgY2xvbmVDaGlsZE5vZGVzKGNsb25lLmdldCgpKTsKLSAgICByZXR1cm4gY2xvbmUucmVs
ZWFzZSgpOworICAgIFJlZjxFbGVtZW50PiBjbG9uZSA9IGNsb25lRWxlbWVudFdpdGhvdXRDaGls
ZHJlbih0YXJnZXREb2N1bWVudCk7CisgICAgY2xvbmVDaGlsZE5vZGVzKGNsb25lKTsKKyAgICBy
ZXR1cm4gY2xvbmU7CiB9CiAKLVJlZlB0cjxFbGVtZW50PiBFbGVtZW50OjpjbG9uZUVsZW1lbnRX
aXRob3V0Q2hpbGRyZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50KQorUmVmPEVsZW1lbnQ+IEVs
ZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhvdXRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1l
bnQpCiB7Ci0gICAgUmVmUHRyPEVsZW1lbnQ+IGNsb25lID0gY2xvbmVFbGVtZW50V2l0aG91dEF0
dHJpYnV0ZXNBbmRDaGlsZHJlbih0YXJnZXREb2N1bWVudCk7CisgICAgUmVmPEVsZW1lbnQ+IGNs
b25lID0gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbih0YXJnZXREb2N1
bWVudCk7CiAgICAgLy8gVGhpcyB3aWxsIGNhdGNoIEhUTUwgZWxlbWVudHMgaW4gdGhlIHdyb25n
IG5hbWVzcGFjZSB0aGF0IGFyZSBub3QgY29ycmVjdGx5IGNvcGllZC4KICAgICAvLyBUaGlzIGlz
IGEgc2FuaXR5IGNoZWNrIGFzIEhUTUwgb3ZlcmxvYWRzIHNvbWUgb2YgdGhlIERPTSBtZXRob2Rz
LgogICAgIEFTU0VSVChpc0hUTUxFbGVtZW50KCkgPT0gY2xvbmUtPmlzSFRNTEVsZW1lbnQoKSk7
CiAKICAgICBjbG9uZS0+Y2xvbmVEYXRhRnJvbUVsZW1lbnQoKnRoaXMpOwotICAgIHJldHVybiBj
bG9uZS5yZWxlYXNlKCk7CisgICAgcmV0dXJuIGNsb25lOwogfQogCi1SZWZQdHI8RWxlbWVudD4g
RWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVu
dCYgdGFyZ2V0RG9jdW1lbnQpCitSZWY8RWxlbWVudD4gRWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0
aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQpCiB7CiAg
ICAgcmV0dXJuIHRhcmdldERvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnUU5hbWUoKSwgZmFsc2Up
OwogfQpAQCAtMjMxOSw3ICsyMzE4LDcgQEAgdm9pZCBFbGVtZW50OjpzZXRPdXRlckhUTUwoY29u
c3QgU3RyaW5nJiBodG1sLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBpZiAoZWMpCiAgICAgICAg
IHJldHVybjsKICAgICAKLSAgICBwYXJlbnQtPnJlcGxhY2VDaGlsZChmcmFnbWVudC5yZWxlYXNl
KCksIHRoaXMsIGVjKTsKKyAgICBwYXJlbnQtPnJlcGxhY2VDaGlsZChmcmFnbWVudC5yZWxlYXNl
Tm9uTnVsbCgpLCAqdGhpcywgZWMpOwogICAgIFJlZlB0cjxOb2RlPiBub2RlID0gbmV4dCA/IG5l
eHQtPnByZXZpb3VzU2libGluZygpIDogbnVsbHB0cjsKICAgICBpZiAoIWVjICYmIGlzPFRleHQ+
KG5vZGUuZ2V0KCkpKQogICAgICAgICBtZXJnZVdpdGhOZXh0VGV4dE5vZGUoZG93bmNhc3Q8VGV4
dD4oKm5vZGUpLCBlYyk7CkBAIC0yMzM4LDcgKzIzMzcsNyBAQCB2b2lkIEVsZW1lbnQ6OnNldElu
bmVySFRNTChjb25zdCBTdHJpbmcmIGh0bWwsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICAg
ICAgY29udGFpbmVyID0gZG93bmNhc3Q8SFRNTFRlbXBsYXRlRWxlbWVudD4oKnRoaXMpLmNvbnRl
bnQoKTsKICNlbmRpZgogCi0gICAgICAgIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudCgqY29u
dGFpbmVyLCBmcmFnbWVudC5yZWxlYXNlKCksIGVjKTsKKyAgICAgICAgcmVwbGFjZUNoaWxkcmVu
V2l0aEZyYWdtZW50KCpjb250YWluZXIsIGZyYWdtZW50LnJlbGVhc2VOb25OdWxsKCksIGVjKTsK
ICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IDFlNjA3MDNjYjZiMmZkOTM2MDcxZjg1
YjliOWRhOWQ3YWE0MGNjNGIuLjA0ODEwZTFjZjg0OTVlZDI0ZmQ4OTQ1MDUzZmFmYmNkNDMyMmQx
MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMjAxLDggKzIwMSw4IEBAIHB1YmxpYzoKIAogICAg
IHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBSZWZQdHI8
RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aENoaWxkcmVuKERvY3VtZW50Jik7Ci0gICAgUmVmUHRy
PEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRDaGlsZHJlbihEb2N1bWVudCYpOworICAgIFJl
ZjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRoQ2hpbGRyZW4oRG9jdW1lbnQmKTsKKyAgICBSZWY8
RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dENoaWxkcmVuKERvY3VtZW50Jik7CiAKICAgICB2
b2lkIG5vcm1hbGl6ZUF0dHJpYnV0ZXMoKTsKICAgICBTdHJpbmcgbm9kZU5hbWVQcmVzZXJ2aW5n
Q2FzZSgpIGNvbnN0OwpAQCAtNTYzLDggKzU2Myw4IEBAIHByaXZhdGU6CiAKICAgICAvLyBjbG9u
ZU5vZGUgaXMgcHJpdmF0ZSBzbyB0aGF0IG5vbi12aXJ0dWFsIGNsb25lRWxlbWVudFdpdGhDaGls
ZHJlbiBhbmQgY2xvbmVFbGVtZW50V2l0aG91dENoaWxkcmVuCiAgICAgLy8gYXJlIHVzZWQgaW5z
dGVhZC4KLSAgICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVu
dCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVmUHRyPEVsZW1l
bnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmKTsK
KyAgICB2aXJ0dWFsIFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25p
bmdPcGVyYXRpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPEVsZW1lbnQ+IGNsb25lRWxl
bWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmKTsKIAogICAgIHZvaWQg
YWRkU2hhZG93Um9vdChSZWY8U2hhZG93Um9vdD4mJik7CiAgICAgdm9pZCByZW1vdmVTaGFkb3dS
b290KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuY3BwCmluZGV4IGEyZmY2M2Iw
MTBlNmUyOGUwZmM0ZWFhZTg1YTc0YTEzZmU5ZDZjN2YuLjdlOTFhNDYyZGE4MjA5ZDkyMmM0NWRj
ODRjNDFhMDg1NWFkNmJlMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlS
ZWZlcmVuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuY3Bw
CkBAIC00Niw3ICs0Niw3IEBAIE5vZGU6Ok5vZGVUeXBlIEVudGl0eVJlZmVyZW5jZTo6bm9kZVR5
cGUoKSBjb25zdAogICAgIHJldHVybiBFTlRJVFlfUkVGRVJFTkNFX05PREU7CiB9CiAKLVJlZlB0
cjxOb2RlPiBFbnRpdHlSZWZlcmVuY2U6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJn
ZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikKK1JlZjxOb2RlPiBFbnRpdHlSZWZlcmVuY2U6
OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJh
dGlvbikKIHsKICAgICByZXR1cm4gY3JlYXRlKHRhcmdldERvY3VtZW50LCBtX2VudGl0eU5hbWUp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5oCmluZGV4IDAzZjQzY2RmOTVlYTY4
ZjAwNGQ5ZjExM2JhMTY4ZjBmN2JmYWYzOTYuLjg2ZGZlYjM5ODI1YjM0NTBlNzUzNTkyNTA2ODUx
MTBiM2FmMGNhOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVu
Y2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmgKQEAgLTM1LDcg
KzM1LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1lKCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCBOb2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0IG92ZXJyaWRl
OwotICAgIHZpcnR1YWwgUmVmUHRyPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50Jiwg
Q2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8Tm9kZT4gY2xvbmVO
b2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKIAogICAg
IFN0cmluZyBtX2VudGl0eU5hbWU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDhhYTRhMWYyYTI0
ZmMwZThmMWRlODY0YWNhY2MxZTJkYzVkNmNhNTMuLjJmOGM2Zjc5OWFiYzdiZTQ2ZTk3ODNlZTU2
MTJmYzhhOTQ0MTQ5MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTQyOSwzOCArNDI5LDU0IEBAIEVs
ZW1lbnQqIE5vZGU6Om5leHRFbGVtZW50U2libGluZygpIGNvbnN0CiAKIGJvb2wgTm9kZTo6aW5z
ZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIHJlZkNoaWxkLCBFeGNl
cHRpb25Db2RlJiBlYykKIHsKKyAgICBpZiAoIW5ld0NoaWxkKSB7CisgICAgICAgIGVjID0gVHlw
ZUVycm9yOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogICAgIGlmICghaXM8Q29udGFp
bmVyTm9kZT4oKnRoaXMpKSB7CiAgICAgICAgIGVjID0gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIHJldHVybiBkb3duY2FzdDxDb250YWlu
ZXJOb2RlPigqdGhpcykuaW5zZXJ0QmVmb3JlKG5ld0NoaWxkLCByZWZDaGlsZCwgZWMpOworICAg
IHJldHVybiBkb3duY2FzdDxDb250YWluZXJOb2RlPigqdGhpcykuaW5zZXJ0QmVmb3JlKCpuZXdD
aGlsZCwgcmVmQ2hpbGQsIGVjKTsKIH0KIAogYm9vbCBOb2RlOjpyZXBsYWNlQ2hpbGQoUGFzc1Jl
ZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQog
eworICAgIGlmICghbmV3Q2hpbGQgfHwgIW9sZENoaWxkKSB7CisgICAgICAgIGVjID0gVHlwZUVy
cm9yOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogICAgIGlmICghaXM8Q29udGFpbmVy
Tm9kZT4oKnRoaXMpKSB7CiAgICAgICAgIGVjID0gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIHJldHVybiBkb3duY2FzdDxDb250YWluZXJO
b2RlPigqdGhpcykucmVwbGFjZUNoaWxkKG5ld0NoaWxkLCBvbGRDaGlsZCwgZWMpOworICAgIHJl
dHVybiBkb3duY2FzdDxDb250YWluZXJOb2RlPigqdGhpcykucmVwbGFjZUNoaWxkKCpuZXdDaGls
ZCwgKm9sZENoaWxkLCBlYyk7CiB9CiAKIGJvb2wgTm9kZTo6cmVtb3ZlQ2hpbGQoTm9kZSogb2xk
Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogeworICAgIGlmICghb2xkQ2hpbGQpIHsKKyAgICAg
ICAgZWMgPSBUeXBlRXJyb3I7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAgICAgaWYg
KCFpczxDb250YWluZXJOb2RlPigqdGhpcykpIHsKICAgICAgICAgZWMgPSBOT1RfRk9VTkRfRVJS
OwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIHJldHVybiBkb3duY2FzdDxDb250
YWluZXJOb2RlPigqdGhpcykucmVtb3ZlQ2hpbGQob2xkQ2hpbGQsIGVjKTsKKyAgICByZXR1cm4g
ZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4oKnRoaXMpLnJlbW92ZUNoaWxkKCpvbGRDaGlsZCwgZWMp
OwogfQogCiBib29sIE5vZGU6OmFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQogeworICAgIGlmICghbmV3Q2hpbGQpIHsKKyAgICAgICAgZWMg
PSBUeXBlRXJyb3I7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAgICAgaWYgKCFpczxD
b250YWluZXJOb2RlPigqdGhpcykpIHsKICAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9F
UlI7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIGRvd25jYXN0PENv
bnRhaW5lck5vZGU+KCp0aGlzKS5hcHBlbmRDaGlsZChuZXdDaGlsZCwgZWMpOworICAgIHJldHVy
biBkb3duY2FzdDxDb250YWluZXJOb2RlPigqdGhpcykuYXBwZW5kQ2hpbGQoKm5ld0NoaWxkLCBl
Yyk7CiB9CiAKIHN0YXRpYyBIYXNoU2V0PFJlZlB0cjxOb2RlPj4gbm9kZVNldFByZVRyYW5zZm9y
bWVkRnJvbU5vZGVPclN0cmluZ1ZlY3Rvcihjb25zdCBWZWN0b3I8Tm9kZU9yU3RyaW5nPiYgbm9k
ZU9yU3RyaW5nVmVjdG9yKQpAQCAtNTE1LDcgKzUzMSw3IEBAIHZvaWQgTm9kZTo6YmVmb3JlKFZl
Y3RvcjxOb2RlT3JTdHJpbmc+JiYgbm9kZU9yU3RyaW5nVmVjdG9yLCBFeGNlcHRpb25Db2RlJiBl
YykKICAgICBlbHNlCiAgICAgICAgIHZpYWJsZVByZXZpb3VzU2libGluZyA9IHBhcmVudC0+Zmly
c3RDaGlsZCgpOwogCi0gICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobm9kZS5yZWxlYXNlKCksIHZp
YWJsZVByZXZpb3VzU2libGluZy5nZXQoKSwgZWMpOworICAgIHBhcmVudC0+aW5zZXJ0QmVmb3Jl
KG5vZGUucmVsZWFzZU5vbk51bGwoKSwgdmlhYmxlUHJldmlvdXNTaWJsaW5nLmdldCgpLCBlYyk7
CiB9CiAKIHZvaWQgTm9kZTo6YWZ0ZXIoVmVjdG9yPE5vZGVPclN0cmluZz4mJiBub2RlT3JTdHJp
bmdWZWN0b3IsIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtNTMxLDcgKzU0Nyw3IEBAIHZvaWQgTm9k
ZTo6YWZ0ZXIoVmVjdG9yPE5vZGVPclN0cmluZz4mJiBub2RlT3JTdHJpbmdWZWN0b3IsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogICAgIGlmIChlYyB8fCAhbm9kZSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobm9kZS5yZWxlYXNlKCksIHZpYWJsZU5leHRTaWJsaW5n
LmdldCgpLCBlYyk7CisgICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobm9kZS5yZWxlYXNlTm9uTnVs
bCgpLCB2aWFibGVOZXh0U2libGluZy5nZXQoKSwgZWMpOwogfQogCiB2b2lkIE5vZGU6OnJlcGxh
Y2VXaXRoKFZlY3RvcjxOb2RlT3JTdHJpbmc+JiYgbm9kZU9yU3RyaW5nVmVjdG9yLCBFeGNlcHRp
b25Db2RlJiBlYykKQEAgLTU0OCwxNSArNTY0LDE1IEBAIHZvaWQgTm9kZTo6cmVwbGFjZVdpdGgo
VmVjdG9yPE5vZGVPclN0cmluZz4mJiBub2RlT3JTdHJpbmdWZWN0b3IsIEV4Y2VwdGlvbkNvZGUm
CiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChwYXJlbnROb2RlKCkgPT0gcGFyZW50KQotICAg
ICAgICBwYXJlbnQtPnJlcGxhY2VDaGlsZChub2RlLnJlbGVhc2UoKSwgdGhpcywgZWMpOworICAg
ICAgICBwYXJlbnQtPnJlcGxhY2VDaGlsZChub2RlLnJlbGVhc2VOb25OdWxsKCksICp0aGlzLCBl
Yyk7CiAgICAgZWxzZQotICAgICAgICBwYXJlbnQtPmluc2VydEJlZm9yZShub2RlLnJlbGVhc2Uo
KSwgdmlhYmxlTmV4dFNpYmxpbmcuZ2V0KCksIGVjKTsKKyAgICAgICAgcGFyZW50LT5pbnNlcnRC
ZWZvcmUobm9kZS5yZWxlYXNlTm9uTnVsbCgpLCB2aWFibGVOZXh0U2libGluZy5nZXQoKSwgZWMp
OwogfQogCiB2b2lkIE5vZGU6OnJlbW92ZShFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAo
Q29udGFpbmVyTm9kZSogcGFyZW50ID0gcGFyZW50Tm9kZSgpKQotICAgICAgICBwYXJlbnQtPnJl
bW92ZUNoaWxkKHRoaXMsIGVjKTsKKyAgICAgICAgcGFyZW50LT5yZW1vdmVDaGlsZCgqdGhpcywg
ZWMpOwogfQogCiB2b2lkIE5vZGU6Om5vcm1hbGl6ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCAxODQ4N2E2
ZTU2OWFmNDM3MmE2YmE2MjcwYjA3MTlkY2VjNGI3Nzk3Li40YTQ2YTc5ZWYwZDlkMDA0MWRhODcx
NTAxYTBmYmM5MjYyMzBiYTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTIwMSw4ICsyMDEsOCBAQCBwdWJs
aWM6CiAgICAgICAgIFNlbGZXaXRoVGVtcGxhdGVDb250ZW50LAogICAgICAgICBFdmVyeXRoaW5n
LAogICAgIH07Ci0gICAgdmlydHVhbCBSZWZQdHI8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9j
dW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSA9IDA7Ci0gICAgUmVmUHRyPE5vZGU+IGNsb25lTm9k
ZShib29sIGRlZXApIHsgcmV0dXJuIGNsb25lTm9kZUludGVybmFsKGRvY3VtZW50KCksIGRlZXAg
PyBDbG9uaW5nT3BlcmF0aW9uOjpFdmVyeXRoaW5nIDogQ2xvbmluZ09wZXJhdGlvbjo6T25seVNl
bGYpOyB9CisgICAgdmlydHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQm
LCBDbG9uaW5nT3BlcmF0aW9uKSA9IDA7CisgICAgUmVmPE5vZGU+IGNsb25lTm9kZShib29sIGRl
ZXApIHsgcmV0dXJuIGNsb25lTm9kZUludGVybmFsKGRvY3VtZW50KCksIGRlZXAgPyBDbG9uaW5n
T3BlcmF0aW9uOjpFdmVyeXRoaW5nIDogQ2xvbmluZ09wZXJhdGlvbjo6T25seVNlbGYpOyB9CiAK
ICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lKCkgY29uc3Q7CiAgICAg
dmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSgpIGNvbnN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcAppbmRleCBiMzQzY2EzYTAx
YWU4ZWVmZGI1OTdlNWQ0ZTIyZTI3Yjk5M2ZlZjkwLi4zMDAwOWI3YjBkZmNlYTU2OWUyY2NlYTE4
MzE1Y2IyNzUxMzFjMDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2lu
Z0luc3RydWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLmNwcApAQCAtNzksNyArNzksNyBAQCBOb2RlOjpOb2RlVHlwZSBQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb246Om5vZGVUeXBlKCkgY29uc3QKICAgICByZXR1cm4gUFJPQ0VTU0lOR19JTlNUUlVD
VElPTl9OT0RFOwogfQogCi1SZWZQdHI8Tm9kZT4gUHJvY2Vzc2luZ0luc3RydWN0aW9uOjpjbG9u
ZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24p
CitSZWY8Tm9kZT4gUHJvY2Vzc2luZ0luc3RydWN0aW9uOjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1
bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24pCiB7CiAgICAgLy8gRklYTUU6
IElzIGl0IGEgcHJvYmxlbSB0aGF0IHRoaXMgZG9lcyBub3QgY29weSBtX2xvY2FsSHJlZj8KICAg
ICAvLyBXaGF0IGFib3V0IG90aGVyIGRhdGEgbWVtYmVycz8KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Q
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaAppbmRleCAyMWZkOWU5N2NkMmY3NWM4ZmQ3NTgwMGUwMjJh
ZGEyOTUzOTc2ZjhlLi5lZmE5MDViNjY2M2YzYTI5M2M5NzcxMDUzNGZkNmZkYTk4NDJlOTdhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5oCkBAIC01OCw3ICs1
OCw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFN0cmluZyBub2RlTmFtZSgpIGNvbnN0IG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgTm9kZVR5cGUgbm9kZVR5cGUoKSBjb25zdCBvdmVycmlkZTsK
LSAgICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENs
b25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNsb25lTm9k
ZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CiAKICAgICB2
aXJ0dWFsIEluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5l
ck5vZGUmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb20oQ29udGFpbmVy
Tm9kZSYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKaW5kZXggNGQyMjdkYWFmNGU0NDg4MTg4
NDI3MWMxYmRlOWYxODgzZjVhYzRhNC4uMjY1MDhjZjA0NzJkNGYwZWRlZmE1ZDM1NTdjZTkyM2M3
OGIxYjkyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCkBAIC02NjUsNyArNjY1LDcgQEAgUmVmUHRyPERv
Y3VtZW50RnJhZ21lbnQ+IFJhbmdlOjpwcm9jZXNzQ29udGVudHMoQWN0aW9uVHlwZSBhY3Rpb24s
IEV4Y2VwdGlvbkNvZGUKICAgICAvLyAob3IganVzdCBkZWxldGUgdGhlIHN0dWZmIGluIGJldHdl
ZW4pCiAKICAgICBpZiAoKGFjdGlvbiA9PSBFeHRyYWN0IHx8IGFjdGlvbiA9PSBDbG9uZSkgJiYg
bGVmdENvbnRlbnRzKQotICAgICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQobGVmdENvbnRlbnRz
LCBlYyk7CisgICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZCgqbGVmdENvbnRlbnRzLCBlYyk7
CiAKICAgICBpZiAocHJvY2Vzc1N0YXJ0KSB7CiAgICAgICAgIE5vZGVWZWN0b3Igbm9kZXM7CkBA
IC02NzUsNyArNjc1LDcgQEAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFJhbmdlOjpwcm9jZXNz
Q29udGVudHMoQWN0aW9uVHlwZSBhY3Rpb24sIEV4Y2VwdGlvbkNvZGUKICAgICB9CiAKICAgICBp
ZiAoKGFjdGlvbiA9PSBFeHRyYWN0IHx8IGFjdGlvbiA9PSBDbG9uZSkgJiYgcmlnaHRDb250ZW50
cykKLSAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKHJpZ2h0Q29udGVudHMsIGVjKTsKKyAg
ICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKCpyaWdodENvbnRlbnRzLCBlYyk7CiAKICAgICBy
ZXR1cm4gZnJhZ21lbnQ7CiB9CkBAIC03MDIsNyArNzAyLDcgQEAgUmVmUHRyPE5vZGU+IFJhbmdl
Ojpwcm9jZXNzQ29udGVudHNCZXR3ZWVuT2Zmc2V0cyhBY3Rpb25UeXBlIGFjdGlvbiwgUGFzc1Jl
ZlB0cjwKICAgICAgICAgZW5kT2Zmc2V0ID0gc3RkOjptaW4oZW5kT2Zmc2V0LCBzdGF0aWNfY2Fz
dDxDaGFyYWN0ZXJEYXRhKj4oY29udGFpbmVyKS0+bGVuZ3RoKCkpOwogICAgICAgICBzdGFydE9m
ZnNldCA9IHN0ZDo6bWluKHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQpOwogICAgICAgICBpZiAoYWN0
aW9uID09IEV4dHJhY3QgfHwgYWN0aW9uID09IENsb25lKSB7Ci0gICAgICAgICAgICBSZWZQdHI8
Q2hhcmFjdGVyRGF0YT4gYyA9IHN0YXRpY19wb2ludGVyX2Nhc3Q8Q2hhcmFjdGVyRGF0YT4oY29u
dGFpbmVyLT5jbG9uZU5vZGUodHJ1ZSkpOworICAgICAgICAgICAgUmVmUHRyPENoYXJhY3RlckRh
dGE+IGMgPSBzdGF0aWNfY2FzdDxDaGFyYWN0ZXJEYXRhKj4oY29udGFpbmVyLT5jbG9uZU5vZGUo
dHJ1ZSkucHRyKCkpOwogICAgICAgICAgICAgZGVsZXRlQ2hhcmFjdGVyRGF0YShjLCBzdGFydE9m
ZnNldCwgZW5kT2Zmc2V0LCBlYyk7CiAgICAgICAgICAgICBpZiAoZnJhZ21lbnQpIHsKICAgICAg
ICAgICAgICAgICByZXN1bHQgPSBmcmFnbWVudDsKQEAgLTcxNyw3ICs3MTcsNyBAQCBSZWZQdHI8
Tm9kZT4gUmFuZ2U6OnByb2Nlc3NDb250ZW50c0JldHdlZW5PZmZzZXRzKEFjdGlvblR5cGUgYWN0
aW9uLCBQYXNzUmVmUHRyPAogICAgICAgICBlbmRPZmZzZXQgPSBzdGQ6Om1pbihlbmRPZmZzZXQs
IHN0YXRpY19jYXN0PFByb2Nlc3NpbmdJbnN0cnVjdGlvbio+KGNvbnRhaW5lciktPmRhdGEoKS5s
ZW5ndGgoKSk7CiAgICAgICAgIHN0YXJ0T2Zmc2V0ID0gc3RkOjptaW4oc3RhcnRPZmZzZXQsIGVu
ZE9mZnNldCk7CiAgICAgICAgIGlmIChhY3Rpb24gPT0gRXh0cmFjdCB8fCBhY3Rpb24gPT0gQ2xv
bmUpIHsKLSAgICAgICAgICAgIFJlZlB0cjxQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24+IGMgPSBzdGF0
aWNfcG9pbnRlcl9jYXN0PFByb2Nlc3NpbmdJbnN0cnVjdGlvbj4oY29udGFpbmVyLT5jbG9uZU5v
ZGUodHJ1ZSkpOworICAgICAgICAgICAgUmVmUHRyPFByb2Nlc3NpbmdJbnN0cnVjdGlvbj4gYyA9
IHN0YXRpY19jYXN0PFByb2Nlc3NpbmdJbnN0cnVjdGlvbio+KGNvbnRhaW5lci0+Y2xvbmVOb2Rl
KHRydWUpLnB0cigpKTsKICAgICAgICAgICAgIGMtPnNldERhdGEoYy0+ZGF0YSgpLnN1YnN0cmlu
ZyhzdGFydE9mZnNldCwgZW5kT2Zmc2V0IC0gc3RhcnRPZmZzZXQpLCBlYyk7CiAgICAgICAgICAg
ICBpZiAoZnJhZ21lbnQpIHsKICAgICAgICAgICAgICAgICByZXN1bHQgPSBmcmFnbWVudDsKQEAg
LTkzNSw3ICs5MzUsNyBAQCB2b2lkIFJhbmdlOjppbnNlcnROb2RlKFBhc3NSZWZQdHI8Tm9kZT4g
cHJwTmV3Tm9kZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIAogICAgICAgICBjb250YWluZXIgPSAmc3RhcnRDb250YWluZXIoKTsKLSAgICAgICAgY29u
dGFpbmVyLT5wYXJlbnROb2RlKCktPmluc2VydEJlZm9yZShuZXdOb2RlLnJlbGVhc2UoKSwgbmV3
VGV4dC5nZXQoKSwgZWMpOworICAgICAgICBjb250YWluZXItPnBhcmVudE5vZGUoKS0+aW5zZXJ0
QmVmb3JlKG5ld05vZGUucmVsZWFzZU5vbk51bGwoKSwgbmV3VGV4dC5nZXQoKSwgZWMpOwogICAg
ICAgICBpZiAoZWMpCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTEzMDMsNyArMTMwMyw3IEBA
IHZvaWQgUmFuZ2U6OnN1cnJvdW5kQ29udGVudHMoUGFzc1JlZlB0cjxOb2RlPiBwYXNzTmV3UGFy
ZW50LCBFeGNlcHRpb25Db2RlJiBlYykKIAogICAgIGVjID0gMDsKICAgICB3aGlsZSAoTm9kZSog
biA9IG5ld1BhcmVudC0+Zmlyc3RDaGlsZCgpKSB7Ci0gICAgICAgIGRvd25jYXN0PENvbnRhaW5l
ck5vZGU+KCpuZXdQYXJlbnQpLnJlbW92ZUNoaWxkKG4sIGVjKTsKKyAgICAgICAgZG93bmNhc3Q8
Q29udGFpbmVyTm9kZT4oKm5ld1BhcmVudCkucmVtb3ZlQ2hpbGQoKm4sIGVjKTsKICAgICAgICAg
aWYgKGVjKQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290
LmNwcAppbmRleCBhMTIyNTdmODJkZGFkYzgwMzhlOGEzMGEzNDI1MmY2MzI5ZjdiYjZjLi44ODYx
MDBkYjQ2OWUyNDFlNDZiOTU2YmM1NzAxZGEwY2M1ZTY2OTVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d1Jvb3QuY3BwCkBAIC05Miw3ICs5Miw3IEBAIHZvaWQgU2hhZG93Um9vdDo6c2V0SW5uZXJIVE1M
KGNvbnN0IFN0cmluZyYgbWFya3VwLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICB9CiAKICAgICBp
ZiAoUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGb3JJ
bm5lck91dGVySFRNTChtYXJrdXAsIGhvc3QoKSwgQWxsb3dTY3JpcHRpbmdDb250ZW50LCBlYykp
Ci0gICAgICAgIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudCgqdGhpcywgZnJhZ21lbnQucmVs
ZWFzZSgpLCBlYyk7CisgICAgICAgIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudCgqdGhpcywg
ZnJhZ21lbnQucmVsZWFzZU5vbk51bGwoKSwgZWMpOwogfQogCiBib29sIFNoYWRvd1Jvb3Q6OmNo
aWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkgY29uc3QKQEAgLTEzMSw5ICsxMzEsMTAgQEAg
dm9pZCBTaGFkb3dSb290OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5n
ZSkKICAgICBpbnZhbGlkYXRlRGlzdHJpYnV0aW9uKCk7CiB9CiAKLVJlZlB0cjxOb2RlPiBTaGFk
b3dSb290OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pCitS
ZWY8Tm9kZT4gU2hhZG93Um9vdDo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5n
T3BlcmF0aW9uKQogewotICAgIHJldHVybiBudWxscHRyOyAvLyBTaGFkb3dSb290cyBzaG91bGQg
bmV2ZXIgYmUgY2xvbmVkLgorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
cmV0dXJuICpzdGF0aWNfY2FzdDxOb2RlKj4obnVsbHB0cik7IC8vIFNoYWRvd1Jvb3RzIHNob3Vs
ZCBuZXZlciBiZSBjbG9uZWQuCiB9CiAKIHZvaWQgU2hhZG93Um9vdDo6cmVtb3ZlQWxsRXZlbnRM
aXN0ZW5lcnMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKaW5kZXggNmQzMTFmZGI2MjYzZGExMmRj
OWQ5MDRmNzEwZDA3YjllYzg1YThjZi4uNjMxNjA4YWYxYWQ0NDM2YTI1YmE2MWViMzlkZWQ4ZmY2
YTIyYmJkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCkBAIC03Niw3ICs3Niw3IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCBib29sIGNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUpIGNvbnN0IG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFu
Z2UmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgUmVmUHRyPE5vZGU+IGNsb25lTm9kZUludGVy
bmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBS
ZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBv
dmVycmlkZTsKIAogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZG4ndCBoYXBwZW4uIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODgzNAogICAgIGJvb2wgaXNPcnBoYW4o
KSBjb25zdCB7IHJldHVybiAhbV9ob3N0OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKaW5kZXggYjExNzFkNzYx
MWJlNmRlNjUxNmI2MDVkY2ZlMWI2ZGMxOWQ3MTM0My4uNmM0Yzg5ZGE5ZWI2ZWZjZjA2YWI4NDI5
ZWE1YzRkMTIyM2VlMzQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcApAQCAtNzMsNyArNzMsNyBAQCBSZWZQ
dHI8VGV4dD4gVGV4dDo6c3BsaXRUZXh0KHVuc2lnbmVkIG9mZnNldCwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiAgICAgZGlzcGF0Y2hNb2RpZmllZEV2ZW50KG9sZFN0cik7CiAKICAgICBpZiAocGFyZW50
Tm9kZSgpKQotICAgICAgICBwYXJlbnROb2RlKCktPmluc2VydEJlZm9yZShuZXdUZXh0LnB0cigp
LCBuZXh0U2libGluZygpLCBlYyk7CisgICAgICAgIHBhcmVudE5vZGUoKS0+aW5zZXJ0QmVmb3Jl
KG5ld1RleHQuY29weVJlZigpLCBuZXh0U2libGluZygpLCBlYyk7CiAgICAgaWYgKGVjKQogICAg
ICAgICByZXR1cm4gMDsKIApAQCAtMTMyLDI4ICsxMzIsMjggQEAgUmVmUHRyPFRleHQ+IFRleHQ6
OnJlcGxhY2VXaG9sZVRleHQoY29uc3QgU3RyaW5nJiBuZXdUZXh0LCBFeGNlcHRpb25Db2RlJikK
ICAgICBSZWZQdHI8VGV4dD4gcHJvdGVjdGVkVGhpcyh0aGlzKTsgLy8gTXV0YXRpb24gZXZlbnQg
aGFuZGxlcnMgY291bGQgY2F1c2Ugb3VyIGxhc3QgcmVmIHRvIGdvIGF3YXkKICAgICBSZWZQdHI8
Q29udGFpbmVyTm9kZT4gcGFyZW50ID0gcGFyZW50Tm9kZSgpOyAvLyBQcm90ZWN0IGFnYWluc3Qg
bXV0YXRpb24gaGFuZGxlcnMgbW92aW5nIHRoaXMgbm9kZSBkdXJpbmcgdHJhdmVyc2FsCiAgICAg
Zm9yIChSZWZQdHI8Tm9kZT4gbiA9IHN0YXJ0VGV4dDsgbiAmJiBuICE9IHRoaXMgJiYgbi0+aXNU
ZXh0Tm9kZSgpICYmIG4tPnBhcmVudE5vZGUoKSA9PSBwYXJlbnQ7KSB7Ci0gICAgICAgIFJlZlB0
cjxOb2RlPiBub2RlVG9SZW1vdmUobi5yZWxlYXNlKCkpOworICAgICAgICBSZWY8Tm9kZT4gbm9k
ZVRvUmVtb3ZlKG4ucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgICAgIG4gPSBub2RlVG9SZW1vdmUt
Pm5leHRTaWJsaW5nKCk7Ci0gICAgICAgIHBhcmVudC0+cmVtb3ZlQ2hpbGQobm9kZVRvUmVtb3Zl
LmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgcGFyZW50LT5yZW1vdmVDaGlsZChX
VEY6Om1vdmUobm9kZVRvUmVtb3ZlKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgfQogCiAgICAg
aWYgKHRoaXMgIT0gZW5kVGV4dCkgewogICAgICAgICBOb2RlKiBvbmVQYXN0RW5kVGV4dCA9IGVu
ZFRleHQtPm5leHRTaWJsaW5nKCk7CiAgICAgICAgIGZvciAoUmVmUHRyPE5vZGU+IG4gPSBuZXh0
U2libGluZygpOyBuICYmIG4gIT0gb25lUGFzdEVuZFRleHQgJiYgbi0+aXNUZXh0Tm9kZSgpICYm
IG4tPnBhcmVudE5vZGUoKSA9PSBwYXJlbnQ7KSB7Ci0gICAgICAgICAgICBSZWZQdHI8Tm9kZT4g
bm9kZVRvUmVtb3ZlKG4ucmVsZWFzZSgpKTsKKyAgICAgICAgICAgIFJlZjxOb2RlPiBub2RlVG9S
ZW1vdmUobi5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICAgICAgICAgIG4gPSBub2RlVG9SZW1vdmUt
Pm5leHRTaWJsaW5nKCk7Ci0gICAgICAgICAgICBwYXJlbnQtPnJlbW92ZUNoaWxkKG5vZGVUb1Jl
bW92ZS5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgICAgICAgICBwYXJlbnQtPnJlbW92
ZUNoaWxkKFdURjo6bW92ZShub2RlVG9SZW1vdmUpLCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICAg
ICAgfQogICAgIH0KIAogICAgIGlmIChuZXdUZXh0LmlzRW1wdHkoKSkgewogICAgICAgICBpZiAo
cGFyZW50ICYmIHBhcmVudE5vZGUoKSA9PSBwYXJlbnQpCi0gICAgICAgICAgICBwYXJlbnQtPnJl
bW92ZUNoaWxkKHRoaXMsIElHTk9SRV9FWENFUFRJT04pOwotICAgICAgICByZXR1cm4gMDsKKyAg
ICAgICAgICAgIHBhcmVudC0+cmVtb3ZlQ2hpbGQoKnRoaXMsIElHTk9SRV9FWENFUFRJT04pOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBzZXREYXRhKG5ld1RleHQsIElH
Tk9SRV9FWENFUFRJT04pOwotICAgIHJldHVybiBwcm90ZWN0ZWRUaGlzLnJlbGVhc2UoKTsKKyAg
ICByZXR1cm4gcHJvdGVjdGVkVGhpczsKIH0KIAogU3RyaW5nIFRleHQ6Om5vZGVOYW1lKCkgY29u
c3QKQEAgLTE2Niw3ICsxNjYsNyBAQCBOb2RlOjpOb2RlVHlwZSBUZXh0Ojpub2RlVHlwZSgpIGNv
bnN0CiAgICAgcmV0dXJuIFRFWFRfTk9ERTsKIH0KIAotUmVmUHRyPE5vZGU+IFRleHQ6OmNsb25l
Tm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikK
K1JlZjxOb2RlPiBUZXh0OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1l
bnQsIENsb25pbmdPcGVyYXRpb24pCiB7CiAgICAgcmV0dXJuIGNyZWF0ZSh0YXJnZXREb2N1bWVu
dCwgZGF0YSgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vVGV4dC5oCmluZGV4IGE5Njc0MzY0Y2RhMGRlZGI4ZWNhNTljYzBh
MjVhNTM3MmJiYTk3ZDQuLmVmZDZiZGU5MjdjMWY5OTkzNTdlMjUxZWU0NTQyMDlhZDFjZjUwZmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1RleHQuaApAQCAtNjIsNyArNjIsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAg
IHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBO
b2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVmUHRyPE5v
ZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBD
bG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRUeXBlQWxs
b3dlZChOb2RlVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIFJlZjxUZXh0PiB2
aXJ0dWFsQ3JlYXRlKGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Fw
cGVuZE5vZGVDb21tYW5kLmNwcAppbmRleCA2YThkOWU5MWEyNTFiMWFiOTdhMTllMjMyMzIwY2I4
NDY4YjVjMzA0Li5iOTM1MzEyMTcyODdlYjIyNjBhYzY3MTBmZmQ3ZTNjMGY4Njc3ODZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcApAQCAtMzUsMTMg
KzM1LDEyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQXBwZW5kTm9kZUNvbW1hbmQ6OkFw
cGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVm
UHRyPE5vZGU+IG5vZGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKK0FwcGVuZE5vZGVDb21t
YW5kOjpBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwg
UmVmPE5vZGU+JiYgbm9kZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQogICAgIDogU2ltcGxl
RWRpdENvbW1hbmQocGFyZW50LT5kb2N1bWVudCgpLCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9w
YXJlbnQocGFyZW50KQotICAgICwgbV9ub2RlKG5vZGUpCisgICAgLCBtX25vZGUoV1RGOjptb3Zl
KG5vZGUpKQogewogICAgIEFTU0VSVChtX3BhcmVudCk7Ci0gICAgQVNTRVJUKG1fbm9kZSk7CiAg
ICAgQVNTRVJUKCFtX25vZGUtPnBhcmVudE5vZGUoKSk7CiAKICAgICBBU1NFUlQobV9wYXJlbnQt
Pmhhc0VkaXRhYmxlU3R5bGUoKSB8fCAhbV9wYXJlbnQtPnJlbmRlcmVyKCkpOwpAQCAtNjgsMTAg
KzY3LDEwIEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogICAgIGlmICghbV9w
YXJlbnQtPmhhc0VkaXRhYmxlU3R5bGUoKSAmJiBtX3BhcmVudC0+cmVuZGVyZXIoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKG1fbm9kZS5nZXQoKSwgSUdO
T1JFX0VYQ0VQVElPTik7CisgICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKG1fbm9kZS5jb3B5UmVm
KCksIElHTk9SRV9FWENFUFRJT04pOwogCiAgICAgaWYgKHNob3VsZFBvc3RBY2Nlc3NpYmlsaXR5
Tm90aWZpY2F0aW9uKCkpCi0gICAgICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJl
YWtzKG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpKTsKKyAgICAgICAgc2VuZEFYVGV4dENo
YW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLnB0cigpLCBhcHBseUVkaXRUeXBlKCkpOwog
fQogCiB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQpAQCAtODEsNyArODAsNyBA
QCB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogCiAgICAgLy8gTmVlZCB0byBu
b3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKICAgICBpZiAoc2hv
dWxkUG9zdEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24oKSkKLSAgICAgICAgc2VuZEFYVGV4dENo
YW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSk7
CisgICAgICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5wdHIo
KSwgdW5hcHBseUVkaXRUeXBlKCkpOwogCiAgICAgbV9ub2RlLT5yZW1vdmUoSUdOT1JFX0VYQ0VQ
VElPTik7CiB9CkBAIC05MCw3ICs4OSw3IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5h
cHBseSgpCiB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0
PE5vZGUqPiYgbm9kZXMpCiB7CiAgICAgYWRkTm9kZUFuZERlc2NlbmRhbnRzKG1fcGFyZW50Lmdl
dCgpLCBub2Rlcyk7Ci0gICAgYWRkTm9kZUFuZERlc2NlbmRhbnRzKG1fbm9kZS5nZXQoKSwgbm9k
ZXMpOworICAgIGFkZE5vZGVBbmREZXNjZW5kYW50cyhtX25vZGUucHRyKCksIG5vZGVzKTsKIH0K
ICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVD
b21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKaW5k
ZXggZjc4Mjk3NWI4OTIxNTBhZTM2ZDI5YTZiYmVjYTlmMWRjMTMwN2MzMS4uNjQwZmE3NWEyZmY4
NjgxNjcxN2Y2YWZhMGI5MzJjM2YwMGU0NDk1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QXBwZW5kTm9kZUNvbW1hbmQuaApAQCAtMzIsMTMgKzMyLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgQXBwZW5kTm9kZUNvbW1hbmQgOiBwdWJsaWMgU2ltcGxlRWRpdENvbW1hbmQg
ewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8QXBwZW5kTm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNz
UmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBFZGl0
QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgc3RhdGljIFJlZjxBcHBlbmROb2RlQ29tbWFuZD4g
Y3JlYXRlKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBSZWY8Tm9kZT4mJiBub2Rl
LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBBcHBlbmROb2RlQ29tbWFuZChwYXJlbnQsIG5vZGUsIGVkaXRpbmdBY3Rpb24pKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXBwZW5kTm9kZUNvbW1hbmQocGFyZW50LCBX
VEY6Om1vdmUobm9kZSksIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAg
QXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NS
ZWZQdHI8Tm9kZT4sIEVkaXRBY3Rpb24pOworICAgIEFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBSZWY8Tm9kZT4mJiwgRWRpdEFjdGlvbik7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1Vu
YXBwbHkoKSBvdmVycmlkZTsKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAg
ICAgUmVmUHRyPENvbnRhaW5lck5vZGU+IG1fcGFyZW50OwotICAgIFJlZlB0cjxOb2RlPiBtX25v
ZGU7CisgICAgUmVmPE5vZGU+IG1fbm9kZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKaW5k
ZXggM2Q3Nzk0MjQ4ZDIzZTliN2EyMzkxNjJmOTcxYTQ0NzQ3NTFiNjMwMy4uNWQ5ZDM2ZmY1MGY1
ZGNmNjdkMDhkMGU0YTYyNTM2MzZlOTFiNTA2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKQEAgLTM5NSw3ICszOTUsOCBAQCB2b2lkIENv
bXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQXQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRD
aGlsZCwgY29uc3QgUG9zaQogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6YXBwZW5kTm9kZShQ
YXNzUmVmUHRyPE5vZGU+IG5vZGUsIFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50KQog
ewogICAgIEFTU0VSVChjYW5IYXZlQ2hpbGRyZW5Gb3JFZGl0aW5nKHBhcmVudC5nZXQoKSkpOwot
ICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEFwcGVuZE5vZGVDb21tYW5kOjpjcmVhdGUocGFy
ZW50LCBub2RlLCBlZGl0aW5nQWN0aW9uKCkpKTsKKyAgICBBU1NFUlQobm9kZSk7CisgICAgYXBw
bHlDb21tYW5kVG9Db21wb3NpdGUoQXBwZW5kTm9kZUNvbW1hbmQ6OmNyZWF0ZShwYXJlbnQsICpu
b2RlLCBlZGl0aW5nQWN0aW9uKCkpKTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6
cmVtb3ZlQ2hpbGRyZW5JblJhbmdlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgdW5zaWduZWQgZnJv
bSwgdW5zaWduZWQgdG8pCkBAIC00MTQsNyArNDE1LDcgQEAgdm9pZCBDb21wb3NpdGVFZGl0Q29t
bWFuZDo6cmVtb3ZlTm9kZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRl
bnQKIHsKICAgICBpZiAoIW5vZGUgfHwgIW5vZGUtPm5vblNoYWRvd0JvdW5kYXJ5UGFyZW50Tm9k
ZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoUmVtb3Zl
Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0
YWJsZSkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKFJlbW92ZU5vZGVDb21tYW5kOjpj
cmVhdGUoKm5vZGUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CiB9CiAK
IHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW4o
UGFzc1JlZlB0cjxOb2RlPiBub2RlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJs
ZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKQEAgLTE1NDEsNyArMTU0Miw3
IEBAIFBhc3NSZWZQdHI8Tm9kZT4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnNwbGl0VHJlZVRvTm9k
ZShOb2RlKiBzdGFydCwgTm9kZSogZW5kLCBiCiAgICAgcmV0dXJuIG5vZGUucmVsZWFzZSgpOwog
fQogCi1QYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZUJsb2NrUGxhY2Vob2xkZXJFbGVtZW50KERv
Y3VtZW50JiBkb2N1bWVudCkKK1JlZjxFbGVtZW50PiBjcmVhdGVCbG9ja1BsYWNlaG9sZGVyRWxl
bWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoYnJUYWcsIGZhbHNlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCmluZGV4IGM2NDkxZDI2OTI2NWU1YWI2Y2U5NjVlYWE5
NTM0MWI2NTQ0N2QxYWUuLjU2MDk5NzEzM2Y2MTllM2QwYTcyZGNiZGFmYmFiMTc4ZDhmMzBkMWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5k
LmNwcApAQCAtNjMyLDcgKzYzMiw3IEBAIHZvaWQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6bWVy
Z2VQYXJhZ3JhcGhzKCkKICAgICAKICAgICAvLyBXZSBuZWVkIHRvIG1lcmdlIGludG8gbV91cHN0
cmVhbVN0YXJ0J3MgYmxvY2ssIGJ1dCBpdCdzIGJlZW4gZW1wdGllZCBvdXQgYW5kIGNvbGxhcHNl
ZCBieSBkZWxldGlvbi4KICAgICBpZiAoIW1lcmdlRGVzdGluYXRpb24uZGVlcEVxdWl2YWxlbnQo
KS5kZXByZWNhdGVkTm9kZSgpIHx8ICFtZXJnZURlc3RpbmF0aW9uLmRlZXBFcXVpdmFsZW50KCku
ZGVwcmVjYXRlZE5vZGUoKS0+aXNEZXNjZW5kYW50T2YoZW5jbG9zaW5nQmxvY2sobV91cHN0cmVh
bVN0YXJ0LmNvbnRhaW5lck5vZGUoKSkpIHx8IG1fc3RhcnRzQXRFbXB0eUxpbmUpIHsKLSAgICAg
ICAgaW5zZXJ0Tm9kZUF0KGNyZWF0ZUJyZWFrRWxlbWVudChkb2N1bWVudCgpKS5nZXQoKSwgbV91
cHN0cmVhbVN0YXJ0KTsKKyAgICAgICAgaW5zZXJ0Tm9kZUF0KGNyZWF0ZUJyZWFrRWxlbWVudChk
b2N1bWVudCgpKS5wdHIoKSwgbV91cHN0cmVhbVN0YXJ0KTsKICAgICAgICAgbWVyZ2VEZXN0aW5h
dGlvbiA9IFZpc2libGVQb3NpdGlvbihtX3Vwc3RyZWFtU3RhcnQpOwogICAgIH0KICAgICAKQEAg
LTg1NSw3ICs4NTUsNyBAQCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmRvQXBwbHkoKQog
ICAgIAogICAgIHJlbW92ZVByZXZpb3VzbHlTZWxlY3RlZEVtcHR5VGFibGVSb3dzKCk7CiAgICAg
Ci0gICAgUmVmUHRyPE5vZGU+IHBsYWNlaG9sZGVyID0gbV9uZWVkUGxhY2Vob2xkZXIgPyBjcmVh
dGVCcmVha0VsZW1lbnQoZG9jdW1lbnQoKSkuZ2V0KCkgOiAwOworICAgIFJlZlB0cjxOb2RlPiBw
bGFjZWhvbGRlciA9IG1fbmVlZFBsYWNlaG9sZGVyID8gY3JlYXRlQnJlYWtFbGVtZW50KGRvY3Vt
ZW50KCkpLnB0cigpIDogbnVsbHB0cjsKICAgICAKICAgICBpZiAocGxhY2Vob2xkZXIpIHsKICAg
ICAgICAgaWYgKG1fc2FuaXRpemVNYXJrdXApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5k
ZXggMTQ4ZTM1YzhjY2ZhOTZjNWIxMDg0MmFlZjYxZGM2ZDdlMTg2NjgzNC4uNDRiMmFjNzM4MjE2
ZDg5MzdlNDU0YjQ5Y2FjOWQ4ZGNiNzUwNmFmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNw
cApAQCAtNjEzLDggKzYxMyw4IEBAIHZvaWQgRWRpdG9yOjpzZXRUZXh0QXNDaGlsZE9mRWxlbWVu
dChjb25zdCBTdHJpbmcmIHRleHQsIEVsZW1lbnQqIGVsZW0pCiAgICAgICAgICAgICAKICAgICAg
ICAgUmVmUHRyPFJhbmdlPiBjb250ZXh0ID0gZG9jdW1lbnQoKS5jcmVhdGVSYW5nZSgpOwogICAg
ICAgICBjb250ZXh0LT5zZWxlY3ROb2RlQ29udGVudHMoZWxlbSwgZWMpOwotICAgICAgICBSZWZQ
dHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21UZXh0KCpj
b250ZXh0LmdldCgpLCB0ZXh0KTsKLSAgICAgICAgZWxlbS0+YXBwZW5kQ2hpbGQoZnJhZ21lbnQs
IGVjKTsKKyAgICAgICAgUmVmPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJh
Z21lbnRGcm9tVGV4dCgqY29udGV4dC5nZXQoKSwgdGV4dCk7CisgICAgICAgIGVsZW0tPmFwcGVu
ZENoaWxkKFdURjo6bW92ZShmcmFnbWVudCksIGVjKTsKICAgICAKICAgICAgICAgLy8gcmVzdG9y
ZSBlbGVtZW50IHRvIGRvY3VtZW50CiAgICAgICAgIGlmIChwYXJlbnQpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCmluZGV4IDBmOGY4ODAzM2E0ZmVmYTIzZDc1MjY4
OTllZTQ3NDE5ZmQ0MDcyMmIuLjEyY2RkMjFkOGVjMTNkNzBlNWZiMDAzY2U4N2YyZDkyNTE2ODJj
MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcApAQCAtMTY1LDEx
ICsxNjUsMTEgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZUluc2VydEZyYWdtZW50KEZyYW1lJiBmcmFt
ZSwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmEKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotc3RhdGljIGJvb2wgZXhlY3V0ZUluc2VydE5vZGUoRnJhbWUmIGZyYW1lLCBQYXNzUmVmUHRy
PE5vZGU+IGNvbnRlbnQpCitzdGF0aWMgYm9vbCBleGVjdXRlSW5zZXJ0Tm9kZShGcmFtZSYgZnJh
bWUsIFJlZjxOb2RlPiYmIGNvbnRlbnQpCiB7CiAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IGZyYWdtZW50ID0gRG9jdW1lbnRGcmFnbWVudDo6Y3JlYXRlKCpmcmFtZS5kb2N1bWVudCgpKTsK
ICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoY29u
dGVudCwgZWMpOworICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoY29udGVudCks
IGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXR1cm4gZXhl
Y3V0ZUluc2VydEZyYWdtZW50KGZyYW1lLCBmcmFnbWVudC5yZWxlYXNlKCkpOwpAQCAtNDY0LDEw
ICs0NjQsMTAgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZUluc2VydEJhY2t0YWIoRnJhbWUmIGZyYW1l
LCBFdmVudCogZXZlbnQsIEVkaXRvckNvbW1hbmRTb3VyY2UKIAogc3RhdGljIGJvb2wgZXhlY3V0
ZUluc2VydEhvcml6b250YWxSdWxlKEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5k
U291cmNlLCBjb25zdCBTdHJpbmcmIHZhbHVlKQogewotICAgIFJlZlB0cjxIVE1MSFJFbGVtZW50
PiBydWxlID0gSFRNTEhSRWxlbWVudDo6Y3JlYXRlKCpmcmFtZS5kb2N1bWVudCgpKTsKKyAgICBS
ZWY8SFRNTEhSRWxlbWVudD4gcnVsZSA9IEhUTUxIUkVsZW1lbnQ6OmNyZWF0ZSgqZnJhbWUuZG9j
dW1lbnQoKSk7CiAgICAgaWYgKCF2YWx1ZS5pc0VtcHR5KCkpCiAgICAgICAgIHJ1bGUtPnNldElk
QXR0cmlidXRlKHZhbHVlKTsKLSAgICByZXR1cm4gZXhlY3V0ZUluc2VydE5vZGUoZnJhbWUsIHJ1
bGUucmVsZWFzZSgpKTsKKyAgICByZXR1cm4gZXhlY3V0ZUluc2VydE5vZGUoZnJhbWUsIFdURjo6
bW92ZShydWxlKSk7CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVJbnNlcnRIVE1MKEZyYW1lJiBm
cmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJpbmcmIHZhbHVlKQpA
QCAtNDc4LDkgKzQ3OCw5IEBAIHN0YXRpYyBib29sIGV4ZWN1dGVJbnNlcnRIVE1MKEZyYW1lJiBm
cmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBTCiBzdGF0aWMgYm9vbCBl
eGVjdXRlSW5zZXJ0SW1hZ2UoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3Vy
Y2UsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7CiAgICAgLy8gRklYTUU6IElmIHVzZXJJbnRlcmZh
Y2UgaXMgdHJ1ZSwgd2Ugc2hvdWxkIGRpc3BsYXkgYSBkaWFsb2cgYm94IGFuZCBsZXQgdGhlIHVz
ZXIgY2hvb3NlIGEgbG9jYWwgaW1hZ2UuCi0gICAgUmVmUHRyPEhUTUxJbWFnZUVsZW1lbnQ+IGlt
YWdlID0gSFRNTEltYWdlRWxlbWVudDo6Y3JlYXRlKCpmcmFtZS5kb2N1bWVudCgpKTsKKyAgICBS
ZWY8SFRNTEltYWdlRWxlbWVudD4gaW1hZ2UgPSBIVE1MSW1hZ2VFbGVtZW50OjpjcmVhdGUoKmZy
YW1lLmRvY3VtZW50KCkpOwogICAgIGltYWdlLT5zZXRTcmModmFsdWUpOwotICAgIHJldHVybiBl
eGVjdXRlSW5zZXJ0Tm9kZShmcmFtZSwgaW1hZ2UucmVsZWFzZSgpKTsKKyAgICByZXR1cm4gZXhl
Y3V0ZUluc2VydE5vZGUoZnJhbWUsIFdURjo6bW92ZShpbWFnZSkpOwogfQogCiBzdGF0aWMgYm9v
bCBleGVjdXRlSW5zZXJ0TGluZUJyZWFrKEZyYW1lJiBmcmFtZSwgRXZlbnQqIGV2ZW50LCBFZGl0
b3JDb21tYW5kU291cmNlIHNvdXJjZSwgY29uc3QgU3RyaW5nJikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0TGluZUJyZWFrQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydExpbmVCcmVha0NvbW1hbmQuY3BwCmluZGV4IDZlZTIxZDkyMjcz
ZGNlNTVmMTI0ODZmOGY5Nzg3YTI2ODBlZTM5MDAuLjI1YWIwNzEyNGU3OTI3NzIwMjQ1ZWU2ZDZl
NDZjZWQxYzZlOWM4NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0
TGluZUJyZWFrQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRM
aW5lQnJlYWtDb21tYW5kLmNwcApAQCAtMTI5LDcgKzEyOSw3IEBAIHZvaWQgSW5zZXJ0TGluZUJy
ZWFrQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgICAgIAogICAgICAgICAvLyBJbnNlcnQgYW4gZXh0
cmEgYnIgb3IgJ1xuJyBpZiB0aGUganVzdCBpbnNlcnRlZCBvbmUgY29sbGFwc2VkLgogICAgICAg
ICBpZiAoIWlzU3RhcnRPZlBhcmFncmFwaChwb3NpdGlvbkJlZm9yZU5vZGUobm9kZVRvSW5zZXJ0
LmdldCgpKSkpCi0gICAgICAgICAgICBpbnNlcnROb2RlQmVmb3JlKG5vZGVUb0luc2VydC0+Y2xv
bmVOb2RlKGZhbHNlKS5nZXQoKSwgbm9kZVRvSW5zZXJ0LmdldCgpKTsKKyAgICAgICAgICAgIGlu
c2VydE5vZGVCZWZvcmUobm9kZVRvSW5zZXJ0LT5jbG9uZU5vZGUoZmFsc2UpLCBub2RlVG9JbnNl
cnQuZ2V0KCkpOwogICAgICAgICAKICAgICAgICAgc2V0RW5kaW5nU2VsZWN0aW9uKFZpc2libGVT
ZWxlY3Rpb24ocG9zaXRpb25JblBhcmVudEFmdGVyTm9kZShub2RlVG9JbnNlcnQuZ2V0KCkpLCBE
T1dOU1RSRUFNLCBlbmRpbmdTZWxlY3Rpb24oKS5pc0RpcmVjdGlvbmFsKCkpKTsKICAgICAvLyBJ
ZiB3ZSdyZSBpbnNlcnRpbmcgYWZ0ZXIgYWxsIG9mIHRoZSByZW5kZXJlZCB0ZXh0IGluIGEgdGV4
dCBub2RlLCBvciBpbnRvIGEgbm9uLXRleHQgbm9kZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKaW5kZXggZmExNGQwNzY2ZWFmNzVm
YTQzMTllNmQ4ODU3NGFmM2QzYTAzZTQzNi4uNTBmNjU0NWU2MmY3YmRiODRmZDBjNWViNTM0ZTRl
Y2M4NjFkYmEyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZDo6ZG9BcHBseSgpCiAgICAgICAgIHJldHVybjsKICAgICBBU1NFUlQoaXNFZGl0YWJs
ZU5vZGUoKnBhcmVudCkpOwogCi0gICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobV9pbnNlcnRDaGls
ZC5nZXQoKSwgbV9yZWZDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgcGFyZW50
LT5pbnNlcnRCZWZvcmUoKm1faW5zZXJ0Q2hpbGQsIG1fcmVmQ2hpbGQuZ2V0KCksIElHTk9SRV9F
WENFUFRJT04pOwogCiAgICAgaWYgKHNob3VsZFBvc3RBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9u
KCkpIHsKICAgICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBpczxUZXh0PihtX2luc2VydENoaWxk
LmdldCgpKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpLCAw
KSA6IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihtX2luc2VydENoaWxkLmdldCgpLCAwKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJh
dG9yQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNl
cGFyYXRvckNvbW1hbmQuY3BwCmluZGV4IDdkZDAxNjBjZDAzNDNkYWFkZjEyNDM0MTJlM2VhYWZm
MTYxN2Q2NWEuLjE1MDMyMjkyYWRlNjU4ODQ0YTdmOTIwNmNmYWI3MDlmYjU2NDEwY2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29t
bWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBh
cmF0b3JDb21tYW5kLmNwcApAQCAtMzY4LDcgKzM2OCw3IEBAIHZvaWQgSW5zZXJ0UGFyYWdyYXBo
U2VwYXJhdG9yQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgLy8gY3JlYXRlZC4gIEFsbCBvZiB0aGUg
bm9kZXMsIHN0YXJ0aW5nIGF0IHZpc2libGVQb3MsIGFyZSBhYm91dCB0byBiZSBhZGRlZCB0byB0
aGUgbmV3IHBhcmFncmFwaCAKICAgICAvLyBlbGVtZW50LiAgSWYgdGhlIGZpcnN0IG5vZGUgdG8g
YmUgaW5zZXJ0ZWQgd29uJ3QgYmUgb25lIHRoYXQgd2lsbCBob2xkIGFuIGVtcHR5IGxpbmUgb3Bl
biwgYWRkIGEgYnIuCiAgICAgaWYgKGlzRW5kT2ZQYXJhZ3JhcGgodmlzaWJsZVBvcykgJiYgIWxp
bmVCcmVha0V4aXN0c0F0VmlzaWJsZVBvc2l0aW9uKHZpc2libGVQb3MpKQotICAgICAgICBhcHBl
bmROb2RlKGNyZWF0ZUJyZWFrRWxlbWVudChkb2N1bWVudCgpKS5nZXQoKSwgYmxvY2tUb0luc2Vy
dC5nZXQoKSk7CisgICAgICAgIGFwcGVuZE5vZGUoY3JlYXRlQnJlYWtFbGVtZW50KGRvY3VtZW50
KCkpLCBibG9ja1RvSW5zZXJ0LmdldCgpKTsKIAogICAgIC8vIE1vdmUgdGhlIHN0YXJ0IG5vZGUg
YW5kIHRoZSBzaWJsaW5ncyBvZiB0aGUgc3RhcnQgbm9kZS4KICAgICBpZiAoVmlzaWJsZVBvc2l0
aW9uKGluc2VydGlvblBvc2l0aW9uKSAhPSBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb25CZWZvcmVO
b2RlKGJsb2NrVG9JbnNlcnQuZ2V0KCkpKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9NZXJnZUlkZW50aWNhbEVsZW1lbnRzQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL01lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmNwcAppbmRleCA0NjUxODg0
NjM2NGZhMzNjMjg1Y2Y2MDA5N2YwNDNiMmMyY2YzODdlLi40YTU5ZWY2ODBkNmEwZGYyMTczNWE5
ZWIyMDUwYTE4ZWRmNjZmMWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01l
cmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL01lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmNwcApAQCAtNDcsMTMgKzQ3LDEzIEBA
IHZvaWQgTWVyZ2VJZGVudGljYWxFbGVtZW50c0NvbW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgbV9h
dENoaWxkID0gbV9lbGVtZW50Mi0+Zmlyc3RDaGlsZCgpOwogCi0gICAgVmVjdG9yPFJlZlB0cjxO
b2RlPj4gY2hpbGRyZW47CisgICAgVmVjdG9yPFJlZjxOb2RlPj4gY2hpbGRyZW47CiAgICAgZm9y
IChOb2RlKiBjaGlsZCA9IG1fZWxlbWVudDEtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0g
Y2hpbGQtPm5leHRTaWJsaW5nKCkpCi0gICAgICAgIGNoaWxkcmVuLmFwcGVuZChjaGlsZCk7Cisg
ICAgICAgIGNoaWxkcmVuLmFwcGVuZCgqY2hpbGQpOwogCiAgICAgc2l6ZV90IHNpemUgPSBjaGls
ZHJlbi5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCi0gICAg
ICAgIG1fZWxlbWVudDItPmluc2VydEJlZm9yZShjaGlsZHJlbltpXS5yZWxlYXNlKCksIG1fYXRD
aGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgICAgIG1fZWxlbWVudDItPmluc2Vy
dEJlZm9yZShXVEY6Om1vdmUoY2hpbGRyZW5baV0pLCBtX2F0Q2hpbGQuZ2V0KCksIElHTk9SRV9F
WENFUFRJT04pOwogCiAgICAgbV9lbGVtZW50MS0+cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwog
fQpAQCAtNzEsMTcgKzcxLDE3IEBAIHZvaWQgTWVyZ2VJZGVudGljYWxFbGVtZW50c0NvbW1hbmQ6
OmRvVW5hcHBseSgpCiAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKIAotICAgIHBhcmVudC0+
aW5zZXJ0QmVmb3JlKG1fZWxlbWVudDEuZ2V0KCksIG1fZWxlbWVudDIuZ2V0KCksIGVjKTsKKyAg
ICBwYXJlbnQtPmluc2VydEJlZm9yZSgqbV9lbGVtZW50MSwgbV9lbGVtZW50Mi5nZXQoKSwgZWMp
OwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuOwogCi0gICAgVmVjdG9yPFJlZlB0cjxOb2Rl
Pj4gY2hpbGRyZW47CisgICAgVmVjdG9yPFJlZjxOb2RlPj4gY2hpbGRyZW47CiAgICAgZm9yIChO
b2RlKiBjaGlsZCA9IG1fZWxlbWVudDItPmZpcnN0Q2hpbGQoKTsgY2hpbGQgJiYgY2hpbGQgIT0g
YXRDaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKLSAgICAgICAgY2hpbGRyZW4u
YXBwZW5kKGNoaWxkKTsKKyAgICAgICAgY2hpbGRyZW4uYXBwZW5kKCpjaGlsZCk7CiAKICAgICBz
aXplX3Qgc2l6ZSA9IGNoaWxkcmVuLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IHNpemU7ICsraSkKLSAgICAgICAgbV9lbGVtZW50MS0+YXBwZW5kQ2hpbGQoY2hpbGRyZW5baV0u
cmVsZWFzZSgpLCBlYyk7CisgICAgICAgIG1fZWxlbWVudDEtPmFwcGVuZENoaWxkKFdURjo6bW92
ZShjaGlsZHJlbltpXSksIGVjKTsKIH0KIAogI2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5jcHAKaW5kZXggMzFjNTRkMWU4ODJlMmQ0NjU0
MDQwOGU0NTA2MGM0OWQ5MDhiYmVjNi4uYTVkYmIzYTM3NzdiMTg3NDMxMmU5YzU3MmU1MjNmYWYy
ZTk2N2ExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlQ29t
bWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5j
cHAKQEAgLTM0LDEyICszNCwxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlbW92ZU5v
ZGVDb21tYW5kOjpSZW1vdmVOb2RlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlKQotICAgIDogU2ltcGxlRWRpdENvbW1hbmQobm9kZS0+ZG9jdW1lbnQoKSkKLSAg
ICAsIG1fbm9kZShub2RlKQorUmVtb3ZlTm9kZUNvbW1hbmQ6OlJlbW92ZU5vZGVDb21tYW5kKFJl
ZjxOb2RlPiYmIG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIDogU2ltcGxlRWRpdENvbW1hbmQo
bm9kZS5kb2N1bWVudCgpKQorICAgICwgbV9ub2RlKFdURjo6bW92ZShub2RlKSkKICAgICAsIG1f
c2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUoc2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUpCiB7Ci0gICAgQVNTRVJUKG1fbm9kZSk7CiAgICAgQVNTRVJUKG1fbm9k
ZS0+cGFyZW50Tm9kZSgpKTsKIH0KIApAQCAtNjQsNyArNjMsNyBAQCB2b2lkIFJlbW92ZU5vZGVD
b21tYW5kOjpkb1VuYXBwbHkoKQogICAgIGlmICghcGFyZW50IHx8ICFwYXJlbnQtPmhhc0VkaXRh
YmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcGFyZW50LT5pbnNlcnRCZWZvcmUo
bV9ub2RlLmdldCgpLCByZWZDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgcGFy
ZW50LT5pbnNlcnRCZWZvcmUobV9ub2RlLmNvcHlSZWYoKSwgcmVmQ2hpbGQuZ2V0KCksIElHTk9S
RV9FWENFUFRJT04pOwogfQogCiAjaWZuZGVmIE5ERUJVRwpAQCAtNzIsNyArNzEsNyBAQCB2b2lk
IFJlbW92ZU5vZGVDb21tYW5kOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYgbm9k
ZXMpCiB7CiAgICAgYWRkTm9kZUFuZERlc2NlbmRhbnRzKG1fcGFyZW50LmdldCgpLCBub2Rlcyk7
CiAgICAgYWRkTm9kZUFuZERlc2NlbmRhbnRzKG1fcmVmQ2hpbGQuZ2V0KCksIG5vZGVzKTsKLSAg
ICBhZGROb2RlQW5kRGVzY2VuZGFudHMobV9ub2RlLmdldCgpLCBub2Rlcyk7CisgICAgYWRkTm9k
ZUFuZERlc2NlbmRhbnRzKG1fbm9kZS5wdHIoKSwgbm9kZXMpOwogfQogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuaAppbmRleCAxODFlOTg1ZDdmMzBj
ZDQ0OTY2NGU2ZmY4Y2NhOTQyZjI2ZjZjZjZlLi4zM2ExZjhjMDVjMTNiZThjOGM1MmI0MzUwMmIz
NzVhZWI2MTk5ZTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5v
ZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFu
ZC5oCkBAIC0zMiwxMyArMzIsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSZW1v
dmVOb2RlQ29tbWFuZCA6IHB1YmxpYyBTaW1wbGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFJlZjxSZW1vdmVOb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gbm9k
ZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUpCisgICAgc3RhdGljIFJlZjxSZW1vdmVOb2RlQ29tbWFuZD4gY3Jl
YXRlKFJlZjxOb2RlPiYmIG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
IHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3ZlTm9kZUNvbW1hbmQobm9kZSwgc2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVt
b3ZlTm9kZUNvbW1hbmQoV1RGOjptb3ZlKG5vZGUpLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZSkpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBSZW1vdmVOb2Rl
Q29tbWFuZChQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0
YWJsZSk7CisgICAgUmVtb3ZlTm9kZUNvbW1hbmQoUmVmPE5vZGU+JiYsIFNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwpAQCAtNDcsNyAr
NDcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2Rl
Kj4mKSBvdmVycmlkZTsKICNlbmRpZgogCi0gICAgUmVmUHRyPE5vZGU+IG1fbm9kZTsKKyAgICBS
ZWY8Tm9kZT4gbV9ub2RlOwogICAgIFJlZlB0cjxDb250YWluZXJOb2RlPiBtX3BhcmVudDsKICAg
ICBSZWZQdHI8Tm9kZT4gbV9yZWZDaGlsZDsKICAgICBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZSBtX3Nob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNw
cAppbmRleCAwZTE4OWJkZWY2N2QzZjNkZTcyNDZkNzFhYWM3ZDQwODc5MDdmZGZlLi4xMGJlZjNh
MDlhMWNjNDIxY2I3N2U5YWI3OGUwMGNkNmUyMjIzMGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcApAQCAtNDgsMTkg
KzQ4LDE5IEBAIFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kOjpSZXBsYWNlTm9kZVdpdGhTcGFu
Q29tbWFuZChQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlCiAgICAgQVNTRVJUKG1fZWxlbWVudFRv
UmVwbGFjZSk7CiB9CiAKLXN0YXRpYyB2b2lkIHN3YXBJbk5vZGVQcmVzZXJ2aW5nQXR0cmlidXRl
c0FuZENoaWxkcmVuKEhUTUxFbGVtZW50KiBuZXdOb2RlLCBIVE1MRWxlbWVudCogbm9kZVRvUmVw
bGFjZSkKK3N0YXRpYyB2b2lkIHN3YXBJbk5vZGVQcmVzZXJ2aW5nQXR0cmlidXRlc0FuZENoaWxk
cmVuKEhUTUxFbGVtZW50JiBuZXdOb2RlLCBIVE1MRWxlbWVudCYgbm9kZVRvUmVwbGFjZSkKIHsK
LSAgICBBU1NFUlQobm9kZVRvUmVwbGFjZS0+aW5Eb2N1bWVudCgpKTsKLSAgICBSZWZQdHI8Q29u
dGFpbmVyTm9kZT4gcGFyZW50Tm9kZSA9IG5vZGVUb1JlcGxhY2UtPnBhcmVudE5vZGUoKTsKKyAg
ICBBU1NFUlQobm9kZVRvUmVwbGFjZS5pbkRvY3VtZW50KCkpOworICAgIFJlZlB0cjxDb250YWlu
ZXJOb2RlPiBwYXJlbnROb2RlID0gbm9kZVRvUmVwbGFjZS5wYXJlbnROb2RlKCk7CiAKICAgICAv
LyBGSVhNRTogRml4IHRoaXMgdG8gc2VuZCB0aGUgcHJvcGVyIE11dGF0aW9uUmVjb3JkcyB3aGVu
IE11dGF0aW9uT2JzZXJ2ZXJzIGFyZSBwcmVzZW50LgotICAgIG5ld05vZGUtPmNsb25lRGF0YUZy
b21FbGVtZW50KCpub2RlVG9SZXBsYWNlKTsKKyAgICBuZXdOb2RlLmNsb25lRGF0YUZyb21FbGVt
ZW50KG5vZGVUb1JlcGxhY2UpOwogICAgIE5vZGVWZWN0b3IgY2hpbGRyZW47Ci0gICAgZ2V0Q2hp
bGROb2Rlcygqbm9kZVRvUmVwbGFjZSwgY2hpbGRyZW4pOworICAgIGdldENoaWxkTm9kZXMobm9k
ZVRvUmVwbGFjZSwgY2hpbGRyZW4pOwogICAgIGZvciAoYXV0byYgY2hpbGQgOiBjaGlsZHJlbikK
LSAgICAgICAgbmV3Tm9kZS0+YXBwZW5kQ2hpbGQoY2hpbGQucHRyKCksIEFTU0VSVF9OT19FWENF
UFRJT04pOworICAgICAgICBuZXdOb2RlLmFwcGVuZENoaWxkKFdURjo6bW92ZShjaGlsZCksIEFT
U0VSVF9OT19FWENFUFRJT04pOwogCi0gICAgcGFyZW50Tm9kZS0+aW5zZXJ0QmVmb3JlKG5ld05v
ZGUsIG5vZGVUb1JlcGxhY2UsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIHBhcmVudE5vZGUt
Pmluc2VydEJlZm9yZShuZXdOb2RlLCAmbm9kZVRvUmVwbGFjZSwgQVNTRVJUX05PX0VYQ0VQVElP
Tik7CiAgICAgcGFyZW50Tm9kZS0+cmVtb3ZlQ2hpbGQobm9kZVRvUmVwbGFjZSwgQVNTRVJUX05P
X0VYQ0VQVElPTik7CiB9CiAKQEAgLTcwLDE0ICs3MCwxNCBAQCB2b2lkIFJlcGxhY2VOb2RlV2l0
aFNwYW5Db21tYW5kOjpkb0FwcGx5KCkKICAgICAgICAgcmV0dXJuOwogICAgIGlmICghbV9zcGFu
RWxlbWVudCkKICAgICAgICAgbV9zcGFuRWxlbWVudCA9IGNyZWF0ZUhUTUxFbGVtZW50KG1fZWxl
bWVudFRvUmVwbGFjZS0+ZG9jdW1lbnQoKSwgc3BhblRhZyk7Ci0gICAgc3dhcEluTm9kZVByZXNl
cnZpbmdBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4obV9zcGFuRWxlbWVudC5nZXQoKSwgbV9lbGVtZW50
VG9SZXBsYWNlLmdldCgpKTsKKyAgICBzd2FwSW5Ob2RlUHJlc2VydmluZ0F0dHJpYnV0ZXNBbmRD
aGlsZHJlbigqbV9zcGFuRWxlbWVudCwgKm1fZWxlbWVudFRvUmVwbGFjZSk7CiB9CiAKIHZvaWQg
UmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQ6OmRvVW5hcHBseSgpCiB7CiAgICAgaWYgKCFtX3Nw
YW5FbGVtZW50LT5pbkRvY3VtZW50KCkpCiAgICAgICAgIHJldHVybjsKLSAgICBzd2FwSW5Ob2Rl
UHJlc2VydmluZ0F0dHJpYnV0ZXNBbmRDaGlsZHJlbihtX2VsZW1lbnRUb1JlcGxhY2UuZ2V0KCks
IG1fc3BhbkVsZW1lbnQuZ2V0KCkpOworICAgIHN3YXBJbk5vZGVQcmVzZXJ2aW5nQXR0cmlidXRl
c0FuZENoaWxkcmVuKCptX2VsZW1lbnRUb1JlcGxhY2UsICptX3NwYW5FbGVtZW50KTsKIH0KIAog
I2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFj
ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggZWVlMjIwYzg2Zjk4YTVlN2QyODk5YzQzM2ZhOTFmMDAw
MDU0NmJlMy4uMDhjNjI3N2RlZmMzNGZhMjIzNGMyZTQ2MmYyMzY0N2Q2YmM5OWEzZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAK
QEAgLTIzOCw3ICsyMzgsNyBAQCB2b2lkIFJlcGxhY2VtZW50RnJhZ21lbnQ6OnJlbW92ZU5vZGUo
UGFzc1JlZlB0cjxOb2RlPiBub2RlKQogICAgIGlmICghcGFyZW50KQogICAgICAgICByZXR1cm47
CiAgICAgCi0gICAgcGFyZW50LT5yZW1vdmVDaGlsZChub2RlLmdldCgpLCBBU1NFUlRfTk9fRVhD
RVBUSU9OKTsKKyAgICBwYXJlbnQtPnJlbW92ZUNoaWxkKCpub2RlLCBBU1NFUlRfTk9fRVhDRVBU
SU9OKTsKIH0KIAogdm9pZCBSZXBsYWNlbWVudEZyYWdtZW50OjppbnNlcnROb2RlQmVmb3JlKFBh
c3NSZWZQdHI8Tm9kZT4gbm9kZSwgTm9kZSogcmVmTm9kZSkKQEAgLTI1MCwxNCArMjUwLDE0IEBA
IHZvaWQgUmVwbGFjZW1lbnRGcmFnbWVudDo6aW5zZXJ0Tm9kZUJlZm9yZShQYXNzUmVmUHRyPE5v
ZGU+IG5vZGUsIE5vZGUqIHJlZk5vZGUpCiAgICAgaWYgKCFwYXJlbnQpCiAgICAgICAgIHJldHVy
bjsKICAgICAgICAgCi0gICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobm9kZSwgcmVmTm9kZSwgQVNT
RVJUX05PX0VYQ0VQVElPTik7CisgICAgcGFyZW50LT5pbnNlcnRCZWZvcmUoKm5vZGUsIHJlZk5v
ZGUsIEFTU0VSVF9OT19FWENFUFRJT04pOwogfQogCiBQYXNzUmVmUHRyPFN0eWxlZEVsZW1lbnQ+
IFJlcGxhY2VtZW50RnJhZ21lbnQ6Omluc2VydEZyYWdtZW50Rm9yVGVzdFJlbmRlcmluZyhOb2Rl
KiByb290RWRpdGFibGVFbGVtZW50KQogewogICAgIFJlZlB0cjxTdHlsZWRFbGVtZW50PiBob2xk
ZXIgPSBjcmVhdGVEZWZhdWx0UGFyYWdyYXBoRWxlbWVudChkb2N1bWVudCgpKTsKIAotICAgIGhv
bGRlci0+YXBwZW5kQ2hpbGQobV9mcmFnbWVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAg
aG9sZGVyLT5hcHBlbmRDaGlsZCgqbV9mcmFnbWVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAg
ICAgcm9vdEVkaXRhYmxlRWxlbWVudC0+YXBwZW5kQ2hpbGQoaG9sZGVyLmdldCgpLCBBU1NFUlRf
Tk9fRVhDRVBUSU9OKTsKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdT
dHlsZXNoZWV0cygpOwogCkBAIC0yNzAsOCArMjcwLDggQEAgdm9pZCBSZXBsYWNlbWVudEZyYWdt
ZW50OjpyZXN0b3JlQW5kUmVtb3ZlVGVzdFJlbmRlcmluZ05vZGVzVG9GcmFnbWVudChTdHlsZWRF
bGUKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIHdoaWxlIChSZWZQdHI8Tm9kZT4gbm9kZSA9
IGhvbGRlci0+Zmlyc3RDaGlsZCgpKSB7Ci0gICAgICAgIGhvbGRlci0+cmVtb3ZlQ2hpbGQobm9k
ZS5nZXQoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0gICAgICAgIG1fZnJhZ21lbnQtPmFwcGVu
ZENoaWxkKG5vZGUuZ2V0KCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAgICBob2xkZXIt
PnJlbW92ZUNoaWxkKCpub2RlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgbV9mcmFn
bWVudC0+YXBwZW5kQ2hpbGQoKm5vZGUsIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgIH0KIAog
ICAgIHJlbW92ZU5vZGUoaG9sZGVyKTsKQEAgLTE0NTQsNyArMTQ1NCw3IEBAIE5vZGUqIFJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kOjppbnNlcnRBc0xpc3RJdGVtcyhQYXNzUmVmUHRyPEhUTUxFbGVt
ZW50PiBwcnBMaXN0CiAgICAgfQogCiAgICAgd2hpbGUgKFJlZlB0cjxOb2RlPiBsaXN0SXRlbSA9
IGxpc3RFbGVtZW50LT5maXJzdENoaWxkKCkpIHsKLSAgICAgICAgbGlzdEVsZW1lbnQtPnJlbW92
ZUNoaWxkKGxpc3RJdGVtLmdldCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgbGlz
dEVsZW1lbnQtPnJlbW92ZUNoaWxkKCpsaXN0SXRlbSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAg
ICAgICAgIGlmIChpc1N0YXJ0IHx8IGlzTWlkZGxlKSB7CiAgICAgICAgICAgICBpbnNlcnROb2Rl
QmVmb3JlKGxpc3RJdGVtLCBsYXN0Tm9kZSk7CiAgICAgICAgICAgICBpbnNlcnRlZE5vZGVzLnJl
c3BvbmRUb05vZGVJbnNlcnRpb24obGlzdEl0ZW0uZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9TcGxpdEVsZW1lbnRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvU3BsaXRFbGVtZW50Q29tbWFuZC5jcHAKaW5kZXggMDliZWI4NTE5MzFlZWFiNjUx
ZDIxNzFlNDdkODczMjQ1NWQxZjEwNi4uMzVkODIxYjJjMTZhMmJlYjI3NzBhNDgxNmY3YzhjYzg1
OTBkMDUzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGxpdEVsZW1lbnRD
b21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0RWxlbWVudENvbW1h
bmQuY3BwCkBAIC00NywxNiArNDcsMTYgQEAgdm9pZCBTcGxpdEVsZW1lbnRDb21tYW5kOjpleGVj
dXRlQXBwbHkoKQogICAgIGlmIChtX2F0Q2hpbGQtPnBhcmVudE5vZGUoKSAhPSBtX2VsZW1lbnQy
KQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgVmVjdG9yPFJlZlB0cjxOb2RlPj4gY2hpbGRy
ZW47CisgICAgVmVjdG9yPFJlZjxOb2RlPj4gY2hpbGRyZW47CiAgICAgZm9yIChOb2RlKiBub2Rl
ID0gbV9lbGVtZW50Mi0+Zmlyc3RDaGlsZCgpOyBub2RlICE9IG1fYXRDaGlsZDsgbm9kZSA9IG5v
ZGUtPm5leHRTaWJsaW5nKCkpCi0gICAgICAgIGNoaWxkcmVuLmFwcGVuZChub2RlKTsKKyAgICAg
ICAgY2hpbGRyZW4uYXBwZW5kKCpub2RlKTsKICAgICAKICAgICBFeGNlcHRpb25Db2RlIGVjID0g
MDsKICAgICAKICAgICBDb250YWluZXJOb2RlKiBwYXJlbnQgPSBtX2VsZW1lbnQyLT5wYXJlbnRO
b2RlKCk7CiAgICAgaWYgKCFwYXJlbnQgfHwgIXBhcmVudC0+aGFzRWRpdGFibGVTdHlsZSgpKQog
ICAgICAgICByZXR1cm47Ci0gICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobV9lbGVtZW50MS5nZXQo
KSwgbV9lbGVtZW50Mi5nZXQoKSwgZWMpOworICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKCptX2Vs
ZW1lbnQxLCBtX2VsZW1lbnQyLmdldCgpLCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1
cm47CiAKQEAgLTY1LDcgKzY1LDcgQEAgdm9pZCBTcGxpdEVsZW1lbnRDb21tYW5kOjpleGVjdXRl
QXBwbHkoKQogCiAgICAgc2l6ZV90IHNpemUgPSBjaGlsZHJlbi5zaXplKCk7CiAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCi0gICAgICAgIG1fZWxlbWVudDEtPmFwcGVuZENo
aWxkKGNoaWxkcmVuW2ldLCBlYyk7CisgICAgICAgIG1fZWxlbWVudDEtPmFwcGVuZENoaWxkKFdU
Rjo6bW92ZShjaGlsZHJlbltpXSksIGVjKTsKIH0KICAgICAKIHZvaWQgU3BsaXRFbGVtZW50Q29t
bWFuZDo6ZG9BcHBseSgpCkBAIC04MCwxNSArODAsMTUgQEAgdm9pZCBTcGxpdEVsZW1lbnRDb21t
YW5kOjpkb1VuYXBwbHkoKQogICAgIGlmICghbV9lbGVtZW50MSB8fCAhbV9lbGVtZW50MS0+aGFz
RWRpdGFibGVTdHlsZSgpIHx8ICFtX2VsZW1lbnQyLT5oYXNFZGl0YWJsZVN0eWxlKCkpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIFZlY3RvcjxSZWZQdHI8Tm9kZT4+IGNoaWxkcmVuOworICAgIFZl
Y3RvcjxSZWY8Tm9kZT4+IGNoaWxkcmVuOwogICAgIGZvciAoTm9kZSogbm9kZSA9IG1fZWxlbWVu
dDEtPmZpcnN0Q2hpbGQoKTsgbm9kZTsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpCi0gICAg
ICAgIGNoaWxkcmVuLmFwcGVuZChub2RlKTsKKyAgICAgICAgY2hpbGRyZW4uYXBwZW5kKCpub2Rl
KTsKIAogICAgIFJlZlB0cjxOb2RlPiByZWZDaGlsZCA9IG1fZWxlbWVudDItPmZpcnN0Q2hpbGQo
KTsKIAogICAgIHNpemVfdCBzaXplID0gY2hpbGRyZW4uc2l6ZSgpOwogICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICBtX2VsZW1lbnQyLT5pbnNlcnRCZWZvcmUo
Y2hpbGRyZW5baV0uZ2V0KCksIHJlZkNoaWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAg
ICAgICAgbV9lbGVtZW50Mi0+aW5zZXJ0QmVmb3JlKFdURjo6bW92ZShjaGlsZHJlbltpXSksIHJl
ZkNoaWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAogICAgIC8vIFJlY292ZXIgdGhlIGlk
IGF0dHJpYnV0ZSBvZiB0aGUgb3JpZ2luYWwgZWxlbWVudC4KICAgICBjb25zdCBBdG9taWNTdHJp
bmcmIGlkID0gbV9lbGVtZW50MS0+Z2V0SWRBdHRyaWJ1dGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvU3BsaXRUZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggMTdhODE3ZjlhYzI2ZGU5
OTRkNDE4ZDRkNjQ5YTZiOGY2ZjhjNGYwYi4uNjk5OTEzOTk1ZGZmZTNhMDFlM2UwMjVmMGQxMTBi
OGI2YjUwZDYwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGxpdFRleHRO
b2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGxpdFRleHROb2Rl
Q29tbWFuZC5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgdm9pZCBTcGxpdFRleHROb2RlQ29tbWFuZDo6
ZG9SZWFwcGx5KCkKIHZvaWQgU3BsaXRUZXh0Tm9kZUNvbW1hbmQ6Omluc2VydFRleHQxQW5kVHJp
bVRleHQyKCkKIHsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBtX3RleHQyLT5wYXJl
bnROb2RlKCktPmluc2VydEJlZm9yZShtX3RleHQxLmdldCgpLCBtX3RleHQyLmdldCgpLCBlYyk7
CisgICAgbV90ZXh0Mi0+cGFyZW50Tm9kZSgpLT5pbnNlcnRCZWZvcmUoKm1fdGV4dDEsIG1fdGV4
dDIuZ2V0KCksIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybjsKICAgICBtX3RleHQy
LT5kZWxldGVEYXRhKDAsIG1fb2Zmc2V0LCBlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1dyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1dyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZC5jcHAKaW5kZXggNTY0
NmYzNDE2Yzg1ZjJlNjAzMGY0NzRkNDMwYmY4Zjc0MjVlN2ZkNi4uZjgwYjc3MzdmOGFkOTZlM2U3
OGYxNDU5YmY1N2UyZjM1MTllYjllNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9XcmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvV3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kLmNwcApAQCAtNDAsMTUgKzQw
LDE1IEBAIFdyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZDo6V3JhcENvbnRlbnRzSW5EdW1t
eVNwYW5Db21tYW5kKFBhc3NSZWZQdHI8RWxlbWVuCiAKIHZvaWQgV3JhcENvbnRlbnRzSW5EdW1t
eVNwYW5Db21tYW5kOjpleGVjdXRlQXBwbHkoKQogewotICAgIFZlY3RvcjxSZWZQdHI8Tm9kZT4+
IGNoaWxkcmVuOworICAgIFZlY3RvcjxSZWY8Tm9kZT4+IGNoaWxkcmVuOwogICAgIGZvciAoTm9k
ZSogY2hpbGQgPSBtX2VsZW1lbnQtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQt
Pm5leHRTaWJsaW5nKCkpCi0gICAgICAgIGNoaWxkcmVuLmFwcGVuZChjaGlsZCk7CisgICAgICAg
IGNoaWxkcmVuLmFwcGVuZCgqY2hpbGQpOwogCiAgICAgc2l6ZV90IHNpemUgPSBjaGlsZHJlbi5z
aXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCi0gICAgICAgIG1f
ZHVtbXlTcGFuLT5hcHBlbmRDaGlsZChjaGlsZHJlbltpXS5yZWxlYXNlKCksIElHTk9SRV9FWENF
UFRJT04pOworICAgICAgICBtX2R1bW15U3Bhbi0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNoaWxk
cmVuW2ldKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBtX2VsZW1lbnQtPmFwcGVuZENoaWxk
KG1fZHVtbXlTcGFuLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBtX2VsZW1lbnQtPmFw
cGVuZENoaWxkKCptX2R1bW15U3BhbiwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CiAKIHZvaWQgV3Jh
cENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kOjpkb0FwcGx5KCkKQEAgLTY1LDEzICs2NSwxMyBA
QCB2b2lkIFdyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZDo6ZG9VbmFwcGx5KCkKICAgICBp
ZiAoIW1fZHVtbXlTcGFuIHx8ICFtX2VsZW1lbnQtPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgVmVjdG9yPFJlZlB0cjxOb2RlPj4gY2hpbGRyZW47CisgICAgVmVj
dG9yPFJlZjxOb2RlPj4gY2hpbGRyZW47CiAgICAgZm9yIChOb2RlKiBjaGlsZCA9IG1fZHVtbXlT
cGFuLT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQot
ICAgICAgICBjaGlsZHJlbi5hcHBlbmQoY2hpbGQpOworICAgICAgICBjaGlsZHJlbi5hcHBlbmQo
KmNoaWxkKTsKIAogICAgIHNpemVfdCBzaXplID0gY2hpbGRyZW4uc2l6ZSgpOwogICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICBtX2VsZW1lbnQtPmFwcGVuZENo
aWxkKGNoaWxkcmVuW2ldLnJlbGVhc2UoKSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgICAgIG1f
ZWxlbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNoaWxkcmVuW2ldKSwgSUdOT1JFX0VYQ0VQ
VElPTik7CiAKICAgICBtX2R1bW15U3Bhbi0+cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9FZGl0b3JDb2NvYS5tbSBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRWRpdG9yQ29jb2EubW0KaW5kZXggY2U0YmNi
Y2E0YmYzMmE5ZDUzMzdiZWI5MmRmMWY3ZTBmYTljOThmMy4uOTVlNjZkYjBkZWE3ODI5NDZlZDYw
MDYxM2U2ZDdjOTFjNGQxNmQxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9j
b2NvYS9FZGl0b3JDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0Vk
aXRvckNvY29hLm1tCkBAIC01NiwxNiArNTYsMTYgQEAgUmVuZGVyU3R5bGUqIEVkaXRvcjo6c3R5
bGVGb3JTZWxlY3Rpb25TdGFydChGcmFtZSogZnJhbWUsIE5vZGUgKiZub2RlVG9SZW1vdmUpCiAg
ICAgaWYgKCF0eXBpbmdTdHlsZSB8fCAhdHlwaW5nU3R5bGUtPnN0eWxlKCkpCiAgICAgICAgIHJl
dHVybiAmcG9zaXRpb24uZGVwcmVjYXRlZE5vZGUoKS0+cmVuZGVyZXIoKS0+c3R5bGUoKTsKIAot
ICAgIFJlZlB0cjxFbGVtZW50PiBzdHlsZUVsZW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+Y3Jl
YXRlRWxlbWVudChIVE1MTmFtZXM6OnNwYW5UYWcsIGZhbHNlKTsKKyAgICBSZWY8RWxlbWVudD4g
c3R5bGVFbGVtZW50ID0gZnJhbWUtPmRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoSFRNTE5hbWVz
OjpzcGFuVGFnLCBmYWxzZSk7CiAKICAgICBTdHJpbmcgc3R5bGVUZXh0ID0gdHlwaW5nU3R5bGUt
PnN0eWxlKCktPmFzVGV4dCgpICsgIiBkaXNwbGF5OiBpbmxpbmUiOwogICAgIHN0eWxlRWxlbWVu
dC0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6c3R5bGVBdHRyLCBzdHlsZVRleHQpOwogCiAgICAg
c3R5bGVFbGVtZW50LT5hcHBlbmRDaGlsZChmcmFtZS0+ZG9jdW1lbnQoKS0+Y3JlYXRlRWRpdGlu
Z1RleHROb2RlKCIiKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKLSAgICBwb3NpdGlvbi5kZXBy
ZWNhdGVkTm9kZSgpLT5wYXJlbnROb2RlKCktPmFwcGVuZENoaWxkKHN0eWxlRWxlbWVudCwgQVNT
RVJUX05PX0VYQ0VQVElPTik7CisgICAgcG9zaXRpb24uZGVwcmVjYXRlZE5vZGUoKS0+cGFyZW50
Tm9kZSgpLT5hcHBlbmRDaGlsZChzdHlsZUVsZW1lbnQuY29weVJlZigpLCBBU1NFUlRfTk9fRVhD
RVBUSU9OKTsKIAotICAgIG5vZGVUb1JlbW92ZSA9IHN0eWxlRWxlbWVudC5nZXQoKTsKKyAgICBu
b2RlVG9SZW1vdmUgPSBzdHlsZUVsZW1lbnQucHRyKCk7CiAKICAgICBmcmFtZS0+ZG9jdW1lbnQo
KS0+dXBkYXRlU3R5bGVJZk5lZWRlZCgpOwogICAgIHJldHVybiBzdHlsZUVsZW1lbnQtPnJlbmRl
cmVyKCkgPyAmc3R5bGVFbGVtZW50LT5yZW5kZXJlcigpLT5zdHlsZSgpIDogbnVsbHB0cjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAKaW5kZXggOGYwNGQwODEzNTJiOTYzMjU2
ZmJhZDc1N2ZlMTM1ZTZkY2QzZDc1MC4uN2NhYTE0ZjRiZTM3YzYxMzQ0OWM5NGE2YWRkYmM1OWVi
NWU2YmU1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAKQEAgLTg5OSwy
MCArODk5LDE4IEBAIGJvb2wgaXNFbXB0eVRhYmxlQ2VsbChjb25zdCBOb2RlKiBub2RlKQogICAg
IHJldHVybiAhY2hpbGRSZW5kZXJlci0+bmV4dFNpYmxpbmcoKTsKIH0KIAotUGFzc1JlZlB0cjxI
VE1MRWxlbWVudD4gY3JlYXRlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQoRG9jdW1lbnQmIGRvY3Vt
ZW50KQorUmVmPEhUTUxFbGVtZW50PiBjcmVhdGVEZWZhdWx0UGFyYWdyYXBoRWxlbWVudChEb2N1
bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgc3dpdGNoIChkb2N1bWVudC5mcmFtZSgpLT5lZGl0b3Io
KS5kZWZhdWx0UGFyYWdyYXBoU2VwYXJhdG9yKCkpIHsKICAgICBjYXNlIEVkaXRvclBhcmFncmFw
aFNlcGFyYXRvcklzRGl2OgogICAgICAgICByZXR1cm4gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCk7CiAgICAgY2FzZSBFZGl0b3JQYXJhZ3JhcGhTZXBhcmF0b3JJc1A6Ci0gICAgICAg
IHJldHVybiBIVE1MUGFyYWdyYXBoRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICAgICAg
YnJlYWs7CiAgICAgfQotCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIDA7
CisgICAgcmV0dXJuIEhUTUxQYXJhZ3JhcGhFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogfQog
Ci1QYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVCcmVha0VsZW1lbnQoRG9jdW1lbnQmIGRv
Y3VtZW50KQorUmVmPEhUTUxFbGVtZW50PiBjcmVhdGVCcmVha0VsZW1lbnQoRG9jdW1lbnQmIGRv
Y3VtZW50KQogewogICAgIHJldHVybiBIVE1MQlJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwog
fQpAQCAtOTcxLDcgKzk2OSw3IEBAIFBvc2l0aW9uIHBvc2l0aW9uT3V0c2lkZVRhYlNwYW4oY29u
c3QgUG9zaXRpb24mIHBvcykKICAgICByZXR1cm4gcG9zaXRpb25JblBhcmVudEJlZm9yZU5vZGUo
bm9kZSk7CiB9CiAKLVBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9j
dW1lbnQmIGRvY3VtZW50LCBQYXNzUmVmUHRyPE5vZGU+IHBycFRhYlRleHROb2RlKQorUmVmPEVs
ZW1lbnQ+IGNyZWF0ZVRhYlNwYW5FbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZlB0
cjxOb2RlPiBwcnBUYWJUZXh0Tm9kZSkKIHsKICAgICBSZWZQdHI8Tm9kZT4gdGFiVGV4dE5vZGUg
PSBwcnBUYWJUZXh0Tm9kZTsKIApAQCAtOTg0LDE3ICs5ODIsMTcgQEAgUGFzc1JlZlB0cjxFbGVt
ZW50PiBjcmVhdGVUYWJTcGFuRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWZQdHI8
Tm9kZT4gcHIKICAgICBpZiAoIXRhYlRleHROb2RlKQogICAgICAgICB0YWJUZXh0Tm9kZSA9IGRv
Y3VtZW50LmNyZWF0ZUVkaXRpbmdUZXh0Tm9kZSgiXHQiKTsKIAotICAgIHNwYW5FbGVtZW50LT5h
cHBlbmRDaGlsZCh0YWJUZXh0Tm9kZS5yZWxlYXNlKCksIEFTU0VSVF9OT19FWENFUFRJT04pOwor
ICAgIHNwYW5FbGVtZW50LT5hcHBlbmRDaGlsZCh0YWJUZXh0Tm9kZS5yZWxlYXNlTm9uTnVsbCgp
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAotICAgIHJldHVybiBzcGFuRWxlbWVudC5yZWxlYXNl
KCk7CisgICAgcmV0dXJuIHNwYW5FbGVtZW50LnJlbGVhc2VOb25OdWxsKCk7CiB9CiAKLVBhc3NS
ZWZQdHI8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBj
b25zdCBTdHJpbmcmIHRhYlRleHQpCitSZWY8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQo
RG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRhYlRleHQpCiB7CiAgICAgcmV0dXJu
IGNyZWF0ZVRhYlNwYW5FbGVtZW50KGRvY3VtZW50LCBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0
YWJUZXh0KSk7CiB9CiAKLVBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQo
RG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEVsZW1lbnQ+IGNyZWF0ZVRhYlNwYW5FbGVtZW50KERv
Y3VtZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoZG9j
dW1lbnQsIFBhc3NSZWZQdHI8Tm9kZT4oKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0
aW5nLmgKaW5kZXggNzg4YWYzZmNmYjk1ZTdkMmQyMjg3NjJhNTE1NTYxZWYwODkzZDBlZS4uZjY5
ZDlkOGVjNzUxNzgxMWI5ZWQ0ZjNjNzA3NzQ1MGExNTgxMTUxYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvaHRtbGVkaXRpbmcuaApAQCAtMjA2LDggKzIwNiw4IEBAIFZpc2libGVQb3NpdGlvbiB2aXNp
YmxlUG9zaXRpb25Gb3JJbmRleFVzaW5nQ2hhcmFjdGVySXRlcmF0b3IoTm9kZSosIGludCBpbmRl
eCk7CiAgICAgCiAvLyBGdW5jdGlvbnMgcmV0dXJuaW5nIEhUTUxFbGVtZW50CiAgICAgCi1XRUJD
T1JFX0VYUE9SVCBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVEZWZhdWx0UGFyYWdyYXBo
RWxlbWVudChEb2N1bWVudCYpOwotUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRlQnJlYWtF
bGVtZW50KERvY3VtZW50Jik7CitXRUJDT1JFX0VYUE9SVCBSZWY8SFRNTEVsZW1lbnQ+IGNyZWF0
ZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50KERvY3VtZW50Jik7CitSZWY8SFRNTEVsZW1lbnQ+IGNy
ZWF0ZUJyZWFrRWxlbWVudChEb2N1bWVudCYpOwogUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gY3Jl
YXRlT3JkZXJlZExpc3RFbGVtZW50KERvY3VtZW50Jik7CiBQYXNzUmVmUHRyPEhUTUxFbGVtZW50
PiBjcmVhdGVVbm9yZGVyZWRMaXN0RWxlbWVudChEb2N1bWVudCYpOwogUGFzc1JlZlB0cjxIVE1M
RWxlbWVudD4gY3JlYXRlTGlzdEl0ZW1FbGVtZW50KERvY3VtZW50Jik7CkBAIC0yMjIsMTAgKzIy
MiwxMCBAQCBOb2RlKiBlbmNsb3NpbmdMaXN0Q2hpbGQoTm9kZSopOwogLy8gRWxlbWVudAogLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogCi1QYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZVRhYlNwYW5FbGVt
ZW50KERvY3VtZW50Jik7Ci1QYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZVRhYlNwYW5FbGVtZW50
KERvY3VtZW50JiwgUGFzc1JlZlB0cjxOb2RlPiB0YWJUZXh0Tm9kZSk7Ci1QYXNzUmVmUHRyPEVs
ZW1lbnQ+IGNyZWF0ZVRhYlNwYW5FbGVtZW50KERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0YWJU
ZXh0KTsKLVBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlQmxvY2tQbGFjZWhvbGRlckVsZW1lbnQo
RG9jdW1lbnQmKTsKK1JlZjxFbGVtZW50PiBjcmVhdGVUYWJTcGFuRWxlbWVudChEb2N1bWVudCYp
OworUmVmPEVsZW1lbnQ+IGNyZWF0ZVRhYlNwYW5FbGVtZW50KERvY3VtZW50JiwgUGFzc1JlZlB0
cjxOb2RlPiB0YWJUZXh0Tm9kZSk7CitSZWY8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQo
RG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRhYlRleHQpOworUmVmPEVsZW1lbnQ+IGNyZWF0ZUJs
b2NrUGxhY2Vob2xkZXJFbGVtZW50KERvY3VtZW50Jik7CiAKIEVsZW1lbnQqIGVkaXRhYmxlUm9v
dEZvclBvc2l0aW9uKGNvbnN0IFBvc2l0aW9uJiwgRWRpdGFibGVUeXBlID0gQ29udGVudElzRWRp
dGFibGUpOwogRWxlbWVudCogdW5zcGxpdHRhYmxlRWxlbWVudEZvclBvc2l0aW9uKGNvbnN0IFBv
c2l0aW9uJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJ
T1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0KaW5kZXggMjI2
ZWFkNWE0M2JmNTk4MmQ5YjFiYTgxNDlhMjA4ZTEyYWU3MDExZi4uODE1MTk4NWYwYjkxZTc2ZjAw
MzE1NmIxYTUyMzYyZjYyNzBhZjA1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9pb3MvRWRpdG9ySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRv
cklPUy5tbQpAQCAtMzk3LDcgKzM5Nyw3IEBAIHZvaWQgRWRpdG9yOjpXZWJDb250ZW50UmVhZGVy
OjphZGRGcmFnbWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IG5ld0ZyYWdtCiAgICAg
aWYgKGZyYWdtZW50KSB7CiAgICAgICAgIGlmIChuZXdGcmFnbWVudCAmJiBuZXdGcmFnbWVudC0+
Zmlyc3RDaGlsZCgpKSB7CiAgICAgICAgICAgICBFeGNlcHRpb25Db2RlIGVjOwotICAgICAgICAg
ICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKG5ld0ZyYWdtZW50LT5maXJzdENoaWxkKCksIGVjKTsK
KyAgICAgICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZCgqbmV3RnJhZ21lbnQtPmZpcnN0Q2hp
bGQoKSwgZWMpOwogICAgICAgICB9CiAgICAgfSBlbHNlCiAgICAgICAgIGZyYWdtZW50ID0gbmV3
RnJhZ21lbnQ7CkBAIC00OTQsMTIgKzQ5NCwxMiBAQCBib29sIEVkaXRvcjo6V2ViQ29udGVudFJl
YWRlcjo6cmVhZFVSTChjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJikKICAgICAgICAgICAg
IHJldHVybiBmcmFnbWVudDsKICAgICAgICAgfQogICAgIH0gZWxzZSB7Ci0gICAgICAgIFJlZlB0
cjxFbGVtZW50PiBhbmNob3IgPSBmcmFtZS5kb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KEhUTUxO
YW1lczo6YVRhZywgZmFsc2UpOworICAgICAgICBSZWY8RWxlbWVudD4gYW5jaG9yID0gZnJhbWUu
ZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChIVE1MTmFtZXM6OmFUYWcsIGZhbHNlKTsKICAgICAg
ICAgYW5jaG9yLT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpocmVmQXR0ciwgdXJsLnN0cmluZygp
KTsKICAgICAgICAgYW5jaG9yLT5hcHBlbmRDaGlsZChmcmFtZS5kb2N1bWVudCgpLT5jcmVhdGVU
ZXh0Tm9kZShbWyhOU1VSTCAqKXVybCBhYnNvbHV0ZVN0cmluZ10gcHJlY29tcG9zZWRTdHJpbmdX
aXRoQ2Fub25pY2FsTWFwcGluZ10pKTsKIAogICAgICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVu
dD4gbmV3RnJhZ21lbnQgPSBmcmFtZS5kb2N1bWVudCgpLT5jcmVhdGVEb2N1bWVudEZyYWdtZW50
KCk7Ci0gICAgICAgIG5ld0ZyYWdtZW50LT5hcHBlbmRDaGlsZChhbmNob3IucmVsZWFzZSgpKTsK
KyAgICAgICAgbmV3RnJhZ21lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShhbmNob3IpKTsKICAg
ICAgICAgYWRkRnJhZ21lbnQobmV3RnJhZ21lbnQpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CkBAIC01ODMsNyArNTgzLDcgQEAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBFZGl0
b3I6OmNyZWF0ZUZyYWdtZW50Rm9ySW1hZ2VSZXNvdXJjZUFuZEFkZFJlc291cmMKICAgICBpZiAo
IXJlc291cmNlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIFJlZlB0cjxFbGVtZW50
PiBpbWFnZUVsZW1lbnQgPSBtX2ZyYW1lLmRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoSFRNTE5h
bWVzOjppbWdUYWcsIGZhbHNlKTsKKyAgICBSZWY8RWxlbWVudD4gaW1hZ2VFbGVtZW50ID0gbV9m
cmFtZS5kb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KEhUTUxOYW1lczo6aW1nVGFnLCBmYWxzZSk7
CiAgICAgLy8gRklYTUU6IFRoZSBjb2RlIGluIGNyZWF0ZUZyYWdtZW50QW5kQWRkUmVzb3VyY2Vz
IGNhbGxzIHNldERlZmVyc0xvYWRpbmcodHJ1ZSkuIERvbid0IHdlIG5lZWQgdGhhdCBoZXJlPwog
ICAgIGlmIChEb2N1bWVudExvYWRlciogbG9hZGVyID0gbV9mcmFtZS5sb2FkZXIoKS5kb2N1bWVu
dExvYWRlcigpKQogICAgICAgICBsb2FkZXItPmFkZEFyY2hpdmVSZXNvdXJjZShyZXNvdXJjZS5n
ZXQoKSk7CkBAIC01OTIsNyArNTkyLDcgQEAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBF
ZGl0b3I6OmNyZWF0ZUZyYWdtZW50Rm9ySW1hZ2VSZXNvdXJjZUFuZEFkZFJlc291cmMKICAgICBp
bWFnZUVsZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OnNyY0F0dHIsIFtVUkwgaXNGaWxl
VVJMXSA/IFtVUkwgYWJzb2x1dGVTdHJpbmddIDogcmVzb3VyY2UtPnVybCgpKTsKIAogICAgIFJl
ZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IG1fZnJhbWUuZG9jdW1lbnQoKS0+Y3Jl
YXRlRG9jdW1lbnRGcmFnbWVudCgpOwotICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChpbWFnZUVs
ZW1lbnQucmVsZWFzZSgpKTsKKyAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGlt
YWdlRWxlbWVudCkpOwogCiAgICAgcmV0dXJuIGZyYWdtZW50LnJlbGVhc2UoKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbQppbmRleCA2Y2VmNDg5OTU5YjQ5NWQwNzY5
OTAxNTNiYjk1YTFjMmYwOWZhZjA0Li5jZDI1MmRjZmQzMWMzZTAwYzE1NzdkYmY5MzBjODY4M2I1
MGRkMDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCkBAIC01Mjcs
MTUgKzUyNywxNSBAQCBib29sIEVkaXRvcjo6V2ViQ29udGVudFJlYWRlcjo6cmVhZEZpbGVuYW1l
cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGF0aHMpCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBzaXplOyBpKyspIHsKICAgICAgICAgU3RyaW5nIHRleHQgPSBwYXRoc1tpXTsKICNpZiBFTkFC
TEUoQVRUQUNITUVOVF9FTEVNRU5UKQotICAgICAgICBSZWZQdHI8SFRNTEF0dGFjaG1lbnRFbGVt
ZW50PiBhdHRhY2htZW50ID0gSFRNTEF0dGFjaG1lbnRFbGVtZW50OjpjcmVhdGUoYXR0YWNobWVu
dFRhZywgZG9jdW1lbnQpOworICAgICAgICBSZWY8SFRNTEF0dGFjaG1lbnRFbGVtZW50PiBhdHRh
Y2htZW50ID0gSFRNTEF0dGFjaG1lbnRFbGVtZW50OjpjcmVhdGUoYXR0YWNobWVudFRhZywgZG9j
dW1lbnQpOwogICAgICAgICBhdHRhY2htZW50LT5zZXRGaWxlKEZpbGU6OmNyZWF0ZShbW05TVVJM
IGZpbGVVUkxXaXRoUGF0aDp0ZXh0XSBwYXRoXSkucHRyKCkpOwotICAgICAgICBmcmFnbWVudC0+
YXBwZW5kQ2hpbGQoYXR0YWNobWVudC5yZWxlYXNlKCkpOworICAgICAgICBmcmFnbWVudC0+YXBw
ZW5kQ2hpbGQoV1RGOjptb3ZlKGF0dGFjaG1lbnQpKTsKICNlbHNlCiAgICAgICAgIHRleHQgPSBm
cmFtZS5lZGl0b3IoKS5jbGllbnQoKS0+dXNlclZpc2libGVTdHJpbmcoW05TVVJMIGZpbGVVUkxX
aXRoUGF0aDp0ZXh0XSk7CiAKLSAgICAgICAgUmVmUHRyPEhUTUxFbGVtZW50PiBwYXJhZ3JhcGgg
PSBjcmVhdGVEZWZhdWx0UGFyYWdyYXBoRWxlbWVudChkb2N1bWVudCk7CisgICAgICAgIFJlZjxI
VE1MRWxlbWVudD4gcGFyYWdyYXBoID0gY3JlYXRlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQoZG9j
dW1lbnQpOwogICAgICAgICBwYXJhZ3JhcGgtPmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKHRleHQpKTsKLSAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKHBhcmFncmFwaC5y
ZWxlYXNlKCkpOworICAgICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHBhcmFn
cmFwaCkpOwogI2VuZGlmCiAgICAgfQogCkBAIC01OTQsMTIgKzU5NCwxMiBAQCBib29sIEVkaXRv
cjo6V2ViQ29udGVudFJlYWRlcjo6cmVhZFVSTChjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5n
JiB0aXRsZSkKICAgICBpZiAodXJsLnN0cmluZygpLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCi0gICAgUmVmUHRyPEVsZW1lbnQ+IGFuY2hvciA9IGZyYW1lLmRvY3VtZW50KCkt
PmNyZWF0ZUVsZW1lbnQoSFRNTE5hbWVzOjphVGFnLCBmYWxzZSk7CisgICAgUmVmPEVsZW1lbnQ+
IGFuY2hvciA9IGZyYW1lLmRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoSFRNTE5hbWVzOjphVGFn
LCBmYWxzZSk7CiAgICAgYW5jaG9yLT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpocmVmQXR0ciwg
dXJsLnN0cmluZygpKTsKICAgICBhbmNob3ItPmFwcGVuZENoaWxkKGZyYW1lLmRvY3VtZW50KCkt
PmNyZWF0ZVRleHROb2RlKFt0aXRsZSBwcmVjb21wb3NlZFN0cmluZ1dpdGhDYW5vbmljYWxNYXBw
aW5nXSkpOwogCiAgICAgZnJhZ21lbnQgPSBmcmFtZS5kb2N1bWVudCgpLT5jcmVhdGVEb2N1bWVu
dEZyYWdtZW50KCk7Ci0gICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKGFuY2hvci5yZWxlYXNlKCkp
OworICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoYW5jaG9yKSk7CiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKQEAgLTYzNSwxMSArNjM1LDExIEBAIFBhc3NSZWZQdHI8RG9jdW1lbnRG
cmFnbWVudD4gRWRpdG9yOjpjcmVhdGVGcmFnbWVudEZvckltYWdlUmVzb3VyY2VBbmRBZGRSZXNv
dXJjCiAgICAgaWYgKERvY3VtZW50TG9hZGVyKiBsb2FkZXIgPSBtX2ZyYW1lLmxvYWRlcigpLmRv
Y3VtZW50TG9hZGVyKCkpCiAgICAgICAgIGxvYWRlci0+YWRkQXJjaGl2ZVJlc291cmNlKHJlc291
cmNlLmdldCgpKTsKIAotICAgIFJlZlB0cjxFbGVtZW50PiBpbWFnZUVsZW1lbnQgPSBkb2N1bWVu
dCgpLmNyZWF0ZUVsZW1lbnQoSFRNTE5hbWVzOjppbWdUYWcsIGZhbHNlKTsKKyAgICBSZWY8RWxl
bWVudD4gaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQoKS5jcmVhdGVFbGVtZW50KEhUTUxOYW1lczo6
aW1nVGFnLCBmYWxzZSk7CiAgICAgaW1hZ2VFbGVtZW50LT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVz
OjpzcmNBdHRyLCByZXNvdXJjZS0+dXJsKCkuc3RyaW5nKCkpOwogCiAgICAgUmVmUHRyPERvY3Vt
ZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gZG9jdW1lbnQoKS5jcmVhdGVEb2N1bWVudEZyYWdtZW50
KCk7Ci0gICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKGltYWdlRWxlbWVudC5yZWxlYXNlKCkpOwor
ICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoaW1hZ2VFbGVtZW50KSk7CiAKICAg
ICByZXR1cm4gZnJhZ21lbnQucmVsZWFzZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9tYXJrdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3Bw
CmluZGV4IDBjYWM4YjQwZmQ4YTNjNjUxODA0MTU0OGViNjQ5ZDk0YjUzNmQyZDIuLjIwNTRjNGU4
ZGJmYjYxZTFiMzc1MmQ4ZWFhYmMyMmEwODEzMTBkMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvbWFya3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1
cC5jcHAKQEAgLTcwNCwxMiArNzA0LDEyIEBAIFN0cmluZyBjcmVhdGVNYXJrdXAoY29uc3QgTm9k
ZSYgbm9kZSwgRUNoaWxkcmVuT25seSBjaGlsZHJlbk9ubHksIFZlY3RvcjxOb2RlKj4qCiAgICAg
cmV0dXJuIGFjY3VtdWxhdG9yLnNlcmlhbGl6ZU5vZGVzKGNvbnN0X2Nhc3Q8Tm9kZSY+KG5vZGUp
LCBjaGlsZHJlbk9ubHksIHRhZ05hbWVzVG9Ta2lwKTsKIH0KIAotc3RhdGljIHZvaWQgZmlsbENv
bnRhaW5lckZyb21TdHJpbmcoQ29udGFpbmVyTm9kZSogcGFyYWdyYXBoLCBjb25zdCBTdHJpbmcm
IHN0cmluZykKK3N0YXRpYyB2b2lkIGZpbGxDb250YWluZXJGcm9tU3RyaW5nKENvbnRhaW5lck5v
ZGUmIHBhcmFncmFwaCwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgRG9jdW1lbnQmIGRv
Y3VtZW50ID0gcGFyYWdyYXBoLT5kb2N1bWVudCgpOworICAgIERvY3VtZW50JiBkb2N1bWVudCA9
IHBhcmFncmFwaC5kb2N1bWVudCgpOwogCiAgICAgaWYgKHN0cmluZy5pc0VtcHR5KCkpIHsKLSAg
ICAgICAgcGFyYWdyYXBoLT5hcHBlbmRDaGlsZChjcmVhdGVCbG9ja1BsYWNlaG9sZGVyRWxlbWVu
dChkb2N1bWVudCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAgICBwYXJhZ3JhcGguYXBw
ZW5kQ2hpbGQoY3JlYXRlQmxvY2tQbGFjZWhvbGRlckVsZW1lbnQoZG9jdW1lbnQpLCBBU1NFUlRf
Tk9fRVhDRVBUSU9OKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNzI2LDExICs3MjYs
MTEgQEAgc3RhdGljIHZvaWQgZmlsbENvbnRhaW5lckZyb21TdHJpbmcoQ29udGFpbmVyTm9kZSog
cGFyYWdyYXBoLCBjb25zdCBTdHJpbmcmIHN0cmkKICAgICAgICAgLy8gYXBwZW5kIHRoZSBub24t
dGFiIHRleHR1YWwgcGFydAogICAgICAgICBpZiAoIXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAg
ICBpZiAoIXRhYlRleHQuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAgICAgcGFyYWdyYXBoLT5h
cHBlbmRDaGlsZChjcmVhdGVUYWJTcGFuRWxlbWVudChkb2N1bWVudCwgdGFiVGV4dCksIEFTU0VS
VF9OT19FWENFUFRJT04pOworICAgICAgICAgICAgICAgIHBhcmFncmFwaC5hcHBlbmRDaGlsZChj
cmVhdGVUYWJTcGFuRWxlbWVudChkb2N1bWVudCwgdGFiVGV4dCksIEFTU0VSVF9OT19FWENFUFRJ
T04pOwogICAgICAgICAgICAgICAgIHRhYlRleHQgPSBlbXB0eVN0cmluZygpOwogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgUmVmUHRyPE5vZGU+IHRleHROb2RlID0gZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUoc3RyaW5nV2l0aFJlYmFsYW5jZWRXaGl0ZXNwYWNlKHMsIGZpcnN0LCBpICsgMSA9
PSBudW1FbnRyaWVzKSk7Ci0gICAgICAgICAgICBwYXJhZ3JhcGgtPmFwcGVuZENoaWxkKHRleHRO
b2RlLnJlbGVhc2UoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAgICAgICBSZWY8Tm9k
ZT4gdGV4dE5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHJpbmdXaXRoUmViYWxhbmNl
ZFdoaXRlc3BhY2UocywgZmlyc3QsIGkgKyAxID09IG51bUVudHJpZXMpKTsKKyAgICAgICAgICAg
IHBhcmFncmFwaC5hcHBlbmRDaGlsZChXVEY6Om1vdmUodGV4dE5vZGUpLCBBU1NFUlRfTk9fRVhD
RVBUSU9OKTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIHRoZXJlIGlzIGEgdGFiIGFmdGVyIGV2
ZXJ5IGVudHJ5LCBleGNlcHQgdGhlIGxhc3QgZW50cnkKQEAgLTczOCw3ICs3MzgsNyBAQCBzdGF0
aWMgdm9pZCBmaWxsQ29udGFpbmVyRnJvbVN0cmluZyhDb250YWluZXJOb2RlKiBwYXJhZ3JhcGgs
IGNvbnN0IFN0cmluZyYgc3RyaQogICAgICAgICBpZiAoaSArIDEgIT0gbnVtRW50cmllcykKICAg
ICAgICAgICAgIHRhYlRleHQuYXBwZW5kKCdcdCcpOwogICAgICAgICBlbHNlIGlmICghdGFiVGV4
dC5pc0VtcHR5KCkpCi0gICAgICAgICAgICBwYXJhZ3JhcGgtPmFwcGVuZENoaWxkKGNyZWF0ZVRh
YlNwYW5FbGVtZW50KGRvY3VtZW50LCB0YWJUZXh0KSwgQVNTRVJUX05PX0VYQ0VQVElPTik7Cisg
ICAgICAgICAgICBwYXJhZ3JhcGguYXBwZW5kQ2hpbGQoY3JlYXRlVGFiU3BhbkVsZW1lbnQoZG9j
dW1lbnQsIHRhYlRleHQpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAogICAgICAgICBmaXJzdCA9
IGZhbHNlOwogICAgIH0KQEAgLTc3OCwxMyArNzc4LDEzIEBAIHN0YXRpYyBib29sIGNvbnRleHRQ
cmVzZXJ2ZXNOZXdsaW5lKGNvbnN0IFJhbmdlJiBjb250ZXh0KQogICAgIHJldHVybiBjb250YWlu
ZXItPnJlbmRlcmVyKCktPnN0eWxlKCkucHJlc2VydmVOZXdsaW5lKCk7CiB9CiAKLVBhc3NSZWZQ
dHI8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGcm9tVGV4dChSYW5nZSYgY29udGV4
dCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorUmVmPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdt
ZW50RnJvbVRleHQoUmFuZ2UmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgdGV4dCkKIHsKICAgICBE
b2N1bWVudCYgZG9jdW1lbnQgPSBjb250ZXh0Lm93bmVyRG9jdW1lbnQoKTsKLSAgICBSZWZQdHI8
RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdt
ZW50KCk7CisgICAgUmVmPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gZG9jdW1lbnQuY3Jl
YXRlRG9jdW1lbnRGcmFnbWVudCgpOwogICAgIAogICAgIGlmICh0ZXh0LmlzRW1wdHkoKSkKLSAg
ICAgICAgcmV0dXJuIGZyYWdtZW50LnJlbGVhc2UoKTsKKyAgICAgICAgcmV0dXJuIGZyYWdtZW50
OwogCiAgICAgU3RyaW5nIHN0cmluZyA9IHRleHQ7CiAgICAgc3RyaW5nLnJlcGxhY2UoIlxyXG4i
LCAiXG4iKTsKQEAgLTc5MywxNyArNzkzLDE3IEBAIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVu
dD4gY3JlYXRlRnJhZ21lbnRGcm9tVGV4dChSYW5nZSYgY29udGV4dCwgY29uc3QgU3RyaW5nCiAg
ICAgaWYgKGNvbnRleHRQcmVzZXJ2ZXNOZXdsaW5lKGNvbnRleHQpKSB7CiAgICAgICAgIGZyYWdt
ZW50LT5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHJpbmcpLCBBU1NFUlRf
Tk9fRVhDRVBUSU9OKTsKICAgICAgICAgaWYgKHN0cmluZy5lbmRzV2l0aCgnXG4nKSkgewotICAg
ICAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSBjcmVhdGVCcmVha0VsZW1lbnQoZG9j
dW1lbnQpOworICAgICAgICAgICAgUmVmPEVsZW1lbnQ+IGVsZW1lbnQgPSBjcmVhdGVCcmVha0Vs
ZW1lbnQoZG9jdW1lbnQpOwogICAgICAgICAgICAgZWxlbWVudC0+c2V0QXR0cmlidXRlKGNsYXNz
QXR0ciwgQXBwbGVJbnRlcmNoYW5nZU5ld2xpbmUpOyAgICAgICAgICAgIAotICAgICAgICAgICAg
ZnJhZ21lbnQtPmFwcGVuZENoaWxkKGVsZW1lbnQucmVsZWFzZSgpLCBBU1NFUlRfTk9fRVhDRVBU
SU9OKTsKKyAgICAgICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoZWxlbWVu
dCksIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiBmcmFn
bWVudC5yZWxlYXNlKCk7CisgICAgICAgIHJldHVybiBmcmFnbWVudDsKICAgICB9CiAKICAgICAv
LyBBIHN0cmluZyB3aXRoIG5vIG5ld2xpbmVzIGdldHMgYWRkZWQgaW5saW5lLCByYXRoZXIgdGhh
biBiZWluZyBwdXQgaW50byBhIHBhcmFncmFwaC4KICAgICBpZiAoc3RyaW5nLmZpbmQoJ1xuJykg
PT0gbm90Rm91bmQpIHsKLSAgICAgICAgZmlsbENvbnRhaW5lckZyb21TdHJpbmcoZnJhZ21lbnQu
Z2V0KCksIHN0cmluZyk7Ci0gICAgICAgIHJldHVybiBmcmFnbWVudC5yZWxlYXNlKCk7CisgICAg
ICAgIGZpbGxDb250YWluZXJGcm9tU3RyaW5nKGZyYWdtZW50LCBzdHJpbmcpOworICAgICAgICBy
ZXR1cm4gZnJhZ21lbnQ7CiAgICAgfQogCiAgICAgLy8gQnJlYWsgc3RyaW5nIGludG8gcGFyYWdy
YXBocy4gRXh0cmEgbGluZSBicmVha3MgdHVybiBpbnRvIGVtcHR5IHBhcmFncmFwaHMuCkBAIC04
MjksMTcgKzgyOSwxNyBAQCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdt
ZW50RnJvbVRleHQoUmFuZ2UmIGNvbnRleHQsIGNvbnN0IFN0cmluZwogICAgICAgICAgICAgZWxl
bWVudC0+c2V0QXR0cmlidXRlKGNsYXNzQXR0ciwgQXBwbGVJbnRlcmNoYW5nZU5ld2xpbmUpOwog
ICAgICAgICB9IGVsc2UgaWYgKHVzZUxpbmVCcmVhaykgewogICAgICAgICAgICAgZWxlbWVudCA9
IGNyZWF0ZUJyZWFrRWxlbWVudChkb2N1bWVudCk7Ci0gICAgICAgICAgICBmaWxsQ29udGFpbmVy
RnJvbVN0cmluZyhmcmFnbWVudC5nZXQoKSwgcyk7CisgICAgICAgICAgICBmaWxsQ29udGFpbmVy
RnJvbVN0cmluZyhmcmFnbWVudCwgcyk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBp
ZiAodXNlQ2xvbmVzT2ZFbmNsb3NpbmdCbG9jaykKICAgICAgICAgICAgICAgICBlbGVtZW50ID0g
YmxvY2stPmNsb25lRWxlbWVudFdpdGhvdXRDaGlsZHJlbihkb2N1bWVudCk7CiAgICAgICAgICAg
ICBlbHNlCiAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGNyZWF0ZURlZmF1bHRQYXJhZ3JhcGhF
bGVtZW50KGRvY3VtZW50KTsKLSAgICAgICAgICAgIGZpbGxDb250YWluZXJGcm9tU3RyaW5nKGVs
ZW1lbnQuZ2V0KCksIHMpOworICAgICAgICAgICAgZmlsbENvbnRhaW5lckZyb21TdHJpbmcoKmVs
ZW1lbnQsIHMpOwogICAgICAgICB9Ci0gICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChlbGVt
ZW50LnJlbGVhc2UoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAgIGZyYWdtZW50LT5h
cHBlbmRDaGlsZChlbGVtZW50LnJlbGVhc2VOb25OdWxsKCksIEFTU0VSVF9OT19FWENFUFRJT04p
OwogICAgIH0KLSAgICByZXR1cm4gZnJhZ21lbnQucmVsZWFzZSgpOworICAgIHJldHVybiBmcmFn
bWVudDsKIH0KIAogU3RyaW5nIGRvY3VtZW50VHlwZVN0cmluZyhjb25zdCBEb2N1bWVudCYgZG9j
dW1lbnQpCkBAIC05NDUsMTAgKzk0NSwxMCBAQCBzdGF0aWMgdm9pZCByZW1vdmVFbGVtZW50RnJv
bUZyYWdtZW50UHJlc2VydmluZ0NoaWxkcmVuKERvY3VtZW50RnJhZ21lbnQmIGZyYWdtZQogICAg
IFJlZlB0cjxOb2RlPiBuZXh0Q2hpbGQ7CiAgICAgZm9yIChSZWZQdHI8Tm9kZT4gY2hpbGQgPSBl
bGVtZW50LmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gbmV4dENoaWxkKSB7CiAgICAgICAg
IG5leHRDaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpOwotICAgICAgICBlbGVtZW50LnJlbW92
ZUNoaWxkKGNoaWxkLmdldCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKLSAgICAgICAgZnJhZ21l
bnQuaW5zZXJ0QmVmb3JlKGNoaWxkLCAmZWxlbWVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7Cisg
ICAgICAgIGVsZW1lbnQucmVtb3ZlQ2hpbGQoKmNoaWxkLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsK
KyAgICAgICAgZnJhZ21lbnQuaW5zZXJ0QmVmb3JlKCpjaGlsZCwgJmVsZW1lbnQsIEFTU0VSVF9O
T19FWENFUFRJT04pOwogICAgIH0KLSAgICBmcmFnbWVudC5yZW1vdmVDaGlsZCgmZWxlbWVudCwg
QVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgZnJhZ21lbnQucmVtb3ZlQ2hpbGQoZWxlbWVudCwg
QVNTRVJUX05PX0VYQ0VQVElPTik7CiB9CiAKIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4g
Y3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KGNvbnN0IFN0cmluZyYgbWFya3VwLCBIVE1MRWxlbWVu
dCogZWxlbWVudCwgUGFyc2VyQ29udGVudFBvbGljeSBwYXJzZXJDb250ZW50UG9saWN5LCBFeGNl
cHRpb25Db2RlJiBlYykKQEAgLTk5MCw3ICs5OTAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaGFz
T25lVGV4dENoaWxkKENvbnRhaW5lck5vZGUmIG5vZGUpCiAgICAgcmV0dXJuIGhhc09uZUNoaWxk
KG5vZGUpICYmIG5vZGUuZmlyc3RDaGlsZCgpLT5pc1RleHROb2RlKCk7CiB9CiAKLXZvaWQgcmVw
bGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KENvbnRhaW5lck5vZGUmIGNvbnRhaW5lciwgUGFzc1Jl
ZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lk
IHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudChDb250YWluZXJOb2RlJiBjb250YWluZXIsIFJl
ZjxEb2N1bWVudEZyYWdtZW50PiYmIGZyYWdtZW50LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAg
ICBSZWY8Q29udGFpbmVyTm9kZT4gY29udGFpbmVyTm9kZShjb250YWluZXIpOwogICAgIENoaWxk
TGlzdE11dGF0aW9uU2NvcGUgbXV0YXRpb24oY29udGFpbmVyTm9kZSk7CkBAIC0xMDAwLDE4ICsx
MDAwLDE4IEBAIHZvaWQgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KENvbnRhaW5lck5vZGUm
IGNvbnRhaW5lciwgUGFzc1JlZlB0cjxEb2N1bWVudEZyCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBpZiAoaGFzT25lVGV4dENoaWxkKGNvbnRhaW5lck5vZGUpICYmIGhhc09uZVRleHRD
aGlsZCgqZnJhZ21lbnQpKSB7CisgICAgaWYgKGhhc09uZVRleHRDaGlsZChjb250YWluZXJOb2Rl
KSAmJiBoYXNPbmVUZXh0Q2hpbGQoZnJhZ21lbnQpKSB7CiAgICAgICAgIGRvd25jYXN0PFRleHQ+
KCpjb250YWluZXJOb2RlLT5maXJzdENoaWxkKCkpLnNldERhdGEoZG93bmNhc3Q8VGV4dD4oKmZy
YWdtZW50LT5maXJzdENoaWxkKCkpLmRhdGEoKSwgZWMpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCiAgICAgaWYgKGhhc09uZUNoaWxkKGNvbnRhaW5lck5vZGUpKSB7Ci0gICAgICAgIGNvbnRh
aW5lck5vZGUtPnJlcGxhY2VDaGlsZChmcmFnbWVudCwgY29udGFpbmVyTm9kZS0+Zmlyc3RDaGls
ZCgpLCBlYyk7CisgICAgICAgIGNvbnRhaW5lck5vZGUtPnJlcGxhY2VDaGlsZChXVEY6Om1vdmUo
ZnJhZ21lbnQpLCAqY29udGFpbmVyTm9kZS0+Zmlyc3RDaGlsZCgpLCBlYyk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKICAgICBjb250YWluZXJOb2RlLT5yZW1vdmVDaGlsZHJlbigpOwotICAg
IGNvbnRhaW5lck5vZGUtPmFwcGVuZENoaWxkKGZyYWdtZW50LCBlYyk7CisgICAgY29udGFpbmVy
Tm9kZS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGZyYWdtZW50KSwgZWMpOwogfQogCiB2b2lkIHJl
cGxhY2VDaGlsZHJlbldpdGhUZXh0KENvbnRhaW5lck5vZGUmIGNvbnRhaW5lciwgY29uc3QgU3Ry
aW5nJiB0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTEwMjcsNyArMTAyNyw3IEBAIHZvaWQg
cmVwbGFjZUNoaWxkcmVuV2l0aFRleHQoQ29udGFpbmVyTm9kZSYgY29udGFpbmVyLCBjb25zdCBT
dHJpbmcmIHRleHQsIEV4Y2VwCiAgICAgUmVmPFRleHQ+IHRleHROb2RlID0gVGV4dDo6Y3JlYXRl
KGNvbnRhaW5lck5vZGUtPmRvY3VtZW50KCksIHRleHQpOwogCiAgICAgaWYgKGhhc09uZUNoaWxk
KGNvbnRhaW5lck5vZGUpKSB7Ci0gICAgICAgIGNvbnRhaW5lck5vZGUtPnJlcGxhY2VDaGlsZChX
VEY6Om1vdmUodGV4dE5vZGUpLCBjb250YWluZXJOb2RlLT5maXJzdENoaWxkKCksIGVjKTsKKyAg
ICAgICAgY29udGFpbmVyTm9kZS0+cmVwbGFjZUNoaWxkKFdURjo6bW92ZSh0ZXh0Tm9kZSksICpj
b250YWluZXJOb2RlLT5maXJzdENoaWxkKCksIGVjKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuaCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvbWFya3VwLmgKaW5kZXggYzU1MjAxMDc2NjA3MmVmNWU2MWQyNmEzMTNj
MWIwMDNiMWI4MzRiOC4uYTU0NWJhNTQ2NmYyZmQxODNkNTViYjRlODMyMDk0NDhjODhmMzc5MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL21hcmt1cC5oCkBAIC00OSw3ICs0OSw3IEBAIGVudW0gRUNoaWxkcmVu
T25seSB7IEluY2x1ZGVOb2RlLCBDaGlsZHJlbk9ubHkgfTsKIGVudW0gRUFic29sdXRlVVJMcyB7
IERvTm90UmVzb2x2ZVVSTHMsIFJlc29sdmVBbGxVUkxzLCBSZXNvbHZlTm9uTG9jYWxVUkxzIH07
CiBlbnVtIEVGcmFnbWVudFNlcmlhbGl6YXRpb24geyBIVE1MRnJhZ21lbnRTZXJpYWxpemF0aW9u
LCBYTUxGcmFnbWVudFNlcmlhbGl6YXRpb24gfTsKIAotV0VCQ09SRV9FWFBPUlQgUGFzc1JlZlB0
cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21UZXh0KFJhbmdlJiBjb250ZXh0
LCBjb25zdCBTdHJpbmcmIHRleHQpOworV0VCQ09SRV9FWFBPUlQgUmVmPERvY3VtZW50RnJhZ21l
bnQ+IGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoUmFuZ2UmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYg
dGV4dCk7CiBXRUJDT1JFX0VYUE9SVCBSZWY8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21l
bnRGcm9tTWFya3VwKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiBtYXJrdXAsIGNvbnN0IFN0cmlu
ZyYgYmFzZVVSTCwgUGFyc2VyQ29udGVudFBvbGljeSA9IEFsbG93U2NyaXB0aW5nQ29udGVudCk7
CiBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50Rm9ySW5uZXJPdXRl
ckhUTUwoY29uc3QgU3RyaW5nJiwgRWxlbWVudCosIFBhcnNlckNvbnRlbnRQb2xpY3ksIEV4Y2Vw
dGlvbkNvZGUmKTsKIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRG
b3JUcmFuc2Zvcm1Ub0ZyYWdtZW50KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgc291cmNl
TUlNRVR5cGUsIERvY3VtZW50KiBvdXRwdXREb2MpOwpAQCAtNTksMTEgKzU5LDExIEBAIGJvb2wg
aXNQbGFpblRleHRNYXJrdXAoTm9kZSopOwogCiAvLyBUaGVzZSBtZXRob2RzIGFyZSB1c2VkIGJ5
IEhUTUxFbGVtZW50ICYgU2hhZG93Um9vdCB0byByZXBsYWNlIHRoZQogLy8gY2hpbGRyZW4gd2l0
aCByZXNwZWN0ZWQgZnJhZ21lbnQvdGV4dC4KLXZvaWQgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdt
ZW50KENvbnRhaW5lck5vZGUmLCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+LCBFeGNlcHRp
b25Db2RlJik7Cit2b2lkIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudChDb250YWluZXJOb2Rl
JiwgUmVmPERvY3VtZW50RnJhZ21lbnQ+JiYsIEV4Y2VwdGlvbkNvZGUmKTsKIHZvaWQgcmVwbGFj
ZUNoaWxkcmVuV2l0aFRleHQoQ29udGFpbmVyTm9kZSYsIGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlv
bkNvZGUmKTsKIAotU3RyaW5nIGNyZWF0ZU1hcmt1cChjb25zdCBSYW5nZSYsIFZlY3RvcjxOb2Rl
Kj4qID0gMCwgRUFubm90YXRlRm9ySW50ZXJjaGFuZ2UgPSBEb05vdEFubm90YXRlRm9ySW50ZXJj
aGFuZ2UsIGJvb2wgY29udmVydEJsb2Nrc1RvSW5saW5lcyA9IGZhbHNlLCBFQWJzb2x1dGVVUkxz
ID0gRG9Ob3RSZXNvbHZlVVJMcyk7Ci1TdHJpbmcgY3JlYXRlTWFya3VwKGNvbnN0IE5vZGUmLCBF
Q2hpbGRyZW5Pbmx5ID0gSW5jbHVkZU5vZGUsIFZlY3RvcjxOb2RlKj4qID0gMCwgRUFic29sdXRl
VVJMcyA9IERvTm90UmVzb2x2ZVVSTHMsIFZlY3RvcjxRdWFsaWZpZWROYW1lPiogdGFnTmFtZXNU
b1NraXAgPSAwLCBFRnJhZ21lbnRTZXJpYWxpemF0aW9uID0gSFRNTEZyYWdtZW50U2VyaWFsaXph
dGlvbik7CitTdHJpbmcgY3JlYXRlTWFya3VwKGNvbnN0IFJhbmdlJiwgVmVjdG9yPE5vZGUqPiog
PSBudWxscHRyLCBFQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSA9IERvTm90QW5ub3RhdGVGb3JJbnRl
cmNoYW5nZSwgYm9vbCBjb252ZXJ0QmxvY2tzVG9JbmxpbmVzID0gZmFsc2UsIEVBYnNvbHV0ZVVS
THMgPSBEb05vdFJlc29sdmVVUkxzKTsKK1N0cmluZyBjcmVhdGVNYXJrdXAoY29uc3QgTm9kZSYs
IEVDaGlsZHJlbk9ubHkgPSBJbmNsdWRlTm9kZSwgVmVjdG9yPE5vZGUqPiogPSBudWxscHRyLCBF
QWJzb2x1dGVVUkxzID0gRG9Ob3RSZXNvbHZlVVJMcywgVmVjdG9yPFF1YWxpZmllZE5hbWU+KiB0
YWdOYW1lc1RvU2tpcCA9IDAsIEVGcmFnbWVudFNlcmlhbGl6YXRpb24gPSBIVE1MRnJhZ21lbnRT
ZXJpYWxpemF0aW9uKTsKIAogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNyZWF0ZUZ1bGxNYXJrdXAo
Y29uc3QgTm9kZSYpOwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNyZWF0ZUZ1bGxNYXJrdXAoY29u
c3QgUmFuZ2UmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJP
bmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hv
b3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKaW5kZXggZGJlYTBlOTliZDkzNGM3ZGJk
ZWE1MmQyNWQwMWMyZjgxNzVkYzFkMC4uNTdlMzg4YmYxZGNlYTRiODE5NmI0NjBmMGNjMzcxMWZm
MGY4NzM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlE
YXRlQW5kVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hv
b3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKQEAgLTYwLDkgKzYwLDkgQEAgdm9pZCBC
YXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgp
CiB7CiAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgdmFs
dWVDb250YWluZXJQc2V1ZG8sICgiLXdlYmtpdC1kYXRlLWFuZC10aW1lLXZhbHVlIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogCi0gICAgUmVmUHRyPEhUTUxEaXZFbGVt
ZW50PiB2YWx1ZUNvbnRhaW5lciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLmRv
Y3VtZW50KCkpOworICAgIFJlZjxIVE1MRGl2RWxlbWVudD4gdmFsdWVDb250YWluZXIgPSBIVE1M
RGl2RWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS5kb2N1bWVudCgpKTsKICAgICB2YWx1ZUNvbnRh
aW5lci0+c2V0UHNldWRvKHZhbHVlQ29udGFpbmVyUHNldWRvKTsKLSAgICBlbGVtZW50KCkudXNl
ckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZCh2YWx1ZUNvbnRhaW5lci5nZXQoKSk7Cisg
ICAgZWxlbWVudCgpLnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoV1RGOjptb3Zl
KHZhbHVlQ29udGFpbmVyKSk7CiAgICAgdXBkYXRlQXBwZWFyYW5jZSgpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCmluZGV4IDhiYmRiOTdjMjUyNGI2MmFiMzlhYTY0
ZTY4NDA4NTVjYTQ2OTU1OWMuLmM1Mzg1YTA0YjY3NzhjNWVhMmQ0MzViNDM5YTk0YmYyMDdiYjY2
NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCkBAIC0xMDcsMTIgKzEw
NywxMiBAQCB2b2lkIENvbG9ySW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKICAgICBB
U1NFUlQoZWxlbWVudCgpLnNoYWRvd1Jvb3QoKSk7CiAKICAgICBEb2N1bWVudCYgZG9jdW1lbnQg
PSBlbGVtZW50KCkuZG9jdW1lbnQoKTsKLSAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IHdyYXBw
ZXJFbGVtZW50ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgUmVmPEhU
TUxEaXZFbGVtZW50PiB3cmFwcGVyRWxlbWVudCA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQpOwogICAgIHdyYXBwZXJFbGVtZW50LT5zZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Vi
a2l0LWNvbG9yLXN3YXRjaC13cmFwcGVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOwotICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gY29sb3JTd2F0Y2ggPSBIVE1MRGl2
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBSZWY8SFRNTERpdkVsZW1lbnQ+IGNvbG9y
U3dhdGNoID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29sb3JTd2F0
Y2gtPnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtY29sb3Itc3dhdGNoIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIHdyYXBwZXJFbGVtZW50LT5hcHBl
bmRDaGlsZChjb2xvclN3YXRjaC5yZWxlYXNlKCksIEFTU0VSVF9OT19FWENFUFRJT04pOwotICAg
IGVsZW1lbnQoKS51c2VyQWdlbnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKHdyYXBwZXJFbGVt
ZW50LnJlbGVhc2UoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgd3JhcHBlckVsZW1lbnQt
PmFwcGVuZENoaWxkKFdURjo6bW92ZShjb2xvclN3YXRjaCksIEFTU0VSVF9OT19FWENFUFRJT04p
OworICAgIGVsZW1lbnQoKS51c2VyQWdlbnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKFdURjo6
bW92ZSh3cmFwcGVyRWxlbWVudCksIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgIAogICAgIHVw
ZGF0ZUNvbG9yU3dhdGNoKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZU
UERpcmVjdG9yeURvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5
RG9jdW1lbnQuY3BwCmluZGV4IDQwNjVhMTc4ZDI4MmE5Mjk3MTQ1MTE1NWI2NmQ2M2RkMzRhMWYy
ZDUuLjE0NDdhNDYzNWY3MjEyZWZhOTJhMTFjMTdmOTJmN2Y2OTM3ZWFlZmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwCkBAIC0xMDQsMjcgKzEwNCwy
NyBAQCB2b2lkIEZUUERpcmVjdG9yeURvY3VtZW50UGFyc2VyOjphcHBlbmRFbnRyeShjb25zdCBT
dHJpbmcmIGZpbGVuYW1lLCBjb25zdCBTdHJpbgogICAgIFJlZlB0cjxFbGVtZW50PiByb3dFbGVt
ZW50ID0gbV90YWJsZUVsZW1lbnQtPmluc2VydFJvdygtMSwgSUdOT1JFX0VYQ0VQVElPTik7CiAg
ICAgcm93RWxlbWVudC0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6Y2xhc3NBdHRyLCAiZnRwRGly
ZWN0b3J5RW50cnlSb3ciKTsKIAotICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gZG9jdW1l
bnQoKS0+Y3JlYXRlRWxlbWVudCh0ZFRhZywgZmFsc2UpOworICAgIFJlZjxFbGVtZW50PiBlbGVt
ZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudCh0ZFRhZywgZmFsc2UpOwogICAgIGVsZW1l
bnQtPmFwcGVuZENoaWxkKFRleHQ6OmNyZWF0ZSgqZG9jdW1lbnQoKSwgU3RyaW5nKCZub0JyZWFr
U3BhY2UsIDEpKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgaWYgKGlzRGlyZWN0b3J5KQogICAg
ICAgICBlbGVtZW50LT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpjbGFzc0F0dHIsICJmdHBEaXJl
Y3RvcnlJY29uIGZ0cERpcmVjdG9yeVR5cGVEaXJlY3RvcnkiKTsKICAgICBlbHNlCiAgICAgICAg
IGVsZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNsYXNzQXR0ciwgImZ0cERpcmVjdG9y
eUljb24gZnRwRGlyZWN0b3J5VHlwZUZpbGUiKTsKLSAgICByb3dFbGVtZW50LT5hcHBlbmRDaGls
ZChlbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICByb3dFbGVtZW50LT5hcHBlbmRDaGls
ZChXVEY6Om1vdmUoZWxlbWVudCksIElHTk9SRV9FWENFUFRJT04pOwogCiAgICAgZWxlbWVudCA9
IGNyZWF0ZVRERm9yRmlsZW5hbWUoZmlsZW5hbWUpOwogICAgIGVsZW1lbnQtPnNldEF0dHJpYnV0
ZShIVE1MTmFtZXM6OmNsYXNzQXR0ciwgImZ0cERpcmVjdG9yeUZpbGVOYW1lIik7Ci0gICAgcm93
RWxlbWVudC0+YXBwZW5kQ2hpbGQoZWxlbWVudCwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgcm93
RWxlbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGVsZW1lbnQpLCBJR05PUkVfRVhDRVBUSU9O
KTsKIAogICAgIGVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KHRkVGFnLCBmYWxz
ZSk7CiAgICAgZWxlbWVudC0+YXBwZW5kQ2hpbGQoVGV4dDo6Y3JlYXRlKCpkb2N1bWVudCgpLCBk
YXRlKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgZWxlbWVudC0+c2V0QXR0cmlidXRlKEhUTUxO
YW1lczo6Y2xhc3NBdHRyLCAiZnRwRGlyZWN0b3J5RmlsZURhdGUiKTsKLSAgICByb3dFbGVtZW50
LT5hcHBlbmRDaGlsZChlbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICByb3dFbGVtZW50
LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoZWxlbWVudCksIElHTk9SRV9FWENFUFRJT04pOwogCiAg
ICAgZWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQodGRUYWcsIGZhbHNlKTsKICAg
ICBlbGVtZW50LT5hcHBlbmRDaGlsZChUZXh0OjpjcmVhdGUoKmRvY3VtZW50KCksIHNpemUpLCBJ
R05PUkVfRVhDRVBUSU9OKTsKICAgICBlbGVtZW50LT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpj
bGFzc0F0dHIsICJmdHBEaXJlY3RvcnlGaWxlU2l6ZSIpOwotICAgIHJvd0VsZW1lbnQtPmFwcGVu
ZENoaWxkKGVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOworICAgIHJvd0VsZW1lbnQtPmFwcGVu
ZENoaWxkKFdURjo6bW92ZShlbGVtZW50KSwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CiAKIFJlZjxF
bGVtZW50PiBGVFBEaXJlY3RvcnlEb2N1bWVudFBhcnNlcjo6Y3JlYXRlVERGb3JGaWxlbmFtZShj
b25zdCBTdHJpbmcmIGZpbGVuYW1lKQpAQCAtMTM1LDEyICsxMzUsMTIgQEAgUmVmPEVsZW1lbnQ+
IEZUUERpcmVjdG9yeURvY3VtZW50UGFyc2VyOjpjcmVhdGVUREZvckZpbGVuYW1lKGNvbnN0IFN0
cmluZyYgZmlsZW4KICAgICBlbHNlCiAgICAgICAgIGZ1bGxVUkwgPSBmdWxsVVJMICsgJy8nICsg
ZmlsZW5hbWU7CiAKLSAgICBSZWZQdHI8RWxlbWVudD4gYW5jaG9yRWxlbWVudCA9IGRvY3VtZW50
KCktPmNyZWF0ZUVsZW1lbnQoYVRhZywgZmFsc2UpOworICAgIFJlZjxFbGVtZW50PiBhbmNob3JF
bGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChhVGFnLCBmYWxzZSk7CiAgICAgYW5j
aG9yRWxlbWVudC0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6aHJlZkF0dHIsIGZ1bGxVUkwpOwog
ICAgIGFuY2hvckVsZW1lbnQtPmFwcGVuZENoaWxkKFRleHQ6OmNyZWF0ZSgqZG9jdW1lbnQoKSwg
ZmlsZW5hbWUpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAogICAgIFJlZjxFbGVtZW50PiB0ZEVsZW1l
bnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KHRkVGFnLCBmYWxzZSk7Ci0gICAgdGRFbGVt
ZW50LT5hcHBlbmRDaGlsZChhbmNob3JFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICB0
ZEVsZW1lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShhbmNob3JFbGVtZW50KSwgSUdOT1JFX0VY
Q0VQVElPTik7CiAKICAgICByZXR1cm4gdGRFbGVtZW50OwogfQpAQCAtMzEyLDkgKzMxMiw5IEBA
IGJvb2wgRlRQRGlyZWN0b3J5RG9jdW1lbnRQYXJzZXI6OmxvYWREb2N1bWVudFRlbXBsYXRlKCkK
ICAgICAvLyBJZiB0aGF0IGZhaWxzIGZvciBzb21lIHJlYXNvbiwgY3JhbSBpdCBvbiB0aGUgZW5k
IG9mIHRoZSBkb2N1bWVudCBhcyBhIGxhc3QKICAgICAvLyBkaXRjaCBlZmZvcnQKICAgICBpZiAo
YXV0byogYm9keSA9IGRvY3VtZW50KCktPmJvZHlPckZyYW1lc2V0KCkpCi0gICAgICAgIGJvZHkt
PmFwcGVuZENoaWxkKG1fdGFibGVFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAg
Ym9keS0+YXBwZW5kQ2hpbGQoKm1fdGFibGVFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKICAg
ICBlbHNlCi0gICAgICAgIGRvY3VtZW50KCktPmFwcGVuZENoaWxkKG1fdGFibGVFbGVtZW50LCBJ
R05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgZG9jdW1lbnQoKS0+YXBwZW5kQ2hpbGQoKm1fdGFi
bGVFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAt
MzI1LDE2ICszMjUsMTYgQEAgdm9pZCBGVFBEaXJlY3RvcnlEb2N1bWVudFBhcnNlcjo6Y3JlYXRl
QmFzaWNEb2N1bWVudCgpCiAKICAgICAvLyBGSVhNRTogTWFrZSB0aGlzICJiYXNpYyBkb2N1bWVu
dCIgbW9yZSBhY2NlcHRhYmxlCiAKLSAgICBSZWZQdHI8RWxlbWVudD4gYm9keUVsZW1lbnQgPSBk
b2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KGJvZHlUYWcsIGZhbHNlKTsKKyAgICBSZWY8RWxlbWVu
dD4gYm9keUVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KGJvZHlUYWcsIGZhbHNl
KTsKIAotICAgIGRvY3VtZW50KCktPmFwcGVuZENoaWxkKGJvZHlFbGVtZW50LCBJR05PUkVfRVhD
RVBUSU9OKTsKKyAgICBkb2N1bWVudCgpLT5hcHBlbmRDaGlsZChib2R5RWxlbWVudC5jb3B5UmVm
KCksIElHTk9SRV9FWENFUFRJT04pOwogCi0gICAgUmVmUHRyPEVsZW1lbnQ+IHRhYmxlRWxlbWVu
dCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQodGFibGVUYWcsIGZhbHNlKTsKLSAgICBtX3Rh
YmxlRWxlbWVudCA9IGRvd25jYXN0PEhUTUxUYWJsZUVsZW1lbnQ+KHRhYmxlRWxlbWVudC5nZXQo
KSk7CisgICAgUmVmPEVsZW1lbnQ+IHRhYmxlRWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVs
ZW1lbnQodGFibGVUYWcsIGZhbHNlKTsKKyAgICBtX3RhYmxlRWxlbWVudCA9IGRvd25jYXN0PEhU
TUxUYWJsZUVsZW1lbnQ+KHRhYmxlRWxlbWVudC5wdHIoKSk7CiAgICAgbV90YWJsZUVsZW1lbnQt
PnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmlkQXR0ciwgImZ0cERpcmVjdG9yeVRhYmxlIik7CiAg
ICAgbV90YWJsZUVsZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OnN0eWxlQXR0ciwgIndp
ZHRoOjEwMCUiKTsKIAotICAgIGJvZHlFbGVtZW50LT5hcHBlbmRDaGlsZChtX3RhYmxlRWxlbWVu
dCwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgYm9keUVsZW1lbnQtPmFwcGVuZENoaWxkKFdURjo6
bW92ZSh0YWJsZUVsZW1lbnQpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAogICAgIGRvY3VtZW50KCkt
PnByb2Nlc3NWaWV3cG9ydCgid2lkdGg9ZGV2aWNlLXdpZHRoIiwgVmlld3BvcnRBcmd1bWVudHM6
OlZpZXdwb3J0TWV0YSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxE
ZXRhaWxzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVu
dC5jcHAKaW5kZXggNDMwMjEyYzFhYjgwNzA5MTYzZTU0ZjUzZDFkYmMyZjdjYWRhOGIxZi4uNDhj
YzliODQ4ZTU0MTdhYzc5ZmE2NTAxOWU0ODcwNWUxNzEyN2EwOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcApAQCAtOTAsMTEgKzkwLDExIEBAIHByaXZhdGU6
CiAKIFJlZjxEZXRhaWxzU3VtbWFyeUVsZW1lbnQ+IERldGFpbHNTdW1tYXJ5RWxlbWVudDo6Y3Jl
YXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBSZWZQdHI8SFRNTFN1bW1hcnlFbGVtZW50
PiBzdW1tYXJ5ID0gSFRNTFN1bW1hcnlFbGVtZW50OjpjcmVhdGUoc3VtbWFyeVRhZywgZG9jdW1l
bnQpOworICAgIFJlZjxIVE1MU3VtbWFyeUVsZW1lbnQ+IHN1bW1hcnkgPSBIVE1MU3VtbWFyeUVs
ZW1lbnQ6OmNyZWF0ZShzdW1tYXJ5VGFnLCBkb2N1bWVudCk7CiAgICAgc3VtbWFyeS0+YXBwZW5k
Q2hpbGQoVGV4dDo6Y3JlYXRlKGRvY3VtZW50LCBkZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0KCkp
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAogICAgIFJlZjxEZXRhaWxzU3VtbWFyeUVsZW1lbnQ+
IGRldGFpbHNTdW1tYXJ5ID0gYWRvcHRSZWYoKm5ldyBEZXRhaWxzU3VtbWFyeUVsZW1lbnQoZG9j
dW1lbnQpKTsKLSAgICBkZXRhaWxzU3VtbWFyeS0+YXBwZW5kQ2hpbGQoc3VtbWFyeSk7CisgICAg
ZGV0YWlsc1N1bW1hcnktPmFwcGVuZENoaWxkKFdURjo6bW92ZShzdW1tYXJ5KSk7CiAgICAgcmV0
dXJuIGRldGFpbHNTdW1tYXJ5OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmlu
ZGV4IDUyMGNlMDNlNzBjYzdhZDc4NmNiNTM3YTc3MzA5OTdmODYyM2MzNWUuLjVjMzc3ZGFlZTM5
NmZhNjBmYTM0MWRkYmY2YTk2OTc3Mzc4MGE2YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1l
bnQuY3BwCkBAIC01ODQsOSArNTg0LDkgQEAgdm9pZCBIVE1MRWxlbWVudDo6c2V0SW5uZXJUZXh0
KGNvbnN0IFN0cmluZyYgdGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAKICAgICAvLyBBZGQgdGV4
dCBub2RlcyBhbmQgPGJyPiBlbGVtZW50cy4KICAgICBlYyA9IDA7Ci0gICAgUmVmUHRyPERvY3Vt
ZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gdGV4dFRvRnJhZ21lbnQodGV4dCwgZWMpOworICAgIFJl
ZjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IHRleHRUb0ZyYWdtZW50KHRleHQsIGVjKTsK
ICAgICBpZiAoIWVjKQotICAgICAgICByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQoKnRoaXMs
IGZyYWdtZW50LnJlbGVhc2UoKSwgZWMpOworICAgICAgICByZXBsYWNlQ2hpbGRyZW5XaXRoRnJh
Z21lbnQoKnRoaXMsIFdURjo6bW92ZShmcmFnbWVudCksIGVjKTsKIH0KIAogdm9pZCBIVE1MRWxl
bWVudDo6c2V0T3V0ZXJUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMp
CkBAIC02MjEsNyArNjIxLDcgQEAgdm9pZCBIVE1MRWxlbWVudDo6c2V0T3V0ZXJUZXh0KGNvbnN0
IFN0cmluZyYgdGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgIGVjID0gSElFUkFSQ0hZ
X1JFUVVFU1RfRVJSOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuOwotICAgIHBhcmVudC0+
cmVwbGFjZUNoaWxkKG5ld0NoaWxkLnJlbGVhc2UoKSwgdGhpcywgZWMpOworICAgIHBhcmVudC0+
cmVwbGFjZUNoaWxkKG5ld0NoaWxkLnJlbGVhc2VOb25OdWxsKCksICp0aGlzLCBlYyk7CiAKICAg
ICBSZWZQdHI8Tm9kZT4gbm9kZSA9IG5leHQgPyBuZXh0LT5wcmV2aW91c1NpYmxpbmcoKSA6IG51
bGxwdHI7CiAgICAgaWYgKCFlYyAmJiBpczxUZXh0Pihub2RlLmdldCgpKSkKQEAgLTYzMCw3ICs2
MzAsNyBAQCB2b2lkIEhUTUxFbGVtZW50OjpzZXRPdXRlclRleHQoY29uc3QgU3RyaW5nJiB0ZXh0
LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgbWVyZ2VXaXRoTmV4dFRleHROb2RlKGRvd25j
YXN0PFRleHQ+KCpwcmV2KSwgZWMpOwogfQogCi1Ob2RlKiBIVE1MRWxlbWVudDo6aW5zZXJ0QWRq
YWNlbnQoY29uc3QgU3RyaW5nJiB3aGVyZSwgTm9kZSogbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUm
IGVjKQorTm9kZSogSFRNTEVsZW1lbnQ6Omluc2VydEFkamFjZW50KGNvbnN0IFN0cmluZyYgd2hl
cmUsIFJlZjxOb2RlPiYmIG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICAvLyBJ
biBJbnRlcm5ldCBFeHBsb3JlciBpZiB0aGUgZWxlbWVudCBoYXMgbm8gcGFyZW50IGFuZCB3aGVy
ZSBpcyAiYmVmb3JlQmVnaW4iIG9yICJhZnRlckVuZCIsCiAgICAgLy8gYSBkb2N1bWVudCBmcmFn
bWVudCBpcyBjcmVhdGVkIGFuZCB0aGUgZWxlbWVudHMgYXBwZW5kZWQgaW4gdGhlIGNvcnJlY3Qg
b3JkZXIuIFRoaXMgZG9jdW1lbnQKQEAgLTY0MSwxOCArNjQxLDE4IEBAIE5vZGUqIEhUTUxFbGVt
ZW50OjppbnNlcnRBZGphY2VudChjb25zdCBTdHJpbmcmIHdoZXJlLCBOb2RlKiBuZXdDaGlsZCwg
RXhjZXB0aW9uCiAKICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2Uod2hlcmUsICJiZWZvcmVCZWdp
biIpKSB7CiAgICAgICAgIENvbnRhaW5lck5vZGUqIHBhcmVudCA9IHRoaXMtPnBhcmVudE5vZGUo
KTsKLSAgICAgICAgcmV0dXJuIChwYXJlbnQgJiYgcGFyZW50LT5pbnNlcnRCZWZvcmUobmV3Q2hp
bGQsIHRoaXMsIGVjKSkgPyBuZXdDaGlsZCA6IG51bGxwdHI7CisgICAgICAgIHJldHVybiAocGFy
ZW50ICYmIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG5ld0NoaWxkLmNvcHlSZWYoKSwgdGhpcywgZWMp
KSA/IG5ld0NoaWxkLnB0cigpIDogbnVsbHB0cjsKICAgICB9CiAKICAgICBpZiAoZXF1YWxJZ25v
cmluZ0Nhc2Uod2hlcmUsICJhZnRlckJlZ2luIikpCi0gICAgICAgIHJldHVybiBpbnNlcnRCZWZv
cmUobmV3Q2hpbGQsIGZpcnN0Q2hpbGQoKSwgZWMpID8gbmV3Q2hpbGQgOiBudWxscHRyOworICAg
ICAgICByZXR1cm4gaW5zZXJ0QmVmb3JlKG5ld0NoaWxkLmNvcHlSZWYoKSwgZmlyc3RDaGlsZCgp
LCBlYykgPyBuZXdDaGlsZC5wdHIoKSA6IG51bGxwdHI7CiAKICAgICBpZiAoZXF1YWxJZ25vcmlu
Z0Nhc2Uod2hlcmUsICJiZWZvcmVFbmQiKSkKLSAgICAgICAgcmV0dXJuIGFwcGVuZENoaWxkKG5l
d0NoaWxkLCBlYykgPyBuZXdDaGlsZCA6IG51bGxwdHI7CisgICAgICAgIHJldHVybiBhcHBlbmRD
aGlsZChuZXdDaGlsZC5jb3B5UmVmKCksIGVjKSA/IG5ld0NoaWxkLnB0cigpIDogbnVsbHB0cjsK
IAogICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh3aGVyZSwgImFmdGVyRW5kIikpIHsKICAgICAg
ICAgQ29udGFpbmVyTm9kZSogcGFyZW50ID0gdGhpcy0+cGFyZW50Tm9kZSgpOwotICAgICAgICBy
ZXR1cm4gKHBhcmVudCAmJiBwYXJlbnQtPmluc2VydEJlZm9yZShuZXdDaGlsZCwgbmV4dFNpYmxp
bmcoKSwgZWMpKSA/IG5ld0NoaWxkIDogbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIChwYXJlbnQg
JiYgcGFyZW50LT5pbnNlcnRCZWZvcmUobmV3Q2hpbGQuY29weVJlZigpLCBuZXh0U2libGluZygp
LCBlYykpID8gbmV3Q2hpbGQucHRyKCkgOiBudWxscHRyOwogICAgIH0KICAgICAKICAgICAvLyBJ
RSB0aHJvd3MgQ09NIEV4Y2VwdGlvbiBFX0lOVkFMSURBUkc7IHRoaXMgaXMgdGhlIGJlc3QgRE9N
IGV4Y2VwdGlvbiBhbHRlcm5hdGl2ZS4KQEAgLTY2OCw3ICs2NjgsNyBAQCBFbGVtZW50KiBIVE1M
RWxlbWVudDo6aW5zZXJ0QWRqYWNlbnRFbGVtZW50KGNvbnN0IFN0cmluZyYgd2hlcmUsIEVsZW1l
bnQqIG5ld0NoaQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBOb2RlKiBy
ZXR1cm5WYWx1ZSA9IGluc2VydEFkamFjZW50KHdoZXJlLCBuZXdDaGlsZCwgZWMpOworICAgIE5v
ZGUqIHJldHVyblZhbHVlID0gaW5zZXJ0QWRqYWNlbnQod2hlcmUsICpuZXdDaGlsZCwgZWMpOwog
ICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFyZXR1cm5WYWx1ZSB8fCBpczxF
bGVtZW50PigqcmV0dXJuVmFsdWUpKTsKICAgICByZXR1cm4gZG93bmNhc3Q8RWxlbWVudD4ocmV0
dXJuVmFsdWUpOyAKIH0KQEAgLTY5OSwxMyArNjk5LDEyIEBAIHZvaWQgSFRNTEVsZW1lbnQ6Omlu
c2VydEFkamFjZW50SFRNTChjb25zdCBTdHJpbmcmIHdoZXJlLCBjb25zdCBTdHJpbmcmIG1hcmt1
cCwKICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVu
dEZvcklubmVyT3V0ZXJIVE1MKG1hcmt1cCwgY29udGV4dEVsZW1lbnQsIEFsbG93U2NyaXB0aW5n
Q29udGVudCwgZWMpOwogICAgIGlmICghZnJhZ21lbnQpCiAgICAgICAgIHJldHVybjsKLSAgICBp
bnNlcnRBZGphY2VudCh3aGVyZSwgZnJhZ21lbnQuZ2V0KCksIGVjKTsKKyAgICBpbnNlcnRBZGph
Y2VudCh3aGVyZSwgZnJhZ21lbnQucmVsZWFzZU5vbk51bGwoKSwgZWMpOwogfQogCiB2b2lkIEhU
TUxFbGVtZW50OjppbnNlcnRBZGphY2VudFRleHQoY29uc3QgU3RyaW5nJiB3aGVyZSwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBSZWZQdHI8VGV4dD4gdGV4
dE5vZGUgPSBkb2N1bWVudCgpLmNyZWF0ZVRleHROb2RlKHRleHQpOwotICAgIGluc2VydEFkamFj
ZW50KHdoZXJlLCB0ZXh0Tm9kZS5nZXQoKSwgZWMpOworICAgIGluc2VydEFkamFjZW50KHdoZXJl
LCBkb2N1bWVudCgpLmNyZWF0ZVRleHROb2RlKHRleHQpLCBlYyk7CiB9CiAKIHZvaWQgSFRNTEVs
ZW1lbnQ6OmFwcGx5QWxpZ25tZW50QXR0cmlidXRlVG9TdHlsZShjb25zdCBBdG9taWNTdHJpbmcm
IGFsaWdubWVudCwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5bGUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxFbGVtZW50LmgKaW5kZXggMzBlMzc3NWEwMDRlMzFiZWFlODM1Y2Y2OTBjYjQwOWIxZGZlYjc3
YS4uNzBkNDk2MWNlZDJkY2U5NmQ0NTU0ZWMxNjY2OTBkMGQ4NWMwNjNlYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEVsZW1lbnQuaApAQCAtMTMwLDcgKzEzMCw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0
dWFsIEhUTUxGb3JtRWxlbWVudCogdmlydHVhbEZvcm0oKSBjb25zdDsKIAotICAgIE5vZGUqIGlu
c2VydEFkamFjZW50KGNvbnN0IFN0cmluZyYgd2hlcmUsIE5vZGUqIG5ld0NoaWxkLCBFeGNlcHRp
b25Db2RlJik7CisgICAgTm9kZSogaW5zZXJ0QWRqYWNlbnQoY29uc3QgU3RyaW5nJiB3aGVyZSwg
UmVmPE5vZGU+JiYgbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBSZWY8RG9jdW1lbnRG
cmFnbWVudD4gdGV4dFRvRnJhZ21lbnQoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwog
CiAgICAgdm9pZCBkaXJBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKaW5kZXggYjJhMjc3YTU1OWJhMzVk
MWYzOTU1ZjQyODNjN2M4MjkxMzRiMGEwNi4uYTRhNzNjYTZiNjA5N2RjNzhiZDY5ZjNiYjQxMjFl
NGQyN2RlZDRiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCkBA
IC01MDQsNyArNTA0LDcgQEAgdm9pZCBIVE1MSW1hZ2VFbGVtZW50OjpjcmVhdGVJbWFnZUNvbnRy
b2xzKCkKICAgICBpZiAoIWltYWdlQ29udHJvbHMpCiAgICAgICAgIHJldHVybjsKIAotICAgIGVu
c3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKS5hcHBlbmRDaGlsZChpbWFnZUNvbnRyb2xzKTsKKyAg
ICBlbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCkuYXBwZW5kQ2hpbGQoaW1hZ2VDb250cm9scy5y
ZWxlYXNlTm9uTnVsbCgpKTsKIAogICAgIGF1dG8qIHJlbmRlck9iamVjdCA9IHJlbmRlcmVyKCk7
CiAgICAgaWYgKCFyZW5kZXJPYmplY3QpCkBAIC01MjEsNyArNTIxLDcgQEAgdm9pZCBIVE1MSW1h
Z2VFbGVtZW50OjpkZXN0cm95SW1hZ2VDb250cm9scygpCiAKICAgICBpZiAoTm9kZSogbm9kZSA9
IHNoYWRvd1Jvb3QtPmZpcnN0Q2hpbGQoKSkgewogICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklU
WV9JTVBMSUNBVElPTihub2RlLT5pc0ltYWdlQ29udHJvbHNSb290RWxlbWVudCgpKTsKLSAgICAg
ICAgc2hhZG93Um9vdC0+cmVtb3ZlQ2hpbGQobm9kZSk7CisgICAgICAgIHNoYWRvd1Jvb3QtPnJl
bW92ZUNoaWxkKCpub2RlKTsKICAgICB9CiAKICAgICBhdXRvKiByZW5kZXJPYmplY3QgPSByZW5k
ZXJlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcAppbmRleCBl
N2Q5MTQ4MjVjNWViODExNGQ5YjJlZWExZmRjZjAzMDI2YWEwYmEyLi40YTYzYjAwYTRhNDEzNGI1
OGNmMjQ1ZmViNjkyZjhhNDY2MTZiZjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxLZXlnZW5FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXln
ZW5FbGVtZW50LmNwcApAQCAtNTgsNyArNTgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgfQogCiBwcml2
YXRlOgotICAgIHZpcnR1YWwgUmVmUHRyPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRy
aWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50KSBvdmVycmlkZQorICAg
IHZpcnR1YWwgUmVmPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hp
bGRyZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50KSBvdmVycmlkZQogICAgIHsKICAgICAgICAg
cmV0dXJuIGNyZWF0ZSh0YXJnZXREb2N1bWVudCk7CiAgICAgfQpAQCAtNzMsMTQgKzczLDE0IEBA
IGlubGluZSBIVE1MS2V5Z2VuRWxlbWVudDo6SFRNTEtleWdlbkVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lCiAgICAgVmVjdG9yPFN0cmluZz4ga2V5czsKICAgICBn
ZXRTdXBwb3J0ZWRLZXlTaXplcyhrZXlzKTsKIAotICAgIFJlZlB0cjxIVE1MU2VsZWN0RWxlbWVu
dD4gc2VsZWN0ID0gS2V5Z2VuU2VsZWN0RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBS
ZWY8SFRNTFNlbGVjdEVsZW1lbnQ+IHNlbGVjdCA9IEtleWdlblNlbGVjdEVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBrZXlzLnNpemUoKTsgKytp
KSB7Ci0gICAgICAgIFJlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gb3B0aW9uID0gSFRNTE9wdGlv
bkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgICAgIHNlbGVjdC0+YXBwZW5kQ2hpbGQo
b3B0aW9uLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgUmVmPEhUTUxPcHRpb25FbGVtZW50
PiBvcHRpb24gPSBIVE1MT3B0aW9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICAgICAg
c2VsZWN0LT5hcHBlbmRDaGlsZChvcHRpb24uY29weVJlZigpLCBJR05PUkVfRVhDRVBUSU9OKTsK
ICAgICAgICAgb3B0aW9uLT5hcHBlbmRDaGlsZChUZXh0OjpjcmVhdGUoZG9jdW1lbnQsIGtleXNb
aV0pLCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICB9CiAKLSAgICBlbnN1cmVVc2VyQWdlbnRTaGFk
b3dSb290KCkuYXBwZW5kQ2hpbGQoc2VsZWN0LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBlbnN1
cmVVc2VyQWdlbnRTaGFkb3dSb290KCkuYXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHNlbGVjdCksIElH
Tk9SRV9FWENFUFRJT04pOwogfQogCiBSZWY8SFRNTEtleWdlbkVsZW1lbnQ+IEhUTUxLZXlnZW5F
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRv
Y3VtZW50LCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0
ZXJFbGVtZW50LmNwcAppbmRleCAyMmIyZjM5ODFlMzk1MjM3OTNmNWUyYjMxZTZjYzVkMjhiZmE3
NzgwLi5lNWUzZGUwMzY4MzgxNTQ1ZWE3ODUwYzA4Zjk2YTdmMWJjMDc1OTllIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAKQEAgLTIyOSwxNiArMjI5LDE2IEBAIHZv
aWQgSFRNTE1ldGVyRWxlbWVudDo6ZGlkQWRkVXNlckFnZW50U2hhZG93Um9vdChTaGFkb3dSb290
KiByb290KQogewogICAgIEFTU0VSVCghbV92YWx1ZSk7CiAKLSAgICBSZWZQdHI8TWV0ZXJJbm5l
ckVsZW1lbnQ+IGlubmVyID0gTWV0ZXJJbm5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsK
LSAgICByb290LT5hcHBlbmRDaGlsZChpbm5lcik7CisgICAgUmVmPE1ldGVySW5uZXJFbGVtZW50
PiBpbm5lciA9IE1ldGVySW5uZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CisgICAgcm9v
dC0+YXBwZW5kQ2hpbGQoaW5uZXIuY29weVJlZigpKTsKIAotICAgIFJlZlB0cjxNZXRlckJhckVs
ZW1lbnQ+IGJhciA9IE1ldGVyQmFyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOworICAgIFJl
ZjxNZXRlckJhckVsZW1lbnQ+IGJhciA9IE1ldGVyQmFyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
KCkpOwogICAgIG1fdmFsdWUgPSBNZXRlclZhbHVlRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkp
OwogICAgIG1fdmFsdWUtPnNldFdpZHRoUGVyY2VudGFnZSgwKTsKICAgICBtX3ZhbHVlLT51cGRh
dGVQc2V1ZG8oKTsKLSAgICBiYXItPmFwcGVuZENoaWxkKG1fdmFsdWUsIEFTU0VSVF9OT19FWENF
UFRJT04pOworICAgIGJhci0+YXBwZW5kQ2hpbGQoKm1fdmFsdWUsIEFTU0VSVF9OT19FWENFUFRJ
T04pOwogCi0gICAgaW5uZXItPmFwcGVuZENoaWxkKGJhciwgQVNTRVJUX05PX0VYQ0VQVElPTik7
CisgICAgaW5uZXItPmFwcGVuZENoaWxkKFdURjo6bW92ZShiYXIpLCBBU1NFUlRfTk9fRVhDRVBU
SU9OKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9u
RWxlbWVudC5jcHAKaW5kZXggMmRmZmYyNjM1M2VmOTFmNDgxMGNlMTg3NzcwNmFkYzk1MGZjMzZh
ZS4uZWQ5Y2FlYTE1YTYyMTMzODJjMjBkMWRmNjc0Y2FhOGUyYTlmMjJiYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKQEAgLTcxLDEyICs3MSwxMiBAQCBSZWZQ
dHI8SFRNTE9wdGlvbkVsZW1lbnQ+IEhUTUxPcHRpb25FbGVtZW50OjpjcmVhdGVGb3JKU0NvbnN0
cnVjdG9yKERvY3VtZW50JiBkbwogewogICAgIFJlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gZWxl
bWVudCA9IGFkb3B0UmVmKG5ldyBIVE1MT3B0aW9uRWxlbWVudChvcHRpb25UYWcsIGRvY3VtZW50
KSk7CiAKLSAgICBSZWZQdHI8VGV4dD4gdGV4dCA9IFRleHQ6OmNyZWF0ZShkb2N1bWVudCwgZGF0
YS5pc051bGwoKSA/ICIiIDogZGF0YSk7CisgICAgUmVmPFRleHQ+IHRleHQgPSBUZXh0OjpjcmVh
dGUoZG9jdW1lbnQsIGRhdGEuaXNOdWxsKCkgPyAiIiA6IGRhdGEpOwogCiAgICAgZWMgPSAwOwot
ICAgIGVsZW1lbnQtPmFwcGVuZENoaWxkKHRleHQucmVsZWFzZSgpLCBlYyk7CisgICAgZWxlbWVu
dC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHRleHQpLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAg
ICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBpZiAoIXZhbHVlLmlz
TnVsbCgpKQogICAgICAgICBlbGVtZW50LT5zZXRWYWx1ZSh2YWx1ZSk7CkBAIC04NCw3ICs4NCw3
IEBAIFJlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gSFRNTE9wdGlvbkVsZW1lbnQ6OmNyZWF0ZUZv
ckpTQ29uc3RydWN0b3IoRG9jdW1lbnQmIGRvCiAgICAgICAgIGVsZW1lbnQtPnNldEF0dHJpYnV0
ZShzZWxlY3RlZEF0dHIsIGVtcHR5QXRvbSk7CiAgICAgZWxlbWVudC0+c2V0U2VsZWN0ZWQoc2Vs
ZWN0ZWQpOwogCi0gICAgcmV0dXJuIGVsZW1lbnQucmVsZWFzZSgpOworICAgIHJldHVybiBlbGVt
ZW50OwogfQogCiBib29sIEhUTUxPcHRpb25FbGVtZW50Ojppc0ZvY3VzYWJsZSgpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAppbmRleCA4N2YwZTM3
MGNhMDJjM2FjOWJiMTQ2ZmI5YmQwNzZlYmI0YTQ4NTM1Li5kYjdkMDZhOGI3OTMwNTIzZWFjNjlj
OTA3ZTQ3ZGM0ODI5NzMyYzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
cm9ncmVzc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNz
RWxlbWVudC5jcHAKQEAgLTE0OSwxNiArMTQ5LDE2IEBAIHZvaWQgSFRNTFByb2dyZXNzRWxlbWVu
dDo6ZGlkQWRkVXNlckFnZW50U2hhZG93Um9vdChTaGFkb3dSb290KiByb290KQogewogICAgIEFT
U0VSVCghbV92YWx1ZSk7CiAKLSAgICBSZWZQdHI8UHJvZ3Jlc3NJbm5lckVsZW1lbnQ+IGlubmVy
ID0gUHJvZ3Jlc3NJbm5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKLSAgICByb290LT5h
cHBlbmRDaGlsZChpbm5lcik7CisgICAgUmVmPFByb2dyZXNzSW5uZXJFbGVtZW50PiBpbm5lciA9
IFByb2dyZXNzSW5uZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CisgICAgcm9vdC0+YXBw
ZW5kQ2hpbGQoaW5uZXIuY29weVJlZigpKTsKIAotICAgIFJlZlB0cjxQcm9ncmVzc0JhckVsZW1l
bnQ+IGJhciA9IFByb2dyZXNzQmFyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwotICAgIFJl
ZlB0cjxQcm9ncmVzc1ZhbHVlRWxlbWVudD4gdmFsdWUgPSBQcm9ncmVzc1ZhbHVlRWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50KCkpOwotICAgIG1fdmFsdWUgPSB2YWx1ZS5nZXQoKTsKKyAgICBSZWY8
UHJvZ3Jlc3NCYXJFbGVtZW50PiBiYXIgPSBQcm9ncmVzc0JhckVsZW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCgpKTsKKyAgICBSZWY8UHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ+IHZhbHVlID0gUHJvZ3Jlc3NW
YWx1ZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKKyAgICBtX3ZhbHVlID0gdmFsdWUucHRy
KCk7CiAgICAgbV92YWx1ZS0+c2V0V2lkdGhQZXJjZW50YWdlKEhUTUxQcm9ncmVzc0VsZW1lbnQ6
OkluZGV0ZXJtaW5hdGVQb3NpdGlvbiAqIDEwMCk7Ci0gICAgYmFyLT5hcHBlbmRDaGlsZChtX3Zh
bHVlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBiYXItPmFwcGVuZENoaWxkKCptX3ZhbHVl
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAotICAgIGlubmVyLT5hcHBlbmRDaGlsZChiYXIsIEFT
U0VSVF9OT19FWENFUFRJT04pOworICAgIGlubmVyLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoYmFy
KSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiB9CiAKIGJvb2wgSFRNTFByb2dyZXNzRWxlbWVudDo6
c2hvdWxkQXBwZWFySW5kZXRlcm1pbmF0ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFNjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDY5NTExNDY2ODA0OTE0YjdhYjIwOWZiZTk2MWM1YmY4
MzJlMTA3YTcuLmUxM2E1Y2RkY2NhMmNiM2I3NTZhOGQzYTU3ZTIzZjgwYTliNDNlNDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCkBAIC0xNjksOSArMTY5LDkg
QEAgdm9pZCBIVE1MU2NyaXB0RWxlbWVudDo6ZGlzcGF0Y2hMb2FkRXZlbnQoKQogICAgIGRpc3Bh
dGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkubG9hZEV2ZW50LCBmYWxzZSwgZmFs
c2UpKTsKIH0KIAotUmVmUHRyPEVsZW1lbnQ+IEhUTUxTY3JpcHRFbGVtZW50OjpjbG9uZUVsZW1l
bnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCkK
K1JlZjxFbGVtZW50PiBIVE1MU2NyaXB0RWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJp
YnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBIVE1MU2NyaXB0RWxlbWVudCh0YWdRTmFtZSgpLCB0YXJnZXREb2N1bWVu
dCwgZmFsc2UsIGFscmVhZHlTdGFydGVkKCkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBI
VE1MU2NyaXB0RWxlbWVudCh0YWdRTmFtZSgpLCB0YXJnZXREb2N1bWVudCwgZmFsc2UsIGFscmVh
ZHlTdGFydGVkKCkpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVu
dC5oCmluZGV4IGUzOWMxMGNhNWU4NmMzNjZhNTM4ZDE3YzY2NDRiM2EyNGQxMzgyMDkuLjMxMmM2
NjI2ZThiODMxNGU4NWUyZGY2ODdkYmYwOWYyYjJmZTM3YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxTY3JpcHRFbGVtZW50LmgKQEAgLTY1LDcgKzY1LDcgQEAgcHJpdmF0ZToKIAogICAgIHZp
cnR1YWwgdm9pZCBkaXNwYXRjaExvYWRFdmVudCgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBS
ZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihE
b2N1bWVudCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPEVsZW1lbnQ+IGNsb25lRWxlbWVu
dFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmKSBvdmVycmlkZTsKIH07CiAK
IH0gLy9uYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVj
dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAK
aW5kZXggZWI3Mzk0NTM1ZDQ5NjM1MzQ2YzY1ODJkMTc1OTZkM2Q0M2YwNzk1ZS4uNGYxMDQ1ODAx
MzIyNzNmZGVkZjEyNTc4ZDRiMWJiNjEwZWNjYWYwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5jcHAKQEAgLTIyNyw3ICsyMjcsNyBAQCB2b2lkIEhUTUxTZWxlY3RF
bGVtZW50OjphZGQoSFRNTEVsZW1lbnQqIGVsZW1lbnQsIEhUTUxFbGVtZW50KiBiZWZvcmVFbGVt
ZW50LCBFeAogICAgIC8vIE1ha2Ugc3VyZSB0aGUgZWxlbWVudCBpcyByZWYnZCBhbmQgZGVyZWYn
ZCBzbyB3ZSBkb24ndCBsZWFrIGl0LgogICAgIFJlZjxIVE1MRWxlbWVudD4gcHJvdGVjdE5ld0No
aWxkKCplbGVtZW50KTsKIAotICAgIGluc2VydEJlZm9yZShlbGVtZW50LCBiZWZvcmVFbGVtZW50
LCBlYyk7CisgICAgaW5zZXJ0QmVmb3JlKCplbGVtZW50LCBiZWZvcmVFbGVtZW50LCBlYyk7CiAg
ICAgdXBkYXRlVmFsaWRpdHkoKTsKIH0KIApAQCAtNDg2LDEyICs0ODYsMTIgQEAgdm9pZCBIVE1M
U2VsZWN0RWxlbWVudDo6c2V0TGVuZ3RoKHVuc2lnbmVkIG5ld0xlbiwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiAKICAgICAgICAgLy8gUmVtb3ZpbmcgY2hpbGRyZW4gZmlyZXMgbXV0YXRpb24gZXZlbnRz
LCB3aGljaCBtaWdodCBtdXRhdGUgdGhlIERPTSBmdXJ0aGVyLCBzbyB3ZSBmaXJzdCBjb3B5IG91
dCBhIGxpc3QKICAgICAgICAgLy8gb2YgZWxlbWVudHMgdGhhdCB3ZSBpbnRlbmQgdG8gcmVtb3Zl
IHRoZW4gYXR0ZW1wdCB0byByZW1vdmUgdGhlbSBvbmUgYXQgYSB0aW1lLgotICAgICAgICBWZWN0
b3I8UmVmUHRyPEVsZW1lbnQ+PiBpdGVtc1RvUmVtb3ZlOworICAgICAgICBWZWN0b3I8UmVmPEVs
ZW1lbnQ+PiBpdGVtc1RvUmVtb3ZlOwogICAgICAgICBzaXplX3Qgb3B0aW9uSW5kZXggPSAwOwog
ICAgICAgICBmb3IgKGF1dG8mIGl0ZW0gOiBpdGVtcykgewogICAgICAgICAgICAgaWYgKGlzPEhU
TUxPcHRpb25FbGVtZW50PigqaXRlbSkgJiYgb3B0aW9uSW5kZXgrKyA+PSBuZXdMZW4pIHsKICAg
ICAgICAgICAgICAgICBBU1NFUlQoaXRlbS0+cGFyZW50Tm9kZSgpKTsKLSAgICAgICAgICAgICAg
ICBpdGVtc1RvUmVtb3ZlLmFwcGVuZChpdGVtKTsKKyAgICAgICAgICAgICAgICBpdGVtc1RvUmVt
b3ZlLmFwcGVuZCgqaXRlbSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAKaW5kZXggY2ZiNGRlM2ZhMzY3ODAyYTMwMzFk
NmFlOGU4NWZiMzhlZDRhYmIwNi4uY2Y5ZTlhNWYyZmE1NzVlOGZmOGRmOGZjM2QwMzAyMThjMTU0
ODExYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwCkBAIC04MSw3
ICs4MSw3IEBAIHZvaWQgSFRNTFRhYmxlRWxlbWVudDo6c2V0Q2FwdGlvbihQYXNzUmVmUHRyPEhU
TUxUYWJsZUNhcHRpb25FbGVtZW50PiBuZXdDYXB0aW9uCiB7CiAgICAgZGVsZXRlQ2FwdGlvbigp
OwogICAgIGlmIChuZXdDYXB0aW9uKQotICAgICAgICBpbnNlcnRCZWZvcmUobmV3Q2FwdGlvbiwg
Zmlyc3RDaGlsZCgpLCBlYyk7CisgICAgICAgIGluc2VydEJlZm9yZSgqbmV3Q2FwdGlvbiwgZmly
c3RDaGlsZCgpLCBlYyk7CiB9CiAKIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KiBIVE1MVGFibGVF
bGVtZW50Ojp0SGVhZCgpIGNvbnN0CkBAIC0xMTAsNyArMTEwLDcgQEAgdm9pZCBIVE1MVGFibGVF
bGVtZW50OjpzZXRUSGVhZChQYXNzUmVmUHRyPEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50PiBuZXdI
ZWFkLCBFeGMKICAgICAgICAgaWYgKGNoaWxkLT5pc0VsZW1lbnROb2RlKCkgJiYgIWNoaWxkLT5o
YXNUYWdOYW1lKGNhcHRpb25UYWcpICYmICFjaGlsZC0+aGFzVGFnTmFtZShjb2xncm91cFRhZykp
CiAgICAgICAgICAgICBicmVhazsKIAotICAgIGluc2VydEJlZm9yZShuZXdIZWFkLCBjaGlsZCwg
ZWMpOworICAgIGluc2VydEJlZm9yZSgqbmV3SGVhZCwgY2hpbGQsIGVjKTsKIH0KIAogSFRNTFRh
YmxlU2VjdGlvbkVsZW1lbnQqIEhUTUxUYWJsZUVsZW1lbnQ6OnRGb290KCkgY29uc3QKQEAgLTEz
OSw1NyArMTM5LDYwIEBAIHZvaWQgSFRNTFRhYmxlRWxlbWVudDo6c2V0VEZvb3QoUGFzc1JlZlB0
cjxIVE1MVGFibGVTZWN0aW9uRWxlbWVudD4gbmV3Rm9vdCwgRXhjCiAgICAgICAgIGlmIChjaGls
ZC0+aXNFbGVtZW50Tm9kZSgpICYmICFjaGlsZC0+aGFzVGFnTmFtZShjYXB0aW9uVGFnKSAmJiAh
Y2hpbGQtPmhhc1RhZ05hbWUoY29sZ3JvdXBUYWcpICYmICFjaGlsZC0+aGFzVGFnTmFtZSh0aGVh
ZFRhZykpCiAgICAgICAgICAgICBicmVhazsKIAotICAgIGluc2VydEJlZm9yZShuZXdGb290LCBj
aGlsZCwgZWMpOworICAgIGluc2VydEJlZm9yZSgqbmV3Rm9vdCwgY2hpbGQsIGVjKTsKIH0KIAot
UmVmUHRyPEhUTUxFbGVtZW50PiBIVE1MVGFibGVFbGVtZW50OjpjcmVhdGVUSGVhZCgpCitSZWY8
SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+IEhUTUxUYWJsZUVsZW1lbnQ6OmNyZWF0ZVRIZWFkKCkK
IHsKICAgICBpZiAoSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqIGV4aXN0aW5nSGVhZCA9IHRIZWFk
KCkpCi0gICAgICAgIHJldHVybiBleGlzdGluZ0hlYWQ7Ci0gICAgUmVmUHRyPEhUTUxUYWJsZVNl
Y3Rpb25FbGVtZW50PiBoZWFkID0gSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ6OmNyZWF0ZSh0aGVh
ZFRhZywgZG9jdW1lbnQoKSk7Ci0gICAgc2V0VEhlYWQoaGVhZCwgSUdOT1JFX0VYQ0VQVElPTik7
CisgICAgICAgIHJldHVybiAqZXhpc3RpbmdIZWFkOworICAgIFJlZjxIVE1MVGFibGVTZWN0aW9u
RWxlbWVudD4gaGVhZCA9IEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50OjpjcmVhdGUodGhlYWRUYWcs
IGRvY3VtZW50KCkpOworICAgIHNldFRIZWFkKGhlYWQucHRyKCksIElHTk9SRV9FWENFUFRJT04p
OwogICAgIHJldHVybiBoZWFkOwogfQogCiB2b2lkIEhUTUxUYWJsZUVsZW1lbnQ6OmRlbGV0ZVRI
ZWFkKCkKIHsKLSAgICByZW1vdmVDaGlsZCh0SGVhZCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAg
ICBpZiAoYXV0byogdEhlYWQgPSB0aGlzLT50SGVhZCgpKQorICAgICAgICByZW1vdmVDaGlsZCgq
dEhlYWQsIElHTk9SRV9FWENFUFRJT04pOwogfQogCi1SZWZQdHI8SFRNTEVsZW1lbnQ+IEhUTUxU
YWJsZUVsZW1lbnQ6OmNyZWF0ZVRGb290KCkKK1JlZjxIVE1MVGFibGVTZWN0aW9uRWxlbWVudD4g
SFRNTFRhYmxlRWxlbWVudDo6Y3JlYXRlVEZvb3QoKQogewogICAgIGlmIChIVE1MVGFibGVTZWN0
aW9uRWxlbWVudCogZXhpc3RpbmdGb290ID0gdEZvb3QoKSkKLSAgICAgICAgcmV0dXJuIGV4aXN0
aW5nRm9vdDsKLSAgICBSZWZQdHI8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+IGZvb3QgPSBIVE1M
VGFibGVTZWN0aW9uRWxlbWVudDo6Y3JlYXRlKHRmb290VGFnLCBkb2N1bWVudCgpKTsKLSAgICBz
ZXRURm9vdChmb290LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgcmV0dXJuICpleGlzdGlu
Z0Zvb3Q7CisgICAgUmVmPEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50PiBmb290ID0gSFRNTFRhYmxl
U2VjdGlvbkVsZW1lbnQ6OmNyZWF0ZSh0Zm9vdFRhZywgZG9jdW1lbnQoKSk7CisgICAgc2V0VEZv
b3QoZm9vdC5wdHIoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgcmV0dXJuIGZvb3Q7CiB9CiAK
IHZvaWQgSFRNTFRhYmxlRWxlbWVudDo6ZGVsZXRlVEZvb3QoKQogewotICAgIHJlbW92ZUNoaWxk
KHRGb290KCksIElHTk9SRV9FWENFUFRJT04pOworICAgIGlmIChhdXRvKiB0Rm9vdCA9IHRoaXMt
PnRGb290KCkpCisgICAgICAgIHJlbW92ZUNoaWxkKCp0Rm9vdCwgSUdOT1JFX0VYQ0VQVElPTik7
CiB9CiAKLVJlZlB0cjxIVE1MRWxlbWVudD4gSFRNTFRhYmxlRWxlbWVudDo6Y3JlYXRlVEJvZHko
KQorUmVmPEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50PiBIVE1MVGFibGVFbGVtZW50OjpjcmVhdGVU
Qm9keSgpCiB7Ci0gICAgUmVmUHRyPEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50PiBib2R5ID0gSFRN
TFRhYmxlU2VjdGlvbkVsZW1lbnQ6OmNyZWF0ZSh0Ym9keVRhZywgZG9jdW1lbnQoKSk7Ci0gICAg
Tm9kZSogcmVmZXJlbmNlRWxlbWVudCA9IGxhc3RCb2R5KCkgPyBsYXN0Qm9keSgpLT5uZXh0U2li
bGluZygpIDogMDsKLSAgICBpbnNlcnRCZWZvcmUoYm9keSwgcmVmZXJlbmNlRWxlbWVudCwgQVNT
RVJUX05PX0VYQ0VQVElPTik7CisgICAgUmVmPEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50PiBib2R5
ID0gSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ6OmNyZWF0ZSh0Ym9keVRhZywgZG9jdW1lbnQoKSk7
CisgICAgTm9kZSogcmVmZXJlbmNlRWxlbWVudCA9IGxhc3RCb2R5KCkgPyBsYXN0Qm9keSgpLT5u
ZXh0U2libGluZygpIDogbnVsbHB0cjsKKyAgICBpbnNlcnRCZWZvcmUoYm9keS5jb3B5UmVmKCks
IHJlZmVyZW5jZUVsZW1lbnQsIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgIHJldHVybiBib2R5
OwogfQogCi1SZWZQdHI8SFRNTEVsZW1lbnQ+IEhUTUxUYWJsZUVsZW1lbnQ6OmNyZWF0ZUNhcHRp
b24oKQorUmVmPEhUTUxUYWJsZUNhcHRpb25FbGVtZW50PiBIVE1MVGFibGVFbGVtZW50OjpjcmVh
dGVDYXB0aW9uKCkKIHsKICAgICBpZiAoSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQqIGV4aXN0aW5n
Q2FwdGlvbiA9IGNhcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIGV4aXN0aW5nQ2FwdGlvbjsKLSAg
ICBSZWZQdHI8SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQ+IGNhcHRpb24gPSBIVE1MVGFibGVDYXB0
aW9uRWxlbWVudDo6Y3JlYXRlKGNhcHRpb25UYWcsIGRvY3VtZW50KCkpOwotICAgIHNldENhcHRp
b24oY2FwdGlvbiwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgICAgIHJldHVybiAqZXhpc3RpbmdD
YXB0aW9uOworICAgIFJlZjxIVE1MVGFibGVDYXB0aW9uRWxlbWVudD4gY2FwdGlvbiA9IEhUTUxU
YWJsZUNhcHRpb25FbGVtZW50OjpjcmVhdGUoY2FwdGlvblRhZywgZG9jdW1lbnQoKSk7CisgICAg
c2V0Q2FwdGlvbihjYXB0aW9uLnB0cigpLCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICByZXR1cm4g
Y2FwdGlvbjsKIH0KIAogdm9pZCBIVE1MVGFibGVFbGVtZW50OjpkZWxldGVDYXB0aW9uKCkKIHsK
LSAgICByZW1vdmVDaGlsZChjYXB0aW9uKCksIElHTk9SRV9FWENFUFRJT04pOworICAgIGlmIChh
dXRvKiBjYXB0aW9uID0gdGhpcy0+Y2FwdGlvbigpKQorICAgICAgICByZW1vdmVDaGlsZCgqY2Fw
dGlvbiwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CiAKIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KiBI
VE1MVGFibGVFbGVtZW50OjpsYXN0Qm9keSgpIGNvbnN0CkBAIC0yMzQsMjIgKzIzNywyMiBAQCBS
ZWZQdHI8SFRNTEVsZW1lbnQ+IEhUTUxUYWJsZUVsZW1lbnQ6Omluc2VydFJvdyhpbnQgaW5kZXgs
IEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIGVsc2UgewogICAgICAgICBwYXJlbnQgPSBsYXN0Qm9k
eSgpOwogICAgICAgICBpZiAoIXBhcmVudCkgewotICAgICAgICAgICAgUmVmUHRyPEhUTUxUYWJs
ZVNlY3Rpb25FbGVtZW50PiBuZXdCb2R5ID0gSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ6OmNyZWF0
ZSh0Ym9keVRhZywgZG9jdW1lbnQoKSk7Ci0gICAgICAgICAgICBSZWZQdHI8SFRNTFRhYmxlUm93
RWxlbWVudD4gbmV3Um93ID0gSFRNTFRhYmxlUm93RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkp
OwotICAgICAgICAgICAgbmV3Qm9keS0+YXBwZW5kQ2hpbGQobmV3Um93LCBlYyk7Ci0gICAgICAg
ICAgICBhcHBlbmRDaGlsZChuZXdCb2R5LnJlbGVhc2UoKSwgZWMpOwotICAgICAgICAgICAgcmV0
dXJuIG5ld1JvdzsKKyAgICAgICAgICAgIFJlZjxIVE1MVGFibGVTZWN0aW9uRWxlbWVudD4gbmV3
Qm9keSA9IEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50OjpjcmVhdGUodGJvZHlUYWcsIGRvY3VtZW50
KCkpOworICAgICAgICAgICAgUmVmPEhUTUxUYWJsZVJvd0VsZW1lbnQ+IG5ld1JvdyA9IEhUTUxU
YWJsZVJvd0VsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKKyAgICAgICAgICAgIG5ld0JvZHkt
PmFwcGVuZENoaWxkKG5ld1Jvdy5jb3B5UmVmKCksIGVjKTsKKyAgICAgICAgICAgIGFwcGVuZENo
aWxkKFdURjo6bW92ZShuZXdCb2R5KSwgZWMpOworICAgICAgICAgICAgcmV0dXJuIFdURjo6bW92
ZShuZXdSb3cpOwogICAgICAgICB9CiAgICAgfQogCi0gICAgUmVmUHRyPEhUTUxUYWJsZVJvd0Vs
ZW1lbnQ+IG5ld1JvdyA9IEhUTUxUYWJsZVJvd0VsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsK
LSAgICBwYXJlbnQtPmluc2VydEJlZm9yZShuZXdSb3csIHJvdy5nZXQoKSwgZWMpOwotICAgIHJl
dHVybiBuZXdSb3c7CisgICAgUmVmPEhUTUxUYWJsZVJvd0VsZW1lbnQ+IG5ld1JvdyA9IEhUTUxU
YWJsZVJvd0VsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKKyAgICBwYXJlbnQtPmluc2VydEJl
Zm9yZShuZXdSb3cuY29weVJlZigpLCByb3cuZ2V0KCksIGVjKTsKKyAgICByZXR1cm4gV1RGOjpt
b3ZlKG5ld1Jvdyk7CiB9CiAKIHZvaWQgSFRNTFRhYmxlRWxlbWVudDo6ZGVsZXRlUm93KGludCBp
bmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgSFRNTFRhYmxlUm93RWxlbWVudCogcm93
ID0gMDsKKyAgICBIVE1MVGFibGVSb3dFbGVtZW50KiByb3cgPSBudWxscHRyOwogICAgIGlmIChp
bmRleCA9PSAtMSkKICAgICAgICAgcm93ID0gSFRNTFRhYmxlUm93c0NvbGxlY3Rpb246Omxhc3RS
b3coKnRoaXMpOwogICAgIGVsc2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGFibGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQu
aAppbmRleCBjZjVmNGEwY2Q0NmNhMzY3NWIyNDBmY2YzMjMwMjM3Mzc1ZmQzNDJlLi4zMDc1ODM1
MjQyODRmODA4ZjUxZmUzODUyYWYxMGVhYjUzMGU0MTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUYWJsZUVsZW1lbnQuaApAQCAtNDksMTIgKzQ5LDEyIEBAIHB1YmxpYzoKICAgICBIVE1MVGFi
bGVTZWN0aW9uRWxlbWVudCogdEZvb3QoKSBjb25zdDsKICAgICB2b2lkIHNldFRGb290KFBhc3NS
ZWZQdHI8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+LCBFeGNlcHRpb25Db2RlJik7CiAKLSAgICBS
ZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZVRIZWFkKCk7CisgICAgUmVmPEhUTUxUYWJsZVNlY3Rp
b25FbGVtZW50PiBjcmVhdGVUSGVhZCgpOwogICAgIHZvaWQgZGVsZXRlVEhlYWQoKTsKLSAgICBS
ZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZVRGb290KCk7CisgICAgUmVmPEhUTUxUYWJsZVNlY3Rp
b25FbGVtZW50PiBjcmVhdGVURm9vdCgpOwogICAgIHZvaWQgZGVsZXRlVEZvb3QoKTsKLSAgICBS
ZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZVRCb2R5KCk7Ci0gICAgUmVmUHRyPEhUTUxFbGVtZW50
PiBjcmVhdGVDYXB0aW9uKCk7CisgICAgUmVmPEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50PiBjcmVh
dGVUQm9keSgpOworICAgIFJlZjxIVE1MVGFibGVDYXB0aW9uRWxlbWVudD4gY3JlYXRlQ2FwdGlv
bigpOwogICAgIHZvaWQgZGVsZXRlQ2FwdGlvbigpOwogICAgIFJlZlB0cjxIVE1MRWxlbWVudD4g
aW5zZXJ0Um93KEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBpbnNlcnRSb3coLTEsIGVjKTsg
fQogICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gaW5zZXJ0Um93KGludCBpbmRleCwgRXhjZXB0aW9u
Q29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5jcHAKaW5k
ZXggYzg3MjU5ZjVlY2I5NmQwYWE2MDQ4ZDRkMTRhZThiNjBmOTNiNjhiNi4uZDg4OTNjZDlhMWZm
M2I4ZWMzMzQyYjUwOGQ2N2UzMzYzNzY5MzJkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUYWJsZVJvd0VsZW1lbnQuY3BwCkBAIC0yOCw3ICsyOCw2IEBACiAjaW5jbHVkZSAiRXhjZXB0
aW9uQ29kZS5oIgogI2luY2x1ZGUgIkdlbmVyaWNDYWNoZWRIVE1MQ29sbGVjdGlvbi5oIgogI2lu
Y2x1ZGUgIkhUTUxOYW1lcy5oIgotI2luY2x1ZGUgIkhUTUxUYWJsZUNlbGxFbGVtZW50LmgiCiAj
aW5jbHVkZSAiSFRNTFRhYmxlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxUYWJsZVNlY3Rpb25F
bGVtZW50LmgiCiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIKQEAgLTExOSwyNyArMTE4LDI3IEBAIGlu
dCBIVE1MVGFibGVSb3dFbGVtZW50OjpzZWN0aW9uUm93SW5kZXgoKSBjb25zdAogICAgIHJldHVy
biBySW5kZXg7CiB9CiAKLVJlZlB0cjxIVE1MRWxlbWVudD4gSFRNTFRhYmxlUm93RWxlbWVudDo6
aW5zZXJ0Q2VsbChpbnQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQorUmVmUHRyPEhUTUxUYWJs
ZUNlbGxFbGVtZW50PiBIVE1MVGFibGVSb3dFbGVtZW50OjppbnNlcnRDZWxsKGludCBpbmRleCwg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgUmVmPEhUTUxDb2xsZWN0aW9uPiBjaGlsZHJlbiA9
IGNlbGxzKCk7CiAgICAgaW50IG51bUNlbGxzID0gY2hpbGRyZW4tPmxlbmd0aCgpOwogICAgIGlm
IChpbmRleCA8IC0xIHx8IGluZGV4ID4gbnVtQ2VsbHMpIHsKICAgICAgICAgZWMgPSBJTkRFWF9T
SVpFX0VSUjsKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
IH0KIAotICAgIFJlZlB0cjxIVE1MVGFibGVDZWxsRWxlbWVudD4gY2VsbCA9IEhUTUxUYWJsZUNl
bGxFbGVtZW50OjpjcmVhdGUodGRUYWcsIGRvY3VtZW50KCkpOworICAgIFJlZjxIVE1MVGFibGVD
ZWxsRWxlbWVudD4gY2VsbCA9IEhUTUxUYWJsZUNlbGxFbGVtZW50OjpjcmVhdGUodGRUYWcsIGRv
Y3VtZW50KCkpOwogICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gbnVtQ2VsbHMpCi0gICAg
ICAgIGFwcGVuZENoaWxkKGNlbGwsIGVjKTsKKyAgICAgICAgYXBwZW5kQ2hpbGQoY2VsbC5jb3B5
UmVmKCksIGVjKTsKICAgICBlbHNlIHsKICAgICAgICAgTm9kZSogbjsKICAgICAgICAgaWYgKGlu
ZGV4IDwgMSkKICAgICAgICAgICAgIG4gPSBmaXJzdENoaWxkKCk7CiAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgIG4gPSBjaGlsZHJlbi0+aXRlbShpbmRleCk7Ci0gICAgICAgIGluc2VydEJlZm9y
ZShjZWxsLCBuLCBlYyk7CisgICAgICAgIGluc2VydEJlZm9yZShjZWxsLmNvcHlSZWYoKSwgbiwg
ZWMpOwogICAgIH0KLSAgICByZXR1cm4gY2VsbDsKKyAgICByZXR1cm4gV1RGOjptb3ZlKGNlbGwp
OwogfQogCiB2b2lkIEhUTUxUYWJsZVJvd0VsZW1lbnQ6OmRlbGV0ZUNlbGwoaW50IGluZGV4LCBF
eGNlcHRpb25Db2RlJiBlYykKQEAgLTE1MCw3ICsxNDksNyBAQCB2b2lkIEhUTUxUYWJsZVJvd0Vs
ZW1lbnQ6OmRlbGV0ZUNlbGwoaW50IGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAg
aW5kZXggPSBudW1DZWxscy0xOwogICAgIGlmIChpbmRleCA+PSAwICYmIGluZGV4IDwgbnVtQ2Vs
bHMpIHsKICAgICAgICAgUmVmUHRyPE5vZGU+IGNlbGwgPSBjaGlsZHJlbi0+aXRlbShpbmRleCk7
Ci0gICAgICAgIEhUTUxFbGVtZW50OjpyZW1vdmVDaGlsZChjZWxsLmdldCgpLCBlYyk7CisgICAg
ICAgIEhUTUxFbGVtZW50OjpyZW1vdmVDaGlsZCgqY2VsbCwgZWMpOwogICAgIH0gZWxzZQogICAg
ICAgICBlYyA9IElOREVYX1NJWkVfRVJSOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJs
ZVJvd0VsZW1lbnQuaAppbmRleCBjOTk3YWVjOTFmMTQyMTAyYTQ5YWFlNTg4Y2I1NmI4NDhlODc4
YTEzLi5jOWRmNWI2YzVjNjgzNjY1YzYwMTVjYzg4MmYyNjRlM2UxZjMzMWNjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuaApAQCAtMjYsNiArMjYsNyBAQAogI2lm
bmRlZiBIVE1MVGFibGVSb3dFbGVtZW50X2gKICNkZWZpbmUgSFRNTFRhYmxlUm93RWxlbWVudF9o
CiAKKyNpbmNsdWRlICJIVE1MVGFibGVDZWxsRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxUYWJs
ZVBhcnRFbGVtZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQxLDggKzQyLDggQEAg
cHVibGljOgogICAgIGludCBzZWN0aW9uUm93SW5kZXgoKSBjb25zdDsKICAgICB2b2lkIHNldFNl
Y3Rpb25Sb3dJbmRleChpbnQpOwogCi0gICAgUmVmUHRyPEhUTUxFbGVtZW50PiBpbnNlcnRDZWxs
KEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBpbnNlcnRDZWxsKC0xLCBlYyk7IH0KLSAgICBS
ZWZQdHI8SFRNTEVsZW1lbnQ+IGluc2VydENlbGwoaW50IGluZGV4LCBFeGNlcHRpb25Db2RlJik7
CisgICAgUmVmUHRyPEhUTUxUYWJsZUNlbGxFbGVtZW50PiBpbnNlcnRDZWxsKEV4Y2VwdGlvbkNv
ZGUmIGVjKSB7IHJldHVybiBpbnNlcnRDZWxsKC0xLCBlYyk7IH0KKyAgICBSZWZQdHI8SFRNTFRh
YmxlQ2VsbEVsZW1lbnQ+IGluc2VydENlbGwoaW50IGluZGV4LCBFeGNlcHRpb25Db2RlJik7CiAg
ICAgdm9pZCBkZWxldGVDZWxsKGludCBpbmRleCwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgUmVm
PEhUTUxDb2xsZWN0aW9uPiBjZWxscygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
YWJsZVNlY3Rpb25FbGVtZW50LmNwcAppbmRleCA5ZTQ1MzE2ZjhmM2Y0ZmM2ZGE4ZTNkY2RiMWIz
ZTRlMmRkOTI3ZDg2Li5mZDAyYzYwMmY5NDZjZjM0ZDEwZTgzYzIyMjI0OGZhMzg4MDEyM2VhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcApA
QCAtNjgsMTQgKzY4LDE0IEBAIFJlZlB0cjxIVE1MRWxlbWVudD4gSFRNTFRhYmxlU2VjdGlvbkVs
ZW1lbnQ6Omluc2VydFJvdyhpbnQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmCiAgICAgZWxzZSB7CiAg
ICAgICAgIHJvdyA9IEhUTUxUYWJsZVJvd0VsZW1lbnQ6OmNyZWF0ZSh0clRhZywgZG9jdW1lbnQo
KSk7CiAgICAgICAgIGlmIChudW1Sb3dzID09IGluZGV4IHx8IGluZGV4ID09IC0xKQotICAgICAg
ICAgICAgYXBwZW5kQ2hpbGQocm93LCBlYyk7CisgICAgICAgICAgICBhcHBlbmRDaGlsZCgqcm93
LCBlYyk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgTm9kZSogbjsKICAgICAgICAgICAg
IGlmIChpbmRleCA8IDEpCiAgICAgICAgICAgICAgICAgbiA9IGZpcnN0Q2hpbGQoKTsKICAgICAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBuID0gY2hpbGRyZW4tPml0ZW0oaW5kZXgpOwot
ICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKHJvdywgbiwgZWMpOworICAgICAgICAgICAgaW5zZXJ0
QmVmb3JlKCpyb3csIG4sIGVjKTsKICAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4gcm93OwpA
QCAtODksNyArODksNyBAQCB2b2lkIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50OjpkZWxldGVSb3co
aW50IGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgaW5kZXggPSBudW1Sb3dzIC0g
MTsKICAgICBpZiAoaW5kZXggPj0gMCAmJiBpbmRleCA8IG51bVJvd3MpIHsKICAgICAgICAgUmVm
UHRyPE5vZGU+IHJvdyA9IGNoaWxkcmVuLT5pdGVtKGluZGV4KTsKLSAgICAgICAgSFRNTEVsZW1l
bnQ6OnJlbW92ZUNoaWxkKHJvdy5nZXQoKSwgZWMpOworICAgICAgICBIVE1MRWxlbWVudDo6cmVt
b3ZlQ2hpbGQoKnJvdywgZWMpOwogICAgIH0gZWxzZQogICAgICAgICBlYyA9IElOREVYX1NJWkVf
RVJSOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAKaW5k
ZXggYWVjMzAxMGY2ZDZjZmUxYmVkYjMyYzQ5NzA5YWVjYWQwYjZkN2Y3Mi4uMmUxZWRiMjM2YzA3
OGVlYjZkZWJlNmU5ZTU2MTFlNzE3Y2RjODM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUZW1wbGF0ZUVsZW1lbnQuY3BwCkBAIC02OCw3ICs2OCw3IEBAIERvY3VtZW50RnJhZ21lbnQq
IEhUTUxUZW1wbGF0ZUVsZW1lbnQ6OmNvbnRlbnQoKSBjb25zdAogICAgIHJldHVybiBtX2NvbnRl
bnQuZ2V0KCk7CiB9CiAKLVJlZlB0cjxOb2RlPiBIVE1MVGVtcGxhdGVFbGVtZW50OjpjbG9uZU5v
ZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24gdHlw
ZSkKK1JlZjxOb2RlPiBIVE1MVGVtcGxhdGVFbGVtZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1
bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24gdHlwZSkKIHsKICAgICBSZWZQ
dHI8Tm9kZT4gY2xvbmU7CiAgICAgc3dpdGNoICh0eXBlKSB7CkBAIC04Miw4ICs4Miw4IEBAIFJl
ZlB0cjxOb2RlPiBIVE1MVGVtcGxhdGVFbGVtZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVu
dCYgdGFyZ2V0RG9jdW1lbnQsIENsCiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBpZiAobV9j
b250ZW50KQotICAgICAgICBjb250ZW50KCktPmNsb25lQ2hpbGROb2Rlcyhkb3duY2FzdDxIVE1M
VGVtcGxhdGVFbGVtZW50PihjbG9uZS5nZXQoKSktPmNvbnRlbnQoKSk7Ci0gICAgcmV0dXJuIGNs
b25lLnJlbGVhc2UoKTsKKyAgICAgICAgY29udGVudCgpLT5jbG9uZUNoaWxkTm9kZXMoKmRvd25j
YXN0PEhUTUxUZW1wbGF0ZUVsZW1lbnQ+KGNsb25lLmdldCgpKS0+Y29udGVudCgpKTsKKyAgICBy
ZXR1cm4gY2xvbmUucmVsZWFzZU5vbk51bGwoKTsKIH0KIAogdm9pZCBIVE1MVGVtcGxhdGVFbGVt
ZW50OjpkaWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCogb2xkRG9jdW1lbnQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oCmluZGV4IDc2N2YyYTE4NGVhODUzN2Ri
YzM2NDQ1ZGFiODJjODVlMDA1ZjA3NGIuLmQxZmE4NjQwNjlkY2I3NTA5YzlmMTg3NzBkYWI1MmYx
ZTg1NmJkMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oCkBA
IC01MCw3ICs1MCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTFRlbXBsYXRlRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1YWwgUmVmUHRy
PE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQm
LCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkTW92ZVRv
TmV3RG9jdW1lbnQoRG9jdW1lbnQqIG9sZERvY3VtZW50KSBvdmVycmlkZTsKIAogICAgIG11dGFi
bGUgUmVmUHRyPFRlbXBsYXRlQ29udGVudERvY3VtZW50RnJhZ21lbnQ+IG1fY29udGVudDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCmluZGV4IDkzOTI5MTE1
NTA5MjYxNzdlYjA2ZmM0MjFlNWEyZDA5ZDdhOTIxZTYuLmEyZGU3MzBjNWU3YzlkMWU1YzIwZDkw
YjJkNDIzYzI4ZWU0ZGM1ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRl
eHRBcmVhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFF
bGVtZW50LmNwcApAQCAtNDA2LDkgKzQwNiw5IEBAIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6
c2V0RGVmYXVsdFZhbHVlKGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlKQogICAgIFJlZjxIVE1M
VGV4dEFyZWFFbGVtZW50PiBwcm90ZWN0RnJvbU11dGF0aW9uRXZlbnRzKCp0aGlzKTsKIAogICAg
IC8vIFRvIHByZXNlcnZlIGNvbW1lbnRzLCByZW1vdmUgb25seSB0aGUgdGV4dCBub2RlcywgdGhl
biBhZGQgYSBzaW5nbGUgdGV4dCBub2RlLgotICAgIFZlY3RvcjxSZWZQdHI8VGV4dD4+IHRleHRO
b2RlczsKKyAgICBWZWN0b3I8UmVmPFRleHQ+PiB0ZXh0Tm9kZXM7CiAgICAgZm9yIChUZXh0KiB0
ZXh0Tm9kZSA9IFRleHROb2RlVHJhdmVyc2FsOjpmaXJzdENoaWxkKCp0aGlzKTsgdGV4dE5vZGU7
IHRleHROb2RlID0gVGV4dE5vZGVUcmF2ZXJzYWw6Om5leHRTaWJsaW5nKCp0ZXh0Tm9kZSkpCi0g
ICAgICAgIHRleHROb2Rlcy5hcHBlbmQodGV4dE5vZGUpOworICAgICAgICB0ZXh0Tm9kZXMuYXBw
ZW5kKCp0ZXh0Tm9kZSk7CiAKICAgICBzaXplX3Qgc2l6ZSA9IHRleHROb2Rlcy5zaXplKCk7CiAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCkBAIC01MjMsOCArNTIzLDggQEAg
dm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50Ojp1cGRhdGVQbGFjZWhvbGRlclRleHQoKQogICAgIFN0
cmluZyBwbGFjZWhvbGRlclRleHQgPSBzdHJpcHBlZFBsYWNlaG9sZGVyKCk7CiAgICAgaWYgKHBs
YWNlaG9sZGVyVGV4dC5pc0VtcHR5KCkpIHsKICAgICAgICAgaWYgKG1fcGxhY2Vob2xkZXIpIHsK
LSAgICAgICAgICAgIHVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+cmVtb3ZlQ2hpbGQobV9wbGFjZWhv
bGRlciwgQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0gICAgICAgICAgICBtX3BsYWNlaG9sZGVyID0g
MDsKKyAgICAgICAgICAgIHVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+cmVtb3ZlQ2hpbGQoKm1fcGxh
Y2Vob2xkZXIsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAgICAgICAgbV9wbGFjZWhvbGRl
ciA9IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTUzMyw3
ICs1MzMsNyBAQCB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnVwZGF0ZVBsYWNlaG9sZGVyVGV4
dCgpCiAgICAgICAgIG1fcGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlci5nZXQoKTsKICAgICAgICAg
bV9wbGFjZWhvbGRlci0+c2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC1pbnB1dC1wbGFj
ZWhvbGRlciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAgICAg
bV9wbGFjZWhvbGRlci0+c2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eURpc3BsYXks
IGlzUGxhY2Vob2xkZXJWaXNpYmxlKCkgPyBDU1NWYWx1ZUJsb2NrIDogQ1NTVmFsdWVOb25lLCB0
cnVlKTsKLSAgICAgICAgdXNlckFnZW50U2hhZG93Um9vdCgpLT5pbnNlcnRCZWZvcmUobV9wbGFj
ZWhvbGRlciwgaW5uZXJUZXh0RWxlbWVudCgpLT5uZXh0U2libGluZygpKTsKKyAgICAgICAgdXNl
ckFnZW50U2hhZG93Um9vdCgpLT5pbnNlcnRCZWZvcmUoKm1fcGxhY2Vob2xkZXIsIGlubmVyVGV4
dEVsZW1lbnQoKS0+bmV4dFNpYmxpbmcoKSk7CiAgICAgfQogICAgIG1fcGxhY2Vob2xkZXItPnNl
dElubmVyVGV4dChwbGFjZWhvbGRlclRleHQsIEFTU0VSVF9OT19FWENFUFRJT04pOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZURvY3VtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSW1hZ2VEb2N1bWVudC5jcHAKaW5kZXggOTgwZWE0ZWNmMWQ2ZjRiZGNhYjdk
Zjc5MWI4M2JkZDM3OTI3NjQ2Ni4uMGQxYWI4MDkzYmY1NTk0NmExNWNkODc0MWRjODI3ZGI2N2Yy
MzA5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZURvY3VtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlRG9jdW1lbnQuY3BwCkBAIC05Miw3ICs5Miw3
IEBAIHByaXZhdGU6CiAKIGNsYXNzIEltYWdlRG9jdW1lbnRFbGVtZW50IGZpbmFsIDogcHVibGlj
IEhUTUxJbWFnZUVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8SW1hZ2VEb2N1
bWVudEVsZW1lbnQ+IGNyZWF0ZShJbWFnZURvY3VtZW50Jik7CisgICAgc3RhdGljIFJlZjxJbWFn
ZURvY3VtZW50RWxlbWVudD4gY3JlYXRlKEltYWdlRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKICAg
ICBJbWFnZURvY3VtZW50RWxlbWVudChJbWFnZURvY3VtZW50JiBkb2N1bWVudCkKQEAgLTEwNyw5
ICsxMDcsOSBAQCBwcml2YXRlOgogICAgIEltYWdlRG9jdW1lbnQqIG1faW1hZ2VEb2N1bWVudDsK
IH07CiAKLWlubGluZSBSZWZQdHI8SW1hZ2VEb2N1bWVudEVsZW1lbnQ+IEltYWdlRG9jdW1lbnRF
bGVtZW50OjpjcmVhdGUoSW1hZ2VEb2N1bWVudCYgZG9jdW1lbnQpCitpbmxpbmUgUmVmPEltYWdl
RG9jdW1lbnRFbGVtZW50PiBJbWFnZURvY3VtZW50RWxlbWVudDo6Y3JlYXRlKEltYWdlRG9jdW1l
bnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW1hZ2VEb2N1bWVudEVs
ZW1lbnQoZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbWFnZURvY3VtZW50
RWxlbWVudChkb2N1bWVudCkpOwogfQogCiAvLyAtLS0tLS0tLQpAQCAtMjEwLDE5ICsyMTAsMTkg
QEAgUmVmPERvY3VtZW50UGFyc2VyPiBJbWFnZURvY3VtZW50OjpjcmVhdGVQYXJzZXIoKQogCiB2
b2lkIEltYWdlRG9jdW1lbnQ6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCkKIHsKLSAgICBSZWZQ
dHI8RWxlbWVudD4gcm9vdEVsZW1lbnQgPSBEb2N1bWVudDo6Y3JlYXRlRWxlbWVudChodG1sVGFn
LCBmYWxzZSk7Ci0gICAgYXBwZW5kQ2hpbGQocm9vdEVsZW1lbnQpOwotICAgIGRvd25jYXN0PEhU
TUxIdG1sRWxlbWVudD4oKnJvb3RFbGVtZW50KS5pbnNlcnRlZEJ5UGFyc2VyKCk7CisgICAgUmVm
PEVsZW1lbnQ+IHJvb3RFbGVtZW50ID0gRG9jdW1lbnQ6OmNyZWF0ZUVsZW1lbnQoaHRtbFRhZywg
ZmFsc2UpOworICAgIGFwcGVuZENoaWxkKHJvb3RFbGVtZW50LmNvcHlSZWYoKSk7CisgICAgZG93
bmNhc3Q8SFRNTEh0bWxFbGVtZW50Pihyb290RWxlbWVudC5nZXQoKSkuaW5zZXJ0ZWRCeVBhcnNl
cigpOwogCiAgICAgZnJhbWUoKS0+aW5qZWN0VXNlclNjcmlwdHMoSW5qZWN0QXREb2N1bWVudFN0
YXJ0KTsKIAotICAgIFJlZlB0cjxFbGVtZW50PiBib2R5ID0gRG9jdW1lbnQ6OmNyZWF0ZUVsZW1l
bnQoYm9keVRhZywgZmFsc2UpOworICAgIFJlZjxFbGVtZW50PiBib2R5ID0gRG9jdW1lbnQ6OmNy
ZWF0ZUVsZW1lbnQoYm9keVRhZywgZmFsc2UpOwogICAgIGJvZHktPnNldEF0dHJpYnV0ZShzdHls
ZUF0dHIsICJtYXJnaW46IDBweCIpOwogICAgIGlmIChNSU1FVHlwZVJlZ2lzdHJ5Ojppc1BERk1J
TUVUeXBlKGRvY3VtZW50KCkubG9hZGVyKCktPnJlc3BvbnNlTUlNRVR5cGUoKSkpCi0gICAgICAg
IGRvd25jYXN0PEhUTUxCb2R5RWxlbWVudD4oKmJvZHkpLnNldElubGluZVN0eWxlUHJvcGVydHko
Q1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IsICJ3aGl0ZSIsIENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NfSURFTlQpOwotICAgIHJvb3RFbGVtZW50LT5hcHBlbmRDaGlsZChib2R5KTsKKyAgICAgICAg
ZG93bmNhc3Q8SFRNTEJvZHlFbGVtZW50Pihib2R5LmdldCgpKS5zZXRJbmxpbmVTdHlsZVByb3Bl
cnR5KENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yLCAid2hpdGUiLCBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTX0lERU5UKTsKKyAgICByb290RWxlbWVudC0+YXBwZW5kQ2hpbGQoYm9keS5jb3B5UmVm
KCkpOwogICAgIAotICAgIFJlZlB0cjxJbWFnZURvY3VtZW50RWxlbWVudD4gaW1hZ2VFbGVtZW50
ID0gSW1hZ2VEb2N1bWVudEVsZW1lbnQ6OmNyZWF0ZSgqdGhpcyk7CisgICAgUmVmPEltYWdlRG9j
dW1lbnRFbGVtZW50PiBpbWFnZUVsZW1lbnQgPSBJbWFnZURvY3VtZW50RWxlbWVudDo6Y3JlYXRl
KCp0aGlzKTsKICAgICBpZiAobV9zaG91bGRTaHJpbmtJbWFnZSkKICAgICAgICAgaW1hZ2VFbGVt
ZW50LT5zZXRBdHRyaWJ1dGUoc3R5bGVBdHRyLCAiLXdlYmtpdC11c2VyLXNlbGVjdDpub25lOyBk
aXNwbGF5OmJsb2NrOyBtYXJnaW46YXV0bzsiKTsKICAgICBlbHNlCkBAIC0yMzAsNyArMjMwLDcg
QEAgdm9pZCBJbWFnZURvY3VtZW50OjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCiAgICAgaW1h
Z2VFbGVtZW50LT5zZXRMb2FkTWFudWFsbHkodHJ1ZSk7CiAgICAgaW1hZ2VFbGVtZW50LT5zZXRT
cmModXJsKCkuc3RyaW5nKCkpOwogICAgIGltYWdlRWxlbWVudC0+Y2FjaGVkSW1hZ2UoKS0+c2V0
UmVzcG9uc2UobG9hZGVyKCktPnJlc3BvbnNlKCkpOwotICAgIGJvZHktPmFwcGVuZENoaWxkKGlt
YWdlRWxlbWVudCk7CisgICAgYm9keS0+YXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50LmNvcHlSZWYo
KSk7CiAgICAgCiAgICAgaWYgKG1fc2hvdWxkU2hyaW5rSW1hZ2UpIHsKICNpZiBQTEFURk9STShJ
T1MpCkBAIC0yNDQsNyArMjQ0LDcgQEAgdm9pZCBJbWFnZURvY3VtZW50OjpjcmVhdGVEb2N1bWVu
dFN0cnVjdHVyZSgpCiAjZW5kaWYKICAgICB9CiAKLSAgICBtX2ltYWdlRWxlbWVudCA9IGltYWdl
RWxlbWVudC5nZXQoKTsKKyAgICBtX2ltYWdlRWxlbWVudCA9IGltYWdlRWxlbWVudC5wdHIoKTsK
IH0KIAogdm9pZCBJbWFnZURvY3VtZW50OjppbWFnZVVwZGF0ZWQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
TWVkaWFEb2N1bWVudC5jcHAKaW5kZXggMTg1YWJhODM0MDNjZTgyMmM3NzZlZTBjMjhkYmE3MzAw
MTkyOTk5Yi4uZDc2MjQ1MmMyNTBlOThmOTZjMWMzNTUwZmFlMTgxZjg1ZTAyYjVhZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCkBAIC03OCwzMCArNzgsMzAgQEAgcHJpdmF0
ZToKICAgICAKIHZvaWQgTWVkaWFEb2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1
cmUoKQogewotICAgIFJlZlB0cjxFbGVtZW50PiByb290RWxlbWVudCA9IGRvY3VtZW50KCktPmNy
ZWF0ZUVsZW1lbnQoaHRtbFRhZywgZmFsc2UpOwotICAgIGRvY3VtZW50KCktPmFwcGVuZENoaWxk
KHJvb3RFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKLSAgICBkb2N1bWVudCgpLT5zZXRDU1NU
YXJnZXQocm9vdEVsZW1lbnQuZ2V0KCkpOwotICAgIGRvd25jYXN0PEhUTUxIdG1sRWxlbWVudD4o
KnJvb3RFbGVtZW50KS5pbnNlcnRlZEJ5UGFyc2VyKCk7CisgICAgUmVmPEVsZW1lbnQ+IHJvb3RF
bGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChodG1sVGFnLCBmYWxzZSk7CisgICAg
ZG9jdW1lbnQoKS0+YXBwZW5kQ2hpbGQocm9vdEVsZW1lbnQuY29weVJlZigpLCBJR05PUkVfRVhD
RVBUSU9OKTsKKyAgICBkb2N1bWVudCgpLT5zZXRDU1NUYXJnZXQocm9vdEVsZW1lbnQucHRyKCkp
OworICAgIGRvd25jYXN0PEhUTUxIdG1sRWxlbWVudD4ocm9vdEVsZW1lbnQuZ2V0KCkpLmluc2Vy
dGVkQnlQYXJzZXIoKTsKIAogICAgIGlmIChkb2N1bWVudCgpLT5mcmFtZSgpKQogICAgICAgICBk
b2N1bWVudCgpLT5mcmFtZSgpLT5pbmplY3RVc2VyU2NyaXB0cyhJbmplY3RBdERvY3VtZW50U3Rh
cnQpOwogCiAjaWYgUExBVEZPUk0oSU9TKQotICAgIFJlZlB0cjxFbGVtZW50PiBoZWFkRWxlbWVu
dCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoaGVhZFRhZywgZmFsc2UpOwotICAgIHJvb3RF
bGVtZW50LT5hcHBlbmRDaGlsZChoZWFkRWxlbWVudCwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAg
UmVmPEVsZW1lbnQ+IGhlYWRFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChoZWFk
VGFnLCBmYWxzZSk7CisgICAgcm9vdEVsZW1lbnQtPmFwcGVuZENoaWxkKGhlYWRFbGVtZW50LmNv
cHlSZWYoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBSZWZQdHI8RWxlbWVudD4gbWV0YUVs
ZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KG1ldGFUYWcsIGZhbHNlKTsKKyAgICBS
ZWY8RWxlbWVudD4gbWV0YUVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KG1ldGFU
YWcsIGZhbHNlKTsKICAgICBtZXRhRWxlbWVudC0+c2V0QXR0cmlidXRlKG5hbWVBdHRyLCAidmll
d3BvcnQiKTsKICAgICBtZXRhRWxlbWVudC0+c2V0QXR0cmlidXRlKGNvbnRlbnRBdHRyLCAid2lk
dGg9ZGV2aWNlLXdpZHRoLGluaXRpYWwtc2NhbGU9MSx1c2VyLXNjYWxhYmxlPW5vIik7Ci0gICAg
aGVhZEVsZW1lbnQtPmFwcGVuZENoaWxkKG1ldGFFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsK
KyAgICBoZWFkRWxlbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKG1ldGFFbGVtZW50KSwgSUdO
T1JFX0VYQ0VQVElPTik7CiAjZW5kaWYKIAotICAgIFJlZlB0cjxFbGVtZW50PiBib2R5ID0gZG9j
dW1lbnQoKS0+Y3JlYXRlRWxlbWVudChib2R5VGFnLCBmYWxzZSk7Ci0gICAgcm9vdEVsZW1lbnQt
PmFwcGVuZENoaWxkKGJvZHksIElHTk9SRV9FWENFUFRJT04pOworICAgIFJlZjxFbGVtZW50PiBi
b2R5ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChib2R5VGFnLCBmYWxzZSk7CisgICAgcm9v
dEVsZW1lbnQtPmFwcGVuZENoaWxkKGJvZHkuY29weVJlZigpLCBJR05PUkVfRVhDRVBUSU9OKTsK
IAotICAgIFJlZlB0cjxFbGVtZW50PiBtZWRpYUVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVF
bGVtZW50KHZpZGVvVGFnLCBmYWxzZSk7CisgICAgUmVmPEVsZW1lbnQ+IG1lZGlhRWxlbWVudCA9
IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQodmlkZW9UYWcsIGZhbHNlKTsKIAotICAgIG1fbWVk
aWFFbGVtZW50ID0gZG93bmNhc3Q8SFRNTFZpZGVvRWxlbWVudD4obWVkaWFFbGVtZW50LmdldCgp
KTsKKyAgICBtX21lZGlhRWxlbWVudCA9IGRvd25jYXN0PEhUTUxWaWRlb0VsZW1lbnQ+KG1lZGlh
RWxlbWVudC5wdHIoKSk7CiAgICAgbV9tZWRpYUVsZW1lbnQtPnNldEF0dHJpYnV0ZShjb250cm9s
c0F0dHIsIGVtcHR5QXRvbSk7CiAgICAgbV9tZWRpYUVsZW1lbnQtPnNldEF0dHJpYnV0ZShhdXRv
cGxheUF0dHIsIGVtcHR5QXRvbSk7CiAKQEAgLTExNCwxNSArMTE0LDE1IEBAIHZvaWQgTWVkaWFE
b2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKQogI2VuZGlmCiAgICAgbV9t
ZWRpYUVsZW1lbnQtPnNldEF0dHJpYnV0ZShzdHlsZUF0dHIsIGVsZW1lbnRTdHlsZS50b1N0cmlu
ZygpKTsKIAotICAgIFJlZlB0cjxFbGVtZW50PiBzb3VyY2VFbGVtZW50ID0gZG9jdW1lbnQoKS0+
Y3JlYXRlRWxlbWVudChzb3VyY2VUYWcsIGZhbHNlKTsKLSAgICBIVE1MU291cmNlRWxlbWVudCYg
c291cmNlID0gZG93bmNhc3Q8SFRNTFNvdXJjZUVsZW1lbnQ+KCpzb3VyY2VFbGVtZW50KTsKKyAg
ICBSZWY8RWxlbWVudD4gc291cmNlRWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQo
c291cmNlVGFnLCBmYWxzZSk7CisgICAgSFRNTFNvdXJjZUVsZW1lbnQmIHNvdXJjZSA9IGRvd25j
YXN0PEhUTUxTb3VyY2VFbGVtZW50Pihzb3VyY2VFbGVtZW50LmdldCgpKTsKICAgICBzb3VyY2Uu
c2V0U3JjKGRvY3VtZW50KCktPnVybCgpKTsKIAogICAgIGlmIChEb2N1bWVudExvYWRlciogbG9h
ZGVyID0gZG9jdW1lbnQoKS0+bG9hZGVyKCkpCiAgICAgICAgIHNvdXJjZS5zZXRUeXBlKGxvYWRl
ci0+cmVzcG9uc2VNSU1FVHlwZSgpKTsKIAotICAgIG1fbWVkaWFFbGVtZW50LT5hcHBlbmRDaGls
ZChzb3VyY2VFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKLSAgICBib2R5LT5hcHBlbmRDaGls
ZChtZWRpYUVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOworICAgIG1fbWVkaWFFbGVtZW50LT5h
cHBlbmRDaGlsZChXVEY6Om1vdmUoc291cmNlRWxlbWVudCksIElHTk9SRV9FWENFUFRJT04pOwor
ICAgIGJvZHktPmFwcGVuZENoaWxkKFdURjo6bW92ZShtZWRpYUVsZW1lbnQpLCBJR05PUkVfRVhD
RVBUSU9OKTsKIAogICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCk7CiAgICAg
aWYgKCFmcmFtZSkKQEAgLTI1Myw3ICsyNTMsNyBAQCB2b2lkIE1lZGlhRG9jdW1lbnQ6OnJlcGxh
Y2VNZWRpYUVsZW1lbnRUaW1lckZpcmVkKCkKICAgICAgICAgaWYgKGRvY3VtZW50TG9hZGVyKQog
ICAgICAgICAgICAgZW1iZWRFbGVtZW50LnNldEF0dHJpYnV0ZSh0eXBlQXR0ciwgZG9jdW1lbnRM
b2FkZXItPndyaXRlcigpLm1pbWVUeXBlKCkpOwogCi0gICAgICAgIHZpZGVvRWxlbWVudC0+cGFy
ZW50Tm9kZSgpLT5yZXBsYWNlQ2hpbGQoJmVtYmVkRWxlbWVudCwgdmlkZW9FbGVtZW50LCBJR05P
UkVfRVhDRVBUSU9OKTsKKyAgICAgICAgdmlkZW9FbGVtZW50LT5wYXJlbnROb2RlKCktPnJlcGxh
Y2VDaGlsZChlbWJlZEVsZW1lbnQsICp2aWRlb0VsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOwog
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcAppbmRleCBlOTY3
NzA5MGY0YzM4NTNhN2NmZjIwOGIyM2MzMWRjOWQyNTQ0ODIxLi5jMGE4MGJhNTU3MTM5MDliOTNi
MThiMWJkYTg4MDNmZjE1Mjc1YmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bs
dWdpbkRvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50
LmNwcApAQCAtNjcsOSArNjcsOSBAQCBwcml2YXRlOgogCiB2b2lkIFBsdWdpbkRvY3VtZW50UGFy
c2VyOjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCiB7Ci0gICAgUmVmUHRyPEVsZW1lbnQ+IHJv
b3RFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChodG1sVGFnLCBmYWxzZSk7Ci0g
ICAgZG9jdW1lbnQoKS0+YXBwZW5kQ2hpbGQocm9vdEVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04p
OwotICAgIGRvd25jYXN0PEhUTUxIdG1sRWxlbWVudD4oKnJvb3RFbGVtZW50KS5pbnNlcnRlZEJ5
UGFyc2VyKCk7CisgICAgUmVmPEVsZW1lbnQ+IHJvb3RFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3Jl
YXRlRWxlbWVudChodG1sVGFnLCBmYWxzZSk7CisgICAgZG9jdW1lbnQoKS0+YXBwZW5kQ2hpbGQo
cm9vdEVsZW1lbnQuY29weVJlZigpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBkb3duY2FzdDxI
VE1MSHRtbEVsZW1lbnQ+KHJvb3RFbGVtZW50LmdldCgpKS5pbnNlcnRlZEJ5UGFyc2VyKCk7CiAK
ICAgICBpZiAoZG9jdW1lbnQoKS0+ZnJhbWUoKSkKICAgICAgICAgZG9jdW1lbnQoKS0+ZnJhbWUo
KS0+aW5qZWN0VXNlclNjcmlwdHMoSW5qZWN0QXREb2N1bWVudFN0YXJ0KTsKQEAgLTc5LDcgKzc5
LDcgQEAgdm9pZCBQbHVnaW5Eb2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUo
KQogICAgIGRvY3VtZW50KCktPnByb2Nlc3NWaWV3cG9ydChBU0NJSUxpdGVyYWwoInVzZXItc2Nh
bGFibGU9bm8iKSwgVmlld3BvcnRBcmd1bWVudHM6OlBsdWdpbkRvY3VtZW50KTsKICNlbmRpZgog
Ci0gICAgUmVmUHRyPEVsZW1lbnQ+IGJvZHkgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KGJv
ZHlUYWcsIGZhbHNlKTsKKyAgICBSZWY8RWxlbWVudD4gYm9keSA9IGRvY3VtZW50KCktPmNyZWF0
ZUVsZW1lbnQoYm9keVRhZywgZmFsc2UpOwogICAgIGJvZHktPnNldEF0dHJpYnV0ZShtYXJnaW53
aWR0aEF0dHIsIEF0b21pY1N0cmluZygiMCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKICAgICBib2R5LT5zZXRBdHRyaWJ1dGUobWFyZ2luaGVpZ2h0QXR0ciwgQXRvbWlj
U3RyaW5nKCIwIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogI2lmIFBM
QVRGT1JNKElPUykKQEAgLTg4LDExICs4OCwxMSBAQCB2b2lkIFBsdWdpbkRvY3VtZW50UGFyc2Vy
OjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCiAgICAgYm9keS0+c2V0QXR0cmlidXRlKHN0eWxl
QXR0ciwgQXRvbWljU3RyaW5nKCJiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMzgsMzgsMzgpIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogI2VuZGlmCiAKLSAgICByb290RWxl
bWVudC0+YXBwZW5kQ2hpbGQoYm9keSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgcm9vdEVsZW1l
bnQtPmFwcGVuZENoaWxkKGJvZHkuY29weVJlZigpLCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICAg
ICAgCi0gICAgUmVmUHRyPEVsZW1lbnQ+IGVtYmVkRWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0
ZUVsZW1lbnQoZW1iZWRUYWcsIGZhbHNlKTsKKyAgICBSZWY8RWxlbWVudD4gZW1iZWRFbGVtZW50
ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChlbWJlZFRhZywgZmFsc2UpOwogICAgICAgICAK
LSAgICBtX2VtYmVkRWxlbWVudCA9IGRvd25jYXN0PEhUTUxFbWJlZEVsZW1lbnQ+KGVtYmVkRWxl
bWVudC5nZXQoKSk7CisgICAgbV9lbWJlZEVsZW1lbnQgPSBkb3duY2FzdDxIVE1MRW1iZWRFbGVt
ZW50PihlbWJlZEVsZW1lbnQucHRyKCkpOwogICAgIG1fZW1iZWRFbGVtZW50LT5zZXRBdHRyaWJ1
dGUod2lkdGhBdHRyLCAiMTAwJSIpOwogICAgIG1fZW1iZWRFbGVtZW50LT5zZXRBdHRyaWJ1dGUo
aGVpZ2h0QXR0ciwgIjEwMCUiKTsKICAgICAKQEAgLTEwNiw3ICsxMDYsNyBAQCB2b2lkIFBsdWdp
bkRvY3VtZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCiAKICAgICBkb3duY2Fz
dDxQbHVnaW5Eb2N1bWVudD4oKmRvY3VtZW50KCkpLnNldFBsdWdpbkVsZW1lbnQobV9lbWJlZEVs
ZW1lbnQpOwogCi0gICAgYm9keS0+YXBwZW5kQ2hpbGQoZW1iZWRFbGVtZW50LCBJR05PUkVfRVhD
RVBUSU9OKTsKKyAgICBib2R5LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoZW1iZWRFbGVtZW50KSwg
SUdOT1JFX0VYQ0VQVElPTik7CiB9CiAKIHZvaWQgUGx1Z2luRG9jdW1lbnRQYXJzZXI6OmFwcGVu
ZEJ5dGVzKERvY3VtZW50V3JpdGVyJiwgY29uc3QgY2hhciosIHNpemVfdCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKaW5kZXggYjViOWU3OTQxMzExOTNiNTBmZTc5NzlhMTZh
MTRjYjMwODA0ZTdkNy4uNjZhNzQxNWU4YTRjZjExZjkxZGM2N2MxNmExZDkwNjAyNWNmZmZkMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKQEAgLTI1MywxMiArMjUzLDEy
IEBAIHZvaWQgUmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogICAgIEFTU0VS
VChlbGVtZW50KCkudXNlckFnZW50U2hhZG93Um9vdCgpKTsKIAogICAgIERvY3VtZW50JiBkb2N1
bWVudCA9IGVsZW1lbnQoKS5kb2N1bWVudCgpOwotICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4g
dHJhY2sgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBSZWY8SFRNTERp
dkVsZW1lbnQ+IHRyYWNrID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAg
dHJhY2stPnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRy
YWNrIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHRyYWNrLT5h
cHBlbmRDaGlsZChTbGlkZXJUaHVtYkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCksIElHTk9SRV9F
WENFUFRJT04pOwotICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gY29udGFpbmVyID0gU2xpZGVyQ29u
dGFpbmVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBjb250YWluZXItPmFwcGVuZENo
aWxkKHRyYWNrLnJlbGVhc2UoKSwgSUdOT1JFX0VYQ0VQVElPTik7Ci0gICAgZWxlbWVudCgpLnVz
ZXJBZ2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoY29udGFpbmVyLnJlbGVhc2UoKSwgSUdO
T1JFX0VYQ0VQVElPTik7CisgICAgUmVmPEhUTUxFbGVtZW50PiBjb250YWluZXIgPSBTbGlkZXJD
b250YWluZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNvbnRhaW5lci0+YXBwZW5k
Q2hpbGQoV1RGOjptb3ZlKHRyYWNrKSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgZWxlbWVudCgp
LnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNvbnRhaW5lciks
IElHTk9SRV9FWENFUFRJT04pOwogfQogCiBIVE1MRWxlbWVudCogUmFuZ2VJbnB1dFR5cGU6OnNs
aWRlclRyYWNrRWxlbWVudCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1NlYXJjaElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlw
ZS5jcHAKaW5kZXggZGU0M2RiNTgwNDkzYmM2NTk5ZjllN2FlODg3ZTcwYzk4MWM0MmU2Ny4uMzU3
YzdhNjA1YjRkYjcyYzAwZTdiOTZkZWQ2ZGQ2NDYyMGU4ZDZmZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvU2VhcmNoSW5wdXRUeXBlLmNwcApAQCAtMTA3LDE0ICsxMDcsMTQgQEAgdm9pZCBTZWFyY2hJ
bnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogICAgIEFTU0VSVChjb250YWluZXIpOwog
ICAgIEFTU0VSVCh0ZXh0V3JhcHBlcik7CiAKLSAgICBSZWZQdHI8U2VhcmNoRmllbGRSZXN1bHRz
QnV0dG9uRWxlbWVudD4gcmVzdWx0c0J1dHRvbiA9IFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVs
ZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCkuZG9jdW1lbnQoKSk7Ci0gICAgbV9yZXN1bHRzQnV0dG9u
ID0gcmVzdWx0c0J1dHRvbi5nZXQoKTsKLSAgICB1cGRhdGVSZXN1bHRCdXR0b25Qc2V1ZG9UeXBl
KCptX3Jlc3VsdHNCdXR0b24sIGVsZW1lbnQoKS5tYXhSZXN1bHRzKCkpOwotICAgIGNvbnRhaW5l
ci0+aW5zZXJ0QmVmb3JlKG1fcmVzdWx0c0J1dHRvbiwgdGV4dFdyYXBwZXIsIElHTk9SRV9FWENF
UFRJT04pOwotCi0gICAgUmVmUHRyPFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudD4gY2Fu
Y2VsQnV0dG9uID0gU2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50OjpjcmVhdGUoZWxlbWVu
dCgpLmRvY3VtZW50KCkpOwotICAgIG1fY2FuY2VsQnV0dG9uID0gY2FuY2VsQnV0dG9uLmdldCgp
OwotICAgIGNvbnRhaW5lci0+aW5zZXJ0QmVmb3JlKG1fY2FuY2VsQnV0dG9uLCB0ZXh0V3JhcHBl
ci0+bmV4dFNpYmxpbmcoKSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgUmVmPFNlYXJjaEZpZWxk
UmVzdWx0c0J1dHRvbkVsZW1lbnQ+IHJlc3VsdHNCdXR0b24gPSBTZWFyY2hGaWVsZFJlc3VsdHNC
dXR0b25FbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLmRvY3VtZW50KCkpOworICAgIG1fcmVzdWx0
c0J1dHRvbiA9IHJlc3VsdHNCdXR0b24ucHRyKCk7CisgICAgdXBkYXRlUmVzdWx0QnV0dG9uUHNl
dWRvVHlwZShyZXN1bHRzQnV0dG9uLmdldCgpLCBlbGVtZW50KCkubWF4UmVzdWx0cygpKTsKKyAg
ICBjb250YWluZXItPmluc2VydEJlZm9yZShXVEY6Om1vdmUocmVzdWx0c0J1dHRvbiksIHRleHRX
cmFwcGVyLCBJR05PUkVfRVhDRVBUSU9OKTsKKworICAgIFJlZjxTZWFyY2hGaWVsZENhbmNlbEJ1
dHRvbkVsZW1lbnQ+IGNhbmNlbEJ1dHRvbiA9IFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVu
dDo6Y3JlYXRlKGVsZW1lbnQoKS5kb2N1bWVudCgpKTsKKyAgICBtX2NhbmNlbEJ1dHRvbiA9IGNh
bmNlbEJ1dHRvbi5wdHIoKTsKKyAgICBjb250YWluZXItPmluc2VydEJlZm9yZShXVEY6Om1vdmUo
Y2FuY2VsQnV0dG9uKSwgdGV4dFdyYXBwZXItPm5leHRTaWJsaW5nKCksIElHTk9SRV9FWENFUFRJ
T04pOwogfQogCiBIVE1MRWxlbWVudCogU2VhcmNoSW5wdXRUeXBlOjpyZXN1bHRzQnV0dG9uRWxl
bWVudCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElu
cHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAK
aW5kZXggZWFlM2RiMjllZWUzYzJkZTk1ZmU3MTgwYzU0NmZmOGU3ZTJhNzY3ZS4uMTM2ZjA5NzUx
YjVkYTYxMDAwNjE2NDliNTViNTQ5YWM5ZDIzNDJiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VGV4dEZpZWxkSW5wdXRUeXBlLmNwcApAQCAtMjc0LDcgKzI3NCw3IEBAIHZvaWQgVGV4dEZpZWxk
SW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKICAgICBtX2lubmVyVGV4dCA9IFRleHRD
b250cm9sSW5uZXJUZXh0RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKIAogICAgIGlmICghY3Jl
YXRlc0NvbnRhaW5lcikgewotICAgICAgICBlbGVtZW50KCkudXNlckFnZW50U2hhZG93Um9vdCgp
LT5hcHBlbmRDaGlsZChtX2lubmVyVGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgICAgIGVs
ZW1lbnQoKS51c2VyQWdlbnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKCptX2lubmVyVGV4dCwg
SUdOT1JFX0VYQ0VQVElPTik7CiAgICAgICAgIHVwZGF0ZVBsYWNlaG9sZGVyVGV4dCgpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQpAQCAtMjg0LDcgKzI4NCw3IEBAIHZvaWQgVGV4dEZpZWxkSW5w
dXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIAogICAgIGlmIChzaG91bGRIYXZlU3BpbkJ1
dHRvbikgewogICAgICAgICBtX2lubmVyU3BpbkJ1dHRvbiA9IFNwaW5CdXR0b25FbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQsICp0aGlzKTsKLSAgICAgICAgbV9jb250YWluZXItPmFwcGVuZENoaWxk
KG1faW5uZXJTcGluQnV0dG9uLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgbV9jb250YWlu
ZXItPmFwcGVuZENoaWxkKCptX2lubmVyU3BpbkJ1dHRvbiwgSUdOT1JFX0VYQ0VQVElPTik7CiAg
ICAgfQogCiAgICAgaWYgKHNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRvcikgewpAQCAtMjk0LDcg
KzI5NCw3IEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkK
ICAgICAgICAgYm9vbCBzaG91bGREcmF3Q2Fwc0xvY2tJbmRpY2F0b3IgPSB0aGlzLT5zaG91bGRE
cmF3Q2Fwc0xvY2tJbmRpY2F0b3IoKTsKICAgICAgICAgbV9jYXBzTG9ja0luZGljYXRvci0+c2V0
SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eURpc3BsYXksIHNob3VsZERyYXdDYXBzTG9j
a0luZGljYXRvciA/IENTU1ZhbHVlQmxvY2sgOiBDU1NWYWx1ZU5vbmUsIHRydWUpOwogCi0gICAg
ICAgIG1fY29udGFpbmVyLT5hcHBlbmRDaGlsZChtX2NhcHNMb2NrSW5kaWNhdG9yLCBJR05PUkVf
RVhDRVBUSU9OKTsKKyAgICAgICAgbV9jb250YWluZXItPmFwcGVuZENoaWxkKCptX2NhcHNMb2Nr
SW5kaWNhdG9yLCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICB9CiAKICAgICB1cGRhdGVBdXRvRmls
bEJ1dHRvbigpOwpAQCAtNDYxLDcgKzQ2MSw3IEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjp1
cGRhdGVQbGFjZWhvbGRlclRleHQoKQogICAgIFN0cmluZyBwbGFjZWhvbGRlclRleHQgPSBlbGVt
ZW50KCkuc3RyaXBwZWRQbGFjZWhvbGRlcigpOwogICAgIGlmIChwbGFjZWhvbGRlclRleHQuaXNF
bXB0eSgpKSB7CiAgICAgICAgIGlmIChtX3BsYWNlaG9sZGVyKSB7Ci0gICAgICAgICAgICBtX3Bs
YWNlaG9sZGVyLT5wYXJlbnROb2RlKCktPnJlbW92ZUNoaWxkKG1fcGxhY2Vob2xkZXIuZ2V0KCks
IEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAgICAgICAgbV9wbGFjZWhvbGRlci0+cGFyZW50
Tm9kZSgpLT5yZW1vdmVDaGlsZCgqbV9wbGFjZWhvbGRlciwgQVNTRVJUX05PX0VYQ0VQVElPTik7
CiAgICAgICAgICAgICBtX3BsYWNlaG9sZGVyID0gbnVsbHB0cjsKICAgICAgICAgfQogICAgICAg
ICByZXR1cm47CkBAIC00NzAsNyArNDcwLDcgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OnVw
ZGF0ZVBsYWNlaG9sZGVyVGV4dCgpCiAgICAgICAgIG1fcGxhY2Vob2xkZXIgPSBIVE1MRGl2RWxl
bWVudDo6Y3JlYXRlKGVsZW1lbnQoKS5kb2N1bWVudCgpKTsKICAgICAgICAgbV9wbGFjZWhvbGRl
ci0+c2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAgICAgbV9wbGFjZWhvbGRl
ci0+c2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eURpc3BsYXksIGVsZW1lbnQoKS5p
c1BsYWNlaG9sZGVyVmlzaWJsZSgpID8gQ1NTVmFsdWVCbG9jayA6IENTU1ZhbHVlTm9uZSwgdHJ1
ZSk7Ci0gICAgICAgIGVsZW1lbnQoKS51c2VyQWdlbnRTaGFkb3dSb290KCktPmluc2VydEJlZm9y
ZShtX3BsYWNlaG9sZGVyLCBtX2NvbnRhaW5lciA/IG1fY29udGFpbmVyLmdldCgpIDogaW5uZXJU
ZXh0RWxlbWVudCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgZWxlbWVudCgpLnVz
ZXJBZ2VudFNoYWRvd1Jvb3QoKS0+aW5zZXJ0QmVmb3JlKCptX3BsYWNlaG9sZGVyLCBtX2NvbnRh
aW5lciA/IG1fY29udGFpbmVyLmdldCgpIDogaW5uZXJUZXh0RWxlbWVudCgpLCBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKICAgICAgICAgCiAgICAgfQogICAgIG1fcGxhY2Vob2xkZXItPnNldElubmVy
VGV4dChwbGFjZWhvbGRlclRleHQsIEFTU0VSVF9OT19FWENFUFRJT04pOwpAQCAtNjAwLDEwICs2
MDAsMTAgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZUNvbnRhaW5lcigpCiAgICAg
bV9jb250YWluZXItPnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtdGV4dGZpZWxkLWRl
Y29yYXRpb24tY29udGFpbmVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OwogCiAgICAgbV9pbm5lckJsb2NrID0gVGV4dENvbnRyb2xJbm5lckVsZW1lbnQ6OmNyZWF0ZShl
bGVtZW50KCkuZG9jdW1lbnQoKSk7Ci0gICAgbV9pbm5lckJsb2NrLT5hcHBlbmRDaGlsZChtX2lu
bmVyVGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7Ci0gICAgbV9jb250YWluZXItPmFwcGVuZENoaWxk
KG1faW5uZXJCbG9jaywgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgbV9pbm5lckJsb2NrLT5hcHBl
bmRDaGlsZCgqbV9pbm5lclRleHQsIElHTk9SRV9FWENFUFRJT04pOworICAgIG1fY29udGFpbmVy
LT5hcHBlbmRDaGlsZCgqbV9pbm5lckJsb2NrLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGVs
ZW1lbnQoKS51c2VyQWdlbnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKG1fY29udGFpbmVyLCBJ
R05PUkVfRVhDRVBUSU9OKTsKKyAgICBlbGVtZW50KCkudXNlckFnZW50U2hhZG93Um9vdCgpLT5h
cHBlbmRDaGlsZCgqbV9jb250YWluZXIsIElHTk9SRV9FWENFUFRJT04pOwogfQogCiB2b2lkIFRl
eHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlQXV0b0ZpbGxCdXR0b24oKQpAQCAtNjEyLDcgKzYxMiw3
IEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVBdXRvRmlsbEJ1dHRvbigpCiAKICAg
ICBtX2F1dG9GaWxsQnV0dG9uID0gQXV0b0ZpbGxCdXR0b25FbGVtZW50OjpjcmVhdGUoZWxlbWVu
dCgpLmRvY3VtZW50KCksICp0aGlzKTsKICAgICBtX2F1dG9GaWxsQnV0dG9uLT5zZXRQc2V1ZG8o
QXRvbWljU3RyaW5nKCItd2Via2l0LWF1dG8tZmlsbC1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgbV9jb250YWluZXItPmFwcGVuZENoaWxkKG1fYXV0
b0ZpbGxCdXR0b24sIElHTk9SRV9FWENFUFRJT04pOworICAgIG1fY29udGFpbmVyLT5hcHBlbmRD
aGlsZCgqbV9hdXRvRmlsbEJ1dHRvbiwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CiAKIHZvaWQgVGV4
dEZpZWxkSW5wdXRUeXBlOjp1cGRhdGVBdXRvRmlsbEJ1dHRvbigpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCmluZGV4IGY2MWUxYjVlZmUyNzA5MzFkYWIwZWMyZWVk
ZjBmMzRiZDc3ODJiOTYuLjkwNjI5NWUxOThmNzg0NTY1NjEyYWE1MmNiOWU2YWM0ZDUzMGZhZGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCkBAIC0xODAsMzIg
KzE4MCwzMiBAQCB2b2lkIFZhbGlkYXRpb25NZXNzYWdlOjpidWlsZEJ1YmJsZVRyZWUoKQogICAg
IC8vIE5lZWQgdG8gZm9yY2UgcG9zaXRpb246YWJzb2x1dGUgYmVjYXVzZSBSZW5kZXJNZW51TGlz
dCBkb2Vzbid0IGFzc3VtZSBpdAogICAgIC8vIGNvbnRhaW5zIG5vbi1hYnNvbHV0ZSBvciBub24t
Zml4ZWQgcmVuZGVyZXJzIGFzIGNoaWxkcmVuLgogICAgIG1fYnViYmxlLT5zZXRJbmxpbmVTdHls
ZVByb3BlcnR5KENTU1Byb3BlcnR5UG9zaXRpb24sIENTU1ZhbHVlQWJzb2x1dGUpOwotICAgIHNo
YWRvd1Jvb3QuYXBwZW5kQ2hpbGQobV9idWJibGUuZ2V0KCksIEFTU0VSVF9OT19FWENFUFRJT04p
OworICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoKm1fYnViYmxlLCBBU1NFUlRfTk9fRVhDRVBU
SU9OKTsKICAgICBkb2N1bWVudC51cGRhdGVMYXlvdXQoKTsKICAgICBhZGp1c3RCdWJibGVQb3Np
dGlvbihtX2VsZW1lbnQtPnJlbmRlcmVyKCktPmFic29sdXRlQm91bmRpbmdCb3hSZWN0KCksIG1f
YnViYmxlLmdldCgpKTsKIAotICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gY2xpcHBlciA9IEhU
TUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIFJlZjxIVE1MRGl2RWxlbWVudD4g
Y2xpcHBlciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGNsaXBwZXIt
PnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtYXJyb3ct
Y2xpcHBlciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBSZWZQ
dHI8SFRNTERpdkVsZW1lbnQ+IGJ1YmJsZUFycm93ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCk7CisgICAgUmVmPEhUTUxEaXZFbGVtZW50PiBidWJibGVBcnJvdyA9IEhUTUxEaXZF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGJ1YmJsZUFycm93LT5zZXRQc2V1ZG8oQXRv
bWljU3RyaW5nKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLWFycm93IiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIGNsaXBwZXItPmFwcGVuZENoaWxkKGJ1YmJs
ZUFycm93LnJlbGVhc2UoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0gICAgbV9idWJibGUtPmFw
cGVuZENoaWxkKGNsaXBwZXIucmVsZWFzZSgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBj
bGlwcGVyLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoYnViYmxlQXJyb3cpLCBBU1NFUlRfTk9fRVhD
RVBUSU9OKTsKKyAgICBtX2J1YmJsZS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNsaXBwZXIpLCBB
U1NFUlRfTk9fRVhDRVBUSU9OKTsKIAotICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gbWVzc2FnZSA9
IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIFJlZjxIVE1MRWxlbWVudD4g
bWVzc2FnZSA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIG1lc3NhZ2Ut
PnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtbWVzc2Fn
ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBSZWZQdHI8SFRN
TEVsZW1lbnQ+IGljb24gPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBS
ZWY8SFRNTEVsZW1lbnQ+IGljb24gPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsK
ICAgICBpY29uLT5zZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LXZhbGlkYXRpb24tYnVi
YmxlLWljb24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgbWVz
c2FnZS0+YXBwZW5kQ2hpbGQoaWNvbi5yZWxlYXNlKCksIEFTU0VSVF9OT19FWENFUFRJT04pOwot
ICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gdGV4dEJsb2NrID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCk7CisgICAgbWVzc2FnZS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGljb24pLCBB
U1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBSZWY8SFRNTEVsZW1lbnQ+IHRleHRCbG9jayA9IEhU
TUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIHRleHRCbG9jay0+c2V0UHNldWRv
KEF0b21pY1N0cmluZygiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS10ZXh0LWJsb2NrIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIG1fbWVzc2FnZUhlYWRpbmcg
PSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBtX21lc3NhZ2VIZWFkaW5n
LT5zZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLWhlYWRp
bmciLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgdGV4dEJsb2Nr
LT5hcHBlbmRDaGlsZChtX21lc3NhZ2VIZWFkaW5nLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAg
ICB0ZXh0QmxvY2stPmFwcGVuZENoaWxkKCptX21lc3NhZ2VIZWFkaW5nLCBBU1NFUlRfTk9fRVhD
RVBUSU9OKTsKICAgICBtX21lc3NhZ2VCb2R5ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCk7CiAgICAgbV9tZXNzYWdlQm9keS0+c2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtp
dC12YWxpZGF0aW9uLWJ1YmJsZS1ib2R5IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOwotICAgIHRleHRCbG9jay0+YXBwZW5kQ2hpbGQobV9tZXNzYWdlQm9keSwgQVNTRVJU
X05PX0VYQ0VQVElPTik7Ci0gICAgbWVzc2FnZS0+YXBwZW5kQ2hpbGQodGV4dEJsb2NrLnJlbGVh
c2UoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0gICAgbV9idWJibGUtPmFwcGVuZENoaWxkKG1l
c3NhZ2UucmVsZWFzZSgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICB0ZXh0QmxvY2stPmFw
cGVuZENoaWxkKCptX21lc3NhZ2VCb2R5LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBtZXNz
YWdlLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUodGV4dEJsb2NrKSwgQVNTRVJUX05PX0VYQ0VQVElP
Tik7CisgICAgbV9idWJibGUtPmFwcGVuZENoaWxkKFdURjo6bW92ZShtZXNzYWdlKSwgQVNTRVJU
X05PX0VYQ0VQVElPTik7CiAKICAgICBzZXRNZXNzYWdlRE9NQW5kU3RhcnRUaW1lcigpOwogCkBA
IC0yMzcsNyArMjM3LDcgQEAgdm9pZCBWYWxpZGF0aW9uTWVzc2FnZTo6ZGVsZXRlQnViYmxlVHJl
ZSgpCiAgICAgaWYgKG1fYnViYmxlKSB7CiAgICAgICAgIG1fbWVzc2FnZUhlYWRpbmcgPSBudWxs
cHRyOwogICAgICAgICBtX21lc3NhZ2VCb2R5ID0gbnVsbHB0cjsKLSAgICAgICAgbV9lbGVtZW50
LT51c2VyQWdlbnRTaGFkb3dSb290KCktPnJlbW92ZUNoaWxkKG1fYnViYmxlLmdldCgpLCBBU1NF
UlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgbV9lbGVtZW50LT51c2VyQWdlbnRTaGFkb3dSb290
KCktPnJlbW92ZUNoaWxkKCptX2J1YmJsZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgICAg
IG1fYnViYmxlID0gbnVsbHB0cjsKICAgICB9CiAgICAgbV9tZXNzYWdlID0gU3RyaW5nKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5j
cHAKaW5kZXggOWU0ODNhOTlkNDU4OTBlMDY3NmM3ZjhhMjY4ZmJiYTRkNDA1NDBjMi4uMjJjZTMz
OWQzNDgyNTg0ZmNmMTNmNGNhZWVkOGEwYjQ1NmZmYTdkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcApAQCAtODA3LDIxICs4
MDcsMjEgQEAgdm9pZCBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ6
OnJlYnVpbGRUcmFja0xpc3RNZW51KCkKICAgICBDYXB0aW9uVXNlclByZWZlcmVuY2VzKiBjYXB0
aW9uUHJlZmVyZW5jZXMgPSBkb2N1bWVudCgpLnBhZ2UoKS0+Z3JvdXAoKS5jYXB0aW9uUHJlZmVy
ZW5jZXMoKTsKICAgICBWZWN0b3I8UmVmUHRyPFRleHRUcmFjaz4+IHRyYWNrc0Zvck1lbnUgPSBj
YXB0aW9uUHJlZmVyZW5jZXMtPnNvcnRlZFRyYWNrTGlzdEZvck1lbnUodHJhY2tMaXN0KTsKIAot
ICAgIFJlZlB0cjxFbGVtZW50PiBjYXB0aW9uc0hlYWRlciA9IGRvY3VtZW50KCkuY3JlYXRlRWxl
bWVudChoM1RhZywgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgUmVmPEVsZW1lbnQ+IGNhcHRp
b25zSGVhZGVyID0gZG9jdW1lbnQoKS5jcmVhdGVFbGVtZW50KGgzVGFnLCBBU1NFUlRfTk9fRVhD
RVBUSU9OKTsKICAgICBjYXB0aW9uc0hlYWRlci0+YXBwZW5kQ2hpbGQoZG9jdW1lbnQoKS5jcmVh
dGVUZXh0Tm9kZSh0ZXh0VHJhY2tTdWJ0aXRsZXNUZXh0KCkpKTsKLSAgICBhcHBlbmRDaGlsZChj
YXB0aW9uc0hlYWRlcik7Ci0gICAgUmVmUHRyPEVsZW1lbnQ+IGNhcHRpb25zTWVudUxpc3QgPSBk
b2N1bWVudCgpLmNyZWF0ZUVsZW1lbnQodWxUYWcsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAg
IGFwcGVuZENoaWxkKFdURjo6bW92ZShjYXB0aW9uc0hlYWRlcikpOworICAgIFJlZjxFbGVtZW50
PiBjYXB0aW9uc01lbnVMaXN0ID0gZG9jdW1lbnQoKS5jcmVhdGVFbGVtZW50KHVsVGFnLCBBU1NF
UlRfTk9fRVhDRVBUSU9OKTsKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDAsIGxlbmd0aCA9IHRy
YWNrc0Zvck1lbnUuc2l6ZSgpOyBpIDwgbGVuZ3RoOyArK2kpIHsKICAgICAgICAgUmVmUHRyPFRl
eHRUcmFjaz4gdGV4dFRyYWNrID0gdHJhY2tzRm9yTWVudVtpXTsKLSAgICAgICAgUmVmUHRyPEVs
ZW1lbnQ+IG1lbnVJdGVtID0gZG9jdW1lbnQoKS5jcmVhdGVFbGVtZW50KGxpVGFnLCBBU1NFUlRf
Tk9fRVhDRVBUSU9OKTsKKyAgICAgICAgUmVmPEVsZW1lbnQ+IG1lbnVJdGVtID0gZG9jdW1lbnQo
KS5jcmVhdGVFbGVtZW50KGxpVGFnLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICAgICAgbWVu
dUl0ZW0tPmFwcGVuZENoaWxkKGRvY3VtZW50KCkuY3JlYXRlVGV4dE5vZGUoY2FwdGlvblByZWZl
cmVuY2VzLT5kaXNwbGF5TmFtZUZvclRyYWNrKHRleHRUcmFjay5nZXQoKSkpKTsKLSAgICAgICAg
Y2FwdGlvbnNNZW51TGlzdC0+YXBwZW5kQ2hpbGQobWVudUl0ZW0pOwotICAgICAgICBtX21lbnVJ
dGVtcy5hcHBlbmQobWVudUl0ZW0pOwotICAgICAgICBtX21lbnVUb1RyYWNrTWFwLmFkZChtZW51
SXRlbSwgdGV4dFRyYWNrKTsKKyAgICAgICAgY2FwdGlvbnNNZW51TGlzdC0+YXBwZW5kQ2hpbGQo
bWVudUl0ZW0uY29weVJlZigpKTsKKyAgICAgICAgbV9tZW51SXRlbXMuYXBwZW5kKG1lbnVJdGVt
LnB0cigpKTsKKyAgICAgICAgbV9tZW51VG9UcmFja01hcC5hZGQobWVudUl0ZW0ucHRyKCksIHRl
eHRUcmFjayk7CiAgICAgfQogCi0gICAgYXBwZW5kQ2hpbGQoY2FwdGlvbnNNZW51TGlzdCk7Cisg
ICAgYXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNhcHRpb25zTWVudUxpc3QpKTsKICNlbmRpZgogfQog
CkBAIC0xMTg2LDE2ICsxMTg2LDE2IEBAIHZvaWQgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFp
bmVyRWxlbWVudDo6dXBkYXRlRGlzcGxheSgpCiAgICAgICAgICAgICAvLyB0cmFjayBjdWUgcmVn
aW9uIGlkZW50aWZpZXIsIHJ1biB0aGUgZm9sbG93aW5nIHN1YnN0ZXBzOgogICAgICAgICAgICAg
aWYgKGRpc3BsYXlCb3gtPmhhc0NoaWxkTm9kZXMoKSAmJiAhY29udGFpbnMoZGlzcGxheUJveC5n
ZXQoKSkpIHsKICAgICAgICAgICAgICAgICAvLyBOb3RlOiB0aGUgZGlzcGxheSB0cmVlIG9mIGEg
Y3VlIGlzIHJlbW92ZWQgd2hlbiB0aGUgYWN0aXZlIGZsYWcgb2YgdGhlIGN1ZSBpcyB1bnNldC4K
LSAgICAgICAgICAgICAgICBhcHBlbmRDaGlsZChkaXNwbGF5Qm94LCBBU1NFUlRfTk9fRVhDRVBU
SU9OKTsKKyAgICAgICAgICAgICAgICBhcHBlbmRDaGlsZCgqZGlzcGxheUJveCwgQVNTRVJUX05P
X0VYQ0VQVElPTik7CiAgICAgICAgICAgICAgICAgY3VlLT5zZXRGb250U2l6ZShtX2ZvbnRTaXpl
LCBtX3ZpZGVvRGlzcGxheVNpemUuc2l6ZSgpLCBtX2ZvbnRTaXplSXNJbXBvcnRhbnQpOwogICAg
ICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgLy8gTGV0IHJlZ2lvbiBi
ZSB0aGUgV2ViVlRUIHJlZ2lvbiB3aG9zZSByZWdpb24gaWRlbnRpZmllcgogICAgICAgICAgICAg
Ly8gbWF0Y2hlcyB0aGUgdGV4dCB0cmFjayBjdWUgcmVnaW9uIGlkZW50aWZpZXIgb2YgY3VlLgot
ICAgICAgICAgICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiByZWdpb25Ob2RlID0gcmVnaW9uLT5n
ZXREaXNwbGF5VHJlZSgpOworICAgICAgICAgICAgUmVmPEhUTUxEaXZFbGVtZW50PiByZWdpb25O
b2RlID0gcmVnaW9uLT5nZXREaXNwbGF5VHJlZSgpOwogCiAgICAgICAgICAgICAvLyBBcHBlbmQg
dGhlIHJlZ2lvbiB0byB0aGUgdmlld3BvcnQsIGlmIGl0IHdhcyBub3QgYWxyZWFkeS4KLSAgICAg
ICAgICAgIGlmICghY29udGFpbnMocmVnaW9uTm9kZS5nZXQoKSkpCisgICAgICAgICAgICBpZiAo
IWNvbnRhaW5zKHJlZ2lvbk5vZGUucHRyKCkpKQogICAgICAgICAgICAgICAgIGFwcGVuZENoaWxk
KHJlZ2lvbi0+Z2V0RGlzcGxheVRyZWUoKSk7CiAKICAgICAgICAgICAgIHJlZ2lvbi0+YXBwZW5k
VGV4dFRyYWNrQ3VlQm94KGRpc3BsYXlCb3gpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xzLmNwcAppbmRleCAzZGQ2ZGU4NmRhMWZjY2QxZmUxYTA2MDg1M2Q0NzEy
M2E0YTcwZDk4Li45ZGY5OThmMWE5ODdiYzkyZmY3ODg0ZDU1MzMxODYyYTE1Y2I5YjIzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmNwcApAQCAtMzgwLDE0
ICszODAsMTQgQEAgdm9pZCBNZWRpYUNvbnRyb2xzOjpjcmVhdGVUZXh0VHJhY2tEaXNwbGF5KCkK
ICAgICBpZiAobV90ZXh0RGlzcGxheUNvbnRhaW5lcikKICAgICAgICAgcmV0dXJuOwogCi0gICAg
UmVmUHRyPE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ+IHRleHREaXNwbGF5
Q29udGFpbmVyID0gTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KCkpOwotICAgIG1fdGV4dERpc3BsYXlDb250YWluZXIgPSB0ZXh0RGlzcGxheUNv
bnRhaW5lci5nZXQoKTsKKyAgICBSZWY8TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxl
bWVudD4gdGV4dERpc3BsYXlDb250YWluZXIgPSBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWlu
ZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CisgICAgbV90ZXh0RGlzcGxheUNvbnRhaW5l
ciA9IHRleHREaXNwbGF5Q29udGFpbmVyLnB0cigpOwogCiAgICAgaWYgKG1fbWVkaWFDb250cm9s
bGVyKQogICAgICAgICBtX3RleHREaXNwbGF5Q29udGFpbmVyLT5zZXRNZWRpYUNvbnRyb2xsZXIo
bV9tZWRpYUNvbnRyb2xsZXIpOwogCiAgICAgLy8gSW5zZXJ0IGl0IGJlZm9yZSB0aGUgZmlyc3Qg
Y29udHJvbGxlciBlbGVtZW50IHNvIGl0IGFsd2F5cyBkaXNwbGF5cyBiZWhpbmQgdGhlIGNvbnRy
b2xzLgotICAgIGluc2VydEJlZm9yZSh0ZXh0RGlzcGxheUNvbnRhaW5lci5yZWxlYXNlKCksIG1f
cGFuZWwsIElHTk9SRV9FWENFUFRJT04pOworICAgIGluc2VydEJlZm9yZShXVEY6Om1vdmUodGV4
dERpc3BsYXlDb250YWluZXIpLCBtX3BhbmVsLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KIAogdm9p
ZCBNZWRpYUNvbnRyb2xzOjpzaG93VGV4dFRyYWNrRGlzcGxheSgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQXBwbGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0FwcGxlLmNwcAppbmRleCAzZjQyYWJhNzVj
NGQyZDk3YWViYzEyMWRiNDhiNWM4MTU4M2IwOWNlLi43ZmIyNjNkOGE3ODhjOTA3ZTk2ZjI1YWJm
MDk2ZTE1NWJhMGJhOTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xzQXBwbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
ZGlhQ29udHJvbHNBcHBsZS5jcHAKQEAgLTYzLDE2NSArNjMsMTY1IEBAIFBhc3NSZWZQdHI8TWVk
aWFDb250cm9scz4gTWVkaWFDb250cm9sczo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIFBh
c3NSZWZQdHI8TWVkaWFDb250cm9sc0FwcGxlPiBNZWRpYUNvbnRyb2xzQXBwbGU6OmNyZWF0ZUNv
bnRyb2xzKERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBpZiAoIWRvY3VtZW50LnBhZ2UoKSkK
LSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgUmVmUHRy
PE1lZGlhQ29udHJvbHNBcHBsZT4gY29udHJvbHMgPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9s
c0FwcGxlKGRvY3VtZW50KSk7CiAKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxFbGVtZW50
PiBwYW5lbCA9IE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAg
ICBSZWY8TWVkaWFDb250cm9sUGFuZWxFbGVtZW50PiBwYW5lbCA9IE1lZGlhQ29udHJvbFBhbmVs
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWM7CiAKLSAg
ICBSZWZQdHI8TWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudD4gcmV3aW5kQnV0dG9uID0g
TWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBj
b250cm9scy0+bV9yZXdpbmRCdXR0b24gPSByZXdpbmRCdXR0b24uZ2V0KCk7Ci0gICAgcGFuZWwt
PmFwcGVuZENoaWxkKHJld2luZEJ1dHRvbi5yZWxlYXNlKCksIGVjKTsKKyAgICBSZWY8TWVkaWFD
b250cm9sUmV3aW5kQnV0dG9uRWxlbWVudD4gcmV3aW5kQnV0dG9uID0gTWVkaWFDb250cm9sUmV3
aW5kQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBjb250cm9scy0+bV9yZXdp
bmRCdXR0b24gPSByZXdpbmRCdXR0b24ucHRyKCk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdU
Rjo6bW92ZShyZXdpbmRCdXR0b24pLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sUGxh
eUJ1dHRvbkVsZW1lbnQ+IHBsYXlCdXR0b24gPSBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBjb250cm9scy0+bV9wbGF5QnV0dG9uID0gcGxheUJ1
dHRvbi5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQocGxheUJ1dHRvbi5yZWxlYXNlKCks
IGVjKTsKKyAgICBSZWY8TWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ+IHBsYXlCdXR0b24g
PSBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBj
b250cm9scy0+bV9wbGF5QnV0dG9uID0gcGxheUJ1dHRvbi5wdHIoKTsKKyAgICBwYW5lbC0+YXBw
ZW5kQ2hpbGQoV1RGOjptb3ZlKHBsYXlCdXR0b24pLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAg
ICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBSZWZQdHI8TWVkaWFD
b250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ+IHJldHVyblRvUmVhbHRpbWVCdXR0
b24gPSBNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50KTsKLSAgICBjb250cm9scy0+bV9yZXR1cm5Ub1JlYWxUaW1lQnV0dG9uID0gcmV0dXJu
VG9SZWFsdGltZUJ1dHRvbi5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQocmV0dXJuVG9S
ZWFsdGltZUJ1dHRvbi5yZWxlYXNlKCksIGVjKTsKKyAgICBSZWY8TWVkaWFDb250cm9sUmV0dXJu
VG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ+IHJldHVyblRvUmVhbHRpbWVCdXR0b24gPSBNZWRpYUNv
bnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAg
ICBjb250cm9scy0+bV9yZXR1cm5Ub1JlYWxUaW1lQnV0dG9uID0gcmV0dXJuVG9SZWFsdGltZUJ1
dHRvbi5wdHIoKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHJldHVyblRvUmVh
bHRpbWVCdXR0b24pLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBpZiAoZG9jdW1lbnQucGFnZSgpLT50aGVtZSgpLnVz
ZXNNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5KCkpIHsKLSAgICAgICAgUmVmUHRyPE1lZGlhQ29u
dHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50PiBzdGF0dXNEaXNwbGF5ID0gTWVkaWFDb250cm9sU3Rh
dHVzRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgICAgIGNvbnRyb2xzLT5t
X3N0YXR1c0Rpc3BsYXkgPSBzdGF0dXNEaXNwbGF5LmdldCgpOwotICAgICAgICBwYW5lbC0+YXBw
ZW5kQ2hpbGQoc3RhdHVzRGlzcGxheS5yZWxlYXNlKCksIGVjKTsKKyAgICAgICAgUmVmPE1lZGlh
Q29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50PiBzdGF0dXNEaXNwbGF5ID0gTWVkaWFDb250cm9s
U3RhdHVzRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgICAgIGNvbnRyb2xz
LT5tX3N0YXR1c0Rpc3BsYXkgPSBzdGF0dXNEaXNwbGF5LnB0cigpOworICAgICAgICBwYW5lbC0+
YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHN0YXR1c0Rpc3BsYXkpLCBlYyk7CiAgICAgICAgIGlmIChl
YykKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgfQogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudD4g
dGltZWxpbmVDb250YWluZXIgPSBNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ6
OmNyZWF0ZShkb2N1bWVudCk7CisgICAgUmVmPE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVy
RWxlbWVudD4gdGltZWxpbmVDb250YWluZXIgPSBNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5l
ckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sQ3Vy
cmVudFRpbWVEaXNwbGF5RWxlbWVudD4gY3VycmVudFRpbWVEaXNwbGF5ID0gTWVkaWFDb250cm9s
Q3VycmVudFRpbWVEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBjb250cm9s
cy0+bV9jdXJyZW50VGltZURpc3BsYXkgPSBjdXJyZW50VGltZURpc3BsYXkuZ2V0KCk7Ci0gICAg
dGltZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKGN1cnJlbnRUaW1lRGlzcGxheS5yZWxlYXNl
KCksIGVjKTsKKyAgICBSZWY8TWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudD4g
Y3VycmVudFRpbWVEaXNwbGF5ID0gTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBjb250cm9scy0+bV9jdXJyZW50VGltZURpc3BsYXkg
PSBjdXJyZW50VGltZURpc3BsYXkucHRyKCk7CisgICAgdGltZWxpbmVDb250YWluZXItPmFwcGVu
ZENoaWxkKFdURjo6bW92ZShjdXJyZW50VGltZURpc3BsYXkpLCBlYyk7CiAgICAgaWYgKGVjKQot
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBSZWZQdHI8
TWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50PiB0aW1lbGluZSA9IE1lZGlhQ29udHJvbFRpbWVs
aW5lRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBjb250cm9scy5nZXQoKSk7Ci0gICAgY29udHJv
bHMtPm1fdGltZWxpbmUgPSB0aW1lbGluZS5nZXQoKTsKLSAgICB0aW1lbGluZUNvbnRhaW5lci0+
YXBwZW5kQ2hpbGQodGltZWxpbmUucmVsZWFzZSgpLCBlYyk7CisgICAgUmVmPE1lZGlhQ29udHJv
bFRpbWVsaW5lRWxlbWVudD4gdGltZWxpbmUgPSBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ6
OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOworICAgIGNvbnRyb2xzLT5tX3RpbWVs
aW5lID0gdGltZWxpbmUucHRyKCk7CisgICAgdGltZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxk
KFdURjo6bW92ZSh0aW1lbGluZSksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAw
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUaW1l
UmVtYWluaW5nRGlzcGxheUVsZW1lbnQ+IHRpbWVSZW1haW5pbmdEaXNwbGF5ID0gTWVkaWFDb250
cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNv
bnRyb2xzLT5tX3RpbWVSZW1haW5pbmdEaXNwbGF5ID0gdGltZVJlbWFpbmluZ0Rpc3BsYXkuZ2V0
KCk7Ci0gICAgdGltZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKHRpbWVSZW1haW5pbmdEaXNw
bGF5LnJlbGVhc2UoKSwgZWMpOworICAgIFJlZjxNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlz
cGxheUVsZW1lbnQ+IHRpbWVSZW1haW5pbmdEaXNwbGF5ID0gTWVkaWFDb250cm9sVGltZVJlbWFp
bmluZ0Rpc3BsYXlFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNvbnRyb2xzLT5tX3Rp
bWVSZW1haW5pbmdEaXNwbGF5ID0gdGltZVJlbWFpbmluZ0Rpc3BsYXkucHRyKCk7CisgICAgdGlt
ZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKFdURjo6bW92ZSh0aW1lUmVtYWluaW5nRGlzcGxh
eSksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAotICAgIGNvbnRyb2xzLT5tX3RpbWVsaW5lQ29udGFpbmVyID0gdGltZWxpbmVD
b250YWluZXIuZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKHRpbWVsaW5lQ29udGFpbmVy
LnJlbGVhc2UoKSwgZWMpOworICAgIGNvbnRyb2xzLT5tX3RpbWVsaW5lQ29udGFpbmVyID0gdGlt
ZWxpbmVDb250YWluZXIucHRyKCk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdURjo6bW92ZSh0
aW1lbGluZUNvbnRhaW5lciksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIC8vIEZJWE1FOiBPbmx5IGNyZWF0ZSB3aGVu
IG5lZWRlZCA8aHR0cDovL3dlYmtpdC5vcmcvYi81NzE2Mz4KLSAgICBSZWZQdHI8TWVkaWFDb250
cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50PiBzZWVrQmFja0J1dHRvbiA9IE1lZGlhQ29udHJvbFNl
ZWtCYWNrQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBjb250cm9scy0+bV9z
ZWVrQmFja0J1dHRvbiA9IHNlZWtCYWNrQnV0dG9uLmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRD
aGlsZChzZWVrQmFja0J1dHRvbi5yZWxlYXNlKCksIGVjKTsKKyAgICBSZWY8TWVkaWFDb250cm9s
U2Vla0JhY2tCdXR0b25FbGVtZW50PiBzZWVrQmFja0J1dHRvbiA9IE1lZGlhQ29udHJvbFNlZWtC
YWNrQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBjb250cm9scy0+bV9zZWVr
QmFja0J1dHRvbiA9IHNlZWtCYWNrQnV0dG9uLnB0cigpOworICAgIHBhbmVsLT5hcHBlbmRDaGls
ZChXVEY6Om1vdmUoc2Vla0JhY2tCdXR0b24pLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAgICBy
ZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBGSVhNRTogT25seSBj
cmVhdGUgd2hlbiBuZWVkZWQgPGh0dHA6Ly93ZWJraXQub3JnL2IvNTcxNjM+Ci0gICAgUmVmUHRy
PE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudD4gc2Vla0ZvcndhcmRCdXR0b24g
PSBNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7
Ci0gICAgY29udHJvbHMtPm1fc2Vla0ZvcndhcmRCdXR0b24gPSBzZWVrRm9yd2FyZEJ1dHRvbi5n
ZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoc2Vla0ZvcndhcmRCdXR0b24ucmVsZWFzZSgp
LCBlYyk7CisgICAgUmVmPE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudD4gc2Vl
a0ZvcndhcmRCdXR0b24gPSBNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCk7CisgICAgY29udHJvbHMtPm1fc2Vla0ZvcndhcmRCdXR0b24gPSBzZWVr
Rm9yd2FyZEJ1dHRvbi5wdHIoKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHNl
ZWtGb3J3YXJkQnV0dG9uKSwgZWMpOwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7Cisg
ICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgaWYgKGRvY3VtZW50LnBhZ2UoKS0+dGhlbWUo
KS5zdXBwb3J0c0Nsb3NlZENhcHRpb25pbmcoKSkgewotICAgICAgICBSZWZQdHI8TWVkaWFDb250
cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50PiBjbG9zZWRDYXB0aW9uc0NvbnRhaW5l
ciA9IE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50KTsKKyAgICAgICAgUmVmPE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVy
RWxlbWVudD4gY2xvc2VkQ2FwdGlvbnNDb250YWluZXIgPSBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0
aW9uc0NvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAKLSAgICAgICAgUmVmUHRy
PE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudD4gY2xvc2VkQ2FwdGlv
bnNUcmFja0xpc3QgPSBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ6
OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOwotICAgICAgICBjb250cm9scy0+bV9j
bG9zZWRDYXB0aW9uc1RyYWNrTGlzdCA9IGNsb3NlZENhcHRpb25zVHJhY2tMaXN0LmdldCgpOwot
ICAgICAgICBjbG9zZWRDYXB0aW9uc0NvbnRhaW5lci0+YXBwZW5kQ2hpbGQoY2xvc2VkQ2FwdGlv
bnNUcmFja0xpc3QucmVsZWFzZSgpLCBlYyk7CisgICAgICAgIFJlZjxNZWRpYUNvbnRyb2xDbG9z
ZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ+IGNsb3NlZENhcHRpb25zVHJhY2tMaXN0ID0gTWVk
aWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQs
IGNvbnRyb2xzLmdldCgpKTsKKyAgICAgICAgY29udHJvbHMtPm1fY2xvc2VkQ2FwdGlvbnNUcmFj
a0xpc3QgPSBjbG9zZWRDYXB0aW9uc1RyYWNrTGlzdC5wdHIoKTsKKyAgICAgICAgY2xvc2VkQ2Fw
dGlvbnNDb250YWluZXItPmFwcGVuZENoaWxkKFdURjo6bW92ZShjbG9zZWRDYXB0aW9uc1RyYWNr
TGlzdCksIGVjKTsKICAgICAgICAgaWYgKGVjKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAg
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICBSZWZQdHI8TWVkaWFDb250cm9sVG9n
Z2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50PiB0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRv
biA9IE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50LCBjb250cm9scy5nZXQoKSk7Ci0gICAgICAgIGNvbnRyb2xzLT5tX3RvZ2dsZUNs
b3NlZENhcHRpb25zQnV0dG9uID0gdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24uZ2V0KCk7Ci0g
ICAgICAgIHBhbmVsLT5hcHBlbmRDaGlsZCh0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbi5yZWxl
YXNlKCksIGVjKTsKKyAgICAgICAgUmVmPE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25z
QnV0dG9uRWxlbWVudD4gdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24gPSBNZWRpYUNvbnRyb2xU
b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJv
bHMuZ2V0KCkpOworICAgICAgICBjb250cm9scy0+bV90b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRv
biA9IHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uLnB0cigpOworICAgICAgICBwYW5lbC0+YXBw
ZW5kQ2hpbGQoV1RGOjptb3ZlKHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uKSwgZWMpOwogICAg
ICAgICBpZiAoZWMpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCi0gICAgICAgIGNvbnRyb2xzLT5tX2Nsb3NlZENhcHRpb25zQ29udGFpbmVyID0g
Y2xvc2VkQ2FwdGlvbnNDb250YWluZXIuZ2V0KCk7Ci0gICAgICAgIGNvbnRyb2xzLT5hcHBlbmRD
aGlsZChjbG9zZWRDYXB0aW9uc0NvbnRhaW5lci5yZWxlYXNlKCksIGVjKTsKKyAgICAgICAgY29u
dHJvbHMtPm1fY2xvc2VkQ2FwdGlvbnNDb250YWluZXIgPSBjbG9zZWRDYXB0aW9uc0NvbnRhaW5l
ci5wdHIoKTsKKyAgICAgICAgY29udHJvbHMtPmFwcGVuZENoaWxkKFdURjo6bW92ZShjbG9zZWRD
YXB0aW9uc0NvbnRhaW5lciksIGVjKTsKICAgICAgICAgaWYgKGVjKQotICAgICAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICAvLyBGSVhN
RTogT25seSBjcmVhdGUgd2hlbiBuZWVkZWQgPGh0dHA6Ly93ZWJraXQub3JnL2IvNTcxNjM+Ci0g
ICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50PiBmdWxsU2NyZWVu
QnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCk7Ci0gICAgY29udHJvbHMtPm1fZnVsbFNjcmVlbkJ1dHRvbiA9IGZ1bGxTY3JlZW5CdXR0
b24uZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKGZ1bGxTY3JlZW5CdXR0b24ucmVsZWFz
ZSgpLCBlYyk7CisgICAgUmVmPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50PiBm
dWxsU2NyZWVuQnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCk7CisgICAgY29udHJvbHMtPm1fZnVsbFNjcmVlbkJ1dHRvbiA9IGZ1bGxT
Y3JlZW5CdXR0b24ucHRyKCk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdURjo6bW92ZShmdWxs
U2NyZWVuQnV0dG9uKSwgZWMpOwogCiAgICAgLy8gVGhlIG11dGUgYnV0dG9uIGFuZCB0aGUgc2xp
ZGVyIGVsZW1lbnQgc2hvdWxkIGJlIGluIHRoZSBzYW1lIGRpdi4KLSAgICBSZWZQdHI8SFRNTERp
dkVsZW1lbnQ+IHBhbmVsVm9sdW1lQ29udHJvbENvbnRhaW5lciA9IEhUTUxEaXZFbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQpOworICAgIFJlZjxIVE1MRGl2RWxlbWVudD4gcGFuZWxWb2x1bWVDb250
cm9sQ29udGFpbmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAKICAgICBp
ZiAoZG9jdW1lbnQucGFnZSgpLT50aGVtZSgpLnVzZXNNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXIo
KSkgewotICAgICAgICBSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxl
bWVudD4gdm9sdW1lU2xpZGVyQ29udGFpbmVyID0gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29u
dGFpbmVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICAgICAgUmVmPE1lZGlhQ29udHJv
bFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ+IHZvbHVtZVNsaWRlckNvbnRhaW5lciA9IE1l
ZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7
CiAKLSAgICAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xpZGVyRWxlbWVudD4g
c2xpZGVyID0gTWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQpOwotICAgICAgICBjb250cm9scy0+bV92b2x1bWVTbGlkZXIgPSBzbGlkZXIuZ2V0KCk7
Ci0gICAgICAgIHZvbHVtZVNsaWRlckNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoc2xpZGVyLnJlbGVh
c2UoKSwgZWMpOworICAgICAgICBSZWY8TWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVt
ZW50PiBzbGlkZXIgPSBNZWRpYUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCk7CisgICAgICAgIGNvbnRyb2xzLT5tX3ZvbHVtZVNsaWRlciA9IHNsaWRlci5w
dHIoKTsKKyAgICAgICAgdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5hcHBlbmRDaGlsZChXVEY6Om1v
dmUoc2xpZGVyKSwgZWMpOwogICAgICAgICBpZiAoZWMpCi0gICAgICAgICAgICByZXR1cm4gMDsK
KyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgICAgIC8vIFRoaXMgaXMgYSBkdXBs
aWNhdGUgbXV0ZSBidXR0b24sIHdoaWNoIGlzIHZpc2libGUgaW4gc29tZSBwb3J0cyBhdCB0aGUg
Ym90dG9tIG9mIHRoZSB2b2x1bWUgYmFyLgogICAgICAgICAvLyBJdCdzIGltcG9ydGFudCBvbmx5
IHdoZW4gdGhlIHZvbHVtZSBiYXIgaXMgZGlzcGxheWVkIGJlbG93IHRoZSBjb250cm9scy4KLSAg
ICAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50PiB2
b2x1bWVTbGlkZXJNdXRlQnV0dG9uID0gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRv
bkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgICAgIGNvbnRyb2xzLT5tX3ZvbHVtZVNs
aWRlck11dGVCdXR0b24gPSB2b2x1bWVTbGlkZXJNdXRlQnV0dG9uLmdldCgpOwotICAgICAgICB2
b2x1bWVTbGlkZXJDb250YWluZXItPmFwcGVuZENoaWxkKHZvbHVtZVNsaWRlck11dGVCdXR0b24u
cmVsZWFzZSgpLCBlYyk7CisgICAgICAgIFJlZjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRl
QnV0dG9uRWxlbWVudD4gdm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbiA9IE1lZGlhQ29udHJvbFZvbHVt
ZVNsaWRlck11dGVCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgICAgICBjb250
cm9scy0+bV92b2x1bWVTbGlkZXJNdXRlQnV0dG9uID0gdm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbi5w
dHIoKTsKKyAgICAgICAgdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5hcHBlbmRDaGlsZChXVEY6Om1v
dmUodm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbiksIGVjKTsKIAogICAgICAgICBpZiAoZWMpCi0gICAg
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgICAg
IGNvbnRyb2xzLT5tX3ZvbHVtZVNsaWRlckNvbnRhaW5lciA9IHZvbHVtZVNsaWRlckNvbnRhaW5l
ci5nZXQoKTsKLSAgICAgICAgcGFuZWxWb2x1bWVDb250cm9sQ29udGFpbmVyLT5hcHBlbmRDaGls
ZCh2b2x1bWVTbGlkZXJDb250YWluZXIucmVsZWFzZSgpLCBlYyk7CisgICAgICAgIGNvbnRyb2xz
LT5tX3ZvbHVtZVNsaWRlckNvbnRhaW5lciA9IHZvbHVtZVNsaWRlckNvbnRhaW5lci5wdHIoKTsK
KyAgICAgICAgcGFuZWxWb2x1bWVDb250cm9sQ29udGFpbmVyLT5hcHBlbmRDaGlsZChXVEY6Om1v
dmUodm9sdW1lU2xpZGVyQ29udGFpbmVyKSwgZWMpOwogICAgICAgICBpZiAoZWMpCi0gICAgICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAg
IFJlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50PiBwYW5lbE11dGVCdXR0
b24gPSBNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQs
IGNvbnRyb2xzLmdldCgpKTsKLSAgICBjb250cm9scy0+bV9wYW5lbE11dGVCdXR0b24gPSBwYW5l
bE11dGVCdXR0b24uZ2V0KCk7Ci0gICAgcGFuZWxWb2x1bWVDb250cm9sQ29udGFpbmVyLT5hcHBl
bmRDaGlsZChwYW5lbE11dGVCdXR0b24ucmVsZWFzZSgpLCBlYyk7CisgICAgUmVmPE1lZGlhQ29u
dHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ+IHBhbmVsTXV0ZUJ1dHRvbiA9IE1lZGlhQ29udHJv
bFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkp
OworICAgIGNvbnRyb2xzLT5tX3BhbmVsTXV0ZUJ1dHRvbiA9IHBhbmVsTXV0ZUJ1dHRvbi5wdHIo
KTsKKyAgICBwYW5lbFZvbHVtZUNvbnRyb2xDb250YWluZXItPmFwcGVuZENoaWxkKFdURjo6bW92
ZShwYW5lbE11dGVCdXR0b24pLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQocGFuZWxW
b2x1bWVDb250cm9sQ29udGFpbmVyLCBlYyk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdURjo6
bW92ZShwYW5lbFZvbHVtZUNvbnRyb2xDb250YWluZXIpLCBlYyk7CiAgICAgaWYgKGVjKQotICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBGSVhNRTog
T25seSBjcmVhdGUgd2hlbiBuZWVkZWQgPGh0dHA6Ly93ZWJraXQub3JnL2IvNTcxNjM+Ci0gICAg
UmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50PiBmdWxs
U2NyZWVuTWluVm9sdW1lQnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1
dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJvbHMtPm1fZnVsbFNjcmVl
bk1pblZvbHVtZUJ1dHRvbiA9IGZ1bGxTY3JlZW5NaW5Wb2x1bWVCdXR0b24uZ2V0KCk7Ci0gICAg
cGFuZWwtPmFwcGVuZENoaWxkKGZ1bGxTY3JlZW5NaW5Wb2x1bWVCdXR0b24ucmVsZWFzZSgpLCBl
Yyk7CisgICAgUmVmPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50
PiBmdWxsU2NyZWVuTWluVm9sdW1lQnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVt
ZU1pbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgY29udHJvbHMtPm1fZnVs
bFNjcmVlbk1pblZvbHVtZUJ1dHRvbiA9IGZ1bGxTY3JlZW5NaW5Wb2x1bWVCdXR0b24ucHRyKCk7
CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdURjo6bW92ZShmdWxsU2NyZWVuTWluVm9sdW1lQnV0
dG9uKSwgZWMpOwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVy
biBudWxscHRyOwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlk
ZXJFbGVtZW50PiBmdWxsU2NyZWVuVm9sdW1lU2xpZGVyID0gTWVkaWFDb250cm9sRnVsbHNjcmVl
blZvbHVtZVNsaWRlckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJvbHMtPm1f
ZnVsbFNjcmVlblZvbHVtZVNsaWRlciA9IGZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXIuZ2V0KCk7Ci0g
ICAgcGFuZWwtPmFwcGVuZENoaWxkKGZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXIucmVsZWFzZSgpLCBl
Yyk7CisgICAgUmVmPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50PiBm
dWxsU2NyZWVuVm9sdW1lU2xpZGVyID0gTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRl
ckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgY29udHJvbHMtPm1fZnVsbFNjcmVlblZv
bHVtZVNsaWRlciA9IGZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXIucHRyKCk7CisgICAgcGFuZWwtPmFw
cGVuZENoaWxkKFdURjo6bW92ZShmdWxsU2NyZWVuVm9sdW1lU2xpZGVyKSwgZWMpOwogICAgIGlm
IChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAg
UmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50PiBmdWxs
U2NyZWVuTWF4Vm9sdW1lQnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1
dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJvbHMtPm1fZnVsbFNjcmVl
bk1heFZvbHVtZUJ1dHRvbiA9IGZ1bGxTY3JlZW5NYXhWb2x1bWVCdXR0b24uZ2V0KCk7Ci0gICAg
cGFuZWwtPmFwcGVuZENoaWxkKGZ1bGxTY3JlZW5NYXhWb2x1bWVCdXR0b24ucmVsZWFzZSgpLCBl
Yyk7CisgICAgUmVmPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50
PiBmdWxsU2NyZWVuTWF4Vm9sdW1lQnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVt
ZU1heEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgY29udHJvbHMtPm1fZnVs
bFNjcmVlbk1heFZvbHVtZUJ1dHRvbiA9IGZ1bGxTY3JlZW5NYXhWb2x1bWVCdXR0b24ucHRyKCk7
CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdURjo6bW92ZShmdWxsU2NyZWVuTWF4Vm9sdW1lQnV0
dG9uKSwgZWMpOwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVy
biBudWxscHRyOwogCi0gICAgY29udHJvbHMtPm1fcGFuZWwgPSBwYW5lbC5nZXQoKTsKLSAgICBj
b250cm9scy0+YXBwZW5kQ2hpbGQocGFuZWwucmVsZWFzZSgpLCBlYyk7CisgICAgY29udHJvbHMt
Pm1fcGFuZWwgPSBwYW5lbC5wdHIoKTsKKyAgICBjb250cm9scy0+YXBwZW5kQ2hpbGQoV1RGOjpt
b3ZlKHBhbmVsKSwgZWMpOwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAg
IHJldHVybiBudWxscHRyOwogCiAgICAgcmV0dXJuIGNvbnRyb2xzLnJlbGVhc2UoKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCmlu
ZGV4IDBhMWJiODNmYjE5Yzc1NTZkYWNkMTZjZmRkYzc4Njk4NGJkNTE3ODMuLjlkZGQ1NTJiZDhj
ZWU5NmM2MWZlYWI4MWZlM2Q0NmI2ZTAwZGU5YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcApAQCAtNjExLDcgKzYxMSw3IEBAIGNv
bnN0IEF0b21pY1N0cmluZyYgU2xpZGVyVGh1bWJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNv
bnN0CiAgICAgfQogfQogCi1SZWZQdHI8RWxlbWVudD4gU2xpZGVyVGh1bWJFbGVtZW50OjpjbG9u
ZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50JiB0YXJnZXREb2N1
bWVudCkKK1JlZjxFbGVtZW50PiBTbGlkZXJUaHVtYkVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhv
dXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50KQogewogICAg
IHJldHVybiBjcmVhdGUodGFyZ2V0RG9jdW1lbnQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaAppbmRleCA0OGVjZDU1MjZkMGIwYTU3ODE2
MGY3MmQ4MjYyYjJmMTdiZmU2YWI4Li5jZjJmODVhN2VkZGY3OTRlNzg1ZGY3NmJhYzA5ZjkzODY1
NWZkMjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVt
YkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVs
ZW1lbnQuaApAQCAtNjIsNyArNjIsNyBAQCBwcml2YXRlOgogICAgIFNsaWRlclRodW1iRWxlbWVu
dChEb2N1bWVudCYpOwogCiAgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29uc3QgUmVuZGVyVHJlZVBv
c2l0aW9uJikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVt
ZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgUmVmPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hp
bGRyZW4oRG9jdW1lbnQmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNEaXNhYmxlZEZv
cm1Db250cm9sKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIG1hdGNoZXNSZWFk
V3JpdGVQc2V1ZG9DbGFzcygpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgRWxlbWVudCog
Zm9jdXNEZWxlZ2F0ZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcAppbmRl
eCBhNDRhNWRlMDY5MmExNmIzYjQ5ZGI4NzQxMTk1YmFhYWRlN2Y1OTZjLi5jNDRjNTE4ODJjYjgx
ODc4NjFiNjZiNTZjZmM1YTljMjI4ZTJhZWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNw
cApAQCAtODUsMTIgKzg1LDEzIEBAIFJlZlB0cjxJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQ+IElt
YWdlQ29udHJvbHNSb290RWxlbWVudDo6bWF5YmVDcmVhdGUoRG9jdW1lbnQmCiAgICAgaWYgKCFk
b2N1bWVudC5wYWdlKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgUmVmUHRyPElt
YWdlQ29udHJvbHNSb290RWxlbWVudE1hYz4gY29udHJvbHMgPSBhZG9wdFJlZigqbmV3IEltYWdl
Q29udHJvbHNSb290RWxlbWVudE1hYyhkb2N1bWVudCkpOworICAgIFJlZjxJbWFnZUNvbnRyb2xz
Um9vdEVsZW1lbnRNYWM+IGNvbnRyb2xzID0gYWRvcHRSZWYoKm5ldyBJbWFnZUNvbnRyb2xzUm9v
dEVsZW1lbnRNYWMoZG9jdW1lbnQpKTsKICAgICBjb250cm9scy0+c2V0QXR0cmlidXRlKEhUTUxO
YW1lczo6Y2xhc3NBdHRyLCAieC13ZWJraXQtaW1hZ2UtY29udHJvbHMiKTsKIAotICAgIGNvbnRy
b2xzLT5hcHBlbmRDaGlsZChJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYzo6bWF5YmVDcmVh
dGUoZG9jdW1lbnQpKTsKKyAgICBpZiAoUmVmUHRyPEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50
TWFjPiBidXR0b24gPSBJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYzo6bWF5YmVDcmVhdGUo
ZG9jdW1lbnQpKQorICAgICAgICBjb250cm9scy0+YXBwZW5kQ2hpbGQoYnV0dG9uLnJlbGVhc2VO
b25OdWxsKCkpOwogCi0gICAgcmV0dXJuIGNvbnRyb2xzLnJlbGVhc2UoKTsKKyAgICByZXR1cm4g
V1RGOjptb3ZlKGNvbnRyb2xzKTsKIH0KIAogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjOjpJ
bWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMoRG9jdW1lbnQmIGRvY3VtZW50KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9WVFRDdWUuY3BwCmluZGV4IGE5NjkwZDZmOTk2MTlmMzcwOWE2YjhhMjVkNmJm
ZTMxNTM1MGFhZWQuLjlkNmNhNzJkYThkODE1Yjc3ZjA1OThmOGQ5ZjIzMTIzOWI5ZjU2OTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAKQEAgLTQ5Niw3ICs0OTYsNyBAQCB2b2lk
IFZUVEN1ZTo6Y29weVdlYlZUVE5vZGVUb0RPTVRyZWUoQ29udGFpbmVyTm9kZSogd2ViVlRUTm9k
ZSwgQ29udGFpbmVyTm9kZSogcAogICAgICAgICAgICAgY2xvbmVkTm9kZSA9IGRvd25jYXN0PFdl
YlZUVEVsZW1lbnQ+KCpub2RlKS5jcmVhdGVFcXVpdmFsZW50SFRNTEVsZW1lbnQob3duZXJEb2N1
bWVudCgpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgY2xvbmVkTm9kZSA9IG5vZGUtPmNs
b25lTm9kZShmYWxzZSk7Ci0gICAgICAgIHBhcmVudC0+YXBwZW5kQ2hpbGQoY2xvbmVkTm9kZSwg
QVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAgIHBhcmVudC0+YXBwZW5kQ2hpbGQoKmNsb25l
ZE5vZGUsIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgICAgICBpZiAoaXM8Q29udGFpbmVyTm9k
ZT4oKm5vZGUpKQogICAgICAgICAgICAgY29weVdlYlZUVE5vZGVUb0RPTVRyZWUoZG93bmNhc3Q8
Q29udGFpbmVyTm9kZT4obm9kZSksIGRvd25jYXN0PENvbnRhaW5lck5vZGU+KGNsb25lZE5vZGUu
Z2V0KCkpKTsKICAgICB9CkBAIC01MTgsMTAgKzUxOCwxMCBAQCBQYXNzUmVmUHRyPERvY3VtZW50
RnJhZ21lbnQ+IFZUVEN1ZTo6Y3JlYXRlQ3VlUmVuZGVyaW5nVHJlZSgpCiAgICAgUmVmUHRyPERv
Y3VtZW50RnJhZ21lbnQ+IGNsb25lZEZyYWdtZW50OwogICAgIGNyZWF0ZVdlYlZUVE5vZGVUcmVl
KCk7CiAgICAgaWYgKCFtX3dlYlZUVE5vZGVUcmVlKQotICAgICAgICByZXR1cm4gMDsKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBjbG9uZWRGcmFnbWVudCA9IERvY3VtZW50RnJhZ21l
bnQ6OmNyZWF0ZShvd25lckRvY3VtZW50KCkpOwotICAgIG1fd2ViVlRUTm9kZVRyZWUtPmNsb25l
Q2hpbGROb2RlcyhjbG9uZWRGcmFnbWVudC5nZXQoKSk7CisgICAgbV93ZWJWVFROb2RlVHJlZS0+
Y2xvbmVDaGlsZE5vZGVzKCpjbG9uZWRGcmFnbWVudCk7CiAgICAgcmV0dXJuIGNsb25lZEZyYWdt
ZW50LnJlbGVhc2UoKTsKIH0KIApAQCAtNzg1LDcgKzc4NSw3IEBAIHZvaWQgVlRUQ3VlOjp1cGRh
dGVEaXNwbGF5VHJlZShjb25zdCBNZWRpYVRpbWUmIG1vdmllVGltZSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgbWFya0Z1dHVyZUFuZFBhc3ROb2RlcyhyZWZlcmVuY2VUcmVlLmdldCgpLCBzdGFy
dE1lZGlhVGltZSgpLCBtb3ZpZVRpbWUpOwotICAgIG1fY3VlSGlnaGxpZ2h0Qm94LT5hcHBlbmRD
aGlsZChyZWZlcmVuY2VUcmVlKTsKKyAgICBtX2N1ZUhpZ2hsaWdodEJveC0+YXBwZW5kQ2hpbGQo
cmVmZXJlbmNlVHJlZS5yZWxlYXNlTm9uTnVsbCgpKTsKIH0KIAogVlRUQ3VlQm94KiBWVFRDdWU6
OmdldERpc3BsYXlUcmVlKGNvbnN0IEludFNpemUmIHZpZGVvU2l6ZSwgaW50IGZvbnRTaXplKQpA
QCAtODEyLDggKzgxMiw4IEBAIFZUVEN1ZUJveCogVlRUQ3VlOjpnZXREaXNwbGF5VHJlZShjb25z
dCBJbnRTaXplJiB2aWRlb1NpemUsIGludCBmb250U2l6ZSkKICAgICBtX2N1ZUhpZ2hsaWdodEJv
eC0+c2V0UHNldWRvKGN1ZVNoYWRvd1BzZXVkb0lkKCkpOwogCiAgICAgbV9jdWVCYWNrZHJvcEJv
eC0+c2V0UHNldWRvKGN1ZUJhY2tkcm9wU2hhZG93UHNldWRvSWQoKSk7Ci0gICAgbV9jdWVCYWNr
ZHJvcEJveC0+YXBwZW5kQ2hpbGQobV9jdWVIaWdobGlnaHRCb3gsIEFTU0VSVF9OT19FWENFUFRJ
T04pOwotICAgIGRpc3BsYXlUcmVlLT5hcHBlbmRDaGlsZChtX2N1ZUJhY2tkcm9wQm94LCBBU1NF
UlRfTk9fRVhDRVBUSU9OKTsKKyAgICBtX2N1ZUJhY2tkcm9wQm94LT5hcHBlbmRDaGlsZCgqbV9j
dWVIaWdobGlnaHRCb3gsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIGRpc3BsYXlUcmVlLT5h
cHBlbmRDaGlsZCgqbV9jdWVCYWNrZHJvcEJveCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKICAg
ICAvLyBGSVhNRShCVUcgNzk5MTYpOiBSdW5zIG9mIGNoaWxkcmVuIG9mIFdlYlZUVCBSdWJ5IE9i
amVjdHMgdGhhdCBhcmUgbm90CiAgICAgLy8gV2ViVlRUIFJ1YnkgVGV4dCBPYmplY3RzIG11c3Qg
YmUgd3JhcHBlZCBpbiBhbm9ueW1vdXMgYm94ZXMgd2hvc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svVlRUUmVnaW9uLmNwcAppbmRleCBjY2IzMmUwMzlkNWM1M2FmZWVjMDUwMmI2NWUwMGFjMWU2
ZmZkZWYzLi44NTc5ODY4ZTk4MWZmYmYyOTE2NjJiNjU0ZDUzZWI5YWRmYmRiYjUwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24uY3BwCkBAIC0zNTQsNyArMzU0LDcgQEAgdm9p
ZCBWVFRSZWdpb246OmFwcGVuZFRleHRUcmFja0N1ZUJveChQYXNzUmVmUHRyPFZUVEN1ZUJveD4g
ZGlzcGxheUJveCkKICAgICBpZiAobV9jdWVDb250YWluZXItPmNvbnRhaW5zKGRpc3BsYXlCb3gu
Z2V0KCkpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2N1ZUNvbnRhaW5lci0+YXBwZW5kQ2hp
bGQoZGlzcGxheUJveCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgbV9jdWVDb250YWluZXIt
PmFwcGVuZENoaWxkKCpkaXNwbGF5Qm94LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICBkaXNw
bGF5TGFzdFRleHRUcmFja0N1ZUJveCgpOwogfQogCkBAIC00MDQsMTQgKzQwNCwxNCBAQCB2b2lk
IFZUVFJlZ2lvbjo6d2lsbFJlbW92ZVRleHRUcmFja0N1ZUJveChWVFRDdWVCb3gqIGJveCkKICAg
ICBtX2N1ZUNvbnRhaW5lci0+c2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eVRvcCwg
bV9jdXJyZW50VG9wLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BYKTsKIH0KIAotUGFzc1JlZlB0
cjxIVE1MRGl2RWxlbWVudD4gVlRUUmVnaW9uOjpnZXREaXNwbGF5VHJlZSgpCitIVE1MRGl2RWxl
bWVudCYgVlRUUmVnaW9uOjpnZXREaXNwbGF5VHJlZSgpCiB7CiAgICAgaWYgKCFtX3JlZ2lvbkRp
c3BsYXlUcmVlKSB7CiAgICAgICAgIG1fcmVnaW9uRGlzcGxheVRyZWUgPSBIVE1MRGl2RWxlbWVu
dDo6Y3JlYXRlKCpvd25lckRvY3VtZW50KCkpOwogICAgICAgICBwcmVwYXJlUmVnaW9uRGlzcGxh
eVRyZWUoKTsKICAgICB9CiAKLSAgICByZXR1cm4gbV9yZWdpb25EaXNwbGF5VHJlZTsKKyAgICBy
ZXR1cm4gKm1fcmVnaW9uRGlzcGxheVRyZWU7CiB9CiAKIHZvaWQgVlRUUmVnaW9uOjpwcmVwYXJl
UmVnaW9uRGlzcGxheVRyZWUoKQpAQCAtNDUzLDcgKzQ1Myw3IEBAIHZvaWQgVlRUUmVnaW9uOjpw
cmVwYXJlUmVnaW9uRGlzcGxheVRyZWUoKQogICAgIG1fY3VlQ29udGFpbmVyLT5zZXRJbmxpbmVT
dHlsZVByb3BlcnR5KENTU1Byb3BlcnR5VG9wLCAwLjBmLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X1BYKTsKIAogICAgIG1fY3VlQ29udGFpbmVyLT5zZXRQc2V1ZG8odGV4dFRyYWNrQ3VlQ29udGFp
bmVyU2hhZG93UHNldWRvSWQoKSk7Ci0gICAgbV9yZWdpb25EaXNwbGF5VHJlZS0+YXBwZW5kQ2hp
bGQobV9jdWVDb250YWluZXIpOworICAgIG1fcmVnaW9uRGlzcGxheVRyZWUtPmFwcGVuZENoaWxk
KCptX2N1ZUNvbnRhaW5lcik7CiAKICAgICAvLyA3LjUgRXZlcnkgV2ViVlRUIHJlZ2lvbiBvYmpl
Y3QgaXMgaW5pdGlhbGlzZWQgd2l0aCB0aGUgZm9sbG93aW5nIENTUwogICAgIG1fcmVnaW9uRGlz
cGxheVRyZWUtPnNldFBzZXVkbyh0ZXh0VHJhY2tSZWdpb25TaGFkb3dQc2V1ZG9JZCgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5oCmluZGV4IDc3NzFlOGViMDA4NTdiZjQzMmMx
Y2Q1NGI0ODYxNzczNmQwNGU2NWQuLjg5MjVhZjFiYzM3MjA1ZWIwN2E1YTdiOGU4Y2Y2OTcyMTgw
Y2EwNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24uaApAQCAtODksNyArODks
NyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzU2Nyb2xsaW5nUmVnaW9uKCkgeyByZXR1cm4gbV9z
Y3JvbGw7IH0KIAotICAgIFBhc3NSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IGdldERpc3BsYXlUcmVl
KCk7CisgICAgSFRNTERpdkVsZW1lbnQmIGdldERpc3BsYXlUcmVlKCk7CiAgICAgCiAgICAgdm9p
ZCBhcHBlbmRUZXh0VHJhY2tDdWVCb3goUGFzc1JlZlB0cjxWVFRDdWVCb3g+KTsKICAgICB2b2lk
IGRpc3BsYXlMYXN0VGV4dFRyYWNrQ3VlQm94KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9XZWJWVFRFbGVtZW50LmNwcAppbmRleCA0YTJmMzFiM2U1NjM0ZjMxMDJmZjU0ZWJmMGZhMGQ5
NjZhOTU3YTBlLi4xNDk2YmIwM2E2YTUwMGY1Yjc5NjE0MGQ1OTBjM2Q5NWZlZmIyMjBjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5jcHAKQEAgLTgwLDExICs4
MCwxMSBAQCBSZWY8V2ViVlRURWxlbWVudD4gV2ViVlRURWxlbWVudDo6Y3JlYXRlKFdlYlZUVE5v
ZGVUeXBlIG5vZGVUeXBlLCBEb2N1bWVudCYgZG9jdQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFdlYlZUVEVsZW1lbnQobm9kZVR5cGUsIGRvY3VtZW50KSk7CiB9CiAKLVJlZlB0cjxFbGVtZW50
PiBXZWJWVFRFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVu
KERvY3VtZW50JiB0YXJnZXREb2N1bWVudCkKK1JlZjxFbGVtZW50PiBXZWJWVFRFbGVtZW50Ojpj
bG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50JiB0YXJnZXRE
b2N1bWVudCkKIHsKLSAgICBSZWZQdHI8V2ViVlRURWxlbWVudD4gY2xvbmUgPSBjcmVhdGUoc3Rh
dGljX2Nhc3Q8V2ViVlRUTm9kZVR5cGU+KG1fd2ViVlRUTm9kZVR5cGUpLCB0YXJnZXREb2N1bWVu
dCk7CisgICAgUmVmPFdlYlZUVEVsZW1lbnQ+IGNsb25lID0gY3JlYXRlKHN0YXRpY19jYXN0PFdl
YlZUVE5vZGVUeXBlPihtX3dlYlZUVE5vZGVUeXBlKSwgdGFyZ2V0RG9jdW1lbnQpOwogICAgIGNs
b25lLT5zZXRMYW5ndWFnZShtX2xhbmd1YWdlKTsKLSAgICByZXR1cm4gY2xvbmU7CisgICAgcmV0
dXJuIFdURjo6bW92ZShjbG9uZSk7CiB9CiAKIFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IFdlYlZU
VEVsZW1lbnQ6OmNyZWF0ZUVxdWl2YWxlbnRIVE1MRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5oCmluZGV4IDFiZTc2MzZj
MzY2M2Q4NThiZDc2MzZhZWNjYzE5YjcwNmRmYzZiOGMuLjg5ZDNkMmM1NGRiYzZiOWU1MjA2MmZm
NGYyYWNmNzQ5OGI5ZmM3YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
V2ViVlRURWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRURWxl
bWVudC5oCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYlZUVEVs
ZW1lbnQ+IGNyZWF0ZShjb25zdCBXZWJWVFROb2RlVHlwZSwgRG9jdW1lbnQmKTsKICAgICBQYXNz
UmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVFcXVpdmFsZW50SFRNTEVsZW1lbnQoRG9jdW1lbnQm
KTsKIAotICAgIHZpcnR1YWwgUmVmUHRyPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRy
aWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxF
bGVtZW50PiBjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50
Jikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHNldFdlYlZUVE5vZGVUeXBlKFdlYlZUVE5vZGVUeXBl
IHR5cGUpIHsgbV93ZWJWVFROb2RlVHlwZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPih0eXBlKTsg
fQogICAgIFdlYlZUVE5vZGVUeXBlIHdlYlZUVE5vZGVUeXBlKCkgY29uc3QgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8V2ViVlRUTm9kZVR5cGU+KG1fd2ViVlRUTm9kZVR5cGUpOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcAppbmRleCBiNmEzMTEzZWY3
ZDY3OTk0MDVlYWEzMTQzMDYzZjhiYmFkZWEwMmI1Li44NTdhZDE5MTc2NzU2N2E1YmExNzViNjlj
Y2FmMjE0ZjQ2MDYyYmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ1NTQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDU1NBZ2VudC5jcHAKQEAgLTc5Niw3ICs3OTYsNyBAQCBJbnNwZWN0b3JTdHlsZVNoZWV0KiBJ
bnNwZWN0b3JDU1NBZ2VudDo6Y3JlYXRlSW5zcGVjdG9yU3R5bGVTaGVldEZvckRvY3VtZW50KERv
YwogICAgIC8vIFNldCB0aGlzIGZsYWcsIHNvIHdoZW4gd2UgY3JlYXRlIGl0LCB3ZSBwdXQgaXQg
aW50byB0aGUgdmlhIGluc3BlY3RvciBtYXAuCiAgICAgbV9jcmVhdGluZ1ZpYUluc3BlY3RvclN0
eWxlU2hlZXQgPSB0cnVlOwogICAgIElubGluZVN0eWxlT3ZlcnJpZGVTY29wZSBvdmVycmlkZVNj
b3BlKGRvY3VtZW50KTsKLSAgICB0YXJnZXROb2RlLT5hcHBlbmRDaGlsZChzdHlsZUVsZW1lbnQs
IGVjKTsKKyAgICB0YXJnZXROb2RlLT5hcHBlbmRDaGlsZChzdHlsZUVsZW1lbnQucmVsZWFzZU5v
bk51bGwoKSwgZWMpOwogICAgIG1fY3JlYXRpbmdWaWFJbnNwZWN0b3JTdHlsZVNoZWV0ID0gZmFs
c2U7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXggY2ViNGFhMWE1MTZmNDdkNTY5ODAxYjU2NjBkNzlm
M2U2OTMyN2MyZi4uYzRkOTYzZWE4NmY0YThmNmE0NjMxYWVlMDQ3YzA3ODZkOGY5ZTI0NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTEzOCw3ICsxMzgsNyBAQCBz
dGF0aWMgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBkb2N1bWVudEZyYWdtZW50RnJvbURy
YWdEYXRhKERyYWdEYXRhJiBkcmFnRAogICAgICAgICAgICAgU3RyaW5nIHRpdGxlOwogICAgICAg
ICAgICAgU3RyaW5nIHVybCA9IGRyYWdEYXRhLmFzVVJMKERyYWdEYXRhOjpEb05vdENvbnZlcnRG
aWxlbmFtZXMsICZ0aXRsZSk7CiAgICAgICAgICAgICBpZiAoIXVybC5pc0VtcHR5KCkpIHsKLSAg
ICAgICAgICAgICAgICBSZWZQdHI8SFRNTEFuY2hvckVsZW1lbnQ+IGFuY2hvciA9IEhUTUxBbmNo
b3JFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgICAgICAgICAgICAgIFJlZjxIVE1MQW5j
aG9yRWxlbWVudD4gYW5jaG9yID0gSFRNTEFuY2hvckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7
CiAgICAgICAgICAgICAgICAgYW5jaG9yLT5zZXRIcmVmKHVybCk7CiAgICAgICAgICAgICAgICAg
aWYgKHRpdGxlLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgICAgICAgICAvLyBUcnkgdGhlIHBs
YWluIHRleHQgZmlyc3QgYmVjYXVzZSB0aGUgdXJsIG1pZ2h0IGJlIG5vcm1hbGl6ZWQgb3IgZXNj
YXBlZC4KQEAgLTE0NywyMCArMTQ3LDE5IEBAIHN0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+IGRvY3VtZW50RnJhZ21lbnRGcm9tRHJhZ0RhdGEoRHJhZ0RhdGEmIGRyYWdECiAgICAg
ICAgICAgICAgICAgICAgIGlmICh0aXRsZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAgICAg
ICAgICB0aXRsZSA9IHVybDsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgUmVm
UHRyPE5vZGU+IGFuY2hvclRleHQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0aXRsZSk7Ci0g
ICAgICAgICAgICAgICAgYW5jaG9yLT5hcHBlbmRDaGlsZChhbmNob3JUZXh0LCBJR05PUkVfRVhD
RVBUSU9OKTsKLSAgICAgICAgICAgICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21l
bnQgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAgICAgICAgICAgICAg
ZnJhZ21lbnQtPmFwcGVuZENoaWxkKGFuY2hvciwgSUdOT1JFX0VYQ0VQVElPTik7Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIGZyYWdtZW50LmdldCgpOworICAgICAgICAgICAgICAgIGFuY2hvci0+
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGl0bGUpLCBJR05PUkVfRVhDRVBU
SU9OKTsKKyAgICAgICAgICAgICAgICBSZWY8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBk
b2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7CisgICAgICAgICAgICAgICAgZnJhZ21l
bnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShhbmNob3IpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gZnJhZ21lbnQucHRyKCk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KICAgICB9CiAgICAgaWYgKGFsbG93UGxhaW5UZXh0ICYmIGRyYWdEYXRhLmNvbnRhaW5z
UGxhaW5UZXh0KCkpIHsKICAgICAgICAgY2hvc2VQbGFpblRleHQgPSB0cnVlOwotICAgICAgICBy
ZXR1cm4gY3JlYXRlRnJhZ21lbnRGcm9tVGV4dChjb250ZXh0LCBkcmFnRGF0YS5hc1BsYWluVGV4
dCgpKS5nZXQoKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoY29udGV4
dCwgZHJhZ0RhdGEuYXNQbGFpblRleHQoKSkucHRyKCk7CiAgICAgfQogCi0gICAgcmV0dXJuIDA7
CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OmRyYWdJc01v
dmUoRnJhbWVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgRHJhZ0RhdGEmIGRyYWdEYXRhKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRnJhbWVJT1MubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2lvcy9GcmFtZUlPUy5tbQppbmRleCA0NjY3NGZjYmMwM2Y5ZTcyOWQwYjZkMjMzOTVk
NTU5ZTUwYTdiMDdiLi5hM2U3ZThkYmM5Zjg2Y2EwYjQwZWZmYzkwMTY0MGVkMTU2M2YxYmJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9GcmFtZUlPUy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2lvcy9GcmFtZUlPUy5tbQpAQCAtOTUsOCArOTUsOCBAQCB2b2lkIEZy
YW1lOjppbml0V2l0aFNpbXBsZUhUTUxEb2N1bWVudChjb25zdCBTdHJpbmcmIHN0eWxlLCBjb25z
dCBVUkwmIHVybCkKICAgICBpZiAoIXN0eWxlLmlzRW1wdHkoKSkKICAgICAgICAgYm9keS0+c2V0
QXR0cmlidXRlKEhUTUxOYW1lczo6c3R5bGVBdHRyLCBzdHlsZSk7CiAKLSAgICByb290RWxlbWVu
dC0+YXBwZW5kQ2hpbGQoYm9keSwgZWMpOwotICAgIGRvY3VtZW50LT5hcHBlbmRDaGlsZChyb290
RWxlbWVudCwgZWMpOworICAgIHJvb3RFbGVtZW50LT5hcHBlbmRDaGlsZChib2R5LnJlbGVhc2VO
b25OdWxsKCksIGVjKTsKKyAgICBkb2N1bWVudC0+YXBwZW5kQ2hpbGQocm9vdEVsZW1lbnQucmVs
ZWFzZU5vbk51bGwoKSwgZWMpOwogfQogCiBjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgRnJhbWU6
OnZpZXdwb3J0QXJndW1lbnRzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVt
ZW50LmNwcAppbmRleCA2ZjNjYTgzZTg1MzIyMmRmZDVlODA1MjcyZjBmNWM5NDY0MzRkMjI0Li44
YWRmY2ZhNDEwYWJlNDdlMzMyNGFlNWI4ZDkyNDNmNTY2NjQ1ZDk1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCkBAIC0xNTYsOSArMTU2LDkgQEAgYm9vbCBTVkdTY3Jp
cHRFbGVtZW50OjpoYXNTb3VyY2VBdHRyaWJ1dGUoKSBjb25zdAogICAgIHJldHVybiBoYXNBdHRy
aWJ1dGUoWExpbmtOYW1lczo6aHJlZkF0dHIpOwogfQogCi1SZWZQdHI8RWxlbWVudD4gU1ZHU2Ny
aXB0RWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1
bWVudCYgdGFyZ2V0RG9jdW1lbnQpCitSZWY8RWxlbWVudD4gU1ZHU2NyaXB0RWxlbWVudDo6Y2xv
bmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9j
dW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdTY3JpcHRFbGVtZW50KHRhZ1FO
YW1lKCksIHRhcmdldERvY3VtZW50LCBmYWxzZSwgYWxyZWFkeVN0YXJ0ZWQoKSkpOworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFNWR1NjcmlwdEVsZW1lbnQodGFnUU5hbWUoKSwgdGFyZ2V0RG9j
dW1lbnQsIGZhbHNlLCBhbHJlYWR5U3RhcnRlZCgpKSk7CiB9CiAKICNpZm5kZWYgTkRFQlVHCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaAppbmRleCA0YzFhYTA4ZTZkMmZjOGZmOGRh
OTlmNDI3Y2VjN2Q0ZjJjNjRlMzA1Li41MzVlNDJlNmYwNjQ2ZDgwMTA0MTkwOTNjNjIyOTI0YjM4
M2Q3MTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKQEAgLTY1LDcgKzY1
LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaExvYWRFdmVudCgpIG92
ZXJyaWRlIHsgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6ZGlzcGF0Y2hMb2FkRXZlbnQo
dGhpcyk7IH0KIAotICAgIHZpcnR1YWwgUmVmUHRyPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhv
dXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IFJlZjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERv
Y3VtZW50Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29u
c3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgLy8gU1ZH
RXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1VzZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3Bw
CmluZGV4IDcwNGZlNGEyMjk4MmU5YjQwNDQxNTkxMjE3ZDM3NWQ1NTc0ZDUzNWIuLjY0ZTEwYWE2
MDA0ZjQ3MDA2MWJmMzVhNjI5YTA0ZDg4ODcyYjJkNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNl
RWxlbWVudC5jcHAKQEAgLTMzMiw3ICszMzIsNyBAQCBzdGF0aWMgdm9pZCByZW1vdmVEaXNhbGxv
d2VkRWxlbWVudHNGcm9tU3VidHJlZShTVkdFbGVtZW50JiBzdWJ0cmVlKQogICAgIGZvciAoYXV0
byogZWxlbWVudCA6IGRpc2FsbG93ZWRFbGVtZW50cykgewogICAgICAgICBmb3IgKGF1dG8mIGRl
c2NlbmRhbnQgOiBkZXNjZW5kYW50c09mVHlwZTxTVkdFbGVtZW50PigqZWxlbWVudCkpCiAgICAg
ICAgICAgICBkZXNjZW5kYW50LnNldENvcnJlc3BvbmRpbmdFbGVtZW50KG51bGxwdHIpOwotICAg
ICAgICBlbGVtZW50LT5wYXJlbnROb2RlKCktPnJlbW92ZUNoaWxkKGVsZW1lbnQpOworICAgICAg
ICBlbGVtZW50LT5wYXJlbnROb2RlKCktPnJlbW92ZUNoaWxkKCplbGVtZW50KTsKICAgICB9CiB9
CiAKQEAgLTQwNSw3ICs0MDUsNyBAQCBTVkdFbGVtZW50KiBTVkdVc2VFbGVtZW50OjpmaW5kVGFy
Z2V0KFN0cmluZyogdGFyZ2V0SUQpIGNvbnN0CiAKIHZvaWQgU1ZHVXNlRWxlbWVudDo6Y2xvbmVU
YXJnZXQoQ29udGFpbmVyTm9kZSYgY29udGFpbmVyLCBTVkdFbGVtZW50JiB0YXJnZXQpIGNvbnN0
CiB7Ci0gICAgUmVmPFNWR0VsZW1lbnQ+IHRhcmdldENsb25lID0gc3RhdGljX3BvaW50ZXJfY2Fz
dDxTVkdFbGVtZW50Pih0YXJnZXQuY2xvbmVFbGVtZW50V2l0aENoaWxkcmVuKGRvY3VtZW50KCkp
KS5yZWxlYXNlTm9uTnVsbCgpOworICAgIFJlZjxTVkdFbGVtZW50PiB0YXJnZXRDbG9uZSA9IHN0
YXRpY19jYXN0PFNWR0VsZW1lbnQmPih0YXJnZXQuY2xvbmVFbGVtZW50V2l0aENoaWxkcmVuKGRv
Y3VtZW50KCkpLmdldCgpKTsKICAgICBhc3NvY2lhdGVDbG9uZXNXaXRoT3JpZ2luYWxzKHRhcmdl
dENsb25lLmdldCgpLCB0YXJnZXQpOwogICAgIHJlbW92ZURpc2FsbG93ZWRFbGVtZW50c0Zyb21T
dWJ0cmVlKHRhcmdldENsb25lLmdldCgpKTsKICAgICB0cmFuc2ZlclNpemVBdHRyaWJ1dGVzVG9U
YXJnZXRDbG9uZSh0YXJnZXRDbG9uZS5nZXQoKSk7CkBAIC00MTksNyArNDE5LDcgQEAgc3RhdGlj
IHZvaWQgY2xvbmVEYXRhQW5kQ2hpbGRyZW4oU1ZHRWxlbWVudCYgcmVwbGFjZW1lbnRDbG9uZSwg
U1ZHRWxlbWVudCYgb3JpZ2kKICAgICBBU1NFUlQoIXJlcGxhY2VtZW50Q2xvbmUucGFyZW50Tm9k
ZSgpKTsKIAogICAgIHJlcGxhY2VtZW50Q2xvbmUuY2xvbmVEYXRhRnJvbUVsZW1lbnQob3JpZ2lu
YWxDbG9uZSk7Ci0gICAgb3JpZ2luYWxDbG9uZS5jbG9uZUNoaWxkTm9kZXMoJnJlcGxhY2VtZW50
Q2xvbmUpOworICAgIG9yaWdpbmFsQ2xvbmUuY2xvbmVDaGlsZE5vZGVzKHJlcGxhY2VtZW50Q2xv
bmUpOwogICAgIGFzc29jaWF0ZVJlcGxhY2VtZW50Q2xvbmVzV2l0aE9yaWdpbmFscyhyZXBsYWNl
bWVudENsb25lLCBvcmlnaW5hbENsb25lKTsKICAgICByZW1vdmVEaXNhbGxvd2VkRWxlbWVudHNG
cm9tU3VidHJlZShyZXBsYWNlbWVudENsb25lKTsKIH0KQEAgLTQ0OCw3ICs0NDgsNyBAQCB2b2lk
IFNWR1VzZUVsZW1lbnQ6OmV4cGFuZFVzZUVsZW1lbnRzSW5TaGFkb3dUcmVlKCkgY29uc3QKICAg
ICAgICAgaWYgKHRhcmdldCkKICAgICAgICAgICAgIG9yaWdpbmFsQ2xvbmUuY2xvbmVUYXJnZXQo
cmVwbGFjZW1lbnRDbG9uZS5nZXQoKSwgKnRhcmdldCk7CiAKLSAgICAgICAgb3JpZ2luYWxDbG9u
ZS5wYXJlbnROb2RlKCktPnJlcGxhY2VDaGlsZChyZXBsYWNlbWVudENsb25lLnB0cigpLCAmb3Jp
Z2luYWxDbG9uZSk7CisgICAgICAgIG9yaWdpbmFsQ2xvbmUucGFyZW50Tm9kZSgpLT5yZXBsYWNl
Q2hpbGQocmVwbGFjZW1lbnRDbG9uZS5jb3B5UmVmKCksIG9yaWdpbmFsQ2xvbmUpOwogCiAgICAg
ICAgIC8vIFJlc3VtZSBpdGVyYXRpbmcsIHN0YXJ0aW5nIGp1c3QgaW5zaWRlIHRoZSByZXBsYWNl
bWVudCBjbG9uZS4KICAgICAgICAgaXQgPSBkZXNjZW5kYW50cy5mcm9tKHJlcGxhY2VtZW50Q2xv
bmUuZ2V0KCkpOwpAQCAtNDcyLDcgKzQ3Miw3IEBAIHZvaWQgU1ZHVXNlRWxlbWVudDo6ZXhwYW5k
U3ltYm9sRWxlbWVudHNJblNoYWRvd1RyZWUoKSBjb25zdAogICAgICAgICBhdXRvIHJlcGxhY2Vt
ZW50Q2xvbmUgPSBTVkdTVkdFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CiAgICAgICAgIGNs
b25lRGF0YUFuZENoaWxkcmVuKHJlcGxhY2VtZW50Q2xvbmUuZ2V0KCksIG9yaWdpbmFsQ2xvbmUp
OwogCi0gICAgICAgIG9yaWdpbmFsQ2xvbmUucGFyZW50Tm9kZSgpLT5yZXBsYWNlQ2hpbGQocmVw
bGFjZW1lbnRDbG9uZS5wdHIoKSwgJm9yaWdpbmFsQ2xvbmUpOworICAgICAgICBvcmlnaW5hbENs
b25lLnBhcmVudE5vZGUoKS0+cmVwbGFjZUNoaWxkKHJlcGxhY2VtZW50Q2xvbmUuY29weVJlZigp
LCBvcmlnaW5hbENsb25lKTsKIAogICAgICAgICAvLyBSZXN1bWUgaXRlcmF0aW5nLCBzdGFydGlu
ZyBqdXN0IGluc2lkZSB0aGUgcmVwbGFjZW1lbnQgY2xvbmUuCiAgICAgICAgIGl0ID0gZGVzY2Vu
ZGFudHMuZnJvbShyZXBsYWNlbWVudENsb25lLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxUcmVlVmlld2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxUcmVl
Vmlld2VyLmNwcAppbmRleCA0MDk2ZTQzNWQ2M2Y1NzA4NDQ4MDJjMjE3NzA4YWRkOWViNjA1MTc1
Li5hOWY3N2VhMTYzODQ4Zjg1MGI2MzVjOTJiOTBjYTk0Mjc3MmY4OGFhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS94bWwvWE1MVHJlZVZpZXdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
eG1sL1hNTFRyZWVWaWV3ZXIuY3BwCkBAIC02MSw4ICs2MSw4IEBAIHZvaWQgWE1MVHJlZVZpZXdl
cjo6dHJhbnNmb3JtRG9jdW1lbnRUb1RyZWVWaWV3KCkKICAgICBtX2RvY3VtZW50LmZyYW1lKCkt
PnNjcmlwdCgpLmV2YWx1YXRlKFNjcmlwdFNvdXJjZUNvZGUoQXRvbWljU3RyaW5nKCJwcmVwYXJl
V2ViS2l0WE1MVmlld2VyKCdUaGlzIFhNTCBmaWxlIGRvZXMgbm90IGFwcGVhciB0byBoYXZlIGFu
eSBzdHlsZSBpbmZvcm1hdGlvbiBhc3NvY2lhdGVkIHdpdGggaXQuIFRoZSBkb2N1bWVudCB0cmVl
IGlzIHNob3duIGJlbG93LicpOyIpKSk7CiAKICAgICBTdHJpbmcgY3NzU3RyaW5nID0gU3RyaW5n
SW1wbDo6Y3JlYXRlV2l0aG91dENvcHlpbmcoWE1MVmlld2VyX2Nzcywgc2l6ZW9mKFhNTFZpZXdl
cl9jc3MpKTsKLSAgICBSZWZQdHI8VGV4dD4gdGV4dCA9IG1fZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoY3NzU3RyaW5nKTsKLSAgICBtX2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKFN0cmluZyhBU0NJ
SUxpdGVyYWwoInhtbC12aWV3ZXItc3R5bGUiKSkpLT5hcHBlbmRDaGlsZCh0ZXh0LCBJR05PUkVf
RVhDRVBUSU9OKTsKKyAgICBSZWY8VGV4dD4gdGV4dCA9IG1fZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoY3NzU3RyaW5nKTsKKyAgICBtX2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKFN0cmluZyhBU0NJ
SUxpdGVyYWwoInhtbC12aWV3ZXItc3R5bGUiKSkpLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUodGV4
dCksIElHTk9SRV9FWENFUFRJT04pOwogICAgIG1fZG9jdW1lbnQuc3R5bGVSZXNvbHZlckNoYW5n
ZWQoUmVjYWxjU3R5bGVJbW1lZGlhdGVseSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YkZyYW1lLm1tCmluZGV4IDBiMzIxMjA3YzMyM2U0ZGEwMDkzMGU5YzgwNGUwZDIzOGE5NGNkZDku
LjI4MWEzY2FkNmY4ODFiMWE2YzA2ZTEyYTZiYzgyNTRlMmIwMmY2ZjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJGcmFtZS5tbQpAQCAtODkwLDkgKzg5MCw5IEBAIC0gKERPTURvY3VtZW50
RnJhZ21lbnQgKilfZG9jdW1lbnRGcmFnbWVudFdpdGhOb2Rlc0FzUGFyYWdyYXBoczooTlNBcnJh
eSAqKW5vZGVzCiAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gZG9jdW1l
bnQtPmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKIAogICAgIGZvciAoYXV0byogbm9kZSA6IG5v
ZGVzVmVjdG9yKSB7Ci0gICAgICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gY3JlYXRlRGVm
YXVsdFBhcmFncmFwaEVsZW1lbnQoKmRvY3VtZW50KTsKLSAgICAgICAgZWxlbWVudC0+YXBwZW5k
Q2hpbGQobm9kZSk7Ci0gICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChlbGVtZW50LnJlbGVh
c2UoKSk7CisgICAgICAgIFJlZjxFbGVtZW50PiBlbGVtZW50ID0gY3JlYXRlRGVmYXVsdFBhcmFn
cmFwaEVsZW1lbnQoKmRvY3VtZW50KTsKKyAgICAgICAgZWxlbWVudC0+YXBwZW5kQ2hpbGQoKm5v
ZGUpOworICAgICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGVsZW1lbnQpKTsK
ICAgICB9CiAKICAgICByZXR1cm4ga2l0KGZyYWdtZW50LnJlbGVhc2UoKS5nZXQoKSk7CkBAIC0x
ODczLDcgKzE4NzMsNyBAQCAtICh2b2lkKV9yZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQ6KE5TU3Ry
aW5nICopdGV4dCBzZWxlY3RSZXBsYWNlbWVudDooQk9PTClzZWxlYwogewogICAgIFJlZlB0cjxS
YW5nZT4gcmFuZ2UgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lLT5zZWxlY3Rpb24oKS50b05vcm1hbGl6
ZWRSYW5nZSgpOwogCi0gICAgRE9NRG9jdW1lbnRGcmFnbWVudCogZnJhZ21lbnQgPSByYW5nZSA/
IGtpdChjcmVhdGVGcmFnbWVudEZyb21UZXh0KCpyYW5nZSwgdGV4dCkuZ2V0KCkpIDogbmlsOwor
ICAgIERPTURvY3VtZW50RnJhZ21lbnQqIGZyYWdtZW50ID0gcmFuZ2UgPyBraXQoY3JlYXRlRnJh
Z21lbnRGcm9tVGV4dCgqcmFuZ2UsIHRleHQpLnB0cigpKSA6IG5pbDsKICAgICBbc2VsZiBfcmVw
bGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudDpmcmFnbWVudCBzZWxlY3RSZXBsYWNlbWVudDpzZWxl
Y3RSZXBsYWNlbWVudCBzbWFydFJlcGxhY2U6c21hcnRSZXBsYWNlIG1hdGNoU3R5bGU6bWF0Y2hT
dHlsZV07CiB9CiAKQEAgLTE5NTgsNyArMTk1OCw3IEBAIC0gKHZvaWQpX3JlcGxhY2VTZWxlY3Rp
b25XaXRoVGV4dDooTlNTdHJpbmcgKil0ZXh0IHNlbGVjdFJlcGxhY2VtZW50OihCT09MKXNlbGVj
CiB7CiAgICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IF9wcml2YXRlLT5jb3JlRnJhbWUtPnNlbGVj
dGlvbigpLnRvTm9ybWFsaXplZFJhbmdlKCk7CiAgICAgCi0gICAgRE9NRG9jdW1lbnRGcmFnbWVu
dCogZnJhZ21lbnQgPSByYW5nZSA/IGtpdChjcmVhdGVGcmFnbWVudEZyb21UZXh0KCpyYW5nZSwg
dGV4dCkuZ2V0KCkpIDogbmlsOworICAgIERPTURvY3VtZW50RnJhZ21lbnQqIGZyYWdtZW50ID0g
cmFuZ2UgPyBraXQoY3JlYXRlRnJhZ21lbnRGcm9tVGV4dCgqcmFuZ2UsIHRleHQpLnB0cigpKSA6
IG5pbDsKICAgICBbc2VsZiBfcmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudDpmcmFnbWVudCBz
ZWxlY3RSZXBsYWNlbWVudDpzZWxlY3RSZXBsYWNlbWVudCBzbWFydFJlcGxhY2U6c21hcnRSZXBs
YWNlIG1hdGNoU3R5bGU6WUVTXTsKIH0KIApAQCAtMjI2NCw3ICsyMjY0LDcgQEAgLSAoTlNBcnJh
eSAqKV9jb21wdXRlUGFnZVJlY3RzV2l0aFByaW50U2NhbGVGYWN0b3I6KGZsb2F0KXByaW50U2Nh
bGVGYWN0b3IgcGFnZVMKICNpZiBQTEFURk9STShJT1MpCiAtIChET01Eb2N1bWVudEZyYWdtZW50
ICopX2RvY3VtZW50RnJhZ21lbnRGb3JUZXh0OihOU1N0cmluZyAqKXRleHQKIHsKLSAgICByZXR1
cm4ga2l0KGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoKl9wcml2YXRlLT5jb3JlRnJhbWUtPnNlbGVj
dGlvbigpLnRvTm9ybWFsaXplZFJhbmdlKCkuZ2V0KCksIHRleHQpLmdldCgpKTsKKyAgICByZXR1
cm4ga2l0KGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoKl9wcml2YXRlLT5jb3JlRnJhbWUtPnNlbGVj
dGlvbigpLnRvTm9ybWFsaXplZFJhbmdlKCkuZ2V0KCksIHRleHQpLnB0cigpKTsKIH0KIAogLSAo
RE9NRG9jdW1lbnRGcmFnbWVudCAqKV9kb2N1bWVudEZyYWdtZW50Rm9yV2ViQXJjaGl2ZTooV2Vi
QXJjaGl2ZSAqKXdlYkFyY2hpdmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3
Lm1tCmluZGV4IDMwOTgwZDMwYWE2N2UyZGViOTgyMWU5N2QwMDcyMjUwZTU1YmQyYTQuLmIyNTcx
OWZiOTBiNmE0NDdjYzI4NzRkZGE1ZGNmM2FlOTFjY2NlMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJIVE1MVmlldy5tbQpAQCAtMjI2Nyw3ICsyMjY3LDcgQEAgLSAoRE9NRG9jdW1l
bnRGcmFnbWVudCAqKV9kb2N1bWVudEZyYWdtZW50RnJvbVBhc3RlYm9hcmQ6KE5TUGFzdGVib2Fy
ZCAqKXBhc3RlYm8KICAgICBpZiAocGJvYXJkVHlwZSA9PSBOU1N0cmluZ1Bib2FyZFR5cGUpIHsK
ICAgICAgICAgaWYgKCFjb250ZXh0KQogICAgICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICAgICAg
cmV0dXJuIGtpdChjcmVhdGVGcmFnbWVudEZyb21UZXh0KCpjb3JlKGNvbnRleHQpLCBbW3Bhc3Rl
Ym9hcmQgc3RyaW5nRm9yVHlwZTpOU1N0cmluZ1Bib2FyZFR5cGVdIHByZWNvbXBvc2VkU3RyaW5n
V2l0aENhbm9uaWNhbE1hcHBpbmddKS5nZXQoKSk7CisgICAgICAgIHJldHVybiBraXQoY3JlYXRl
RnJhZ21lbnRGcm9tVGV4dCgqY29yZShjb250ZXh0KSwgW1twYXN0ZWJvYXJkIHN0cmluZ0ZvclR5
cGU6TlNTdHJpbmdQYm9hcmRUeXBlXSBwcmVjb21wb3NlZFN0cmluZ1dpdGhDYW5vbmljYWxNYXBw
aW5nXSkucHRyKCkpOwogICAgIH0KICAgICByZXR1cm4gbmlsOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQppbmRleCA1M2RiZmE1
OTA2ZTM3MmIxMzRmM2U4OWNjYzRkYjJiYWEyMDBjMGRhLi4xNzM0MGRlMzYzNDk3Mjc4YTBkODhk
ZTQ1ZDVjNmI5Mzk0OWZkY2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQpAQCAtNTI1LDExICs1MjUsMTEgQEAgUERGUGx1Z2lu
OjpQREZQbHVnaW4oV2ViRnJhbWUqIGZyYW1lKQogICAgICAgICBtX2Fubm90YXRpb25Db250YWlu
ZXIgPSBkb2N1bWVudC0+Y3JlYXRlRWxlbWVudChkaXZUYWcsIGZhbHNlKTsKICAgICAgICAgbV9h
bm5vdGF0aW9uQ29udGFpbmVyLT5zZXRBdHRyaWJ1dGUoaWRBdHRyLCAiYW5ub3RhdGlvbkNvbnRh
aW5lciIpOwogCi0gICAgICAgIFJlZlB0cjxFbGVtZW50PiBtX2Fubm90YXRpb25TdHlsZSA9IGRv
Y3VtZW50LT5jcmVhdGVFbGVtZW50KHN0eWxlVGFnLCBmYWxzZSk7Ci0gICAgICAgIG1fYW5ub3Rh
dGlvblN0eWxlLT5zZXRUZXh0Q29udGVudChhbm5vdGF0aW9uU3R5bGUsIEFTU0VSVF9OT19FWENF
UFRJT04pOworICAgICAgICBSZWY8RWxlbWVudD4gYW5ub3RhdGlvblN0eWxlRWxlbWVudCA9IGRv
Y3VtZW50LT5jcmVhdGVFbGVtZW50KHN0eWxlVGFnLCBmYWxzZSk7CisgICAgICAgIGFubm90YXRp
b25TdHlsZUVsZW1lbnQtPnNldFRleHRDb250ZW50KGFubm90YXRpb25TdHlsZSwgQVNTRVJUX05P
X0VYQ0VQVElPTik7CiAKLSAgICAgICAgbV9hbm5vdGF0aW9uQ29udGFpbmVyLT5hcHBlbmRDaGls
ZChtX2Fubm90YXRpb25TdHlsZS5nZXQoKSk7Ci0gICAgICAgIGRvY3VtZW50LT5ib2R5T3JGcmFt
ZXNldCgpLT5hcHBlbmRDaGlsZChtX2Fubm90YXRpb25Db250YWluZXIuZ2V0KCkpOworICAgICAg
ICBtX2Fubm90YXRpb25Db250YWluZXItPmFwcGVuZENoaWxkKFdURjo6bW92ZShhbm5vdGF0aW9u
U3R5bGVFbGVtZW50KSk7CisgICAgICAgIGRvY3VtZW50LT5ib2R5T3JGcmFtZXNldCgpLT5hcHBl
bmRDaGlsZCgqbV9hbm5vdGF0aW9uQ29udGFpbmVyKTsKICAgICB9CiAKICAgICBtX2FjY2Vzc2li
aWxpdHlPYmplY3QgPSBhZG9wdE5TKFtbV0tQREZQbHVnaW5BY2Nlc3NpYmlsaXR5T2JqZWN0IGFs
bG9jXSBpbml0V2l0aFBERlBsdWdpbjp0aGlzXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkFubm90YXRpb24ubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkFubm90YXRpb24ubW0KaW5k
ZXggMzRiNTIyZDg5YmEzMjk2ZWYxZTBlY2U1YmJlMjIxODYxOGU2MzZmMS4uYTAyOWQyNWY5MWU4
MmU2ZGIxYjJmMGZhNWEyYmUzOGQ2YzFjNzJiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5Bbm5vdGF0aW9uLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQW5ub3RhdGlvbi5tbQpA
QCAtNzQsNyArNzQsNyBAQCB2b2lkIFBERlBsdWdpbkFubm90YXRpb246OmF0dGFjaChFbGVtZW50
KiBwYXJlbnQpCiAKICAgICB1cGRhdGVHZW9tZXRyeSgpOwogCi0gICAgbV9wYXJlbnQtPmFwcGVu
ZENoaWxkKG1fZWxlbWVudCk7CisgICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKCptX2VsZW1lbnQp
OwogCiAgICAgLy8gRklYTUU6IFRoZSB0ZXh0IGN1cnNvciBkb2Vzbid0IGJsaW5rIGFmdGVyIHRo
aXMuIFdoeT8KICAgICBtX2VsZW1lbnQtPmZvY3VzKCk7CkBAIC05Miw3ICs5Miw3IEBAIFBERlBs
dWdpbkFubm90YXRpb246On5QREZQbHVnaW5Bbm5vdGF0aW9uKCkKIAogICAgIG1fZXZlbnRMaXN0
ZW5lci0+c2V0QW5ub3RhdGlvbigwKTsKIAotICAgIG1fcGFyZW50LT5yZW1vdmVDaGlsZChlbGVt
ZW50KCkpOworICAgIG1fcGFyZW50LT5yZW1vdmVDaGlsZCgqZWxlbWVudCgpKTsKIH0KIAogdm9p
ZCBQREZQbHVnaW5Bbm5vdGF0aW9uOjp1cGRhdGVHZW9tZXRyeSgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRp
b24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNo
b2ljZUFubm90YXRpb24ubW0KaW5kZXggZTFhOGU1ODIyYjI1ZTg3OTM1MWYzNDkwYmU5NTRkMWRi
ODE5ZGQ0Yi4uNjIxZGMwMTFkYjg3NGZkZjNkZjIzMDVhZTQwNzM2NzlmMzZmMGYzOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5DaG9p
Y2VBbm5vdGF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9Q
REYvUERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbi5tbQpAQCAtODMsMTQgKzgzLDE0IEBAIFBhc3NS
ZWZQdHI8RWxlbWVudD4gUERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbjo6Y3JlYXRlQW5ub3RhdGlv
bkVsZW1lbnQoKQogICAgIE5TU3RyaW5nICpzZWxlY3RlZENob2ljZSA9IGNob2ljZUFubm90YXRp
b24uc3RyaW5nVmFsdWU7CiAKICAgICBmb3IgKE5TU3RyaW5nICpjaG9pY2UgaW4gY2hvaWNlcykg
ewotICAgICAgICBSZWZQdHI8RWxlbWVudD4gY2hvaWNlT3B0aW9uID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudChvcHRpb25UYWcsIGZhbHNlKTsKKyAgICAgICAgUmVmPEVsZW1lbnQ+IGNob2ljZU9w
dGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQob3B0aW9uVGFnLCBmYWxzZSk7CiAgICAgICAg
IGNob2ljZU9wdGlvbi0+c2V0QXR0cmlidXRlKHZhbHVlQXR0ciwgY2hvaWNlKTsKICAgICAgICAg
Y2hvaWNlT3B0aW9uLT5zZXRUZXh0Q29udGVudChjaG9pY2UsIEFTU0VSVF9OT19FWENFUFRJT04p
OwogCiAgICAgICAgIGlmIChjaG9pY2UgPT0gc2VsZWN0ZWRDaG9pY2UpCiAgICAgICAgICAgICBj
aG9pY2VPcHRpb24tPnNldEF0dHJpYnV0ZShzZWxlY3RlZEF0dHIsICJzZWxlY3RlZCIpOwogCi0g
ICAgICAgIHN0eWxlZEVsZW1lbnQtPmFwcGVuZENoaWxkKGNob2ljZU9wdGlvbik7CisgICAgICAg
IHN0eWxlZEVsZW1lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShjaG9pY2VPcHRpb24pKTsKICAg
ICB9CiAKICAgICByZXR1cm4gZWxlbWVudDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1M2RhZDYwZGJiZWRkN2ExYjQwZDVm
YWIwZjliMzNlOTIxMzcwZTlkLi5mNTUxNjIwMzE1ZDNkYzdjNzczMTExYWE5OTFjODI0ZWI2MDhi
Y2MzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTUtMDktMDggIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBOb2RlLmFwcGVuZENoaWxkKG51bGwpIC8gcmVwbGFj
ZUNoaWxkKG51bGwsIG51bGwpIC8gcmVtb3ZlQ2hpbGQobnVsbCkgLyBpbnNlcnRCZWZvcmUobnVs
bCwgcmVmKSBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODk3MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
MjI1NjA4ODM+CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjU1OTIyNT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgVXBkYXRlIC8gcmViYXNlbGluZSB0
ZXN0cyBub3cgdGhhdCB3ZSB0aHJvdyBhIGRpZmZlcmVudCBleGNlcHRpb24gdHlwZS4KKworICAg
ICAgICAqIGZhc3QvZG9tL0RvY3VtZW50L3JlcGxhY2VDaGlsZC1udWxsLW9sZENoaWxkLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9Eb2N1bWVudC9zY3JpcHQtdGVzdHMvcmVwbGFj
ZUNoaWxkLW51bGwtb2xkQ2hpbGQuanM6CisgICAgICAgICogZmFzdC9kb20vTm9kZS9mcmFnbWVu
dC1tdXRhdGlvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vTm9kZS9mcmFnbWVu
dC1tdXRhdGlvbi5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL2luY29tcGF0aWJsZS1vcGVyYXRp
b25zLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9pbmNvbXBhdGlibGUtb3BlcmF0
aW9ucy5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL21vdmUtbm9kZXMtYWNyb3NzLWRvY3VtZW50
cy5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL3Byb2Nlc3NpbmctaW5zdHJ1Y3Rpb24tYXBwZW5k
Q2hpbGQtZXhjZXB0aW9ucy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vcHJvY2Vz
c2luZy1pbnN0cnVjdGlvbi1hcHBlbmRDaGlsZC1leGNlcHRpb25zLnhodG1sOgorICAgICAgICAq
IGZhc3QvZG9tL3NldHRlci10eXBlLWVuZm9yY2VtZW50LWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBmYXN0L2RvbS90aW1lci1jbGVhci1pbnRlcnZhbC1pbi1oYW5kbGVyLWFuZC1nZW5lcmF0ZS1l
cnJvci1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9pbnNwZWN0b3Itc3VwcG9ydC91bmNh
dWdodC1kb204LWV4Y2VwdGlvbi5odG1sOgorCiAyMDE1LTA5LTA5ICBEZXdlaSBaaHUgIDxkZXdl
aV96aHVAYXBwbGUuY29tPgogCiAgICAgICAgIERvY3VtZW50LmNoYXJhY3RlclNldCBzaG91bGQg
cmV0dXJuICJVVEYtOCIgYnkgZGVmYXVsdC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmlu
ZGV4IGYxZTE2MjZlNjE0MWM5YWY4NjllNmZkZjZmNjM0ZjdiYTRjNWJlZWQuLjRlMjAxNjI4NDRj
YjQ5N2RhN2JlZGUxNGJlY2QwYTExNmJjYzgzODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE1LTA5LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgTm9kZS5hcHBlbmRDaGlsZChudWxsKSAvIHJlcGxhY2VDaGls
ZChudWxsLCBudWxsKSAvIHJlbW92ZUNoaWxkKG51bGwpIC8gaW5zZXJ0QmVmb3JlKG51bGwsIHJl
Zikgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg5NzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIyNTYw
ODgzPgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjI1NTkyMjU+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIFJlYmFzZWxpbmUgVzNDIHRlc3RzIG5vdyB0
aGF0IG1vcmUgY2hlY2tzIGFyZSBwYXNzaW5nLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvZG9tL25vZGVzL05vZGUtYXBwZW5kQ2hpbGQtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1pbnNlcnRCZWZvcmUtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1yZW1vdmVD
aGlsZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rl
cy9Ob2RlLXJlcGxhY2VDaGlsZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0OgorCiAyMDE1LTA5LTA5ICBE
ZXdlaSBaaHUgIDxkZXdlaV96aHVAYXBwbGUuY29tPgogCiAgICAgICAgIERvY3VtZW50LmNoYXJh
Y3RlclNldCBzaG91bGQgcmV0dXJuICJVVEYtOCIgYnkgZGVmYXVsdC4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50L3JlcGxhY2VDaGlsZC1udWxsLW9sZENoaWxkLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50L3JlcGxhY2VDaGlsZC1u
dWxsLW9sZENoaWxkLWV4cGVjdGVkLnR4dAppbmRleCBiYmIxNjZiMjI3YTUyZTY1MTQ1YWRiZjQw
NDg3ODUzYjBkMzY4ZDI0Li5hZjVhNDY5ZjVmOGNjNjk3MTAxYmM5MmE0MGY4MjQ1NWI4YmU1Y2Qw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Eb2N1bWVudC9yZXBsYWNlQ2hpbGQt
bnVsbC1vbGRDaGlsZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9j
dW1lbnQvcmVwbGFjZUNoaWxkLW51bGwtb2xkQ2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0zLDcgKzMs
NyBAQCBUZXN0IGJlaGF2aW9yIG9mIERvY3VtZW50LnJlcGxhY2VDaGlsZCgpIHdoZW4gb2xkQ2hp
bGQgaXMgbnVsbC4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIGRvY3VtZW50
LnJlcGxhY2VDaGlsZChkb2N1bWVudC5maXJzdENoaWxkLCBudWxsKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOC4KK1BBU1MgZG9jdW1lbnQucmVw
bGFjZUNoaWxkKGRvY3VtZW50LmZpcnN0Q2hpbGQsIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRF
U1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50L3Nj
cmlwdC10ZXN0cy9yZXBsYWNlQ2hpbGQtbnVsbC1vbGRDaGlsZC5qcyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0RvY3VtZW50L3NjcmlwdC10ZXN0cy9yZXBsYWNlQ2hpbGQtbnVsbC1vbGRDaGlsZC5q
cwppbmRleCBkYTkyNTI4MDA1MWUxOTdlMWFmNWM5ZWE0YTI1YjQxYjk2ZWMzYTVmLi5jMDliZjFi
MThkMjk5ZTY3NDUyMzA1MzY2N2E4YzI1ZDhhOTgwNzBlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9Eb2N1bWVudC9zY3JpcHQtdGVzdHMvcmVwbGFjZUNoaWxkLW51bGwtb2xkQ2hp
bGQuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvc2NyaXB0LXRlc3RzL3Jl
cGxhY2VDaGlsZC1udWxsLW9sZENoaWxkLmpzCkBAIC0xLDMgKzEsMyBAQAogZGVzY3JpcHRpb24o
J1Rlc3QgYmVoYXZpb3Igb2YgRG9jdW1lbnQucmVwbGFjZUNoaWxkKCkgd2hlbiBvbGRDaGlsZCBp
cyBudWxsLicpOwogCi1zaG91bGRUaHJvdygnZG9jdW1lbnQucmVwbGFjZUNoaWxkKGRvY3VtZW50
LmZpcnN0Q2hpbGQsIG51bGwpJywgJyJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlv
biA4IicpOworc2hvdWxkVGhyb3coJ2RvY3VtZW50LnJlcGxhY2VDaGlsZChkb2N1bWVudC5maXJz
dENoaWxkLCBudWxsKScsICciVHlwZUVycm9yOiBUeXBlIGVycm9yIicpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZS9mcmFnbWVudC1tdXRhdGlvbi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2ZyYWdtZW50LW11dGF0aW9uLWV4cGVjdGVkLnR4
dAppbmRleCAwZjA0ZTY2YTBlNTNlNmY1YjE5MDFjNWRjYjE3NmY2N2YyZTRmODY4Li40YmE5NTI0
YzcyY2Q1ZDdhMTEzMjk0NGQwNmRkZGJjNmY2YzdkODVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9Ob2RlL2ZyYWdtZW50LW11dGF0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2ZyYWdtZW50LW11dGF0aW9uLWV4cGVjdGVkLnR4dApAQCAt
MiwxMiArMiwxMiBAQCBUaGlzIHRlc3QgY3JlYXRlcyBhIGZyYWdtZW50IGNvbnRhaW5pbmcgdGhy
ZWUgZWxlbWVudHM6ICJCIiwgIlUiLCBhbmQgIlAiLCBhdHRlbQogCiBJbnNlcnRpbmcgYW4gZWxl
bWVudCBpbiBmcm9udCBvZiB0aGUgbmV4dCBpdGVtIGluIGZyYWdtZW50IHNob3VsZCBub3QgYWZm
ZWN0IHRoZSByZXN1bHQ6IFBBU1MKIEFwcGVuZGluZyBhbiBlbGVtZW50IGF0IHRoZSBlbmQgb2Yg
dGhlIGZyYWdtZW50IHNob3VsZCBub3QgYWZmZWN0IHRoZSByZXN1bHQ6IFBBU1MKLUNvbnRpbnVh
bGx5IHJlLWFwcGVuZGluZyByZW1vdmVkIGVsZW1lbnQgdG8gdGhlIGZyYWdtZW50IHNob3VsZCBl
dmVudHVhbGx5IHRocm93IE5PVF9GT1VORF9FUlI6IFBBU1MKK0NvbnRpbnVhbGx5IHJlLWFwcGVu
ZGluZyByZW1vdmVkIGVsZW1lbnQgdG8gdGhlIGZyYWdtZW50IHNob3VsZCBldmVudHVhbGx5IHRo
cm93IGEgVHlwZUVycm9yOiBQQVNTCiAKIFRoaXMgdGVzdCBjcmVhdGVzIGEgZnJhZ21lbnQgY29u
dGFpbmluZyB0aHJlZSBlbGVtZW50czogIkIiLCAiVSIsIGFuZCAiUCIsIGF0dGVtcHRzIHRvIGlu
c2VydEJlZm9yZSB0aGlzIGZyYWdtZW50IGFuZCBzdHVkaWVzIGVmZmVjdHMgb2YgbXV0YXRpb24g
ZXZlbnRzIG9uIHRoZSBmcmFnbWVudC4KIAogSW5zZXJ0aW5nIGFuIGVsZW1lbnQgaW4gZnJvbnQg
b2YgdGhlIG5leHQgaXRlbSBpbiBmcmFnbWVudCBzaG91bGQgbm90IGFmZmVjdCB0aGUgcmVzdWx0
OiBQQVNTCiBBcHBlbmRpbmcgYW4gZWxlbWVudCBhdCB0aGUgZW5kIG9mIHRoZSBmcmFnbWVudCBz
aG91bGQgbm90IGFmZmVjdCB0aGUgcmVzdWx0OiBQQVNTCi1Db250aW51YWxseSByZS1hcHBlbmRp
bmcgcmVtb3ZlZCBlbGVtZW50IHRvIHRoZSBmcmFnbWVudCBzaG91bGQgZXZlbnR1YWxseSB0aHJv
dyBOT1RfRk9VTkRfRVJSOiBQQVNTCitDb250aW51YWxseSByZS1hcHBlbmRpbmcgcmVtb3ZlZCBl
bGVtZW50IHRvIHRoZSBmcmFnbWVudCBzaG91bGQgZXZlbnR1YWxseSB0aHJvdyBhIFR5cGVFcnJv
cjogUEFTUwogCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvZnJhZ21l
bnQtbXV0YXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL05vZGUvZnJhZ21lbnQtbXV0
YXRpb24uaHRtbAppbmRleCA4NGU2N2Y2NTM5ZDY0YjczZTM1MTEwMjBjMDc2ZTA0YzllODAwY2Jm
Li40ODk0OTdmNTBhYzZiNmE4ZjgxMDA2YmI1OGU2YWMxNzU1N2M2Yjg0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2ZyYWdtZW50LW11dGF0aW9uLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vTm9kZS9mcmFnbWVudC1tdXRhdGlvbi5odG1sCkBAIC0zNiwxNSAr
MzYsMTUgQEAgZnVuY3Rpb24gcHJvZHVjZU5vZGVOYW1lU3RyaW5nKG5vZGVzKQogICAgIHJldHVy
biByZXN1bHQ7CiB9CiAKLWZ1bmN0aW9uIGV4cGVjdEV4Y2VwdGlvbihjb2RlKQorZnVuY3Rpb24g
ZXhwZWN0VHlwZUVycm9yKCkKIHsKICAgICByZXR1cm4gZnVuY3Rpb24oc3Rhc2gsIGV4Y2VwdGlv
bikgewogICAgICAgICBpZiAoIWV4Y2VwdGlvbikKLSAgICAgICAgICAgIHJldHVybiAiRkFJTCwg
ZXhwZWN0ZWQgZXhjZXB0aW9uIHdpdGggY29kZSAiICsgY29kZSArICIuIFRoZSByZXN1bHRpbmcg
ZnJhZ21lbnQgd2FzOiBcIiIgKyBwcm9kdWNlTm9kZU5hbWVTdHJpbmcoc3Rhc2gpICsgIlwiLiI7
CisgICAgICAgICAgICByZXR1cm4gIkZBSUwsIGV4cGVjdGVkIFR5cGVFcnJvci4gVGhlIHJlc3Vs
dGluZyBmcmFnbWVudCB3YXM6IFwiIiArIHByb2R1Y2VOb2RlTmFtZVN0cmluZyhzdGFzaCkgKyAi
XCIuIjsKIAotICAgICAgICBpZiAoY29kZSA9PSBleGNlcHRpb24uY29kZSkKKyAgICAgICAgaWYg
KGV4Y2VwdGlvbi5uYW1lID0gIlR5cGVFcnJvciIpCiAgICAgICAgICAgICByZXR1cm4gIlBBU1Mi
OwotICAgICAgICByZXR1cm4gIkZBSUwsIGV4cGVjdGVkIGV4Y2VwdGlvbiBjb2RlOiAiICsgY29k
ZSArICIsIHdhczogIiArIGV4Y2VwdGlvbiArICIuIjsKKyAgICAgICAgcmV0dXJuICJGQUlMLCBl
eHBlY3RlZCBUeXBlRXJyb3IsIHdhczogIiArIGV4Y2VwdGlvbi5uYW1lICsgIi4iOwogICAgIH0K
IH0KIApAQCAtMTE5LDEwICsxMTksMTAgQEAgZnVuY3Rpb24gcnVuVGVzdChtZXRob2ROYW1lLCBt
ZXRob2QpCiAgICAgICAgIGZyYWcuYXBwZW5kQ2hpbGQoZXh0cmEpOwogICAgIH0sIGV4cGVjdE5v
ZGVzKCJCVVAiKSk7CiAKLSAgICB0ZXN0RnJhZ21lbnQobWV0aG9kLCAiQ29udGludWFsbHkgcmUt
YXBwZW5kaW5nIHJlbW92ZWQgZWxlbWVudCB0byB0aGUgZnJhZ21lbnQgc2hvdWxkIGV2ZW50dWFs
bHkgdGhyb3cgTk9UX0ZPVU5EX0VSUiIsIGZ1bmN0aW9uKGV2dCwgZnJhZywgc3Rhc2gpCisgICAg
dGVzdEZyYWdtZW50KG1ldGhvZCwgIkNvbnRpbnVhbGx5IHJlLWFwcGVuZGluZyByZW1vdmVkIGVs
ZW1lbnQgdG8gdGhlIGZyYWdtZW50IHNob3VsZCBldmVudHVhbGx5IHRocm93IGEgVHlwZUVycm9y
IiwgZnVuY3Rpb24oZXZ0LCBmcmFnLCBzdGFzaCkKICAgICB7CiAgICAgICAgIHN0YXNoLmluc2Vy
dEJlZm9yZShmcmFnLmxhc3RDaGlsZCwgc3Rhc2guZmlyc3RDaGlsZCk7Ci0gICAgfSwgZXhwZWN0
RXhjZXB0aW9uKDgpLCB0cnVlKTsKKyAgICB9LCBleHBlY3RUeXBlRXJyb3IoKSwgdHJ1ZSk7CiAg
ICAgcHJpbnRMb2cobWV0aG9kTmFtZSk7CiB9CiBmdW5jdGlvbiBydW5UZXN0cygpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pbmNvbXBhdGlibGUtb3BlcmF0aW9ucy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pbmNvbXBhdGlibGUtb3BlcmF0aW9ucy1leHBl
Y3RlZC50eHQKaW5kZXggZDU3NjRjMWU1YWM2MjY0ZWUzYTRkZjViOTI0NWViZTE3N2Y2NTQ4MC4u
ODVjY2Q1NDRmYzllOTlhNzhkYWEyNzc1NWEzM2ZjODgwYTdmZjBkNiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vaW5jb21wYXRpYmxlLW9wZXJhdGlvbnMtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2luY29tcGF0aWJsZS1vcGVyYXRpb25zLWV4cGVjdGVk
LnR4dApAQCAtMyw5ICszLDkgQEAgVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgRE9N
IG9wZXJhdGlvbnMgd2hlbiBjYWxsZWQgb24gbm9uLURPTSBvciBpbmNvbXAKIE9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIGFOb2RlLmFwcGVuZENoaWxkKGFET01JbXBsZW1lbnRh
dGlvbikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9u
IDguCi1QQVNTIGFOb2RlLmFwcGVuZENoaWxkKCdrbm9ydCcpIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4LgotUEFTUyBhTm9kZS5hcHBlbmRDaGls
ZCh2b2lkIDApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2Vw
dGlvbiA4LgorUEFTUyBhTm9kZS5hcHBlbmRDaGlsZChhRE9NSW1wbGVtZW50YXRpb24pIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGFOb2RlLmFwcGVuZENoaWxk
KCdrbm9ydCcpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGFO
b2RlLmFwcGVuZENoaWxkKHZvaWQgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBl
cnJvci4KIFBBU1MgYU5vZGUuaXNTYW1lTm9kZShhRE9NSW1wbGVtZW50YXRpb24pIGlzIGZhbHNl
CiBQQVNTIGFOb2RlLmlzU2FtZU5vZGUoJ2ZvbycpIGlzIGZhbHNlCiBQQVNTIGFOb2RlLmlzU2Ft
ZU5vZGUodm9pZCAwKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
aW5jb21wYXRpYmxlLW9wZXJhdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2luY29t
cGF0aWJsZS1vcGVyYXRpb25zLmh0bWwKaW5kZXggMjFhYTcxYWZlOGUzZGVhYThjZThiMDRkM2Yz
Y2YyM2Q1ODI1NDIzMC4uMmYwZTRhZmU2Y2FjYmRjMmI4NTczNWU3NjYwZWU4ZjllNWQwMWIwZiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vaW5jb21wYXRpYmxlLW9wZXJhdGlvbnMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pbmNvbXBhdGlibGUtb3BlcmF0aW9ucy5o
dG1sCkBAIC0yOCwxMSArMjgsMTEgQEAgdmFyIGFOb2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiZGl2Iik7CiB2YXIgYVNlY29uZE5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKIGFOb2RlLmFwcGVuZENoaWxkKGFTZWNvbmROb2RlKTsKIAotc2hvdWxkVGhyb3coImFOb2Rl
LmFwcGVuZENoaWxkKGFET01JbXBsZW1lbnRhdGlvbikiLCAiJ0Vycm9yOiBOb3RGb3VuZEVycm9y
OiBET00gRXhjZXB0aW9uIDgnIik7CitzaG91bGRUaHJvdygiYU5vZGUuYXBwZW5kQ2hpbGQoYURP
TUltcGxlbWVudGF0aW9uKSIsICInVHlwZUVycm9yOiBUeXBlIGVycm9yJyIpOwogCi1zaG91bGRU
aHJvdygiYU5vZGUuYXBwZW5kQ2hpbGQoJ2tub3J0JykiLCAiJ0Vycm9yOiBOb3RGb3VuZEVycm9y
OiBET00gRXhjZXB0aW9uIDgnIik7CitzaG91bGRUaHJvdygiYU5vZGUuYXBwZW5kQ2hpbGQoJ2tu
b3J0JykiLCAiJ1R5cGVFcnJvcjogVHlwZSBlcnJvciciKTsKIAotc2hvdWxkVGhyb3coImFOb2Rl
LmFwcGVuZENoaWxkKHZvaWQgMCkiLCAiJ0Vycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0
aW9uIDgnIik7CitzaG91bGRUaHJvdygiYU5vZGUuYXBwZW5kQ2hpbGQodm9pZCAwKSIsICInVHlw
ZUVycm9yOiBUeXBlIGVycm9yJyIpOwogCiBzaG91bGRCZUZhbHNlKCJhTm9kZS5pc1NhbWVOb2Rl
KGFET01JbXBsZW1lbnRhdGlvbikiKTsKIHNob3VsZEJlRmFsc2UoImFOb2RlLmlzU2FtZU5vZGUo
J2ZvbycpIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9tb3ZlLW5vZGVzLWFj
cm9zcy1kb2N1bWVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL21vdmUtbm9kZXMtYWNy
b3NzLWRvY3VtZW50cy5odG1sCmluZGV4IGQzNTAxYTE3ZGI4NmM0ZWM4NjBmYjVmMTIyYzdkNWNk
YWU2ZjVhMzUuLjM4ODFmMDQ5OTIxYjEzZGQzZmI2NmZlNmQ3YTUyZWM3NGFmNjg1ODMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL21vdmUtbm9kZXMtYWNyb3NzLWRvY3VtZW50cy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL21vdmUtbm9kZXMtYWNyb3NzLWRvY3VtZW50
cy5odG1sCkBAIC0xNzksNyArMTc5LDcgQEAgZnVuY3Rpb24gcnVuKCkKICAgICBydW5UZXN0KGZ1
bmN0aW9uKCkgewogICAgICAgICBpZnJhbWVEb2MuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuZG9jdHlw
ZSk7CiAgICAgICAgIGNvbnNvbGUubG9nKGRvY3VtZW50LmRvY3R5cGUpOwotICAgIH0sICdOb3RG
b3VuZEVycm9yJyk7CisgICAgfSwgJ1R5cGVFcnJvcicpOwogCiAgICAgLy8gV2hlbiBzZXR0aW5n
IGEgYm91bmRhcnkgb2YgdGhlIHJhbmdlIGluIGEgZGlmZmVyZW50CiAgICAgLy8gZG9jdW1lbnQs
IHRoZSBjYWxsIHNob3VsZCBzdWNjZWVkIGFuZCB0aGUgcmFuZ2Ugc2hvdWxkIGJlIGNvbGxhcHNl
ZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb2Nlc3NpbmctaW5zdHJ1Y3Rp
b24tYXBwZW5kQ2hpbGQtZXhjZXB0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9wcm9jZXNzaW5nLWluc3RydWN0aW9uLWFwcGVuZENoaWxkLWV4Y2VwdGlvbnMtZXhwZWN0
ZWQudHh0CmluZGV4IDdhMTM4NjhhN2IyZmZmYTZkMjY0MmFiNjIxNzIyN2IyZGFiOTJmYjkuLjBl
M2JkZjIyNmUwYzVhNjU5MTcxMjA0NWMzNTU1ZDgzNmJjY2JiMmYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3Byb2Nlc3NpbmctaW5zdHJ1Y3Rpb24tYXBwZW5kQ2hpbGQtZXhjZXB0
aW9ucy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvY2Vzc2luZy1p
bnN0cnVjdGlvbi1hcHBlbmRDaGlsZC1leGNlcHRpb25zLWV4cGVjdGVkLnR4dApAQCAtMyw3ICsz
LDcgQEAgVGVzdCB0aGF0IGFwcHJvcHJpYXRlIGV4Y2VwdGlvbnMgYXJlIHRocm93biB3aGVuIGFk
ZGluZyBjaGlsZHJlbiB0byBhIFByb2Nlc3NpbmcKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
IAogCi1QQVNTIHBpLmFwcGVuZENoaWxkKG51bGwpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSGll
cmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMuCitQQVNTIHBpLmFwcGVuZENoaWxk
KG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNTIHBpLmFw
cGVuZENoaWxkKGRpdikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJy
b3I6IERPTSBFeGNlcHRpb24gMy4KIFBBU1MgcGkuYXBwZW5kQ2hpbGQodGV4dE5vZGUpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMu
CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9wcm9jZXNzaW5nLWluc3RydWN0aW9uLWFwcGVuZENoaWxkLWV4Y2VwdGlvbnMu
eGh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm9jZXNzaW5nLWluc3RydWN0aW9uLWFwcGVu
ZENoaWxkLWV4Y2VwdGlvbnMueGh0bWwKaW5kZXggYjAwMjg5OWMyMzIwNjdmYzE3MzNmYTkxZWFm
ZTEzMTQyMmM0OTk2MC4uYzkwMmJhNGIzNTk4OTdkOTM4YmQ0OWY4MGJjNmYyMmMyMDE5MmZkOCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvY2Vzc2luZy1pbnN0cnVjdGlvbi1h
cHBlbmRDaGlsZC1leGNlcHRpb25zLnhodG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3By
b2Nlc3NpbmctaW5zdHJ1Y3Rpb24tYXBwZW5kQ2hpbGQtZXhjZXB0aW9ucy54aHRtbApAQCAtNSw3
ICs1LDcgQEAKIDwhW0NEQVRBWwogZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBhcHByb3ByaWF0ZSBl
eGNlcHRpb25zIGFyZSB0aHJvd24gd2hlbiBhZGRpbmcgY2hpbGRyZW4gdG8gYSBQcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24uIik7CiB2YXIgcGkgPSBkb2N1bWVudC5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24oJ3RhcmdldCcsICdkYXRhJyk7Ci1zaG91bGRUaHJvdygicGkuYXBwZW5kQ2hpbGQobnVs
bCkiLCAiJ0Vycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyciKTsK
K3Nob3VsZFRocm93KCJwaS5hcHBlbmRDaGlsZChudWxsKSIsICInVHlwZUVycm9yOiBUeXBlIGVy
cm9yJyIpOwogdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogc2hvdWxk
VGhyb3coInBpLmFwcGVuZENoaWxkKGRpdikiLCAiJ0Vycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJy
b3I6IERPTSBFeGNlcHRpb24gMyciKTsKIHZhciB0ZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKCdzb21ldGV4dCcpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vdGlt
ZXItY2xlYXItaW50ZXJ2YWwtaW4taGFuZGxlci1hbmQtZ2VuZXJhdGUtZXJyb3ItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vdGltZXItY2xlYXItaW50ZXJ2YWwtaW4taGFuZGxl
ci1hbmQtZ2VuZXJhdGUtZXJyb3ItZXhwZWN0ZWQudHh0CmluZGV4IDk5YWFjNmEwNWRjYWU4ODYz
MjY5YzY5YmI2ZGNiM2E5Mjk0YjY0NzcuLjVmMmZkNTE0MTcwMGM4MzMzNDg5YjUwZTFhM2QyMjJi
MjY5NDI1YTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3RpbWVyLWNsZWFyLWlu
dGVydmFsLWluLWhhbmRsZXItYW5kLWdlbmVyYXRlLWVycm9yLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS90aW1lci1jbGVhci1pbnRlcnZhbC1pbi1oYW5kbGVyLWFuZC1n
ZW5lcmF0ZS1lcnJvci1leHBlY3RlZC50eHQKQEAgLTEsMiArMSwyIEBACi1DT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTA6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gODogQW4gYXR0ZW1wdCB3
YXMgbWFkZSB0byByZWZlcmVuY2UgYSBOb2RlIGluIGEgY29udGV4dCB3aGVyZSBpdCBkb2VzIG5v
dCBleGlzdC4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMDogVHlwZUVycm9yOiBUeXBlIGVycm9y
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3JlbW92ZS10YXJnZXQtd2l0
aC1zaGFkb3ctaW4tZHJhZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9y
ZW1vdmUtdGFyZ2V0LXdpdGgtc2hhZG93LWluLWRyYWctZXhwZWN0ZWQudHh0CmluZGV4IDQ1YzEx
OWZlOWIzMGNhZDJhNTBmMWRmZjhjMDE3MTE5MjA1YWZlN2EuLjEyODk2NGY1ZmE0YWFhODJlYzg5
YWRmN2JkMjNlM2Y4MGVhMzliNjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3JlbW92ZS10YXJnZXQtd2l0aC1zaGFkb3ctaW4tZHJhZy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVtb3ZlLXRhcmdldC13aXRoLXNoYWRvdy1pbi1kcmFnLWV4
cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzNDogTm90
Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4OiBBbiBhdHRlbXB0IHdhcyBtYWRlIHRvIHJlZmVy
ZW5jZSBhIE5vZGUgaW4gYSBjb250ZXh0IHdoZXJlIGl0IGRvZXMgbm90IGV4aXN0LgotQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDM0OiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDg6IEFuIGF0
dGVtcHQgd2FzIG1hZGUgdG8gcmVmZXJlbmNlIGEgTm9kZSBpbiBhIGNvbnRleHQgd2hlcmUgaXQg
ZG9lcyBub3QgZXhpc3QuCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMzQ6IFR5cGVFcnJvcjogVHlw
ZSBlcnJvcgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM0OiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IK
IFBBU1MuIERSVCBkaWRuJ3QgY3Jhc2guCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2lu
c3BlY3Rvci1zdXBwb3J0L3VuY2F1Z2h0LWRvbTgtZXhjZXB0aW9uLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2luc3BlY3Rvci1zdXBwb3J0L3VuY2F1Z2h0LWRvbTgtZXhjZXB0aW9uLmh0bWwKaW5k
ZXggYmM2MDhmNGZhZTA0OTM3MDZjOWI3OWU1MTM3YmNmZTc4MzQyMjVkYi4uNWZhNGU1YjhiNjY2
NjM5NDIyZDViNGFkOWE2N2ZlYTYyZDRlZTkwYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9pbnNwZWN0b3Itc3VwcG9ydC91bmNhdWdodC1kb204LWV4Y2VwdGlvbi5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvaW5zcGVjdG9yLXN1cHBvcnQvdW5jYXVnaHQtZG9tOC1leGNlcHRpb24u
aHRtbApAQCAtNiw3ICs2LDcgQEAgZnVuY3Rpb24gb25sb2FkKCkKIHsKICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIGRvY3Vt
ZW50LmFwcGVuZENoaWxkKCk7CisgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVBdHRyaWJ1dGVOb2Rl
KGRvY3VtZW50LmNyZWF0ZUF0dHJpYnV0ZSgiZG9lc05vdEV4aXN0IikpOwogfQogCiA8L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKaW5kZXggNjQ5
NTFiNDdjNDU0ZWFkNjJkYjU1NGYxNDkwMmVhZjM1MjZmNzMxMy4uYWFmOGQ0MjdlODUxMDEwMmYw
YWY3ZjBiNTJjNjM3OTY0NmM2MTliYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaW50ZXJmYWNl
cy1leHBlY3RlZC50eHQKQEAgLTYzNCwyMSArNjM0LDE1IEBAIEZBSUwgTm9kZSBpbnRlcmZhY2U6
IGNhbGxpbmcgaXNEZWZhdWx0TmFtZXNwYWNlKERPTVN0cmluZykgb24geG1sRG9jIHdpdGggdG9v
IGZlCiAgICAgW25hdGl2ZSBjb2RlXQogfSIgZGlkIG5vdCB0aHJvdwogUEFTUyBOb2RlIGludGVy
ZmFjZTogeG1sRG9jIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5zZXJ0QmVmb3JlIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAoNDApIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRC
ZWZvcmUoTm9kZSxOb2RlKSBvbiB4bWxEb2Mgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRo
cm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5j
dGlvbiAiZnVuY3Rpb24gKCkgeworRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRC
ZWZvcmUoTm9kZSxOb2RlKSBvbiB4bWxEb2Mgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRo
cm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAxIGFyZ3VtZW50cyBmdW5j
dGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAi
RXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikg
ZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK30iIHRocmV3IG9iamVj
dCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJh
cmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJv
ciIpCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiB4bWxEb2MgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJh
cHBlbmRDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQxKSAKLUZBSUwgTm9kZSBpbnRlcmZh
Y2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24geG1sRG9jIHdpdGggdG9vIGZldyBhcmd1
bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBh
cmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0
aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90
Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQ
QVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIHhtbERvYyB3
aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGlu
dGVyZmFjZTogeG1sRG9jIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVwbGFjZUNoaWxkIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAoNDIpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBs
YWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiB4bWxEb2Mgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0
IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBm
dW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIGRpZCBub3QgdGhy
b3cKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkg
b24geG1sRG9jIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQ
QVNTIE5vZGUgaW50ZXJmYWNlOiB4bWxEb2MgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZW1vdmVD
aGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQzKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNh
bGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24geG1sRG9jIHdpdGggdG9vIGZldyBhcmd1bWVudHMg
bXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVu
dHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBv
YmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRF
cnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5v
ZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIHhtbERvYyB3aXRoIHRv
byBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBFdmVudFRhcmdldCBp
bnRlcmZhY2U6IHhtbERvYyBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFkZEV2ZW50TGlzdGVuZXIi
IHdpdGggdGhlIHByb3BlciB0eXBlICgwKSAKIEZBSUwgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBj
YWxsaW5nIGFkZEV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nLEV2ZW50TGlzdGVuZXIsYm9vbGVhbikg
b24geG1sRG9jIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNz
ZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgp
IHsKICAgICBbbmF0aXZlIGNvZGVdCkBAIC03OTMsMjEgKzc4NywxNSBAQCBGQUlMIE5vZGUgaW50
ZXJmYWNlOiBjYWxsaW5nIGlzRGVmYXVsdE5hbWVzcGFjZShET01TdHJpbmcpIG9uIGRvY3VtZW50
LmNyZWF0ZURvYwogICAgIFtuYXRpdmUgY29kZV0KIH0iIGRpZCBub3QgdGhyb3cKIFBBU1MgTm9k
ZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgImluc2VydEJlZm9yZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQwKSAKLUZB
SUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24gZG9j
dW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVz
dCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMg
ZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKK0ZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5z
ZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgp
IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93
czogQ2FsbGVkIHdpdGggMSBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBb
bmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00g
RXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9y
IiAoIlR5cGVFcnJvciIpCit9IiBkaWQgbm90IHRocm93CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBk
b2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJh
cHBlbmRDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQxKSAKLUZBSUwgTm9kZSBpbnRlcmZh
Y2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRG
cmFnbWVudCgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNz
ZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgp
IHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVy
cm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAi
VHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFw
cGVuZENoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSB3aXRo
IHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGludGVy
ZmFjZTogZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAicmVwbGFjZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDIpIAotRkFJTCBOb2Rl
IGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5j
cmVhdGVEb2N1bWVudEZyYWdtZW50KCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93
IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlv
biAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIGRpZCBub3QgdGhyb3cKK1BB
U1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24gZG9j
dW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVz
dCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVE
b2N1bWVudEZyYWdtZW50KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZW1vdmVDaGlsZCIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgKDQzKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVt
b3ZlQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpIHdpdGgg
dG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2Fs
bGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZl
IGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0
aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5
cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUp
IG9uIGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSB3aXRoIHRvbyBmZXcgYXJndW1l
bnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGRv
Y3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFk
ZEV2ZW50TGlzdGVuZXIiIHdpdGggdGhlIHByb3BlciB0eXBlICgwKSAKIEZBSUwgRXZlbnRUYXJn
ZXQgaW50ZXJmYWNlOiBjYWxsaW5nIGFkZEV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nLEV2ZW50TGlz
dGVuZXIsYm9vbGVhbikgb24gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpIHdpdGgg
dG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2Fs
bGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZl
IGNvZGVdCkBAIC05MTUsMjEgKzkwMywxNSBAQCBGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5n
IGlzRGVmYXVsdE5hbWVzcGFjZShET01TdHJpbmcpIG9uIGRvY3VtZW50LmRvY3R5cGUgdwogICAg
IFtuYXRpdmUgY29kZV0KIH0iIGRpZCBub3QgdGhyb3cKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRv
Y3VtZW50LmRvY3R5cGUgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJpbnNlcnRCZWZvcmUiIHdpdGgg
dGhlIHByb3BlciB0eXBlICg0MCkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGluc2Vy
dEJlZm9yZShOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmRvY3R5cGUgd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFy
Z3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworRkFJTCBOb2RlIGludGVyZmFjZTogY2Fs
bGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5kb2N0eXBlIHdpdGggdG9v
IGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVk
IHdpdGggMSBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNv
ZGVdCiB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBF
eGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5
cGVFcnJvciIgKCJUeXBlRXJyb3IiKQogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuZG9j
dHlwZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFwcGVuZENoaWxkIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAoNDEpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2Rl
KSBvbiBkb2N1bWVudC5kb2N0eXBlIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBU
eXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24g
ImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9y
OiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1
ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFT
UyBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5k
b2N0eXBlIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNT
IE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5kb2N0eXBlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
cmVwbGFjZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDIpIAotRkFJTCBOb2RlIGludGVy
ZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5kb2N0eXBl
IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93
czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBb
bmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJy
b3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBv
YmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTogY2Fs
bGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5kb2N0eXBlIHdpdGggdG9v
IGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNl
OiBkb2N1bWVudC5kb2N0eXBlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVtb3ZlQ2hpbGQiIHdp
dGggdGhlIHByb3BlciB0eXBlICg0MykgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJl
bW92ZUNoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmRvY3R5cGUgd2l0aCB0b28gZmV3IGFyZ3VtZW50
cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3Vt
ZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3
IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3Vu
ZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1Mg
Tm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuZG9j
dHlwZSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBF
dmVudFRhcmdldCBpbnRlcmZhY2U6IGRvY3VtZW50LmRvY3R5cGUgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJhZGRFdmVudExpc3RlbmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMCkgCiBGQUlMIEV2
ZW50VGFyZ2V0IGludGVyZmFjZTogY2FsbGluZyBhZGRFdmVudExpc3RlbmVyKERPTVN0cmluZyxF
dmVudExpc3RlbmVyLGJvb2xlYW4pIG9uIGRvY3VtZW50LmRvY3R5cGUgd2l0aCB0b28gZmV3IGFy
Z3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAw
IGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KQEAg
LTExODcsMjEgKzExNjksMTUgQEAgRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpc0RlZmF1
bHROYW1lc3BhY2UoRE9NU3RyaW5nKSBvbiBlbGVtZW50IHdpdGggdG9vIGYKICAgICBbbmF0aXZl
IGNvZGVdCiB9IiBkaWQgbm90IHRocm93CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBlbGVtZW50IG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5zZXJ0QmVmb3JlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAo
NDApIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2Rl
KSBvbiBlbGVtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3Ig
YXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9u
ICgpIHsKK0ZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9k
ZSkgb24gZWxlbWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9y
IGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDEgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlv
biAoKSB7CiAgICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91
bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmpl
Y3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorfSIgZGlkIG5vdCB0aHJvdwogUEFTUyBOb2Rl
IGludGVyZmFjZTogZWxlbWVudCBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFwcGVuZENoaWxkIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDEpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBh
cHBlbmRDaGlsZChOb2RlKSBvbiBlbGVtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0
aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVu
Y3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3Qg
IkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIp
IGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50
ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGVsZW1lbnQgd2l0aCB0b28gZmV3
IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGVs
ZW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZXBsYWNlQ2hpbGQiIHdpdGggdGhlIHByb3Bl
ciB0eXBlICg0MikgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChO
b2RlLE5vZGUpIG9uIGVsZW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5
cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAi
ZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIGRpZCBub3QgdGhyb3cKK1BBU1Mg
Tm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24gZWxlbWVu
dCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2Rl
IGludGVyZmFjZTogZWxlbWVudCBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlbW92ZUNoaWxkIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDMpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBy
ZW1vdmVDaGlsZChOb2RlKSBvbiBlbGVtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0
aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVu
Y3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3Qg
IkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIp
IGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50
ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIGVsZW1lbnQgd2l0aCB0b28gZmV3
IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgRXZlbnRUYXJnZXQgaW50ZXJm
YWNlOiBlbGVtZW50IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYWRkRXZlbnRMaXN0ZW5lciIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgKDApIAogRkFJTCBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGNhbGxp
bmcgYWRkRXZlbnRMaXN0ZW5lcihET01TdHJpbmcsRXZlbnRMaXN0ZW5lcixib29sZWFuKSBvbiBl
bGVtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0
X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsK
ICAgICBbbmF0aXZlIGNvZGVdCkBAIC0xNDA5LDIxICsxMzg1LDE1IEBAIEZBSUwgTm9kZSBpbnRl
cmZhY2U6IGNhbGxpbmcgaXNEZWZhdWx0TmFtZXNwYWNlKERPTVN0cmluZykgb24gZG9jdW1lbnQu
Y3JlYXRlVGV4CiAgICAgW25hdGl2ZSBjb2RlXQogfSIgZGlkIG5vdCB0aHJvdwogUEFTUyBOb2Rl
IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoImFiYyIpIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAiaW5zZXJ0QmVmb3JlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDApIAotRkFJTCBO
b2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBvbiBkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93
IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlv
biAiZnVuY3Rpb24gKCkgeworRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZv
cmUoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQg
d2l0aCAxIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29k
ZV0KIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4
Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlw
ZUVycm9yIiAoIlR5cGVFcnJvciIpCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZSgiYWJjIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhcHBlbmRDaGlsZCIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgKDQxKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBw
ZW5kQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoImFiYyIpIHdpdGggdG9v
IGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVk
IHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNv
ZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBF
eGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5
cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBl
bmRDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6
IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhYmMiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJl
cGxhY2VDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQyKSAKLUZBSUwgTm9kZSBpbnRlcmZh
Y2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUoImFiYyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3Ig
YXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9u
ICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJj
aHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3Ii
KSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGlu
dGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZSgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVF
cnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhYmMi
KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlbW92ZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAoNDMpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBv
biBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBt
dXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50
cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9i
amVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVy
cm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9k
ZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUoImFiYyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJy
b3IgCiBQQVNTIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
ImFiYyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYWRkRXZlbnRMaXN0ZW5lciIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgKDApIAogRkFJTCBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGNhbGxpbmcgYWRk
RXZlbnRMaXN0ZW5lcihET01TdHJpbmcsRXZlbnRMaXN0ZW5lcixib29sZWFuKSBvbiBkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93
IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlv
biAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KQEAgLTE1NDMsMjEgKzE1MTMsMTUg
QEAgRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpc0RlZmF1bHROYW1lc3BhY2UoRE9NU3Ry
aW5nKSBvbiB4bWxEb2MuY3JlYXRlUHJvY2UKICAgICBbbmF0aXZlIGNvZGVdCiB9IiBkaWQgbm90
IHRocm93CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiB4bWxEb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uKCJhYmMiLCAiZGVmIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJpbnNlcnRCZWZvcmUi
IHdpdGggdGhlIHByb3BlciB0eXBlICg0MCkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5n
IGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24oImFiYyIsICJkZWYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlw
ZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJm
dW5jdGlvbiAoKSB7CitGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShO
b2RlLE5vZGUpIG9uIHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oImFiYyIsICJk
ZWYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90
aHJvd3M6IENhbGxlZCB3aXRoIDEgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAg
ICAgW25hdGl2ZSBjb2RlXQogfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVz
dEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0
ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKIFBBU1MgTm9kZSBpbnRlcmZhY2U6
IHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oImFiYyIsICJkZWYiKSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgImFwcGVuZENoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDEpIAot
RkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiB4bWxEb2Mu
Y3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJhYmMiLCAiZGVmIikgd2l0aCB0b28gZmV3IGFy
Z3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAw
IGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0i
IHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlv
biAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9y
IiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENoaWxk
KE5vZGUpIG9uIHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oImFiYyIsICJkZWYi
KSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2Rl
IGludGVyZmFjZTogeG1sRG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiYWJjIiwgImRl
ZiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVwbGFjZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAoNDIpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9k
ZSxOb2RlKSBvbiB4bWxEb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJhYmMiLCAiZGVm
Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhy
b3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAg
IFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RF
cnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVk
IG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBj
YWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIHhtbERvYy5jcmVhdGVQcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24oImFiYyIsICJkZWYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhy
b3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGludGVyZmFjZTogeG1sRG9jLmNyZWF0ZVByb2Nlc3Np
bmdJbnN0cnVjdGlvbigiYWJjIiwgImRlZiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVtb3Zl
Q2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MykgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBj
YWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24oImFiYyIsICJkZWYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlw
ZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJm
dW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjog
Tm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3Rl
ZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTog
Y2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiB4bWxEb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uKCJhYmMiLCAiZGVmIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5
cGVFcnJvciAKIFBBU1MgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiB4bWxEb2MuY3JlYXRlUHJvY2Vz
c2luZ0luc3RydWN0aW9uKCJhYmMiLCAiZGVmIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhZGRF
dmVudExpc3RlbmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMCkgCiBGQUlMIEV2ZW50VGFyZ2V0
IGludGVyZmFjZTogY2FsbGluZyBhZGRFdmVudExpc3RlbmVyKERPTVN0cmluZyxFdmVudExpc3Rl
bmVyLGJvb2xlYW4pIG9uIHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oImFiYyIs
ICJkZWYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2Vy
dF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7
CiAgICAgW25hdGl2ZSBjb2RlXQpAQCAtMTY3MywyMSArMTYzNywxNSBAQCBGQUlMIE5vZGUgaW50
ZXJmYWNlOiBjYWxsaW5nIGlzRGVmYXVsdE5hbWVzcGFjZShET01TdHJpbmcpIG9uIGRvY3VtZW50
LmNyZWF0ZUNvbQogICAgIFtuYXRpdmUgY29kZV0KIH0iIGRpZCBub3QgdGhyb3cKIFBBU1MgTm9k
ZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIpIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAiaW5zZXJ0QmVmb3JlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDApIAotRkFJTCBO
b2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBvbiBkb2N1bWVu
dC5jcmVhdGVDb21tZW50KCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cg
VHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9u
ICJmdW5jdGlvbiAoKSB7CitGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9y
ZShOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIpIHdpdGggdG9vIGZl
dyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdp
dGggMSBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVd
CiB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNl
cHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVF
cnJvciIgKCJUeXBlRXJyb3IiKQogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRl
Q29tbWVudCgiYWJjIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhcHBlbmRDaGlsZCIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgKDQxKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5k
Q2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiYWJjIikgd2l0aCB0b28gZmV3
IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0
aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0K
LX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2Vw
dGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVy
cm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENo
aWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIpIHdpdGggdG9vIGZldyBh
cmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1
bWVudC5jcmVhdGVDb21tZW50KCJhYmMiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlcGxhY2VD
aGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQyKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNh
bGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgi
YWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRf
dGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewot
ICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVl
c3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVj
dGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNl
OiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUNvbW1l
bnQoImFiYyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQ
QVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVDb21tZW50KCJhYmMiKSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgInJlbW92ZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDMpIAot
RkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiBkb2N1bWVu
dC5jcmVhdGVDb21tZW50KCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cg
VHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9u
ICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJv
cjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBl
Y3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFj
ZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVDb21tZW50KCJh
YmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBF
dmVudFRhcmdldCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAiYWRkRXZlbnRMaXN0ZW5lciIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
KDApIAogRkFJTCBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGNhbGxpbmcgYWRkRXZlbnRMaXN0ZW5l
cihET01TdHJpbmcsRXZlbnRMaXN0ZW5lcixib29sZWFuKSBvbiBkb2N1bWVudC5jcmVhdGVDb21t
ZW50KCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFz
c2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAo
KSB7CiAgICAgW25hdGl2ZSBjb2RlXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1hcHBlbmRDaGlsZC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9u
b2Rlcy9Ob2RlLWFwcGVuZENoaWxkLWV4cGVjdGVkLnR4dAppbmRleCAzYTI4OWU4MzJlNmEyZDk0
ODkwYzAyNGE1NjE0OTY4YzAxNDU5M2JkLi5iMTMwY2FmZmQ4NDgyNzY0ZjcwYzM0MDNlNGYwODAy
ODlhMmE5MGUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLWFwcGVuZENoaWxkLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2Rl
LWFwcGVuZENoaWxkLWV4cGVjdGVkLnR4dApAQCAtMSwxMiArMSwxMiBAQAogCiAKLUZBSUwgV2Vi
SURMIHRlc3RzIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQobnVsbCkgfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRF
cnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3Qg
IlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBXZWJJREwgdGVzdHMgCiBQQVNTIEFwcGVu
ZGluZyB0byBhIGxlYWYgbm9kZS4gCi1GQUlMIEFwcGVuZGluZyBudWxsIHRvIGEgdGV4dCBub2Rl
IGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IG5vZGUuYXBwZW5kQ2hpbGQo
bnVsbCkgfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00g
RXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJU
eXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgQXBwZW5kaW5nIG51bGwgdG8gYSB0ZXh0IG5v
ZGUgCiBQQVNTIEFwcGVuZGluZyB0byBhIHRleHQgbm9kZSAKLUZBSUwgQXBwZW5kaW5nIG51bGwg
dG8gYSBjb21tZW50IGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IG5vZGUu
YXBwZW5kQ2hpbGQobnVsbCkgfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVz
dEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0
ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgQXBwZW5kaW5nIG51bGwg
dG8gYSBjb21tZW50IAogUEFTUyBBcHBlbmRpbmcgdG8gYSBjb21tZW50IAotRkFJTCBBcHBlbmRp
bmcgbnVsbCB0byBhIGRvY3R5cGUgYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gImZ1bmN0aW9uICgp
IHsgbm9kZS5hcHBlbmRDaGlsZChudWxsKSB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJj
aHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3Ii
KSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBBcHBlbmRp
bmcgbnVsbCB0byBhIGRvY3R5cGUgCiBQQVNTIEFwcGVuZGluZyB0byBhIGRvY3R5cGUgCiBQQVNT
IEFwcGVuZGluZyBhIGRvY3VtZW50IAogUEFTUyBBZG9wdGluZyBhbiBvcnBoYW4gCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rl
cy9Ob2RlLWluc2VydEJlZm9yZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLWluc2VydEJlZm9yZS1leHBlY3Rl
ZC50eHQKaW5kZXggNTZiY2QyYTgwYmIzNGQzN2FjMDg0Zjc3NDE2NGYwMWNmYmU5NGE3OC4uYzY2
MjIzM2RjMDU2Mzg1N2YyM2I2MDY5MDM0YWM4Zjc1YjhjZWE2YyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1pbnNl
cnRCZWZvcmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtaW5zZXJ0QmVmb3JlLWV4cGVjdGVkLnR4dApA
QCAtMSwxMiArMSwxMiBAQAogCi1GQUlMIENhbGxpbmcgaW5zZXJ0QmVmb3JlIHdpdGggYSBub24t
Tm9kZSBmaXJzdCBhcmd1bWVudCBtdXN0IHRocm93IFR5cGVFcnJvci4gYXNzZXJ0X3Rocm93czog
ZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUobnVsbCwg
bnVsbCkgfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlv
biA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBl
RXJyb3IiKQotRkFJTCBDYWxsaW5nIGluc2VydEJlZm9yZSB3aXRoIGEgbm9uLU5vZGUgZmlyc3Qg
YXJndW1lbnQgb24gYSBsZWFmIG5vZGUgRG9jdW1lbnRUeXBlIG11c3QgdGhyb3cgVHlwZUVycm9y
LiBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyBub2RlLmluc2VydEJlZm9y
ZShudWxsLCBudWxsKSB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJy
b3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBv
YmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBDYWxsaW5nIGluc2VydEJlZm9y
ZSB3aXRoIGEgbm9uLU5vZGUgZmlyc3QgYXJndW1lbnQgbXVzdCB0aHJvdyBUeXBlRXJyb3IuIAor
UEFTUyBDYWxsaW5nIGluc2VydEJlZm9yZSB3aXRoIGEgbm9uLU5vZGUgZmlyc3QgYXJndW1lbnQg
b24gYSBsZWFmIG5vZGUgRG9jdW1lbnRUeXBlIG11c3QgdGhyb3cgVHlwZUVycm9yLiAKIFBBU1Mg
Q2FsbGluZyBpbnNlcnRCZWZvcmUgYW4gYSBsZWFmIG5vZGUgRG9jdW1lbnRUeXBlIG11c3QgdGhy
b3cgSElFUkFSQ0hZX1JFUVVFU1RfRVJSLiAKLUZBSUwgQ2FsbGluZyBpbnNlcnRCZWZvcmUgd2l0
aCBhIG5vbi1Ob2RlIGZpcnN0IGFyZ3VtZW50IG9uIGEgbGVhZiBub2RlIFRleHQgbXVzdCB0aHJv
dyBUeXBlRXJyb3IuIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IG5vZGUu
aW5zZXJ0QmVmb3JlKG51bGwsIG51bGwpIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNo
eVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIp
IGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIENhbGxpbmcg
aW5zZXJ0QmVmb3JlIHdpdGggYSBub24tTm9kZSBmaXJzdCBhcmd1bWVudCBvbiBhIGxlYWYgbm9k
ZSBUZXh0IG11c3QgdGhyb3cgVHlwZUVycm9yLiAKIFBBU1MgQ2FsbGluZyBpbnNlcnRCZWZvcmUg
YW4gYSBsZWFmIG5vZGUgVGV4dCBtdXN0IHRocm93IEhJRVJBUkNIWV9SRVFVRVNUX0VSUi4gCi1G
QUlMIENhbGxpbmcgaW5zZXJ0QmVmb3JlIHdpdGggYSBub24tTm9kZSBmaXJzdCBhcmd1bWVudCBv
biBhIGxlYWYgbm9kZSBDb21tZW50IG11c3QgdGhyb3cgVHlwZUVycm9yLiBhc3NlcnRfdGhyb3dz
OiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyBub2RlLmluc2VydEJlZm9yZShudWxsLCBudWxsKSB9
IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRp
b24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJv
ciIgKCJUeXBlRXJyb3IiKQorUEFTUyBDYWxsaW5nIGluc2VydEJlZm9yZSB3aXRoIGEgbm9uLU5v
ZGUgZmlyc3QgYXJndW1lbnQgb24gYSBsZWFmIG5vZGUgQ29tbWVudCBtdXN0IHRocm93IFR5cGVF
cnJvci4gCiBQQVNTIENhbGxpbmcgaW5zZXJ0QmVmb3JlIGFuIGEgbGVhZiBub2RlIENvbW1lbnQg
bXVzdCB0aHJvdyBISUVSQVJDSFlfUkVRVUVTVF9FUlIuIAotRkFJTCBDYWxsaW5nIGluc2VydEJl
Zm9yZSB3aXRoIGEgbm9uLU5vZGUgZmlyc3QgYXJndW1lbnQgb24gYSBsZWFmIG5vZGUgUHJvY2Vz
c2luZ0luc3RydWN0aW9uIG11c3QgdGhyb3cgVHlwZUVycm9yLiBhc3NlcnRfdGhyb3dzOiBmdW5j
dGlvbiAiZnVuY3Rpb24gKCkgeyBub2RlLmluc2VydEJlZm9yZShudWxsLCBudWxsKSB9IiB0aHJl
dyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIg
KCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJU
eXBlRXJyb3IiKQorUEFTUyBDYWxsaW5nIGluc2VydEJlZm9yZSB3aXRoIGEgbm9uLU5vZGUgZmly
c3QgYXJndW1lbnQgb24gYSBsZWFmIG5vZGUgUHJvY2Vzc2luZ0luc3RydWN0aW9uIG11c3QgdGhy
b3cgVHlwZUVycm9yLiAKIFBBU1MgQ2FsbGluZyBpbnNlcnRCZWZvcmUgYW4gYSBsZWFmIG5vZGUg
UHJvY2Vzc2luZ0luc3RydWN0aW9uIG11c3QgdGhyb3cgSElFUkFSQ0hZX1JFUVVFU1RfRVJSLiAK
IFBBU1MgQ2FsbGluZyBpbnNlcnRCZWZvcmUgd2l0aCBhbiBpbmNsdXNpdmUgYW5jZXN0b3Igb2Yg
dGhlIGNvbnRleHQgb2JqZWN0IG11c3QgdGhyb3cgSElFUkFSQ0hZX1JFUVVFU1RfRVJSLiAKIFBB
U1MgQ2FsbGluZyBpbnNlcnRCZWZvcmUgd2l0aCBhIHJlZmVyZW5jZSBjaGlsZCB3aG9zZSBwYXJl
bnQgaXMgbm90IHRoZSBjb250ZXh0IG5vZGUgbXVzdCB0aHJvdyBhIE5vdEZvdW5kRXJyb3IuIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9k
b20vbm9kZXMvTm9kZS1yZW1vdmVDaGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLXJlbW92ZUNoaWxkLWV4
cGVjdGVkLnR4dAppbmRleCAwMjkxMGJmOWNkMjQwYTBjZGQ4M2NmMTM3NjBjNDU2MGRmZDk0M2Ey
Li4xMzk3YzRlYmVmNmM5NzhlMTAzYWIzMWEzODE2ZjkyZGVkYzNlZjU5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2Rl
LXJlbW92ZUNoaWxkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLXJlbW92ZUNoaWxkLWV4cGVjdGVkLnR4
dApAQCAtMjcsNSArMjcsNSBAQCBQQVNTIENhbGxpbmcgcmVtb3ZlQ2hpbGQgb24gYSB0ZXh0IGZy
b20gYSBzeW50aGV0aWMgZG9jdW1lbnQgd2l0aCBubyBjaGlsZHJlbiBzaAogUEFTUyBQYXNzaW5n
IGEgZGV0YWNoZWQgY29tbWVudCBmcm9tIGEgc3ludGhldGljIGRvY3VtZW50IHRvIHJlbW92ZUNo
aWxkIHNob3VsZCBub3QgYWZmZWN0IGl0LiAKIFBBU1MgUGFzc2luZyBhIG5vbi1kZXRhY2hlZCBj
b21tZW50IGZyb20gYSBzeW50aGV0aWMgZG9jdW1lbnQgdG8gcmVtb3ZlQ2hpbGQgc2hvdWxkIG5v
dCBhZmZlY3QgaXQuIAogUEFTUyBDYWxsaW5nIHJlbW92ZUNoaWxkIG9uIGEgY29tbWVudCBmcm9t
IGEgc3ludGhldGljIGRvY3VtZW50IHdpdGggbm8gY2hpbGRyZW4gc2hvdWxkIHRocm93IE5PVF9G
T1VORF9FUlIuIAotRkFJTCBQYXNzaW5nIGEgdmFsdWUgdGhhdCBpcyBub3QgYSBOb2RlIHJlZmVy
ZW5jZSB0byByZW1vdmVDaGlsZCBzaG91bGQgdGhyb3cgVHlwZUVycm9yLiBhc3NlcnRfdGhyb3dz
OiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKG51bGwp
IH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIg
KCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9y
IikKK1BBU1MgUGFzc2luZyBhIHZhbHVlIHRoYXQgaXMgbm90IGEgTm9kZSByZWZlcmVuY2UgdG8g
cmVtb3ZlQ2hpbGQgc2hvdWxkIHRocm93IFR5cGVFcnJvci4gCiBiCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLXJl
cGxhY2VDaGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLXJlcGxhY2VDaGlsZC1leHBlY3RlZC50eHQKaW5k
ZXggZTdmNzBmYTM2YzVjMWNiZjkyYzdlNGI3YTQ5ZmJmOGFkY2JjNGY2ZC4uZDE3YzhiNTcwZWIx
MjFlOTY3MzZhOWM2OTRmYjI1ZjE4MWFhZmNjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1yZXBsYWNlQ2hpbGQt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZG9tL25vZGVzL05vZGUtcmVwbGFjZUNoaWxkLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsx
LDUgQEAKIAotRkFJTCBQYXNzaW5nIG51bGwgdG8gcmVwbGFjZUNoaWxkIHNob3VsZCB0aHJvdyBh
IFR5cGVFcnJvci4gYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBh
LnJlcGxhY2VDaGlsZChudWxsLCBudWxsKTsKLSAgfSIgZGlkIG5vdCB0aHJvdworUEFTUyBQYXNz
aW5nIG51bGwgdG8gcmVwbGFjZUNoaWxkIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvci4gCiBGQUlM
IElmIGNoaWxkJ3MgcGFyZW50IGlzIG5vdCB0aGUgY29udGV4dCBub2RlLCBhIE5vdEZvdW5kRXJy
b3IgZXhjZXB0aW9uIHNob3VsZCBiZSB0aHJvd24gYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gImZ1
bmN0aW9uICgpIHsKICAgICBhLnJlcGxhY2VDaGlsZChhLCBjKTsKICAgfSIgdGhyZXcgb2JqZWN0
ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiIHRoYXQgaXMg
bm90IGEgRE9NRXhjZXB0aW9uIE5vdEZvdW5kRXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVh
bCB0byAzLCBleHBlY3RlZCA4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9pbnRlcmZh
Y2VzLWV4cGVjdGVkLnR4dAppbmRleCBmMmNjNDAzYzNlYWViNmVhODgwYTdmOWI3ZWZhM2UyMDI1
MzU4MDcwLi4xMTU5ZDc0NWM5ZjZhNWEyYjJmNjE1NDRmMWMxOWFkNDBkNzc2N2MzIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9t
L2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKQEAgLTEy
MjUsMjEgKzEyMjUsMTUgQEAgRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpc0RlZmF1bHRO
YW1lc3BhY2UoRE9NU3RyaW5nKSBvbiBpZnJhbWUuY29udGVudERvY3UKICAgICBbbmF0aXZlIGNv
ZGVdCiB9IiBkaWQgbm90IHRocm93CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBpZnJhbWUuY29udGVu
dERvY3VtZW50IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5zZXJ0QmVmb3JlIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAoNDApIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZv
cmUoTm9kZSxOb2RlKSBvbiBpZnJhbWUuY29udGVudERvY3VtZW50IHdpdGggdG9vIGZldyBhcmd1
bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBh
cmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKK0ZBSUwgTm9kZSBpbnRlcmZhY2U6IGNh
bGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24gaWZyYW1lLmNvbnRlbnREb2N1bWVudCB3
aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6
IENhbGxlZCB3aXRoIDEgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAgICAgW25h
dGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4
Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIg
KCJUeXBlRXJyb3IiKQorfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVy
cm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhwZWN0ZWQg
b2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGlm
cmFtZS5jb250ZW50RG9jdW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhcHBlbmRDaGlsZCIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQxKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcg
YXBwZW5kQ2hpbGQoTm9kZSkgb24gaWZyYW1lLmNvbnRlbnREb2N1bWVudCB3aXRoIHRvbyBmZXcg
YXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRo
IDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQot
fSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAo
Ik5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3Ii
KQorUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiBpZnJh
bWUuY29udGVudERvY3VtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBl
RXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBpZnJhbWUuY29udGVudERvY3VtZW50IG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAicmVwbGFjZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDIp
IAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBv
biBpZnJhbWUuY29udGVudERvY3VtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rp
b24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiBkaWQgbm90IHRocm93CitQ
QVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIGlm
cmFtZS5jb250ZW50RG9jdW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5
cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGlmcmFtZS5jb250ZW50RG9jdW1lbnQgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJyZW1vdmVDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQz
KSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24gaWZy
YW1lLmNvbnRlbnREb2N1bWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlw
ZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJm
dW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjog
Tm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3Rl
ZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTog
Y2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiBpZnJhbWUuY29udGVudERvY3VtZW50IHdpdGgg
dG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIEV2ZW50VGFyZ2V0
IGludGVyZmFjZTogaWZyYW1lLmNvbnRlbnREb2N1bWVudCBtdXN0IGluaGVyaXQgcHJvcGVydHkg
ImFkZEV2ZW50TGlzdGVuZXIiIHdpdGggdGhlIHByb3BlciB0eXBlICgwKSAKIEZBSUwgRXZlbnRU
YXJnZXQgaW50ZXJmYWNlOiBjYWxsaW5nIGFkZEV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nLEV2ZW50
TGlzdGVuZXIsYm9vbGVhbikgb24gaWZyYW1lLmNvbnRlbnREb2N1bWVudCB3aXRoIHRvbyBmZXcg
YXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRo
IDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAgICAgW25hdGl2ZSBjb2RlXQpA
QCAtMTU1MSwyMSArMTU0NSwxNSBAQCBGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGlzRGVm
YXVsdE5hbWVzcGFjZShET01TdHJpbmcpIG9uIGRvY3VtZW50LmltcGxlbWVudAogICAgIFtuYXRp
dmUgY29kZV0KIH0iIGRpZCBub3QgdGhyb3cKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50
LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgImluc2VydEJlZm9yZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQwKSAKLUZB
SUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24gZG9j
dW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwgIiIsIG51bGwpIHdpdGgg
dG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2Fs
bGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKK0ZBSUwgTm9kZSBp
bnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuaW1w
bGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwgIiIsIG51bGwpIHdpdGggdG9vIGZldyBh
cmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGgg
MSBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCi19
IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgi
Tm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIp
Cit9IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNl
cHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVF
cnJvciIgKCJUeXBlRXJyb3IiKQogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuaW1wbGVt
ZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwgIiIsIG51bGwpIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAiYXBwZW5kQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MSkgCi1GQUlMIE5vZGUg
aW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmltcGxlbWVu
dGF0aW9uLmNyZWF0ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSB3aXRoIHRvbyBmZXcgYXJndW1l
bnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJn
dW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhy
ZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZv
dW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFT
UyBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5p
bXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudChudWxsLCAiIiwgbnVsbCkgd2l0aCB0b28gZmV3
IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRv
Y3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgInJlcGxhY2VDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQy
KSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkg
b24gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwgIiIsIG51bGwp
IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93
czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBb
bmF0aXZlIGNvZGVdCi19IiBkaWQgbm90IHRocm93CitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxs
aW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNy
ZWF0ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3Qg
dGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuaW1wbGVtZW50
YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwgIiIsIG51bGwpIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAicmVtb3ZlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MykgCi1GQUlMIE5vZGUgaW50
ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmltcGxlbWVudGF0
aW9uLmNyZWF0ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRz
IG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1l
bnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcg
b2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5k
RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBO
b2RlIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5pbXBs
ZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudChudWxsLCAiIiwgbnVsbCkgd2l0aCB0b28gZmV3IGFy
Z3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgRXZlbnRUYXJnZXQgaW50ZXJmYWNl
OiBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudChudWxsLCAiIiwgbnVsbCkg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJhZGRFdmVudExpc3RlbmVyIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAoMCkgCiBGQUlMIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogY2FsbGluZyBhZGRFdmVudExp
c3RlbmVyKERPTVN0cmluZyxFdmVudExpc3RlbmVyLGJvb2xlYW4pIG9uIGRvY3VtZW50LmltcGxl
bWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSB3aXRoIHRvbyBmZXcgYXJn
dW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAg
YXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAgICAgW25hdGl2ZSBjb2RlXQpAQCAt
MjE3MSwyMSArMjE1OSwxNSBAQCBGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGlzRGVmYXVs
dE5hbWVzcGFjZShET01TdHJpbmcpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZQogICAgIFtuYXRpdmUg
Y29kZV0KIH0iIGRpZCBub3QgdGhyb3cKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoIm5vc2NyaXB0IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJpbnNlcnRCZWZv
cmUiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MCkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxs
aW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm5v
c2NyaXB0Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3Nl
cnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkg
eworRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBv
biBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJub3NjcmlwdCIpIHdpdGggdG9vIGZldyBhcmd1bWVu
dHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMSBhcmd1
bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJl
dyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91
bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCit9IiBk
aWQgbm90IHRocm93CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJub3NjcmlwdCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXBwZW5kQ2hpbGQiIHdpdGggdGhl
IHByb3BlciB0eXBlICg0MSkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENo
aWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm5vc2NyaXB0Iikgd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQg
d2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29k
ZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24g
OCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVy
cm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibm9zY3JpcHQiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRz
IG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgibm9zY3JpcHQiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlcGxhY2VDaGls
ZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQyKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxp
bmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibm9z
Y3JpcHQiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2Vy
dF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7
Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgZGlkIG5vdCB0aHJvdworUEFTUyBOb2RlIGludGVyZmFj
ZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJub3NjcmlwdCIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJy
b3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJub3Njcmlw
dCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVtb3ZlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0
eXBlICg0MykgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUp
IG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm5vc2NyaXB0Iikgd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFy
Z3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRo
cmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJOb3RG
b3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BB
U1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgibm9zY3JpcHQiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhy
b3cgVHlwZUVycm9yIAogUEFTUyBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoIm5vc2NyaXB0IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhZGRFdmVudExpc3Rl
bmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMCkgCiBGQUlMIEV2ZW50VGFyZ2V0IGludGVyZmFj
ZTogY2FsbGluZyBhZGRFdmVudExpc3RlbmVyKERPTVN0cmluZyxFdmVudExpc3RlbmVyLGJvb2xl
YW4pIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm5vc2NyaXB0Iikgd2l0aCB0b28gZmV3IGFy
Z3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAw
IGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9kb3Qtbm9kZS1iYXNlLWV4Y2VwdGlvbi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vZG90LW5vZGUtYmFzZS1leGNlcHRpb24tZXhw
ZWN0ZWQudHh0CmluZGV4IGY0NDA2Y2JmZWQzNjFkNjdiOWM1NmU3NWIxOWUxODMyOGFiM2JjZDIu
LjM2ZDUzYjRlYjgxNWExYWQzYjgwY2RjNzdmMTAwODljMzI3MDMwMGYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2pzL2RvbS9kb3Qtbm9kZS1iYXNlLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvanMvZG9tL2RvdC1ub2RlLWJhc2UtZXhjZXB0aW9uLWV4cGVjdGVkLnR4
dApAQCAtMyw3ICszLDcgQEAgVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IGEgY29ycmVjdCBleGNlcHRp
b24gaXMgcmFpc2VkIHdoZW4gY2FsY3VsYXRpbmcgdGhlIGJhc2UgdmEKIE9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KIAogCi1QQVNTIChkb2N1bWVudC5hcHBlbmRDaGlsZCgpKS5mb29iYXIoKSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOC4KK1BB
U1MgKGRvY3VtZW50LmFwcGVuZENoaWxkKCkpLmZvb2JhcigpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRF
U1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMv
ZG90LW5vZGUtYmFzZS1leGNlcHRpb24uanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRl
c3RzL2RvdC1ub2RlLWJhc2UtZXhjZXB0aW9uLmpzCmluZGV4IDlmMzYyYTdmNzg4MTdiY2I4ZmM3
Yzg3ZWQyNmM2M2NmMmE3OGExOTUuLjcxZDQ3MTk5OTc1NjU4NDMyOWI4ZGRjZDc0N2M3NzcxZTQ0
MDc1MWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvZG90LW5v
ZGUtYmFzZS1leGNlcHRpb24uanMKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0
cy9kb3Qtbm9kZS1iYXNlLWV4Y2VwdGlvbi5qcwpAQCAtMyw0ICszLDQgQEAgZGVzY3JpcHRpb24o
CiApOwogCiAvLyBTaG91bGQgYmUgYSBET00gZXhjZXB0aW9uLCBub3QganVzdCBzb21lICJUeXBl
RXJyb3I6IE51bGwgdmFsdWUiLgotc2hvdWxkVGhyb3coJyhkb2N1bWVudC5hcHBlbmRDaGlsZCgp
KS5mb29iYXIoKScsICciRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCInKTsK
K3Nob3VsZFRocm93KCcoZG9jdW1lbnQuYXBwZW5kQ2hpbGQoKSkuZm9vYmFyKCknLCAnIlR5cGVF
cnJvcjogVHlwZSBlcnJvciInKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260931</attachid>
            <date>2015-09-10 09:44:41 -0700</date>
            <delta_ts>2015-09-10 11:02:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148971-20150910094434.patch</filename>
            <type>text/plain</type>
            <size>253230</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTlmOWI0MDdkNDVjOWIz
Y2Q0MzU5Y2Y0OTYzNTc3ZjVkNzc1OTFmMS4uNmMyOGM5Yjg0Mzc0NzUxZDgxMzhiMDRhYjQ5ZDYz
ZGJmOWQwZTgxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE1LTA5LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTm9kZS5hcHBlbmRDaGlsZChu
dWxsKSAvIHJlcGxhY2VDaGlsZChudWxsLCBudWxsKSAvIHJlbW92ZUNoaWxkKG51bGwpIC8gaW5z
ZXJ0QmVmb3JlKG51bGwsIHJlZikgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg5NzEKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzIyNTYwODgzPgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjI1NTkyMjU+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIE5vZGUuYXBw
ZW5kQ2hpbGQobnVsbCkgLyByZXBsYWNlQ2hpbGQobnVsbCwgbnVsbCkgLyByZW1vdmVDaGlsZChu
dWxsKQorICAgICAgICBhbmQgaW5zZXJ0QmVmb3JlKG51bGwsIHJlZikgc2hvdWxkIHRocm93IGEg
VHlwZUVycm9yIGluc3RlYWQgb2YgYQorICAgICAgICBOb3RGb3VuZEVycm9yLCBhcyBwZXIgdGhl
IHNwZWNpZmljYXRpb246CisgICAgICAgIGh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jbm9k
ZQorCisgICAgICAgIFRoZSBwYXJhbWV0ZXJzIGFyZSBub3QgbnVsbGFibGUgc28gdGhlIFdlYiBJ
REwgc3BlY2lmaWNhdGlvbiBzYXlzCisgICAgICAgIHdlIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJv
ciBpbiB0aGlzIGNhc2UuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtb3ZlcyB0aGUgbnVsbC1jaGVj
a2luZyBmcm9tIENvbnRhaW5lck5vZGUgdG8gdGhlIG1ldGhvZHMKKyAgICAgICAgb24gTm9kZS4g
VGhlIG51bGwtY2hlY2tpbmcgaXMgc3VwcG9zZWQgdG8gYmUgZG9uZSBieSB0aGUgYmluZGluZ3Mg
Y29kZQorICAgICAgICBidXQgb3VyIGdlbmVyYXRvciBjdXJyZW50bHkgZG9lcyBub3Qgc3VwcG9y
dCB0aGlzIHNvIHdlIGRvIHRoZSBudWxsCisgICAgICAgIGNoZWNraW5nIGFzIGNsb3NlIHRvIHRo
ZSBiaW5kaW5ncyBhcyBwb3NzaWJsZS4gVGhlIGJpbmRpbmdzIGNvZGUgaXMKKyAgICAgICAgY2Fs
bGluZyB0aGUgbWV0aG9kcyBvbiBOb2RlLiBUaGlzIGFsc28gbWFrZXMgc3VyZSB3ZSB0aHJvdyBh
IFR5cGVFcnJvcgorICAgICAgICBmb3IgbnVsbC1hcmd1bWVudCB3aGVuIHRoZSBOb2RlIGlzIG5v
dCBhIENvbnRhaW5lck5vZGUuIEZvciBlLmcuCisgICAgICAgIFRleHQuYXBwZW5kQ2hpbGQobnVs
bCkgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yIHRvby4KKworICAgICAgICBUaGUgbWV0aG9kcyBv
biBDb250YWluZXJOb2RlIG5vdyB0YWtlIHJlZmVyZW5jZXMgaW5zdGVhYWQgb2YgcG9pbnRlcgor
ICAgICAgICBwYXJhbWV0ZXJzIG5vdyB0aGF0IHRoZSBudWxsLWNoZWNraW5nIGlzIGRvbmUgYXQg
dGhlIGNhbGwgc2l0ZSBpbgorICAgICAgICBOb2RlLiBUaGlzIGxlYWQgdG8gYSBsb3Qgb2YgY29k
ZSB1cGRhdGUgYXMgdGhvc2UgbWV0aG9kcyBhcmUgdXNlZAorICAgICAgICBhIGxvdCB0aHJvdWdo
b3V0IHRoZSBjb2RlIGJhc2UuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBhbHJlYWR5IGNvdmVy
ZWQgYnkgcHJlLWV4aXN0aW5nIGxheW91dCB0ZXN0cy4KKwogMjAxNS0wOS0wOSAgR3l1eW91bmcg
S2ltICA8Z3l1eW91bmcua2ltQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIGFsbCB1c2Vz
IG9mIFBhc3NSZWZQdHIgaW4gV2ViQ29yZS9zdmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA2MGFkZjcz
MmFjODdhYmUwNDEyMjcxM2NmMzU5MTcwODMxZGM5ZTE1Li4xNWIwZjEwZGE1N2VlYzBiM2FhZjVh
ODRmNTk0OTAwNWIxYWQ4MWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIw
MTUtMDktMDggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBOb2Rl
LmFwcGVuZENoaWxkKG51bGwpIC8gcmVwbGFjZUNoaWxkKG51bGwsIG51bGwpIC8gcmVtb3ZlQ2hp
bGQobnVsbCkgLyBpbnNlcnRCZWZvcmUobnVsbCwgcmVmKSBzaG91bGQgdGhyb3cgYSBUeXBlRXJy
b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODk3
MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjI1NjA4ODM+CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8yMjU1OTIyNT4KKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAg
ICAgICAgQ29udGFpbmVyTm9kZTo6YXBwZW5kQ2hpbGQoKSBub3cgdGFrZXMgYSBSZWY8Tm9kZT4m
JiBwYXJhbWV0ZXIgc28gd2UKKyAgICAgICAgbmVlZCB0byB1cGRhdGUgdGhlIGNhbGwgc2l0ZS4K
KworICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06CisgICAgICAgICgtW1dlYkZyYW1lIF9k
b2N1bWVudEZyYWdtZW50V2l0aE5vZGVzQXNQYXJhZ3JhcGhzOl0pOgorCiAyMDE1LTA5LTA3ICBB
bmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjXSBEZWJ1Z1JlbGVh
c2UgYnVpbGRzIHNob3VsZCBsaW5rIGFnYWluc3QgbGliV2ViS2l0U3lzdGVtSW50ZXJmYWNlRWxD
YXBpdGFuLmEgb24gMTAuMTEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA3YzAwNTE3NjhjY2QzZWZhMDVmNjQ2MTBk
ZWIyODRmYjQ0ZjkyNDdmLi4xOTU5Yzg1OWY2ZWJiNWVkNDE2NTFiZjc1ZDExNzEwNzBkNDAyNGQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTUtMDktMDggIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBOb2RlLmFwcGVuZENoaWxkKG51bGwpIC8gcmVw
bGFjZUNoaWxkKG51bGwsIG51bGwpIC8gcmVtb3ZlQ2hpbGQobnVsbCkgLyBpbnNlcnRCZWZvcmUo
bnVsbCwgcmVmKSBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3IKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODk3MQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMjI1NjA4ODM+CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjU1OTIyNT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgQ29udGFpbmVyTm9kZTo6YXBw
ZW5kQ2hpbGQoKSBub3cgdGFrZXMgYSBSZWY8Tm9kZT4mJiBwYXJhbWV0ZXIgc28gd2UKKyAgICAg
ICAgbmVlZCB0byB1cGRhdGUgdGhlIGNhbGwgc2l0ZXMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjpQ
REZQbHVnaW4pOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQW5u
b3RhdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luQW5ub3RhdGlvbjo6YXR0YWNo
KToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luQW5ub3RhdGlvbjo6flBERlBsdWdpbkFubm90
YXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hvaWNl
QW5ub3RhdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlv
bjo6Y3JlYXRlQW5ub3RhdGlvbkVsZW1lbnQpOgorCiAyMDE1LTA5LTA5ICBKb3NlcGggUGVjb3Jh
cm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogUmVtb3Zl
IGRlYWQgV2ViSW5zcGVjdG9yUHJveHkgcmVsYXRlZCBjb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3Bw
CmluZGV4IDhmOTZjOWYwMjhjNzI4ZmRhMDNiYjUwYTdlZTk2YmFmYzNkYTkwNWIuLmI0NGNmZDIw
ODU5ZTc0ZTEzMTdhOTM0YTE1YzU3NjY5OGI3ZTE3YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3Bw
CkBAIC04MSw5ICs4MSw5IEBAIGJvb2wgWW91VHViZVBsdWdpblJlcGxhY2VtZW50OjppbnN0YWxs
UmVwbGFjZW1lbnQoU2hhZG93Um9vdCogcm9vdCkKIHsKICAgICBtX2VtYmVkU2hhZG93RWxlbWVu
dCA9IFlvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQ6OmNyZWF0ZShtX3BhcmVudEVsZW1lbnQtPmRv
Y3VtZW50KCkpOwogCi0gICAgcm9vdC0+YXBwZW5kQ2hpbGQobV9lbWJlZFNoYWRvd0VsZW1lbnQu
Z2V0KCkpOworICAgIHJvb3QtPmFwcGVuZENoaWxkKCptX2VtYmVkU2hhZG93RWxlbWVudCk7CiAK
LSAgICBSZWZQdHI8SFRNTElGcmFtZUVsZW1lbnQ+IGlmcmFtZUVsZW1lbnQgPSBIVE1MSUZyYW1l
RWxlbWVudDo6Y3JlYXRlKEhUTUxOYW1lczo6aWZyYW1lVGFnLCBtX3BhcmVudEVsZW1lbnQtPmRv
Y3VtZW50KCkpOworICAgIFJlZjxIVE1MSUZyYW1lRWxlbWVudD4gaWZyYW1lRWxlbWVudCA9IEhU
TUxJRnJhbWVFbGVtZW50OjpjcmVhdGUoSFRNTE5hbWVzOjppZnJhbWVUYWcsIG1fcGFyZW50RWxl
bWVudC0+ZG9jdW1lbnQoKSk7CiAgICAgaWYgKG1fYXR0cmlidXRlcy5jb250YWlucygid2lkdGgi
KSkKICAgICAgICAgaWZyYW1lRWxlbWVudC0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6d2lkdGhB
dHRyLCBBdG9taWNTdHJpbmcoIjEwMCUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CiAgICAgCkBAIC05OCw3ICs5OCw3IEBAIGJvb2wgWW91VHViZVBsdWdpblJlcGxhY2Vt
ZW50OjppbnN0YWxsUmVwbGFjZW1lbnQoU2hhZG93Um9vdCogcm9vdCkKICAgICAKICAgICAvLyBE
aXNhYmxlIGZyYW1lIGZsYXR0ZW5pbmcgZm9yIHRoaXMgaWZyYW1lLgogICAgIGlmcmFtZUVsZW1l
bnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OnNjcm9sbGluZ0F0dHIsIEF0b21pY1N0cmluZygi
bm8iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgbV9lbWJlZFNo
YWRvd0VsZW1lbnQtPmFwcGVuZENoaWxkKGlmcmFtZUVsZW1lbnQpOworICAgIG1fZW1iZWRTaGFk
b3dFbGVtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoaWZyYW1lRWxlbWVudCkpOwogCiAgICAg
cmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L0RPTUhUTUwubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUwubW0KaW5k
ZXggMGRlMjJjZTNjZGFjNGY3ODhhN2ZkYTdjZjA0NTU3MDZhMDkwNWJmYy4uMDI3NTk1ZTFlOTFi
MmYzYWE2MjhlMjkzNjE1YmE1MWQyZmYwNTlkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvb2JqYy9ET01IVE1MLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29i
amMvRE9NSFRNTC5tbQpAQCAtMTUyLDcgKzE1Miw3IEBAIC0gKERPTURvY3VtZW50RnJhZ21lbnQg
KiljcmVhdGVEb2N1bWVudEZyYWdtZW50V2l0aE1hcmt1cFN0cmluZzooTlNTdHJpbmcgKiltYXJr
CiAtIChET01Eb2N1bWVudEZyYWdtZW50ICopY3JlYXRlRG9jdW1lbnRGcmFnbWVudFdpdGhUZXh0
OihOU1N0cmluZyAqKXRleHQKIHsKICAgICAvLyBGSVhNRTogU2luY2UgdGhpcyBpcyBub3QgYSBj
b250ZXh0dWFsIGZyYWdtZW50LCBpdCB3b24ndCBoYW5kbGUgd2hpdGVzcGFjZSBwcm9wZXJseS4K
LSAgICByZXR1cm4ga2l0KGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoY29yZShzZWxmKS0+Y3JlYXRl
UmFuZ2UoKSwgdGV4dCkuZ2V0KCkpOworICAgIHJldHVybiBraXQoY3JlYXRlRnJhZ21lbnRGcm9t
VGV4dChjb3JlKHNlbGYpLT5jcmVhdGVSYW5nZSgpLCB0ZXh0KS5wdHIoKSk7CiB9CiAKIEBlbmQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9BdHRyLmNwcAppbmRleCAxODU3MGYxZDg3NDMxYTFmM2E0NGRhMDNlNThhMmVjNWZmNzFh
NzhjLi5hYzdiNjZmOTk3MDVkODk5ZWVjZTNjMjg5NGY4OWUxZjgwOWQxNWY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0F0
dHIuY3BwCkBAIC0xMzgsMTEgKzEzOCwxMSBAQCB2b2lkIEF0dHI6OnNldE5vZGVWYWx1ZShjb25z
dCBTdHJpbmcmIHYsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIHNldFZhbHVlKHYsIGVjKTsKIH0K
IAotUmVmUHRyPE5vZGU+IEF0dHI6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXRE
b2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikKK1JlZjxOb2RlPiBBdHRyOjpjbG9uZU5vZGVJbnRl
cm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24pCiB7Ci0gICAg
UmVmUHRyPEF0dHI+IGNsb25lID0gYWRvcHRSZWYobmV3IEF0dHIodGFyZ2V0RG9jdW1lbnQsIHF1
YWxpZmllZE5hbWUoKSwgdmFsdWUoKSkpOwotICAgIGNsb25lQ2hpbGROb2RlcyhjbG9uZS5nZXQo
KSk7Ci0gICAgcmV0dXJuIGNsb25lLnJlbGVhc2UoKTsKKyAgICBSZWY8QXR0cj4gY2xvbmUgPSBh
ZG9wdFJlZigqbmV3IEF0dHIodGFyZ2V0RG9jdW1lbnQsIHF1YWxpZmllZE5hbWUoKSwgdmFsdWUo
KSkpOworICAgIGNsb25lQ2hpbGROb2RlcyhjbG9uZSk7CisgICAgcmV0dXJuIFdURjo6bW92ZShj
bG9uZSk7CiB9CiAKIC8vIERPTSBTZWN0aW9uIDEuMS4xCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vQXR0ci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuaAppbmRleCBjN2E5NGY5
OGYwYmZiNTdlYjBjM2FiNTE3OTg4YTQ0ODBiMzQ5MDEwLi4xMjRjNmQ3YTJhYTI4NjgzMGZjYmEy
OTYyODg4OGI3MjAyMjk5Mjg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmgKQEAgLTgwLDcgKzgwLDcgQEAgcHJpdmF0
ZToKIAogICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIHZhbHVlKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0Tm9kZVZhbHVlKGNvbnN0IFN0cmlu
ZyYsIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBj
bG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmlu
Z09wZXJhdGlvbikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNBdHRyaWJ1dGVOb2Rl
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBjaGls
ZFR5cGVBbGxvd2VkKE5vZGVUeXBlKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9DREFUQVNlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NEQVRB
U2VjdGlvbi5jcHAKaW5kZXggYzU5YmYxZTk1OGZkYTQ1MGFlOTJkZjIyYjc0MDlmZmI5NjhhMGJl
Yi4uYWZkNzMyMjcwZjEyYzZkOGRjZmZiOGZmODI3YTEzOWNjMzFhMzFlNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0NEQVRBU2VjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0NEQVRBU2VjdGlvbi5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgTm9kZTo6Tm9kZVR5cGUgQ0RB
VEFTZWN0aW9uOjpub2RlVHlwZSgpIGNvbnN0CiAgICAgcmV0dXJuIENEQVRBX1NFQ1RJT05fTk9E
RTsKIH0KIAotUmVmUHRyPE5vZGU+IENEQVRBU2VjdGlvbjo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9j
dW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uKQorUmVmPE5vZGU+IENEQVRB
U2VjdGlvbjo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50LCBDbG9u
aW5nT3BlcmF0aW9uKQogewogICAgIHJldHVybiBjcmVhdGUodGFyZ2V0RG9jdW1lbnQsIGRhdGEo
KSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ0RBVEFTZWN0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vQ0RBVEFTZWN0aW9uLmgKaW5kZXggYmY1YTYxYzYyNjg1YjIzNzA1
ZDY0YjRjZTM5NDZhNjM3ODQ5MjNhNy4uZDZiOTkzN2RmYzc1YTU4ZTk2ZWFiNTJkZjI2YWQ5YjRi
N2RlZjI2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NEQVRBU2VjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DREFUQVNlY3Rpb24uaApAQCAtMzYsNyArMzYsNyBAQCBw
cml2YXRlOgogCiAgICAgdmlydHVhbCBTdHJpbmcgbm9kZU5hbWUoKSBjb25zdCBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIE5vZGVUeXBlIG5vZGVUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmly
dHVhbCBSZWZQdHI8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3Bl
cmF0aW9uKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5h
bChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9v
bCBjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IFJlZjxUZXh0PiB2aXJ0dWFsQ3JlYXRlKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21tZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Db21tZW50LmNwcAppbmRleCA0Yzc0YWFmNjNhZDkwNTNjNmFiZTU5NTU2MjMxODVkMjdk
OTg5ZDZiLi40MTI1YTZlYWUxYWRmOWE4Zjg2NmZlYjU0MjlmNGYzZDQyMGI3MjRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0NvbW1lbnQuY3BwCkBAIC00Niw3ICs0Niw3IEBAIE5vZGU6Ok5vZGVUeXBlIENvbW1lbnQ6
Om5vZGVUeXBlKCkgY29uc3QKICAgICByZXR1cm4gQ09NTUVOVF9OT0RFOwogfQogCi1SZWZQdHI8
Tm9kZT4gQ29tbWVudDo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIHRhcmdldERvY3VtZW50
LCBDbG9uaW5nT3BlcmF0aW9uKQorUmVmPE5vZGU+IENvbW1lbnQ6OmNsb25lTm9kZUludGVybmFs
KERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikKIHsKICAgICByZXR1
cm4gY3JlYXRlKHRhcmdldERvY3VtZW50LCBkYXRhKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0NvbW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21tZW50LmgKaW5k
ZXggZmNhYzYwYTMzZTVlMzBhMWU1OWMxZGM5ZWYzYjYzOTRhZGU3Yjc1OS4uMTU2NjMyMzMyYTIw
NjhmM2E5Yjg1MjZjYmNjNzQ2NTQ4NjE1OTljMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0NvbW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tbWVudC5oCkBAIC0zNiw3
ICszNiw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFN0cmluZyBub2RlTmFtZSgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgTm9kZVR5cGUgbm9kZVR5cGUoKSBjb25zdCBvdmVycmlk
ZTsKLSAgICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYs
IENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNsb25l
Tm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCBib29sIGNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUpIGNvbnN0IG92ZXJyaWRlOwog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCmluZGV4IGYwNjMxYjZiZGQ0ZGE3
ZGEyZGE0YmQ0ZmE5OTRjMTljZjk5MGMzZDUuLjYzMTQxNzUzNGZiNmVjYTBkYzY2N2QyOTE5MTYy
Mjk3YjY4MzViYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2Rl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKQEAgLTc2LDcg
Kzc2LDcgQEAgc3RhdGljIHZvaWQgY29sbGVjdENoaWxkcmVuQW5kUmVtb3ZlRnJvbU9sZFBhcmVu
dChOb2RlJiBub2RlLCBOb2RlVmVjdG9yJiBub2RlcywKICAgICBpZiAoIWlzPERvY3VtZW50RnJh
Z21lbnQ+KG5vZGUpKSB7CiAgICAgICAgIG5vZGVzLmFwcGVuZChub2RlKTsKICAgICAgICAgaWYg
KENvbnRhaW5lck5vZGUqIG9sZFBhcmVudCA9IG5vZGUucGFyZW50Tm9kZSgpKQotICAgICAgICAg
ICAgb2xkUGFyZW50LT5yZW1vdmVDaGlsZCgmbm9kZSwgZWMpOworICAgICAgICAgICAgb2xkUGFy
ZW50LT5yZW1vdmVDaGlsZChub2RlLCBlYyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAg
LTE0NiwxMyArMTQ2LDEzIEBAIENvbnRhaW5lck5vZGU6On5Db250YWluZXJOb2RlKCkKICAgICBy
ZW1vdmVEZXRhY2hlZENoaWxkcmVuKCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBpc0NoaWxk
VHlwZUFsbG93ZWQoQ29udGFpbmVyTm9kZSogbmV3UGFyZW50LCBOb2RlKiBjaGlsZCkKK3N0YXRp
YyBpbmxpbmUgYm9vbCBpc0NoaWxkVHlwZUFsbG93ZWQoQ29udGFpbmVyTm9kZSYgbmV3UGFyZW50
LCBOb2RlJiBjaGlsZCkKIHsKLSAgICBpZiAoIWNoaWxkLT5pc0RvY3VtZW50RnJhZ21lbnQoKSkK
LSAgICAgICAgcmV0dXJuIG5ld1BhcmVudC0+Y2hpbGRUeXBlQWxsb3dlZChjaGlsZC0+bm9kZVR5
cGUoKSk7CisgICAgaWYgKCFjaGlsZC5pc0RvY3VtZW50RnJhZ21lbnQoKSkKKyAgICAgICAgcmV0
dXJuIG5ld1BhcmVudC5jaGlsZFR5cGVBbGxvd2VkKGNoaWxkLm5vZGVUeXBlKCkpOwogCi0gICAg
Zm9yIChOb2RlKiBub2RlID0gY2hpbGQtPmZpcnN0Q2hpbGQoKTsgbm9kZTsgbm9kZSA9IG5vZGUt
Pm5leHRTaWJsaW5nKCkpIHsKLSAgICAgICAgaWYgKCFuZXdQYXJlbnQtPmNoaWxkVHlwZUFsbG93
ZWQobm9kZS0+bm9kZVR5cGUoKSkpCisgICAgZm9yIChOb2RlKiBub2RlID0gY2hpbGQuZmlyc3RD
aGlsZCgpOyBub2RlOyBub2RlID0gbm9kZS0+bmV4dFNpYmxpbmcoKSkgeworICAgICAgICBpZiAo
IW5ld1BhcmVudC5jaGlsZFR5cGVBbGxvd2VkKG5vZGUtPm5vZGVUeXBlKCkpKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE2OSwyMyArMTY5
LDE5IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0luVGVtcGxhdGVDb250ZW50KGNvbnN0IE5vZGUq
IG5vZGUpCiAjZW5kaWYKIH0KIAotc3RhdGljIGlubGluZSBib29sIGNvbnRhaW5zQ29uc2lkZXJp
bmdIb3N0RWxlbWVudHMoY29uc3QgTm9kZSogbmV3Q2hpbGQsIGNvbnN0IE5vZGUqIG5ld1BhcmVu
dCkKK3N0YXRpYyBpbmxpbmUgYm9vbCBjb250YWluc0NvbnNpZGVyaW5nSG9zdEVsZW1lbnRzKGNv
bnN0IE5vZGUmIG5ld0NoaWxkLCBjb25zdCBOb2RlJiBuZXdQYXJlbnQpCiB7Ci0gICAgcmV0dXJu
IChuZXdQYXJlbnQtPmlzSW5TaGFkb3dUcmVlKCkgfHwgaXNJblRlbXBsYXRlQ29udGVudChuZXdQ
YXJlbnQpKQotICAgICAgICA/IG5ld0NoaWxkLT5jb250YWluc0luY2x1ZGluZ0hvc3RFbGVtZW50
cyhuZXdQYXJlbnQpCi0gICAgICAgIDogbmV3Q2hpbGQtPmNvbnRhaW5zKG5ld1BhcmVudCk7Cisg
ICAgcmV0dXJuIChuZXdQYXJlbnQuaXNJblNoYWRvd1RyZWUoKSB8fCBpc0luVGVtcGxhdGVDb250
ZW50KCZuZXdQYXJlbnQpKQorICAgICAgICA/IG5ld0NoaWxkLmNvbnRhaW5zSW5jbHVkaW5nSG9z
dEVsZW1lbnRzKCZuZXdQYXJlbnQpCisgICAgICAgIDogbmV3Q2hpbGQuY29udGFpbnMoJm5ld1Bh
cmVudCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgRXhjZXB0aW9uQ29kZSBjaGVja0FjY2VwdENoaWxk
KENvbnRhaW5lck5vZGUqIG5ld1BhcmVudCwgTm9kZSogbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxk
KQorc3RhdGljIGlubGluZSBFeGNlcHRpb25Db2RlIGNoZWNrQWNjZXB0Q2hpbGQoQ29udGFpbmVy
Tm9kZSYgbmV3UGFyZW50LCBOb2RlJiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQpCiB7Ci0gICAg
Ly8gTm90IG1lbnRpb25lZCBpbiBzcGVjOiB0aHJvdyBOT1RfRk9VTkRfRVJSIGlmIG5ld0NoaWxk
IGlzIG51bGwKLSAgICBpZiAoIW5ld0NoaWxkKQotICAgICAgICByZXR1cm4gTk9UX0ZPVU5EX0VS
UjsKLQogICAgIC8vIFVzZSBjb21tb24gY2FzZSBmYXN0IHBhdGggaWYgcG9zc2libGUuCi0gICAg
aWYgKChuZXdDaGlsZC0+aXNFbGVtZW50Tm9kZSgpIHx8IG5ld0NoaWxkLT5pc1RleHROb2RlKCkp
ICYmIG5ld1BhcmVudC0+aXNFbGVtZW50Tm9kZSgpKSB7Ci0gICAgICAgIEFTU0VSVCghbmV3UGFy
ZW50LT5pc1JlYWRPbmx5Tm9kZSgpKTsKLSAgICAgICAgQVNTRVJUKCFuZXdQYXJlbnQtPmlzRG9j
dW1lbnRUeXBlTm9kZSgpKTsKKyAgICBpZiAoKG5ld0NoaWxkLmlzRWxlbWVudE5vZGUoKSB8fCBu
ZXdDaGlsZC5pc1RleHROb2RlKCkpICYmIG5ld1BhcmVudC5pc0VsZW1lbnROb2RlKCkpIHsKKyAg
ICAgICAgQVNTRVJUKCFuZXdQYXJlbnQuaXNSZWFkT25seU5vZGUoKSk7CisgICAgICAgIEFTU0VS
VCghbmV3UGFyZW50LmlzRG9jdW1lbnRUeXBlTm9kZSgpKTsKICAgICAgICAgQVNTRVJUKGlzQ2hp
bGRUeXBlQWxsb3dlZChuZXdQYXJlbnQsIG5ld0NoaWxkKSk7CiAgICAgICAgIGlmIChjb250YWlu
c0NvbnNpZGVyaW5nSG9zdEVsZW1lbnRzKG5ld0NoaWxkLCBuZXdQYXJlbnQpKQogICAgICAgICAg
ICAgcmV0dXJuIEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKQEAgLTE5MywxNyArMTg5LDE3IEBAIHN0
YXRpYyBpbmxpbmUgRXhjZXB0aW9uQ29kZSBjaGVja0FjY2VwdENoaWxkKENvbnRhaW5lck5vZGUq
IG5ld1BhcmVudCwgTm9kZSogbmV3CiAgICAgfQogCiAgICAgLy8gVGhpcyBzaG91bGQgbmV2ZXIg
aGFwcGVuLCBidXQgYWxzbyBwcm90ZWN0IHJlbGVhc2UgYnVpbGRzIGZyb20gdHJlZSBjb3JydXB0
aW9uLgotICAgIEFTU0VSVCghbmV3Q2hpbGQtPmlzUHNldWRvRWxlbWVudCgpKTsKLSAgICBpZiAo
bmV3Q2hpbGQtPmlzUHNldWRvRWxlbWVudCgpKQorICAgIEFTU0VSVCghbmV3Q2hpbGQuaXNQc2V1
ZG9FbGVtZW50KCkpOworICAgIGlmIChuZXdDaGlsZC5pc1BzZXVkb0VsZW1lbnQoKSkKICAgICAg
ICAgcmV0dXJuIEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKIAotICAgIGlmIChuZXdQYXJlbnQtPmlz
UmVhZE9ubHlOb2RlKCkpCisgICAgaWYgKG5ld1BhcmVudC5pc1JlYWRPbmx5Tm9kZSgpKQogICAg
ICAgICByZXR1cm4gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSOwogICAgIGlmIChjb250YWlu
c0NvbnNpZGVyaW5nSG9zdEVsZW1lbnRzKG5ld0NoaWxkLCBuZXdQYXJlbnQpKQogICAgICAgICBy
ZXR1cm4gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwogCi0gICAgaWYgKG9sZENoaWxkICYmIGlzPERv
Y3VtZW50PigqbmV3UGFyZW50KSkgewotICAgICAgICBpZiAoIWRvd25jYXN0PERvY3VtZW50Pigq
bmV3UGFyZW50KS5jYW5SZXBsYWNlQ2hpbGQobmV3Q2hpbGQsIG9sZENoaWxkKSkKKyAgICBpZiAo
b2xkQ2hpbGQgJiYgaXM8RG9jdW1lbnQ+KG5ld1BhcmVudCkpIHsKKyAgICAgICAgaWYgKCFkb3du
Y2FzdDxEb2N1bWVudD4obmV3UGFyZW50KS5jYW5SZXBsYWNlQ2hpbGQobmV3Q2hpbGQsICpvbGRD
aGlsZCkpCiAgICAgICAgICAgICByZXR1cm4gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwogICAgIH0g
ZWxzZSBpZiAoIWlzQ2hpbGRUeXBlQWxsb3dlZChuZXdQYXJlbnQsIG5ld0NoaWxkKSkKICAgICAg
ICAgcmV0dXJuIEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKQEAgLTIxMSwxMiArMjA3LDEyIEBAIHN0
YXRpYyBpbmxpbmUgRXhjZXB0aW9uQ29kZSBjaGVja0FjY2VwdENoaWxkKENvbnRhaW5lck5vZGUq
IG5ld1BhcmVudCwgTm9kZSogbmV3CiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
Ym9vbCBjaGVja0FjY2VwdENoaWxkR3VhcmFudGVlZE5vZGVUeXBlcyhDb250YWluZXJOb2RlKiBu
ZXdQYXJlbnQsIE5vZGUqIG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKK3N0YXRpYyBpbmxp
bmUgYm9vbCBjaGVja0FjY2VwdENoaWxkR3VhcmFudGVlZE5vZGVUeXBlcyhDb250YWluZXJOb2Rl
JiBuZXdQYXJlbnQsIE5vZGUmIG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBB
U1NFUlQoIW5ld1BhcmVudC0+aXNSZWFkT25seU5vZGUoKSk7Ci0gICAgQVNTRVJUKCFuZXdQYXJl
bnQtPmlzRG9jdW1lbnRUeXBlTm9kZSgpKTsKKyAgICBBU1NFUlQoIW5ld1BhcmVudC5pc1JlYWRP
bmx5Tm9kZSgpKTsKKyAgICBBU1NFUlQoIW5ld1BhcmVudC5pc0RvY3VtZW50VHlwZU5vZGUoKSk7
CiAgICAgQVNTRVJUKGlzQ2hpbGRUeXBlQWxsb3dlZChuZXdQYXJlbnQsIG5ld0NoaWxkKSk7Ci0g
ICAgaWYgKG5ld0NoaWxkLT5jb250YWlucyhuZXdQYXJlbnQpKSB7CisgICAgaWYgKG5ld0NoaWxk
LmNvbnRhaW5zKCZuZXdQYXJlbnQpKSB7CiAgICAgICAgIGVjID0gSElFUkFSQ0hZX1JFUVVFU1Rf
RVJSOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMjI0LDI1ICsyMjAsMTkgQEAg
c3RhdGljIGlubGluZSBib29sIGNoZWNrQWNjZXB0Q2hpbGRHdWFyYW50ZWVkTm9kZVR5cGVzKENv
bnRhaW5lck5vZGUqIG5ld1BhcmVudCwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGlu
bGluZSBib29sIGNoZWNrQWRkQ2hpbGQoQ29udGFpbmVyTm9kZSogbmV3UGFyZW50LCBOb2RlKiBu
ZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCitzdGF0aWMgaW5saW5lIGJvb2wgY2hlY2tBZGRD
aGlsZChDb250YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5vZGUmIG5ld0NoaWxkLCBFeGNlcHRpb25D
b2RlJiBlYykKIHsKLSAgICBlYyA9IGNoZWNrQWNjZXB0Q2hpbGQobmV3UGFyZW50LCBuZXdDaGls
ZCwgMCk7Ci0gICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4g
dHJ1ZTsKKyAgICBlYyA9IGNoZWNrQWNjZXB0Q2hpbGQobmV3UGFyZW50LCBuZXdDaGlsZCwgbnVs
bHB0cik7CisgICAgcmV0dXJuICFlYzsKIH0KIAotc3RhdGljIGlubGluZSBib29sIGNoZWNrUmVw
bGFjZUNoaWxkKENvbnRhaW5lck5vZGUqIG5ld1BhcmVudCwgTm9kZSogbmV3Q2hpbGQsIE5vZGUq
IG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKK3N0YXRpYyBpbmxpbmUgYm9vbCBjaGVja1Jl
cGxhY2VDaGlsZChDb250YWluZXJOb2RlJiBuZXdQYXJlbnQsIE5vZGUmIG5ld0NoaWxkLCBOb2Rl
JiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgZWMgPSBjaGVja0FjY2VwdENo
aWxkKG5ld1BhcmVudCwgbmV3Q2hpbGQsIG9sZENoaWxkKTsKLSAgICBpZiAoZWMpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiB0cnVlOworICAgIGVjID0gY2hlY2tBY2NlcHRD
aGlsZChuZXdQYXJlbnQsIG5ld0NoaWxkLCAmb2xkQ2hpbGQpOworICAgIHJldHVybiAhZWM7CiB9
CiAKLWJvb2wgQ29udGFpbmVyTm9kZTo6aW5zZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3
Q2hpbGQsIE5vZGUqIHJlZkNoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKK2Jvb2wgQ29udGFpbmVy
Tm9kZTo6aW5zZXJ0QmVmb3JlKFJlZjxOb2RlPiYmIG5ld0NoaWxkLCBOb2RlKiByZWZDaGlsZCwg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgLy8gQ2hlY2sgdGhhdCB0aGlzIG5vZGUgaXMgbm90
ICJmbG9hdGluZyIuCiAgICAgLy8gSWYgaXQgaXMsIGl0IGNhbiBiZSBkZWxldGVkIGFzIGEgc2lk
ZSBlZmZlY3Qgb2Ygc2VuZGluZyBtdXRhdGlvbiBldmVudHMuCkBAIC0yNTQsMTAgKzI0NCwxMCBA
QCBib29sIENvbnRhaW5lck5vZGU6Omluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IG5ld0No
aWxkLCBOb2RlKiByZWZDaGlsZCwgRXhjZQogCiAgICAgLy8gaW5zZXJ0QmVmb3JlKG5vZGUsIDAp
IGlzIGVxdWl2YWxlbnQgdG8gYXBwZW5kQ2hpbGQobm9kZSkKICAgICBpZiAoIXJlZkNoaWxkKQot
ICAgICAgICByZXR1cm4gYXBwZW5kQ2hpbGQobmV3Q2hpbGQsIGVjKTsKKyAgICAgICAgcmV0dXJu
IGFwcGVuZENoaWxkKFdURjo6bW92ZShuZXdDaGlsZCksIGVjKTsKIAogICAgIC8vIE1ha2Ugc3Vy
ZSBhZGRpbmcgdGhlIG5ldyBjaGlsZCBpcyBPSy4KLSAgICBpZiAoIWNoZWNrQWRkQ2hpbGQodGhp
cywgbmV3Q2hpbGQuZ2V0KCksIGVjKSkKKyAgICBpZiAoIWNoZWNrQWRkQ2hpbGQoKnRoaXMsIG5l
d0NoaWxkLCBlYykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIE5PVF9GT1VORF9F
UlI6IFJhaXNlZCBpZiByZWZDaGlsZCBpcyBub3QgYSBjaGlsZCBvZiB0aGlzIG5vZGUKQEAgLTI2
NiwyMCArMjU2LDIwIEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6aW5zZXJ0QmVmb3JlKFBhc3NSZWZQ
dHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIHJlZkNoaWxkLCBFeGNlCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKLSAgICBpZiAocmVmQ2hpbGQtPnByZXZpb3VzU2libGluZygpID09IG5l
d0NoaWxkIHx8IHJlZkNoaWxkID09IG5ld0NoaWxkKSAvLyBub3RoaW5nIHRvIGRvCisgICAgaWYg
KHJlZkNoaWxkLT5wcmV2aW91c1NpYmxpbmcoKSA9PSBuZXdDaGlsZC5wdHIoKSB8fCByZWZDaGls
ZCA9PSBuZXdDaGlsZC5wdHIoKSkgLy8gbm90aGluZyB0byBkbwogICAgICAgICByZXR1cm4gdHJ1
ZTsKIAogICAgIFJlZjxOb2RlPiBuZXh0KCpyZWZDaGlsZCk7CiAKICAgICBOb2RlVmVjdG9yIHRh
cmdldHM7Ci0gICAgY29sbGVjdENoaWxkcmVuQW5kUmVtb3ZlRnJvbU9sZFBhcmVudCgqbmV3Q2hp
bGQuZ2V0KCksIHRhcmdldHMsIGVjKTsKKyAgICBjb2xsZWN0Q2hpbGRyZW5BbmRSZW1vdmVGcm9t
T2xkUGFyZW50KG5ld0NoaWxkLCB0YXJnZXRzLCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgaWYgKHRhcmdldHMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKIAogICAgIC8vIFdlIG5lZWQgdGhpcyBleHRyYSBjaGVjayBiZWNhdXNlIGNvbGxlY3RD
aGlsZHJlbkFuZFJlbW92ZUZyb21PbGRQYXJlbnQoKSBjYW4gZmlyZSBtdXRhdGlvbiBldmVudHMu
Ci0gICAgaWYgKCFjaGVja0FjY2VwdENoaWxkR3VhcmFudGVlZE5vZGVUeXBlcyh0aGlzLCBuZXdD
aGlsZC5nZXQoKSwgZWMpKQorICAgIGlmICghY2hlY2tBY2NlcHRDaGlsZEd1YXJhbnRlZWROb2Rl
VHlwZXMoKnRoaXMsIG5ld0NoaWxkLCBlYykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEluc2VydERPTU5vZGUoZG9jdW1lbnQoKSwg
KnRoaXMpOwpAQCAtMzkwLDcgKzM4MCw3IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6cGFyc2VySW5z
ZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIG5leHRDaGlsCiAgICAg
bmV3Q2hpbGQtPnNldE5lZWRzU3R5bGVSZWNhbGMoUmVjb25zdHJ1Y3RSZW5kZXJUcmVlKTsKIH0K
IAotYm9vbCBDb250YWluZXJOb2RlOjpyZXBsYWNlQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdD
aGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQorYm9vbCBDb250YWluZXJO
b2RlOjpyZXBsYWNlQ2hpbGQoUmVmPE5vZGU+JiYgbmV3Q2hpbGQsIE5vZGUmIG9sZENoaWxkLCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKICAgICAvLyBDaGVjayB0aGF0IHRoaXMgbm9kZSBpcyBub3Qg
ImZsb2F0aW5nIi4KICAgICAvLyBJZiBpdCBpcywgaXQgY2FuIGJlIGRlbGV0ZWQgYXMgYSBzaWRl
IGVmZmVjdCBvZiBzZW5kaW5nIG11dGF0aW9uIGV2ZW50cy4KQEAgLTQwMCw0OCArMzkwLDQzIEBA
IGJvb2wgQ29udGFpbmVyTm9kZTo6cmVwbGFjZUNoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hp
bGQsIE5vZGUqIG9sZENoaWxkLCBFeGNlCiAKICAgICBlYyA9IDA7CiAKLSAgICBpZiAob2xkQ2hp
bGQgPT0gbmV3Q2hpbGQpIC8vIG5vdGhpbmcgdG8gZG8KKyAgICBpZiAoJm9sZENoaWxkID09IG5l
d0NoaWxkLnB0cigpKSAvLyBub3RoaW5nIHRvIGRvCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0g
ICAgaWYgKCFvbGRDaGlsZCkgewotICAgICAgICBlYyA9IE5PVF9GT1VORF9FUlI7Ci0gICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICB9Ci0KICAgICAvLyBNYWtlIHN1cmUgcmVwbGFjaW5nIHRoZSBv
bGQgY2hpbGQgd2l0aCB0aGUgbmV3IGlzIG9rCi0gICAgaWYgKCFjaGVja1JlcGxhY2VDaGlsZCh0
aGlzLCBuZXdDaGlsZC5nZXQoKSwgb2xkQ2hpbGQsIGVjKSkKKyAgICBpZiAoIWNoZWNrUmVwbGFj
ZUNoaWxkKCp0aGlzLCBuZXdDaGlsZCwgb2xkQ2hpbGQsIGVjKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgLy8gTk9UX0ZPVU5EX0VSUjogUmFpc2VkIGlmIG9sZENoaWxkIGlzIG5vdCBh
IGNoaWxkIG9mIHRoaXMgbm9kZS4KLSAgICBpZiAob2xkQ2hpbGQtPnBhcmVudE5vZGUoKSAhPSB0
aGlzKSB7CisgICAgaWYgKG9sZENoaWxkLnBhcmVudE5vZGUoKSAhPSB0aGlzKSB7CiAgICAgICAg
IGVjID0gTk9UX0ZPVU5EX0VSUjsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAg
IENoaWxkTGlzdE11dGF0aW9uU2NvcGUgbXV0YXRpb24oKnRoaXMpOwogCi0gICAgUmVmUHRyPE5v
ZGU+IG5leHQgPSBvbGRDaGlsZC0+bmV4dFNpYmxpbmcoKTsKKyAgICBSZWZQdHI8Tm9kZT4gbmV4
dCA9IG9sZENoaWxkLm5leHRTaWJsaW5nKCk7CiAKICAgICAvLyBSZW1vdmUgdGhlIG5vZGUgd2Un
cmUgcmVwbGFjaW5nCi0gICAgUmVmPE5vZGU+IHJlbW92ZWRDaGlsZCgqb2xkQ2hpbGQpOworICAg
IFJlZjxOb2RlPiByZW1vdmVkQ2hpbGQob2xkQ2hpbGQpOwogICAgIHJlbW92ZUNoaWxkKG9sZENo
aWxkLCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAo
bmV4dCAmJiAobmV4dC0+cHJldmlvdXNTaWJsaW5nKCkgPT0gbmV3Q2hpbGQgfHwgbmV4dCA9PSBu
ZXdDaGlsZCkpIC8vIG5vdGhpbmcgdG8gZG8KKyAgICBpZiAobmV4dCAmJiAobmV4dC0+cHJldmlv
dXNTaWJsaW5nKCkgPT0gbmV3Q2hpbGQucHRyKCkgfHwgbmV4dCA9PSBuZXdDaGlsZC5wdHIoKSkp
IC8vIG5vdGhpbmcgdG8gZG8KICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAvLyBEb2VzIHRo
aXMgb25lIG1vcmUgdGltZSBiZWNhdXNlIHJlbW92ZUNoaWxkKCkgZmlyZXMgYSBNdXRhdGlvbkV2
ZW50LgotICAgIGlmICghY2hlY2tSZXBsYWNlQ2hpbGQodGhpcywgbmV3Q2hpbGQuZ2V0KCksIG9s
ZENoaWxkLCBlYykpCisgICAgaWYgKCFjaGVja1JlcGxhY2VDaGlsZCgqdGhpcywgbmV3Q2hpbGQs
IG9sZENoaWxkLCBlYykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIE5vZGVWZWN0b3Ig
dGFyZ2V0czsKLSAgICBjb2xsZWN0Q2hpbGRyZW5BbmRSZW1vdmVGcm9tT2xkUGFyZW50KCpuZXdD
aGlsZC5nZXQoKSwgdGFyZ2V0cywgZWMpOworICAgIGNvbGxlY3RDaGlsZHJlbkFuZFJlbW92ZUZy
b21PbGRQYXJlbnQobmV3Q2hpbGQsIHRhcmdldHMsIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIC8vIERvZXMgdGhpcyB5ZXQgYW5vdGhlciBjaGVjayBiZWNh
dXNlIGNvbGxlY3RDaGlsZHJlbkFuZFJlbW92ZUZyb21PbGRQYXJlbnQoKSBmaXJlcyBhIE11dGF0
aW9uRXZlbnQuCi0gICAgaWYgKCFjaGVja1JlcGxhY2VDaGlsZCh0aGlzLCBuZXdDaGlsZC5nZXQo
KSwgb2xkQ2hpbGQsIGVjKSkKKyAgICBpZiAoIWNoZWNrUmVwbGFjZUNoaWxkKCp0aGlzLCBuZXdD
aGlsZCwgb2xkQ2hpbGQsIGVjKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsSW5zZXJ0RE9NTm9kZShkb2N1bWVudCgpLCAqdGhpcyk7
CkBAIC01MTUsNyArNTAwLDcgQEAgdm9pZCBDb250YWluZXJOb2RlOjpkaXNjb25uZWN0RGVzY2Vu
ZGFudEZyYW1lcygpCiAgICAgZGlzY29ubmVjdFN1YmZyYW1lc0lmTmVlZGVkKCp0aGlzLCBSb290
QW5kRGVzY2VuZGFudHMpOwogfQogCi1ib29sIENvbnRhaW5lck5vZGU6OnJlbW92ZUNoaWxkKE5v
ZGUqIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKK2Jvb2wgQ29udGFpbmVyTm9kZTo6cmVt
b3ZlQ2hpbGQoTm9kZSYgb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIC8vIENo
ZWNrIHRoYXQgdGhpcyBub2RlIGlzIG5vdCAiZmxvYXRpbmciLgogICAgIC8vIElmIGl0IGlzLCBp
dCBjYW4gYmUgZGVsZXRlZCBhcyBhIHNpZGUgZWZmZWN0IG9mIHNlbmRpbmcgbXV0YXRpb24gZXZl
bnRzLgpAQCAtNTMyLDEyICs1MTcsMTIgQEAgYm9vbCBDb250YWluZXJOb2RlOjpyZW1vdmVDaGls
ZChOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgfQogCiAgICAgLy8gTk9U
X0ZPVU5EX0VSUjogUmFpc2VkIGlmIG9sZENoaWxkIGlzIG5vdCBhIGNoaWxkIG9mIHRoaXMgbm9k
ZS4KLSAgICBpZiAoIW9sZENoaWxkIHx8IG9sZENoaWxkLT5wYXJlbnROb2RlKCkgIT0gdGhpcykg
eworICAgIGlmIChvbGRDaGlsZC5wYXJlbnROb2RlKCkgIT0gdGhpcykgewogICAgICAgICBlYyA9
IE5PVF9GT1VORF9FUlI7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBSZWY8
Tm9kZT4gY2hpbGQoKm9sZENoaWxkKTsKKyAgICBSZWY8Tm9kZT4gY2hpbGQob2xkQ2hpbGQpOwog
CiAgICAgZG9jdW1lbnQoKS5yZW1vdmVGb2N1c2VkTm9kZU9mU3VidHJlZShjaGlsZC5wdHIoKSk7
CiAKQEAgLTY3MCw3ICs2NTUsNyBAQCB2b2lkIENvbnRhaW5lck5vZGU6OnJlbW92ZUNoaWxkcmVu
KCkKICAgICBkaXNwYXRjaFN1YnRyZWVNb2RpZmllZEV2ZW50KCk7CiB9CiAKLWJvb2wgQ29udGFp
bmVyTm9kZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgRXhjZXB0aW9u
Q29kZSYgZWMpCitib29sIENvbnRhaW5lck5vZGU6OmFwcGVuZENoaWxkKFJlZjxOb2RlPiYmIG5l
d0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBSZWY8Q29udGFpbmVyTm9kZT4gcHJv
dGVjdCgqdGhpcyk7CiAKQEAgLTY4MSwxNCArNjY2LDE0IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6
YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMp
CiAgICAgZWMgPSAwOwogCiAgICAgLy8gTWFrZSBzdXJlIGFkZGluZyB0aGUgbmV3IGNoaWxkIGlz
IG9rCi0gICAgaWYgKCFjaGVja0FkZENoaWxkKHRoaXMsIG5ld0NoaWxkLmdldCgpLCBlYykpCisg
ICAgaWYgKCFjaGVja0FkZENoaWxkKCp0aGlzLCBuZXdDaGlsZCwgZWMpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKLSAgICBpZiAobmV3Q2hpbGQgPT0gbV9sYXN0Q2hpbGQpIC8vIG5vdGhpbmcg
dG8gZG8KLSAgICAgICAgcmV0dXJuIG5ld0NoaWxkOworICAgIGlmIChuZXdDaGlsZC5wdHIoKSA9
PSBtX2xhc3RDaGlsZCkgLy8gbm90aGluZyB0byBkbworICAgICAgICByZXR1cm4gdHJ1ZTsKIAog
ICAgIE5vZGVWZWN0b3IgdGFyZ2V0czsKLSAgICBjb2xsZWN0Q2hpbGRyZW5BbmRSZW1vdmVGcm9t
T2xkUGFyZW50KCpuZXdDaGlsZC5nZXQoKSwgdGFyZ2V0cywgZWMpOworICAgIGNvbGxlY3RDaGls
ZHJlbkFuZFJlbW92ZUZyb21PbGRQYXJlbnQobmV3Q2hpbGQsIHRhcmdldHMsIGVjKTsKICAgICBp
ZiAoZWMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtNjk2LDcgKzY4MSw3IEBAIGJvb2wg
Q29udGFpbmVyTm9kZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgLy8gV2UgbmVlZCB0
aGlzIGV4dHJhIGNoZWNrIGJlY2F1c2UgY29sbGVjdENoaWxkcmVuQW5kUmVtb3ZlRnJvbU9sZFBh
cmVudCgpIGNhbiBmaXJlIG11dGF0aW9uIGV2ZW50cy4KLSAgICBpZiAoIWNoZWNrQWNjZXB0Q2hp
bGRHdWFyYW50ZWVkTm9kZVR5cGVzKHRoaXMsIG5ld0NoaWxkLmdldCgpLCBlYykpCisgICAgaWYg
KCFjaGVja0FjY2VwdENoaWxkR3VhcmFudGVlZE5vZGVUeXBlcygqdGhpcywgbmV3Q2hpbGQsIGVj
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Ojp3aWxsSW5zZXJ0RE9NTm9kZShkb2N1bWVudCgpLCAqdGhpcyk7CkBAIC03NTksMTYgKzc0NCwx
NiBAQCB2b2lkIENvbnRhaW5lck5vZGU6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5n
ZSYgY2hhbmdlKQogICAgIGludmFsaWRhdGVOb2RlTGlzdEFuZENvbGxlY3Rpb25DYWNoZXNJbkFu
Y2VzdG9ycygpOwogfQogCi12b2lkIENvbnRhaW5lck5vZGU6OmNsb25lQ2hpbGROb2RlcyhDb250
YWluZXJOb2RlKiBjbG9uZSkKK3ZvaWQgQ29udGFpbmVyTm9kZTo6Y2xvbmVDaGlsZE5vZGVzKENv
bnRhaW5lck5vZGUmIGNsb25lKQogewogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIERv
Y3VtZW50JiB0YXJnZXREb2N1bWVudCA9IGNsb25lLT5kb2N1bWVudCgpOworICAgIERvY3VtZW50
JiB0YXJnZXREb2N1bWVudCA9IGNsb25lLmRvY3VtZW50KCk7CiAgICAgZm9yIChOb2RlKiBjaGls
ZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQgJiYgIWVjOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGlu
ZygpKSB7Ci0gICAgICAgIFJlZlB0cjxOb2RlPiBjbG9uZWRDaGlsZCA9IGNoaWxkLT5jbG9uZU5v
ZGVJbnRlcm5hbCh0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbjo6U2VsZldpdGhUZW1w
bGF0ZUNvbnRlbnQpOwotICAgICAgICBjbG9uZS0+YXBwZW5kQ2hpbGQoY2xvbmVkQ2hpbGQsIGVj
KTsKKyAgICAgICAgUmVmPE5vZGU+IGNsb25lZENoaWxkID0gY2hpbGQtPmNsb25lTm9kZUludGVy
bmFsKHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uOjpTZWxmV2l0aFRlbXBsYXRlQ29u
dGVudCk7CisgICAgICAgIGNsb25lLmFwcGVuZENoaWxkKGNsb25lZENoaWxkLmNvcHlSZWYoKSwg
ZWMpOwogCi0gICAgICAgIGlmICghZWMgJiYgaXM8Q29udGFpbmVyTm9kZT4oY2hpbGQpKQotICAg
ICAgICAgICAgZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4oY2hpbGQpLT5jbG9uZUNoaWxkTm9kZXMo
ZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4oY2xvbmVkQ2hpbGQuZ2V0KCkpKTsKKyAgICAgICAgaWYg
KCFlYyAmJiBpczxDb250YWluZXJOb2RlPigqY2hpbGQpKQorICAgICAgICAgICAgZG93bmNhc3Q8
Q29udGFpbmVyTm9kZT4oKmNoaWxkKS5jbG9uZUNoaWxkTm9kZXMoZG93bmNhc3Q8Q29udGFpbmVy
Tm9kZT4oY2xvbmVkQ2hpbGQuZ2V0KCkpKTsKICAgICB9CiB9CiAKQEAgLTk0Nyw3ICs5MzIsNyBA
QCB2b2lkIENvbnRhaW5lck5vZGU6OmFwcGVuZChWZWN0b3I8Tm9kZU9yU3RyaW5nPiYmIG5vZGVP
clN0cmluZ1ZlY3RvciwgRXhjZXB0aW9uQwogICAgIGlmIChlYyB8fCAhbm9kZSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgYXBwZW5kQ2hpbGQobm9kZS5yZWxlYXNlKCksIGVjKTsKKyAgICBhcHBl
bmRDaGlsZChub2RlLnJlbGVhc2VOb25OdWxsKCksIGVjKTsKIH0KIAogdm9pZCBDb250YWluZXJO
b2RlOjpwcmVwZW5kKFZlY3RvcjxOb2RlT3JTdHJpbmc+JiYgbm9kZU9yU3RyaW5nVmVjdG9yLCBF
eGNlcHRpb25Db2RlJiBlYykKQEAgLTk1Niw3ICs5NDEsNyBAQCB2b2lkIENvbnRhaW5lck5vZGU6
OnByZXBlbmQoVmVjdG9yPE5vZGVPclN0cmluZz4mJiBub2RlT3JTdHJpbmdWZWN0b3IsIEV4Y2Vw
dGlvbgogICAgIGlmIChlYyB8fCAhbm9kZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaW5zZXJ0
QmVmb3JlKG5vZGUucmVsZWFzZSgpLCBmaXJzdENoaWxkKCksIGVjKTsKKyAgICBpbnNlcnRCZWZv
cmUobm9kZS5yZWxlYXNlTm9uTnVsbCgpLCBmaXJzdENoaWxkKCksIGVjKTsKIH0KIAogSFRNTENv
bGxlY3Rpb24qIENvbnRhaW5lck5vZGU6OmNhY2hlZEhUTUxDb2xsZWN0aW9uKENvbGxlY3Rpb25U
eXBlIHR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaAppbmRleCAwNDUyNDAwNDFmMmI3
MTMxZmIyNmE0ZThmMTkxNmI5YTZjYjliMGFlLi5hNmIxMGE3NjVmMGVlOGJjYTcyYjhmZmYwMzQz
M2I3M2IxODdiYTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9k
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmgKQEAgLTEwMiwxMCAr
MTAyLDEwIEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB1bnNpZ25lZCBjb3VudENoaWxk
Tm9kZXMoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBOb2RlKiB0cmF2ZXJzZVRvQ2hpbGRB
dCh1bnNpZ25lZCkgY29uc3Q7CiAKLSAgICBib29sIGluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5v
ZGU+IG5ld0NoaWxkLCBOb2RlKiByZWZDaGlsZCwgRXhjZXB0aW9uQ29kZSYgPSBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKLSAgICBib29sIHJlcGxhY2VDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0No
aWxkLCBOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgPSBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIHJlbW92ZUNoaWxkKE5vZGUqIGNoaWxkLCBFeGNl
cHRpb25Db2RlJiA9IEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgIFdFQkNPUkVfRVhQT1JUIGJv
b2wgYXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYg
PSBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBib29sIGluc2VydEJlZm9yZShSZWY8Tm9kZT4m
JiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmID0gQVNTRVJUX05PX0VY
Q0VQVElPTik7CisgICAgYm9vbCByZXBsYWNlQ2hpbGQoUmVmPE5vZGU+JiYgbmV3Q2hpbGQsIE5v
ZGUmIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiA9IEFTU0VSVF9OT19FWENFUFRJT04pOworICAg
IFdFQkNPUkVfRVhQT1JUIGJvb2wgcmVtb3ZlQ2hpbGQoTm9kZSYgY2hpbGQsIEV4Y2VwdGlvbkNv
ZGUmID0gQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBhcHBl
bmRDaGlsZChSZWY8Tm9kZT4mJiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgPSBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKIAogICAgIC8vIFRoZXNlIG1ldGhvZHMgYXJlIG9ubHkgdXNlZCBkdXJpbmcg
cGFyc2luZy4KICAgICAvLyBUaGV5IGRvbid0IHNlbmQgRE9NIG11dGF0aW9uIGV2ZW50cyBvciBo
YW5kbGUgcmVwYXJlbnRpbmcuCkBAIC0xMTcsNyArMTE3LDcgQEAgcHVibGljOgogICAgIHZvaWQg
cmVtb3ZlQ2hpbGRyZW4oKTsKICAgICB2b2lkIHRha2VBbGxDaGlsZHJlbkZyb20oQ29udGFpbmVy
Tm9kZSopOwogCi0gICAgdm9pZCBjbG9uZUNoaWxkTm9kZXMoQ29udGFpbmVyTm9kZSogY2xvbmUp
OworICAgIHZvaWQgY2xvbmVDaGlsZE5vZGVzKENvbnRhaW5lck5vZGUmIGNsb25lKTsKIAogICAg
IGVudW0gQ2hpbGRDaGFuZ2VUeXBlIHsgRWxlbWVudEluc2VydGVkLCBFbGVtZW50UmVtb3ZlZCwg
VGV4dEluc2VydGVkLCBUZXh0UmVtb3ZlZCwgVGV4dENoYW5nZWQsIEFsbENoaWxkcmVuUmVtb3Zl
ZCwgTm9uQ29udGVudHNDaGlsZENoYW5nZWQgfTsKICAgICBlbnVtIENoaWxkQ2hhbmdlU291cmNl
IHsgQ2hpbGRDaGFuZ2VTb3VyY2VQYXJzZXIsIENoaWxkQ2hhbmdlU291cmNlQVBJIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAppbmRleCBhNGEzZjhkNTlhYTJhMTYx
ZjY3MmY0NGQ2M2ZmODQ4NjRiN2IyMDMzLi42MzNkMjkxM2Y3MTZlYTg0YjY3ZjZkMjgwOTNlNjhk
NDExZTMxOWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKQEAg
LTIzMSw5ICsyMzEsOSBAQCBSZWZQdHI8RG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjpjcmVh
dGVEb2N1bWVudChjb25zdCBTdHJpbmcmIG5hbWVzcGFjZVVSSSwKICAgICB9CiAKICAgICBpZiAo
ZG9jdHlwZSkKLSAgICAgICAgZG9jLT5hcHBlbmRDaGlsZChkb2N0eXBlKTsKKyAgICAgICAgZG9j
LT5hcHBlbmRDaGlsZCgqZG9jdHlwZSk7CiAgICAgaWYgKGRvY3VtZW50RWxlbWVudCkKLSAgICAg
ICAgZG9jLT5hcHBlbmRDaGlsZChkb2N1bWVudEVsZW1lbnQucmVsZWFzZSgpKTsKKyAgICAgICAg
ZG9jLT5hcHBlbmRDaGlsZChkb2N1bWVudEVsZW1lbnQucmVsZWFzZU5vbk51bGwoKSk7CiAKICAg
ICByZXR1cm4gZG9jOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZDBjZGM1N2UzMTI2
YWIyNzkwNmRlZmVhYjllNTZiMTUxZTZlZGU5Yi4uNjc2YmRkODJiZmIwOGM2YThjNTY4ZTNjODBk
YTllMmVkNWIyN2NmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xMDA5LDcgKzEwMDks
NyBAQCBSZWZQdHI8Tm9kZT4gRG9jdW1lbnQ6OmFkb3B0Tm9kZShQYXNzUmVmUHRyPE5vZGU+IHNv
dXJjZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAg
ICAgaWYgKHNvdXJjZS0+cGFyZW50Tm9kZSgpKSB7Ci0gICAgICAgICAgICBzb3VyY2UtPnBhcmVu
dE5vZGUoKS0+cmVtb3ZlQ2hpbGQoc291cmNlLmdldCgpLCBlYyk7CisgICAgICAgICAgICBzb3Vy
Y2UtPnBhcmVudE5vZGUoKS0+cmVtb3ZlQ2hpbGQoKnNvdXJjZSwgZWMpOwogICAgICAgICAgICAg
aWYgKGVjKQogICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICB9CkBAIC0x
NTQ3LDcgKzE1NDcsNyBAQCB2b2lkIERvY3VtZW50OjpzZXRUaXRsZShjb25zdCBTdHJpbmcmIHRp
dGxlKQogICAgICAgICBpZiAoIWhlYWRFbGVtZW50KQogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICBtX3RpdGxlRWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQodGl0bGVUYWcsIGZhbHNlKTsKLSAg
ICAgICAgaGVhZEVsZW1lbnQtPmFwcGVuZENoaWxkKG1fdGl0bGVFbGVtZW50LCBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKKyAgICAgICAgaGVhZEVsZW1lbnQtPmFwcGVuZENoaWxkKCptX3RpdGxlRWxl
bWVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgfQogCiAgICAgLy8gVGhlIERPTSBBUEkg
aGFzIG5vIG1ldGhvZCBvZiBzcGVjaWZ5aW5nIGRpcmVjdGlvbiwgc28gYXNzdW1lIExUUi4KQEAg
LTI1MTgsMTEgKzI1MTgsMTAgQEAgdm9pZCBEb2N1bWVudDo6c2V0Qm9keU9yRnJhbWVzZXQoUGFz
c1JlZlB0cjxIVE1MRWxlbWVudD4gcHJwTmV3Qm9keSwgRXhjZXB0aW9uQ28KICAgICAgICAgbmV3
Qm9keSA9IGRvd25jYXN0PEhUTUxFbGVtZW50Pihub2RlLmdldCgpKTsKICAgICB9CiAKLSAgICBI
VE1MRWxlbWVudCogYiA9IGJvZHlPckZyYW1lc2V0KCk7Ci0gICAgaWYgKCFiKQotICAgICAgICBk
b2N1bWVudEVsZW1lbnQoKS0+YXBwZW5kQ2hpbGQobmV3Qm9keS5yZWxlYXNlKCksIGVjKTsKKyAg
ICBpZiAoYXV0byogYm9keSA9IGJvZHlPckZyYW1lc2V0KCkpCisgICAgICAgIGRvY3VtZW50RWxl
bWVudCgpLT5yZXBsYWNlQ2hpbGQobmV3Qm9keS5yZWxlYXNlTm9uTnVsbCgpLCAqYm9keSwgZWMp
OwogICAgIGVsc2UKLSAgICAgICAgZG9jdW1lbnRFbGVtZW50KCktPnJlcGxhY2VDaGlsZChuZXdC
b2R5LnJlbGVhc2UoKSwgYiwgZWMpOworICAgICAgICBkb2N1bWVudEVsZW1lbnQoKS0+YXBwZW5k
Q2hpbGQobmV3Qm9keS5yZWxlYXNlTm9uTnVsbCgpLCBlYyk7CiB9CiAKIEhUTUxIZWFkRWxlbWVu
dCogRG9jdW1lbnQ6OmhlYWQoKQpAQCAtMzMyNiwxMyArMzMyNSw5IEBAIGJvb2wgRG9jdW1lbnQ6
OmNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKLWJvb2wgRG9jdW1lbnQ6OmNhblJlcGxhY2VDaGlsZChOb2RlKiBuZXdDaGlsZCwgTm9k
ZSogb2xkQ2hpbGQpCitib29sIERvY3VtZW50OjpjYW5SZXBsYWNlQ2hpbGQoTm9kZSYgbmV3Q2hp
bGQsIE5vZGUmIG9sZENoaWxkKQogewotICAgIGlmICghb2xkQ2hpbGQpCi0gICAgICAgIC8vIENv
bnRhaW5lck5vZGU6OnJlcGxhY2VDaGlsZCB3aWxsIHJhaXNlIGEgTk9UX0ZPVU5EX0VSUi4KLSAg
ICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBpZiAob2xkQ2hpbGQtPm5vZGVUeXBlKCkgPT0gbmV3
Q2hpbGQtPm5vZGVUeXBlKCkpCisgICAgaWYgKG9sZENoaWxkLm5vZGVUeXBlKCkgPT0gbmV3Q2hp
bGQubm9kZVR5cGUoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBpbnQgbnVtRG9jdHlw
ZXMgPSAwOwpAQCAtMzM0MSw3ICszMzM2LDcgQEAgYm9vbCBEb2N1bWVudDo6Y2FuUmVwbGFjZUNo
aWxkKE5vZGUqIG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCkKICAgICAvLyBGaXJzdCwgY2hlY2sg
aG93IG1hbnkgZG9jdHlwZXMgYW5kIGVsZW1lbnRzIHdlIGhhdmUsIG5vdCBjb3VudGluZwogICAg
IC8vIHRoZSBjaGlsZCB3ZSdyZSBhYm91dCB0byByZW1vdmUuCiAgICAgZm9yIChOb2RlKiBjID0g
Zmlyc3RDaGlsZCgpOyBjOyBjID0gYy0+bmV4dFNpYmxpbmcoKSkgewotICAgICAgICBpZiAoYyA9
PSBvbGRDaGlsZCkKKyAgICAgICAgaWYgKGMgPT0gJm9sZENoaWxkKQogICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgIAogICAgICAgICBzd2l0Y2ggKGMtPm5vZGVUeXBlKCkpIHsKQEAgLTMz
NTcsOCArMzM1Miw4IEBAIGJvb2wgRG9jdW1lbnQ6OmNhblJlcGxhY2VDaGlsZChOb2RlKiBuZXdD
aGlsZCwgTm9kZSogb2xkQ2hpbGQpCiAgICAgfQogICAgIAogICAgIC8vIFRoZW4sIHNlZSBob3cg
bWFueSBkb2N0eXBlcyBhbmQgZWxlbWVudHMgbWlnaHQgYmUgYWRkZWQgYnkgdGhlIG5ldyBjaGls
ZC4KLSAgICBpZiAobmV3Q2hpbGQtPmlzRG9jdW1lbnRGcmFnbWVudCgpKSB7Ci0gICAgICAgIGZv
ciAoTm9kZSogYyA9IG5ld0NoaWxkLT5maXJzdENoaWxkKCk7IGM7IGMgPSBjLT5uZXh0U2libGlu
ZygpKSB7CisgICAgaWYgKG5ld0NoaWxkLmlzRG9jdW1lbnRGcmFnbWVudCgpKSB7CisgICAgICAg
IGZvciAoTm9kZSogYyA9IG5ld0NoaWxkLmZpcnN0Q2hpbGQoKTsgYzsgYyA9IGMtPm5leHRTaWJs
aW5nKCkpIHsKICAgICAgICAgICAgIHN3aXRjaCAoYy0+bm9kZVR5cGUoKSkgewogICAgICAgICAg
ICAgY2FzZSBBVFRSSUJVVEVfTk9ERToKICAgICAgICAgICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9O
T0RFOgpAQCAtMzM4MSw3ICszMzc2LDcgQEAgYm9vbCBEb2N1bWVudDo6Y2FuUmVwbGFjZUNoaWxk
KE5vZGUqIG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCkKICAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgIH0gZWxzZSB7Ci0gICAgICAgIHN3aXRjaCAobmV3Q2hpbGQtPm5vZGVUeXBlKCkpIHsK
KyAgICAgICAgc3dpdGNoIChuZXdDaGlsZC5ub2RlVHlwZSgpKSB7CiAgICAgICAgIGNhc2UgQVRU
UklCVVRFX05PREU6CiAgICAgICAgIGNhc2UgQ0RBVEFfU0VDVElPTl9OT0RFOgogICAgICAgICBj
YXNlIERPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CkBAIC0zNDA5LDcgKzM0MDQsNyBAQCBib29sIERv
Y3VtZW50OjpjYW5SZXBsYWNlQ2hpbGQoTm9kZSogbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkKQog
ICAgIHJldHVybiB0cnVlOwogfQogCi1SZWZQdHI8Tm9kZT4gRG9jdW1lbnQ6OmNsb25lTm9kZUlu
dGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbiB0eXBlKQorUmVmPE5vZGU+IERvY3Vt
ZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24gdHlwZSkK
IHsKICAgICBSZWY8RG9jdW1lbnQ+IGNsb25lID0gY2xvbmVEb2N1bWVudFdpdGhvdXRDaGlsZHJl
bigpOwogICAgIGNsb25lLT5jbG9uZURhdGFGcm9tRG9jdW1lbnQoKnRoaXMpOwpAQCAtMzQxOCw3
ICszNDEzLDcgQEAgUmVmUHRyPE5vZGU+IERvY3VtZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1
bWVudCYsIENsb25pbmdPcGVyYXRpb24gdHlwZSkKICAgICBjYXNlIENsb25pbmdPcGVyYXRpb246
OlNlbGZXaXRoVGVtcGxhdGVDb250ZW50OgogICAgICAgICBicmVhazsKICAgICBjYXNlIENsb25p
bmdPcGVyYXRpb246OkV2ZXJ5dGhpbmc6Ci0gICAgICAgIGNsb25lQ2hpbGROb2RlcyhjbG9uZS5w
dHIoKSk7CisgICAgICAgIGNsb25lQ2hpbGROb2RlcyhjbG9uZSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KICAgICByZXR1cm4gV1RGOjptb3ZlKGNsb25lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5k
ZXggNGYwOWI3Y2U1NzM1YzRhOWIyZWNjMGQyZDZiYTRkYWI4MDU1ZTg0Yi4uZTBhZDFiYzJiOWU3
ZGZhNWIxODc2ZGFiN2Q0ZGYwMzI3YTkwZGY0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTc0
Niw3ICs3NDYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBub2RlQ2hpbGRyZW5XaWxsQmVSZW1vdmVk
KENvbnRhaW5lck5vZGUmKTsKICAgICAvLyBub2RlV2lsbEJlUmVtb3ZlZCBpcyBvbmx5IHNhZmUg
d2hlbiByZW1vdmluZyBvbmUgbm9kZSBhdCBhIHRpbWUuCiAgICAgdm9pZCBub2RlV2lsbEJlUmVt
b3ZlZChOb2RlJik7Ci0gICAgYm9vbCBjYW5SZXBsYWNlQ2hpbGQoTm9kZSogbmV3Q2hpbGQsIE5v
ZGUqIG9sZENoaWxkKTsKKyAgICBib29sIGNhblJlcGxhY2VDaGlsZChOb2RlJiBuZXdDaGlsZCwg
Tm9kZSYgb2xkQ2hpbGQpOwogCiAgICAgdm9pZCB0ZXh0SW5zZXJ0ZWQoTm9kZSosIHVuc2lnbmVk
IG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKTsKICAgICB2b2lkIHRleHRSZW1vdmVkKE5vZGUqLCB1
bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCk7CkBAIC0xMzEwLDcgKzEzMTAsNyBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgZmlu
YWw7CiAgICAgdmlydHVhbCBOb2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0IG92ZXJyaWRlIGZpbmFs
OwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlKSBjb25zdCBvdmVy
cmlkZSBmaW5hbDsKLSAgICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChE
b2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwg
UmVmPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikg
b3ZlcnJpZGUgZmluYWw7CiAgICAgdm9pZCBjbG9uZURhdGFGcm9tRG9jdW1lbnQoY29uc3QgRG9j
dW1lbnQmKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZWZTY3JpcHRFeGVjdXRpb25Db250ZXh0KCkg
b3ZlcnJpZGUgZmluYWwgeyByZWYoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50RnJhZ21lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21l
bnQuY3BwCmluZGV4IDRmYWI1OGUzNGQ0NjU1ZWNmNGUzN2RhNWRkOWMzYzU2MjJmNDA3NjguLmY5
YjM4YTBiZDI4ZThlM2M2MDkzNGFmZjFhNjAwNTkyNzA5MDNmZWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnRGcmFnbWVudC5jcHAKQEAgLTY3LDE4ICs2NywxOCBAQCBib29sIERvY3VtZW50
RnJhZ21lbnQ6OmNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkgY29uc3QKICAgICB9CiB9
CiAKLVJlZlB0cjxOb2RlPiBEb2N1bWVudEZyYWdtZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1
bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24gdHlwZSkKK1JlZjxOb2RlPiBE
b2N1bWVudEZyYWdtZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1l
bnQsIENsb25pbmdPcGVyYXRpb24gdHlwZSkKIHsKLSAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVu
dD4gY2xvbmUgPSBjcmVhdGUodGFyZ2V0RG9jdW1lbnQpOworICAgIFJlZjxEb2N1bWVudEZyYWdt
ZW50PiBjbG9uZSA9IGNyZWF0ZSh0YXJnZXREb2N1bWVudCk7CiAgICAgc3dpdGNoICh0eXBlKSB7
CiAgICAgY2FzZSBDbG9uaW5nT3BlcmF0aW9uOjpPbmx5U2VsZjoKICAgICBjYXNlIENsb25pbmdP
cGVyYXRpb246OlNlbGZXaXRoVGVtcGxhdGVDb250ZW50OgogICAgICAgICBicmVhazsKICAgICBj
YXNlIENsb25pbmdPcGVyYXRpb246OkV2ZXJ5dGhpbmc6Ci0gICAgICAgIGNsb25lQ2hpbGROb2Rl
cyhjbG9uZS5nZXQoKSk7CisgICAgICAgIGNsb25lQ2hpbGROb2RlcyhjbG9uZSk7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KLSAgICByZXR1cm4gY2xvbmU7CisgICAgcmV0dXJuIFdURjo6bW92ZShj
bG9uZSk7CiB9CiAKIHZvaWQgRG9jdW1lbnRGcmFnbWVudDo6cGFyc2VIVE1MKGNvbnN0IFN0cmlu
ZyYgc291cmNlLCBFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgUGFyc2VyQ29udGVudFBvbGljeSBw
YXJzZXJDb250ZW50UG9saWN5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50RnJhZ21lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmgKaW5k
ZXggZDA3ZTAzNGMwMDdlNjYyOTYyNTFiZDBjMGIxNjA2ZDcwOWEwNWY2NS4uNmViMWVkNjFjNDYy
MDEzZmQwNTc0ZDRhZmUzZWNjNWUyNGM4NDVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50RnJhZ21lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRG
cmFnbWVudC5oCkBAIC00OCw3ICs0OCw3IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICB2
aXJ0dWFsIE5vZGVUeXBlIG5vZGVUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7Ci0gICAgdmly
dHVhbCBSZWZQdHI8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3Bl
cmF0aW9uKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5h
bChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9v
bCBjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlKSBjb25zdCBvdmVycmlkZTsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFR5cGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50VHlwZS5jcHAKaW5kZXggNjdlM2Q1Mzg0M2Y4MmEwYmM1OWI5ZDBlZmZj
YWUyN2FmMzBiOTYzNC4uYzE5ZDAxODJhZmFmZGE1ZDhjMjBlY2ZkN2QzOWQxNWJhMDE4N2ViYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50VHlwZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50VHlwZS5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgTm9kZTo6
Tm9kZVR5cGUgRG9jdW1lbnRUeXBlOjpub2RlVHlwZSgpIGNvbnN0CiAgICAgcmV0dXJuIERPQ1VN
RU5UX1RZUEVfTk9ERTsKIH0KIAotUmVmUHRyPE5vZGU+IERvY3VtZW50VHlwZTo6Y2xvbmVOb2Rl
SW50ZXJuYWwoRG9jdW1lbnQmIGRvY3VtZW50VGFyZ2V0LCBDbG9uaW5nT3BlcmF0aW9uKQorUmVm
PE5vZGU+IERvY3VtZW50VHlwZTo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmIGRvY3VtZW50
VGFyZ2V0LCBDbG9uaW5nT3BlcmF0aW9uKQogewogICAgIHJldHVybiBjcmVhdGUoZG9jdW1lbnRU
YXJnZXQsIG1fbmFtZSwgbV9wdWJsaWNJZCwgbV9zeXN0ZW1JZCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnRUeXBlLmgKaW5kZXggYzdhMWQ5YjUyNmY2ZWVlYTExY2EzYTcyNzVlYjMxZjVhNmUxMzJh
NS4uYzc5YzBjZWE4NjlkMjA1OWJiZGJiODIxNTljOGZmMTA3ODgzOGVkNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudFR5cGUuaApAQCAtNTIsNyArNTIsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
VVJMIGJhc2VVUkkoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFN0cmluZyBub2RlTmFt
ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgTm9kZVR5cGUgbm9kZVR5cGUoKSBjb25z
dCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChE
b2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPE5v
ZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJp
ZGU7CiAKICAgICBTdHJpbmcgbV9uYW1lOwogICAgIFN0cmluZyBtX3B1YmxpY0lkOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCmluZGV4IDY3NTAwMGE1NGE3MDgyOWMwZDExMTJkOThiZjg5YmNhY2RkN2Mz
OWMuLjNhODkwNjE3ZmEzYTA3YzdhMTljYTdhMzQyOTdjMTcxOTI4NGI5OWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKQEAgLTMxMiwzOCArMzEyLDM3IEBAIHZvaWQgRWxlbWVudDo6ZGlzcGF0Y2hT
aW11bGF0ZWRDbGljayhFdmVudCogdW5kZXJseWluZ0V2ZW50LCBTaW11bGF0ZWRDbGlja01vdXNl
CiAgICAgRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaFNpbXVsYXRlZENsaWNrKHRoaXMsIHVuZGVy
bHlpbmdFdmVudCwgZXZlbnRPcHRpb25zLCB2aXN1YWxPcHRpb25zKTsKIH0KIAotUmVmUHRyPE5v
ZGU+IEVsZW1lbnQ6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwg
Q2xvbmluZ09wZXJhdGlvbiB0eXBlKQorUmVmPE5vZGU+IEVsZW1lbnQ6OmNsb25lTm9kZUludGVy
bmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbiB0eXBlKQogewog
ICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgQ2xvbmluZ09wZXJhdGlvbjo6T25seVNlbGY6
CiAgICAgY2FzZSBDbG9uaW5nT3BlcmF0aW9uOjpTZWxmV2l0aFRlbXBsYXRlQ29udGVudDoKICAg
ICAgICAgcmV0dXJuIGNsb25lRWxlbWVudFdpdGhvdXRDaGlsZHJlbih0YXJnZXREb2N1bWVudCk7
CiAgICAgY2FzZSBDbG9uaW5nT3BlcmF0aW9uOjpFdmVyeXRoaW5nOgotICAgICAgICByZXR1cm4g
Y2xvbmVFbGVtZW50V2l0aENoaWxkcmVuKHRhcmdldERvY3VtZW50KTsKKyAgICAgICAgYnJlYWs7
CiAgICAgfQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBudWxscHRyOwor
ICAgIHJldHVybiBjbG9uZUVsZW1lbnRXaXRoQ2hpbGRyZW4odGFyZ2V0RG9jdW1lbnQpOwogfQog
Ci1SZWZQdHI8RWxlbWVudD4gRWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aENoaWxkcmVuKERvY3Vt
ZW50JiB0YXJnZXREb2N1bWVudCkKK1JlZjxFbGVtZW50PiBFbGVtZW50OjpjbG9uZUVsZW1lbnRX
aXRoQ2hpbGRyZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50KQogewotICAgIFJlZlB0cjxFbGVt
ZW50PiBjbG9uZSA9IGNsb25lRWxlbWVudFdpdGhvdXRDaGlsZHJlbih0YXJnZXREb2N1bWVudCk7
Ci0gICAgY2xvbmVDaGlsZE5vZGVzKGNsb25lLmdldCgpKTsKLSAgICByZXR1cm4gY2xvbmUucmVs
ZWFzZSgpOworICAgIFJlZjxFbGVtZW50PiBjbG9uZSA9IGNsb25lRWxlbWVudFdpdGhvdXRDaGls
ZHJlbih0YXJnZXREb2N1bWVudCk7CisgICAgY2xvbmVDaGlsZE5vZGVzKGNsb25lKTsKKyAgICBy
ZXR1cm4gY2xvbmU7CiB9CiAKLVJlZlB0cjxFbGVtZW50PiBFbGVtZW50OjpjbG9uZUVsZW1lbnRX
aXRob3V0Q2hpbGRyZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50KQorUmVmPEVsZW1lbnQ+IEVs
ZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhvdXRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1l
bnQpCiB7Ci0gICAgUmVmUHRyPEVsZW1lbnQ+IGNsb25lID0gY2xvbmVFbGVtZW50V2l0aG91dEF0
dHJpYnV0ZXNBbmRDaGlsZHJlbih0YXJnZXREb2N1bWVudCk7CisgICAgUmVmPEVsZW1lbnQ+IGNs
b25lID0gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbih0YXJnZXREb2N1
bWVudCk7CiAgICAgLy8gVGhpcyB3aWxsIGNhdGNoIEhUTUwgZWxlbWVudHMgaW4gdGhlIHdyb25n
IG5hbWVzcGFjZSB0aGF0IGFyZSBub3QgY29ycmVjdGx5IGNvcGllZC4KICAgICAvLyBUaGlzIGlz
IGEgc2FuaXR5IGNoZWNrIGFzIEhUTUwgb3ZlcmxvYWRzIHNvbWUgb2YgdGhlIERPTSBtZXRob2Rz
LgogICAgIEFTU0VSVChpc0hUTUxFbGVtZW50KCkgPT0gY2xvbmUtPmlzSFRNTEVsZW1lbnQoKSk7
CiAKICAgICBjbG9uZS0+Y2xvbmVEYXRhRnJvbUVsZW1lbnQoKnRoaXMpOwotICAgIHJldHVybiBj
bG9uZS5yZWxlYXNlKCk7CisgICAgcmV0dXJuIGNsb25lOwogfQogCi1SZWZQdHI8RWxlbWVudD4g
RWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVu
dCYgdGFyZ2V0RG9jdW1lbnQpCitSZWY8RWxlbWVudD4gRWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0
aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQpCiB7CiAg
ICAgcmV0dXJuIHRhcmdldERvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnUU5hbWUoKSwgZmFsc2Up
OwogfQpAQCAtMjMxOSw3ICsyMzE4LDcgQEAgdm9pZCBFbGVtZW50OjpzZXRPdXRlckhUTUwoY29u
c3QgU3RyaW5nJiBodG1sLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBpZiAoZWMpCiAgICAgICAg
IHJldHVybjsKICAgICAKLSAgICBwYXJlbnQtPnJlcGxhY2VDaGlsZChmcmFnbWVudC5yZWxlYXNl
KCksIHRoaXMsIGVjKTsKKyAgICBwYXJlbnQtPnJlcGxhY2VDaGlsZChmcmFnbWVudC5yZWxlYXNl
Tm9uTnVsbCgpLCAqdGhpcywgZWMpOwogICAgIFJlZlB0cjxOb2RlPiBub2RlID0gbmV4dCA/IG5l
eHQtPnByZXZpb3VzU2libGluZygpIDogbnVsbHB0cjsKICAgICBpZiAoIWVjICYmIGlzPFRleHQ+
KG5vZGUuZ2V0KCkpKQogICAgICAgICBtZXJnZVdpdGhOZXh0VGV4dE5vZGUoZG93bmNhc3Q8VGV4
dD4oKm5vZGUpLCBlYyk7CkBAIC0yMzM4LDcgKzIzMzcsNyBAQCB2b2lkIEVsZW1lbnQ6OnNldElu
bmVySFRNTChjb25zdCBTdHJpbmcmIGh0bWwsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICAg
ICAgY29udGFpbmVyID0gZG93bmNhc3Q8SFRNTFRlbXBsYXRlRWxlbWVudD4oKnRoaXMpLmNvbnRl
bnQoKTsKICNlbmRpZgogCi0gICAgICAgIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudCgqY29u
dGFpbmVyLCBmcmFnbWVudC5yZWxlYXNlKCksIGVjKTsKKyAgICAgICAgcmVwbGFjZUNoaWxkcmVu
V2l0aEZyYWdtZW50KCpjb250YWluZXIsIGZyYWdtZW50LnJlbGVhc2VOb25OdWxsKCksIGVjKTsK
ICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IDFlNjA3MDNjYjZiMmZkOTM2MDcxZjg1
YjliOWRhOWQ3YWE0MGNjNGIuLjA0ODEwZTFjZjg0OTVlZDI0ZmQ4OTQ1MDUzZmFmYmNkNDMyMmQx
MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMjAxLDggKzIwMSw4IEBAIHB1YmxpYzoKIAogICAg
IHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBSZWZQdHI8
RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aENoaWxkcmVuKERvY3VtZW50Jik7Ci0gICAgUmVmUHRy
PEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRDaGlsZHJlbihEb2N1bWVudCYpOworICAgIFJl
ZjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRoQ2hpbGRyZW4oRG9jdW1lbnQmKTsKKyAgICBSZWY8
RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dENoaWxkcmVuKERvY3VtZW50Jik7CiAKICAgICB2
b2lkIG5vcm1hbGl6ZUF0dHJpYnV0ZXMoKTsKICAgICBTdHJpbmcgbm9kZU5hbWVQcmVzZXJ2aW5n
Q2FzZSgpIGNvbnN0OwpAQCAtNTYzLDggKzU2Myw4IEBAIHByaXZhdGU6CiAKICAgICAvLyBjbG9u
ZU5vZGUgaXMgcHJpdmF0ZSBzbyB0aGF0IG5vbi12aXJ0dWFsIGNsb25lRWxlbWVudFdpdGhDaGls
ZHJlbiBhbmQgY2xvbmVFbGVtZW50V2l0aG91dENoaWxkcmVuCiAgICAgLy8gYXJlIHVzZWQgaW5z
dGVhZC4KLSAgICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVu
dCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVmUHRyPEVsZW1l
bnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmKTsK
KyAgICB2aXJ0dWFsIFJlZjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25p
bmdPcGVyYXRpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPEVsZW1lbnQ+IGNsb25lRWxl
bWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmKTsKIAogICAgIHZvaWQg
YWRkU2hhZG93Um9vdChSZWY8U2hhZG93Um9vdD4mJik7CiAgICAgdm9pZCByZW1vdmVTaGFkb3dS
b290KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuY3BwCmluZGV4IGEyZmY2M2Iw
MTBlNmUyOGUwZmM0ZWFhZTg1YTc0YTEzZmU5ZDZjN2YuLjdlOTFhNDYyZGE4MjA5ZDkyMmM0NWRj
ODRjNDFhMDg1NWFkNmJlMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlS
ZWZlcmVuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuY3Bw
CkBAIC00Niw3ICs0Niw3IEBAIE5vZGU6Ok5vZGVUeXBlIEVudGl0eVJlZmVyZW5jZTo6bm9kZVR5
cGUoKSBjb25zdAogICAgIHJldHVybiBFTlRJVFlfUkVGRVJFTkNFX05PREU7CiB9CiAKLVJlZlB0
cjxOb2RlPiBFbnRpdHlSZWZlcmVuY2U6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJn
ZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikKK1JlZjxOb2RlPiBFbnRpdHlSZWZlcmVuY2U6
OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJh
dGlvbikKIHsKICAgICByZXR1cm4gY3JlYXRlKHRhcmdldERvY3VtZW50LCBtX2VudGl0eU5hbWUp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5oCmluZGV4IDAzZjQzY2RmOTVlYTY4
ZjAwNGQ5ZjExM2JhMTY4ZjBmN2JmYWYzOTYuLjg2ZGZlYjM5ODI1YjM0NTBlNzUzNTkyNTA2ODUx
MTBiM2FmMGNhOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVu
Y2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmgKQEAgLTM1LDcg
KzM1LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1lKCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCBOb2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0IG92ZXJyaWRl
OwotICAgIHZpcnR1YWwgUmVmUHRyPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50Jiwg
Q2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8Tm9kZT4gY2xvbmVO
b2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKIAogICAg
IFN0cmluZyBtX2VudGl0eU5hbWU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDhhYTRhMWYyYTI0
ZmMwZThmMWRlODY0YWNhY2MxZTJkYzVkNmNhNTMuLjJmOGM2Zjc5OWFiYzdiZTQ2ZTk3ODNlZTU2
MTJmYzhhOTQ0MTQ5MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTQyOSwzOCArNDI5LDU0IEBAIEVs
ZW1lbnQqIE5vZGU6Om5leHRFbGVtZW50U2libGluZygpIGNvbnN0CiAKIGJvb2wgTm9kZTo6aW5z
ZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIHJlZkNoaWxkLCBFeGNl
cHRpb25Db2RlJiBlYykKIHsKKyAgICBpZiAoIW5ld0NoaWxkKSB7CisgICAgICAgIGVjID0gVHlw
ZUVycm9yOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogICAgIGlmICghaXM8Q29udGFp
bmVyTm9kZT4oKnRoaXMpKSB7CiAgICAgICAgIGVjID0gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIHJldHVybiBkb3duY2FzdDxDb250YWlu
ZXJOb2RlPigqdGhpcykuaW5zZXJ0QmVmb3JlKG5ld0NoaWxkLCByZWZDaGlsZCwgZWMpOworICAg
IHJldHVybiBkb3duY2FzdDxDb250YWluZXJOb2RlPigqdGhpcykuaW5zZXJ0QmVmb3JlKCpuZXdD
aGlsZCwgcmVmQ2hpbGQsIGVjKTsKIH0KIAogYm9vbCBOb2RlOjpyZXBsYWNlQ2hpbGQoUGFzc1Jl
ZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQog
eworICAgIGlmICghbmV3Q2hpbGQgfHwgIW9sZENoaWxkKSB7CisgICAgICAgIGVjID0gVHlwZUVy
cm9yOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogICAgIGlmICghaXM8Q29udGFpbmVy
Tm9kZT4oKnRoaXMpKSB7CiAgICAgICAgIGVjID0gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIHJldHVybiBkb3duY2FzdDxDb250YWluZXJO
b2RlPigqdGhpcykucmVwbGFjZUNoaWxkKG5ld0NoaWxkLCBvbGRDaGlsZCwgZWMpOworICAgIHJl
dHVybiBkb3duY2FzdDxDb250YWluZXJOb2RlPigqdGhpcykucmVwbGFjZUNoaWxkKCpuZXdDaGls
ZCwgKm9sZENoaWxkLCBlYyk7CiB9CiAKIGJvb2wgTm9kZTo6cmVtb3ZlQ2hpbGQoTm9kZSogb2xk
Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogeworICAgIGlmICghb2xkQ2hpbGQpIHsKKyAgICAg
ICAgZWMgPSBUeXBlRXJyb3I7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAgICAgaWYg
KCFpczxDb250YWluZXJOb2RlPigqdGhpcykpIHsKICAgICAgICAgZWMgPSBOT1RfRk9VTkRfRVJS
OwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIHJldHVybiBkb3duY2FzdDxDb250
YWluZXJOb2RlPigqdGhpcykucmVtb3ZlQ2hpbGQob2xkQ2hpbGQsIGVjKTsKKyAgICByZXR1cm4g
ZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4oKnRoaXMpLnJlbW92ZUNoaWxkKCpvbGRDaGlsZCwgZWMp
OwogfQogCiBib29sIE5vZGU6OmFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQogeworICAgIGlmICghbmV3Q2hpbGQpIHsKKyAgICAgICAgZWMg
PSBUeXBlRXJyb3I7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAgICAgaWYgKCFpczxD
b250YWluZXJOb2RlPigqdGhpcykpIHsKICAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9F
UlI7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIGRvd25jYXN0PENv
bnRhaW5lck5vZGU+KCp0aGlzKS5hcHBlbmRDaGlsZChuZXdDaGlsZCwgZWMpOworICAgIHJldHVy
biBkb3duY2FzdDxDb250YWluZXJOb2RlPigqdGhpcykuYXBwZW5kQ2hpbGQoKm5ld0NoaWxkLCBl
Yyk7CiB9CiAKIHN0YXRpYyBIYXNoU2V0PFJlZlB0cjxOb2RlPj4gbm9kZVNldFByZVRyYW5zZm9y
bWVkRnJvbU5vZGVPclN0cmluZ1ZlY3Rvcihjb25zdCBWZWN0b3I8Tm9kZU9yU3RyaW5nPiYgbm9k
ZU9yU3RyaW5nVmVjdG9yKQpAQCAtNTE1LDcgKzUzMSw3IEBAIHZvaWQgTm9kZTo6YmVmb3JlKFZl
Y3RvcjxOb2RlT3JTdHJpbmc+JiYgbm9kZU9yU3RyaW5nVmVjdG9yLCBFeGNlcHRpb25Db2RlJiBl
YykKICAgICBlbHNlCiAgICAgICAgIHZpYWJsZVByZXZpb3VzU2libGluZyA9IHBhcmVudC0+Zmly
c3RDaGlsZCgpOwogCi0gICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobm9kZS5yZWxlYXNlKCksIHZp
YWJsZVByZXZpb3VzU2libGluZy5nZXQoKSwgZWMpOworICAgIHBhcmVudC0+aW5zZXJ0QmVmb3Jl
KG5vZGUucmVsZWFzZU5vbk51bGwoKSwgdmlhYmxlUHJldmlvdXNTaWJsaW5nLmdldCgpLCBlYyk7
CiB9CiAKIHZvaWQgTm9kZTo6YWZ0ZXIoVmVjdG9yPE5vZGVPclN0cmluZz4mJiBub2RlT3JTdHJp
bmdWZWN0b3IsIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtNTMxLDcgKzU0Nyw3IEBAIHZvaWQgTm9k
ZTo6YWZ0ZXIoVmVjdG9yPE5vZGVPclN0cmluZz4mJiBub2RlT3JTdHJpbmdWZWN0b3IsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogICAgIGlmIChlYyB8fCAhbm9kZSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobm9kZS5yZWxlYXNlKCksIHZpYWJsZU5leHRTaWJsaW5n
LmdldCgpLCBlYyk7CisgICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobm9kZS5yZWxlYXNlTm9uTnVs
bCgpLCB2aWFibGVOZXh0U2libGluZy5nZXQoKSwgZWMpOwogfQogCiB2b2lkIE5vZGU6OnJlcGxh
Y2VXaXRoKFZlY3RvcjxOb2RlT3JTdHJpbmc+JiYgbm9kZU9yU3RyaW5nVmVjdG9yLCBFeGNlcHRp
b25Db2RlJiBlYykKQEAgLTU0OCwxNSArNTY0LDE1IEBAIHZvaWQgTm9kZTo6cmVwbGFjZVdpdGgo
VmVjdG9yPE5vZGVPclN0cmluZz4mJiBub2RlT3JTdHJpbmdWZWN0b3IsIEV4Y2VwdGlvbkNvZGUm
CiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChwYXJlbnROb2RlKCkgPT0gcGFyZW50KQotICAg
ICAgICBwYXJlbnQtPnJlcGxhY2VDaGlsZChub2RlLnJlbGVhc2UoKSwgdGhpcywgZWMpOworICAg
ICAgICBwYXJlbnQtPnJlcGxhY2VDaGlsZChub2RlLnJlbGVhc2VOb25OdWxsKCksICp0aGlzLCBl
Yyk7CiAgICAgZWxzZQotICAgICAgICBwYXJlbnQtPmluc2VydEJlZm9yZShub2RlLnJlbGVhc2Uo
KSwgdmlhYmxlTmV4dFNpYmxpbmcuZ2V0KCksIGVjKTsKKyAgICAgICAgcGFyZW50LT5pbnNlcnRC
ZWZvcmUobm9kZS5yZWxlYXNlTm9uTnVsbCgpLCB2aWFibGVOZXh0U2libGluZy5nZXQoKSwgZWMp
OwogfQogCiB2b2lkIE5vZGU6OnJlbW92ZShFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAo
Q29udGFpbmVyTm9kZSogcGFyZW50ID0gcGFyZW50Tm9kZSgpKQotICAgICAgICBwYXJlbnQtPnJl
bW92ZUNoaWxkKHRoaXMsIGVjKTsKKyAgICAgICAgcGFyZW50LT5yZW1vdmVDaGlsZCgqdGhpcywg
ZWMpOwogfQogCiB2b2lkIE5vZGU6Om5vcm1hbGl6ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCAxODQ4N2E2
ZTU2OWFmNDM3MmE2YmE2MjcwYjA3MTlkY2VjNGI3Nzk3Li40YTQ2YTc5ZWYwZDlkMDA0MWRhODcx
NTAxYTBmYmM5MjYyMzBiYTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTIwMSw4ICsyMDEsOCBAQCBwdWJs
aWM6CiAgICAgICAgIFNlbGZXaXRoVGVtcGxhdGVDb250ZW50LAogICAgICAgICBFdmVyeXRoaW5n
LAogICAgIH07Ci0gICAgdmlydHVhbCBSZWZQdHI8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9j
dW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSA9IDA7Ci0gICAgUmVmUHRyPE5vZGU+IGNsb25lTm9k
ZShib29sIGRlZXApIHsgcmV0dXJuIGNsb25lTm9kZUludGVybmFsKGRvY3VtZW50KCksIGRlZXAg
PyBDbG9uaW5nT3BlcmF0aW9uOjpFdmVyeXRoaW5nIDogQ2xvbmluZ09wZXJhdGlvbjo6T25seVNl
bGYpOyB9CisgICAgdmlydHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQm
LCBDbG9uaW5nT3BlcmF0aW9uKSA9IDA7CisgICAgUmVmPE5vZGU+IGNsb25lTm9kZShib29sIGRl
ZXApIHsgcmV0dXJuIGNsb25lTm9kZUludGVybmFsKGRvY3VtZW50KCksIGRlZXAgPyBDbG9uaW5n
T3BlcmF0aW9uOjpFdmVyeXRoaW5nIDogQ2xvbmluZ09wZXJhdGlvbjo6T25seVNlbGYpOyB9CiAK
ICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lKCkgY29uc3Q7CiAgICAg
dmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSgpIGNvbnN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcAppbmRleCBiMzQzY2EzYTAx
YWU4ZWVmZGI1OTdlNWQ0ZTIyZTI3Yjk5M2ZlZjkwLi4zMDAwOWI3YjBkZmNlYTU2OWUyY2NlYTE4
MzE1Y2IyNzUxMzFjMDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2lu
Z0luc3RydWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLmNwcApAQCAtNzksNyArNzksNyBAQCBOb2RlOjpOb2RlVHlwZSBQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb246Om5vZGVUeXBlKCkgY29uc3QKICAgICByZXR1cm4gUFJPQ0VTU0lOR19JTlNUUlVD
VElPTl9OT0RFOwogfQogCi1SZWZQdHI8Tm9kZT4gUHJvY2Vzc2luZ0luc3RydWN0aW9uOjpjbG9u
ZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24p
CitSZWY8Tm9kZT4gUHJvY2Vzc2luZ0luc3RydWN0aW9uOjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1
bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24pCiB7CiAgICAgLy8gRklYTUU6
IElzIGl0IGEgcHJvYmxlbSB0aGF0IHRoaXMgZG9lcyBub3QgY29weSBtX2xvY2FsSHJlZj8KICAg
ICAvLyBXaGF0IGFib3V0IG90aGVyIGRhdGEgbWVtYmVycz8KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Q
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaAppbmRleCAyMWZkOWU5N2NkMmY3NWM4ZmQ3NTgwMGUwMjJh
ZGEyOTUzOTc2ZjhlLi5lZmE5MDViNjY2M2YzYTI5M2M5NzcxMDUzNGZkNmZkYTk4NDJlOTdhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5oCkBAIC01OCw3ICs1
OCw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFN0cmluZyBub2RlTmFtZSgpIGNvbnN0IG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgTm9kZVR5cGUgbm9kZVR5cGUoKSBjb25zdCBvdmVycmlkZTsK
LSAgICB2aXJ0dWFsIFJlZlB0cjxOb2RlPiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENs
b25pbmdPcGVyYXRpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPE5vZGU+IGNsb25lTm9k
ZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CiAKICAgICB2
aXJ0dWFsIEluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5l
ck5vZGUmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb20oQ29udGFpbmVy
Tm9kZSYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKaW5kZXggNGQyMjdkYWFmNGU0NDg4MTg4
NDI3MWMxYmRlOWYxODgzZjVhYzRhNC4uMjY1MDhjZjA0NzJkNGYwZWRlZmE1ZDM1NTdjZTkyM2M3
OGIxYjkyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCkBAIC02NjUsNyArNjY1LDcgQEAgUmVmUHRyPERv
Y3VtZW50RnJhZ21lbnQ+IFJhbmdlOjpwcm9jZXNzQ29udGVudHMoQWN0aW9uVHlwZSBhY3Rpb24s
IEV4Y2VwdGlvbkNvZGUKICAgICAvLyAob3IganVzdCBkZWxldGUgdGhlIHN0dWZmIGluIGJldHdl
ZW4pCiAKICAgICBpZiAoKGFjdGlvbiA9PSBFeHRyYWN0IHx8IGFjdGlvbiA9PSBDbG9uZSkgJiYg
bGVmdENvbnRlbnRzKQotICAgICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQobGVmdENvbnRlbnRz
LCBlYyk7CisgICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZCgqbGVmdENvbnRlbnRzLCBlYyk7
CiAKICAgICBpZiAocHJvY2Vzc1N0YXJ0KSB7CiAgICAgICAgIE5vZGVWZWN0b3Igbm9kZXM7CkBA
IC02NzUsNyArNjc1LDcgQEAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFJhbmdlOjpwcm9jZXNz
Q29udGVudHMoQWN0aW9uVHlwZSBhY3Rpb24sIEV4Y2VwdGlvbkNvZGUKICAgICB9CiAKICAgICBp
ZiAoKGFjdGlvbiA9PSBFeHRyYWN0IHx8IGFjdGlvbiA9PSBDbG9uZSkgJiYgcmlnaHRDb250ZW50
cykKLSAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKHJpZ2h0Q29udGVudHMsIGVjKTsKKyAg
ICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKCpyaWdodENvbnRlbnRzLCBlYyk7CiAKICAgICBy
ZXR1cm4gZnJhZ21lbnQ7CiB9CkBAIC03MDIsNyArNzAyLDcgQEAgUmVmUHRyPE5vZGU+IFJhbmdl
Ojpwcm9jZXNzQ29udGVudHNCZXR3ZWVuT2Zmc2V0cyhBY3Rpb25UeXBlIGFjdGlvbiwgUGFzc1Jl
ZlB0cjwKICAgICAgICAgZW5kT2Zmc2V0ID0gc3RkOjptaW4oZW5kT2Zmc2V0LCBzdGF0aWNfY2Fz
dDxDaGFyYWN0ZXJEYXRhKj4oY29udGFpbmVyKS0+bGVuZ3RoKCkpOwogICAgICAgICBzdGFydE9m
ZnNldCA9IHN0ZDo6bWluKHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQpOwogICAgICAgICBpZiAoYWN0
aW9uID09IEV4dHJhY3QgfHwgYWN0aW9uID09IENsb25lKSB7Ci0gICAgICAgICAgICBSZWZQdHI8
Q2hhcmFjdGVyRGF0YT4gYyA9IHN0YXRpY19wb2ludGVyX2Nhc3Q8Q2hhcmFjdGVyRGF0YT4oY29u
dGFpbmVyLT5jbG9uZU5vZGUodHJ1ZSkpOworICAgICAgICAgICAgUmVmUHRyPENoYXJhY3RlckRh
dGE+IGMgPSBzdGF0aWNfY2FzdDxDaGFyYWN0ZXJEYXRhKj4oY29udGFpbmVyLT5jbG9uZU5vZGUo
dHJ1ZSkucHRyKCkpOwogICAgICAgICAgICAgZGVsZXRlQ2hhcmFjdGVyRGF0YShjLCBzdGFydE9m
ZnNldCwgZW5kT2Zmc2V0LCBlYyk7CiAgICAgICAgICAgICBpZiAoZnJhZ21lbnQpIHsKICAgICAg
ICAgICAgICAgICByZXN1bHQgPSBmcmFnbWVudDsKQEAgLTcxNyw3ICs3MTcsNyBAQCBSZWZQdHI8
Tm9kZT4gUmFuZ2U6OnByb2Nlc3NDb250ZW50c0JldHdlZW5PZmZzZXRzKEFjdGlvblR5cGUgYWN0
aW9uLCBQYXNzUmVmUHRyPAogICAgICAgICBlbmRPZmZzZXQgPSBzdGQ6Om1pbihlbmRPZmZzZXQs
IHN0YXRpY19jYXN0PFByb2Nlc3NpbmdJbnN0cnVjdGlvbio+KGNvbnRhaW5lciktPmRhdGEoKS5s
ZW5ndGgoKSk7CiAgICAgICAgIHN0YXJ0T2Zmc2V0ID0gc3RkOjptaW4oc3RhcnRPZmZzZXQsIGVu
ZE9mZnNldCk7CiAgICAgICAgIGlmIChhY3Rpb24gPT0gRXh0cmFjdCB8fCBhY3Rpb24gPT0gQ2xv
bmUpIHsKLSAgICAgICAgICAgIFJlZlB0cjxQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24+IGMgPSBzdGF0
aWNfcG9pbnRlcl9jYXN0PFByb2Nlc3NpbmdJbnN0cnVjdGlvbj4oY29udGFpbmVyLT5jbG9uZU5v
ZGUodHJ1ZSkpOworICAgICAgICAgICAgUmVmUHRyPFByb2Nlc3NpbmdJbnN0cnVjdGlvbj4gYyA9
IHN0YXRpY19jYXN0PFByb2Nlc3NpbmdJbnN0cnVjdGlvbio+KGNvbnRhaW5lci0+Y2xvbmVOb2Rl
KHRydWUpLnB0cigpKTsKICAgICAgICAgICAgIGMtPnNldERhdGEoYy0+ZGF0YSgpLnN1YnN0cmlu
ZyhzdGFydE9mZnNldCwgZW5kT2Zmc2V0IC0gc3RhcnRPZmZzZXQpLCBlYyk7CiAgICAgICAgICAg
ICBpZiAoZnJhZ21lbnQpIHsKICAgICAgICAgICAgICAgICByZXN1bHQgPSBmcmFnbWVudDsKQEAg
LTkzNSw3ICs5MzUsNyBAQCB2b2lkIFJhbmdlOjppbnNlcnROb2RlKFBhc3NSZWZQdHI8Tm9kZT4g
cHJwTmV3Tm9kZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIAogICAgICAgICBjb250YWluZXIgPSAmc3RhcnRDb250YWluZXIoKTsKLSAgICAgICAgY29u
dGFpbmVyLT5wYXJlbnROb2RlKCktPmluc2VydEJlZm9yZShuZXdOb2RlLnJlbGVhc2UoKSwgbmV3
VGV4dC5nZXQoKSwgZWMpOworICAgICAgICBjb250YWluZXItPnBhcmVudE5vZGUoKS0+aW5zZXJ0
QmVmb3JlKG5ld05vZGUucmVsZWFzZU5vbk51bGwoKSwgbmV3VGV4dC5nZXQoKSwgZWMpOwogICAg
ICAgICBpZiAoZWMpCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTEzMDMsNyArMTMwMyw3IEBA
IHZvaWQgUmFuZ2U6OnN1cnJvdW5kQ29udGVudHMoUGFzc1JlZlB0cjxOb2RlPiBwYXNzTmV3UGFy
ZW50LCBFeGNlcHRpb25Db2RlJiBlYykKIAogICAgIGVjID0gMDsKICAgICB3aGlsZSAoTm9kZSog
biA9IG5ld1BhcmVudC0+Zmlyc3RDaGlsZCgpKSB7Ci0gICAgICAgIGRvd25jYXN0PENvbnRhaW5l
ck5vZGU+KCpuZXdQYXJlbnQpLnJlbW92ZUNoaWxkKG4sIGVjKTsKKyAgICAgICAgZG93bmNhc3Q8
Q29udGFpbmVyTm9kZT4oKm5ld1BhcmVudCkucmVtb3ZlQ2hpbGQoKm4sIGVjKTsKICAgICAgICAg
aWYgKGVjKQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290
LmNwcAppbmRleCBhMTIyNTdmODJkZGFkYzgwMzhlOGEzMGEzNDI1MmY2MzI5ZjdiYjZjLi44ODYx
MDBkYjQ2OWUyNDFlNDZiOTU2YmM1NzAxZGEwY2M1ZTY2OTVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d1Jvb3QuY3BwCkBAIC05Miw3ICs5Miw3IEBAIHZvaWQgU2hhZG93Um9vdDo6c2V0SW5uZXJIVE1M
KGNvbnN0IFN0cmluZyYgbWFya3VwLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICB9CiAKICAgICBp
ZiAoUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGb3JJ
bm5lck91dGVySFRNTChtYXJrdXAsIGhvc3QoKSwgQWxsb3dTY3JpcHRpbmdDb250ZW50LCBlYykp
Ci0gICAgICAgIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudCgqdGhpcywgZnJhZ21lbnQucmVs
ZWFzZSgpLCBlYyk7CisgICAgICAgIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudCgqdGhpcywg
ZnJhZ21lbnQucmVsZWFzZU5vbk51bGwoKSwgZWMpOwogfQogCiBib29sIFNoYWRvd1Jvb3Q6OmNo
aWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkgY29uc3QKQEAgLTEzMSw5ICsxMzEsMTAgQEAg
dm9pZCBTaGFkb3dSb290OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5n
ZSkKICAgICBpbnZhbGlkYXRlRGlzdHJpYnV0aW9uKCk7CiB9CiAKLVJlZlB0cjxOb2RlPiBTaGFk
b3dSb290OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pCitS
ZWY8Tm9kZT4gU2hhZG93Um9vdDo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5n
T3BlcmF0aW9uKQogewotICAgIHJldHVybiBudWxscHRyOyAvLyBTaGFkb3dSb290cyBzaG91bGQg
bmV2ZXIgYmUgY2xvbmVkLgorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
cmV0dXJuICpzdGF0aWNfY2FzdDxOb2RlKj4obnVsbHB0cik7IC8vIFNoYWRvd1Jvb3RzIHNob3Vs
ZCBuZXZlciBiZSBjbG9uZWQuCiB9CiAKIHZvaWQgU2hhZG93Um9vdDo6cmVtb3ZlQWxsRXZlbnRM
aXN0ZW5lcnMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKaW5kZXggNmQzMTFmZGI2MjYzZGExMmRj
OWQ5MDRmNzEwZDA3YjllYzg1YThjZi4uNjMxNjA4YWYxYWQ0NDM2YTI1YmE2MWViMzlkZWQ4ZmY2
YTIyYmJkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCkBAIC03Niw3ICs3Niw3IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCBib29sIGNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUpIGNvbnN0IG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFu
Z2UmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgUmVmUHRyPE5vZGU+IGNsb25lTm9kZUludGVy
bmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBS
ZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBv
dmVycmlkZTsKIAogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZG4ndCBoYXBwZW4uIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODgzNAogICAgIGJvb2wgaXNPcnBoYW4o
KSBjb25zdCB7IHJldHVybiAhbV9ob3N0OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKaW5kZXggYjExNzFkNzYx
MWJlNmRlNjUxNmI2MDVkY2ZlMWI2ZGMxOWQ3MTM0My4uNmM0Yzg5ZGE5ZWI2ZWZjZjA2YWI4NDI5
ZWE1YzRkMTIyM2VlMzQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcApAQCAtNzMsNyArNzMsNyBAQCBSZWZQ
dHI8VGV4dD4gVGV4dDo6c3BsaXRUZXh0KHVuc2lnbmVkIG9mZnNldCwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiAgICAgZGlzcGF0Y2hNb2RpZmllZEV2ZW50KG9sZFN0cik7CiAKICAgICBpZiAocGFyZW50
Tm9kZSgpKQotICAgICAgICBwYXJlbnROb2RlKCktPmluc2VydEJlZm9yZShuZXdUZXh0LnB0cigp
LCBuZXh0U2libGluZygpLCBlYyk7CisgICAgICAgIHBhcmVudE5vZGUoKS0+aW5zZXJ0QmVmb3Jl
KG5ld1RleHQuY29weVJlZigpLCBuZXh0U2libGluZygpLCBlYyk7CiAgICAgaWYgKGVjKQogICAg
ICAgICByZXR1cm4gMDsKIApAQCAtMTMyLDI4ICsxMzIsMjggQEAgUmVmUHRyPFRleHQ+IFRleHQ6
OnJlcGxhY2VXaG9sZVRleHQoY29uc3QgU3RyaW5nJiBuZXdUZXh0LCBFeGNlcHRpb25Db2RlJikK
ICAgICBSZWZQdHI8VGV4dD4gcHJvdGVjdGVkVGhpcyh0aGlzKTsgLy8gTXV0YXRpb24gZXZlbnQg
aGFuZGxlcnMgY291bGQgY2F1c2Ugb3VyIGxhc3QgcmVmIHRvIGdvIGF3YXkKICAgICBSZWZQdHI8
Q29udGFpbmVyTm9kZT4gcGFyZW50ID0gcGFyZW50Tm9kZSgpOyAvLyBQcm90ZWN0IGFnYWluc3Qg
bXV0YXRpb24gaGFuZGxlcnMgbW92aW5nIHRoaXMgbm9kZSBkdXJpbmcgdHJhdmVyc2FsCiAgICAg
Zm9yIChSZWZQdHI8Tm9kZT4gbiA9IHN0YXJ0VGV4dDsgbiAmJiBuICE9IHRoaXMgJiYgbi0+aXNU
ZXh0Tm9kZSgpICYmIG4tPnBhcmVudE5vZGUoKSA9PSBwYXJlbnQ7KSB7Ci0gICAgICAgIFJlZlB0
cjxOb2RlPiBub2RlVG9SZW1vdmUobi5yZWxlYXNlKCkpOworICAgICAgICBSZWY8Tm9kZT4gbm9k
ZVRvUmVtb3ZlKG4ucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgICAgIG4gPSBub2RlVG9SZW1vdmUt
Pm5leHRTaWJsaW5nKCk7Ci0gICAgICAgIHBhcmVudC0+cmVtb3ZlQ2hpbGQobm9kZVRvUmVtb3Zl
LmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgcGFyZW50LT5yZW1vdmVDaGlsZChX
VEY6Om1vdmUobm9kZVRvUmVtb3ZlKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgfQogCiAgICAg
aWYgKHRoaXMgIT0gZW5kVGV4dCkgewogICAgICAgICBOb2RlKiBvbmVQYXN0RW5kVGV4dCA9IGVu
ZFRleHQtPm5leHRTaWJsaW5nKCk7CiAgICAgICAgIGZvciAoUmVmUHRyPE5vZGU+IG4gPSBuZXh0
U2libGluZygpOyBuICYmIG4gIT0gb25lUGFzdEVuZFRleHQgJiYgbi0+aXNUZXh0Tm9kZSgpICYm
IG4tPnBhcmVudE5vZGUoKSA9PSBwYXJlbnQ7KSB7Ci0gICAgICAgICAgICBSZWZQdHI8Tm9kZT4g
bm9kZVRvUmVtb3ZlKG4ucmVsZWFzZSgpKTsKKyAgICAgICAgICAgIFJlZjxOb2RlPiBub2RlVG9S
ZW1vdmUobi5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICAgICAgICAgIG4gPSBub2RlVG9SZW1vdmUt
Pm5leHRTaWJsaW5nKCk7Ci0gICAgICAgICAgICBwYXJlbnQtPnJlbW92ZUNoaWxkKG5vZGVUb1Jl
bW92ZS5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgICAgICAgICBwYXJlbnQtPnJlbW92
ZUNoaWxkKFdURjo6bW92ZShub2RlVG9SZW1vdmUpLCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICAg
ICAgfQogICAgIH0KIAogICAgIGlmIChuZXdUZXh0LmlzRW1wdHkoKSkgewogICAgICAgICBpZiAo
cGFyZW50ICYmIHBhcmVudE5vZGUoKSA9PSBwYXJlbnQpCi0gICAgICAgICAgICBwYXJlbnQtPnJl
bW92ZUNoaWxkKHRoaXMsIElHTk9SRV9FWENFUFRJT04pOwotICAgICAgICByZXR1cm4gMDsKKyAg
ICAgICAgICAgIHBhcmVudC0+cmVtb3ZlQ2hpbGQoKnRoaXMsIElHTk9SRV9FWENFUFRJT04pOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBzZXREYXRhKG5ld1RleHQsIElH
Tk9SRV9FWENFUFRJT04pOwotICAgIHJldHVybiBwcm90ZWN0ZWRUaGlzLnJlbGVhc2UoKTsKKyAg
ICByZXR1cm4gcHJvdGVjdGVkVGhpczsKIH0KIAogU3RyaW5nIFRleHQ6Om5vZGVOYW1lKCkgY29u
c3QKQEAgLTE2Niw3ICsxNjYsNyBAQCBOb2RlOjpOb2RlVHlwZSBUZXh0Ojpub2RlVHlwZSgpIGNv
bnN0CiAgICAgcmV0dXJuIFRFWFRfTk9ERTsKIH0KIAotUmVmUHRyPE5vZGU+IFRleHQ6OmNsb25l
Tm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xvbmluZ09wZXJhdGlvbikK
K1JlZjxOb2RlPiBUZXh0OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1l
bnQsIENsb25pbmdPcGVyYXRpb24pCiB7CiAgICAgcmV0dXJuIGNyZWF0ZSh0YXJnZXREb2N1bWVu
dCwgZGF0YSgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vVGV4dC5oCmluZGV4IGE5Njc0MzY0Y2RhMGRlZGI4ZWNhNTljYzBh
MjVhNTM3MmJiYTk3ZDQuLmVmZDZiZGU5MjdjMWY5OTkzNTdlMjUxZWU0NTQyMDlhZDFjZjUwZmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1RleHQuaApAQCAtNjIsNyArNjIsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAg
IHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBO
b2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVmUHRyPE5v
ZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQmLCBD
bG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRUeXBlQWxs
b3dlZChOb2RlVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIFJlZjxUZXh0PiB2
aXJ0dWFsQ3JlYXRlKGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Fw
cGVuZE5vZGVDb21tYW5kLmNwcAppbmRleCA2YThkOWU5MWEyNTFiMWFiOTdhMTllMjMyMzIwY2I4
NDY4YjVjMzA0Li5iOTM1MzEyMTcyODdlYjIyNjBhYzY3MTBmZmQ3ZTNjMGY4Njc3ODZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcApAQCAtMzUsMTMg
KzM1LDEyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQXBwZW5kTm9kZUNvbW1hbmQ6OkFw
cGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVm
UHRyPE5vZGU+IG5vZGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKK0FwcGVuZE5vZGVDb21t
YW5kOjpBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwg
UmVmPE5vZGU+JiYgbm9kZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQogICAgIDogU2ltcGxl
RWRpdENvbW1hbmQocGFyZW50LT5kb2N1bWVudCgpLCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9w
YXJlbnQocGFyZW50KQotICAgICwgbV9ub2RlKG5vZGUpCisgICAgLCBtX25vZGUoV1RGOjptb3Zl
KG5vZGUpKQogewogICAgIEFTU0VSVChtX3BhcmVudCk7Ci0gICAgQVNTRVJUKG1fbm9kZSk7CiAg
ICAgQVNTRVJUKCFtX25vZGUtPnBhcmVudE5vZGUoKSk7CiAKICAgICBBU1NFUlQobV9wYXJlbnQt
Pmhhc0VkaXRhYmxlU3R5bGUoKSB8fCAhbV9wYXJlbnQtPnJlbmRlcmVyKCkpOwpAQCAtNjgsMTAg
KzY3LDEwIEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogICAgIGlmICghbV9w
YXJlbnQtPmhhc0VkaXRhYmxlU3R5bGUoKSAmJiBtX3BhcmVudC0+cmVuZGVyZXIoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKG1fbm9kZS5nZXQoKSwgSUdO
T1JFX0VYQ0VQVElPTik7CisgICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKG1fbm9kZS5jb3B5UmVm
KCksIElHTk9SRV9FWENFUFRJT04pOwogCiAgICAgaWYgKHNob3VsZFBvc3RBY2Nlc3NpYmlsaXR5
Tm90aWZpY2F0aW9uKCkpCi0gICAgICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJl
YWtzKG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpKTsKKyAgICAgICAgc2VuZEFYVGV4dENo
YW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLnB0cigpLCBhcHBseUVkaXRUeXBlKCkpOwog
fQogCiB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQpAQCAtODEsNyArODAsNyBA
QCB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogCiAgICAgLy8gTmVlZCB0byBu
b3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKICAgICBpZiAoc2hv
dWxkUG9zdEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24oKSkKLSAgICAgICAgc2VuZEFYVGV4dENo
YW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSk7
CisgICAgICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5wdHIo
KSwgdW5hcHBseUVkaXRUeXBlKCkpOwogCiAgICAgbV9ub2RlLT5yZW1vdmUoSUdOT1JFX0VYQ0VQ
VElPTik7CiB9CkBAIC05MCw3ICs4OSw3IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5h
cHBseSgpCiB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0
PE5vZGUqPiYgbm9kZXMpCiB7CiAgICAgYWRkTm9kZUFuZERlc2NlbmRhbnRzKG1fcGFyZW50Lmdl
dCgpLCBub2Rlcyk7Ci0gICAgYWRkTm9kZUFuZERlc2NlbmRhbnRzKG1fbm9kZS5nZXQoKSwgbm9k
ZXMpOworICAgIGFkZE5vZGVBbmREZXNjZW5kYW50cyhtX25vZGUucHRyKCksIG5vZGVzKTsKIH0K
ICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVD
b21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKaW5k
ZXggZjc4Mjk3NWI4OTIxNTBhZTM2ZDI5YTZiYmVjYTlmMWRjMTMwN2MzMS4uNjQwZmE3NWEyZmY4
NjgxNjcxN2Y2YWZhMGI5MzJjM2YwMGU0NDk1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QXBwZW5kTm9kZUNvbW1hbmQuaApAQCAtMzIsMTMgKzMyLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgQXBwZW5kTm9kZUNvbW1hbmQgOiBwdWJsaWMgU2ltcGxlRWRpdENvbW1hbmQg
ewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8QXBwZW5kTm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNz
UmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBFZGl0
QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgc3RhdGljIFJlZjxBcHBlbmROb2RlQ29tbWFuZD4g
Y3JlYXRlKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBSZWY8Tm9kZT4mJiBub2Rl
LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBBcHBlbmROb2RlQ29tbWFuZChwYXJlbnQsIG5vZGUsIGVkaXRpbmdBY3Rpb24pKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXBwZW5kTm9kZUNvbW1hbmQocGFyZW50LCBX
VEY6Om1vdmUobm9kZSksIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAg
QXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NS
ZWZQdHI8Tm9kZT4sIEVkaXRBY3Rpb24pOworICAgIEFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBSZWY8Tm9kZT4mJiwgRWRpdEFjdGlvbik7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1Vu
YXBwbHkoKSBvdmVycmlkZTsKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAg
ICAgUmVmUHRyPENvbnRhaW5lck5vZGU+IG1fcGFyZW50OwotICAgIFJlZlB0cjxOb2RlPiBtX25v
ZGU7CisgICAgUmVmPE5vZGU+IG1fbm9kZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKaW5k
ZXggM2Q3Nzk0MjQ4ZDIzZTliN2EyMzkxNjJmOTcxYTQ0NzQ3NTFiNjMwMy4uNWQ5ZDM2ZmY1MGY1
ZGNmNjdkMDhkMGU0YTYyNTM2MzZlOTFiNTA2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKQEAgLTM5NSw3ICszOTUsOCBAQCB2b2lkIENv
bXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQXQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRD
aGlsZCwgY29uc3QgUG9zaQogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6YXBwZW5kTm9kZShQ
YXNzUmVmUHRyPE5vZGU+IG5vZGUsIFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50KQog
ewogICAgIEFTU0VSVChjYW5IYXZlQ2hpbGRyZW5Gb3JFZGl0aW5nKHBhcmVudC5nZXQoKSkpOwot
ICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEFwcGVuZE5vZGVDb21tYW5kOjpjcmVhdGUocGFy
ZW50LCBub2RlLCBlZGl0aW5nQWN0aW9uKCkpKTsKKyAgICBBU1NFUlQobm9kZSk7CisgICAgYXBw
bHlDb21tYW5kVG9Db21wb3NpdGUoQXBwZW5kTm9kZUNvbW1hbmQ6OmNyZWF0ZShwYXJlbnQsICpu
b2RlLCBlZGl0aW5nQWN0aW9uKCkpKTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6
cmVtb3ZlQ2hpbGRyZW5JblJhbmdlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgdW5zaWduZWQgZnJv
bSwgdW5zaWduZWQgdG8pCkBAIC00MTQsNyArNDE1LDcgQEAgdm9pZCBDb21wb3NpdGVFZGl0Q29t
bWFuZDo6cmVtb3ZlTm9kZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRl
bnQKIHsKICAgICBpZiAoIW5vZGUgfHwgIW5vZGUtPm5vblNoYWRvd0JvdW5kYXJ5UGFyZW50Tm9k
ZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoUmVtb3Zl
Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0
YWJsZSkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKFJlbW92ZU5vZGVDb21tYW5kOjpj
cmVhdGUoKm5vZGUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CiB9CiAK
IHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW4o
UGFzc1JlZlB0cjxOb2RlPiBub2RlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJs
ZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKQEAgLTE1NDEsNyArMTU0Miw3
IEBAIFBhc3NSZWZQdHI8Tm9kZT4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnNwbGl0VHJlZVRvTm9k
ZShOb2RlKiBzdGFydCwgTm9kZSogZW5kLCBiCiAgICAgcmV0dXJuIG5vZGUucmVsZWFzZSgpOwog
fQogCi1QYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZUJsb2NrUGxhY2Vob2xkZXJFbGVtZW50KERv
Y3VtZW50JiBkb2N1bWVudCkKK1JlZjxFbGVtZW50PiBjcmVhdGVCbG9ja1BsYWNlaG9sZGVyRWxl
bWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoYnJUYWcsIGZhbHNlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCmluZGV4IGM2NDkxZDI2OTI2NWU1YWI2Y2U5NjVlYWE5
NTM0MWI2NTQ0N2QxYWUuLjU2MDk5NzEzM2Y2MTllM2QwYTcyZGNiZGFmYmFiMTc4ZDhmMzBkMWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5k
LmNwcApAQCAtNjMyLDcgKzYzMiw3IEBAIHZvaWQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6bWVy
Z2VQYXJhZ3JhcGhzKCkKICAgICAKICAgICAvLyBXZSBuZWVkIHRvIG1lcmdlIGludG8gbV91cHN0
cmVhbVN0YXJ0J3MgYmxvY2ssIGJ1dCBpdCdzIGJlZW4gZW1wdGllZCBvdXQgYW5kIGNvbGxhcHNl
ZCBieSBkZWxldGlvbi4KICAgICBpZiAoIW1lcmdlRGVzdGluYXRpb24uZGVlcEVxdWl2YWxlbnQo
KS5kZXByZWNhdGVkTm9kZSgpIHx8ICFtZXJnZURlc3RpbmF0aW9uLmRlZXBFcXVpdmFsZW50KCku
ZGVwcmVjYXRlZE5vZGUoKS0+aXNEZXNjZW5kYW50T2YoZW5jbG9zaW5nQmxvY2sobV91cHN0cmVh
bVN0YXJ0LmNvbnRhaW5lck5vZGUoKSkpIHx8IG1fc3RhcnRzQXRFbXB0eUxpbmUpIHsKLSAgICAg
ICAgaW5zZXJ0Tm9kZUF0KGNyZWF0ZUJyZWFrRWxlbWVudChkb2N1bWVudCgpKS5nZXQoKSwgbV91
cHN0cmVhbVN0YXJ0KTsKKyAgICAgICAgaW5zZXJ0Tm9kZUF0KGNyZWF0ZUJyZWFrRWxlbWVudChk
b2N1bWVudCgpKS5wdHIoKSwgbV91cHN0cmVhbVN0YXJ0KTsKICAgICAgICAgbWVyZ2VEZXN0aW5h
dGlvbiA9IFZpc2libGVQb3NpdGlvbihtX3Vwc3RyZWFtU3RhcnQpOwogICAgIH0KICAgICAKQEAg
LTg1NSw3ICs4NTUsNyBAQCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmRvQXBwbHkoKQog
ICAgIAogICAgIHJlbW92ZVByZXZpb3VzbHlTZWxlY3RlZEVtcHR5VGFibGVSb3dzKCk7CiAgICAg
Ci0gICAgUmVmUHRyPE5vZGU+IHBsYWNlaG9sZGVyID0gbV9uZWVkUGxhY2Vob2xkZXIgPyBjcmVh
dGVCcmVha0VsZW1lbnQoZG9jdW1lbnQoKSkuZ2V0KCkgOiAwOworICAgIFJlZlB0cjxOb2RlPiBw
bGFjZWhvbGRlciA9IG1fbmVlZFBsYWNlaG9sZGVyID8gY3JlYXRlQnJlYWtFbGVtZW50KGRvY3Vt
ZW50KCkpLnB0cigpIDogbnVsbHB0cjsKICAgICAKICAgICBpZiAocGxhY2Vob2xkZXIpIHsKICAg
ICAgICAgaWYgKG1fc2FuaXRpemVNYXJrdXApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5k
ZXggMTQ4ZTM1YzhjY2ZhOTZjNWIxMDg0MmFlZjYxZGM2ZDdlMTg2NjgzNC4uNDRiMmFjNzM4MjE2
ZDg5MzdlNDU0YjQ5Y2FjOWQ4ZGNiNzUwNmFmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNw
cApAQCAtNjEzLDggKzYxMyw4IEBAIHZvaWQgRWRpdG9yOjpzZXRUZXh0QXNDaGlsZE9mRWxlbWVu
dChjb25zdCBTdHJpbmcmIHRleHQsIEVsZW1lbnQqIGVsZW0pCiAgICAgICAgICAgICAKICAgICAg
ICAgUmVmUHRyPFJhbmdlPiBjb250ZXh0ID0gZG9jdW1lbnQoKS5jcmVhdGVSYW5nZSgpOwogICAg
ICAgICBjb250ZXh0LT5zZWxlY3ROb2RlQ29udGVudHMoZWxlbSwgZWMpOwotICAgICAgICBSZWZQ
dHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21UZXh0KCpj
b250ZXh0LmdldCgpLCB0ZXh0KTsKLSAgICAgICAgZWxlbS0+YXBwZW5kQ2hpbGQoZnJhZ21lbnQs
IGVjKTsKKyAgICAgICAgUmVmPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJh
Z21lbnRGcm9tVGV4dCgqY29udGV4dC5nZXQoKSwgdGV4dCk7CisgICAgICAgIGVsZW0tPmFwcGVu
ZENoaWxkKFdURjo6bW92ZShmcmFnbWVudCksIGVjKTsKICAgICAKICAgICAgICAgLy8gcmVzdG9y
ZSBlbGVtZW50IHRvIGRvY3VtZW50CiAgICAgICAgIGlmIChwYXJlbnQpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCmluZGV4IDBmOGY4ODAzM2E0ZmVmYTIzZDc1MjY4
OTllZTQ3NDE5ZmQ0MDcyMmIuLjEyY2RkMjFkOGVjMTNkNzBlNWZiMDAzY2U4N2YyZDkyNTE2ODJj
MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcApAQCAtMTY1LDEx
ICsxNjUsMTEgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZUluc2VydEZyYWdtZW50KEZyYW1lJiBmcmFt
ZSwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmEKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotc3RhdGljIGJvb2wgZXhlY3V0ZUluc2VydE5vZGUoRnJhbWUmIGZyYW1lLCBQYXNzUmVmUHRy
PE5vZGU+IGNvbnRlbnQpCitzdGF0aWMgYm9vbCBleGVjdXRlSW5zZXJ0Tm9kZShGcmFtZSYgZnJh
bWUsIFJlZjxOb2RlPiYmIGNvbnRlbnQpCiB7CiAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IGZyYWdtZW50ID0gRG9jdW1lbnRGcmFnbWVudDo6Y3JlYXRlKCpmcmFtZS5kb2N1bWVudCgpKTsK
ICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoY29u
dGVudCwgZWMpOworICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoY29udGVudCks
IGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXR1cm4gZXhl
Y3V0ZUluc2VydEZyYWdtZW50KGZyYW1lLCBmcmFnbWVudC5yZWxlYXNlKCkpOwpAQCAtNDY0LDEw
ICs0NjQsMTAgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZUluc2VydEJhY2t0YWIoRnJhbWUmIGZyYW1l
LCBFdmVudCogZXZlbnQsIEVkaXRvckNvbW1hbmRTb3VyY2UKIAogc3RhdGljIGJvb2wgZXhlY3V0
ZUluc2VydEhvcml6b250YWxSdWxlKEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5k
U291cmNlLCBjb25zdCBTdHJpbmcmIHZhbHVlKQogewotICAgIFJlZlB0cjxIVE1MSFJFbGVtZW50
PiBydWxlID0gSFRNTEhSRWxlbWVudDo6Y3JlYXRlKCpmcmFtZS5kb2N1bWVudCgpKTsKKyAgICBS
ZWY8SFRNTEhSRWxlbWVudD4gcnVsZSA9IEhUTUxIUkVsZW1lbnQ6OmNyZWF0ZSgqZnJhbWUuZG9j
dW1lbnQoKSk7CiAgICAgaWYgKCF2YWx1ZS5pc0VtcHR5KCkpCiAgICAgICAgIHJ1bGUtPnNldElk
QXR0cmlidXRlKHZhbHVlKTsKLSAgICByZXR1cm4gZXhlY3V0ZUluc2VydE5vZGUoZnJhbWUsIHJ1
bGUucmVsZWFzZSgpKTsKKyAgICByZXR1cm4gZXhlY3V0ZUluc2VydE5vZGUoZnJhbWUsIFdURjo6
bW92ZShydWxlKSk7CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVJbnNlcnRIVE1MKEZyYW1lJiBm
cmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJpbmcmIHZhbHVlKQpA
QCAtNDc4LDkgKzQ3OCw5IEBAIHN0YXRpYyBib29sIGV4ZWN1dGVJbnNlcnRIVE1MKEZyYW1lJiBm
cmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBTCiBzdGF0aWMgYm9vbCBl
eGVjdXRlSW5zZXJ0SW1hZ2UoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3Vy
Y2UsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7CiAgICAgLy8gRklYTUU6IElmIHVzZXJJbnRlcmZh
Y2UgaXMgdHJ1ZSwgd2Ugc2hvdWxkIGRpc3BsYXkgYSBkaWFsb2cgYm94IGFuZCBsZXQgdGhlIHVz
ZXIgY2hvb3NlIGEgbG9jYWwgaW1hZ2UuCi0gICAgUmVmUHRyPEhUTUxJbWFnZUVsZW1lbnQ+IGlt
YWdlID0gSFRNTEltYWdlRWxlbWVudDo6Y3JlYXRlKCpmcmFtZS5kb2N1bWVudCgpKTsKKyAgICBS
ZWY8SFRNTEltYWdlRWxlbWVudD4gaW1hZ2UgPSBIVE1MSW1hZ2VFbGVtZW50OjpjcmVhdGUoKmZy
YW1lLmRvY3VtZW50KCkpOwogICAgIGltYWdlLT5zZXRTcmModmFsdWUpOwotICAgIHJldHVybiBl
eGVjdXRlSW5zZXJ0Tm9kZShmcmFtZSwgaW1hZ2UucmVsZWFzZSgpKTsKKyAgICByZXR1cm4gZXhl
Y3V0ZUluc2VydE5vZGUoZnJhbWUsIFdURjo6bW92ZShpbWFnZSkpOwogfQogCiBzdGF0aWMgYm9v
bCBleGVjdXRlSW5zZXJ0TGluZUJyZWFrKEZyYW1lJiBmcmFtZSwgRXZlbnQqIGV2ZW50LCBFZGl0
b3JDb21tYW5kU291cmNlIHNvdXJjZSwgY29uc3QgU3RyaW5nJikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0TGluZUJyZWFrQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydExpbmVCcmVha0NvbW1hbmQuY3BwCmluZGV4IDZlZTIxZDkyMjcz
ZGNlNTVmMTI0ODZmOGY5Nzg3YTI2ODBlZTM5MDAuLjI1YWIwNzEyNGU3OTI3NzIwMjQ1ZWU2ZDZl
NDZjZWQxYzZlOWM4NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0
TGluZUJyZWFrQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRM
aW5lQnJlYWtDb21tYW5kLmNwcApAQCAtMTI5LDcgKzEyOSw3IEBAIHZvaWQgSW5zZXJ0TGluZUJy
ZWFrQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgICAgIAogICAgICAgICAvLyBJbnNlcnQgYW4gZXh0
cmEgYnIgb3IgJ1xuJyBpZiB0aGUganVzdCBpbnNlcnRlZCBvbmUgY29sbGFwc2VkLgogICAgICAg
ICBpZiAoIWlzU3RhcnRPZlBhcmFncmFwaChwb3NpdGlvbkJlZm9yZU5vZGUobm9kZVRvSW5zZXJ0
LmdldCgpKSkpCi0gICAgICAgICAgICBpbnNlcnROb2RlQmVmb3JlKG5vZGVUb0luc2VydC0+Y2xv
bmVOb2RlKGZhbHNlKS5nZXQoKSwgbm9kZVRvSW5zZXJ0LmdldCgpKTsKKyAgICAgICAgICAgIGlu
c2VydE5vZGVCZWZvcmUobm9kZVRvSW5zZXJ0LT5jbG9uZU5vZGUoZmFsc2UpLCBub2RlVG9JbnNl
cnQuZ2V0KCkpOwogICAgICAgICAKICAgICAgICAgc2V0RW5kaW5nU2VsZWN0aW9uKFZpc2libGVT
ZWxlY3Rpb24ocG9zaXRpb25JblBhcmVudEFmdGVyTm9kZShub2RlVG9JbnNlcnQuZ2V0KCkpLCBE
T1dOU1RSRUFNLCBlbmRpbmdTZWxlY3Rpb24oKS5pc0RpcmVjdGlvbmFsKCkpKTsKICAgICAvLyBJ
ZiB3ZSdyZSBpbnNlcnRpbmcgYWZ0ZXIgYWxsIG9mIHRoZSByZW5kZXJlZCB0ZXh0IGluIGEgdGV4
dCBub2RlLCBvciBpbnRvIGEgbm9uLXRleHQgbm9kZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKaW5kZXggZmExNGQwNzY2ZWFmNzVm
YTQzMTllNmQ4ODU3NGFmM2QzYTAzZTQzNi4uNTBmNjU0NWU2MmY3YmRiODRmZDBjNWViNTM0ZTRl
Y2M4NjFkYmEyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZDo6ZG9BcHBseSgpCiAgICAgICAgIHJldHVybjsKICAgICBBU1NFUlQoaXNFZGl0YWJs
ZU5vZGUoKnBhcmVudCkpOwogCi0gICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobV9pbnNlcnRDaGls
ZC5nZXQoKSwgbV9yZWZDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgcGFyZW50
LT5pbnNlcnRCZWZvcmUoKm1faW5zZXJ0Q2hpbGQsIG1fcmVmQ2hpbGQuZ2V0KCksIElHTk9SRV9F
WENFUFRJT04pOwogCiAgICAgaWYgKHNob3VsZFBvc3RBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9u
KCkpIHsKICAgICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBpczxUZXh0PihtX2luc2VydENoaWxk
LmdldCgpKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpLCAw
KSA6IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihtX2luc2VydENoaWxkLmdldCgpLCAwKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJh
dG9yQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNl
cGFyYXRvckNvbW1hbmQuY3BwCmluZGV4IDdkZDAxNjBjZDAzNDNkYWFkZjEyNDM0MTJlM2VhYWZm
MTYxN2Q2NWEuLjE1MDMyMjkyYWRlNjU4ODQ0YTdmOTIwNmNmYWI3MDlmYjU2NDEwY2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29t
bWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBh
cmF0b3JDb21tYW5kLmNwcApAQCAtMzY4LDcgKzM2OCw3IEBAIHZvaWQgSW5zZXJ0UGFyYWdyYXBo
U2VwYXJhdG9yQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgLy8gY3JlYXRlZC4gIEFsbCBvZiB0aGUg
bm9kZXMsIHN0YXJ0aW5nIGF0IHZpc2libGVQb3MsIGFyZSBhYm91dCB0byBiZSBhZGRlZCB0byB0
aGUgbmV3IHBhcmFncmFwaCAKICAgICAvLyBlbGVtZW50LiAgSWYgdGhlIGZpcnN0IG5vZGUgdG8g
YmUgaW5zZXJ0ZWQgd29uJ3QgYmUgb25lIHRoYXQgd2lsbCBob2xkIGFuIGVtcHR5IGxpbmUgb3Bl
biwgYWRkIGEgYnIuCiAgICAgaWYgKGlzRW5kT2ZQYXJhZ3JhcGgodmlzaWJsZVBvcykgJiYgIWxp
bmVCcmVha0V4aXN0c0F0VmlzaWJsZVBvc2l0aW9uKHZpc2libGVQb3MpKQotICAgICAgICBhcHBl
bmROb2RlKGNyZWF0ZUJyZWFrRWxlbWVudChkb2N1bWVudCgpKS5nZXQoKSwgYmxvY2tUb0luc2Vy
dC5nZXQoKSk7CisgICAgICAgIGFwcGVuZE5vZGUoY3JlYXRlQnJlYWtFbGVtZW50KGRvY3VtZW50
KCkpLCBibG9ja1RvSW5zZXJ0LmdldCgpKTsKIAogICAgIC8vIE1vdmUgdGhlIHN0YXJ0IG5vZGUg
YW5kIHRoZSBzaWJsaW5ncyBvZiB0aGUgc3RhcnQgbm9kZS4KICAgICBpZiAoVmlzaWJsZVBvc2l0
aW9uKGluc2VydGlvblBvc2l0aW9uKSAhPSBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb25CZWZvcmVO
b2RlKGJsb2NrVG9JbnNlcnQuZ2V0KCkpKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9NZXJnZUlkZW50aWNhbEVsZW1lbnRzQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL01lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmNwcAppbmRleCA0NjUxODg0
NjM2NGZhMzNjMjg1Y2Y2MDA5N2YwNDNiMmMyY2YzODdlLi40YTU5ZWY2ODBkNmEwZGYyMTczNWE5
ZWIyMDUwYTE4ZWRmNjZmMWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01l
cmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL01lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmNwcApAQCAtNDcsMTMgKzQ3LDEzIEBA
IHZvaWQgTWVyZ2VJZGVudGljYWxFbGVtZW50c0NvbW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgbV9h
dENoaWxkID0gbV9lbGVtZW50Mi0+Zmlyc3RDaGlsZCgpOwogCi0gICAgVmVjdG9yPFJlZlB0cjxO
b2RlPj4gY2hpbGRyZW47CisgICAgVmVjdG9yPFJlZjxOb2RlPj4gY2hpbGRyZW47CiAgICAgZm9y
IChOb2RlKiBjaGlsZCA9IG1fZWxlbWVudDEtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0g
Y2hpbGQtPm5leHRTaWJsaW5nKCkpCi0gICAgICAgIGNoaWxkcmVuLmFwcGVuZChjaGlsZCk7Cisg
ICAgICAgIGNoaWxkcmVuLmFwcGVuZCgqY2hpbGQpOwogCiAgICAgc2l6ZV90IHNpemUgPSBjaGls
ZHJlbi5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCi0gICAg
ICAgIG1fZWxlbWVudDItPmluc2VydEJlZm9yZShjaGlsZHJlbltpXS5yZWxlYXNlKCksIG1fYXRD
aGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgICAgIG1fZWxlbWVudDItPmluc2Vy
dEJlZm9yZShXVEY6Om1vdmUoY2hpbGRyZW5baV0pLCBtX2F0Q2hpbGQuZ2V0KCksIElHTk9SRV9F
WENFUFRJT04pOwogCiAgICAgbV9lbGVtZW50MS0+cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwog
fQpAQCAtNzEsMTcgKzcxLDE3IEBAIHZvaWQgTWVyZ2VJZGVudGljYWxFbGVtZW50c0NvbW1hbmQ6
OmRvVW5hcHBseSgpCiAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKIAotICAgIHBhcmVudC0+
aW5zZXJ0QmVmb3JlKG1fZWxlbWVudDEuZ2V0KCksIG1fZWxlbWVudDIuZ2V0KCksIGVjKTsKKyAg
ICBwYXJlbnQtPmluc2VydEJlZm9yZSgqbV9lbGVtZW50MSwgbV9lbGVtZW50Mi5nZXQoKSwgZWMp
OwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuOwogCi0gICAgVmVjdG9yPFJlZlB0cjxOb2Rl
Pj4gY2hpbGRyZW47CisgICAgVmVjdG9yPFJlZjxOb2RlPj4gY2hpbGRyZW47CiAgICAgZm9yIChO
b2RlKiBjaGlsZCA9IG1fZWxlbWVudDItPmZpcnN0Q2hpbGQoKTsgY2hpbGQgJiYgY2hpbGQgIT0g
YXRDaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKLSAgICAgICAgY2hpbGRyZW4u
YXBwZW5kKGNoaWxkKTsKKyAgICAgICAgY2hpbGRyZW4uYXBwZW5kKCpjaGlsZCk7CiAKICAgICBz
aXplX3Qgc2l6ZSA9IGNoaWxkcmVuLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IHNpemU7ICsraSkKLSAgICAgICAgbV9lbGVtZW50MS0+YXBwZW5kQ2hpbGQoY2hpbGRyZW5baV0u
cmVsZWFzZSgpLCBlYyk7CisgICAgICAgIG1fZWxlbWVudDEtPmFwcGVuZENoaWxkKFdURjo6bW92
ZShjaGlsZHJlbltpXSksIGVjKTsKIH0KIAogI2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5jcHAKaW5kZXggMzFjNTRkMWU4ODJlMmQ0NjU0
MDQwOGU0NTA2MGM0OWQ5MDhiYmVjNi4uOWNhNWY4YmZlOTMxNjUwYjQ1MTdhODE0MmUyMjhkNmFj
ODY1ZDBkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlQ29t
bWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5j
cHAKQEAgLTM0LDEyICszNCwxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlbW92ZU5v
ZGVDb21tYW5kOjpSZW1vdmVOb2RlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlKQorUmVtb3ZlTm9kZUNvbW1hbmQ6OlJlbW92ZU5vZGVDb21tYW5kKFJlZjxOb2Rl
PiYmIG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQogICAgIDogU2ltcGxlRWRpdENvbW1hbmQobm9kZS0+
ZG9jdW1lbnQoKSkKLSAgICAsIG1fbm9kZShub2RlKQorICAgICwgbV9ub2RlKFdURjo6bW92ZShu
b2RlKSkKICAgICAsIG1fc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUoc2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCiB7Ci0gICAgQVNTRVJUKG1fbm9kZSk7CiAg
ICAgQVNTRVJUKG1fbm9kZS0+cGFyZW50Tm9kZSgpKTsKIH0KIApAQCAtNjQsNyArNjMsNyBAQCB2
b2lkIFJlbW92ZU5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogICAgIGlmICghcGFyZW50IHx8ICFw
YXJlbnQtPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcGFyZW50
LT5pbnNlcnRCZWZvcmUobV9ub2RlLmdldCgpLCByZWZDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQ
VElPTik7CisgICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobV9ub2RlLmNvcHlSZWYoKSwgcmVmQ2hp
bGQuZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOwogfQogCiAjaWZuZGVmIE5ERUJVRwpAQCAtNzIs
NyArNzEsNyBAQCB2b2lkIFJlbW92ZU5vZGVDb21tYW5kOjpnZXROb2Rlc0luQ29tbWFuZChIYXNo
U2V0PE5vZGUqPiYgbm9kZXMpCiB7CiAgICAgYWRkTm9kZUFuZERlc2NlbmRhbnRzKG1fcGFyZW50
LmdldCgpLCBub2Rlcyk7CiAgICAgYWRkTm9kZUFuZERlc2NlbmRhbnRzKG1fcmVmQ2hpbGQuZ2V0
KCksIG5vZGVzKTsKLSAgICBhZGROb2RlQW5kRGVzY2VuZGFudHMobV9ub2RlLmdldCgpLCBub2Rl
cyk7CisgICAgYWRkTm9kZUFuZERlc2NlbmRhbnRzKG1fbm9kZS5wdHIoKSwgbm9kZXMpOwogfQog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZUNv
bW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuaAppbmRl
eCAxODFlOTg1ZDdmMzBjZDQ0OTY2NGU2ZmY4Y2NhOTQyZjI2ZjZjZjZlLi4zM2ExZjhjMDVjMTNi
ZThjOGM1MmI0MzUwMmIzNzVhZWI2MTk5ZTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZW1vdmVOb2RlQ29tbWFuZC5oCkBAIC0zMiwxMyArMzIsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBSZW1vdmVOb2RlQ29tbWFuZCA6IHB1YmxpYyBTaW1wbGVFZGl0Q29tbWFuZCB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxSZW1vdmVOb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NS
ZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hv
dWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgc3RhdGljIFJlZjxSZW1vdmVO
b2RlQ29tbWFuZD4gY3JlYXRlKFJlZjxOb2RlPiYmIG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3ZlTm9kZUNvbW1hbmQobm9kZSwg
c2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgUmVtb3ZlTm9kZUNvbW1hbmQoV1RGOjptb3ZlKG5vZGUpLCBzaG91bGRBc3N1
bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBleHBs
aWNpdCBSZW1vdmVOb2RlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250
ZW50SXNBbHdheXNFZGl0YWJsZSk7CisgICAgUmVtb3ZlTm9kZUNvbW1hbmQoUmVmPE5vZGU+JiYs
IFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKIAogICAgIHZpcnR1YWwgdm9p
ZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJy
aWRlOwpAQCAtNDcsNyArNDcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0Tm9kZXNJbkNvbW1h
bmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgogCi0gICAgUmVmUHRyPE5vZGU+
IG1fbm9kZTsKKyAgICBSZWY8Tm9kZT4gbV9ub2RlOwogICAgIFJlZlB0cjxDb250YWluZXJOb2Rl
PiBtX3BhcmVudDsKICAgICBSZWZQdHI8Tm9kZT4gbV9yZWZDaGlsZDsKICAgICBTaG91bGRBc3N1
bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBtX3Nob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlTm9kZVdp
dGhTcGFuQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VOb2RlV2l0
aFNwYW5Db21tYW5kLmNwcAppbmRleCAwZTE4OWJkZWY2N2QzZjNkZTcyNDZkNzFhYWM3ZDQwODc5
MDdmZGZlLi4xMGJlZjNhMDlhMWNjNDIxY2I3N2U5YWI3OGUwMGNkNmUyMjIzMGE4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5k
LmNwcApAQCAtNDgsMTkgKzQ4LDE5IEBAIFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kOjpSZXBs
YWNlTm9kZVdpdGhTcGFuQ29tbWFuZChQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlCiAgICAgQVNT
RVJUKG1fZWxlbWVudFRvUmVwbGFjZSk7CiB9CiAKLXN0YXRpYyB2b2lkIHN3YXBJbk5vZGVQcmVz
ZXJ2aW5nQXR0cmlidXRlc0FuZENoaWxkcmVuKEhUTUxFbGVtZW50KiBuZXdOb2RlLCBIVE1MRWxl
bWVudCogbm9kZVRvUmVwbGFjZSkKK3N0YXRpYyB2b2lkIHN3YXBJbk5vZGVQcmVzZXJ2aW5nQXR0
cmlidXRlc0FuZENoaWxkcmVuKEhUTUxFbGVtZW50JiBuZXdOb2RlLCBIVE1MRWxlbWVudCYgbm9k
ZVRvUmVwbGFjZSkKIHsKLSAgICBBU1NFUlQobm9kZVRvUmVwbGFjZS0+aW5Eb2N1bWVudCgpKTsK
LSAgICBSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50Tm9kZSA9IG5vZGVUb1JlcGxhY2UtPnBh
cmVudE5vZGUoKTsKKyAgICBBU1NFUlQobm9kZVRvUmVwbGFjZS5pbkRvY3VtZW50KCkpOworICAg
IFJlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnROb2RlID0gbm9kZVRvUmVwbGFjZS5wYXJlbnRO
b2RlKCk7CiAKICAgICAvLyBGSVhNRTogRml4IHRoaXMgdG8gc2VuZCB0aGUgcHJvcGVyIE11dGF0
aW9uUmVjb3JkcyB3aGVuIE11dGF0aW9uT2JzZXJ2ZXJzIGFyZSBwcmVzZW50LgotICAgIG5ld05v
ZGUtPmNsb25lRGF0YUZyb21FbGVtZW50KCpub2RlVG9SZXBsYWNlKTsKKyAgICBuZXdOb2RlLmNs
b25lRGF0YUZyb21FbGVtZW50KG5vZGVUb1JlcGxhY2UpOwogICAgIE5vZGVWZWN0b3IgY2hpbGRy
ZW47Ci0gICAgZ2V0Q2hpbGROb2Rlcygqbm9kZVRvUmVwbGFjZSwgY2hpbGRyZW4pOworICAgIGdl
dENoaWxkTm9kZXMobm9kZVRvUmVwbGFjZSwgY2hpbGRyZW4pOwogICAgIGZvciAoYXV0byYgY2hp
bGQgOiBjaGlsZHJlbikKLSAgICAgICAgbmV3Tm9kZS0+YXBwZW5kQ2hpbGQoY2hpbGQucHRyKCks
IEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAgICBuZXdOb2RlLmFwcGVuZENoaWxkKFdURjo6
bW92ZShjaGlsZCksIEFTU0VSVF9OT19FWENFUFRJT04pOwogCi0gICAgcGFyZW50Tm9kZS0+aW5z
ZXJ0QmVmb3JlKG5ld05vZGUsIG5vZGVUb1JlcGxhY2UsIEFTU0VSVF9OT19FWENFUFRJT04pOwor
ICAgIHBhcmVudE5vZGUtPmluc2VydEJlZm9yZShuZXdOb2RlLCAmbm9kZVRvUmVwbGFjZSwgQVNT
RVJUX05PX0VYQ0VQVElPTik7CiAgICAgcGFyZW50Tm9kZS0+cmVtb3ZlQ2hpbGQobm9kZVRvUmVw
bGFjZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiB9CiAKQEAgLTcwLDE0ICs3MCwxNCBAQCB2b2lk
IFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kOjpkb0FwcGx5KCkKICAgICAgICAgcmV0dXJuOwog
ICAgIGlmICghbV9zcGFuRWxlbWVudCkKICAgICAgICAgbV9zcGFuRWxlbWVudCA9IGNyZWF0ZUhU
TUxFbGVtZW50KG1fZWxlbWVudFRvUmVwbGFjZS0+ZG9jdW1lbnQoKSwgc3BhblRhZyk7Ci0gICAg
c3dhcEluTm9kZVByZXNlcnZpbmdBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4obV9zcGFuRWxlbWVudC5n
ZXQoKSwgbV9lbGVtZW50VG9SZXBsYWNlLmdldCgpKTsKKyAgICBzd2FwSW5Ob2RlUHJlc2Vydmlu
Z0F0dHJpYnV0ZXNBbmRDaGlsZHJlbigqbV9zcGFuRWxlbWVudCwgKm1fZWxlbWVudFRvUmVwbGFj
ZSk7CiB9CiAKIHZvaWQgUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQ6OmRvVW5hcHBseSgpCiB7
CiAgICAgaWYgKCFtX3NwYW5FbGVtZW50LT5pbkRvY3VtZW50KCkpCiAgICAgICAgIHJldHVybjsK
LSAgICBzd2FwSW5Ob2RlUHJlc2VydmluZ0F0dHJpYnV0ZXNBbmRDaGlsZHJlbihtX2VsZW1lbnRU
b1JlcGxhY2UuZ2V0KCksIG1fc3BhbkVsZW1lbnQuZ2V0KCkpOworICAgIHN3YXBJbk5vZGVQcmVz
ZXJ2aW5nQXR0cmlidXRlc0FuZENoaWxkcmVuKCptX2VsZW1lbnRUb1JlcGxhY2UsICptX3NwYW5F
bGVtZW50KTsKIH0KIAogI2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggZWVlMjIwYzg2Zjk4YTVlN2Qy
ODk5YzQzM2ZhOTFmMDAwMDU0NmJlMy4uMDhjNjI3N2RlZmMzNGZhMjIzNGMyZTQ2MmYyMzY0N2Q2
YmM5OWEzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5jcHAKQEAgLTIzOCw3ICsyMzgsNyBAQCB2b2lkIFJlcGxhY2VtZW50RnJhZ21l
bnQ6OnJlbW92ZU5vZGUoUGFzc1JlZlB0cjxOb2RlPiBub2RlKQogICAgIGlmICghcGFyZW50KQog
ICAgICAgICByZXR1cm47CiAgICAgCi0gICAgcGFyZW50LT5yZW1vdmVDaGlsZChub2RlLmdldCgp
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBwYXJlbnQtPnJlbW92ZUNoaWxkKCpub2RlLCBB
U1NFUlRfTk9fRVhDRVBUSU9OKTsKIH0KIAogdm9pZCBSZXBsYWNlbWVudEZyYWdtZW50OjppbnNl
cnROb2RlQmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgTm9kZSogcmVmTm9kZSkKQEAgLTI1
MCwxNCArMjUwLDE0IEBAIHZvaWQgUmVwbGFjZW1lbnRGcmFnbWVudDo6aW5zZXJ0Tm9kZUJlZm9y
ZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIE5vZGUqIHJlZk5vZGUpCiAgICAgaWYgKCFwYXJlbnQp
CiAgICAgICAgIHJldHVybjsKICAgICAgICAgCi0gICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobm9k
ZSwgcmVmTm9kZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgcGFyZW50LT5pbnNlcnRCZWZv
cmUoKm5vZGUsIHJlZk5vZGUsIEFTU0VSVF9OT19FWENFUFRJT04pOwogfQogCiBQYXNzUmVmUHRy
PFN0eWxlZEVsZW1lbnQ+IFJlcGxhY2VtZW50RnJhZ21lbnQ6Omluc2VydEZyYWdtZW50Rm9yVGVz
dFJlbmRlcmluZyhOb2RlKiByb290RWRpdGFibGVFbGVtZW50KQogewogICAgIFJlZlB0cjxTdHls
ZWRFbGVtZW50PiBob2xkZXIgPSBjcmVhdGVEZWZhdWx0UGFyYWdyYXBoRWxlbWVudChkb2N1bWVu
dCgpKTsKIAotICAgIGhvbGRlci0+YXBwZW5kQ2hpbGQobV9mcmFnbWVudCwgQVNTRVJUX05PX0VY
Q0VQVElPTik7CisgICAgaG9sZGVyLT5hcHBlbmRDaGlsZCgqbV9mcmFnbWVudCwgQVNTRVJUX05P
X0VYQ0VQVElPTik7CiAgICAgcm9vdEVkaXRhYmxlRWxlbWVudC0+YXBwZW5kQ2hpbGQoaG9sZGVy
LmdldCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91
dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogCkBAIC0yNzAsOCArMjcwLDggQEAgdm9pZCBS
ZXBsYWNlbWVudEZyYWdtZW50OjpyZXN0b3JlQW5kUmVtb3ZlVGVzdFJlbmRlcmluZ05vZGVzVG9G
cmFnbWVudChTdHlsZWRFbGUKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIHdoaWxlIChSZWZQ
dHI8Tm9kZT4gbm9kZSA9IGhvbGRlci0+Zmlyc3RDaGlsZCgpKSB7Ci0gICAgICAgIGhvbGRlci0+
cmVtb3ZlQ2hpbGQobm9kZS5nZXQoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0gICAgICAgIG1f
ZnJhZ21lbnQtPmFwcGVuZENoaWxkKG5vZGUuZ2V0KCksIEFTU0VSVF9OT19FWENFUFRJT04pOwor
ICAgICAgICBob2xkZXItPnJlbW92ZUNoaWxkKCpub2RlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsK
KyAgICAgICAgbV9mcmFnbWVudC0+YXBwZW5kQ2hpbGQoKm5vZGUsIEFTU0VSVF9OT19FWENFUFRJ
T04pOwogICAgIH0KIAogICAgIHJlbW92ZU5vZGUoaG9sZGVyKTsKQEAgLTE0NTQsNyArMTQ1NCw3
IEBAIE5vZGUqIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjppbnNlcnRBc0xpc3RJdGVtcyhQYXNz
UmVmUHRyPEhUTUxFbGVtZW50PiBwcnBMaXN0CiAgICAgfQogCiAgICAgd2hpbGUgKFJlZlB0cjxO
b2RlPiBsaXN0SXRlbSA9IGxpc3RFbGVtZW50LT5maXJzdENoaWxkKCkpIHsKLSAgICAgICAgbGlz
dEVsZW1lbnQtPnJlbW92ZUNoaWxkKGxpc3RJdGVtLmdldCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKKyAgICAgICAgbGlzdEVsZW1lbnQtPnJlbW92ZUNoaWxkKCpsaXN0SXRlbSwgQVNTRVJUX05P
X0VYQ0VQVElPTik7CiAgICAgICAgIGlmIChpc1N0YXJ0IHx8IGlzTWlkZGxlKSB7CiAgICAgICAg
ICAgICBpbnNlcnROb2RlQmVmb3JlKGxpc3RJdGVtLCBsYXN0Tm9kZSk7CiAgICAgICAgICAgICBp
bnNlcnRlZE5vZGVzLnJlc3BvbmRUb05vZGVJbnNlcnRpb24obGlzdEl0ZW0uZ2V0KCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGxpdEVsZW1lbnRDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BsaXRFbGVtZW50Q29tbWFuZC5jcHAKaW5kZXggMDli
ZWI4NTE5MzFlZWFiNjUxZDIxNzFlNDdkODczMjQ1NWQxZjEwNi4uMzVkODIxYjJjMTZhMmJlYjI3
NzBhNDgxNmY3YzhjYzg1OTBkMDUzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9TcGxpdEVsZW1lbnRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Nw
bGl0RWxlbWVudENvbW1hbmQuY3BwCkBAIC00NywxNiArNDcsMTYgQEAgdm9pZCBTcGxpdEVsZW1l
bnRDb21tYW5kOjpleGVjdXRlQXBwbHkoKQogICAgIGlmIChtX2F0Q2hpbGQtPnBhcmVudE5vZGUo
KSAhPSBtX2VsZW1lbnQyKQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgVmVjdG9yPFJlZlB0
cjxOb2RlPj4gY2hpbGRyZW47CisgICAgVmVjdG9yPFJlZjxOb2RlPj4gY2hpbGRyZW47CiAgICAg
Zm9yIChOb2RlKiBub2RlID0gbV9lbGVtZW50Mi0+Zmlyc3RDaGlsZCgpOyBub2RlICE9IG1fYXRD
aGlsZDsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpCi0gICAgICAgIGNoaWxkcmVuLmFwcGVu
ZChub2RlKTsKKyAgICAgICAgY2hpbGRyZW4uYXBwZW5kKCpub2RlKTsKICAgICAKICAgICBFeGNl
cHRpb25Db2RlIGVjID0gMDsKICAgICAKICAgICBDb250YWluZXJOb2RlKiBwYXJlbnQgPSBtX2Vs
ZW1lbnQyLT5wYXJlbnROb2RlKCk7CiAgICAgaWYgKCFwYXJlbnQgfHwgIXBhcmVudC0+aGFzRWRp
dGFibGVTdHlsZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgcGFyZW50LT5pbnNlcnRCZWZvcmUo
bV9lbGVtZW50MS5nZXQoKSwgbV9lbGVtZW50Mi5nZXQoKSwgZWMpOworICAgIHBhcmVudC0+aW5z
ZXJ0QmVmb3JlKCptX2VsZW1lbnQxLCBtX2VsZW1lbnQyLmdldCgpLCBlYyk7CiAgICAgaWYgKGVj
KQogICAgICAgICByZXR1cm47CiAKQEAgLTY1LDcgKzY1LDcgQEAgdm9pZCBTcGxpdEVsZW1lbnRD
b21tYW5kOjpleGVjdXRlQXBwbHkoKQogCiAgICAgc2l6ZV90IHNpemUgPSBjaGlsZHJlbi5zaXpl
KCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCi0gICAgICAgIG1fZWxl
bWVudDEtPmFwcGVuZENoaWxkKGNoaWxkcmVuW2ldLCBlYyk7CisgICAgICAgIG1fZWxlbWVudDEt
PmFwcGVuZENoaWxkKFdURjo6bW92ZShjaGlsZHJlbltpXSksIGVjKTsKIH0KICAgICAKIHZvaWQg
U3BsaXRFbGVtZW50Q29tbWFuZDo6ZG9BcHBseSgpCkBAIC04MCwxNSArODAsMTUgQEAgdm9pZCBT
cGxpdEVsZW1lbnRDb21tYW5kOjpkb1VuYXBwbHkoKQogICAgIGlmICghbV9lbGVtZW50MSB8fCAh
bV9lbGVtZW50MS0+aGFzRWRpdGFibGVTdHlsZSgpIHx8ICFtX2VsZW1lbnQyLT5oYXNFZGl0YWJs
ZVN0eWxlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFZlY3RvcjxSZWZQdHI8Tm9kZT4+IGNo
aWxkcmVuOworICAgIFZlY3RvcjxSZWY8Tm9kZT4+IGNoaWxkcmVuOwogICAgIGZvciAoTm9kZSog
bm9kZSA9IG1fZWxlbWVudDEtPmZpcnN0Q2hpbGQoKTsgbm9kZTsgbm9kZSA9IG5vZGUtPm5leHRT
aWJsaW5nKCkpCi0gICAgICAgIGNoaWxkcmVuLmFwcGVuZChub2RlKTsKKyAgICAgICAgY2hpbGRy
ZW4uYXBwZW5kKCpub2RlKTsKIAogICAgIFJlZlB0cjxOb2RlPiByZWZDaGlsZCA9IG1fZWxlbWVu
dDItPmZpcnN0Q2hpbGQoKTsKIAogICAgIHNpemVfdCBzaXplID0gY2hpbGRyZW4uc2l6ZSgpOwog
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICBtX2VsZW1lbnQy
LT5pbnNlcnRCZWZvcmUoY2hpbGRyZW5baV0uZ2V0KCksIHJlZkNoaWxkLmdldCgpLCBJR05PUkVf
RVhDRVBUSU9OKTsKKyAgICAgICAgbV9lbGVtZW50Mi0+aW5zZXJ0QmVmb3JlKFdURjo6bW92ZShj
aGlsZHJlbltpXSksIHJlZkNoaWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAogICAgIC8v
IFJlY292ZXIgdGhlIGlkIGF0dHJpYnV0ZSBvZiB0aGUgb3JpZ2luYWwgZWxlbWVudC4KICAgICBj
b25zdCBBdG9taWNTdHJpbmcmIGlkID0gbV9lbGVtZW50MS0+Z2V0SWRBdHRyaWJ1dGUoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BsaXRUZXh0Tm9kZUNvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5jcHAKaW5kZXgg
MTdhODE3ZjlhYzI2ZGU5OTRkNDE4ZDRkNjQ5YTZiOGY2ZjhjNGYwYi4uNjk5OTEzOTk1ZGZmZTNh
MDFlM2UwMjVmMGQxMTBiOGI2YjUwZDYwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9TcGxpdFRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgdm9pZCBTcGxpdFRl
eHROb2RlQ29tbWFuZDo6ZG9SZWFwcGx5KCkKIHZvaWQgU3BsaXRUZXh0Tm9kZUNvbW1hbmQ6Omlu
c2VydFRleHQxQW5kVHJpbVRleHQyKCkKIHsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAg
ICBtX3RleHQyLT5wYXJlbnROb2RlKCktPmluc2VydEJlZm9yZShtX3RleHQxLmdldCgpLCBtX3Rl
eHQyLmdldCgpLCBlYyk7CisgICAgbV90ZXh0Mi0+cGFyZW50Tm9kZSgpLT5pbnNlcnRCZWZvcmUo
Km1fdGV4dDEsIG1fdGV4dDIuZ2V0KCksIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVy
bjsKICAgICBtX3RleHQyLT5kZWxldGVEYXRhKDAsIG1fb2Zmc2V0LCBlYyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1dyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1dyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFu
ZC5jcHAKaW5kZXggNTY0NmYzNDE2Yzg1ZjJlNjAzMGY0NzRkNDMwYmY4Zjc0MjVlN2ZkNi4uZjgw
Yjc3MzdmOGFkOTZlM2U3OGYxNDU5YmY1N2UyZjM1MTllYjllNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9XcmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1hbmQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvV3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kLmNw
cApAQCAtNDAsMTUgKzQwLDE1IEBAIFdyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZDo6V3Jh
cENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kKFBhc3NSZWZQdHI8RWxlbWVuCiAKIHZvaWQgV3Jh
cENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kOjpleGVjdXRlQXBwbHkoKQogewotICAgIFZlY3Rv
cjxSZWZQdHI8Tm9kZT4+IGNoaWxkcmVuOworICAgIFZlY3RvcjxSZWY8Tm9kZT4+IGNoaWxkcmVu
OwogICAgIGZvciAoTm9kZSogY2hpbGQgPSBtX2VsZW1lbnQtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7
IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCi0gICAgICAgIGNoaWxkcmVuLmFwcGVuZChj
aGlsZCk7CisgICAgICAgIGNoaWxkcmVuLmFwcGVuZCgqY2hpbGQpOwogCiAgICAgc2l6ZV90IHNp
emUgPSBjaGlsZHJlbi5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyAr
K2kpCi0gICAgICAgIG1fZHVtbXlTcGFuLT5hcHBlbmRDaGlsZChjaGlsZHJlbltpXS5yZWxlYXNl
KCksIElHTk9SRV9FWENFUFRJT04pOworICAgICAgICBtX2R1bW15U3Bhbi0+YXBwZW5kQ2hpbGQo
V1RGOjptb3ZlKGNoaWxkcmVuW2ldKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBtX2VsZW1l
bnQtPmFwcGVuZENoaWxkKG1fZHVtbXlTcGFuLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAg
ICBtX2VsZW1lbnQtPmFwcGVuZENoaWxkKCptX2R1bW15U3BhbiwgSUdOT1JFX0VYQ0VQVElPTik7
CiB9CiAKIHZvaWQgV3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kOjpkb0FwcGx5KCkKQEAg
LTY1LDEzICs2NSwxMyBAQCB2b2lkIFdyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZDo6ZG9V
bmFwcGx5KCkKICAgICBpZiAoIW1fZHVtbXlTcGFuIHx8ICFtX2VsZW1lbnQtPmhhc0VkaXRhYmxl
U3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgVmVjdG9yPFJlZlB0cjxOb2RlPj4gY2hp
bGRyZW47CisgICAgVmVjdG9yPFJlZjxOb2RlPj4gY2hpbGRyZW47CiAgICAgZm9yIChOb2RlKiBj
aGlsZCA9IG1fZHVtbXlTcGFuLT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5u
ZXh0U2libGluZygpKQotICAgICAgICBjaGlsZHJlbi5hcHBlbmQoY2hpbGQpOworICAgICAgICBj
aGlsZHJlbi5hcHBlbmQoKmNoaWxkKTsKIAogICAgIHNpemVfdCBzaXplID0gY2hpbGRyZW4uc2l6
ZSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICBtX2Vs
ZW1lbnQtPmFwcGVuZENoaWxkKGNoaWxkcmVuW2ldLnJlbGVhc2UoKSwgSUdOT1JFX0VYQ0VQVElP
Tik7CisgICAgICAgIG1fZWxlbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNoaWxkcmVuW2ld
KSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKICAgICBtX2R1bW15U3Bhbi0+cmVtb3ZlKElHTk9SRV9F
WENFUFRJT04pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9F
ZGl0b3JDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRWRpdG9yQ29jb2Eu
bW0KaW5kZXggY2U0YmNiY2E0YmYzMmE5ZDUzMzdiZWI5MmRmMWY3ZTBmYTljOThmMy4uOTVlNjZk
YjBkZWE3ODI5NDZlZDYwMDYxM2U2ZDdjOTFjNGQxNmQxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9jb2NvYS9FZGl0b3JDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL2NvY29hL0VkaXRvckNvY29hLm1tCkBAIC01NiwxNiArNTYsMTYgQEAgUmVuZGVyU3R5
bGUqIEVkaXRvcjo6c3R5bGVGb3JTZWxlY3Rpb25TdGFydChGcmFtZSogZnJhbWUsIE5vZGUgKiZu
b2RlVG9SZW1vdmUpCiAgICAgaWYgKCF0eXBpbmdTdHlsZSB8fCAhdHlwaW5nU3R5bGUtPnN0eWxl
KCkpCiAgICAgICAgIHJldHVybiAmcG9zaXRpb24uZGVwcmVjYXRlZE5vZGUoKS0+cmVuZGVyZXIo
KS0+c3R5bGUoKTsKIAotICAgIFJlZlB0cjxFbGVtZW50PiBzdHlsZUVsZW1lbnQgPSBmcmFtZS0+
ZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChIVE1MTmFtZXM6OnNwYW5UYWcsIGZhbHNlKTsKKyAg
ICBSZWY8RWxlbWVudD4gc3R5bGVFbGVtZW50ID0gZnJhbWUtPmRvY3VtZW50KCktPmNyZWF0ZUVs
ZW1lbnQoSFRNTE5hbWVzOjpzcGFuVGFnLCBmYWxzZSk7CiAKICAgICBTdHJpbmcgc3R5bGVUZXh0
ID0gdHlwaW5nU3R5bGUtPnN0eWxlKCktPmFzVGV4dCgpICsgIiBkaXNwbGF5OiBpbmxpbmUiOwog
ICAgIHN0eWxlRWxlbWVudC0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6c3R5bGVBdHRyLCBzdHls
ZVRleHQpOwogCiAgICAgc3R5bGVFbGVtZW50LT5hcHBlbmRDaGlsZChmcmFtZS0+ZG9jdW1lbnQo
KS0+Y3JlYXRlRWRpdGluZ1RleHROb2RlKCIiKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKLSAg
ICBwb3NpdGlvbi5kZXByZWNhdGVkTm9kZSgpLT5wYXJlbnROb2RlKCktPmFwcGVuZENoaWxkKHN0
eWxlRWxlbWVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgcG9zaXRpb24uZGVwcmVjYXRl
ZE5vZGUoKS0+cGFyZW50Tm9kZSgpLT5hcHBlbmRDaGlsZChzdHlsZUVsZW1lbnQuY29weVJlZigp
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAotICAgIG5vZGVUb1JlbW92ZSA9IHN0eWxlRWxlbWVu
dC5nZXQoKTsKKyAgICBub2RlVG9SZW1vdmUgPSBzdHlsZUVsZW1lbnQucHRyKCk7CiAKICAgICBm
cmFtZS0+ZG9jdW1lbnQoKS0+dXBkYXRlU3R5bGVJZk5lZWRlZCgpOwogICAgIHJldHVybiBzdHls
ZUVsZW1lbnQtPnJlbmRlcmVyKCkgPyAmc3R5bGVFbGVtZW50LT5yZW5kZXJlcigpLT5zdHlsZSgp
IDogbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRp
bmcuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAKaW5kZXggOGYw
NGQwODEzNTJiOTYzMjU2ZmJhZDc1N2ZlMTM1ZTZkY2QzZDc1MC4uN2NhYTE0ZjRiZTM3YzYxMzQ0
OWM5NGE2YWRkYmM1OWViNWU2YmU1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9odG1sZWRpdGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGlu
Zy5jcHAKQEAgLTg5OSwyMCArODk5LDE4IEBAIGJvb2wgaXNFbXB0eVRhYmxlQ2VsbChjb25zdCBO
b2RlKiBub2RlKQogICAgIHJldHVybiAhY2hpbGRSZW5kZXJlci0+bmV4dFNpYmxpbmcoKTsKIH0K
IAotUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQo
RG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxFbGVtZW50PiBjcmVhdGVEZWZhdWx0UGFyYWdy
YXBoRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgc3dpdGNoIChkb2N1bWVudC5m
cmFtZSgpLT5lZGl0b3IoKS5kZWZhdWx0UGFyYWdyYXBoU2VwYXJhdG9yKCkpIHsKICAgICBjYXNl
IEVkaXRvclBhcmFncmFwaFNlcGFyYXRvcklzRGl2OgogICAgICAgICByZXR1cm4gSFRNTERpdkVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY2FzZSBFZGl0b3JQYXJhZ3JhcGhTZXBhcmF0
b3JJc1A6Ci0gICAgICAgIHJldHVybiBIVE1MUGFyYWdyYXBoRWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQotCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIEhUTUxQYXJhZ3JhcGhFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQpOwogfQogCi1QYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVCcmVha0VsZW1l
bnQoRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEhUTUxFbGVtZW50PiBjcmVhdGVCcmVha0VsZW1l
bnQoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBIVE1MQlJFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQpOwogfQpAQCAtOTcxLDcgKzk2OSw3IEBAIFBvc2l0aW9uIHBvc2l0aW9uT3V0
c2lkZVRhYlNwYW4oY29uc3QgUG9zaXRpb24mIHBvcykKICAgICByZXR1cm4gcG9zaXRpb25JblBh
cmVudEJlZm9yZU5vZGUobm9kZSk7CiB9CiAKLVBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlVGFi
U3BhbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBQYXNzUmVmUHRyPE5vZGU+IHBycFRhYlRl
eHROb2RlKQorUmVmPEVsZW1lbnQ+IGNyZWF0ZVRhYlNwYW5FbGVtZW50KERvY3VtZW50JiBkb2N1
bWVudCwgUGFzc1JlZlB0cjxOb2RlPiBwcnBUYWJUZXh0Tm9kZSkKIHsKICAgICBSZWZQdHI8Tm9k
ZT4gdGFiVGV4dE5vZGUgPSBwcnBUYWJUZXh0Tm9kZTsKIApAQCAtOTg0LDE3ICs5ODIsMTcgQEAg
UGFzc1JlZlB0cjxFbGVtZW50PiBjcmVhdGVUYWJTcGFuRWxlbWVudChEb2N1bWVudCYgZG9jdW1l
bnQsIFBhc3NSZWZQdHI8Tm9kZT4gcHIKICAgICBpZiAoIXRhYlRleHROb2RlKQogICAgICAgICB0
YWJUZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVkaXRpbmdUZXh0Tm9kZSgiXHQiKTsKIAotICAg
IHNwYW5FbGVtZW50LT5hcHBlbmRDaGlsZCh0YWJUZXh0Tm9kZS5yZWxlYXNlKCksIEFTU0VSVF9O
T19FWENFUFRJT04pOworICAgIHNwYW5FbGVtZW50LT5hcHBlbmRDaGlsZCh0YWJUZXh0Tm9kZS5y
ZWxlYXNlTm9uTnVsbCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAotICAgIHJldHVybiBzcGFu
RWxlbWVudC5yZWxlYXNlKCk7CisgICAgcmV0dXJuIHNwYW5FbGVtZW50LnJlbGVhc2VOb25OdWxs
KCk7CiB9CiAKLVBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1l
bnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRhYlRleHQpCitSZWY8RWxlbWVudD4gY3JlYXRl
VGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRhYlRleHQp
CiB7CiAgICAgcmV0dXJuIGNyZWF0ZVRhYlNwYW5FbGVtZW50KGRvY3VtZW50LCBkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZSh0YWJUZXh0KSk7CiB9CiAKLVBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRl
VGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQorUmVmPEVsZW1lbnQ+IGNyZWF0ZVRh
YlNwYW5FbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4gY3JlYXRlVGFi
U3BhbkVsZW1lbnQoZG9jdW1lbnQsIFBhc3NSZWZQdHI8Tm9kZT4oKSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL2h0bWxlZGl0aW5nLmgKaW5kZXggNzg4YWYzZmNmYjk1ZTdkMmQyMjg3NjJhNTE1NTYx
ZWYwODkzZDBlZS4uZjY5ZDlkOGVjNzUxNzgxMWI5ZWQ0ZjNjNzA3NzQ1MGExNTgxMTUxYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuaApAQCAtMjA2LDggKzIwNiw4IEBAIFZpc2li
bGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb25Gb3JJbmRleFVzaW5nQ2hhcmFjdGVySXRlcmF0b3Io
Tm9kZSosIGludCBpbmRleCk7CiAgICAgCiAvLyBGdW5jdGlvbnMgcmV0dXJuaW5nIEhUTUxFbGVt
ZW50CiAgICAgCi1XRUJDT1JFX0VYUE9SVCBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVE
ZWZhdWx0UGFyYWdyYXBoRWxlbWVudChEb2N1bWVudCYpOwotUGFzc1JlZlB0cjxIVE1MRWxlbWVu
dD4gY3JlYXRlQnJlYWtFbGVtZW50KERvY3VtZW50Jik7CitXRUJDT1JFX0VYUE9SVCBSZWY8SFRN
TEVsZW1lbnQ+IGNyZWF0ZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50KERvY3VtZW50Jik7CitSZWY8
SFRNTEVsZW1lbnQ+IGNyZWF0ZUJyZWFrRWxlbWVudChEb2N1bWVudCYpOwogUGFzc1JlZlB0cjxI
VE1MRWxlbWVudD4gY3JlYXRlT3JkZXJlZExpc3RFbGVtZW50KERvY3VtZW50Jik7CiBQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBjcmVhdGVVbm9yZGVyZWRMaXN0RWxlbWVudChEb2N1bWVudCYpOwog
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRlTGlzdEl0ZW1FbGVtZW50KERvY3VtZW50Jik7
CkBAIC0yMjIsMTAgKzIyMiwxMCBAQCBOb2RlKiBlbmNsb3NpbmdMaXN0Q2hpbGQoTm9kZSopOwog
Ly8gRWxlbWVudAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1QYXNzUmVmUHRyPEVsZW1lbnQ+IGNy
ZWF0ZVRhYlNwYW5FbGVtZW50KERvY3VtZW50Jik7Ci1QYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0
ZVRhYlNwYW5FbGVtZW50KERvY3VtZW50JiwgUGFzc1JlZlB0cjxOb2RlPiB0YWJUZXh0Tm9kZSk7
Ci1QYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZVRhYlNwYW5FbGVtZW50KERvY3VtZW50JiwgY29u
c3QgU3RyaW5nJiB0YWJUZXh0KTsKLVBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlQmxvY2tQbGFj
ZWhvbGRlckVsZW1lbnQoRG9jdW1lbnQmKTsKK1JlZjxFbGVtZW50PiBjcmVhdGVUYWJTcGFuRWxl
bWVudChEb2N1bWVudCYpOworUmVmPEVsZW1lbnQ+IGNyZWF0ZVRhYlNwYW5FbGVtZW50KERvY3Vt
ZW50JiwgUGFzc1JlZlB0cjxOb2RlPiB0YWJUZXh0Tm9kZSk7CitSZWY8RWxlbWVudD4gY3JlYXRl
VGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRhYlRleHQpOworUmVmPEVs
ZW1lbnQ+IGNyZWF0ZUJsb2NrUGxhY2Vob2xkZXJFbGVtZW50KERvY3VtZW50Jik7CiAKIEVsZW1l
bnQqIGVkaXRhYmxlUm9vdEZvclBvc2l0aW9uKGNvbnN0IFBvc2l0aW9uJiwgRWRpdGFibGVUeXBl
ID0gQ29udGVudElzRWRpdGFibGUpOwogRWxlbWVudCogdW5zcGxpdHRhYmxlRWxlbWVudEZvclBv
c2l0aW9uKGNvbnN0IFBvc2l0aW9uJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2lvcy9FZGl0b3JJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJ
T1MubW0KaW5kZXggMjI2ZWFkNWE0M2JmNTk4MmQ5YjFiYTgxNDlhMjA4ZTEyYWU3MDExZi4uODE1
MTk4NWYwYjkxZTc2ZjAwMzE1NmIxYTUyMzYyZjYyNzBhZjA1ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvaW9zL0VkaXRvcklPUy5tbQpAQCAtMzk3LDcgKzM5Nyw3IEBAIHZvaWQgRWRpdG9yOjpX
ZWJDb250ZW50UmVhZGVyOjphZGRGcmFnbWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IG5ld0ZyYWdtCiAgICAgaWYgKGZyYWdtZW50KSB7CiAgICAgICAgIGlmIChuZXdGcmFnbWVudCAm
JiBuZXdGcmFnbWVudC0+Zmlyc3RDaGlsZCgpKSB7CiAgICAgICAgICAgICBFeGNlcHRpb25Db2Rl
IGVjOwotICAgICAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKG5ld0ZyYWdtZW50LT5maXJz
dENoaWxkKCksIGVjKTsKKyAgICAgICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZCgqbmV3RnJh
Z21lbnQtPmZpcnN0Q2hpbGQoKSwgZWMpOwogICAgICAgICB9CiAgICAgfSBlbHNlCiAgICAgICAg
IGZyYWdtZW50ID0gbmV3RnJhZ21lbnQ7CkBAIC00OTQsMTIgKzQ5NCwxMiBAQCBib29sIEVkaXRv
cjo6V2ViQ29udGVudFJlYWRlcjo6cmVhZFVSTChjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5n
JikKICAgICAgICAgICAgIHJldHVybiBmcmFnbWVudDsKICAgICAgICAgfQogICAgIH0gZWxzZSB7
Ci0gICAgICAgIFJlZlB0cjxFbGVtZW50PiBhbmNob3IgPSBmcmFtZS5kb2N1bWVudCgpLT5jcmVh
dGVFbGVtZW50KEhUTUxOYW1lczo6YVRhZywgZmFsc2UpOworICAgICAgICBSZWY8RWxlbWVudD4g
YW5jaG9yID0gZnJhbWUuZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChIVE1MTmFtZXM6OmFUYWcs
IGZhbHNlKTsKICAgICAgICAgYW5jaG9yLT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpocmVmQXR0
ciwgdXJsLnN0cmluZygpKTsKICAgICAgICAgYW5jaG9yLT5hcHBlbmRDaGlsZChmcmFtZS5kb2N1
bWVudCgpLT5jcmVhdGVUZXh0Tm9kZShbWyhOU1VSTCAqKXVybCBhYnNvbHV0ZVN0cmluZ10gcHJl
Y29tcG9zZWRTdHJpbmdXaXRoQ2Fub25pY2FsTWFwcGluZ10pKTsKIAogICAgICAgICBSZWZQdHI8
RG9jdW1lbnRGcmFnbWVudD4gbmV3RnJhZ21lbnQgPSBmcmFtZS5kb2N1bWVudCgpLT5jcmVhdGVE
b2N1bWVudEZyYWdtZW50KCk7Ci0gICAgICAgIG5ld0ZyYWdtZW50LT5hcHBlbmRDaGlsZChhbmNo
b3IucmVsZWFzZSgpKTsKKyAgICAgICAgbmV3RnJhZ21lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92
ZShhbmNob3IpKTsKICAgICAgICAgYWRkRnJhZ21lbnQobmV3RnJhZ21lbnQpOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC01ODMsNyArNTgzLDcgQEAgUGFzc1JlZlB0cjxEb2N1bWVu
dEZyYWdtZW50PiBFZGl0b3I6OmNyZWF0ZUZyYWdtZW50Rm9ySW1hZ2VSZXNvdXJjZUFuZEFkZFJl
c291cmMKICAgICBpZiAoIXJlc291cmNlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAg
IFJlZlB0cjxFbGVtZW50PiBpbWFnZUVsZW1lbnQgPSBtX2ZyYW1lLmRvY3VtZW50KCktPmNyZWF0
ZUVsZW1lbnQoSFRNTE5hbWVzOjppbWdUYWcsIGZhbHNlKTsKKyAgICBSZWY8RWxlbWVudD4gaW1h
Z2VFbGVtZW50ID0gbV9mcmFtZS5kb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KEhUTUxOYW1lczo6
aW1nVGFnLCBmYWxzZSk7CiAgICAgLy8gRklYTUU6IFRoZSBjb2RlIGluIGNyZWF0ZUZyYWdtZW50
QW5kQWRkUmVzb3VyY2VzIGNhbGxzIHNldERlZmVyc0xvYWRpbmcodHJ1ZSkuIERvbid0IHdlIG5l
ZWQgdGhhdCBoZXJlPwogICAgIGlmIChEb2N1bWVudExvYWRlciogbG9hZGVyID0gbV9mcmFtZS5s
b2FkZXIoKS5kb2N1bWVudExvYWRlcigpKQogICAgICAgICBsb2FkZXItPmFkZEFyY2hpdmVSZXNv
dXJjZShyZXNvdXJjZS5nZXQoKSk7CkBAIC01OTIsNyArNTkyLDcgQEAgUGFzc1JlZlB0cjxEb2N1
bWVudEZyYWdtZW50PiBFZGl0b3I6OmNyZWF0ZUZyYWdtZW50Rm9ySW1hZ2VSZXNvdXJjZUFuZEFk
ZFJlc291cmMKICAgICBpbWFnZUVsZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OnNyY0F0
dHIsIFtVUkwgaXNGaWxlVVJMXSA/IFtVUkwgYWJzb2x1dGVTdHJpbmddIDogcmVzb3VyY2UtPnVy
bCgpKTsKIAogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IG1fZnJhbWUu
ZG9jdW1lbnQoKS0+Y3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwotICAgIGZyYWdtZW50LT5hcHBl
bmRDaGlsZChpbWFnZUVsZW1lbnQucmVsZWFzZSgpKTsKKyAgICBmcmFnbWVudC0+YXBwZW5kQ2hp
bGQoV1RGOjptb3ZlKGltYWdlRWxlbWVudCkpOwogCiAgICAgcmV0dXJuIGZyYWdtZW50LnJlbGVh
c2UoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbQppbmRleCA2Y2Vm
NDg5OTU5YjQ5NWQwNzY5OTAxNTNiYjk1YTFjMmYwOWZhZjA0Li5jZDI1MmRjZmQzMWMzZTAwYzE1
NzdkYmY5MzBjODY4M2I1MGRkMDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L21hYy9FZGl0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9y
TWFjLm1tCkBAIC01MjcsMTUgKzUyNywxNSBAQCBib29sIEVkaXRvcjo6V2ViQ29udGVudFJlYWRl
cjo6cmVhZEZpbGVuYW1lcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGF0aHMpCiAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKICAgICAgICAgU3RyaW5nIHRleHQgPSBwYXRo
c1tpXTsKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQotICAgICAgICBSZWZQdHI8SFRN
TEF0dGFjaG1lbnRFbGVtZW50PiBhdHRhY2htZW50ID0gSFRNTEF0dGFjaG1lbnRFbGVtZW50Ojpj
cmVhdGUoYXR0YWNobWVudFRhZywgZG9jdW1lbnQpOworICAgICAgICBSZWY8SFRNTEF0dGFjaG1l
bnRFbGVtZW50PiBhdHRhY2htZW50ID0gSFRNTEF0dGFjaG1lbnRFbGVtZW50OjpjcmVhdGUoYXR0
YWNobWVudFRhZywgZG9jdW1lbnQpOwogICAgICAgICBhdHRhY2htZW50LT5zZXRGaWxlKEZpbGU6
OmNyZWF0ZShbW05TVVJMIGZpbGVVUkxXaXRoUGF0aDp0ZXh0XSBwYXRoXSkucHRyKCkpOwotICAg
ICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoYXR0YWNobWVudC5yZWxlYXNlKCkpOworICAgICAg
ICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGF0dGFjaG1lbnQpKTsKICNlbHNlCiAg
ICAgICAgIHRleHQgPSBmcmFtZS5lZGl0b3IoKS5jbGllbnQoKS0+dXNlclZpc2libGVTdHJpbmco
W05TVVJMIGZpbGVVUkxXaXRoUGF0aDp0ZXh0XSk7CiAKLSAgICAgICAgUmVmUHRyPEhUTUxFbGVt
ZW50PiBwYXJhZ3JhcGggPSBjcmVhdGVEZWZhdWx0UGFyYWdyYXBoRWxlbWVudChkb2N1bWVudCk7
CisgICAgICAgIFJlZjxIVE1MRWxlbWVudD4gcGFyYWdyYXBoID0gY3JlYXRlRGVmYXVsdFBhcmFn
cmFwaEVsZW1lbnQoZG9jdW1lbnQpOwogICAgICAgICBwYXJhZ3JhcGgtPmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKHRleHQpKTsKLSAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENo
aWxkKHBhcmFncmFwaC5yZWxlYXNlKCkpOworICAgICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQo
V1RGOjptb3ZlKHBhcmFncmFwaCkpOwogI2VuZGlmCiAgICAgfQogCkBAIC01OTQsMTIgKzU5NCwx
MiBAQCBib29sIEVkaXRvcjo6V2ViQ29udGVudFJlYWRlcjo6cmVhZFVSTChjb25zdCBVUkwmIHVy
bCwgY29uc3QgU3RyaW5nJiB0aXRsZSkKICAgICBpZiAodXJsLnN0cmluZygpLmlzRW1wdHkoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgUmVmUHRyPEVsZW1lbnQ+IGFuY2hvciA9IGZy
YW1lLmRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoSFRNTE5hbWVzOjphVGFnLCBmYWxzZSk7Cisg
ICAgUmVmPEVsZW1lbnQ+IGFuY2hvciA9IGZyYW1lLmRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQo
SFRNTE5hbWVzOjphVGFnLCBmYWxzZSk7CiAgICAgYW5jaG9yLT5zZXRBdHRyaWJ1dGUoSFRNTE5h
bWVzOjpocmVmQXR0ciwgdXJsLnN0cmluZygpKTsKICAgICBhbmNob3ItPmFwcGVuZENoaWxkKGZy
YW1lLmRvY3VtZW50KCktPmNyZWF0ZVRleHROb2RlKFt0aXRsZSBwcmVjb21wb3NlZFN0cmluZ1dp
dGhDYW5vbmljYWxNYXBwaW5nXSkpOwogCiAgICAgZnJhZ21lbnQgPSBmcmFtZS5kb2N1bWVudCgp
LT5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKGFu
Y2hvci5yZWxlYXNlKCkpOworICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoYW5j
aG9yKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTYzNSwxMSArNjM1LDExIEBAIFBhc3NS
ZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gRWRpdG9yOjpjcmVhdGVGcmFnbWVudEZvckltYWdlUmVz
b3VyY2VBbmRBZGRSZXNvdXJjCiAgICAgaWYgKERvY3VtZW50TG9hZGVyKiBsb2FkZXIgPSBtX2Zy
YW1lLmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCkpCiAgICAgICAgIGxvYWRlci0+YWRkQXJjaGl2
ZVJlc291cmNlKHJlc291cmNlLmdldCgpKTsKIAotICAgIFJlZlB0cjxFbGVtZW50PiBpbWFnZUVs
ZW1lbnQgPSBkb2N1bWVudCgpLmNyZWF0ZUVsZW1lbnQoSFRNTE5hbWVzOjppbWdUYWcsIGZhbHNl
KTsKKyAgICBSZWY8RWxlbWVudD4gaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQoKS5jcmVhdGVFbGVt
ZW50KEhUTUxOYW1lczo6aW1nVGFnLCBmYWxzZSk7CiAgICAgaW1hZ2VFbGVtZW50LT5zZXRBdHRy
aWJ1dGUoSFRNTE5hbWVzOjpzcmNBdHRyLCByZXNvdXJjZS0+dXJsKCkuc3RyaW5nKCkpOwogCiAg
ICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gZG9jdW1lbnQoKS5jcmVhdGVE
b2N1bWVudEZyYWdtZW50KCk7Ci0gICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKGltYWdlRWxlbWVu
dC5yZWxlYXNlKCkpOworICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoaW1hZ2VF
bGVtZW50KSk7CiAKICAgICByZXR1cm4gZnJhZ21lbnQucmVsZWFzZSgpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9tYXJrdXAuY3BwCmluZGV4IDBjYWM4YjQwZmQ4YTNjNjUxODA0MTU0OGViNjQ5ZDk0YjUz
NmQyZDIuLjIwNTRjNGU4ZGJmYjYxZTFiMzc1MmQ4ZWFhYmMyMmEwODEzMTBkMWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL21hcmt1cC5jcHAKQEAgLTcwNCwxMiArNzA0LDEyIEBAIFN0cmluZyBjcmVhdGVN
YXJrdXAoY29uc3QgTm9kZSYgbm9kZSwgRUNoaWxkcmVuT25seSBjaGlsZHJlbk9ubHksIFZlY3Rv
cjxOb2RlKj4qCiAgICAgcmV0dXJuIGFjY3VtdWxhdG9yLnNlcmlhbGl6ZU5vZGVzKGNvbnN0X2Nh
c3Q8Tm9kZSY+KG5vZGUpLCBjaGlsZHJlbk9ubHksIHRhZ05hbWVzVG9Ta2lwKTsKIH0KIAotc3Rh
dGljIHZvaWQgZmlsbENvbnRhaW5lckZyb21TdHJpbmcoQ29udGFpbmVyTm9kZSogcGFyYWdyYXBo
LCBjb25zdCBTdHJpbmcmIHN0cmluZykKK3N0YXRpYyB2b2lkIGZpbGxDb250YWluZXJGcm9tU3Ry
aW5nKENvbnRhaW5lck5vZGUmIHBhcmFncmFwaCwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0g
ICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gcGFyYWdyYXBoLT5kb2N1bWVudCgpOworICAgIERvY3Vt
ZW50JiBkb2N1bWVudCA9IHBhcmFncmFwaC5kb2N1bWVudCgpOwogCiAgICAgaWYgKHN0cmluZy5p
c0VtcHR5KCkpIHsKLSAgICAgICAgcGFyYWdyYXBoLT5hcHBlbmRDaGlsZChjcmVhdGVCbG9ja1Bs
YWNlaG9sZGVyRWxlbWVudChkb2N1bWVudCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAg
ICBwYXJhZ3JhcGguYXBwZW5kQ2hpbGQoY3JlYXRlQmxvY2tQbGFjZWhvbGRlckVsZW1lbnQoZG9j
dW1lbnQpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtNzI2LDExICs3MjYsMTEgQEAgc3RhdGljIHZvaWQgZmlsbENvbnRhaW5lckZyb21TdHJpbmco
Q29udGFpbmVyTm9kZSogcGFyYWdyYXBoLCBjb25zdCBTdHJpbmcmIHN0cmkKICAgICAgICAgLy8g
YXBwZW5kIHRoZSBub24tdGFiIHRleHR1YWwgcGFydAogICAgICAgICBpZiAoIXMuaXNFbXB0eSgp
KSB7CiAgICAgICAgICAgICBpZiAoIXRhYlRleHQuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAg
ICAgcGFyYWdyYXBoLT5hcHBlbmRDaGlsZChjcmVhdGVUYWJTcGFuRWxlbWVudChkb2N1bWVudCwg
dGFiVGV4dCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAgICAgICAgICAgIHBhcmFncmFw
aC5hcHBlbmRDaGlsZChjcmVhdGVUYWJTcGFuRWxlbWVudChkb2N1bWVudCwgdGFiVGV4dCksIEFT
U0VSVF9OT19FWENFUFRJT04pOwogICAgICAgICAgICAgICAgIHRhYlRleHQgPSBlbXB0eVN0cmlu
ZygpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgUmVmUHRyPE5vZGU+IHRleHROb2RlID0g
ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoc3RyaW5nV2l0aFJlYmFsYW5jZWRXaGl0ZXNwYWNlKHMs
IGZpcnN0LCBpICsgMSA9PSBudW1FbnRyaWVzKSk7Ci0gICAgICAgICAgICBwYXJhZ3JhcGgtPmFw
cGVuZENoaWxkKHRleHROb2RlLnJlbGVhc2UoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAg
ICAgICAgICBSZWY8Tm9kZT4gdGV4dE5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHJp
bmdXaXRoUmViYWxhbmNlZFdoaXRlc3BhY2UocywgZmlyc3QsIGkgKyAxID09IG51bUVudHJpZXMp
KTsKKyAgICAgICAgICAgIHBhcmFncmFwaC5hcHBlbmRDaGlsZChXVEY6Om1vdmUodGV4dE5vZGUp
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIHRoZXJlIGlz
IGEgdGFiIGFmdGVyIGV2ZXJ5IGVudHJ5LCBleGNlcHQgdGhlIGxhc3QgZW50cnkKQEAgLTczOCw3
ICs3MzgsNyBAQCBzdGF0aWMgdm9pZCBmaWxsQ29udGFpbmVyRnJvbVN0cmluZyhDb250YWluZXJO
b2RlKiBwYXJhZ3JhcGgsIGNvbnN0IFN0cmluZyYgc3RyaQogICAgICAgICBpZiAoaSArIDEgIT0g
bnVtRW50cmllcykKICAgICAgICAgICAgIHRhYlRleHQuYXBwZW5kKCdcdCcpOwogICAgICAgICBl
bHNlIGlmICghdGFiVGV4dC5pc0VtcHR5KCkpCi0gICAgICAgICAgICBwYXJhZ3JhcGgtPmFwcGVu
ZENoaWxkKGNyZWF0ZVRhYlNwYW5FbGVtZW50KGRvY3VtZW50LCB0YWJUZXh0KSwgQVNTRVJUX05P
X0VYQ0VQVElPTik7CisgICAgICAgICAgICBwYXJhZ3JhcGguYXBwZW5kQ2hpbGQoY3JlYXRlVGFi
U3BhbkVsZW1lbnQoZG9jdW1lbnQsIHRhYlRleHQpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAog
ICAgICAgICBmaXJzdCA9IGZhbHNlOwogICAgIH0KQEAgLTc3OCwxMyArNzc4LDEzIEBAIHN0YXRp
YyBib29sIGNvbnRleHRQcmVzZXJ2ZXNOZXdsaW5lKGNvbnN0IFJhbmdlJiBjb250ZXh0KQogICAg
IHJldHVybiBjb250YWluZXItPnJlbmRlcmVyKCktPnN0eWxlKCkucHJlc2VydmVOZXdsaW5lKCk7
CiB9CiAKLVBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGcm9tVGV4
dChSYW5nZSYgY29udGV4dCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorUmVmPERvY3VtZW50RnJhZ21l
bnQ+IGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoUmFuZ2UmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYg
dGV4dCkKIHsKICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBjb250ZXh0Lm93bmVyRG9jdW1lbnQo
KTsKLSAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBkb2N1bWVudC5jcmVh
dGVEb2N1bWVudEZyYWdtZW50KCk7CisgICAgUmVmPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwogICAgIAogICAgIGlmICh0ZXh0
LmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIGZyYWdtZW50LnJlbGVhc2UoKTsKKyAgICAgICAg
cmV0dXJuIGZyYWdtZW50OwogCiAgICAgU3RyaW5nIHN0cmluZyA9IHRleHQ7CiAgICAgc3RyaW5n
LnJlcGxhY2UoIlxyXG4iLCAiXG4iKTsKQEAgLTc5MywxNyArNzkzLDE3IEBAIFBhc3NSZWZQdHI8
RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGcm9tVGV4dChSYW5nZSYgY29udGV4dCwg
Y29uc3QgU3RyaW5nCiAgICAgaWYgKGNvbnRleHRQcmVzZXJ2ZXNOZXdsaW5lKGNvbnRleHQpKSB7
CiAgICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShz
dHJpbmcpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICAgICAgaWYgKHN0cmluZy5lbmRzV2l0
aCgnXG4nKSkgewotICAgICAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSBjcmVhdGVC
cmVha0VsZW1lbnQoZG9jdW1lbnQpOworICAgICAgICAgICAgUmVmPEVsZW1lbnQ+IGVsZW1lbnQg
PSBjcmVhdGVCcmVha0VsZW1lbnQoZG9jdW1lbnQpOwogICAgICAgICAgICAgZWxlbWVudC0+c2V0
QXR0cmlidXRlKGNsYXNzQXR0ciwgQXBwbGVJbnRlcmNoYW5nZU5ld2xpbmUpOyAgICAgICAgICAg
IAotICAgICAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKGVsZW1lbnQucmVsZWFzZSgpLCBB
U1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChX
VEY6Om1vdmUoZWxlbWVudCksIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgICAgICB9Ci0gICAg
ICAgIHJldHVybiBmcmFnbWVudC5yZWxlYXNlKCk7CisgICAgICAgIHJldHVybiBmcmFnbWVudDsK
ICAgICB9CiAKICAgICAvLyBBIHN0cmluZyB3aXRoIG5vIG5ld2xpbmVzIGdldHMgYWRkZWQgaW5s
aW5lLCByYXRoZXIgdGhhbiBiZWluZyBwdXQgaW50byBhIHBhcmFncmFwaC4KICAgICBpZiAoc3Ry
aW5nLmZpbmQoJ1xuJykgPT0gbm90Rm91bmQpIHsKLSAgICAgICAgZmlsbENvbnRhaW5lckZyb21T
dHJpbmcoZnJhZ21lbnQuZ2V0KCksIHN0cmluZyk7Ci0gICAgICAgIHJldHVybiBmcmFnbWVudC5y
ZWxlYXNlKCk7CisgICAgICAgIGZpbGxDb250YWluZXJGcm9tU3RyaW5nKGZyYWdtZW50LCBzdHJp
bmcpOworICAgICAgICByZXR1cm4gZnJhZ21lbnQ7CiAgICAgfQogCiAgICAgLy8gQnJlYWsgc3Ry
aW5nIGludG8gcGFyYWdyYXBocy4gRXh0cmEgbGluZSBicmVha3MgdHVybiBpbnRvIGVtcHR5IHBh
cmFncmFwaHMuCkBAIC04MjksMTcgKzgyOSwxNyBAQCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21l
bnQ+IGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoUmFuZ2UmIGNvbnRleHQsIGNvbnN0IFN0cmluZwog
ICAgICAgICAgICAgZWxlbWVudC0+c2V0QXR0cmlidXRlKGNsYXNzQXR0ciwgQXBwbGVJbnRlcmNo
YW5nZU5ld2xpbmUpOwogICAgICAgICB9IGVsc2UgaWYgKHVzZUxpbmVCcmVhaykgewogICAgICAg
ICAgICAgZWxlbWVudCA9IGNyZWF0ZUJyZWFrRWxlbWVudChkb2N1bWVudCk7Ci0gICAgICAgICAg
ICBmaWxsQ29udGFpbmVyRnJvbVN0cmluZyhmcmFnbWVudC5nZXQoKSwgcyk7CisgICAgICAgICAg
ICBmaWxsQ29udGFpbmVyRnJvbVN0cmluZyhmcmFnbWVudCwgcyk7CiAgICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgICBpZiAodXNlQ2xvbmVzT2ZFbmNsb3NpbmdCbG9jaykKICAgICAgICAgICAg
ICAgICBlbGVtZW50ID0gYmxvY2stPmNsb25lRWxlbWVudFdpdGhvdXRDaGlsZHJlbihkb2N1bWVu
dCk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGNyZWF0ZURl
ZmF1bHRQYXJhZ3JhcGhFbGVtZW50KGRvY3VtZW50KTsKLSAgICAgICAgICAgIGZpbGxDb250YWlu
ZXJGcm9tU3RyaW5nKGVsZW1lbnQuZ2V0KCksIHMpOworICAgICAgICAgICAgZmlsbENvbnRhaW5l
ckZyb21TdHJpbmcoKmVsZW1lbnQsIHMpOwogICAgICAgICB9Ci0gICAgICAgIGZyYWdtZW50LT5h
cHBlbmRDaGlsZChlbGVtZW50LnJlbGVhc2UoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAg
ICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChlbGVtZW50LnJlbGVhc2VOb25OdWxsKCksIEFTU0VS
VF9OT19FWENFUFRJT04pOwogICAgIH0KLSAgICByZXR1cm4gZnJhZ21lbnQucmVsZWFzZSgpOwor
ICAgIHJldHVybiBmcmFnbWVudDsKIH0KIAogU3RyaW5nIGRvY3VtZW50VHlwZVN0cmluZyhjb25z
dCBEb2N1bWVudCYgZG9jdW1lbnQpCkBAIC05NDUsMTAgKzk0NSwxMCBAQCBzdGF0aWMgdm9pZCBy
ZW1vdmVFbGVtZW50RnJvbUZyYWdtZW50UHJlc2VydmluZ0NoaWxkcmVuKERvY3VtZW50RnJhZ21l
bnQmIGZyYWdtZQogICAgIFJlZlB0cjxOb2RlPiBuZXh0Q2hpbGQ7CiAgICAgZm9yIChSZWZQdHI8
Tm9kZT4gY2hpbGQgPSBlbGVtZW50LmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gbmV4dENo
aWxkKSB7CiAgICAgICAgIG5leHRDaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpOwotICAgICAg
ICBlbGVtZW50LnJlbW92ZUNoaWxkKGNoaWxkLmdldCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsK
LSAgICAgICAgZnJhZ21lbnQuaW5zZXJ0QmVmb3JlKGNoaWxkLCAmZWxlbWVudCwgQVNTRVJUX05P
X0VYQ0VQVElPTik7CisgICAgICAgIGVsZW1lbnQucmVtb3ZlQ2hpbGQoKmNoaWxkLCBBU1NFUlRf
Tk9fRVhDRVBUSU9OKTsKKyAgICAgICAgZnJhZ21lbnQuaW5zZXJ0QmVmb3JlKCpjaGlsZCwgJmVs
ZW1lbnQsIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgIH0KLSAgICBmcmFnbWVudC5yZW1vdmVD
aGlsZCgmZWxlbWVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgZnJhZ21lbnQucmVtb3Zl
Q2hpbGQoZWxlbWVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiB9CiAKIFBhc3NSZWZQdHI8RG9j
dW1lbnRGcmFnbWVudD4gY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KGNvbnN0IFN0cmluZyYgbWFy
a3VwLCBIVE1MRWxlbWVudCogZWxlbWVudCwgUGFyc2VyQ29udGVudFBvbGljeSBwYXJzZXJDb250
ZW50UG9saWN5LCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTk5MCw3ICs5OTAsNyBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgaGFzT25lVGV4dENoaWxkKENvbnRhaW5lck5vZGUmIG5vZGUpCiAgICAgcmV0
dXJuIGhhc09uZUNoaWxkKG5vZGUpICYmIG5vZGUuZmlyc3RDaGlsZCgpLT5pc1RleHROb2RlKCk7
CiB9CiAKLXZvaWQgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KENvbnRhaW5lck5vZGUmIGNv
bnRhaW5lciwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwgRXhjZXB0aW9u
Q29kZSYgZWMpCit2b2lkIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVudChDb250YWluZXJOb2Rl
JiBjb250YWluZXIsIFJlZjxEb2N1bWVudEZyYWdtZW50PiYmIGZyYWdtZW50LCBFeGNlcHRpb25D
b2RlJiBlYykKIHsKICAgICBSZWY8Q29udGFpbmVyTm9kZT4gY29udGFpbmVyTm9kZShjb250YWlu
ZXIpOwogICAgIENoaWxkTGlzdE11dGF0aW9uU2NvcGUgbXV0YXRpb24oY29udGFpbmVyTm9kZSk7
CkBAIC0xMDAwLDE4ICsxMDAwLDE4IEBAIHZvaWQgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50
KENvbnRhaW5lck5vZGUmIGNvbnRhaW5lciwgUGFzc1JlZlB0cjxEb2N1bWVudEZyCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoaGFzT25lVGV4dENoaWxkKGNvbnRhaW5lck5vZGUp
ICYmIGhhc09uZVRleHRDaGlsZCgqZnJhZ21lbnQpKSB7CisgICAgaWYgKGhhc09uZVRleHRDaGls
ZChjb250YWluZXJOb2RlKSAmJiBoYXNPbmVUZXh0Q2hpbGQoZnJhZ21lbnQpKSB7CiAgICAgICAg
IGRvd25jYXN0PFRleHQ+KCpjb250YWluZXJOb2RlLT5maXJzdENoaWxkKCkpLnNldERhdGEoZG93
bmNhc3Q8VGV4dD4oKmZyYWdtZW50LT5maXJzdENoaWxkKCkpLmRhdGEoKSwgZWMpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKGhhc09uZUNoaWxkKGNvbnRhaW5lck5vZGUpKSB7
Ci0gICAgICAgIGNvbnRhaW5lck5vZGUtPnJlcGxhY2VDaGlsZChmcmFnbWVudCwgY29udGFpbmVy
Tm9kZS0+Zmlyc3RDaGlsZCgpLCBlYyk7CisgICAgICAgIGNvbnRhaW5lck5vZGUtPnJlcGxhY2VD
aGlsZChXVEY6Om1vdmUoZnJhZ21lbnQpLCAqY29udGFpbmVyTm9kZS0+Zmlyc3RDaGlsZCgpLCBl
Yyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBjb250YWluZXJOb2RlLT5yZW1vdmVD
aGlsZHJlbigpOwotICAgIGNvbnRhaW5lck5vZGUtPmFwcGVuZENoaWxkKGZyYWdtZW50LCBlYyk7
CisgICAgY29udGFpbmVyTm9kZS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGZyYWdtZW50KSwgZWMp
OwogfQogCiB2b2lkIHJlcGxhY2VDaGlsZHJlbldpdGhUZXh0KENvbnRhaW5lck5vZGUmIGNvbnRh
aW5lciwgY29uc3QgU3RyaW5nJiB0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTEwMjcsNyAr
MTAyNyw3IEBAIHZvaWQgcmVwbGFjZUNoaWxkcmVuV2l0aFRleHQoQ29udGFpbmVyTm9kZSYgY29u
dGFpbmVyLCBjb25zdCBTdHJpbmcmIHRleHQsIEV4Y2VwCiAgICAgUmVmPFRleHQ+IHRleHROb2Rl
ID0gVGV4dDo6Y3JlYXRlKGNvbnRhaW5lck5vZGUtPmRvY3VtZW50KCksIHRleHQpOwogCiAgICAg
aWYgKGhhc09uZUNoaWxkKGNvbnRhaW5lck5vZGUpKSB7Ci0gICAgICAgIGNvbnRhaW5lck5vZGUt
PnJlcGxhY2VDaGlsZChXVEY6Om1vdmUodGV4dE5vZGUpLCBjb250YWluZXJOb2RlLT5maXJzdENo
aWxkKCksIGVjKTsKKyAgICAgICAgY29udGFpbmVyTm9kZS0+cmVwbGFjZUNoaWxkKFdURjo6bW92
ZSh0ZXh0Tm9kZSksICpjb250YWluZXJOb2RlLT5maXJzdENoaWxkKCksIGVjKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJr
dXAuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmgKaW5kZXggYzU1MjAxMDc2NjA3
MmVmNWU2MWQyNmEzMTNjMWIwMDNiMWI4MzRiOC4uYTU0NWJhNTQ2NmYyZmQxODNkNTViYjRlODMy
MDk0NDhjODhmMzc5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5oCkBAIC00OSw3ICs0OSw3IEBA
IGVudW0gRUNoaWxkcmVuT25seSB7IEluY2x1ZGVOb2RlLCBDaGlsZHJlbk9ubHkgfTsKIGVudW0g
RUFic29sdXRlVVJMcyB7IERvTm90UmVzb2x2ZVVSTHMsIFJlc29sdmVBbGxVUkxzLCBSZXNvbHZl
Tm9uTG9jYWxVUkxzIH07CiBlbnVtIEVGcmFnbWVudFNlcmlhbGl6YXRpb24geyBIVE1MRnJhZ21l
bnRTZXJpYWxpemF0aW9uLCBYTUxGcmFnbWVudFNlcmlhbGl6YXRpb24gfTsKIAotV0VCQ09SRV9F
WFBPUlQgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21UZXh0
KFJhbmdlJiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIHRleHQpOworV0VCQ09SRV9FWFBPUlQgUmVm
PERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoUmFuZ2UmIGNvbnRleHQs
IGNvbnN0IFN0cmluZyYgdGV4dCk7CiBXRUJDT1JFX0VYUE9SVCBSZWY8RG9jdW1lbnRGcmFnbWVu
dD4gY3JlYXRlRnJhZ21lbnRGcm9tTWFya3VwKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiBtYXJr
dXAsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgUGFyc2VyQ29udGVudFBvbGljeSA9IEFsbG93U2Ny
aXB0aW5nQ29udGVudCk7CiBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdt
ZW50Rm9ySW5uZXJPdXRlckhUTUwoY29uc3QgU3RyaW5nJiwgRWxlbWVudCosIFBhcnNlckNvbnRl
bnRQb2xpY3ksIEV4Y2VwdGlvbkNvZGUmKTsKIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4g
Y3JlYXRlRnJhZ21lbnRGb3JUcmFuc2Zvcm1Ub0ZyYWdtZW50KGNvbnN0IFN0cmluZyYsIGNvbnN0
IFN0cmluZyYgc291cmNlTUlNRVR5cGUsIERvY3VtZW50KiBvdXRwdXREb2MpOwpAQCAtNTksMTEg
KzU5LDExIEBAIGJvb2wgaXNQbGFpblRleHRNYXJrdXAoTm9kZSopOwogCiAvLyBUaGVzZSBtZXRo
b2RzIGFyZSB1c2VkIGJ5IEhUTUxFbGVtZW50ICYgU2hhZG93Um9vdCB0byByZXBsYWNlIHRoZQog
Ly8gY2hpbGRyZW4gd2l0aCByZXNwZWN0ZWQgZnJhZ21lbnQvdGV4dC4KLXZvaWQgcmVwbGFjZUNo
aWxkcmVuV2l0aEZyYWdtZW50KENvbnRhaW5lck5vZGUmLCBQYXNzUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+LCBFeGNlcHRpb25Db2RlJik7Cit2b2lkIHJlcGxhY2VDaGlsZHJlbldpdGhGcmFnbWVu
dChDb250YWluZXJOb2RlJiwgUmVmPERvY3VtZW50RnJhZ21lbnQ+JiYsIEV4Y2VwdGlvbkNvZGUm
KTsKIHZvaWQgcmVwbGFjZUNoaWxkcmVuV2l0aFRleHQoQ29udGFpbmVyTm9kZSYsIGNvbnN0IFN0
cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKIAotU3RyaW5nIGNyZWF0ZU1hcmt1cChjb25zdCBSYW5n
ZSYsIFZlY3RvcjxOb2RlKj4qID0gMCwgRUFubm90YXRlRm9ySW50ZXJjaGFuZ2UgPSBEb05vdEFu
bm90YXRlRm9ySW50ZXJjaGFuZ2UsIGJvb2wgY29udmVydEJsb2Nrc1RvSW5saW5lcyA9IGZhbHNl
LCBFQWJzb2x1dGVVUkxzID0gRG9Ob3RSZXNvbHZlVVJMcyk7Ci1TdHJpbmcgY3JlYXRlTWFya3Vw
KGNvbnN0IE5vZGUmLCBFQ2hpbGRyZW5Pbmx5ID0gSW5jbHVkZU5vZGUsIFZlY3RvcjxOb2RlKj4q
ID0gMCwgRUFic29sdXRlVVJMcyA9IERvTm90UmVzb2x2ZVVSTHMsIFZlY3RvcjxRdWFsaWZpZWRO
YW1lPiogdGFnTmFtZXNUb1NraXAgPSAwLCBFRnJhZ21lbnRTZXJpYWxpemF0aW9uID0gSFRNTEZy
YWdtZW50U2VyaWFsaXphdGlvbik7CitTdHJpbmcgY3JlYXRlTWFya3VwKGNvbnN0IFJhbmdlJiwg
VmVjdG9yPE5vZGUqPiogPSBudWxscHRyLCBFQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSA9IERvTm90
QW5ub3RhdGVGb3JJbnRlcmNoYW5nZSwgYm9vbCBjb252ZXJ0QmxvY2tzVG9JbmxpbmVzID0gZmFs
c2UsIEVBYnNvbHV0ZVVSTHMgPSBEb05vdFJlc29sdmVVUkxzKTsKK1N0cmluZyBjcmVhdGVNYXJr
dXAoY29uc3QgTm9kZSYsIEVDaGlsZHJlbk9ubHkgPSBJbmNsdWRlTm9kZSwgVmVjdG9yPE5vZGUq
PiogPSBudWxscHRyLCBFQWJzb2x1dGVVUkxzID0gRG9Ob3RSZXNvbHZlVVJMcywgVmVjdG9yPFF1
YWxpZmllZE5hbWU+KiB0YWdOYW1lc1RvU2tpcCA9IDAsIEVGcmFnbWVudFNlcmlhbGl6YXRpb24g
PSBIVE1MRnJhZ21lbnRTZXJpYWxpemF0aW9uKTsKIAogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNy
ZWF0ZUZ1bGxNYXJrdXAoY29uc3QgTm9kZSYpOwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNyZWF0
ZUZ1bGxNYXJrdXAoY29uc3QgUmFuZ2UmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKaW5kZXggZGJl
YTBlOTliZDkzNGM3ZGJkZWE1MmQyNWQwMWMyZjgxNzVkYzFkMC4uNTdlMzg4YmYxZGNlYTRiODE5
NmI0NjBmMGNjMzcxMWZmMGY4NzM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKQEAgLTYwLDkg
KzYwLDkgQEAgdm9pZCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6Y3JlYXRl
U2hhZG93U3VidHJlZSgpCiB7CiAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgdmFsdWVDb250YWluZXJQc2V1ZG8sICgiLXdlYmtpdC1kYXRlLWFuZC10aW1l
LXZhbHVlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogCi0gICAgUmVm
UHRyPEhUTUxEaXZFbGVtZW50PiB2YWx1ZUNvbnRhaW5lciA9IEhUTUxEaXZFbGVtZW50OjpjcmVh
dGUoZWxlbWVudCgpLmRvY3VtZW50KCkpOworICAgIFJlZjxIVE1MRGl2RWxlbWVudD4gdmFsdWVD
b250YWluZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS5kb2N1bWVudCgpKTsK
ICAgICB2YWx1ZUNvbnRhaW5lci0+c2V0UHNldWRvKHZhbHVlQ29udGFpbmVyUHNldWRvKTsKLSAg
ICBlbGVtZW50KCkudXNlckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZCh2YWx1ZUNvbnRh
aW5lci5nZXQoKSk7CisgICAgZWxlbWVudCgpLnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5k
Q2hpbGQoV1RGOjptb3ZlKHZhbHVlQ29udGFpbmVyKSk7CiAgICAgdXBkYXRlQXBwZWFyYW5jZSgp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCmluZGV4IDhiYmRiOTdj
MjUyNGI2MmFiMzlhYTY0ZTY4NDA4NTVjYTQ2OTU1OWMuLmM1Mzg1YTA0YjY3NzhjNWVhMmQ0MzVi
NDM5YTk0YmYyMDdiYjY2NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJ
bnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3Bw
CkBAIC0xMDcsMTIgKzEwNywxMiBAQCB2b2lkIENvbG9ySW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dT
dWJ0cmVlKCkKICAgICBBU1NFUlQoZWxlbWVudCgpLnNoYWRvd1Jvb3QoKSk7CiAKICAgICBEb2N1
bWVudCYgZG9jdW1lbnQgPSBlbGVtZW50KCkuZG9jdW1lbnQoKTsKLSAgICBSZWZQdHI8SFRNTERp
dkVsZW1lbnQ+IHdyYXBwZXJFbGVtZW50ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCk7CisgICAgUmVmPEhUTUxEaXZFbGVtZW50PiB3cmFwcGVyRWxlbWVudCA9IEhUTUxEaXZFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIHdyYXBwZXJFbGVtZW50LT5zZXRQc2V1ZG8oQXRv
bWljU3RyaW5nKCItd2Via2l0LWNvbG9yLXN3YXRjaC13cmFwcGVyIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gY29sb3JT
d2F0Y2ggPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBSZWY8SFRNTERp
dkVsZW1lbnQ+IGNvbG9yU3dhdGNoID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7
CiAgICAgY29sb3JTd2F0Y2gtPnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtY29sb3It
c3dhdGNoIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIHdyYXBw
ZXJFbGVtZW50LT5hcHBlbmRDaGlsZChjb2xvclN3YXRjaC5yZWxlYXNlKCksIEFTU0VSVF9OT19F
WENFUFRJT04pOwotICAgIGVsZW1lbnQoKS51c2VyQWdlbnRTaGFkb3dSb290KCktPmFwcGVuZENo
aWxkKHdyYXBwZXJFbGVtZW50LnJlbGVhc2UoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAg
d3JhcHBlckVsZW1lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShjb2xvclN3YXRjaCksIEFTU0VS
VF9OT19FWENFUFRJT04pOworICAgIGVsZW1lbnQoKS51c2VyQWdlbnRTaGFkb3dSb290KCktPmFw
cGVuZENoaWxkKFdURjo6bW92ZSh3cmFwcGVyRWxlbWVudCksIEFTU0VSVF9OT19FWENFUFRJT04p
OwogICAgIAogICAgIHVwZGF0ZUNvbG9yU3dhdGNoKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwCmluZGV4IDQwNjVhMTc4ZDI4MmE5Mjk3MTQ1MTE1
NWI2NmQ2M2RkMzRhMWYyZDUuLjE0NDdhNDYzNWY3MjEyZWZhOTJhMTFjMTdmOTJmN2Y2OTM3ZWFl
ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwCkBA
IC0xMDQsMjcgKzEwNCwyNyBAQCB2b2lkIEZUUERpcmVjdG9yeURvY3VtZW50UGFyc2VyOjphcHBl
bmRFbnRyeShjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBTdHJpbgogICAgIFJlZlB0cjxF
bGVtZW50PiByb3dFbGVtZW50ID0gbV90YWJsZUVsZW1lbnQtPmluc2VydFJvdygtMSwgSUdOT1JF
X0VYQ0VQVElPTik7CiAgICAgcm93RWxlbWVudC0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6Y2xh
c3NBdHRyLCAiZnRwRGlyZWN0b3J5RW50cnlSb3ciKTsKIAotICAgIFJlZlB0cjxFbGVtZW50PiBl
bGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudCh0ZFRhZywgZmFsc2UpOworICAgIFJl
ZjxFbGVtZW50PiBlbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudCh0ZFRhZywgZmFs
c2UpOwogICAgIGVsZW1lbnQtPmFwcGVuZENoaWxkKFRleHQ6OmNyZWF0ZSgqZG9jdW1lbnQoKSwg
U3RyaW5nKCZub0JyZWFrU3BhY2UsIDEpKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgaWYgKGlz
RGlyZWN0b3J5KQogICAgICAgICBlbGVtZW50LT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpjbGFz
c0F0dHIsICJmdHBEaXJlY3RvcnlJY29uIGZ0cERpcmVjdG9yeVR5cGVEaXJlY3RvcnkiKTsKICAg
ICBlbHNlCiAgICAgICAgIGVsZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNsYXNzQXR0
ciwgImZ0cERpcmVjdG9yeUljb24gZnRwRGlyZWN0b3J5VHlwZUZpbGUiKTsKLSAgICByb3dFbGVt
ZW50LT5hcHBlbmRDaGlsZChlbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICByb3dFbGVt
ZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoZWxlbWVudCksIElHTk9SRV9FWENFUFRJT04pOwog
CiAgICAgZWxlbWVudCA9IGNyZWF0ZVRERm9yRmlsZW5hbWUoZmlsZW5hbWUpOwogICAgIGVsZW1l
bnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNsYXNzQXR0ciwgImZ0cERpcmVjdG9yeUZpbGVO
YW1lIik7Ci0gICAgcm93RWxlbWVudC0+YXBwZW5kQ2hpbGQoZWxlbWVudCwgSUdOT1JFX0VYQ0VQ
VElPTik7CisgICAgcm93RWxlbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGVsZW1lbnQpLCBJ
R05PUkVfRVhDRVBUSU9OKTsKIAogICAgIGVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVt
ZW50KHRkVGFnLCBmYWxzZSk7CiAgICAgZWxlbWVudC0+YXBwZW5kQ2hpbGQoVGV4dDo6Y3JlYXRl
KCpkb2N1bWVudCgpLCBkYXRlKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgZWxlbWVudC0+c2V0
QXR0cmlidXRlKEhUTUxOYW1lczo6Y2xhc3NBdHRyLCAiZnRwRGlyZWN0b3J5RmlsZURhdGUiKTsK
LSAgICByb3dFbGVtZW50LT5hcHBlbmRDaGlsZChlbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsK
KyAgICByb3dFbGVtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoZWxlbWVudCksIElHTk9SRV9F
WENFUFRJT04pOwogCiAgICAgZWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQodGRU
YWcsIGZhbHNlKTsKICAgICBlbGVtZW50LT5hcHBlbmRDaGlsZChUZXh0OjpjcmVhdGUoKmRvY3Vt
ZW50KCksIHNpemUpLCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICBlbGVtZW50LT5zZXRBdHRyaWJ1
dGUoSFRNTE5hbWVzOjpjbGFzc0F0dHIsICJmdHBEaXJlY3RvcnlGaWxlU2l6ZSIpOwotICAgIHJv
d0VsZW1lbnQtPmFwcGVuZENoaWxkKGVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOworICAgIHJv
d0VsZW1lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShlbGVtZW50KSwgSUdOT1JFX0VYQ0VQVElP
Tik7CiB9CiAKIFJlZjxFbGVtZW50PiBGVFBEaXJlY3RvcnlEb2N1bWVudFBhcnNlcjo6Y3JlYXRl
VERGb3JGaWxlbmFtZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lKQpAQCAtMTM1LDEyICsxMzUsMTIg
QEAgUmVmPEVsZW1lbnQ+IEZUUERpcmVjdG9yeURvY3VtZW50UGFyc2VyOjpjcmVhdGVUREZvckZp
bGVuYW1lKGNvbnN0IFN0cmluZyYgZmlsZW4KICAgICBlbHNlCiAgICAgICAgIGZ1bGxVUkwgPSBm
dWxsVVJMICsgJy8nICsgZmlsZW5hbWU7CiAKLSAgICBSZWZQdHI8RWxlbWVudD4gYW5jaG9yRWxl
bWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoYVRhZywgZmFsc2UpOworICAgIFJlZjxF
bGVtZW50PiBhbmNob3JFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChhVGFnLCBm
YWxzZSk7CiAgICAgYW5jaG9yRWxlbWVudC0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6aHJlZkF0
dHIsIGZ1bGxVUkwpOwogICAgIGFuY2hvckVsZW1lbnQtPmFwcGVuZENoaWxkKFRleHQ6OmNyZWF0
ZSgqZG9jdW1lbnQoKSwgZmlsZW5hbWUpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAogICAgIFJlZjxF
bGVtZW50PiB0ZEVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KHRkVGFnLCBmYWxz
ZSk7Ci0gICAgdGRFbGVtZW50LT5hcHBlbmRDaGlsZChhbmNob3JFbGVtZW50LCBJR05PUkVfRVhD
RVBUSU9OKTsKKyAgICB0ZEVsZW1lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShhbmNob3JFbGVt
ZW50KSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKICAgICByZXR1cm4gdGRFbGVtZW50OwogfQpAQCAt
MzEyLDkgKzMxMiw5IEBAIGJvb2wgRlRQRGlyZWN0b3J5RG9jdW1lbnRQYXJzZXI6OmxvYWREb2N1
bWVudFRlbXBsYXRlKCkKICAgICAvLyBJZiB0aGF0IGZhaWxzIGZvciBzb21lIHJlYXNvbiwgY3Jh
bSBpdCBvbiB0aGUgZW5kIG9mIHRoZSBkb2N1bWVudCBhcyBhIGxhc3QKICAgICAvLyBkaXRjaCBl
ZmZvcnQKICAgICBpZiAoYXV0byogYm9keSA9IGRvY3VtZW50KCktPmJvZHlPckZyYW1lc2V0KCkp
Ci0gICAgICAgIGJvZHktPmFwcGVuZENoaWxkKG1fdGFibGVFbGVtZW50LCBJR05PUkVfRVhDRVBU
SU9OKTsKKyAgICAgICAgYm9keS0+YXBwZW5kQ2hpbGQoKm1fdGFibGVFbGVtZW50LCBJR05PUkVf
RVhDRVBUSU9OKTsKICAgICBlbHNlCi0gICAgICAgIGRvY3VtZW50KCktPmFwcGVuZENoaWxkKG1f
dGFibGVFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgZG9jdW1lbnQoKS0+YXBw
ZW5kQ2hpbGQoKm1fdGFibGVFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKIAogICAgIHJldHVy
biB0cnVlOwogfQpAQCAtMzI1LDE2ICszMjUsMTYgQEAgdm9pZCBGVFBEaXJlY3RvcnlEb2N1bWVu
dFBhcnNlcjo6Y3JlYXRlQmFzaWNEb2N1bWVudCgpCiAKICAgICAvLyBGSVhNRTogTWFrZSB0aGlz
ICJiYXNpYyBkb2N1bWVudCIgbW9yZSBhY2NlcHRhYmxlCiAKLSAgICBSZWZQdHI8RWxlbWVudD4g
Ym9keUVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KGJvZHlUYWcsIGZhbHNlKTsK
KyAgICBSZWY8RWxlbWVudD4gYm9keUVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50
KGJvZHlUYWcsIGZhbHNlKTsKIAotICAgIGRvY3VtZW50KCktPmFwcGVuZENoaWxkKGJvZHlFbGVt
ZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBkb2N1bWVudCgpLT5hcHBlbmRDaGlsZChib2R5
RWxlbWVudC5jb3B5UmVmKCksIElHTk9SRV9FWENFUFRJT04pOwogCi0gICAgUmVmUHRyPEVsZW1l
bnQ+IHRhYmxlRWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQodGFibGVUYWcsIGZh
bHNlKTsKLSAgICBtX3RhYmxlRWxlbWVudCA9IGRvd25jYXN0PEhUTUxUYWJsZUVsZW1lbnQ+KHRh
YmxlRWxlbWVudC5nZXQoKSk7CisgICAgUmVmPEVsZW1lbnQ+IHRhYmxlRWxlbWVudCA9IGRvY3Vt
ZW50KCktPmNyZWF0ZUVsZW1lbnQodGFibGVUYWcsIGZhbHNlKTsKKyAgICBtX3RhYmxlRWxlbWVu
dCA9IGRvd25jYXN0PEhUTUxUYWJsZUVsZW1lbnQ+KHRhYmxlRWxlbWVudC5wdHIoKSk7CiAgICAg
bV90YWJsZUVsZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmlkQXR0ciwgImZ0cERpcmVj
dG9yeVRhYmxlIik7CiAgICAgbV90YWJsZUVsZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6
OnN0eWxlQXR0ciwgIndpZHRoOjEwMCUiKTsKIAotICAgIGJvZHlFbGVtZW50LT5hcHBlbmRDaGls
ZChtX3RhYmxlRWxlbWVudCwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgYm9keUVsZW1lbnQtPmFw
cGVuZENoaWxkKFdURjo6bW92ZSh0YWJsZUVsZW1lbnQpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAog
ICAgIGRvY3VtZW50KCktPnByb2Nlc3NWaWV3cG9ydCgid2lkdGg9ZGV2aWNlLXdpZHRoIiwgVmll
d3BvcnRBcmd1bWVudHM6OlZpZXdwb3J0TWV0YSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxEZXRhaWxzRWxlbWVudC5jcHAKaW5kZXggNDMwMjEyYzFhYjgwNzA5MTYzZTU0ZjUzZDFkYmMy
ZjdjYWRhOGIxZi4uNDhjYzliODQ4ZTU0MTdhYzc5ZmE2NTAxOWU0ODcwNWUxNzEyN2EwOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcApAQCAtOTAsMTEgKzkw
LDExIEBAIHByaXZhdGU6CiAKIFJlZjxEZXRhaWxzU3VtbWFyeUVsZW1lbnQ+IERldGFpbHNTdW1t
YXJ5RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBSZWZQdHI8SFRN
TFN1bW1hcnlFbGVtZW50PiBzdW1tYXJ5ID0gSFRNTFN1bW1hcnlFbGVtZW50OjpjcmVhdGUoc3Vt
bWFyeVRhZywgZG9jdW1lbnQpOworICAgIFJlZjxIVE1MU3VtbWFyeUVsZW1lbnQ+IHN1bW1hcnkg
PSBIVE1MU3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZShzdW1tYXJ5VGFnLCBkb2N1bWVudCk7CiAgICAg
c3VtbWFyeS0+YXBwZW5kQ2hpbGQoVGV4dDo6Y3JlYXRlKGRvY3VtZW50LCBkZWZhdWx0RGV0YWls
c1N1bW1hcnlUZXh0KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAogICAgIFJlZjxEZXRhaWxz
U3VtbWFyeUVsZW1lbnQ+IGRldGFpbHNTdW1tYXJ5ID0gYWRvcHRSZWYoKm5ldyBEZXRhaWxzU3Vt
bWFyeUVsZW1lbnQoZG9jdW1lbnQpKTsKLSAgICBkZXRhaWxzU3VtbWFyeS0+YXBwZW5kQ2hpbGQo
c3VtbWFyeSk7CisgICAgZGV0YWlsc1N1bW1hcnktPmFwcGVuZENoaWxkKFdURjo6bW92ZShzdW1t
YXJ5KSk7CiAgICAgcmV0dXJuIGRldGFpbHNTdW1tYXJ5OwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEVsZW1lbnQuY3BwCmluZGV4IDUyMGNlMDNlNzBjYzdhZDc4NmNiNTM3YTc3MzA5OTdmODYyM2Mz
NWUuLjVjMzc3ZGFlZTM5NmZhNjBmYTM0MWRkYmY2YTk2OTc3Mzc4MGE2YjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC01ODQsOSArNTg0LDkgQEAgdm9pZCBIVE1MRWxlbWVu
dDo6c2V0SW5uZXJUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAK
ICAgICAvLyBBZGQgdGV4dCBub2RlcyBhbmQgPGJyPiBlbGVtZW50cy4KICAgICBlYyA9IDA7Ci0g
ICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gdGV4dFRvRnJhZ21lbnQodGV4
dCwgZWMpOworICAgIFJlZjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IHRleHRUb0ZyYWdt
ZW50KHRleHQsIGVjKTsKICAgICBpZiAoIWVjKQotICAgICAgICByZXBsYWNlQ2hpbGRyZW5XaXRo
RnJhZ21lbnQoKnRoaXMsIGZyYWdtZW50LnJlbGVhc2UoKSwgZWMpOworICAgICAgICByZXBsYWNl
Q2hpbGRyZW5XaXRoRnJhZ21lbnQoKnRoaXMsIFdURjo6bW92ZShmcmFnbWVudCksIGVjKTsKIH0K
IAogdm9pZCBIVE1MRWxlbWVudDo6c2V0T3V0ZXJUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCkBAIC02MjEsNyArNjIxLDcgQEAgdm9pZCBIVE1MRWxlbWVudDo6c2V0
T3V0ZXJUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAg
IGVjID0gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJu
OwotICAgIHBhcmVudC0+cmVwbGFjZUNoaWxkKG5ld0NoaWxkLnJlbGVhc2UoKSwgdGhpcywgZWMp
OworICAgIHBhcmVudC0+cmVwbGFjZUNoaWxkKG5ld0NoaWxkLnJlbGVhc2VOb25OdWxsKCksICp0
aGlzLCBlYyk7CiAKICAgICBSZWZQdHI8Tm9kZT4gbm9kZSA9IG5leHQgPyBuZXh0LT5wcmV2aW91
c1NpYmxpbmcoKSA6IG51bGxwdHI7CiAgICAgaWYgKCFlYyAmJiBpczxUZXh0Pihub2RlLmdldCgp
KSkKQEAgLTYzMCw3ICs2MzAsNyBAQCB2b2lkIEhUTUxFbGVtZW50OjpzZXRPdXRlclRleHQoY29u
c3QgU3RyaW5nJiB0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgbWVyZ2VXaXRoTmV4
dFRleHROb2RlKGRvd25jYXN0PFRleHQ+KCpwcmV2KSwgZWMpOwogfQogCi1Ob2RlKiBIVE1MRWxl
bWVudDo6aW5zZXJ0QWRqYWNlbnQoY29uc3QgU3RyaW5nJiB3aGVyZSwgTm9kZSogbmV3Q2hpbGQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQorTm9kZSogSFRNTEVsZW1lbnQ6Omluc2VydEFkamFjZW50KGNv
bnN0IFN0cmluZyYgd2hlcmUsIFJlZjxOb2RlPiYmIG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBl
YykKIHsKICAgICAvLyBJbiBJbnRlcm5ldCBFeHBsb3JlciBpZiB0aGUgZWxlbWVudCBoYXMgbm8g
cGFyZW50IGFuZCB3aGVyZSBpcyAiYmVmb3JlQmVnaW4iIG9yICJhZnRlckVuZCIsCiAgICAgLy8g
YSBkb2N1bWVudCBmcmFnbWVudCBpcyBjcmVhdGVkIGFuZCB0aGUgZWxlbWVudHMgYXBwZW5kZWQg
aW4gdGhlIGNvcnJlY3Qgb3JkZXIuIFRoaXMgZG9jdW1lbnQKQEAgLTY0MSwxOCArNjQxLDE4IEBA
IE5vZGUqIEhUTUxFbGVtZW50OjppbnNlcnRBZGphY2VudChjb25zdCBTdHJpbmcmIHdoZXJlLCBO
b2RlKiBuZXdDaGlsZCwgRXhjZXB0aW9uCiAKICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2Uod2hl
cmUsICJiZWZvcmVCZWdpbiIpKSB7CiAgICAgICAgIENvbnRhaW5lck5vZGUqIHBhcmVudCA9IHRo
aXMtPnBhcmVudE5vZGUoKTsKLSAgICAgICAgcmV0dXJuIChwYXJlbnQgJiYgcGFyZW50LT5pbnNl
cnRCZWZvcmUobmV3Q2hpbGQsIHRoaXMsIGVjKSkgPyBuZXdDaGlsZCA6IG51bGxwdHI7CisgICAg
ICAgIHJldHVybiAocGFyZW50ICYmIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG5ld0NoaWxkLmNvcHlS
ZWYoKSwgdGhpcywgZWMpKSA/IG5ld0NoaWxkLnB0cigpIDogbnVsbHB0cjsKICAgICB9CiAKICAg
ICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2Uod2hlcmUsICJhZnRlckJlZ2luIikpCi0gICAgICAgIHJl
dHVybiBpbnNlcnRCZWZvcmUobmV3Q2hpbGQsIGZpcnN0Q2hpbGQoKSwgZWMpID8gbmV3Q2hpbGQg
OiBudWxscHRyOworICAgICAgICByZXR1cm4gaW5zZXJ0QmVmb3JlKG5ld0NoaWxkLmNvcHlSZWYo
KSwgZmlyc3RDaGlsZCgpLCBlYykgPyBuZXdDaGlsZC5wdHIoKSA6IG51bGxwdHI7CiAKICAgICBp
ZiAoZXF1YWxJZ25vcmluZ0Nhc2Uod2hlcmUsICJiZWZvcmVFbmQiKSkKLSAgICAgICAgcmV0dXJu
IGFwcGVuZENoaWxkKG5ld0NoaWxkLCBlYykgPyBuZXdDaGlsZCA6IG51bGxwdHI7CisgICAgICAg
IHJldHVybiBhcHBlbmRDaGlsZChuZXdDaGlsZC5jb3B5UmVmKCksIGVjKSA/IG5ld0NoaWxkLnB0
cigpIDogbnVsbHB0cjsKIAogICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh3aGVyZSwgImFmdGVy
RW5kIikpIHsKICAgICAgICAgQ29udGFpbmVyTm9kZSogcGFyZW50ID0gdGhpcy0+cGFyZW50Tm9k
ZSgpOwotICAgICAgICByZXR1cm4gKHBhcmVudCAmJiBwYXJlbnQtPmluc2VydEJlZm9yZShuZXdD
aGlsZCwgbmV4dFNpYmxpbmcoKSwgZWMpKSA/IG5ld0NoaWxkIDogbnVsbHB0cjsKKyAgICAgICAg
cmV0dXJuIChwYXJlbnQgJiYgcGFyZW50LT5pbnNlcnRCZWZvcmUobmV3Q2hpbGQuY29weVJlZigp
LCBuZXh0U2libGluZygpLCBlYykpID8gbmV3Q2hpbGQucHRyKCkgOiBudWxscHRyOwogICAgIH0K
ICAgICAKICAgICAvLyBJRSB0aHJvd3MgQ09NIEV4Y2VwdGlvbiBFX0lOVkFMSURBUkc7IHRoaXMg
aXMgdGhlIGJlc3QgRE9NIGV4Y2VwdGlvbiBhbHRlcm5hdGl2ZS4KQEAgLTY2OCw3ICs2NjgsNyBA
QCBFbGVtZW50KiBIVE1MRWxlbWVudDo6aW5zZXJ0QWRqYWNlbnRFbGVtZW50KGNvbnN0IFN0cmlu
ZyYgd2hlcmUsIEVsZW1lbnQqIG5ld0NoaQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9
CiAKLSAgICBOb2RlKiByZXR1cm5WYWx1ZSA9IGluc2VydEFkamFjZW50KHdoZXJlLCBuZXdDaGls
ZCwgZWMpOworICAgIE5vZGUqIHJldHVyblZhbHVlID0gaW5zZXJ0QWRqYWNlbnQod2hlcmUsICpu
ZXdDaGlsZCwgZWMpOwogICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFyZXR1
cm5WYWx1ZSB8fCBpczxFbGVtZW50PigqcmV0dXJuVmFsdWUpKTsKICAgICByZXR1cm4gZG93bmNh
c3Q8RWxlbWVudD4ocmV0dXJuVmFsdWUpOyAKIH0KQEAgLTY5OSwxMyArNjk5LDEyIEBAIHZvaWQg
SFRNTEVsZW1lbnQ6Omluc2VydEFkamFjZW50SFRNTChjb25zdCBTdHJpbmcmIHdoZXJlLCBjb25z
dCBTdHJpbmcmIG1hcmt1cCwKICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQg
PSBjcmVhdGVGcmFnbWVudEZvcklubmVyT3V0ZXJIVE1MKG1hcmt1cCwgY29udGV4dEVsZW1lbnQs
IEFsbG93U2NyaXB0aW5nQ29udGVudCwgZWMpOwogICAgIGlmICghZnJhZ21lbnQpCiAgICAgICAg
IHJldHVybjsKLSAgICBpbnNlcnRBZGphY2VudCh3aGVyZSwgZnJhZ21lbnQuZ2V0KCksIGVjKTsK
KyAgICBpbnNlcnRBZGphY2VudCh3aGVyZSwgZnJhZ21lbnQucmVsZWFzZU5vbk51bGwoKSwgZWMp
OwogfQogCiB2b2lkIEhUTUxFbGVtZW50OjppbnNlcnRBZGphY2VudFRleHQoY29uc3QgU3RyaW5n
JiB3aGVyZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBS
ZWZQdHI8VGV4dD4gdGV4dE5vZGUgPSBkb2N1bWVudCgpLmNyZWF0ZVRleHROb2RlKHRleHQpOwot
ICAgIGluc2VydEFkamFjZW50KHdoZXJlLCB0ZXh0Tm9kZS5nZXQoKSwgZWMpOworICAgIGluc2Vy
dEFkamFjZW50KHdoZXJlLCBkb2N1bWVudCgpLmNyZWF0ZVRleHROb2RlKHRleHQpLCBlYyk7CiB9
CiAKIHZvaWQgSFRNTEVsZW1lbnQ6OmFwcGx5QWxpZ25tZW50QXR0cmlidXRlVG9TdHlsZShjb25z
dCBBdG9taWNTdHJpbmcmIGFsaWdubWVudCwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgc3R5bGUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKaW5kZXggMzBlMzc3NWEwMDRlMzFiZWFlODM1Y2Y2
OTBjYjQwOWIxZGZlYjc3YS4uNzBkNDk2MWNlZDJkY2U5NmQ0NTU0ZWMxNjY2OTBkMGQ4NWMwNjNl
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaApAQCAtMTMwLDcgKzEzMCw3IEBAIHByaXZh
dGU6CiAKICAgICB2aXJ0dWFsIEhUTUxGb3JtRWxlbWVudCogdmlydHVhbEZvcm0oKSBjb25zdDsK
IAotICAgIE5vZGUqIGluc2VydEFkamFjZW50KGNvbnN0IFN0cmluZyYgd2hlcmUsIE5vZGUqIG5l
d0NoaWxkLCBFeGNlcHRpb25Db2RlJik7CisgICAgTm9kZSogaW5zZXJ0QWRqYWNlbnQoY29uc3Qg
U3RyaW5nJiB3aGVyZSwgUmVmPE5vZGU+JiYgbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmKTsKICAg
ICBSZWY8RG9jdW1lbnRGcmFnbWVudD4gdGV4dFRvRnJhZ21lbnQoY29uc3QgU3RyaW5nJiwgRXhj
ZXB0aW9uQ29kZSYpOwogCiAgICAgdm9pZCBkaXJBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IEF0b21p
Y1N0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKaW5kZXgg
YjJhMjc3YTU1OWJhMzVkMWYzOTU1ZjQyODNjN2M4MjkxMzRiMGEwNi4uYTRhNzNjYTZiNjA5N2Rj
NzhiZDY5ZjNiYjQxMjFlNGQyN2RlZDRiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFn
ZUVsZW1lbnQuY3BwCkBAIC01MDQsNyArNTA0LDcgQEAgdm9pZCBIVE1MSW1hZ2VFbGVtZW50Ojpj
cmVhdGVJbWFnZUNvbnRyb2xzKCkKICAgICBpZiAoIWltYWdlQ29udHJvbHMpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKS5hcHBlbmRDaGlsZChpbWFn
ZUNvbnRyb2xzKTsKKyAgICBlbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCkuYXBwZW5kQ2hpbGQo
aW1hZ2VDb250cm9scy5yZWxlYXNlTm9uTnVsbCgpKTsKIAogICAgIGF1dG8qIHJlbmRlck9iamVj
dCA9IHJlbmRlcmVyKCk7CiAgICAgaWYgKCFyZW5kZXJPYmplY3QpCkBAIC01MjEsNyArNTIxLDcg
QEAgdm9pZCBIVE1MSW1hZ2VFbGVtZW50OjpkZXN0cm95SW1hZ2VDb250cm9scygpCiAKICAgICBp
ZiAoTm9kZSogbm9kZSA9IHNoYWRvd1Jvb3QtPmZpcnN0Q2hpbGQoKSkgewogICAgICAgICBBU1NF
UlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihub2RlLT5pc0ltYWdlQ29udHJvbHNSb290RWxl
bWVudCgpKTsKLSAgICAgICAgc2hhZG93Um9vdC0+cmVtb3ZlQ2hpbGQobm9kZSk7CisgICAgICAg
IHNoYWRvd1Jvb3QtPnJlbW92ZUNoaWxkKCpub2RlKTsKICAgICB9CiAKICAgICBhdXRvKiByZW5k
ZXJPYmplY3QgPSByZW5kZXJlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MS2V5Z2VuRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVt
ZW50LmNwcAppbmRleCBlN2Q5MTQ4MjVjNWViODExNGQ5YjJlZWExZmRjZjAzMDI2YWEwYmEyLi40
YTYzYjAwYTRhNDEzNGI1OGNmMjQ1ZmViNjkyZjhhNDY2MTZiZjE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcApAQCAtNTgsNyArNTgsNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgfQogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgUmVmUHRyPEVsZW1lbnQ+IGNsb25lRWxl
bWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50
KSBvdmVycmlkZQorICAgIHZpcnR1YWwgUmVmPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRB
dHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50KSBvdmVycmlkZQog
ICAgIHsKICAgICAgICAgcmV0dXJuIGNyZWF0ZSh0YXJnZXREb2N1bWVudCk7CiAgICAgfQpAQCAt
NzMsMTQgKzczLDE0IEBAIGlubGluZSBIVE1MS2V5Z2VuRWxlbWVudDo6SFRNTEtleWdlbkVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lCiAgICAgVmVjdG9yPFN0cmlu
Zz4ga2V5czsKICAgICBnZXRTdXBwb3J0ZWRLZXlTaXplcyhrZXlzKTsKIAotICAgIFJlZlB0cjxI
VE1MU2VsZWN0RWxlbWVudD4gc2VsZWN0ID0gS2V5Z2VuU2VsZWN0RWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50KTsKKyAgICBSZWY8SFRNTFNlbGVjdEVsZW1lbnQ+IHNlbGVjdCA9IEtleWdlblNlbGVj
dEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBr
ZXlzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIFJlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gb3B0
aW9uID0gSFRNTE9wdGlvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgICAgIHNlbGVj
dC0+YXBwZW5kQ2hpbGQob3B0aW9uLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgUmVmPEhU
TUxPcHRpb25FbGVtZW50PiBvcHRpb24gPSBIVE1MT3B0aW9uRWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KTsKKyAgICAgICAgc2VsZWN0LT5hcHBlbmRDaGlsZChvcHRpb24uY29weVJlZigpLCBJR05P
UkVfRVhDRVBUSU9OKTsKICAgICAgICAgb3B0aW9uLT5hcHBlbmRDaGlsZChUZXh0OjpjcmVhdGUo
ZG9jdW1lbnQsIGtleXNbaV0pLCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICB9CiAKLSAgICBlbnN1
cmVVc2VyQWdlbnRTaGFkb3dSb290KCkuYXBwZW5kQ2hpbGQoc2VsZWN0LCBJR05PUkVfRVhDRVBU
SU9OKTsKKyAgICBlbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCkuYXBwZW5kQ2hpbGQoV1RGOjpt
b3ZlKHNlbGVjdCksIElHTk9SRV9FWENFUFRJT04pOwogfQogCiBSZWY8SFRNTEtleWdlbkVsZW1l
bnQ+IEhUTUxLZXlnZW5FbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcAppbmRleCAyMmIyZjM5ODFlMzk1MjM3OTNmNWUy
YjMxZTZjYzVkMjhiZmE3NzgwLi5lNWUzZGUwMzY4MzgxNTQ1ZWE3ODUwYzA4Zjk2YTdmMWJjMDc1
OTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAKQEAgLTIyOSwx
NiArMjI5LDE2IEBAIHZvaWQgSFRNTE1ldGVyRWxlbWVudDo6ZGlkQWRkVXNlckFnZW50U2hhZG93
Um9vdChTaGFkb3dSb290KiByb290KQogewogICAgIEFTU0VSVCghbV92YWx1ZSk7CiAKLSAgICBS
ZWZQdHI8TWV0ZXJJbm5lckVsZW1lbnQ+IGlubmVyID0gTWV0ZXJJbm5lckVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCgpKTsKLSAgICByb290LT5hcHBlbmRDaGlsZChpbm5lcik7CisgICAgUmVmPE1l
dGVySW5uZXJFbGVtZW50PiBpbm5lciA9IE1ldGVySW5uZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQoKSk7CisgICAgcm9vdC0+YXBwZW5kQ2hpbGQoaW5uZXIuY29weVJlZigpKTsKIAotICAgIFJl
ZlB0cjxNZXRlckJhckVsZW1lbnQ+IGJhciA9IE1ldGVyQmFyRWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KCkpOworICAgIFJlZjxNZXRlckJhckVsZW1lbnQ+IGJhciA9IE1ldGVyQmFyRWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50KCkpOwogICAgIG1fdmFsdWUgPSBNZXRlclZhbHVlRWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50KCkpOwogICAgIG1fdmFsdWUtPnNldFdpZHRoUGVyY2VudGFnZSgwKTsKICAg
ICBtX3ZhbHVlLT51cGRhdGVQc2V1ZG8oKTsKLSAgICBiYXItPmFwcGVuZENoaWxkKG1fdmFsdWUs
IEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIGJhci0+YXBwZW5kQ2hpbGQoKm1fdmFsdWUsIEFT
U0VSVF9OT19FWENFUFRJT04pOwogCi0gICAgaW5uZXItPmFwcGVuZENoaWxkKGJhciwgQVNTRVJU
X05PX0VYQ0VQVElPTik7CisgICAgaW5uZXItPmFwcGVuZENoaWxkKFdURjo6bW92ZShiYXIpLCBB
U1NFUlRfTk9fRVhDRVBUSU9OKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKaW5kZXggMmRmZmYyNjM1M2VmOTFmNDgxMGNlMTg3
NzcwNmFkYzk1MGZjMzZhZS4uZWQ5Y2FlYTE1YTYyMTMzODJjMjBkMWRmNjc0Y2FhOGUyYTlmMjJi
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKQEAgLTcxLDEy
ICs3MSwxMiBAQCBSZWZQdHI8SFRNTE9wdGlvbkVsZW1lbnQ+IEhUTUxPcHRpb25FbGVtZW50Ojpj
cmVhdGVGb3JKU0NvbnN0cnVjdG9yKERvY3VtZW50JiBkbwogewogICAgIFJlZlB0cjxIVE1MT3B0
aW9uRWxlbWVudD4gZWxlbWVudCA9IGFkb3B0UmVmKG5ldyBIVE1MT3B0aW9uRWxlbWVudChvcHRp
b25UYWcsIGRvY3VtZW50KSk7CiAKLSAgICBSZWZQdHI8VGV4dD4gdGV4dCA9IFRleHQ6OmNyZWF0
ZShkb2N1bWVudCwgZGF0YS5pc051bGwoKSA/ICIiIDogZGF0YSk7CisgICAgUmVmPFRleHQ+IHRl
eHQgPSBUZXh0OjpjcmVhdGUoZG9jdW1lbnQsIGRhdGEuaXNOdWxsKCkgPyAiIiA6IGRhdGEpOwog
CiAgICAgZWMgPSAwOwotICAgIGVsZW1lbnQtPmFwcGVuZENoaWxkKHRleHQucmVsZWFzZSgpLCBl
Yyk7CisgICAgZWxlbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHRleHQpLCBlYyk7CiAgICAg
aWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAg
ICBpZiAoIXZhbHVlLmlzTnVsbCgpKQogICAgICAgICBlbGVtZW50LT5zZXRWYWx1ZSh2YWx1ZSk7
CkBAIC04NCw3ICs4NCw3IEBAIFJlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gSFRNTE9wdGlvbkVs
ZW1lbnQ6OmNyZWF0ZUZvckpTQ29uc3RydWN0b3IoRG9jdW1lbnQmIGRvCiAgICAgICAgIGVsZW1l
bnQtPnNldEF0dHJpYnV0ZShzZWxlY3RlZEF0dHIsIGVtcHR5QXRvbSk7CiAgICAgZWxlbWVudC0+
c2V0U2VsZWN0ZWQoc2VsZWN0ZWQpOwogCi0gICAgcmV0dXJuIGVsZW1lbnQucmVsZWFzZSgpOwor
ICAgIHJldHVybiBlbGVtZW50OwogfQogCiBib29sIEhUTUxPcHRpb25FbGVtZW50Ojppc0ZvY3Vz
YWJsZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVz
c0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNw
cAppbmRleCA4N2YwZTM3MGNhMDJjM2FjOWJiMTQ2ZmI5YmQwNzZlYmI0YTQ4NTM1Li5kYjdkMDZh
OGI3OTMwNTIzZWFjNjljOTA3ZTQ3ZGM0ODI5NzMyYzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAKQEAgLTE0OSwxNiArMTQ5LDE2IEBAIHZvaWQgSFRN
TFByb2dyZXNzRWxlbWVudDo6ZGlkQWRkVXNlckFnZW50U2hhZG93Um9vdChTaGFkb3dSb290KiBy
b290KQogewogICAgIEFTU0VSVCghbV92YWx1ZSk7CiAKLSAgICBSZWZQdHI8UHJvZ3Jlc3NJbm5l
ckVsZW1lbnQ+IGlubmVyID0gUHJvZ3Jlc3NJbm5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgp
KTsKLSAgICByb290LT5hcHBlbmRDaGlsZChpbm5lcik7CisgICAgUmVmPFByb2dyZXNzSW5uZXJF
bGVtZW50PiBpbm5lciA9IFByb2dyZXNzSW5uZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7
CisgICAgcm9vdC0+YXBwZW5kQ2hpbGQoaW5uZXIuY29weVJlZigpKTsKIAotICAgIFJlZlB0cjxQ
cm9ncmVzc0JhckVsZW1lbnQ+IGJhciA9IFByb2dyZXNzQmFyRWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KCkpOwotICAgIFJlZlB0cjxQcm9ncmVzc1ZhbHVlRWxlbWVudD4gdmFsdWUgPSBQcm9ncmVz
c1ZhbHVlRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwotICAgIG1fdmFsdWUgPSB2YWx1ZS5n
ZXQoKTsKKyAgICBSZWY8UHJvZ3Jlc3NCYXJFbGVtZW50PiBiYXIgPSBQcm9ncmVzc0JhckVsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKKyAgICBSZWY8UHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ+IHZh
bHVlID0gUHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKKyAgICBtX3Zh
bHVlID0gdmFsdWUucHRyKCk7CiAgICAgbV92YWx1ZS0+c2V0V2lkdGhQZXJjZW50YWdlKEhUTUxQ
cm9ncmVzc0VsZW1lbnQ6OkluZGV0ZXJtaW5hdGVQb3NpdGlvbiAqIDEwMCk7Ci0gICAgYmFyLT5h
cHBlbmRDaGlsZChtX3ZhbHVlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBiYXItPmFwcGVu
ZENoaWxkKCptX3ZhbHVlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAotICAgIGlubmVyLT5hcHBl
bmRDaGlsZChiYXIsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIGlubmVyLT5hcHBlbmRDaGls
ZChXVEY6Om1vdmUoYmFyKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiB9CiAKIGJvb2wgSFRNTFBy
b2dyZXNzRWxlbWVudDo6c2hvdWxkQXBwZWFySW5kZXRlcm1pbmF0ZSgpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDY5NTExNDY2ODA0OTE0Yjdh
YjIwOWZiZTk2MWM1YmY4MzJlMTA3YTcuLmUxM2E1Y2RkY2NhMmNiM2I3NTZhOGQzYTU3ZTIzZjgw
YTliNDNlNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCkBA
IC0xNjksOSArMTY5LDkgQEAgdm9pZCBIVE1MU2NyaXB0RWxlbWVudDo6ZGlzcGF0Y2hMb2FkRXZl
bnQoKQogICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkubG9hZEV2
ZW50LCBmYWxzZSwgZmFsc2UpKTsKIH0KIAotUmVmUHRyPEVsZW1lbnQ+IEhUTUxTY3JpcHRFbGVt
ZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3VtZW50JiB0
YXJnZXREb2N1bWVudCkKK1JlZjxFbGVtZW50PiBIVE1MU2NyaXB0RWxlbWVudDo6Y2xvbmVFbGVt
ZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MU2NyaXB0RWxlbWVudCh0YWdRTmFtZSgp
LCB0YXJnZXREb2N1bWVudCwgZmFsc2UsIGFscmVhZHlTdGFydGVkKCkpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBIVE1MU2NyaXB0RWxlbWVudCh0YWdRTmFtZSgpLCB0YXJnZXREb2N1bWVu
dCwgZmFsc2UsIGFscmVhZHlTdGFydGVkKCkpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU2NyaXB0RWxlbWVudC5oCmluZGV4IGUzOWMxMGNhNWU4NmMzNjZhNTM4ZDE3YzY2NDRiM2Ey
NGQxMzgyMDkuLjMxMmM2NjI2ZThiODMxNGU4NWUyZGY2ODdkYmYwOWYyYjJmZTM3YjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKQEAgLTY1LDcgKzY1LDcgQEAgcHJp
dmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaExvYWRFdmVudCgpIG92ZXJyaWRlOwog
Ci0gICAgdmlydHVhbCBSZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0
ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPEVsZW1l
bnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmKSBv
dmVycmlkZTsKIH07CiAKIH0gLy9uYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2Vs
ZWN0RWxlbWVudC5jcHAKaW5kZXggZWI3Mzk0NTM1ZDQ5NjM1MzQ2YzY1ODJkMTc1OTZkM2Q0M2Yw
Nzk1ZS4uNGYxMDQ1ODAxMzIyNzNmZGVkZjEyNTc4ZDRiMWJiNjEwZWNjYWYwNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKQEAgLTIyNyw3ICsyMjcsNyBAQCB2
b2lkIEhUTUxTZWxlY3RFbGVtZW50OjphZGQoSFRNTEVsZW1lbnQqIGVsZW1lbnQsIEhUTUxFbGVt
ZW50KiBiZWZvcmVFbGVtZW50LCBFeAogICAgIC8vIE1ha2Ugc3VyZSB0aGUgZWxlbWVudCBpcyBy
ZWYnZCBhbmQgZGVyZWYnZCBzbyB3ZSBkb24ndCBsZWFrIGl0LgogICAgIFJlZjxIVE1MRWxlbWVu
dD4gcHJvdGVjdE5ld0NoaWxkKCplbGVtZW50KTsKIAotICAgIGluc2VydEJlZm9yZShlbGVtZW50
LCBiZWZvcmVFbGVtZW50LCBlYyk7CisgICAgaW5zZXJ0QmVmb3JlKCplbGVtZW50LCBiZWZvcmVF
bGVtZW50LCBlYyk7CiAgICAgdXBkYXRlVmFsaWRpdHkoKTsKIH0KIApAQCAtNDg2LDEyICs0ODYs
MTIgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6c2V0TGVuZ3RoKHVuc2lnbmVkIG5ld0xlbiwg
RXhjZXB0aW9uQ29kZSYgZWMpCiAKICAgICAgICAgLy8gUmVtb3ZpbmcgY2hpbGRyZW4gZmlyZXMg
bXV0YXRpb24gZXZlbnRzLCB3aGljaCBtaWdodCBtdXRhdGUgdGhlIERPTSBmdXJ0aGVyLCBzbyB3
ZSBmaXJzdCBjb3B5IG91dCBhIGxpc3QKICAgICAgICAgLy8gb2YgZWxlbWVudHMgdGhhdCB3ZSBp
bnRlbmQgdG8gcmVtb3ZlIHRoZW4gYXR0ZW1wdCB0byByZW1vdmUgdGhlbSBvbmUgYXQgYSB0aW1l
LgotICAgICAgICBWZWN0b3I8UmVmUHRyPEVsZW1lbnQ+PiBpdGVtc1RvUmVtb3ZlOworICAgICAg
ICBWZWN0b3I8UmVmPEVsZW1lbnQ+PiBpdGVtc1RvUmVtb3ZlOwogICAgICAgICBzaXplX3Qgb3B0
aW9uSW5kZXggPSAwOwogICAgICAgICBmb3IgKGF1dG8mIGl0ZW0gOiBpdGVtcykgewogICAgICAg
ICAgICAgaWYgKGlzPEhUTUxPcHRpb25FbGVtZW50PigqaXRlbSkgJiYgb3B0aW9uSW5kZXgrKyA+
PSBuZXdMZW4pIHsKICAgICAgICAgICAgICAgICBBU1NFUlQoaXRlbS0+cGFyZW50Tm9kZSgpKTsK
LSAgICAgICAgICAgICAgICBpdGVtc1RvUmVtb3ZlLmFwcGVuZChpdGVtKTsKKyAgICAgICAgICAg
ICAgICBpdGVtc1RvUmVtb3ZlLmFwcGVuZCgqaXRlbSk7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAKaW5kZXggY2ZiNGRl
M2ZhMzY3ODAyYTMwMzFkNmFlOGU4NWZiMzhlZDRhYmIwNi4uY2Y5ZTlhNWYyZmE1NzVlOGZmOGRm
OGZjM2QwMzAyMThjMTU0ODExYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGFibGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1l
bnQuY3BwCkBAIC04MSw3ICs4MSw3IEBAIHZvaWQgSFRNTFRhYmxlRWxlbWVudDo6c2V0Q2FwdGlv
bihQYXNzUmVmUHRyPEhUTUxUYWJsZUNhcHRpb25FbGVtZW50PiBuZXdDYXB0aW9uCiB7CiAgICAg
ZGVsZXRlQ2FwdGlvbigpOwogICAgIGlmIChuZXdDYXB0aW9uKQotICAgICAgICBpbnNlcnRCZWZv
cmUobmV3Q2FwdGlvbiwgZmlyc3RDaGlsZCgpLCBlYyk7CisgICAgICAgIGluc2VydEJlZm9yZSgq
bmV3Q2FwdGlvbiwgZmlyc3RDaGlsZCgpLCBlYyk7CiB9CiAKIEhUTUxUYWJsZVNlY3Rpb25FbGVt
ZW50KiBIVE1MVGFibGVFbGVtZW50Ojp0SGVhZCgpIGNvbnN0CkBAIC0xMTAsNyArMTEwLDcgQEAg
dm9pZCBIVE1MVGFibGVFbGVtZW50OjpzZXRUSGVhZChQYXNzUmVmUHRyPEhUTUxUYWJsZVNlY3Rp
b25FbGVtZW50PiBuZXdIZWFkLCBFeGMKICAgICAgICAgaWYgKGNoaWxkLT5pc0VsZW1lbnROb2Rl
KCkgJiYgIWNoaWxkLT5oYXNUYWdOYW1lKGNhcHRpb25UYWcpICYmICFjaGlsZC0+aGFzVGFnTmFt
ZShjb2xncm91cFRhZykpCiAgICAgICAgICAgICBicmVhazsKIAotICAgIGluc2VydEJlZm9yZShu
ZXdIZWFkLCBjaGlsZCwgZWMpOworICAgIGluc2VydEJlZm9yZSgqbmV3SGVhZCwgY2hpbGQsIGVj
KTsKIH0KIAogSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqIEhUTUxUYWJsZUVsZW1lbnQ6OnRGb290
KCkgY29uc3QKQEAgLTEzOSw1NyArMTM5LDYwIEBAIHZvaWQgSFRNTFRhYmxlRWxlbWVudDo6c2V0
VEZvb3QoUGFzc1JlZlB0cjxIVE1MVGFibGVTZWN0aW9uRWxlbWVudD4gbmV3Rm9vdCwgRXhjCiAg
ICAgICAgIGlmIChjaGlsZC0+aXNFbGVtZW50Tm9kZSgpICYmICFjaGlsZC0+aGFzVGFnTmFtZShj
YXB0aW9uVGFnKSAmJiAhY2hpbGQtPmhhc1RhZ05hbWUoY29sZ3JvdXBUYWcpICYmICFjaGlsZC0+
aGFzVGFnTmFtZSh0aGVhZFRhZykpCiAgICAgICAgICAgICBicmVhazsKIAotICAgIGluc2VydEJl
Zm9yZShuZXdGb290LCBjaGlsZCwgZWMpOworICAgIGluc2VydEJlZm9yZSgqbmV3Rm9vdCwgY2hp
bGQsIGVjKTsKIH0KIAotUmVmUHRyPEhUTUxFbGVtZW50PiBIVE1MVGFibGVFbGVtZW50OjpjcmVh
dGVUSGVhZCgpCitSZWY8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+IEhUTUxUYWJsZUVsZW1lbnQ6
OmNyZWF0ZVRIZWFkKCkKIHsKICAgICBpZiAoSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqIGV4aXN0
aW5nSGVhZCA9IHRIZWFkKCkpCi0gICAgICAgIHJldHVybiBleGlzdGluZ0hlYWQ7Ci0gICAgUmVm
UHRyPEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50PiBoZWFkID0gSFRNTFRhYmxlU2VjdGlvbkVsZW1l
bnQ6OmNyZWF0ZSh0aGVhZFRhZywgZG9jdW1lbnQoKSk7Ci0gICAgc2V0VEhlYWQoaGVhZCwgSUdO
T1JFX0VYQ0VQVElPTik7CisgICAgICAgIHJldHVybiAqZXhpc3RpbmdIZWFkOworICAgIFJlZjxI
VE1MVGFibGVTZWN0aW9uRWxlbWVudD4gaGVhZCA9IEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Ojpj
cmVhdGUodGhlYWRUYWcsIGRvY3VtZW50KCkpOworICAgIHNldFRIZWFkKGhlYWQucHRyKCksIElH
Tk9SRV9FWENFUFRJT04pOwogICAgIHJldHVybiBoZWFkOwogfQogCiB2b2lkIEhUTUxUYWJsZUVs
ZW1lbnQ6OmRlbGV0ZVRIZWFkKCkKIHsKLSAgICByZW1vdmVDaGlsZCh0SGVhZCgpLCBJR05PUkVf
RVhDRVBUSU9OKTsKKyAgICBpZiAoYXV0byogdEhlYWQgPSB0aGlzLT50SGVhZCgpKQorICAgICAg
ICByZW1vdmVDaGlsZCgqdEhlYWQsIElHTk9SRV9FWENFUFRJT04pOwogfQogCi1SZWZQdHI8SFRN
TEVsZW1lbnQ+IEhUTUxUYWJsZUVsZW1lbnQ6OmNyZWF0ZVRGb290KCkKK1JlZjxIVE1MVGFibGVT
ZWN0aW9uRWxlbWVudD4gSFRNTFRhYmxlRWxlbWVudDo6Y3JlYXRlVEZvb3QoKQogewogICAgIGlm
IChIVE1MVGFibGVTZWN0aW9uRWxlbWVudCogZXhpc3RpbmdGb290ID0gdEZvb3QoKSkKLSAgICAg
ICAgcmV0dXJuIGV4aXN0aW5nRm9vdDsKLSAgICBSZWZQdHI8SFRNTFRhYmxlU2VjdGlvbkVsZW1l
bnQ+IGZvb3QgPSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDo6Y3JlYXRlKHRmb290VGFnLCBkb2N1
bWVudCgpKTsKLSAgICBzZXRURm9vdChmb290LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAg
cmV0dXJuICpleGlzdGluZ0Zvb3Q7CisgICAgUmVmPEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50PiBm
b290ID0gSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ6OmNyZWF0ZSh0Zm9vdFRhZywgZG9jdW1lbnQo
KSk7CisgICAgc2V0VEZvb3QoZm9vdC5wdHIoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgcmV0
dXJuIGZvb3Q7CiB9CiAKIHZvaWQgSFRNTFRhYmxlRWxlbWVudDo6ZGVsZXRlVEZvb3QoKQogewot
ICAgIHJlbW92ZUNoaWxkKHRGb290KCksIElHTk9SRV9FWENFUFRJT04pOworICAgIGlmIChhdXRv
KiB0Rm9vdCA9IHRoaXMtPnRGb290KCkpCisgICAgICAgIHJlbW92ZUNoaWxkKCp0Rm9vdCwgSUdO
T1JFX0VYQ0VQVElPTik7CiB9CiAKLVJlZlB0cjxIVE1MRWxlbWVudD4gSFRNTFRhYmxlRWxlbWVu
dDo6Y3JlYXRlVEJvZHkoKQorUmVmPEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50PiBIVE1MVGFibGVF
bGVtZW50OjpjcmVhdGVUQm9keSgpCiB7Ci0gICAgUmVmUHRyPEhUTUxUYWJsZVNlY3Rpb25FbGVt
ZW50PiBib2R5ID0gSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ6OmNyZWF0ZSh0Ym9keVRhZywgZG9j
dW1lbnQoKSk7Ci0gICAgTm9kZSogcmVmZXJlbmNlRWxlbWVudCA9IGxhc3RCb2R5KCkgPyBsYXN0
Qm9keSgpLT5uZXh0U2libGluZygpIDogMDsKLSAgICBpbnNlcnRCZWZvcmUoYm9keSwgcmVmZXJl
bmNlRWxlbWVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgUmVmPEhUTUxUYWJsZVNlY3Rp
b25FbGVtZW50PiBib2R5ID0gSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ6OmNyZWF0ZSh0Ym9keVRh
ZywgZG9jdW1lbnQoKSk7CisgICAgTm9kZSogcmVmZXJlbmNlRWxlbWVudCA9IGxhc3RCb2R5KCkg
PyBsYXN0Qm9keSgpLT5uZXh0U2libGluZygpIDogbnVsbHB0cjsKKyAgICBpbnNlcnRCZWZvcmUo
Ym9keS5jb3B5UmVmKCksIHJlZmVyZW5jZUVsZW1lbnQsIEFTU0VSVF9OT19FWENFUFRJT04pOwog
ICAgIHJldHVybiBib2R5OwogfQogCi1SZWZQdHI8SFRNTEVsZW1lbnQ+IEhUTUxUYWJsZUVsZW1l
bnQ6OmNyZWF0ZUNhcHRpb24oKQorUmVmPEhUTUxUYWJsZUNhcHRpb25FbGVtZW50PiBIVE1MVGFi
bGVFbGVtZW50OjpjcmVhdGVDYXB0aW9uKCkKIHsKICAgICBpZiAoSFRNTFRhYmxlQ2FwdGlvbkVs
ZW1lbnQqIGV4aXN0aW5nQ2FwdGlvbiA9IGNhcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIGV4aXN0
aW5nQ2FwdGlvbjsKLSAgICBSZWZQdHI8SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQ+IGNhcHRpb24g
PSBIVE1MVGFibGVDYXB0aW9uRWxlbWVudDo6Y3JlYXRlKGNhcHRpb25UYWcsIGRvY3VtZW50KCkp
OwotICAgIHNldENhcHRpb24oY2FwdGlvbiwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgICAgIHJl
dHVybiAqZXhpc3RpbmdDYXB0aW9uOworICAgIFJlZjxIVE1MVGFibGVDYXB0aW9uRWxlbWVudD4g
Y2FwdGlvbiA9IEhUTUxUYWJsZUNhcHRpb25FbGVtZW50OjpjcmVhdGUoY2FwdGlvblRhZywgZG9j
dW1lbnQoKSk7CisgICAgc2V0Q2FwdGlvbihjYXB0aW9uLnB0cigpLCBJR05PUkVfRVhDRVBUSU9O
KTsKICAgICByZXR1cm4gY2FwdGlvbjsKIH0KIAogdm9pZCBIVE1MVGFibGVFbGVtZW50OjpkZWxl
dGVDYXB0aW9uKCkKIHsKLSAgICByZW1vdmVDaGlsZChjYXB0aW9uKCksIElHTk9SRV9FWENFUFRJ
T04pOworICAgIGlmIChhdXRvKiBjYXB0aW9uID0gdGhpcy0+Y2FwdGlvbigpKQorICAgICAgICBy
ZW1vdmVDaGlsZCgqY2FwdGlvbiwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CiAKIEhUTUxUYWJsZVNl
Y3Rpb25FbGVtZW50KiBIVE1MVGFibGVFbGVtZW50OjpsYXN0Qm9keSgpIGNvbnN0CkBAIC0yMzQs
MjIgKzIzNywyMiBAQCBSZWZQdHI8SFRNTEVsZW1lbnQ+IEhUTUxUYWJsZUVsZW1lbnQ6Omluc2Vy
dFJvdyhpbnQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIGVsc2UgewogICAgICAgICBw
YXJlbnQgPSBsYXN0Qm9keSgpOwogICAgICAgICBpZiAoIXBhcmVudCkgewotICAgICAgICAgICAg
UmVmUHRyPEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50PiBuZXdCb2R5ID0gSFRNTFRhYmxlU2VjdGlv
bkVsZW1lbnQ6OmNyZWF0ZSh0Ym9keVRhZywgZG9jdW1lbnQoKSk7Ci0gICAgICAgICAgICBSZWZQ
dHI8SFRNTFRhYmxlUm93RWxlbWVudD4gbmV3Um93ID0gSFRNTFRhYmxlUm93RWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50KCkpOwotICAgICAgICAgICAgbmV3Qm9keS0+YXBwZW5kQ2hpbGQobmV3Um93
LCBlYyk7Ci0gICAgICAgICAgICBhcHBlbmRDaGlsZChuZXdCb2R5LnJlbGVhc2UoKSwgZWMpOwot
ICAgICAgICAgICAgcmV0dXJuIG5ld1JvdzsKKyAgICAgICAgICAgIFJlZjxIVE1MVGFibGVTZWN0
aW9uRWxlbWVudD4gbmV3Qm9keSA9IEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50OjpjcmVhdGUodGJv
ZHlUYWcsIGRvY3VtZW50KCkpOworICAgICAgICAgICAgUmVmPEhUTUxUYWJsZVJvd0VsZW1lbnQ+
IG5ld1JvdyA9IEhUTUxUYWJsZVJvd0VsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKKyAgICAg
ICAgICAgIG5ld0JvZHktPmFwcGVuZENoaWxkKG5ld1Jvdy5jb3B5UmVmKCksIGVjKTsKKyAgICAg
ICAgICAgIGFwcGVuZENoaWxkKFdURjo6bW92ZShuZXdCb2R5KSwgZWMpOworICAgICAgICAgICAg
cmV0dXJuIFdURjo6bW92ZShuZXdSb3cpOwogICAgICAgICB9CiAgICAgfQogCi0gICAgUmVmUHRy
PEhUTUxUYWJsZVJvd0VsZW1lbnQ+IG5ld1JvdyA9IEhUTUxUYWJsZVJvd0VsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCgpKTsKLSAgICBwYXJlbnQtPmluc2VydEJlZm9yZShuZXdSb3csIHJvdy5nZXQo
KSwgZWMpOwotICAgIHJldHVybiBuZXdSb3c7CisgICAgUmVmPEhUTUxUYWJsZVJvd0VsZW1lbnQ+
IG5ld1JvdyA9IEhUTUxUYWJsZVJvd0VsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKKyAgICBw
YXJlbnQtPmluc2VydEJlZm9yZShuZXdSb3cuY29weVJlZigpLCByb3cuZ2V0KCksIGVjKTsKKyAg
ICByZXR1cm4gV1RGOjptb3ZlKG5ld1Jvdyk7CiB9CiAKIHZvaWQgSFRNTFRhYmxlRWxlbWVudDo6
ZGVsZXRlUm93KGludCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgSFRNTFRhYmxl
Um93RWxlbWVudCogcm93ID0gMDsKKyAgICBIVE1MVGFibGVSb3dFbGVtZW50KiByb3cgPSBudWxs
cHRyOwogICAgIGlmIChpbmRleCA9PSAtMSkKICAgICAgICAgcm93ID0gSFRNTFRhYmxlUm93c0Nv
bGxlY3Rpb246Omxhc3RSb3coKnRoaXMpOwogICAgIGVsc2UgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUYWJsZUVsZW1lbnQuaAppbmRleCBjZjVmNGEwY2Q0NmNhMzY3NWIyNDBmY2YzMjMwMjM3Mzc1
ZmQzNDJlLi4zMDc1ODM1MjQyODRmODA4ZjUxZmUzODUyYWYxMGVhYjUzMGU0MTdlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuaApAQCAtNDksMTIgKzQ5LDEyIEBAIHB1Ymxp
YzoKICAgICBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCogdEZvb3QoKSBjb25zdDsKICAgICB2b2lk
IHNldFRGb290KFBhc3NSZWZQdHI8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+LCBFeGNlcHRpb25D
b2RlJik7CiAKLSAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZVRIZWFkKCk7CisgICAgUmVm
PEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50PiBjcmVhdGVUSGVhZCgpOwogICAgIHZvaWQgZGVsZXRl
VEhlYWQoKTsKLSAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZVRGb290KCk7CisgICAgUmVm
PEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50PiBjcmVhdGVURm9vdCgpOwogICAgIHZvaWQgZGVsZXRl
VEZvb3QoKTsKLSAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZVRCb2R5KCk7Ci0gICAgUmVm
UHRyPEhUTUxFbGVtZW50PiBjcmVhdGVDYXB0aW9uKCk7CisgICAgUmVmPEhUTUxUYWJsZVNlY3Rp
b25FbGVtZW50PiBjcmVhdGVUQm9keSgpOworICAgIFJlZjxIVE1MVGFibGVDYXB0aW9uRWxlbWVu
dD4gY3JlYXRlQ2FwdGlvbigpOwogICAgIHZvaWQgZGVsZXRlQ2FwdGlvbigpOwogICAgIFJlZlB0
cjxIVE1MRWxlbWVudD4gaW5zZXJ0Um93KEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBpbnNl
cnRSb3coLTEsIGVjKTsgfQogICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gaW5zZXJ0Um93KGludCBp
bmRleCwgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGFibGVSb3dFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93
RWxlbWVudC5jcHAKaW5kZXggYzg3MjU5ZjVlY2I5NmQwYWE2MDQ4ZDRkMTRhZThiNjBmOTNiNjhi
Ni4uZDg4OTNjZDlhMWZmM2I4ZWMzMzQyYjUwOGQ2N2UzMzYzNzY5MzJkYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuY3BwCkBAIC0yOCw3ICsyOCw2IEBACiAj
aW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkdlbmVyaWNDYWNoZWRIVE1MQ29s
bGVjdGlvbi5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgotI2luY2x1ZGUgIkhUTUxUYWJsZUNl
bGxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRhYmxlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhU
TUxUYWJsZVNlY3Rpb25FbGVtZW50LmgiCiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIKQEAgLTExOSwy
NyArMTE4LDI3IEBAIGludCBIVE1MVGFibGVSb3dFbGVtZW50OjpzZWN0aW9uUm93SW5kZXgoKSBj
b25zdAogICAgIHJldHVybiBySW5kZXg7CiB9CiAKLVJlZlB0cjxIVE1MRWxlbWVudD4gSFRNTFRh
YmxlUm93RWxlbWVudDo6aW5zZXJ0Q2VsbChpbnQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQor
UmVmUHRyPEhUTUxUYWJsZUNlbGxFbGVtZW50PiBIVE1MVGFibGVSb3dFbGVtZW50OjppbnNlcnRD
ZWxsKGludCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgUmVmPEhUTUxDb2xsZWN0
aW9uPiBjaGlsZHJlbiA9IGNlbGxzKCk7CiAgICAgaW50IG51bUNlbGxzID0gY2hpbGRyZW4tPmxl
bmd0aCgpOwogICAgIGlmIChpbmRleCA8IC0xIHx8IGluZGV4ID4gbnVtQ2VsbHMpIHsKICAgICAg
ICAgZWMgPSBJTkRFWF9TSVpFX0VSUjsKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIH0KIAotICAgIFJlZlB0cjxIVE1MVGFibGVDZWxsRWxlbWVudD4gY2Vs
bCA9IEhUTUxUYWJsZUNlbGxFbGVtZW50OjpjcmVhdGUodGRUYWcsIGRvY3VtZW50KCkpOworICAg
IFJlZjxIVE1MVGFibGVDZWxsRWxlbWVudD4gY2VsbCA9IEhUTUxUYWJsZUNlbGxFbGVtZW50Ojpj
cmVhdGUodGRUYWcsIGRvY3VtZW50KCkpOwogICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0g
bnVtQ2VsbHMpCi0gICAgICAgIGFwcGVuZENoaWxkKGNlbGwsIGVjKTsKKyAgICAgICAgYXBwZW5k
Q2hpbGQoY2VsbC5jb3B5UmVmKCksIGVjKTsKICAgICBlbHNlIHsKICAgICAgICAgTm9kZSogbjsK
ICAgICAgICAgaWYgKGluZGV4IDwgMSkKICAgICAgICAgICAgIG4gPSBmaXJzdENoaWxkKCk7CiAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgIG4gPSBjaGlsZHJlbi0+aXRlbShpbmRleCk7Ci0gICAg
ICAgIGluc2VydEJlZm9yZShjZWxsLCBuLCBlYyk7CisgICAgICAgIGluc2VydEJlZm9yZShjZWxs
LmNvcHlSZWYoKSwgbiwgZWMpOwogICAgIH0KLSAgICByZXR1cm4gY2VsbDsKKyAgICByZXR1cm4g
V1RGOjptb3ZlKGNlbGwpOwogfQogCiB2b2lkIEhUTUxUYWJsZVJvd0VsZW1lbnQ6OmRlbGV0ZUNl
bGwoaW50IGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTE1MCw3ICsxNDksNyBAQCB2b2lk
IEhUTUxUYWJsZVJvd0VsZW1lbnQ6OmRlbGV0ZUNlbGwoaW50IGluZGV4LCBFeGNlcHRpb25Db2Rl
JiBlYykKICAgICAgICAgaW5kZXggPSBudW1DZWxscy0xOwogICAgIGlmIChpbmRleCA+PSAwICYm
IGluZGV4IDwgbnVtQ2VsbHMpIHsKICAgICAgICAgUmVmUHRyPE5vZGU+IGNlbGwgPSBjaGlsZHJl
bi0+aXRlbShpbmRleCk7Ci0gICAgICAgIEhUTUxFbGVtZW50OjpyZW1vdmVDaGlsZChjZWxsLmdl
dCgpLCBlYyk7CisgICAgICAgIEhUTUxFbGVtZW50OjpyZW1vdmVDaGlsZCgqY2VsbCwgZWMpOwog
ICAgIH0gZWxzZQogICAgICAgICBlYyA9IElOREVYX1NJWkVfRVJSOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuaAppbmRleCBjOTk3YWVjOTFmMTQyMTAyYTQ5YWFl
NTg4Y2I1NmI4NDhlODc4YTEzLi5jOWRmNWI2YzVjNjgzNjY1YzYwMTVjYzg4MmYyNjRlM2UxZjMz
MWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuaApAQCAtMjYs
NiArMjYsNyBAQAogI2lmbmRlZiBIVE1MVGFibGVSb3dFbGVtZW50X2gKICNkZWZpbmUgSFRNTFRh
YmxlUm93RWxlbWVudF9oCiAKKyNpbmNsdWRlICJIVE1MVGFibGVDZWxsRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxUYWJsZVBhcnRFbGVtZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTQxLDggKzQyLDggQEAgcHVibGljOgogICAgIGludCBzZWN0aW9uUm93SW5kZXgoKSBjb25zdDsK
ICAgICB2b2lkIHNldFNlY3Rpb25Sb3dJbmRleChpbnQpOwogCi0gICAgUmVmUHRyPEhUTUxFbGVt
ZW50PiBpbnNlcnRDZWxsKEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBpbnNlcnRDZWxsKC0x
LCBlYyk7IH0KLSAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IGluc2VydENlbGwoaW50IGluZGV4LCBF
eGNlcHRpb25Db2RlJik7CisgICAgUmVmUHRyPEhUTUxUYWJsZUNlbGxFbGVtZW50PiBpbnNlcnRD
ZWxsKEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBpbnNlcnRDZWxsKC0xLCBlYyk7IH0KKyAg
ICBSZWZQdHI8SFRNTFRhYmxlQ2VsbEVsZW1lbnQ+IGluc2VydENlbGwoaW50IGluZGV4LCBFeGNl
cHRpb25Db2RlJik7CiAgICAgdm9pZCBkZWxldGVDZWxsKGludCBpbmRleCwgRXhjZXB0aW9uQ29k
ZSYpOwogCiAgICAgUmVmPEhUTUxDb2xsZWN0aW9uPiBjZWxscygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcAppbmRleCA5ZTQ1MzE2ZjhmM2Y0
ZmM2ZGE4ZTNkY2RiMWIzZTRlMmRkOTI3ZDg2Li5mZDAyYzYwMmY5NDZjZjM0ZDEwZTgzYzIyMjI0
OGZhMzg4MDEyM2VhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVNl
Y3Rpb25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVNlY3Rp
b25FbGVtZW50LmNwcApAQCAtNjgsMTQgKzY4LDE0IEBAIFJlZlB0cjxIVE1MRWxlbWVudD4gSFRN
TFRhYmxlU2VjdGlvbkVsZW1lbnQ6Omluc2VydFJvdyhpbnQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUm
CiAgICAgZWxzZSB7CiAgICAgICAgIHJvdyA9IEhUTUxUYWJsZVJvd0VsZW1lbnQ6OmNyZWF0ZSh0
clRhZywgZG9jdW1lbnQoKSk7CiAgICAgICAgIGlmIChudW1Sb3dzID09IGluZGV4IHx8IGluZGV4
ID09IC0xKQotICAgICAgICAgICAgYXBwZW5kQ2hpbGQocm93LCBlYyk7CisgICAgICAgICAgICBh
cHBlbmRDaGlsZCgqcm93LCBlYyk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgTm9kZSog
bjsKICAgICAgICAgICAgIGlmIChpbmRleCA8IDEpCiAgICAgICAgICAgICAgICAgbiA9IGZpcnN0
Q2hpbGQoKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBuID0gY2hpbGRyZW4t
Pml0ZW0oaW5kZXgpOwotICAgICAgICAgICAgaW5zZXJ0QmVmb3JlKHJvdywgbiwgZWMpOworICAg
ICAgICAgICAgaW5zZXJ0QmVmb3JlKCpyb3csIG4sIGVjKTsKICAgICAgICAgfQogICAgIH0KICAg
ICByZXR1cm4gcm93OwpAQCAtODksNyArODksNyBAQCB2b2lkIEhUTUxUYWJsZVNlY3Rpb25FbGVt
ZW50OjpkZWxldGVSb3coaW50IGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgaW5k
ZXggPSBudW1Sb3dzIC0gMTsKICAgICBpZiAoaW5kZXggPj0gMCAmJiBpbmRleCA8IG51bVJvd3Mp
IHsKICAgICAgICAgUmVmUHRyPE5vZGU+IHJvdyA9IGNoaWxkcmVuLT5pdGVtKGluZGV4KTsKLSAg
ICAgICAgSFRNTEVsZW1lbnQ6OnJlbW92ZUNoaWxkKHJvdy5nZXQoKSwgZWMpOworICAgICAgICBI
VE1MRWxlbWVudDo6cmVtb3ZlQ2hpbGQoKnJvdywgZWMpOwogICAgIH0gZWxzZQogICAgICAgICBl
YyA9IElOREVYX1NJWkVfRVJSOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGVtcGxhdGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRl
RWxlbWVudC5jcHAKaW5kZXggYWVjMzAxMGY2ZDZjZmUxYmVkYjMyYzQ5NzA5YWVjYWQwYjZkN2Y3
Mi4uMmUxZWRiMjM2YzA3OGVlYjZkZWJlNmU5ZTU2MTFlNzE3Y2RjODM5MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwCkBAIC02OCw3ICs2OCw3IEBAIERv
Y3VtZW50RnJhZ21lbnQqIEhUTUxUZW1wbGF0ZUVsZW1lbnQ6OmNvbnRlbnQoKSBjb25zdAogICAg
IHJldHVybiBtX2NvbnRlbnQuZ2V0KCk7CiB9CiAKLVJlZlB0cjxOb2RlPiBIVE1MVGVtcGxhdGVF
bGVtZW50OjpjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25p
bmdPcGVyYXRpb24gdHlwZSkKK1JlZjxOb2RlPiBIVE1MVGVtcGxhdGVFbGVtZW50OjpjbG9uZU5v
ZGVJbnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsb25pbmdPcGVyYXRpb24gdHlw
ZSkKIHsKICAgICBSZWZQdHI8Tm9kZT4gY2xvbmU7CiAgICAgc3dpdGNoICh0eXBlKSB7CkBAIC04
Miw4ICs4Miw4IEBAIFJlZlB0cjxOb2RlPiBIVE1MVGVtcGxhdGVFbGVtZW50OjpjbG9uZU5vZGVJ
bnRlcm5hbChEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQsIENsCiAgICAgICAgIGJyZWFrOwogICAg
IH0KICAgICBpZiAobV9jb250ZW50KQotICAgICAgICBjb250ZW50KCktPmNsb25lQ2hpbGROb2Rl
cyhkb3duY2FzdDxIVE1MVGVtcGxhdGVFbGVtZW50PihjbG9uZS5nZXQoKSktPmNvbnRlbnQoKSk7
Ci0gICAgcmV0dXJuIGNsb25lLnJlbGVhc2UoKTsKKyAgICAgICAgY29udGVudCgpLT5jbG9uZUNo
aWxkTm9kZXMoKmRvd25jYXN0PEhUTUxUZW1wbGF0ZUVsZW1lbnQ+KGNsb25lLmdldCgpKS0+Y29u
dGVudCgpKTsKKyAgICByZXR1cm4gY2xvbmUucmVsZWFzZU5vbk51bGwoKTsKIH0KIAogdm9pZCBI
VE1MVGVtcGxhdGVFbGVtZW50OjpkaWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCogb2xkRG9j
dW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oCmluZGV4IDc2
N2YyYTE4NGVhODUzN2RiYzM2NDQ1ZGFiODJjODVlMDA1ZjA3NGIuLmQxZmE4NjQwNjlkY2I3NTA5
YzlmMTg3NzBkYWI1MmYxZTg1NmJkMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRlbXBsYXRlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBs
YXRlRWxlbWVudC5oCkBAIC01MCw3ICs1MCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRN
TFRlbXBsYXRlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAg
IHZpcnR1YWwgUmVmUHRyPE5vZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmlu
Z09wZXJhdGlvbikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8Tm9kZT4gY2xvbmVOb2RlSW50
ZXJuYWwoRG9jdW1lbnQmLCBDbG9uaW5nT3BlcmF0aW9uKSBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IHZvaWQgZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQqIG9sZERvY3VtZW50KSBvdmVycmlk
ZTsKIAogICAgIG11dGFibGUgUmVmUHRyPFRlbXBsYXRlQ29udGVudERvY3VtZW50RnJhZ21lbnQ+
IG1fY29udGVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVh
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3Bw
CmluZGV4IDkzOTI5MTE1NTA5MjYxNzdlYjA2ZmM0MjFlNWEyZDA5ZDdhOTIxZTYuLmEyZGU3MzBj
NWU3YzlkMWU1YzIwZDkwYjJkNDIzYzI4ZWU0ZGM1ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcApAQCAtNDA2LDkgKzQwNiw5IEBAIHZvaWQgSFRNTFRl
eHRBcmVhRWxlbWVudDo6c2V0RGVmYXVsdFZhbHVlKGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVl
KQogICAgIFJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PiBwcm90ZWN0RnJvbU11dGF0aW9uRXZlbnRz
KCp0aGlzKTsKIAogICAgIC8vIFRvIHByZXNlcnZlIGNvbW1lbnRzLCByZW1vdmUgb25seSB0aGUg
dGV4dCBub2RlcywgdGhlbiBhZGQgYSBzaW5nbGUgdGV4dCBub2RlLgotICAgIFZlY3RvcjxSZWZQ
dHI8VGV4dD4+IHRleHROb2RlczsKKyAgICBWZWN0b3I8UmVmPFRleHQ+PiB0ZXh0Tm9kZXM7CiAg
ICAgZm9yIChUZXh0KiB0ZXh0Tm9kZSA9IFRleHROb2RlVHJhdmVyc2FsOjpmaXJzdENoaWxkKCp0
aGlzKTsgdGV4dE5vZGU7IHRleHROb2RlID0gVGV4dE5vZGVUcmF2ZXJzYWw6Om5leHRTaWJsaW5n
KCp0ZXh0Tm9kZSkpCi0gICAgICAgIHRleHROb2Rlcy5hcHBlbmQodGV4dE5vZGUpOworICAgICAg
ICB0ZXh0Tm9kZXMuYXBwZW5kKCp0ZXh0Tm9kZSk7CiAKICAgICBzaXplX3Qgc2l6ZSA9IHRleHRO
b2Rlcy5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCkBAIC01
MjMsOCArNTIzLDggQEAgdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50Ojp1cGRhdGVQbGFjZWhvbGRl
clRleHQoKQogICAgIFN0cmluZyBwbGFjZWhvbGRlclRleHQgPSBzdHJpcHBlZFBsYWNlaG9sZGVy
KCk7CiAgICAgaWYgKHBsYWNlaG9sZGVyVGV4dC5pc0VtcHR5KCkpIHsKICAgICAgICAgaWYgKG1f
cGxhY2Vob2xkZXIpIHsKLSAgICAgICAgICAgIHVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+cmVtb3Zl
Q2hpbGQobV9wbGFjZWhvbGRlciwgQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0gICAgICAgICAgICBt
X3BsYWNlaG9sZGVyID0gMDsKKyAgICAgICAgICAgIHVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+cmVt
b3ZlQ2hpbGQoKm1fcGxhY2Vob2xkZXIsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAgICAg
ICAgbV9wbGFjZWhvbGRlciA9IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwog
ICAgIH0KQEAgLTUzMyw3ICs1MzMsNyBAQCB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnVwZGF0
ZVBsYWNlaG9sZGVyVGV4dCgpCiAgICAgICAgIG1fcGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlci5n
ZXQoKTsKICAgICAgICAgbV9wbGFjZWhvbGRlci0+c2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdl
YmtpdC1pbnB1dC1wbGFjZWhvbGRlciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKICAgICAgICAgbV9wbGFjZWhvbGRlci0+c2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQ
cm9wZXJ0eURpc3BsYXksIGlzUGxhY2Vob2xkZXJWaXNpYmxlKCkgPyBDU1NWYWx1ZUJsb2NrIDog
Q1NTVmFsdWVOb25lLCB0cnVlKTsKLSAgICAgICAgdXNlckFnZW50U2hhZG93Um9vdCgpLT5pbnNl
cnRCZWZvcmUobV9wbGFjZWhvbGRlciwgaW5uZXJUZXh0RWxlbWVudCgpLT5uZXh0U2libGluZygp
KTsKKyAgICAgICAgdXNlckFnZW50U2hhZG93Um9vdCgpLT5pbnNlcnRCZWZvcmUoKm1fcGxhY2Vo
b2xkZXIsIGlubmVyVGV4dEVsZW1lbnQoKS0+bmV4dFNpYmxpbmcoKSk7CiAgICAgfQogICAgIG1f
cGxhY2Vob2xkZXItPnNldElubmVyVGV4dChwbGFjZWhvbGRlclRleHQsIEFTU0VSVF9OT19FWENF
UFRJT04pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZURvY3VtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VEb2N1bWVudC5jcHAKaW5kZXggOTgwZWE0
ZWNmMWQ2ZjRiZGNhYjdkZjc5MWI4M2JkZDM3OTI3NjQ2Ni4uMGQxYWI4MDkzYmY1NTk0NmExNWNk
ODc0MWRjODI3ZGI2N2YyMzA5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFn
ZURvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlRG9jdW1lbnQuY3Bw
CkBAIC05Miw3ICs5Miw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIEltYWdlRG9jdW1lbnRFbGVtZW50
IGZpbmFsIDogcHVibGljIEhUTUxJbWFnZUVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWZQdHI8SW1hZ2VEb2N1bWVudEVsZW1lbnQ+IGNyZWF0ZShJbWFnZURvY3VtZW50Jik7CisgICAg
c3RhdGljIFJlZjxJbWFnZURvY3VtZW50RWxlbWVudD4gY3JlYXRlKEltYWdlRG9jdW1lbnQmKTsK
IAogcHJpdmF0ZToKICAgICBJbWFnZURvY3VtZW50RWxlbWVudChJbWFnZURvY3VtZW50JiBkb2N1
bWVudCkKQEAgLTEwNyw5ICsxMDcsOSBAQCBwcml2YXRlOgogICAgIEltYWdlRG9jdW1lbnQqIG1f
aW1hZ2VEb2N1bWVudDsKIH07CiAKLWlubGluZSBSZWZQdHI8SW1hZ2VEb2N1bWVudEVsZW1lbnQ+
IEltYWdlRG9jdW1lbnRFbGVtZW50OjpjcmVhdGUoSW1hZ2VEb2N1bWVudCYgZG9jdW1lbnQpCitp
bmxpbmUgUmVmPEltYWdlRG9jdW1lbnRFbGVtZW50PiBJbWFnZURvY3VtZW50RWxlbWVudDo6Y3Jl
YXRlKEltYWdlRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcg
SW1hZ2VEb2N1bWVudEVsZW1lbnQoZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBJbWFnZURvY3VtZW50RWxlbWVudChkb2N1bWVudCkpOwogfQogCiAvLyAtLS0tLS0tLQpAQCAt
MjEwLDE5ICsyMTAsMTkgQEAgUmVmPERvY3VtZW50UGFyc2VyPiBJbWFnZURvY3VtZW50OjpjcmVh
dGVQYXJzZXIoKQogCiB2b2lkIEltYWdlRG9jdW1lbnQ6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJl
KCkKIHsKLSAgICBSZWZQdHI8RWxlbWVudD4gcm9vdEVsZW1lbnQgPSBEb2N1bWVudDo6Y3JlYXRl
RWxlbWVudChodG1sVGFnLCBmYWxzZSk7Ci0gICAgYXBwZW5kQ2hpbGQocm9vdEVsZW1lbnQpOwot
ICAgIGRvd25jYXN0PEhUTUxIdG1sRWxlbWVudD4oKnJvb3RFbGVtZW50KS5pbnNlcnRlZEJ5UGFy
c2VyKCk7CisgICAgUmVmPEVsZW1lbnQ+IHJvb3RFbGVtZW50ID0gRG9jdW1lbnQ6OmNyZWF0ZUVs
ZW1lbnQoaHRtbFRhZywgZmFsc2UpOworICAgIGFwcGVuZENoaWxkKHJvb3RFbGVtZW50LmNvcHlS
ZWYoKSk7CisgICAgZG93bmNhc3Q8SFRNTEh0bWxFbGVtZW50Pihyb290RWxlbWVudC5nZXQoKSku
aW5zZXJ0ZWRCeVBhcnNlcigpOwogCiAgICAgZnJhbWUoKS0+aW5qZWN0VXNlclNjcmlwdHMoSW5q
ZWN0QXREb2N1bWVudFN0YXJ0KTsKIAotICAgIFJlZlB0cjxFbGVtZW50PiBib2R5ID0gRG9jdW1l
bnQ6OmNyZWF0ZUVsZW1lbnQoYm9keVRhZywgZmFsc2UpOworICAgIFJlZjxFbGVtZW50PiBib2R5
ID0gRG9jdW1lbnQ6OmNyZWF0ZUVsZW1lbnQoYm9keVRhZywgZmFsc2UpOwogICAgIGJvZHktPnNl
dEF0dHJpYnV0ZShzdHlsZUF0dHIsICJtYXJnaW46IDBweCIpOwogICAgIGlmIChNSU1FVHlwZVJl
Z2lzdHJ5Ojppc1BERk1JTUVUeXBlKGRvY3VtZW50KCkubG9hZGVyKCktPnJlc3BvbnNlTUlNRVR5
cGUoKSkpCi0gICAgICAgIGRvd25jYXN0PEhUTUxCb2R5RWxlbWVudD4oKmJvZHkpLnNldElubGlu
ZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IsICJ3aGl0ZSIsIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NfSURFTlQpOwotICAgIHJvb3RFbGVtZW50LT5hcHBlbmRDaGlsZChi
b2R5KTsKKyAgICAgICAgZG93bmNhc3Q8SFRNTEJvZHlFbGVtZW50Pihib2R5LmdldCgpKS5zZXRJ
bmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yLCAid2hpdGUiLCBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0lERU5UKTsKKyAgICByb290RWxlbWVudC0+YXBwZW5kQ2hp
bGQoYm9keS5jb3B5UmVmKCkpOwogICAgIAotICAgIFJlZlB0cjxJbWFnZURvY3VtZW50RWxlbWVu
dD4gaW1hZ2VFbGVtZW50ID0gSW1hZ2VEb2N1bWVudEVsZW1lbnQ6OmNyZWF0ZSgqdGhpcyk7Cisg
ICAgUmVmPEltYWdlRG9jdW1lbnRFbGVtZW50PiBpbWFnZUVsZW1lbnQgPSBJbWFnZURvY3VtZW50
RWxlbWVudDo6Y3JlYXRlKCp0aGlzKTsKICAgICBpZiAobV9zaG91bGRTaHJpbmtJbWFnZSkKICAg
ICAgICAgaW1hZ2VFbGVtZW50LT5zZXRBdHRyaWJ1dGUoc3R5bGVBdHRyLCAiLXdlYmtpdC11c2Vy
LXNlbGVjdDpub25lOyBkaXNwbGF5OmJsb2NrOyBtYXJnaW46YXV0bzsiKTsKICAgICBlbHNlCkBA
IC0yMzAsNyArMjMwLDcgQEAgdm9pZCBJbWFnZURvY3VtZW50OjpjcmVhdGVEb2N1bWVudFN0cnVj
dHVyZSgpCiAgICAgaW1hZ2VFbGVtZW50LT5zZXRMb2FkTWFudWFsbHkodHJ1ZSk7CiAgICAgaW1h
Z2VFbGVtZW50LT5zZXRTcmModXJsKCkuc3RyaW5nKCkpOwogICAgIGltYWdlRWxlbWVudC0+Y2Fj
aGVkSW1hZ2UoKS0+c2V0UmVzcG9uc2UobG9hZGVyKCktPnJlc3BvbnNlKCkpOwotICAgIGJvZHkt
PmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7CisgICAgYm9keS0+YXBwZW5kQ2hpbGQoaW1hZ2VF
bGVtZW50LmNvcHlSZWYoKSk7CiAgICAgCiAgICAgaWYgKG1fc2hvdWxkU2hyaW5rSW1hZ2UpIHsK
ICNpZiBQTEFURk9STShJT1MpCkBAIC0yNDQsNyArMjQ0LDcgQEAgdm9pZCBJbWFnZURvY3VtZW50
OjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCiAjZW5kaWYKICAgICB9CiAKLSAgICBtX2ltYWdl
RWxlbWVudCA9IGltYWdlRWxlbWVudC5nZXQoKTsKKyAgICBtX2ltYWdlRWxlbWVudCA9IGltYWdl
RWxlbWVudC5wdHIoKTsKIH0KIAogdm9pZCBJbWFnZURvY3VtZW50OjppbWFnZVVwZGF0ZWQoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAKaW5kZXggMTg1YWJhODM0MDNjZTgyMmM3
NzZlZTBjMjhkYmE3MzAwMTkyOTk5Yi4uZDc2MjQ1MmMyNTBlOThmOTZjMWMzNTUwZmFlMTgxZjg1
ZTAyYjVhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCkBAIC03OCwzMCAr
NzgsMzAgQEAgcHJpdmF0ZToKICAgICAKIHZvaWQgTWVkaWFEb2N1bWVudFBhcnNlcjo6Y3JlYXRl
RG9jdW1lbnRTdHJ1Y3R1cmUoKQogewotICAgIFJlZlB0cjxFbGVtZW50PiByb290RWxlbWVudCA9
IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoaHRtbFRhZywgZmFsc2UpOwotICAgIGRvY3VtZW50
KCktPmFwcGVuZENoaWxkKHJvb3RFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKLSAgICBkb2N1
bWVudCgpLT5zZXRDU1NUYXJnZXQocm9vdEVsZW1lbnQuZ2V0KCkpOwotICAgIGRvd25jYXN0PEhU
TUxIdG1sRWxlbWVudD4oKnJvb3RFbGVtZW50KS5pbnNlcnRlZEJ5UGFyc2VyKCk7CisgICAgUmVm
PEVsZW1lbnQ+IHJvb3RFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChodG1sVGFn
LCBmYWxzZSk7CisgICAgZG9jdW1lbnQoKS0+YXBwZW5kQ2hpbGQocm9vdEVsZW1lbnQuY29weVJl
ZigpLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBkb2N1bWVudCgpLT5zZXRDU1NUYXJnZXQocm9v
dEVsZW1lbnQucHRyKCkpOworICAgIGRvd25jYXN0PEhUTUxIdG1sRWxlbWVudD4ocm9vdEVsZW1l
bnQuZ2V0KCkpLmluc2VydGVkQnlQYXJzZXIoKTsKIAogICAgIGlmIChkb2N1bWVudCgpLT5mcmFt
ZSgpKQogICAgICAgICBkb2N1bWVudCgpLT5mcmFtZSgpLT5pbmplY3RVc2VyU2NyaXB0cyhJbmpl
Y3RBdERvY3VtZW50U3RhcnQpOwogCiAjaWYgUExBVEZPUk0oSU9TKQotICAgIFJlZlB0cjxFbGVt
ZW50PiBoZWFkRWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoaGVhZFRhZywgZmFs
c2UpOwotICAgIHJvb3RFbGVtZW50LT5hcHBlbmRDaGlsZChoZWFkRWxlbWVudCwgSUdOT1JFX0VY
Q0VQVElPTik7CisgICAgUmVmPEVsZW1lbnQ+IGhlYWRFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3Jl
YXRlRWxlbWVudChoZWFkVGFnLCBmYWxzZSk7CisgICAgcm9vdEVsZW1lbnQtPmFwcGVuZENoaWxk
KGhlYWRFbGVtZW50LmNvcHlSZWYoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBSZWZQdHI8
RWxlbWVudD4gbWV0YUVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KG1ldGFUYWcs
IGZhbHNlKTsKKyAgICBSZWY8RWxlbWVudD4gbWV0YUVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVh
dGVFbGVtZW50KG1ldGFUYWcsIGZhbHNlKTsKICAgICBtZXRhRWxlbWVudC0+c2V0QXR0cmlidXRl
KG5hbWVBdHRyLCAidmlld3BvcnQiKTsKICAgICBtZXRhRWxlbWVudC0+c2V0QXR0cmlidXRlKGNv
bnRlbnRBdHRyLCAid2lkdGg9ZGV2aWNlLXdpZHRoLGluaXRpYWwtc2NhbGU9MSx1c2VyLXNjYWxh
YmxlPW5vIik7Ci0gICAgaGVhZEVsZW1lbnQtPmFwcGVuZENoaWxkKG1ldGFFbGVtZW50LCBJR05P
UkVfRVhDRVBUSU9OKTsKKyAgICBoZWFkRWxlbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKG1l
dGFFbGVtZW50KSwgSUdOT1JFX0VYQ0VQVElPTik7CiAjZW5kaWYKIAotICAgIFJlZlB0cjxFbGVt
ZW50PiBib2R5ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChib2R5VGFnLCBmYWxzZSk7Ci0g
ICAgcm9vdEVsZW1lbnQtPmFwcGVuZENoaWxkKGJvZHksIElHTk9SRV9FWENFUFRJT04pOworICAg
IFJlZjxFbGVtZW50PiBib2R5ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChib2R5VGFnLCBm
YWxzZSk7CisgICAgcm9vdEVsZW1lbnQtPmFwcGVuZENoaWxkKGJvZHkuY29weVJlZigpLCBJR05P
UkVfRVhDRVBUSU9OKTsKIAotICAgIFJlZlB0cjxFbGVtZW50PiBtZWRpYUVsZW1lbnQgPSBkb2N1
bWVudCgpLT5jcmVhdGVFbGVtZW50KHZpZGVvVGFnLCBmYWxzZSk7CisgICAgUmVmPEVsZW1lbnQ+
IG1lZGlhRWxlbWVudCA9IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQodmlkZW9UYWcsIGZhbHNl
KTsKIAotICAgIG1fbWVkaWFFbGVtZW50ID0gZG93bmNhc3Q8SFRNTFZpZGVvRWxlbWVudD4obWVk
aWFFbGVtZW50LmdldCgpKTsKKyAgICBtX21lZGlhRWxlbWVudCA9IGRvd25jYXN0PEhUTUxWaWRl
b0VsZW1lbnQ+KG1lZGlhRWxlbWVudC5wdHIoKSk7CiAgICAgbV9tZWRpYUVsZW1lbnQtPnNldEF0
dHJpYnV0ZShjb250cm9sc0F0dHIsIGVtcHR5QXRvbSk7CiAgICAgbV9tZWRpYUVsZW1lbnQtPnNl
dEF0dHJpYnV0ZShhdXRvcGxheUF0dHIsIGVtcHR5QXRvbSk7CiAKQEAgLTExNCwxNSArMTE0LDE1
IEBAIHZvaWQgTWVkaWFEb2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKQog
I2VuZGlmCiAgICAgbV9tZWRpYUVsZW1lbnQtPnNldEF0dHJpYnV0ZShzdHlsZUF0dHIsIGVsZW1l
bnRTdHlsZS50b1N0cmluZygpKTsKIAotICAgIFJlZlB0cjxFbGVtZW50PiBzb3VyY2VFbGVtZW50
ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChzb3VyY2VUYWcsIGZhbHNlKTsKLSAgICBIVE1M
U291cmNlRWxlbWVudCYgc291cmNlID0gZG93bmNhc3Q8SFRNTFNvdXJjZUVsZW1lbnQ+KCpzb3Vy
Y2VFbGVtZW50KTsKKyAgICBSZWY8RWxlbWVudD4gc291cmNlRWxlbWVudCA9IGRvY3VtZW50KCkt
PmNyZWF0ZUVsZW1lbnQoc291cmNlVGFnLCBmYWxzZSk7CisgICAgSFRNTFNvdXJjZUVsZW1lbnQm
IHNvdXJjZSA9IGRvd25jYXN0PEhUTUxTb3VyY2VFbGVtZW50Pihzb3VyY2VFbGVtZW50LmdldCgp
KTsKICAgICBzb3VyY2Uuc2V0U3JjKGRvY3VtZW50KCktPnVybCgpKTsKIAogICAgIGlmIChEb2N1
bWVudExvYWRlciogbG9hZGVyID0gZG9jdW1lbnQoKS0+bG9hZGVyKCkpCiAgICAgICAgIHNvdXJj
ZS5zZXRUeXBlKGxvYWRlci0+cmVzcG9uc2VNSU1FVHlwZSgpKTsKIAotICAgIG1fbWVkaWFFbGVt
ZW50LT5hcHBlbmRDaGlsZChzb3VyY2VFbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKLSAgICBi
b2R5LT5hcHBlbmRDaGlsZChtZWRpYUVsZW1lbnQsIElHTk9SRV9FWENFUFRJT04pOworICAgIG1f
bWVkaWFFbGVtZW50LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoc291cmNlRWxlbWVudCksIElHTk9S
RV9FWENFUFRJT04pOworICAgIGJvZHktPmFwcGVuZENoaWxkKFdURjo6bW92ZShtZWRpYUVsZW1l
bnQpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAogICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCkt
PmZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkKQEAgLTI1Myw3ICsyNTMsNyBAQCB2b2lkIE1lZGlh
RG9jdW1lbnQ6OnJlcGxhY2VNZWRpYUVsZW1lbnRUaW1lckZpcmVkKCkKICAgICAgICAgaWYgKGRv
Y3VtZW50TG9hZGVyKQogICAgICAgICAgICAgZW1iZWRFbGVtZW50LnNldEF0dHJpYnV0ZSh0eXBl
QXR0ciwgZG9jdW1lbnRMb2FkZXItPndyaXRlcigpLm1pbWVUeXBlKCkpOwogCi0gICAgICAgIHZp
ZGVvRWxlbWVudC0+cGFyZW50Tm9kZSgpLT5yZXBsYWNlQ2hpbGQoJmVtYmVkRWxlbWVudCwgdmlk
ZW9FbGVtZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgdmlkZW9FbGVtZW50LT5wYXJl
bnROb2RlKCktPnJlcGxhY2VDaGlsZChlbWJlZEVsZW1lbnQsICp2aWRlb0VsZW1lbnQsIElHTk9S
RV9FWENFUFRJT04pOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9QbHVnaW5Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50
LmNwcAppbmRleCBlOTY3NzA5MGY0YzM4NTNhN2NmZjIwOGIyM2MzMWRjOWQyNTQ0ODIxLi5jMGE4
MGJhNTU3MTM5MDliOTNiMThiMWJkYTg4MDNmZjE1Mjc1YmZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1BsdWdpbkRvY3VtZW50LmNwcApAQCAtNjcsOSArNjcsOSBAQCBwcml2YXRlOgogCiB2b2lkIFBs
dWdpbkRvY3VtZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCiB7Ci0gICAgUmVm
UHRyPEVsZW1lbnQ+IHJvb3RFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChodG1s
VGFnLCBmYWxzZSk7Ci0gICAgZG9jdW1lbnQoKS0+YXBwZW5kQ2hpbGQocm9vdEVsZW1lbnQsIElH
Tk9SRV9FWENFUFRJT04pOwotICAgIGRvd25jYXN0PEhUTUxIdG1sRWxlbWVudD4oKnJvb3RFbGVt
ZW50KS5pbnNlcnRlZEJ5UGFyc2VyKCk7CisgICAgUmVmPEVsZW1lbnQ+IHJvb3RFbGVtZW50ID0g
ZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChodG1sVGFnLCBmYWxzZSk7CisgICAgZG9jdW1lbnQo
KS0+YXBwZW5kQ2hpbGQocm9vdEVsZW1lbnQuY29weVJlZigpLCBJR05PUkVfRVhDRVBUSU9OKTsK
KyAgICBkb3duY2FzdDxIVE1MSHRtbEVsZW1lbnQ+KHJvb3RFbGVtZW50LmdldCgpKS5pbnNlcnRl
ZEJ5UGFyc2VyKCk7CiAKICAgICBpZiAoZG9jdW1lbnQoKS0+ZnJhbWUoKSkKICAgICAgICAgZG9j
dW1lbnQoKS0+ZnJhbWUoKS0+aW5qZWN0VXNlclNjcmlwdHMoSW5qZWN0QXREb2N1bWVudFN0YXJ0
KTsKQEAgLTc5LDcgKzc5LDcgQEAgdm9pZCBQbHVnaW5Eb2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9j
dW1lbnRTdHJ1Y3R1cmUoKQogICAgIGRvY3VtZW50KCktPnByb2Nlc3NWaWV3cG9ydChBU0NJSUxp
dGVyYWwoInVzZXItc2NhbGFibGU9bm8iKSwgVmlld3BvcnRBcmd1bWVudHM6OlBsdWdpbkRvY3Vt
ZW50KTsKICNlbmRpZgogCi0gICAgUmVmUHRyPEVsZW1lbnQ+IGJvZHkgPSBkb2N1bWVudCgpLT5j
cmVhdGVFbGVtZW50KGJvZHlUYWcsIGZhbHNlKTsKKyAgICBSZWY8RWxlbWVudD4gYm9keSA9IGRv
Y3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoYm9keVRhZywgZmFsc2UpOwogICAgIGJvZHktPnNldEF0
dHJpYnV0ZShtYXJnaW53aWR0aEF0dHIsIEF0b21pY1N0cmluZygiMCIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBib2R5LT5zZXRBdHRyaWJ1dGUobWFyZ2luaGVp
Z2h0QXR0ciwgQXRvbWljU3RyaW5nKCIwIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOwogI2lmIFBMQVRGT1JNKElPUykKQEAgLTg4LDExICs4OCwxMSBAQCB2b2lkIFBsdWdp
bkRvY3VtZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCiAgICAgYm9keS0+c2V0
QXR0cmlidXRlKHN0eWxlQXR0ciwgQXRvbWljU3RyaW5nKCJiYWNrZ3JvdW5kLWNvbG9yOiByZ2Io
MzgsMzgsMzgpIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogI2VuZGlm
CiAKLSAgICByb290RWxlbWVudC0+YXBwZW5kQ2hpbGQoYm9keSwgSUdOT1JFX0VYQ0VQVElPTik7
CisgICAgcm9vdEVsZW1lbnQtPmFwcGVuZENoaWxkKGJvZHkuY29weVJlZigpLCBJR05PUkVfRVhD
RVBUSU9OKTsKICAgICAgICAgCi0gICAgUmVmUHRyPEVsZW1lbnQ+IGVtYmVkRWxlbWVudCA9IGRv
Y3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoZW1iZWRUYWcsIGZhbHNlKTsKKyAgICBSZWY8RWxlbWVu
dD4gZW1iZWRFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChlbWJlZFRhZywgZmFs
c2UpOwogICAgICAgICAKLSAgICBtX2VtYmVkRWxlbWVudCA9IGRvd25jYXN0PEhUTUxFbWJlZEVs
ZW1lbnQ+KGVtYmVkRWxlbWVudC5nZXQoKSk7CisgICAgbV9lbWJlZEVsZW1lbnQgPSBkb3duY2Fz
dDxIVE1MRW1iZWRFbGVtZW50PihlbWJlZEVsZW1lbnQucHRyKCkpOwogICAgIG1fZW1iZWRFbGVt
ZW50LT5zZXRBdHRyaWJ1dGUod2lkdGhBdHRyLCAiMTAwJSIpOwogICAgIG1fZW1iZWRFbGVtZW50
LT5zZXRBdHRyaWJ1dGUoaGVpZ2h0QXR0ciwgIjEwMCUiKTsKICAgICAKQEAgLTEwNiw3ICsxMDYs
NyBAQCB2b2lkIFBsdWdpbkRvY3VtZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgp
CiAKICAgICBkb3duY2FzdDxQbHVnaW5Eb2N1bWVudD4oKmRvY3VtZW50KCkpLnNldFBsdWdpbkVs
ZW1lbnQobV9lbWJlZEVsZW1lbnQpOwogCi0gICAgYm9keS0+YXBwZW5kQ2hpbGQoZW1iZWRFbGVt
ZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBib2R5LT5hcHBlbmRDaGlsZChXVEY6Om1vdmUo
ZW1iZWRFbGVtZW50KSwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CiAKIHZvaWQgUGx1Z2luRG9jdW1l
bnRQYXJzZXI6OmFwcGVuZEJ5dGVzKERvY3VtZW50V3JpdGVyJiwgY29uc3QgY2hhciosIHNpemVf
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKaW5kZXggYjViOWU3OTQxMzEx
OTNiNTBmZTc5NzlhMTZhMTRjYjMwODA0ZTdkNy4uNjZhNzQxNWU4YTRjZjExZjkxZGM2N2MxNmEx
ZDkwNjAyNWNmZmZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0
VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKQEAg
LTI1MywxMiArMjUzLDEyIEBAIHZvaWQgUmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRy
ZWUoKQogICAgIEFTU0VSVChlbGVtZW50KCkudXNlckFnZW50U2hhZG93Um9vdCgpKTsKIAogICAg
IERvY3VtZW50JiBkb2N1bWVudCA9IGVsZW1lbnQoKS5kb2N1bWVudCgpOwotICAgIFJlZlB0cjxI
VE1MRGl2RWxlbWVudD4gdHJhY2sgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsK
KyAgICBSZWY8SFRNTERpdkVsZW1lbnQ+IHRyYWNrID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCk7CiAgICAgdHJhY2stPnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtc2xp
ZGVyLXJ1bm5hYmxlLXRyYWNrIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OwogICAgIHRyYWNrLT5hcHBlbmRDaGlsZChTbGlkZXJUaHVtYkVsZW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCksIElHTk9SRV9FWENFUFRJT04pOwotICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gY29udGFp
bmVyID0gU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBjb250
YWluZXItPmFwcGVuZENoaWxkKHRyYWNrLnJlbGVhc2UoKSwgSUdOT1JFX0VYQ0VQVElPTik7Ci0g
ICAgZWxlbWVudCgpLnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoY29udGFpbmVy
LnJlbGVhc2UoKSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgUmVmPEhUTUxFbGVtZW50PiBjb250
YWluZXIgPSBTbGlkZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNv
bnRhaW5lci0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHRyYWNrKSwgSUdOT1JFX0VYQ0VQVElPTik7
CisgICAgZWxlbWVudCgpLnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoV1RGOjpt
b3ZlKGNvbnRhaW5lciksIElHTk9SRV9FWENFUFRJT04pOwogfQogCiBIVE1MRWxlbWVudCogUmFu
Z2VJbnB1dFR5cGU6OnNsaWRlclRyYWNrRWxlbWVudCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1NlYXJjaElucHV0VHlwZS5jcHAKaW5kZXggZGU0M2RiNTgwNDkzYmM2NTk5ZjllN2FlODg3ZTcw
Yzk4MWM0MmU2Ny4uMzU3YzdhNjA1YjRkYjcyYzAwZTdiOTZkZWQ2ZGQ2NDYyMGU4ZDZmZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcApAQCAtMTA3LDE0ICsxMDcsMTQg
QEAgdm9pZCBTZWFyY2hJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogICAgIEFTU0VS
VChjb250YWluZXIpOwogICAgIEFTU0VSVCh0ZXh0V3JhcHBlcik7CiAKLSAgICBSZWZQdHI8U2Vh
cmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudD4gcmVzdWx0c0J1dHRvbiA9IFNlYXJjaEZpZWxk
UmVzdWx0c0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCkuZG9jdW1lbnQoKSk7Ci0gICAg
bV9yZXN1bHRzQnV0dG9uID0gcmVzdWx0c0J1dHRvbi5nZXQoKTsKLSAgICB1cGRhdGVSZXN1bHRC
dXR0b25Qc2V1ZG9UeXBlKCptX3Jlc3VsdHNCdXR0b24sIGVsZW1lbnQoKS5tYXhSZXN1bHRzKCkp
OwotICAgIGNvbnRhaW5lci0+aW5zZXJ0QmVmb3JlKG1fcmVzdWx0c0J1dHRvbiwgdGV4dFdyYXBw
ZXIsIElHTk9SRV9FWENFUFRJT04pOwotCi0gICAgUmVmUHRyPFNlYXJjaEZpZWxkQ2FuY2VsQnV0
dG9uRWxlbWVudD4gY2FuY2VsQnV0dG9uID0gU2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50
OjpjcmVhdGUoZWxlbWVudCgpLmRvY3VtZW50KCkpOwotICAgIG1fY2FuY2VsQnV0dG9uID0gY2Fu
Y2VsQnV0dG9uLmdldCgpOwotICAgIGNvbnRhaW5lci0+aW5zZXJ0QmVmb3JlKG1fY2FuY2VsQnV0
dG9uLCB0ZXh0V3JhcHBlci0+bmV4dFNpYmxpbmcoKSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAg
UmVmPFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ+IHJlc3VsdHNCdXR0b24gPSBTZWFy
Y2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLmRvY3VtZW50KCkp
OworICAgIG1fcmVzdWx0c0J1dHRvbiA9IHJlc3VsdHNCdXR0b24ucHRyKCk7CisgICAgdXBkYXRl
UmVzdWx0QnV0dG9uUHNldWRvVHlwZShyZXN1bHRzQnV0dG9uLmdldCgpLCBlbGVtZW50KCkubWF4
UmVzdWx0cygpKTsKKyAgICBjb250YWluZXItPmluc2VydEJlZm9yZShXVEY6Om1vdmUocmVzdWx0
c0J1dHRvbiksIHRleHRXcmFwcGVyLCBJR05PUkVfRVhDRVBUSU9OKTsKKworICAgIFJlZjxTZWFy
Y2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ+IGNhbmNlbEJ1dHRvbiA9IFNlYXJjaEZpZWxkQ2Fu
Y2VsQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS5kb2N1bWVudCgpKTsKKyAgICBtX2Nh
bmNlbEJ1dHRvbiA9IGNhbmNlbEJ1dHRvbi5wdHIoKTsKKyAgICBjb250YWluZXItPmluc2VydEJl
Zm9yZShXVEY6Om1vdmUoY2FuY2VsQnV0dG9uKSwgdGV4dFdyYXBwZXItPm5leHRTaWJsaW5nKCks
IElHTk9SRV9FWENFUFRJT04pOwogfQogCiBIVE1MRWxlbWVudCogU2VhcmNoSW5wdXRUeXBlOjpy
ZXN1bHRzQnV0dG9uRWxlbWVudCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVs
ZElucHV0VHlwZS5jcHAKaW5kZXggZWFlM2RiMjllZWUzYzJkZTk1ZmU3MTgwYzU0NmZmOGU3ZTJh
NzY3ZS4uMTM2ZjA5NzUxYjVkYTYxMDAwNjE2NDliNTViNTQ5YWM5ZDIzNDJiNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcApAQCAtMjc0LDcgKzI3NCw3IEBA
IHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKICAgICBtX2lu
bmVyVGV4dCA9IFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsK
IAogICAgIGlmICghY3JlYXRlc0NvbnRhaW5lcikgewotICAgICAgICBlbGVtZW50KCkudXNlckFn
ZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChtX2lubmVyVGV4dCwgSUdOT1JFX0VYQ0VQVElP
Tik7CisgICAgICAgIGVsZW1lbnQoKS51c2VyQWdlbnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxk
KCptX2lubmVyVGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgICAgIHVwZGF0ZVBsYWNlaG9s
ZGVyVGV4dCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjg0LDcgKzI4NCw3IEBAIHZv
aWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIAogICAgIGlmIChz
aG91bGRIYXZlU3BpbkJ1dHRvbikgewogICAgICAgICBtX2lubmVyU3BpbkJ1dHRvbiA9IFNwaW5C
dXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsICp0aGlzKTsKLSAgICAgICAgbV9jb250YWlu
ZXItPmFwcGVuZENoaWxkKG1faW5uZXJTcGluQnV0dG9uLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAg
ICAgICAgbV9jb250YWluZXItPmFwcGVuZENoaWxkKCptX2lubmVyU3BpbkJ1dHRvbiwgSUdOT1JF
X0VYQ0VQVElPTik7CiAgICAgfQogCiAgICAgaWYgKHNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRv
cikgewpAQCAtMjk0LDcgKzI5NCw3IEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVT
aGFkb3dTdWJ0cmVlKCkKICAgICAgICAgYm9vbCBzaG91bGREcmF3Q2Fwc0xvY2tJbmRpY2F0b3Ig
PSB0aGlzLT5zaG91bGREcmF3Q2Fwc0xvY2tJbmRpY2F0b3IoKTsKICAgICAgICAgbV9jYXBzTG9j
a0luZGljYXRvci0+c2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eURpc3BsYXksIHNo
b3VsZERyYXdDYXBzTG9ja0luZGljYXRvciA/IENTU1ZhbHVlQmxvY2sgOiBDU1NWYWx1ZU5vbmUs
IHRydWUpOwogCi0gICAgICAgIG1fY29udGFpbmVyLT5hcHBlbmRDaGlsZChtX2NhcHNMb2NrSW5k
aWNhdG9yLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgbV9jb250YWluZXItPmFwcGVuZENo
aWxkKCptX2NhcHNMb2NrSW5kaWNhdG9yLCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICB9CiAKICAg
ICB1cGRhdGVBdXRvRmlsbEJ1dHRvbigpOwpAQCAtNDYxLDcgKzQ2MSw3IEBAIHZvaWQgVGV4dEZp
ZWxkSW5wdXRUeXBlOjp1cGRhdGVQbGFjZWhvbGRlclRleHQoKQogICAgIFN0cmluZyBwbGFjZWhv
bGRlclRleHQgPSBlbGVtZW50KCkuc3RyaXBwZWRQbGFjZWhvbGRlcigpOwogICAgIGlmIChwbGFj
ZWhvbGRlclRleHQuaXNFbXB0eSgpKSB7CiAgICAgICAgIGlmIChtX3BsYWNlaG9sZGVyKSB7Ci0g
ICAgICAgICAgICBtX3BsYWNlaG9sZGVyLT5wYXJlbnROb2RlKCktPnJlbW92ZUNoaWxkKG1fcGxh
Y2Vob2xkZXIuZ2V0KCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAgICAgICAgbV9wbGFj
ZWhvbGRlci0+cGFyZW50Tm9kZSgpLT5yZW1vdmVDaGlsZCgqbV9wbGFjZWhvbGRlciwgQVNTRVJU
X05PX0VYQ0VQVElPTik7CiAgICAgICAgICAgICBtX3BsYWNlaG9sZGVyID0gbnVsbHB0cjsKICAg
ICAgICAgfQogICAgICAgICByZXR1cm47CkBAIC00NzAsNyArNDcwLDcgQEAgdm9pZCBUZXh0Rmll
bGRJbnB1dFR5cGU6OnVwZGF0ZVBsYWNlaG9sZGVyVGV4dCgpCiAgICAgICAgIG1fcGxhY2Vob2xk
ZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS5kb2N1bWVudCgpKTsKICAgICAg
ICAgbV9wbGFjZWhvbGRlci0+c2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC1pbnB1dC1w
bGFjZWhvbGRlciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAg
ICAgbV9wbGFjZWhvbGRlci0+c2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eURpc3Bs
YXksIGVsZW1lbnQoKS5pc1BsYWNlaG9sZGVyVmlzaWJsZSgpID8gQ1NTVmFsdWVCbG9jayA6IENT
U1ZhbHVlTm9uZSwgdHJ1ZSk7Ci0gICAgICAgIGVsZW1lbnQoKS51c2VyQWdlbnRTaGFkb3dSb290
KCktPmluc2VydEJlZm9yZShtX3BsYWNlaG9sZGVyLCBtX2NvbnRhaW5lciA/IG1fY29udGFpbmVy
LmdldCgpIDogaW5uZXJUZXh0RWxlbWVudCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAg
ICAgZWxlbWVudCgpLnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+aW5zZXJ0QmVmb3JlKCptX3BsYWNl
aG9sZGVyLCBtX2NvbnRhaW5lciA/IG1fY29udGFpbmVyLmdldCgpIDogaW5uZXJUZXh0RWxlbWVu
dCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICAgICAgCiAgICAgfQogICAgIG1fcGxhY2Vo
b2xkZXItPnNldElubmVyVGV4dChwbGFjZWhvbGRlclRleHQsIEFTU0VSVF9OT19FWENFUFRJT04p
OwpAQCAtNjAwLDEwICs2MDAsMTAgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZUNv
bnRhaW5lcigpCiAgICAgbV9jb250YWluZXItPnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJr
aXQtdGV4dGZpZWxkLWRlY29yYXRpb24tY29udGFpbmVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkpOwogCiAgICAgbV9pbm5lckJsb2NrID0gVGV4dENvbnRyb2xJbm5lckVs
ZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCkuZG9jdW1lbnQoKSk7Ci0gICAgbV9pbm5lckJsb2NrLT5h
cHBlbmRDaGlsZChtX2lubmVyVGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7Ci0gICAgbV9jb250YWlu
ZXItPmFwcGVuZENoaWxkKG1faW5uZXJCbG9jaywgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgbV9p
bm5lckJsb2NrLT5hcHBlbmRDaGlsZCgqbV9pbm5lclRleHQsIElHTk9SRV9FWENFUFRJT04pOwor
ICAgIG1fY29udGFpbmVyLT5hcHBlbmRDaGlsZCgqbV9pbm5lckJsb2NrLCBJR05PUkVfRVhDRVBU
SU9OKTsKIAotICAgIGVsZW1lbnQoKS51c2VyQWdlbnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxk
KG1fY29udGFpbmVyLCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBlbGVtZW50KCkudXNlckFnZW50
U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZCgqbV9jb250YWluZXIsIElHTk9SRV9FWENFUFRJT04p
OwogfQogCiB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlQXV0b0ZpbGxCdXR0b24oKQpA
QCAtNjEyLDcgKzYxMiw3IEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVBdXRvRmls
bEJ1dHRvbigpCiAKICAgICBtX2F1dG9GaWxsQnV0dG9uID0gQXV0b0ZpbGxCdXR0b25FbGVtZW50
OjpjcmVhdGUoZWxlbWVudCgpLmRvY3VtZW50KCksICp0aGlzKTsKICAgICBtX2F1dG9GaWxsQnV0
dG9uLT5zZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LWF1dG8tZmlsbC1idXR0b24iLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgbV9jb250YWluZXItPmFw
cGVuZENoaWxkKG1fYXV0b0ZpbGxCdXR0b24sIElHTk9SRV9FWENFUFRJT04pOworICAgIG1fY29u
dGFpbmVyLT5hcHBlbmRDaGlsZCgqbV9hdXRvRmlsbEJ1dHRvbiwgSUdOT1JFX0VYQ0VQVElPTik7
CiB9CiAKIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjp1cGRhdGVBdXRvRmlsbEJ1dHRvbigpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCmluZGV4IGY2MWUxYjVlZmUy
NzA5MzFkYWIwZWMyZWVkZjBmMzRiZDc3ODJiOTYuLjkwNjI5NWUxOThmNzg0NTY1NjEyYWE1MmNi
OWU2YWM0ZDUzMGZhZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlv
bk1lc3NhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2Uu
Y3BwCkBAIC0xODAsMzIgKzE4MCwzMiBAQCB2b2lkIFZhbGlkYXRpb25NZXNzYWdlOjpidWlsZEJ1
YmJsZVRyZWUoKQogICAgIC8vIE5lZWQgdG8gZm9yY2UgcG9zaXRpb246YWJzb2x1dGUgYmVjYXVz
ZSBSZW5kZXJNZW51TGlzdCBkb2Vzbid0IGFzc3VtZSBpdAogICAgIC8vIGNvbnRhaW5zIG5vbi1h
YnNvbHV0ZSBvciBub24tZml4ZWQgcmVuZGVyZXJzIGFzIGNoaWxkcmVuLgogICAgIG1fYnViYmxl
LT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5UG9zaXRpb24sIENTU1ZhbHVlQWJz
b2x1dGUpOwotICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQobV9idWJibGUuZ2V0KCksIEFTU0VS
VF9OT19FWENFUFRJT04pOworICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoKm1fYnViYmxlLCBB
U1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICBkb2N1bWVudC51cGRhdGVMYXlvdXQoKTsKICAgICBh
ZGp1c3RCdWJibGVQb3NpdGlvbihtX2VsZW1lbnQtPnJlbmRlcmVyKCktPmFic29sdXRlQm91bmRp
bmdCb3hSZWN0KCksIG1fYnViYmxlLmdldCgpKTsKIAotICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVu
dD4gY2xpcHBlciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIFJlZjxI
VE1MRGl2RWxlbWVudD4gY2xpcHBlciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQp
OwogICAgIGNsaXBwZXItPnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtdmFsaWRhdGlv
bi1idWJibGUtYXJyb3ctY2xpcHBlciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKLSAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IGJ1YmJsZUFycm93ID0gSFRNTERpdkVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgUmVmPEhUTUxEaXZFbGVtZW50PiBidWJibGVB
cnJvdyA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGJ1YmJsZUFycm93
LT5zZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLWFycm93
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIGNsaXBwZXItPmFw
cGVuZENoaWxkKGJ1YmJsZUFycm93LnJlbGVhc2UoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0g
ICAgbV9idWJibGUtPmFwcGVuZENoaWxkKGNsaXBwZXIucmVsZWFzZSgpLCBBU1NFUlRfTk9fRVhD
RVBUSU9OKTsKKyAgICBjbGlwcGVyLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoYnViYmxlQXJyb3cp
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBtX2J1YmJsZS0+YXBwZW5kQ2hpbGQoV1RGOjpt
b3ZlKGNsaXBwZXIpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAotICAgIFJlZlB0cjxIVE1MRWxl
bWVudD4gbWVzc2FnZSA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIFJl
ZjxIVE1MRWxlbWVudD4gbWVzc2FnZSA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQp
OwogICAgIG1lc3NhZ2UtPnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtdmFsaWRhdGlv
bi1idWJibGUtbWVzc2FnZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
LSAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IGljb24gPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50KTsKKyAgICBSZWY8SFRNTEVsZW1lbnQ+IGljb24gPSBIVE1MRGl2RWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50KTsKICAgICBpY29uLT5zZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0
LXZhbGlkYXRpb24tYnViYmxlLWljb24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7Ci0gICAgbWVzc2FnZS0+YXBwZW5kQ2hpbGQoaWNvbi5yZWxlYXNlKCksIEFTU0VSVF9O
T19FWENFUFRJT04pOwotICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gdGV4dEJsb2NrID0gSFRNTERp
dkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgbWVzc2FnZS0+YXBwZW5kQ2hpbGQoV1RG
Ojptb3ZlKGljb24pLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBSZWY8SFRNTEVsZW1lbnQ+
IHRleHRCbG9jayA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIHRleHRC
bG9jay0+c2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS10
ZXh0LWJsb2NrIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIG1f
bWVzc2FnZUhlYWRpbmcgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBt
X21lc3NhZ2VIZWFkaW5nLT5zZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LXZhbGlkYXRp
b24tYnViYmxlLWhlYWRpbmciLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
Ci0gICAgdGV4dEJsb2NrLT5hcHBlbmRDaGlsZChtX21lc3NhZ2VIZWFkaW5nLCBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKKyAgICB0ZXh0QmxvY2stPmFwcGVuZENoaWxkKCptX21lc3NhZ2VIZWFkaW5n
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICBtX21lc3NhZ2VCb2R5ID0gSFRNTERpdkVsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgbV9tZXNzYWdlQm9keS0+c2V0UHNldWRvKEF0b21p
Y1N0cmluZygiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1ib2R5IiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIHRleHRCbG9jay0+YXBwZW5kQ2hpbGQobV9tZXNz
YWdlQm9keSwgQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0gICAgbWVzc2FnZS0+YXBwZW5kQ2hpbGQo
dGV4dEJsb2NrLnJlbGVhc2UoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0gICAgbV9idWJibGUt
PmFwcGVuZENoaWxkKG1lc3NhZ2UucmVsZWFzZSgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAg
ICB0ZXh0QmxvY2stPmFwcGVuZENoaWxkKCptX21lc3NhZ2VCb2R5LCBBU1NFUlRfTk9fRVhDRVBU
SU9OKTsKKyAgICBtZXNzYWdlLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUodGV4dEJsb2NrKSwgQVNT
RVJUX05PX0VYQ0VQVElPTik7CisgICAgbV9idWJibGUtPmFwcGVuZENoaWxkKFdURjo6bW92ZSht
ZXNzYWdlKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKICAgICBzZXRNZXNzYWdlRE9NQW5kU3Rh
cnRUaW1lcigpOwogCkBAIC0yMzcsNyArMjM3LDcgQEAgdm9pZCBWYWxpZGF0aW9uTWVzc2FnZTo6
ZGVsZXRlQnViYmxlVHJlZSgpCiAgICAgaWYgKG1fYnViYmxlKSB7CiAgICAgICAgIG1fbWVzc2Fn
ZUhlYWRpbmcgPSBudWxscHRyOwogICAgICAgICBtX21lc3NhZ2VCb2R5ID0gbnVsbHB0cjsKLSAg
ICAgICAgbV9lbGVtZW50LT51c2VyQWdlbnRTaGFkb3dSb290KCktPnJlbW92ZUNoaWxkKG1fYnVi
YmxlLmdldCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgbV9lbGVtZW50LT51c2Vy
QWdlbnRTaGFkb3dSb290KCktPnJlbW92ZUNoaWxkKCptX2J1YmJsZSwgQVNTRVJUX05PX0VYQ0VQ
VElPTik7CiAgICAgICAgIG1fYnViYmxlID0gbnVsbHB0cjsKICAgICB9CiAgICAgbV9tZXNzYWdl
ID0gU3RyaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNv
bnRyb2xFbGVtZW50cy5jcHAKaW5kZXggOWU0ODNhOTlkNDU4OTBlMDY3NmM3ZjhhMjY4ZmJiYTRk
NDA1NDBjMi4uMjJjZTMzOWQzNDgyNTg0ZmNmMTNmNGNhZWVkOGEwYjQ1NmZmYTdkMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNw
cApAQCAtODA3LDIxICs4MDcsMjEgQEAgdm9pZCBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1Ry
YWNrTGlzdEVsZW1lbnQ6OnJlYnVpbGRUcmFja0xpc3RNZW51KCkKICAgICBDYXB0aW9uVXNlclBy
ZWZlcmVuY2VzKiBjYXB0aW9uUHJlZmVyZW5jZXMgPSBkb2N1bWVudCgpLnBhZ2UoKS0+Z3JvdXAo
KS5jYXB0aW9uUHJlZmVyZW5jZXMoKTsKICAgICBWZWN0b3I8UmVmUHRyPFRleHRUcmFjaz4+IHRy
YWNrc0Zvck1lbnUgPSBjYXB0aW9uUHJlZmVyZW5jZXMtPnNvcnRlZFRyYWNrTGlzdEZvck1lbnUo
dHJhY2tMaXN0KTsKIAotICAgIFJlZlB0cjxFbGVtZW50PiBjYXB0aW9uc0hlYWRlciA9IGRvY3Vt
ZW50KCkuY3JlYXRlRWxlbWVudChoM1RhZywgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgUmVm
PEVsZW1lbnQ+IGNhcHRpb25zSGVhZGVyID0gZG9jdW1lbnQoKS5jcmVhdGVFbGVtZW50KGgzVGFn
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICBjYXB0aW9uc0hlYWRlci0+YXBwZW5kQ2hpbGQo
ZG9jdW1lbnQoKS5jcmVhdGVUZXh0Tm9kZSh0ZXh0VHJhY2tTdWJ0aXRsZXNUZXh0KCkpKTsKLSAg
ICBhcHBlbmRDaGlsZChjYXB0aW9uc0hlYWRlcik7Ci0gICAgUmVmUHRyPEVsZW1lbnQ+IGNhcHRp
b25zTWVudUxpc3QgPSBkb2N1bWVudCgpLmNyZWF0ZUVsZW1lbnQodWxUYWcsIEFTU0VSVF9OT19F
WENFUFRJT04pOworICAgIGFwcGVuZENoaWxkKFdURjo6bW92ZShjYXB0aW9uc0hlYWRlcikpOwor
ICAgIFJlZjxFbGVtZW50PiBjYXB0aW9uc01lbnVMaXN0ID0gZG9jdW1lbnQoKS5jcmVhdGVFbGVt
ZW50KHVsVGFnLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAogICAgIGZvciAodW5zaWduZWQgaSA9
IDAsIGxlbmd0aCA9IHRyYWNrc0Zvck1lbnUuc2l6ZSgpOyBpIDwgbGVuZ3RoOyArK2kpIHsKICAg
ICAgICAgUmVmUHRyPFRleHRUcmFjaz4gdGV4dFRyYWNrID0gdHJhY2tzRm9yTWVudVtpXTsKLSAg
ICAgICAgUmVmUHRyPEVsZW1lbnQ+IG1lbnVJdGVtID0gZG9jdW1lbnQoKS5jcmVhdGVFbGVtZW50
KGxpVGFnLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgUmVmPEVsZW1lbnQ+IG1lbnVJ
dGVtID0gZG9jdW1lbnQoKS5jcmVhdGVFbGVtZW50KGxpVGFnLCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKICAgICAgICAgbWVudUl0ZW0tPmFwcGVuZENoaWxkKGRvY3VtZW50KCkuY3JlYXRlVGV4dE5v
ZGUoY2FwdGlvblByZWZlcmVuY2VzLT5kaXNwbGF5TmFtZUZvclRyYWNrKHRleHRUcmFjay5nZXQo
KSkpKTsKLSAgICAgICAgY2FwdGlvbnNNZW51TGlzdC0+YXBwZW5kQ2hpbGQobWVudUl0ZW0pOwot
ICAgICAgICBtX21lbnVJdGVtcy5hcHBlbmQobWVudUl0ZW0pOwotICAgICAgICBtX21lbnVUb1Ry
YWNrTWFwLmFkZChtZW51SXRlbSwgdGV4dFRyYWNrKTsKKyAgICAgICAgY2FwdGlvbnNNZW51TGlz
dC0+YXBwZW5kQ2hpbGQobWVudUl0ZW0uY29weVJlZigpKTsKKyAgICAgICAgbV9tZW51SXRlbXMu
YXBwZW5kKG1lbnVJdGVtLnB0cigpKTsKKyAgICAgICAgbV9tZW51VG9UcmFja01hcC5hZGQobWVu
dUl0ZW0ucHRyKCksIHRleHRUcmFjayk7CiAgICAgfQogCi0gICAgYXBwZW5kQ2hpbGQoY2FwdGlv
bnNNZW51TGlzdCk7CisgICAgYXBwZW5kQ2hpbGQoV1RGOjptb3ZlKGNhcHRpb25zTWVudUxpc3Qp
KTsKICNlbmRpZgogfQogCkBAIC0xMTg2LDE2ICsxMTg2LDE2IEBAIHZvaWQgTWVkaWFDb250cm9s
VGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6dXBkYXRlRGlzcGxheSgpCiAgICAgICAgICAgICAv
LyB0cmFjayBjdWUgcmVnaW9uIGlkZW50aWZpZXIsIHJ1biB0aGUgZm9sbG93aW5nIHN1YnN0ZXBz
OgogICAgICAgICAgICAgaWYgKGRpc3BsYXlCb3gtPmhhc0NoaWxkTm9kZXMoKSAmJiAhY29udGFp
bnMoZGlzcGxheUJveC5nZXQoKSkpIHsKICAgICAgICAgICAgICAgICAvLyBOb3RlOiB0aGUgZGlz
cGxheSB0cmVlIG9mIGEgY3VlIGlzIHJlbW92ZWQgd2hlbiB0aGUgYWN0aXZlIGZsYWcgb2YgdGhl
IGN1ZSBpcyB1bnNldC4KLSAgICAgICAgICAgICAgICBhcHBlbmRDaGlsZChkaXNwbGF5Qm94LCBB
U1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgICAgICAgICBhcHBlbmRDaGlsZCgqZGlzcGxh
eUJveCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgICAgICAgICAgICAgY3VlLT5zZXRGb250
U2l6ZShtX2ZvbnRTaXplLCBtX3ZpZGVvRGlzcGxheVNpemUuc2l6ZSgpLCBtX2ZvbnRTaXplSXNJ
bXBvcnRhbnQpOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
Ly8gTGV0IHJlZ2lvbiBiZSB0aGUgV2ViVlRUIHJlZ2lvbiB3aG9zZSByZWdpb24gaWRlbnRpZmll
cgogICAgICAgICAgICAgLy8gbWF0Y2hlcyB0aGUgdGV4dCB0cmFjayBjdWUgcmVnaW9uIGlkZW50
aWZpZXIgb2YgY3VlLgotICAgICAgICAgICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiByZWdpb25O
b2RlID0gcmVnaW9uLT5nZXREaXNwbGF5VHJlZSgpOworICAgICAgICAgICAgUmVmPEhUTUxEaXZF
bGVtZW50PiByZWdpb25Ob2RlID0gcmVnaW9uLT5nZXREaXNwbGF5VHJlZSgpOwogCiAgICAgICAg
ICAgICAvLyBBcHBlbmQgdGhlIHJlZ2lvbiB0byB0aGUgdmlld3BvcnQsIGlmIGl0IHdhcyBub3Qg
YWxyZWFkeS4KLSAgICAgICAgICAgIGlmICghY29udGFpbnMocmVnaW9uTm9kZS5nZXQoKSkpCisg
ICAgICAgICAgICBpZiAoIWNvbnRhaW5zKHJlZ2lvbk5vZGUucHRyKCkpKQogICAgICAgICAgICAg
ICAgIGFwcGVuZENoaWxkKHJlZ2lvbi0+Z2V0RGlzcGxheVRyZWUoKSk7CiAKICAgICAgICAgICAg
IHJlZ2lvbi0+YXBwZW5kVGV4dFRyYWNrQ3VlQm94KGRpc3BsYXlCb3gpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmNwcAppbmRleCAzZGQ2ZGU4NmRhMWZjY2Qx
ZmUxYTA2MDg1M2Q0NzEyM2E0YTcwZDk4Li45ZGY5OThmMWE5ODdiYzkyZmY3ODg0ZDU1MzMxODYy
YTE1Y2I5YjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNv
bnRyb2xzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xz
LmNwcApAQCAtMzgwLDE0ICszODAsMTQgQEAgdm9pZCBNZWRpYUNvbnRyb2xzOjpjcmVhdGVUZXh0
VHJhY2tEaXNwbGF5KCkKICAgICBpZiAobV90ZXh0RGlzcGxheUNvbnRhaW5lcikKICAgICAgICAg
cmV0dXJuOwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1l
bnQ+IHRleHREaXNwbGF5Q29udGFpbmVyID0gTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVy
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwotICAgIG1fdGV4dERpc3BsYXlDb250YWluZXIg
PSB0ZXh0RGlzcGxheUNvbnRhaW5lci5nZXQoKTsKKyAgICBSZWY8TWVkaWFDb250cm9sVGV4dFRy
YWNrQ29udGFpbmVyRWxlbWVudD4gdGV4dERpc3BsYXlDb250YWluZXIgPSBNZWRpYUNvbnRyb2xU
ZXh0VHJhY2tDb250YWluZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CisgICAgbV90ZXh0
RGlzcGxheUNvbnRhaW5lciA9IHRleHREaXNwbGF5Q29udGFpbmVyLnB0cigpOwogCiAgICAgaWYg
KG1fbWVkaWFDb250cm9sbGVyKQogICAgICAgICBtX3RleHREaXNwbGF5Q29udGFpbmVyLT5zZXRN
ZWRpYUNvbnRyb2xsZXIobV9tZWRpYUNvbnRyb2xsZXIpOwogCiAgICAgLy8gSW5zZXJ0IGl0IGJl
Zm9yZSB0aGUgZmlyc3QgY29udHJvbGxlciBlbGVtZW50IHNvIGl0IGFsd2F5cyBkaXNwbGF5cyBi
ZWhpbmQgdGhlIGNvbnRyb2xzLgotICAgIGluc2VydEJlZm9yZSh0ZXh0RGlzcGxheUNvbnRhaW5l
ci5yZWxlYXNlKCksIG1fcGFuZWwsIElHTk9SRV9FWENFUFRJT04pOworICAgIGluc2VydEJlZm9y
ZShXVEY6Om1vdmUodGV4dERpc3BsYXlDb250YWluZXIpLCBtX3BhbmVsLCBJR05PUkVfRVhDRVBU
SU9OKTsKIH0KIAogdm9pZCBNZWRpYUNvbnRyb2xzOjpzaG93VGV4dFRyYWNrRGlzcGxheSgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQXBwbGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0FwcGxlLmNwcApp
bmRleCAzZjQyYWJhNzVjNGQyZDk3YWViYzEyMWRiNDhiNWM4MTU4M2IwOWNlLi43ZmIyNjNkOGE3
ODhjOTA3ZTk2ZjI1YWJmMDk2ZTE1NWJhMGJhOTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQXBwbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNBcHBsZS5jcHAKQEAgLTYzLDE2NSArNjMsMTY1IEBA
IFBhc3NSZWZQdHI8TWVkaWFDb250cm9scz4gTWVkaWFDb250cm9sczo6Y3JlYXRlKERvY3VtZW50
JiBkb2N1bWVudCkKIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sc0FwcGxlPiBNZWRpYUNvbnRyb2xz
QXBwbGU6OmNyZWF0ZUNvbnRyb2xzKERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBpZiAoIWRv
Y3VtZW50LnBhZ2UoKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRy
OwogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbHNBcHBsZT4gY29udHJvbHMgPSBhZG9wdFJlZihu
ZXcgTWVkaWFDb250cm9sc0FwcGxlKGRvY3VtZW50KSk7CiAKLSAgICBSZWZQdHI8TWVkaWFDb250
cm9sUGFuZWxFbGVtZW50PiBwYW5lbCA9IE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KTsKKyAgICBSZWY8TWVkaWFDb250cm9sUGFuZWxFbGVtZW50PiBwYW5lbCA9IE1l
ZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKIAogICAgIEV4Y2VwdGlv
bkNvZGUgZWM7CiAKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudD4g
cmV3aW5kQnV0dG9uID0gTWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50KTsKLSAgICBjb250cm9scy0+bV9yZXdpbmRCdXR0b24gPSByZXdpbmRCdXR0b24uZ2V0
KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKHJld2luZEJ1dHRvbi5yZWxlYXNlKCksIGVjKTsK
KyAgICBSZWY8TWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudD4gcmV3aW5kQnV0dG9uID0g
TWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBj
b250cm9scy0+bV9yZXdpbmRCdXR0b24gPSByZXdpbmRCdXR0b24ucHRyKCk7CisgICAgcGFuZWwt
PmFwcGVuZENoaWxkKFdURjo6bW92ZShyZXdpbmRCdXR0b24pLCBlYyk7CiAgICAgaWYgKGVjKQot
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBSZWZQdHI8
TWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ+IHBsYXlCdXR0b24gPSBNZWRpYUNvbnRyb2xQ
bGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBjb250cm9scy0+bV9wbGF5
QnV0dG9uID0gcGxheUJ1dHRvbi5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQocGxheUJ1
dHRvbi5yZWxlYXNlKCksIGVjKTsKKyAgICBSZWY8TWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1l
bnQ+IHBsYXlCdXR0b24gPSBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50KTsKKyAgICBjb250cm9scy0+bV9wbGF5QnV0dG9uID0gcGxheUJ1dHRvbi5wdHIoKTsK
KyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHBsYXlCdXR0b24pLCBlYyk7CiAgICAg
aWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAg
ICBSZWZQdHI8TWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ+IHJldHVy
blRvUmVhbHRpbWVCdXR0b24gPSBNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBjb250cm9scy0+bV9yZXR1cm5Ub1JlYWxUaW1l
QnV0dG9uID0gcmV0dXJuVG9SZWFsdGltZUJ1dHRvbi5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5k
Q2hpbGQocmV0dXJuVG9SZWFsdGltZUJ1dHRvbi5yZWxlYXNlKCksIGVjKTsKKyAgICBSZWY8TWVk
aWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ+IHJldHVyblRvUmVhbHRpbWVC
dXR0b24gPSBNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KTsKKyAgICBjb250cm9scy0+bV9yZXR1cm5Ub1JlYWxUaW1lQnV0dG9uID0gcmV0
dXJuVG9SZWFsdGltZUJ1dHRvbi5wdHIoKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGOjpt
b3ZlKHJldHVyblRvUmVhbHRpbWVCdXR0b24pLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAgICBy
ZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBpZiAoZG9jdW1lbnQucGFn
ZSgpLT50aGVtZSgpLnVzZXNNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5KCkpIHsKLSAgICAgICAg
UmVmUHRyPE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50PiBzdGF0dXNEaXNwbGF5ID0g
TWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAg
ICAgIGNvbnRyb2xzLT5tX3N0YXR1c0Rpc3BsYXkgPSBzdGF0dXNEaXNwbGF5LmdldCgpOwotICAg
ICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoc3RhdHVzRGlzcGxheS5yZWxlYXNlKCksIGVjKTsKKyAg
ICAgICAgUmVmPE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50PiBzdGF0dXNEaXNwbGF5
ID0gTWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Cisg
ICAgICAgIGNvbnRyb2xzLT5tX3N0YXR1c0Rpc3BsYXkgPSBzdGF0dXNEaXNwbGF5LnB0cigpOwor
ICAgICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHN0YXR1c0Rpc3BsYXkpLCBlYyk7
CiAgICAgICAgIGlmIChlYykKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVsaW5lQ29u
dGFpbmVyRWxlbWVudD4gdGltZWxpbmVDb250YWluZXIgPSBNZWRpYUNvbnRyb2xUaW1lbGluZUNv
bnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgUmVmPE1lZGlhQ29udHJvbFRp
bWVsaW5lQ29udGFpbmVyRWxlbWVudD4gdGltZWxpbmVDb250YWluZXIgPSBNZWRpYUNvbnRyb2xU
aW1lbGluZUNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAKLSAgICBSZWZQdHI8
TWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudD4gY3VycmVudFRpbWVEaXNwbGF5
ID0gTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
KTsKLSAgICBjb250cm9scy0+bV9jdXJyZW50VGltZURpc3BsYXkgPSBjdXJyZW50VGltZURpc3Bs
YXkuZ2V0KCk7Ci0gICAgdGltZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKGN1cnJlbnRUaW1l
RGlzcGxheS5yZWxlYXNlKCksIGVjKTsKKyAgICBSZWY8TWVkaWFDb250cm9sQ3VycmVudFRpbWVE
aXNwbGF5RWxlbWVudD4gY3VycmVudFRpbWVEaXNwbGF5ID0gTWVkaWFDb250cm9sQ3VycmVudFRp
bWVEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBjb250cm9scy0+bV9jdXJy
ZW50VGltZURpc3BsYXkgPSBjdXJyZW50VGltZURpc3BsYXkucHRyKCk7CisgICAgdGltZWxpbmVD
b250YWluZXItPmFwcGVuZENoaWxkKFdURjo6bW92ZShjdXJyZW50VGltZURpc3BsYXkpLCBlYyk7
CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50PiB0aW1lbGluZSA9IE1l
ZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBjb250cm9scy5nZXQo
KSk7Ci0gICAgY29udHJvbHMtPm1fdGltZWxpbmUgPSB0aW1lbGluZS5nZXQoKTsKLSAgICB0aW1l
bGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQodGltZWxpbmUucmVsZWFzZSgpLCBlYyk7CisgICAg
UmVmPE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudD4gdGltZWxpbmUgPSBNZWRpYUNvbnRyb2xU
aW1lbGluZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOworICAgIGNv
bnRyb2xzLT5tX3RpbWVsaW5lID0gdGltZWxpbmUucHRyKCk7CisgICAgdGltZWxpbmVDb250YWlu
ZXItPmFwcGVuZENoaWxkKFdURjo6bW92ZSh0aW1lbGluZSksIGVjKTsKICAgICBpZiAoZWMpCi0g
ICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIFJlZlB0cjxN
ZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ+IHRpbWVSZW1haW5pbmdEaXNw
bGF5ID0gTWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQpOwotICAgIGNvbnRyb2xzLT5tX3RpbWVSZW1haW5pbmdEaXNwbGF5ID0gdGltZVJlbWFp
bmluZ0Rpc3BsYXkuZ2V0KCk7Ci0gICAgdGltZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKHRp
bWVSZW1haW5pbmdEaXNwbGF5LnJlbGVhc2UoKSwgZWMpOworICAgIFJlZjxNZWRpYUNvbnRyb2xU
aW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ+IHRpbWVSZW1haW5pbmdEaXNwbGF5ID0gTWVkaWFD
b250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAg
IGNvbnRyb2xzLT5tX3RpbWVSZW1haW5pbmdEaXNwbGF5ID0gdGltZVJlbWFpbmluZ0Rpc3BsYXku
cHRyKCk7CisgICAgdGltZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKFdURjo6bW92ZSh0aW1l
UmVtYWluaW5nRGlzcGxheSksIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGNvbnRyb2xzLT5tX3RpbWVsaW5lQ29udGFp
bmVyID0gdGltZWxpbmVDb250YWluZXIuZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKHRp
bWVsaW5lQ29udGFpbmVyLnJlbGVhc2UoKSwgZWMpOworICAgIGNvbnRyb2xzLT5tX3RpbWVsaW5l
Q29udGFpbmVyID0gdGltZWxpbmVDb250YWluZXIucHRyKCk7CisgICAgcGFuZWwtPmFwcGVuZENo
aWxkKFdURjo6bW92ZSh0aW1lbGluZUNvbnRhaW5lciksIGVjKTsKICAgICBpZiAoZWMpCi0gICAg
ICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIC8vIEZJWE1FOiBP
bmx5IGNyZWF0ZSB3aGVuIG5lZWRlZCA8aHR0cDovL3dlYmtpdC5vcmcvYi81NzE2Mz4KLSAgICBS
ZWZQdHI8TWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50PiBzZWVrQmFja0J1dHRvbiA9
IE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAg
ICBjb250cm9scy0+bV9zZWVrQmFja0J1dHRvbiA9IHNlZWtCYWNrQnV0dG9uLmdldCgpOwotICAg
IHBhbmVsLT5hcHBlbmRDaGlsZChzZWVrQmFja0J1dHRvbi5yZWxlYXNlKCksIGVjKTsKKyAgICBS
ZWY8TWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50PiBzZWVrQmFja0J1dHRvbiA9IE1l
ZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBj
b250cm9scy0+bV9zZWVrQmFja0J1dHRvbiA9IHNlZWtCYWNrQnV0dG9uLnB0cigpOworICAgIHBh
bmVsLT5hcHBlbmRDaGlsZChXVEY6Om1vdmUoc2Vla0JhY2tCdXR0b24pLCBlYyk7CiAgICAgaWYg
KGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAv
LyBGSVhNRTogT25seSBjcmVhdGUgd2hlbiBuZWVkZWQgPGh0dHA6Ly93ZWJraXQub3JnL2IvNTcx
NjM+Ci0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudD4gc2Vl
a0ZvcndhcmRCdXR0b24gPSBNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJvbHMtPm1fc2Vla0ZvcndhcmRCdXR0b24gPSBzZWVr
Rm9yd2FyZEJ1dHRvbi5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoc2Vla0ZvcndhcmRC
dXR0b24ucmVsZWFzZSgpLCBlYyk7CisgICAgUmVmPE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0
dG9uRWxlbWVudD4gc2Vla0ZvcndhcmRCdXR0b24gPSBNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1
dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgY29udHJvbHMtPm1fc2Vla0Zvcndh
cmRCdXR0b24gPSBzZWVrRm9yd2FyZEJ1dHRvbi5wdHIoKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hp
bGQoV1RGOjptb3ZlKHNlZWtGb3J3YXJkQnV0dG9uKSwgZWMpOwogICAgIGlmIChlYykKLSAgICAg
ICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgaWYgKGRvY3VtZW50
LnBhZ2UoKS0+dGhlbWUoKS5zdXBwb3J0c0Nsb3NlZENhcHRpb25pbmcoKSkgewotICAgICAgICBS
ZWZQdHI8TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50PiBjbG9zZWRD
YXB0aW9uc0NvbnRhaW5lciA9IE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICAgICAgUmVmPE1lZGlhQ29udHJvbENsb3NlZENh
cHRpb25zQ29udGFpbmVyRWxlbWVudD4gY2xvc2VkQ2FwdGlvbnNDb250YWluZXIgPSBNZWRpYUNv
bnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAK
LSAgICAgICAgUmVmUHRyPE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVu
dD4gY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QgPSBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1Ry
YWNrTGlzdEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOwotICAgICAg
ICBjb250cm9scy0+bV9jbG9zZWRDYXB0aW9uc1RyYWNrTGlzdCA9IGNsb3NlZENhcHRpb25zVHJh
Y2tMaXN0LmdldCgpOwotICAgICAgICBjbG9zZWRDYXB0aW9uc0NvbnRhaW5lci0+YXBwZW5kQ2hp
bGQoY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QucmVsZWFzZSgpLCBlYyk7CisgICAgICAgIFJlZjxN
ZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ+IGNsb3NlZENhcHRpb25z
VHJhY2tMaXN0ID0gTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKKyAgICAgICAgY29udHJvbHMtPm1fY2xv
c2VkQ2FwdGlvbnNUcmFja0xpc3QgPSBjbG9zZWRDYXB0aW9uc1RyYWNrTGlzdC5wdHIoKTsKKyAg
ICAgICAgY2xvc2VkQ2FwdGlvbnNDb250YWluZXItPmFwcGVuZENoaWxkKFdURjo6bW92ZShjbG9z
ZWRDYXB0aW9uc1RyYWNrTGlzdCksIGVjKTsKICAgICAgICAgaWYgKGVjKQotICAgICAgICAgICAg
cmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICBSZWZQdHI8
TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50PiB0b2dnbGVDbG9z
ZWRDYXB0aW9uc0J1dHRvbiA9IE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9u
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBjb250cm9scy5nZXQoKSk7Ci0gICAgICAgIGNvbnRy
b2xzLT5tX3RvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uID0gdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNC
dXR0b24uZ2V0KCk7Ci0gICAgICAgIHBhbmVsLT5hcHBlbmRDaGlsZCh0b2dnbGVDbG9zZWRDYXB0
aW9uc0J1dHRvbi5yZWxlYXNlKCksIGVjKTsKKyAgICAgICAgUmVmPE1lZGlhQ29udHJvbFRvZ2ds
ZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudD4gdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24g
PSBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOworICAgICAgICBjb250cm9scy0+bV90b2dnbGVDbG9z
ZWRDYXB0aW9uc0J1dHRvbiA9IHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uLnB0cigpOworICAg
ICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0
dG9uKSwgZWMpOwogICAgICAgICBpZiAoZWMpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAg
ICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgICAgIGNvbnRyb2xzLT5tX2Nsb3NlZENhcHRp
b25zQ29udGFpbmVyID0gY2xvc2VkQ2FwdGlvbnNDb250YWluZXIuZ2V0KCk7Ci0gICAgICAgIGNv
bnRyb2xzLT5hcHBlbmRDaGlsZChjbG9zZWRDYXB0aW9uc0NvbnRhaW5lci5yZWxlYXNlKCksIGVj
KTsKKyAgICAgICAgY29udHJvbHMtPm1fY2xvc2VkQ2FwdGlvbnNDb250YWluZXIgPSBjbG9zZWRD
YXB0aW9uc0NvbnRhaW5lci5wdHIoKTsKKyAgICAgICAgY29udHJvbHMtPmFwcGVuZENoaWxkKFdU
Rjo6bW92ZShjbG9zZWRDYXB0aW9uc0NvbnRhaW5lciksIGVjKTsKICAgICAgICAgaWYgKGVjKQot
ICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9
CiAKICAgICAvLyBGSVhNRTogT25seSBjcmVhdGUgd2hlbiBuZWVkZWQgPGh0dHA6Ly93ZWJraXQu
b3JnL2IvNTcxNjM+Ci0gICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVt
ZW50PiBmdWxsU2NyZWVuQnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJvbHMtPm1fZnVsbFNjcmVlbkJ1dHRvbiA9
IGZ1bGxTY3JlZW5CdXR0b24uZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKGZ1bGxTY3Jl
ZW5CdXR0b24ucmVsZWFzZSgpLCBlYyk7CisgICAgUmVmPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5C
dXR0b25FbGVtZW50PiBmdWxsU2NyZWVuQnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1
dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgY29udHJvbHMtPm1fZnVsbFNjcmVl
bkJ1dHRvbiA9IGZ1bGxTY3JlZW5CdXR0b24ucHRyKCk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxk
KFdURjo6bW92ZShmdWxsU2NyZWVuQnV0dG9uKSwgZWMpOwogCiAgICAgLy8gVGhlIG11dGUgYnV0
dG9uIGFuZCB0aGUgc2xpZGVyIGVsZW1lbnQgc2hvdWxkIGJlIGluIHRoZSBzYW1lIGRpdi4KLSAg
ICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IHBhbmVsVm9sdW1lQ29udHJvbENvbnRhaW5lciA9IEhU
TUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIFJlZjxIVE1MRGl2RWxlbWVudD4g
cGFuZWxWb2x1bWVDb250cm9sQ29udGFpbmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCk7CiAKICAgICBpZiAoZG9jdW1lbnQucGFnZSgpLT50aGVtZSgpLnVzZXNNZWRpYUNvbnRy
b2xWb2x1bWVTbGlkZXIoKSkgewotICAgICAgICBSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xp
ZGVyQ29udGFpbmVyRWxlbWVudD4gdm9sdW1lU2xpZGVyQ29udGFpbmVyID0gTWVkaWFDb250cm9s
Vm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICAgICAg
UmVmPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ+IHZvbHVtZVNsaWRl
ckNvbnRhaW5lciA9IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCk7CiAKLSAgICAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsVm9sdW1l
U2xpZGVyRWxlbWVudD4gc2xpZGVyID0gTWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgICAgICBjb250cm9scy0+bV92b2x1bWVTbGlkZXIg
PSBzbGlkZXIuZ2V0KCk7Ci0gICAgICAgIHZvbHVtZVNsaWRlckNvbnRhaW5lci0+YXBwZW5kQ2hp
bGQoc2xpZGVyLnJlbGVhc2UoKSwgZWMpOworICAgICAgICBSZWY8TWVkaWFDb250cm9sUGFuZWxW
b2x1bWVTbGlkZXJFbGVtZW50PiBzbGlkZXIgPSBNZWRpYUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRl
ckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgICAgIGNvbnRyb2xzLT5tX3ZvbHVtZVNs
aWRlciA9IHNsaWRlci5wdHIoKTsKKyAgICAgICAgdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5hcHBl
bmRDaGlsZChXVEY6Om1vdmUoc2xpZGVyKSwgZWMpOwogICAgICAgICBpZiAoZWMpCi0gICAgICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgICAgIC8v
IFRoaXMgaXMgYSBkdXBsaWNhdGUgbXV0ZSBidXR0b24sIHdoaWNoIGlzIHZpc2libGUgaW4gc29t
ZSBwb3J0cyBhdCB0aGUgYm90dG9tIG9mIHRoZSB2b2x1bWUgYmFyLgogICAgICAgICAvLyBJdCdz
IGltcG9ydGFudCBvbmx5IHdoZW4gdGhlIHZvbHVtZSBiYXIgaXMgZGlzcGxheWVkIGJlbG93IHRo
ZSBjb250cm9scy4KLSAgICAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVC
dXR0b25FbGVtZW50PiB2b2x1bWVTbGlkZXJNdXRlQnV0dG9uID0gTWVkaWFDb250cm9sVm9sdW1l
U2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgICAgIGNvbnRy
b2xzLT5tX3ZvbHVtZVNsaWRlck11dGVCdXR0b24gPSB2b2x1bWVTbGlkZXJNdXRlQnV0dG9uLmdl
dCgpOwotICAgICAgICB2b2x1bWVTbGlkZXJDb250YWluZXItPmFwcGVuZENoaWxkKHZvbHVtZVNs
aWRlck11dGVCdXR0b24ucmVsZWFzZSgpLCBlYyk7CisgICAgICAgIFJlZjxNZWRpYUNvbnRyb2xW
b2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudD4gdm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbiA9IE1l
ZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQp
OworICAgICAgICBjb250cm9scy0+bV92b2x1bWVTbGlkZXJNdXRlQnV0dG9uID0gdm9sdW1lU2xp
ZGVyTXV0ZUJ1dHRvbi5wdHIoKTsKKyAgICAgICAgdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5hcHBl
bmRDaGlsZChXVEY6Om1vdmUodm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbiksIGVjKTsKIAogICAgICAg
ICBpZiAoZWMpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCi0gICAgICAgIGNvbnRyb2xzLT5tX3ZvbHVtZVNsaWRlckNvbnRhaW5lciA9IHZvbHVt
ZVNsaWRlckNvbnRhaW5lci5nZXQoKTsKLSAgICAgICAgcGFuZWxWb2x1bWVDb250cm9sQ29udGFp
bmVyLT5hcHBlbmRDaGlsZCh2b2x1bWVTbGlkZXJDb250YWluZXIucmVsZWFzZSgpLCBlYyk7Cisg
ICAgICAgIGNvbnRyb2xzLT5tX3ZvbHVtZVNsaWRlckNvbnRhaW5lciA9IHZvbHVtZVNsaWRlckNv
bnRhaW5lci5wdHIoKTsKKyAgICAgICAgcGFuZWxWb2x1bWVDb250cm9sQ29udGFpbmVyLT5hcHBl
bmRDaGlsZChXVEY6Om1vdmUodm9sdW1lU2xpZGVyQ29udGFpbmVyKSwgZWMpOwogICAgICAgICBp
ZiAoZWMpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIH0KIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50
PiBwYW5lbE11dGVCdXR0b24gPSBNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKLSAgICBjb250cm9scy0+bV9wYW5lbE11
dGVCdXR0b24gPSBwYW5lbE11dGVCdXR0b24uZ2V0KCk7Ci0gICAgcGFuZWxWb2x1bWVDb250cm9s
Q29udGFpbmVyLT5hcHBlbmRDaGlsZChwYW5lbE11dGVCdXR0b24ucmVsZWFzZSgpLCBlYyk7Cisg
ICAgUmVmPE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ+IHBhbmVsTXV0ZUJ1dHRv
biA9IE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwg
Y29udHJvbHMuZ2V0KCkpOworICAgIGNvbnRyb2xzLT5tX3BhbmVsTXV0ZUJ1dHRvbiA9IHBhbmVs
TXV0ZUJ1dHRvbi5wdHIoKTsKKyAgICBwYW5lbFZvbHVtZUNvbnRyb2xDb250YWluZXItPmFwcGVu
ZENoaWxkKFdURjo6bW92ZShwYW5lbE11dGVCdXR0b24pLCBlYyk7CiAgICAgaWYgKGVjKQotICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBwYW5lbC0+YXBw
ZW5kQ2hpbGQocGFuZWxWb2x1bWVDb250cm9sQ29udGFpbmVyLCBlYyk7CisgICAgcGFuZWwtPmFw
cGVuZENoaWxkKFdURjo6bW92ZShwYW5lbFZvbHVtZUNvbnRyb2xDb250YWluZXIpLCBlYyk7CiAg
ICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
ICAgICAvLyBGSVhNRTogT25seSBjcmVhdGUgd2hlbiBuZWVkZWQgPGh0dHA6Ly93ZWJraXQub3Jn
L2IvNTcxNjM+Ci0gICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0
b25FbGVtZW50PiBmdWxsU2NyZWVuTWluVm9sdW1lQnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNj
cmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJv
bHMtPm1fZnVsbFNjcmVlbk1pblZvbHVtZUJ1dHRvbiA9IGZ1bGxTY3JlZW5NaW5Wb2x1bWVCdXR0
b24uZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKGZ1bGxTY3JlZW5NaW5Wb2x1bWVCdXR0
b24ucmVsZWFzZSgpLCBlYyk7CisgICAgUmVmPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVN
aW5CdXR0b25FbGVtZW50PiBmdWxsU2NyZWVuTWluVm9sdW1lQnV0dG9uID0gTWVkaWFDb250cm9s
RnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAg
Y29udHJvbHMtPm1fZnVsbFNjcmVlbk1pblZvbHVtZUJ1dHRvbiA9IGZ1bGxTY3JlZW5NaW5Wb2x1
bWVCdXR0b24ucHRyKCk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdURjo6bW92ZShmdWxsU2Ny
ZWVuTWluVm9sdW1lQnV0dG9uKSwgZWMpOwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxz
Y3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50PiBmdWxsU2NyZWVuVm9sdW1lU2xpZGVyID0gTWVkaWFD
b250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0g
ICAgY29udHJvbHMtPm1fZnVsbFNjcmVlblZvbHVtZVNsaWRlciA9IGZ1bGxTY3JlZW5Wb2x1bWVT
bGlkZXIuZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKGZ1bGxTY3JlZW5Wb2x1bWVTbGlk
ZXIucmVsZWFzZSgpLCBlYyk7CisgICAgUmVmPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVT
bGlkZXJFbGVtZW50PiBmdWxsU2NyZWVuVm9sdW1lU2xpZGVyID0gTWVkaWFDb250cm9sRnVsbHNj
cmVlblZvbHVtZVNsaWRlckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgY29udHJvbHMt
Pm1fZnVsbFNjcmVlblZvbHVtZVNsaWRlciA9IGZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXIucHRyKCk7
CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdURjo6bW92ZShmdWxsU2NyZWVuVm9sdW1lU2xpZGVy
KSwgZWMpOwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBu
dWxscHRyOwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0
b25FbGVtZW50PiBmdWxsU2NyZWVuTWF4Vm9sdW1lQnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNj
cmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJv
bHMtPm1fZnVsbFNjcmVlbk1heFZvbHVtZUJ1dHRvbiA9IGZ1bGxTY3JlZW5NYXhWb2x1bWVCdXR0
b24uZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKGZ1bGxTY3JlZW5NYXhWb2x1bWVCdXR0
b24ucmVsZWFzZSgpLCBlYyk7CisgICAgUmVmPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVN
YXhCdXR0b25FbGVtZW50PiBmdWxsU2NyZWVuTWF4Vm9sdW1lQnV0dG9uID0gTWVkaWFDb250cm9s
RnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAg
Y29udHJvbHMtPm1fZnVsbFNjcmVlbk1heFZvbHVtZUJ1dHRvbiA9IGZ1bGxTY3JlZW5NYXhWb2x1
bWVCdXR0b24ucHRyKCk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdURjo6bW92ZShmdWxsU2Ny
ZWVuTWF4Vm9sdW1lQnV0dG9uKSwgZWMpOwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgY29udHJvbHMtPm1fcGFuZWwgPSBwYW5l
bC5nZXQoKTsKLSAgICBjb250cm9scy0+YXBwZW5kQ2hpbGQocGFuZWwucmVsZWFzZSgpLCBlYyk7
CisgICAgY29udHJvbHMtPm1fcGFuZWwgPSBwYW5lbC5wdHIoKTsKKyAgICBjb250cm9scy0+YXBw
ZW5kQ2hpbGQoV1RGOjptb3ZlKHBhbmVsKSwgZWMpOwogICAgIGlmIChlYykKLSAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgcmV0dXJuIGNvbnRyb2xzLnJl
bGVhc2UoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRl
clRodW1iRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVt
YkVsZW1lbnQuY3BwCmluZGV4IDBhMWJiODNmYjE5Yzc1NTZkYWNkMTZjZmRkYzc4Njk4NGJkNTE3
ODMuLjlkZGQ1NTJiZDhjZWU5NmM2MWZlYWI4MWZlM2Q0NmI2ZTAwZGU5YjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcApAQCAtNjEx
LDcgKzYxMSw3IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgU2xpZGVyVGh1bWJFbGVtZW50OjpzaGFk
b3dQc2V1ZG9JZCgpIGNvbnN0CiAgICAgfQogfQogCi1SZWZQdHI8RWxlbWVudD4gU2xpZGVyVGh1
bWJFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERvY3Vt
ZW50JiB0YXJnZXREb2N1bWVudCkKK1JlZjxFbGVtZW50PiBTbGlkZXJUaHVtYkVsZW1lbnQ6OmNs
b25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmIHRhcmdldERv
Y3VtZW50KQogewogICAgIHJldHVybiBjcmVhdGUodGFyZ2V0RG9jdW1lbnQpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaAppbmRleCA0OGVj
ZDU1MjZkMGIwYTU3ODE2MGY3MmQ4MjYyYjJmMTdiZmU2YWI4Li5jZjJmODVhN2VkZGY3OTRlNzg1
ZGY3NmJhYzA5ZjkzODY1NWZkMjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9TbGlkZXJUaHVtYkVsZW1lbnQuaApAQCAtNjIsNyArNjIsNyBAQCBwcml2YXRlOgogICAgIFNs
aWRlclRodW1iRWxlbWVudChEb2N1bWVudCYpOwogCiAgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlZjxSZW5kZXJTdHlsZT4mJiwgY29u
c3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZWZQdHI8RWxl
bWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1bWVudCYp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRB
dHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJv
b2wgaXNEaXNhYmxlZEZvcm1Db250cm9sKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBi
b29sIG1hdGNoZXNSZWFkV3JpdGVQc2V1ZG9DbGFzcygpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgRWxlbWVudCogZm9jdXNEZWxlZ2F0ZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVt
ZW50TWFjLmNwcAppbmRleCBhNDRhNWRlMDY5MmExNmIzYjQ5ZGI4NzQxMTk1YmFhYWRlN2Y1OTZj
Li5jNDRjNTE4ODJjYjgxODc4NjFiNjZiNTZjZmM1YTljMjI4ZTJhZWRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFj
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jv
b3RFbGVtZW50TWFjLmNwcApAQCAtODUsMTIgKzg1LDEzIEBAIFJlZlB0cjxJbWFnZUNvbnRyb2xz
Um9vdEVsZW1lbnQ+IEltYWdlQ29udHJvbHNSb290RWxlbWVudDo6bWF5YmVDcmVhdGUoRG9jdW1l
bnQmCiAgICAgaWYgKCFkb2N1bWVudC5wYWdlKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
Ci0gICAgUmVmUHRyPEltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYz4gY29udHJvbHMgPSBhZG9w
dFJlZigqbmV3IEltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYyhkb2N1bWVudCkpOworICAgIFJl
ZjxJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWM+IGNvbnRyb2xzID0gYWRvcHRSZWYoKm5ldyBJ
bWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMoZG9jdW1lbnQpKTsKICAgICBjb250cm9scy0+c2V0
QXR0cmlidXRlKEhUTUxOYW1lczo6Y2xhc3NBdHRyLCAieC13ZWJraXQtaW1hZ2UtY29udHJvbHMi
KTsKIAotICAgIGNvbnRyb2xzLT5hcHBlbmRDaGlsZChJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVu
dE1hYzo6bWF5YmVDcmVhdGUoZG9jdW1lbnQpKTsKKyAgICBpZiAoUmVmUHRyPEltYWdlQ29udHJv
bHNCdXR0b25FbGVtZW50TWFjPiBidXR0b24gPSBJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1h
Yzo6bWF5YmVDcmVhdGUoZG9jdW1lbnQpKQorICAgICAgICBjb250cm9scy0+YXBwZW5kQ2hpbGQo
YnV0dG9uLnJlbGVhc2VOb25OdWxsKCkpOwogCi0gICAgcmV0dXJuIGNvbnRyb2xzLnJlbGVhc2Uo
KTsKKyAgICByZXR1cm4gV1RGOjptb3ZlKGNvbnRyb2xzKTsKIH0KIAogSW1hZ2VDb250cm9sc1Jv
b3RFbGVtZW50TWFjOjpJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMoRG9jdW1lbnQmIGRvY3Vt
ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3BwCmluZGV4IGE5NjkwZDZmOTk2MTlm
MzcwOWE2YjhhMjVkNmJmZTMxNTM1MGFhZWQuLjlkNmNhNzJkYThkODE1Yjc3ZjA1OThmOGQ5ZjIz
MTIzOWI5ZjU2OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3Vl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAKQEAgLTQ5Niw3
ICs0OTYsNyBAQCB2b2lkIFZUVEN1ZTo6Y29weVdlYlZUVE5vZGVUb0RPTVRyZWUoQ29udGFpbmVy
Tm9kZSogd2ViVlRUTm9kZSwgQ29udGFpbmVyTm9kZSogcAogICAgICAgICAgICAgY2xvbmVkTm9k
ZSA9IGRvd25jYXN0PFdlYlZUVEVsZW1lbnQ+KCpub2RlKS5jcmVhdGVFcXVpdmFsZW50SFRNTEVs
ZW1lbnQob3duZXJEb2N1bWVudCgpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgY2xvbmVk
Tm9kZSA9IG5vZGUtPmNsb25lTm9kZShmYWxzZSk7Ci0gICAgICAgIHBhcmVudC0+YXBwZW5kQ2hp
bGQoY2xvbmVkTm9kZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAgIHBhcmVudC0+YXBw
ZW5kQ2hpbGQoKmNsb25lZE5vZGUsIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgICAgICBpZiAo
aXM8Q29udGFpbmVyTm9kZT4oKm5vZGUpKQogICAgICAgICAgICAgY29weVdlYlZUVE5vZGVUb0RP
TVRyZWUoZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4obm9kZSksIGRvd25jYXN0PENvbnRhaW5lck5v
ZGU+KGNsb25lZE5vZGUuZ2V0KCkpKTsKICAgICB9CkBAIC01MTgsMTAgKzUxOCwxMCBAQCBQYXNz
UmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFZUVEN1ZTo6Y3JlYXRlQ3VlUmVuZGVyaW5nVHJlZSgp
CiAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNsb25lZEZyYWdtZW50OwogICAgIGNyZWF0
ZVdlYlZUVE5vZGVUcmVlKCk7CiAgICAgaWYgKCFtX3dlYlZUVE5vZGVUcmVlKQotICAgICAgICBy
ZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBjbG9uZWRGcmFnbWVudCA9
IERvY3VtZW50RnJhZ21lbnQ6OmNyZWF0ZShvd25lckRvY3VtZW50KCkpOwotICAgIG1fd2ViVlRU
Tm9kZVRyZWUtPmNsb25lQ2hpbGROb2RlcyhjbG9uZWRGcmFnbWVudC5nZXQoKSk7CisgICAgbV93
ZWJWVFROb2RlVHJlZS0+Y2xvbmVDaGlsZE5vZGVzKCpjbG9uZWRGcmFnbWVudCk7CiAgICAgcmV0
dXJuIGNsb25lZEZyYWdtZW50LnJlbGVhc2UoKTsKIH0KIApAQCAtNzg1LDcgKzc4NSw3IEBAIHZv
aWQgVlRUQ3VlOjp1cGRhdGVEaXNwbGF5VHJlZShjb25zdCBNZWRpYVRpbWUmIG1vdmllVGltZSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgbWFya0Z1dHVyZUFuZFBhc3ROb2RlcyhyZWZlcmVuY2VU
cmVlLmdldCgpLCBzdGFydE1lZGlhVGltZSgpLCBtb3ZpZVRpbWUpOwotICAgIG1fY3VlSGlnaGxp
Z2h0Qm94LT5hcHBlbmRDaGlsZChyZWZlcmVuY2VUcmVlKTsKKyAgICBtX2N1ZUhpZ2hsaWdodEJv
eC0+YXBwZW5kQ2hpbGQocmVmZXJlbmNlVHJlZS5yZWxlYXNlTm9uTnVsbCgpKTsKIH0KIAogVlRU
Q3VlQm94KiBWVFRDdWU6OmdldERpc3BsYXlUcmVlKGNvbnN0IEludFNpemUmIHZpZGVvU2l6ZSwg
aW50IGZvbnRTaXplKQpAQCAtODEyLDggKzgxMiw4IEBAIFZUVEN1ZUJveCogVlRUQ3VlOjpnZXRE
aXNwbGF5VHJlZShjb25zdCBJbnRTaXplJiB2aWRlb1NpemUsIGludCBmb250U2l6ZSkKICAgICBt
X2N1ZUhpZ2hsaWdodEJveC0+c2V0UHNldWRvKGN1ZVNoYWRvd1BzZXVkb0lkKCkpOwogCiAgICAg
bV9jdWVCYWNrZHJvcEJveC0+c2V0UHNldWRvKGN1ZUJhY2tkcm9wU2hhZG93UHNldWRvSWQoKSk7
Ci0gICAgbV9jdWVCYWNrZHJvcEJveC0+YXBwZW5kQ2hpbGQobV9jdWVIaWdobGlnaHRCb3gsIEFT
U0VSVF9OT19FWENFUFRJT04pOwotICAgIGRpc3BsYXlUcmVlLT5hcHBlbmRDaGlsZChtX2N1ZUJh
Y2tkcm9wQm94LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBtX2N1ZUJhY2tkcm9wQm94LT5h
cHBlbmRDaGlsZCgqbV9jdWVIaWdobGlnaHRCb3gsIEFTU0VSVF9OT19FWENFUFRJT04pOworICAg
IGRpc3BsYXlUcmVlLT5hcHBlbmRDaGlsZCgqbV9jdWVCYWNrZHJvcEJveCwgQVNTRVJUX05PX0VY
Q0VQVElPTik7CiAKICAgICAvLyBGSVhNRShCVUcgNzk5MTYpOiBSdW5zIG9mIGNoaWxkcmVuIG9m
IFdlYlZUVCBSdWJ5IE9iamVjdHMgdGhhdCBhcmUgbm90CiAgICAgLy8gV2ViVlRUIFJ1YnkgVGV4
dCBPYmplY3RzIG11c3QgYmUgd3JhcHBlZCBpbiBhbm9ueW1vdXMgYm94ZXMgd2hvc2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmNwcAppbmRleCBjY2IzMmUwMzlkNWM1M2FmZWVj
MDUwMmI2NWUwMGFjMWU2ZmZkZWYzLi44NTc5ODY4ZTk4MWZmYmYyOTE2NjJiNjU0ZDUzZWI5YWRm
YmRiYjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24uY3BwCkBAIC0zNTQs
NyArMzU0LDcgQEAgdm9pZCBWVFRSZWdpb246OmFwcGVuZFRleHRUcmFja0N1ZUJveChQYXNzUmVm
UHRyPFZUVEN1ZUJveD4gZGlzcGxheUJveCkKICAgICBpZiAobV9jdWVDb250YWluZXItPmNvbnRh
aW5zKGRpc3BsYXlCb3guZ2V0KCkpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2N1ZUNvbnRh
aW5lci0+YXBwZW5kQ2hpbGQoZGlzcGxheUJveCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAg
bV9jdWVDb250YWluZXItPmFwcGVuZENoaWxkKCpkaXNwbGF5Qm94LCBBU1NFUlRfTk9fRVhDRVBU
SU9OKTsKICAgICBkaXNwbGF5TGFzdFRleHRUcmFja0N1ZUJveCgpOwogfQogCkBAIC00MDQsMTQg
KzQwNCwxNCBAQCB2b2lkIFZUVFJlZ2lvbjo6d2lsbFJlbW92ZVRleHRUcmFja0N1ZUJveChWVFRD
dWVCb3gqIGJveCkKICAgICBtX2N1ZUNvbnRhaW5lci0+c2V0SW5saW5lU3R5bGVQcm9wZXJ0eShD
U1NQcm9wZXJ0eVRvcCwgbV9jdXJyZW50VG9wLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BYKTsK
IH0KIAotUGFzc1JlZlB0cjxIVE1MRGl2RWxlbWVudD4gVlRUUmVnaW9uOjpnZXREaXNwbGF5VHJl
ZSgpCitIVE1MRGl2RWxlbWVudCYgVlRUUmVnaW9uOjpnZXREaXNwbGF5VHJlZSgpCiB7CiAgICAg
aWYgKCFtX3JlZ2lvbkRpc3BsYXlUcmVlKSB7CiAgICAgICAgIG1fcmVnaW9uRGlzcGxheVRyZWUg
PSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKCpvd25lckRvY3VtZW50KCkpOwogICAgICAgICBwcmVw
YXJlUmVnaW9uRGlzcGxheVRyZWUoKTsKICAgICB9CiAKLSAgICByZXR1cm4gbV9yZWdpb25EaXNw
bGF5VHJlZTsKKyAgICByZXR1cm4gKm1fcmVnaW9uRGlzcGxheVRyZWU7CiB9CiAKIHZvaWQgVlRU
UmVnaW9uOjpwcmVwYXJlUmVnaW9uRGlzcGxheVRyZWUoKQpAQCAtNDUzLDcgKzQ1Myw3IEBAIHZv
aWQgVlRUUmVnaW9uOjpwcmVwYXJlUmVnaW9uRGlzcGxheVRyZWUoKQogICAgIG1fY3VlQ29udGFp
bmVyLT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5VG9wLCAwLjBmLCBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTX1BYKTsKIAogICAgIG1fY3VlQ29udGFpbmVyLT5zZXRQc2V1ZG8odGV4
dFRyYWNrQ3VlQ29udGFpbmVyU2hhZG93UHNldWRvSWQoKSk7Ci0gICAgbV9yZWdpb25EaXNwbGF5
VHJlZS0+YXBwZW5kQ2hpbGQobV9jdWVDb250YWluZXIpOworICAgIG1fcmVnaW9uRGlzcGxheVRy
ZWUtPmFwcGVuZENoaWxkKCptX2N1ZUNvbnRhaW5lcik7CiAKICAgICAvLyA3LjUgRXZlcnkgV2Vi
VlRUIHJlZ2lvbiBvYmplY3QgaXMgaW5pdGlhbGlzZWQgd2l0aCB0aGUgZm9sbG93aW5nIENTUwog
ICAgIG1fcmVnaW9uRGlzcGxheVRyZWUtPnNldFBzZXVkbyh0ZXh0VHJhY2tSZWdpb25TaGFkb3dQ
c2V1ZG9JZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVn
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5oCmluZGV4IDc3NzFl
OGViMDA4NTdiZjQzMmMxY2Q1NGI0ODYxNzczNmQwNGU2NWQuLjg5MjVhZjFiYzM3MjA1ZWIwN2E1
YTdiOGU4Y2Y2OTcyMTgwY2EwNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svVlRUUmVnaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24u
aApAQCAtODksNyArODksNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzU2Nyb2xsaW5nUmVnaW9u
KCkgeyByZXR1cm4gbV9zY3JvbGw7IH0KIAotICAgIFBhc3NSZWZQdHI8SFRNTERpdkVsZW1lbnQ+
IGdldERpc3BsYXlUcmVlKCk7CisgICAgSFRNTERpdkVsZW1lbnQmIGdldERpc3BsYXlUcmVlKCk7
CiAgICAgCiAgICAgdm9pZCBhcHBlbmRUZXh0VHJhY2tDdWVCb3goUGFzc1JlZlB0cjxWVFRDdWVC
b3g+KTsKICAgICB2b2lkIGRpc3BsYXlMYXN0VGV4dFRyYWNrQ3VlQm94KCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmNwcAppbmRleCA0YTJmMzFiM2U1NjM0ZjMx
MDJmZjU0ZWJmMGZhMGQ5NjZhOTU3YTBlLi4xNDk2YmIwM2E2YTUwMGY1Yjc5NjE0MGQ1OTBjM2Q5
NWZlZmIyMjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5j
cHAKQEAgLTgwLDExICs4MCwxMSBAQCBSZWY8V2ViVlRURWxlbWVudD4gV2ViVlRURWxlbWVudDo6
Y3JlYXRlKFdlYlZUVE5vZGVUeXBlIG5vZGVUeXBlLCBEb2N1bWVudCYgZG9jdQogICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFdlYlZUVEVsZW1lbnQobm9kZVR5cGUsIGRvY3VtZW50KSk7CiB9CiAK
LVJlZlB0cjxFbGVtZW50PiBXZWJWVFRFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmli
dXRlc0FuZENoaWxkcmVuKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCkKK1JlZjxFbGVtZW50PiBX
ZWJWVFRFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKERv
Y3VtZW50JiB0YXJnZXREb2N1bWVudCkKIHsKLSAgICBSZWZQdHI8V2ViVlRURWxlbWVudD4gY2xv
bmUgPSBjcmVhdGUoc3RhdGljX2Nhc3Q8V2ViVlRUTm9kZVR5cGU+KG1fd2ViVlRUTm9kZVR5cGUp
LCB0YXJnZXREb2N1bWVudCk7CisgICAgUmVmPFdlYlZUVEVsZW1lbnQ+IGNsb25lID0gY3JlYXRl
KHN0YXRpY19jYXN0PFdlYlZUVE5vZGVUeXBlPihtX3dlYlZUVE5vZGVUeXBlKSwgdGFyZ2V0RG9j
dW1lbnQpOwogICAgIGNsb25lLT5zZXRMYW5ndWFnZShtX2xhbmd1YWdlKTsKLSAgICByZXR1cm4g
Y2xvbmU7CisgICAgcmV0dXJuIFdURjo6bW92ZShjbG9uZSk7CiB9CiAKIFBhc3NSZWZQdHI8SFRN
TEVsZW1lbnQ+IFdlYlZUVEVsZW1lbnQ6OmNyZWF0ZUVxdWl2YWxlbnRIVE1MRWxlbWVudChEb2N1
bWVudCYgZG9jdW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dl
YlZUVEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5o
CmluZGV4IDFiZTc2MzZjMzY2M2Q4NThiZDc2MzZhZWNjYzE5YjcwNmRmYzZiOGMuLjg5ZDNkMmM1
NGRiYzZiOWU1MjA2MmZmNGYyYWNmNzQ5OGI5ZmM3YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svV2ViVlRURWxlbWVudC5oCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgUmVmPFdlYlZUVEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBXZWJWVFROb2RlVHlwZSwgRG9jdW1l
bnQmKTsKICAgICBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVFcXVpdmFsZW50SFRNTEVs
ZW1lbnQoRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1YWwgUmVmUHRyPEVsZW1lbnQ+IGNsb25lRWxl
bWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIFJlZjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENo
aWxkcmVuKERvY3VtZW50Jikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHNldFdlYlZUVE5vZGVUeXBl
KFdlYlZUVE5vZGVUeXBlIHR5cGUpIHsgbV93ZWJWVFROb2RlVHlwZSA9IHN0YXRpY19jYXN0PHVu
c2lnbmVkPih0eXBlKTsgfQogICAgIFdlYlZUVE5vZGVUeXBlIHdlYlZUVE5vZGVUeXBlKCkgY29u
c3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViVlRUTm9kZVR5cGU+KG1fd2ViVlRUTm9kZVR5cGUp
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcApp
bmRleCBiNmEzMTEzZWY3ZDY3OTk0MDVlYWEzMTQzMDYzZjhiYmFkZWEwMmI1Li44NTdhZDE5MTc2
NzU2N2E1YmExNzViNjljY2FmMjE0ZjQ2MDYyYmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKQEAgLTc5Niw3ICs3OTYsNyBAQCBJbnNwZWN0
b3JTdHlsZVNoZWV0KiBJbnNwZWN0b3JDU1NBZ2VudDo6Y3JlYXRlSW5zcGVjdG9yU3R5bGVTaGVl
dEZvckRvY3VtZW50KERvYwogICAgIC8vIFNldCB0aGlzIGZsYWcsIHNvIHdoZW4gd2UgY3JlYXRl
IGl0LCB3ZSBwdXQgaXQgaW50byB0aGUgdmlhIGluc3BlY3RvciBtYXAuCiAgICAgbV9jcmVhdGlu
Z1ZpYUluc3BlY3RvclN0eWxlU2hlZXQgPSB0cnVlOwogICAgIElubGluZVN0eWxlT3ZlcnJpZGVT
Y29wZSBvdmVycmlkZVNjb3BlKGRvY3VtZW50KTsKLSAgICB0YXJnZXROb2RlLT5hcHBlbmRDaGls
ZChzdHlsZUVsZW1lbnQsIGVjKTsKKyAgICB0YXJnZXROb2RlLT5hcHBlbmRDaGlsZChzdHlsZUVs
ZW1lbnQucmVsZWFzZU5vbk51bGwoKSwgZWMpOwogICAgIG1fY3JlYXRpbmdWaWFJbnNwZWN0b3JT
dHlsZVNoZWV0ID0gZmFsc2U7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXggY2ViNGFhMWE1MTZmNDdk
NTY5ODAxYjU2NjBkNzlmM2U2OTMyN2MyZi4uYzRkOTYzZWE4NmY0YThmNmE0NjMxYWVlMDQ3YzA3
ODZkOGY5ZTI0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTEz
OCw3ICsxMzgsNyBAQCBzdGF0aWMgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBkb2N1bWVu
dEZyYWdtZW50RnJvbURyYWdEYXRhKERyYWdEYXRhJiBkcmFnRAogICAgICAgICAgICAgU3RyaW5n
IHRpdGxlOwogICAgICAgICAgICAgU3RyaW5nIHVybCA9IGRyYWdEYXRhLmFzVVJMKERyYWdEYXRh
OjpEb05vdENvbnZlcnRGaWxlbmFtZXMsICZ0aXRsZSk7CiAgICAgICAgICAgICBpZiAoIXVybC5p
c0VtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICBSZWZQdHI8SFRNTEFuY2hvckVsZW1lbnQ+IGFu
Y2hvciA9IEhUTUxBbmNob3JFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgICAgICAgICAg
ICAgIFJlZjxIVE1MQW5jaG9yRWxlbWVudD4gYW5jaG9yID0gSFRNTEFuY2hvckVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCk7CiAgICAgICAgICAgICAgICAgYW5jaG9yLT5zZXRIcmVmKHVybCk7CiAg
ICAgICAgICAgICAgICAgaWYgKHRpdGxlLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgICAgICAg
ICAvLyBUcnkgdGhlIHBsYWluIHRleHQgZmlyc3QgYmVjYXVzZSB0aGUgdXJsIG1pZ2h0IGJlIG5v
cm1hbGl6ZWQgb3IgZXNjYXBlZC4KQEAgLTE0NywyMCArMTQ3LDE5IEBAIHN0YXRpYyBQYXNzUmVm
UHRyPERvY3VtZW50RnJhZ21lbnQ+IGRvY3VtZW50RnJhZ21lbnRGcm9tRHJhZ0RhdGEoRHJhZ0Rh
dGEmIGRyYWdECiAgICAgICAgICAgICAgICAgICAgIGlmICh0aXRsZS5pc0VtcHR5KCkpCiAgICAg
ICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IHVybDsKICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgUmVmUHRyPE5vZGU+IGFuY2hvclRleHQgPSBkb2N1bWVudC5jcmVhdGVUZXh0
Tm9kZSh0aXRsZSk7Ci0gICAgICAgICAgICAgICAgYW5jaG9yLT5hcHBlbmRDaGlsZChhbmNob3JU
ZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKLSAgICAgICAgICAgICAgICBSZWZQdHI8RG9jdW1lbnRG
cmFnbWVudD4gZnJhZ21lbnQgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0g
ICAgICAgICAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKGFuY2hvciwgSUdOT1JFX0VYQ0VQ
VElPTik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZyYWdtZW50LmdldCgpOworICAgICAgICAg
ICAgICAgIGFuY2hvci0+YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGl0bGUp
LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICAgICAgICAgICAgICBSZWY8RG9jdW1lbnRGcmFnbWVu
dD4gZnJhZ21lbnQgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7CisgICAgICAg
ICAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShhbmNob3IpLCBJR05PUkVf
RVhDRVBUSU9OKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZnJhZ21lbnQucHRyKCk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAgICAgaWYgKGFsbG93UGxhaW5UZXh0ICYmIGRy
YWdEYXRhLmNvbnRhaW5zUGxhaW5UZXh0KCkpIHsKICAgICAgICAgY2hvc2VQbGFpblRleHQgPSB0
cnVlOwotICAgICAgICByZXR1cm4gY3JlYXRlRnJhZ21lbnRGcm9tVGV4dChjb250ZXh0LCBkcmFn
RGF0YS5hc1BsYWluVGV4dCgpKS5nZXQoKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUZyYWdtZW50
RnJvbVRleHQoY29udGV4dCwgZHJhZ0RhdGEuYXNQbGFpblRleHQoKSkucHRyKCk7CiAgICAgfQog
Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIGJvb2wgRHJhZ0NvbnRy
b2xsZXI6OmRyYWdJc01vdmUoRnJhbWVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgRHJhZ0RhdGEmIGRy
YWdEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRnJhbWVJT1MubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9GcmFtZUlPUy5tbQppbmRleCA0NjY3NGZjYmMwM2Y5
ZTcyOWQwYjZkMjMzOTVkNTU5ZTUwYTdiMDdiLi5hM2U3ZThkYmM5Zjg2Y2EwYjQwZWZmYzkwMTY0
MGVkMTU2M2YxYmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9GcmFtZUlP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9GcmFtZUlPUy5tbQpAQCAtOTUsOCAr
OTUsOCBAQCB2b2lkIEZyYW1lOjppbml0V2l0aFNpbXBsZUhUTUxEb2N1bWVudChjb25zdCBTdHJp
bmcmIHN0eWxlLCBjb25zdCBVUkwmIHVybCkKICAgICBpZiAoIXN0eWxlLmlzRW1wdHkoKSkKICAg
ICAgICAgYm9keS0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6c3R5bGVBdHRyLCBzdHlsZSk7CiAK
LSAgICByb290RWxlbWVudC0+YXBwZW5kQ2hpbGQoYm9keSwgZWMpOwotICAgIGRvY3VtZW50LT5h
cHBlbmRDaGlsZChyb290RWxlbWVudCwgZWMpOworICAgIHJvb3RFbGVtZW50LT5hcHBlbmRDaGls
ZChib2R5LnJlbGVhc2VOb25OdWxsKCksIGVjKTsKKyAgICBkb2N1bWVudC0+YXBwZW5kQ2hpbGQo
cm9vdEVsZW1lbnQucmVsZWFzZU5vbk51bGwoKSwgZWMpOwogfQogCiBjb25zdCBWaWV3cG9ydEFy
Z3VtZW50cyYgRnJhbWU6OnZpZXdwb3J0QXJndW1lbnRzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTY3JpcHRFbGVtZW50LmNwcAppbmRleCA2ZjNjYTgzZTg1MzIyMmRmZDVlODA1MjcyZjBm
NWM5NDY0MzRkMjI0Li44YWRmY2ZhNDEwYWJlNDdlMzMyNGFlNWI4ZDkyNDNmNTY2NjQ1ZDk1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCkBAIC0xNTYsOSArMTU2LDkg
QEAgYm9vbCBTVkdTY3JpcHRFbGVtZW50OjpoYXNTb3VyY2VBdHRyaWJ1dGUoKSBjb25zdAogICAg
IHJldHVybiBoYXNBdHRyaWJ1dGUoWExpbmtOYW1lczo6aHJlZkF0dHIpOwogfQogCi1SZWZQdHI8
RWxlbWVudD4gU1ZHU2NyaXB0RWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNB
bmRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQpCitSZWY8RWxlbWVudD4gU1ZHU2Ny
aXB0RWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbihEb2N1
bWVudCYgdGFyZ2V0RG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdTY3Jp
cHRFbGVtZW50KHRhZ1FOYW1lKCksIHRhcmdldERvY3VtZW50LCBmYWxzZSwgYWxyZWFkeVN0YXJ0
ZWQoKSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1NjcmlwdEVsZW1lbnQodGFnUU5h
bWUoKSwgdGFyZ2V0RG9jdW1lbnQsIGZhbHNlLCBhbHJlYWR5U3RhcnRlZCgpKSk7CiB9CiAKICNp
Zm5kZWYgTkRFQlVHCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaAppbmRleCA0YzFh
YTA4ZTZkMmZjOGZmOGRhOTlmNDI3Y2VjN2Q0ZjJjNjRlMzA1Li41MzVlNDJlNmYwNjQ2ZDgwMTA0
MTkwOTNjNjIyOTI0YjM4M2Q3MTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50
LmgKQEAgLTY1LDcgKzY1LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRj
aExvYWRFdmVudCgpIG92ZXJyaWRlIHsgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6ZGlz
cGF0Y2hMb2FkRXZlbnQodGhpcyk7IH0KIAotICAgIHZpcnR1YWwgUmVmUHRyPEVsZW1lbnQ+IGNs
b25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oRG9jdW1lbnQmKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIFJlZjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRl
c0FuZENoaWxkcmVuKERvY3VtZW50Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIHJlbmRl
cmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsg
fQogCiAgICAgLy8gU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1VzZUVsZW1lbnQuY3BwCmluZGV4IDcwNGZlNGEyMjk4MmU5YjQwNDQxNTkxMjE3ZDM3NWQ1NTc0
ZDUzNWIuLjY0ZTEwYWE2MDA0ZjQ3MDA2MWJmMzVhNjI5YTA0ZDg4ODcyYjJkNjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKQEAgLTMzMiw3ICszMzIsNyBAQCBzdGF0aWMgdm9p
ZCByZW1vdmVEaXNhbGxvd2VkRWxlbWVudHNGcm9tU3VidHJlZShTVkdFbGVtZW50JiBzdWJ0cmVl
KQogICAgIGZvciAoYXV0byogZWxlbWVudCA6IGRpc2FsbG93ZWRFbGVtZW50cykgewogICAgICAg
ICBmb3IgKGF1dG8mIGRlc2NlbmRhbnQgOiBkZXNjZW5kYW50c09mVHlwZTxTVkdFbGVtZW50Pigq
ZWxlbWVudCkpCiAgICAgICAgICAgICBkZXNjZW5kYW50LnNldENvcnJlc3BvbmRpbmdFbGVtZW50
KG51bGxwdHIpOwotICAgICAgICBlbGVtZW50LT5wYXJlbnROb2RlKCktPnJlbW92ZUNoaWxkKGVs
ZW1lbnQpOworICAgICAgICBlbGVtZW50LT5wYXJlbnROb2RlKCktPnJlbW92ZUNoaWxkKCplbGVt
ZW50KTsKICAgICB9CiB9CiAKQEAgLTQwNSw3ICs0MDUsNyBAQCBTVkdFbGVtZW50KiBTVkdVc2VF
bGVtZW50OjpmaW5kVGFyZ2V0KFN0cmluZyogdGFyZ2V0SUQpIGNvbnN0CiAKIHZvaWQgU1ZHVXNl
RWxlbWVudDo6Y2xvbmVUYXJnZXQoQ29udGFpbmVyTm9kZSYgY29udGFpbmVyLCBTVkdFbGVtZW50
JiB0YXJnZXQpIGNvbnN0CiB7Ci0gICAgUmVmPFNWR0VsZW1lbnQ+IHRhcmdldENsb25lID0gc3Rh
dGljX3BvaW50ZXJfY2FzdDxTVkdFbGVtZW50Pih0YXJnZXQuY2xvbmVFbGVtZW50V2l0aENoaWxk
cmVuKGRvY3VtZW50KCkpKS5yZWxlYXNlTm9uTnVsbCgpOworICAgIFJlZjxTVkdFbGVtZW50PiB0
YXJnZXRDbG9uZSA9IHN0YXRpY19jYXN0PFNWR0VsZW1lbnQmPih0YXJnZXQuY2xvbmVFbGVtZW50
V2l0aENoaWxkcmVuKGRvY3VtZW50KCkpLmdldCgpKTsKICAgICBhc3NvY2lhdGVDbG9uZXNXaXRo
T3JpZ2luYWxzKHRhcmdldENsb25lLmdldCgpLCB0YXJnZXQpOwogICAgIHJlbW92ZURpc2FsbG93
ZWRFbGVtZW50c0Zyb21TdWJ0cmVlKHRhcmdldENsb25lLmdldCgpKTsKICAgICB0cmFuc2ZlclNp
emVBdHRyaWJ1dGVzVG9UYXJnZXRDbG9uZSh0YXJnZXRDbG9uZS5nZXQoKSk7CkBAIC00MTksNyAr
NDE5LDcgQEAgc3RhdGljIHZvaWQgY2xvbmVEYXRhQW5kQ2hpbGRyZW4oU1ZHRWxlbWVudCYgcmVw
bGFjZW1lbnRDbG9uZSwgU1ZHRWxlbWVudCYgb3JpZ2kKICAgICBBU1NFUlQoIXJlcGxhY2VtZW50
Q2xvbmUucGFyZW50Tm9kZSgpKTsKIAogICAgIHJlcGxhY2VtZW50Q2xvbmUuY2xvbmVEYXRhRnJv
bUVsZW1lbnQob3JpZ2luYWxDbG9uZSk7Ci0gICAgb3JpZ2luYWxDbG9uZS5jbG9uZUNoaWxkTm9k
ZXMoJnJlcGxhY2VtZW50Q2xvbmUpOworICAgIG9yaWdpbmFsQ2xvbmUuY2xvbmVDaGlsZE5vZGVz
KHJlcGxhY2VtZW50Q2xvbmUpOwogICAgIGFzc29jaWF0ZVJlcGxhY2VtZW50Q2xvbmVzV2l0aE9y
aWdpbmFscyhyZXBsYWNlbWVudENsb25lLCBvcmlnaW5hbENsb25lKTsKICAgICByZW1vdmVEaXNh
bGxvd2VkRWxlbWVudHNGcm9tU3VidHJlZShyZXBsYWNlbWVudENsb25lKTsKIH0KQEAgLTQ0OCw3
ICs0NDgsNyBAQCB2b2lkIFNWR1VzZUVsZW1lbnQ6OmV4cGFuZFVzZUVsZW1lbnRzSW5TaGFkb3dU
cmVlKCkgY29uc3QKICAgICAgICAgaWYgKHRhcmdldCkKICAgICAgICAgICAgIG9yaWdpbmFsQ2xv
bmUuY2xvbmVUYXJnZXQocmVwbGFjZW1lbnRDbG9uZS5nZXQoKSwgKnRhcmdldCk7CiAKLSAgICAg
ICAgb3JpZ2luYWxDbG9uZS5wYXJlbnROb2RlKCktPnJlcGxhY2VDaGlsZChyZXBsYWNlbWVudENs
b25lLnB0cigpLCAmb3JpZ2luYWxDbG9uZSk7CisgICAgICAgIG9yaWdpbmFsQ2xvbmUucGFyZW50
Tm9kZSgpLT5yZXBsYWNlQ2hpbGQocmVwbGFjZW1lbnRDbG9uZS5jb3B5UmVmKCksIG9yaWdpbmFs
Q2xvbmUpOwogCiAgICAgICAgIC8vIFJlc3VtZSBpdGVyYXRpbmcsIHN0YXJ0aW5nIGp1c3QgaW5z
aWRlIHRoZSByZXBsYWNlbWVudCBjbG9uZS4KICAgICAgICAgaXQgPSBkZXNjZW5kYW50cy5mcm9t
KHJlcGxhY2VtZW50Q2xvbmUuZ2V0KCkpOwpAQCAtNDcyLDcgKzQ3Miw3IEBAIHZvaWQgU1ZHVXNl
RWxlbWVudDo6ZXhwYW5kU3ltYm9sRWxlbWVudHNJblNoYWRvd1RyZWUoKSBjb25zdAogICAgICAg
ICBhdXRvIHJlcGxhY2VtZW50Q2xvbmUgPSBTVkdTVkdFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQo
KSk7CiAgICAgICAgIGNsb25lRGF0YUFuZENoaWxkcmVuKHJlcGxhY2VtZW50Q2xvbmUuZ2V0KCks
IG9yaWdpbmFsQ2xvbmUpOwogCi0gICAgICAgIG9yaWdpbmFsQ2xvbmUucGFyZW50Tm9kZSgpLT5y
ZXBsYWNlQ2hpbGQocmVwbGFjZW1lbnRDbG9uZS5wdHIoKSwgJm9yaWdpbmFsQ2xvbmUpOworICAg
ICAgICBvcmlnaW5hbENsb25lLnBhcmVudE5vZGUoKS0+cmVwbGFjZUNoaWxkKHJlcGxhY2VtZW50
Q2xvbmUuY29weVJlZigpLCBvcmlnaW5hbENsb25lKTsKIAogICAgICAgICAvLyBSZXN1bWUgaXRl
cmF0aW5nLCBzdGFydGluZyBqdXN0IGluc2lkZSB0aGUgcmVwbGFjZW1lbnQgY2xvbmUuCiAgICAg
ICAgIGl0ID0gZGVzY2VuZGFudHMuZnJvbShyZXBsYWNlbWVudENsb25lLmdldCgpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxUcmVlVmlld2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3htbC9YTUxUcmVlVmlld2VyLmNwcAppbmRleCA0MDk2ZTQzNWQ2M2Y1NzA4NDQ4MDJjMjE3
NzA4YWRkOWViNjA1MTc1Li5hOWY3N2VhMTYzODQ4Zjg1MGI2MzVjOTJiOTBjYTk0Mjc3MmY4OGFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MVHJlZVZpZXdlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUveG1sL1hNTFRyZWVWaWV3ZXIuY3BwCkBAIC02MSw4ICs2MSw4IEBAIHZv
aWQgWE1MVHJlZVZpZXdlcjo6dHJhbnNmb3JtRG9jdW1lbnRUb1RyZWVWaWV3KCkKICAgICBtX2Rv
Y3VtZW50LmZyYW1lKCktPnNjcmlwdCgpLmV2YWx1YXRlKFNjcmlwdFNvdXJjZUNvZGUoQXRvbWlj
U3RyaW5nKCJwcmVwYXJlV2ViS2l0WE1MVmlld2VyKCdUaGlzIFhNTCBmaWxlIGRvZXMgbm90IGFw
cGVhciB0byBoYXZlIGFueSBzdHlsZSBpbmZvcm1hdGlvbiBhc3NvY2lhdGVkIHdpdGggaXQuIFRo
ZSBkb2N1bWVudCB0cmVlIGlzIHNob3duIGJlbG93LicpOyIpKSk7CiAKICAgICBTdHJpbmcgY3Nz
U3RyaW5nID0gU3RyaW5nSW1wbDo6Y3JlYXRlV2l0aG91dENvcHlpbmcoWE1MVmlld2VyX2Nzcywg
c2l6ZW9mKFhNTFZpZXdlcl9jc3MpKTsKLSAgICBSZWZQdHI8VGV4dD4gdGV4dCA9IG1fZG9jdW1l
bnQuY3JlYXRlVGV4dE5vZGUoY3NzU3RyaW5nKTsKLSAgICBtX2RvY3VtZW50LmdldEVsZW1lbnRC
eUlkKFN0cmluZyhBU0NJSUxpdGVyYWwoInhtbC12aWV3ZXItc3R5bGUiKSkpLT5hcHBlbmRDaGls
ZCh0ZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBSZWY8VGV4dD4gdGV4dCA9IG1fZG9jdW1l
bnQuY3JlYXRlVGV4dE5vZGUoY3NzU3RyaW5nKTsKKyAgICBtX2RvY3VtZW50LmdldEVsZW1lbnRC
eUlkKFN0cmluZyhBU0NJSUxpdGVyYWwoInhtbC12aWV3ZXItc3R5bGUiKSkpLT5hcHBlbmRDaGls
ZChXVEY6Om1vdmUodGV4dCksIElHTk9SRV9FWENFUFRJT04pOwogICAgIG1fZG9jdW1lbnQuc3R5
bGVSZXNvbHZlckNoYW5nZWQoUmVjYWxjU3R5bGVJbW1lZGlhdGVseSk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4IDBiMzIxMjA3YzMyM2U0ZGEwMDkzMGU5Yzgw
NGUwZDIzOGE5NGNkZDkuLjI4MWEzY2FkNmY4ODFiMWE2YzA2ZTEyYTZiYzgyNTRlMmIwMmY2ZjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQpAQCAtODkwLDkgKzg5MCw5IEBA
IC0gKERPTURvY3VtZW50RnJhZ21lbnQgKilfZG9jdW1lbnRGcmFnbWVudFdpdGhOb2Rlc0FzUGFy
YWdyYXBoczooTlNBcnJheSAqKW5vZGVzCiAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZy
YWdtZW50ID0gZG9jdW1lbnQtPmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKIAogICAgIGZvciAo
YXV0byogbm9kZSA6IG5vZGVzVmVjdG9yKSB7Ci0gICAgICAgIFJlZlB0cjxFbGVtZW50PiBlbGVt
ZW50ID0gY3JlYXRlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQoKmRvY3VtZW50KTsKLSAgICAgICAg
ZWxlbWVudC0+YXBwZW5kQ2hpbGQobm9kZSk7Ci0gICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGls
ZChlbGVtZW50LnJlbGVhc2UoKSk7CisgICAgICAgIFJlZjxFbGVtZW50PiBlbGVtZW50ID0gY3Jl
YXRlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQoKmRvY3VtZW50KTsKKyAgICAgICAgZWxlbWVudC0+
YXBwZW5kQ2hpbGQoKm5vZGUpOworICAgICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQoV1RGOjpt
b3ZlKGVsZW1lbnQpKTsKICAgICB9CiAKICAgICByZXR1cm4ga2l0KGZyYWdtZW50LnJlbGVhc2Uo
KS5nZXQoKSk7CkBAIC0xODczLDcgKzE4NzMsNyBAQCAtICh2b2lkKV9yZXBsYWNlU2VsZWN0aW9u
V2l0aFRleHQ6KE5TU3RyaW5nICopdGV4dCBzZWxlY3RSZXBsYWNlbWVudDooQk9PTClzZWxlYwog
ewogICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lLT5zZWxlY3Rp
b24oKS50b05vcm1hbGl6ZWRSYW5nZSgpOwogCi0gICAgRE9NRG9jdW1lbnRGcmFnbWVudCogZnJh
Z21lbnQgPSByYW5nZSA/IGtpdChjcmVhdGVGcmFnbWVudEZyb21UZXh0KCpyYW5nZSwgdGV4dCku
Z2V0KCkpIDogbmlsOworICAgIERPTURvY3VtZW50RnJhZ21lbnQqIGZyYWdtZW50ID0gcmFuZ2Ug
PyBraXQoY3JlYXRlRnJhZ21lbnRGcm9tVGV4dCgqcmFuZ2UsIHRleHQpLnB0cigpKSA6IG5pbDsK
ICAgICBbc2VsZiBfcmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudDpmcmFnbWVudCBzZWxlY3RS
ZXBsYWNlbWVudDpzZWxlY3RSZXBsYWNlbWVudCBzbWFydFJlcGxhY2U6c21hcnRSZXBsYWNlIG1h
dGNoU3R5bGU6bWF0Y2hTdHlsZV07CiB9CiAKQEAgLTE5NTgsNyArMTk1OCw3IEBAIC0gKHZvaWQp
X3JlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dDooTlNTdHJpbmcgKil0ZXh0IHNlbGVjdFJlcGxhY2Vt
ZW50OihCT09MKXNlbGVjCiB7CiAgICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IF9wcml2YXRlLT5j
b3JlRnJhbWUtPnNlbGVjdGlvbigpLnRvTm9ybWFsaXplZFJhbmdlKCk7CiAgICAgCi0gICAgRE9N
RG9jdW1lbnRGcmFnbWVudCogZnJhZ21lbnQgPSByYW5nZSA/IGtpdChjcmVhdGVGcmFnbWVudEZy
b21UZXh0KCpyYW5nZSwgdGV4dCkuZ2V0KCkpIDogbmlsOworICAgIERPTURvY3VtZW50RnJhZ21l
bnQqIGZyYWdtZW50ID0gcmFuZ2UgPyBraXQoY3JlYXRlRnJhZ21lbnRGcm9tVGV4dCgqcmFuZ2Us
IHRleHQpLnB0cigpKSA6IG5pbDsKICAgICBbc2VsZiBfcmVwbGFjZVNlbGVjdGlvbldpdGhGcmFn
bWVudDpmcmFnbWVudCBzZWxlY3RSZXBsYWNlbWVudDpzZWxlY3RSZXBsYWNlbWVudCBzbWFydFJl
cGxhY2U6c21hcnRSZXBsYWNlIG1hdGNoU3R5bGU6WUVTXTsKIH0KIApAQCAtMjI2NCw3ICsyMjY0
LDcgQEAgLSAoTlNBcnJheSAqKV9jb21wdXRlUGFnZVJlY3RzV2l0aFByaW50U2NhbGVGYWN0b3I6
KGZsb2F0KXByaW50U2NhbGVGYWN0b3IgcGFnZVMKICNpZiBQTEFURk9STShJT1MpCiAtIChET01E
b2N1bWVudEZyYWdtZW50ICopX2RvY3VtZW50RnJhZ21lbnRGb3JUZXh0OihOU1N0cmluZyAqKXRl
eHQKIHsKLSAgICByZXR1cm4ga2l0KGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoKl9wcml2YXRlLT5j
b3JlRnJhbWUtPnNlbGVjdGlvbigpLnRvTm9ybWFsaXplZFJhbmdlKCkuZ2V0KCksIHRleHQpLmdl
dCgpKTsKKyAgICByZXR1cm4ga2l0KGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoKl9wcml2YXRlLT5j
b3JlRnJhbWUtPnNlbGVjdGlvbigpLnRvTm9ybWFsaXplZFJhbmdlKCkuZ2V0KCksIHRleHQpLnB0
cigpKTsKIH0KIAogLSAoRE9NRG9jdW1lbnRGcmFnbWVudCAqKV9kb2N1bWVudEZyYWdtZW50Rm9y
V2ViQXJjaGl2ZTooV2ViQXJjaGl2ZSAqKXdlYkFyY2hpdmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4IDMwOTgwZDMwYWE2N2UyZGViOTgyMWU5N2QwMDcyMjUw
ZTU1YmQyYTQuLmIyNTcxOWZiOTBiNmE0NDdjYzI4NzRkZGE1ZGNmM2FlOTFjY2NlMTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KKysrIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQpAQCAtMjI2Nyw3ICsyMjY3LDcg
QEAgLSAoRE9NRG9jdW1lbnRGcmFnbWVudCAqKV9kb2N1bWVudEZyYWdtZW50RnJvbVBhc3RlYm9h
cmQ6KE5TUGFzdGVib2FyZCAqKXBhc3RlYm8KICAgICBpZiAocGJvYXJkVHlwZSA9PSBOU1N0cmlu
Z1Bib2FyZFR5cGUpIHsKICAgICAgICAgaWYgKCFjb250ZXh0KQogICAgICAgICAgICAgcmV0dXJu
IG5pbDsKLSAgICAgICAgcmV0dXJuIGtpdChjcmVhdGVGcmFnbWVudEZyb21UZXh0KCpjb3JlKGNv
bnRleHQpLCBbW3Bhc3RlYm9hcmQgc3RyaW5nRm9yVHlwZTpOU1N0cmluZ1Bib2FyZFR5cGVdIHBy
ZWNvbXBvc2VkU3RyaW5nV2l0aENhbm9uaWNhbE1hcHBpbmddKS5nZXQoKSk7CisgICAgICAgIHJl
dHVybiBraXQoY3JlYXRlRnJhZ21lbnRGcm9tVGV4dCgqY29yZShjb250ZXh0KSwgW1twYXN0ZWJv
YXJkIHN0cmluZ0ZvclR5cGU6TlNTdHJpbmdQYm9hcmRUeXBlXSBwcmVjb21wb3NlZFN0cmluZ1dp
dGhDYW5vbmljYWxNYXBwaW5nXSkucHRyKCkpOwogICAgIH0KICAgICByZXR1cm4gbmlsOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVn
aW4ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5t
bQppbmRleCA1M2RiZmE1OTA2ZTM3MmIxMzRmM2U4OWNjYzRkYjJiYWEyMDBjMGRhLi4xNzM0MGRl
MzYzNDk3Mjc4YTBkODhkZTQ1ZDVjNmI5Mzk0OWZkY2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQpAQCAtNTI1LDExICs1MjUs
MTEgQEAgUERGUGx1Z2luOjpQREZQbHVnaW4oV2ViRnJhbWUqIGZyYW1lKQogICAgICAgICBtX2Fu
bm90YXRpb25Db250YWluZXIgPSBkb2N1bWVudC0+Y3JlYXRlRWxlbWVudChkaXZUYWcsIGZhbHNl
KTsKICAgICAgICAgbV9hbm5vdGF0aW9uQ29udGFpbmVyLT5zZXRBdHRyaWJ1dGUoaWRBdHRyLCAi
YW5ub3RhdGlvbkNvbnRhaW5lciIpOwogCi0gICAgICAgIFJlZlB0cjxFbGVtZW50PiBtX2Fubm90
YXRpb25TdHlsZSA9IGRvY3VtZW50LT5jcmVhdGVFbGVtZW50KHN0eWxlVGFnLCBmYWxzZSk7Ci0g
ICAgICAgIG1fYW5ub3RhdGlvblN0eWxlLT5zZXRUZXh0Q29udGVudChhbm5vdGF0aW9uU3R5bGUs
IEFTU0VSVF9OT19FWENFUFRJT04pOworICAgICAgICBSZWY8RWxlbWVudD4gYW5ub3RhdGlvblN0
eWxlRWxlbWVudCA9IGRvY3VtZW50LT5jcmVhdGVFbGVtZW50KHN0eWxlVGFnLCBmYWxzZSk7Cisg
ICAgICAgIGFubm90YXRpb25TdHlsZUVsZW1lbnQtPnNldFRleHRDb250ZW50KGFubm90YXRpb25T
dHlsZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKLSAgICAgICAgbV9hbm5vdGF0aW9uQ29udGFp
bmVyLT5hcHBlbmRDaGlsZChtX2Fubm90YXRpb25TdHlsZS5nZXQoKSk7Ci0gICAgICAgIGRvY3Vt
ZW50LT5ib2R5T3JGcmFtZXNldCgpLT5hcHBlbmRDaGlsZChtX2Fubm90YXRpb25Db250YWluZXIu
Z2V0KCkpOworICAgICAgICBtX2Fubm90YXRpb25Db250YWluZXItPmFwcGVuZENoaWxkKFdURjo6
bW92ZShhbm5vdGF0aW9uU3R5bGVFbGVtZW50KSk7CisgICAgICAgIGRvY3VtZW50LT5ib2R5T3JG
cmFtZXNldCgpLT5hcHBlbmRDaGlsZCgqbV9hbm5vdGF0aW9uQ29udGFpbmVyKTsKICAgICB9CiAK
ICAgICBtX2FjY2Vzc2liaWxpdHlPYmplY3QgPSBhZG9wdE5TKFtbV0tQREZQbHVnaW5BY2Nlc3Np
YmlsaXR5T2JqZWN0IGFsbG9jXSBpbml0V2l0aFBERlBsdWdpbjp0aGlzXSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkFubm90YXRp
b24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkFu
bm90YXRpb24ubW0KaW5kZXggMzRiNTIyZDg5YmEzMjk2ZWYxZTBlY2U1YmJlMjIxODYxOGU2MzZm
MS4uYTAyOWQyNWY5MWU4MmU2ZGIxYjJmMGZhNWEyYmUzOGQ2YzFjNzJiZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5Bbm5vdGF0aW9u
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2lu
QW5ub3RhdGlvbi5tbQpAQCAtNzQsNyArNzQsNyBAQCB2b2lkIFBERlBsdWdpbkFubm90YXRpb246
OmF0dGFjaChFbGVtZW50KiBwYXJlbnQpCiAKICAgICB1cGRhdGVHZW9tZXRyeSgpOwogCi0gICAg
bV9wYXJlbnQtPmFwcGVuZENoaWxkKG1fZWxlbWVudCk7CisgICAgbV9wYXJlbnQtPmFwcGVuZENo
aWxkKCptX2VsZW1lbnQpOwogCiAgICAgLy8gRklYTUU6IFRoZSB0ZXh0IGN1cnNvciBkb2Vzbid0
IGJsaW5rIGFmdGVyIHRoaXMuIFdoeT8KICAgICBtX2VsZW1lbnQtPmZvY3VzKCk7CkBAIC05Miw3
ICs5Miw3IEBAIFBERlBsdWdpbkFubm90YXRpb246On5QREZQbHVnaW5Bbm5vdGF0aW9uKCkKIAog
ICAgIG1fZXZlbnRMaXN0ZW5lci0+c2V0QW5ub3RhdGlvbigwKTsKIAotICAgIG1fcGFyZW50LT5y
ZW1vdmVDaGlsZChlbGVtZW50KCkpOworICAgIG1fcGFyZW50LT5yZW1vdmVDaGlsZCgqZWxlbWVu
dCgpKTsKIH0KIAogdm9pZCBQREZQbHVnaW5Bbm5vdGF0aW9uOjp1cGRhdGVHZW9tZXRyeSgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdp
bkNob2ljZUFubm90YXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24ubW0KaW5kZXggZTFhOGU1ODIyYjI1ZTg3OTM1
MWYzNDkwYmU5NTRkMWRiODE5ZGQ0Yi4uNjIxZGMwMTFkYjg3NGZkZjNkZjIzMDVhZTQwNzM2Nzlm
MzZmMGYzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9QREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbi5tbQpAQCAtODMsMTQg
KzgzLDE0IEBAIFBhc3NSZWZQdHI8RWxlbWVudD4gUERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbjo6
Y3JlYXRlQW5ub3RhdGlvbkVsZW1lbnQoKQogICAgIE5TU3RyaW5nICpzZWxlY3RlZENob2ljZSA9
IGNob2ljZUFubm90YXRpb24uc3RyaW5nVmFsdWU7CiAKICAgICBmb3IgKE5TU3RyaW5nICpjaG9p
Y2UgaW4gY2hvaWNlcykgewotICAgICAgICBSZWZQdHI8RWxlbWVudD4gY2hvaWNlT3B0aW9uID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChvcHRpb25UYWcsIGZhbHNlKTsKKyAgICAgICAgUmVmPEVs
ZW1lbnQ+IGNob2ljZU9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQob3B0aW9uVGFnLCBm
YWxzZSk7CiAgICAgICAgIGNob2ljZU9wdGlvbi0+c2V0QXR0cmlidXRlKHZhbHVlQXR0ciwgY2hv
aWNlKTsKICAgICAgICAgY2hvaWNlT3B0aW9uLT5zZXRUZXh0Q29udGVudChjaG9pY2UsIEFTU0VS
VF9OT19FWENFUFRJT04pOwogCiAgICAgICAgIGlmIChjaG9pY2UgPT0gc2VsZWN0ZWRDaG9pY2Up
CiAgICAgICAgICAgICBjaG9pY2VPcHRpb24tPnNldEF0dHJpYnV0ZShzZWxlY3RlZEF0dHIsICJz
ZWxlY3RlZCIpOwogCi0gICAgICAgIHN0eWxlZEVsZW1lbnQtPmFwcGVuZENoaWxkKGNob2ljZU9w
dGlvbik7CisgICAgICAgIHN0eWxlZEVsZW1lbnQtPmFwcGVuZENoaWxkKFdURjo6bW92ZShjaG9p
Y2VPcHRpb24pKTsKICAgICB9CiAKICAgICByZXR1cm4gZWxlbWVudDsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1M2RhZDYw
ZGJiZWRkN2ExYjQwZDVmYWIwZjliMzNlOTIxMzcwZTlkLi5mNTUxNjIwMzE1ZDNkYzdjNzczMTEx
YWE5OTFjODI0ZWI2MDhiY2MzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTUtMDktMDggIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBOb2RlLmFwcGVuZENoaWxk
KG51bGwpIC8gcmVwbGFjZUNoaWxkKG51bGwsIG51bGwpIC8gcmVtb3ZlQ2hpbGQobnVsbCkgLyBp
bnNlcnRCZWZvcmUobnVsbCwgcmVmKSBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3IKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODk3MQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMjI1NjA4ODM+CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjU1OTIy
NT4KKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgVXBkYXRl
IC8gcmViYXNlbGluZSB0ZXN0cyBub3cgdGhhdCB3ZSB0aHJvdyBhIGRpZmZlcmVudCBleGNlcHRp
b24gdHlwZS4KKworICAgICAgICAqIGZhc3QvZG9tL0RvY3VtZW50L3JlcGxhY2VDaGlsZC1udWxs
LW9sZENoaWxkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9Eb2N1bWVudC9zY3Jp
cHQtdGVzdHMvcmVwbGFjZUNoaWxkLW51bGwtb2xkQ2hpbGQuanM6CisgICAgICAgICogZmFzdC9k
b20vTm9kZS9mcmFnbWVudC1tdXRhdGlvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9k
b20vTm9kZS9mcmFnbWVudC1tdXRhdGlvbi5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL2luY29t
cGF0aWJsZS1vcGVyYXRpb25zLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9pbmNv
bXBhdGlibGUtb3BlcmF0aW9ucy5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL21vdmUtbm9kZXMt
YWNyb3NzLWRvY3VtZW50cy5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL3Byb2Nlc3NpbmctaW5z
dHJ1Y3Rpb24tYXBwZW5kQ2hpbGQtZXhjZXB0aW9ucy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
ZmFzdC9kb20vcHJvY2Vzc2luZy1pbnN0cnVjdGlvbi1hcHBlbmRDaGlsZC1leGNlcHRpb25zLnho
dG1sOgorICAgICAgICAqIGZhc3QvZG9tL3NldHRlci10eXBlLWVuZm9yY2VtZW50LWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS90aW1lci1jbGVhci1pbnRlcnZhbC1pbi1oYW5kbGVy
LWFuZC1nZW5lcmF0ZS1lcnJvci1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9pbnNwZWN0
b3Itc3VwcG9ydC91bmNhdWdodC1kb204LWV4Y2VwdGlvbi5odG1sOgorCiAyMDE1LTA5LTA5ICBE
ZXdlaSBaaHUgIDxkZXdlaV96aHVAYXBwbGUuY29tPgogCiAgICAgICAgIERvY3VtZW50LmNoYXJh
Y3RlclNldCBzaG91bGQgcmV0dXJuICJVVEYtOCIgYnkgZGVmYXVsdC4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCmluZGV4IGYxZTE2MjZlNjE0MWM5YWY4NjllNmZkZjZmNjM0ZjdiYTRjNWJl
ZWQuLjRlMjAxNjI4NDRjYjQ5N2RhN2JlZGUxNGJlY2QwYTExNmJjYzgzODMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE1LTA5LTA4ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTm9kZS5hcHBlbmRDaGlsZChudWxs
KSAvIHJlcGxhY2VDaGlsZChudWxsLCBudWxsKSAvIHJlbW92ZUNoaWxkKG51bGwpIC8gaW5zZXJ0
QmVmb3JlKG51bGwsIHJlZikgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg5NzEKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzIyNTYwODgzPgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjI1NTkyMjU+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIFJlYmFzZWxpbmUg
VzNDIHRlc3RzIG5vdyB0aGF0IG1vcmUgY2hlY2tzIGFyZSBwYXNzaW5nLgorCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtYXBwZW5kQ2hpbGQtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1pbnNlcnRC
ZWZvcmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9k
ZXMvTm9kZS1yZW1vdmVDaGlsZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLXJlcGxhY2VDaGlsZC1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0Ogor
CiAyMDE1LTA5LTA5ICBEZXdlaSBaaHUgIDxkZXdlaV96aHVAYXBwbGUuY29tPgogCiAgICAgICAg
IERvY3VtZW50LmNoYXJhY3RlclNldCBzaG91bGQgcmV0dXJuICJVVEYtOCIgYnkgZGVmYXVsdC4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50L3JlcGxhY2VDaGlsZC1u
dWxsLW9sZENoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50
L3JlcGxhY2VDaGlsZC1udWxsLW9sZENoaWxkLWV4cGVjdGVkLnR4dAppbmRleCBiYmIxNjZiMjI3
YTUyZTY1MTQ1YWRiZjQwNDg3ODUzYjBkMzY4ZDI0Li5hZjVhNDY5ZjVmOGNjNjk3MTAxYmM5MmE0
MGY4MjQ1NWI4YmU1Y2QwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Eb2N1bWVu
dC9yZXBsYWNlQ2hpbGQtbnVsbC1vbGRDaGlsZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vRG9jdW1lbnQvcmVwbGFjZUNoaWxkLW51bGwtb2xkQ2hpbGQtZXhwZWN0ZWQu
dHh0CkBAIC0zLDcgKzMsNyBAQCBUZXN0IGJlaGF2aW9yIG9mIERvY3VtZW50LnJlcGxhY2VDaGls
ZCgpIHdoZW4gb2xkQ2hpbGQgaXMgbnVsbC4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAog
Ci1QQVNTIGRvY3VtZW50LnJlcGxhY2VDaGlsZChkb2N1bWVudC5maXJzdENoaWxkLCBudWxsKSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOC4KK1BB
U1MgZG9jdW1lbnQucmVwbGFjZUNoaWxkKGRvY3VtZW50LmZpcnN0Q2hpbGQsIG51bGwpIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0RvY3VtZW50L3NjcmlwdC10ZXN0cy9yZXBsYWNlQ2hpbGQtbnVsbC1vbGRDaGlsZC5qcyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50L3NjcmlwdC10ZXN0cy9yZXBsYWNlQ2hpbGQt
bnVsbC1vbGRDaGlsZC5qcwppbmRleCBkYTkyNTI4MDA1MWUxOTdlMWFmNWM5ZWE0YTI1YjQxYjk2
ZWMzYTVmLi5jMDliZjFiMThkMjk5ZTY3NDUyMzA1MzY2N2E4YzI1ZDhhOTgwNzBlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Eb2N1bWVudC9zY3JpcHQtdGVzdHMvcmVwbGFjZUNo
aWxkLW51bGwtb2xkQ2hpbGQuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQv
c2NyaXB0LXRlc3RzL3JlcGxhY2VDaGlsZC1udWxsLW9sZENoaWxkLmpzCkBAIC0xLDMgKzEsMyBA
QAogZGVzY3JpcHRpb24oJ1Rlc3QgYmVoYXZpb3Igb2YgRG9jdW1lbnQucmVwbGFjZUNoaWxkKCkg
d2hlbiBvbGRDaGlsZCBpcyBudWxsLicpOwogCi1zaG91bGRUaHJvdygnZG9jdW1lbnQucmVwbGFj
ZUNoaWxkKGRvY3VtZW50LmZpcnN0Q2hpbGQsIG51bGwpJywgJyJFcnJvcjogTm90Rm91bmRFcnJv
cjogRE9NIEV4Y2VwdGlvbiA4IicpOworc2hvdWxkVGhyb3coJ2RvY3VtZW50LnJlcGxhY2VDaGls
ZChkb2N1bWVudC5maXJzdENoaWxkLCBudWxsKScsICciVHlwZUVycm9yOiBUeXBlIGVycm9yIicp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZS9mcmFnbWVudC1tdXRhdGlv
bi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2ZyYWdtZW50LW11dGF0
aW9uLWV4cGVjdGVkLnR4dAppbmRleCAwZjA0ZTY2YTBlNTNlNmY1YjE5MDFjNWRjYjE3NmY2N2Yy
ZTRmODY4Li40YmE5NTI0YzcyY2Q1ZDdhMTEzMjk0NGQwNmRkZGJjNmY2YzdkODVjIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2ZyYWdtZW50LW11dGF0aW9uLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2ZyYWdtZW50LW11dGF0aW9uLWV4
cGVjdGVkLnR4dApAQCAtMiwxMiArMiwxMiBAQCBUaGlzIHRlc3QgY3JlYXRlcyBhIGZyYWdtZW50
IGNvbnRhaW5pbmcgdGhyZWUgZWxlbWVudHM6ICJCIiwgIlUiLCBhbmQgIlAiLCBhdHRlbQogCiBJ
bnNlcnRpbmcgYW4gZWxlbWVudCBpbiBmcm9udCBvZiB0aGUgbmV4dCBpdGVtIGluIGZyYWdtZW50
IHNob3VsZCBub3QgYWZmZWN0IHRoZSByZXN1bHQ6IFBBU1MKIEFwcGVuZGluZyBhbiBlbGVtZW50
IGF0IHRoZSBlbmQgb2YgdGhlIGZyYWdtZW50IHNob3VsZCBub3QgYWZmZWN0IHRoZSByZXN1bHQ6
IFBBU1MKLUNvbnRpbnVhbGx5IHJlLWFwcGVuZGluZyByZW1vdmVkIGVsZW1lbnQgdG8gdGhlIGZy
YWdtZW50IHNob3VsZCBldmVudHVhbGx5IHRocm93IE5PVF9GT1VORF9FUlI6IFBBU1MKK0NvbnRp
bnVhbGx5IHJlLWFwcGVuZGluZyByZW1vdmVkIGVsZW1lbnQgdG8gdGhlIGZyYWdtZW50IHNob3Vs
ZCBldmVudHVhbGx5IHRocm93IGEgVHlwZUVycm9yOiBQQVNTCiAKIFRoaXMgdGVzdCBjcmVhdGVz
IGEgZnJhZ21lbnQgY29udGFpbmluZyB0aHJlZSBlbGVtZW50czogIkIiLCAiVSIsIGFuZCAiUCIs
IGF0dGVtcHRzIHRvIGluc2VydEJlZm9yZSB0aGlzIGZyYWdtZW50IGFuZCBzdHVkaWVzIGVmZmVj
dHMgb2YgbXV0YXRpb24gZXZlbnRzIG9uIHRoZSBmcmFnbWVudC4KIAogSW5zZXJ0aW5nIGFuIGVs
ZW1lbnQgaW4gZnJvbnQgb2YgdGhlIG5leHQgaXRlbSBpbiBmcmFnbWVudCBzaG91bGQgbm90IGFm
ZmVjdCB0aGUgcmVzdWx0OiBQQVNTCiBBcHBlbmRpbmcgYW4gZWxlbWVudCBhdCB0aGUgZW5kIG9m
IHRoZSBmcmFnbWVudCBzaG91bGQgbm90IGFmZmVjdCB0aGUgcmVzdWx0OiBQQVNTCi1Db250aW51
YWxseSByZS1hcHBlbmRpbmcgcmVtb3ZlZCBlbGVtZW50IHRvIHRoZSBmcmFnbWVudCBzaG91bGQg
ZXZlbnR1YWxseSB0aHJvdyBOT1RfRk9VTkRfRVJSOiBQQVNTCitDb250aW51YWxseSByZS1hcHBl
bmRpbmcgcmVtb3ZlZCBlbGVtZW50IHRvIHRoZSBmcmFnbWVudCBzaG91bGQgZXZlbnR1YWxseSB0
aHJvdyBhIFR5cGVFcnJvcjogUEFTUwogCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL05vZGUvZnJhZ21lbnQtbXV0YXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL05v
ZGUvZnJhZ21lbnQtbXV0YXRpb24uaHRtbAppbmRleCA4NGU2N2Y2NTM5ZDY0YjczZTM1MTEwMjBj
MDc2ZTA0YzllODAwY2JmLi40ODk0OTdmNTBhYzZiNmE4ZjgxMDA2YmI1OGU2YWMxNzU1N2M2Yjg0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Ob2RlL2ZyYWdtZW50LW11dGF0aW9u
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vTm9kZS9mcmFnbWVudC1tdXRhdGlvbi5o
dG1sCkBAIC0zNiwxNSArMzYsMTUgQEAgZnVuY3Rpb24gcHJvZHVjZU5vZGVOYW1lU3RyaW5nKG5v
ZGVzKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLWZ1bmN0aW9uIGV4cGVjdEV4Y2VwdGlvbihj
b2RlKQorZnVuY3Rpb24gZXhwZWN0VHlwZUVycm9yKCkKIHsKICAgICByZXR1cm4gZnVuY3Rpb24o
c3Rhc2gsIGV4Y2VwdGlvbikgewogICAgICAgICBpZiAoIWV4Y2VwdGlvbikKLSAgICAgICAgICAg
IHJldHVybiAiRkFJTCwgZXhwZWN0ZWQgZXhjZXB0aW9uIHdpdGggY29kZSAiICsgY29kZSArICIu
IFRoZSByZXN1bHRpbmcgZnJhZ21lbnQgd2FzOiBcIiIgKyBwcm9kdWNlTm9kZU5hbWVTdHJpbmco
c3Rhc2gpICsgIlwiLiI7CisgICAgICAgICAgICByZXR1cm4gIkZBSUwsIGV4cGVjdGVkIFR5cGVF
cnJvci4gVGhlIHJlc3VsdGluZyBmcmFnbWVudCB3YXM6IFwiIiArIHByb2R1Y2VOb2RlTmFtZVN0
cmluZyhzdGFzaCkgKyAiXCIuIjsKIAotICAgICAgICBpZiAoY29kZSA9PSBleGNlcHRpb24uY29k
ZSkKKyAgICAgICAgaWYgKGV4Y2VwdGlvbi5uYW1lID0gIlR5cGVFcnJvciIpCiAgICAgICAgICAg
ICByZXR1cm4gIlBBU1MiOwotICAgICAgICByZXR1cm4gIkZBSUwsIGV4cGVjdGVkIGV4Y2VwdGlv
biBjb2RlOiAiICsgY29kZSArICIsIHdhczogIiArIGV4Y2VwdGlvbiArICIuIjsKKyAgICAgICAg
cmV0dXJuICJGQUlMLCBleHBlY3RlZCBUeXBlRXJyb3IsIHdhczogIiArIGV4Y2VwdGlvbi5uYW1l
ICsgIi4iOwogICAgIH0KIH0KIApAQCAtMTE5LDEwICsxMTksMTAgQEAgZnVuY3Rpb24gcnVuVGVz
dChtZXRob2ROYW1lLCBtZXRob2QpCiAgICAgICAgIGZyYWcuYXBwZW5kQ2hpbGQoZXh0cmEpOwog
ICAgIH0sIGV4cGVjdE5vZGVzKCJCVVAiKSk7CiAKLSAgICB0ZXN0RnJhZ21lbnQobWV0aG9kLCAi
Q29udGludWFsbHkgcmUtYXBwZW5kaW5nIHJlbW92ZWQgZWxlbWVudCB0byB0aGUgZnJhZ21lbnQg
c2hvdWxkIGV2ZW50dWFsbHkgdGhyb3cgTk9UX0ZPVU5EX0VSUiIsIGZ1bmN0aW9uKGV2dCwgZnJh
Zywgc3Rhc2gpCisgICAgdGVzdEZyYWdtZW50KG1ldGhvZCwgIkNvbnRpbnVhbGx5IHJlLWFwcGVu
ZGluZyByZW1vdmVkIGVsZW1lbnQgdG8gdGhlIGZyYWdtZW50IHNob3VsZCBldmVudHVhbGx5IHRo
cm93IGEgVHlwZUVycm9yIiwgZnVuY3Rpb24oZXZ0LCBmcmFnLCBzdGFzaCkKICAgICB7CiAgICAg
ICAgIHN0YXNoLmluc2VydEJlZm9yZShmcmFnLmxhc3RDaGlsZCwgc3Rhc2guZmlyc3RDaGlsZCk7
Ci0gICAgfSwgZXhwZWN0RXhjZXB0aW9uKDgpLCB0cnVlKTsKKyAgICB9LCBleHBlY3RUeXBlRXJy
b3IoKSwgdHJ1ZSk7CiAgICAgcHJpbnRMb2cobWV0aG9kTmFtZSk7CiB9CiBmdW5jdGlvbiBydW5U
ZXN0cygpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pbmNvbXBhdGlibGUtb3Bl
cmF0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pbmNvbXBhdGlibGUt
b3BlcmF0aW9ucy1leHBlY3RlZC50eHQKaW5kZXggZDU3NjRjMWU1YWM2MjY0ZWUzYTRkZjViOTI0
NWViZTE3N2Y2NTQ4MC4uODVjY2Q1NDRmYzllOTlhNzhkYWEyNzc1NWEzM2ZjODgwYTdmZjBkNiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vaW5jb21wYXRpYmxlLW9wZXJhdGlvbnMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2luY29tcGF0aWJsZS1vcGVy
YXRpb25zLWV4cGVjdGVkLnR4dApAQCAtMyw5ICszLDkgQEAgVGhpcyB0ZXN0IGNoZWNrcyB0aGUg
YmVoYXZpb3Igb2YgRE9NIG9wZXJhdGlvbnMgd2hlbiBjYWxsZWQgb24gbm9uLURPTSBvciBpbmNv
bXAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIGFOb2RlLmFwcGVuZENoaWxk
KGFET01JbXBsZW1lbnRhdGlvbikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb3RGb3VuZEVycm9y
OiBET00gRXhjZXB0aW9uIDguCi1QQVNTIGFOb2RlLmFwcGVuZENoaWxkKCdrbm9ydCcpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4LgotUEFTUyBh
Tm9kZS5hcHBlbmRDaGlsZCh2b2lkIDApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm90Rm91bmRF
cnJvcjogRE9NIEV4Y2VwdGlvbiA4LgorUEFTUyBhTm9kZS5hcHBlbmRDaGlsZChhRE9NSW1wbGVt
ZW50YXRpb24pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGFO
b2RlLmFwcGVuZENoaWxkKCdrbm9ydCcpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUg
ZXJyb3IuCitQQVNTIGFOb2RlLmFwcGVuZENoaWxkKHZvaWQgMCkgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1MgYU5vZGUuaXNTYW1lTm9kZShhRE9NSW1wbGVtZW50
YXRpb24pIGlzIGZhbHNlCiBQQVNTIGFOb2RlLmlzU2FtZU5vZGUoJ2ZvbycpIGlzIGZhbHNlCiBQ
QVNTIGFOb2RlLmlzU2FtZU5vZGUodm9pZCAwKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vaW5jb21wYXRpYmxlLW9wZXJhdGlvbnMuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL2luY29tcGF0aWJsZS1vcGVyYXRpb25zLmh0bWwKaW5kZXggMjFhYTcxYWZlOGUz
ZGVhYThjZThiMDRkM2YzY2YyM2Q1ODI1NDIzMC4uMmYwZTRhZmU2Y2FjYmRjMmI4NTczNWU3NjYw
ZWU4ZjllNWQwMWIwZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vaW5jb21wYXRp
YmxlLW9wZXJhdGlvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pbmNvbXBhdGli
bGUtb3BlcmF0aW9ucy5odG1sCkBAIC0yOCwxMSArMjgsMTEgQEAgdmFyIGFOb2RlID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiB2YXIgYVNlY29uZE5vZGUgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKTsKIGFOb2RlLmFwcGVuZENoaWxkKGFTZWNvbmROb2RlKTsKIAotc2hv
dWxkVGhyb3coImFOb2RlLmFwcGVuZENoaWxkKGFET01JbXBsZW1lbnRhdGlvbikiLCAiJ0Vycm9y
OiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgnIik7CitzaG91bGRUaHJvdygiYU5vZGUu
YXBwZW5kQ2hpbGQoYURPTUltcGxlbWVudGF0aW9uKSIsICInVHlwZUVycm9yOiBUeXBlIGVycm9y
JyIpOwogCi1zaG91bGRUaHJvdygiYU5vZGUuYXBwZW5kQ2hpbGQoJ2tub3J0JykiLCAiJ0Vycm9y
OiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgnIik7CitzaG91bGRUaHJvdygiYU5vZGUu
YXBwZW5kQ2hpbGQoJ2tub3J0JykiLCAiJ1R5cGVFcnJvcjogVHlwZSBlcnJvciciKTsKIAotc2hv
dWxkVGhyb3coImFOb2RlLmFwcGVuZENoaWxkKHZvaWQgMCkiLCAiJ0Vycm9yOiBOb3RGb3VuZEVy
cm9yOiBET00gRXhjZXB0aW9uIDgnIik7CitzaG91bGRUaHJvdygiYU5vZGUuYXBwZW5kQ2hpbGQo
dm9pZCAwKSIsICInVHlwZUVycm9yOiBUeXBlIGVycm9yJyIpOwogCiBzaG91bGRCZUZhbHNlKCJh
Tm9kZS5pc1NhbWVOb2RlKGFET01JbXBsZW1lbnRhdGlvbikiKTsKIHNob3VsZEJlRmFsc2UoImFO
b2RlLmlzU2FtZU5vZGUoJ2ZvbycpIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9tb3ZlLW5vZGVzLWFjcm9zcy1kb2N1bWVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L21vdmUtbm9kZXMtYWNyb3NzLWRvY3VtZW50cy5odG1sCmluZGV4IGQzNTAxYTE3ZGI4NmM0ZWM4
NjBmYjVmMTIyYzdkNWNkYWU2ZjVhMzUuLjM4ODFmMDQ5OTIxYjEzZGQzZmI2NmZlNmQ3YTUyZWM3
NGFmNjg1ODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL21vdmUtbm9kZXMtYWNy
b3NzLWRvY3VtZW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL21vdmUtbm9kZXMt
YWNyb3NzLWRvY3VtZW50cy5odG1sCkBAIC0xNzksNyArMTc5LDcgQEAgZnVuY3Rpb24gcnVuKCkK
ICAgICBydW5UZXN0KGZ1bmN0aW9uKCkgewogICAgICAgICBpZnJhbWVEb2MuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuZG9jdHlwZSk7CiAgICAgICAgIGNvbnNvbGUubG9nKGRvY3VtZW50LmRvY3R5cGUp
OwotICAgIH0sICdOb3RGb3VuZEVycm9yJyk7CisgICAgfSwgJ1R5cGVFcnJvcicpOwogCiAgICAg
Ly8gV2hlbiBzZXR0aW5nIGEgYm91bmRhcnkgb2YgdGhlIHJhbmdlIGluIGEgZGlmZmVyZW50CiAg
ICAgLy8gZG9jdW1lbnQsIHRoZSBjYWxsIHNob3VsZCBzdWNjZWVkIGFuZCB0aGUgcmFuZ2Ugc2hv
dWxkIGJlIGNvbGxhcHNlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb2Nl
c3NpbmctaW5zdHJ1Y3Rpb24tYXBwZW5kQ2hpbGQtZXhjZXB0aW9ucy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9wcm9jZXNzaW5nLWluc3RydWN0aW9uLWFwcGVuZENoaWxkLWV4
Y2VwdGlvbnMtZXhwZWN0ZWQudHh0CmluZGV4IDdhMTM4NjhhN2IyZmZmYTZkMjY0MmFiNjIxNzIy
N2IyZGFiOTJmYjkuLjBlM2JkZjIyNmUwYzVhNjU5MTcxMjA0NWMzNTU1ZDgzNmJjY2JiMmYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb2Nlc3NpbmctaW5zdHJ1Y3Rpb24tYXBw
ZW5kQ2hpbGQtZXhjZXB0aW9ucy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vcHJvY2Vzc2luZy1pbnN0cnVjdGlvbi1hcHBlbmRDaGlsZC1leGNlcHRpb25zLWV4cGVjdGVk
LnR4dApAQCAtMyw3ICszLDcgQEAgVGVzdCB0aGF0IGFwcHJvcHJpYXRlIGV4Y2VwdGlvbnMgYXJl
IHRocm93biB3aGVuIGFkZGluZyBjaGlsZHJlbiB0byBhIFByb2Nlc3NpbmcKIE9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIHBpLmFwcGVuZENoaWxkKG51bGwpIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMuCitQQVNT
IHBpLmFwcGVuZENoaWxkKG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJy
b3IuCiBQQVNTIHBpLmFwcGVuZENoaWxkKGRpdikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBIaWVy
YXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMy4KIFBBU1MgcGkuYXBwZW5kQ2hpbGQo
dGV4dE5vZGUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBE
T00gRXhjZXB0aW9uIDMuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm9jZXNzaW5nLWluc3RydWN0aW9uLWFwcGVuZENo
aWxkLWV4Y2VwdGlvbnMueGh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm9jZXNzaW5nLWlu
c3RydWN0aW9uLWFwcGVuZENoaWxkLWV4Y2VwdGlvbnMueGh0bWwKaW5kZXggYjAwMjg5OWMyMzIw
NjdmYzE3MzNmYTkxZWFmZTEzMTQyMmM0OTk2MC4uYzkwMmJhNGIzNTk4OTdkOTM4YmQ0OWY4MGJj
NmYyMmMyMDE5MmZkOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvY2Vzc2lu
Zy1pbnN0cnVjdGlvbi1hcHBlbmRDaGlsZC1leGNlcHRpb25zLnhodG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3Byb2Nlc3NpbmctaW5zdHJ1Y3Rpb24tYXBwZW5kQ2hpbGQtZXhjZXB0aW9u
cy54aHRtbApAQCAtNSw3ICs1LDcgQEAKIDwhW0NEQVRBWwogZGVzY3JpcHRpb24oIlRlc3QgdGhh
dCBhcHByb3ByaWF0ZSBleGNlcHRpb25zIGFyZSB0aHJvd24gd2hlbiBhZGRpbmcgY2hpbGRyZW4g
dG8gYSBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uIik7CiB2YXIgcGkgPSBkb2N1bWVudC5jcmVhdGVQ
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24oJ3RhcmdldCcsICdkYXRhJyk7Ci1zaG91bGRUaHJvdygicGku
YXBwZW5kQ2hpbGQobnVsbCkiLCAiJ0Vycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBF
eGNlcHRpb24gMyciKTsKK3Nob3VsZFRocm93KCJwaS5hcHBlbmRDaGlsZChudWxsKSIsICInVHlw
ZUVycm9yOiBUeXBlIGVycm9yJyIpOwogdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2RpdicpOwogc2hvdWxkVGhyb3coInBpLmFwcGVuZENoaWxkKGRpdikiLCAiJ0Vycm9yOiBIaWVy
YXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyciKTsKIHZhciB0ZXh0Tm9kZSA9IGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKCdzb21ldGV4dCcpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vdGltZXItY2xlYXItaW50ZXJ2YWwtaW4taGFuZGxlci1hbmQtZ2VuZXJhdGUt
ZXJyb3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vdGltZXItY2xlYXItaW50
ZXJ2YWwtaW4taGFuZGxlci1hbmQtZ2VuZXJhdGUtZXJyb3ItZXhwZWN0ZWQudHh0CmluZGV4IDk5
YWFjNmEwNWRjYWU4ODYzMjY5YzY5YmI2ZGNiM2E5Mjk0YjY0NzcuLjVmMmZkNTE0MTcwMGM4MzMz
NDg5YjUwZTFhM2QyMjJiMjY5NDI1YTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3RpbWVyLWNsZWFyLWludGVydmFsLWluLWhhbmRsZXItYW5kLWdlbmVyYXRlLWVycm9yLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS90aW1lci1jbGVhci1pbnRlcnZhbC1p
bi1oYW5kbGVyLWFuZC1nZW5lcmF0ZS1lcnJvci1leHBlY3RlZC50eHQKQEAgLTEsMiArMSwyIEBA
Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24g
ODogQW4gYXR0ZW1wdCB3YXMgbWFkZSB0byByZWZlcmVuY2UgYSBOb2RlIGluIGEgY29udGV4dCB3
aGVyZSBpdCBkb2VzIG5vdCBleGlzdC4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMDogVHlwZUVy
cm9yOiBUeXBlIGVycm9yCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jl
bW92ZS10YXJnZXQtd2l0aC1zaGFkb3ctaW4tZHJhZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9yZW1vdmUtdGFyZ2V0LXdpdGgtc2hhZG93LWluLWRyYWctZXhwZWN0ZWQu
dHh0CmluZGV4IDQ1YzExOWZlOWIzMGNhZDJhNTBmMWRmZjhjMDE3MTE5MjA1YWZlN2EuLjEyODk2
NGY1ZmE0YWFhODJlYzg5YWRmN2JkMjNlM2Y4MGVhMzliNjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3JlbW92ZS10YXJnZXQtd2l0aC1zaGFkb3ctaW4tZHJhZy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVtb3ZlLXRhcmdldC13aXRoLXNo
YWRvdy1pbi1kcmFnLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FH
RTogbGluZSAzNDogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4OiBBbiBhdHRlbXB0IHdh
cyBtYWRlIHRvIHJlZmVyZW5jZSBhIE5vZGUgaW4gYSBjb250ZXh0IHdoZXJlIGl0IGRvZXMgbm90
IGV4aXN0LgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM0OiBOb3RGb3VuZEVycm9yOiBET00gRXhj
ZXB0aW9uIDg6IEFuIGF0dGVtcHQgd2FzIG1hZGUgdG8gcmVmZXJlbmNlIGEgTm9kZSBpbiBhIGNv
bnRleHQgd2hlcmUgaXQgZG9lcyBub3QgZXhpc3QuCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMzQ6
IFR5cGVFcnJvcjogVHlwZSBlcnJvcgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM0OiBUeXBlRXJy
b3I6IFR5cGUgZXJyb3IKIFBBU1MuIERSVCBkaWRuJ3QgY3Jhc2guCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2luc3BlY3Rvci1zdXBwb3J0L3VuY2F1Z2h0LWRvbTgtZXhjZXB0aW9uLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2luc3BlY3Rvci1zdXBwb3J0L3VuY2F1Z2h0LWRvbTgtZXhj
ZXB0aW9uLmh0bWwKaW5kZXggYmM2MDhmNGZhZTA0OTM3MDZjOWI3OWU1MTM3YmNmZTc4MzQyMjVk
Yi4uNWZhNGU1YjhiNjY2NjM5NDIyZDViNGFkOWE2N2ZlYTYyZDRlZTkwYSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9pbnNwZWN0b3Itc3VwcG9ydC91bmNhdWdodC1kb204LWV4Y2VwdGlv
bi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW5zcGVjdG9yLXN1cHBvcnQvdW5jYXVnaHQt
ZG9tOC1leGNlcHRpb24uaHRtbApAQCAtNiw3ICs2LDcgQEAgZnVuY3Rpb24gb25sb2FkKCkKIHsK
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwotICAgIGRvY3VtZW50LmFwcGVuZENoaWxkKCk7CisgICAgZG9jdW1lbnQuYm9keS5yZW1v
dmVBdHRyaWJ1dGVOb2RlKGRvY3VtZW50LmNyZWF0ZUF0dHJpYnV0ZSgiZG9lc05vdEV4aXN0Iikp
OwogfQogCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaW50ZXJmYWNlcy1leHBlY3Rl
ZC50eHQKaW5kZXggNjQ5NTFiNDdjNDU0ZWFkNjJkYjU1NGYxNDkwMmVhZjM1MjZmNzMxMy4uYWFm
OGQ0MjdlODUxMDEwMmYwYWY3ZjBiNTJjNjM3OTY0NmM2MTliYSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaW50ZXJmYWNlcy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKQEAgLTYzNCwyMSArNjM0LDE1IEBAIEZBSUwg
Tm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaXNEZWZhdWx0TmFtZXNwYWNlKERPTVN0cmluZykgb24g
eG1sRG9jIHdpdGggdG9vIGZlCiAgICAgW25hdGl2ZSBjb2RlXQogfSIgZGlkIG5vdCB0aHJvdwog
UEFTUyBOb2RlIGludGVyZmFjZTogeG1sRG9jIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5zZXJ0
QmVmb3JlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDApIAotRkFJTCBOb2RlIGludGVyZmFjZTog
Y2FsbGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBvbiB4bWxEb2Mgd2l0aCB0b28gZmV3IGFy
Z3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAw
IGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworRkFJTCBOb2RlIGludGVyZmFjZTog
Y2FsbGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBvbiB4bWxEb2Mgd2l0aCB0b28gZmV3IGFy
Z3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAx
IGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KLX0i
IHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIgKCJO
b3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikK
K30iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2Vw
dGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVy
cm9yIiAoIlR5cGVFcnJvciIpCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiB4bWxEb2MgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJhcHBlbmRDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQxKSAKLUZB
SUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24geG1sRG9jIHdp
dGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czog
Q2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0
aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhj
ZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAo
IlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENoaWxkKE5v
ZGUpIG9uIHhtbERvYyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9y
IAogUEFTUyBOb2RlIGludGVyZmFjZTogeG1sRG9jIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVw
bGFjZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDIpIAotRkFJTCBOb2RlIGludGVyZmFj
ZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiB4bWxEb2Mgd2l0aCB0b28gZmV3
IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0
aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0K
LX0iIGRpZCBub3QgdGhyb3cKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNo
aWxkKE5vZGUsTm9kZSkgb24geG1sRG9jIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiB4bWxEb2MgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJyZW1vdmVDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQzKSAKLUZBSUwgTm9k
ZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24geG1sRG9jIHdpdGggdG9v
IGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVk
IHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNv
ZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9u
IDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVF
cnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9u
IHhtbERvYyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFT
UyBFdmVudFRhcmdldCBpbnRlcmZhY2U6IHhtbERvYyBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFk
ZEV2ZW50TGlzdGVuZXIiIHdpdGggdGhlIHByb3BlciB0eXBlICgwKSAKIEZBSUwgRXZlbnRUYXJn
ZXQgaW50ZXJmYWNlOiBjYWxsaW5nIGFkZEV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nLEV2ZW50TGlz
dGVuZXIsYm9vbGVhbikgb24geG1sRG9jIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rp
b24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCkBAIC03OTMsMjEgKzc4NywxNSBA
QCBGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGlzRGVmYXVsdE5hbWVzcGFjZShET01TdHJp
bmcpIG9uIGRvY3VtZW50LmNyZWF0ZURvYwogICAgIFtuYXRpdmUgY29kZV0KIH0iIGRpZCBub3Qg
dGhyb3cKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21l
bnQoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImluc2VydEJlZm9yZSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgKDQwKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5v
ZGUsTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpIHdpdGggdG9vIGZl
dyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdp
dGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKK0ZBSUwgTm9kZSBpbnRlcmZh
Y2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlRG9j
dW1lbnRGcmFnbWVudCgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJy
b3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMSBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0
aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RG
b3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9i
amVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCit9IiBkaWQgbm90IHRocm93CiBQQVNTIE5v
ZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJhcHBlbmRDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQxKSAKLUZB
SUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQu
Y3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rp
b24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVy
cm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4
cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJm
YWNlOiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZURvY3VtZW50
RnJhZ21lbnQoKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAog
UEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVwbGFjZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAo
NDIpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2Rl
KSBvbiBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkgd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFy
Z3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIGRp
ZCBub3QgdGhyb3cKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5v
ZGUsTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpIHdpdGggdG9vIGZl
dyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBk
b2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJy
ZW1vdmVDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQzKSAKLUZBSUwgTm9kZSBpbnRlcmZh
Y2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRG
cmFnbWVudCgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNz
ZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgp
IHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVy
cm9yOiBET00gRXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAi
VHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJl
bW92ZUNoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSB3aXRo
IHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBFdmVudFRhcmdl
dCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgImFkZEV2ZW50TGlzdGVuZXIiIHdpdGggdGhlIHByb3BlciB0eXBlICgwKSAK
IEZBSUwgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBjYWxsaW5nIGFkZEV2ZW50TGlzdGVuZXIoRE9N
U3RyaW5nLEV2ZW50TGlzdGVuZXIsYm9vbGVhbikgb24gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRG
cmFnbWVudCgpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNz
ZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgp
IHsKICAgICBbbmF0aXZlIGNvZGVdCkBAIC05MTUsMjEgKzkwMywxNSBAQCBGQUlMIE5vZGUgaW50
ZXJmYWNlOiBjYWxsaW5nIGlzRGVmYXVsdE5hbWVzcGFjZShET01TdHJpbmcpIG9uIGRvY3VtZW50
LmRvY3R5cGUgdwogICAgIFtuYXRpdmUgY29kZV0KIH0iIGRpZCBub3QgdGhyb3cKIFBBU1MgTm9k
ZSBpbnRlcmZhY2U6IGRvY3VtZW50LmRvY3R5cGUgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJpbnNl
cnRCZWZvcmUiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MCkgCi1GQUlMIE5vZGUgaW50ZXJmYWNl
OiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmRvY3R5cGUgd2l0
aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBD
YWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworRkFJTCBOb2Rl
IGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5k
b2N0eXBlIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0
X3Rocm93czogQ2FsbGVkIHdpdGggMSBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsK
ICAgICBbbmF0aXZlIGNvZGVdCiB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1
ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBl
Y3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQogUEFTUyBOb2RlIGludGVyZmFj
ZTogZG9jdW1lbnQuZG9jdHlwZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFwcGVuZENoaWxkIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDEpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBh
cHBlbmRDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5kb2N0eXBlIHdpdGggdG9vIGZldyBhcmd1bWVu
dHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1
bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJl
dyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIg
KCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJU
eXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2Rl
KSBvbiBkb2N1bWVudC5kb2N0eXBlIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBU
eXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5kb2N0eXBlIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAicmVwbGFjZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDIpIAot
RkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiBk
b2N1bWVudC5kb2N0eXBlIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJy
b3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0
aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVy
YXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJy
b3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2Rl
IGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5k
b2N0eXBlIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNT
IE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5kb2N0eXBlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
cmVtb3ZlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MykgCi1GQUlMIE5vZGUgaW50ZXJm
YWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmRvY3R5cGUgd2l0aCB0
b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxs
ZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUg
Y29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRp
b24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlw
ZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkg
b24gZG9jdW1lbnQuZG9jdHlwZSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlw
ZUVycm9yIAogUEFTUyBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGRvY3VtZW50LmRvY3R5cGUgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJhZGRFdmVudExpc3RlbmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAoMCkgCiBGQUlMIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogY2FsbGluZyBhZGRFdmVudExpc3Rl
bmVyKERPTVN0cmluZyxFdmVudExpc3RlbmVyLGJvb2xlYW4pIG9uIGRvY3VtZW50LmRvY3R5cGUg
d2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dz
OiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtu
YXRpdmUgY29kZV0KQEAgLTExODcsMjEgKzExNjksMTUgQEAgRkFJTCBOb2RlIGludGVyZmFjZTog
Y2FsbGluZyBpc0RlZmF1bHROYW1lc3BhY2UoRE9NU3RyaW5nKSBvbiBlbGVtZW50IHdpdGggdG9v
IGYKICAgICBbbmF0aXZlIGNvZGVdCiB9IiBkaWQgbm90IHRocm93CiBQQVNTIE5vZGUgaW50ZXJm
YWNlOiBlbGVtZW50IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5zZXJ0QmVmb3JlIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAoNDApIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRC
ZWZvcmUoTm9kZSxOb2RlKSBvbiBlbGVtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0
aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVu
Y3Rpb24gImZ1bmN0aW9uICgpIHsKK0ZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0
QmVmb3JlKE5vZGUsTm9kZSkgb24gZWxlbWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3Qg
dGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDEgYXJndW1lbnRzIGZ1
bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAgICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0
ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3Ii
KSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorfSIgZGlkIG5vdCB0
aHJvdwogUEFTUyBOb2RlIGludGVyZmFjZTogZWxlbWVudCBtdXN0IGluaGVyaXQgcHJvcGVydHkg
ImFwcGVuZENoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDEpIAotRkFJTCBOb2RlIGludGVy
ZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiBlbGVtZW50IHdpdGggdG9vIGZldyBh
cmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGgg
MCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19
IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgi
Tm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIp
CitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGVsZW1l
bnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9k
ZSBpbnRlcmZhY2U6IGVsZW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZXBsYWNlQ2hpbGQi
IHdpdGggdGhlIHByb3BlciB0eXBlICg0MikgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5n
IHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIGVsZW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50
cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3Vt
ZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIGRpZCBu
b3QgdGhyb3cKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUs
Tm9kZSkgb24gZWxlbWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVy
cm9yIAogUEFTUyBOb2RlIGludGVyZmFjZTogZWxlbWVudCBtdXN0IGluaGVyaXQgcHJvcGVydHkg
InJlbW92ZUNoaWxkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDMpIAotRkFJTCBOb2RlIGludGVy
ZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiBlbGVtZW50IHdpdGggdG9vIGZldyBh
cmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGgg
MCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19
IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiICgi
Tm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIp
CitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIGVsZW1l
bnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgRXZl
bnRUYXJnZXQgaW50ZXJmYWNlOiBlbGVtZW50IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYWRkRXZl
bnRMaXN0ZW5lciIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDApIAogRkFJTCBFdmVudFRhcmdldCBp
bnRlcmZhY2U6IGNhbGxpbmcgYWRkRXZlbnRMaXN0ZW5lcihET01TdHJpbmcsRXZlbnRMaXN0ZW5l
cixib29sZWFuKSBvbiBlbGVtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBU
eXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24g
ImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZlIGNvZGVdCkBAIC0xNDA5LDIxICsxMzg1LDE1IEBA
IEZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaXNEZWZhdWx0TmFtZXNwYWNlKERPTVN0cmlu
Zykgb24gZG9jdW1lbnQuY3JlYXRlVGV4CiAgICAgW25hdGl2ZSBjb2RlXQogfSIgZGlkIG5vdCB0
aHJvdwogUEFTUyBOb2RlIGludGVyZmFjZTogZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoImFiYyIp
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5zZXJ0QmVmb3JlIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAoNDApIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZvcmUoTm9kZSxO
b2RlKSBvbiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFy
Z3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworRkFJTCBOb2RlIGludGVyZmFjZTogY2Fs
bGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgi
YWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRf
dGhyb3dzOiBDYWxsZWQgd2l0aCAxIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewog
ICAgIFtuYXRpdmUgY29kZV0KIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVl
c3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVj
dGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCiBQQVNTIE5vZGUgaW50ZXJmYWNl
OiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJh
cHBlbmRDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQxKSAKLUZBSUwgTm9kZSBpbnRlcmZh
Y2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
ImFiYyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0
X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsK
LSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1
ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBl
Y3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFj
ZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgi
YWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1Mg
Tm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhYmMiKSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgInJlcGxhY2VDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQyKSAKLUZB
SUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24gZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoImFiYyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0
aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVu
Y3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3Qg
IkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJj
aHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3Ii
KQorUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBv
biBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBt
dXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKCJhYmMiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlbW92ZUNoaWxkIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAoNDMpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZW1v
dmVDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQg
d2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29k
ZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24g
OCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVy
cm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9kZSkgb24g
ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoImFiYyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVz
dCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUoImFiYyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYWRkRXZlbnRMaXN0
ZW5lciIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDApIAogRkFJTCBFdmVudFRhcmdldCBpbnRlcmZh
Y2U6IGNhbGxpbmcgYWRkRXZlbnRMaXN0ZW5lcihET01TdHJpbmcsRXZlbnRMaXN0ZW5lcixib29s
ZWFuKSBvbiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFy
Z3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtuYXRpdmUgY29kZV0KQEAgLTE1
NDMsMjEgKzE1MTMsMTUgQEAgRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpc0RlZmF1bHRO
YW1lc3BhY2UoRE9NU3RyaW5nKSBvbiB4bWxEb2MuY3JlYXRlUHJvY2UKICAgICBbbmF0aXZlIGNv
ZGVdCiB9IiBkaWQgbm90IHRocm93CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiB4bWxEb2MuY3JlYXRl
UHJvY2Vzc2luZ0luc3RydWN0aW9uKCJhYmMiLCAiZGVmIikgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJpbnNlcnRCZWZvcmUiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MCkgCi1GQUlMIE5vZGUgaW50
ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIHhtbERvYy5jcmVhdGVQ
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24oImFiYyIsICJkZWYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRz
IG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1l
bnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CitGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5n
IGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24oImFiYyIsICJkZWYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlw
ZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDEgYXJndW1lbnRzIGZ1bmN0aW9uICJm
dW5jdGlvbiAoKSB7CiAgICAgW25hdGl2ZSBjb2RlXQogfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjog
SGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVz
dEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKIFBBU1Mg
Tm9kZSBpbnRlcmZhY2U6IHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oImFiYyIs
ICJkZWYiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFwcGVuZENoaWxkIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAoNDEpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChO
b2RlKSBvbiB4bWxEb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJhYmMiLCAiZGVmIikg
d2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dz
OiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtu
YXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJv
cjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9i
amVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxs
aW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24oImFiYyIsICJkZWYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVy
cm9yIAogUEFTUyBOb2RlIGludGVyZmFjZTogeG1sRG9jLmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVj
dGlvbigiYWJjIiwgImRlZiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVwbGFjZUNoaWxkIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDIpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBy
ZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiB4bWxEb2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0
aW9uKCJhYmMiLCAiZGVmIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVF
cnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVu
Y3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhp
ZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RF
cnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5v
ZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIHhtbERvYy5j
cmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oImFiYyIsICJkZWYiKSB3aXRoIHRvbyBmZXcgYXJn
dW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGludGVyZmFjZTogeG1sRG9j
LmNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigiYWJjIiwgImRlZiIpIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAicmVtb3ZlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MykgCi1GQUlMIE5v
ZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIHhtbERvYy5jcmVhdGVQ
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24oImFiYyIsICJkZWYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRz
IG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1l
bnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcg
b2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5k
RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBO
b2RlIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiB4bWxEb2MuY3JlYXRl
UHJvY2Vzc2luZ0luc3RydWN0aW9uKCJhYmMiLCAiZGVmIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50
cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiB4bWxE
b2MuY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJhYmMiLCAiZGVmIikgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJhZGRFdmVudExpc3RlbmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMCkgCiBG
QUlMIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogY2FsbGluZyBhZGRFdmVudExpc3RlbmVyKERPTVN0
cmluZyxFdmVudExpc3RlbmVyLGJvb2xlYW4pIG9uIHhtbERvYy5jcmVhdGVQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24oImFiYyIsICJkZWYiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cg
VHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9u
ICJmdW5jdGlvbiAoKSB7CiAgICAgW25hdGl2ZSBjb2RlXQpAQCAtMTY3MywyMSArMTYzNywxNSBA
QCBGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGlzRGVmYXVsdE5hbWVzcGFjZShET01TdHJp
bmcpIG9uIGRvY3VtZW50LmNyZWF0ZUNvbQogICAgIFtuYXRpdmUgY29kZV0KIH0iIGRpZCBub3Qg
dGhyb3cKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIp
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5zZXJ0QmVmb3JlIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAoNDApIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZvcmUoTm9kZSxO
b2RlKSBvbiBkb2N1bWVudC5jcmVhdGVDb21tZW50KCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1l
bnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJn
dW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CitGQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxs
aW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFi
YyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Ro
cm93czogQ2FsbGVkIHdpdGggMSBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAg
ICBbbmF0aXZlIGNvZGVdCiB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0
RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3Rl
ZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQogUEFTUyBOb2RlIGludGVyZmFjZTog
ZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiYWJjIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhcHBl
bmRDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQxKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6
IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiYWJj
Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhy
b3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAg
IFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RF
cnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVlc3RFcnJvciIpIGV4cGVjdGVk
IG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNTIE5vZGUgaW50ZXJmYWNlOiBj
YWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIp
IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUg
aW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVDb21tZW50KCJhYmMiKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgInJlcGxhY2VDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQyKSAKLUZBSUwgTm9k
ZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQu
Y3JlYXRlQ29tbWVudCgiYWJjIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5
cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAi
ZnVuY3Rpb24gKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6
IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNoeVJlcXVl
c3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIpCitQQVNT
IE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIGRvY3Vt
ZW50LmNyZWF0ZUNvbW1lbnQoImFiYyIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVDb21tZW50
KCJhYmMiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlbW92ZUNoaWxkIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAoNDMpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChO
b2RlKSBvbiBkb2N1bWVudC5jcmVhdGVDb21tZW50KCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1l
bnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJn
dW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhy
ZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZv
dW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFT
UyBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiBkb2N1bWVudC5j
cmVhdGVDb21tZW50KCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlw
ZUVycm9yIAogUEFTUyBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZUNvbW1l
bnQoImFiYyIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYWRkRXZlbnRMaXN0ZW5lciIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgKDApIAogRkFJTCBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGNhbGxpbmcg
YWRkRXZlbnRMaXN0ZW5lcihET01TdHJpbmcsRXZlbnRMaXN0ZW5lcixib29sZWFuKSBvbiBkb2N1
bWVudC5jcmVhdGVDb21tZW50KCJhYmMiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhy
b3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0
aW9uICJmdW5jdGlvbiAoKSB7CiAgICAgW25hdGl2ZSBjb2RlXQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1hcHBl
bmRDaGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLWFwcGVuZENoaWxkLWV4cGVjdGVkLnR4dAppbmRleCAz
YTI4OWU4MzJlNmEyZDk0ODkwYzAyNGE1NjE0OTY4YzAxNDU5M2JkLi5iMTMwY2FmZmQ4NDgyNzY0
ZjcwYzM0MDNlNGYwODAyODlhMmE5MGUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLWFwcGVuZENoaWxkLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2RvbS9ub2Rlcy9Ob2RlLWFwcGVuZENoaWxkLWV4cGVjdGVkLnR4dApAQCAtMSwxMiArMSwxMiBA
QAogCiAKLUZBSUwgV2ViSURMIHRlc3RzIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlv
biAoKSB7IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobnVsbCkgfSIgdGhyZXcgb2JqZWN0ICJF
cnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBl
eHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBXZWJJREwgdGVz
dHMgCiBQQVNTIEFwcGVuZGluZyB0byBhIGxlYWYgbm9kZS4gCi1GQUlMIEFwcGVuZGluZyBudWxs
IHRvIGEgdGV4dCBub2RlIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IG5v
ZGUuYXBwZW5kQ2hpbGQobnVsbCkgfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVx
dWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVycm9yIikgZXhw
ZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgQXBwZW5kaW5nIG51
bGwgdG8gYSB0ZXh0IG5vZGUgCiBQQVNTIEFwcGVuZGluZyB0byBhIHRleHQgbm9kZSAKLUZBSUwg
QXBwZW5kaW5nIG51bGwgdG8gYSBjb21tZW50IGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5j
dGlvbiAoKSB7IG5vZGUuYXBwZW5kQ2hpbGQobnVsbCkgfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjog
SGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVz
dEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1Mg
QXBwZW5kaW5nIG51bGwgdG8gYSBjb21tZW50IAogUEFTUyBBcHBlbmRpbmcgdG8gYSBjb21tZW50
IAotRkFJTCBBcHBlbmRpbmcgbnVsbCB0byBhIGRvY3R5cGUgYXNzZXJ0X3Rocm93czogZnVuY3Rp
b24gImZ1bmN0aW9uICgpIHsgbm9kZS5hcHBlbmRDaGlsZChudWxsKSB9IiB0aHJldyBvYmplY3Qg
IkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJj
aHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3Ii
KQorUEFTUyBBcHBlbmRpbmcgbnVsbCB0byBhIGRvY3R5cGUgCiBQQVNTIEFwcGVuZGluZyB0byBh
IGRvY3R5cGUgCiBQQVNTIEFwcGVuZGluZyBhIGRvY3VtZW50IAogUEFTUyBBZG9wdGluZyBhbiBv
cnBoYW4gCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLWluc2VydEJlZm9yZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLWluc2Vy
dEJlZm9yZS1leHBlY3RlZC50eHQKaW5kZXggNTZiY2QyYTgwYmIzNGQzN2FjMDg0Zjc3NDE2NGYw
MWNmYmU5NGE3OC4uYzY2MjIzM2RjMDU2Mzg1N2YyM2I2MDY5MDM0YWM4Zjc1YjhjZWE2YyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20v
bm9kZXMvTm9kZS1pbnNlcnRCZWZvcmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtaW5zZXJ0QmVmb3Jl
LWV4cGVjdGVkLnR4dApAQCAtMSwxMiArMSwxMiBAQAogCi1GQUlMIENhbGxpbmcgaW5zZXJ0QmVm
b3JlIHdpdGggYSBub24tTm9kZSBmaXJzdCBhcmd1bWVudCBtdXN0IHRocm93IFR5cGVFcnJvci4g
YXNzZXJ0X3Rocm93czogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgZG9jdW1lbnQuYm9keS5pbnNl
cnRCZWZvcmUobnVsbCwgbnVsbCkgfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJv
cjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5
cGVFcnJvciIgKCJUeXBlRXJyb3IiKQotRkFJTCBDYWxsaW5nIGluc2VydEJlZm9yZSB3aXRoIGEg
bm9uLU5vZGUgZmlyc3QgYXJndW1lbnQgb24gYSBsZWFmIG5vZGUgRG9jdW1lbnRUeXBlIG11c3Qg
dGhyb3cgVHlwZUVycm9yLiBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyBu
b2RlLmluc2VydEJlZm9yZShudWxsLCBudWxsKSB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVy
YXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJy
b3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBDYWxs
aW5nIGluc2VydEJlZm9yZSB3aXRoIGEgbm9uLU5vZGUgZmlyc3QgYXJndW1lbnQgbXVzdCB0aHJv
dyBUeXBlRXJyb3IuIAorUEFTUyBDYWxsaW5nIGluc2VydEJlZm9yZSB3aXRoIGEgbm9uLU5vZGUg
Zmlyc3QgYXJndW1lbnQgb24gYSBsZWFmIG5vZGUgRG9jdW1lbnRUeXBlIG11c3QgdGhyb3cgVHlw
ZUVycm9yLiAKIFBBU1MgQ2FsbGluZyBpbnNlcnRCZWZvcmUgYW4gYSBsZWFmIG5vZGUgRG9jdW1l
bnRUeXBlIG11c3QgdGhyb3cgSElFUkFSQ0hZX1JFUVVFU1RfRVJSLiAKLUZBSUwgQ2FsbGluZyBp
bnNlcnRCZWZvcmUgd2l0aCBhIG5vbi1Ob2RlIGZpcnN0IGFyZ3VtZW50IG9uIGEgbGVhZiBub2Rl
IFRleHQgbXVzdCB0aHJvdyBUeXBlRXJyb3IuIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5j
dGlvbiAoKSB7IG5vZGUuaW5zZXJ0QmVmb3JlKG51bGwsIG51bGwpIH0iIHRocmV3IG9iamVjdCAi
RXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzIiAoIkhpZXJhcmNo
eVJlcXVlc3RFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5cGVFcnJvciIp
CitQQVNTIENhbGxpbmcgaW5zZXJ0QmVmb3JlIHdpdGggYSBub24tTm9kZSBmaXJzdCBhcmd1bWVu
dCBvbiBhIGxlYWYgbm9kZSBUZXh0IG11c3QgdGhyb3cgVHlwZUVycm9yLiAKIFBBU1MgQ2FsbGlu
ZyBpbnNlcnRCZWZvcmUgYW4gYSBsZWFmIG5vZGUgVGV4dCBtdXN0IHRocm93IEhJRVJBUkNIWV9S
RVFVRVNUX0VSUi4gCi1GQUlMIENhbGxpbmcgaW5zZXJ0QmVmb3JlIHdpdGggYSBub24tTm9kZSBm
aXJzdCBhcmd1bWVudCBvbiBhIGxlYWYgbm9kZSBDb21tZW50IG11c3QgdGhyb3cgVHlwZUVycm9y
LiBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyBub2RlLmluc2VydEJlZm9y
ZShudWxsLCBudWxsKSB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJy
b3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBv
YmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBDYWxsaW5nIGluc2VydEJlZm9y
ZSB3aXRoIGEgbm9uLU5vZGUgZmlyc3QgYXJndW1lbnQgb24gYSBsZWFmIG5vZGUgQ29tbWVudCBt
dXN0IHRocm93IFR5cGVFcnJvci4gCiBQQVNTIENhbGxpbmcgaW5zZXJ0QmVmb3JlIGFuIGEgbGVh
ZiBub2RlIENvbW1lbnQgbXVzdCB0aHJvdyBISUVSQVJDSFlfUkVRVUVTVF9FUlIuIAotRkFJTCBD
YWxsaW5nIGluc2VydEJlZm9yZSB3aXRoIGEgbm9uLU5vZGUgZmlyc3QgYXJndW1lbnQgb24gYSBs
ZWFmIG5vZGUgUHJvY2Vzc2luZ0luc3RydWN0aW9uIG11c3QgdGhyb3cgVHlwZUVycm9yLiBhc3Nl
cnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyBub2RlLmluc2VydEJlZm9yZShudWxs
LCBudWxsKSB9IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERP
TSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3RlZCBvYmplY3Qg
IlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBDYWxsaW5nIGluc2VydEJlZm9yZSB3aXRo
IGEgbm9uLU5vZGUgZmlyc3QgYXJndW1lbnQgb24gYSBsZWFmIG5vZGUgUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uIG11c3QgdGhyb3cgVHlwZUVycm9yLiAKIFBBU1MgQ2FsbGluZyBpbnNlcnRCZWZvcmUg
YW4gYSBsZWFmIG5vZGUgUHJvY2Vzc2luZ0luc3RydWN0aW9uIG11c3QgdGhyb3cgSElFUkFSQ0hZ
X1JFUVVFU1RfRVJSLiAKIFBBU1MgQ2FsbGluZyBpbnNlcnRCZWZvcmUgd2l0aCBhbiBpbmNsdXNp
dmUgYW5jZXN0b3Igb2YgdGhlIGNvbnRleHQgb2JqZWN0IG11c3QgdGhyb3cgSElFUkFSQ0hZX1JF
UVVFU1RfRVJSLiAKIFBBU1MgQ2FsbGluZyBpbnNlcnRCZWZvcmUgd2l0aCBhIHJlZmVyZW5jZSBj
aGlsZCB3aG9zZSBwYXJlbnQgaXMgbm90IHRoZSBjb250ZXh0IG5vZGUgbXVzdCB0aHJvdyBhIE5v
dEZvdW5kRXJyb3IuIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1yZW1vdmVDaGlsZC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2Rl
LXJlbW92ZUNoaWxkLWV4cGVjdGVkLnR4dAppbmRleCAwMjkxMGJmOWNkMjQwYTBjZGQ4M2NmMTM3
NjBjNDU2MGRmZDk0M2EyLi4xMzk3YzRlYmVmNmM5NzhlMTAzYWIzMWEzODE2ZjkyZGVkYzNlZjU5
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2RvbS9ub2Rlcy9Ob2RlLXJlbW92ZUNoaWxkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLXJlbW92ZUNo
aWxkLWV4cGVjdGVkLnR4dApAQCAtMjcsNSArMjcsNSBAQCBQQVNTIENhbGxpbmcgcmVtb3ZlQ2hp
bGQgb24gYSB0ZXh0IGZyb20gYSBzeW50aGV0aWMgZG9jdW1lbnQgd2l0aCBubyBjaGlsZHJlbiBz
aAogUEFTUyBQYXNzaW5nIGEgZGV0YWNoZWQgY29tbWVudCBmcm9tIGEgc3ludGhldGljIGRvY3Vt
ZW50IHRvIHJlbW92ZUNoaWxkIHNob3VsZCBub3QgYWZmZWN0IGl0LiAKIFBBU1MgUGFzc2luZyBh
IG5vbi1kZXRhY2hlZCBjb21tZW50IGZyb20gYSBzeW50aGV0aWMgZG9jdW1lbnQgdG8gcmVtb3Zl
Q2hpbGQgc2hvdWxkIG5vdCBhZmZlY3QgaXQuIAogUEFTUyBDYWxsaW5nIHJlbW92ZUNoaWxkIG9u
IGEgY29tbWVudCBmcm9tIGEgc3ludGhldGljIGRvY3VtZW50IHdpdGggbm8gY2hpbGRyZW4gc2hv
dWxkIHRocm93IE5PVF9GT1VORF9FUlIuIAotRkFJTCBQYXNzaW5nIGEgdmFsdWUgdGhhdCBpcyBu
b3QgYSBOb2RlIHJlZmVyZW5jZSB0byByZW1vdmVDaGlsZCBzaG91bGQgdGhyb3cgVHlwZUVycm9y
LiBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyBkb2N1bWVudC5ib2R5LnJl
bW92ZUNoaWxkKG51bGwpIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERP
TSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJy
b3IiICgiVHlwZUVycm9yIikKK1BBU1MgUGFzc2luZyBhIHZhbHVlIHRoYXQgaXMgbm90IGEgTm9k
ZSByZWZlcmVuY2UgdG8gcmVtb3ZlQ2hpbGQgc2hvdWxkIHRocm93IFR5cGVFcnJvci4gCiBiCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Rv
bS9ub2Rlcy9Ob2RlLXJlcGxhY2VDaGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLXJlcGxhY2VDaGlsZC1l
eHBlY3RlZC50eHQKaW5kZXggZTdmNzBmYTM2YzVjMWNiZjkyYzdlNGI3YTQ5ZmJmOGFkY2JjNGY2
ZC4uZDE3YzhiNTcwZWIxMjFlOTY3MzZhOWM2OTRmYjI1ZjE4MWFhZmNjMCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9k
ZS1yZXBsYWNlQ2hpbGQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtcmVwbGFjZUNoaWxkLWV4cGVjdGVk
LnR4dApAQCAtMSw3ICsxLDUgQEAKIAotRkFJTCBQYXNzaW5nIG51bGwgdG8gcmVwbGFjZUNoaWxk
IHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvci4gYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gImZ1bmN0
aW9uICgpIHsKLSAgICBhLnJlcGxhY2VDaGlsZChudWxsLCBudWxsKTsKLSAgfSIgZGlkIG5vdCB0
aHJvdworUEFTUyBQYXNzaW5nIG51bGwgdG8gcmVwbGFjZUNoaWxkIHNob3VsZCB0aHJvdyBhIFR5
cGVFcnJvci4gCiBGQUlMIElmIGNoaWxkJ3MgcGFyZW50IGlzIG5vdCB0aGUgY29udGV4dCBub2Rl
LCBhIE5vdEZvdW5kRXJyb3IgZXhjZXB0aW9uIHNob3VsZCBiZSB0aHJvd24gYXNzZXJ0X3Rocm93
czogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBhLnJlcGxhY2VDaGlsZChhLCBjKTsKICAg
fSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0
aW9uIDMiIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIE5vdEZvdW5kRXJyb3I6IHByb3BlcnR5
ICJjb2RlIiBpcyBlcXVhbCB0byAzLCBleHBlY3RlZCA4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2ludGVyZmFjZXMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dAppbmRleCBmMmNjNDAzYzNlYWViNmVhODgw
YTdmOWI3ZWZhM2UyMDI1MzU4MDcwLi4xMTU5ZDc0NWM5ZjZhNWEyYjJmNjE1NDRmMWMxOWFkNDBk
Nzc2N2MzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vaW50ZXJmYWNlcy1leHBl
Y3RlZC50eHQKQEAgLTEyMjUsMjEgKzEyMjUsMTUgQEAgRkFJTCBOb2RlIGludGVyZmFjZTogY2Fs
bGluZyBpc0RlZmF1bHROYW1lc3BhY2UoRE9NU3RyaW5nKSBvbiBpZnJhbWUuY29udGVudERvY3UK
ICAgICBbbmF0aXZlIGNvZGVdCiB9IiBkaWQgbm90IHRocm93CiBQQVNTIE5vZGUgaW50ZXJmYWNl
OiBpZnJhbWUuY29udGVudERvY3VtZW50IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5zZXJ0QmVm
b3JlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNDApIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2Fs
bGluZyBpbnNlcnRCZWZvcmUoTm9kZSxOb2RlKSBvbiBpZnJhbWUuY29udGVudERvY3VtZW50IHdp
dGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czog
Q2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKK0ZBSUwgTm9k
ZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkgb24gaWZyYW1lLmNv
bnRlbnREb2N1bWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9y
IGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDEgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlv
biAoKSB7CiAgICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91
bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmpl
Y3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogSGll
cmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMiICgiSGllcmFyY2h5UmVxdWVzdEVy
cm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgiVHlwZUVycm9yIikKIFBBU1MgTm9k
ZSBpbnRlcmZhY2U6IGlmcmFtZS5jb250ZW50RG9jdW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJhcHBlbmRDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQxKSAKLUZBSUwgTm9kZSBpbnRl
cmZhY2U6IGNhbGxpbmcgYXBwZW5kQ2hpbGQoTm9kZSkgb24gaWZyYW1lLmNvbnRlbnREb2N1bWVu
dCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJv
d3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAg
W25hdGl2ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9N
IEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJv
ciIgKCJUeXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGls
ZChOb2RlKSBvbiBpZnJhbWUuY29udGVudERvY3VtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMg
bXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBpZnJhbWUuY29udGVu
dERvY3VtZW50IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVwbGFjZUNoaWxkIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAoNDIpIAotRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hp
bGQoTm9kZSxOb2RlKSBvbiBpZnJhbWUuY29udGVudERvY3VtZW50IHdpdGggdG9vIGZldyBhcmd1
bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBh
cmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiBk
aWQgbm90IHRocm93CitQQVNTIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChO
b2RlLE5vZGUpIG9uIGlmcmFtZS5jb250ZW50RG9jdW1lbnQgd2l0aCB0b28gZmV3IGFyZ3VtZW50
cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9kZSBpbnRlcmZhY2U6IGlmcmFtZS5jb250
ZW50RG9jdW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZW1vdmVDaGlsZCIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgKDQzKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hp
bGQoTm9kZSkgb24gaWZyYW1lLmNvbnRlbnREb2N1bWVudCB3aXRoIHRvbyBmZXcgYXJndW1lbnRz
IG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1l
bnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgdGhyZXcg
b2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiAoIk5vdEZvdW5k
RXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQorUEFTUyBO
b2RlIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBvbiBpZnJhbWUuY29udGVu
dERvY3VtZW50IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQ
QVNTIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogaWZyYW1lLmNvbnRlbnREb2N1bWVudCBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgImFkZEV2ZW50TGlzdGVuZXIiIHdpdGggdGhlIHByb3BlciB0eXBlICgw
KSAKIEZBSUwgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBjYWxsaW5nIGFkZEV2ZW50TGlzdGVuZXIo
RE9NU3RyaW5nLEV2ZW50TGlzdGVuZXIsYm9vbGVhbikgb24gaWZyYW1lLmNvbnRlbnREb2N1bWVu
dCB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJv
d3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAgICAg
W25hdGl2ZSBjb2RlXQpAQCAtMTU1MSwyMSArMTU0NSwxNSBAQCBGQUlMIE5vZGUgaW50ZXJmYWNl
OiBjYWxsaW5nIGlzRGVmYXVsdE5hbWVzcGFjZShET01TdHJpbmcpIG9uIGRvY3VtZW50LmltcGxl
bWVudAogICAgIFtuYXRpdmUgY29kZV0KIH0iIGRpZCBub3QgdGhyb3cKIFBBU1MgTm9kZSBpbnRl
cmZhY2U6IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KG51bGwsICIiLCBu
dWxsKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImluc2VydEJlZm9yZSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgKDQwKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5v
ZGUsTm9kZSkgb24gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwg
IiIsIG51bGwpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNz
ZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgp
IHsKK0ZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgaW5zZXJ0QmVmb3JlKE5vZGUsTm9kZSkg
b24gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwgIiIsIG51bGwp
IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93
czogQ2FsbGVkIHdpdGggMSBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBb
bmF0aXZlIGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00g
RXhjZXB0aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9y
IiAoIlR5cGVFcnJvciIpCit9IiB0aHJldyBvYmplY3QgIkVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0
RXJyb3I6IERPTSBFeGNlcHRpb24gMyIgKCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3IiKSBleHBlY3Rl
ZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBlRXJyb3IiKQogUEFTUyBOb2RlIGludGVyZmFjZTog
ZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwgIiIsIG51bGwpIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXBwZW5kQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0
MSkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGRv
Y3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSB3aXRo
IHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENh
bGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2
ZSBjb2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2Vw
dGlvbiA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJU
eXBlRXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyBhcHBlbmRDaGlsZChOb2Rl
KSBvbiBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudChudWxsLCAiIiwgbnVs
bCkgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgTm9k
ZSBpbnRlcmZhY2U6IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KG51bGws
ICIiLCBudWxsKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlcGxhY2VDaGlsZCIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgKDQyKSAKLUZBSUwgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNo
aWxkKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQo
bnVsbCwgIiIsIG51bGwpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJy
b3IgYXNzZXJ0X3Rocm93czogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0
aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiBkaWQgbm90IHRocm93CitQQVNTIE5vZGUg
aW50ZXJmYWNlOiBjYWxsaW5nIHJlcGxhY2VDaGlsZChOb2RlLE5vZGUpIG9uIGRvY3VtZW50Lmlt
cGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSB3aXRoIHRvbyBmZXcg
YXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGludGVyZmFjZTogZG9j
dW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQobnVsbCwgIiIsIG51bGwpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAicmVtb3ZlQ2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0Mykg
Ci1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJlbW92ZUNoaWxkKE5vZGUpIG9uIGRvY3Vt
ZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSB3aXRoIHRv
byBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxl
ZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBj
b2RlXQotfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlv
biA4IiAoIk5vdEZvdW5kRXJyb3IiKSBleHBlY3RlZCBvYmplY3QgIlR5cGVFcnJvciIgKCJUeXBl
RXJyb3IiKQorUEFTUyBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZW1vdmVDaGlsZChOb2RlKSBv
biBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudChudWxsLCAiIiwgbnVsbCkg
d2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgRXZlbnRU
YXJnZXQgaW50ZXJmYWNlOiBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudChu
dWxsLCAiIiwgbnVsbCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhZGRFdmVudExpc3RlbmVyIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAoMCkgCiBGQUlMIEV2ZW50VGFyZ2V0IGludGVyZmFjZTogY2Fs
bGluZyBhZGRFdmVudExpc3RlbmVyKERPTVN0cmluZyxFdmVudExpc3RlbmVyLGJvb2xlYW4pIG9u
IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KG51bGwsICIiLCBudWxsKSB3
aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF90aHJvd3M6
IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CiAgICAgW25h
dGl2ZSBjb2RlXQpAQCAtMjE3MSwyMSArMjE1OSwxNSBAQCBGQUlMIE5vZGUgaW50ZXJmYWNlOiBj
YWxsaW5nIGlzRGVmYXVsdE5hbWVzcGFjZShET01TdHJpbmcpIG9uIGRvY3VtZW50LmNyZWF0ZUVs
ZQogICAgIFtuYXRpdmUgY29kZV0KIH0iIGRpZCBub3QgdGhyb3cKIFBBU1MgTm9kZSBpbnRlcmZh
Y2U6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm5vc2NyaXB0IikgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJpbnNlcnRCZWZvcmUiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MCkgCi1GQUlMIE5vZGUg
aW50ZXJmYWNlOiBjYWxsaW5nIGluc2VydEJlZm9yZShOb2RlLE5vZGUpIG9uIGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoIm5vc2NyaXB0Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93
IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlv
biAiZnVuY3Rpb24gKCkgeworRkFJTCBOb2RlIGludGVyZmFjZTogY2FsbGluZyBpbnNlcnRCZWZv
cmUoTm9kZSxOb2RlKSBvbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJub3NjcmlwdCIpIHdpdGgg
dG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93czogQ2Fs
bGVkIHdpdGggMSBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKICAgICBbbmF0aXZl
IGNvZGVdCi19IiB0aHJldyBvYmplY3QgIkVycm9yOiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0
aW9uIDgiICgiTm90Rm91bmRFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiVHlwZUVycm9yIiAoIlR5
cGVFcnJvciIpCit9IiBkaWQgbm90IHRocm93CiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJub3NjcmlwdCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYXBwZW5k
Q2hpbGQiIHdpdGggdGhlIHByb3BlciB0eXBlICg0MSkgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBj
YWxsaW5nIGFwcGVuZENoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm5vc2Ny
aXB0Iikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRf
dGhyb3dzOiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewot
ICAgIFtuYXRpdmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6
IERPTSBFeGNlcHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBl
RXJyb3IiICgiVHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgYXBwZW5k
Q2hpbGQoTm9kZSkgb24gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibm9zY3JpcHQiKSB3aXRoIHRv
byBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBOb2RlIGludGVyZmFj
ZTogZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibm9zY3JpcHQiKSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgInJlcGxhY2VDaGlsZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQyKSAKLUZBSUwgTm9kZSBp
bnRlcmZhY2U6IGNhbGxpbmcgcmVwbGFjZUNoaWxkKE5vZGUsTm9kZSkgb24gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgibm9zY3JpcHQiKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cg
VHlwZUVycm9yIGFzc2VydF90aHJvd3M6IENhbGxlZCB3aXRoIDAgYXJndW1lbnRzIGZ1bmN0aW9u
ICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgZGlkIG5vdCB0aHJvdworUEFT
UyBOb2RlIGludGVyZmFjZTogY2FsbGluZyByZXBsYWNlQ2hpbGQoTm9kZSxOb2RlKSBvbiBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJub3NjcmlwdCIpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVz
dCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIE5vZGUgaW50ZXJmYWNlOiBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJub3NjcmlwdCIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVtb3ZlQ2hpbGQiIHdp
dGggdGhlIHByb3BlciB0eXBlICg0MykgCi1GQUlMIE5vZGUgaW50ZXJmYWNlOiBjYWxsaW5nIHJl
bW92ZUNoaWxkKE5vZGUpIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm5vc2NyaXB0Iikgd2l0
aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dzOiBD
YWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIFtuYXRp
dmUgY29kZV0KLX0iIHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNl
cHRpb24gOCIgKCJOb3RGb3VuZEVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJUeXBlRXJyb3IiICgi
VHlwZUVycm9yIikKK1BBU1MgTm9kZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVtb3ZlQ2hpbGQoTm9k
ZSkgb24gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibm9zY3JpcHQiKSB3aXRoIHRvbyBmZXcgYXJn
dW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBFdmVudFRhcmdldCBpbnRlcmZhY2U6
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm5vc2NyaXB0IikgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJhZGRFdmVudExpc3RlbmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMCkgCiBGQUlMIEV2ZW50
VGFyZ2V0IGludGVyZmFjZTogY2FsbGluZyBhZGRFdmVudExpc3RlbmVyKERPTVN0cmluZyxFdmVu
dExpc3RlbmVyLGJvb2xlYW4pIG9uIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm5vc2NyaXB0Iikg
d2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfdGhyb3dz
OiBDYWxsZWQgd2l0aCAwIGFyZ3VtZW50cyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewogICAgIFtu
YXRpdmUgY29kZV0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9kb3Qtbm9kZS1iYXNl
LWV4Y2VwdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vZG90LW5vZGUtYmFz
ZS1leGNlcHRpb24tZXhwZWN0ZWQudHh0CmluZGV4IGY0NDA2Y2JmZWQzNjFkNjdiOWM1NmU3NWIx
OWUxODMyOGFiM2JjZDIuLjM2ZDUzYjRlYjgxNWExYWQzYjgwY2RjNzdmMTAwODljMzI3MDMwMGYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL2RvbS9kb3Qtbm9kZS1iYXNlLWV4Y2VwdGlvbi1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL2RvdC1ub2RlLWJhc2UtZXhjZXB0
aW9uLWV4cGVjdGVkLnR4dApAQCAtMyw3ICszLDcgQEAgVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IGEg
Y29ycmVjdCBleGNlcHRpb24gaXMgcmFpc2VkIHdoZW4gY2FsY3VsYXRpbmcgdGhlIGJhc2UgdmEK
IE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIChkb2N1bWVudC5hcHBlbmRDaGls
ZCgpKS5mb29iYXIoKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBF
eGNlcHRpb24gOC4KK1BBU1MgKGRvY3VtZW50LmFwcGVuZENoaWxkKCkpLmZvb2JhcigpIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2Rv
bS9zY3JpcHQtdGVzdHMvZG90LW5vZGUtYmFzZS1leGNlcHRpb24uanMgYi9MYXlvdXRUZXN0cy9q
cy9kb20vc2NyaXB0LXRlc3RzL2RvdC1ub2RlLWJhc2UtZXhjZXB0aW9uLmpzCmluZGV4IDlmMzYy
YTdmNzg4MTdiY2I4ZmM3Yzg3ZWQyNmM2M2NmMmE3OGExOTUuLjcxZDQ3MTk5OTc1NjU4NDMyOWI4
ZGRjZDc0N2M3NzcxZTQ0MDc1MWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3Jp
cHQtdGVzdHMvZG90LW5vZGUtYmFzZS1leGNlcHRpb24uanMKKysrIGIvTGF5b3V0VGVzdHMvanMv
ZG9tL3NjcmlwdC10ZXN0cy9kb3Qtbm9kZS1iYXNlLWV4Y2VwdGlvbi5qcwpAQCAtMyw0ICszLDQg
QEAgZGVzY3JpcHRpb24oCiApOwogCiAvLyBTaG91bGQgYmUgYSBET00gZXhjZXB0aW9uLCBub3Qg
anVzdCBzb21lICJUeXBlRXJyb3I6IE51bGwgdmFsdWUiLgotc2hvdWxkVGhyb3coJyhkb2N1bWVu
dC5hcHBlbmRDaGlsZCgpKS5mb29iYXIoKScsICciRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBF
eGNlcHRpb24gOCInKTsKK3Nob3VsZFRocm93KCcoZG9jdW1lbnQuYXBwZW5kQ2hpbGQoKSkuZm9v
YmFyKCknLCAnIlR5cGVFcnJvcjogVHlwZSBlcnJvciInKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>