<?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>16657</bug_id>
          
          <creation_ts>2007-12-28 22:09:58 -0800</creation_ts>
          <short_desc>Acid3 failure since table.caption and table.thead do not work for nodes added by appendChild</short_desc>
          <delta_ts>2008-01-02 17:26:19 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>andersca</cc>
    
    <cc>bdakin</cc>
    
    <cc>darin</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>65557</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-12-28 22:09:58 -0800</bug_when>
    <thetext>Acid3 expects empty table caption to produce (!table.caption == false)

Likewise an empty tHead to produce (!table.tHead == false)

These both evaluate to empty strings in WebKit when set, but set to empty.  We&apos;ll have to check other browsers to see what they do (or check the spec(s).

    function () {
      // test 65: construct a table, and see if the table is as expected
      var ok = true;
      var table = document.createElement(&apos;table&apos;);
      table.appendChild(document.createElement(&apos;tbody&apos;));
      var tr1 = document.createElement(&apos;tr&apos;);
      table.appendChild(tr1);
      table.appendChild(document.createElement(&apos;caption&apos;));
      table.appendChild(document.createElement(&apos;thead&apos;));
      // &lt;table&gt;&lt;tbody/&gt;&lt;tr/&gt;&lt;caption/&gt;&lt;thead/&gt;
      table.insertBefore(table.firstChild.nextSibling, null); // move the &lt;tr/&gt; to the end
      // &lt;table&gt;&lt;tbody/&gt;&lt;caption/&gt;&lt;thead/&gt;&lt;tr/&gt;
      table.replaceChild(table.firstChild, table.lastChild); // move the &lt;tbody/&gt; to the end and remove the &lt;tr&gt;
      // &lt;table&gt;&lt;caption/&gt;&lt;thead/&gt;&lt;tbody/&gt;
      var tr2 = table.tBodies[0].insertRow(0);
      // &lt;table&gt;&lt;caption/&gt;&lt;thead/&gt;&lt;tbody&gt;&lt;tr/&gt;&lt;/tbody&gt;
      if ((table.tBodies[0].rows[0].rowIndex != 0) ||
          (table.tBodies[0].rows[0].sectionRowIndex != 0) ||
          (table.childNodes.length != 3) ||
          (!table.caption) ||
          (!table.tHead) ||
          (table.tFoot) ||
          (table.tBodies.length != 1) ||
          (table.rows.length != 1))
        ok = false;
      if (tr1.parentNode)
        ok = false;
      if ((table.caption != table.createCaption()) ||
          (table.tFoot != null) ||
          (table.tHead != table.createTHead()))
        ok = false;
      if (table.createTFoot() != table.tFoot)
        ok = false;
      // either: &lt;table&gt;&lt;caption/&gt;&lt;thead/&gt;&lt;tbody&gt;&lt;tr/&gt;&lt;/tbody&gt;&lt;tfoot/&gt;
      //     or: &lt;table&gt;&lt;caption/&gt;&lt;thead/&gt;&lt;tfoot/&gt;&lt;tbody&gt;&lt;tr/&gt;&lt;/tbody&gt;
      table.tHead.appendChild(tr1);
      // either: &lt;table&gt;&lt;caption/&gt;&lt;thead&gt;&lt;tr/&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr/&gt;&lt;/tbody&gt;&lt;tfoot/&gt;
      //     or: &lt;table&gt;&lt;caption/&gt;&lt;thead&gt;&lt;tr/&gt;&lt;/thead&gt;&lt;tfoot/&gt;&lt;tbody&gt;&lt;tr/&gt;&lt;/tbody&gt;
      if ((table.rows[0] != table.tHead.firstChild) ||
          (table.rows.length != 2) ||
          (table.rows[1] != table.tBodies[0].firstChild))
        ok = false;
      if (ok)
        return 5;
    },</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65816</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-12-30 23:45:23 -0800</bug_when>
    <thetext>It looks like the addChild logic is never called for appendChild, thus the HTMLTableElement doesn&apos;t know to fix up its m_caption pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65979</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-01-01 21:58:26 -0800</bug_when>
    <thetext>I&apos;ve got a fix for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65996</commentid>
    <comment_count>3</comment_count>
      <attachid>18233</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-01-01 22:38:30 -0800</bug_when>
    <thetext>Created attachment 18233
patch (fixes this and bug 16659 too)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66000</commentid>
    <comment_count>4</comment_count>
      <attachid>18233</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-01-01 22:53:55 -0800</bug_when>
    <thetext>Comment on attachment 18233
patch (fixes this and bug 16659 too)

I think this patch looks great.  I wondered what our testing coverage is for multiple &lt;tfoot&gt; &lt;thead&gt; elements is, since those look like edge cases we need to support (and looks like we try to currently).

I&apos;d r+ this, except that I don&apos;t 100% trust my review given my fatigue and lack of table knowledge.  A second pair of eyes is recommended before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66075</commentid>
    <comment_count>5</comment_count>
      <attachid>18233</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2008-01-02 15:45:14 -0800</bug_when>
    <thetext>Comment on attachment 18233
patch (fixes this and bug 16659 too)

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66084</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-01-02 17:26:19 -0800</bug_when>
    <thetext>r29101</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>18233</attachid>
            <date>2008-01-01 22:38:30 -0800</date>
            <delta_ts>2008-01-02 15:45:14 -0800</delta_ts>
            <desc>patch (fixes this and bug 16659 too)</desc>
            <filename>HTMLTablePatch.txt</filename>
            <type>text/plain</type>
            <size>90333</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyOTA3MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNzUgQEAKKzIwMDgtMDEtMDEgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gZml4
IGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjU3CisgICAgICAgICAg
QWNpZDMgZmFpbHVyZSBzaW5jZSB0YWJsZS5jYXB0aW9uIGFuZCB0YWJsZS50aGVhZCBkbyBub3Qg
d29yayBmb3Igbm9kZXMgYWRkZWQgYnkgYXBwZW5kQ2hpbGQKKyAgICAgICAgLSBmaXggaHR0cDov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2NTkKKyAgICAgICAgICBBY2lkMyBl
eHBlY3RzIEhUTUxUYWJsZUVsZW1lbnQucm93cyB0byBpbmNsdWRlIGEgPHRyPiBlbGVtZW50IHRo
YXQgaXMgYW4gaW1tZWRpYXRlIGNoaWxkIG9mIHRoZSA8dGFibGU+CisKKyAgICAgICAgVGVzdDog
ZG9tL2h0bWwvbGV2ZWwyL2h0bWwvSFRNTENvbGxlY3Rpb24wNy5odG1sCisgICAgICAgIFRlc3Q6
IGRvbS9odG1sL2xldmVsMi9odG1sL0hUTUxDb2xsZWN0aW9uMDguaHRtbAorICAgICAgICBUZXN0
OiBkb20vaHRtbC9sZXZlbDIveGh0bWwvSFRNTENvbGxlY3Rpb24wNy54aHRtbAorICAgICAgICBU
ZXN0OiBkb20vaHRtbC9sZXZlbDIveGh0bWwvSFRNTENvbGxlY3Rpb24wOC54aHRtbAorICAgICAg
ICBUZXN0OiBmYXN0L2RvbS9IVE1MVGFibGVFbGVtZW50L2Vhcmx5LWFjaWQzLTY1LWV4Y2VycHQu
aHRtbAorICAgICAgICBUZXN0OiBmYXN0L2RvbS9IVE1MVGFibGVFbGVtZW50L2Vhcmx5LWFjaWQz
LTY2LWV4Y2VycHQuaHRtbAorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06IEFkZGVkIEhUTUxU
YWJsZVJvd3NDb2xsZWN0aW9uLgorICAgICAgICAqIFdlYkNvcmUucHJvOiBEaXR0by4KKyAgICAg
ICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogRGl0dG8uCisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3Jl
U291cmNlcy5ia2w6IERpdHRvLgorCisgICAgICAgICogZG9tL1hNTFRva2VuaXplci5jcHA6IFRv
b2sgb3V0IHN0cmF5IGluY2x1ZGUuCisKKyAgICAgICAgKiBodG1sL0hUTUxDb2xsZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb2xsZWN0aW9uOjppdGVtQWZ0ZXIpOiBSZW1vdmVk
IGFsbCB0aGUgdGFibGUgcm93cyBjb2RlLCBzaW5jZSB3ZSBub3cgdXNlCisgICAgICAgIGEgc2Vw
YXJhdGUgY2xhc3MgZm9yIHRoYXQgY29sbGVjdGlvbi4gQWxzbyBnb3QgcmlkIG9mIHRoZSBkaXN0
aW5jdCB0eXBlcyBmb3IgY3VzdG9tIGNvbGxlY3Rpb25zCisgICAgICAgIHRoYXQgZG9uJ3QgbmVl
ZCB0aGVtICh1c2UgT3RoZXIgZm9yIGJvdGgpLgorICAgICAgICAqIGh0bWwvSFRNTENvbGxlY3Rp
b24uaDogQWxzbyBtYWRlIGZpcnN0SXRlbSBub24tdmlydHVhbCBiZWNhdXNlIGl0IGRvZXNuJ3Qg
bmVlZCB0byBiZSB2aXJ0dWFsLgorCisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbGxlY3Rpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1Db2xsZWN0aW9uOjpIVE1MRm9ybUNvbGxl
Y3Rpb24pOiBVc2UgT3RoZXIgaW5zdGVhZCBvZiBGb3JtRWxlbWVudHMKKyAgICAgICAgZm9yIHRo
ZSBIVE1MQ29sbGVjdGlvbiB0eXBlLgorCisgICAgICAgICogaHRtbC9IVE1MVGFibGVFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUVsZW1lbnQ6OkhUTUxUYWJsZUVsZW1l
bnQpOiBFbGltaW5hdGVkIG1faGVhZCwgbV9mb290LCBtX2ZpcnN0Qm9keSwgYW5kIG1fY2FwdGlv
bi4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUVsZW1lbnQ6OmNhcHRpb24pOiBBZGRlZCBu
b24taW5saW5lIHZlcnNpb24uIEZpbmRzIHRoZSBjYXB0aW9uIHJhdGhlciB0aGFuCisgICAgICAg
IGtlZXBpbmcgYSBwb2ludGVyIHRvIGl0LgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRhYmxlRWxl
bWVudDo6c2V0Q2FwdGlvbik6IFJld3JvdGUuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVGFibGVF
bGVtZW50Ojp0SGVhZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRhYmxlRWxlbWVu
dDo6c2V0VEhlYWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUVsZW1lbnQ6
OnRGb290KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MVGFibGVFbGVtZW50OjpzZXRU
Rm9vdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRhYmxlRWxlbWVudDo6Y3JlYXRl
VEhlYWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUVsZW1lbnQ6OmRlbGV0
ZVRIZWFkKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MVGFibGVFbGVtZW50OjpjcmVh
dGVURm9vdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRhYmxlRWxlbWVudDo6ZGVs
ZXRlVEZvb3QpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUVsZW1lbnQ6OmNy
ZWF0ZUNhcHRpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUVsZW1lbnQ6
OmRlbGV0ZUNhcHRpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUVsZW1l
bnQ6Omxhc3RCb2R5KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVGFibGVFbGVtZW50
OjppbnNlcnRSb3cpOiBSZXdyb3RlIHRvIHVzZSBhIGxvb3AgYmFzZWQgb24gY29kZSBpbiBIVE1M
VGFibGVSb3dzQ29sbGVjdGlvbi4KKyAgICAgICAgVGhpcyBpcyBkaWZmZXJlbnQgZnJvbSB0aGUg
b2xkIGNvZGUgbWFpbmx5IGluIGhvdyBpdCBoYW5kbGVzIHJvd3Mgb3V0c2lkZSBhbnkgc2VjdGlv
bi4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUVsZW1lbnQ6OmRlbGV0ZVJvdyk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRhYmxlRWxlbWVudDo6YWRkQ2hpbGQpOiBSZW1vdmVk
IGNvZGUgdG8gc2V0IHRoZSB2YXJpb3VzIG1lbWJlcnMuIEtlZXBpbmcgcG9pbnRlcnMgdG8KKyAg
ICAgICAgdGhlc2Ugd2FzIGEgcG9zc2libGUgc291cmNlIG9mIHNlcmlvdXMgYnVncyB0b28sIGlu
Y2x1ZGluZyBjcmFzaGVzIHdpdGggc3RhbGUgcG9pbnRlcnMsIGFsdGhvdWdoIEkKKyAgICAgICAg
ZGlkbid0IHdyaXRlIGFueSB0ZXN0IGNhc2VzIHRvIHByb3ZlIHRob3NlIGJ1Z3MgZXhpc3RlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRl
KTogQ2hhbmdlZCB0aGUgcnVsZXMgY29kZSB0byB2aXNpdCBhbGwgY2VsbHMsIG5vdAorICAgICAg
ICBqdXN0IHRoZSBjZWxscyBvZiB0aGUgZmlyc3QgYm9keS4gSSBiZWxpZXZlIHRoaXMgZml4ZWQg
cmVuZGVyaW5nIG9uIHNvbWUgdGFibGUgdGVzdHMuIEkgdGhpbmsgdGhlIGNvZGUKKyAgICAgICAg
dmlzaXRzIHRvbyBtYW55IGNlbGxzIGFuZCBhbHNvIHRoZSB1c2Ugb2YgcmVjdXJzaW9uIGlzIG92
ZXJraWxsLCBidXQgSSBkaWRuJ3QgdHJ5IHRvIGZpeCB0aGF0LgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFRhYmxlRWxlbWVudDo6cm93cyk6IENoYW5nZWQgdG8gdXNlIHRoZSBuZXcgSFRNTFRhYmxl
Um93c0NvbGxlY3Rpb24uCisgICAgICAgICogaHRtbC9IVE1MVGFibGVFbGVtZW50Lmg6IENoYW5n
ZWQgZnVuY3Rpb25zIHRvIHJldHVybiBQYXNzUmVmUHRyLCB3aGljaCBjYW4gYmUgaW1wb3J0YW50
IGlmIHN0cmFuZ2UKKyAgICAgICAgdGhpbmdzIGxpa2UgRE9NIG11dGF0aW9uIGV2ZW50cyB0YWtl
IHRoaW5ncyBvdCBvZiB0aGUgdHJlZSBiZWZvcmUgdGhleSBhcmUgc2FmZWx5IHJlZmVyZW5jZWQg
YnkKKyAgICAgICAgSmF2YVNjcmlwdCB3cmFwcGVycy4gQWxzbyBjaGFuZ2VkIGZ1bmN0aW9ucyB0
byB0YWtlIFBhc3NSZWZQdHIgYW5kIGFkZGVkIGV4Y2VwdGlvbnMuIFJlbW92ZWQgdW5uZWVkZWQK
KyAgICAgICAgZmlyc3RUQm9keSBhbmQgc2V0VEJvZHkgZnVuY3Rpb25zIGFuZCBjaGlsZHJlbkNo
YW5nZWQgZnVuY3Rpb24gb3ZlcnJpZGUsIGFzIHdlbGwgYXMgdW51c2VkIFJ1bGVzIGFuZAorICAg
ICAgICBGcmFtZSBlbnVtcy4gUmVtb3ZlZCBtX2hlYWQsIG1fZm9vdCwgbV9maXJzdEJvZHksIGFu
ZCBtX2NhcHRpb24sIGFuZCBhZGRlZCBsYXN0Qm9keSBmdW5jdGlvbi4gUmVtb3ZlZAorICAgICAg
ICB1bm5lZWRlZCBmcmllbmQgZGVjbGFyYXRpb24gZm9yIEhUTUxUYWJsZUNlbGxFbGVtZW50Lgor
ICAgICAgICAqIGh0bWwvSFRNTFRhYmxlRWxlbWVudC5pZGw6IEFsbG93IHRoZSBzZXR0ZXJlcyBm
b3IgY2FwdGlvbiwgdEhlYWQsIGFuZCB0Rm9vdCB0byByYWlzZSBleGNlcHRpb25zLgorCisgICAg
ICAgICogaHRtbC9IVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5jcHA6IEFkZGVkLiBJbXBsZW1lbnRz
IHRoZSBIVE1MIDUgcnVsZSBmb3Igd2hpY2ggcm93cyBhcmUgaW4gdGhlCisgICAgICAgIGNvbGxl
Y3Rpb24gaW4gd2hpY2ggb3JkZXIuCisgICAgICAgICogaHRtbC9IVE1MVGFibGVSb3dzQ29sbGVj
dGlvbi5oOiBBZGRlZC4KKwogMjAwOC0wMS0wMSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluLgpJbmRleDogV2ViQ29yZS9HTlVtYWtlZmls
ZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCShyZXZpc2lvbiAyOTA2
NCkKKysrIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTcyMiw2ICs3
MjIsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVt
ZW50LmNwcCBcCiAJV2ViQ29yZS9odG1sL0hUTUxUYWJsZVBhcnRFbGVtZW50LmNwcCBcCiAJV2Vi
Q29yZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuY3BwIFwKKwlXZWJDb3JlL2h0bWwvSFRNTFRh
YmxlUm93c0NvbGxlY3Rpb24uY3BwIFwKIAlXZWJDb3JlL2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVs
ZW1lbnQuY3BwIFwKIAlXZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAgXAogCVdl
YkNvcmUvaHRtbC9IVE1MVGV4dEZpZWxkSW5uZXJFbGVtZW50LmNwcCBcCkluZGV4OiBXZWJDb3Jl
L1dlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9u
IDI5MDY0KQorKysgV2ViQ29yZS9XZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtNjU1LDYg
KzY1NSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGh0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAgXAog
ICAgIGh0bWwvSFRNTFRhYmxlUGFydEVsZW1lbnQuY3BwIFwKICAgICBodG1sL0hUTUxUYWJsZVJv
d0VsZW1lbnQuY3BwIFwKKyAgICBodG1sL0hUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmNwcCBcCiAg
ICAgaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAgXAogICAgIGh0bWwvSFRNTFRleHRB
cmVhRWxlbWVudC5jcHAgXAogICAgIGh0bWwvSFRNTFRleHRGaWVsZElubmVyRWxlbWVudC5jcHAg
XApJbmRleDogV2ViQ29yZS9XZWJDb3JlU291cmNlcy5ia2wKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9XZWJDb3JlU291cmNlcy5ia2wJKHJldmlzaW9uIDI5MDY0KQorKysgV2ViQ29yZS9XZWJDb3Jl
U291cmNlcy5ia2wJKHdvcmtpbmcgY29weSkKQEAgLTQ4MCw2ICs0ODAsNyBAQCBUaGlzIGZpbGUg
Y29udGFpbnMgdGhlIGxpc3Qgb2YgZmlsZXMgbmVlCiAgICAgICAgIGh0bWwvSFRNTFRhYmxlRWxl
bWVudC5jcHAKICAgICAgICAgaHRtbC9IVE1MVGFibGVQYXJ0RWxlbWVudC5jcHAKICAgICAgICAg
aHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmNwcAorICAgICAgICBodG1sL0hUTUxUYWJsZVJvd3ND
b2xsZWN0aW9uLmNwcAogICAgICAgICBodG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcAog
ICAgICAgICBodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCiAgICAgICAgIGh0bWwvSFRNTFRl
eHRGaWVsZElubmVyRWxlbWVudC5jcHAKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagkocmV2aXNpb24gMjkwNjQpCisrKyBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC03MzkzLDYgKzczOTMsMTQgQEAKIAkJCQk+CiAJ
CQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxIVE1MVGFibGVS
b3dzQ29sbGVjdGlvbi5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRp
dmVQYXRoPSIuLlxodG1sXEhUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmgiCisJCQkJPgorCQkJPC9G
aWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcSFRNTFRhYmxlU2VjdGlv
bkVsZW1lbnQuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyOTA2NCkKKysrIFdlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xNTI3LDYg
KzE1MjcsOCBAQAogCQk5MzNBMTRBQTBCN0QxRDA5MDBBNTNGRkQgLyogRE9NVGV4dEV2ZW50Lm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzQTE0QTkw
QjdEMUQwOTAwQTUzRkZEIC8qIERPTVRleHRFdmVudC5tbSAqLzsgfTsKIAkJOTMzQTE0QjgwQjdE
MUQ1MjAwQTUzRkZEIC8qIEpTVGV4dEV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzM0ExNEI2MEI3RDFENTIwMEE1M0ZGRCAvKiBKU1RleHRF
dmVudC5jcHAgKi87IH07CiAJCTkzM0ExNEI5MEI3RDFENTIwMEE1M0ZGRCAvKiBKU1RleHRFdmVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzQTE0
QjcwQjdEMUQ1MjAwQTUzRkZEIC8qIEpTVGV4dEV2ZW50LmggKi87IH07CisJCTkzNDQyQzlFMEQy
QjMzNUMwMDMzOEZGOSAvKiBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0NDJDOUQwRDJCMzM1QzAwMzM4RkY5
IC8qIEhUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmggKi87IH07CisJCTkzNDQyQ0EwMEQyQjMzNjAw
MDMzOEZGOSAvKiBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ0MkM5RjBEMkIzMzYwMDAzMzhGRjkgLyog
SFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uY3BwICovOyB9OwogCQk5MzREOUJBNTBCOEMxMTZCMDA3
QjQyQTkgLyogV2ViQ29yZU5TU3RyaW5nRXh0cmFzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0RDlCQTQwQjhDMTE2QjAwN0I0MkE5IC8qIFdlYkNv
cmVOU1N0cmluZ0V4dHJhcy5tbSAqLzsgfTsKIAkJOTM0RDlCQTcwQjhDMTE3NTAwN0I0MkE5IC8q
IFdlYkNvcmVOU1N0cmluZ0V4dHJhcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTM0RDlCQTYwQjhDMTE3NTAwN0I0MkE5IC8qIFdlYkNvcmVOU1N0cmlu
Z0V4dHJhcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTkzNEZFOUU1MEI1Q0E1MzkwMDNFNEE3MyAvKiBGaWxlQ2hvb3Nlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzRGRTlFNDBCNUNBNTM5MDAz
RTRBNzMgLyogRmlsZUNob29zZXIuY3BwICovOyB9OwpAQCAtNTg3OCw2ICs1ODgwLDggQEAKIAkJ
OTMzQTE0QTkwQjdEMUQwOTAwQTUzRkZEIC8qIERPTVRleHRFdmVudC5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTVRleHRFdmVudC5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTMzQTE0QjYwQjdEMUQ1MjAwQTUzRkZEIC8qIEpTVGV4dEV2ZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVGV4dEV2ZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMzQTE0QjcwQjdEMUQ1MjAwQTUzRkZE
IC8qIEpTVGV4dEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVGV4
dEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDQyQzlEMEQyQjMzNUMw
MDMzOEZGOSAvKiBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5MzQ0MkM5RjBEMkIzMzYwMDAzMzhGRjkgLyogSFRNTFRhYmxlUm93c0Nv
bGxlY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTFRh
YmxlUm93c0NvbGxlY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzRE
OUJBNDBCOEMxMTZCMDA3QjQyQTkgLyogV2ViQ29yZU5TU3RyaW5nRXh0cmFzLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvcmVOU1N0cmluZ0V4dHJhcy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0RDlCQTYwQjhDMTE3NTAwN0I0MkE5
IC8qIFdlYkNvcmVOU1N0cmluZ0V4dHJhcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViQ29yZU5TU3RyaW5nRXh0cmFzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzNEZFOUU0MEI1Q0E1MzkwMDNFNEE3MyAvKiBGaWxlQ2hvb3Nlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaWxlQ2hvb3Nlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xMDA2NSw2ICsxMDA2OSw4IEBACiAJCQkJQTg3MURCMjIwQTE1
MEJENjAwQjEyQTY4IC8qIEhUTUxUYWJsZVJvd0VsZW1lbnQuY3BwICovLAogCQkJCUE4NzFEQjIz
MEExNTBCRDYwMEIxMkE2OCAvKiBIVE1MVGFibGVSb3dFbGVtZW50LmggKi8sCiAJCQkJODU1NTQy
NUIwQUE0OEIxRTAwQkE4OUYyIC8qIEhUTUxUYWJsZVJvd0VsZW1lbnQuaWRsICovLAorCQkJCTkz
NDQyQzlEMEQyQjMzNUMwMDMzOEZGOSAvKiBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5oICovLAor
CQkJCTkzNDQyQzlGMEQyQjMzNjAwMDMzOEZGOSAvKiBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5j
cHAgKi8sCiAJCQkJQTg3MURCMTgwQTE1MEJENjAwQjEyQTY4IC8qIEhUTUxUYWJsZVNlY3Rpb25F
bGVtZW50LmNwcCAqLywKIAkJCQlBODcxREIxNzBBMTUwQkQ2MDBCMTJBNjggLyogSFRNTFRhYmxl
U2VjdGlvbkVsZW1lbnQuaCAqLywKIAkJCQk4NTU1NDI1QzBBQTQ4QjFFMDBCQTg5RjIgLyogSFRN
TFRhYmxlU2VjdGlvbkVsZW1lbnQuaWRsICovLApAQCAtMTQyODEsNiArMTQyODcsNyBAQAogCQkJ
CUJDRTNCRUMzMEQyMjJCMUQwMDdFMDZFNCAvKiBUYWdOb2RlTGlzdC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkM2MEQ2RTkwRDI4RDgzNDAwQjk5MThGIC8qIERPTUNvcmVFeGNlcHRpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDNjBEN0MxMEQyOUE0NjMwMEI5OTE4RiAvKiBKU0RPTUNvcmVFeGNl
cHRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDQyQzlFMEQyQjMzNUMwMDMzOEZGOSAvKiBI
VE1MVGFibGVSb3dzQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25s
eUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0xNjAxOCw2ICsxNjAy
NSw3IEBACiAJCQkJQkNFM0JFQzIwRDIyMkIxRDAwN0UwNkU0IC8qIFRhZ05vZGVMaXN0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUJDNjBEN0MwMEQyOUE0NjMwMEI5OTE4RiAvKiBKU0RPTUNvcmVF
eGNlcHRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM2MEQ4MDQwRDI5QTlFODAwQjk5MThG
IC8qIERPTUNvcmVFeGNlcHRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTM0NDJDQTAwRDJC
MzM2MDAwMzM4RkY5IC8qIEhUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpJbmRleDogV2ViQ29yZS9kb20vWE1MVG9rZW5pemVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2RvbS9YTUxUb2tlbml6ZXIuY3BwCShyZXZpc2lvbiAyOTA2NCkKKysrIFdlYkNvcmUvZG9t
L1hNTFRva2VuaXplci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyLDcgKzQyLDYgQEAKICNpbmNs
dWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MU2NyaXB0RWxlbWVudC5oIgogI2luY2x1
ZGUgIkhUTUxTdHlsZUVsZW1lbnQuaCIKLSNpbmNsdWRlICJIVE1MVGFibGVTZWN0aW9uRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxUb2tlbml6ZXIuaCIKICNpbmNsdWRlICJQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgpJbmRleDogV2ViQ29yZS9o
dG1sL0hUTUxDb2xsZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTENv
bGxlY3Rpb24uY3BwCShyZXZpc2lvbiAyOTA2NCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MQ29sbGVj
dGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBACiAvKgogICogQ29weXJpZ2h0
IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5
OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTM4
LDExICsxMzgsNiBAQCB2b2lkIEhUTUxDb2xsZWN0aW9uOjpyZXNldENvbGxlY3Rpb25JbmZvCiAg
ICAgfQogfQogCi1zdGF0aWMgYm9vbCBpc1RhYmxlU2VjdGlvbihFbGVtZW50KiBlbGVtZW50KQot
ewotICAgIHJldHVybiBlbGVtZW50LT5oYXNMb2NhbE5hbWUodGJvZHlUYWcpIHx8IGVsZW1lbnQt
Pmhhc0xvY2FsTmFtZSh0Zm9vdFRhZykgfHwgZWxlbWVudC0+aGFzTG9jYWxOYW1lKHRoZWFkVGFn
KTsKLX0KLQogc3RhdGljIE5vZGUqIG5leHROb2RlT3JTaWJsaW5nKE5vZGUqIGJhc2UsIE5vZGUq
IG5vZGUsIGJvb2wgaW5jbHVkZUNoaWxkcmVuKQogewogICAgIHJldHVybiBpbmNsdWRlQ2hpbGRy
ZW4gPyBub2RlLT50cmF2ZXJzZU5leHROb2RlKGJhc2UpIDogbm9kZS0+dHJhdmVyc2VOZXh0U2li
bGluZyhiYXNlKTsKQEAgLTE2Myw4ICsxNTgsOCBAQCBFbGVtZW50KiBIVE1MQ29sbGVjdGlvbjo6
aXRlbUFmdGVyKEVsZW1lCiAgICAgICAgIGNhc2UgRG9jT2JqZWN0czoKICAgICAgICAgY2FzZSBE
b2NTY3JpcHRzOgogICAgICAgICBjYXNlIERvY3VtZW50TmFtZWRJdGVtczoKLSAgICAgICAgY2Fz
ZSBGb3JtRWxlbWVudHM6CiAgICAgICAgIGNhc2UgTWFwQXJlYXM6CisgICAgICAgIGNhc2UgT3Ro
ZXI6CiAgICAgICAgIGNhc2UgU2VsZWN0T3B0aW9uczoKICAgICAgICAgY2FzZSBXaW5kb3dOYW1l
ZEl0ZW1zOgogICAgICAgICAgICAgYnJlYWs7CkBAIC0xNzQsMTEgKzE2OSw2IEBAIEVsZW1lbnQq
IEhUTUxDb2xsZWN0aW9uOjppdGVtQWZ0ZXIoRWxlbWUKICAgICAgICAgY2FzZSBUYWJsZVRCb2Rp
ZXM6CiAgICAgICAgICAgICBkZWVwID0gZmFsc2U7CiAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBUYWJsZVJvd3M6Ci0gICAgICAgICAgICAvLyBMb29rIGZvciB0YWJsZSByb3dzIGlu
c2lkZSB0YWJsZSBzZWN0aW9ucyB0aGF0IGFyZSBpbW1lZGlhdGVseSBpbnNpZGUKLSAgICAgICAg
ICAgIC8vIHRoZSB0YWJsZSwgYnV0IG5vdCBpbiBuZXN0ZWQgdGFibGUgc2VjdGlvbnMuCi0gICAg
ICAgICAgICBkZWVwID0gcHJldmlvdXMgJiYgcHJldmlvdXMtPnBhcmVudCgpID09IG1fYmFzZSAm
JiBpc1RhYmxlU2VjdGlvbihwcmV2aW91cyk7Ci0gICAgICAgICAgICBicmVhazsKICAgICB9CiAK
ICAgICBOb2RlKiBjdXJyZW50OwpAQCAtMjEyLDE4ICsyMDIsNiBAQCBFbGVtZW50KiBIVE1MQ29s
bGVjdGlvbjo6aXRlbUFmdGVyKEVsZW1lCiAgICAgICAgICAgICAgICAgaWYgKGUtPmhhc0xvY2Fs
TmFtZSh0ZFRhZykgfHwgZS0+aGFzTG9jYWxOYW1lKHRoVGFnKSkKICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGU7CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFRh
YmxlUm93czoKLSAgICAgICAgICAgICAgICAvLyBMb29rIGZvciB0YWJsZSByb3dzIGluc2lkZSB0
YWJsZSBzZWN0aW9ucyB0aGF0IGFyZSBpbW1lZGlhdGVseSBpbnNpZGUKLSAgICAgICAgICAgICAg
ICAvLyB0aGUgdGFibGUsIGJ1dCBub3QgaW4gbmVzdGVkIHRhYmxlIHNlY3Rpb25zLiBBY2NlcHQg
b25seSByb3dzIHRoYXQgYXJlCi0gICAgICAgICAgICAgICAgLy8gaW4gdGhvc2UgdGFibGUgc2Vj
dGlvbnMuCi0gICAgICAgICAgICAgICAgaWYgKGUtPnBhcmVudCgpID09IG1fYmFzZSkKLSAgICAg
ICAgICAgICAgICAgICAgZGVlcCA9IGlzVGFibGVTZWN0aW9uKGUpOwotICAgICAgICAgICAgICAg
IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBpZiAoZS0+aGFzTG9jYWxOYW1lKHRyVGFnKSkK
LSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlOwotICAgICAgICAgICAgICAgICAgICBk
ZWVwID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgY2FzZSBUU2VjdGlvblJvd3M6CiAgICAgICAgICAgICAgICAgaWYgKGUtPmhh
c0xvY2FsTmFtZSh0clRhZykpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlOwpAQCAtMjYy
LDcgKzI0MCw3IEBAIEVsZW1lbnQqIEhUTUxDb2xsZWN0aW9uOjppdGVtQWZ0ZXIoRWxlbWUKICAg
ICAgICAgICAgIGNhc2UgTm9kZUNoaWxkcmVuOgogICAgICAgICAgICAgICAgIHJldHVybiBlOwog
ICAgICAgICAgICAgY2FzZSBEb2N1bWVudE5hbWVkSXRlbXM6Ci0gICAgICAgICAgICBjYXNlIEZv
cm1FbGVtZW50czoKKyAgICAgICAgICAgIGNhc2UgT3RoZXI6CiAgICAgICAgICAgICBjYXNlIFdp
bmRvd05hbWVkSXRlbXM6CiAgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uaAkocmV2aXNpb24g
MjkwNjQpCisrKyBXZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uaAkod29ya2luZyBjb3B5KQpA
QCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25v
bGxAa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlz
dG9Aa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAw
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMs
IDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC02MSwxMyArNjEsMTMgQEAgcHVibGljOgogCiAg
ICAgICAgIC8vIHR5cGVzIG5vdCBjYWNoZWQgaW4gdGhlIGRvY3VtZW50OyB0aGVzZSBhcmUgdHlw
ZXMgdGhhdCBjYW4ndCBiZSB1c2VkIG9uIGEgZG9jdW1lbnQKIAotICAgICAgICBUYWJsZVJvd3Ms
ICAgIC8vIGFsbCByb3dzIGluIHRoaXMgdGFibGUgb3IgdGFibGUgc2VjdGlvbgogICAgICAgICBU
YWJsZVRCb2RpZXMsIC8vIGFsbCA8dGJvZHk+IGVsZW1lbnRzIGluIHRoaXMgdGFibGUKICAgICAg
ICAgVFNlY3Rpb25Sb3dzLCAvLyBhbGwgcm93IGVsZW1lbnRzIGluIHRoaXMgdGFibGUgc2VjdGlv
bgogICAgICAgICBUUkNlbGxzLCAgICAgIC8vIGFsbCBjZWxscyBpbiB0aGlzIHJvdwogICAgICAg
ICBTZWxlY3RPcHRpb25zLAogICAgICAgICBNYXBBcmVhcywKLSAgICAgICAgRm9ybUVsZW1lbnRz
CisKKyAgICAgICAgT3RoZXIKICAgICB9OwogCiAgICAgc3RhdGljIGNvbnN0IFR5cGUgRmlyc3RV
bm5hbWVkRG9jdW1lbnRDYWNoZWRUeXBlID0gRG9jSW1hZ2VzOwpAQCAtODIsMTIgKzgyLDEzIEBA
IHB1YmxpYzoKICAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKICAgICAKICAgICB2aXJ0dWFs
IE5vZGUqIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0OwotICAgIHZpcnR1YWwgTm9kZSogZmly
c3RJdGVtKCkgY29uc3Q7CiAgICAgdmlydHVhbCBOb2RlKiBuZXh0SXRlbSgpIGNvbnN0OwogCiAg
ICAgdmlydHVhbCBOb2RlKiBuYW1lZEl0ZW0oY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNhc2VT
ZW5zaXRpdmUgPSB0cnVlKSBjb25zdDsKICAgICB2aXJ0dWFsIE5vZGUqIG5leHROYW1lZEl0ZW0o
Y29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdDsgLy8gSW4gY2FzZSBvZiBtdWx0aXBsZSBpdGVtcyBu
YW1lZCB0aGUgc2FtZSB3YXkKIAorICAgIE5vZGUqIGZpcnN0SXRlbSgpIGNvbnN0OworCiAgICAg
dm9pZCBuYW1lZEl0ZW1zKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFJlZlB0cjxO
b2RlPiA+JikgY29uc3Q7CiAKICAgICBQYXNzUmVmUHRyPE5vZGVMaXN0PiB0YWdzKGNvbnN0IFN0
cmluZyYpOwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29sbGVjdGlvbi5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29sbGVjdGlvbi5jcHAJKHJldmlzaW9uIDI5
MDY0KQorKysgV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29sbGVjdGlvbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQzLDcgKzQzLDcgQEAgaW5saW5lIEhUTUxDb2xsZWN0aW9uOjpDb2xsZWN0aW9uSW5m
byogSAogfQogCiBIVE1MRm9ybUNvbGxlY3Rpb246OkhUTUxGb3JtQ29sbGVjdGlvbihQYXNzUmVm
UHRyPEhUTUxGb3JtRWxlbWVudD4gZm9ybSkKLSAgICA6IEhUTUxDb2xsZWN0aW9uKGZvcm0uZ2V0
KCksIEZvcm1FbGVtZW50cywgZm9ybUNvbGxlY3Rpb25JbmZvKGZvcm0uZ2V0KCkpKQorICAgIDog
SFRNTENvbGxlY3Rpb24oZm9ybS5nZXQoKSwgT3RoZXIsIGZvcm1Db2xsZWN0aW9uSW5mbyhmb3Jt
LmdldCgpKSkKIHsKIH0KIApJbmRleDogV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcAkocmV2aXNp
b24gMjkwNjQpCisrKyBXZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMTIgKzEsMTAgQEAKLS8qKgotICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhl
IERPTSBpbXBsZW1lbnRhdGlvbiBmb3IgS0RFLgotICoKKy8qCiAgKiBDb3B5cmlnaHQgKEMpIDE5
OTcgTWFydGluIEpvbmVzIChtam9uZXNAa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMTk5NyBU
b3JiZW4gV2VpcyAod2Vpc0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk4IFdhbGRvIEJh
c3RpYW4gKGJhc3RpYW5Aa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMTk5OSBMYXJzIEtub2xs
IChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChr
b2l2aXN0b0BrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2
IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUs
IDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
ICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCkBAIC0yMywxOCArMjEsMTggQEAKICAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCiAgKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KICAqLworCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
SFRNTFRhYmxlRWxlbWVudC5oIgogCi0jaW5jbHVkZSAiQ1NTSGVscGVyLmgiCiAjaW5jbHVkZSAi
Q1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRl
ICJDU1NWYWx1ZUtleXdvcmRzLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJF
eGNlcHRpb25Db2RlLmgiCi0jaW5jbHVkZSAiSFRNTENvbGxlY3Rpb24uaCIKICNpbmNsdWRlICJI
VE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIgorI2luY2x1
ZGUgIkhUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmgiCisjaW5jbHVkZSAiSFRNTFRhYmxlUm93RWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmgiCiAjaW5jbHVkZSAi
UmVuZGVyVGFibGUuaCIKICNpbmNsdWRlICJUZXh0LmgiCkBAIC00NSwxMCArNDMsNiBAQCB1c2lu
ZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBIVE1MVGFibGVFbGVtZW50OjpIVE1MVGFibGVFbGVt
ZW50KERvY3VtZW50ICpkb2MpCiAgICAgOiBIVE1MRWxlbWVudCh0YWJsZVRhZywgZG9jKQotICAg
ICwgbV9oZWFkKDApCi0gICAgLCBtX2Zvb3QoMCkKLSAgICAsIG1fZmlyc3RCb2R5KDApCi0gICAg
LCBtX2NhcHRpb24oMCkKICAgICAsIG1fYm9yZGVyQXR0cihmYWxzZSkKICAgICAsIG1fYm9yZGVy
Q29sb3JBdHRyKGZhbHNlKQogICAgICwgbV9mcmFtZUF0dHIoZmFsc2UpCkBAIC01NywxMiArNTEs
NiBAQCBIVE1MVGFibGVFbGVtZW50OjpIVE1MVGFibGVFbGVtZW50KERvY3VtCiB7CiB9CiAKLUhU
TUxUYWJsZUVsZW1lbnQ6On5IVE1MVGFibGVFbGVtZW50KCkKLXsKLSAgICBpZiAobV9maXJzdEJv
ZHkpCi0gICAgICAgIG1fZmlyc3RCb2R5LT5kZXJlZigpOwotfQotCiBib29sIEhUTUxUYWJsZUVs
ZW1lbnQ6OmNoZWNrRFREKGNvbnN0IE5vZGUqIG5ld0NoaWxkKQogewogICAgIGlmIChuZXdDaGls
ZC0+aXNUZXh0Tm9kZSgpKQpAQCAtNzQsMjE1ICs2MiwxODEgQEAgYm9vbCBIVE1MVGFibGVFbGVt
ZW50OjpjaGVja0RURChjb25zdCBObwogICAgICAgICAgICBuZXdDaGlsZC0+aGFzVGFnTmFtZShz
Y3JpcHRUYWcpOwogfQogCi1Ob2RlKiBIVE1MVGFibGVFbGVtZW50OjpzZXRDYXB0aW9uKEhUTUxU
YWJsZUNhcHRpb25FbGVtZW50KiBjKQorSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQqIEhUTUxUYWJs
ZUVsZW1lbnQ6OmNhcHRpb24oKSBjb25zdAogewotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwot
ICAgIGlmIChOb2RlKiBvYyA9IG1fY2FwdGlvbikKLSAgICAgICAgcmVwbGFjZUNoaWxkKGMsIG9j
LCBlYyk7Ci0gICAgZWxzZQotICAgICAgICBpbnNlcnRCZWZvcmUoYywgZmlyc3RDaGlsZCgpLCBl
Yyk7Ci0gICAgbV9jYXB0aW9uID0gYzsKLSAgICByZXR1cm4gbV9jYXB0aW9uOwotfQotCi1Ob2Rl
KiBIVE1MVGFibGVFbGVtZW50OjpzZXRUSGVhZChIVE1MVGFibGVTZWN0aW9uRWxlbWVudCogcykK
LXsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpZiAoTm9kZSogaCA9IG1faGVhZCkK
LSAgICAgICAgcmVwbGFjZUNoaWxkKHMsIGgsIGVjKTsKLSAgICBlbHNlIGlmIChtX2Zvb3QpCi0g
ICAgICAgIGluc2VydEJlZm9yZShzLCBtX2Zvb3QsIGVjKTsKLSAgICBlbHNlIGlmIChtX2ZpcnN0
Qm9keSkKLSAgICAgICAgaW5zZXJ0QmVmb3JlKHMsIG1fZmlyc3RCb2R5LCBlYyk7Ci0gICAgZWxz
ZQotICAgICAgICBhcHBlbmRDaGlsZChzLCBlYyk7Ci0gICAgbV9oZWFkID0gczsKLSAgICByZXR1
cm4gbV9oZWFkOwotfQotCi1Ob2RlKiBIVE1MVGFibGVFbGVtZW50OjpzZXRURm9vdChIVE1MVGFi
bGVTZWN0aW9uRWxlbWVudCAqcykKLXsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBp
ZiAoTm9kZSAqZiA9IG1fZm9vdCkKLSAgICAgICAgcmVwbGFjZUNoaWxkKHMsIGYsIGVjKTsKLSAg
ICBlbHNlIGlmIChtX2ZpcnN0Qm9keSkKLSAgICAgICAgaW5zZXJ0QmVmb3JlKHMsIG1fZmlyc3RC
b2R5LCBlYyk7Ci0gICAgZWxzZQotICAgICAgICBhcHBlbmRDaGlsZChzLCBlYyk7Ci0gICAgbV9m
b290ID0gczsKLSAgICByZXR1cm4gbV9mb290OwotfQotCi1Ob2RlKiBIVE1MVGFibGVFbGVtZW50
OjpzZXRUQm9keShIVE1MVGFibGVTZWN0aW9uRWxlbWVudCAqcykKLXsKLSAgICBFeGNlcHRpb25D
b2RlIGVjID0gMDsKLSAgICBOb2RlKiByOwotICAgIHMtPnJlZigpOwotICAgIGlmIChOb2RlICpm
YiA9IG1fZmlyc3RCb2R5KSB7Ci0gICAgICAgIHJlcGxhY2VDaGlsZChzLCBmYiwgZWMpOwotICAg
ICAgICBmYi0+ZGVyZWYoKTsKLSAgICAgICAgciA9IHM7Ci0gICAgfSBlbHNlCi0gICAgICAgIGFw
cGVuZENoaWxkKHMsIGVjKTsKLSAgICBtX2ZpcnN0Qm9keSA9IHM7Ci0gICAgcmV0dXJuIG1fZmly
c3RCb2R5OworICAgIGZvciAoTm9kZSogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGls
ZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7CisgICAgICAgIGlmIChjaGlsZC0+aGFzVGFnTmFt
ZShjYXB0aW9uVGFnKSkKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MVGFibGVD
YXB0aW9uRWxlbWVudCo+KGNoaWxkKTsKKyAgICB9CisgICAgcmV0dXJuIDA7CiB9CiAKLUhUTUxF
bGVtZW50ICpIVE1MVGFibGVFbGVtZW50OjpjcmVhdGVUSGVhZCgpCi17Ci0gICAgaWYgKCFtX2hl
YWQpIHsKLSAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgICAgIG1faGVhZCA9IG5l
dyBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCh0aGVhZFRhZywgZG9jdW1lbnQoKSk7Ci0gICAgICAg
IGlmIChtX2Zvb3QpCi0gICAgICAgICAgICBpbnNlcnRCZWZvcmUobV9oZWFkLCBtX2Zvb3QsIGVj
KTsKLSAgICAgICAgZWxzZSBpZiAobV9maXJzdEJvZHkpCi0gICAgICAgICAgICBpbnNlcnRCZWZv
cmUobV9oZWFkLCBtX2ZpcnN0Qm9keSwgZWMpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBh
cHBlbmRDaGlsZChtX2hlYWQsIGVjKTsKK3ZvaWQgSFRNTFRhYmxlRWxlbWVudDo6c2V0Q2FwdGlv
bihQYXNzUmVmUHRyPEhUTUxUYWJsZUNhcHRpb25FbGVtZW50PiBuZXdDYXB0aW9uLCBFeGNlcHRp
b25Db2RlJiBlYykKK3sKKyAgICBkZWxldGVDYXB0aW9uKCk7CisgICAgaW5zZXJ0QmVmb3JlKG5l
d0NhcHRpb24sIGZpcnN0Q2hpbGQoKSwgZWMpOworfQorCitIVE1MVGFibGVTZWN0aW9uRWxlbWVu
dCogSFRNTFRhYmxlRWxlbWVudDo6dEhlYWQoKSBjb25zdAoreworICAgIGZvciAoTm9kZSogY2hp
bGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7
CisgICAgICAgIGlmIChjaGlsZC0+aGFzVGFnTmFtZSh0aGVhZFRhZykpCisgICAgICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqPihjaGlsZCk7CiAgICAg
fQotICAgIHJldHVybiBtX2hlYWQ7CisgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgSFRNTFRhYmxl
RWxlbWVudDo6ZGVsZXRlVEhlYWQoKQordm9pZCBIVE1MVGFibGVFbGVtZW50OjpzZXRUSGVhZChQ
YXNzUmVmUHRyPEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50PiBuZXdIZWFkLCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKLSAgICBpZiAobV9oZWFkKSB7Ci0gICAgICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAw
OwotICAgICAgICBtX2hlYWQtPnJlZigpOwotICAgICAgICBIVE1MRWxlbWVudDo6cmVtb3ZlQ2hp
bGQobV9oZWFkLCBlYyk7Ci0gICAgICAgIG1faGVhZC0+ZGVyZWYoKTsKLSAgICB9Ci0gICAgbV9o
ZWFkID0gMDsKLX0KLQotSFRNTEVsZW1lbnQgKkhUTUxUYWJsZUVsZW1lbnQ6OmNyZWF0ZVRGb290
KCkKLXsKLSAgICBpZiAoIW1fZm9vdCkgewotICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsK
LSAgICAgICAgbV9mb290ID0gbmV3IEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KHRmb290VGFnLCBk
b2N1bWVudCgpKTsKLSAgICAgICAgaWYgKG1fZmlyc3RCb2R5KQotICAgICAgICAgICAgaW5zZXJ0
QmVmb3JlKG1fZm9vdCwgbV9maXJzdEJvZHksIGVjKTsKLSAgICAgICAgZWxzZQotICAgICAgICAg
ICAgYXBwZW5kQ2hpbGQobV9mb290LCBlYyk7CisgICAgZGVsZXRlVEhlYWQoKTsKKworICAgIE5v
ZGUqIGNoaWxkOworICAgIGZvciAoY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9
IGNoaWxkLT5uZXh0U2libGluZygpKQorICAgICAgICBpZiAoY2hpbGQtPmlzRWxlbWVudE5vZGUo
KSAmJiAhY2hpbGQtPmhhc1RhZ05hbWUoY2FwdGlvblRhZykgJiYgIWNoaWxkLT5oYXNUYWdOYW1l
KGNvbGdyb3VwVGFnKSkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgaW5zZXJ0QmVmb3JlKG5l
d0hlYWQsIGNoaWxkLCBlYyk7Cit9CisKK0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50KiBIVE1MVGFi
bGVFbGVtZW50Ojp0Rm9vdCgpIGNvbnN0Cit7CisgICAgZm9yIChOb2RlKiBjaGlsZCA9IGZpcnN0
Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAg
aWYgKGNoaWxkLT5oYXNUYWdOYW1lKHRmb290VGFnKSkKKyAgICAgICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDxIVE1MVGFibGVTZWN0aW9uRWxlbWVudCo+KGNoaWxkKTsKICAgICB9Ci0gICAgcmV0
dXJuIG1fZm9vdDsKKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBIVE1MVGFibGVFbGVtZW50Ojpz
ZXRURm9vdChQYXNzUmVmUHRyPEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50PiBuZXdGb290LCBFeGNl
cHRpb25Db2RlJiBlYykKK3sKKyAgICBkZWxldGVURm9vdCgpOworCisgICAgTm9kZSogY2hpbGQ7
CisgICAgZm9yIChjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5l
eHRTaWJsaW5nKCkpCisgICAgICAgIGlmIChjaGlsZC0+aXNFbGVtZW50Tm9kZSgpICYmICFjaGls
ZC0+aGFzVGFnTmFtZShjYXB0aW9uVGFnKSAmJiAhY2hpbGQtPmhhc1RhZ05hbWUoY29sZ3JvdXBU
YWcpICYmICFjaGlsZC0+aGFzVGFnTmFtZSh0aGVhZFRhZykpCisgICAgICAgICAgICBicmVhazsK
KworICAgIGluc2VydEJlZm9yZShuZXdGb290LCBjaGlsZCwgZWMpOworfQorCitQYXNzUmVmUHRy
PEhUTUxFbGVtZW50PiBIVE1MVGFibGVFbGVtZW50OjpjcmVhdGVUSGVhZCgpCit7CisgICAgaWYg
KEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KiBleGlzdGluZ0hlYWQgPSB0SGVhZCgpKQorICAgICAg
ICByZXR1cm4gZXhpc3RpbmdIZWFkOworICAgIFJlZlB0cjxIVE1MVGFibGVTZWN0aW9uRWxlbWVu
dD4gaGVhZCA9IG5ldyBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCh0aGVhZFRhZywgZG9jdW1lbnQo
KSk7CisgICAgRXhjZXB0aW9uQ29kZSBlYzsKKyAgICBzZXRUSGVhZChoZWFkLCBlYyk7CisgICAg
cmV0dXJuIGhlYWQucmVsZWFzZSgpOworfQorCit2b2lkIEhUTUxUYWJsZUVsZW1lbnQ6OmRlbGV0
ZVRIZWFkKCkKK3sKKyAgICBFeGNlcHRpb25Db2RlIGVjOworICAgIHJlbW92ZUNoaWxkKHRIZWFk
KCksIGVjKTsKK30KKworUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gSFRNTFRhYmxlRWxlbWVudDo6
Y3JlYXRlVEZvb3QoKQoreworICAgIGlmIChIVE1MVGFibGVTZWN0aW9uRWxlbWVudCogZXhpc3Rp
bmdGb290ID0gdEZvb3QoKSkKKyAgICAgICAgcmV0dXJuIGV4aXN0aW5nRm9vdDsKKyAgICBSZWZQ
dHI8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+IGZvb3QgPSBuZXcgSFRNTFRhYmxlU2VjdGlvbkVs
ZW1lbnQodGZvb3RUYWcsIGRvY3VtZW50KCkpOworICAgIEV4Y2VwdGlvbkNvZGUgZWM7CisgICAg
c2V0VEZvb3QoZm9vdCwgZWMpOworICAgIHJldHVybiBmb290LnJlbGVhc2UoKTsKIH0KIAogdm9p
ZCBIVE1MVGFibGVFbGVtZW50OjpkZWxldGVURm9vdCgpCiB7Ci0gICAgaWYgKG1fZm9vdCkgewot
ICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICAgICAgbV9mb290LT5yZWYoKTsKLSAg
ICAgICAgSFRNTEVsZW1lbnQ6OnJlbW92ZUNoaWxkKG1fZm9vdCwgZWMpOwotICAgICAgICBtX2Zv
b3QtPmRlcmVmKCk7Ci0gICAgfQotICAgIG1fZm9vdCA9IDA7CisgICAgRXhjZXB0aW9uQ29kZSBl
YzsKKyAgICByZW1vdmVDaGlsZCh0Rm9vdCgpLCBlYyk7CiB9CiAKLUhUTUxFbGVtZW50ICpIVE1M
VGFibGVFbGVtZW50OjpjcmVhdGVDYXB0aW9uKCkKK1Bhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IEhU
TUxUYWJsZUVsZW1lbnQ6OmNyZWF0ZUNhcHRpb24oKQogewotICAgIGlmICghbV9jYXB0aW9uKSB7
Ci0gICAgICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgICAgICBtX2NhcHRpb24gPSBuZXcg
SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQoZG9jdW1lbnQoKSk7Ci0gICAgICAgIGluc2VydEJlZm9y
ZShtX2NhcHRpb24sIGZpcnN0Q2hpbGQoKSwgZWMpOwotICAgIH0KLSAgICByZXR1cm4gbV9jYXB0
aW9uOworICAgIGlmIChIVE1MVGFibGVDYXB0aW9uRWxlbWVudCogZXhpc3RpbmdDYXB0aW9uID0g
Y2FwdGlvbigpKQorICAgICAgICByZXR1cm4gZXhpc3RpbmdDYXB0aW9uOworICAgIFJlZlB0cjxI
VE1MVGFibGVDYXB0aW9uRWxlbWVudD4gY2FwdGlvbiA9IG5ldyBIVE1MVGFibGVDYXB0aW9uRWxl
bWVudChkb2N1bWVudCgpKTsKKyAgICBFeGNlcHRpb25Db2RlIGVjOworICAgIHNldENhcHRpb24o
Y2FwdGlvbiwgZWMpOworICAgIHJldHVybiBjYXB0aW9uLnJlbGVhc2UoKTsKIH0KIAogdm9pZCBI
VE1MVGFibGVFbGVtZW50OjpkZWxldGVDYXB0aW9uKCkKIHsKLSAgICBpZiAobV9jYXB0aW9uKSB7
Ci0gICAgICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgICAgICBtX2NhcHRpb24tPnJlZigp
OwotICAgICAgICBIVE1MRWxlbWVudDo6cmVtb3ZlQ2hpbGQobV9jYXB0aW9uLCBlYyk7Ci0gICAg
ICAgIG1fY2FwdGlvbi0+ZGVyZWYoKTsKKyAgICBFeGNlcHRpb25Db2RlIGVjOworICAgIHJlbW92
ZUNoaWxkKGNhcHRpb24oKSwgZWMpOworfQorCitIVE1MVGFibGVTZWN0aW9uRWxlbWVudCogSFRN
TFRhYmxlRWxlbWVudDo6bGFzdEJvZHkoKSBjb25zdAoreworICAgIGZvciAoTm9kZSogY2hpbGQg
PSBsYXN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPnByZXZpb3VzU2libGluZygpKSB7
CisgICAgICAgIGlmIChjaGlsZC0+aGFzVGFnTmFtZSh0Ym9keVRhZykpCisgICAgICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqPihjaGlsZCk7CiAgICAg
fQotICAgIG1fY2FwdGlvbiA9IDA7CisgICAgcmV0dXJuIDA7CiB9CiAKIFBhc3NSZWZQdHI8SFRN
TEVsZW1lbnQ+IEhUTUxUYWJsZUVsZW1lbnQ6Omluc2VydFJvdyhpbnQgaW5kZXgsIEV4Y2VwdGlv
bkNvZGUmIGVjKQogewotICAgIC8vIFRoZSBET00gcmVxdWlyZXMgdGhhdCB3ZSBjcmVhdGUgYSB0
Ym9keSBpZiB0aGUgdGFibGUgaXMgZW1wdHkKLSAgICAvLyAoY2YgRE9NMlRTIEhUTUxUYWJsZUVs
ZW1lbnQzMSB0ZXN0KQotICAgIC8vIChub3RlOiB0aGlzIGlzIGRpZmZlcmVudCBmcm9tICJpZiB0
aGUgdGFibGUgaGFzIG5vIHNlY3Rpb25zIiwgc2luY2Ugd2UgY2FuIGhhdmUKLSAgICAvLyA8VEFC
TEU+PFRSPikKLSAgICBpZiAoIW1fZmlyc3RCb2R5ICYmICFtX2hlYWQgJiYgIW1fZm9vdCkKLSAg
ICAgICAgc2V0VEJvZHkobmV3IEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KHRib2R5VGFnLCBkb2N1
bWVudCgpKSk7Ci0KLSAgICAvLyBJRSB0cmVhdHMgaW5kZXg9LTEgYXMgZGVmYXVsdCB2YWx1ZSBt
ZWFuaW5nICdhcHBlbmQgYWZ0ZXIgbGFzdCcKLSAgICAvLyBUaGlzIGlzbid0IGluIHRoZSBET00u
IFNvLCBub3QgaW1wbGVtZW50ZWQgeWV0LgotICAgIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KiBz
ZWN0aW9uID0gMEw7Ci0gICAgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqIGxhc3RTZWN0aW9uID0g
MEw7Ci0gICAgTm9kZSAqbm9kZSA9IGZpcnN0Q2hpbGQoKTsKLSAgICBib29sIGFwcGVuZCA9IChp
bmRleCA9PSAtMSk7Ci0gICAgYm9vbCBmb3VuZCA9IGZhbHNlOwotICAgIGZvciAoOyBub2RlICYm
IChpbmRleD49MCB8fCBhcHBlbmQpIDsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpCi0gICAg
ewotICAgICAgICAvLyB0aGVyZSBjb3VsZCBiZSAyIHRmb290IGVsZW1lbnRzIGluIHRoZSB0YWJs
ZS4gT25seSB0aGUgZmlyc3Qgb25lIGlzIHRoZSAiZm9vdCIsIHRoYXQncyB3aHkgd2UgaGF2ZSB0
aGUgbW9yZQotICAgICAgICAvLyBjb21wbGljYXRlZCBpZiBzdGF0ZW1lbnQgYmVsb3cuCi0gICAg
ICAgIGlmIChub2RlICE9IG1fZm9vdCAmJiAobm9kZS0+aGFzVGFnTmFtZSh0aGVhZFRhZykgfHwg
bm9kZS0+aGFzVGFnTmFtZSh0Zm9vdFRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZSh0Ym9keVRhZykp
KSB7Ci0gICAgICAgICAgICBzZWN0aW9uID0gc3RhdGljX2Nhc3Q8SFRNTFRhYmxlU2VjdGlvbkVs
ZW1lbnQqPihub2RlKTsKLSAgICAgICAgICAgIGxhc3RTZWN0aW9uID0gc2VjdGlvbjsKLSAgICAg
ICAgICAgIGlmICghYXBwZW5kKSB7Ci0gICAgICAgICAgICAgICAgaW50IHJvd3MgPSBzZWN0aW9u
LT5udW1Sb3dzKCk7Ci0gICAgICAgICAgICAgICAgaWYgKHJvd3MgPj0gaW5kZXgpIHsKLSAgICAg
ICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgaW5kZXggLT0gcm93
czsKKyAgICBpZiAoaW5kZXggPCAtMSkgeworICAgICAgICBlYyA9IElOREVYX1NJWkVfRVJSOwor
ICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBIVE1MVGFibGVSb3dFbGVtZW50KiBsYXN0
Um93ID0gMDsKKyAgICBIVE1MVGFibGVSb3dFbGVtZW50KiByb3cgPSAwOworICAgIGlmIChpbmRl
eCA9PSAtMSkKKyAgICAgICAgbGFzdFJvdyA9IEhUTUxUYWJsZVJvd3NDb2xsZWN0aW9uOjpsYXN0
Um93KHRoaXMpOworICAgIGVsc2UgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBpbmRl
eDsgKytpKSB7CisgICAgICAgICAgICByb3cgPSBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbjo6cm93
QWZ0ZXIodGhpcywgbGFzdFJvdyk7CisgICAgICAgICAgICBpZiAoIXJvdykgeworICAgICAgICAg
ICAgICAgIGlmIChpICE9IGluZGV4KSB7CisgICAgICAgICAgICAgICAgICAgIGVjID0gSU5ERVhf
U0laRV9FUlI7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxh
c3RSb3cgPSByb3c7CiAgICAgICAgIH0KICAgICB9Ci0gICAgaWYgKCFmb3VuZCAmJiBtX2Zvb3Qp
Ci0gICAgICAgIHNlY3Rpb24gPSBzdGF0aWNfY2FzdDxIVE1MVGFibGVTZWN0aW9uRWxlbWVudCo+
KG1fZm9vdCk7CiAKLSAgICAvLyBJbmRleCA9PSAwIG1lYW5zICJpbnNlcnQgYmVmb3JlIGZpcnN0
IHJvdyBpbiBjdXJyZW50IHNlY3Rpb24iCi0gICAgLy8gb3IgImFwcGVuZCBhZnRlciBsYXN0IHJv
dyIgKGlmIHRoZXJlJ3Mgbm8gY3VycmVudCBzZWN0aW9uIGFueW1vcmUpCi0gICAgaWYgKCFzZWN0
aW9uICYmIChpbmRleCA9PSAwIHx8IGFwcGVuZCkpIHsKLSAgICAgICAgc2VjdGlvbiA9IGxhc3RT
ZWN0aW9uOwotICAgICAgICBpbmRleCA9IHNlY3Rpb24gPyBzZWN0aW9uLT5udW1Sb3dzKCkgOiAw
OwotICAgIH0KLSAgICBpZiAoc2VjdGlvbiAmJiAoaW5kZXggPj0gMCB8fCBhcHBlbmQpKQotICAg
ICAgICByZXR1cm4gc2VjdGlvbi0+aW5zZXJ0Um93KGluZGV4LCBlYyk7CisgICAgTm9kZSogcGFy
ZW50OworICAgIGlmIChsYXN0Um93KQorICAgICAgICBwYXJlbnQgPSByb3cgPyByb3ctPnBhcmVu
dCgpIDogbGFzdFJvdy0+cGFyZW50KCk7CiAgICAgZWxzZSB7Ci0gICAgICAgIC8vIE5vIG1vcmUg
c2VjdGlvbnMgPT4gaW5kZXggaXMgdG9vIGJpZwotICAgICAgICBlYyA9IElOREVYX1NJWkVfRVJS
OwotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcGFyZW50ID0gbGFzdEJvZHkoKTsKKyAgICAg
ICAgaWYgKCFwYXJlbnQpIHsKKyAgICAgICAgICAgIFJlZlB0cjxIVE1MVGFibGVTZWN0aW9uRWxl
bWVudD4gbmV3Qm9keSA9IG5ldyBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCh0Ym9keVRhZywgZG9j
dW1lbnQoKSk7CisgICAgICAgICAgICBSZWZQdHI8SFRNTFRhYmxlUm93RWxlbWVudD4gbmV3Um93
ID0gbmV3IEhUTUxUYWJsZVJvd0VsZW1lbnQoZG9jdW1lbnQoKSk7CisgICAgICAgICAgICBuZXdC
b2R5LT5hcHBlbmRDaGlsZChuZXdSb3csIGVjKTsKKyAgICAgICAgICAgIGFwcGVuZENoaWxkKG5l
d0JvZHkucmVsZWFzZSgpLCBlYyk7CisgICAgICAgICAgICByZXR1cm4gbmV3Um93LnJlbGVhc2Uo
KTsKKyAgICAgICAgfQogICAgIH0KKworICAgIFJlZlB0cjxIVE1MVGFibGVSb3dFbGVtZW50PiBu
ZXdSb3cgPSBuZXcgSFRNTFRhYmxlUm93RWxlbWVudChkb2N1bWVudCgpKTsKKyAgICBwYXJlbnQt
Pmluc2VydEJlZm9yZShuZXdSb3csIHJvdywgZWMpOworICAgIHJldHVybiBuZXdSb3cucmVsZWFz
ZSgpOwogfQogCiB2b2lkIEhUTUxUYWJsZUVsZW1lbnQ6OmRlbGV0ZVJvdyhpbnQgaW5kZXgsIEV4
Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KiBzZWN0aW9u
ID0gMEw7Ci0gICAgTm9kZSAqbm9kZSA9IGZpcnN0Q2hpbGQoKTsKLSAgICBib29sIGxhc3RSb3cg
PSBpbmRleCA9PSAtMTsKLSAgICBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCogbGFzdFNlY3Rpb24g
PSAwTDsKLSAgICBib29sIGZvdW5kID0gZmFsc2U7Ci0gICAgZm9yICg7IG5vZGUgOyBub2RlID0g
bm9kZS0+bmV4dFNpYmxpbmcoKSkKLSAgICB7Ci0gICAgICAgIGlmIChub2RlICE9IG1fZm9vdCAm
JiAobm9kZS0+aGFzVGFnTmFtZSh0aGVhZFRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZSh0Zm9vdFRh
ZykgfHwgCi0gICAgICAgICAgICBub2RlLT5oYXNUYWdOYW1lKHRib2R5VGFnKSkpIHsKLSAgICAg
ICAgICAgIHNlY3Rpb24gPSBzdGF0aWNfY2FzdDxIVE1MVGFibGVTZWN0aW9uRWxlbWVudCo+KG5v
ZGUpOwotICAgICAgICAgICAgbGFzdFNlY3Rpb24gPSBzZWN0aW9uOwotICAgICAgICAgICAgaW50
IHJvd3MgPSBzZWN0aW9uLT5udW1Sb3dzKCk7Ci0gICAgICAgICAgICBpZiAoIWxhc3RSb3cpIHsK
LSAgICAgICAgICAgICAgICBpZiAocm93cyA+IGluZGV4KSB7Ci0gICAgICAgICAgICAgICAgICAg
IGZvdW5kID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAg
ICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGluZGV4IC09IHJvd3M7Ci0gICAgICAgICAg
ICB9CisgICAgSFRNTFRhYmxlUm93RWxlbWVudCogcm93ID0gMDsKKyAgICBpZiAoaW5kZXggPT0g
LTEpCisgICAgICAgIHJvdyA9IEhUTUxUYWJsZVJvd3NDb2xsZWN0aW9uOjpsYXN0Um93KHRoaXMp
OworICAgIGVsc2UgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBpbmRleDsgKytpKSB7
CisgICAgICAgICAgICByb3cgPSBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbjo6cm93QWZ0ZXIodGhp
cywgcm93KTsKKyAgICAgICAgICAgIGlmICghcm93KQorICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9Ci0gICAgICAgIHNlY3Rpb24gPSAwTDsKICAgICB9Ci0gICAgaWYgKCFmb3VuZCAm
JiBtX2Zvb3QpCi0gICAgICAgIHNlY3Rpb24gPSBzdGF0aWNfY2FzdDxIVE1MVGFibGVTZWN0aW9u
RWxlbWVudCo+KG1fZm9vdCk7Ci0KLSAgICBpZiAobGFzdFJvdyAmJiBsYXN0U2VjdGlvbikKLSAg
ICAgICAgbGFzdFNlY3Rpb24tPmRlbGV0ZVJvdygtMSwgZWMpOwotICAgIGVsc2UgaWYgKHNlY3Rp
b24gJiYgaW5kZXggPj0gMCAmJiBpbmRleCA8IHNlY3Rpb24tPm51bVJvd3MoKSkKLSAgICAgICAg
c2VjdGlvbi0+ZGVsZXRlUm93KGluZGV4LCBlYyk7Ci0gICAgZWxzZQorICAgIGlmICghcm93KSB7
CiAgICAgICAgIGVjID0gSU5ERVhfU0laRV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgcm93LT5yZW1vdmUoZWMpOwogfQogCiBDb250YWluZXJOb2RlKiBIVE1MVGFibGVFbGVtZW50
OjphZGRDaGlsZChQYXNzUmVmUHRyPE5vZGU+IGNoaWxkKQpAQCAtMjk2LDM4ICsyNTAsOSBAQCBD
b250YWluZXJOb2RlKiBIVE1MVGFibGVFbGVtZW50OjphZGRDaGlsCiAgICAgICAgIHJldHVybiB0
aGlzOwogICAgIH0KIAotICAgIC8vIFRoZSBjcmVhdGlvbiBvZiA8dGJvZHk+IGVsZW1lbnRzIHJl
bGllcyBvbiB0aGUgImNoaWxkQWxsb3dlZCIgY2hlY2ssCi0gICAgLy8gc28gd2UgbmVlZCB0byBk
byBpdCBldmVuIGZvciBYTUwgZG9jdW1lbnRzLgotICAgIEFTU0VSVChjaGlsZC0+bm9kZVR5cGUo
KSAhPSBET0NVTUVOVF9GUkFHTUVOVF9OT0RFKTsKLSAgICBpZiAoIWRvY3VtZW50KCktPmlzSFRN
TERvY3VtZW50KCkgJiYgIWNoaWxkQWxsb3dlZChjaGlsZC5nZXQoKSkpCi0gICAgICAgIHJldHVy
biAwOwotCi0gICAgQ29udGFpbmVyTm9kZSogY29udGFpbmVyID0gSFRNTEVsZW1lbnQ6OmFkZENo
aWxkKGNoaWxkLmdldCgpKTsKLSAgICBpZiAoY29udGFpbmVyKSB7Ci0gICAgICAgIGlmICghbV9j
YXB0aW9uICYmIGNoaWxkLT5oYXNUYWdOYW1lKGNhcHRpb25UYWcpKQotICAgICAgICAgICAgbV9j
YXB0aW9uID0gc3RhdGljX2Nhc3Q8SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQqPihjaGlsZC5nZXQo
KSk7Ci0gICAgICAgIGVsc2UgaWYgKCFtX2hlYWQgJiYgY2hpbGQtPmhhc1RhZ05hbWUodGhlYWRU
YWcpKQotICAgICAgICAgICAgbV9oZWFkID0gc3RhdGljX2Nhc3Q8SFRNTFRhYmxlU2VjdGlvbkVs
ZW1lbnQqPihjaGlsZC5nZXQoKSk7Ci0gICAgICAgIGVsc2UgaWYgKCFtX2Zvb3QgJiYgY2hpbGQt
Pmhhc1RhZ05hbWUodGZvb3RUYWcpKQotICAgICAgICAgICAgbV9mb290ID0gc3RhdGljX2Nhc3Q8
SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqPihjaGlsZC5nZXQoKSk7Ci0gICAgICAgIGVsc2UgaWYg
KCFtX2ZpcnN0Qm9keSAmJiBjaGlsZC0+aGFzVGFnTmFtZSh0Ym9keVRhZykpIHsKLSAgICAgICAg
ICAgIG1fZmlyc3RCb2R5ID0gc3RhdGljX2Nhc3Q8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqPihj
aGlsZC5nZXQoKSk7Ci0gICAgICAgICAgICBtX2ZpcnN0Qm9keS0+cmVmKCk7Ci0gICAgICAgIH0K
LSAgICB9Ci0gICAgcmV0dXJuIGNvbnRhaW5lcjsKKyAgICByZXR1cm4gSFRNTEVsZW1lbnQ6OmFk
ZENoaWxkKGNoaWxkLmdldCgpKTsKIH0KIAotdm9pZCBIVE1MVGFibGVFbGVtZW50OjpjaGlsZHJl
bkNoYW5nZWQoKQotewotICAgIEhUTUxFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoKTsKLSAgICAK
LSAgICBpZiAobV9maXJzdEJvZHkgJiYgbV9maXJzdEJvZHktPnBhcmVudE5vZGUoKSAhPSB0aGlz
KSB7Ci0gICAgICAgIG1fZmlyc3RCb2R5LT5kZXJlZigpOwotICAgICAgICBtX2ZpcnN0Qm9keSA9
IDA7Ci0gICAgfQotfSAKLQogYm9vbCBIVE1MVGFibGVFbGVtZW50OjptYXBUb0VudHJ5KGNvbnN0
IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lLCBNYXBwZWRBdHRyaWJ1dGVFbnRyeSYgcmVzdWx0KSBj
b25zdAogewogICAgIGlmIChhdHRyTmFtZSA9PSBiYWNrZ3JvdW5kQXR0cikgewpAQCAtMzg5LDcg
KzMxNCw3IEBAIHN0YXRpYyBib29sIHNldFRhYmxlQ2VsbHNDaGFuZ2VkKE5vZGUqIG4KICAgICBy
ZXR1cm4gY2VsbENoYW5nZWQ7CiB9CiAKLXZvaWQgSFRNTFRhYmxlRWxlbWVudDo6cGFyc2VNYXBw
ZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlICphdHRyKQordm9pZCBIVE1MVGFibGVFbGVtZW50
OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUqIGF0dHIpCiB7CiAgICAgaWYg
KGF0dHItPm5hbWUoKSA9PSB3aWR0aEF0dHIpCiAgICAgICAgIGFkZENTU0xlbmd0aChhdHRyLCBD
U1NfUFJPUF9XSURUSCwgYXR0ci0+dmFsdWUoKSk7CkBAIC00OTEsOSArNDE2LDEzIEBAIHZvaWQg
SFRNTFRhYmxlRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWIKICAgICAgICAgLy8gVGhlIHByZXNl
bmNlIG9mIGEgdmFsaWQgcnVsZXMgYXR0cmlidXRlIGNhdXNlcyBib3JkZXIgY29sbGFwc2luZyB0
byBiZSBlbmFibGVkLgogICAgICAgICBpZiAobV9ydWxlc0F0dHIgIT0gVW5zZXRSdWxlcykKICAg
ICAgICAgICAgIGFkZENTU1Byb3BlcnR5KGF0dHIsIENTU19QUk9QX0JPUkRFUl9DT0xMQVBTRSwg
Q1NTX1ZBTF9DT0xMQVBTRSk7Ci0gICAgICAgIGlmIChvbGRSdWxlcyAhPSBtX3J1bGVzQXR0ciAm
JiBtX2ZpcnN0Qm9keSkKLSAgICAgICAgICAgIGlmIChzZXRUYWJsZUNlbGxzQ2hhbmdlZChtX2Zp
cnN0Qm9keSkpCisgICAgICAgIGlmIChvbGRSdWxlcyAhPSBtX3J1bGVzQXR0cikgeworICAgICAg
ICAgICAgYm9vbCBjZWxsQ2hhbmdlZCA9IGZhbHNlOworICAgICAgICAgICAgZm9yIChOb2RlKiBj
aGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkp
CisgICAgICAgICAgICAgICAgY2VsbENoYW5nZWQgfD0gc2V0VGFibGVDZWxsc0NoYW5nZWQoY2hp
bGQpOworICAgICAgICAgICAgaWYgKGNlbGxDaGFuZ2VkKQogICAgICAgICAgICAgICAgIHNldENo
YW5nZWQoKTsKKyAgICAgICAgfQogICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IGNlbGxz
cGFjaW5nQXR0cikgewogICAgICAgICBpZiAoIWF0dHItPnZhbHVlKCkuaXNFbXB0eSgpKQogICAg
ICAgICAgICAgYWRkQ1NTTGVuZ3RoKGF0dHIsIENTU19QUk9QX0JPUkRFUl9TUEFDSU5HLCBhdHRy
LT52YWx1ZSgpKTsKQEAgLTY1Miw3ICs1ODEsNyBAQCBib29sIEhUTUxUYWJsZUVsZW1lbnQ6Omlz
VVJMQXR0cmlidXRlKEF0CiAKIFBhc3NSZWZQdHI8SFRNTENvbGxlY3Rpb24+IEhUTUxUYWJsZUVs
ZW1lbnQ6OnJvd3MoKQogewotICAgIHJldHVybiBuZXcgSFRNTENvbGxlY3Rpb24odGhpcywgSFRN
TENvbGxlY3Rpb246OlRhYmxlUm93cyk7CisgICAgcmV0dXJuIG5ldyBIVE1MVGFibGVSb3dzQ29s
bGVjdGlvbih0aGlzKTsKIH0KIAogUGFzc1JlZlB0cjxIVE1MQ29sbGVjdGlvbj4gSFRNTFRhYmxl
RWxlbWVudDo6dEJvZGllcygpCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmgJKHJldmlzaW9u
IDI5MDY0KQorKysgV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMSwxMiArMSwxMCBAQAogLyoKLSAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBET00g
aW1wbGVtZW50YXRpb24gZm9yIEtERS4KLSAqCiAgKiBDb3B5cmlnaHQgKEMpIDE5OTcgTWFydGlu
IEpvbmVzIChtam9uZXNAa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMTk5NyBUb3JiZW4gV2Vp
cyAod2Vpc0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk4IFdhbGRvIEJhc3RpYW4gKGJh
c3RpYW5Aa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBr
ZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0Br
ZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2IEFwcGxlIENv
bXB1dGVyLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIw
MDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBA
IC0zMyw1NiArMzEsMzEgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRNTENvbGxl
Y3Rpb247Ci1jbGFzcyBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDsKLWNsYXNzIEhUTUxUYWJsZUNl
bGxFbGVtZW50OwogY2xhc3MgSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQ7CitjbGFzcyBIVE1MVGFi
bGVTZWN0aW9uRWxlbWVudDsKIAogY2xhc3MgSFRNTFRhYmxlRWxlbWVudCA6IHB1YmxpYyBIVE1M
RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgZW51bSBSdWxlcyB7Ci0gICAgICAgIE5vbmUgICAgPSAw
eDAwLAotICAgICAgICBSR3JvdXBzID0gMHgwMSwKLSAgICAgICAgQ0dyb3VwcyA9IDB4MDIsCi0g
ICAgICAgIEdyb3VwcyAgPSAweDAzLAotICAgICAgICBSb3dzICAgID0gMHgwNSwKLSAgICAgICAg
Q29scyAgICA9IDB4MGEsCi0gICAgICAgIEFsbCAgICAgPSAweDBmCi0gICAgfTsKLSAgICBlbnVt
IEZyYW1lIHsKLSAgICAgICAgVm9pZCAgID0gMHgwMCwKLSAgICAgICAgQWJvdmUgID0gMHgwMSwK
LSAgICAgICAgQmVsb3cgID0gMHgwMiwKLSAgICAgICAgTGhzICAgID0gMHgwNCwKLSAgICAgICAg
UmhzICAgID0gMHgwOCwKLSAgICAgICAgSHNpZGVzID0gMHgwMywKLSAgICAgICAgVnNpZGVzID0g
MHgwYywKLSAgICAgICAgQm94ICAgID0gMHgwZgotICAgIH07Ci0KICAgICBIVE1MVGFibGVFbGVt
ZW50KERvY3VtZW50Kik7Ci0gICAgfkhUTUxUYWJsZUVsZW1lbnQoKTsKIAogICAgIHZpcnR1YWwg
SFRNTFRhZ1N0YXR1cyBlbmRUYWdSZXF1aXJlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFRhZ1N0YXR1
c1JlcXVpcmVkOyB9CiAgICAgdmlydHVhbCBpbnQgdGFnUHJpb3JpdHkoKSBjb25zdCB7IHJldHVy
biA5OyB9CiAgICAgdmlydHVhbCBib29sIGNoZWNrRFREKGNvbnN0IE5vZGUqKTsKIAotICAgIEhU
TUxUYWJsZUNhcHRpb25FbGVtZW50KiBjYXB0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jYXB0aW9u
OyB9Ci0gICAgTm9kZSogc2V0Q2FwdGlvbihIVE1MVGFibGVDYXB0aW9uRWxlbWVudCopOwotCi0g
ICAgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqIHRIZWFkKCkgY29uc3QgeyByZXR1cm4gbV9oZWFk
OyB9Ci0gICAgTm9kZSogc2V0VEhlYWQoSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqKTsKKyAgICBI
VE1MVGFibGVDYXB0aW9uRWxlbWVudCogY2FwdGlvbigpIGNvbnN0OworICAgIHZvaWQgc2V0Q2Fw
dGlvbihQYXNzUmVmUHRyPEhUTUxUYWJsZUNhcHRpb25FbGVtZW50PiwgRXhjZXB0aW9uQ29kZSYp
OwogCi0gICAgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqIHRGb290KCkgY29uc3QgeyByZXR1cm4g
bV9mb290OyB9Ci0gICAgTm9kZSogc2V0VEZvb3QoSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqKTsK
KyAgICBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCogdEhlYWQoKSBjb25zdDsKKyAgICB2b2lkIHNl
dFRIZWFkKFBhc3NSZWZQdHI8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+LCBFeGNlcHRpb25Db2Rl
Jik7CiAKLSAgICBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCogZmlyc3RUQm9keSgpIGNvbnN0IHsg
cmV0dXJuIG1fZmlyc3RCb2R5OyB9Ci0gICAgTm9kZSogc2V0VEJvZHkoSFRNTFRhYmxlU2VjdGlv
bkVsZW1lbnQqKTsKKyAgICBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCogdEZvb3QoKSBjb25zdDsK
KyAgICB2b2lkIHNldFRGb290KFBhc3NSZWZQdHI8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+LCBF
eGNlcHRpb25Db2RlJik7CiAKLSAgICBIVE1MRWxlbWVudCogY3JlYXRlVEhlYWQoKTsKKyAgICBQ
YXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVUSGVhZCgpOwogICAgIHZvaWQgZGVsZXRlVEhl
YWQoKTsKLSAgICBIVE1MRWxlbWVudCogY3JlYXRlVEZvb3QoKTsKKyAgICBQYXNzUmVmUHRyPEhU
TUxFbGVtZW50PiBjcmVhdGVURm9vdCgpOwogICAgIHZvaWQgZGVsZXRlVEZvb3QoKTsKLSAgICBI
VE1MRWxlbWVudCogY3JlYXRlQ2FwdGlvbigpOworICAgIFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+
IGNyZWF0ZUNhcHRpb24oKTsKICAgICB2b2lkIGRlbGV0ZUNhcHRpb24oKTsKICAgICBQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBpbnNlcnRSb3coaW50IGluZGV4LCBFeGNlcHRpb25Db2RlJik7CiAg
ICAgdm9pZCBkZWxldGVSb3coaW50IGluZGV4LCBFeGNlcHRpb25Db2RlJik7CkBAIC0xMTcsMTIg
KzkwLDExIEBAIHB1YmxpYzoKICAgICBTdHJpbmcgd2lkdGgoKSBjb25zdDsKICAgICB2b2lkIHNl
dFdpZHRoKGNvbnN0IFN0cmluZyYpOwogCi0gICAgLy8gb3ZlcnJpZGVzCiAgICAgdmlydHVhbCBD
b250YWluZXJOb2RlKiBhZGRDaGlsZChQYXNzUmVmUHRyPE5vZGU+KTsKLSAgICB2aXJ0dWFsIHZv
aWQgY2hpbGRyZW5DaGFuZ2VkKCk7Ci0gICAgCiAgICAgdmlydHVhbCBib29sIG1hcFRvRW50cnko
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIE1hcHBlZEF0dHJpYnV0ZUVudHJ5JikgY29uc3Q7CiAgICAg
dmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSopOworICAg
IHZpcnR1YWwgdm9pZCBhdHRhY2goKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUo
QXR0cmlidXRlKikgY29uc3Q7CiAKICAgICAvLyBVc2VkIHRvIG9idGFpbiBlaXRoZXIgYSBzb2xp
ZCBvciBvdXRzZXQgYm9yZGVyIGRlY2wgYW5kIHRvIGRlYWwgd2l0aCB0aGUgZnJhbWUKICAgICAv
LyBhbmQgcnVsZXMgYXR0cmlidXRlcy4KQEAgLTEzMCwxNyArMTAyLDEwIEBAIHB1YmxpYzoKICAg
ICBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiogZ2V0U2hhcmVkQ2VsbERlY2woKTsKICAgICBD
U1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiogZ2V0U2hhcmVkR3JvdXBEZWNsKGJvb2wgcm93cyk7
CiAKLSAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCk7Ci0gICAgCi0gICAgdmlydHVhbCBib29sIGlz
VVJMQXR0cmlidXRlKEF0dHJpYnV0ZSopIGNvbnN0OwotCitwcml2YXRlOgogICAgIGVudW0gVGFi
bGVSdWxlcyB7IFVuc2V0UnVsZXMsIE5vbmVSdWxlcywgR3JvdXBzUnVsZXMsIFJvd3NSdWxlcywg
Q29sc1J1bGVzLCBBbGxSdWxlcyB9OwogCi1wcm90ZWN0ZWQ6Ci0gICAgSFRNTFRhYmxlU2VjdGlv
bkVsZW1lbnQqIG1faGVhZDsKLSAgICBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCogbV9mb290Owot
ICAgIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KiBtX2ZpcnN0Qm9keTsKLSAgICBIVE1MVGFibGVD
YXB0aW9uRWxlbWVudCogbV9jYXB0aW9uOworICAgIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KiBs
YXN0Qm9keSgpIGNvbnN0OwogCiAgICAgYm9vbCBtX2JvcmRlckF0dHI7ICAgICAgICAgIC8vIFNl
dHMgYSBwcmVjaXNlIGJvcmRlciB3aWR0aCBhbmQgY3JlYXRlcyBhbiBvdXRzZXQgYm9yZGVyIGZv
ciB0aGUgdGFibGUgYW5kIGZvciBpdHMgY2VsbHMuCiAgICAgYm9vbCBtX2JvcmRlckNvbG9yQXR0
cjsgICAgIC8vIE92ZXJyaWRlcyB0aGUgb3V0c2V0IGJvcmRlciBhbmQgbWFrZXMgaXQgc29saWQg
Zm9yIHRoZSB0YWJsZSBhbmQgY2VsbHMgaW5zdGVhZC4KQEAgLTE0OSw3ICsxMTQsNiBAQCBwcm90
ZWN0ZWQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFyZSBwcmVzZW50LCB0
byBub25lIG90aGVyd2lzZSkuCiAgICAKICAgICB1bnNpZ25lZCBzaG9ydCBtX3BhZGRpbmc7Ci0g
ICAgZnJpZW5kIGNsYXNzIEhUTUxUYWJsZUNlbGxFbGVtZW50OwogfTsKIAogfSAvL25hbWVzcGFj
ZQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmlkbAkocmV2aXNpb24gMjkwNjQpCisrKyBX
ZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI2LDE0
ICsyNiwxMyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIEltcGxlbWVudGF0aW9uVVVJRD0xNTli
YjhmZS1mZmVlLTRmZjktYjUwNy03Njc0MTExODE0M2YKICAgICBdIEhUTUxUYWJsZUVsZW1lbnQg
OiBIVE1MRWxlbWVudCB7CiAKLSAgICAgICAgLy8gRklYTUU6IHRoZSBkb20gc3BlYyBzdGF0ZXMg
dGhhdCB0aGUgZm9sbG93aW5nIDMgYXR0cmlidXRlcwogICAgICAgICAvLyBjb3VsZCByYWlzZSBl
eGNlcGV0aW9ucyBvbiBzZXR0aW5nLgogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgSFRNTFRh
YmxlQ2FwdGlvbkVsZW1lbnQgY2FwdGlvbgotICAgICAgICAgICAgICAgICAgICAgLypzZXR0ZXIg
cmFpc2VzKERPTUV4Y2VwdGlvbikqLzsKKyAgICAgICAgICAgICAgICAgICAgIHNldHRlciByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIEhUTUxUYWJsZVNl
Y3Rpb25FbGVtZW50IHRIZWFkCi0gICAgICAgICAgICAgICAgICAgICAvKnNldHRlciByYWlzZXMo
RE9NRXhjZXB0aW9uKSovOworICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01F
eGNlcHRpb24pOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgSFRNTFRhYmxlU2VjdGlvbkVs
ZW1lbnQgdEZvb3QKLSAgICAgICAgICAgICAgICAgICAgIC8qc2V0dGVyIHJhaXNlcyhET01FeGNl
cHRpb24pKi87CisgICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxDb2xsZWN0aW9uIHJvd3M7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MQ29sbGVjdGlvbiB0Qm9kaWVzOwpJbmRleDog
V2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uY3BwCShyZXZpc2lvbiAwKQorKysg
V2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmNwcAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwxNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5h
bWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAq
ICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVS
b3dzQ29sbGVjdGlvbi5oIgorCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiSFRN
TFRhYmxlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZVJvd0VsZW1lbnQuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworCitzdGF0aWMg
Ym9vbCBpc0luSGVhZChFbGVtZW50KiByb3cpCit7CisgICAgcmV0dXJuIHJvdy0+cGFyZW50KCkg
JiYgc3RhdGljX2Nhc3Q8RWxlbWVudCo+KHJvdy0+cGFyZW50KCkpLT5oYXNMb2NhbE5hbWUodGhl
YWRUYWcpOworfQorCitzdGF0aWMgYm9vbCBpc0luQm9keShFbGVtZW50KiByb3cpCit7CisgICAg
cmV0dXJuIHJvdy0+cGFyZW50KCkgJiYgc3RhdGljX2Nhc3Q8RWxlbWVudCo+KHJvdy0+cGFyZW50
KCkpLT5oYXNMb2NhbE5hbWUodGJvZHlUYWcpOworfQorCitzdGF0aWMgYm9vbCBpc0luRm9vdChF
bGVtZW50KiByb3cpCit7CisgICAgcmV0dXJuIHJvdy0+cGFyZW50KCkgJiYgc3RhdGljX2Nhc3Q8
RWxlbWVudCo+KHJvdy0+cGFyZW50KCkpLT5oYXNMb2NhbE5hbWUodGZvb3RUYWcpOworfQorCitI
VE1MVGFibGVSb3dFbGVtZW50KiBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbjo6cm93QWZ0ZXIoSFRN
TFRhYmxlRWxlbWVudCogdGFibGUsIEhUTUxUYWJsZVJvd0VsZW1lbnQqIHByZXZpb3VzKQorewor
ICAgIE5vZGUqIGNoaWxkID0gMDsKKworICAgIC8vIFN0YXJ0IGJ5IGxvb2tpbmcgZm9yIHRoZSBu
ZXh0IHJvdyBpbiB0aGlzIHNlY3Rpb24uCisgICAgLy8gQ29udGludWUgb25seSBpZiB0aGVyZSBp
cyBub25lLgorICAgIGlmIChwcmV2aW91cyAmJiBwcmV2aW91cy0+cGFyZW50KCkgIT0gdGFibGUp
IHsKKyAgICAgICAgZm9yIChjaGlsZCA9IHByZXZpb3VzLT5uZXh0U2libGluZygpOyBjaGlsZDsg
Y2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgeworICAgICAgICAgICAgaWYgKGNoaWxkLT5o
YXNUYWdOYW1lKHRyVGFnKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRN
TFRhYmxlUm93RWxlbWVudCo+KGNoaWxkKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIElm
IHN0aWxsIGxvb2tpbmcgYXQgaGVhZCBzZWN0aW9ucywgZmluZCB0aGUgZmlyc3Qgcm93IGluIHRo
ZSBuZXh0IGhlYWQgc2VjdGlvbi4KKyAgICBpZiAoIXByZXZpb3VzKQorICAgICAgICBjaGlsZCA9
IHRhYmxlLT5maXJzdENoaWxkKCk7CisgICAgZWxzZSBpZiAoaXNJbkhlYWQocHJldmlvdXMpKQor
ICAgICAgICBjaGlsZCA9IHByZXZpb3VzLT5wYXJlbnQoKS0+bmV4dFNpYmxpbmcoKTsKKyAgICBm
b3IgKDsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgaWYg
KGNoaWxkLT5oYXNUYWdOYW1lKHRoZWFkVGFnKSkgeworICAgICAgICAgICAgZm9yIChOb2RlKiBn
cmFuZGNoaWxkID0gY2hpbGQtPmZpcnN0Q2hpbGQoKTsgZ3JhbmRjaGlsZDsgZ3JhbmRjaGlsZCA9
IGdyYW5kY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoZ3JhbmRj
aGlsZC0+aGFzVGFnTmFtZSh0clRhZykpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDxIVE1MVGFibGVSb3dFbGVtZW50Kj4oZ3JhbmRjaGlsZCk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBJZiBzdGlsbCBsb29raW5nIGF0IHRvcCBsZXZl
bCBhbmQgYm9kaWVzLCBmaW5kIHRoZSBuZXh0IHJvdyBpbiB0b3AgbGV2ZWwgb3IgdGhlIGZpcnN0
IGluIHRoZSBuZXh0IGJvZHkgc2VjdGlvbi4KKyAgICBpZiAoIXByZXZpb3VzIHx8IGlzSW5IZWFk
KHByZXZpb3VzKSkKKyAgICAgICAgY2hpbGQgPSB0YWJsZS0+Zmlyc3RDaGlsZCgpOworICAgIGVs
c2UgaWYgKHByZXZpb3VzLT5wYXJlbnQoKSA9PSB0YWJsZSkKKyAgICAgICAgY2hpbGQgPSBwcmV2
aW91cy0+bmV4dFNpYmxpbmcoKTsKKyAgICBlbHNlIGlmIChpc0luQm9keShwcmV2aW91cykpCisg
ICAgICAgIGNoaWxkID0gcHJldmlvdXMtPnBhcmVudCgpLT5uZXh0U2libGluZygpOworICAgIGZv
ciAoOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgeworICAgICAgICBpZiAo
Y2hpbGQtPmhhc1RhZ05hbWUodHJUYWcpKQorICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PEhUTUxUYWJsZVJvd0VsZW1lbnQqPihjaGlsZCk7CisgICAgICAgIGlmIChjaGlsZC0+aGFzVGFn
TmFtZSh0Ym9keVRhZykpIHsKKyAgICAgICAgICAgIGZvciAoTm9kZSogZ3JhbmRjaGlsZCA9IGNo
aWxkLT5maXJzdENoaWxkKCk7IGdyYW5kY2hpbGQ7IGdyYW5kY2hpbGQgPSBncmFuZGNoaWxkLT5u
ZXh0U2libGluZygpKSB7CisgICAgICAgICAgICAgICAgaWYgKGdyYW5kY2hpbGQtPmhhc1RhZ05h
bWUodHJUYWcpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTFRh
YmxlUm93RWxlbWVudCo+KGdyYW5kY2hpbGQpOworICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgfQorCisgICAgLy8gRmluZCB0aGUgZmlyc3Qgcm93IGluIHRoZSBuZXh0IGZvb3Qgc2VjdGlv
bi4KKyAgICBpZiAoIXByZXZpb3VzIHx8ICFpc0luRm9vdChwcmV2aW91cykpCisgICAgICAgIGNo
aWxkID0gdGFibGUtPmZpcnN0Q2hpbGQoKTsKKyAgICBlbHNlCisgICAgICAgIGNoaWxkID0gcHJl
dmlvdXMtPnBhcmVudCgpLT5uZXh0U2libGluZygpOworICAgIGZvciAoOyBjaGlsZDsgY2hpbGQg
PSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgeworICAgICAgICBpZiAoY2hpbGQtPmhhc1RhZ05hbWUo
dGZvb3RUYWcpKSB7CisgICAgICAgICAgICBmb3IgKE5vZGUqIGdyYW5kY2hpbGQgPSBjaGlsZC0+
Zmlyc3RDaGlsZCgpOyBncmFuZGNoaWxkOyBncmFuZGNoaWxkID0gZ3JhbmRjaGlsZC0+bmV4dFNp
YmxpbmcoKSkgeworICAgICAgICAgICAgICAgIGlmIChncmFuZGNoaWxkLT5oYXNUYWdOYW1lKHRy
VGFnKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxUYWJsZVJv
d0VsZW1lbnQqPihncmFuZGNoaWxkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0K
KworICAgIHJldHVybiAwOworfQorCitIVE1MVGFibGVSb3dFbGVtZW50KiBIVE1MVGFibGVSb3dz
Q29sbGVjdGlvbjo6bGFzdFJvdyhIVE1MVGFibGVFbGVtZW50KiB0YWJsZSkKK3sKKyAgICBmb3Ig
KE5vZGUqIGNoaWxkID0gdGFibGUtPmxhc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+
cHJldmlvdXNTaWJsaW5nKCkpIHsKKyAgICAgICAgaWYgKGNoaWxkLT5oYXNUYWdOYW1lKHRmb290
VGFnKSkgeworICAgICAgICAgICAgZm9yIChOb2RlKiBncmFuZGNoaWxkID0gY2hpbGQtPmxhc3RD
aGlsZCgpOyBncmFuZGNoaWxkOyBncmFuZGNoaWxkID0gZ3JhbmRjaGlsZC0+cHJldmlvdXNTaWJs
aW5nKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoZ3JhbmRjaGlsZC0+aGFzVGFnTmFtZSh0clRh
ZykpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MVGFibGVSb3dF
bGVtZW50Kj4oZ3JhbmRjaGlsZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisK
KyAgICBmb3IgKE5vZGUqIGNoaWxkID0gdGFibGUtPmxhc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQg
PSBjaGlsZC0+cHJldmlvdXNTaWJsaW5nKCkpIHsKKyAgICAgICAgaWYgKGNoaWxkLT5oYXNUYWdO
YW1lKHRyVGFnKSkKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MVGFibGVSb3dF
bGVtZW50Kj4oY2hpbGQpOworICAgICAgICBpZiAoY2hpbGQtPmhhc1RhZ05hbWUodGJvZHlUYWcp
KSB7CisgICAgICAgICAgICBmb3IgKE5vZGUqIGdyYW5kY2hpbGQgPSBjaGlsZC0+bGFzdENoaWxk
KCk7IGdyYW5kY2hpbGQ7IGdyYW5kY2hpbGQgPSBncmFuZGNoaWxkLT5wcmV2aW91c1NpYmxpbmco
KSkgeworICAgICAgICAgICAgICAgIGlmIChncmFuZGNoaWxkLT5oYXNUYWdOYW1lKHRyVGFnKSkK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxUYWJsZVJvd0VsZW1l
bnQqPihncmFuZGNoaWxkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAg
IGZvciAoTm9kZSogY2hpbGQgPSB0YWJsZS0+bGFzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNo
aWxkLT5wcmV2aW91c1NpYmxpbmcoKSkgeworICAgICAgICBpZiAoY2hpbGQtPmhhc1RhZ05hbWUo
dGhlYWRUYWcpKSB7CisgICAgICAgICAgICBmb3IgKE5vZGUqIGdyYW5kY2hpbGQgPSBjaGlsZC0+
bGFzdENoaWxkKCk7IGdyYW5kY2hpbGQ7IGdyYW5kY2hpbGQgPSBncmFuZGNoaWxkLT5wcmV2aW91
c1NpYmxpbmcoKSkgeworICAgICAgICAgICAgICAgIGlmIChncmFuZGNoaWxkLT5oYXNUYWdOYW1l
KHRyVGFnKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxUYWJs
ZVJvd0VsZW1lbnQqPihncmFuZGNoaWxkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
IH0KKworICAgIHJldHVybiAwOworfQorCitIVE1MVGFibGVSb3dzQ29sbGVjdGlvbjo6SFRNTFRh
YmxlUm93c0NvbGxlY3Rpb24oUGFzc1JlZlB0cjxIVE1MVGFibGVFbGVtZW50PiB0YWJsZSkKKyAg
ICA6IEhUTUxDb2xsZWN0aW9uKHRhYmxlLCBPdGhlcikKK3sKK30KKworRWxlbWVudCogSFRNTFRh
YmxlUm93c0NvbGxlY3Rpb246Oml0ZW1BZnRlcihFbGVtZW50KiBwcmV2aW91cykgY29uc3QKK3sK
KyAgICBBU1NFUlQoIXByZXZpb3VzIHx8IHByZXZpb3VzLT5oYXNMb2NhbE5hbWUodHJUYWcpKTsK
KyAgICByZXR1cm4gcm93QWZ0ZXIoc3RhdGljX2Nhc3Q8SFRNTFRhYmxlRWxlbWVudCo+KGJhc2Uo
KSksIHN0YXRpY19jYXN0PEhUTUxUYWJsZVJvd0VsZW1lbnQqPihwcmV2aW91cykpOworfQorCit9
CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBXZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93c0NvbGxlY3Rp
b24uY3BwCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2ZQoKSW5kZXg6
IFdlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvaHRtbC9IVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5oCShyZXZpc2lvbiAwKQorKysgV2Vi
Q29yZS9odG1sL0hUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmgJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2Yg
QXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBp
dHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgSFRNTFRhYmxlUm93c0NvbGxlY3Rpb25faAorI2RlZmluZSBIVE1M
VGFibGVSb3dzQ29sbGVjdGlvbl9oCisKKyNpbmNsdWRlICJIVE1MQ29sbGVjdGlvbi5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEhUTUxUYWJsZUVsZW1lbnQ7CitjbGFzcyBIVE1M
VGFibGVSb3dFbGVtZW50OworCitjbGFzcyBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbiA6IHB1Ymxp
YyBIVE1MQ29sbGVjdGlvbiB7CitwdWJsaWM6CisgICAgSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24o
UGFzc1JlZlB0cjxIVE1MVGFibGVFbGVtZW50Pik7CisKKyAgICBzdGF0aWMgSFRNTFRhYmxlUm93
RWxlbWVudCogcm93QWZ0ZXIoSFRNTFRhYmxlRWxlbWVudCosIEhUTUxUYWJsZVJvd0VsZW1lbnQq
KTsKKyAgICBzdGF0aWMgSFRNTFRhYmxlUm93RWxlbWVudCogbGFzdFJvdyhIVE1MVGFibGVFbGVt
ZW50Kik7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCBFbGVtZW50KiBpdGVtQWZ0ZXIoRWxlbWVu
dCopIGNvbnN0OworfTsKKworfSAvLyBuYW1lc3BhY2UKKworI2VuZGlmCgpQcm9wZXJ0eSBjaGFu
Z2VzIG9uOiBXZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uaApfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Ck5hbWU6IHN2bjplb2wtc3R5bGUKICAgKyBuYXRpdmUKCkluZGV4OiBXZWJDb3JlL2xvYWRlci9G
VFBEaXJlY3RvcnlEb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvRlRQ
RGlyZWN0b3J5RG9jdW1lbnQuY3BwCShyZXZpc2lvbiAyOTA2NCkKKysrIFdlYkNvcmUvbG9hZGVy
L0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE1LDcgKzExNSw3
IEBAIHZvaWQgRlRQRGlyZWN0b3J5VG9rZW5pemVyOjphcHBlbmRFbnRyeSgKIHsKICAgICBFeGNl
cHRpb25Db2RlIGVjOwogCi0gICAgUmVmUHRyPEVsZW1lbnQ+IHJvd0VsZW1lbnQgPSBtX2RvYy0+
Y3JlYXRlRWxlbWVudE5TKHhodG1sTmFtZXNwYWNlVVJJLCAidHIiLCBlYyk7CisgICAgUmVmUHRy
PEVsZW1lbnQ+IHJvd0VsZW1lbnQgPSBtX3RhYmxlRWxlbWVudC0+aW5zZXJ0Um93KC0xLCBlYyk7
CiAgICAgcm93RWxlbWVudC0+c2V0QXR0cmlidXRlKCJjbGFzcyIsICJmdHBEaXJlY3RvcnlFbnRy
eVJvdyIsIGVjKTsKICAgIAogICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gbV9kb2MtPmNy
ZWF0ZUVsZW1lbnROUyh4aHRtbE5hbWVzcGFjZVVSSSwgInRkIiwgZWMpOwpAQCAtMTM5LDE1ICsx
MzksNiBAQCB2b2lkIEZUUERpcmVjdG9yeVRva2VuaXplcjo6YXBwZW5kRW50cnkoCiAgICAgZWxl
bWVudC0+YXBwZW5kQ2hpbGQobmV3IFRleHQobV9kb2MsIHNpemUpLCBlYyk7CiAgICAgZWxlbWVu
dC0+c2V0QXR0cmlidXRlKCJjbGFzcyIsICJmdHBEaXJlY3RvcnlGaWxlU2l6ZSIsIGVjKTsKICAg
ICByb3dFbGVtZW50LT5hcHBlbmRDaGlsZChlbGVtZW50LCBlYyk7Ci0gICAgCi0gICAgLy8gQXBw
ZW5kIHRoZSBuZXcgcm93IHRvIHRoZSBmaXJzdCB0Ym9keSBpZiBpdCBleGlzdHMuICAKLSAgICAv
LyBNYW55IDxUQUJMRT4gZWxlbWVudHMgZW5kIHVwIGhhdmluZyBhbiBpbXBsaWNpdCA8VEJPRFk+
IGNyZWF0ZWQgZm9yIHRoZW0gYW5kIGluIHRob3NlCi0gICAgLy8gY2FzZXMsIGl0J3MgbW9yZSBj
b3JyZWN0IHRvIGFwcGVuZCB0byB0aGUgdGJvZHkgaW5zdGVhZCBvZiB0aGUgdGFibGUgaXRzZWxm
Ci0gICAgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqIGJvZHkgPSBtX3RhYmxlRWxlbWVudC0+Zmly
c3RUQm9keSgpOwotICAgIGlmIChib2R5KQotICAgICAgICBib2R5LT5hcHBlbmRDaGlsZChyb3dF
bGVtZW50LCBlYyk7Ci0gICAgZWxzZQotICAgICAgICBtX3RhYmxlRWxlbWVudC0+YXBwZW5kQ2hp
bGQocm93RWxlbWVudCwgZWMpOwogfQogCiBQYXNzUmVmUHRyPEVsZW1lbnQ+IEZUUERpcmVjdG9y
eVRva2VuaXplcjo6Y3JlYXRlVERGb3JGaWxlbmFtZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lKQoK
SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDI5MDczKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMzIgQEAKKzIwMDgtMDEtMDEgIERhcmluIEFkbGVyICA8ZGFy
aW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIC0gdGVzdCBmb3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY2NTcKKyAgICAgICAgICBBY2lkMyBmYWlsdXJlIHNpbmNlIHRhYmxlLmNhcHRpb24gYW5kIHRh
YmxlLnRoZWFkIGRvIG5vdCB3b3JrIGZvciBub2RlcyBhZGRlZCBieSBhcHBlbmRDaGlsZAorICAg
ICAgICAtIHRlc3QgZm9yIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
NjU5CisgICAgICAgICAgQWNpZDMgZXhwZWN0cyBIVE1MVGFibGVFbGVtZW50LnJvd3MgdG8gaW5j
bHVkZSBhIDx0cj4gZWxlbWVudCB0aGF0IGlzIGFuIGltbWVkaWF0ZSBjaGlsZCBvZiB0aGUgPHRh
YmxlPgorCisgICAgICAgICogZmFzdC9kb20vSFRNTFRhYmxlRWxlbWVudC9lYXJseS1hY2lkMy02
NS1leGNlcnB0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFRh
YmxlRWxlbWVudC9lYXJseS1hY2lkMy02NS1leGNlcnB0Lmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZG9tL0hUTUxUYWJsZUVsZW1lbnQvZWFybHktYWNpZDMtNjYtZXhjZXJwdC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxUYWJsZUVsZW1lbnQvZWFybHkt
YWNpZDMtNjYtZXhjZXJwdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MVGFi
bGVFbGVtZW50L3Jlc291cmNlcy9lYXJseS1hY2lkMy02NS1leGNlcnB0LmpzOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2RvbS9IVE1MVGFibGVFbGVtZW50L3Jlc291cmNlcy9lYXJseS1hY2lkMy02
Ni1leGNlcnB0LmpzOiBBZGRlZC4KKworICAgICAgICAqIGRvbS9odG1sL2xldmVsMi9odG1sL0hU
TUxDb2xsZWN0aW9uMDctZXhwZWN0ZWQudHh0OiBVcGRhdGVkIHRvIHJlZmxlY3Qgc3VjY2Vzcy4K
KyAgICAgICAgKiBkb20vaHRtbC9sZXZlbDIvaHRtbC9IVE1MQ29sbGVjdGlvbjA4LWV4cGVjdGVk
LnR4dDogVXBkYXRlZCB0byByZWZsZWN0IHN1Y2Nlc3MuCisgICAgICAgICogZG9tL3hodG1sL2xl
dmVsMi9odG1sL0hUTUxDb2xsZWN0aW9uMDctZXhwZWN0ZWQudHh0OiBVcGRhdGVkIHRvIHJlZmxl
Y3Qgc3VjY2Vzcy4KKyAgICAgICAgKiBkb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTENvbGxlY3Rp
b24wOC1leHBlY3RlZC50eHQ6IFVwZGF0ZWQgdG8gcmVmbGVjdCBzdWNjZXNzLgorCisgICAgICAg
ICogZmFzdC9kb20vSFRNTFRhYmxlRWxlbWVudC9yZXNvdXJjZXMvcm93cy5qczogQ2hhbmdlZCB0
byBleHBlY3QgSFRNTCA1IGJlaGF2aW9yIGZvciByb3dzIG91dHNpZGUKKyAgICAgICAgdGFibGUg
c2VjdGlvbnMuCisgICAgICAgICogZmFzdC9kb20vSFRNTFRhYmxlRWxlbWVudC9yb3dzLWV4cGVj
dGVkLnR4dDogVXBkYXRlZC4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy90YWJsZXMvbW96aWxs
YS9idWdzL2J1ZzMwNDE4LWV4cGVjdGVkLmNoZWNrc3VtOiBVcGRhdGVkIHRvIHJlZmxlY3QgYmV0
dGVyIHJlc3VsdHMuCisgICAgICAgICogcGxhdGZvcm0vbWFjL3RhYmxlcy9tb3ppbGxhL2J1Z3Mv
YnVnMzA0MTgtZXhwZWN0ZWQucG5nOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvdGFi
bGVzL21vemlsbGEvYnVncy9idWczMDQxOC1leHBlY3RlZC50eHQ6IERpdHRvLgorCiAyMDA4LTAx
LTAxICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RGFyaW4uCkluZGV4OiBMYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDIvaHRtbC9IVE1MQ29sbGVj
dGlvbjA3LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9kb20vaHRtbC9s
ZXZlbDIvaHRtbC9IVE1MQ29sbGVjdGlvbjA3LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjkwNzMp
CisrKyBMYXlvdXRUZXN0cy9kb20vaHRtbC9sZXZlbDIvaHRtbC9IVE1MQ29sbGVjdGlvbjA3LWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIgQEAKLVRlc3Q6CWh0dHA6Ly93
d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwyL2h0bWwvSFRNTENvbGxlY3Rpb24w
NwkKLVN0YXR1czoJZmFpbHVyZQotRGV0YWlsOglyb3dJbmRleExpbms6IGFzc2VydEVxdWFscyBm
YWlsZWQsIGFjdHVhbCAyLCBleHBlY3RlZCAzLgorVGVzdDoJaHR0cDovL3d3dy53My5vcmcvMjAw
MS9ET00tVGVzdC1TdWl0ZS9sZXZlbDIvaHRtbC9IVE1MQ29sbGVjdGlvbjA3CitTdGF0dXM6CVN1
Y2Nlc3MKSW5kZXg6IExheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMi9odG1sL0hUTUxDb2xsZWN0
aW9uMDgtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2RvbS9odG1sL2xl
dmVsMi9odG1sL0hUTUxDb2xsZWN0aW9uMDgtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyOTA3MykK
KysrIExheW91dFRlc3RzL2RvbS9odG1sL2xldmVsMi9odG1sL0hUTUxDb2xsZWN0aW9uMDgtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMiBAQAotVGVzdDoJaHR0cDovL3d3
dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDIvaHRtbC9IVE1MQ29sbGVjdGlvbjA4
CQotU3RhdHVzOglmYWlsdXJlCi1EZXRhaWw6CXJvd0luZGV4TGluazogYXNzZXJ0RXF1YWxzIGZh
aWxlZCwgYWN0dWFsIDEsIGV4cGVjdGVkIDIuCitUZXN0OglodHRwOi8vd3d3LnczLm9yZy8yMDAx
L0RPTS1UZXN0LVN1aXRlL2xldmVsMi9odG1sL0hUTUxDb2xsZWN0aW9uMDgKK1N0YXR1czoJU3Vj
Y2VzcwpJbmRleDogTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxDb2xsZWN0
aW9uMDctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDIvaHRtbC9IVE1MQ29sbGVjdGlvbjA3LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjkwNzMp
CisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTENvbGxlY3Rpb24wNy1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyIEBACiBUZXN0CWh0dHA6Ly93
d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwyL2h0bWwvSFRNTENvbGxlY3Rpb24w
NwotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJcm93SW5kZXhMaW5rOiBhc3NlcnRFcXVhbHMgZmFp
bGVkLCBhY3R1YWwgMiwgZXhwZWN0ZWQgMy4KK1N0YXR1cwlTdWNjZXNzCkluZGV4OiBMYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTENvbGxlY3Rpb24wOC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxDb2xs
ZWN0aW9uMDgtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyOTA3MykKKysrIExheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQ29sbGVjdGlvbjA4LWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDIgQEAKIFRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00t
VGVzdC1TdWl0ZS9sZXZlbDIvaHRtbC9IVE1MQ29sbGVjdGlvbjA4Ci1TdGF0dXMJZmFpbHVyZQot
TWVzc2FnZQlyb3dJbmRleExpbms6IGFzc2VydEVxdWFscyBmYWlsZWQsIGFjdHVhbCAxLCBleHBl
Y3RlZCAyLgorU3RhdHVzCVN1Y2Nlc3MKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxU
YWJsZUVsZW1lbnQvZWFybHktYWNpZDMtNjUtZXhjZXJwdC1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRhYmxlRWxlbWVudC9lYXJseS1hY2lkMy02
NS1leGNlcnB0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxUYWJsZUVsZW1lbnQvZWFybHktYWNpZDMtNjUtZXhjZXJwdC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjUgQEAKK0FuIGV4Y2VycHQgZnJvbSBhbiBlYXJseSBB
Y2lkMyB0ZXN0IDY1OiBjb25zdHJ1Y3QgYSB0YWJsZSwgYW5kIHNlZSBpZiB0aGUgdGFibGUgaXMg
YXMgZXhwZWN0ZWQKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGFibGUu
dEJvZGllc1swXS5yb3dzWzBdLnJvd0luZGV4IGlzIDAKK1BBU1MgdGFibGUudEJvZGllc1swXS5y
b3dzWzBdLnNlY3Rpb25Sb3dJbmRleCBpcyAwCitQQVNTIHRhYmxlLmNoaWxkTm9kZXMubGVuZ3Ro
IGlzIDMKK1BBU1MgISF0YWJsZS5jYXB0aW9uIGlzIHRydWUKK1BBU1MgISF0YWJsZS50SGVhZCBp
cyB0cnVlCitQQVNTIHRhYmxlLnRGb290IGlzIG51bGwKK1BBU1MgdGFibGUudEJvZGllcy5sZW5n
dGggaXMgMQorUEFTUyB0YWJsZS5yb3dzLmxlbmd0aCBpcyAxCitQQVNTIHRyMS5wYXJlbnROb2Rl
IGlzIG51bGwKK1BBU1MgdGFibGUuY2FwdGlvbiBpcyB0YWJsZS5jcmVhdGVDYXB0aW9uKCkKK1BB
U1MgdGFibGUudEZvb3QgaXMgbnVsbAorUEFTUyB0YWJsZS50SGVhZCBpcyB0YWJsZS5jcmVhdGVU
SGVhZCgpCitQQVNTIHRhYmxlLmNyZWF0ZVRGb290KCkgaXMgdGFibGUudEZvb3QKK1BBU1MgdGFi
bGUucm93c1swXSBpcyB0YWJsZS50SGVhZC5maXJzdENoaWxkCitQQVNTIHRhYmxlLnJvd3MubGVu
Z3RoIGlzIDIKK1BBU1MgdGFibGUucm93c1sxXSBpcyB0YWJsZS50Qm9kaWVzWzBdLmZpcnN0Q2hp
bGQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCgpQ
cm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGFibGVFbGVtZW50
L2Vhcmx5LWFjaWQzLTY1LWV4Y2VycHQtZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3Zu
OmVvbC1zdHlsZQogICArIG5hdGl2ZQoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxU
YWJsZUVsZW1lbnQvZWFybHktYWNpZDMtNjUtZXhjZXJwdC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUYWJsZUVsZW1lbnQvZWFybHktYWNpZDMtNjUtZXhjZXJw
dC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRhYmxlRWxl
bWVudC9lYXJseS1hY2lkMy02NS1leGNlcnB0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxo
dG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvZWFybHktYWNpZDMtNjUtZXhjZXJwdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGFi
bGVFbGVtZW50L2Vhcmx5LWFjaWQzLTY1LWV4Y2VycHQuaHRtbApfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2
bjptaW1lLXR5cGUKICAgKyB0ZXh0L2h0bWwKTmFtZTogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2
ZQoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUYWJsZUVsZW1lbnQvZWFybHktYWNp
ZDMtNjYtZXhjZXJwdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTFRhYmxlRWxlbWVudC9lYXJseS1hY2lkMy02Ni1leGNlcnB0LWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUYWJsZUVsZW1lbnQv
ZWFybHktYWNpZDMtNjYtZXhjZXJwdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMjYgQEAKK0FuIGV4Y2VycHQgZnJvbSBhbiBlYXJseSBBY2lkMyB0ZXN0IDY2OiB0ZXN0IHRo
ZSBvcmRlcmluZyBhbmQgY3JlYXRpb24gb2Ygcm93cworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyB0YWJsZS5yb3dzLmxlbmd0aCBpcyA2CitQQVNTIHRhYmxlLmdldEVsZW1l
bnRzQnlUYWdOYW1lKCd0cicpLmxlbmd0aCBpcyA2CitQQVNTIHRhYmxlLmNoaWxkTm9kZXMubGVu
Z3RoIGlzIDMKK1BBU1MgdGFibGUudEhlYWQgaXMgdGFibGUuY2hpbGROb2Rlc1swXQorUEFTUyB0
YWJsZS50SGVhZC5jaGlsZE5vZGVzWzBdIGlzIHRhYmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0
cicpWzBdCitQQVNTIHRhYmxlLnRIZWFkLmNoaWxkTm9kZXNbMV0gaXMgdGFibGUuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoJ3RyJylbMV0KK1BBU1Mgcm93c1syXSBpcyB0YWJsZS5nZXRFbGVtZW50c0J5
VGFnTmFtZSgndHInKVsxXQorUEFTUyB0YWJsZS50SGVhZC5jaGlsZE5vZGVzWzJdIGlzIHRhYmxl
LmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0cicpWzJdCitQQVNTIHJvd3NbM10gaXMgdGFibGUuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoJ3RyJylbMl0KK1BBU1MgdGFibGUudEZvb3QgaXMgdGFibGUuY2hp
bGROb2Rlc1sxXQorUEFTUyB0YWJsZS50Rm9vdC5jaGlsZE5vZGVzWzBdIGlzIHRhYmxlLmdldEVs
ZW1lbnRzQnlUYWdOYW1lKCd0cicpWzNdCitQQVNTIHJvd3NbMF0gaXMgdGFibGUuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoJ3RyJylbM10KK1BBU1MgdGFibGUudEZvb3QuY2hpbGROb2Rlc1sxXSBpcyB0
YWJsZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgndHInKVs0XQorUEFTUyByb3dzWzZdIGlzIHRhYmxl
LmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0cicpWzRdCitQQVNTIHRhYmxlLmNoaWxkTm9kZXNbMl0g
aXMgdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RyJylbNV0KK1BBU1Mgcm93c1sxXSBpcyB0
YWJsZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgndHInKVs1XQorUEFTUyB0YWJsZS50Qm9kaWVzLmxl
bmd0aCBpcyAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRhYmxl
RWxlbWVudC9lYXJseS1hY2lkMy02Ni1leGNlcnB0LWV4cGVjdGVkLnR4dApfX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5h
bWU6IHN2bjplb2wtc3R5bGUKICAgKyBuYXRpdmUKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MVGFibGVFbGVtZW50L2Vhcmx5LWFjaWQzLTY2LWV4Y2VycHQuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGFibGVFbGVtZW50L2Vhcmx5LWFjaWQzLTY2
LWV4Y2VycHQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxU
YWJsZUVsZW1lbnQvZWFybHktYWNpZDMtNjYtZXhjZXJwdC5odG1sCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9F
TiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlk
PSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL2Vhcmx5LWFjaWQzLTY2LWV4Y2VycHQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9kb20v
SFRNTFRhYmxlRWxlbWVudC9lYXJseS1hY2lkMy02Ni1leGNlcnB0Lmh0bWwKX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpO
YW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9odG1sCk5hbWU6IHN2bjplb2wtc3R5bGUKICAg
KyBuYXRpdmUKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGFibGVFbGVtZW50L3Jv
d3MtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxU
YWJsZUVsZW1lbnQvcm93cy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI5MDczKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vSFRNTFRhYmxlRWxlbWVudC9yb3dzLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQCBQQVNTIGNoZWNrTm9Cb2R5Um93TmVzdGluZygidGJv
ZHkiKSBpcyAxCiBQQVNTIGNoZWNrTm9Cb2R5Um93TmVzdGluZygidGZvb3QiKSBpcyAxCiBQQVNT
IGNoZWNrTm9Cb2R5Um93TmVzdGluZygidGhlYWQiKSBpcyAxCiAKLVBBU1MgY2hlY2tOb0JvZHlS
b3dOZXN0aW5nKCJ0ciIpIGlzIDAKK1BBU1MgY2hlY2tOb0JvZHlSb3dOZXN0aW5nKCJ0ciIpIGlz
IDEKIAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9IVE1MVGFibGVFbGVtZW50L3Jlc291cmNlcy9lYXJseS1hY2lkMy02NS1leGNl
cnB0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUYWJsZUVsZW1l
bnQvcmVzb3VyY2VzL2Vhcmx5LWFjaWQzLTY1LWV4Y2VycHQuanMJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MVGFibGVFbGVtZW50L3Jlc291cmNlcy9lYXJseS1hY2lk
My02NS1leGNlcnB0LmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM4IEBACitkZXNjcmlwdGlv
bignQW4gZXhjZXJwdCBmcm9tIGFuIGVhcmx5IEFjaWQzIHRlc3QgNjU6IGNvbnN0cnVjdCBhIHRh
YmxlLCBhbmQgc2VlIGlmIHRoZSB0YWJsZSBpcyBhcyBleHBlY3RlZCcpOworCit2YXIgdGFibGUg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0YWJsZScpOwordGFibGUuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgndGJvZHknKSk7Cit2YXIgdHIxID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgndHInKTsKK3RhYmxlLmFwcGVuZENoaWxkKHRyMSk7Cit0YWJsZS5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYXB0aW9uJykpOwordGFibGUuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGhlYWQnKSk7CisvLyA8dGFibGU+PHRib2R5Lz48dHIv
PjxjYXB0aW9uLz48dGhlYWQvPgordGFibGUuaW5zZXJ0QmVmb3JlKHRhYmxlLmZpcnN0Q2hpbGQu
bmV4dFNpYmxpbmcsIG51bGwpOyAvLyBtb3ZlIHRoZSA8dHIvPiB0byB0aGUgZW5kCisvLyA8dGFi
bGU+PHRib2R5Lz48Y2FwdGlvbi8+PHRoZWFkLz48dHIvPgordGFibGUucmVwbGFjZUNoaWxkKHRh
YmxlLmZpcnN0Q2hpbGQsIHRhYmxlLmxhc3RDaGlsZCk7IC8vIG1vdmUgdGhlIDx0Ym9keS8+IHRv
IHRoZSBlbmQgYW5kIHJlbW92ZSB0aGUgPHRyPgorLy8gPHRhYmxlPjxjYXB0aW9uLz48dGhlYWQv
Pjx0Ym9keS8+Cit2YXIgdHIyID0gdGFibGUudEJvZGllc1swXS5pbnNlcnRSb3coMCk7CisvLyA8
dGFibGU+PGNhcHRpb24vPjx0aGVhZC8+PHRib2R5Pjx0ci8+PC90Ym9keT4KK3Nob3VsZEJlKCJ0
YWJsZS50Qm9kaWVzWzBdLnJvd3NbMF0ucm93SW5kZXgiLCAiMCIpOworc2hvdWxkQmUoInRhYmxl
LnRCb2RpZXNbMF0ucm93c1swXS5zZWN0aW9uUm93SW5kZXgiLCAiMCIpOworc2hvdWxkQmUoInRh
YmxlLmNoaWxkTm9kZXMubGVuZ3RoIiwgIjMiKTsKK3Nob3VsZEJlKCIhIXRhYmxlLmNhcHRpb24i
LCAidHJ1ZSIpOworc2hvdWxkQmUoIiEhdGFibGUudEhlYWQiLCAidHJ1ZSIpOworc2hvdWxkQmUo
InRhYmxlLnRGb290IiwgIm51bGwiKTsKK3Nob3VsZEJlKCJ0YWJsZS50Qm9kaWVzLmxlbmd0aCIs
ICIxIik7CitzaG91bGRCZSgidGFibGUucm93cy5sZW5ndGgiLCAiMSIpOworc2hvdWxkQmUoInRy
MS5wYXJlbnROb2RlIiwgIm51bGwiKTsKK3Nob3VsZEJlKCJ0YWJsZS5jYXB0aW9uIiwgInRhYmxl
LmNyZWF0ZUNhcHRpb24oKSIpOworc2hvdWxkQmUoInRhYmxlLnRGb290IiwgIm51bGwiKTsKK3No
b3VsZEJlKCJ0YWJsZS50SGVhZCIsICJ0YWJsZS5jcmVhdGVUSGVhZCgpIik7CitzaG91bGRCZSgi
dGFibGUuY3JlYXRlVEZvb3QoKSIsICJ0YWJsZS50Rm9vdCIpOworLy8gZWl0aGVyOiA8dGFibGU+
PGNhcHRpb24vPjx0aGVhZC8+PHRib2R5Pjx0ci8+PC90Ym9keT48dGZvb3QvPgorLy8gICAgIG9y
OiA8dGFibGU+PGNhcHRpb24vPjx0aGVhZC8+PHRmb290Lz48dGJvZHk+PHRyLz48L3Rib2R5Pgor
dGFibGUudEhlYWQuYXBwZW5kQ2hpbGQodHIxKTsKKy8vIGVpdGhlcjogPHRhYmxlPjxjYXB0aW9u
Lz48dGhlYWQ+PHRyLz48L3RoZWFkPjx0Ym9keT48dHIvPjwvdGJvZHk+PHRmb290Lz4KKy8vICAg
ICBvcjogPHRhYmxlPjxjYXB0aW9uLz48dGhlYWQ+PHRyLz48L3RoZWFkPjx0Zm9vdC8+PHRib2R5
Pjx0ci8+PC90Ym9keT4KK3Nob3VsZEJlKCJ0YWJsZS5yb3dzWzBdIiwgInRhYmxlLnRIZWFkLmZp
cnN0Q2hpbGQiKTsKK3Nob3VsZEJlKCJ0YWJsZS5yb3dzLmxlbmd0aCIsICIyIik7CitzaG91bGRC
ZSgidGFibGUucm93c1sxXSIsICJ0YWJsZS50Qm9kaWVzWzBdLmZpcnN0Q2hpbGQiKTsKKwordmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MVGFibGVFbGVtZW50L3Jlc291cmNlcy9lYXJseS1hY2lkMy02Ni1leGNlcnB0LmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUYWJsZUVsZW1lbnQvcmVzb3VyY2Vz
L2Vhcmx5LWFjaWQzLTY2LWV4Y2VycHQuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9IVE1MVGFibGVFbGVtZW50L3Jlc291cmNlcy9lYXJseS1hY2lkMy02Ni1leGNlcnB0
LmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQwIEBACitkZXNjcmlwdGlvbignQW4gZXhjZXJw
dCBmcm9tIGFuIGVhcmx5IEFjaWQzIHRlc3QgNjY6IHRlc3QgdGhlIG9yZGVyaW5nIGFuZCBjcmVh
dGlvbiBvZiByb3dzJyk7CisKK3ZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Rh
YmxlJyk7Cit2YXIgcm93cyA9IFsKKyAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpLCAg
ICAvLyAwOiBlbmRzIHVwIGZpcnN0IGNoaWxkIG9mIHRoZSB0Zm9vdAorICAgIGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ3RyJyksICAgIC8vIDE6IGdvZXMgYXQgdGhlIGVuZCBvZiB0aGUgdGFibGUK
KyAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpLCAgICAvLyAyOiBiZWNvbWVzIHNlY29u
ZCBjaGlsZCBvZiB0aGVhZAorICAgIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyksICAgIC8v
IDM6IGJlY29tZXMgdGhpcmQgY2hpbGQgb2YgdGhlIHRoZWFkCisgICAgZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgndHInKSwgICAgLy8gNDogbm90IGluIHRoZSB0YWJsZQorICAgIHRhYmxlLmluc2Vy
dFJvdygwKSwgICAgICAgICAgICAgIC8vIDU6IG5vdCBpbiB0aGUgdGFibGUKKyAgICB0YWJsZS5j
cmVhdGVURm9vdCgpLmluc2VydFJvdygwKSAvLyA2OiBlbmRzIHVwIHNlY29uZCBpbiB0aGUgdGZv
b3QKK107Cityb3dzWzZdLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQocm93c1swXSk7Cit0YWJsZS5h
cHBlbmRDaGlsZChyb3dzWzFdKTsKK3RhYmxlLmluc2VydEJlZm9yZShkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCd0aGVhZCcpLCB0YWJsZS5maXJzdENoaWxkKTsKK3RhYmxlLmZpcnN0Q2hpbGQuYXBw
ZW5kQ2hpbGQocm93c1syXSk7Cityb3dzWzJdLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQocm93c1sz
XSk7Cityb3dzWzRdLmFwcGVuZENoaWxkKHJvd3NbNV0ucGFyZW50Tm9kZSk7Cit0YWJsZS5pbnNl
cnRSb3coMCk7Cit0YWJsZS50Rm9vdC5hcHBlbmRDaGlsZChyb3dzWzZdKTsKKworc2hvdWxkQmUo
InRhYmxlLnJvd3MubGVuZ3RoIiwgIjYiKTsKK3Nob3VsZEJlKCJ0YWJsZS5nZXRFbGVtZW50c0J5
VGFnTmFtZSgndHInKS5sZW5ndGgiLCAiNiIpOworc2hvdWxkQmUoInRhYmxlLmNoaWxkTm9kZXMu
bGVuZ3RoIiwgIjMiKTsKK3Nob3VsZEJlKCJ0YWJsZS50SGVhZCIsICJ0YWJsZS5jaGlsZE5vZGVz
WzBdIik7CitzaG91bGRCZSgidGFibGUudEhlYWQuY2hpbGROb2Rlc1swXSIsICJ0YWJsZS5nZXRF
bGVtZW50c0J5VGFnTmFtZSgndHInKVswXSIpOworc2hvdWxkQmUoInRhYmxlLnRIZWFkLmNoaWxk
Tm9kZXNbMV0iLCAidGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RyJylbMV0iKTsKK3Nob3Vs
ZEJlKCJyb3dzWzJdIiwgInRhYmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0cicpWzFdIik7Citz
aG91bGRCZSgidGFibGUudEhlYWQuY2hpbGROb2Rlc1syXSIsICJ0YWJsZS5nZXRFbGVtZW50c0J5
VGFnTmFtZSgndHInKVsyXSIpOworc2hvdWxkQmUoInJvd3NbM10iLCAidGFibGUuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoJ3RyJylbMl0iKTsKK3Nob3VsZEJlKCJ0YWJsZS50Rm9vdCIsICJ0YWJsZS5j
aGlsZE5vZGVzWzFdIik7CitzaG91bGRCZSgidGFibGUudEZvb3QuY2hpbGROb2Rlc1swXSIsICJ0
YWJsZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgndHInKVszXSIpOworc2hvdWxkQmUoInJvd3NbMF0i
LCAidGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RyJylbM10iKTsKK3Nob3VsZEJlKCJ0YWJs
ZS50Rm9vdC5jaGlsZE5vZGVzWzFdIiwgInRhYmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0cicp
WzRdIik7CitzaG91bGRCZSgicm93c1s2XSIsICJ0YWJsZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgn
dHInKVs0XSIpOworc2hvdWxkQmUoInRhYmxlLmNoaWxkTm9kZXNbMl0iLCAidGFibGUuZ2V0RWxl
bWVudHNCeVRhZ05hbWUoJ3RyJylbNV0iKTsKK3Nob3VsZEJlKCJyb3dzWzFdIiwgInRhYmxlLmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCd0cicpWzVdIik7CitzaG91bGRCZSgidGFibGUudEJvZGllcy5s
ZW5ndGgiLCAiMCIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUYWJsZUVsZW1lbnQvcmVzb3VyY2VzL3Jvd3MuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFRhYmxlRWxlbWVudC9yZXNvdXJj
ZXMvcm93cy5qcwkocmV2aXNpb24gMjkwNzMpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1M
VGFibGVFbGVtZW50L3Jlc291cmNlcy9yb3dzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC02Myw3ICs2
Myw3IEBAIGZvciAoaSA9IDA7IGkgPCBzZWN0aW9uVGFncy5sZW5ndGg7ICsraSkKIAogZGVidWco
JycpOwogCi1zaG91bGRCZSgnY2hlY2tOb0JvZHlSb3dOZXN0aW5nKCJ0ciIpJywgJzAnKTsKK3No
b3VsZEJlKCdjaGVja05vQm9keVJvd05lc3RpbmcoInRyIiknLCAnMScpOwogCiBkZWJ1ZygnJyk7
CiAKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy90YWJsZXMvbW96aWxsYS9idWdzL2J1
ZzMwNDE4LWV4cGVjdGVkLmNoZWNrc3VtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy90YWJsZXMvbW96aWxsYS9idWdzL2J1ZzMwNDE4LWV4cGVjdGVkLmNoZWNrc3VtCShy
ZXZpc2lvbiAyOTA3MykKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy90YWJsZXMvbW96aWxs
YS9idWdzL2J1ZzMwNDE4LWV4cGVjdGVkLmNoZWNrc3VtCSh3b3JraW5nIGNvcHkpCkBAIC0xICsx
IEBACi05OTdiZDkyNTMxNmY4YTFiOTIzZDAxOGE5NGU0YzlhOQpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKKzk2MjE3NGM3Yjg3ODY2NGMyZjYzYTU4ZTdiYjBlMDBkClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3RhYmxlcy9tb3pp
bGxhL2J1Z3MvYnVnMzA0MTgtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy90YWJsZXMvbW96aWxsYS9idWdzL2J1ZzMwNDE4LWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMjkwNzMpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvdGFibGVzL21vemls
bGEvYnVncy9idWczMDQxOC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsODQgKzEs
ODQgQEAKIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICBSZW5kZXJWaWV3IGF0ICgwLDAp
IHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4OTYKLSAgUmVuZGVyQmxvY2sg
e0hUTUx9IGF0ICgwLDApIHNpemUgODAweDk2Ci0gICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgs
OCkgc2l6ZSA3ODR4ODAKLSAgICAgIFJlbmRlclRhYmxlIHtUQUJMRX0gYXQgKDAsMCkgc2l6ZSAy
NjZ4ODAgW2JvcmRlcjogKDRweCBvdXRzZXQgIzgwODA4MCldCi0gICAgICAgIFJlbmRlclRhYmxl
U2VjdGlvbiB7VEJPRFl9IGF0ICg0LDI4KSBzaXplIDI1OHgyNAotICAgICAgICAgIFJlbmRlclRh
YmxlUm93IHtUUn0gYXQgKDAsMikgc2l6ZSAyNTh4MjAKLSAgICAgICAgICAgIFJlbmRlclRhYmxl
Q2VsbCB7VER9IGF0ICgyLDIpIHNpemUgMzB4MjAgW3I9MCBjPTAgcnM9MSBjcz0xXQotICAgICAg
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEsMSkgc2l6ZSAyOHgxOAotICAgICAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICgxLDEpIHdpZHRoIDI4OiAicjBjMCIKLSAgICAgICAgICAgIFJl
bmRlclRhYmxlQ2VsbCB7VER9IGF0ICgzNCwyKSBzaXplIDMweDIwIFtyPTAgYz0xIHJzPTEgY3M9
MV0KLSAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxLDEpIHNpemUgMjh4MTgK
LSAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMSwxKSB3aWR0aCAyODogInIwYzEiCi0gICAg
ICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoNjYsMikgc2l6ZSAzMHgyMCBbcj0wIGM9
MiBycz0xIGNzPTFdCi0gICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMSwxKSBz
aXplIDI4eDE4Ci0gICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDEsMSkgd2lkdGggMjg6ICJy
MGMyIgotICAgICAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDk4LDIpIHNpemUgMzB4
MjAgW3I9MCBjPTMgcnM9MSBjcz0xXQotICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDEsMSkgc2l6ZSAyOHgxOAotICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxLDEpIHdp
ZHRoIDI4OiAicjBjMyIKLSAgICAgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgxMzAs
Mikgc2l6ZSAzMHgyMCBbcj0wIGM9NCBycz0xIGNzPTFdCi0gICAgICAgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMSwxKSBzaXplIDI4eDE4Ci0gICAgICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDEsMSkgd2lkdGggMjg6ICJyMGM0IgotICAgICAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtU
RH0gYXQgKDE2MiwyKSBzaXplIDMweDIwIFtyPTAgYz01IHJzPTEgY3M9MV0KLSAgICAgICAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxLDEpIHNpemUgMjh4MTgKLSAgICAgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMSwxKSB3aWR0aCAyODogInIwYzUiCi0gICAgICAgICAgICBSZW5kZXJU
YWJsZUNlbGwge1REfSBhdCAoMTk0LDIpIHNpemUgMzB4MjAgW3I9MCBjPTYgcnM9MSBjcz0xXQot
ICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEsMSkgc2l6ZSAyOHgxOAotICAg
ICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxLDEpIHdpZHRoIDI4OiAicjBjNiIKLSAgICAgICAg
ICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgyMjYsMikgc2l6ZSAzMHgyMCBbcj0wIGM9NyBy
cz0xIGNzPTFdCi0gICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMSwxKSBzaXpl
IDI4eDE4Ci0gICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDEsMSkgd2lkdGggMjg6ICJyMGM3
IgotICAgICAgICBSZW5kZXJUYWJsZVNlY3Rpb24ge1RIRUFEfSBhdCAoNCw0KSBzaXplIDI1OHgy
NAotICAgICAgICAgIFJlbmRlclRhYmxlUm93IHtUUn0gYXQgKDAsMikgc2l6ZSAyNTh4MjAKLSAg
ICAgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgyLDIpIHNpemUgMzB4MjAgW3I9MCBj
PTAgcnM9MSBjcz0xXQotICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEsMSkg
c2l6ZSAxNngxOAotICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxLDEpIHdpZHRoIDE2OiAi
aDAiCi0gICAgICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMzQsMikgc2l6ZSAzMHgy
MCBbcj0wIGM9MSBycz0xIGNzPTFdCi0gICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMSwxKSBzaXplIDE2eDE4Ci0gICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDEsMSkgd2lk
dGggMTY6ICJoMSIKLSAgICAgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg2NiwyKSBz
aXplIDMweDIwIFtyPTAgYz0yIHJzPTEgY3M9MV0KLSAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgxLDEpIHNpemUgMTZ4MTgKLSAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MSwxKSB3aWR0aCAxNjogImgyIgotICAgICAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQg
KDk4LDIpIHNpemUgMzB4MjAgW3I9MCBjPTMgcnM9MSBjcz0xXQotICAgICAgICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDEsMSkgc2l6ZSAxNngxOAotICAgICAgICAgICAgICAgIHRleHQg
cnVuIGF0ICgxLDEpIHdpZHRoIDE2OiAiaDMiCi0gICAgICAgICAgICBSZW5kZXJUYWJsZUNlbGwg
e1REfSBhdCAoMTMwLDIpIHNpemUgMzB4MjAgW3I9MCBjPTQgcnM9MSBjcz0xXQotICAgICAgICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEsMSkgc2l6ZSAxNngxOAotICAgICAgICAgICAg
ICAgIHRleHQgcnVuIGF0ICgxLDEpIHdpZHRoIDE2OiAiaDQiCi0gICAgICAgICAgICBSZW5kZXJU
YWJsZUNlbGwge1REfSBhdCAoMTYyLDIpIHNpemUgMzB4MjAgW3I9MCBjPTUgcnM9MSBjcz0xXQot
ICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEsMSkgc2l6ZSAxNngxOAotICAg
ICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxLDEpIHdpZHRoIDE2OiAiaDUiCi0gICAgICAgICAg
ICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTk0LDIpIHNpemUgMzB4MjAgW3I9MCBjPTYgcnM9
MSBjcz0xXQotICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEsMSkgc2l6ZSAx
NngxOAotICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxLDEpIHdpZHRoIDE2OiAiaDYiCi0g
ICAgICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMjI2LDIpIHNpemUgMzB4MjAgW3I9
MCBjPTcgcnM9MSBjcz0xXQotICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEs
MSkgc2l6ZSAxNngxOAotICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxLDEpIHdpZHRoIDE2
OiAiaDciCi0gICAgICAgIFJlbmRlclRhYmxlU2VjdGlvbiB7VEZPT1R9IGF0ICg0LDUyKSBzaXpl
IDI1OHgyNAotICAgICAgICAgIFJlbmRlclRhYmxlUm93IHtUUn0gYXQgKDAsMikgc2l6ZSAyNTh4
MjAKLSAgICAgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgyLDIpIHNpemUgMzB4MjAg
W3I9MCBjPTAgcnM9MSBjcz0xXQotICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDEsMSkgc2l6ZSAxM3gxOAotICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxLDEpIHdpZHRo
IDEzOiAiZjAiCi0gICAgICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMzQsMikgc2l6
ZSAzMHgyMCBbcj0wIGM9MSBycz0xIGNzPTFdCi0gICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMSwxKSBzaXplIDEzeDE4Ci0gICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDEs
MSkgd2lkdGggMTM6ICJmMSIKLSAgICAgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg2
NiwyKSBzaXplIDMweDIwIFtyPTAgYz0yIHJzPTEgY3M9MV0KLSAgICAgICAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgxLDEpIHNpemUgMTN4MTgKLSAgICAgICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMSwxKSB3aWR0aCAxMzogImYyIgotICAgICAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtU
RH0gYXQgKDk4LDIpIHNpemUgMzB4MjAgW3I9MCBjPTMgcnM9MSBjcz0xXQotICAgICAgICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEsMSkgc2l6ZSAxM3gxOAotICAgICAgICAgICAgICAg
IHRleHQgcnVuIGF0ICgxLDEpIHdpZHRoIDEzOiAiZjMiCi0gICAgICAgICAgICBSZW5kZXJUYWJs
ZUNlbGwge1REfSBhdCAoMTMwLDIpIHNpemUgMzB4MjAgW3I9MCBjPTQgcnM9MSBjcz0xXQotICAg
ICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEsMSkgc2l6ZSAxM3gxOAotICAgICAg
ICAgICAgICAgIHRleHQgcnVuIGF0ICgxLDEpIHdpZHRoIDEzOiAiZjQiCi0gICAgICAgICAgICBS
ZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTYyLDIpIHNpemUgMzB4MjAgW3I9MCBjPTUgcnM9MSBj
cz0xXQotICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEsMSkgc2l6ZSAxM3gx
OAotICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxLDEpIHdpZHRoIDEzOiAiZjUiCi0gICAg
ICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMTk0LDIpIHNpemUgMzB4MjAgW3I9MCBj
PTYgcnM9MSBjcz0xXQotICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEsMSkg
c2l6ZSAxM3gxOAotICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxLDEpIHdpZHRoIDEzOiAi
ZjYiCi0gICAgICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMjI2LDIpIHNpemUgMzB4
MjAgW3I9MCBjPTcgcnM9MSBjcz0xXQotICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDEsMSkgc2l6ZSAxM3gxOAotICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxLDEpIHdp
ZHRoIDEzOiAiZjciCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHgxMDIKKyAgUmVuZGVyQmxvY2sg
e0hUTUx9IGF0ICgwLDApIHNpemUgODAweDEwMgorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4
LDgpIHNpemUgNzg0eDg2CisgICAgICBSZW5kZXJUYWJsZSB7VEFCTEV9IGF0ICgwLDApIHNpemUg
MjgyeDg2IFtib3JkZXI6ICg0cHggb3V0c2V0ICM4MDgwODApXQorICAgICAgICBSZW5kZXJUYWJs
ZVNlY3Rpb24ge1RIRUFEfSBhdCAoNCw0KSBzaXplIDI3NHgyNgorICAgICAgICAgIFJlbmRlclRh
YmxlUm93IHtUUn0gYXQgKDAsMikgc2l6ZSAyNzR4MjIKKyAgICAgICAgICAgIFJlbmRlclRhYmxl
Q2VsbCB7VER9IGF0ICgyLDIpIHNpemUgMzJ4MjIgW2JvcmRlcjogKDFweCBpbnNldCAjODA4MDgw
KV0gW3I9MCBjPTAgcnM9MSBjcz0xXQorICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDIsMikgc2l6ZSAxNngxOAorICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyLDIpIHdp
ZHRoIDE2OiAiaDAiCisgICAgICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMzYsMikg
c2l6ZSAzMngyMiBbYm9yZGVyOiAoMXB4IGluc2V0ICM4MDgwODApXSBbcj0wIGM9MSBycz0xIGNz
PTFdCisgICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMiwyKSBzaXplIDE2eDE4
CisgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDIsMikgd2lkdGggMTY6ICJoMSIKKyAgICAg
ICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg3MCwyKSBzaXplIDMyeDIyIFtib3JkZXI6
ICgxcHggaW5zZXQgIzgwODA4MCldIFtyPTAgYz0yIHJzPTEgY3M9MV0KKyAgICAgICAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyLDIpIHNpemUgMTZ4MTgKKyAgICAgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMiwyKSB3aWR0aCAxNjogImgyIgorICAgICAgICAgICAgUmVuZGVyVGFibGVD
ZWxsIHtURH0gYXQgKDEwNCwyKSBzaXplIDMyeDIyIFtib3JkZXI6ICgxcHggaW5zZXQgIzgwODA4
MCldIFtyPTAgYz0zIHJzPTEgY3M9MV0KKyAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgyLDIpIHNpemUgMTZ4MTgKKyAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMiwyKSB3
aWR0aCAxNjogImgzIgorICAgICAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDEzOCwy
KSBzaXplIDMyeDIyIFtib3JkZXI6ICgxcHggaW5zZXQgIzgwODA4MCldIFtyPTAgYz00IHJzPTEg
Y3M9MV0KKyAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyLDIpIHNpemUgMTZ4
MTgKKyAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMiwyKSB3aWR0aCAxNjogImg0IgorICAg
ICAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDE3MiwyKSBzaXplIDMyeDIyIFtib3Jk
ZXI6ICgxcHggaW5zZXQgIzgwODA4MCldIFtyPTAgYz01IHJzPTEgY3M9MV0KKyAgICAgICAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyLDIpIHNpemUgMTZ4MTgKKyAgICAgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMiwyKSB3aWR0aCAxNjogImg1IgorICAgICAgICAgICAgUmVuZGVyVGFi
bGVDZWxsIHtURH0gYXQgKDIwNiwyKSBzaXplIDMyeDIyIFtib3JkZXI6ICgxcHggaW5zZXQgIzgw
ODA4MCldIFtyPTAgYz02IHJzPTEgY3M9MV0KKyAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgyLDIpIHNpemUgMTZ4MTgKKyAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMiwy
KSB3aWR0aCAxNjogImg2IgorICAgICAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDI0
MCwyKSBzaXplIDMyeDIyIFtib3JkZXI6ICgxcHggaW5zZXQgIzgwODA4MCldIFtyPTAgYz03IHJz
PTEgY3M9MV0KKyAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyLDIpIHNpemUg
MTZ4MTgKKyAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMiwyKSB3aWR0aCAxNjogImg3Igor
ICAgICAgICBSZW5kZXJUYWJsZVNlY3Rpb24ge1RGT09UfSBhdCAoNCw1Nikgc2l6ZSAyNzR4MjYK
KyAgICAgICAgICBSZW5kZXJUYWJsZVJvdyB7VFJ9IGF0ICgwLDIpIHNpemUgMjc0eDIyCisgICAg
ICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMiwyKSBzaXplIDMyeDIyIFtib3JkZXI6
ICgxcHggaW5zZXQgIzgwODA4MCldIFtyPTAgYz0wIHJzPTEgY3M9MV0KKyAgICAgICAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyLDIpIHNpemUgMTN4MTgKKyAgICAgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMiwyKSB3aWR0aCAxMzogImYwIgorICAgICAgICAgICAgUmVuZGVyVGFibGVD
ZWxsIHtURH0gYXQgKDM2LDIpIHNpemUgMzJ4MjIgW2JvcmRlcjogKDFweCBpbnNldCAjODA4MDgw
KV0gW3I9MCBjPTEgcnM9MSBjcz0xXQorICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDIsMikgc2l6ZSAxM3gxOAorICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyLDIpIHdp
ZHRoIDEzOiAiZjEiCisgICAgICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoNzAsMikg
c2l6ZSAzMngyMiBbYm9yZGVyOiAoMXB4IGluc2V0ICM4MDgwODApXSBbcj0wIGM9MiBycz0xIGNz
PTFdCisgICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMiwyKSBzaXplIDEzeDE4
CisgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDIsMikgd2lkdGggMTM6ICJmMiIKKyAgICAg
ICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgxMDQsMikgc2l6ZSAzMngyMiBbYm9yZGVy
OiAoMXB4IGluc2V0ICM4MDgwODApXSBbcj0wIGM9MyBycz0xIGNzPTFdCisgICAgICAgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMiwyKSBzaXplIDEzeDE4CisgICAgICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDIsMikgd2lkdGggMTM6ICJmMyIKKyAgICAgICAgICAgIFJlbmRlclRhYmxl
Q2VsbCB7VER9IGF0ICgxMzgsMikgc2l6ZSAzMngyMiBbYm9yZGVyOiAoMXB4IGluc2V0ICM4MDgw
ODApXSBbcj0wIGM9NCBycz0xIGNzPTFdCisgICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMiwyKSBzaXplIDEzeDE4CisgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDIsMikg
d2lkdGggMTM6ICJmNCIKKyAgICAgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgxNzIs
Mikgc2l6ZSAzMngyMiBbYm9yZGVyOiAoMXB4IGluc2V0ICM4MDgwODApXSBbcj0wIGM9NSBycz0x
IGNzPTFdCisgICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMiwyKSBzaXplIDEz
eDE4CisgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDIsMikgd2lkdGggMTM6ICJmNSIKKyAg
ICAgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgyMDYsMikgc2l6ZSAzMngyMiBbYm9y
ZGVyOiAoMXB4IGluc2V0ICM4MDgwODApXSBbcj0wIGM9NiBycz0xIGNzPTFdCisgICAgICAgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMiwyKSBzaXplIDEzeDE4CisgICAgICAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDIsMikgd2lkdGggMTM6ICJmNiIKKyAgICAgICAgICAgIFJlbmRlclRh
YmxlQ2VsbCB7VER9IGF0ICgyNDAsMikgc2l6ZSAzMngyMiBbYm9yZGVyOiAoMXB4IGluc2V0ICM4
MDgwODApXSBbcj0wIGM9NyBycz0xIGNzPTFdCisgICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMiwyKSBzaXplIDEzeDE4CisgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDIs
Mikgd2lkdGggMTM6ICJmNyIKKyAgICAgICAgUmVuZGVyVGFibGVTZWN0aW9uIHtUQk9EWX0gYXQg
KDQsMzApIHNpemUgMjc0eDI2CisgICAgICAgICAgUmVuZGVyVGFibGVSb3cge1RSfSBhdCAoMCwy
KSBzaXplIDI3NHgyMgorICAgICAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDIsMikg
c2l6ZSAzMngyMiBbYm9yZGVyOiAoMXB4IGluc2V0ICM4MDgwODApXSBbcj0wIGM9MCBycz0xIGNz
PTFdCisgICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMiwyKSBzaXplIDI4eDE4
CisgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDIsMikgd2lkdGggMjg6ICJyMGMwIgorICAg
ICAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDM2LDIpIHNpemUgMzJ4MjIgW2JvcmRl
cjogKDFweCBpbnNldCAjODA4MDgwKV0gW3I9MCBjPTEgcnM9MSBjcz0xXQorICAgICAgICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDIsMikgc2l6ZSAyOHgxOAorICAgICAgICAgICAgICAg
IHRleHQgcnVuIGF0ICgyLDIpIHdpZHRoIDI4OiAicjBjMSIKKyAgICAgICAgICAgIFJlbmRlclRh
YmxlQ2VsbCB7VER9IGF0ICg3MCwyKSBzaXplIDMyeDIyIFtib3JkZXI6ICgxcHggaW5zZXQgIzgw
ODA4MCldIFtyPTAgYz0yIHJzPTEgY3M9MV0KKyAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgyLDIpIHNpemUgMjh4MTgKKyAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMiwy
KSB3aWR0aCAyODogInIwYzIiCisgICAgICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAo
MTA0LDIpIHNpemUgMzJ4MjIgW2JvcmRlcjogKDFweCBpbnNldCAjODA4MDgwKV0gW3I9MCBjPTMg
cnM9MSBjcz0xXQorICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDIsMikgc2l6
ZSAyOHgxOAorICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyLDIpIHdpZHRoIDI4OiAicjBj
MyIKKyAgICAgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgxMzgsMikgc2l6ZSAzMngy
MiBbYm9yZGVyOiAoMXB4IGluc2V0ICM4MDgwODApXSBbcj0wIGM9NCBycz0xIGNzPTFdCisgICAg
ICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMiwyKSBzaXplIDI4eDE4CisgICAgICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDIsMikgd2lkdGggMjg6ICJyMGM0IgorICAgICAgICAgICAg
UmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDE3MiwyKSBzaXplIDMyeDIyIFtib3JkZXI6ICgxcHgg
aW5zZXQgIzgwODA4MCldIFtyPTAgYz01IHJzPTEgY3M9MV0KKyAgICAgICAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgyLDIpIHNpemUgMjh4MTgKKyAgICAgICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMiwyKSB3aWR0aCAyODogInIwYzUiCisgICAgICAgICAgICBSZW5kZXJUYWJsZUNlbGwg
e1REfSBhdCAoMjA2LDIpIHNpemUgMzJ4MjIgW2JvcmRlcjogKDFweCBpbnNldCAjODA4MDgwKV0g
W3I9MCBjPTYgcnM9MSBjcz0xXQorICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDIsMikgc2l6ZSAyOHgxOAorICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyLDIpIHdpZHRo
IDI4OiAicjBjNiIKKyAgICAgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgyNDAsMikg
c2l6ZSAzMngyMiBbYm9yZGVyOiAoMXB4IGluc2V0ICM4MDgwODApXSBbcj0wIGM9NyBycz0xIGNz
PTFdCisgICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMiwyKSBzaXplIDI4eDE4
CisgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDIsMikgd2lkdGggMjg6ICJyMGM3IgpJbmRl
eDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3RhYmxlcy9tb3ppbGxhL2J1Z3MvYnVnMzA0MTgt
ZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEg
YmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KCmlW
Qk9SdzBLR2dvQUFBQU5TVWhFVWdBQUF5QUFBQUpZQ0FZQUFBQ2Fkb0p3QUFBZ0FFbEVRVlI0bk8z
ZGY0elY5MzNuKzllc1lEMGsKSFJwb0liblFDQWhPQTJrWlV0TUlvc1pOQm1mdmtoL3ljRk1JcVEy
VjZiYUFrc3JHdHh1elF4dHNrMTBqdUtwc1VCb0IzUVpYWUN1MwpVSW1obTRXTllpYkJxd1prTVkx
aE54Qm5wb0htZ2xMbW1tbG5Xb04zUmpyN0J4aG1DRDhHenptZmljUGpJWTNzbVhQT25MZS8zMlBw
Cis1enorWDVQWGFWU3FRUUFBS0NBZnpYU0F3QUFBSGNPQVFJQUFCUWpRQUFBZ0dJRUNBQUFVSXdB
QVFBQWloRWdBQUJBTVFJRUFBQW8KWnRTdDd2RGtrMCtXbUFPNFErM1pzeWZIang4ZjZURUFnRUs4
QXdLTW1EMTc5b3owQ0FCQVlRSUVHQkhpQXdEdVRBSUVLRTU4QU1DZAo2NWJuZ0Z6cjhjY2ZyOFVj
d0IxRWdBREFuY3M3SUFBQVFERzMvUTdJRzJiTm1sWE5PVzdMb2tXTHJyd1RZdzV6bU9PdE53Y0Fj
T2Q2CjB3R1NaTVF1blhudHBZSE5ZUTV6dlBYbUFBRHVUSlpnQVFBQXhRZ1FBQUNnbU9vRXlNWHVu
TzNxdmZsOStpK211NnNyM2QwWHEvS1UKYjNxT0VvWTBSMys2dTdyUzFWM0RlWWMweDhWMG5UMmJz
MTNkSXp6SFZiMjlOWHFOdkluWFIvZnB6blJWZTV6YjNSNWRwM1A4eUpGMApkdmVQNkJ3QUFOVXd2
QURwUDUwdHkrYW5ic3o0Zkh6SDkyNTR0OTZUK3pKLzlKaU1YN0lrNDhlUHlleTFlMUxWdzU0aHpw
RWsvZDJkCjJiTnBXZXJtYjZ2dURMY3hSMWY3ODVsZk56cmpKMDdNeFBGak0zdlpscHl1NWtIdUVP
Zm9QdjU4WnRlTnljVEprek41NHZqVUxkeVUKemhHWVk2Q3pCNytVc1dQbjVrZzFkODV0ek5HK1pW
bnE2dXF1ZkkyZitrUitQQUp6SkVuWDhYMVpPYnN1WXlmZW42OSsrMFJlcTFaLwpER1dPaSsxWk5t
QTdEUHphMWk1YUFJQTNiM2dCTW1wS1ByZnhqOU9VWkZyOTZPdmZwL3ZGTk05c1RqWWVTdVhnd1ZS
NmptYmFoc1ZwCjN2VGlzSjc2dHVkSWN2SDBnWHorNFNmeXBUVzdxdmZjdHp0SDk4Rk1uUE5nWm05
dHplRkRyV2xwU283dGVpUlRXL2FsYW4vZkh1SisKK1dqamczbjBjRWZPbmV2STd2VkxrOVkxK2ZO
dm5hN1dGRVBlTDFkMEhjemsrOVlsYWN3UTdsMzlPWHFQWlAwang5S3ljWE0yYnR5WQo5ZXRic25Y
L0U1bFZYM2lPWE16Qkxjc3lzYkU1cjMzdVVDNVVYczdUanoyVVdST0dkYzJJMjVyajVOZWV6cTRz
emVhdE83Smp4NDdzCjJQRmMxamNuU1hNK01LMmhPbk1BQUhla1lSL1JqQnIvam94TjBuUFg5UTlr
anZ6WjQybExZMTVZZnUrbEh6VGNrNWJOVFpuM3lPTjUKY2ZuQjNEdGh1Qk1NYlk0a3FaK3lJTnQy
Zml6UDl1N0s4cDdxUE8vdHp0SCtaLzh4SzFyUDVPbjdKeVZKNW43alJDNk1ucGxuWGo2VgozaVRq
Q3MzUit3L2QrZEt4bnR3LzY5TEI1S0l2UEpxbWRidnk2ajlYZDVuUFVQYkxKVjNadE9TK3FqNzM3
YzdSdnFNbHJmbGsxaTM1CjdUUk9tVEQ4L3puZTVCd25uMzBrOXoyeUs4MmJqMmJueW50cU1NV3Q1
dWpOL3pqM3dYVDBQWnpwQXpaQys3bi9uSFg1VEdaWDYwVUsKQU55UnFuY1Mrcm5qbDVZMjFkV2xy
bTUrOXB6c1RkS2I3eDVvU3hvWFpjYUEwSGovaDVja2FjdDNUblpWN2VsdlBzZEFGNnIvbkxjeAp4
M3VYNzhybXkvR1JKQmsxTlI5c1RwSzdhbkxBZTZNNUdtYmNmeVUra3FUekd6dlRscFk4OXFucHRa
amlsdnZseUthUDVia0ZoM0xzCnVSVko5UmZIM1hxT2k4ZXovcEcySkJzeVorckVqSzZyeTlybjI0
dlAwWC8yUUpZczM1NmtLWi81dFgvSnZqMTdjdURGNDdYYkl0ZWQKb3lHTEhoc2NIK252ekxZMWJW
bTk2cU9wMWh0Q0FNQ2RxU29CMHBDa2JkMkQrY3JyelRsOGFFZWEwcGJGbjNzK3ZSZFA1YiszSlpr
MgpNWU1XYlZ6K28rdmYvTzJQcXZIMHQ1Nmpxczh5dkRrYUprd2FmQURYZnlZdnRTWk5DeitZYWk5
c0djcjI2RDU5SkZ0V3pzL2R6YzhrCmpVbGZYNVdIR01JYzNlMmJNbS9OSjdQL3NYc3p1dmNmcWov
QVVPYW9mMisrMG5FaWgvZnZUc3ZTeGlUSmhnZm5aTzJCS2k1Skc4SWMKNTA2K2xHTkprclpzM0xV
L1gvL0s0bno4TnhzemR1R1duQzA0eDdWNlQzd3oyOU9Vejg2ZGRKMWJBUUNHcmlvQjBwdWtjZjJo
SFB6aQpvc3k5ZDJrK3R5SkoyK21jNzAvZWxpUTNXTzVVN1ZWUU41dWpwTnVaNCtTdUovSk1WbVR6
OHVvdnRibjFIQmZ6eWt1ZCtjVVBMVXh6CmtoemJrSm5MbnExNnNOMTBqdDcyTEorekpxMW4xbWRT
a3I2N0xtZFlWVThDR2NJY3FjK2s2VE15ZDhHaVBMWHo1WFRzWDU4azJiRHAKUUtwOWZiQ2J6Zkhx
MzcrU0pHblpmeW92YjNzcTJ3NmV6NDZsU1ZvZnlaTjdPb3ZOY2EzdjdsMlZOUCtlNVZjQXdMQlZi
UW5XdElsdgp2L3h2by9LK0R5MU5jamcvcm96Tkx6VW1HVHY0dm04Y1c4Nzc1WGRWNitsdlBrZWhW
VmUzTzhmRms4OW01dkpqMlgvbVR6T3JSdWYxCjNueU8rc3hkOUVBZWVPamg3TDF3SXV1YmtyVHV6
ZmRxOEpiUjllZm96YlBOYzlLNnVqVy9QdnBjem5hZHpnOWZPWmFrSjMvM2c5UHAKcXNFbG00ZjYr
cGkrNElzNXRMRXBhZHVmVjRwdGo2dTMzL1BlZDE3K3QzSDU3Qi90U0pMODRPdy9GWjhqU2RMZm1W
M3JrdFcvK3h1VwpYd0VBdzFhMTB3NTZYaC93emV1OVNjWm1kTWJuM2RPU3RKN08rZVRLRXFQelo4
NGxTZDQxY1V5MW52NFdjNVIzeXptNmorUVRNNWRuCjY5SHpXVENwSm1kL0RHMk9OOVRQeU9MZlda
cDFiV2ZLemZIUDM4dlRiVW5hbWpQNW1jSDNYOXc0TlZsL09KVXZ6cTM5SERlNDc5dnIKaytTZCtm
a2F2SUJ1T01mbG43LzZXbDl5K1hDLy91NTVXWnFrRm50bUtOdmowdktyeGh5NmQwb05KZ0FBN2pS
VmV3ZGs3TUNyNmJ5eApqQ1lObWJOd2FaSU5PVEZnQWZ1cnA0OG1hYzdjYWRWZnozSDlPYTUzeDZv
LzlkRG42Ty9NMnZIenN1RFErYXk4Wjl5Vm4yM1p0Sy9xCnk1K0d2RDJTOUwxK0pzbUN2S2NHNzha
Y2Q0NmZtNU52bnVwSVI4ZXBuRHJWa1ZOblRtWDM2c1lrVGRsOXRDTm5WczB1TThjTjlGMTgKTldu
K1NLYlc0TS8rTjVwajVzZWFreVR0M3o5MzlmWnpyMlJYa3NsajMxWnNqb0crdTNkVjB2Um9QbUQ1
RlFCUUJjTVBrRkdYRG1CYQoyNzkvK1hNcyt2UDk3MXorbkkzUnlhemYrb00wSjFuejVRT1hici9Z
bmsycld0TzB1U1Z6cTNsQWM0czVycnI4VFd0N3pxVUdiamxIClY3WXR1anNia3Z6amQ3NmN0V3ZY
WnUzYXRWazQrdTc4ei9mOFN2Vk9STC9GSEJjNzkyWGx3cFhaZHZCaytwUDBkdTdMMGxWdDJYcjAK
OTFPbEt5TVBZWTVSbVRCbGVxWlBuNUlwVTZabnlxUXBlZCtNYVVuRzVqM3ZuNTVKRTZwNDVIK0w3
WEh5K1pXcHE1dWZiUWN2bldkeAo5c2kyekZ0ekxMdi81TlBWWFhaMGl6bEdUZjlVV2xjbjJ4Zi9Z
WTVjUHZtay9hKy9tcVE1ai83V2pHSnpYSEY1K2RXS3o5MWI5WXNrCkFBQjNwdUd0L2VrL25TM0xs
NlkxU2JZdnp1ZnYyWi8vSy84dGk3Y25TV3VXdCt6SmthY1g1V3NkKy9QWnV6K2UwUnNhMDVoaitZ
V1cKM2Ztcmg2dTR0R2FJYzR3NmV6QmYrTngvekRPWDdwaFB6MDgyL3RubUxKaGVwVVBNSWN6eDU3
TmJzNm8xYVd4TU5xeFpOK0RCUzNQMAozMWJwRXJoRG1PUGJmL0Mvc3IxMWU5SzZQYXVTTkRhdHpz
YU9uaXlZWHNYRHpDSHVsNEZiZjNURE81TzhsbHhkZ1ZSa2p0MU52NUJrCmUxYmRkM2RXSlVuVDZy
eHdxaWZ6cDFReFA0YTRQZTUvK2x4MmoxbVNlZVByMHR5VXRMWTFaMy9IenR4VHJWMXpHL3VsOThU
WHN6M0oKQ3grcDBlV1pBWUE3enZBQ1pOU1VQTHp6NVR5OGMrQVBGNlN5OHVuQjk1dStJSHNyZmVu
dTdzMm9VUTFwYUtqeU9ROURuV1BTL0R5OQpkMzZ1K1duaE9SYWw4dERPMU5RUXQwZWw3OVBwdmRD
WGpCNlRodm9hbkljeTFQMHl3SXdIdHFYeXdFak1zU2g5RjFyU2U2RS9HVFVtCjR4cHFzTzVxeU50
alFoWTlkVEFYV3JyVGV6SDUyb1J4Vlg0WFp1ajdwV0htaXZUMExFK0R0ejhBZ0NxcDNkblAxM21x
Y2VNc0l2K3AKTXFvK0RiVTQwSDZMR2xYZmtIRS9SWnVqdm1GYzZrZjZ3TjlyQkFDb3N1cDlFam9B
QU1BdENCQUFBS0FZQVFJQUFCUXpySE5Bbm56eQp5V3JOTVN6bUdNd2NnNWxqc0orV09RQ0FPMU5k
cFZLcDNPd08xeDZzUFA3NDR6VWRDUGpaTjJ2V3JFSGZIejkrZklRbUFRQktzd1FMCkFBQW9Sb0FB
QUFERkNCQUFBS0NZTjMwUytyVnJ1RXRhdEdqUmxYTlJ6R0VPYzd6MTVnQUE3bHpEdWdyV1NKMDRl
dTJKOGVZd2h6bmUKZW5NQUFIY21TN0FBQUlCaUJBZ0FBRkJNYlFPay8ySzZ1N3JTM1gyeDdHTnIr
YnRHYkk3K2RIZDFwYXU3ZDRUbnVKaXVzMmR6dHF0NwpoT2U0cXJkM21QdTFpcStQN3RPZDZYcXp2
NlphMjZQcmRJNGZPWkxPN3Y0Um5RTUE0SHBxRmlDOUovZGwvdWd4R2I5a1NjYVBINVBaCmEvZGtx
SWZPdzNsc3RYOVhmM2RuOW14YWxycjUyOTcwRE1PZG82djkrY3l2RzUzeEV5ZG00dml4bWIxc1Mw
Ni95V1BENGN6UmZmejUKeks0Yms0bVRKMmZ5eFBHcFc3Z3BuU013eDBCbkQzNHBZOGZPelpFM3VY
T0dPMGY3bG1XcHE2dTc4alYrNmhQNThRak1rU1JkeC9kbAo1ZXk2akoxNGY3NzY3Uk41N1UzMHg1
dWU0Mko3bGczWURnTy90clZYSVpvQmdKOFp0UW1RN2hmVFBMTTUyWGdvbFlNSFUrazVtbWtiCkZx
ZDUwNHUxZld5VmY5ZkYwd2Z5K1llZnlKZlc3THI5NTY3V0hOMEhNM0hPZzVtOXRUV0hEN1dtcFNr
NXR1dVJURzNabDlzK3Zoem0KZnZsbzQ0TjU5SEJIenAzcnlPNzFTNVBXTmZuemI1MiszU21xdDQr
N0RtYnlmZXVTTkdiMDdVOHgvRGw2ajJUOUk4ZlNzbkZ6Tm03YwptUFhyVzdKMS94T1pWVjk0amx6
TXdTM0xNckd4T2E5OTdsQXVWRjdPMDQ4OWxGa1Ridk1hRThPWTQrVFhuczZ1TE0zbXJUdXlZOGVP
CjdOanhYTlkzSjBselBqQ3Q0ZmJtQUFCK3RsVnU0WWtubmhqMDlZWmYvZFZmdmVGakRtOXNxaVNO
bFJmT0Rmalo1cVpLMGxRNWRPNkcKRHh2eVkwdk1jVlZmWlVkekttbmFXdW01NXBZU2N4emQyRlJa
MFhwbXdEZ25LcXVUU3BvMlY4NFhuS1BuUkd1bDlkaUFMWERoYUtVcApxYXpZM1hIbFIyWDN5N25L
eHFaVWtsU1NwWldqQTBZck5jZlJ6VTJWcEtWeTlOUzVTdDkxYmk4MXg0a2RLeXBKS3MyYmoxNzM5
dHJQCjBWUFp2WEZ6cGVPYWpYQjBZMU1semM5Vkx0eGdqb0ZmQU1DZFk1anZnUFRuOVBFWHMyM3Rz
cXpjZGlEN05sMWFqdktmbm10TEdoZGwKeG9Tcjkzei9oNWNrYWN0M1RuWmQra0h2eVd4YU52dktN
bzFsYTUvUDJmN2VmUGZBRUI1Yjh6a0cvdTRMSTdnOWt2Y3UzNVhOOTArNgorc0JSVS9QQjVpUzU2
eWJYVUs3K0hBMHo3cy85czY3K0pidnpHenZUbHBZODlxbnBSYmZIRzQ1cytsaWVXM0FveDU1Ymtk
eHlrVkFOCjVyaDRQT3NmYVV1eUlYT21Uc3pvdXJxc2ZiNjkrQno5Wnc5a3lmTHRTWnJ5bVYvN2wr
emJzeWNIWGp4K2l5MVM3VGthc3VpeGh6TjkKNEF1eXZ6UGIxclJsOWFxUDVuYmZFQUlBZnJZTk0w
QzY4OUxlUDhtcURidXlmZFhIODh6eHQ2VXh5Zjg0bG1UYXhBeGFlSEY1amN6ZgovTzJQa3Y2VFdU
bDJadjdtdzE5T1g2V1NVNjJyczJ2RGcxbnpYRnYrZTlzdEhsdGlqcjg4K2RPeFBmN3laQm9tVEJw
OEFOZC9KaSsxCkprMExQNWdiTDJ5cDNmYm9QbjBrVzFiT3o5M056eVNOU1Y5ZjJlMlJKTjN0bXpK
dnpTZXovN0Y3TTdyM0gyNDJRTzNtcUg5dnZ0SngKSW9mMzcwN0wwc1lreVlZSDUyVHRnWnN0U2F2
K0hPZE92cFJqU1pLMmJOeTFQMS8veXVKOC9EY2JNM2JobHB3dHVUMnUwWHZpbTltZQpwbngyN3FT
ZnVBMEF1TE1OTTBBbVpORVhkMlpyVTVLbXpXbmR1UzB2ZDcrVWY1TWtQZGQvUkUrU3pyLzhUOW1l
MWRtODh0Nk1TakxsCi8xeVo5YzNOdWUrWDM1RzMzZUt4UmVhWThRdEQrRzhmbVRsTzdub2l6MlJG
TmkrL1p3VG11SmhYWHVyTUwzNW9ZWnFUNU5pR3pGejIKN0UzKzJsNkRPWHJiczN6T21yU2VXWjlK
U2ZydXVueTRmTk9UUUdxeFBlb3phZnFNekYyd0tFL3RmRGtkKzljblNUWnNPcEFiWHgrcworbk84
K3ZldkpFbGE5cC9LeTl1ZXlyYUQ1N05qYVpMV1IvTGtuczZDMjJPdzcrNWRsVFQvWG1hUHUrSEdB
QUR1VUZVNUNmMnVzVWx5CjE2VnYzakVodjlTWVpPemcrN3h4ZkRqdmw5K1J2LzMycnFSeFdzYS9j
V1A5akh4eDc5NDg5S0VwdDNqc3U4ck1jYytFREVldDVyaDQKOHRuTVhINHMrOC84YVdZTjRiemU2
czlSbjdtTEhzZ0REejJjdlJkT1pIMVRrdGE5K2Q0dFZrQlZiNDc2UE5zOEo2MnJXL1BybzgvbApi
TmZwL1BDVlkwbDY4bmMvT0oydVcxdzJ0cGF2aitrTHZwaERHNXVTdHYxNXBkajJ1RHJIUGU5OTUr
Vi9HNWZQL3RHT0pNa1B6djVUCjhUbVNKUDJkMmJVdVdmMjd2Mkg1RlFEd0UycHdGYXp4ZWZlMEpL
Mm5jMzdBVDgrZk9aY2tlZGZFMGZsZnJ5VTU5dU5CdHcvdHNXTUsKelZGTlZacWorMGcrTVhONXRo
NzlWaFpNdXMyckcxVnpqamZVejhqaTMxbWFtNzB2VmZVNWVyK1hwOXVTUE5PY3lSTW5aL0xFcVdu
ZQpjQ3hKV3hZM1RzM0VMNzljWm80YmVIdDlrcnd6UDM5YmwrUWE1aHl2WC9ySHE2OWRYUXRYZi9l
OExMMmRFYW94eHdDWGxsODE1dFAzClRybnRLUUNBbjMxVkRKRFhMMThXdGlGekZpNU5zaUVuQml4
Q2YvWDAwU1RObVR2dC84aTczdDJZWkVQKzM0TlgxOHYzbjk2VCtjdisKT3I5NjA4Y09aVDFITmVa
NFBqL3h0L1N4MS82ZzRCejluVms3Zmw0V0hEcWZsZmRjM2diOW5kbXlhZDhRUHFPaFJ0c2pTZC9y
WjVJcwp5SHVHZEpYVktzenh1VmZ5WDA1MXBLUGpWRTZkNnNpcE02ZXllM1Zqa3Fic1B0cVJNNnRt
bDVualJ0dmo0cXRKODBjeWRVaC85cS9PCkhOTSsxcHdrYWYvK3Vhc1BQdmRLZGlXWlBQWnR4ZVlZ
dUQyK3UzZFYwdlJvUG1ENUZRQndQYmU2VE5hdEw4UDd4dVZRMTErNUxHeWwKNTNDbE9hazB0dXkv
ZEhuU0MwY3JTNU5LMCtiRGwyNCt0dlh5NVZOVFdiSDV1VXJyanZXVkpKWG5PaTdjOHJGdnpGVHpP
YTY0Y09reQp2RmxSNmFnTVZtYU9jNVd0elpkdWE5bTR2dExTMGxKcGFXbXBOQSs0Qkc2Sk9TNTB0
RlpXTksrb2JIM2hSS1d2VXFuMGRMUldHcFBLCjFxTlhmbnZoL1hMSnNhM05sYVM1Y25UQVRTWG1P
UEhjaWtyU1ZObjZ3cVY5Y09id3BmdnVIakJqbWUxeG9kSzZPcFdrdVhMNDhpODgKK3NZMjZSbUIv
ZExYVVZseHplV1piN1E5WElZWEFPNU13d3VRdm83S3h1WmNPU2hwV3JHMWN1Ynlad0ZjNk5oZmFV
NHFTV09sTWFrMAp0ZXkrZXFCVHFWUTY5bStzTk9hTnh6Wld0aDYrK2xrWHQzcHNxVG42enJ4UVdk
M2NkT1gzTmphdHFPeS8yUUZtRGVZNHRtUHBwZWR1CnZQcDdjODFuWDVTWTQwTEhjNE9ldjdGcGRX
Vi94K0JQUmltMVh3YTZGQUszK0J5UUdzeHhxclZsOFA1b1dsMTU0ZFJJYlk5emxkMHQKbDE2bnpV
MlhZbVRndmltNVgzcU9iYTRrR2ZSWklqZWFRNEFBd0oycEpoOUVlRlZmNWZ6NTg1V2VudXQ5VEZ1
bFV1bTdVRGwvL256bAp3blZ2dnZGank4NXhZM2ZjSEgwWEtqMDlQWldlR3d4NHAyMlB2Z3M5bGZQ
bnoxZk85L3prT3pNbDUzakRoWjd6bFhQbnpsZXVuYWJvCkhKZGZJOWNqUUFDQVNxVlNlVE5uTTkr
R1VSazM3aVlMd1VmVlo5eTRHeTJZdjhWamk4MVJUVy94T1ViVnA2R2htdk85dGJmSHFQcUcKVkhl
ODRXMlArb1p4cVIvUytUZzFuS1BxcnhFQTRHZE5EYTZDQlFBQWNIMENCQUFBS0VhQUFBQUF4UXpy
SEpBbm4zeXlXbk1NaXprRwpNOGRnNWhqc3AyVU9BT0RPVkZlcFZDbzN1OE8xQnl1UFAvNTRUUWND
ZnZiTm1qVnIwUGZIang4Zm9Va0FnTklzd1FJQUFJb1JJQUFBClFERUNCQUFBS09aTm40Uis3UnJ1
a2hZdFduVGxYQlJ6bU1NY2I3MDVBSUE3MTdDdWdqVlNKNDVlZTJLOE9jeGhqcmZlSEFEQW5ja1MK
TEFBQW9CZ0JBZ0FBRkZQVkFEbDdzajN0eDAvbWJQZkZTei9vdjVqdXJxNTB2L0Y5SVQ4eHh3ajV5
VG42MDkzVmxhN3UzaEdlNDJLNgp6cDdOMmE3dUVaN2pxdDdlY3Z2cVZxK1A3dE9kNlNvd3prMjNS
OWZwSEQ5eUpKM2QvU002QndCQXRWVXRRTnEzTGN2a0pldno3eHRuClp2TDRNZGwxOEs4eWYvU1lq
Rit5Sk9QSGo4bnN0WHRTNHJENzJqbjJuTDZZL3U3TzdObTBMSFh6dHhXWjRYcHpmUFhyZjVINWRh
TXoKZnVMRVRCdy9Ock9YYmNucEFzZDcxODd4Ri8vdEx6Szdia3dtVHA2Y3lSUEhwMjdocG5TT3dC
eDdCdnpIbnozNHBZd2RPemRIQ3V5Ywo2ODNSdm1WWjZ1cnFybnlObi9wRWZqd0NjeVJKMS9GOVdU
bTdMbU1uM3ArdmZ2dEVYcXR4ZjF3N3gyOE8yQTREdjdhMWw0MW1BT0JuCjE3Qk9Rbi9EeGM3bk0y
ZlZzUnkrOEhMbTlyNll0Vjk0UGx2dVc1U2YyM2dvbGNmdVRYcmJzM0RzbkRTLzQxQU9Qblp2Tlo1
eWFIUDgKOFhjeTlWKytsYy8vOFhNNXZHdFgwdlRobWozM1RlZjR3czc4dTA4OWxOVmJXN1BoL1Vu
cjQ4M1pzT3VSVFAzRnFlbDcrdjdxN0lRaAp6ZkY4bmxyd1VGb09kK1NUNzBtK3ZmV0pMRjYzSm4v
K3JTVjVhc0dVR2sxeC9mM3l2dkgxbDI3c09wako5NjFMc2pTamF6YkJUZWI0CjF5L25pNDhjUzh2
R3pYbEhMdWIxMS84eEV6LzQ3ektydnZBYzQ1T0RXNWJsdmtkMlplbldRN213OHQ3VWNJVHJ6ckZ5
OFNQWi91MWYKeWVhdDkyWHNYVW55ci9PanZROW1YV3R6UGpDdG9jYlRBQUIzaXFvYysvYjkvLzlm
a21sNVc1Sk11RGZONzM4OEc5S1lGNVpmam8yRwplOUt5dVNuekhuazhMeTQvbUhzblZPTlpiejNI
VTlzdVBmK3Y3L3hZbnUzZGxlVTl0WG5lVzgyeDZQMlA1OVhXTTNuNi9rbEprcm5mCk9KRUxvMmZt
bVpkUHBUZkp1RUp6dFB5SDdzejd3MDI1ZjlhbGc4bEZYM2cwVGV0MjVkVi9ydTJmMlcrMFg1S3Vi
RnB5WDAyZisxWnoKdEcrWm45WjhNdXVXL0hZYXAweW9XUXplYW82VHo2N01mWS9zU3ZQbW85bTU4
cDRDVTF3N3h3Znliejd4VUI3NzVzT1pQbUFqdEovNwp6MW1YejJSMnJWNmtBTUFkWjVoTHNDNW16
NlB6TTNiZW1pU3RXVHAzZHVwbWZ6NWYvNjl0U2VPaXpCZ1FHdS8vOEpJa2Jmbk95YTdoClBlV1E1
M2cweDYrczhybFFnK2NjK2h4OXY3MHJteS9IUjVKazFOUjhzRGxKN3FyUkFlLzE1emcxOWY0cjha
RWtuZC9ZbWJhMDVMRlAKVGEvSkZMZmFMMGMyZlN6UExUaVVZOCt0U0dxNk9PNEdjL3pqOGF4L3BD
M0poc3laT2pHajYrcXk5dm4yNG5OODk0Y0hzbVQ1OWlSTgorY3l2L1V2MjdkbVRBeThlcitFV3Vk
NGM2L0sraHdmSFIvbzdzMjFOVzFhdittak4zNDBCQU80Y3d3eVEraXo4ZjFyend2cW1KRTE1CmV0
KzMwbk5nV1RxL25XVGF4QXhhdEhGNWZjM2YvTzJQaHZlVVE1M2pXK3N6cy9oUjAvWG5tUFB1U1lN
UDRQclA1S1hXcEduaEIxT2IKaFMwMzN4N2RwNDlreThyNXVidjVtYVF4NmV1cnlSQTNuYU83ZlZQ
bXJmbGs5ajkyYjBiMy9rT3RCcmo1SE85NGI3N1NjU0tIOSs5Twp5OUxHSk1tR0IrZGs3WUhUUmVj
WS84T1hjaXhKMHBhTnUvYm42MTlabkkvL1ptUEdMdHlTc3dYbnVQYi9sOTRUMzh6Mk5PV3pjeWRk
Cjk3Y0FBTHdad3o0SmZkU29oa3lZT0RiSjJMeGovTGcwakh0N2ZpNUpickRjcVZhcm9INXlqb1lp
eTJuZXpCd25kejJSWjdJaW01ZlgKYnFuTmplZTRtRmRlNnN3dmZtaGhtcFBrMkliTVhQWnN6Zjdh
ZnQwNWV0dXpmTTZhdEo1Wm4wbEordTY2bkdFMVBBbmsrdHVqUHBPbQp6OGpjQll2eTFNNlgwN0Yv
ZlpKa3c2WURxZFgxd2E0M3h6LzkvU3RKa3BiOXAvTHl0cWV5N2VENTdGaWFwUFdSUExtbnM5Z2Mx
NzVPCnY3dDNWZEw4ZTVaZkFRQlZWZjNQQWFrZm0xOXFUREoyOEkvZk9MYWM5OHZ2cXZwVHZwVmNQ
UGxzWmk0L2x2MW4valN6UnVTODN2ck0KWGZSQUhuam80ZXk5Y0NMcm01SzA3czMzaWwza3FEZlBO
czlKNityVy9Qcm9jem5iZFRvL2ZPVllrcDc4M1E5T3Ayc0VMd1U3ZmNFWApjMmhqVTlLMlA2K013
RVdmN25udk95Ly8yN2g4OW85MkpFbCtjUGFmeWcrU0pQMmQyYlV1V2YyN3YySDVGUUJRVlRWNGsy
QjgzajB0ClNldnBuRSt1TERFNmYrWmNrdVJkRThkVS95bmZLcnFQNUJNemwyZnIwZk5aTUdrazNw
KzVSdjJNTFA2ZHBWblhkcWJjYy9aK0wwKzMKSldscnp1Um5CdCswdUhGcXN2NXdLbCtjVzI2ZWE3
eTlQa25lbVordjlTVzVCbnI5MGo5ZWZhMHZ1WHk0WDMvM3ZDeE5VbkRQREhKcAorVlZqRHQxYnU2
dWpBUUIzcHFxK0EzTHBWSUtHekZtNE5NbUduQml3Z1AzVjAwZVROR2Z1dE5xdjU3amhLUTFqYjNS
RGJReWFvNzh6CmE4ZlB5NEpENTdQeW5uRlhmclpsMDc2YWZ6Ykp6VTd4Nkh2OVRKSUZlVStCZDJQ
NmtxUmhUcjU1cWlNZEhhZHk2bFJIVHAwNWxkMnIKRzVNMFpmZlJqcHhaTmJ2TUhEZTY3ZUtyU2ZO
SE1yWEFuLzNmbUdQbXg1cVRKTzNmUDNmMXhuT3ZaRmVTeVdQZlZteU9nYjY3ZDFYUwo5R2crWVBr
VkFGQmxWUXFRaGlTdCtkSDVTOS9OK3EwL1NIT1NOVjgra1A0a3VkaWVUYXRhMDdTNUpYTnJla0F6
ZUk2ckx2ODV1N1U5CjU2NjlxY2djWGRtMjZPNXNTUEtQMy9seTFxNWRtN1ZyMTJiaDZMdnpQOS96
S3pVNkVmMG41N2pZdVM4ckY2N010b01uMDUra3QzTmYKbHE1cXk5YWp2NThhWFJuNU9uT015b1Fw
MHpOOStwUk1tVEk5VXlaTnlmdG1URXN5TnU5NS8vUk1tbERMSS8vQjIrUGs4eXRUVnpjLwoydzVl
T3MvaTdKRnRtYmZtV0hiL3lhZHJ2T3hvOEJ5anBuOHFyYXVUN1l2L01FY3VuM3pTL3RkZlRkS2NS
MzlyUnJFNXJyaTgvR3JGCjUrNnQ0V3NUQUxoVERmc3l2QWUzck16U1ZidVNKSXVuenMrbUE1MUp3
OXg4cldOL3BtMzRlRWJYemM3c01YTnlwbVYzL3VyaFdpMnQKdWNFY1NmclBIc3lqQ3orUjVhMUpz
ajJmbnI4eUIycjIwZC9YbitQNHMvOTNWclVtalkzSmhqWHJzbUhEaG16WXNDR3RXWnFWLzdZVwps
OEM5MGZiNDUyeHYzWjVWOTgzTTZMcTZmUGozMjdLeG8rZnFPekxGNWhoc2RNTTdrelRjL0sySkdz
d3g1dWQrSVVsYlZ0MTNkK3JxCjZqSzU1V1JlT05XVFJkTnJsUjgzMmg3MXVmL3BjOW5kMHBONTQr
dXljSDVkNXF4SzluZnN6RDAxS1lDYjc1ZmVFMS9QOWlSTFBsS3IKeXpNREFIZXlZWjZJVUovNUQy
L0x5dzl2KzhsYnBpL0kza3BmdXJ0N00ycFVReG9hYW5uT3c0M25HRFZwZnA3ZU96OVAxL0RaYnoz
SAp6bFFlMmxsa2dwdlBNVDJWdmsrbjkwSmZNbnBNR3VwcmZSN0tqZmZMUURNZTJKYktBeU14eDFQ
cHU5Q1MzZ3Y5eWFneEdkZFE2M1ZYCk45c2VFN0xvcVlPNTBOS2Qzb3ZKMXlhTXErRzdNRGZmTHcw
elY2U25aM2thdlAwQkFOUkFqWTlBUjJYY09JdklmNnFNcWs5RHpRKzAKM3pwRzFUZGszRS9SNXFo
dkdKZjZrVDd3OXhvQkFHcW8rcGZoQlFBQXVBRUJBZ0FBRkNOQUFBQ0FZb1oxRHNpVFR6NVpyVG1H
eFJ5RAptV013Y3d6MjB6SUhBSEJucXF0VUtwV2IzZUhhZzVYSEgzKzhwZ01CUC90bXpabzE2UHZq
eDQrUDBDUUFRR21XWUFFQUFNWGM5aEtzCmEvOXlDUUFBTUZTMzlRN0luajE3YWpVSEFBQndCeGh5
Z0lnUEFBQmd1SVlVSU9JREFBQ29obHRlQlFzQUFLQmFYQVVMQUFBb1JvQUEKQUFERkNCQUFBS0FZ
QVFJQUFCUWpRQUFBZ0dJRUNBQUFVSXdBQVFBQWloRWdBQUJBTVFJRUFBQW9Sb0FBQUFERkNCQUFB
S0FZQVFJQQpBQlFqUUFBQWdHSUVDQUFBVUl3QUFRQUFpaEVnQUFCQU1RSUVBQUFvUm9BQUFBREZD
QkFBQUtBWUFRSUFBQlFqUUFBQWdHSUVDQUFBClVJd0FBUUFBaWhFZ0FBQkFNUUlFQUFBb1JvQUFB
QURGQ0tqRStwUUFBQXFNU1VSQlZCQUFBS0FZQVFJQUFCUWpRQUFBZ0dJRUNBQUEKVUl3QUFRQUFp
aEVnQUFCQU1RSUVBQUFvUm9BQUFBREZDQkFBQUtBWUFRSUFBQlFqUUFBQWdHSUVDQUFBVUl3QUFR
QUFpaEVnQUFCQQpNUUlFQUFBb1JvQUFBQURGQ0JBQUFLQVlBUUlBQUJRalFBQUFnR0lFQ0FBQVVJ
d0FBUUFBaWhFZ0FBQkFNUUlFQUFBb1JvQUFBQURGCkNCQUFBS0FZQVFJQUFCUWpRQUFBZ0dJRUNB
QUFVSXdBQVFBQWloRWdBQUJBTVFJRUFBQW9Sb0FBQUFERkNCQUFBS0FZQVFJQUFCUWoKUUFBQWdH
SUVDQUFBVUl3QUFRQUFpaEVnQUFCQU1RSUVBQUFvUm9BQUFBREZDQkFBQUtBWUFRSUFBQlFqUUFB
QWdHSUVDQUFBVUl3QQpBUUFBaWhFZ0FBQkFNUUlFQUFBb1JvQUFBQURGQ0JBQUFLQVlBUUlBQUJR
alFBQUFnR0lFQ0FBQVVJd0FBUUFBaWhFZ0FBQkFNUUlFCkFBQW9Sb0FBQUFERkNCQUFBS0FZQVFJ
QUFCUWpRQUFBZ0dJRUNBQUFVSXdBQVFBQWloRWdBQUJBTVFJRUFBQW9Sb0FBQUFERkNCQUEKQUtB
WUFRSUFBQlFqUUFBQWdHSUVDQUFBVUl3QUFRQUFpaEVnQUFCQU1RSUVBQUFvUm9BQUFBREZDQkFB
QUtBWUFRSUFBQlFqUUFBQQpnR0lFQ0FBQVVJd0FBUUFBaWhFZ0FBQkFNUUlFQUFBb1JvQUFBQURG
Q0JBQUFLQVlBUUlBQUJRalFBQUFnR0lFQ0FBQVVJd0FBUUFBCmloRWdBQUJBTVFJRUFBQW9Sb0FB
QUFERkNCQUFBS0FZQVFJQUFCUWpRQUFBZ0dJRUNBQUFVSXdBQVFBQWloRWdBQUJBTVFJRUFBQW8K
Um9BQUFBREZDQkFBQUtBWUFRSUFBQlFqUUFBQWdHSUVDQUFBVUl3QUFRQUFpaEVnQUFCQU1RSUVB
QUFvUm9BQUFBREZDQkFBQUtBWQpBUUlBQUJRalFBQUFnR0lFQ0FBQVVJd0FBUUFBaWhFZ0FBQkFN
UUlFQUFBb1JvQUFBQURGQ0JBQUFLQVlBUUlBQUJRalFBQUFnR0lFCkNBQUFVSXdBQVFBQWloRWdB
QUJBTVFJRUFBQW9Sb0FBQUFERkNCQUFBS0FZQVFJQUFCUWpRQUFBZ0dJRUNBQUFVSXdBQVFBQWlo
RWcKQUFCQU1RSUVBQUFvUm9BQUFBREZDQkFBQUtBWUFRSUFBQlFqUUFBQWdHSUVDQUFBVUl3QUFR
QUFpaEVnQUFCQU1RSUVBQUFvUm9BQQpBQURGQ0JBQUFLQVlBUUlBQUJRalFBQUFnR0lFQ0FBQVVJ
d0FBUUFBaWhFZ0FBQkFNUUlFQUFBb1JvQUFBQURGQ0JBQUFLQVlBUUlBCkFCUWpRQUFBZ0dJRUNB
QUFVSXdBQVFBQWloRWdBQUJBTVFJRUFBQW9Sb0FBQUFERkNCQUFBS0FZQVFJQUFCUWpRQUFBZ0dJ
RUNBQUEKVUl3QUFRQUFpaEVnQUFCQU1RSUVBQUFvUm9BQUFBREZDQkFBQUtBWUFRSUFBQlFqUUFB
QWdHSUVDQUFBVUl3QUFRQUFpaEVnQUFCQQpNUUlFQUFBb1JvQUFBQURGQ0JBQUFLQVlBUUlBQUJR
alFBQUFnR0lFQ0FBQVVJd0FBUUFBaWhFZ0FBQkFNUUlFQUFBb1JvQUFBQURGCkNCQUFBS0FZQVFJ
QUFCUWpRQUFBZ0dJRUNBQUFVSXdBQVFBQWloRWdBQUJBTVFJRUFBQW9Sb0FBQUFERkNCQUFBS0FZ
QVFJQUFCUWoKUUFBQWdHSUVDQUFBVUl3QUFRQUFpaEVnQUFCQU1RSUVBQUFvUm9BQUFBREZDQkFB
QUtBWUFRSUFBQlFqUUFBQWdHSUVDQUFBVUl3QQpBUUFBaWhFZ0FBQkFNUUlFQUFBb1JvQUFBQURG
Q0JBQUFLQVlBUUlBQUJRalFBQUFnR0lFQ0FBQVVJd0FBUUFBaWhFZ0FBQkFNUUlFCkFBQW9Sb0FB
QUFERkNCQUFBS0FZQVFJQUFCUWpRQUFBZ0dJRUNBQUFVSXdBQVFBQWloRWdBQUJBTVFJRUFBQW9S
b0FBQUFERkNCQUEKQUtBWUFRSUFBQlFqUUFBQWdHSUVDQUFBVUl3QUFRQUFpaEVnQUFCQU1RSUVB
QUFvUm9BQUFBREZDQkFBQUtBWUFRSUFBQlFqUUFBQQpnR0lFQ0FBQVVJd0FBUUFBaWhFZ0FBQkFN
UUlFQUFBb1JvQUFBQURGQ0JBQUFLQVlBUUlBQUJRalFBQUFnR0lFQ0FBQVVJd0FBUUFBCmloRWdB
QUJBTVFJRUFBQW9Sb0FBQUFERkNCQUFBS0FZQVFJQUFCUWpRQUFBZ0dJRUNBQUFVSXdBQVFBQWlo
RWdBQUJBTVFJRUFBQW8KUm9BQUFBREZDQkFBQUtBWUFRSUFBQlFqUUFBQWdHSUVDQUFBVUl3QUFR
QUFpaEVnQUFCQU1RSUVBQUFvUm9BQUFBREZDQkFBQUtBWQpBUUlBQUJRalFBQUFnR0lFQ0FBQVVJ
d0FBUUFBaWhFZ0FBQkFNUUlFQUFBb1JvQUFBQURGQ0JBQUFLQVlBUUlBQUJRalFBQUFnR0lFCkNB
QUFVSXdBQVFBQWloRWdBQUJBTVFJRUFBQW9Sb0FBQUFERkNCQUFBS0FZQVFJQUFCUWpRQUFBZ0dJ
RUNBQUFVSXdBQVFBQWloRWcKQUFCQU1RSUVBQUFvUm9BQUFBREZDQkFBQUtBWUFRSUFBQlFqUUFB
QWdHSUVDQUFBVUl3QUFRQUFpaEVnQUFCQU1RSUVBQUFvUm9BQQpBQURGQ0JBQUFLQVlBUUlBQUJR
alFBQUFnR0lFQ0FBQVVJd0FBUUFBaWhFZ0FBQkFNUUlFQUFBb1JvQUFBQURGQ0JBQUFLQVlBUUlB
CkFCUWpRQUFBZ0dJRUNBQUFVSXdBQVFBQWloRWdBQUJBTVFJRUFBQW9Sb0FBQUFERkNCQUFBS0FZ
QVFJQUFCUWpRQUFBZ0dJRUNBQUEKVUl3QUFRQUFpaEVnQUFCQU1RSUVBQUFvUm9BQUFBREZDQkFB
QUtBWUFRSUFBQlFqUUFBQWdHSUVDQUFBVUl3QUFRQUFpaEVnQUFCQQpNUUlFQUFBb1JvQUFBQURG
Q0JBQUFLQVlBUUlBQUJRalFBQUFnR0lFQ0FBQVVJd0FBUUFBaWhFZ0FBQkFNUUlFQUFBb1JvQUFB
QURGCkNCQUFBS0FZQVFJQUFCUWpRQUFBZ0dJRUNBQUFVSXdBQVFBQWloRWdBQUJBTVFJRUFBQW9S
b0FBQUFERkNCQUFBS0FZQVFJQUFCUWoKUUFBQWdHSUVDQUFBVUl3QUFRQUFpaEVnQUFCQU1RSUVB
QUFvUm9BQUFBREZDQkFBQUtBWUFRSUFBQlFqUUFBQWdHSUVDQUFBVUl3QQpBUUFBaWhFZ0FBQkFN
UUlFQUFBb1JvQUFBQURGQ0JBQUFLQVlBUUlBQUJRalFBQUFnR0lFQ0FBQVVJd0FBUUFBaWhFZ0FB
QkFNUUlFCkFBQW9Sb0FBQUFERkNCQUFBS0FZQVFJQUFCUWpRQUFBZ0dJRUNBQUFVSXdBQVFBQWlo
RWdBQUJBTVFJRUFBQW9Sb0FBQUFERkNCQUEKQUtBWUFRSUFBQlFqUUFBQWdHSUVDQUFBVUl3QUFR
QUFpaEVnQUFCQU1RSUVBQUFvUm9BQUFBREZDQkFBQUtBWUFRSUFBQlFqUUFBQQpnR0lFQ0FBQVVJ
d0FBUUFBaWhFZ0FBQkFNUUlFQUFBb1JvQUFBQURGQ0JBQUFLQVlBUUlBQUJRalFBQUFnR0lFQ0FB
QVVJd0FBUUFBCmloRWdBQUJBTVFJRUFBQW9Sb0FBQUFERkNCQUFBS0FZQVFJQUFCUWpRQUFBZ0dJ
RUNBQUFVSXdBQVFBQWloRWdBQUJBTVFJRUFBQW8KUm9BQUFBREZDQkFBQUtBWUFRSUFBQlFqUUFB
QWdHSUVDQUFBVUl3QUFRQUFpaEVnQUFCQU1RSUVBQUFvUm9BQUFBREZDQkFBQUtBWQpBUUlBQUJR
alFBQUFnR0lFQ0FBQVVJd0FBUUFBaWhFZ0FBQkFNUUlFQUFBb1JvQUFBQURGQ0JBQUFLQVlBUUlB
QUJRalFBQUFnR0lFCkNBQUFVSXdBQVFBQWloRWdBQUJBTVFJRUFBQW9Sb0FBQUFERkNCQUFBS0FZ
QVFJQUFCUWpRQUFBZ0dJRUNBQUFVSXdBQVFBQWloRWcKQUFCQU1RSUVBQUFvUm9BQUFBREZDQkFB
QUtBWUFRSUFBQlFqUUFBQWdHSUVDQUFBVUl3QUFRQUFpaEVnQUFCQU1RSUVBQUFvUm9BQQpBQURG
Q0JBQUFLQVlBUUlBQUJRalFBQUFnR0lFQ0FBQVVJd0FBUUFBaWhFZ0FBQkFNUUlFQUFBb1JvQUFB
QURGQ0JBQUFLQVlBUUlBCkFCUWpRQUFBZ0dJRUNBQUFVSXdBQVFBQWloRWdBQUJBTVFJRUFBQW9S
b0FBQUFERkNCQUFBS0FZQVFJQUFCUWpRQUFBZ0dJRUNBQUEKVUl3QUFRQUFpaEVnQUFCQU1RSUVB
QUFvUm9BQUFBREZDQkFBQUtBWUFRSUFBQlFqUUFBQWdHSUVDQUFBVUl3QUFRQUFpaEVnQUFCQQpN
UUlFQUFBb1JvQUFBQURGQ0JBQUFLQVlBUUlBQUJRalFBQUFnR0lFQ0FBQVVJd0FBUUFBaWhFZ0FB
QkFNUUlFQUFBbzVuOERGSlpBClRHcWdMaEFBQUFBQVNVVk9SSzVDWUlJPQoK
</data>
<flag name="review"
          id="7937"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>