<?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>43947</bug_id>
          
          <creation_ts>2010-08-12 21:20:53 -0700</creation_ts>
          <short_desc>Add form submission listener to WebKit2</short_desc>
          <delta_ts>2010-08-13 13:11:49 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>264152</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-08-12 21:20:53 -0700</bug_when>
    <thetext>Add form submission listener to WebKit2.

Part of &lt;rdar://problem/8255932&gt; (autofill support).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264153</commentid>
    <comment_count>1</comment_count>
      <attachid>64296</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-08-12 21:28:51 -0700</bug_when>
    <thetext>Created attachment 64296
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264236</commentid>
    <comment_count>2</comment_count>
      <attachid>64296</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2010-08-13 01:26:56 -0700</bug_when>
    <thetext>Comment on attachment 64296
Patch

&gt; Index: WebKit2/UIProcess/WebPageProxy.h
&gt; ===================================================================
&gt; --- WebKit2/UIProcess/WebPageProxy.h	(revision 65292)
&gt; +++ WebKit2/UIProcess/WebPageProxy.h	(working copy)
&gt; @@ -190,6 +192,8 @@ private:
&gt;      void decidePolicyForNewWindowAction(WebFrameProxy*, WebCore::NavigationType navigationType, const WTF::String&amp; url, uint64_t listenerID);
&gt;      void decidePolicyForMIMEType(WebFrameProxy*, const WTF::String&amp; MIMEType, const WTF::String&amp; url, uint64_t listenerID);
&gt;  
&gt; +    void willSubmitForm(WebFrameProxy*, WebFrameProxy*, uint64_t listenerID);

Would be good to name the first two parameters.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264479</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-08-13 13:11:49 -0700</bug_when>
    <thetext>Landed in r65337.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64296</attachid>
            <date>2010-08-12 21:28:51 -0700</date>
            <delta_ts>2010-08-13 01:26:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>49798</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NTI5NikKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsOTQgQEAKKzIwMTAtMDgtMTIgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgZm9y
bSBzdWJtaXNzaW9uIGxpc3RlbmVyIHRvIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzOTQ3CisKKyAgICAgICAgKiBTaGFyZWQvQVBJT2Jq
ZWN0Lmg6CisgICAgICAgIEFkZCBUeXBlRm9ybVN1Ym1pc3Npb25MaXN0ZW5lciBBUElUeXBlLgor
ICAgICAgICAKKyAgICAgICAgKiBTaGFyZWQvQ29yZUlQQ1N1cHBvcnQvV2ViUGFnZVByb3h5TWVz
c2FnZUtpbmRzLmg6CisgICAgICAgIEFkZCBXaWxsU3VibWl0Rm9ybSBtZXNzYWdlIGtpbmQuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgIEFkZCBuZXcg
bWFwcGluZ3MgZm9yIFdLRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclJlZiAtPiBXZWJGb3JtU3VibWlz
c2lvbkxpc3RlbmVyCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tCYXNlLmg6CisgICAg
ICAgIEFkZCBPcGFxdWVXS0Zvcm1TdWJtaXNzaW9uTGlzdGVuZXIgYW5kIHJlbmFtZSB0aGUgb3Ro
ZXIgb3BhcXVlIHR5cGVzIHRvIG1hdGNoLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dL
Rm9ybVN1Ym1pc3Npb25MaXN0ZW5lci5jcHA6IEFkZGVkLgorICAgICAgICAoV0tGb3JtU3VibWlz
c2lvbkxpc3RlbmVyR2V0VHlwZUlEKToKKyAgICAgICAgKFdLRm9ybVN1Ym1pc3Npb25MaXN0ZW5l
ckNvbnRpbnVlKToKKyAgICAgICAgKFdLRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclJldGFpbik6Cisg
ICAgICAgIChXS0Zvcm1TdWJtaXNzaW9uTGlzdGVuZXJSZWxlYXNlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0MvV0tGb3JtU3VibWlzc2lvbkxpc3RlbmVyLmg6IEFkZGVkLgorICAgICAgICBB
ZGQgQyB3cmFwcGVyIGZvciBXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyLgorCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VTZXRQYWdlRm9ybUNs
aWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oOgorICAgICAgICBBZGQg
V0tQYWdlRm9ybUNsaWVudCB3aXRoIHdpbGxTdWJtaXRGb3JtIGNhbGxiYWNrLiBBZGRpdGlvbmFs
IGNhbGxiYWNrcyB3aWxsIGJlIGFkZGVkIGFzCisgICAgICAgIG5lZWRlZC4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XZWJLaXQyLmg6CisgICAgICAgIEFkZCBpbmNsdWRlIGZvciBXS0Zv
cm1TdWJtaXNzaW9uTGlzdGVuZXIuaAorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkZvcm1DbGll
bnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRm9ybUNsaWVudDo6V2ViRm9ybUNs
aWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZvcm1DbGllbnQ6OmluaXRpYWxpemUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJGb3JtQ2xpZW50Ojp3aWxsU3VibWl0Rm9ybSk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYkZvcm1DbGllbnQuaDogQWRkZWQuCisgICAgICAgIEFkZCBjbGllbnQgZm9y
IGZvcm0gcmVsYXRlZCBkZWxhZ2F0aW9ucy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJGb3Jt
U3VibWlzc2lvbkxpc3RlbmVyUHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
Rm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5OjpXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJv
eHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHk6OmNv
bnRpbnVlU3VibWlzc2lvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkZvcm1TdWJtaXNzaW9u
TGlzdGVuZXJQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRm9ybVN1Ym1pc3Np
b25MaXN0ZW5lclByb3h5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGb3JtU3VibWlz
c2lvbkxpc3RlbmVyUHJveHk6OnR5cGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJGcmFtZUxp
c3RlbmVyUHJveHkuY3BwOiBDb3BpZWQgZnJvbSBVSVByb2Nlc3MvV2ViRnJhbWVQb2xpY3lMaXN0
ZW5lclByb3h5LmNwcC4KKyAgICAgICAgQWRkIG5ldyB0eXBlIG9mIGxpc3RlbmVyIGZvciBmb3Jt
IHN1Ym1pc3Npb25zLiBJdCBpbmhlcml0cyBmcm9tIHRoZSBuZXcgYmFzZSBjbGFzcworICAgICAg
ICBmb3IgbGlzdGVuZXJzLCBXZWJGcmFtZUxpc3RlbmVyUHJveHkuCisKKyAgICAgICAgKFdlYktp
dDo6V2ViRnJhbWVMaXN0ZW5lclByb3h5OjpXZWJGcmFtZUxpc3RlbmVyUHJveHkpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJGcmFtZUxpc3RlbmVyUHJveHk6On5XZWJGcmFtZUxpc3RlbmVyUHJveHkp
OgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxpc3RlbmVyUHJveHk6OmludmFsaWRhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxpc3RlbmVyUHJveHk6OnJlY2VpdmVkUG9saWN5RGVj
aXNpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJGcmFtZUxpc3RlbmVyUHJveHkuaDogQ29w
aWVkIGZyb20gVUlQcm9jZXNzL1dlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eS5oLgorICAgICAg
ICBNb3ZlIGxvZ2ljIHRoYXQgd291bGQgaGF2ZSB0byBiZSBzaGFyZWQgYmV0d2VlbiBXZWJGcmFt
ZVBvbGljeUxpc3RlbmVyUHJveHkgYW5kCisgICAgICAgIFdlYkZvcm1TdWJtaXNzaW9uTGlzdGVu
ZXJQcm94eSBpbnRvIHNoYXJlZCBiYXNlIGNsYXNzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dl
YkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1l
UG9saWN5TGlzdGVuZXJQcm94eTo6V2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5KToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5Lmg6CisgICAgICAgIChX
ZWJLaXQ6OldlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5Ojp0eXBlKToKKyAgICAgICAgTW92ZSB0
byBpbmhlcml0aW5nIGZyb20gV2ViRnJhbWVMaXN0ZW5lclByb3h5LgorCisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZVByb3h5
OjpkaXNjb25uZWN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVQcm94eTo6cmVjZWl2ZWRQ
b2xpY3lEZWNpc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUHJveHk6OnNldFVwUG9s
aWN5TGlzdGVuZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUHJveHk6OnNldFVw
Rm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnJh
bWVQcm94eS5oOgorICAgICAgICBDaGFuZ2UgbGlzdGVuZXIgZnVuY3Rpb25zIHRvIGFjdCBvbiBX
ZWJGcmFtZUxpc3RlbmVyUHJveHlzIGFuZCBhZGQgc2V0VXBGb3JtU3VibWlzc2lvbkxpc3RlbmVy
UHJveHkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5Ojppbml0aWFsaXplRm9ybUNsaWVudCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OndpbGxTdWJtaXRGb3JtKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lmg6CisgICAgICAgIFBsdW1iIHRocm91Z2ggd2lsbFN1Ym1pdEZvcm0gY2FsbCBh
cyB3ZSBkbyB3aXRoIHRoZSBvdGhlciBsaXN0ZW5lcnMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFN1Ym1pdEZvcm0pOgorICAgICAg
ICBEaXR0by4KKworICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajog
QWRkIG5ldyBmaWxlcy4KKyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6IEFkZCBuZXcgZmls
ZXMuCisgICAgICAgICogd2luL1dlYktpdDJHZW5lcmF0ZWQubWFrZTogRGl0dG8uCisKIDIwMTAt
MDgtMTIgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcKSW5kZXg6IFdlYktpdDIvU2hhcmVkL0FQSU9iamVj
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCShyZXZpc2lvbiA2
NTI5MikKKysrIFdlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC00
NCw2ICs0NCw3IEBAIHB1YmxpYzoKICAgICAgICAgVHlwZUJhY2tGb3J3YXJkTGlzdCwKICAgICAg
ICAgVHlwZUJhY2tGb3J3YXJkTGlzdEl0ZW0sCiAgICAgICAgIFR5cGVDb250ZXh0LAorICAgICAg
ICBUeXBlRm9ybVN1Ym1pc3Npb25MaXN0ZW5lciwKICAgICAgICAgVHlwZUZyYW1lLAogICAgICAg
ICBUeXBlRnJhbWVQb2xpY3lMaXN0ZW5lciwKICAgICAgICAgVHlwZU5hdmlnYXRpb25EYXRhLApJ
bmRleDogV2ViS2l0Mi9TaGFyZWQvQ29yZUlQQ1N1cHBvcnQvV2ViUGFnZVByb3h5TWVzc2FnZUtp
bmRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9TaGFyZWQvQ29yZUlQQ1N1cHBvcnQvV2ViUGFn
ZVByb3h5TWVzc2FnZUtpbmRzLmgJKHJldmlzaW9uIDY1MjkyKQorKysgV2ViS2l0Mi9TaGFyZWQv
Q29yZUlQQ1N1cHBvcnQvV2ViUGFnZVByb3h5TWVzc2FnZUtpbmRzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTY0LDYgKzY0LDcgQEAgZW51bSBLaW5kIHsKICAgICBTZXRDdXJzb3IsCiAgICAgU2V0VG9v
bFRpcCwKICAgICBUYWtlRm9jdXMsCisgICAgV2lsbFN1Ym1pdEZvcm0sCiAgICAgCiAgICAgQmFj
a0ZvcndhcmRBZGRJdGVtLAogICAgIEJhY2tGb3J3YXJkR29Ub0l0ZW0sCkluZGV4OiBXZWJLaXQy
L1VJUHJvY2Vzcy9XZWJGb3JtQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJGb3JtQ2xpZW50LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYktpdDIvVUlQcm9jZXNz
L1dlYkZvcm1DbGllbnQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgIldlYkZvcm1DbGllbnQuaCIKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5o
IgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dl
YkZvcm1DbGllbnQ6OldlYkZvcm1DbGllbnQoKQoreworICAgIGluaXRpYWxpemUoMCk7Cit9CisK
K3ZvaWQgV2ViRm9ybUNsaWVudDo6aW5pdGlhbGl6ZShjb25zdCBXS1BhZ2VGb3JtQ2xpZW50KiBj
bGllbnQpCit7CisgICAgaWYgKGNsaWVudCAmJiAhY2xpZW50LT52ZXJzaW9uKQorICAgICAgICBt
X3BhZ2VGb3JtQ2xpZW50ID0gKmNsaWVudDsKKyAgICBlbHNlIAorICAgICAgICBtZW1zZXQoJm1f
cGFnZUZvcm1DbGllbnQsIDAsIHNpemVvZihtX3BhZ2VGb3JtQ2xpZW50KSk7Cit9CisKK2Jvb2wg
V2ViRm9ybUNsaWVudDo6d2lsbFN1Ym1pdEZvcm0oV2ViUGFnZVByb3h5KiBwYWdlLCBXZWJGcmFt
ZVByb3h5KiBmcmFtZSwgV2ViRnJhbWVQcm94eSogc291cmNlRnJhbWUsIFdlYkZvcm1TdWJtaXNz
aW9uTGlzdGVuZXJQcm94eSogbGlzdGVuZXIpCit7CisgICAgaWYgKCFtX3BhZ2VGb3JtQ2xpZW50
LndpbGxTdWJtaXRGb3JtKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBtX3BhZ2VGb3Jt
Q2xpZW50LndpbGxTdWJtaXRGb3JtKHRvUmVmKHBhZ2UpLCB0b1JlZihmcmFtZSksIHRvUmVmKHNv
dXJjZUZyYW1lKSwgdG9SZWYobGlzdGVuZXIpLCBtX3BhZ2VGb3JtQ2xpZW50LmNsaWVudEluZm8p
OworICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFdl
YktpdDIvVUlQcm9jZXNzL1dlYkZvcm1DbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJGb3JtQ2xpZW50LmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQyL1VJUHJvY2Vz
cy9XZWJGb3JtQ2xpZW50LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFdlYkZvcm1DbGllbnRfaAorI2RlZmluZSBXZWJGb3JtQ2xpZW50X2gKKwor
I2luY2x1ZGUgIldLUGFnZS5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlUHJveHk7CitjbGFzcyBXZWJGcmFtZVByb3h5Owor
Y2xhc3MgV2ViRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5OworCitjbGFzcyBXZWJGb3JtQ2xp
ZW50IHsKK3B1YmxpYzoKKyAgICBXZWJGb3JtQ2xpZW50KCk7CisgICAgdm9pZCBpbml0aWFsaXpl
KGNvbnN0IFdLUGFnZUZvcm1DbGllbnQqKTsKKworICAgIC8vIEZJWE1FOiBBZGQgdmFsdWUgZGlj
dGlvbmFyeSBhbmQgZm9ybSBlbGVtZW50IHJlZmVyZW5jZS4KKyAgICBib29sIHdpbGxTdWJtaXRG
b3JtKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgV2ViRm9y
bVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5Kik7IAorCitwcml2YXRlOgorICAgIFdLUGFnZUZvcm1D
bGllbnQgbV9wYWdlRm9ybUNsaWVudDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gV2ViRm9ybUNsaWVudF9oCkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJGb3Jt
U3VibWlzc2lvbkxpc3RlbmVyUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9j
ZXNzL1dlYkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eS5jcHAJKHJldmlzaW9uIDApCisrKyBX
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHkuY3BwCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgIldlYkZvcm1T
dWJtaXNzaW9uTGlzdGVuZXJQcm94eS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViRm9y
bVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5OjpXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHko
V2ViRnJhbWVQcm94eSogZnJhbWUsIHVpbnQ2NF90IGxpc3RlbmVySUQpCisgICAgOiBXZWJGcmFt
ZUxpc3RlbmVyUHJveHkoZnJhbWUsIGxpc3RlbmVySUQpCit7Cit9CisKK3ZvaWQgV2ViRm9ybVN1
Ym1pc3Npb25MaXN0ZW5lclByb3h5Ojpjb250aW51ZVN1Ym1pc3Npb24oKQoreworICAgIHJlY2Vp
dmVkUG9saWN5RGVjaXNpb24oV2ViQ29yZTo6UG9saWN5VXNlKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJGb3JtU3VibWlzc2lvbkxpc3Rl
bmVyUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJGb3JtU3VibWlz
c2lvbkxpc3RlbmVyUHJveHkuaAkocmV2aXNpb24gMCkKKysrIFdlYktpdDIvVUlQcm9jZXNzL1dl
YkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHlf
aAorI2RlZmluZSBXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHlfaAorCisjaW5jbHVkZSAi
V2ViRnJhbWVMaXN0ZW5lclByb3h5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBX
ZWJGcmFtZVByb3h5OworCitjbGFzcyBXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHkgOiBw
dWJsaWMgV2ViRnJhbWVMaXN0ZW5lclByb3h5IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3Qg
VHlwZSBBUElUeXBlID0gVHlwZUZvcm1TdWJtaXNzaW9uTGlzdGVuZXI7CisKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHk+IGNyZWF0ZShXZWJGcmFt
ZVByb3h5KiBmcmFtZSwgdWludDY0X3QgbGlzdGVuZXJJRCkKKyAgICB7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgV2ViRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5KGZyYW1lLCBsaXN0
ZW5lcklEKSk7CisgICAgfQorCisgICAgdm9pZCBjb250aW51ZVN1Ym1pc3Npb24oKTsKKworcHJp
dmF0ZToKKyAgICBXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHkoV2ViRnJhbWVQcm94eSos
IHVpbnQ2NF90IGxpc3RlbmVySUQpOworCisgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7
IHJldHVybiBBUElUeXBlOyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eV9oCkluZGV4OiBVSVByb2Nlc3MvV2ViRnJh
bWVMaXN0ZW5lclByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBVSVByb2Nlc3MvV2ViRnJhbWVMaXN0
ZW5lclByb3h5LmNwcAkocmV2aXNpb24gNjUyODcpCShmcm9tIFVJUHJvY2Vzcy9XZWJGcmFtZVBv
bGljeUxpc3RlbmVyUHJveHkuY3BwOjY1Mjg3KQorKysgVUlQcm9jZXNzL1dlYkZyYW1lTGlzdGVu
ZXJQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dlYkZy
YW1lTGlzdGVuZXJQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
RnJhbWVMaXN0ZW5lclByb3h5LmNwcAkocmV2aXNpb24gNjUyODcpCisrKyBXZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJGcmFtZUxpc3RlbmVyUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMywyOCAr
MjMsMjggQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaW5j
bHVkZSAiV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5LmgiCisjaW5jbHVkZSAiV2ViRnJhbWVM
aXN0ZW5lclByb3h5LmgiCiAKICNpbmNsdWRlICJXZWJGcmFtZVByb3h5LmgiCiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCi1XZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk6OldlYkZyYW1lUG9saWN5
TGlzdGVuZXJQcm94eShXZWJGcmFtZVByb3h5KiBmcmFtZSwgdWludDY0X3QgbGlzdGVuZXJJRCkK
K1dlYkZyYW1lTGlzdGVuZXJQcm94eTo6V2ViRnJhbWVMaXN0ZW5lclByb3h5KFdlYkZyYW1lUHJv
eHkqIGZyYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklEKQogICAgIDogbV9mcmFtZShmcmFtZSkKICAg
ICAsIG1fbGlzdGVuZXJJRChsaXN0ZW5lcklEKQogewogfQogCi1XZWJGcmFtZVBvbGljeUxpc3Rl
bmVyUHJveHk6On5XZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkoKQorV2ViRnJhbWVMaXN0ZW5l
clByb3h5Ojp+V2ViRnJhbWVMaXN0ZW5lclByb3h5KCkKIHsKIH0KIAotdm9pZCBXZWJGcmFtZVBv
bGljeUxpc3RlbmVyUHJveHk6OmludmFsaWRhdGUoKQordm9pZCBXZWJGcmFtZUxpc3RlbmVyUHJv
eHk6OmludmFsaWRhdGUoKQogewogICAgIG1fZnJhbWUgPSAwOwogfQogCi12b2lkIFdlYkZyYW1l
UG9saWN5TGlzdGVuZXJQcm94eTo6cmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihXZWJDb3JlOjpQb2xp
Y3lBY3Rpb24gYWN0aW9uKQordm9pZCBXZWJGcmFtZUxpc3RlbmVyUHJveHk6OnJlY2VpdmVkUG9s
aWN5RGVjaXNpb24oV2ViQ29yZTo6UG9saWN5QWN0aW9uIGFjdGlvbikKIHsKICAgICBpZiAoIW1f
ZnJhbWUpCiAgICAgICAgIHJldHVybjsKQEAgLTUzLDE5ICs1Myw0IEBAIHZvaWQgV2ViRnJhbWVQ
b2xpY3lMaXN0ZW5lclByb3h5OjpyZWNlaXYKICAgICBtX2ZyYW1lID0gMDsKIH0KIAotdm9pZCBX
ZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk6OnVzZSgpCi17Ci0gICAgcmVjZWl2ZWRQb2xpY3lE
ZWNpc2lvbihXZWJDb3JlOjpQb2xpY3lVc2UpOwotfQotCi12b2lkIFdlYkZyYW1lUG9saWN5TGlz
dGVuZXJQcm94eTo6ZG93bmxvYWQoKQotewotICAgIHJlY2VpdmVkUG9saWN5RGVjaXNpb24oV2Vi
Q29yZTo6UG9saWN5RG93bmxvYWQpOwotfQotCi12b2lkIFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQ
cm94eTo6aWdub3JlKCkKLXsKLSAgICByZWNlaXZlZFBvbGljeURlY2lzaW9uKFdlYkNvcmU6OlBv
bGljeUlnbm9yZSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogVUlQcm9jZXNz
L1dlYkZyYW1lTGlzdGVuZXJQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFVJUHJvY2Vzcy9XZWJGcmFt
ZUxpc3RlbmVyUHJveHkuaAkocmV2aXNpb24gNjUyODcpCShmcm9tIFVJUHJvY2Vzcy9XZWJGcmFt
ZVBvbGljeUxpc3RlbmVyUHJveHkuaDo2NTI4NykKKysrIFVJUHJvY2Vzcy9XZWJGcmFtZUxpc3Rl
bmVyUHJveHkuaAkod29ya2luZyBjb3B5KQpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJh
bWVMaXN0ZW5lclByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJh
bWVMaXN0ZW5lclByb3h5LmgJKHJldmlzaW9uIDY1Mjg3KQorKysgV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViRnJhbWVMaXN0ZW5lclByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDggKzIzLDggQEAK
ICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFdlYkZy
YW1lUG9saWN5TGlzdGVuZXJQcm94eV9oCi0jZGVmaW5lIFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQ
cm94eV9oCisjaWZuZGVmIFdlYkZyYW1lTGlzdGVuZXJQcm94eV9oCisjZGVmaW5lIFdlYkZyYW1l
TGlzdGVuZXJQcm94eV9oCiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KQEAgLTM1LDM1ICszNSwyMyBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgV2ViRnJhbWVQcm94eTsKIAotY2xhc3MgV2ViRnJhbWVQb2xpY3lMaXN0
ZW5lclByb3h5IDogcHVibGljIEFQSU9iamVjdCB7CitjbGFzcyBXZWJGcmFtZUxpc3RlbmVyUHJv
eHkgOiBwdWJsaWMgQVBJT2JqZWN0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgVHlwZSBB
UElUeXBlID0gVHlwZUZyYW1lUG9saWN5TGlzdGVuZXI7Ci0KLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk+IGNyZWF0ZShXZWJGcmFtZVByb3h5KiBmcmFt
ZSwgdWludDY0X3QgbGlzdGVuZXJJRCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5KGZyYW1lLCBsaXN0ZW5lcklEKSk7Ci0gICAg
fQotICAgIH5XZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkoKTsKLQotICAgIHZvaWQgdXNlKCk7
Ci0gICAgdm9pZCBkb3dubG9hZCgpOwotICAgIHZvaWQgaWdub3JlKCk7CisgICAgdmlydHVhbCB+
V2ViRnJhbWVMaXN0ZW5lclByb3h5KCk7CiAKICAgICB2b2lkIGludmFsaWRhdGUoKTsKLQogICAg
IHVpbnQ2NF90IGxpc3RlbmVySUQoKSBjb25zdCB7IHJldHVybiBtX2xpc3RlbmVySUQ7IH0KIAot
cHJpdmF0ZToKLSAgICBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkoV2ViRnJhbWVQcm94eSos
IHVpbnQ2NF90IGxpc3RlbmVySUQpOwotCi0gICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7
IHJldHVybiBBUElUeXBlOyB9Citwcm90ZWN0ZWQ6CisgICAgV2ViRnJhbWVMaXN0ZW5lclByb3h5
KFdlYkZyYW1lUHJveHkqLCB1aW50NjRfdCBsaXN0ZW5lcklEKTsKIAogICAgIHZvaWQgcmVjZWl2
ZWRQb2xpY3lEZWNpc2lvbihXZWJDb3JlOjpQb2xpY3lBY3Rpb24pOwogCitwcml2YXRlOgogICAg
IFJlZlB0cjxXZWJGcmFtZVByb3h5PiBtX2ZyYW1lOwogICAgIHVpbnQ2NF90IG1fbGlzdGVuZXJJ
RDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8gV2ViRnJhbWVQb2xp
Y3lMaXN0ZW5lclByb3h5X2gKKyNlbmRpZiAvLyBXZWJGcmFtZUxpc3RlbmVyUHJveHlfaApJbmRl
eDogV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHku
Y3BwCShyZXZpc2lvbiA2NTI5MikKKysrIFdlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUG9saWN5
TGlzdGVuZXJQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDI5ICszMCwxMCBAQAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eTo6V2ViRnJhbWVQ
b2xpY3lMaXN0ZW5lclByb3h5KFdlYkZyYW1lUHJveHkqIGZyYW1lLCB1aW50NjRfdCBsaXN0ZW5l
cklEKQotICAgIDogbV9mcmFtZShmcmFtZSkKLSAgICAsIG1fbGlzdGVuZXJJRChsaXN0ZW5lcklE
KQorICAgIDogV2ViRnJhbWVMaXN0ZW5lclByb3h5KGZyYW1lLCBsaXN0ZW5lcklEKQogewogfQog
Ci1XZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk6On5XZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJv
eHkoKQotewotfQotCi12b2lkIFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eTo6aW52YWxpZGF0
ZSgpCi17Ci0gICAgbV9mcmFtZSA9IDA7Ci19Ci0KLXZvaWQgV2ViRnJhbWVQb2xpY3lMaXN0ZW5l
clByb3h5OjpyZWNlaXZlZFBvbGljeURlY2lzaW9uKFdlYkNvcmU6OlBvbGljeUFjdGlvbiBhY3Rp
b24pCi17Ci0gICAgaWYgKCFtX2ZyYW1lKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2ZyYW1l
LT5yZWNlaXZlZFBvbGljeURlY2lzaW9uKGFjdGlvbiwgbV9saXN0ZW5lcklEKTsKLSAgICBtX2Zy
YW1lID0gMDsKLX0KLQogdm9pZCBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk6OnVzZSgpCiB7
CiAgICAgcmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihXZWJDb3JlOjpQb2xpY3lVc2UpOwpJbmRleDog
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5LmgJKHJl
dmlzaW9uIDY1MjkyKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQb2xpY3lMaXN0ZW5l
clByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDE2ICsyNiwxMSBAQAogI2lmbmRlZiBXZWJG
cmFtZVBvbGljeUxpc3RlbmVyUHJveHlfaAogI2RlZmluZSBXZWJGcmFtZVBvbGljeUxpc3RlbmVy
UHJveHlfaAogCi0jaW5jbHVkZSAiQVBJT2JqZWN0LmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9GcmFt
ZUxvYWRlclR5cGVzLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CisjaW5jbHVkZSAiV2ViRnJhbWVMaXN0ZW5lclByb3h5LmgiCiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCi1jbGFzcyBXZWJGcmFtZVByb3h5OwotCi1jbGFzcyBXZWJGcmFtZVBv
bGljeUxpc3RlbmVyUHJveHkgOiBwdWJsaWMgQVBJT2JqZWN0IHsKK2NsYXNzIFdlYkZyYW1lUG9s
aWN5TGlzdGVuZXJQcm94eSA6IHB1YmxpYyBXZWJGcmFtZUxpc3RlbmVyUHJveHkgewogcHVibGlj
OgogICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlRnJhbWVQb2xpY3lMaXN0ZW5l
cjsKIApAQCAtNDMsMjUgKzM4LDE1IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5KGZyYW1lLCBsaXN0ZW5lcklE
KSk7CiAgICAgfQotICAgIH5XZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkoKTsKIAogICAgIHZv
aWQgdXNlKCk7CiAgICAgdm9pZCBkb3dubG9hZCgpOwogICAgIHZvaWQgaWdub3JlKCk7CiAKLSAg
ICB2b2lkIGludmFsaWRhdGUoKTsKLQotICAgIHVpbnQ2NF90IGxpc3RlbmVySUQoKSBjb25zdCB7
IHJldHVybiBtX2xpc3RlbmVySUQ7IH0KLQogcHJpdmF0ZToKICAgICBXZWJGcmFtZVBvbGljeUxp
c3RlbmVyUHJveHkoV2ViRnJhbWVQcm94eSosIHVpbnQ2NF90IGxpc3RlbmVySUQpOwogCiAgICAg
dmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9Ci0KLSAgICB2b2lk
IHJlY2VpdmVkUG9saWN5RGVjaXNpb24oV2ViQ29yZTo6UG9saWN5QWN0aW9uKTsKLQotICAgIFJl
ZlB0cjxXZWJGcmFtZVByb3h5PiBtX2ZyYW1lOwotICAgIHVpbnQ2NF90IG1fbGlzdGVuZXJJRDsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
RnJhbWVQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQ
cm94eS5jcHAJKHJldmlzaW9uIDY1MjkyKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQ
cm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDggQEAKICNpbmNsdWRlICJXZWJG
cmFtZVByb3h5LmgiCiAKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKKyNpbmNsdWRlICJXZWJG
b3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHkuaCIKKyNpbmNsdWRlICJXZWJGcmFtZVBvbGljeUxp
c3RlbmVyUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtU3RyaW5nLmg+CiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNDYsOSArNDgsOSBAQCBXZWJGcmFtZVByb3h5Ojp+
V2ViRnJhbWVQcm94eSgpCiB2b2lkIFdlYkZyYW1lUHJveHk6OmRpc2Nvbm5lY3QoKQogewogICAg
IG1fcGFnZSA9IDA7Ci0gICAgaWYgKG1fcG9saWN5TGlzdGVuZXIpIHsKLSAgICAgICAgbV9wb2xp
Y3lMaXN0ZW5lci0+aW52YWxpZGF0ZSgpOwotICAgICAgICBtX3BvbGljeUxpc3RlbmVyID0gMDsK
KyAgICBpZiAobV9hY3RpdmVMaXN0ZW5lcikgeworICAgICAgICBtX2FjdGl2ZUxpc3RlbmVyLT5p
bnZhbGlkYXRlKCk7CisgICAgICAgIG1fYWN0aXZlTGlzdGVuZXIgPSAwOwogICAgIH0KIH0KIApA
QCAtOTAsMTcgKzkyLDI1IEBAIHZvaWQgV2ViRnJhbWVQcm94eTo6cmVjZWl2ZWRQb2xpY3lEZWNp
c2kKICAgICBpZiAoIW1fcGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNTRVJUKG1fcG9s
aWN5TGlzdGVuZXIpOwotICAgIEFTU0VSVChtX3BvbGljeUxpc3RlbmVyLT5saXN0ZW5lcklEKCkg
PT0gbGlzdGVuZXJJRCk7CisgICAgQVNTRVJUKG1fYWN0aXZlTGlzdGVuZXIpOworICAgIEFTU0VS
VChtX2FjdGl2ZUxpc3RlbmVyLT5saXN0ZW5lcklEKCkgPT0gbGlzdGVuZXJJRCk7CiAgICAgbV9w
YWdlLT5yZWNlaXZlZFBvbGljeURlY2lzaW9uKGFjdGlvbiwgdGhpcywgbGlzdGVuZXJJRCk7CiB9
CiAKIFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eSogV2ViRnJhbWVQcm94eTo6c2V0VXBQb2xp
Y3lMaXN0ZW5lclByb3h5KHVpbnQ2NF90IGxpc3RlbmVySUQpCiB7Ci0gICAgaWYgKG1fcG9saWN5
TGlzdGVuZXIpCi0gICAgICAgIG1fcG9saWN5TGlzdGVuZXItPmludmFsaWRhdGUoKTsKLSAgICBt
X3BvbGljeUxpc3RlbmVyID0gV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5OjpjcmVhdGUodGhp
cywgbGlzdGVuZXJJRCk7Ci0gICAgcmV0dXJuIG1fcG9saWN5TGlzdGVuZXIuZ2V0KCk7CisgICAg
aWYgKG1fYWN0aXZlTGlzdGVuZXIpCisgICAgICAgIG1fYWN0aXZlTGlzdGVuZXItPmludmFsaWRh
dGUoKTsKKyAgICBtX2FjdGl2ZUxpc3RlbmVyID0gV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5
OjpjcmVhdGUodGhpcywgbGlzdGVuZXJJRCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkZy
YW1lUG9saWN5TGlzdGVuZXJQcm94eSo+KG1fYWN0aXZlTGlzdGVuZXIuZ2V0KCkpOworfQorCitX
ZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHkqIFdlYkZyYW1lUHJveHk6OnNldFVwRm9ybVN1
Ym1pc3Npb25MaXN0ZW5lclByb3h5KHVpbnQ2NF90IGxpc3RlbmVySUQpCit7CisgICAgaWYgKG1f
YWN0aXZlTGlzdGVuZXIpCisgICAgICAgIG1fYWN0aXZlTGlzdGVuZXItPmludmFsaWRhdGUoKTsK
KyAgICBtX2FjdGl2ZUxpc3RlbmVyID0gV2ViRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5Ojpj
cmVhdGUodGhpcywgbGlzdGVuZXJJRCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkZvcm1T
dWJtaXNzaW9uTGlzdGVuZXJQcm94eSo+KG1fYWN0aXZlTGlzdGVuZXIuZ2V0KCkpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJv
eHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmgJKHJl
dmlzaW9uIDY1MjkyKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAjZGVmaW5lIFdlYkZyYW1lUHJveHlfaAogCiAj
aW5jbHVkZSAiQVBJT2JqZWN0LmgiCi0jaW5jbHVkZSAiV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclBy
b3h5LmgiCisjaW5jbHVkZSAiV2ViRnJhbWVMaXN0ZW5lclByb3h5LmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9GcmFtZUxvYWRlclR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVN0cmlu
Zy5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC00Miw2ICs0Miw4IEBAIG5hbWVzcGFj
ZSBDb3JlSVBDIHsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJQYWdlUHJveHk7Citj
bGFzcyBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk7CitjbGFzcyBXZWJGb3JtU3VibWlzc2lv
bkxpc3RlbmVyUHJveHk7CiAKIGNsYXNzIFdlYkZyYW1lUHJveHkgOiBwdWJsaWMgQVBJT2JqZWN0
IHsKIHB1YmxpYzoKQEAgLTc3LDYgKzc5LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCByZWNlaXZl
ZFBvbGljeURlY2lzaW9uKFdlYkNvcmU6OlBvbGljeUFjdGlvbiwgdWludDY0X3QgbGlzdGVuZXJJ
RCk7CiAgICAgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5KiBzZXRVcFBvbGljeUxpc3RlbmVy
UHJveHkodWludDY0X3QgbGlzdGVuZXJJRCk7CisgICAgV2ViRm9ybVN1Ym1pc3Npb25MaXN0ZW5l
clByb3h5KiBzZXRVcEZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eSh1aW50NjRfdCBsaXN0ZW5l
cklEKTsKIAogcHJpdmF0ZToKICAgICBXZWJGcmFtZVByb3h5KFdlYlBhZ2VQcm94eSogcGFnZSwg
dWludDY0X3QgZnJhbWVJRCk7CkBAIC04Nyw3ICs5MCw3IEBAIHByaXZhdGU6CiAgICAgTG9hZFN0
YXRlIG1fbG9hZFN0YXRlOwogICAgIFdURjo6U3RyaW5nIG1fdXJsOwogICAgIFdURjo6U3RyaW5n
IG1fcHJvdmlzaW9uYWxVUkw7Ci0gICAgUmVmUHRyPFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94
eT4gbV9wb2xpY3lMaXN0ZW5lcjsKKyAgICBSZWZQdHI8V2ViRnJhbWVMaXN0ZW5lclByb3h5PiBt
X2FjdGl2ZUxpc3RlbmVyOwogICAgIHVpbnQ2NF90IG1fZnJhbWVJRDsKIH07CiAKSW5kZXg6IFdl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkocmV2aXNpb24gNjUyOTIpCisrKyBXZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw4IEBA
CiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViRGF0YS5o
IgogI2luY2x1ZGUgIldlYkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViRm9ybVN1Ym1pc3Npb25MaXN0
ZW5lclByb3h5LmgiCisjaW5jbHVkZSAiV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5LmgiCiAj
aW5jbHVkZSAiV2ViUGFnZU1lc3NhZ2VLaW5kcy5oIgogI2luY2x1ZGUgIldlYlBhZ2VOYW1lc3Bh
Y2UuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlS2luZHMuaCIKQEAgLTExOCw2ICsx
MjAsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmluaXRpYWxpemVQb2xpY3lDbGllbgogICAgIG1f
cG9saWN5Q2xpZW50LmluaXRpYWxpemUocG9saWN5Q2xpZW50KTsKIH0KIAordm9pZCBXZWJQYWdl
UHJveHk6OmluaXRpYWxpemVGb3JtQ2xpZW50KGNvbnN0IFdLUGFnZUZvcm1DbGllbnQqIGZvcm1D
bGllbnQpCit7CisgICAgbV9mb3JtQ2xpZW50LmluaXRpYWxpemUoZm9ybUNsaWVudCk7Cit9CisK
IHZvaWQgV2ViUGFnZVByb3h5Ojppbml0aWFsaXplVUlDbGllbnQoY29uc3QgV0tQYWdlVUlDbGll
bnQqIGNsaWVudCkKIHsKICAgICBtX3VpQ2xpZW50LmluaXRpYWxpemUoY2xpZW50KTsKQEAgLTUz
Myw2ICs1NDAsMTYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcgog
ICAgICAgICAgICAgZGVjaWRlUG9saWN5Rm9yTUlNRVR5cGUod2ViRnJhbWUoZnJhbWVJRCksIE1J
TUVUeXBlLCB1cmwsIGxpc3RlbmVySUQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
KyAgICAgICAgY2FzZSBXZWJQYWdlUHJveHlNZXNzYWdlOjpXaWxsU3VibWl0Rm9ybTogeworICAg
ICAgICAgICAgdWludDY0X3QgZnJhbWVJRDsKKyAgICAgICAgICAgIHVpbnQ2NF90IHNvdXJjZUZy
YW1lSUQ7CisgICAgICAgICAgICB1aW50NjRfdCBsaXN0ZW5lcklEOworICAgICAgICAgICAgaWYg
KCFhcmd1bWVudHMtPmRlY29kZShDb3JlSVBDOjpPdXQoZnJhbWVJRCwgc291cmNlRnJhbWVJRCwg
bGlzdGVuZXJJRCkpKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHdpbGxT
dWJtaXRGb3JtKHdlYkZyYW1lKGZyYW1lSUQpLCB3ZWJGcmFtZShzb3VyY2VGcmFtZUlEKSwgbGlz
dGVuZXJJRCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICAKICAgICAg
ICAgY2FzZSBXZWJQYWdlUHJveHlNZXNzYWdlOjpEaWRSdW5KYXZhU2NyaXB0SW5NYWluRnJhbWU6
IHsKICAgICAgICAgICAgIFN0cmluZyByZXN1bHRTdHJpbmc7CiAgICAgICAgICAgICB1aW50NjRf
dCBjYWxsYmFja0lEOwpAQCAtODE3LDcgKzgzNCwxNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVj
aWRlUG9saWN5Rm9yTUlNRVR5CiAgICAgICAgIGxpc3RlbmVyLT51c2UoKTsKIH0KIAorLy8gRm9y
bUNsaWVudAorCit2b2lkIFdlYlBhZ2VQcm94eTo6d2lsbFN1Ym1pdEZvcm0oV2ViRnJhbWVQcm94
eSogZnJhbWUsIFdlYkZyYW1lUHJveHkqIHNvdXJjZUZyYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklE
KQoreworICAgIFJlZlB0cjxXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHk+IGxpc3RlbmVy
ID0gZnJhbWUtPnNldFVwRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5KGxpc3RlbmVySUQpOwor
ICAgIGlmICghbV9mb3JtQ2xpZW50LndpbGxTdWJtaXRGb3JtKHRoaXMsIGZyYW1lLCBzb3VyY2VG
cmFtZSwgbGlzdGVuZXIuZ2V0KCkpKQorICAgICAgICBsaXN0ZW5lci0+Y29udGludWVTdWJtaXNz
aW9uKCk7Cit9CisKIC8vIFVJQ2xpZW50CisKIFBhc3NSZWZQdHI8V2ViUGFnZVByb3h5PiBXZWJQ
YWdlUHJveHk6OmNyZWF0ZU5ld1BhZ2UoKQogewogICAgIHJldHVybiBtX3VpQ2xpZW50LmNyZWF0
ZU5ld1BhZ2UodGhpcyk7CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkocmV2aXNpb24g
NjUyOTIpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkod29ya2luZyBjb3B5
KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkdlbmVyaWNDYWxsYmFjay5oIgogI2luY2x1
ZGUgIldLQmFzZS5oIgogI2luY2x1ZGUgIldlYkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViRm9ybUNs
aWVudC5oIgogI2luY2x1ZGUgIldlYkZyYW1lUHJveHkuaCIKICNpbmNsdWRlICJXZWJIaXN0b3J5
Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViTG9hZGVyQ2xpZW50LmgiCkBAIC05NCw2ICs5NSw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldFBhZ2VDbGllbnQoUGFnZUNsaWVudCopOwogICAgIHZvaWQg
aW5pdGlhbGl6ZUxvYWRlckNsaWVudChjb25zdCBXS1BhZ2VMb2FkZXJDbGllbnQqKTsKICAgICB2
b2lkIGluaXRpYWxpemVQb2xpY3lDbGllbnQoY29uc3QgV0tQYWdlUG9saWN5Q2xpZW50Kik7Cisg
ICAgdm9pZCBpbml0aWFsaXplRm9ybUNsaWVudChjb25zdCBXS1BhZ2VGb3JtQ2xpZW50Kik7CiAg
ICAgdm9pZCBpbml0aWFsaXplVUlDbGllbnQoY29uc3QgV0tQYWdlVUlDbGllbnQqKTsKIAogICAg
IHZvaWQgcmV2aXZlKCk7CkBAIC0xOTAsNiArMTkyLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRl
Y2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXZWJGcmFtZVByb3h5KiwgV2ViQ29yZTo6TmF2
aWdhdGlvblR5cGUgbmF2aWdhdGlvblR5cGUsIGNvbnN0IFdURjo6U3RyaW5nJiB1cmwsIHVpbnQ2
NF90IGxpc3RlbmVySUQpOwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTUlNRVR5cGUoV2ViRnJh
bWVQcm94eSosIGNvbnN0IFdURjo6U3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgV1RGOjpTdHJpbmcm
IHVybCwgdWludDY0X3QgbGlzdGVuZXJJRCk7CiAKKyAgICB2b2lkIHdpbGxTdWJtaXRGb3JtKFdl
YkZyYW1lUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgdWludDY0X3QgbGlzdGVuZXJJRCk7CisKICAg
ICBQYXNzUmVmUHRyPFdlYlBhZ2VQcm94eT4gY3JlYXRlTmV3UGFnZSgpOwogICAgIHZvaWQgc2hv
d1BhZ2UoKTsKICAgICB2b2lkIGNsb3NlUGFnZSgpOwpAQCAtMjE1LDYgKzIxOSw3IEBAIHByaXZh
dGU6CiAgICAgUGFnZUNsaWVudCogbV9wYWdlQ2xpZW50OwogICAgIFdlYkxvYWRlckNsaWVudCBt
X2xvYWRlckNsaWVudDsKICAgICBXZWJQb2xpY3lDbGllbnQgbV9wb2xpY3lDbGllbnQ7CisgICAg
V2ViRm9ybUNsaWVudCBtX2Zvcm1DbGllbnQ7CiAgICAgV2ViVUlDbGllbnQgbV91aUNsaWVudDsK
IAogICAgIE93blB0cjxEcmF3aW5nQXJlYVByb3h5PiBtX2RyYXdpbmdBcmVhOwpJbmRleDogV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgJKHJldmlzaW9uIDY1MjkyKQorKysgV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDcg
QEAgY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0SXRlbTsKIGNsYXNzIFdlYkNvbnRleHQ7CiBjbGFz
cyBXZWJEYXRhOwogY2xhc3MgV2ViRXJyb3I7CitjbGFzcyBXZWJGb3JtU3VibWlzc2lvbkxpc3Rl
bmVyUHJveHk7CiBjbGFzcyBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk7CiBjbGFzcyBXZWJG
cmFtZVByb3h5OwogY2xhc3MgV2ViTmF2aWdhdGlvbkRhdGE7CkBAIC01OSw2ICs2MCw3IEBAIHRl
bXBsYXRlPD4gc3RydWN0IEFQSVR5cGVJbmZvPFdLQmFja0ZvcncKIHRlbXBsYXRlPD4gc3RydWN0
IEFQSVR5cGVJbmZvPFdLQmFja0ZvcndhcmRMaXN0UmVmPiAgICAgICAgICAgICB7IHR5cGVkZWYg
V2ViQmFja0ZvcndhcmRMaXN0KiBJbXBsVHlwZTsgfTsKIHRlbXBsYXRlPD4gc3RydWN0IEFQSVR5
cGVJbmZvPFdLQ29udGV4dFJlZj4gICAgICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgV2ViQ29u
dGV4dCogSW1wbFR5cGU7IH07CiB0ZW1wbGF0ZTw+IHN0cnVjdCBBUElUeXBlSW5mbzxXS0RhdGFS
ZWY+ICAgICAgICAgICAgICAgICAgICAgICAgeyB0eXBlZGVmIFdlYkRhdGEqIEltcGxUeXBlOyB9
OwordGVtcGxhdGU8PiBzdHJ1Y3QgQVBJVHlwZUluZm88V0tGb3JtU3VibWlzc2lvbkxpc3RlbmVy
UmVmPiAgICAgIHsgdHlwZWRlZiBXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHkqIEltcGxU
eXBlOyB9OwogdGVtcGxhdGU8PiBzdHJ1Y3QgQVBJVHlwZUluZm88V0tGcmFtZVBvbGljeUxpc3Rl
bmVyUmVmPiAgICAgICAgIHsgdHlwZWRlZiBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkqIElt
cGxUeXBlOyB9OwogdGVtcGxhdGU8PiBzdHJ1Y3QgQVBJVHlwZUluZm88V0tGcmFtZVJlZj4gICAg
ICAgICAgICAgICAgICAgICAgIHsgdHlwZWRlZiBXZWJGcmFtZVByb3h5KiBJbXBsVHlwZTsgfTsK
IHRlbXBsYXRlPD4gc3RydWN0IEFQSVR5cGVJbmZvPFdLTmF2aWdhdGlvbkRhdGFSZWY+ICAgICAg
ICAgICAgICB7IHR5cGVkZWYgV2ViTmF2aWdhdGlvbkRhdGEqIEltcGxUeXBlOyB9OwpAQCAtNzcs
NiArNzksNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBJbXBsVHlwZUluZm88V2ViQmFja0ZvCiB0ZW1w
bGF0ZTw+IHN0cnVjdCBJbXBsVHlwZUluZm88V2ViQ29udGV4dCo+ICAgICAgICAgICAgICAgICAg
ICAgeyB0eXBlZGVmIFdLQ29udGV4dFJlZiBBUElUeXBlOyB9OwogdGVtcGxhdGU8PiBzdHJ1Y3Qg
SW1wbFR5cGVJbmZvPFdlYkRhdGEqPiAgICAgICAgICAgICAgICAgICAgICAgIHsgdHlwZWRlZiBX
S0RhdGFSZWYgQVBJVHlwZTsgfTsKIHRlbXBsYXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxXZWJF
cnJvcio+ICAgICAgICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgV0tFcnJvclJlZiBBUElUeXBl
OyB9OwordGVtcGxhdGU8PiBzdHJ1Y3QgSW1wbFR5cGVJbmZvPFdlYkZvcm1TdWJtaXNzaW9uTGlz
dGVuZXJQcm94eSo+IHsgdHlwZWRlZiBXS0Zvcm1TdWJtaXNzaW9uTGlzdGVuZXJSZWYgQVBJVHlw
ZTsgfTsKIHRlbXBsYXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxXZWJGcmFtZVBvbGljeUxpc3Rl
bmVyUHJveHkqPiAgICB7IHR5cGVkZWYgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIEFQSVR5cGU7
IH07CiB0ZW1wbGF0ZTw+IHN0cnVjdCBJbXBsVHlwZUluZm88V2ViRnJhbWVQcm94eSo+ICAgICAg
ICAgICAgICAgICAgeyB0eXBlZGVmIFdLRnJhbWVSZWYgQVBJVHlwZTsgfTsKIHRlbXBsYXRlPD4g
c3RydWN0IEltcGxUeXBlSW5mbzxXZWJOYXZpZ2F0aW9uRGF0YSo+ICAgICAgICAgICAgICB7IHR5
cGVkZWYgV0tOYXZpZ2F0aW9uRGF0YVJlZiBBUElUeXBlOyB9OwpJbmRleDogV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tCYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tCYXNlLmgJKHJldmlzaW9uIDY1MjkyKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tCYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDIwICszNSwyMSBAQAogdHlwZWRlZiB1aW50
MzJfdCBXS1R5cGVJRDsKIHR5cGVkZWYgdm9pZCogV0tUeXBlUmVmOwogCi10eXBlZGVmIHN0cnVj
dCBPcGFxdWVXS0FycmF5UmVmKiBXS0FycmF5UmVmOwotdHlwZWRlZiBzdHJ1Y3QgT3BhcXVlV0tC
YWNrRm9yd2FyZExpc3RJdGVtUmVmKiBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWY7Ci10eXBlZGVm
IHN0cnVjdCBPcGFxdWVXS0JhY2tGb3J3YXJkTGlzdFJlZiogV0tCYWNrRm9yd2FyZExpc3RSZWY7
Cit0eXBlZGVmIHN0cnVjdCBPcGFxdWVXS0FycmF5KiBXS0FycmF5UmVmOwordHlwZWRlZiBzdHJ1
Y3QgT3BhcXVlV0tCYWNrRm9yd2FyZExpc3QqIFdLQmFja0ZvcndhcmRMaXN0UmVmOwordHlwZWRl
ZiBzdHJ1Y3QgT3BhcXVlV0tCYWNrRm9yd2FyZExpc3RJdGVtKiBXS0JhY2tGb3J3YXJkTGlzdEl0
ZW1SZWY7CiB0eXBlZGVmIHN0cnVjdCBPcGFxdWVXS0NvbnRleHQqIFdLQ29udGV4dFJlZjsKIHR5
cGVkZWYgc3RydWN0IE9wYXF1ZVdLRGF0YSogV0tEYXRhUmVmOwogdHlwZWRlZiBzdHJ1Y3QgT3Bh
cXVlV0tFcnJvciogV0tFcnJvclJlZjsKK3R5cGVkZWYgc3RydWN0IE9wYXF1ZVdLRm9ybVN1Ym1p
c3Npb25MaXN0ZW5lciogV0tGb3JtU3VibWlzc2lvbkxpc3RlbmVyUmVmOwogdHlwZWRlZiBzdHJ1
Y3QgT3BhcXVlV0tGcmFtZSogV0tGcmFtZVJlZjsKIHR5cGVkZWYgc3RydWN0IE9wYXF1ZVdLRnJh
bWVQb2xpY3lMaXN0ZW5lciogV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmOwotdHlwZWRlZiBzdHJ1
Y3QgT3BhcXVlV0tOYXZpZ2F0aW9uRGF0YVJlZiogV0tOYXZpZ2F0aW9uRGF0YVJlZjsKK3R5cGVk
ZWYgc3RydWN0IE9wYXF1ZVdLTmF2aWdhdGlvbkRhdGEqIFdLTmF2aWdhdGlvbkRhdGFSZWY7CiB0
eXBlZGVmIHN0cnVjdCBPcGFxdWVXS1BhZ2UqIFdLUGFnZVJlZjsKIHR5cGVkZWYgc3RydWN0IE9w
YXF1ZVdLUGFnZU5hbWVzcGFjZSogV0tQYWdlTmFtZXNwYWNlUmVmOwotdHlwZWRlZiBzdHJ1Y3Qg
T3BhcXVlV0tQcmVmZXJlbmNlc1JlZiogV0tQcmVmZXJlbmNlc1JlZjsKLXR5cGVkZWYgc3RydWN0
IE9wYXF1ZVdLU3RyaW5nUmVmKiBXS1N0cmluZ1JlZjsKLXR5cGVkZWYgc3RydWN0IE9wYXF1ZVdL
VVJMUmVmKiBXS1VSTFJlZjsKK3R5cGVkZWYgc3RydWN0IE9wYXF1ZVdLUHJlZmVyZW5jZXMqIFdL
UHJlZmVyZW5jZXNSZWY7Cit0eXBlZGVmIHN0cnVjdCBPcGFxdWVXS1N0cmluZyogV0tTdHJpbmdS
ZWY7Cit0eXBlZGVmIHN0cnVjdCBPcGFxdWVXS1VSTCogV0tVUkxSZWY7CiAKICN1bmRlZiBXS19F
WFBPUlQKICNpZiBkZWZpbmVkKFdLX05PX0VYUE9SVCkKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLRm9ybVN1Ym1pc3Npb25MaXN0ZW5lci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tGb3JtU3VibWlzc2lvbkxpc3RlbmVyLmNwcAkocmV2aXNpb24g
MCkKKysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLRm9ybVN1Ym1pc3Npb25MaXN0ZW5lci5j
cHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
V0tGb3JtU3VibWlzc2lvbkxpc3RlbmVyLmgiCisKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNp
bmNsdWRlICJXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHkuaCIKKwordXNpbmcgbmFtZXNw
YWNlIFdlYktpdDsKKworV0tUeXBlSUQgV0tGb3JtU3VibWlzc2lvbkxpc3RlbmVyR2V0VHlwZUlE
KCkKK3sKKyAgICByZXR1cm4gdG9SZWYoV2ViRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5OjpB
UElUeXBlKTsKK30KKwordm9pZCBXS0Zvcm1TdWJtaXNzaW9uTGlzdGVuZXJDb250aW51ZShXS0Zv
cm1TdWJtaXNzaW9uTGlzdGVuZXJSZWYgc3VibWlzc2lvbkxpc3RlbmVyKQoreworICAgIHRvV0so
c3VibWlzc2lvbkxpc3RlbmVyKS0+Y29udGludWVTdWJtaXNzaW9uKCk7Cit9CisKK1dLRm9ybVN1
Ym1pc3Npb25MaXN0ZW5lclJlZiBXS0Zvcm1TdWJtaXNzaW9uTGlzdGVuZXJSZXRhaW4oV0tGb3Jt
U3VibWlzc2lvbkxpc3RlbmVyUmVmIHN1Ym1pc3Npb25MaXN0ZW5lclJlZikKK3sKKyAgICB0b1dL
KHN1Ym1pc3Npb25MaXN0ZW5lclJlZiktPnJlZigpOworICAgIHJldHVybiBzdWJtaXNzaW9uTGlz
dGVuZXJSZWY7Cit9CisKK3ZvaWQgV0tGb3JtU3VibWlzc2lvbkxpc3RlbmVyUmVsZWFzZShXS0Zv
cm1TdWJtaXNzaW9uTGlzdGVuZXJSZWYgc3VibWlzc2lvbkxpc3RlbmVyUmVmKQoreworICAgIHRv
V0soc3VibWlzc2lvbkxpc3RlbmVyUmVmKS0+ZGVyZWYoKTsKK30KSW5kZXg6IFdlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLRm9ybVN1Ym1pc3Npb25MaXN0ZW5lci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLRm9ybVN1Ym1pc3Npb25MaXN0ZW5lci5oCShyZXZpc2lv
biAwKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tGb3JtU3VibWlzc2lvbkxpc3RlbmVy
LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdL
Rm9ybVN1Ym1pc3Npb25MaXN0ZW5lcl9oCisjZGVmaW5lIFdLRm9ybVN1Ym1pc3Npb25MaXN0ZW5l
cl9oCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMK
K2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS0Zvcm1TdWJtaXNz
aW9uTGlzdGVuZXJHZXRUeXBlSUQoKTsKKworV0tfRVhQT1JUIHZvaWQgV0tGb3JtU3VibWlzc2lv
bkxpc3RlbmVyQ29udGludWUoV0tGb3JtU3VibWlzc2lvbkxpc3RlbmVyUmVmIHN1Ym1pc3Npb25M
aXN0ZW5lcik7CisKK1dLX0VYUE9SVCBXS0Zvcm1TdWJtaXNzaW9uTGlzdGVuZXJSZWYgV0tGb3Jt
U3VibWlzc2lvbkxpc3RlbmVyUmV0YWluKFdLRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclJlZiBzdWJt
aXNzaW9uTGlzdGVuZXIpOworV0tfRVhQT1JUIHZvaWQgV0tGb3JtU3VibWlzc2lvbkxpc3RlbmVy
UmVsZWFzZShXS0Zvcm1TdWJtaXNzaW9uTGlzdGVuZXJSZWYgc3VibWlzc2lvbkxpc3RlbmVyKTsK
KworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworV0tfREVDTEFSRV9SRVRBSU5fUkVM
RUFTRV9PVkVSTE9BRFMoV0tGb3JtU3VibWlzc2lvbkxpc3RlbmVyKQorCisjZW5kaWYgLyogV0tG
b3JtU3VibWlzc2lvbkxpc3RlbmVyX2ggKi8KSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmNwcAkocmV2aXNpb24gNjUyOTIpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTUsNiArMTU1LDEyIEBAIHZvaWQgV0tQYWdlU2V0UGFn
ZVBvbGljeUNsaWVudChXS1BhZ2VSZWYKICAgICAgICAgdG9XSyhwYWdlUmVmKS0+aW5pdGlhbGl6
ZVBvbGljeUNsaWVudCh3a0NsaWVudCk7CiB9CiAKK3ZvaWQgV0tQYWdlU2V0UGFnZUZvcm1DbGll
bnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdLUGFnZUZvcm1DbGllbnQqIHdrQ2xpZW50KQor
eworICAgIGlmICh3a0NsaWVudCAmJiAhd2tDbGllbnQtPnZlcnNpb24pCisgICAgICAgIHRvV0so
cGFnZVJlZiktPmluaXRpYWxpemVGb3JtQ2xpZW50KHdrQ2xpZW50KTsKK30KKwogdm9pZCBXS1Bh
Z2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdLUGFnZVVJQ2xpZW50
ICogd2tDbGllbnQpCiB7CiAgICAgaWYgKHdrQ2xpZW50ICYmICF3a0NsaWVudC0+dmVyc2lvbikK
SW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCShyZXZpc2lvbiA2NTI5MikKKysrIFdlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTMsNiArMTEz
LDE2IEBAIHN0cnVjdCBXS1BhZ2VQb2xpY3lDbGllbnQgewogfTsKIHR5cGVkZWYgc3RydWN0IFdL
UGFnZVBvbGljeUNsaWVudCBXS1BhZ2VQb2xpY3lDbGllbnQ7CiAKKy8vIEZvcm0gQ2xpZW50Lgor
dHlwZWRlZiB2b2lkICgqV0tQYWdlV2lsbFN1Ym1pdEZvcm1DYWxsYmFjaykoV0tQYWdlUmVmIHBh
Z2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRnJhbWVSZWYgc291cmNlRnJhbWUsIFdLRm9ybVN1Ym1p
c3Npb25MaXN0ZW5lclJlZiBsaXN0ZW5lciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisKK3N0
cnVjdCBXS1BhZ2VGb3JtQ2xpZW50IHsKKyAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247CisgICAgY29u
c3Qgdm9pZCAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjbGllbnRJbmZvOworICAgIFdLUGFnZVdpbGxTdWJtaXRGb3JtQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbFN1Ym1pdEZvcm07Cit9Owor
dHlwZWRlZiBzdHJ1Y3QgV0tQYWdlRm9ybUNsaWVudCBXS1BhZ2VGb3JtQ2xpZW50OworCiAvLyBV
SSBDbGllbnQKIHR5cGVkZWYgV0tQYWdlUmVmICgqV0tQYWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNr
KShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQg
KCpXS1BhZ2VTaG93UGFnZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCAqY2xp
ZW50SW5mbyk7CkBAIC0xNjUsNiArMTc1LDcgQEAgV0tfRVhQT1JUIHZvaWQgV0tQYWdlUmVzdG9y
ZUZyb21TZXNzaW9uUwogCiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRQYWdlTG9hZGVyQ2xpZW50
KFdLUGFnZVJlZiBwYWdlLCBjb25zdCBXS1BhZ2VMb2FkZXJDbGllbnQqIGNsaWVudCk7CiBXS19F
WFBPUlQgdm9pZCBXS1BhZ2VTZXRQYWdlUG9saWN5Q2xpZW50KFdLUGFnZVJlZiBwYWdlLCBjb25z
dCBXS1BhZ2VQb2xpY3lDbGllbnQqIGNsaWVudCk7CitXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRQ
YWdlRm9ybUNsaWVudChXS1BhZ2VSZWYgcGFnZSwgY29uc3QgV0tQYWdlRm9ybUNsaWVudCogY2xp
ZW50KTsKIFdLX0VYUE9SVCB2b2lkIFdLUGFnZVNldFBhZ2VVSUNsaWVudChXS1BhZ2VSZWYgcGFn
ZSwgY29uc3QgV0tQYWdlVUlDbGllbnQqIGNsaWVudCk7CiAKIHR5cGVkZWYgdm9pZCAoKldLUGFn
ZVJ1bkphdmFTY3JpcHRGdW5jdGlvbikoV0tTdHJpbmdSZWYsIFdLRXJyb3JSZWYsIHZvaWQqKTsK
SW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dlYktpdDIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XZWJLaXQyLmgJKHJldmlzaW9uIDY1MjkyKQorKysgV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV2ViS2l0Mi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw5ICsy
OCwxMSBAQAogCiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KICNpbmNsdWRlIDxXZWJLaXQy
L1dLVHlwZS5oPgorCiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0JhY2tGb3J3YXJkTGlzdC5oPgogI2lu
Y2x1ZGUgPFdlYktpdDIvV0tCYWNrRm9yd2FyZExpc3RJdGVtLmg+CiAjaW5jbHVkZSA8V2ViS2l0
Mi9XS0NvbnRleHQuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLRm9ybVN1Ym1pc3Npb25MaXN0ZW5l
ci5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tGcmFtZS5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tG
cmFtZVBvbGljeUxpc3RlbmVyLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS05hdmlnYXRpb25EYXRh
Lmg+CkluZGV4OiBXZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2
aXNpb24gNjUyOTIpCisrKyBXZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkod29ya2luZyBjb3B5KQpAQCAtMjc2LDYgKzI3NiwxNCBAQAogCQlCQ0RCODZDMTEyMDBGQjk3
MDA3MjU0QkUgLyogV2ViVVJMLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQ0RCODZDMDEyMDBGQjk3MDA3MjU0QkUgLyogV2ViVVJMLmggKi87IH07CiAJ
CUJDREUwNTlCMTFDREE4QUUwMEU0MUFGMSAvKiBXZWJDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGll
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDREUw
NTk5MTFDREE4QUUwMEU0MUFGMSAvKiBXZWJDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQuaCAq
LzsgfTsKIAkJQkNERTA1OUMxMUNEQThBRTAwRTQxQUYxIC8qIFdlYkNvbnRleHRJbmplY3RlZEJ1
bmRsZUNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQ0RFMDU5QTExQ0RBOEFFMDBFNDFBRjEgLyogV2ViQ29udGV4dEluamVjdGVkQnVuZGxl
Q2xpZW50LmNwcCAqLzsgfTsKKwkJQkNFNDY5NTMxMjE0RTZDQjAwMEI5OEVCIC8qIFdlYkZvcm1D
bGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkNFNDY5NEYxMjE0RTZDQjAwMEI5OEVCIC8qIFdlYkZvcm1DbGllbnQuY3BwICovOyB9OworCQlC
Q0U0Njk1NDEyMTRFNkNCMDAwQjk4RUIgLyogV2ViRm9ybUNsaWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFNDY5NTAxMjE0RTZDQjAwMEI5OEVC
IC8qIFdlYkZvcm1DbGllbnQuaCAqLzsgfTsKKwkJQkNFNDY5NTUxMjE0RTZDQjAwMEI5OEVCIC8q
IFdlYkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0U0Njk1MTEyMTRFNkNCMDAwQjk4RUIgLyogV2Vi
Rm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5LmNwcCAqLzsgfTsKKwkJQkNFNDY5NTYxMjE0RTZD
QjAwMEI5OEVCIC8qIFdlYkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFNDY5NTIxMjE0RTZDQjAwMEI5
OEVCIC8qIFdlYkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eS5oICovOyB9OworCQlCQ0U0Njk1
OTEyMTRFREY0MDAwQjk4RUIgLyogV0tGb3JtU3VibWlzc2lvbkxpc3RlbmVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRTQ2OTU3MTIxNEVERjQw
MDBCOThFQiAvKiBXS0Zvcm1TdWJtaXNzaW9uTGlzdGVuZXIuY3BwICovOyB9OworCQlCQ0U0Njk1
QTEyMTRFREY0MDAwQjk4RUIgLyogV0tGb3JtU3VibWlzc2lvbkxpc3RlbmVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0U0Njk1ODEyMTRFREY0MDAw
Qjk4RUIgLyogV0tGb3JtU3VibWlzc2lvbkxpc3RlbmVyLmggKi87IH07CisJCUJDRTQ2OTc3MTIx
NEYyN0IwMDBCOThFQiAvKiBXZWJGcmFtZUxpc3RlbmVyUHJveHkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRTQ2OTc2MTIxNEYyN0IwMDBCOThFQiAv
KiBXZWJGcmFtZUxpc3RlbmVyUHJveHkuaCAqLzsgfTsKKwkJQkNFNDY5NzkxMjE0RjJCNDAwMEI5
OEVCIC8qIFdlYkZyYW1lTGlzdGVuZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0U0Njk3ODEyMTRGMkI0MDAwQjk4RUIgLyogV2ViRnJh
bWVMaXN0ZW5lclByb3h5LmNwcCAqLzsgfTsKIAkJQkNFRTk2NkMxMTJGQUY1NzAwNkJDQzI0IC8q
IEF0dGFjaG1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkNFRTk2NkExMTJGQUY1NzAwNkJDQzI0IC8qIEF0dGFjaG1lbnQuY3BwICovOyB9Owog
CQlCQ0VFOTY2RDExMkZBRjU3MDA2QkNDMjQgLyogQXR0YWNobWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFRTk2NkIxMTJGQUY1NzAwNkJDQzI0
IC8qIEF0dGFjaG1lbnQuaCAqLzsgfTsKIAkJQkNFRTk4QzYxMTMzMTRENzAwNkJDQzI0IC8qIFdl
YlBhZ2VOYW1lc3BhY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkNFRTk4QzQxMTMzMTRENzAwNkJDQzI0IC8qIFdlYlBhZ2VOYW1lc3BhY2UuY3Bw
ICovOyB9OwpAQCAtNjA3LDYgKzYxNSwxNCBAQAogCQlCQ0RCODZDMDEyMDBGQjk3MDA3MjU0QkUg
LyogV2ViVVJMLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlVSTC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0RFMDU5OTExQ0RBOEFFMDBFNDFBRjEgLyog
V2ViQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYkNvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQ0RFMDU5QTExQ0RBOEFFMDBFNDFBRjEgLyogV2ViQ29udGV4dElu
amVjdGVkQnVuZGxlQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlYkNvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUJDRTQ2OTRGMTIxNEU2Q0IwMDBCOThFQiAvKiBXZWJGb3JtQ2xpZW50LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkZvcm1DbGllbnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQ0U0Njk1MDEyMTRFNkNCMDAwQjk4RUIg
LyogV2ViRm9ybUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJG
b3JtQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDRTQ2OTUxMTIxNEU2
Q0IwMDBCOThFQiAvKiBXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHkuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclBy
b3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkNFNDY5NTIxMjE0RTZDQjAw
MEI5OEVCIC8qIFdlYkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkNFNDY5NTcxMjE0RURGNDAwMEI5OEVCIC8qIFdL
Rm9ybVN1Ym1pc3Npb25MaXN0ZW5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXS0Zvcm1TdWJtaXNzaW9uTGlzdGVuZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlCQ0U0Njk1ODEyMTRFREY0MDAwQjk4RUIgLyogV0tGb3JtU3VibWlzc2lvbkxp
c3RlbmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLRm9ybVN1Ym1pc3Np
b25MaXN0ZW5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQ0U0Njk3NjEyMTRG
MjdCMDAwQjk4RUIgLyogV2ViRnJhbWVMaXN0ZW5lclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYkZyYW1lTGlzdGVuZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlCQ0U0Njk3ODEyMTRGMkI0MDAwQjk4RUIgLyogV2ViRnJhbWVMaXN0ZW5l
clByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkZyYW1l
TGlzdGVuZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRUU5NjZB
MTEyRkFGNTcwMDZCQ0MyNCAvKiBBdHRhY2htZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEF0dGFjaG1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCQ0VFOTY2QjExMkZBRjU3MDA2QkNDMjQgLyogQXR0YWNobWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBdHRhY2htZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDRUU5OEM0MTEzMzE0RDcwMDZCQ0MyNCAvKiBXZWJQYWdlTmFtZXNwYWNlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlBhZ2VOYW1lc3BhY2Uu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTg5LDggKzEwMDUsMTQgQEAKIAkJ
CQlCQ0I5RTI0MTExMjBEQUNBMDBBMTM3RTAgLyogV2ViQ29udGV4dC5oICovLAogCQkJCUJDREUw
NTlBMTFDREE4QUUwMEU0MUFGMSAvKiBXZWJDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQuY3Bw
ICovLAogCQkJCUJDREUwNTk5MTFDREE4QUUwMEU0MUFGMSAvKiBXZWJDb250ZXh0SW5qZWN0ZWRC
dW5kbGVDbGllbnQuaCAqLywKKwkJCQlCQ0U0Njk0RjEyMTRFNkNCMDAwQjk4RUIgLyogV2ViRm9y
bUNsaWVudC5jcHAgKi8sCisJCQkJQkNFNDY5NTAxMjE0RTZDQjAwMEI5OEVCIC8qIFdlYkZvcm1D
bGllbnQuaCAqLywKKwkJCQlCQ0U0Njk1MTEyMTRFNkNCMDAwQjk4RUIgLyogV2ViRm9ybVN1Ym1p
c3Npb25MaXN0ZW5lclByb3h5LmNwcCAqLywKKwkJCQlCQ0U0Njk1MjEyMTRFNkNCMDAwQjk4RUIg
LyogV2ViRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5LmggKi8sCiAJCQkJQkNCOUY2OUYxMTIz
QTg0QjAwQTEzN0UwIC8qIFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eS5jcHAgKi8sCiAJCQkJ
QkNCOUY2OUUxMTIzQTg0QjAwQTEzN0UwIC8qIFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eS5o
ICovLAorCQkJCUJDRTQ2OTc4MTIxNEYyQjQwMDBCOThFQiAvKiBXZWJGcmFtZUxpc3RlbmVyUHJv
eHkuY3BwICovLAorCQkJCUJDRTQ2OTc2MTIxNEYyN0IwMDBCOThFQiAvKiBXZWJGcmFtZUxpc3Rl
bmVyUHJveHkuaCAqLywKIAkJCQlCQzExMUIwQTExMkY1RTRGMDAzMzdCQUIgLyogV2ViRnJhbWVQ
cm94eS5jcHAgKi8sCiAJCQkJQkM5QjM4OUYxMEY1MzhCRTAwNDQzQTE1IC8qIFdlYkZyYW1lUHJv
eHkuaCAqLywKIAkJCQlCQ0Y2OUY4NDExNzZDRDZGMDA0NzFBNTIgLyogV2ViSGlzdG9yeUNsaWVu
dC5jcHAgKi8sCkBAIC0xMDQ3LDYgKzEwNjksOCBAQAogCQkJCTUxNEFGNkM3MTIwOUVFNzMwMEEy
NkM5NyAvKiBXS0RhdGEuaCAqLywKIAkJCQk1MTZBNEE1ODEyMEExQUI1MDBDMDVCN0YgLyogV0tF
cnJvci5jcHAgKi8sCiAJCQkJNTE2QTRBNTcxMjBBMUFCNTAwQzA1QjdGIC8qIFdLRXJyb3IuaCAq
LywKKwkJCQlCQ0U0Njk1NzEyMTRFREY0MDAwQjk4RUIgLyogV0tGb3JtU3VibWlzc2lvbkxpc3Rl
bmVyLmNwcCAqLywKKwkJCQlCQ0U0Njk1ODEyMTRFREY0MDAwQjk4RUIgLyogV0tGb3JtU3VibWlz
c2lvbkxpc3RlbmVyLmggKi8sCiAJCQkJQkNEMDEzOTgxMTBGQTQyMDAwM0I4QTY3IC8qIFdLRnJh
bWUuY3BwICovLAogCQkJCUJDRDAxMzk3MTEwRkE0MjAwMDNCOEE2NyAvKiBXS0ZyYW1lLmggKi8s
CiAJCQkJQkNCOUY2QTQxMTIzREQwRDAwQTEzN0UwIC8qIFdLRnJhbWVQb2xpY3lMaXN0ZW5lci5j
cHAgKi8sCkBAIC0xNDQ4LDYgKzE0NzIsMTAgQEAKIAkJCQlCQzE0REY3NzEyMEI1Qjc5MDA4MjZD
MEMgLyogSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMx
NERGOUYxMjBCNjM1RjAwODI2QzBDIC8qIFdLQnVuZGxlU2NyaXB0V29ybGQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMTRFMTBBMTIwQjkwNUUwMDgyNkMwQyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VG
b3JtQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlCQ0U0Njk1NDEyMTRFNkNCMDAwQjk4RUIg
LyogV2ViRm9ybUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkNFNDY5NTYxMjE0RTZDQjAw
MEI5OEVCIC8qIFdlYkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQkNFNDY5NUExMjE0RURGNDAwMEI5OEVCIC8qIFdLRm9ybVN1Ym1pc3Npb25MaXN0ZW5l
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkNFNDY5NzcxMjE0RjI3QjAwMEI5OEVCIC8qIFdlYkZy
YW1lTGlzdGVuZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRl
cGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0xNjY0LDYgKzE2OTIsMTAgQEAK
IAkJCQlCQzE0REY3ODEyMEI1Qjc5MDA4MjZDMEMgLyogSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3Js
ZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzE0REY5RTEyMEI2MzVGMDA4MjZDMEMgLyogV0tC
dW5kbGVTY3JpcHRXb3JsZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzE0RTEwOTEyMEI5MDVF
MDA4MjZDMEMgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlCQ0U0Njk1MzEyMTRFNkNCMDAwQjk4RUIgLyogV2ViRm9ybUNsaWVudC5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlCQ0U0Njk1NTEyMTRFNkNCMDAwQjk4RUIgLyogV2ViRm9ybVN1Ym1p
c3Npb25MaXN0ZW5lclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDRTQ2OTU5MTIxNEVE
RjQwMDBCOThFQiAvKiBXS0Zvcm1TdWJtaXNzaW9uTGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQkNFNDY5NzkxMjE0RjJCNDAwMEI5OEVCIC8qIFdlYkZyYW1lTGlzdGVuZXJQcm94eS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAkocmV2aXNpb24gNjUy
OTIpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NjUsMTIgKzQ2NSwyMCBAQCB2b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFVuYWJsCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0K
IAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsU3VibWl0Rm9ybShGcmFt
ZVBvbGljeUZ1bmN0aW9uIGZ1bmN0aW9uLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4pCit2b2lkIFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxTdWJtaXRGb3JtKEZyYW1lUG9saWN5RnVu
Y3Rpb24gZnVuY3Rpb24sIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiBmb3JtU3RhdGUpCiB7Ci0gICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICBXZWJQYWdlKiB3ZWJQYWdlID0gbV9mcmFtZS0+cGFnZSgp
OworICAgIGlmICghd2ViUGFnZSkKKyAgICAgICAgcmV0dXJuOwogCi0gICAgRnJhbWUqIGNvcmVG
cmFtZSA9IG1fZnJhbWUtPmNvcmVGcmFtZSgpOwotICAgIChjb3JlRnJhbWUtPmxvYWRlcigpLT5w
b2xpY3lDaGVja2VyKCktPipmdW5jdGlvbikoUG9saWN5VXNlKTsKKyAgICAvLyBGSVhNRTogUGFz
cyBtb3JlIG9mIHRoZSBmb3JtIHN0YXRlLgorCisgICAgdWludDY0X3QgbGlzdGVuZXJJRCA9IG1f
ZnJhbWUtPnNldFVwUG9saWN5TGlzdGVuZXIoZnVuY3Rpb24pOworCisgICAgV2ViRnJhbWUqIHNv
dXJjZUZyYW1lID0gc3RhdGljX2Nhc3Q8V2ViRnJhbWVMb2FkZXJDbGllbnQqPihmb3JtU3RhdGUt
PnNvdXJjZUZyYW1lKCktPmxvYWRlcigpLT5jbGllbnQoKSktPndlYkZyYW1lKCk7ICAgIAorCisg
ICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKFdlYlBhZ2VQcm94eU1l
c3NhZ2U6OldpbGxTdWJtaXRGb3JtLCB3ZWJQYWdlLT5wYWdlSUQoKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29yZUlQQzo6SW4obV9mcmFtZS0+ZnJhbWVJ
RCgpLCBzb3VyY2VGcmFtZS0+ZnJhbWVJRCgpLCBsaXN0ZW5lcklEKSk7CiB9CiAKIHZvaWQgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkTG9hZE1haW5SZXNvdXJjZShEb2N1bWVudExv
YWRlciopCkluZGV4OiBXZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvago9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagkocmV2aXNpb24gNjUyOTIpCisrKyBXZWJLaXQyL3dp
bi9XZWJLaXQyLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMTA0OSw2ICsxMDQ5LDIyIEBACiAJ
CQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJv
Y2Vzc1xXZWJGb3JtQ2xpZW50LmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0K
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJGb3JtQ2xpZW50LmgiDQorCQkJCT4N
CisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3Nc
V2ViRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5LmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4N
CisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJGb3JtU3VibWlz
c2lvbkxpc3RlbmVyUHJveHkuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHku
Y3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KQEAgLTEwNTcsNiArMTA3MywxNCBAQAogCQkJCT4N
CiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3Nc
V2ViRnJhbWVMaXN0ZW5lclByb3h5LmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8Rmls
ZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJGcmFtZUxpc3RlbmVyUHJveHku
aCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XFVJUHJvY2Vzc1xXZWJGcmFtZVByb3h5LmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCkBAIC0x
MjIzLDYgKzEyNDcsMTQgQEAKIAkJCQkJCT4NCiAJCQkJCTwvRmlsZT4NCiAJCQkJCTxGaWxlDQor
CQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tGb3JtU3VibWlzc2lvbkxp
c3RlbmVyLmNwcCINCisJCQkJCQk+DQorCQkJCQk8L0ZpbGU+DQorCQkJCQk8RmlsZQ0KKwkJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXFdLRm9ybVN1Ym1pc3Npb25MaXN0ZW5l
ci5oIg0KKwkJCQkJCT4NCisJCQkJCTwvRmlsZT4NCisJCQkJCTxGaWxlDQogCQkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tGcmFtZS5jcHAiDQogCQkJCQkJPg0KIAkJCQkJ
PC9GaWxlPg0KSW5kZXg6IFdlYktpdDIvd2luL1dlYktpdDJHZW5lcmF0ZWQubWFrZQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQyL3dpbi9XZWJLaXQyR2VuZXJhdGVkLm1ha2UJKHJldmlzaW9uIDY1Mjky
KQorKysgV2ViS2l0Mi93aW4vV2ViS2l0MkdlbmVyYXRlZC5tYWtlCSh3b3JraW5nIGNvcHkpCkBA
IC0xMCw2ICsxMCw3IEBAIGFsbDoKICAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxD
XFdLQ29udGV4dFByaXZhdGUuaCIgIiQoV0VCS0lUT1VUUFVURElSKVxpbmNsdWRlXFdlYktpdDIi
CiAgICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElcQ1xXS0RhdGEuaCIgIiQoV0VCS0lU
T1VUUFVURElSKVxpbmNsdWRlXFdlYktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vz
c1xBUElcQ1xXS0Vycm9yLmgiICIkKFdFQktJVE9VVFBVVERJUilcaW5jbHVkZVxXZWJLaXQyIgor
ICAgIHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tGb3JtU3VibWlzc2lvbkxpc3Rl
bmVyLmgiICIkKFdFQktJVE9VVFBVVERJUilcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95
IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tGcmFtZS5oIiAiJChXRUJLSVRPVVRQVVRESVIpXGlu
Y2x1ZGVcV2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLRnJh
bWVQb2xpY3lMaXN0ZW5lci5oIiAiJChXRUJLSVRPVVRQVVRESVIpXGluY2x1ZGVcV2ViS2l0MiIK
ICAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLTmF2aWdhdGlvbkRhdGEuaCIg
IiQoV0VCS0lUT1VUUFVURElSKVxpbmNsdWRlXFdlYktpdDIiCg==
</data>
<flag name="review"
          id="52839"
          type_id="1"
          status="+"
          setter="jhoneycutt"
    />
          </attachment>
      

    </bug>

</bugzilla>