<?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>77083</bug_id>
          
          <creation_ts>2012-01-26 02:38:00 -0800</creation_ts>
          <short_desc>Speech Input: move MockSpeechInputClient into Chromium DumpRenderTree implementation</short_desc>
          <delta_ts>2012-01-31 04:00:20 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>76443</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hans Wennborg">hans</reporter>
          <assigned_to name="Hans Wennborg">hans</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>satish</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>542992</commentid>
    <comment_count>0</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2012-01-26 02:38:00 -0800</bug_when>
    <thetext>Speech Input: move MockSpeechInputClient into Chromium DumpRenderTree implementation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542998</commentid>
    <comment_count>1</comment_count>
      <attachid>124086</attachid>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2012-01-26 02:50:14 -0800</bug_when>
    <thetext>Created attachment 124086
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543001</commentid>
    <comment_count>2</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2012-01-26 02:53:39 -0800</bug_when>
    <thetext>This moves the speech mock into DRT, as suggested in https://bugs.webkit.org/show_bug.cgi?id=76443#c22, allowing us to not expose it in the WebKit API, and removing the need for other implementations to carry this test code.

Please take a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543004</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-26 02:54:17 -0800</bug_when>
    <thetext>Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543053</commentid>
    <comment_count>4</comment_count>
      <attachid>124086</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-26 04:22:56 -0800</bug_when>
    <thetext>Comment on attachment 124086
Patch

Attachment 124086 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11163310</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543500</commentid>
    <comment_count>5</comment_count>
      <attachid>124086</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-01-26 14:41:25 -0800</bug_when>
    <thetext>Comment on attachment 124086
Patch

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

&gt; Source/WebKit/chromium/public/WebSpeechInputResult.h:49
&gt; +    WEBKIT_EXPORT void set(const WebSpeechInputResult&amp; other);

nit: we normally call a function with this signature &quot;assign&quot;.  maybe both should be called assign, or maybe the first &quot;set&quot; should be broken out into separate setters for each property (which is how most &quot;property bag&quot; classes like this work).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544904</commentid>
    <comment_count>6</comment_count>
      <attachid>124500</attachid>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2012-01-29 23:57:12 -0800</bug_when>
    <thetext>Created attachment 124500
Patch

Try to green the cr-linux EWS bot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544922</commentid>
    <comment_count>7</comment_count>
      <attachid>124500</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-30 00:49:05 -0800</bug_when>
    <thetext>Comment on attachment 124500
Patch

Attachment 124500 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11369472

New failing tests:
css2.1/20110323/eof-002.htm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544927</commentid>
    <comment_count>8</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2012-01-30 01:10:40 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 124086 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=124086&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/public/WebSpeechInputResult.h:49
&gt; &gt; +    WEBKIT_EXPORT void set(const WebSpeechInputResult&amp; other);
&gt; 
&gt; nit: we normally call a function with this signature &quot;assign&quot;.

Done.

&gt; maybe both should be called assign, or maybe the first &quot;set&quot; should be broken out into separate setters for each property (which is how most &quot;property bag&quot; classes like this work).

I will do this in a separate patch, as it will be a two-sided change.

(In reply to comment #7)
&gt; (From update of attachment 124500 [details])
&gt; Attachment 124500 [details] did not pass chromium-ews (chromium-xvfb):
&gt; Output: http://queues.webkit.org/results/11369472
&gt; 
&gt; New failing tests:
&gt; css2.1/20110323/eof-002.htm

I don&apos;t think that&apos;s me. At least it compiles now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544936</commentid>
    <comment_count>9</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2012-01-30 01:32:23 -0800</bug_when>
    <thetext>Committed r106219: &lt;http://trac.webkit.org/changeset/106219&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544954</commentid>
    <comment_count>10</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2012-01-30 02:11:01 -0800</bug_when>
    <thetext>Reverted r106219 for reason:

This broke Chromium&apos;s test_shell.

Committed r106223: &lt;http://trac.webkit.org/changeset/106223&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545931</commentid>
    <comment_count>11</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2012-01-31 04:00:20 -0800</bug_when>
    <thetext>Committed r106353: &lt;http://trac.webkit.org/changeset/106353&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124086</attachid>
            <date>2012-01-26 02:50:14 -0800</date>
            <delta_ts>2012-01-26 14:41:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77083-20120126105012.patch</filename>
            <type>text/plain</type>
            <size>51257</size>
            <attacher name="Hans Wennborg">hans</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1OTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzMyOTNhOTFjMDhkNTVi
NTg2MzFiOWQzOTRkOGI5NWI1ODI1OGY3Yi4uNzQ4NzhkZDczYmU0NmQzN2U4NWE1MTM1YjNjMDM4
Y2FjNWY3NGRlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTAxLTI2ICBIYW5z
IFdlbm5ib3JnICA8aGFuc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU3BlZWNoIElucHV0OiBt
b3ZlIE1vY2tTcGVlY2hJbnB1dENsaWVudCBpbnRvIENocm9taXVtIER1bXBSZW5kZXJUcmVlIGlt
cGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03NzA4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlbW92ZSBTcGVlY2hJbnB1dENsaWVudE1vY2suIFRoZSBtb2NrIGlzIG1vdmluZyB0byB0
aGUgRHVtcFJlbmRlclRyZWUKKyAgICAgICAgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLCBqdXN0IHJlZmFjdG9yaW5nLgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlz
dC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAg
ICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9TcGVl
Y2hJbnB1dENsaWVudE1vY2suY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21vY2sv
U3BlZWNoSW5wdXRDbGllbnRNb2NrLmg6IFJlbW92ZWQuCisKIDIwMTItMDEtMjQgIFZzZXZvbG9k
IFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjog
SW1wcm92ZSB1c2VyIGV4cGVyaWVuY2Ugb2YgYWR2YW5jZWQgc2VhcmNoIHBhbmVsIGNsb3Npbmcu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGRhOTIwZDVkMGI4YmMxZDUyNDBjZmE1ODFm
YWIzN2ZhYjVjN2Q0YmIuLjU4ZGI2ZTgyZmM5MTIyMjE3OGE3YmI3ZGFkNTNkYmFmNjdkZjdkNDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTItMDEtMjYg
IEhhbnMgV2VubmJvcmcgIDxoYW5zQGNocm9taXVtLm9yZz4KKworICAgICAgICBTcGVlY2ggSW5w
dXQ6IG1vdmUgTW9ja1NwZWVjaElucHV0Q2xpZW50IGludG8gQ2hyb21pdW0gRHVtcFJlbmRlclRy
ZWUgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc3MDgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVtb3ZlIHRoZSBXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrIGludGVyZmFj
ZSBhbmQgcHJveHkKKyAgICAgICAgaW1wbGVtZW50YXRpb24uIFRoZSBtb2NrIGlzIG1vdmluZyB0
byB0aGUgRHVtcFJlbmRlclRyZWUKKyAgICAgICAgaW1wbGVtZW50YXRpb24gaW5zdGVhZCwgd2hp
Y2ggcmVtb3ZlcyB0aGUgbmVlZCB0byBleHBvc2UgdGhpcworICAgICAgICBpbnRlcmZhY2UgaW4g
dGhlIFdlYktpdCBBUEkuCisKKyAgICAgICAgQWxzbyBhZGQgYSBwcm9wZXIgY29weSBjb25zdHJ1
Y3RvciBmb3IgV2ViU3BlZWNoSW5wdXRSZXN1bHQuCisgICAgICAgIFRoZSBkZWZhdWx0IG9uZSBk
b2Vzbid0IGRvIGEgcHJvcGVyIGNvcHkuCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOgorICAgICAg
ICAqIHB1YmxpYy9XZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrLmg6IFJlbW92ZWQuCisgICAg
ICAgICogcHVibGljL1dlYlNwZWVjaElucHV0UmVzdWx0Lmg6CisgICAgICAgIChXZWJLaXQ6Oldl
YlNwZWVjaElucHV0UmVzdWx0OjpXZWJTcGVlY2hJbnB1dFJlc3VsdCk6CisgICAgICAgIChXZWJT
cGVlY2hJbnB1dFJlc3VsdCk6CisgICAgICAgICogc3JjL1dlYlNwZWVjaElucHV0Q29udHJvbGxl
ck1vY2tJbXBsLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBzcmMvV2ViU3BlZWNoSW5wdXRDb250
cm9sbGVyTW9ja0ltcGwuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBzcmMvV2ViU3BlZWNoSW5wdXRS
ZXN1bHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hJbnB1dFJlc3VsdDo6c2V0KToK
KyAgICAgICAgKFdlYktpdCk6CisKIDIwMTItMDEtMjUgIEdyZWcgQmlsbG9jayAgPGdiaWxsb2Nr
QGdvb2dsZS5jb20+CiAKICAgICAgICAgQWRkIEludGVudFJlcXVlc3QgaW5jbHVkZSBmb3IgRnJh
bWVMb2FkZXJDbGllbnRJbXBsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggOWU3
N2Y1MjkyOTI4YThhMThlNzQ5OWIzMDFiOGY3ZWM2YmRhOGUzNS4uZDkzMjFkMzE3YWJhNjFlODE0
MGI5M2I2M2QyMDEwZDM4NGZiM2VjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBA
IC0zMTM4LDggKzMxMzgsNiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL1Njcm9sbGJhclRoZW1lTW9jay5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svU2Nyb2xsYmFyVGhlbWVNb2NrLmggXAotCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svU3BlZWNoSW5wdXRDbGllbnRNb2NrLmNwcCBcCi0JU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9TcGVlY2hJbnB1dENsaWVudE1vY2suaCBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuY3BwIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9uQ2xpZW50
LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkKaW5kZXggM2RhMmU2MzM0NTNjODE2MWYyODUxNjFkOTE4NTZlYmQ0NWZj
ZDYwYi4uMTcwMjk5M2ZhMGM4MjY1ZWI4ZGRhYWZkNzZlNGIxZjViZGNlY2JiZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpCkBAIC0xMTA0LDcgKzExMDQsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS9tb2Nr
L0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5jcHAgXAogICAgIHBsYXRmb3JtL21vY2svR2Vv
bG9jYXRpb25DbGllbnRNb2NrLmNwcCBcCiAgICAgcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvblNl
cnZpY2VNb2NrLmNwcCBcCi0gICAgcGxhdGZvcm0vbW9jay9TcGVlY2hJbnB1dENsaWVudE1vY2su
Y3BwIFwKICAgICBwbGF0Zm9ybS9tb2NrL1Njcm9sbGJhclRoZW1lTW9jay5jcHAgXAogICAgIHBs
YXRmb3JtL25ldHdvcmsvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmNwcCBcCiAgICAgcGxh
dGZvcm0vbmV0d29yay9CbG9iRGF0YS5jcHAgXApAQCAtMjA5Niw3ICsyMDk1LDYgQEAgSEVBREVS
UyArPSBcCiAgICAgcGxhdGZvcm0vbW9jay9EZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suaCBc
CiAgICAgcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwIFwKICAgICBwbGF0
Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suaCBcCi0gICAgcGxhdGZvcm0vbW9jay9T
cGVlY2hJbnB1dENsaWVudE1vY2suaCBcCiAgICAgcGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVt
ZU1vY2suaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaCBcCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvQ29sb3IuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYzQyY2ViMmIwY2U2
YjA5NGQxZGJkMmJiN2MwZjY2NDI0Y2M1ZmJkMy4uZDY2ZGZhMmY4ZWFjN2U1NzBlMzNiMjlmZGY2
MzQ2ZGQwMTE3MGZmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzg0Niw4ICszODQ2LDYgQEAKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suaCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVtZU1vY2suY3BwJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9tb2NrL1Njcm9sbGJhclRoZW1lTW9jay5oJywKLSAgICAgICAgICAgICdw
bGF0Zm9ybS9tb2NrL1NwZWVjaElucHV0Q2xpZW50TW9jay5jcHAnLAotICAgICAgICAgICAgJ3Bs
YXRmb3JtL21vY2svU3BlZWNoSW5wdXRDbGllbnRNb2NrLmgnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL25ldHdvcmsvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmNwcCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L25ldHdvcmsvQmxvYkRhdGEuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCmluZGV4IDAzNTAzOTkzNGE2MTU1NTgwYjU3ZTQwOTJkNTIwY2ExY2FhNjEz
MTEuLmM1ZTg1YmQ2MzY4M2MxYzk0NTY0NmRkNGRjOTI0YWViNzJhOWUyY2UgMTAwNzU1Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0zMjYxNiwxNCArMzI2
MTYsNiBAQAogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXG1vY2tcU2Nyb2xsYmFyVGhl
bWVNb2NrLmgiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxwbGF0Zm9ybVxtb2NrXFNwZWVjaElucHV0Q2xpZW50TW9jay5jcHAiCi0JCQkJCT4K
LQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxt
b2NrXFNwZWVjaElucHV0Q2xpZW50TW9jay5oIgotCQkJCQk+Ci0JCQkJPC9GaWxlPgogCQkJPC9G
aWx0ZXI+CiAJCTwvRmlsdGVyPgogCQk8RmlsdGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggN2JkYTBhZTVkM2U5MzFmZjlmMTA0
MDljNzA2N2U4Mjc5NTdmZDY3My4uY2E5MTAzY2FkNzIyYmY4YzJjODljOWRjMzlkY2ExZjA4ZGQ2
ZmU3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTc5MSw4ICsxNzkxLDYgQEAKIAkJNzI2MjZFMDIwRUYwMjJGRTAwQTA3RTIw
IC8qIEZvbnRGYXN0UGF0aC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3MjYyNkUwMTBFRjAyMkZFMDBBMDdFMjAgLyogRm9udEZhc3RQYXRoLmNwcCAq
LzsgfTsKIAkJNzUwRDAyOTMxMUQwRTdGMzAwQkQxQjI3IC8qIFJlbmRlcklucHV0U3BlZWNoLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1MEQwMjkx
MTFEMEU3RjMwMEJEMUIyNyAvKiBSZW5kZXJJbnB1dFNwZWVjaC5jcHAgKi87IH07CiAJCTc1MEQw
Mjk0MTFEMEU3RjMwMEJEMUIyNyAvKiBSZW5kZXJJbnB1dFNwZWVjaC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzUwRDAyOTIxMUQwRTdGMzAwQkQxQjI3
IC8qIFJlbmRlcklucHV0U3BlZWNoLmggKi87IH07Ci0JCTc1MzVCQzk0MTIwMjBDRkYwMDM3RUM0
NSAvKiBTcGVlY2hJbnB1dENsaWVudE1vY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNzUzNUJDOTIxMjAyMENGRjAwMzdFQzQ1IC8qIFNwZWVjaElu
cHV0Q2xpZW50TW9jay5jcHAgKi87IH07Ci0JCTc1MzVCQzk1MTIwMjBDRkYwMDM3RUM0NSAvKiBT
cGVlY2hJbnB1dENsaWVudE1vY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDc1MzVCQzkzMTIwMjBDRkYwMDM3RUM0NSAvKiBTcGVlY2hJbnB1dENsaWVu
dE1vY2suaCAqLzsgfTsKIAkJNzU0MTMzQTgxMDJFMDBFODAwMDc1RDAwIC8qIEluc3BlY3RvclRp
bWVsaW5lQWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDc1NDEzM0E3MTAyRTAwRTgwMDA3NUQwMCAvKiBJbnNwZWN0b3JUaW1lbGluZUFnZW50Lmgg
Ki87IH07CiAJCTc1NDEzM0FBMTAyRTAwRjQwMDA3NUQwMCAvKiBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1
NDEzM0E5MTAyRTAwRjQwMDA3NUQwMCAvKiBJbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCAqLzsg
fTsKIAkJNzU0MTVBRkQxMjk1OEQ1RTAwM0FENjY5IC8qIFNwZWVjaElucHV0RXZlbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NDE1QUY4MTI5NThE
NUUwMDNBRDY2OSAvKiBTcGVlY2hJbnB1dEV2ZW50LmggKi87IH07CkBAIC04NjQ5LDggKzg2NDcs
NiBAQAogCQk3MjYyNkUwMTBFRjAyMkZFMDBBMDdFMjAgLyogRm9udEZhc3RQYXRoLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvbnRGYXN0UGF0aC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1MEQwMjkxMTFEMEU3RjMwMEJEMUIyNyAvKiBSZW5k
ZXJJbnB1dFNwZWVjaC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBS
ZW5kZXJJbnB1dFNwZWVjaC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1MEQw
MjkyMTFEMEU3RjMwMEJEMUIyNyAvKiBSZW5kZXJJbnB1dFNwZWVjaC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJJbnB1dFNwZWVjaC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk3NTM1QkM5MjEyMDIwQ0ZGMDAzN0VDNDUgLyogU3BlZWNoSW5wdXRDbGll
bnRNb2NrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFNwZWVjaElu
cHV0Q2xpZW50TW9jay5jcHA7IHBhdGggPSBtb2NrL1NwZWVjaElucHV0Q2xpZW50TW9jay5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTc1MzVCQzkzMTIwMjBDRkYwMDM3RUM0NSAv
KiBTcGVlY2hJbnB1dENsaWVudE1vY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gU3BlZWNoSW5wdXRDbGllbnRNb2NrLmg7IHBhdGggPSBtb2NrL1NwZWVjaElucHV0Q2xpZW50
TW9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTQxMzNBNzEwMkUwMEU4MDAw
NzVEMDAgLyogSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBJbnNwZWN0b3JUaW1lbGluZUFnZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTc1NDEzM0E5MTAyRTAwRjQwMDA3NUQwMCAvKiBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvclRp
bWVsaW5lQWdlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTQxNUFGODEy
OTU4RDVFMDAzQUQ2NjkgLyogU3BlZWNoSW5wdXRFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTcGVlY2hJbnB1dEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xNDc0MCw4ICsxNDczNiw2IEBACiAJCQkJMDUyQkZDRUExMjhBQkYyMTAwRkQzMzhE
IC8qIEdlb2xvY2F0aW9uQ2xpZW50TW9jay5oICovLAogCQkJCTBGRTcxNDAzMTQyMTcwQjgwMERC
MzNCQSAvKiBTY3JvbGxiYXJUaGVtZU1vY2suY3BwICovLAogCQkJCTBGRTcxNDA0MTQyMTcwQjgw
MERCMzNCQSAvKiBTY3JvbGxiYXJUaGVtZU1vY2suaCAqLywKLQkJCQk3NTM1QkM5MjEyMDIwQ0ZG
MDAzN0VDNDUgLyogU3BlZWNoSW5wdXRDbGllbnRNb2NrLmNwcCAqLywKLQkJCQk3NTM1QkM5MzEy
MDIwQ0ZGMDAzN0VDNDUgLyogU3BlZWNoSW5wdXRDbGllbnRNb2NrLmggKi8sCiAJCQkpOwogCQkJ
bmFtZSA9IG1vY2s7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjM1MDEsNyArMjM0
OTUsNiBAQAogCQkJCTYyNkNERTBGMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzU3OEY5MEMxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVj
aElucHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3NTc4RjkwRDExRERGMjY5MDBEOTMzQzUgLyog
U3BlZWNoSW5wdXRDbGllbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTc1MzVCQzk1MTIwMjBDRkYw
MDM3RUM0NSAvKiBTcGVlY2hJbnB1dENsaWVudE1vY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTc1
NDE1QUZEMTI5NThENUUwMDNBRDY2OSAvKiBTcGVlY2hJbnB1dEV2ZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQk3NTc4RjkyMDExRTRFMzI4MDBEOTMzQzUgLyogU3BlZWNoSW5wdXRMaXN0ZW5lci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNzU0MTVCMDAxMjk1OEQ1RTAwM0FENjY5IC8qIFNwZWVjaElu
cHV0UmVzdWx0TGlzdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjU1NCw3ICsyNjU0Nyw2IEBACiAJ
CQkJRDAxQTI3QUQxMEM5QkZEODAwMDI2QTQyIC8qIFNwYWNlU3BsaXRTdHJpbmcuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNjI2Q0RFMEUxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0
aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc1NzhGOTBCMTFEREYyNjkwMEQ5MzNDNSAvKiBT
cGVlY2hJbnB1dC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk3NTM1QkM5NDEyMDIwQ0ZGMDAzN0VD
NDUgLyogU3BlZWNoSW5wdXRDbGllbnRNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc1NDE1
QzI4MTI5QTk5MjAwMDNBRDY2OSAvKiBTcGVlY2hJbnB1dEV2ZW50LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTc1ODk3OEVDMTI3MDkwRDYwMDc2RDVBOSAvKiBTcGVlY2hJbnB1dFJlc3VsdC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk3NTQxNUMyOTEyOUE5OTIwMDAzQUQ2NjkgLyogU3BlZWNoSW5w
dXRSZXN1bHRMaXN0LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9TcGVlY2hJbnB1dENsaWVudE1vY2suY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9TcGVlY2hJbnB1dENsaWVudE1vY2suY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA5YWEzMTEzZGMwMDYzYmVhMjZkNGIxNThkNzQwNDkxMDFiOTNiYThi
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svU3BlZWNoSW5wdXRDbGllbnRNb2NrLmNwcAorKysgL2Rldi9u
dWxsCkBAIC0xLDE0NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNwZWVj
aElucHV0Q2xpZW50TW9jay5oIgotCi0jaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKLQotI2luY2x1
ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCi0jaW5jbHVkZSAiU3BlZWNoSW5wdXRMaXN0ZW5lci5oIgot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVNwZWVjaElucHV0Q2xpZW50TW9jazo6U3BlZWNoSW5w
dXRDbGllbnRNb2NrKCkKLSAgICA6IG1fcmVjb3JkaW5nKGZhbHNlKQotICAgICwgbV90aW1lcih0
aGlzLCAmU3BlZWNoSW5wdXRDbGllbnRNb2NrOjp0aW1lckZpcmVkKQotICAgICwgbV9saXN0ZW5l
cigwKQotICAgICwgbV9yZXF1ZXN0SWQoMCkKLXsKLX0KLQotdm9pZCBTcGVlY2hJbnB1dENsaWVu
dE1vY2s6OnNldExpc3RlbmVyKFNwZWVjaElucHV0TGlzdGVuZXIqIGxpc3RlbmVyKQotewotICAg
IG1fbGlzdGVuZXIgPSBsaXN0ZW5lcjsKLX0KLQotYm9vbCBTcGVlY2hJbnB1dENsaWVudE1vY2s6
OnN0YXJ0UmVjb2duaXRpb24oaW50IHJlcXVlc3RJZCwgY29uc3QgSW50UmVjdCYgZWxlbWVudFJl
Y3QsIGNvbnN0IEF0b21pY1N0cmluZyYgbGFuZ3VhZ2UsIGNvbnN0IFN0cmluZyYgZ3JhbW1hciwg
U2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKLXsKLSAgICBpZiAobV90aW1lci5pc0FjdGl2ZSgpKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgbV9yZXF1ZXN0SWQgPSByZXF1ZXN0SWQ7Ci0gICAg
bV9yZWNvcmRpbmcgPSB0cnVlOwotICAgIG1fbGFuZ3VhZ2UgPSBsYW5ndWFnZTsKLSAgICBtX3Rp
bWVyLnN0YXJ0T25lU2hvdCgwKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZCBTcGVlY2hJ
bnB1dENsaWVudE1vY2s6OnN0b3BSZWNvcmRpbmcoaW50IHJlcXVlc3RJZCkKLXsKLSAgICBBU1NF
UlQocmVxdWVzdElkID09IG1fcmVxdWVzdElkKTsKLSAgICBpZiAobV90aW1lci5pc0FjdGl2ZSgp
ICYmIG1fcmVjb3JkaW5nKSB7Ci0gICAgICAgIG1fdGltZXIuc3RvcCgpOwotICAgICAgICB0aW1l
ckZpcmVkKCZtX3RpbWVyKTsKLSAgICB9Ci19Ci0KLXZvaWQgU3BlZWNoSW5wdXRDbGllbnRNb2Nr
OjpjYW5jZWxSZWNvZ25pdGlvbihpbnQgcmVxdWVzdElkKQotewotICAgIGlmIChtX3RpbWVyLmlz
QWN0aXZlKCkpIHsKLSAgICAgICAgQVNTRVJUKHJlcXVlc3RJZCA9PSBtX3JlcXVlc3RJZCk7Ci0g
ICAgICAgIG1fdGltZXIuc3RvcCgpOwotICAgICAgICBtX3JlY29yZGluZyA9IGZhbHNlOwotICAg
ICAgICBtX2xpc3RlbmVyLT5kaWRDb21wbGV0ZVJlY29nbml0aW9uKG1fcmVxdWVzdElkKTsKLSAg
ICAgICAgbV9yZXF1ZXN0SWQgPSAwOwotICAgIH0KLX0KLQotdm9pZCBTcGVlY2hJbnB1dENsaWVu
dE1vY2s6OmFkZFJlY29nbml0aW9uUmVzdWx0KGNvbnN0IFN0cmluZyYgcmVzdWx0LCBkb3VibGUg
Y29uZmlkZW5jZSwgY29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFnZSkKLXsKLSAgICBpZiAobGFu
Z3VhZ2UuaXNFbXB0eSgpKQotICAgICAgICBtX3Jlc3VsdHNGb3JFbXB0eUxhbmd1YWdlLmFwcGVu
ZChTcGVlY2hJbnB1dFJlc3VsdDo6Y3JlYXRlKHJlc3VsdCwgY29uZmlkZW5jZSkpOwotICAgIGVs
c2UgewotICAgICAgICBpZiAoIW1fcmVjb2duaXRpb25SZXN1bHRzLmNvbnRhaW5zKGxhbmd1YWdl
KSkKLSAgICAgICAgICAgIG1fcmVjb2duaXRpb25SZXN1bHRzLnNldChsYW5ndWFnZSwgU3BlZWNo
SW5wdXRSZXN1bHRBcnJheSgpKTsKLSAgICAgICAgbV9yZWNvZ25pdGlvblJlc3VsdHMuZmluZChs
YW5ndWFnZSktPnNlY29uZC5hcHBlbmQoU3BlZWNoSW5wdXRSZXN1bHQ6OmNyZWF0ZShyZXN1bHQs
IGNvbmZpZGVuY2UpKTsKLSAgICB9Ci19Ci0KLXZvaWQgU3BlZWNoSW5wdXRDbGllbnRNb2NrOjpj
bGVhclJlc3VsdHMoKQotewotICAgIG1fcmVzdWx0c0ZvckVtcHR5TGFuZ3VhZ2UuY2xlYXIoKTsK
LSAgICBtX3JlY29nbml0aW9uUmVzdWx0cy5jbGVhcigpOwotfQotCi12b2lkIFNwZWVjaElucHV0
Q2xpZW50TW9jazo6dGltZXJGaXJlZChXZWJDb3JlOjpUaW1lcjxTcGVlY2hJbnB1dENsaWVudE1v
Y2s+KikKLXsKLSAgICBpZiAobV9yZWNvcmRpbmcpIHsKLSAgICAgICAgbV9yZWNvcmRpbmcgPSBm
YWxzZTsKLSAgICAgICAgbV9saXN0ZW5lci0+ZGlkQ29tcGxldGVSZWNvcmRpbmcobV9yZXF1ZXN0
SWQpOwotICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKLSAgICB9IGVsc2UgewotICAg
ICAgICBib29sIG5vUmVzdWx0c0ZvdW5kID0gZmFsc2U7Ci0KLSAgICAgICAgLy8gV2UgdGFrZSBh
IGNvcHkgb2YgdGhlIHJlcXVlc3RJZCBoZXJlIHNvIHRoYXQgaWYgc2NyaXB0cyBkZXN0cm95ZWQg
dGhlIGlucHV0IGVsZW1lbnQKLSAgICAgICAgLy8gaW5zaWRlIG9uZSBvZiB0aGUgY2FsbGJhY2tz
IGJlbG93LCB3ZSdsbCBzdGlsbCBrbm93IHdoYXQgdGhpcyBzZXNzaW9uJ3MgcmVxdWVzdElkIHdh
cy4KLSAgICAgICAgaW50IHJlcXVlc3RJZCA9IG1fcmVxdWVzdElkOwotICAgICAgICBtX3JlcXVl
c3RJZCA9IDA7Ci0KLSAgICAgICAgLy8gRW1wdHkgbGFuZ3VhZ2UgY2FzZSBtdXN0IGJlIGhhbmRs
ZWQgc2VwYXJhdGVseSB0byBhdm9pZCBwcm9ibGVtcyB3aXRoIEhhc2hNYXAgYW5kIGVtcHR5IGtl
eXMuCi0gICAgICAgIGlmIChtX2xhbmd1YWdlLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgaWYg
KCFtX3Jlc3VsdHNGb3JFbXB0eUxhbmd1YWdlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICBt
X2xpc3RlbmVyLT5zZXRSZWNvZ25pdGlvblJlc3VsdChyZXF1ZXN0SWQsIG1fcmVzdWx0c0ZvckVt
cHR5TGFuZ3VhZ2UpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG5vUmVzdWx0
c0ZvdW5kID0gdHJ1ZTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIChtX3JlY29n
bml0aW9uUmVzdWx0cy5jb250YWlucyhtX2xhbmd1YWdlKSkKLSAgICAgICAgICAgICAgICBtX2xp
c3RlbmVyLT5zZXRSZWNvZ25pdGlvblJlc3VsdChyZXF1ZXN0SWQsIG1fcmVjb2duaXRpb25SZXN1
bHRzLmdldChtX2xhbmd1YWdlKSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAg
bm9SZXN1bHRzRm91bmQgPSB0cnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKG5vUmVzdWx0
c0ZvdW5kKSB7Ci0gICAgICAgICAgICAvLyBDYW4ndCBhdm9pZCBzZXR0aW5nIGEgcmVzdWx0IGV2
ZW4gaWYgbm8gcmVzdWx0IHdhcyBzZXQgZm9yIHRoZSBnaXZlbiBsYW5ndWFnZS4KLSAgICAgICAg
ICAgIC8vIFRoaXMgd291bGQgYXZvaWQgZ2VuZXJhdGluZyB0aGUgZXZlbnRzIHVzZWQgdG8gY2hl
Y2sgdGhlIHJlc3VsdHMgYW5kIHRoZSB0ZXN0IHdvdWxkIHRpbWVvdXQuCi0gICAgICAgICAgICBT
dHJpbmcgZXJyb3IoImVycm9yOiBubyByZXN1bHQgZm91bmQgZm9yIGxhbmd1YWdlICciKTsKLSAg
ICAgICAgICAgIGVycm9yLmFwcGVuZChtX2xhbmd1YWdlKTsKLSAgICAgICAgICAgIGVycm9yLmFw
cGVuZCgiJyIpOwotICAgICAgICAgICAgU3BlZWNoSW5wdXRSZXN1bHRBcnJheSByZXN1bHRzOwot
ICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQoU3BlZWNoSW5wdXRSZXN1bHQ6OmNyZWF0ZShlcnJv
ciwgMS4wKSk7Ci0gICAgICAgICAgICBtX2xpc3RlbmVyLT5zZXRSZWNvZ25pdGlvblJlc3VsdChy
ZXF1ZXN0SWQsIHJlc3VsdHMpOwotICAgICAgICB9Ci0KLSAgICAgICAgbV9saXN0ZW5lci0+ZGlk
Q29tcGxldGVSZWNvZ25pdGlvbihyZXF1ZXN0SWQpOwotICAgIH0KLX0KLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKElOUFVUX1NQRUVDSCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU3BlZWNoSW5wdXRDbGllbnRNb2NrLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1NwZWVjaElucHV0Q2xpZW50TW9jay5oCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZTEzMjQyYWNiNGI2ZjkxNjRkZWVlODU1ZDU2MzY4
YmQ0OWVjNTM2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU3BlZWNoSW5wdXRDbGllbnRNb2NrLmgKKysr
IC9kZXYvbnVsbApAQCAtMSw3OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
LSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBTcGVlY2hJbnB1dENsaWVudE1vY2tf
aAotI2RlZmluZSBTcGVlY2hJbnB1dENsaWVudE1vY2tfaAotCi0jaW5jbHVkZSAiUGxhdGZvcm1T
dHJpbmcuaCIKLSNpbmNsdWRlICJTcGVlY2hJbnB1dENsaWVudC5oIgotI2luY2x1ZGUgIlNwZWVj
aElucHV0UmVzdWx0LmgiCi0jaW5jbHVkZSAiVGltZXIuaCIKLSNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KLQotI2lmIEVOQUJMRShJTlBV
VF9TUEVFQ0gpCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgU3BlZWNoSW5wdXRMaXN0
ZW5lcjsKLQotLy8gUHJvdmlkZXMgYSBtb2NrIG9iamVjdCBmb3IgdGhlIHNwZWVjaCBpbnB1dCBl
bWJlZGRlciBBUEkgY2FsbGVkIGJ5IFdlYkNvcmUuCi1jbGFzcyBTcGVlY2hJbnB1dENsaWVudE1v
Y2sgOiBwdWJsaWMgU3BlZWNoSW5wdXRDbGllbnQgewotcHVibGljOgotICAgIFNwZWVjaElucHV0
Q2xpZW50TW9jaygpOwotCi0gICAgdm9pZCBhZGRSZWNvZ25pdGlvblJlc3VsdChjb25zdCBTdHJp
bmcmIHJlc3VsdCwgZG91YmxlIGNvbmZpZGVuY2UsIGNvbnN0IEF0b21pY1N0cmluZyYgbGFuZ3Vh
Z2UpOwotICAgIHZvaWQgY2xlYXJSZXN1bHRzKCk7Ci0KLSAgICAvLyBTcGVlY2hJbnB1dENsaWVu
dCBtZXRob2RzLgotICAgIHZvaWQgc2V0TGlzdGVuZXIoU3BlZWNoSW5wdXRMaXN0ZW5lciopOwot
ICAgIGJvb2wgc3RhcnRSZWNvZ25pdGlvbihpbnQgcmVxdWVzdElkLCBjb25zdCBJbnRSZWN0JiBl
bGVtZW50UmVjdCwgY29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFnZSwgY29uc3QgU3RyaW5nJiBn
cmFtbWFyLCBTZWN1cml0eU9yaWdpbiopOwotICAgIHZvaWQgc3RvcFJlY29yZGluZyhpbnQpOwot
ICAgIHZvaWQgY2FuY2VsUmVjb2duaXRpb24oaW50KTsKLQotcHJpdmF0ZToKLSAgICB2b2lkIHRp
bWVyRmlyZWQoVGltZXI8U3BlZWNoSW5wdXRDbGllbnRNb2NrPiopOwotCi0gICAgYm9vbCBtX3Jl
Y29yZGluZzsKLSAgICBUaW1lcjxTcGVlY2hJbnB1dENsaWVudE1vY2s+IG1fdGltZXI7Ci0gICAg
U3BlZWNoSW5wdXRMaXN0ZW5lciogbV9saXN0ZW5lcjsKLSAgICBpbnQgbV9yZXF1ZXN0SWQ7Ci0K
LSAgICBIYXNoTWFwPFN0cmluZywgU3BlZWNoSW5wdXRSZXN1bHRBcnJheT4gbV9yZWNvZ25pdGlv
blJlc3VsdHM7Ci0gICAgQXRvbWljU3RyaW5nIG1fbGFuZ3VhZ2U7Ci0gICAgU3BlZWNoSW5wdXRS
ZXN1bHRBcnJheSBtX3Jlc3VsdHNGb3JFbXB0eUxhbmd1YWdlOwotfTsKLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKElOUFVUX1NQRUVDSCkKLQotI2VuZGlmIC8v
IFNwZWVjaElucHV0Q2xpZW50TW9ja19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL1dlYktpdC5neXAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXgg
YTRmNTZjNThmYWEwYjhmNTY0MGE2ZjZkZWNkMmI1MTA3ZDgyZGYxNi4uMmI4NTIxZTEzMGUzMWIy
ZDQ3YTk2Mjg2ZWRlMDUyZWE5NjM3OGU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9XZWJLaXQuZ3lwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApA
QCAtMjQ1LDcgKzI0NSw2IEBACiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJTb2NrZXQuaCcs
CiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJTb2NrZXRDbGllbnQuaCcsCiAgICAgICAgICAg
ICAgICAgJ3B1YmxpYy9XZWJTcGVlY2hJbnB1dENvbnRyb2xsZXIuaCcsCi0gICAgICAgICAgICAg
ICAgJ3B1YmxpYy9XZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrLmgnLAogICAgICAgICAgICAg
ICAgICdwdWJsaWMvV2ViU3BlZWNoSW5wdXRMaXN0ZW5lci5oJywKICAgICAgICAgICAgICAgICAn
cHVibGljL1dlYlNwZWVjaElucHV0UmVzdWx0LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMv
V2ViU3BlbGxDaGVja0NsaWVudC5oJywKQEAgLTY0Miw4ICs2NDEsNiBAQAogICAgICAgICAgICAg
ICAgICdzcmMvV2ViU29ja2V0SW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlNvbGlk
Q29sb3JMYXllci5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViU29saWRDb2xvckxheWVy
SW1wbC5jcHAnLAotICAgICAgICAgICAgICAgICdzcmMvV2ViU3BlZWNoSW5wdXRDb250cm9sbGVy
TW9ja0ltcGwuY3BwJywKLSAgICAgICAgICAgICAgICAnc3JjL1dlYlNwZWVjaElucHV0Q29udHJv
bGxlck1vY2tJbXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViU3BlZWNoSW5wdXRSZXN1
bHQuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlN0b3JhZ2VBcmVhSW1wbC5jcHAnLAog
ICAgICAgICAgICAgICAgICdzcmMvV2ViU3RvcmFnZUFyZWFJbXBsLmgnLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9j
ay5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU3BlZWNoSW5wdXRDb250cm9s
bGVyTW9jay5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNGU1NDNmMDJjMzE2MTA0
YTQ1YjI1OGIyZWUxYmE4NTRmMzdhZGFhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNwZWVjaElu
cHV0Q29udHJvbGxlck1vY2suaAorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlz
dHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwot
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVm
IFdlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2tfaAotI2RlZmluZSBXZWJTcGVlY2hJbnB1dENv
bnRyb2xsZXJNb2NrX2gKLQotI2luY2x1ZGUgIldlYlNwZWVjaElucHV0Q29udHJvbGxlci5oIgot
Ci1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViU3RyaW5nOwotY2xhc3MgV2ViU3BlZWNo
SW5wdXRMaXN0ZW5lcjsKLQotY2xhc3MgV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9jayA6IHB1
YmxpYyBXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXIgewotcHVibGljOgotICAgIFdFQktJVF9FWFBP
UlQgc3RhdGljIFdlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2sqIGNyZWF0ZSgKLSAgICAgICAg
V2ViU3BlZWNoSW5wdXRMaXN0ZW5lciogbGlzdGVuZXIpOwotICAgIHZpcnR1YWwgfldlYlNwZWVj
aElucHV0Q29udHJvbGxlck1vY2soKSB7IH0KLQotICAgIHZpcnR1YWwgdm9pZCBhZGRNb2NrUmVj
b2duaXRpb25SZXN1bHQoY29uc3QgV2ViU3RyaW5nJiByZXN1bHQsIGRvdWJsZSBjb25maWRlbmNl
LCBjb25zdCBXZWJTdHJpbmcmIGxhbmd1YWdlKSA9IDA7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgY2xl
YXJSZXN1bHRzKCkgPSAwOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU3BlZWNoSW5wdXRS
ZXN1bHQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNwZWVjaElucHV0UmVz
dWx0LmgKaW5kZXggYTMxNmZkMjMwZjZjMjAwMmYxOWQ3NDUwYmJiMzMyMTIxNjIyZDM4Mi4uMzg0
NTg2MmFjMmFhY2JmNGRlMTBiZWI5OWFlYmI1NDYzM2Q5NTBkOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU3BlZWNoSW5wdXRSZXN1bHQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTcGVlY2hJbnB1dFJlc3VsdC5oCkBAIC00Miw5
ICs0MiwxMSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYlNwZWVjaElucHV0UmVzdWx0
IHsKIHB1YmxpYzoKICAgICBXZWJTcGVlY2hJbnB1dFJlc3VsdCgpIHsgfQorICAgIFdlYlNwZWVj
aElucHV0UmVzdWx0KGNvbnN0IFdlYlNwZWVjaElucHV0UmVzdWx0JiBvdGhlcikgeyBzZXQob3Ro
ZXIpOyB9CiAgICAgfldlYlNwZWVjaElucHV0UmVzdWx0KCkgeyByZXNldCgpOyB9CiAKICAgICBX
RUJLSVRfRVhQT1JUIHZvaWQgc2V0KGNvbnN0IFdlYlN0cmluZyYgdXR0ZXJhbmNlLCBkb3VibGUg
Y29uZmlkZW5jZSk7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldChjb25zdCBXZWJTcGVlY2hJ
bnB1dFJlc3VsdCYgb3RoZXIpOwogICAgIFdFQktJVF9FWFBPUlQgdm9pZCByZXNldCgpOwogCiAj
aWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbC5jcHAKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRmMWYwNzQ1NzNjMzc0N2ZjMDMzMjhmZWRiMWQz
NjkyMTI3NmRkNDYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9j
a0ltcGwuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTE3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9u
LgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9ja0ltcGwuaCIKLQotI2lm
IEVOQUJMRShJTlBVVF9TUEVFQ0gpCi0KLSNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgotI2lu
Y2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCi0jaW5jbHVkZSAiU3BlZWNoSW5wdXRDbGllbnRNb2Nr
LmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2ViUmVjdC5oIgotI2luY2x1ZGUgIldlYlNlY3VyaXR5
T3JpZ2luLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KLQotbmFtZXNwYWNlIFdlYktp
dCB7Ci0KLVdlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2sqIFdlYlNwZWVjaElucHV0Q29udHJv
bGxlck1vY2s6OmNyZWF0ZShXZWJTcGVlY2hJbnB1dExpc3RlbmVyKiBsaXN0ZW5lcikKLXsKLSAg
ICByZXR1cm4gbmV3IFdlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2tJbXBsKGxpc3RlbmVyKTsK
LX0KLQotV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9ja0ltcGw6OldlYlNwZWVjaElucHV0Q29u
dHJvbGxlck1vY2tJbXBsKAotICAgIFdlYlNwZWVjaElucHV0TGlzdGVuZXIqIGxpc3RlbmVyKQot
ICAgIDogbV93ZWJjb3JlTW9jayhhZG9wdFB0cihuZXcgV2ViQ29yZTo6U3BlZWNoSW5wdXRDbGll
bnRNb2NrKCkpKQotICAgICwgbV9saXN0ZW5lcihsaXN0ZW5lcikKLXsKLSAgICBtX3dlYmNvcmVN
b2NrLT5zZXRMaXN0ZW5lcih0aGlzKTsKLX0KLQotV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9j
a0ltcGw6On5XZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbCgpCi17Ci0gICAgbV93ZWJj
b3JlTW9jay0+c2V0TGlzdGVuZXIoMCk7Ci19Ci0KLXZvaWQgV2ViU3BlZWNoSW5wdXRDb250cm9s
bGVyTW9ja0ltcGw6OmFkZE1vY2tSZWNvZ25pdGlvblJlc3VsdChjb25zdCBXZWJTdHJpbmcmIHJl
c3VsdCwgZG91YmxlIGNvbmZpZGVuY2UsIGNvbnN0IFdlYlN0cmluZyAmbGFuZ3VhZ2UpCi17Ci0g
ICAgbV93ZWJjb3JlTW9jay0+YWRkUmVjb2duaXRpb25SZXN1bHQocmVzdWx0LCBjb25maWRlbmNl
LCBsYW5ndWFnZSk7Ci19Ci0KLXZvaWQgV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9ja0ltcGw6
OmNsZWFyUmVzdWx0cygpCi17Ci0gICAgbV93ZWJjb3JlTW9jay0+Y2xlYXJSZXN1bHRzKCk7Ci19
Ci0KLXZvaWQgV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9ja0ltcGw6OmRpZENvbXBsZXRlUmVj
b3JkaW5nKGludCByZXF1ZXN0SWQpCi17Ci0gICAgbV9saXN0ZW5lci0+ZGlkQ29tcGxldGVSZWNv
cmRpbmcocmVxdWVzdElkKTsKLX0KLQotdm9pZCBXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2Nr
SW1wbDo6ZGlkQ29tcGxldGVSZWNvZ25pdGlvbihpbnQgcmVxdWVzdElkKQotewotICAgIG1fbGlz
dGVuZXItPmRpZENvbXBsZXRlUmVjb2duaXRpb24ocmVxdWVzdElkKTsKLX0KLQotdm9pZCBXZWJT
cGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbDo6c2V0UmVjb2duaXRpb25SZXN1bHQoaW50IHJl
cXVlc3RJZCwgY29uc3QgV2ViQ29yZTo6U3BlZWNoSW5wdXRSZXN1bHRBcnJheSYgcmVzdWx0KQot
ewotICAgIG1fbGlzdGVuZXItPnNldFJlY29nbml0aW9uUmVzdWx0KHJlcXVlc3RJZCwgcmVzdWx0
KTsKLX0KLQotYm9vbCBXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbDo6c3RhcnRSZWNv
Z25pdGlvbihpbnQgcmVxdWVzdElkLCBjb25zdCBXZWJSZWN0JiBlbGVtZW50UmVjdCwgY29uc3Qg
V2ViU3RyaW5nJiBsYW5ndWFnZSwgY29uc3QgV2ViU3RyaW5nJiBncmFtbWFyLCBjb25zdCBXZWJT
ZWN1cml0eU9yaWdpbiYgb3JpZ2luKQotewotICAgIHJldHVybiBtX3dlYmNvcmVNb2NrLT5zdGFy
dFJlY29nbml0aW9uKHJlcXVlc3RJZCwgZWxlbWVudFJlY3QsIGxhbmd1YWdlLCBncmFtbWFyLCBv
cmlnaW4uZ2V0KCkpOwotfQotCi12b2lkIFdlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2tJbXBs
OjpjYW5jZWxSZWNvZ25pdGlvbihpbnQgcmVxdWVzdElkKQotewotICAgIG1fd2ViY29yZU1vY2st
PmNhbmNlbFJlY29nbml0aW9uKHJlcXVlc3RJZCk7Ci19Ci0KLXZvaWQgV2ViU3BlZWNoSW5wdXRD
b250cm9sbGVyTW9ja0ltcGw6OnN0b3BSZWNvcmRpbmcoaW50IHJlcXVlc3RJZCkKLXsKLSAgICBt
X3dlYmNvcmVNb2NrLT5zdG9wUmVjb3JkaW5nKHJlcXVlc3RJZCk7Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYktpdAotCi0jZWxzZQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotV2ViU3BlZWNoSW5w
dXRDb250cm9sbGVyTW9jayogV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9jazo6Y3JlYXRlKFdl
YlNwZWVjaElucHV0TGlzdGVuZXIqIGxpc3RlbmVyKQotewotICAgIHJldHVybiAwOwotfQotCi19
IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9TUEVFQ0gpCi0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNwZWVjaElucHV0Q29u
dHJvbGxlck1vY2tJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTcGVlY2hJ
bnB1dENvbnRyb2xsZXJNb2NrSW1wbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
NWJmZDUyYThjODhlMmMxZjE1MTU4ZmVkOGFlNjRmMDk3ZWRkNjQ3Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2tJbXBsLmgKKysrIC9kZXYvbnVsbApAQCAtMSw3
OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6
Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
LSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2lmbmRlZiBXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbF9oCi0jZGVm
aW5lIFdlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2tJbXBsX2gKLQotI2luY2x1ZGUgIlNwZWVj
aElucHV0TGlzdGVuZXIuaCIKLSNpbmNsdWRlICJXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2Nr
LmgiCi0jaW5jbHVkZSAiV2ViU3BlZWNoSW5wdXRMaXN0ZW5lci5oIgotI2luY2x1ZGUgInBsYXRm
b3JtL1dlYlN0cmluZy5oIgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLQotI2lmIEVOQUJMRShJ
TlBVVF9TUEVFQ0gpCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIFNwZWVjaElucHV0Q2xp
ZW50TW9jazsKLX0KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLXN0cnVjdCBXZWJSZWN0OwotCi1j
bGFzcyBXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbCA6IHB1YmxpYyBXZWJDb3JlOjpT
cGVlY2hJbnB1dExpc3RlbmVyCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAsIHB1YmxpYyBXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrIHsKLXB1YmxpYzoKLSAgICBX
ZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbChXZWJTcGVlY2hJbnB1dExpc3RlbmVyKik7
Ci0gICAgdmlydHVhbCB+V2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9ja0ltcGwoKTsKLQotICAg
IC8vIFdlYkNvcmU6OlNwZWVjaElucHV0TGlzdGVuZXIgbWV0aG9kcy4KLSAgICB2b2lkIGRpZENv
bXBsZXRlUmVjb3JkaW5nKGludCByZXF1ZXN0SWQpOwotICAgIHZvaWQgZGlkQ29tcGxldGVSZWNv
Z25pdGlvbihpbnQgcmVxdWVzdElkKTsKLSAgICB2b2lkIHNldFJlY29nbml0aW9uUmVzdWx0KGlu
dCByZXF1ZXN0SWQsIGNvbnN0IFdlYkNvcmU6OlNwZWVjaElucHV0UmVzdWx0QXJyYXkmIHJlc3Vs
dCk7Ci0KLSAgICAvLyBXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXIgbWV0aG9kcy4KLSAgICBib29s
IHN0YXJ0UmVjb2duaXRpb24oaW50IHJlcXVlc3RJZCwgY29uc3QgV2ViUmVjdCYgZWxlbWVudFJl
Y3QsIGNvbnN0IFdlYlN0cmluZyYgbGFuZ3VhZ2UsIGNvbnN0IFdlYlN0cmluZyYgZ3JhbW1hciwg
Y29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mKTsKLSAgICB2b2lkIGNhbmNlbFJlY29nbml0aW9uKGlu
dCByZXF1ZXN0SWQpOwotICAgIHZvaWQgc3RvcFJlY29yZGluZyhpbnQgcmVxdWVzdElkKTsKLQot
ICAgIC8vIFdlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2sgbWV0aG9kcy4KLSAgICB2b2lkIGFk
ZE1vY2tSZWNvZ25pdGlvblJlc3VsdChjb25zdCBXZWJTdHJpbmcmIHJlc3VsdCwgZG91YmxlIGNv
bmZpZGVuY2UsIGNvbnN0IFdlYlN0cmluZyYgbGFuZ3VhZ2UpOwotICAgIHZvaWQgY2xlYXJSZXN1
bHRzKCk7Ci0KLXByaXZhdGU6Ci0gICAgT3duUHRyPFdlYkNvcmU6OlNwZWVjaElucHV0Q2xpZW50
TW9jaz4gbV93ZWJjb3JlTW9jazsKLSAgICBXZWJTcGVlY2hJbnB1dExpc3RlbmVyKiBtX2xpc3Rl
bmVyOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoSU5Q
VVRfU1BFRUNIKQotCi0jZW5kaWYgLy8gV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9ja0ltcGxf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU3BlZWNoSW5wdXRS
ZXN1bHQuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU3BlZWNoSW5wdXRSZXN1
bHQuY3BwCmluZGV4IDliMTMxNDQxODI3M2MyMjM5N2YzYTE1ZjY0MWIwYTdlYzRmZWVhZjkuLmJl
NDEwZGY4ZDc3Nzg0MDAyOWViNmQ1ZjYwZDM1MjQwYTcwYzg1YmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNwZWVjaElucHV0UmVzdWx0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTcGVlY2hJbnB1dFJlc3VsdC5jcHAKQEAgLTQ4LDYg
KzQ4LDExIEBAIHZvaWQgV2ViU3BlZWNoSW5wdXRSZXN1bHQ6OnNldChjb25zdCBXZWJTdHJpbmcm
IHV0dGVyYW5jZSwgZG91YmxlIGNvbmZpZGVuY2UpCiAgICAgbV9wcml2YXRlID0gV2ViQ29yZTo6
U3BlZWNoSW5wdXRSZXN1bHQ6OmNyZWF0ZSh1dHRlcmFuY2UsIGNvbmZpZGVuY2UpOwogfQogCit2
b2lkIFdlYlNwZWVjaElucHV0UmVzdWx0OjpzZXQoY29uc3QgV2ViU3BlZWNoSW5wdXRSZXN1bHQm
IG90aGVyKQoreworICAgIG1fcHJpdmF0ZSA9IFdlYkNvcmU6OlNwZWVjaElucHV0UmVzdWx0Ojpj
cmVhdGUoKm90aGVyLm1fcHJpdmF0ZS5nZXQoKSk7Cit9CisKIFdlYlNwZWVjaElucHV0UmVzdWx0
OjpvcGVyYXRvciBQYXNzUmVmUHRyPFdlYkNvcmU6OlNwZWVjaElucHV0UmVzdWx0PigpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS5nZXQoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmYTMwODFiMzMzNmVhNjk1Y2UyNWNmMjNmYWY2
ZGQyMzUwMjNlOTk4Li45ODFmNjhiN2U5OTg2MTlmMDhjMTdkYjQ1MmY4Yjc4MDBiZjZhNmFkIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNDUgQEAKKzIwMTItMDEtMjYgIEhhbnMgV2VubmJvcmcgIDxoYW5zQGNocm9taXVtLm9yZz4K
KworICAgICAgICBTcGVlY2ggSW5wdXQ6IG1vdmUgTW9ja1NwZWVjaElucHV0Q2xpZW50IGludG8g
Q2hyb21pdW0gRHVtcFJlbmRlclRyZWUgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3MDgzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIE1vY2tXZWJTcGVlY2hJbnB1dENvbnRy
b2xsZXIgd2hpY2ggcHJvdmlkZXMgYSBtb2NrIGltcGxlbWVudGF0aW9uCisgICAgICAgIG9mIHRo
ZSBXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXIgaW50ZXJmYWNlLCBhbmQgdXNlIHRoYXQgaW4KKyAg
ICAgICAgRHVtcFJlbmRlclRyZWUuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9EdW1wUmVu
ZGVyVHJlZS5neXBpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRl
c3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjphZGRNb2Nr
U3BlZWNoSW5wdXRSZXN1bHQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xh
eW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgICgpOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL01vY2tXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXIuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKE1vY2tXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXI6OmNyZWF0ZSk6CisgICAgICAgIChN
b2NrV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyOjphZGRNb2NrUmVjb2duaXRpb25SZXN1bHQpOgor
ICAgICAgICAoTW9ja1dlYlNwZWVjaElucHV0Q29udHJvbGxlcjo6Y2xlYXJSZXN1bHRzKToKKyAg
ICAgICAgKE1vY2tXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXI6OnN0YXJ0UmVjb2duaXRpb24pOgor
ICAgICAgICAoTW9ja1dlYlNwZWVjaElucHV0Q29udHJvbGxlcjo6Y2FuY2VsUmVjb2duaXRpb24p
OgorICAgICAgICAoTW9ja1dlYlNwZWVjaElucHV0Q29udHJvbGxlcjo6c3RvcFJlY29yZGluZyk6
CisgICAgICAgIChNb2NrV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyOjpNb2NrV2ViU3BlZWNoSW5w
dXRDb250cm9sbGVyKToKKyAgICAgICAgKE1vY2tXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXI6OnNw
ZWVjaFRhc2tGaXJlZCk6CisgICAgICAgIChNb2NrV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyOjpT
cGVlY2hUYXNrOjpTcGVlY2hUYXNrKToKKyAgICAgICAgKE1vY2tXZWJTcGVlY2hJbnB1dENvbnRy
b2xsZXI6OlNwZWVjaFRhc2s6OnN0b3ApOgorICAgICAgICAoTW9ja1dlYlNwZWVjaElucHV0Q29u
dHJvbGxlcjo6U3BlZWNoVGFzazo6cnVuSWZWYWxpZCk6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vTW9ja1dlYlNwZWVjaElucHV0Q29udHJvbGxlci5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdCk6CisgICAgICAgIChNb2NrV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyKToKKyAg
ICAgICAgKE1vY2tXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXI6OnRhc2tMaXN0KToKKyAgICAgICAg
KFNwZWVjaFRhc2spOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVs
bC5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3Bw
OgorICAgICAgICAoV2ViVmlld0hvc3Q6OnNwZWVjaElucHV0Q29udHJvbGxlcik6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaDoKKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgIChXZWJWaWV3SG9zdDo6c3BlZWNoSW5wdXRDb250cm9sbGVyTW9jayk6Cisg
ICAgICAgIChXZWJWaWV3SG9zdCk6CisgICAgICAgICgpOgorCiAyMDEyLTAxLTI1ICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgS2VudGFybyBpcyBhIHJldmlld2Vy
IG5vdy4gIFlheSEKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJU
cmVlLmd5cGkgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpCmluZGV4
IGI3MDc0NjQwMjlkYjY1M2Y5MjIyZjE2Y2VlOWJiOTA0YzIzMzQ5Y2YuLjA3MzZjMDM4MWIzNGM4
OGUzMDdlNWZmZjNkNTRmZDY5MjBmODc1MGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL0R1bXBSZW5kZXJUcmVlLmd5cGkKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJl
bmRlclRyZWUuZ3lwaQpAQCAtMjIsNiArMjIsOCBAQAogICAgICAgICAgICAgJ2Nocm9taXVtL0xh
eW91dFRlc3RDb250cm9sbGVyLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL01vY2tTcGVsbENo
ZWNrLmNwcCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vTW9ja1NwZWxsQ2hlY2suaCcsCisgICAg
ICAgICAgICAnY2hyb21pdW0vTW9ja1dlYlNwZWVjaElucHV0Q29udHJvbGxlci5jcHAnLAorICAg
ICAgICAgICAgJ2Nocm9taXVtL01vY2tXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXIuaCcsCiAgICAg
ICAgICAgICAnY2hyb21pdW0vTm90aWZpY2F0aW9uUHJlc2VudGVyLmgnLAogICAgICAgICAgICAg
J2Nocm9taXVtL05vdGlmaWNhdGlvblByZXNlbnRlci5jcHAnLAogICAgICAgICAgICAgJ2Nocm9t
aXVtL1BsYWluVGV4dENvbnRyb2xsZXIuY3BwJywKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCBkZTM5NGE5N2Zh
YjU4YTlmY2NmOTlhZDUyYjI2NDkzMDZkYmE0ZGYzLi4zNzQ4MGIwNjg3ZTUxNDEzMTIxZTY2YmU0
ZjYzMWY5ZjJkNTNlNWE2IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVk
ZSAiTGF5b3V0VGVzdENvbnRyb2xsZXIuaCIKIAogI2luY2x1ZGUgIkRSVERldlRvb2xzQWdlbnQu
aCIKKyNpbmNsdWRlICJNb2NrV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
VGVzdFNoZWxsLmgiCiAjaW5jbHVkZSAiV2ViQW5pbWF0aW9uQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIldlYkJpbmRpbmdzLmgiCkBAIC01NSw3ICs1Niw2IEBACiAjaW5jbHVkZSAiV2ViU2VjdXJp
dHlQb2xpY3kuaCIKICNpbmNsdWRlICJXZWJTZXR0aW5ncy5oIgogI2luY2x1ZGUgInBsYXRmb3Jt
L1dlYlNpemUuaCIKLSNpbmNsdWRlICJXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrLmgiCiAj
aW5jbHVkZSAicGxhdGZvcm0vV2ViVVJMLmgiCiAjaW5jbHVkZSAiV2ViVmlldy5oIgogI2luY2x1
ZGUgIldlYlZpZXdIb3N0LmgiCkBAIC0xOTM0LDcgKzE5MzQsNyBAQCB2b2lkIExheW91dFRlc3RD
b250cm9sbGVyOjphZGRNb2NrU3BlZWNoSW5wdXRSZXN1bHQoY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiBhcmd1bQogICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpIDwgMyB8fCAhYXJndW1lbnRzWzBdLmlz
U3RyaW5nKCkgfHwgIWFyZ3VtZW50c1sxXS5pc051bWJlcigpIHx8ICFhcmd1bWVudHNbMl0uaXNT
dHJpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKFdlYlNwZWVjaElucHV0Q29udHJv
bGxlck1vY2sqIGNvbnRyb2xsZXIgPSBtX3NoZWxsLT53ZWJWaWV3SG9zdCgpLT5zcGVlY2hJbnB1
dENvbnRyb2xsZXJNb2NrKCkpCisgICAgaWYgKE1vY2tXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXIq
IGNvbnRyb2xsZXIgPSBtX3NoZWxsLT53ZWJWaWV3SG9zdCgpLT5zcGVlY2hJbnB1dENvbnRyb2xs
ZXJNb2NrKCkpCiAgICAgICAgIGNvbnRyb2xsZXItPmFkZE1vY2tSZWNvZ25pdGlvblJlc3VsdChj
cHBWYXJpYW50VG9XZWJTdHJpbmcoYXJndW1lbnRzWzBdKSwgYXJndW1lbnRzWzFdLnRvRG91Ymxl
KCksIGNwcFZhcmlhbnRUb1dlYlN0cmluZyhhcmd1bWVudHNbMl0pKTsKIH0KIApkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5k
ZXggMmM3ZGY4MDE3NDk4NDkyMjQzYTUyMzlkZTE3MDdjYWJmN2FjZGEyZi4uZTM3ZmY3ZGQ3Mjg1
NDAyZmZiNmQ2NDA1YWM1YWRhMzYwNzJiZmIwOCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC01Miw5ICs1Miw2IEBA
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViR2VvbG9jYXRpb25DbGllbnRNb2NrOwot
Y2xhc3MgV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyOwotY2xhc3MgV2ViU3BlZWNoSW5wdXRDb250
cm9sbGVyTW9jazsKLWNsYXNzIFdlYlNwZWVjaElucHV0TGlzdGVuZXI7CiB9CiAKIG5hbWVzcGFj
ZSB3ZWJraXRfc3VwcG9ydCB7CkBAIC00NDIsNyArNDM5LDYgQEAgcHVibGljOgogICAgIC8vIFRo
ZSBmb2xsb3dpbmcgbWV0aG9kcyBhcmUgbm90IGV4cG9zZWQgdG8gSmF2YVNjcmlwdC4KICAgICB2
b2lkIHNldFdvcmtRdWV1ZUZyb3plbihib29sIGZyb3plbikgeyBtX3dvcmtRdWV1ZS5zZXRGcm96
ZW4oZnJvemVuKTsgfQogCi0gICAgV2ViS2l0OjpXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXIqIHNw
ZWVjaElucHV0Q29udHJvbGxlcihXZWJLaXQ6OldlYlNwZWVjaElucHV0TGlzdGVuZXIqKTsKICAg
ICBib29sIHNob3VsZER1bXBBc0F1ZGlvKCkgY29uc3QgeyByZXR1cm4gbV9kdW1wQXNBdWRpbzsg
fSAKICAgICB2b2lkIHNldFNob3VsZER1bXBBc0F1ZGlvKGJvb2wgZHVtcEFzQXVkaW8pIHsgbV9k
dW1wQXNBdWRpbyA9IGR1bXBBc0F1ZGlvOyB9IAogICAgIGJvb2wgc2hvdWxkRHVtcEFzVGV4dCgp
IHsgcmV0dXJuIG1fZHVtcEFzVGV4dDsgfQpAQCAtNjk5LDggKzY5NSw2IEBAIHByaXZhdGU6CiAK
ICAgICBXZWJLaXQ6OldlYlVSTCBtX3VzZXJTdHlsZVNoZWV0TG9jYXRpb247CiAKLSAgICBPd25Q
dHI8V2ViS2l0OjpXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrPiBtX3NwZWVjaElucHV0Q29u
dHJvbGxlck1vY2s7Ci0KICAgICAvLyBXQVYgYXVkaW8gZGF0YSBpcyBzdG9yZWQgaGVyZS4KICAg
ICBXZWJLaXQ6OldlYkFycmF5QnVmZmVyVmlldyBtX2F1ZGlvRGF0YTsKIApkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlNwZWVjaElucHV0Q29udHJvbGxl
ci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViU3BlZWNoSW5wdXRD
b250cm9sbGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZGE5NTNhZjVlOWNlNjY4ZThkOTg5M2E3ODhmMTc4
MmE2M2IxMjg1Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vTW9ja1dlYlNwZWVjaElucHV0Q29udHJvbGxlci5jcHAKQEAgLTAsMCArMSwxNjcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAor
ICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTW9ja1dlYlNwZWVjaElucHV0Q29u
dHJvbGxlci5oIgorCisjaW5jbHVkZSAiV2ViU3BlZWNoSW5wdXRMaXN0ZW5lci5oIgorI2luY2x1
ZGUgInBsYXRmb3JtL1dlYkNTdHJpbmcuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+
CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK1Bhc3NPd25QdHI8TW9ja1dlYlNwZWVjaElu
cHV0Q29udHJvbGxlcj4gTW9ja1dlYlNwZWVjaElucHV0Q29udHJvbGxlcjo6Y3JlYXRlKFdlYlNw
ZWVjaElucHV0TGlzdGVuZXIqIGxpc3RlbmVyKQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcg
TW9ja1dlYlNwZWVjaElucHV0Q29udHJvbGxlcihsaXN0ZW5lcikpOworfQorCit2b2lkIE1vY2tX
ZWJTcGVlY2hJbnB1dENvbnRyb2xsZXI6OmFkZE1vY2tSZWNvZ25pdGlvblJlc3VsdChjb25zdCBX
ZWJTdHJpbmcmIHJlc3VsdCwgZG91YmxlIGNvbmZpZGVuY2UsIGNvbnN0IFdlYlN0cmluZyYgbGFu
Z3VhZ2UpCit7CisgICAgV2ViU3BlZWNoSW5wdXRSZXN1bHQgcmVzOworICAgIHJlcy5zZXQocmVz
dWx0LCBjb25maWRlbmNlKTsKKworICAgIGlmIChsYW5ndWFnZS5pc0VtcHR5KCkpCisgICAgICAg
IG1fcmVzdWx0c0ZvckVtcHR5TGFuZ3VhZ2UuYXBwZW5kKHJlcyk7CisgICAgZWxzZSB7CisgICAg
ICAgIFN0cmluZyBsYW5nU3RyaW5nID0gU3RyaW5nOjpmcm9tVVRGOChsYW5ndWFnZS51dGY4KCku
ZGF0YSgpKTsKKyAgICAgICAgaWYgKCFtX3JlY29nbml0aW9uUmVzdWx0cy5jb250YWlucyhsYW5n
U3RyaW5nKSkKKyAgICAgICAgICAgIG1fcmVjb2duaXRpb25SZXN1bHRzLnNldChsYW5nU3RyaW5n
LCBWZWN0b3I8V2ViU3BlZWNoSW5wdXRSZXN1bHQ+KCkpOworICAgICAgICBtX3JlY29nbml0aW9u
UmVzdWx0cy5maW5kKGxhbmdTdHJpbmcpLT5zZWNvbmQuYXBwZW5kKHJlcyk7CisgICAgfQorfQor
Cit2b2lkIE1vY2tXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXI6OmNsZWFyUmVzdWx0cygpCit7Cisg
ICAgbV9yZXN1bHRzRm9yRW1wdHlMYW5ndWFnZS5jbGVhcigpOworICAgIG1fcmVjb2duaXRpb25S
ZXN1bHRzLmNsZWFyKCk7Cit9CisKK2Jvb2wgTW9ja1dlYlNwZWVjaElucHV0Q29udHJvbGxlcjo6
c3RhcnRSZWNvZ25pdGlvbihpbnQgcmVxdWVzdElkLCBjb25zdCBXZWJSZWN0JiBlbGVtZW50UmVj
dCwgY29uc3QgV2ViU3RyaW5nJiBsYW5ndWFnZSwgY29uc3QgV2ViU3RyaW5nJiBncmFtbWFyLCBj
b25zdCBXZWJTZWN1cml0eU9yaWdpbiYgb3JpZ2luKQoreworICAgIGlmIChtX3NwZWVjaFRhc2sp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIG1fcmVxdWVzdElkID0gcmVxdWVzdElkOwor
ICAgIG1fcmVjb3JkaW5nID0gdHJ1ZTsKKyAgICBtX2xhbmd1YWdlID0gU3RyaW5nOjpmcm9tVVRG
OChsYW5ndWFnZS51dGY4KCkuZGF0YSgpKTsKKworICAgIG1fc3BlZWNoVGFzayA9IG5ldyBTcGVl
Y2hUYXNrKHRoaXMpOworICAgIHBvc3RUYXNrKG1fc3BlZWNoVGFzayk7CisKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKwordm9pZCBNb2NrV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyOjpjYW5jZWxSZWNv
Z25pdGlvbihpbnQgcmVxdWVzdElkKQoreworICAgIGlmIChtX3NwZWVjaFRhc2spIHsKKyAgICAg
ICAgQVNTRVJUKHJlcXVlc3RJZCA9PSBtX3JlcXVlc3RJZCk7CisKKyAgICAgICAgbV9zcGVlY2hU
YXNrLT5zdG9wKCk7CisgICAgICAgIG1fcmVjb3JkaW5nID0gZmFsc2U7CisgICAgICAgIG1fbGlz
dGVuZXItPmRpZENvbXBsZXRlUmVjb2duaXRpb24obV9yZXF1ZXN0SWQpOworICAgICAgICBtX3Jl
cXVlc3RJZCA9IDA7CisgICAgfQorfQorCit2b2lkIE1vY2tXZWJTcGVlY2hJbnB1dENvbnRyb2xs
ZXI6OnN0b3BSZWNvcmRpbmcoaW50IHJlcXVlc3RJZCkKK3sKKyAgICBBU1NFUlQocmVxdWVzdElk
ID09IG1fcmVxdWVzdElkKTsKKyAgICBpZiAobV9zcGVlY2hUYXNrICYmIG1fcmVjb3JkaW5nKSB7
CisgICAgICAgIG1fc3BlZWNoVGFzay0+c3RvcCgpOworICAgICAgICBzcGVlY2hUYXNrRmlyZWQo
KTsKKyAgICB9Cit9CisKK01vY2tXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXI6Ok1vY2tXZWJTcGVl
Y2hJbnB1dENvbnRyb2xsZXIoV2ViU3BlZWNoSW5wdXRMaXN0ZW5lciogbGlzdGVuZXIpCisgICAg
OiBtX2xpc3RlbmVyKGxpc3RlbmVyKQorICAgICwgbV9zcGVlY2hUYXNrKDApCisgICAgLCBtX3Jl
Y29yZGluZyhmYWxzZSkKKyAgICAsIG1fcmVxdWVzdElkKC0xKQoreworfQorCit2b2lkIE1vY2tX
ZWJTcGVlY2hJbnB1dENvbnRyb2xsZXI6OnNwZWVjaFRhc2tGaXJlZCgpCit7CisgICAgaWYgKG1f
cmVjb3JkaW5nKSB7CisgICAgICAgIG1fcmVjb3JkaW5nID0gZmFsc2U7CisgICAgICAgIG1fbGlz
dGVuZXItPmRpZENvbXBsZXRlUmVjb3JkaW5nKG1fcmVxdWVzdElkKTsKKworICAgICAgICBtX3Nw
ZWVjaFRhc2sgPSBuZXcgU3BlZWNoVGFzayh0aGlzKTsKKyAgICAgICAgcG9zdFRhc2sobV9zcGVl
Y2hUYXNrKTsKKyAgICB9IGVsc2UgeworICAgICAgICBib29sIG5vUmVzdWx0c0ZvdW5kID0gZmFs
c2U7CisgICAgICAgIC8vIFdlIHRha2UgYSBjb3B5IG9mIHRoZSByZXF1ZXN0SWQgaGVyZSBzbyB0
aGF0IGlmIHNjcmlwdHMgZGVzdHJveWVkIHRoZSBpbnB1dCBlbGVtZW50CisgICAgICAgIC8vIGlu
c2lkZSBvbmUgb2YgdGhlIGNhbGxiYWNrcyBiZWxvdywgd2UnbGwgc3RpbGwga25vdyB3aGF0IHRo
aXMgc2Vzc2lvbidzIHJlcXVlc3RJZCB3YXMuCisgICAgICAgIGludCByZXF1ZXN0SWQgPSBtX3Jl
cXVlc3RJZDsKKyAgICAgICAgbV9yZXF1ZXN0SWQgPSAwOworCisgICAgICAgIC8vIEVtcHR5IGxh
bmd1YWdlIGNhc2UgbXVzdCBiZSBoYW5kbGVkIHNlcGFyYXRlbHkgdG8gYXZvaWQgcHJvYmxlbXMg
d2l0aCBIYXNoTWFwIGFuZCBlbXB0eSBrZXlzLgorICAgICAgICBpZiAobV9sYW5ndWFnZS5pc0Vt
cHR5KCkpIHsKKyAgICAgICAgICAgIGlmICghbV9yZXN1bHRzRm9yRW1wdHlMYW5ndWFnZS5pc0Vt
cHR5KCkpCisgICAgICAgICAgICAgICAgbV9saXN0ZW5lci0+c2V0UmVjb2duaXRpb25SZXN1bHQo
cmVxdWVzdElkLCBtX3Jlc3VsdHNGb3JFbXB0eUxhbmd1YWdlKTsKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICBub1Jlc3VsdHNGb3VuZCA9IHRydWU7CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICBpZiAobV9yZWNvZ25pdGlvblJlc3VsdHMuY29udGFpbnMobV9sYW5ndWFn
ZSkpCisgICAgICAgICAgICAgICAgbV9saXN0ZW5lci0+c2V0UmVjb2duaXRpb25SZXN1bHQocmVx
dWVzdElkLCBtX3JlY29nbml0aW9uUmVzdWx0cy5nZXQobV9sYW5ndWFnZSkpOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIG5vUmVzdWx0c0ZvdW5kID0gdHJ1ZTsKKyAgICAgICAg
fQorCisgICAgICAgIGlmIChub1Jlc3VsdHNGb3VuZCkgeworICAgICAgICAgICAgLy8gQ2FuJ3Qg
YXZvaWQgc2V0dGluZyBhIHJlc3VsdCBldmVuIGlmIG5vIHJlc3VsdCB3YXMgc2V0IGZvciB0aGUg
Z2l2ZW4gbGFuZ3VhZ2UuCisgICAgICAgICAgICAvLyBUaGlzIHdvdWxkIGF2b2lkIGdlbmVyYXRp
bmcgdGhlIGV2ZW50cyB1c2VkIHRvIGNoZWNrIHRoZSByZXN1bHRzIGFuZCB0aGUgdGVzdCB3b3Vs
ZCB0aW1lb3V0LgorICAgICAgICAgICAgU3RyaW5nIGVycm9yKCJlcnJvcjogbm8gcmVzdWx0IGZv
dW5kIGZvciBsYW5ndWFnZSAnIik7CisgICAgICAgICAgICBlcnJvci5hcHBlbmQobV9sYW5ndWFn
ZSk7CisgICAgICAgICAgICBlcnJvci5hcHBlbmQoIiciKTsKKworICAgICAgICAgICAgV2ViU3Bl
ZWNoSW5wdXRSZXN1bHQgcmVzOworICAgICAgICAgICAgcmVzLnNldChXZWJTdHJpbmc6OmZyb21V
VEY4KGVycm9yLnV0ZjgoKS5kYXRhKCkpLCAxLjApOworCisgICAgICAgICAgICBWZWN0b3I8V2Vi
U3BlZWNoSW5wdXRSZXN1bHQ+IHJlc3VsdHM7CisgICAgICAgICAgICByZXN1bHRzLmFwcGVuZChy
ZXMpOworCisgICAgICAgICAgICBtX2xpc3RlbmVyLT5zZXRSZWNvZ25pdGlvblJlc3VsdChyZXF1
ZXN0SWQsIHJlc3VsdHMpOworICAgICAgICB9CisgICAgfQorfQorCitNb2NrV2ViU3BlZWNoSW5w
dXRDb250cm9sbGVyOjpTcGVlY2hUYXNrOjpTcGVlY2hUYXNrKE1vY2tXZWJTcGVlY2hJbnB1dENv
bnRyb2xsZXIqIG1vY2spCisgICAgOiBNZXRob2RUYXNrKG1vY2spCit7Cit9CisKK3ZvaWQgTW9j
a1dlYlNwZWVjaElucHV0Q29udHJvbGxlcjo6U3BlZWNoVGFzazo6c3RvcCgpCit7CisgICAgbV9v
YmplY3QtPm1fc3BlZWNoVGFzayA9IDA7CisgICAgY2FuY2VsKCk7CisgICAgZGVsZXRlKHRoaXMp
OworfQorCit2b2lkIE1vY2tXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXI6OlNwZWVjaFRhc2s6OnJ1
bklmVmFsaWQoKQoreworICAgIG1fb2JqZWN0LT5tX3NwZWVjaFRhc2sgPSAwOworICAgIG1fb2Jq
ZWN0LT5zcGVlY2hUYXNrRmlyZWQoKTsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL01vY2tXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXIuaCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45NmFhZGZmMTBhYmM4MThjYzhiYTVmZmUwNDU5YTc1NTcxNzExYzI2Ci0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlNwZWVjaElucHV0
Q29udHJvbGxlci5oCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JT
ICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1vY2tXZWJTcGVl
Y2hJbnB1dENvbnRyb2xsZXJfaAorI2RlZmluZSBNb2NrV2ViU3BlZWNoSW5wdXRDb250cm9sbGVy
X2gKKworI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisKKyNpbmNsdWRlICJUYXNrLmgiCisjaW5j
bHVkZSAiV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiV2ViU3BlZWNoSW5w
dXRSZXN1bHQuaCIKKyNpbmNsdWRlIDx3dGYvQ29tcGlsZXIuaD4KKyNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ0hhc2guaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CitzdHJ1Y3QgV2ViUmVjdDsK
K2NsYXNzIFdlYlNlY3VyaXR5T3JpZ2luOworY2xhc3MgV2ViU3BlZWNoSW5wdXRMaXN0ZW5lcjsK
K2NsYXNzIFdlYlN0cmluZzsKK30KKworY2xhc3MgTW9ja1dlYlNwZWVjaElucHV0Q29udHJvbGxl
ciA6IHB1YmxpYyBXZWJLaXQ6OldlYlNwZWVjaElucHV0Q29udHJvbGxlciB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFBhc3NPd25QdHI8TW9ja1dlYlNwZWVjaElucHV0Q29udHJvbGxlcj4gY3JlYXRl
KFdlYktpdDo6V2ViU3BlZWNoSW5wdXRMaXN0ZW5lciopOworCisgICAgdm9pZCBhZGRNb2NrUmVj
b2duaXRpb25SZXN1bHQoY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmIHJlc3VsdCwgZG91YmxlIGNv
bmZpZGVuY2UsIGNvbnN0IFdlYktpdDo6V2ViU3RyaW5nJiBsYW5ndWFnZSk7CisgICAgdm9pZCBj
bGVhclJlc3VsdHMoKTsKKworICAgIC8vIFdlYlNwZWVjaElucHV0Q29udHJvbGxlciBpbXBsZW1l
bnRhdGlvbjoKKyAgICB2aXJ0dWFsIGJvb2wgc3RhcnRSZWNvZ25pdGlvbihpbnQgcmVxdWVzdElk
LCBjb25zdCBXZWJLaXQ6OldlYlJlY3QmIGVsZW1lbnRSZWN0LCBjb25zdCBXZWJLaXQ6OldlYlN0
cmluZyYgbGFuZ3VhZ2UsIGNvbnN0IFdlYktpdDo6V2ViU3RyaW5nJiBncmFtbWFyLCBjb25zdCBX
ZWJLaXQ6OldlYlNlY3VyaXR5T3JpZ2luJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNh
bmNlbFJlY29nbml0aW9uKGludCByZXF1ZXN0SWQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBzdG9wUmVjb3JkaW5nKGludCByZXF1ZXN0SWQpIE9WRVJSSURFOworCisgICAgVGFza0xpc3Qq
IHRhc2tMaXN0KCkgeyByZXR1cm4gJm1fdGFza0xpc3Q7IH0KKworcHJpdmF0ZToKKyAgICBNb2Nr
V2ViU3BlZWNoSW5wdXRDb250cm9sbGVyKFdlYktpdDo6V2ViU3BlZWNoSW5wdXRMaXN0ZW5lciop
OworICAgIHZvaWQgc3BlZWNoVGFza0ZpcmVkKCk7CisKKyAgICBjbGFzcyBTcGVlY2hUYXNrIDog
cHVibGljIE1ldGhvZFRhc2s8TW9ja1dlYlNwZWVjaElucHV0Q29udHJvbGxlcj4geworICAgIHB1
YmxpYzoKKyAgICAgICAgU3BlZWNoVGFzayhNb2NrV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyKik7
CisgICAgICAgIHZvaWQgc3RvcCgpOworCisgICAgcHJpdmF0ZToKKyAgICAgICAgdmlydHVhbCB2
b2lkIHJ1bklmVmFsaWQoKSBPVkVSUklERTsKKyAgICB9OworCisgICAgV2ViS2l0OjpXZWJTcGVl
Y2hJbnB1dExpc3RlbmVyKiBtX2xpc3RlbmVyOworCisgICAgVGFza0xpc3QgbV90YXNrTGlzdDsK
KyAgICBTcGVlY2hUYXNrKiBtX3NwZWVjaFRhc2s7CisKKyAgICBib29sIG1fcmVjb3JkaW5nOwor
ICAgIGludCBtX3JlcXVlc3RJZDsKKyAgICBTdHJpbmcgbV9sYW5ndWFnZTsKKworICAgIEhhc2hN
YXA8U3RyaW5nLCBWZWN0b3I8V2ViS2l0OjpXZWJTcGVlY2hJbnB1dFJlc3VsdD4gPiBtX3JlY29n
bml0aW9uUmVzdWx0czsKKyAgICBWZWN0b3I8V2ViS2l0OjpXZWJTcGVlY2hJbnB1dFJlc3VsdD4g
bV9yZXN1bHRzRm9yRW1wdHlMYW5ndWFnZTsKK307CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5QVVRf
U1BFRUNIKQorCisjZW5kaWYgLy8gTW9ja1dlYlNwZWVjaElucHV0Q29udHJvbGxlcl9oCmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcAppbmRleCA0NWNiYzFlMWFh
NjRiOTNmNTQ2ZGE3YzYxMmUyYzE5NzQ1YTJhZGJhLi41MDFlNzhiN2E0Yjc5YzFhYjU0MWRhYjMw
MWM1ZGI4ZDg5YzNmNTc0IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9UZXN0U2hlbGwuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RT
aGVsbC5jcHAKQEAgLTUyLDcgKzUyLDYgQEAKICNpbmNsdWRlICJXZWJTY3JpcHRDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiV2ViU2V0dGluZ3MuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJTaXpl
LmgiCi0jaW5jbHVkZSAiV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9jay5oIgogI2luY2x1ZGUg
InBsYXRmb3JtL1dlYlN0cmluZy5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dlYlVSTFJlcXVlc3Qu
aCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJVUkxSZXNwb25zZS5oIgpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCmluZGV4IGY4ZWU0NzIxOWM5Nzk4NzY0
Njk2MjVhZWE5ZGM2NTIxNDliODUxZTEuLjJlNjgwMzAwMzBjOTRjMmIwZWIxMTliNTgzZjdjYjVh
MGQ4NDk1YjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZp
ZXdIb3N0LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9z
dC5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJXZWJWaWV3SG9zdC5oIgogCiAjaW5j
bHVkZSAiTGF5b3V0VGVzdENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJNb2NrV2ViU3BlZWNoSW5w
dXRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiVGVzdE5hdmlnYXRpb25Db250cm9sbGVyLmgiCiAj
aW5jbHVkZSAiVGVzdFNoZWxsLmgiCiAjaW5jbHVkZSAiVGVzdFdlYlBsdWdpbi5oIgpAQCAtNTUs
NyArNTYsNiBAQAogI2luY2x1ZGUgInBsYXRmb3JtL1dlYlJlY3QuaCIKICNpbmNsdWRlICJXZWJT
Y3JlZW5JbmZvLmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViU2l6ZS5oIgotI2luY2x1ZGUgIldl
YlNwZWVjaElucHV0Q29udHJvbGxlck1vY2suaCIKICNpbmNsdWRlICJXZWJTdG9yYWdlTmFtZXNw
YWNlLmgiCiAjaW5jbHVkZSAiV2ViVGV4dENoZWNraW5nQ29tcGxldGlvbi5oIgogI2luY2x1ZGUg
IldlYlRleHRDaGVja2luZ1Jlc3VsdC5oIgpAQCAtNjc4LDcgKzY3OCw3IEBAIFdlYktpdDo6V2Vi
R2VvbG9jYXRpb25DbGllbnRNb2NrKiBXZWJWaWV3SG9zdDo6Z2VvbG9jYXRpb25DbGllbnRNb2Nr
KCkKIFdlYlNwZWVjaElucHV0Q29udHJvbGxlciogV2ViVmlld0hvc3Q6OnNwZWVjaElucHV0Q29u
dHJvbGxlcihXZWJLaXQ6OldlYlNwZWVjaElucHV0TGlzdGVuZXIqIGxpc3RlbmVyKQogewogICAg
IGlmICghbV9zcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrKQotICAgICAgICBtX3NwZWVjaElucHV0
Q29udHJvbGxlck1vY2sgPSBhZG9wdFB0cihXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrOjpj
cmVhdGUobGlzdGVuZXIpKTsKKyAgICAgICAgbV9zcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrID0g
TW9ja1dlYlNwZWVjaElucHV0Q29udHJvbGxlcjo6Y3JlYXRlKGxpc3RlbmVyKTsKICAgICByZXR1
cm4gbV9zcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrLmdldCgpOwogfQogCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaAppbmRleCAxZDA5NTRhZTE4NTVkZjYyZjRh
ODE3YjkzYjYxYTFiNDE4NjU5YWYwLi5lYjIxMzY5MmFiNGUxZWNlOGYzMzRmMDE3N2Q5NGVlZjg3
OGEyYWQxIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3
SG9zdC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgK
QEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogY2xh
c3MgTGF5b3V0VGVzdENvbnRyb2xsZXI7CitjbGFzcyBNb2NrV2ViU3BlZWNoSW5wdXRDb250cm9s
bGVyOwogY2xhc3MgU2tDYW52YXM7CiBjbGFzcyBUZXN0U2hlbGw7CiAKQEAgLTU3LDcgKzU4LDYg
QEAgY2xhc3MgV2ViR2VvbG9jYXRpb25DbGllbnRNb2NrOwogY2xhc3MgV2ViR2VvbG9jYXRpb25T
ZXJ2aWNlTW9jazsKIGNsYXNzIFdlYlNoYXJlZFdvcmtlckNsaWVudDsKIGNsYXNzIFdlYlNwZWVj
aElucHV0Q29udHJvbGxlcjsKLWNsYXNzIFdlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2s7CiBj
bGFzcyBXZWJTcGVlY2hJbnB1dExpc3RlbmVyOwogY2xhc3MgV2ViVVJMOwogY2xhc3MgV2ViVXNl
ck1lZGlhQ2xpZW50TW9jazsKQEAgLTEwOCw3ICsxMDgsNyBAQCBjbGFzcyBXZWJWaWV3SG9zdCA6
IHB1YmxpYyBXZWJLaXQ6OldlYlNwZWxsQ2hlY2tDbGllbnQsIHB1YmxpYyBXZWJLaXQ6OldlYlZp
ZXdDbAogICAgIFdlYktpdDo6V2ViQ29udGV4dE1lbnVEYXRhKiBsYXN0Q29udGV4dE1lbnVEYXRh
KCkgY29uc3Q7CiAgICAgdm9pZCBjbGVhckNvbnRleHRNZW51RGF0YSgpOwogCi0gICAgV2ViS2l0
OjpXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrKiBzcGVlY2hJbnB1dENvbnRyb2xsZXJNb2Nr
KCkgeyByZXR1cm4gbV9zcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrLmdldCgpOyB9CisgICAgTW9j
a1dlYlNwZWVjaElucHV0Q29udHJvbGxlciogc3BlZWNoSW5wdXRDb250cm9sbGVyTW9jaygpIHsg
cmV0dXJuIG1fc3BlZWNoSW5wdXRDb250cm9sbGVyTW9jay5nZXQoKTsgfQogCiAjaWYgRU5BQkxF
KFBPSU5URVJfTE9DSykKICAgICB2b2lkIGRpZExvc2VQb2ludGVyTG9jaygpOwpAQCAtMzgyLDcg
KzM4Miw3IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPFdlYktpdDo6V2ViR2VvbG9jYXRpb25DbGll
bnRNb2NrPiBtX2dlb2xvY2F0aW9uQ2xpZW50TW9jazsKIAogICAgIE93blB0cjxXZWJLaXQ6Oldl
YkRldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jaz4gbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudE1v
Y2s7Ci0gICAgT3duUHRyPFdlYktpdDo6V2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9jaz4gbV9z
cGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrOworICAgIE93blB0cjxNb2NrV2ViU3BlZWNoSW5wdXRD
b250cm9sbGVyPiBtX3NwZWVjaElucHV0Q29udHJvbGxlck1vY2s7CiAKICAgICBPd25QdHI8V2Vi
S2l0OjpXZWJVc2VyTWVkaWFDbGllbnRNb2NrPiBtX3VzZXJNZWRpYUNsaWVudE1vY2s7CiAgICAg
T3duUHRyPHdlYmtpdF9zdXBwb3J0OjpUZXN0TWVkaWFTdHJlYW1DbGllbnQ+IG1fdGVzdE1lZGlh
U3RyZWFtQ2xpZW50Owo=
</data>
<flag name="review"
          id="125260"
          type_id="1"
          status="+"
          setter="fishd"
    />
    <flag name="commit-queue"
          id="125280"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124500</attachid>
            <date>2012-01-29 23:57:12 -0800</date>
            <delta_ts>2012-01-30 01:11:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77083-20120130075710.patch</filename>
            <type>text/plain</type>
            <size>51281</size>
            <attacher name="Hans Wennborg">hans</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MjE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzJlMzc5NGYwYjNiYzBh
ZjUwZWQ0ZDEwMzVlYjJlZWQ3ZmZiNGQ3Ny4uY2JjZmY1MGI1NGVjN2JiZWFiZmNhZmFiYmYzNzE0
YWUzZmFhOWJjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTAxLTI2ICBIYW5z
IFdlbm5ib3JnICA8aGFuc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU3BlZWNoIElucHV0OiBt
b3ZlIE1vY2tTcGVlY2hJbnB1dENsaWVudCBpbnRvIENocm9taXVtIER1bXBSZW5kZXJUcmVlIGlt
cGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03NzA4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlbW92ZSBTcGVlY2hJbnB1dENsaWVudE1vY2suIFRoZSBtb2NrIGlzIG1vdmluZyB0byB0
aGUgRHVtcFJlbmRlclRyZWUKKyAgICAgICAgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLCBqdXN0IHJlZmFjdG9yaW5nLgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlz
dC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAg
ICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9TcGVl
Y2hJbnB1dENsaWVudE1vY2suY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21vY2sv
U3BlZWNoSW5wdXRDbGllbnRNb2NrLmg6IFJlbW92ZWQuCisKIDIwMTItMDEtMjkgIERhbGUgQ3Vy
dGlzICA8ZGFsZWN1cnRpc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUHJlcGFyZSBXZWJDb3Jl
Lmd5cCBmb3IgZmZtcGVnIHNvdXJjZSB0cmFuc2l0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwppbmRleCAzMzdjMzc4NmU1ZTFjZTE5NzJjZTJkYmNmOGI2MTQzYmJhZjhhZTEwLi5mZjA5ZWVi
NjI2ZWM1ODBlOWZhMTQxNjA4MDE1NGM0MGI3ZmVmN2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTAxLTI2ICBIYW5zIFdlbm5ib3JnICA8aGFuc0Bj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgU3BlZWNoIElucHV0OiBtb3ZlIE1vY2tTcGVlY2hJbnB1
dENsaWVudCBpbnRvIENocm9taXVtIER1bXBSZW5kZXJUcmVlIGltcGxlbWVudGF0aW9uCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzA4MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSB0aGUgV2Vi
U3BlZWNoSW5wdXRDb250cm9sbGVyTW9jayBpbnRlcmZhY2UgYW5kIHByb3h5CisgICAgICAgIGlt
cGxlbWVudGF0aW9uLiBUaGUgbW9jayBpcyBtb3ZpbmcgdG8gdGhlIER1bXBSZW5kZXJUcmVlCisg
ICAgICAgIGltcGxlbWVudGF0aW9uIGluc3RlYWQsIHdoaWNoIHJlbW92ZXMgdGhlIG5lZWQgdG8g
ZXhwb3NlIHRoaXMKKyAgICAgICAgaW50ZXJmYWNlIGluIHRoZSBXZWJLaXQgQVBJLgorCisgICAg
ICAgIEFsc28gYWRkIGEgcHJvcGVyIGNvcHkgY29uc3RydWN0b3IgZm9yIFdlYlNwZWVjaElucHV0
UmVzdWx0LgorICAgICAgICBUaGUgZGVmYXVsdCBvbmUgZG9lc24ndCBkbyBhIHByb3BlciBjb3B5
LgorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBwdWJsaWMvV2ViU3BlZWNoSW5w
dXRDb250cm9sbGVyTW9jay5oOiBSZW1vdmVkLgorICAgICAgICAqIHB1YmxpYy9XZWJTcGVlY2hJ
bnB1dFJlc3VsdC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hJbnB1dFJlc3VsdDo6V2Vi
U3BlZWNoSW5wdXRSZXN1bHQpOgorICAgICAgICAoV2ViU3BlZWNoSW5wdXRSZXN1bHQpOgorICAg
ICAgICAqIHNyYy9XZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbC5jcHA6IFJlbW92ZWQu
CisgICAgICAgICogc3JjL1dlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2tJbXBsLmg6IFJlbW92
ZWQuCisgICAgICAgICogc3JjL1dlYlNwZWVjaElucHV0UmVzdWx0LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViU3BlZWNoSW5wdXRSZXN1bHQ6OnNldCk6CisgICAgICAgIChXZWJLaXQpOgorCiAy
MDEyLTAxLTI5ICBOaWNvIFdlYmVyICA8bmljb2xhc3dlYmVyQGdteC5kZT4KIAogICAgICAgICBb
Y2hyb21pdW0vbWFjXSBGaXggdHdvLWZpbmdlciBzY3JvbGxpbmcKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCmluZGV4IDVhZmVlMWVjYjU3MTU1NTZjNGE2YjAzOTQzMzIxMzczNjUxYmJkZDAu
LmMyNGY4MWYyYjE2NzZhNGRhZTg4MGIzODJkYjEyNjI0MGRmNGI5OTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQpAQCAtMzE0NCw4ICszMTQ0LDYgQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2su
aCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVtZU1vY2suY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1Njcm9sbGJhclRoZW1lTW9jay5oIFwK
LQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1NwZWVjaElucHV0Q2xpZW50TW9jay5jcHAg
XAotCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU3BlZWNoSW5wdXRDbGllbnRNb2NrLmgg
XAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQXV0aGVudGljYXRpb25DaGFsbGVu
Z2VCYXNlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9BdXRoZW50aWNh
dGlvbkNoYWxsZW5nZUJhc2UuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9B
dXRoZW50aWNhdGlvbkNsaWVudC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGIzNGM1NDIyOWUxMTk4YjEw
YTgzZGQ3YzM2MDIzOGI3ZDc2ZWEwMDQuLjYyNmJiOGE0OTc1MzIzZjI0NDFlYWYzZjM2ZTkyZDY3
MTM2ZDdjZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtMTEwNiw3ICsxMTA2LDYgQEAgU09VUkNFUyArPSBc
CiAgICAgcGxhdGZvcm0vbW9jay9EZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suY3BwIFwKICAg
ICBwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAgXAogICAgIHBsYXRmb3Jt
L21vY2svR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5jcHAgXAotICAgIHBsYXRmb3JtL21vY2svU3Bl
ZWNoSW5wdXRDbGllbnRNb2NrLmNwcCBcCiAgICAgcGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVt
ZU1vY2suY3BwIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
QmFzZS5jcHAgXAogICAgIHBsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGEuY3BwIFwKQEAgLTIxMDAs
NyArMjA5OSw2IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL21vY2svRGV2aWNlT3JpZW50
YXRpb25DbGllbnRNb2NrLmggXAogICAgIHBsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRN
b2NrLmNwcCBcCiAgICAgcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvblNlcnZpY2VNb2NrLmggXAot
ICAgIHBsYXRmb3JtL21vY2svU3BlZWNoSW5wdXRDbGllbnRNb2NrLmggXAogICAgIHBsYXRmb3Jt
L21vY2svU2Nyb2xsYmFyVGhlbWVNb2NrLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1h
cEltYWdlLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmggXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CmluZGV4IDBkNGQyODA4NDY1ZjEyNWM3ZDJkZjJlNDhkZjAwNTc1NGFkZjAzN2IuLjEzMDlkZTFk
ZGUyZjMzZTA4ZmI0NzMwMTRkODE4ODMwNTNlYzJkNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTM4
NTIsOCArMzg1Miw2IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvblNl
cnZpY2VNb2NrLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21vY2svU2Nyb2xsYmFyVGhlbWVN
b2NrLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVtZU1vY2su
aCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vbW9jay9TcGVlY2hJbnB1dENsaWVudE1vY2suY3Bw
JywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9tb2NrL1NwZWVjaElucHV0Q2xpZW50TW9jay5oJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFz
ZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGEuY3BwJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhLmgnLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA4ZTJlODYxZGU4YTZiM2RjYTU4
ZmUyNWJiMGY0ZTczNDYxZTEzYjEzLi41ZTMwMjQ2ZjE1MTczNDdjNjhkNTZkYjY3OTIyOWU0ZjJm
NzY3MjMwIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agpAQCAtMzI2MjQsMTQgKzMyNjI0LDYgQEAKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9y
bVxtb2NrXFNjcm9sbGJhclRoZW1lTW9jay5oIgogCQkJCQk+CiAJCQkJPC9GaWxlPgotCQkJCTxG
aWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cbW9ja1xTcGVlY2hJbnB1dENsaWVu
dE1vY2suY3BwIgotCQkJCQk+Ci0JCQkJPC9GaWxlPgotCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZl
UGF0aD0iLi5ccGxhdGZvcm1cbW9ja1xTcGVlY2hJbnB1dENsaWVudE1vY2suaCIKLQkJCQkJPgot
CQkJCTwvRmlsZT4KIAkJCTwvRmlsdGVyPgogCQk8L0ZpbHRlcj4KIAkJPEZpbHRlcgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDEx
NmRiYjc4ZGFmN2M1MTZjODU0OGNhOTA1ZTBiOGNmZjhiNThlNGQuLmVlMDZkZTI4ZjU4YTQxNTYw
YmE2NzQwYjljYTRjODk3MTg5ZTU5OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE3OTcsOCArMTc5Nyw2IEBACiAJCTcyNjI2
RTAyMEVGMDIyRkUwMEEwN0UyMCAvKiBGb250RmFzdFBhdGguY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI2MjZFMDEwRUYwMjJGRTAwQTA3RTIwIC8q
IEZvbnRGYXN0UGF0aC5jcHAgKi87IH07CiAJCTc1MEQwMjkzMTFEMEU3RjMwMEJEMUIyNyAvKiBS
ZW5kZXJJbnB1dFNwZWVjaC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3NTBEMDI5MTExRDBFN0YzMDBCRDFCMjcgLyogUmVuZGVySW5wdXRTcGVlY2gu
Y3BwICovOyB9OwogCQk3NTBEMDI5NDExRDBFN0YzMDBCRDFCMjcgLyogUmVuZGVySW5wdXRTcGVl
Y2guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1MEQw
MjkyMTFEMEU3RjMwMEJEMUIyNyAvKiBSZW5kZXJJbnB1dFNwZWVjaC5oICovOyB9OwotCQk3NTM1
QkM5NDEyMDIwQ0ZGMDAzN0VDNDUgLyogU3BlZWNoSW5wdXRDbGllbnRNb2NrLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1MzVCQzkyMTIwMjBDRkYw
MDM3RUM0NSAvKiBTcGVlY2hJbnB1dENsaWVudE1vY2suY3BwICovOyB9OwotCQk3NTM1QkM5NTEy
MDIwQ0ZGMDAzN0VDNDUgLyogU3BlZWNoSW5wdXRDbGllbnRNb2NrLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTM1QkM5MzEyMDIwQ0ZGMDAzN0VDNDUg
LyogU3BlZWNoSW5wdXRDbGllbnRNb2NrLmggKi87IH07CiAJCTc1NDEzM0E4MTAyRTAwRTgwMDA3
NUQwMCAvKiBJbnNwZWN0b3JUaW1lbGluZUFnZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTQxMzNBNzEwMkUwMEU4MDAwNzVEMDAgLyogSW5zcGVj
dG9yVGltZWxpbmVBZ2VudC5oICovOyB9OwogCQk3NTQxMzNBQTEwMkUwMEY0MDAwNzVEMDAgLyog
SW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3NTQxMzNBOTEwMkUwMEY0MDAwNzVEMDAgLyogSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudC5jcHAgKi87IH07CiAJCTc1NDE1QUZEMTI5NThENUUwMDNBRDY2OSAvKiBTcGVl
Y2hJbnB1dEV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3NTQxNUFGODEyOTU4RDVFMDAzQUQ2NjkgLyogU3BlZWNoSW5wdXRFdmVudC5oICovOyB9
OwpAQCAtODY2MCw4ICs4NjU4LDYgQEAKIAkJNzI2MjZFMDEwRUYwMjJGRTAwQTA3RTIwIC8qIEZv
bnRGYXN0UGF0aC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb250
RmFzdFBhdGguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTBEMDI5MTExRDBF
N0YzMDBCRDFCMjcgLyogUmVuZGVySW5wdXRTcGVlY2guY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVySW5wdXRTcGVlY2guY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3NTBEMDI5MjExRDBFN0YzMDBCRDFCMjcgLyogUmVuZGVySW5wdXRTcGVl
Y2guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVySW5wdXRTcGVlY2gu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNzUzNUJDOTIxMjAyMENGRjAwMzdFQzQ1
IC8qIFNwZWVjaElucHV0Q2xpZW50TW9jay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBTcGVlY2hJbnB1dENsaWVudE1vY2suY3BwOyBwYXRoID0gbW9jay9TcGVlY2hJ
bnB1dENsaWVudE1vY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3NTM1QkM5
MzEyMDIwQ0ZGMDAzN0VDNDUgLyogU3BlZWNoSW5wdXRDbGllbnRNb2NrLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFNwZWVjaElucHV0Q2xpZW50TW9jay5oOyBwYXRoID0gbW9j
ay9TcGVlY2hJbnB1dENsaWVudE1vY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NzU0MTMzQTcxMDJFMDBFODAwMDc1RDAwIC8qIEluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTQxMzNBOTEwMkUwMEY0MDAwNzVEMDAgLyog
SW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBJbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNzU0MTVBRjgxMjk1OEQ1RTAwM0FENjY5IC8qIFNwZWVjaElucHV0RXZlbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoSW5wdXRFdmVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ3NTEsOCArMTQ3NDcsNiBAQAogCQkJCTA1MkJG
Q0VBMTI4QUJGMjEwMEZEMzM4RCAvKiBHZW9sb2NhdGlvbkNsaWVudE1vY2suaCAqLywKIAkJCQkw
RkU3MTQwMzE0MjE3MEI4MDBEQjMzQkEgLyogU2Nyb2xsYmFyVGhlbWVNb2NrLmNwcCAqLywKIAkJ
CQkwRkU3MTQwNDE0MjE3MEI4MDBEQjMzQkEgLyogU2Nyb2xsYmFyVGhlbWVNb2NrLmggKi8sCi0J
CQkJNzUzNUJDOTIxMjAyMENGRjAwMzdFQzQ1IC8qIFNwZWVjaElucHV0Q2xpZW50TW9jay5jcHAg
Ki8sCi0JCQkJNzUzNUJDOTMxMjAyMENGRjAwMzdFQzQ1IC8qIFNwZWVjaElucHV0Q2xpZW50TW9j
ay5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBtb2NrOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKQEAgLTIzNTIwLDcgKzIzNTE0LDYgQEAKIAkJCQk2MjZDREUwRjExNDA0MjRDMDAxRTVBNjgg
LyogU3BhdGlhbE5hdmlnYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTc1NzhGOTBDMTFEREYy
NjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzU3OEY5MEQx
MURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0Q2xpZW50LmggaW4gSGVhZGVycyAqLywKLQkJ
CQk3NTM1QkM5NTEyMDIwQ0ZGMDAzN0VDNDUgLyogU3BlZWNoSW5wdXRDbGllbnRNb2NrLmggaW4g
SGVhZGVycyAqLywKIAkJCQk3NTQxNUFGRDEyOTU4RDVFMDAzQUQ2NjkgLyogU3BlZWNoSW5wdXRF
dmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzU3OEY5MjAxMUU0RTMyODAwRDkzM0M1IC8qIFNw
ZWVjaElucHV0TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTc1NDE1QjAwMTI5NThENUUw
MDNBRDY2OSAvKiBTcGVlY2hJbnB1dFJlc3VsdExpc3QuaCBpbiBIZWFkZXJzICovLApAQCAtMjY1
NzcsNyArMjY1NzAsNiBAQAogCQkJCUQwMUEyN0FEMTBDOUJGRDgwMDAyNkE0MiAvKiBTcGFjZVNw
bGl0U3RyaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTYyNkNERTBFMTE0MDQyNEMwMDFFNUE2
OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3NTc4RjkwQjEx
RERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNzUz
NUJDOTQxMjAyMENGRjAwMzdFQzQ1IC8qIFNwZWVjaElucHV0Q2xpZW50TW9jay5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk3NTQxNUMyODEyOUE5OTIwMDAzQUQ2NjkgLyogU3BlZWNoSW5wdXRFdmVu
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3NTg5NzhFQzEyNzA5MEQ2MDA3NkQ1QTkgLyogU3Bl
ZWNoSW5wdXRSZXN1bHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzU0MTVDMjkxMjlBOTkyMDAw
M0FENjY5IC8qIFNwZWVjaElucHV0UmVzdWx0TGlzdC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU3BlZWNoSW5wdXRDbGllbnRNb2Nr
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU3BlZWNoSW5wdXRDbGllbnRNb2Nr
LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWFhMzExM2RjMDA2M2JlYTI2ZDRi
MTU4ZDc0MDQ5MTAxYjkzYmE4Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1NwZWVjaElucHV0Q2xpZW50
TW9jay5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24u
Ci0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJTcGVlY2hJbnB1dENsaWVudE1vY2suaCIKLQotI2lmIEVOQUJMRShJTlBV
VF9TUEVFQ0gpCi0KLSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgotI2luY2x1ZGUgIlNwZWVj
aElucHV0TGlzdGVuZXIuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1TcGVlY2hJbnB1dENs
aWVudE1vY2s6OlNwZWVjaElucHV0Q2xpZW50TW9jaygpCi0gICAgOiBtX3JlY29yZGluZyhmYWxz
ZSkKLSAgICAsIG1fdGltZXIodGhpcywgJlNwZWVjaElucHV0Q2xpZW50TW9jazo6dGltZXJGaXJl
ZCkKLSAgICAsIG1fbGlzdGVuZXIoMCkKLSAgICAsIG1fcmVxdWVzdElkKDApCi17Ci19Ci0KLXZv
aWQgU3BlZWNoSW5wdXRDbGllbnRNb2NrOjpzZXRMaXN0ZW5lcihTcGVlY2hJbnB1dExpc3RlbmVy
KiBsaXN0ZW5lcikKLXsKLSAgICBtX2xpc3RlbmVyID0gbGlzdGVuZXI7Ci19Ci0KLWJvb2wgU3Bl
ZWNoSW5wdXRDbGllbnRNb2NrOjpzdGFydFJlY29nbml0aW9uKGludCByZXF1ZXN0SWQsIGNvbnN0
IEludFJlY3QmIGVsZW1lbnRSZWN0LCBjb25zdCBBdG9taWNTdHJpbmcmIGxhbmd1YWdlLCBjb25z
dCBTdHJpbmcmIGdyYW1tYXIsIFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCi17Ci0gICAgaWYgKG1f
dGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIG1fcmVxdWVzdElk
ID0gcmVxdWVzdElkOwotICAgIG1fcmVjb3JkaW5nID0gdHJ1ZTsKLSAgICBtX2xhbmd1YWdlID0g
bGFuZ3VhZ2U7Ci0gICAgbV90aW1lci5zdGFydE9uZVNob3QoMCk7Ci0gICAgcmV0dXJuIHRydWU7
Ci19Ci0KLXZvaWQgU3BlZWNoSW5wdXRDbGllbnRNb2NrOjpzdG9wUmVjb3JkaW5nKGludCByZXF1
ZXN0SWQpCi17Ci0gICAgQVNTRVJUKHJlcXVlc3RJZCA9PSBtX3JlcXVlc3RJZCk7Ci0gICAgaWYg
KG1fdGltZXIuaXNBY3RpdmUoKSAmJiBtX3JlY29yZGluZykgewotICAgICAgICBtX3RpbWVyLnN0
b3AoKTsKLSAgICAgICAgdGltZXJGaXJlZCgmbV90aW1lcik7Ci0gICAgfQotfQotCi12b2lkIFNw
ZWVjaElucHV0Q2xpZW50TW9jazo6Y2FuY2VsUmVjb2duaXRpb24oaW50IHJlcXVlc3RJZCkKLXsK
LSAgICBpZiAobV90aW1lci5pc0FjdGl2ZSgpKSB7Ci0gICAgICAgIEFTU0VSVChyZXF1ZXN0SWQg
PT0gbV9yZXF1ZXN0SWQpOwotICAgICAgICBtX3RpbWVyLnN0b3AoKTsKLSAgICAgICAgbV9yZWNv
cmRpbmcgPSBmYWxzZTsKLSAgICAgICAgbV9saXN0ZW5lci0+ZGlkQ29tcGxldGVSZWNvZ25pdGlv
bihtX3JlcXVlc3RJZCk7Ci0gICAgICAgIG1fcmVxdWVzdElkID0gMDsKLSAgICB9Ci19Ci0KLXZv
aWQgU3BlZWNoSW5wdXRDbGllbnRNb2NrOjphZGRSZWNvZ25pdGlvblJlc3VsdChjb25zdCBTdHJp
bmcmIHJlc3VsdCwgZG91YmxlIGNvbmZpZGVuY2UsIGNvbnN0IEF0b21pY1N0cmluZyYgbGFuZ3Vh
Z2UpCi17Ci0gICAgaWYgKGxhbmd1YWdlLmlzRW1wdHkoKSkKLSAgICAgICAgbV9yZXN1bHRzRm9y
RW1wdHlMYW5ndWFnZS5hcHBlbmQoU3BlZWNoSW5wdXRSZXN1bHQ6OmNyZWF0ZShyZXN1bHQsIGNv
bmZpZGVuY2UpKTsKLSAgICBlbHNlIHsKLSAgICAgICAgaWYgKCFtX3JlY29nbml0aW9uUmVzdWx0
cy5jb250YWlucyhsYW5ndWFnZSkpCi0gICAgICAgICAgICBtX3JlY29nbml0aW9uUmVzdWx0cy5z
ZXQobGFuZ3VhZ2UsIFNwZWVjaElucHV0UmVzdWx0QXJyYXkoKSk7Ci0gICAgICAgIG1fcmVjb2du
aXRpb25SZXN1bHRzLmZpbmQobGFuZ3VhZ2UpLT5zZWNvbmQuYXBwZW5kKFNwZWVjaElucHV0UmVz
dWx0OjpjcmVhdGUocmVzdWx0LCBjb25maWRlbmNlKSk7Ci0gICAgfQotfQotCi12b2lkIFNwZWVj
aElucHV0Q2xpZW50TW9jazo6Y2xlYXJSZXN1bHRzKCkKLXsKLSAgICBtX3Jlc3VsdHNGb3JFbXB0
eUxhbmd1YWdlLmNsZWFyKCk7Ci0gICAgbV9yZWNvZ25pdGlvblJlc3VsdHMuY2xlYXIoKTsKLX0K
LQotdm9pZCBTcGVlY2hJbnB1dENsaWVudE1vY2s6OnRpbWVyRmlyZWQoV2ViQ29yZTo6VGltZXI8
U3BlZWNoSW5wdXRDbGllbnRNb2NrPiopCi17Ci0gICAgaWYgKG1fcmVjb3JkaW5nKSB7Ci0gICAg
ICAgIG1fcmVjb3JkaW5nID0gZmFsc2U7Ci0gICAgICAgIG1fbGlzdGVuZXItPmRpZENvbXBsZXRl
UmVjb3JkaW5nKG1fcmVxdWVzdElkKTsKLSAgICAgICAgbV90aW1lci5zdGFydE9uZVNob3QoMCk7
Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgYm9vbCBub1Jlc3VsdHNGb3VuZCA9IGZhbHNlOwotCi0g
ICAgICAgIC8vIFdlIHRha2UgYSBjb3B5IG9mIHRoZSByZXF1ZXN0SWQgaGVyZSBzbyB0aGF0IGlm
IHNjcmlwdHMgZGVzdHJveWVkIHRoZSBpbnB1dCBlbGVtZW50Ci0gICAgICAgIC8vIGluc2lkZSBv
bmUgb2YgdGhlIGNhbGxiYWNrcyBiZWxvdywgd2UnbGwgc3RpbGwga25vdyB3aGF0IHRoaXMgc2Vz
c2lvbidzIHJlcXVlc3RJZCB3YXMuCi0gICAgICAgIGludCByZXF1ZXN0SWQgPSBtX3JlcXVlc3RJ
ZDsKLSAgICAgICAgbV9yZXF1ZXN0SWQgPSAwOwotCi0gICAgICAgIC8vIEVtcHR5IGxhbmd1YWdl
IGNhc2UgbXVzdCBiZSBoYW5kbGVkIHNlcGFyYXRlbHkgdG8gYXZvaWQgcHJvYmxlbXMgd2l0aCBI
YXNoTWFwIGFuZCBlbXB0eSBrZXlzLgotICAgICAgICBpZiAobV9sYW5ndWFnZS5pc0VtcHR5KCkp
IHsKLSAgICAgICAgICAgIGlmICghbV9yZXN1bHRzRm9yRW1wdHlMYW5ndWFnZS5pc0VtcHR5KCkp
Ci0gICAgICAgICAgICAgICAgbV9saXN0ZW5lci0+c2V0UmVjb2duaXRpb25SZXN1bHQocmVxdWVz
dElkLCBtX3Jlc3VsdHNGb3JFbXB0eUxhbmd1YWdlKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICBub1Jlc3VsdHNGb3VuZCA9IHRydWU7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICBpZiAobV9yZWNvZ25pdGlvblJlc3VsdHMuY29udGFpbnMobV9sYW5ndWFnZSkpCi0g
ICAgICAgICAgICAgICAgbV9saXN0ZW5lci0+c2V0UmVjb2duaXRpb25SZXN1bHQocmVxdWVzdElk
LCBtX3JlY29nbml0aW9uUmVzdWx0cy5nZXQobV9sYW5ndWFnZSkpOwotICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgIG5vUmVzdWx0c0ZvdW5kID0gdHJ1ZTsKLSAgICAgICAgfQotCi0g
ICAgICAgIGlmIChub1Jlc3VsdHNGb3VuZCkgewotICAgICAgICAgICAgLy8gQ2FuJ3QgYXZvaWQg
c2V0dGluZyBhIHJlc3VsdCBldmVuIGlmIG5vIHJlc3VsdCB3YXMgc2V0IGZvciB0aGUgZ2l2ZW4g
bGFuZ3VhZ2UuCi0gICAgICAgICAgICAvLyBUaGlzIHdvdWxkIGF2b2lkIGdlbmVyYXRpbmcgdGhl
IGV2ZW50cyB1c2VkIHRvIGNoZWNrIHRoZSByZXN1bHRzIGFuZCB0aGUgdGVzdCB3b3VsZCB0aW1l
b3V0LgotICAgICAgICAgICAgU3RyaW5nIGVycm9yKCJlcnJvcjogbm8gcmVzdWx0IGZvdW5kIGZv
ciBsYW5ndWFnZSAnIik7Ci0gICAgICAgICAgICBlcnJvci5hcHBlbmQobV9sYW5ndWFnZSk7Ci0g
ICAgICAgICAgICBlcnJvci5hcHBlbmQoIiciKTsKLSAgICAgICAgICAgIFNwZWVjaElucHV0UmVz
dWx0QXJyYXkgcmVzdWx0czsKLSAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKFNwZWVjaElucHV0
UmVzdWx0OjpjcmVhdGUoZXJyb3IsIDEuMCkpOwotICAgICAgICAgICAgbV9saXN0ZW5lci0+c2V0
UmVjb2duaXRpb25SZXN1bHQocmVxdWVzdElkLCByZXN1bHRzKTsKLSAgICAgICAgfQotCi0gICAg
ICAgIG1fbGlzdGVuZXItPmRpZENvbXBsZXRlUmVjb2duaXRpb24ocmVxdWVzdElkKTsKLSAgICB9
Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9T
UEVFQ0gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1NwZWVjaElu
cHV0Q2xpZW50TW9jay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TcGVlY2hJbnB1
dENsaWVudE1vY2suaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGUxMzI0MmFjYjRi
NmY5MTY0ZGVlZTg1NWQ1NjM2OGJkNDllYzUzNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1NwZWVjaElu
cHV0Q2xpZW50TW9jay5oCisrKyAvZGV2L251bGwKQEAgLTEsNzggKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmli
dXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
Ci0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgU3Bl
ZWNoSW5wdXRDbGllbnRNb2NrX2gKLSNkZWZpbmUgU3BlZWNoSW5wdXRDbGllbnRNb2NrX2gKLQot
I2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCi0jaW5jbHVkZSAiU3BlZWNoSW5wdXRDbGllbnQu
aCIKLSNpbmNsdWRlICJTcGVlY2hJbnB1dFJlc3VsdC5oIgotI2luY2x1ZGUgIlRpbWVyLmgiCi0j
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+
Ci0KLSNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNs
YXNzIFNwZWVjaElucHV0TGlzdGVuZXI7Ci0KLS8vIFByb3ZpZGVzIGEgbW9jayBvYmplY3QgZm9y
IHRoZSBzcGVlY2ggaW5wdXQgZW1iZWRkZXIgQVBJIGNhbGxlZCBieSBXZWJDb3JlLgotY2xhc3Mg
U3BlZWNoSW5wdXRDbGllbnRNb2NrIDogcHVibGljIFNwZWVjaElucHV0Q2xpZW50IHsKLXB1Ymxp
YzoKLSAgICBTcGVlY2hJbnB1dENsaWVudE1vY2soKTsKLQotICAgIHZvaWQgYWRkUmVjb2duaXRp
b25SZXN1bHQoY29uc3QgU3RyaW5nJiByZXN1bHQsIGRvdWJsZSBjb25maWRlbmNlLCBjb25zdCBB
dG9taWNTdHJpbmcmIGxhbmd1YWdlKTsKLSAgICB2b2lkIGNsZWFyUmVzdWx0cygpOwotCi0gICAg
Ly8gU3BlZWNoSW5wdXRDbGllbnQgbWV0aG9kcy4KLSAgICB2b2lkIHNldExpc3RlbmVyKFNwZWVj
aElucHV0TGlzdGVuZXIqKTsKLSAgICBib29sIHN0YXJ0UmVjb2duaXRpb24oaW50IHJlcXVlc3RJ
ZCwgY29uc3QgSW50UmVjdCYgZWxlbWVudFJlY3QsIGNvbnN0IEF0b21pY1N0cmluZyYgbGFuZ3Vh
Z2UsIGNvbnN0IFN0cmluZyYgZ3JhbW1hciwgU2VjdXJpdHlPcmlnaW4qKTsKLSAgICB2b2lkIHN0
b3BSZWNvcmRpbmcoaW50KTsKLSAgICB2b2lkIGNhbmNlbFJlY29nbml0aW9uKGludCk7Ci0KLXBy
aXZhdGU6Ci0gICAgdm9pZCB0aW1lckZpcmVkKFRpbWVyPFNwZWVjaElucHV0Q2xpZW50TW9jaz4q
KTsKLQotICAgIGJvb2wgbV9yZWNvcmRpbmc7Ci0gICAgVGltZXI8U3BlZWNoSW5wdXRDbGllbnRN
b2NrPiBtX3RpbWVyOwotICAgIFNwZWVjaElucHV0TGlzdGVuZXIqIG1fbGlzdGVuZXI7Ci0gICAg
aW50IG1fcmVxdWVzdElkOwotCi0gICAgSGFzaE1hcDxTdHJpbmcsIFNwZWVjaElucHV0UmVzdWx0
QXJyYXk+IG1fcmVjb2duaXRpb25SZXN1bHRzOwotICAgIEF0b21pY1N0cmluZyBtX2xhbmd1YWdl
OwotICAgIFNwZWVjaElucHV0UmVzdWx0QXJyYXkgbV9yZXN1bHRzRm9yRW1wdHlMYW5ndWFnZTsK
LX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9T
UEVFQ0gpCi0KLSNlbmRpZiAvLyBTcGVlY2hJbnB1dENsaWVudE1vY2tfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9XZWJLaXQuZ3lwCmluZGV4IDJkOTJiYTU2YzA4NjRhNTJjN2QwYzYyMjdkZDU0ZmNkN2YyMzU1
YzUuLjcxZTU3ZTNiZGE4Y2Y2MzZjMjZmZWI0NjNmOTJkMjA5Yjc1MzJhNzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL1dlYktpdC5neXAKQEAgLTI0NSw3ICsyNDUsNiBAQAogICAgICAgICAgICAgICAgICdw
dWJsaWMvV2ViU29ja2V0LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViU29ja2V0Q2xp
ZW50LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViU3BlZWNoSW5wdXRDb250cm9sbGVy
LmgnLAotICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9j
ay5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlNwZWVjaElucHV0TGlzdGVuZXIuaCcs
CiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJTcGVlY2hJbnB1dFJlc3VsdC5oJywKICAgICAg
ICAgICAgICAgICAncHVibGljL1dlYlNwZWxsQ2hlY2tDbGllbnQuaCcsCkBAIC02NDIsOCArNjQx
LDYgQEAKICAgICAgICAgICAgICAgICAnc3JjL1dlYlNvY2tldEltcGwuaCcsCiAgICAgICAgICAg
ICAgICAgJ3NyYy9XZWJTb2xpZENvbG9yTGF5ZXIuY3BwJywKICAgICAgICAgICAgICAgICAnc3Jj
L1dlYlNvbGlkQ29sb3JMYXllckltcGwuY3BwJywKLSAgICAgICAgICAgICAgICAnc3JjL1dlYlNw
ZWVjaElucHV0Q29udHJvbGxlck1vY2tJbXBsLmNwcCcsCi0gICAgICAgICAgICAgICAgJ3NyYy9X
ZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3Jj
L1dlYlNwZWVjaElucHV0UmVzdWx0LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJTdG9y
YWdlQXJlYUltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlN0b3JhZ2VBcmVhSW1w
bC5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNwZWVj
aElucHV0Q29udHJvbGxlck1vY2suaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YlNwZWVjaElucHV0Q29udHJvbGxlck1vY2suaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZDRlNTQzZjAyYzMxNjEwNGE0NWIyNThiMmVlMWJhODU0ZjM3YWRhYS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrLmgKKysrIC9kZXYvbnVsbApAQCAt
MSw1NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBt
ZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2lmbmRlZiBXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrX2gKLSNkZWZp
bmUgV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9ja19oCi0KLSNpbmNsdWRlICJXZWJTcGVlY2hJ
bnB1dENvbnRyb2xsZXIuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYlN0cmlu
ZzsKLWNsYXNzIFdlYlNwZWVjaElucHV0TGlzdGVuZXI7Ci0KLWNsYXNzIFdlYlNwZWVjaElucHV0
Q29udHJvbGxlck1vY2sgOiBwdWJsaWMgV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyIHsKLXB1Ymxp
YzoKLSAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2Nr
KiBjcmVhdGUoCi0gICAgICAgIFdlYlNwZWVjaElucHV0TGlzdGVuZXIqIGxpc3RlbmVyKTsKLSAg
ICB2aXJ0dWFsIH5XZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrKCkgeyB9Ci0KLSAgICB2aXJ0
dWFsIHZvaWQgYWRkTW9ja1JlY29nbml0aW9uUmVzdWx0KGNvbnN0IFdlYlN0cmluZyYgcmVzdWx0
LCBkb3VibGUgY29uZmlkZW5jZSwgY29uc3QgV2ViU3RyaW5nJiBsYW5ndWFnZSkgPSAwOwotCi0g
ICAgdmlydHVhbCB2b2lkIGNsZWFyUmVzdWx0cygpID0gMDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYktpdAotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlNwZWVjaElucHV0UmVzdWx0LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJTcGVlY2hJbnB1dFJlc3VsdC5oCmluZGV4IGEzMTZmZDIzMGY2YzIwMDJmMTlkNzQ1MGJi
YjMzMjEyMTYyMmQzODIuLjhkMDJhNDllOGQwNzk5Nzc1MjE3NDMxZGRhMmIzZTA3ODMyMWRmZWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNwZWVjaElucHV0
UmVzdWx0LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU3BlZWNoSW5w
dXRSZXN1bHQuaApAQCAtNDIsOSArNDIsMTEgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBX
ZWJTcGVlY2hJbnB1dFJlc3VsdCB7CiBwdWJsaWM6CiAgICAgV2ViU3BlZWNoSW5wdXRSZXN1bHQo
KSB7IH0KKyAgICBXZWJTcGVlY2hJbnB1dFJlc3VsdChjb25zdCBXZWJTcGVlY2hJbnB1dFJlc3Vs
dCYgb3RoZXIpIHsgYXNzaWduKG90aGVyKTsgfQogICAgIH5XZWJTcGVlY2hJbnB1dFJlc3VsdCgp
IHsgcmVzZXQoKTsgfQogCiAgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldChjb25zdCBXZWJTdHJp
bmcmIHV0dGVyYW5jZSwgZG91YmxlIGNvbmZpZGVuY2UpOworICAgIFdFQktJVF9FWFBPUlQgdm9p
ZCBhc3NpZ24oY29uc3QgV2ViU3BlZWNoSW5wdXRSZXN1bHQmIG90aGVyKTsKICAgICBXRUJLSVRf
RVhQT1JUIHZvaWQgcmVzZXQoKTsKIAogI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU3BlZWNoSW5wdXRDb250cm9sbGVy
TW9ja0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU3BlZWNoSW5wdXRD
b250cm9sbGVyTW9ja0ltcGwuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZjFm
MDc0NTczYzM3NDdmYzAzMzI4ZmVkYjFkMzY5MjEyNzZkZDQ2Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlNwZWVjaElucHV0Q29udHJvbGxlck1vY2tJbXBsLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEx
NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6
Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
LSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYlNwZWVjaElucHV0Q29u
dHJvbGxlck1vY2tJbXBsLmgiCi0KLSNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQotCi0jaW5jbHVk
ZSAiUGxhdGZvcm1TdHJpbmcuaCIKLSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgotI2luY2x1
ZGUgIlNwZWVjaElucHV0Q2xpZW50TW9jay5oIgotI2luY2x1ZGUgInBsYXRmb3JtL1dlYlJlY3Qu
aCIKLSNpbmNsdWRlICJXZWJTZWN1cml0eU9yaWdpbi5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3du
UHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1XZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJN
b2NrKiBXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrOjpjcmVhdGUoV2ViU3BlZWNoSW5wdXRM
aXN0ZW5lciogbGlzdGVuZXIpCi17Ci0gICAgcmV0dXJuIG5ldyBXZWJTcGVlY2hJbnB1dENvbnRy
b2xsZXJNb2NrSW1wbChsaXN0ZW5lcik7Ci19Ci0KLVdlYlNwZWVjaElucHV0Q29udHJvbGxlck1v
Y2tJbXBsOjpXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbCgKLSAgICBXZWJTcGVlY2hJ
bnB1dExpc3RlbmVyKiBsaXN0ZW5lcikKLSAgICA6IG1fd2ViY29yZU1vY2soYWRvcHRQdHIobmV3
IFdlYkNvcmU6OlNwZWVjaElucHV0Q2xpZW50TW9jaygpKSkKLSAgICAsIG1fbGlzdGVuZXIobGlz
dGVuZXIpCi17Ci0gICAgbV93ZWJjb3JlTW9jay0+c2V0TGlzdGVuZXIodGhpcyk7Ci19Ci0KLVdl
YlNwZWVjaElucHV0Q29udHJvbGxlck1vY2tJbXBsOjp+V2ViU3BlZWNoSW5wdXRDb250cm9sbGVy
TW9ja0ltcGwoKQotewotICAgIG1fd2ViY29yZU1vY2stPnNldExpc3RlbmVyKDApOwotfQotCi12
b2lkIFdlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2tJbXBsOjphZGRNb2NrUmVjb2duaXRpb25S
ZXN1bHQoY29uc3QgV2ViU3RyaW5nJiByZXN1bHQsIGRvdWJsZSBjb25maWRlbmNlLCBjb25zdCBX
ZWJTdHJpbmcgJmxhbmd1YWdlKQotewotICAgIG1fd2ViY29yZU1vY2stPmFkZFJlY29nbml0aW9u
UmVzdWx0KHJlc3VsdCwgY29uZmlkZW5jZSwgbGFuZ3VhZ2UpOwotfQotCi12b2lkIFdlYlNwZWVj
aElucHV0Q29udHJvbGxlck1vY2tJbXBsOjpjbGVhclJlc3VsdHMoKQotewotICAgIG1fd2ViY29y
ZU1vY2stPmNsZWFyUmVzdWx0cygpOwotfQotCi12b2lkIFdlYlNwZWVjaElucHV0Q29udHJvbGxl
ck1vY2tJbXBsOjpkaWRDb21wbGV0ZVJlY29yZGluZyhpbnQgcmVxdWVzdElkKQotewotICAgIG1f
bGlzdGVuZXItPmRpZENvbXBsZXRlUmVjb3JkaW5nKHJlcXVlc3RJZCk7Ci19Ci0KLXZvaWQgV2Vi
U3BlZWNoSW5wdXRDb250cm9sbGVyTW9ja0ltcGw6OmRpZENvbXBsZXRlUmVjb2duaXRpb24oaW50
IHJlcXVlc3RJZCkKLXsKLSAgICBtX2xpc3RlbmVyLT5kaWRDb21wbGV0ZVJlY29nbml0aW9uKHJl
cXVlc3RJZCk7Ci19Ci0KLXZvaWQgV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9ja0ltcGw6OnNl
dFJlY29nbml0aW9uUmVzdWx0KGludCByZXF1ZXN0SWQsIGNvbnN0IFdlYkNvcmU6OlNwZWVjaElu
cHV0UmVzdWx0QXJyYXkmIHJlc3VsdCkKLXsKLSAgICBtX2xpc3RlbmVyLT5zZXRSZWNvZ25pdGlv
blJlc3VsdChyZXF1ZXN0SWQsIHJlc3VsdCk7Ci19Ci0KLWJvb2wgV2ViU3BlZWNoSW5wdXRDb250
cm9sbGVyTW9ja0ltcGw6OnN0YXJ0UmVjb2duaXRpb24oaW50IHJlcXVlc3RJZCwgY29uc3QgV2Vi
UmVjdCYgZWxlbWVudFJlY3QsIGNvbnN0IFdlYlN0cmluZyYgbGFuZ3VhZ2UsIGNvbnN0IFdlYlN0
cmluZyYgZ3JhbW1hciwgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mIG9yaWdpbikKLXsKLSAgICBy
ZXR1cm4gbV93ZWJjb3JlTW9jay0+c3RhcnRSZWNvZ25pdGlvbihyZXF1ZXN0SWQsIGVsZW1lbnRS
ZWN0LCBsYW5ndWFnZSwgZ3JhbW1hciwgb3JpZ2luLmdldCgpKTsKLX0KLQotdm9pZCBXZWJTcGVl
Y2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbDo6Y2FuY2VsUmVjb2duaXRpb24oaW50IHJlcXVlc3RJ
ZCkKLXsKLSAgICBtX3dlYmNvcmVNb2NrLT5jYW5jZWxSZWNvZ25pdGlvbihyZXF1ZXN0SWQpOwot
fQotCi12b2lkIFdlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2tJbXBsOjpzdG9wUmVjb3JkaW5n
KGludCByZXF1ZXN0SWQpCi17Ci0gICAgbV93ZWJjb3JlTW9jay0+c3RvcFJlY29yZGluZyhyZXF1
ZXN0SWQpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2Vsc2UKLQotbmFtZXNwYWNl
IFdlYktpdCB7Ci0KLVdlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2sqIFdlYlNwZWVjaElucHV0
Q29udHJvbGxlck1vY2s6OmNyZWF0ZShXZWJTcGVlY2hJbnB1dExpc3RlbmVyKiBsaXN0ZW5lcikK
LXsKLSAgICByZXR1cm4gMDsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAv
LyBFTkFCTEUoSU5QVVRfU1BFRUNIKQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbC5oIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9ja0ltcGwuaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDViZmQ1MmE4Yzg4ZTJjMWYxNTE1OGZlZDhhZTY0ZjA5
N2VkZDY0Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1w
bC5oCisrKyAvZGV2L251bGwKQEAgLTEsNzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
Ci0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
Ci0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV2ViU3BlZWNoSW5wdXRD
b250cm9sbGVyTW9ja0ltcGxfaAotI2RlZmluZSBXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2Nr
SW1wbF9oCi0KLSNpbmNsdWRlICJTcGVlY2hJbnB1dExpc3RlbmVyLmgiCi0jaW5jbHVkZSAiV2Vi
U3BlZWNoSW5wdXRDb250cm9sbGVyTW9jay5oIgotI2luY2x1ZGUgIldlYlNwZWVjaElucHV0TGlz
dGVuZXIuaCIKLSNpbmNsdWRlICJwbGF0Zm9ybS9XZWJTdHJpbmcuaCIKLSNpbmNsdWRlIDx3dGYv
T3duUHRyLmg+Ci0KLSNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci1jbGFzcyBTcGVlY2hJbnB1dENsaWVudE1vY2s7Ci19Ci0KLW5hbWVzcGFjZSBXZWJLaXQg
ewotCi1zdHJ1Y3QgV2ViUmVjdDsKLQotY2xhc3MgV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9j
a0ltcGwgOiBwdWJsaWMgV2ViQ29yZTo6U3BlZWNoSW5wdXRMaXN0ZW5lcgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBwdWJsaWMgV2ViU3BlZWNoSW5wdXRDb250cm9s
bGVyTW9jayB7Ci1wdWJsaWM6Ci0gICAgV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9ja0ltcGwo
V2ViU3BlZWNoSW5wdXRMaXN0ZW5lciopOwotICAgIHZpcnR1YWwgfldlYlNwZWVjaElucHV0Q29u
dHJvbGxlck1vY2tJbXBsKCk7Ci0KLSAgICAvLyBXZWJDb3JlOjpTcGVlY2hJbnB1dExpc3RlbmVy
IG1ldGhvZHMuCi0gICAgdm9pZCBkaWRDb21wbGV0ZVJlY29yZGluZyhpbnQgcmVxdWVzdElkKTsK
LSAgICB2b2lkIGRpZENvbXBsZXRlUmVjb2duaXRpb24oaW50IHJlcXVlc3RJZCk7Ci0gICAgdm9p
ZCBzZXRSZWNvZ25pdGlvblJlc3VsdChpbnQgcmVxdWVzdElkLCBjb25zdCBXZWJDb3JlOjpTcGVl
Y2hJbnB1dFJlc3VsdEFycmF5JiByZXN1bHQpOwotCi0gICAgLy8gV2ViU3BlZWNoSW5wdXRDb250
cm9sbGVyIG1ldGhvZHMuCi0gICAgYm9vbCBzdGFydFJlY29nbml0aW9uKGludCByZXF1ZXN0SWQs
IGNvbnN0IFdlYlJlY3QmIGVsZW1lbnRSZWN0LCBjb25zdCBXZWJTdHJpbmcmIGxhbmd1YWdlLCBj
b25zdCBXZWJTdHJpbmcmIGdyYW1tYXIsIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJik7Ci0gICAg
dm9pZCBjYW5jZWxSZWNvZ25pdGlvbihpbnQgcmVxdWVzdElkKTsKLSAgICB2b2lkIHN0b3BSZWNv
cmRpbmcoaW50IHJlcXVlc3RJZCk7Ci0KLSAgICAvLyBXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJN
b2NrIG1ldGhvZHMuCi0gICAgdm9pZCBhZGRNb2NrUmVjb2duaXRpb25SZXN1bHQoY29uc3QgV2Vi
U3RyaW5nJiByZXN1bHQsIGRvdWJsZSBjb25maWRlbmNlLCBjb25zdCBXZWJTdHJpbmcmIGxhbmd1
YWdlKTsKLSAgICB2b2lkIGNsZWFyUmVzdWx0cygpOwotCi1wcml2YXRlOgotICAgIE93blB0cjxX
ZWJDb3JlOjpTcGVlY2hJbnB1dENsaWVudE1vY2s+IG1fd2ViY29yZU1vY2s7Ci0gICAgV2ViU3Bl
ZWNoSW5wdXRMaXN0ZW5lciogbV9saXN0ZW5lcjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktp
dAotCi0jZW5kaWYgLy8gRU5BQkxFKElOUFVUX1NQRUVDSCkKLQotI2VuZGlmIC8vIFdlYlNwZWVj
aElucHV0Q29udHJvbGxlck1vY2tJbXBsX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlNwZWVjaElucHV0UmVzdWx0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlNwZWVjaElucHV0UmVzdWx0LmNwcAppbmRleCA5YjEzMTQ0MTgyNzNjMjIzOTdm
M2ExNWY2NDFiMGE3ZWM0ZmVlYWY5Li42OTM1MzhmYjUyNjE5MGYwMWNmMTQ0ZmRhMWNhNzMwMjg1
OTA0Mzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTcGVlY2hJ
bnB1dFJlc3VsdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU3BlZWNo
SW5wdXRSZXN1bHQuY3BwCkBAIC00OCw2ICs0OCwxMSBAQCB2b2lkIFdlYlNwZWVjaElucHV0UmVz
dWx0OjpzZXQoY29uc3QgV2ViU3RyaW5nJiB1dHRlcmFuY2UsIGRvdWJsZSBjb25maWRlbmNlKQog
ICAgIG1fcHJpdmF0ZSA9IFdlYkNvcmU6OlNwZWVjaElucHV0UmVzdWx0OjpjcmVhdGUodXR0ZXJh
bmNlLCBjb25maWRlbmNlKTsKIH0KIAordm9pZCBXZWJTcGVlY2hJbnB1dFJlc3VsdDo6YXNzaWdu
KGNvbnN0IFdlYlNwZWVjaElucHV0UmVzdWx0JiBvdGhlcikKK3sKKyAgICBtX3ByaXZhdGUgPSBX
ZWJDb3JlOjpTcGVlY2hJbnB1dFJlc3VsdDo6Y3JlYXRlKCpvdGhlci5tX3ByaXZhdGUuZ2V0KCkp
OworfQorCiBXZWJTcGVlY2hJbnB1dFJlc3VsdDo6b3BlcmF0b3IgUGFzc1JlZlB0cjxXZWJDb3Jl
OjpTcGVlY2hJbnB1dFJlc3VsdD4oKSBjb25zdAogewogICAgIHJldHVybiBtX3ByaXZhdGUuZ2V0
KCk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
OWEwMTVhYTdiMTVhMDU4YjYxYTNhMTI5MDY2NjE0NjFlODFkYTMzYy4uMWViNzYwNWQ2MzFiYmEw
YzA2YjRhYTY2MjhkZjc5YjU4ZTVhYmRjNCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTAxLTI2ICBIYW5zIFdl
bm5ib3JnICA8aGFuc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU3BlZWNoIElucHV0OiBtb3Zl
IE1vY2tTcGVlY2hJbnB1dENsaWVudCBpbnRvIENocm9taXVtIER1bXBSZW5kZXJUcmVlIGltcGxl
bWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03NzA4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBNb2NrV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyIHdoaWNoIHByb3ZpZGVzIGEgbW9jayBp
bXBsZW1lbnRhdGlvbgorICAgICAgICBvZiB0aGUgV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyIGlu
dGVyZmFjZSwgYW5kIHVzZSB0aGF0IGluCisgICAgICAgIER1bXBSZW5kZXJUcmVlLgorCisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChM
YXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkTW9ja1NwZWVjaElucHV0UmVzdWx0KToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAg
ICAoKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViU3BlZWNoSW5w
dXRDb250cm9sbGVyLmNwcDogQWRkZWQuCisgICAgICAgIChNb2NrV2ViU3BlZWNoSW5wdXRDb250
cm9sbGVyOjpjcmVhdGUpOgorICAgICAgICAoTW9ja1dlYlNwZWVjaElucHV0Q29udHJvbGxlcjo6
YWRkTW9ja1JlY29nbml0aW9uUmVzdWx0KToKKyAgICAgICAgKE1vY2tXZWJTcGVlY2hJbnB1dENv
bnRyb2xsZXI6OmNsZWFyUmVzdWx0cyk6CisgICAgICAgIChNb2NrV2ViU3BlZWNoSW5wdXRDb250
cm9sbGVyOjpzdGFydFJlY29nbml0aW9uKToKKyAgICAgICAgKE1vY2tXZWJTcGVlY2hJbnB1dENv
bnRyb2xsZXI6OmNhbmNlbFJlY29nbml0aW9uKToKKyAgICAgICAgKE1vY2tXZWJTcGVlY2hJbnB1
dENvbnRyb2xsZXI6OnN0b3BSZWNvcmRpbmcpOgorICAgICAgICAoTW9ja1dlYlNwZWVjaElucHV0
Q29udHJvbGxlcjo6TW9ja1dlYlNwZWVjaElucHV0Q29udHJvbGxlcik6CisgICAgICAgIChNb2Nr
V2ViU3BlZWNoSW5wdXRDb250cm9sbGVyOjpzcGVlY2hUYXNrRmlyZWQpOgorICAgICAgICAoTW9j
a1dlYlNwZWVjaElucHV0Q29udHJvbGxlcjo6U3BlZWNoVGFzazo6U3BlZWNoVGFzayk6CisgICAg
ICAgIChNb2NrV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyOjpTcGVlY2hUYXNrOjpzdG9wKToKKyAg
ICAgICAgKE1vY2tXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXI6OlNwZWVjaFRhc2s6OnJ1bklmVmFs
aWQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJTcGVlY2hJbnB1
dENvbnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoTW9ja1dl
YlNwZWVjaElucHV0Q29udHJvbGxlcik6CisgICAgICAgIChNb2NrV2ViU3BlZWNoSW5wdXRDb250
cm9sbGVyOjp0YXNrTGlzdCk6CisgICAgICAgIChTcGVlY2hUYXNrKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcDoKKyAgICAgICAgKFdlYlZpZXdIb3N0OjpzcGVl
Y2hJbnB1dENvbnRyb2xsZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dl
YlZpZXdIb3N0Lmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViVmlld0hvc3Q6OnNw
ZWVjaElucHV0Q29udHJvbGxlck1vY2spOgorICAgICAgICAoV2ViVmlld0hvc3QpOgorICAgICAg
ICAoKToKKwogMjAxMi0wMS0yOSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFp
bC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEwNjEwOS4KZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGkgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpCmluZGV4IGI3MDc0NjQwMjlkYjY1M2Y5
MjIyZjE2Y2VlOWJiOTA0YzIzMzQ5Y2YuLjA3MzZjMDM4MWIzNGM4OGUzMDdlNWZmZjNkNTRmZDY5
MjBmODc1MGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVl
Lmd5cGkKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaQpAQCAt
MjIsNiArMjIsOCBAQAogICAgICAgICAgICAgJ2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVy
LmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL01vY2tTcGVsbENoZWNrLmNwcCcsCiAgICAgICAg
ICAgICAnY2hyb21pdW0vTW9ja1NwZWxsQ2hlY2suaCcsCisgICAgICAgICAgICAnY2hyb21pdW0v
TW9ja1dlYlNwZWVjaElucHV0Q29udHJvbGxlci5jcHAnLAorICAgICAgICAgICAgJ2Nocm9taXVt
L01vY2tXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXIuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0v
Tm90aWZpY2F0aW9uUHJlc2VudGVyLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL05vdGlmaWNh
dGlvblByZXNlbnRlci5jcHAnLAogICAgICAgICAgICAgJ2Nocm9taXVtL1BsYWluVGV4dENvbnRy
b2xsZXIuY3BwJywKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xh
eW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xh
eW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCBkZTM5NGE5N2ZhYjU4YTlmY2NmOTlhZDUyYjI2
NDkzMDZkYmE0ZGYzLi4zNzQ4MGIwNjg3ZTUxNDEzMTIxZTY2YmU0ZjYzMWY5ZjJkNTNlNWE2IDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJv
bGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENv
bnRyb2xsZXIuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiTGF5b3V0VGVzdENvbnRy
b2xsZXIuaCIKIAogI2luY2x1ZGUgIkRSVERldlRvb2xzQWdlbnQuaCIKKyNpbmNsdWRlICJNb2Nr
V2ViU3BlZWNoSW5wdXRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiVGVzdFNoZWxsLmgiCiAjaW5j
bHVkZSAiV2ViQW5pbWF0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIldlYkJpbmRpbmdzLmgi
CkBAIC01NSw3ICs1Niw2IEBACiAjaW5jbHVkZSAiV2ViU2VjdXJpdHlQb2xpY3kuaCIKICNpbmNs
dWRlICJXZWJTZXR0aW5ncy5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dlYlNpemUuaCIKLSNpbmNs
dWRlICJXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrLmgiCiAjaW5jbHVkZSAicGxhdGZvcm0v
V2ViVVJMLmgiCiAjaW5jbHVkZSAiV2ViVmlldy5oIgogI2luY2x1ZGUgIldlYlZpZXdIb3N0Lmgi
CkBAIC0xOTM0LDcgKzE5MzQsNyBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjphZGRNb2Nr
U3BlZWNoSW5wdXRSZXN1bHQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bQogICAgIGlmIChh
cmd1bWVudHMuc2l6ZSgpIDwgMyB8fCAhYXJndW1lbnRzWzBdLmlzU3RyaW5nKCkgfHwgIWFyZ3Vt
ZW50c1sxXS5pc051bWJlcigpIHx8ICFhcmd1bWVudHNbMl0uaXNTdHJpbmcoKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgaWYgKFdlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2sqIGNvbnRyb2xs
ZXIgPSBtX3NoZWxsLT53ZWJWaWV3SG9zdCgpLT5zcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrKCkp
CisgICAgaWYgKE1vY2tXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBtX3No
ZWxsLT53ZWJWaWV3SG9zdCgpLT5zcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrKCkpCiAgICAgICAg
IGNvbnRyb2xsZXItPmFkZE1vY2tSZWNvZ25pdGlvblJlc3VsdChjcHBWYXJpYW50VG9XZWJTdHJp
bmcoYXJndW1lbnRzWzBdKSwgYXJndW1lbnRzWzFdLnRvRG91YmxlKCksIGNwcFZhcmlhbnRUb1dl
YlN0cmluZyhhcmd1bWVudHNbMl0pKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggMmM3ZGY4MDE3NDk4NDky
MjQzYTUyMzlkZTE3MDdjYWJmN2FjZGEyZi4uZTM3ZmY3ZGQ3Mjg1NDAyZmZiNmQ2NDA1YWM1YWRh
MzYwNzJiZmIwOCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5
b3V0VGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9M
YXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC01Miw5ICs1Miw2IEBACiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogY2xhc3MgV2ViR2VvbG9jYXRpb25DbGllbnRNb2NrOwotY2xhc3MgV2ViU3BlZWNoSW5w
dXRDb250cm9sbGVyOwotY2xhc3MgV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9jazsKLWNsYXNz
IFdlYlNwZWVjaElucHV0TGlzdGVuZXI7CiB9CiAKIG5hbWVzcGFjZSB3ZWJraXRfc3VwcG9ydCB7
CkBAIC00NDIsNyArNDM5LDYgQEAgcHVibGljOgogICAgIC8vIFRoZSBmb2xsb3dpbmcgbWV0aG9k
cyBhcmUgbm90IGV4cG9zZWQgdG8gSmF2YVNjcmlwdC4KICAgICB2b2lkIHNldFdvcmtRdWV1ZUZy
b3plbihib29sIGZyb3plbikgeyBtX3dvcmtRdWV1ZS5zZXRGcm96ZW4oZnJvemVuKTsgfQogCi0g
ICAgV2ViS2l0OjpXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXIqIHNwZWVjaElucHV0Q29udHJvbGxl
cihXZWJLaXQ6OldlYlNwZWVjaElucHV0TGlzdGVuZXIqKTsKICAgICBib29sIHNob3VsZER1bXBB
c0F1ZGlvKCkgY29uc3QgeyByZXR1cm4gbV9kdW1wQXNBdWRpbzsgfSAKICAgICB2b2lkIHNldFNo
b3VsZER1bXBBc0F1ZGlvKGJvb2wgZHVtcEFzQXVkaW8pIHsgbV9kdW1wQXNBdWRpbyA9IGR1bXBB
c0F1ZGlvOyB9IAogICAgIGJvb2wgc2hvdWxkRHVtcEFzVGV4dCgpIHsgcmV0dXJuIG1fZHVtcEFz
VGV4dDsgfQpAQCAtNjk5LDggKzY5NSw2IEBAIHByaXZhdGU6CiAKICAgICBXZWJLaXQ6OldlYlVS
TCBtX3VzZXJTdHlsZVNoZWV0TG9jYXRpb247CiAKLSAgICBPd25QdHI8V2ViS2l0OjpXZWJTcGVl
Y2hJbnB1dENvbnRyb2xsZXJNb2NrPiBtX3NwZWVjaElucHV0Q29udHJvbGxlck1vY2s7Ci0KICAg
ICAvLyBXQVYgYXVkaW8gZGF0YSBpcyBzdG9yZWQgaGVyZS4KICAgICBXZWJLaXQ6OldlYkFycmF5
QnVmZmVyVmlldyBtX2F1ZGlvRGF0YTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vTW9ja1dlYlNwZWVjaElucHV0Q29udHJvbGxlci5jcHAgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jYjBiMDY2ZDM0YTU5NDZkNGM2ZTcwYjRhNDQ0NDA1OTkzNDQ1NDU5Ci0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlNwZWVjaElu
cHV0Q29udHJvbGxlci5jcHAKQEAgLTAsMCArMSwxNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiTW9ja1dlYlNwZWVjaElucHV0Q29udHJvbGxlci5oIgorCisjaW5j
bHVkZSAiV2ViU3BlZWNoSW5wdXRMaXN0ZW5lci5oIgorI2luY2x1ZGUgInBsYXRmb3JtL1dlYkNT
dHJpbmcuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJLaXQ7CisKK1Bhc3NPd25QdHI8TW9ja1dlYlNwZWVjaElucHV0Q29udHJvbGxlcj4gTW9j
a1dlYlNwZWVjaElucHV0Q29udHJvbGxlcjo6Y3JlYXRlKFdlYlNwZWVjaElucHV0TGlzdGVuZXIq
IGxpc3RlbmVyKQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcgTW9ja1dlYlNwZWVjaElucHV0
Q29udHJvbGxlcihsaXN0ZW5lcikpOworfQorCit2b2lkIE1vY2tXZWJTcGVlY2hJbnB1dENvbnRy
b2xsZXI6OmFkZE1vY2tSZWNvZ25pdGlvblJlc3VsdChjb25zdCBXZWJTdHJpbmcmIHJlc3VsdCwg
ZG91YmxlIGNvbmZpZGVuY2UsIGNvbnN0IFdlYlN0cmluZyYgbGFuZ3VhZ2UpCit7CisgICAgV2Vi
U3BlZWNoSW5wdXRSZXN1bHQgcmVzOworICAgIHJlcy5zZXQocmVzdWx0LCBjb25maWRlbmNlKTsK
KworICAgIGlmIChsYW5ndWFnZS5pc0VtcHR5KCkpCisgICAgICAgIG1fcmVzdWx0c0ZvckVtcHR5
TGFuZ3VhZ2UuYXBwZW5kKHJlcyk7CisgICAgZWxzZSB7CisgICAgICAgIFN0cmluZyBsYW5nU3Ry
aW5nID0gU3RyaW5nOjpmcm9tVVRGOChsYW5ndWFnZS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAg
aWYgKCFtX3JlY29nbml0aW9uUmVzdWx0cy5jb250YWlucyhsYW5nU3RyaW5nKSkKKyAgICAgICAg
ICAgIG1fcmVjb2duaXRpb25SZXN1bHRzLnNldChsYW5nU3RyaW5nLCBWZWN0b3I8V2ViU3BlZWNo
SW5wdXRSZXN1bHQ+KCkpOworICAgICAgICBtX3JlY29nbml0aW9uUmVzdWx0cy5maW5kKGxhbmdT
dHJpbmcpLT5zZWNvbmQuYXBwZW5kKHJlcyk7CisgICAgfQorfQorCit2b2lkIE1vY2tXZWJTcGVl
Y2hJbnB1dENvbnRyb2xsZXI6OmNsZWFyUmVzdWx0cygpCit7CisgICAgbV9yZXN1bHRzRm9yRW1w
dHlMYW5ndWFnZS5jbGVhcigpOworICAgIG1fcmVjb2duaXRpb25SZXN1bHRzLmNsZWFyKCk7Cit9
CisKK2Jvb2wgTW9ja1dlYlNwZWVjaElucHV0Q29udHJvbGxlcjo6c3RhcnRSZWNvZ25pdGlvbihp
bnQgcmVxdWVzdElkLCBjb25zdCBXZWJSZWN0JiBlbGVtZW50UmVjdCwgY29uc3QgV2ViU3RyaW5n
JiBsYW5ndWFnZSwgY29uc3QgV2ViU3RyaW5nJiBncmFtbWFyLCBjb25zdCBXZWJTZWN1cml0eU9y
aWdpbiYgb3JpZ2luKQoreworICAgIGlmIChtX3NwZWVjaFRhc2spCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIG1fcmVxdWVzdElkID0gcmVxdWVzdElkOworICAgIG1fcmVjb3JkaW5nID0g
dHJ1ZTsKKyAgICBtX2xhbmd1YWdlID0gU3RyaW5nOjpmcm9tVVRGOChsYW5ndWFnZS51dGY4KCku
ZGF0YSgpKTsKKworICAgIG1fc3BlZWNoVGFzayA9IG5ldyBTcGVlY2hUYXNrKHRoaXMpOworICAg
IHBvc3RUYXNrKG1fc3BlZWNoVGFzayk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBN
b2NrV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyOjpjYW5jZWxSZWNvZ25pdGlvbihpbnQgcmVxdWVz
dElkKQoreworICAgIGlmIChtX3NwZWVjaFRhc2spIHsKKyAgICAgICAgQVNTRVJUKHJlcXVlc3RJ
ZCA9PSBtX3JlcXVlc3RJZCk7CisKKyAgICAgICAgbV9zcGVlY2hUYXNrLT5zdG9wKCk7CisgICAg
ICAgIG1fcmVjb3JkaW5nID0gZmFsc2U7CisgICAgICAgIG1fbGlzdGVuZXItPmRpZENvbXBsZXRl
UmVjb2duaXRpb24obV9yZXF1ZXN0SWQpOworICAgICAgICBtX3JlcXVlc3RJZCA9IDA7CisgICAg
fQorfQorCit2b2lkIE1vY2tXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXI6OnN0b3BSZWNvcmRpbmco
aW50IHJlcXVlc3RJZCkKK3sKKyAgICBBU1NFUlQocmVxdWVzdElkID09IG1fcmVxdWVzdElkKTsK
KyAgICBpZiAobV9zcGVlY2hUYXNrICYmIG1fcmVjb3JkaW5nKSB7CisgICAgICAgIG1fc3BlZWNo
VGFzay0+c3RvcCgpOworICAgICAgICBzcGVlY2hUYXNrRmlyZWQoKTsKKyAgICB9Cit9CisKK01v
Y2tXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXI6Ok1vY2tXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXIo
V2ViU3BlZWNoSW5wdXRMaXN0ZW5lciogbGlzdGVuZXIpCisgICAgOiBtX2xpc3RlbmVyKGxpc3Rl
bmVyKQorICAgICwgbV9zcGVlY2hUYXNrKDApCisgICAgLCBtX3JlY29yZGluZyhmYWxzZSkKKyAg
ICAsIG1fcmVxdWVzdElkKC0xKQoreworfQorCit2b2lkIE1vY2tXZWJTcGVlY2hJbnB1dENvbnRy
b2xsZXI6OnNwZWVjaFRhc2tGaXJlZCgpCit7CisgICAgaWYgKG1fcmVjb3JkaW5nKSB7CisgICAg
ICAgIG1fcmVjb3JkaW5nID0gZmFsc2U7CisgICAgICAgIG1fbGlzdGVuZXItPmRpZENvbXBsZXRl
UmVjb3JkaW5nKG1fcmVxdWVzdElkKTsKKworICAgICAgICBtX3NwZWVjaFRhc2sgPSBuZXcgU3Bl
ZWNoVGFzayh0aGlzKTsKKyAgICAgICAgcG9zdFRhc2sobV9zcGVlY2hUYXNrKTsKKyAgICB9IGVs
c2UgeworICAgICAgICBib29sIG5vUmVzdWx0c0ZvdW5kID0gZmFsc2U7CisgICAgICAgIC8vIFdl
IHRha2UgYSBjb3B5IG9mIHRoZSByZXF1ZXN0SWQgaGVyZSBzbyB0aGF0IGlmIHNjcmlwdHMgZGVz
dHJveWVkIHRoZSBpbnB1dCBlbGVtZW50CisgICAgICAgIC8vIGluc2lkZSBvbmUgb2YgdGhlIGNh
bGxiYWNrcyBiZWxvdywgd2UnbGwgc3RpbGwga25vdyB3aGF0IHRoaXMgc2Vzc2lvbidzIHJlcXVl
c3RJZCB3YXMuCisgICAgICAgIGludCByZXF1ZXN0SWQgPSBtX3JlcXVlc3RJZDsKKyAgICAgICAg
bV9yZXF1ZXN0SWQgPSAwOworCisgICAgICAgIC8vIEVtcHR5IGxhbmd1YWdlIGNhc2UgbXVzdCBi
ZSBoYW5kbGVkIHNlcGFyYXRlbHkgdG8gYXZvaWQgcHJvYmxlbXMgd2l0aCBIYXNoTWFwIGFuZCBl
bXB0eSBrZXlzLgorICAgICAgICBpZiAobV9sYW5ndWFnZS5pc0VtcHR5KCkpIHsKKyAgICAgICAg
ICAgIGlmICghbV9yZXN1bHRzRm9yRW1wdHlMYW5ndWFnZS5pc0VtcHR5KCkpCisgICAgICAgICAg
ICAgICAgbV9saXN0ZW5lci0+c2V0UmVjb2duaXRpb25SZXN1bHQocmVxdWVzdElkLCBtX3Jlc3Vs
dHNGb3JFbXB0eUxhbmd1YWdlKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBu
b1Jlc3VsdHNGb3VuZCA9IHRydWU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAo
bV9yZWNvZ25pdGlvblJlc3VsdHMuY29udGFpbnMobV9sYW5ndWFnZSkpCisgICAgICAgICAgICAg
ICAgbV9saXN0ZW5lci0+c2V0UmVjb2duaXRpb25SZXN1bHQocmVxdWVzdElkLCBtX3JlY29nbml0
aW9uUmVzdWx0cy5nZXQobV9sYW5ndWFnZSkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgIG5vUmVzdWx0c0ZvdW5kID0gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChu
b1Jlc3VsdHNGb3VuZCkgeworICAgICAgICAgICAgLy8gQ2FuJ3QgYXZvaWQgc2V0dGluZyBhIHJl
c3VsdCBldmVuIGlmIG5vIHJlc3VsdCB3YXMgc2V0IGZvciB0aGUgZ2l2ZW4gbGFuZ3VhZ2UuCisg
ICAgICAgICAgICAvLyBUaGlzIHdvdWxkIGF2b2lkIGdlbmVyYXRpbmcgdGhlIGV2ZW50cyB1c2Vk
IHRvIGNoZWNrIHRoZSByZXN1bHRzIGFuZCB0aGUgdGVzdCB3b3VsZCB0aW1lb3V0LgorICAgICAg
ICAgICAgU3RyaW5nIGVycm9yKCJlcnJvcjogbm8gcmVzdWx0IGZvdW5kIGZvciBsYW5ndWFnZSAn
Iik7CisgICAgICAgICAgICBlcnJvci5hcHBlbmQobV9sYW5ndWFnZSk7CisgICAgICAgICAgICBl
cnJvci5hcHBlbmQoIiciKTsKKworICAgICAgICAgICAgV2ViU3BlZWNoSW5wdXRSZXN1bHQgcmVz
OworICAgICAgICAgICAgcmVzLnNldChXZWJTdHJpbmc6OmZyb21VVEY4KGVycm9yLnV0ZjgoKS5k
YXRhKCkpLCAxLjApOworCisgICAgICAgICAgICBWZWN0b3I8V2ViU3BlZWNoSW5wdXRSZXN1bHQ+
IHJlc3VsdHM7CisgICAgICAgICAgICByZXN1bHRzLmFwcGVuZChyZXMpOworCisgICAgICAgICAg
ICBtX2xpc3RlbmVyLT5zZXRSZWNvZ25pdGlvblJlc3VsdChyZXF1ZXN0SWQsIHJlc3VsdHMpOwor
ICAgICAgICB9CisgICAgfQorfQorCitNb2NrV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyOjpTcGVl
Y2hUYXNrOjpTcGVlY2hUYXNrKE1vY2tXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXIqIG1vY2spCisg
ICAgOiBNZXRob2RUYXNrPE1vY2tXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXI+OjpNZXRob2RUYXNr
KG1vY2spCit7Cit9CisKK3ZvaWQgTW9ja1dlYlNwZWVjaElucHV0Q29udHJvbGxlcjo6U3BlZWNo
VGFzazo6c3RvcCgpCit7CisgICAgbV9vYmplY3QtPm1fc3BlZWNoVGFzayA9IDA7CisgICAgY2Fu
Y2VsKCk7CisgICAgZGVsZXRlKHRoaXMpOworfQorCit2b2lkIE1vY2tXZWJTcGVlY2hJbnB1dENv
bnRyb2xsZXI6OlNwZWVjaFRhc2s6OnJ1bklmVmFsaWQoKQoreworICAgIG1fb2JqZWN0LT5tX3Nw
ZWVjaFRhc2sgPSAwOworICAgIG1fb2JqZWN0LT5zcGVlY2hUYXNrRmlyZWQoKTsKK30KZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJTcGVlY2hJbnB1dENv
bnRyb2xsZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJTcGVlY2hJ
bnB1dENvbnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NmFhZGZmMTBhYmM4MThjYzhiYTVmZmUwNDU5
YTc1NTcxNzExYzI2Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vTW9ja1dlYlNwZWVjaElucHV0Q29udHJvbGxlci5oCkBAIC0wLDAgKzEsOTAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAor
ICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIE1vY2tXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJfaAorI2RlZmluZSBNb2Nr
V2ViU3BlZWNoSW5wdXRDb250cm9sbGVyX2gKKworI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisK
KyNpbmNsdWRlICJUYXNrLmgiCisjaW5jbHVkZSAiV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyLmgi
CisjaW5jbHVkZSAiV2ViU3BlZWNoSW5wdXRSZXN1bHQuaCIKKyNpbmNsdWRlIDx3dGYvQ29tcGls
ZXIuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0
cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KKworbmFtZXNwYWNlIFdl
YktpdCB7CitzdHJ1Y3QgV2ViUmVjdDsKK2NsYXNzIFdlYlNlY3VyaXR5T3JpZ2luOworY2xhc3Mg
V2ViU3BlZWNoSW5wdXRMaXN0ZW5lcjsKK2NsYXNzIFdlYlN0cmluZzsKK30KKworY2xhc3MgTW9j
a1dlYlNwZWVjaElucHV0Q29udHJvbGxlciA6IHB1YmxpYyBXZWJLaXQ6OldlYlNwZWVjaElucHV0
Q29udHJvbGxlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8TW9ja1dlYlNwZWVj
aElucHV0Q29udHJvbGxlcj4gY3JlYXRlKFdlYktpdDo6V2ViU3BlZWNoSW5wdXRMaXN0ZW5lciop
OworCisgICAgdm9pZCBhZGRNb2NrUmVjb2duaXRpb25SZXN1bHQoY29uc3QgV2ViS2l0OjpXZWJT
dHJpbmcmIHJlc3VsdCwgZG91YmxlIGNvbmZpZGVuY2UsIGNvbnN0IFdlYktpdDo6V2ViU3RyaW5n
JiBsYW5ndWFnZSk7CisgICAgdm9pZCBjbGVhclJlc3VsdHMoKTsKKworICAgIC8vIFdlYlNwZWVj
aElucHV0Q29udHJvbGxlciBpbXBsZW1lbnRhdGlvbjoKKyAgICB2aXJ0dWFsIGJvb2wgc3RhcnRS
ZWNvZ25pdGlvbihpbnQgcmVxdWVzdElkLCBjb25zdCBXZWJLaXQ6OldlYlJlY3QmIGVsZW1lbnRS
ZWN0LCBjb25zdCBXZWJLaXQ6OldlYlN0cmluZyYgbGFuZ3VhZ2UsIGNvbnN0IFdlYktpdDo6V2Vi
U3RyaW5nJiBncmFtbWFyLCBjb25zdCBXZWJLaXQ6OldlYlNlY3VyaXR5T3JpZ2luJikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIGNhbmNlbFJlY29nbml0aW9uKGludCByZXF1ZXN0SWQpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzdG9wUmVjb3JkaW5nKGludCByZXF1ZXN0SWQpIE9W
RVJSSURFOworCisgICAgVGFza0xpc3QqIHRhc2tMaXN0KCkgeyByZXR1cm4gJm1fdGFza0xpc3Q7
IH0KKworcHJpdmF0ZToKKyAgICBNb2NrV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyKFdlYktpdDo6
V2ViU3BlZWNoSW5wdXRMaXN0ZW5lciopOworICAgIHZvaWQgc3BlZWNoVGFza0ZpcmVkKCk7CisK
KyAgICBjbGFzcyBTcGVlY2hUYXNrIDogcHVibGljIE1ldGhvZFRhc2s8TW9ja1dlYlNwZWVjaElu
cHV0Q29udHJvbGxlcj4geworICAgIHB1YmxpYzoKKyAgICAgICAgU3BlZWNoVGFzayhNb2NrV2Vi
U3BlZWNoSW5wdXRDb250cm9sbGVyKik7CisgICAgICAgIHZvaWQgc3RvcCgpOworCisgICAgcHJp
dmF0ZToKKyAgICAgICAgdmlydHVhbCB2b2lkIHJ1bklmVmFsaWQoKSBPVkVSUklERTsKKyAgICB9
OworCisgICAgV2ViS2l0OjpXZWJTcGVlY2hJbnB1dExpc3RlbmVyKiBtX2xpc3RlbmVyOworCisg
ICAgVGFza0xpc3QgbV90YXNrTGlzdDsKKyAgICBTcGVlY2hUYXNrKiBtX3NwZWVjaFRhc2s7CisK
KyAgICBib29sIG1fcmVjb3JkaW5nOworICAgIGludCBtX3JlcXVlc3RJZDsKKyAgICBTdHJpbmcg
bV9sYW5ndWFnZTsKKworICAgIEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8V2ViS2l0OjpXZWJTcGVl
Y2hJbnB1dFJlc3VsdD4gPiBtX3JlY29nbml0aW9uUmVzdWx0czsKKyAgICBWZWN0b3I8V2ViS2l0
OjpXZWJTcGVlY2hJbnB1dFJlc3VsdD4gbV9yZXN1bHRzRm9yRW1wdHlMYW5ndWFnZTsKK307CisK
KyNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfU1BFRUNIKQorCisjZW5kaWYgLy8gTW9ja1dlYlNwZWVj
aElucHV0Q29udHJvbGxlcl9oCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0U2hlbGwuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNo
ZWxsLmNwcAppbmRleCA0NWNiYzFlMWFhNjRiOTNmNTQ2ZGE3YzYxMmUyYzE5NzQ1YTJhZGJhLi41
MDFlNzhiN2E0Yjc5YzFhYjU0MWRhYjMwMWM1ZGI4ZDg5YzNmNTc0IDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAKQEAgLTUyLDcgKzUyLDYgQEAKICNpbmNs
dWRlICJXZWJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiV2ViU2V0dGluZ3MuaCIKICNp
bmNsdWRlICJwbGF0Zm9ybS9XZWJTaXplLmgiCi0jaW5jbHVkZSAiV2ViU3BlZWNoSW5wdXRDb250
cm9sbGVyTW9jay5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dlYlN0cmluZy5oIgogI2luY2x1ZGUg
InBsYXRmb3JtL1dlYlVSTFJlcXVlc3QuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJVUkxSZXNw
b25zZS5oIgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmll
d0hvc3QuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3Bw
CmluZGV4IGY4ZWU0NzIxOWM5Nzk4NzY0Njk2MjVhZWE5ZGM2NTIxNDliODUxZTEuLjJlNjgwMzAw
MzBjOTRjMmIwZWIxMTliNTgzZjdjYjVhMGQ4NDk1YjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRl
ICJXZWJWaWV3SG9zdC5oIgogCiAjaW5jbHVkZSAiTGF5b3V0VGVzdENvbnRyb2xsZXIuaCIKKyNp
bmNsdWRlICJNb2NrV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiVGVzdE5h
dmlnYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiVGVzdFNoZWxsLmgiCiAjaW5jbHVkZSAi
VGVzdFdlYlBsdWdpbi5oIgpAQCAtNTUsNyArNTYsNiBAQAogI2luY2x1ZGUgInBsYXRmb3JtL1dl
YlJlY3QuaCIKICNpbmNsdWRlICJXZWJTY3JlZW5JbmZvLmgiCiAjaW5jbHVkZSAicGxhdGZvcm0v
V2ViU2l6ZS5oIgotI2luY2x1ZGUgIldlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2suaCIKICNp
bmNsdWRlICJXZWJTdG9yYWdlTmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiV2ViVGV4dENoZWNraW5n
Q29tcGxldGlvbi5oIgogI2luY2x1ZGUgIldlYlRleHRDaGVja2luZ1Jlc3VsdC5oIgpAQCAtNjc4
LDcgKzY3OCw3IEBAIFdlYktpdDo6V2ViR2VvbG9jYXRpb25DbGllbnRNb2NrKiBXZWJWaWV3SG9z
dDo6Z2VvbG9jYXRpb25DbGllbnRNb2NrKCkKIFdlYlNwZWVjaElucHV0Q29udHJvbGxlciogV2Vi
Vmlld0hvc3Q6OnNwZWVjaElucHV0Q29udHJvbGxlcihXZWJLaXQ6OldlYlNwZWVjaElucHV0TGlz
dGVuZXIqIGxpc3RlbmVyKQogewogICAgIGlmICghbV9zcGVlY2hJbnB1dENvbnRyb2xsZXJNb2Nr
KQotICAgICAgICBtX3NwZWVjaElucHV0Q29udHJvbGxlck1vY2sgPSBhZG9wdFB0cihXZWJTcGVl
Y2hJbnB1dENvbnRyb2xsZXJNb2NrOjpjcmVhdGUobGlzdGVuZXIpKTsKKyAgICAgICAgbV9zcGVl
Y2hJbnB1dENvbnRyb2xsZXJNb2NrID0gTW9ja1dlYlNwZWVjaElucHV0Q29udHJvbGxlcjo6Y3Jl
YXRlKGxpc3RlbmVyKTsKICAgICByZXR1cm4gbV9zcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrLmdl
dCgpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJW
aWV3SG9zdC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaApp
bmRleCAxZDA5NTRhZTE4NTVkZjYyZjRhODE3YjkzYjYxYTFiNDE4NjU5YWYwLi5lYjIxMzY5MmFi
NGUxZWNlOGYzMzRmMDE3N2Q5NGVlZjg3OGEyYWQxIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIAogY2xhc3MgTGF5b3V0VGVzdENvbnRyb2xsZXI7CitjbGFzcyBN
b2NrV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyOwogY2xhc3MgU2tDYW52YXM7CiBjbGFzcyBUZXN0
U2hlbGw7CiAKQEAgLTU3LDcgKzU4LDYgQEAgY2xhc3MgV2ViR2VvbG9jYXRpb25DbGllbnRNb2Nr
OwogY2xhc3MgV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jazsKIGNsYXNzIFdlYlNoYXJlZFdvcmtl
ckNsaWVudDsKIGNsYXNzIFdlYlNwZWVjaElucHV0Q29udHJvbGxlcjsKLWNsYXNzIFdlYlNwZWVj
aElucHV0Q29udHJvbGxlck1vY2s7CiBjbGFzcyBXZWJTcGVlY2hJbnB1dExpc3RlbmVyOwogY2xh
c3MgV2ViVVJMOwogY2xhc3MgV2ViVXNlck1lZGlhQ2xpZW50TW9jazsKQEAgLTEwOCw3ICsxMDgs
NyBAQCBjbGFzcyBXZWJWaWV3SG9zdCA6IHB1YmxpYyBXZWJLaXQ6OldlYlNwZWxsQ2hlY2tDbGll
bnQsIHB1YmxpYyBXZWJLaXQ6OldlYlZpZXdDbAogICAgIFdlYktpdDo6V2ViQ29udGV4dE1lbnVE
YXRhKiBsYXN0Q29udGV4dE1lbnVEYXRhKCkgY29uc3Q7CiAgICAgdm9pZCBjbGVhckNvbnRleHRN
ZW51RGF0YSgpOwogCi0gICAgV2ViS2l0OjpXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrKiBz
cGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrKCkgeyByZXR1cm4gbV9zcGVlY2hJbnB1dENvbnRyb2xs
ZXJNb2NrLmdldCgpOyB9CisgICAgTW9ja1dlYlNwZWVjaElucHV0Q29udHJvbGxlciogc3BlZWNo
SW5wdXRDb250cm9sbGVyTW9jaygpIHsgcmV0dXJuIG1fc3BlZWNoSW5wdXRDb250cm9sbGVyTW9j
ay5nZXQoKTsgfQogCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICB2b2lkIGRpZExvc2VQ
b2ludGVyTG9jaygpOwpAQCAtMzgyLDcgKzM4Miw3IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPFdl
YktpdDo6V2ViR2VvbG9jYXRpb25DbGllbnRNb2NrPiBtX2dlb2xvY2F0aW9uQ2xpZW50TW9jazsK
IAogICAgIE93blB0cjxXZWJLaXQ6OldlYkRldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jaz4gbV9k
ZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2s7Ci0gICAgT3duUHRyPFdlYktpdDo6V2ViU3BlZWNo
SW5wdXRDb250cm9sbGVyTW9jaz4gbV9zcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrOworICAgIE93
blB0cjxNb2NrV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyPiBtX3NwZWVjaElucHV0Q29udHJvbGxl
ck1vY2s7CiAKICAgICBPd25QdHI8V2ViS2l0OjpXZWJVc2VyTWVkaWFDbGllbnRNb2NrPiBtX3Vz
ZXJNZWRpYUNsaWVudE1vY2s7CiAgICAgT3duUHRyPHdlYmtpdF9zdXBwb3J0OjpUZXN0TWVkaWFT
dHJlYW1DbGllbnQ+IG1fdGVzdE1lZGlhU3RyZWFtQ2xpZW50Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>