<?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>16818</bug_id>
          
          <creation_ts>2008-01-10 10:25:34 -0800</creation_ts>
          <short_desc>dftables should be rewritten as a script</short_desc>
          <delta_ts>2008-01-10 16:52:05 -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>Tools / Tests</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>alp</cc>
    
    <cc>aroben</cc>
    
    <cc>kevino</cc>
    
    <cc>lars.knoll</cc>
    
    <cc>mrowe</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>66759</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2008-01-10 10:25:34 -0800</bug_when>
    <thetext>* SUMMARY
The dftables script should be rewritten as a script.  This will solve issues such as Bug 14744.

* NOTES
&lt;rdar://problem/5681463&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66808</commentid>
    <comment_count>1</comment_count>
      <attachid>18376</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2008-01-10 14:41:26 -0800</bug_when>
    <thetext>Created attachment 18376
dftables in Perl

Here&apos;s the rewrite of the dftables script in everyone&apos;s favorite scripting language:  Perl!

Since the original C++ program was pulling values from the pcre_internal.h header file, the script creates a file that is pre-processed using cpp to generate Perl code, which is then eval-ed.

The Perl will look very C-like because I mostly kept the same logic/structures as the original C code to make it easier to verify.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66810</commentid>
    <comment_count>2</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2008-01-10 14:41:41 -0800</bug_when>
    <thetext>Will post a patch shortly.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66812</commentid>
    <comment_count>3</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2008-01-10 14:58:50 -0800</bug_when>
    <thetext>Copying people familiar with other build systems that I haven&apos;t tested (Qt, GTK, WX, Windows).

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66813</commentid>
    <comment_count>4</comment_count>
      <attachid>18377</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2008-01-10 15:01:05 -0800</bug_when>
    <thetext>Created attachment 18377
Patch v1

Proposed patch.

Please review changes for your build system (qmake, GNU autotools/make, Bakefiles, Visual C++).  All build system changes were made &quot;blind&quot; except the Xcode change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66815</commentid>
    <comment_count>5</comment_count>
      <attachid>18377</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-01-10 15:04:36 -0800</bug_when>
    <thetext>Comment on attachment 18377
Patch v1

You&apos;ll need to remove the dftables project from WebKit/win/WebKit.vcproj/WebKit.sln as well

In the .sln files you not only need to remove the project itself but also remove its GUID from any dependency listings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66816</commentid>
    <comment_count>6</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2008-01-10 15:05:01 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Created an attachment (id=18377) [edit]
&gt; Patch v1

I should note that output from the Perl script is identical to the compiled C++ program when I built on Mac OS X 10.5.1 (9B18).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66818</commentid>
    <comment_count>7</comment_count>
      <attachid>18377</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-01-10 15:06:01 -0800</bug_when>
    <thetext>Comment on attachment 18377
Patch v1

+    $(JavaScriptCore)/pcre

Should have a backslash at the end of this line, or you could delete the &quot;#&quot; at the beginning of the next line which is supposed to be a sort of reminder that you&apos;re at the end of the script.

Looks fine, r=me

(Too bad I have saved patches with changes to the tool -- should be easy enough to port, though.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66825</commentid>
    <comment_count>8</comment_count>
      <attachid>18381</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2008-01-10 15:30:40 -0800</bug_when>
    <thetext>Created attachment 18381
Patch v2

Contains fixes for Darin&apos;s and Adam&apos;s issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66829</commentid>
    <comment_count>9</comment_count>
      <attachid>18381</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-01-10 15:34:54 -0800</bug_when>
    <thetext>Comment on attachment 18381
Patch v2

Looks good on the Windows side.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66832</commentid>
    <comment_count>10</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2008-01-10 15:39:12 -0800</bug_when>
    <thetext>Nice.

-JavaScriptCore/pcre/chartables.c: $(top_builddir)/Programs/dftables$(EXEEXT)
-	./Programs/dftables $@
+JavaScriptCore/pcre/chartables.c: 
+	$(srcdir)/JavaScriptCore/pcre/dftables $@

This should probably be:

JavaScriptCore/pcre/chartables.c: $(srcdir)/JavaScriptCore/pcre/dftables
	$^ $@
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66839</commentid>
    <comment_count>11</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2008-01-10 16:20:05 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; -JavaScriptCore/pcre/chartables.c: $(top_builddir)/Programs/dftables$(EXEEXT)
&gt; -       ./Programs/dftables $@
&gt; +JavaScriptCore/pcre/chartables.c: 
&gt; +       $(srcdir)/JavaScriptCore/pcre/dftables $@
&gt; 
&gt; This should probably be:
&gt; 
&gt; JavaScriptCore/pcre/chartables.c: $(srcdir)/JavaScriptCore/pcre/dftables
&gt;         $^ $@

Fixed.  Thanks!

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66842</commentid>
    <comment_count>12</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2008-01-10 16:35:41 -0800</bug_when>
    <thetext>Committed revision 29381.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66843</commentid>
    <comment_count>13</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2008-01-10 16:42:10 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; Committed revision 29381.

It helps if dftables is executable, too.

Committed revision 29382.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66844</commentid>
    <comment_count>14</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2008-01-10 16:52:05 -0800</bug_when>
    <thetext>Looks like Qt Linux/Windows and Gtk builds failed.  I must not have made the correct changes to the qmake files.

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>18376</attachid>
            <date>2008-01-10 14:41:26 -0800</date>
            <delta_ts>2008-01-10 14:41:26 -0800</delta_ts>
            <desc>dftables in Perl</desc>
            <filename>dftables</filename>
            <type>text/plain</type>
            <size>8061</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">IyEvdXNyL2Jpbi9wZXJsIC13CiMKIyBUaGlzIGlzIEphdmFTY3JpcHRDb3JlJ3MgdmFyaWFudCBv
ZiB0aGUgUENSRSBsaWJyYXJ5LiBXaGlsZSB0aGlzIGxpYnJhcnkKIyBzdGFydGVkIG91dCBhcyBh
IGNvcHkgb2YgUENSRSwgbWFueSBvZiB0aGUgZmVhdHVyZXMgb2YgUENSRSBoYXZlIGJlZW4KIyBy
ZW1vdmVkLiBUaGlzIGxpYnJhcnkgbm93IHN1cHBvcnRzIG9ubHkgdGhlIHJlZ3VsYXIgZXhwcmVz
c2lvbiBmZWF0dXJlcwojIHJlcXVpcmVkIGJ5IHRoZSBKYXZhU2NyaXB0IGxhbmd1YWdlIHNwZWNp
ZmljYXRpb24sIGFuZCBoYXMgb25seSB0aGUgZnVuY3Rpb25zCiMgbmVlZGVkIGJ5IEphdmFTY3Jp
cHRDb3JlIGFuZCB0aGUgcmVzdCBvZiBXZWJLaXQuCiMgCiMgICAgICAgICAgICAgICAgICBPcmln
aW5hbGx5IHdyaXR0ZW4gYnkgUGhpbGlwIEhhemVsCiMgICAgICAgICAgICBDb3B5cmlnaHQgKGMp
IDE5OTctMjAwNiBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZQojICBDb3B5cmlnaHQgKEMpIDIwMDIs
IDIwMDQsIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
IyAKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAojIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0
OgojIAojICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKIyAgICAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgojIAojICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CiMgICAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQojICAgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiMgCiMgICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2Ugbm9yIHRoZSBuYW1lcyBvZiBpdHMK
IyAgICAgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQojICAgICAgIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCiMgCiMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiCiMgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQojIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCiMgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFCiMgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgojIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCiMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCiMgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
IyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQojIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFCiMgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiMgVGhpcyBpcyBhIGZyZWVzdGFuZGlu
ZyBzdXBwb3J0IHByb2dyYW0gdG8gZ2VuZXJhdGUgYSBmaWxlIGNvbnRhaW5pbmcKIyBjaGFyYWN0
ZXIgdGFibGVzLiBUaGUgdGFibGVzIGFyZSBidWlsdCBhY2NvcmRpbmcgdG8gdGhlIGRlZmF1bHQg
QwojIGxvY2FsZS4KCnVzZSBzdHJpY3Q7Cgp1c2UgRmlsZTo6QmFzZW5hbWU7CnVzZSBGaWxlOjpT
cGVjOwp1c2UgRmlsZTo6VGVtcDsKCnN1YiByZWFkSGVhZGVyVmFsdWVzKCk7CgpteSAlcGNyZV9p
bnRlcm5hbDsKCmlmIChzY2FsYXIoQEFSR1YpICE9IDEpIHsKICAgIHByaW50IFNUREVSUiAiVXNh
Z2U6ICIsIGJhc2VuYW1lKCQwKSwgIiBvdXRwdXQtZmlsZVxuIjsKICAgIGV4aXQgMTsKfQoKbXkg
JG91dHB1dEZpbGUgPSBzaGlmdCBAQVJHVjsKCnJlYWRIZWFkZXJWYWx1ZXMoKTsKCm9wZW4oT1VU
LCAiPiIsICRvdXRwdXRGaWxlKSBvciBkaWUgIiQhIjsKYmlubW9kZShPVVQpOwoKcHJpbnRmKE9V
VAogICAgIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
XG4iIC4KICAgICIqICAgICAgUGVybC1Db21wYXRpYmxlIFJlZ3VsYXIgRXhwcmVzc2lvbnMgICAg
ICAgKlxuIiAuCiAgICAiKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKi9cblxuIiAuCiAgICAiLyogVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgd3JpdHRl
biBieSB0aGUgZGZ0YWJsZXMgYXV4aWxpYXJ5IFxuIiAuCiAgICAicHJvZ3JhbS4gSWYgeW91IGVk
aXQgaXQgYnkgaGFuZCwgeW91IG1pZ2h0IGxpa2UgdG8gZWRpdCB0aGUgTWFrZWZpbGUgdG8gXG4i
IC4KICAgICJwcmV2ZW50IGl0cyBldmVyIGJlaW5nIHJlZ2VuZXJhdGVkLlxuXG4iKTsKcHJpbnRm
KE9VVAogICAgIlRoaXMgZmlsZSBjb250YWlucyB0aGUgZGVmYXVsdCB0YWJsZXMgZm9yIGNoYXJh
Y3RlcnMgd2l0aCBjb2RlcyBsZXNzIHRoYW5cbiIgLgogICAgIjEyOCAoQVNDSUkgY2hhcmFjdGVy
cykuIFRoZXNlIHRhYmxlcyBhcmUgdXNlZCB3aGVuIG5vIGV4dGVybmFsIHRhYmxlcyBhcmVcbiIg
LgogICAgInBhc3NlZCB0byBQQ1JFLiAqL1xuXG4iIC4KICAgICJjb25zdCB1bnNpZ25lZCBjaGFy
IGtqc19wY3JlX2RlZmF1bHRfdGFibGVzWyVkXSA9IHtcblxuIiAuCiAgICAiLyogVGhpcyB0YWJs
ZSBpcyBhIGxvd2VyIGNhc2luZyB0YWJsZS4gKi9cblxuIiwgJHBjcmVfaW50ZXJuYWx7dGFibGVz
X2xlbmd0aH0pOwoKaWYgKCRwY3JlX2ludGVybmFse2xjY19vZmZzZXR9ICE9IDApIHsKICAgIGRp
ZSAibGNjX29mZnNldCAhPSAwIjsKfQoKcHJpbnRmKE9VVCAiICAiKTsKZm9yIChteSAkaSA9IDA7
ICRpIDwgMTI4OyAkaSsrKSB7CiAgICBpZiAoKCRpICYgNykgPT0gMCAmJiAkaSAhPSAwKSB7CiAg
ICAgICAgcHJpbnRmKE9VVCAiXG4gICIpOwogICAgfQogICAgcHJpbnRmKE9VVCAiMHglMDJYIiwg
b3JkKGxjKGNocigkaSkpKSk7CiAgICBpZiAoJGkgIT0gMTI3KSB7CiAgICAgICAgcHJpbnRmKE9V
VCAiLCAiKTsKICAgIH0KfQpwcmludGYoT1VUICIsXG5cbiIpOwoKcHJpbnRmKE9VVCAiLyogVGhp
cyB0YWJsZSBpcyBhIGNhc2UgZmxpcHBpbmcgdGFibGUuICovXG5cbiIpOwoKaWYgKCRwY3JlX2lu
dGVybmFse2ZjY19vZmZzZXR9ICE9IDEyOCkgewogIGRpZSAiZmNjX29mZnNldCAhPSAxMjgiOwp9
CgpwcmludGYoT1VUICIgICIpOwpmb3IgKG15ICRpID0gMDsgJGkgPCAxMjg7ICRpKyspIHsKICAg
IGlmICgoJGkgJiA3KSA9PSAwICYmICRpICE9IDApIHsKICAgICAgICBwcmludGYoT1VUICJcbiAg
Iik7CiAgICB9CiAgICBteSAkYyA9IGNocigkaSk7CiAgICBwcmludGYoT1VUICIweCUwMlgiLCAk
YyA9fiAvW1s6bG93ZXI6XV0vID8gb3JkKHVjKCRjKSkgOiBvcmQobGMoJGMpKSk7CiAgICBpZiAo
JGkgIT0gMTI3KSB7CiAgICAgICAgcHJpbnRmKE9VVCAiLCAiKTsKICAgIH0KfQpwcmludGYoT1VU
ICIsXG5cbiIpOwoKcHJpbnRmKE9VVAogICAgIi8qIFRoaXMgdGFibGUgY29udGFpbnMgYml0IG1h
cHMgZm9yIHZhcmlvdXMgY2hhcmFjdGVyIGNsYXNzZXMuXG4iIC4KICAgICJFYWNoIG1hcCBpcyAz
MiBieXRlcyBsb25nIGFuZCB0aGUgYml0cyBydW4gZnJvbSB0aGUgbGVhc3RcbiIgLgogICAgInNp
Z25pZmljYW50IGVuZCBvZiBlYWNoIGJ5dGUuIFRoZSBjbGFzc2VzIGFyZTogc3BhY2UsIGRpZ2l0
LCB3b3JkLiAqL1xuXG4iKTsKCmlmICgkcGNyZV9pbnRlcm5hbHtjYml0c19vZmZzZXR9ICE9ICRw
Y3JlX2ludGVybmFse2ZjY19vZmZzZXR9ICsgMTI4KSB7CiAgICBkaWUgImNiaXRzX29mZnNldCAh
PSBmY2Nfb2Zmc2V0ICsgMTI4IjsKfQoKbXkgQGNiaXRfdGFibGUgPSAoMCkgeCAkcGNyZV9pbnRl
cm5hbHtjYml0X2xlbmd0aH07CmZvciAobXkgJGkgPSBvcmQoJzAnKTsgJGkgPD0gb3JkKCc5Jyk7
ICRpKyspIHsKICAgICRjYml0X3RhYmxlWyRwY3JlX2ludGVybmFse2NiaXRfZGlnaXR9ICsgJGkg
LyA4XSB8PSAxIDw8ICgkaSAmIDcpOwp9CiRjYml0X3RhYmxlWyRwY3JlX2ludGVybmFse2NiaXRf
d29yZH0gKyBvcmQoJ18nKSAvIDhdIHw9IDEgPDwgKG9yZCgnXycpICYgNyk7CmZvciAobXkgJGkg
PSAwOyAkaSA8IDEyODsgJGkrKykgewogICAgbXkgJGMgPSBjaHIoJGkpOwogICAgaWYgKCRjID1+
IC9bWzphbG51bTpdXS8pIHsKICAgICAgICAkY2JpdF90YWJsZVskcGNyZV9pbnRlcm5hbHtjYml0
X3dvcmR9ICsgJGkgLyA4XSB8PSAxIDw8ICgkaSAmIDcpOwogICAgfQogICAgaWYgKCRjID1+IC9b
WzpzcGFjZTpdXS8pIHsKICAgICAgICAkY2JpdF90YWJsZVskcGNyZV9pbnRlcm5hbHtjYml0X3Nw
YWNlfSArICRpIC8gOF0gfD0gMSA8PCAoJGkgJiA3KTsKICAgIH0KfQoKcHJpbnRmKE9VVCAiICAi
KTsKZm9yIChteSAkaSA9IDA7ICRpIDwgJHBjcmVfaW50ZXJuYWx7Y2JpdF9sZW5ndGh9OyAkaSsr
KSB7CiAgICBpZiAoKCRpICYgNykgPT0gMCAmJiAkaSAhPSAwKSB7CiAgICAgICAgaWYgKCgkaSAm
IDMxKSA9PSAwKSB7CiAgICAgICAgICAgIHByaW50ZihPVVQgIlxuIik7CiAgICAgICAgfQogICAg
ICAgIHByaW50ZihPVVQgIlxuICAiKTsKICAgIH0KICAgIHByaW50ZihPVVQgIjB4JTAyWCIsICRj
Yml0X3RhYmxlWyRpXSk7CiAgICBpZiAoJGkgIT0gJHBjcmVfaW50ZXJuYWx7Y2JpdF9sZW5ndGh9
IC0gMSkgewogICAgICAgIHByaW50ZihPVVQgIiwgIik7CiAgICB9Cn0KcHJpbnRmKE9VVCAiLFxu
XG4iKTsKCnByaW50ZihPVVQKICAgICIvKiBUaGlzIHRhYmxlIGlkZW50aWZpZXMgdmFyaW91cyBj
bGFzc2VzIG9mIGNoYXJhY3RlciBieSBpbmRpdmlkdWFsIGJpdHM6XG4iIC4KICAgICIgIDB4JTAy
eCAgIHdoaXRlIHNwYWNlIGNoYXJhY3RlclxuIiAuCiAgICAiICAweCUwMnggICBoZXhhZGVjaW1h
bCBkaWdpdFxuIiAuCiAgICAiICAweCUwMnggICBhbHBoYW51bWVyaWMgb3IgJ18nXG4qL1xuXG4i
LAogICAgJHBjcmVfaW50ZXJuYWx7Y3R5cGVfc3BhY2V9LCAkcGNyZV9pbnRlcm5hbHtjdHlwZV94
ZGlnaXR9LCAkcGNyZV9pbnRlcm5hbHtjdHlwZV93b3JkfSk7CgppZiAoJHBjcmVfaW50ZXJuYWx7
Y3R5cGVzX29mZnNldH0gIT0gJHBjcmVfaW50ZXJuYWx7Y2JpdHNfb2Zmc2V0fSArICRwY3JlX2lu
dGVybmFse2NiaXRfbGVuZ3RofSkgewogICAgZGllICJjdHlwZXNfb2Zmc2V0ICE9IGNiaXRzX29m
ZnNldCArIGNiaXRfbGVuZ3RoIjsKfQoKcHJpbnRmKE9VVCAiICAiKTsKZm9yIChteSAkaSA9IDA7
ICRpIDwgMTI4OyAkaSsrKSB7CiAgICBteSAkeCA9IDA7CiAgICBteSAkYyA9IGNocigkaSk7CiAg
ICBpZiAoJGMgPX4gL1tbOnNwYWNlOl1dLykgewogICAgICAgICR4ICs9ICRwY3JlX2ludGVybmFs
e2N0eXBlX3NwYWNlfTsKICAgIH0KICAgIGlmICgkYyA9fiAvW1s6eGRpZ2l0Ol1dLykgewogICAg
ICAgICR4ICs9ICRwY3JlX2ludGVybmFse2N0eXBlX3hkaWdpdH07CiAgICB9CiAgICBpZiAoJGMg
PX4gL1tbOmFsbnVtOl1fXS8pIHsKICAgICAgICAkeCArPSAkcGNyZV9pbnRlcm5hbHtjdHlwZV93
b3JkfTsKICAgIH0KICAgIHByaW50ZihPVVQgIjB4JTAyWCIsICR4KTsKICAgIGlmICgkaSAhPSAx
MjcpIHsKICAgICAgICBwcmludGYoT1VUICIsICIpOwogICAgfSBlbHNlIHsKICAgICAgICBwcmlu
dGYoT1VUICJ9OyIpOwogICAgfQogICAgaWYgKCgkaSAmIDcpID09IDcpIHsKICAgICAgICBwcmlu
dGYoT1VUICIgLyogIik7CiAgICAgICAgbXkgJGQgPSBjaHIoJGkgLSA3KTsKICAgICAgICBpZiAo
JGQgPX4gL1tbOnByaW50Ol1dLykgewogICAgICAgICAgICBwcmludGYoT1VUICIgJWMgLSIsICRp
IC0gNyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcHJpbnRmKE9VVCAiJTNkLSIsICRp
IC0gNyk7CiAgICAgICAgfQogICAgICAgIGlmICgkYyA9fiBtL1tbOnByaW50Ol1dLykgewogICAg
ICAgICAgICBwcmludGYoT1VUICIgJWMgIiwgJGkpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgIHByaW50ZihPVVQgIiUzZCIsICRpKTsKICAgICAgICB9CiAgICAgICAgcHJpbnRmKE9VVCAi
ICovXG4iKTsKICAgICAgICBpZiAoJGkgIT0gMTI3KSB7CiAgICAgICAgICAgIHByaW50ZihPVVQg
IiAgIik7CiAgICAgICAgfQogICAgfQp9CgppZiAoJHBjcmVfaW50ZXJuYWx7dGFibGVzX2xlbmd0
aH0gIT0gJHBjcmVfaW50ZXJuYWx7Y3R5cGVzX29mZnNldH0gKyAxMjgpIHsKICAgIGRpZSAidGFi
bGVzX2xlbmd0aCAhPSBjdHlwZXNfb2Zmc2V0ICsgMTI4IjsKfQoKcHJpbnRmKE9VVCAiXG5cbi8q
IEVuZCBvZiBjaGFydGFibGVzLmMgKi9cbiIpOwoKY2xvc2UoT1VUKTsKCmV4aXQgMDsKCnN1YiBy
ZWFkSGVhZGVyVmFsdWVzKCkKewogICAgbXkgQHZhcmlhYmxlcyA9IHF3KAogICAgICAgIGNiaXRf
ZGlnaXQKICAgICAgICBjYml0X2xlbmd0aAogICAgICAgIGNiaXRfc3BhY2UKICAgICAgICBjYml0
X3dvcmQKICAgICAgICBjYml0c19vZmZzZXQKICAgICAgICBjdHlwZV9zcGFjZQogICAgICAgIGN0
eXBlX3dvcmQKICAgICAgICBjdHlwZV94ZGlnaXQKICAgICAgICBjdHlwZXNfb2Zmc2V0CiAgICAg
ICAgZmNjX29mZnNldAogICAgICAgIGxjY19vZmZzZXQKICAgICAgICB0YWJsZXNfbGVuZ3RoCiAg
ICApOwoKICAgIGxvY2FsICQvID0gdW5kZWY7CgogICAgbXkgJGhlYWRlclBhdGggPSBGaWxlOjpT
cGVjLT5jYXRmaWxlKGRpcm5hbWUoJDApLCAicGNyZV9pbnRlcm5hbC5oIik7CgogICAgbXkgJGZo
ID0gbmV3IEZpbGU6OlRlbXAoCiAgICAgICAgRElSID0+ICgkRU5WeydUTVBESVInfSB8fCAiL3Rt
cCIpLAogICAgICAgIFNVRkZJWCA9PiAiLmluIiwKICAgICAgICBURU1QTEFURSA9PiBiYXNlbmFt
ZSgkMCkgLiAiLVhYWFhYWFhYIiwKICAgICAgICBVTkxJTksgPT4gMCwKICAgICk7CiAgICBteSAk
dGVtcEZpbGUgPSAkZmgtPmZpbGVuYW1lKCk7CgogICAgcHJpbnQgJGZoICIjZGVmaW5lIERGVEFC
TEVTXG5cbiI7CgogICAgb3BlbihIRUFERVIsICI8IiwgJGhlYWRlclBhdGgpIG9yIGRpZSAiJCEi
OwogICAgcHJpbnQgJGZoIDxIRUFERVI+OwogICAgY2xvc2UoSEVBREVSKTsKCiAgICBwcmludCAk
ZmggIlxuXG4iOwoKICAgIGZvciBteSAkdiAoQHZhcmlhYmxlcykgewogICAgICAgIHByaW50ICRm
aCAiXCRwY3JlX2ludGVybmFse1wiJHZcIn0gPSAkdjtcbiI7CiAgICB9CgogICAgY2xvc2UoJGZo
KTsKCiAgICBvcGVuKENQUCwgIi18IiwgImNwcCIsICR0ZW1wRmlsZSkgb3IgZGllICIkISI7CiAg
ICBteSAkY29udGVudCA9IDxDUFA+OwogICAgY2xvc2UoQ1BQKTsKCiAgICBldmFsICRjb250ZW50
OwogICAgZGllICIkQCIgaWYgJEA7Cn0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>18377</attachid>
            <date>2008-01-10 15:01:05 -0800</date>
            <delta_ts>2008-01-10 15:30:40 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-16818-v1.diff</filename>
            <type>text/plain</type>
            <size>41127</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI5Mzc0KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzMgQEAKKzIwMDgtMDEtMTAgIERhdmlkIEtp
bHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KKworICAgICAgICBkZnRhYmxlcyBzaG91bGQgYmUg
cmV3cml0dGVuIGFzIGEgc2NyaXB0CisKKyAgICAgICAgPGh0dHA6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2ODE4PgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTY4MTQ2Mz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXdyb3Rl
IHRoZSBkZnRhYmxlcyB1dGlsaXR5IGluIFBlcmwuICBBdHRlbXB0ZWQgdG8gc3dpdGNoIGFsbAor
ICAgICAgICBidWlsZCBzeXN0ZW1zIHRvIGNhbGwgdGhlIHNjcmlwdCBkaXJlY3RseSBpbnN0ZWFk
IG9mIGJ1aWxkaW5nCisgICAgICAgIGEgYmluYXJ5IGZpcnN0LiAgT25seSB0aGUgWGNvZGUgYnVp
bGQgd2FzIGFibGUgdG8gYmUgdGVzdGVkLgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFr
ZTogQWRkZWQgcGNyZSBkaXJlY3RvcnkgdG8gVlBBVEggYW5kIGNoYW5nZWQKKyAgICAgICAgdG8g
aW52b2tlIGRmdGFibGVzIGRpcmVjdGx5LgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBSZW1v
dmVkIGJ1aWxkIGluZm9ybWF0aW9uIGFuZCBjaGFuZ2VkIHRvIGludm9rZQorICAgICAgICBkZnRh
YmxlcyBkaXJlY3RseS4KKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlw
dENvcmUuc2xuOiBSZW1vdmVkIHJlZmVyZW5jZSB0bworICAgICAgICBkZnRhYmxlcyBwcm9qZWN0
LgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZVN1Ym1pdC5z
bG46IERpdHRvLgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai9kZnRhYmxlczogUmVt
b3ZlZC4KKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3Byb2ovZGZ0YWJsZXMvZGZ0YWJsZXMu
dmNwcm9qOiBSZW1vdmVkLgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6IFJlbW92ZWQgZGZ0YWJsZXMgdGFyZ2V0LgorICAgICAgICAqIGpzY29yZS5i
a2w6IFJlbW92ZWQgZGZ0YWJsZXMgZXhlY3V0YWJsZSBkZWZpbml0aW9uLgorICAgICAgICAqIHBj
cmUvZGZ0YWJsZXM6IENvcGllZCBmcm9tIEphdmFTY3JpcHRDb3JlL3BjcmUvZGZ0YWJsZXMuY3Bw
LgorICAgICAgICAqIHBjcmUvZGZ0YWJsZXMuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBjcmUv
ZGZ0YWJsZXMucHJvOiBSZW1vdmVkLgorICAgICAgICAqIHBjcmUvcGNyZS5wcmk6IFJlbW92ZWQg
cmVmZXJlbmNlcyB0byBkZnRhYmxlcy5jcHAgYW5kIGNoYW5nZWQgdG8KKyAgICAgICAgaW52b2tl
IGRmdGFibGVzIGRpcmVjdGx5LgorCiAyMDA4LTAxLTEwICBEYW4gQmVybnN0ZWluICA8bWl0ekBh
cHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBKYXZh
U2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDI5MzYyKQorKysgSmF2YVNjcmlwdENv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAog
CiBWUEFUSCA9IFwKICAgICAkKEphdmFTY3JpcHRDb3JlKS9ranMgXAorICAgICQoSmF2YVNjcmlw
dENvcmUpL3BjcmUKICMKIAogLlBIT05ZIDogYWxsCkBAIC02MCw1ICs2MSw1IEBAIGdyYW1tYXIu
Y3BwOiBncmFtbWFyLnkKIAogIyBjaGFyYWN0ZXIgdGFibGVzIGZvciBQQ1JFCiAKLWNoYXJ0YWJs
ZXMuYyA6ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9kZnRhYmxlcyQoREZUQUJMRVNfRVhURU5TSU9O
KQorY2hhcnRhYmxlcy5jIDogZGZ0YWJsZXMKIAkkXiAkQApJbmRleDogSmF2YVNjcmlwdENvcmUv
R05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUu
YW0JKHJldmlzaW9uIDI5MzYyKQorKysgSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUuYW0JKHdv
cmtpbmcgY29weSkKQEAgLTEzNCwxNyArMTM0LDEzIEBAIERlcml2ZWRTb3VyY2VzL2xleGVyLmx1
dC5oOiAkKENSRUFURV9IQVMKICVfb2JqZWN0Lmx1dC5oOiAkKENSRUFURV9IQVNIX1RBQkxFKSAl
X29iamVjdC5jcHAKIAkkXiAtaSA+ICRACiAKLUphdmFTY3JpcHRDb3JlL3BjcmUvY2hhcnRhYmxl
cy5jOiAkKHRvcF9idWlsZGRpcikvUHJvZ3JhbXMvZGZ0YWJsZXMkKEVYRUVYVCkKLQkuL1Byb2dy
YW1zL2RmdGFibGVzICRACitKYXZhU2NyaXB0Q29yZS9wY3JlL2NoYXJ0YWJsZXMuYzogCisJJChz
cmNkaXIpL0phdmFTY3JpcHRDb3JlL3BjcmUvZGZ0YWJsZXMgJEAKIAogbm9pbnN0X1BST0dSQU1T
ICs9IFwKLQlQcm9ncmFtcy9kZnRhYmxlcyBcCiAJUHJvZ3JhbXMvbWluaWRvbSBcCiAJUHJvZ3Jh
bXMvdGVzdGtqcwogCi0jIGRmdGFibGVzCi1Qcm9ncmFtc19kZnRhYmxlc19TT1VSQ0VTID0gSmF2
YVNjcmlwdENvcmUvcGNyZS9kZnRhYmxlcy5jcHAKLQogIyBtaW5pZG9tCiBQcm9ncmFtc19taW5p
ZG9tX1NPVVJDRVMgPSBcCiAJSmF2YVNjcmlwdENvcmUvQVBJL0pTTm9kZS5jIFwKSW5kZXg6IEph
dmFTY3JpcHRDb3JlL2pzY29yZS5ia2wKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvanNj
b3JlLmJrbAkocmV2aXNpb24gMjkzNjIpCisrKyBKYXZhU2NyaXB0Q29yZS9qc2NvcmUuYmtsCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDMsMTIgKzEwMyw2IEBAIEphdmFTY3JpcHRDb3JlIEJha2VmaWxl
IHByb2plY3QgZmlsZS4KICAgICAgICAgCiAgICAgPC9leGU+CiAKLSAgICA8ZXhlIGlkPSJkZnRh
YmxlcyI+Ci0gICAgICAgIDxkaXJuYW1lPiQoU1JDRElSKTwvZGlybmFtZT4KLSAgICAgICAgPGlu
Y2x1ZGU+JChTUkNESVIpL3d0ZjwvaW5jbHVkZT4KLSAgICAgICAgPHNvdXJjZXM+JChTUkNESVIp
L3BjcmUvZGZ0YWJsZXMuY3BwPC9zb3VyY2VzPgotICAgIDwvZXhlPgotCiAgICAgPGFjdGlvbiBp
ZD0iRGVyaXZlZFNvdXJjZXMiPgogICAgICAgICA8aXMtcGhvbnkgLz4KICAgICAgICAgPGNvbW1h
bmQ+YmFzaCBtYWtlLWdlbmVyYXRlZC1zb3VyY2VzLnNoPC9jb21tYW5kPgpJbmRleDogSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlLnNsbgo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENv
cmUuc2xuCShyZXZpc2lvbiAyOTM2MikKKysrIEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LnZjcHJvai9KYXZhU2NyaXB0Q29yZS5zbG4JKHdvcmtpbmcgY29weSkKQEAgLTcsOCArNyw2IEBA
IFByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkKIAkJezRGRjVCQTExLTU5
RUMtNEMyNC04RjUyLUYyMzVDMkU3RDQzQX0gPSB7NEZGNUJBMTEtNTlFQy00QzI0LThGNTItRjIz
NUMyRTdENDNBfQ0KIAlFbmRQcm9qZWN0U2VjdGlvbg0KIEVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7
OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gImRmdGFibGVzIiwgImRm
dGFibGVzXGRmdGFibGVzLnZjcHJvaiIsICJ7QkMyOTgxQzAtNjdBNS00QTNDLTg3OUItNzg0QkNC
REUyNTQxfSINCi1FbmRQcm9qZWN0DQogUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDEx
LTAwQTBDOTFCQzk0Mn0iKSA9ICJ0ZXN0a2pzIiwgInRlc3RranNcdGVzdGtqcy52Y3Byb2oiLCAi
e0M1OUU1MTI5LUI0NTMtNDlCNy1BNTJCLTFFMTA0NzE1Rjc2RX0iDQogCVByb2plY3RTZWN0aW9u
KFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCiAJCXtBQThBNUE4NS01OTJCLTQz
NTctQkM2MC1FMEU5MUUwMjZBRjZ9ID0ge0FBOEE1QTg1LTU5MkItNDM1Ny1CQzYwLUUwRTkxRTAy
NkFGNn0NCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNj
cmlwdENvcmVTdWJtaXQuc2xuCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZVN1Ym1pdC5zbG4JKHJldmlzaW9uIDI5MzYyKQor
KysgSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlU3Vi
bWl0LnNsbgkod29ya2luZyBjb3B5KQpAQCAtNyw4ICs3LDYgQEAgUHJvamVjdCgiezhCQzlDRUI4
LThCNEEtMTFEMC04RDExLTAwQTBDOQogCQl7NEZGNUJBMTEtNTlFQy00QzI0LThGNTItRjIzNUMy
RTdENDNBfSA9IHs0RkY1QkExMS01OUVDLTRDMjQtOEY1Mi1GMjM1QzJFN0Q0M0F9DQogCUVuZFBy
b2plY3RTZWN0aW9uDQogRW5kUHJvamVjdA0KLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAt
OEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiZGZ0YWJsZXMiLCAiZGZ0YWJsZXNcZGZ0YWJsZXMudmNw
cm9qIiwgIntCQzI5ODFDMC02N0E1LTRBM0MtODc5Qi03ODRCQ0JERTI1NDF9Ig0KLUVuZFByb2pl
Y3QNCiBQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0g
IldURiIsICJXVEZcV1RGLnZjcHJvaiIsICJ7QUE4QTVBODUtNTkyQi00MzU3LUJDNjAtRTBFOTFF
MDI2QUY2fSINCiBFbmRQcm9qZWN0DQogUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDEx
LTAwQTBDOTFCQzk0Mn0iKSA9ICJKYXZhU2NyaXB0Q29yZUdlbmVyYXRlZCIsICJKYXZhU2NyaXB0
Q29yZVxKYXZhU2NyaXB0Q29yZUdlbmVyYXRlZC52Y3Byb2oiLCAiezRGRjVCQTExLTU5RUMtNEMy
NC04RjUyLUYyMzVDMkU3RDQzQX0iDQpJbmRleDogSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUudmNwcm9qL2RmdGFibGVzL2RmdGFibGVzLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovZGZ0YWJsZXMvZGZ0YWJsZXMudmNwcm9qCShy
ZXZpc2lvbiAyOTM2MikKKysrIEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9k
ZnRhYmxlcy9kZnRhYmxlcy52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTEsMTA3ICswLDAgQEAK
LTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IldpbmRvd3MtMTI1MiI/Pg0KLTxWaXN1YWxT
dHVkaW9Qcm9qZWN0DQotCVByb2plY3RUeXBlPSJWaXN1YWwgQysrIg0KLQlWZXJzaW9uPSI4LjAw
Ig0KLQlOYW1lPSJkZnRhYmxlcyINCi0JUHJvamVjdEdVSUQ9IntCQzI5ODFDMC02N0E1LTRBM0Mt
ODc5Qi03ODRCQ0JERTI1NDF9Ig0KLQlSb290TmFtZXNwYWNlPSJkZnRhYmxlcyINCi0JS2V5d29y
ZD0iV2luMzJQcm9qIg0KLQk+DQotCTxQbGF0Zm9ybXM+DQotCQk8UGxhdGZvcm0NCi0JCQlOYW1l
PSJXaW4zMiINCi0JCS8+DQotCTwvUGxhdGZvcm1zPg0KLQk8VG9vbEZpbGVzPg0KLQk8L1Rvb2xG
aWxlcz4NCi0JPENvbmZpZ3VyYXRpb25zPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJE
ZWJ1Z3xXaW4zMiINCi0JCQlPdXRwdXREaXJlY3Rvcnk9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpc
SmF2YVNjcmlwdENvcmUiDQotCQkJSW50ZXJtZWRpYXRlRGlyZWN0b3J5PSIkKFdlYktpdE91dHB1
dERpcilcb2JqXEphdmFTY3JpcHRDb3JlXCQoUHJvamVjdE5hbWUpXCQoQ29uZmlndXJhdGlvbk5h
bWUpIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIxIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hl
ZXRzPSIuLlxkZWJ1Zy52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMSINCi0JCQk+DQotCQkJ
PFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29s
DQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJ
TmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5h
bWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQot
CQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIg0KLQkJCQlPcHRpbWl6YXRpb249IjAiDQotCQkJCVByZXByb2Nlc3NvckRl
ZmluaXRpb25zPSJXSU4zMjtfREVCVUc7X0NPTlNPTEU7X0NSVF9TRUNVUkVfTk9fREVQUkVDQVRF
Ig0KLQkJCQlNaW5pbWFsUmVidWlsZD0idHJ1ZSINCi0JCQkJRXhjZXB0aW9uSGFuZGxpbmc9IjAi
DQotCQkJCUJhc2ljUnVudGltZUNoZWNrcz0iMyINCi0JCQkJUnVudGltZUxpYnJhcnk9IjMiDQot
CQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIwIg0KLQkJCQlXYXJuaW5nTGV2ZWw9IjMiDQotCQkJ
CURldGVjdDY0Qml0UG9ydGFiaWxpdHlQcm9ibGVtcz0idHJ1ZSINCi0JCQkJRGVidWdJbmZvcm1h
dGlvbkZvcm1hdD0iMyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJl
c291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNv
dXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlu
a0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCIN
Ci0JCQkJT3V0cHV0RmlsZT0iJChPdXREaXIpXCQoUHJvamVjdE5hbWUpLmV4ZSINCi0JCQkJTGlu
a0luY3JlbWVudGFsPSIyIg0KLQkJCQlHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb249InRydWUiDQot
CQkJCVN1YlN5c3RlbT0iMSINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMSINCi0JCQkvPg0KLQkJCTxU
b29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFt
ZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01h
a2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0J
CQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRv
b2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJ
CQlOYW1lPSJWQ1dlYkRlcGxveW1lbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFt
ZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0J
PC9Db25maWd1cmF0aW9ucz4NCi0JPFJlZmVyZW5jZXM+DQotCTwvUmVmZXJlbmNlcz4NCi0JPEZp
bGVzPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHBjcmVcZGZ0YWJsZXMuY3Bw
Ig0KLQkJCT4NCi0JCTwvRmlsZT4NCi0JPC9GaWxlcz4NCi0JPEdsb2JhbHM+DQotCTwvR2xvYmFs
cz4NCi08L1Zpc3VhbFN0dWRpb1Byb2plY3Q+DQpJbmRleDogSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lv
biAyOTM2MikKKysrIEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTEzLDkgKzEzLDYgQEAKIAkJCWJ1aWxkUGhh
c2VzID0gKAogCQkJCTY1RkIzRjY1MDlEMTFFOTEwMEY0OURFQiAvKiBHZW5lcmF0ZSBEZXJpdmVk
IFNvdXJjZXMgKi8sCiAJCQkpOwotCQkJZGVwZW5kZW5jaWVzID0gKAotCQkJCTVEMkYyMUQ4MEJE
RkFCMUQwMDgyQjI5NCAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAotCQkJKTsKIAkJCW5hbWUg
PSAiRGVyaXZlZCBTb3VyY2VzIjsKIAkJCXByb2R1Y3ROYW1lID0gIkRlcml2ZWQgU291cmNlcyI7
CiAJCX07CkBAIC0yMjMsNyArMjIwLDYgQEAKIAkJOTMyRkMxMUQwODI0QTZBMzAwNUIzQzc1IC8q
IGNyZWF0ZV9oYXNoX3RhYmxlIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjY5MkE4NTQwMjU1NTk3RDAxRkY2MEY3IC8qIGNyZWF0ZV9oYXNoX3RhYmxlICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzNUFGNDZD
MDlFOUQ5REIwMEFDRDFEOCAvKiBGb3J3YXJkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MzVBRjQ2OTA5RTlEOURCMDBBQ0QxRDggLyogRm9yd2FyZC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzNUFG
NDZFMDlFOUQ5REIwMEFDRDFEOCAvKiBVbnVzZWRQYXJhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1QUY0NkIwOUU5RDlEQjAwQUNEMUQ4IC8qIFVu
dXNlZFBhcmFtLmggKi87IH07Ci0JCTkzNUY2OUZFMDgyNDUwNTcwMDNEMUE0NSAvKiBkZnRhYmxl
cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTQx
NzIwRTAzOUUwOEI5MDA1OEJGRUIgLyogZGZ0YWJsZXMuY3BwICovOyB9OwogCQk5MzcwMTM0ODBD
QTk3RTBFMDBGQTE0RDMgLyogcGNyZV91Y3Bfc2VhcmNoZnVuY3MuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM3MDEzNDcwQ0E5N0UwRTAwRkExNEQz
IC8qIHBjcmVfdWNwX3NlYXJjaGZ1bmNzLmNwcCAqLzsgc2V0dGluZ3MgPSB7Q09NUElMRVJfRkxB
R1MgPSAiLVduby1zaWduLWNvbXBhcmUiOyB9OyB9OwogCQk5MzhDNEY2QTBDQTA2QkM3MDBEOTMx
MEEgLyogQVNDSUlDVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTM4QzRGNjkwQ0EwNkJDNzAwRDkzMTBBIC8qIEFTQ0lJQ1R5cGUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzhDNEY2QzBDQTA2
QkNFMDBEOTMxMEEgLyogRGlzYWxsb3dDVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTM4QzRGNkIwQ0EwNkJDRTAwRDkzMTBBIC8qIERpc2FsbG93
Q1R5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtMjYyLDIyICsyNTgsNiBAQAogCQkJb3V0cHV0RmlsZXMgPSAoCiAJCQkpOwogCQl9OwotCQk1
REFEOTdBODBCMzlCNzhFMDAxNEZFRkUgLyogUEJYQnVpbGRSdWxlICovID0gewotCQkJaXNhID0g
UEJYQnVpbGRSdWxlOwotCQkJY29tcGlsZXJTcGVjID0gY29tLmFwcGxlLmNvbXBpbGVycy5nY2Mu
NF8wOwotCQkJZmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmM7Ci0JCQlpc0VkaXRhYmxlID0gMTsKLQkJ
CW91dHB1dEZpbGVzID0gKAotCQkJKTsKLQkJfTsKLQkJNURBRDk3QTgwQjM5Qjg4RTAwMTRGRUZF
IC8qIFBCWEJ1aWxkUnVsZSAqLyA9IHsKLQkJCWlzYSA9IFBCWEJ1aWxkUnVsZTsKLQkJCWNvbXBp
bGVyU3BlYyA9IGNvbS5hcHBsZS5jb21waWxlcnMuZ2NjLjRfMDsKLQkJCWZpbGVUeXBlID0gc291
cmNlY29kZS5jcHA7Ci0JCQlpc0VkaXRhYmxlID0gMTsKLQkJCW91dHB1dEZpbGVzID0gKAotCQkJ
KTsKLQkJfTsKIAkJNURBRDk3QTgwQjM5Qjg4RTAwMTRGRUZGIC8qIFBCWEJ1aWxkUnVsZSAqLyA9
IHsKIAkJCWlzYSA9IFBCWEJ1aWxkUnVsZTsKIAkJCWNvbXBpbGVyU3BlYyA9IGNvbS5hcHBsZS5j
b21waWxlcnMuZ2NjLjRfMDsKQEAgLTM2NCwxMyArMzQ0LDYgQEAKIAkJCXJlbW90ZUdsb2JhbElE
U3RyaW5nID0gMTRCRDU5QkUwQTNFOEY5MDAwQkFGNTlDOwogCQkJcmVtb3RlSW5mbyA9IHRlc3Rh
cGk7CiAJCX07Ci0JCTVEMkYyMUQ3MEJERkFCMUQwMDgyQjI5NCAvKiBQQlhDb250YWluZXJJdGVt
UHJveHkgKi8gPSB7Ci0JCQlpc2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7Ci0JCQljb250YWlu
ZXJQb3J0YWwgPSAwODY3RDY5MEZFODQwMjhGQzAyQUFDMDcgLyogUHJvamVjdCBvYmplY3QgKi87
Ci0JCQlwcm94eVR5cGUgPSAxOwotCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSA5MzVGNjlGNTA4
MjQ0RkVBMDAzRDFBNDU7Ci0JCQlyZW1vdGVJbmZvID0gZGZ0YWJsZXM7Ci0JCX07CiAJCTY1RkIz
RjdEMDlEMTFFRjMwMEY0OURFQiAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi8gPSB7CiAJCQlp
c2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7CiAJCQljb250YWluZXJQb3J0YWwgPSAwODY3RDY5
MEZFODQwMjhGQzAyQUFDMDcgLyogUHJvamVjdCBvYmplY3QgKi87CkBAIC01MDYsNyArNDc5LDYg
QEAKIAkJNjUyMjQ2QTQwQzhEN0EwRTAwN0JEQUY3IC8qIEhhc2hJdGVyYXRvcnMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSGFzaEl0ZXJhdG9ycy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk2NTQwMEMwRjBBNjlCQUYyMDA1MDk4ODcgLyogUHJvcGVydHlOYW1l
QXJyYXkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByb3BlcnR5
TmFtZUFycmF5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjU0MDBDMTAwQTY5
QkFGMjAwNTA5ODg3IC8qIFByb3BlcnR5TmFtZUFycmF5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBQcm9wZXJ0eU5hbWVBcnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk2NTQxNzIwRTAzOUUwOEI5MDA1OEJGRUIgLyogZGZ0YWJsZXMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gZGZ0YWJsZXMu
Y3BwOyBwYXRoID0gcGNyZS9kZnRhYmxlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgfTsKIAkJNjU0MTcyMEYwMzlFMDhCOTAwNThCRkVCIC8qIHBjcmUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGgg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGNyZS5oOyBw
YXRoID0gcGNyZS9wY3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsg
fTsKIAkJNjU0MUJENkUwOEU4MEExNzAwMkNCRUU3IC8qIFRDUGFnZU1hcC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUQ1BhZ2VNYXAuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwogCQk2NTQxQkQ2RjA4RTgwQTE3
MDAyQ0JFRTcgLyogVENTcGluTG9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBUQ1NwaW5Mb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHRhYldpZHRoID0gODsgfTsKQEAgLTU3Nyw3ICs1NDksNiBAQAogCQk5MzNBMzQ5RDAzOEFFODBG
MDA4NjM1Q0UgLyogaWRlbnRpZmllci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGlkZW50aWZpZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCTkzNUFGNDY5MDlFOUQ5REIwMEFDRDFEOCAvKiBG
b3J3YXJkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvcndhcmQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1QUY0NkIwOUU5RDlEQjAwQUNEMUQ4IC8qIFVu
dXNlZFBhcmFtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVudXNlZFBhcmFt
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkzNUY2OUY2MDgyNDRGRUEwMDNEMUE0
NSAvKiBkZnRhYmxlcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVU
eXBlID0gImNvbXBpbGVkLm1hY2gtby5leGVjdXRhYmxlIjsgaW5jbHVkZUluSW5kZXggPSAwOyBw
YXRoID0gZGZ0YWJsZXM7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTkz
NzAxMzQ3MENBOTdFMEUwMEZBMTREMyAvKiBwY3JlX3VjcF9zZWFyY2hmdW5jcy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBwY3JlX3VjcF9zZWFyY2hmdW5jcy5jcHA7
IHBhdGggPSBwY3JlL3BjcmVfdWNwX3NlYXJjaGZ1bmNzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTM3NEQzQTcwMzhEOUQ3NDAwODYzNUNFIC8qIHNjb3BlX2NoYWluLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGgg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gc2NvcGVfY2hh
aW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwogCQk5Mzc0RDNB
ODAzOEQ5RDc0MDA4NjM1Q0UgLyogc2NvcGVfY2hhaW4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBzY29wZV9jaGFpbi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKQEAgLTY5OCwxMyArNjY5LDYgQEAK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
LQkJOTM1RjY5RjQwODI0NEZFQTAwM0QxQTQ1IC8qIEZyYW1ld29ya3MgKi8gPSB7Ci0JCQlpc2Eg
PSBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZTsKLQkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2
NDc7Ci0JCQlmaWxlcyA9ICgKLQkJCSk7Ci0JCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKLQkJfTsKIC8qIEVuZCBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9u
ICovCiAKIC8qIEJlZ2luIFBCWEdyb3VwIHNlY3Rpb24gKi8KQEAgLTczNyw3ICs3MDEsNiBAQAog
CQkJCTkzMkZDM0MyMDgyNEJCNzAwMDVCM0M3NSAvKiBSZXNvdXJjZXMgKi8sCiAJCQkJMDM0NzY4
REZGRjM4QTUwNDExREI5QzhCIC8qIFByb2R1Y3RzICovLAogCQkJCTA4NjdENjlBRkU4NDAyOEZD
MDJBQUMwNyAvKiBGcmFtZXdvcmtzICovLAotCQkJCTkzMkZDM0MxMDgyNEJCNjEwMDVCM0M3NSAv
KiBJbnRlcm1lZGlhdGVzICovLAogCQkJCTFDOTA1MTNFMEJBOUU4ODMwMDgxRTlEMCAvKiBDb25m
aWd1cmF0aW9ucyAqLywKIAkJCSk7CiAJCQluYW1lID0gSmF2YVNjcmlwdENvcmU7CkBAIC0xMDY5
LDcgKzEwMzIsNiBAQAogCQk2NTQxNzIwMzAzOUUwMUY5MDA1OEJGRUIgLyogcGNyZSAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJNjU0MTcyMEUwMzlFMDhC
OTAwNThCRkVCIC8qIGRmdGFibGVzLmNwcCAqLywKIAkJCQk2NTQxNzIwRjAzOUUwOEI5MDA1OEJG
RUIgLyogcGNyZS5oICovLAogCQkJCTkzMDc1NEJGMDhCMEY2ODAwMEFCMzA1NiAvKiBwY3JlX2Nv
bXBpbGUuY3BwICovLAogCQkJCTkzMDc1NEU5MDhCMEY3ODUwMEFCMzA1NiAvKiBwY3JlX2V4ZWMu
Y3BwICovLApAQCAtMTA4NCwxNiArMTA0Niw2IEBACiAJCQl0YWJXaWR0aCA9IDQ7CiAJCQl1c2Vz
VGFicyA9IDA7CiAJCX07Ci0JCTkzMkZDM0MxMDgyNEJCNjEwMDVCM0M3NSAvKiBJbnRlcm1lZGlh
dGVzICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCQk5MzVG
NjlGNjA4MjQ0RkVBMDAzRDFBNDUgLyogZGZ0YWJsZXMgKi8sCi0JCQkpOwotCQkJbmFtZSA9IElu
dGVybWVkaWF0ZXM7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQkJdGFiV2lkdGggPSA0
OwotCQkJdXNlc1RhYnMgPSAwOwotCQl9OwogCQk5MzJGQzNDMjA4MjRCQjcwMDA1QjNDNzUgLyog
UmVzb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAg
LTEzNzUsMjQgKzEzMjcsNiBAQAogCQkJcHJvZHVjdFJlZmVyZW5jZSA9IDkzMkY1QkUxMDgyMkEx
QzcwMDczNjk3NSAvKiB0ZXN0a2pzICovOwogCQkJcHJvZHVjdFR5cGUgPSAiY29tLmFwcGxlLnBy
b2R1Y3QtdHlwZS50b29sIjsKIAkJfTsKLQkJOTM1RjY5RjUwODI0NEZFQTAwM0QxQTQ1IC8qIGRm
dGFibGVzICovID0gewotCQkJaXNhID0gUEJYTmF0aXZlVGFyZ2V0OwotCQkJYnVpbGRDb25maWd1
cmF0aW9uTGlzdCA9IDE0OUMyNzU4MDg5MDJBRkUwMDhBOUVGQyAvKiBCdWlsZCBjb25maWd1cmF0
aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAiZGZ0YWJsZXMiICovOwotCQkJYnVpbGRQaGFz
ZXMgPSAoCi0JCQkJOTM1RjY5RjMwODI0NEZFQTAwM0QxQTQ1IC8qIFNvdXJjZXMgKi8sCi0JCQkJ
OTM1RjY5RjQwODI0NEZFQTAwM0QxQTQ1IC8qIEZyYW1ld29ya3MgKi8sCi0JCQkpOwotCQkJYnVp
bGRSdWxlcyA9ICgKLQkJCQk1REFEOTdBODBCMzlCNzhFMDAxNEZFRkUgLyogUEJYQnVpbGRSdWxl
ICovLAotCQkJCTVEQUQ5N0E4MEIzOUI4OEUwMDE0RkVGRSAvKiBQQlhCdWlsZFJ1bGUgKi8sCi0J
CQkpOwotCQkJZGVwZW5kZW5jaWVzID0gKAotCQkJKTsKLQkJCW5hbWUgPSBkZnRhYmxlczsKLQkJ
CXByb2R1Y3ROYW1lID0gZGZ0YWJsZXM7Ci0JCQlwcm9kdWN0UmVmZXJlbmNlID0gOTM1RjY5RjYw
ODI0NEZFQTAwM0QxQTQ1IC8qIGRmdGFibGVzICovOwotCQkJcHJvZHVjdFR5cGUgPSAiY29tLmFw
cGxlLnByb2R1Y3QtdHlwZS50b29sIjsKLQkJfTsKIC8qIEVuZCBQQlhOYXRpdmVUYXJnZXQgc2Vj
dGlvbiAqLwogCiAvKiBCZWdpbiBQQlhQcm9qZWN0IHNlY3Rpb24gKi8KQEAgLTE0MDksNyArMTM0
Myw2IEBACiAJCQkJOTMyRjVCRTMwODIyQTFDNzAwNzM2OTc1IC8qIEFsbCAqLywKIAkJCQk5MzJG
NUIzRTA4MjJBMUM3MDA3MzY5NzUgLyogSmF2YVNjcmlwdENvcmUgKi8sCiAJCQkJNjVGQjNGNjYw
OUQxMUU5MTAwRjQ5REVCIC8qIERlcml2ZWQgU291cmNlcyAqLywKLQkJCQk5MzVGNjlGNTA4MjQ0
RkVBMDAzRDFBNDUgLyogZGZ0YWJsZXMgKi8sCiAJCQkJMTQxMjExMUYwQTQ4NzkzQzAwNDgwMjU1
IC8qIG1pbmlkb20gKi8sCiAJCQkJMTRCRDU5QkUwQTNFOEY5MDAwQkFGNTlDIC8qIHRlc3RhcGkg
Ki8sCiAJCQkJOTMyRjVCREEwODIyQTFDNzAwNzM2OTc1IC8qIHRlc3RranMgKi8sCkBAIC0xNTg0
LDE0ICsxNTE3LDYgQEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJfTsKLQkJOTM1RjY5RjMwODI0NEZFQTAwM0QxQTQ1IC8qIFNvdXJjZXMgKi8g
PSB7Ci0JCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKLQkJCWJ1aWxkQWN0aW9uTWFzayA9
IDIxNDc0ODM2NDc7Ci0JCQlmaWxlcyA9ICgKLQkJCQk5MzVGNjlGRTA4MjQ1MDU3MDAzRDFBNDUg
LyogZGZ0YWJsZXMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkpOwotCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7Ci0JCX07CiAvKiBFbmQgUEJYU291cmNlc0J1aWxkUGhh
c2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhUYXJnZXREZXBlbmRlbmN5IHNlY3Rpb24gKi8K
QEAgLTE2MjAsMTEgKzE1NDUsNiBAQAogCQkJdGFyZ2V0ID0gMTRCRDU5QkUwQTNFOEY5MDAwQkFG
NTlDIC8qIHRlc3RhcGkgKi87CiAJCQl0YXJnZXRQcm94eSA9IDE0QkQ1OUM2MEEzRThGQTQwMEJB
RjU5QyAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87CiAJCX07Ci0JCTVEMkYyMUQ4MEJERkFC
MUQwMDgyQjI5NCAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0gewotCQkJaXNhID0gUEJYVGFy
Z2V0RGVwZW5kZW5jeTsKLQkJCXRhcmdldCA9IDkzNUY2OUY1MDgyNDRGRUEwMDNEMUE0NSAvKiBk
ZnRhYmxlcyAqLzsKLQkJCXRhcmdldFByb3h5ID0gNUQyRjIxRDcwQkRGQUIxRDAwODJCMjk0IC8q
IFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKLQkJfTsKIAkJNjVGQjNGN0UwOUQxMUVGMzAwRjQ5
REVCIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CiAJCQlpc2EgPSBQQlhUYXJnZXREZXBl
bmRlbmN5OwogCQkJdGFyZ2V0ID0gNjVGQjNGNjYwOUQxMUU5MTAwRjQ5REVCIC8qIERlcml2ZWQg
U291cmNlcyAqLzsKQEAgLTE2NjQsMjcgKzE1ODQsNiBAQAogCQkJfTsKIAkJCW5hbWUgPSBQcm9k
dWN0aW9uOwogCQl9OwotCQkxNDlDMjc1OTA4OTAyQUZFMDA4QTlFRkMgLyogRGVidWcgKi8gPSB7
Ci0JCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKLQkJCWJ1aWxkU2V0dGluZ3MgPSB7Ci0J
CQkJUFJPRFVDVF9OQU1FID0gZGZ0YWJsZXM7Ci0JCQl9OwotCQkJbmFtZSA9IERlYnVnOwotCQl9
OwotCQkxNDlDMjc1QTA4OTAyQUZFMDA4QTlFRkMgLyogUmVsZWFzZSAqLyA9IHsKLQkJCWlzYSA9
IFhDQnVpbGRDb25maWd1cmF0aW9uOwotCQkJYnVpbGRTZXR0aW5ncyA9IHsKLQkJCQlQUk9EVUNU
X05BTUUgPSBkZnRhYmxlczsKLQkJCX07Ci0JCQluYW1lID0gUmVsZWFzZTsKLQkJfTsKLQkJMTQ5
QzI3NUMwODkwMkFGRTAwOEE5RUZDIC8qIFByb2R1Y3Rpb24gKi8gPSB7Ci0JCQlpc2EgPSBYQ0J1
aWxkQ29uZmlndXJhdGlvbjsKLQkJCWJ1aWxkU2V0dGluZ3MgPSB7Ci0JCQkJUFJPRFVDVF9OQU1F
ID0gZGZ0YWJsZXM7Ci0JCQl9OwotCQkJbmFtZSA9IFByb2R1Y3Rpb247Ci0JCX07CiAJCTE0OUMy
NzVFMDg5MDJBRkUwMDhBOUVGQyAvKiBEZWJ1ZyAqLyA9IHsKIAkJCWlzYSA9IFhDQnVpbGRDb25m
aWd1cmF0aW9uOwogCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSAxQzkwNTE0MzBCQTlF
OEE3MDA4MUU5RDAgLyogSmF2YVNjcmlwdENvcmUueGNjb25maWcgKi87CkBAIC0xODM4LDE2ICsx
NzM3LDYgQEAKIAkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKIAkJCWRlZmF1
bHRDb25maWd1cmF0aW9uTmFtZSA9IFByb2R1Y3Rpb247CiAJCX07Ci0JCTE0OUMyNzU4MDg5MDJB
RkUwMDhBOUVGQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdl
dCAiZGZ0YWJsZXMiICovID0gewotCQkJaXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsKLQkJCWJ1
aWxkQ29uZmlndXJhdGlvbnMgPSAoCi0JCQkJMTQ5QzI3NTkwODkwMkFGRTAwOEE5RUZDIC8qIERl
YnVnICovLAotCQkJCTE0OUMyNzVBMDg5MDJBRkUwMDhBOUVGQyAvKiBSZWxlYXNlICovLAotCQkJ
CTE0OUMyNzVDMDg5MDJBRkUwMDhBOUVGQyAvKiBQcm9kdWN0aW9uICovLAotCQkJKTsKLQkJCWRl
ZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKLQkJCWRlZmF1bHRDb25maWd1cmF0aW9u
TmFtZSA9IFByb2R1Y3Rpb247Ci0JCX07CiAJCTE0OUMyNzVEMDg5MDJBRkUwMDhBOUVGQyAvKiBC
dWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAiSmF2YVNjcmlwdENv
cmUiICovID0gewogCQkJaXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsKIAkJCWJ1aWxkQ29uZmln
dXJhdGlvbnMgPSAoCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9wY3JlL2RmdGFibGVzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIEphdmFTY3JpcHRDb3JlL3BjcmUvZGZ0YWJsZXMJKHJldmlzaW9uIDI5MzYyKQkoZnJv
bSAuLi9Wb2x1bWVzL0RhdGEvV2ViS2l0L2h0dHA6L2Rka2lsemVyQHN2bi53ZWJraXQub3JnL3Jl
cG9zaXRvcnkvd2Via2l0L3RydW5rL0phdmFTY3JpcHRDb3JlL3BjcmUvZGZ0YWJsZXMuY3BwOjI5
MzYyKQorKysgSmF2YVNjcmlwdENvcmUvcGNyZS9kZnRhYmxlcwkod29ya2luZyBjb3B5KQpJbmRl
eDogSmF2YVNjcmlwdENvcmUvcGNyZS9kZnRhYmxlcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9wY3JlL2RmdGFibGVzCShyZXZpc2lvbiAyOTM2MikKKysrIEphdmFTY3JpcHRDb3JlL3Bj
cmUvZGZ0YWJsZXMJKHdvcmtpbmcgY29weSkKQEAgLTEsMTg0ICsxLDI2NCBAQAotLyogVGhpcyBp
cyBKYXZhU2NyaXB0Q29yZSdzIHZhcmlhbnQgb2YgdGhlIFBDUkUgbGlicmFyeS4gV2hpbGUgdGhp
cyBsaWJyYXJ5Ci1zdGFydGVkIG91dCBhcyBhIGNvcHkgb2YgUENSRSwgbWFueSBvZiB0aGUgZmVh
dHVyZXMgb2YgUENSRSBoYXZlIGJlZW4KLXJlbW92ZWQuIFRoaXMgbGlicmFyeSBub3cgc3VwcG9y
dHMgb25seSB0aGUgcmVndWxhciBleHByZXNzaW9uIGZlYXR1cmVzCi1yZXF1aXJlZCBieSB0aGUg
SmF2YVNjcmlwdCBsYW5ndWFnZSBzcGVjaWZpY2F0aW9uLCBhbmQgaGFzIG9ubHkgdGhlIGZ1bmN0
aW9ucwotbmVlZGVkIGJ5IEphdmFTY3JpcHRDb3JlIGFuZCB0aGUgcmVzdCBvZiBXZWJLaXQuCi0K
LSAgICAgICAgICAgICAgICAgT3JpZ2luYWxseSB3cml0dGVuIGJ5IFBoaWxpcCBIYXplbAotICAg
ICAgICAgICBDb3B5cmlnaHQgKGMpIDE5OTctMjAwNiBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZQot
ICAgIENvcHlyaWdodCAoQykgMjAwMiwgMjAwNCwgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1SZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLW1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUgbWV0OgotCi0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCi0gICAgICB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotCi0gICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLQotICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2Ugbm9yIHRoZSBuYW1lcyBvZiBp
dHMKLSAgICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gICAgICB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotCi1USElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIKLUFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKLUlNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCi1BUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUKLUxJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLUNPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi1TVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLUlOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi1DT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUKLVBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSovCi0KLS8qIFRoaXMgaXMgYSBmcmVlc3RhbmRpbmcgc3Vw
cG9ydCBwcm9ncmFtIHRvIGdlbmVyYXRlIGEgZmlsZSBjb250YWluaW5nCi1jaGFyYWN0ZXIgdGFi
bGVzLiBUaGUgdGFibGVzIGFyZSBidWlsdCBhY2NvcmRpbmcgdG8gdGhlIGRlZmF1bHQgQwotbG9j
YWxlLiAqLwotCi0jZGVmaW5lIERGVEFCTEVTCi0KLSNpbmNsdWRlIDxjdHlwZS5oPgotI2luY2x1
ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Cisj
IS91c3IvYmluL3BlcmwgLXcKKyMKKyMgVGhpcyBpcyBKYXZhU2NyaXB0Q29yZSdzIHZhcmlhbnQg
b2YgdGhlIFBDUkUgbGlicmFyeS4gV2hpbGUgdGhpcyBsaWJyYXJ5CisjIHN0YXJ0ZWQgb3V0IGFz
IGEgY29weSBvZiBQQ1JFLCBtYW55IG9mIHRoZSBmZWF0dXJlcyBvZiBQQ1JFIGhhdmUgYmVlbgor
IyByZW1vdmVkLiBUaGlzIGxpYnJhcnkgbm93IHN1cHBvcnRzIG9ubHkgdGhlIHJlZ3VsYXIgZXhw
cmVzc2lvbiBmZWF0dXJlcworIyByZXF1aXJlZCBieSB0aGUgSmF2YVNjcmlwdCBsYW5ndWFnZSBz
cGVjaWZpY2F0aW9uLCBhbmQgaGFzIG9ubHkgdGhlIGZ1bmN0aW9ucworIyBuZWVkZWQgYnkgSmF2
YVNjcmlwdENvcmUgYW5kIHRoZSByZXN0IG9mIFdlYktpdC4KKyMgCisjICAgICAgICAgICAgICAg
ICAgT3JpZ2luYWxseSB3cml0dGVuIGJ5IFBoaWxpcCBIYXplbAorIyAgICAgICAgICAgIENvcHly
aWdodCAoYykgMTk5Ny0yMDA2IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlCisjICBDb3B5cmlnaHQg
KEMpIDIwMDIsIDIwMDQsIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyMgCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlIG1ldDoKKyMgCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyMgICAgICAgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgCisjICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMg
CisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdl
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisjICAgICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjICAgICAgIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjIAor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTICJBUyBJUyIKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorIyBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRQorIyBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUKKyMgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUKKyMgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisjIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisKKyMgVGhpcyBpcyBhIGZyZWVzdGFuZGluZyBzdXBwb3J0IHByb2dyYW0g
dG8gZ2VuZXJhdGUgYSBmaWxlIGNvbnRhaW5pbmcKKyMgY2hhcmFjdGVyIHRhYmxlcy4gVGhlIHRh
YmxlcyBhcmUgYnVpbHQgYWNjb3JkaW5nIHRvIHRoZSBkZWZhdWx0IEMKKyMgbG9jYWxlLgorCit1
c2Ugc3RyaWN0OworCit1c2UgRmlsZTo6QmFzZW5hbWU7Cit1c2UgRmlsZTo6U3BlYzsKK3VzZSBG
aWxlOjpUZW1wOworCitzdWIgcmVhZEhlYWRlclZhbHVlcygpOworCitteSAlcGNyZV9pbnRlcm5h
bDsKKworaWYgKHNjYWxhcihAQVJHVikgIT0gMSkgeworICAgIHByaW50IFNUREVSUiAiVXNhZ2U6
ICIsIGJhc2VuYW1lKCQwKSwgIiBvdXRwdXQtZmlsZVxuIjsKKyAgICBleGl0IDE7Cit9CisKK215
ICRvdXRwdXRGaWxlID0gc2hpZnQgQEFSR1Y7CisKK3JlYWRIZWFkZXJWYWx1ZXMoKTsKKworb3Bl
bihPVVQsICI+IiwgJG91dHB1dEZpbGUpIG9yIGRpZSAiJCEiOworYmlubW9kZShPVVQpOworCitw
cmludGYoT1VUCisgICAgIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqXG4iIC4KKyAgICAiKiAgICAgIFBlcmwtQ29tcGF0aWJsZSBSZWd1bGFyIEV4cHJl
c3Npb25zICAgICAgICpcbiIgLgorICAgICIqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqL1xuXG4iIC4KKyAgICAiLyogVGhpcyBmaWxlIGlzIGF1dG9tYXRp
Y2FsbHkgd3JpdHRlbiBieSB0aGUgZGZ0YWJsZXMgYXV4aWxpYXJ5IFxuIiAuCisgICAgInByb2dy
YW0uIElmIHlvdSBlZGl0IGl0IGJ5IGhhbmQsIHlvdSBtaWdodCBsaWtlIHRvIGVkaXQgdGhlIE1h
a2VmaWxlIHRvIFxuIiAuCisgICAgInByZXZlbnQgaXRzIGV2ZXIgYmVpbmcgcmVnZW5lcmF0ZWQu
XG5cbiIpOworcHJpbnRmKE9VVAorICAgICJUaGlzIGZpbGUgY29udGFpbnMgdGhlIGRlZmF1bHQg
dGFibGVzIGZvciBjaGFyYWN0ZXJzIHdpdGggY29kZXMgbGVzcyB0aGFuXG4iIC4KKyAgICAiMTI4
IChBU0NJSSBjaGFyYWN0ZXJzKS4gVGhlc2UgdGFibGVzIGFyZSB1c2VkIHdoZW4gbm8gZXh0ZXJu
YWwgdGFibGVzIGFyZVxuIiAuCisgICAgInBhc3NlZCB0byBQQ1JFLiAqL1xuXG4iIC4KKyAgICAi
Y29uc3QgdW5zaWduZWQgY2hhciBranNfcGNyZV9kZWZhdWx0X3RhYmxlc1slZF0gPSB7XG5cbiIg
LgorICAgICIvKiBUaGlzIHRhYmxlIGlzIGEgbG93ZXIgY2FzaW5nIHRhYmxlLiAqL1xuXG4iLCAk
cGNyZV9pbnRlcm5hbHt0YWJsZXNfbGVuZ3RofSk7CisKK2lmICgkcGNyZV9pbnRlcm5hbHtsY2Nf
b2Zmc2V0fSAhPSAwKSB7CisgICAgZGllICJsY2Nfb2Zmc2V0ICE9IDAiOworfQorCitwcmludGYo
T1VUICIgICIpOworZm9yIChteSAkaSA9IDA7ICRpIDwgMTI4OyAkaSsrKSB7CisgICAgaWYgKCgk
aSAmIDcpID09IDAgJiYgJGkgIT0gMCkgeworICAgICAgICBwcmludGYoT1VUICJcbiAgIik7Cisg
ICAgfQorICAgIHByaW50ZihPVVQgIjB4JTAyWCIsIG9yZChsYyhjaHIoJGkpKSkpOworICAgIGlm
ICgkaSAhPSAxMjcpIHsKKyAgICAgICAgcHJpbnRmKE9VVCAiLCAiKTsKKyAgICB9Cit9Citwcmlu
dGYoT1VUICIsXG5cbiIpOworCitwcmludGYoT1VUICIvKiBUaGlzIHRhYmxlIGlzIGEgY2FzZSBm
bGlwcGluZyB0YWJsZS4gKi9cblxuIik7CiAKLSNpbmNsdWRlICJwY3JlX2ludGVybmFsLmgiCitp
ZiAoJHBjcmVfaW50ZXJuYWx7ZmNjX29mZnNldH0gIT0gMTI4KSB7CisgIGRpZSAiZmNjX29mZnNl
dCAhPSAxMjgiOworfQorCitwcmludGYoT1VUICIgICIpOworZm9yIChteSAkaSA9IDA7ICRpIDwg
MTI4OyAkaSsrKSB7CisgICAgaWYgKCgkaSAmIDcpID09IDAgJiYgJGkgIT0gMCkgeworICAgICAg
ICBwcmludGYoT1VUICJcbiAgIik7CisgICAgfQorICAgIG15ICRjID0gY2hyKCRpKTsKKyAgICBw
cmludGYoT1VUICIweCUwMlgiLCAkYyA9fiAvW1s6bG93ZXI6XV0vID8gb3JkKHVjKCRjKSkgOiBv
cmQobGMoJGMpKSk7CisgICAgaWYgKCRpICE9IDEyNykgeworICAgICAgICBwcmludGYoT1VUICIs
ICIpOworICAgIH0KK30KK3ByaW50ZihPVVQgIixcblxuIik7CisKK3ByaW50ZihPVVQKKyAgICAi
LyogVGhpcyB0YWJsZSBjb250YWlucyBiaXQgbWFwcyBmb3IgdmFyaW91cyBjaGFyYWN0ZXIgY2xh
c3Nlcy5cbiIgLgorICAgICJFYWNoIG1hcCBpcyAzMiBieXRlcyBsb25nIGFuZCB0aGUgYml0cyBy
dW4gZnJvbSB0aGUgbGVhc3RcbiIgLgorICAgICJzaWduaWZpY2FudCBlbmQgb2YgZWFjaCBieXRl
LiBUaGUgY2xhc3NlcyBhcmU6IHNwYWNlLCBkaWdpdCwgd29yZC4gKi9cblxuIik7CiAKLWludCBt
YWluKGludCBhcmdjLCBjaGFyICoqYXJndikKK2lmICgkcGNyZV9pbnRlcm5hbHtjYml0c19vZmZz
ZXR9ICE9ICRwY3JlX2ludGVybmFse2ZjY19vZmZzZXR9ICsgMTI4KSB7CisgICAgZGllICJjYml0
c19vZmZzZXQgIT0gZmNjX29mZnNldCArIDEyOCI7Cit9CisKK215IEBjYml0X3RhYmxlID0gKDAp
IHggJHBjcmVfaW50ZXJuYWx7Y2JpdF9sZW5ndGh9OworZm9yIChteSAkaSA9IG9yZCgnMCcpOyAk
aSA8PSBvcmQoJzknKTsgJGkrKykgeworICAgICRjYml0X3RhYmxlWyRwY3JlX2ludGVybmFse2Ni
aXRfZGlnaXR9ICsgJGkgLyA4XSB8PSAxIDw8ICgkaSAmIDcpOworfQorJGNiaXRfdGFibGVbJHBj
cmVfaW50ZXJuYWx7Y2JpdF93b3JkfSArIG9yZCgnXycpIC8gOF0gfD0gMSA8PCAob3JkKCdfJykg
JiA3KTsKK2ZvciAobXkgJGkgPSAwOyAkaSA8IDEyODsgJGkrKykgeworICAgIG15ICRjID0gY2hy
KCRpKTsKKyAgICBpZiAoJGMgPX4gL1tbOmFsbnVtOl1dLykgeworICAgICAgICAkY2JpdF90YWJs
ZVskcGNyZV9pbnRlcm5hbHtjYml0X3dvcmR9ICsgJGkgLyA4XSB8PSAxIDw8ICgkaSAmIDcpOwor
ICAgIH0KKyAgICBpZiAoJGMgPX4gL1tbOnNwYWNlOl1dLykgeworICAgICAgICAkY2JpdF90YWJs
ZVskcGNyZV9pbnRlcm5hbHtjYml0X3NwYWNlfSArICRpIC8gOF0gfD0gMSA8PCAoJGkgJiA3KTsK
KyAgICB9Cit9CisKK3ByaW50ZihPVVQgIiAgIik7Citmb3IgKG15ICRpID0gMDsgJGkgPCAkcGNy
ZV9pbnRlcm5hbHtjYml0X2xlbmd0aH07ICRpKyspIHsKKyAgICBpZiAoKCRpICYgNykgPT0gMCAm
JiAkaSAhPSAwKSB7CisgICAgICAgIGlmICgoJGkgJiAzMSkgPT0gMCkgeworICAgICAgICAgICAg
cHJpbnRmKE9VVCAiXG4iKTsKKyAgICAgICAgfQorICAgICAgICBwcmludGYoT1VUICJcbiAgIik7
CisgICAgfQorICAgIHByaW50ZihPVVQgIjB4JTAyWCIsICRjYml0X3RhYmxlWyRpXSk7CisgICAg
aWYgKCRpICE9ICRwY3JlX2ludGVybmFse2NiaXRfbGVuZ3RofSAtIDEpIHsKKyAgICAgICAgcHJp
bnRmKE9VVCAiLCAiKTsKKyAgICB9Cit9CitwcmludGYoT1VUICIsXG5cbiIpOworCitwcmludGYo
T1VUCisgICAgIi8qIFRoaXMgdGFibGUgaWRlbnRpZmllcyB2YXJpb3VzIGNsYXNzZXMgb2YgY2hh
cmFjdGVyIGJ5IGluZGl2aWR1YWwgYml0czpcbiIgLgorICAgICIgIDB4JTAyeCAgIHdoaXRlIHNw
YWNlIGNoYXJhY3RlclxuIiAuCisgICAgIiAgMHglMDJ4ICAgaGV4YWRlY2ltYWwgZGlnaXRcbiIg
LgorICAgICIgIDB4JTAyeCAgIGFscGhhbnVtZXJpYyBvciAnXydcbiovXG5cbiIsCisgICAgJHBj
cmVfaW50ZXJuYWx7Y3R5cGVfc3BhY2V9LCAkcGNyZV9pbnRlcm5hbHtjdHlwZV94ZGlnaXR9LCAk
cGNyZV9pbnRlcm5hbHtjdHlwZV93b3JkfSk7CisKK2lmICgkcGNyZV9pbnRlcm5hbHtjdHlwZXNf
b2Zmc2V0fSAhPSAkcGNyZV9pbnRlcm5hbHtjYml0c19vZmZzZXR9ICsgJHBjcmVfaW50ZXJuYWx7
Y2JpdF9sZW5ndGh9KSB7CisgICAgZGllICJjdHlwZXNfb2Zmc2V0ICE9IGNiaXRzX29mZnNldCAr
IGNiaXRfbGVuZ3RoIjsKK30KKworcHJpbnRmKE9VVCAiICAiKTsKK2ZvciAobXkgJGkgPSAwOyAk
aSA8IDEyODsgJGkrKykgeworICAgIG15ICR4ID0gMDsKKyAgICBteSAkYyA9IGNocigkaSk7Cisg
ICAgaWYgKCRjID1+IC9bWzpzcGFjZTpdXS8pIHsKKyAgICAgICAgJHggKz0gJHBjcmVfaW50ZXJu
YWx7Y3R5cGVfc3BhY2V9OworICAgIH0KKyAgICBpZiAoJGMgPX4gL1tbOnhkaWdpdDpdXS8pIHsK
KyAgICAgICAgJHggKz0gJHBjcmVfaW50ZXJuYWx7Y3R5cGVfeGRpZ2l0fTsKKyAgICB9CisgICAg
aWYgKCRjID1+IC9bWzphbG51bTpdX10vKSB7CisgICAgICAgICR4ICs9ICRwY3JlX2ludGVybmFs
e2N0eXBlX3dvcmR9OworICAgIH0KKyAgICBwcmludGYoT1VUICIweCUwMlgiLCAkeCk7CisgICAg
aWYgKCRpICE9IDEyNykgeworICAgICAgICBwcmludGYoT1VUICIsICIpOworICAgIH0gZWxzZSB7
CisgICAgICAgIHByaW50ZihPVVQgIn07Iik7CisgICAgfQorICAgIGlmICgoJGkgJiA3KSA9PSA3
KSB7CisgICAgICAgIHByaW50ZihPVVQgIiAvKiAiKTsKKyAgICAgICAgbXkgJGQgPSBjaHIoJGkg
LSA3KTsKKyAgICAgICAgaWYgKCRkID1+IC9bWzpwcmludDpdXS8pIHsKKyAgICAgICAgICAgIHBy
aW50ZihPVVQgIiAlYyAtIiwgJGkgLSA3KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
IHByaW50ZihPVVQgIiUzZC0iLCAkaSAtIDcpOworICAgICAgICB9CisgICAgICAgIGlmICgkYyA9
fiBtL1tbOnByaW50Ol1dLykgeworICAgICAgICAgICAgcHJpbnRmKE9VVCAiICVjICIsICRpKTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHByaW50ZihPVVQgIiUzZCIsICRpKTsKKyAg
ICAgICAgfQorICAgICAgICBwcmludGYoT1VUICIgKi9cbiIpOworICAgICAgICBpZiAoJGkgIT0g
MTI3KSB7CisgICAgICAgICAgICBwcmludGYoT1VUICIgICIpOworICAgICAgICB9CisgICAgfQor
fQorCitpZiAoJHBjcmVfaW50ZXJuYWx7dGFibGVzX2xlbmd0aH0gIT0gJHBjcmVfaW50ZXJuYWx7
Y3R5cGVzX29mZnNldH0gKyAxMjgpIHsKKyAgICBkaWUgInRhYmxlc19sZW5ndGggIT0gY3R5cGVz
X29mZnNldCArIDEyOCI7Cit9CisKK3ByaW50ZihPVVQgIlxuXG4vKiBFbmQgb2YgY2hhcnRhYmxl
cy5jICovXG4iKTsKKworY2xvc2UoT1VUKTsKKworZXhpdCAwOworCitzdWIgcmVhZEhlYWRlclZh
bHVlcygpCiB7Ci1pZiAoYXJnYyAhPSAyKQotICB7Ci0gIGZwcmludGYoc3RkZXJyLCAiZGZ0YWJs
ZXM6IG9uZSBmaWxlbmFtZSBhcmd1bWVudCBpcyByZXF1aXJlZFxuIik7Ci0gIHJldHVybiAxOwot
ICB9Ci0KLUZJTEUqIGYgPSBmb3Blbihhcmd2WzFdLCAid2IiKTsKLWlmIChmID09IE5VTEwpCi0g
IHsKLSAgZnByaW50ZihzdGRlcnIsICJkZnRhYmxlczogZmFpbGVkIHRvIG9wZW4gJXMgZm9yIHdy
aXRpbmdcbiIsIGFyZ3ZbMV0pOwotICByZXR1cm4gMTsKLSAgfQotCi1pbnQgaTsKLQotZnByaW50
ZihmLAotICAiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KipcbiIKLSAgIiogICAgICBQZXJsLUNvbXBhdGlibGUgUmVndWxhciBFeHByZXNzaW9ucyAgICAg
ICAqXG4iCi0gICIqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqL1xuXG4iCi0gICIvKiBUaGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSB3cml0dGVuIGJ5IHRo
ZSBkZnRhYmxlcyBhdXhpbGlhcnkgXG4iCi0gICJwcm9ncmFtLiBJZiB5b3UgZWRpdCBpdCBieSBo
YW5kLCB5b3UgbWlnaHQgbGlrZSB0byBlZGl0IHRoZSBNYWtlZmlsZSB0byBcbiIKLSAgInByZXZl
bnQgaXRzIGV2ZXIgYmVpbmcgcmVnZW5lcmF0ZWQuXG5cbiIpOwotZnByaW50ZihmLAotICAiVGhp
cyBmaWxlIGNvbnRhaW5zIHRoZSBkZWZhdWx0IHRhYmxlcyBmb3IgY2hhcmFjdGVycyB3aXRoIGNv
ZGVzIGxlc3MgdGhhblxuIgotICAiMTI4IChBU0NJSSBjaGFyYWN0ZXJzKS4gVGhlc2UgdGFibGVz
IGFyZSB1c2VkIHdoZW4gbm8gZXh0ZXJuYWwgdGFibGVzIGFyZVxuIgotICAicGFzc2VkIHRvIFBD
UkUuICovXG5cbiIKLSAgImNvbnN0IHVuc2lnbmVkIGNoYXIga2pzX3BjcmVfZGVmYXVsdF90YWJs
ZXNbJWRdID0ge1xuXG4iCi0gICIvKiBUaGlzIHRhYmxlIGlzIGEgbG93ZXIgY2FzaW5nIHRhYmxl
LiAqL1xuXG4iLCB0YWJsZXNfbGVuZ3RoKTsKLQotaWYgKGxjY19vZmZzZXQgIT0gMCkKLSAgYWJv
cnQoKTsKLQotZnByaW50ZihmLCAiICAiKTsKLWZvciAoaSA9IDA7IGkgPCAxMjg7IGkrKykKLSAg
ewotICBpZiAoKGkgJiA3KSA9PSAwICYmIGkgIT0gMCkgZnByaW50ZihmLCAiXG4gICIpOwotICBm
cHJpbnRmKGYsICIweCUwMlgiLCB0b2xvd2VyKGkpKTsKLSAgaWYgKGkgIT0gMTI3KSBmcHJpbnRm
KGYsICIsICIpOwotICB9Ci1mcHJpbnRmKGYsICIsXG5cbiIpOwotCi1mcHJpbnRmKGYsICIvKiBU
aGlzIHRhYmxlIGlzIGEgY2FzZSBmbGlwcGluZyB0YWJsZS4gKi9cblxuIik7Ci0KLWlmIChmY2Nf
b2Zmc2V0ICE9IDEyOCkKLSAgYWJvcnQoKTsKLQotZnByaW50ZihmLCAiICAiKTsKLWZvciAoaSA9
IDA7IGkgPCAxMjg7IGkrKykKLSAgewotICBpZiAoKGkgJiA3KSA9PSAwICYmIGkgIT0gMCkgZnBy
aW50ZihmLCAiXG4gICIpOwotICBmcHJpbnRmKGYsICIweCUwMlgiLCBpc2xvd2VyKGkpID8gdG91
cHBlcihpKSA6IHRvbG93ZXIoaSkpOwotICBpZiAoaSAhPSAxMjcpIGZwcmludGYoZiwgIiwgIik7
Ci0gIH0KLWZwcmludGYoZiwgIixcblxuIik7Ci0KLWZwcmludGYoZiwKLSAgIi8qIFRoaXMgdGFi
bGUgY29udGFpbnMgYml0IG1hcHMgZm9yIHZhcmlvdXMgY2hhcmFjdGVyIGNsYXNzZXMuXG4iCi0g
ICJFYWNoIG1hcCBpcyAzMiBieXRlcyBsb25nIGFuZCB0aGUgYml0cyBydW4gZnJvbSB0aGUgbGVh
c3RcbiIKLSAgInNpZ25pZmljYW50IGVuZCBvZiBlYWNoIGJ5dGUuIFRoZSBjbGFzc2VzIGFyZTog
c3BhY2UsIGRpZ2l0LCB3b3JkLiAqL1xuXG4iKTsKLQotaWYgKGNiaXRzX29mZnNldCAhPSBmY2Nf
b2Zmc2V0ICsgMTI4KQotICBhYm9ydCgpOwotCi11bnNpZ25lZCBjaGFyIGNiaXRfdGFibGVbY2Jp
dF9sZW5ndGhdOwotbWVtc2V0KGNiaXRfdGFibGUsIDAsIGNiaXRfbGVuZ3RoKTsKLWZvciAoaSA9
ICcwJzsgaSA8PSAnOSc7IGkrKykKLSAgY2JpdF90YWJsZVtjYml0X2RpZ2l0ICsgaSAvIDhdIHw9
IDEgPDwgKGkgJiA3KTsKLWNiaXRfdGFibGVbY2JpdF93b3JkICsgJ18nIC8gOF0gfD0gMSA8PCAo
J18nICYgNyk7Ci1mb3IgKGkgPSAwOyBpIDwgMTI4OyBpKyspCi0gIHsKLSAgaWYgKGlzYWxudW0o
aSkpIGNiaXRfdGFibGVbY2JpdF93b3JkICsgaS84XSB8PSAxIDw8IChpICYgNyk7Ci0gIGlmIChp
c3NwYWNlKGkpKSBjYml0X3RhYmxlW2NiaXRfc3BhY2UgKyBpLzhdIHw9IDEgPDwgKGkgJiA3KTsK
LSAgfQotCi1mcHJpbnRmKGYsICIgICIpOwotZm9yIChpID0gMDsgaSA8IGNiaXRfbGVuZ3RoOyBp
KyspCi0gIHsKLSAgaWYgKChpICYgNykgPT0gMCAmJiBpICE9IDApCi0gICAgewotICAgIGlmICgo
aSAmIDMxKSA9PSAwKSBmcHJpbnRmKGYsICJcbiIpOwotICAgIGZwcmludGYoZiwgIlxuICAiKTsK
LSAgICB9Ci0gIGZwcmludGYoZiwgIjB4JTAyWCIsIGNiaXRfdGFibGVbaV0pOwotICBpZiAoaSAh
PSBjYml0X2xlbmd0aCAtIDEpIGZwcmludGYoZiwgIiwgIik7Ci0gIH0KLWZwcmludGYoZiwgIixc
blxuIik7Ci0KLWZwcmludGYoZiwKLSAgIi8qIFRoaXMgdGFibGUgaWRlbnRpZmllcyB2YXJpb3Vz
IGNsYXNzZXMgb2YgY2hhcmFjdGVyIGJ5IGluZGl2aWR1YWwgYml0czpcbiIKLSAgIiAgMHglMDJ4
ICAgd2hpdGUgc3BhY2UgY2hhcmFjdGVyXG4iCi0gICIgIDB4JTAyeCAgIGhleGFkZWNpbWFsIGRp
Z2l0XG4iCi0gICIgIDB4JTAyeCAgIGFscGhhbnVtZXJpYyBvciAnXydcbiovXG5cbiIsCi0gIGN0
eXBlX3NwYWNlLCBjdHlwZV94ZGlnaXQsIGN0eXBlX3dvcmQpOwotCi1pZiAoY3R5cGVzX29mZnNl
dCAhPSBjYml0c19vZmZzZXQgKyBjYml0X2xlbmd0aCkKLSAgICBhYm9ydCgpOwotCi1mcHJpbnRm
KGYsICIgICIpOwotZm9yIChpID0gMDsgaSA8IDEyODsgaSsrKQotICB7Ci0gIGludCB4ID0gMDsK
LSAgaWYgKGlzc3BhY2UoaSkpIHggKz0gY3R5cGVfc3BhY2U7Ci0gIGlmIChpc3hkaWdpdChpKSkg
eCArPSBjdHlwZV94ZGlnaXQ7Ci0gIGlmIChpc2FsbnVtKGkpIHx8IGkgPT0gJ18nKSB4ICs9IGN0
eXBlX3dvcmQ7Ci0gIGZwcmludGYoZiwgIjB4JTAyWCIsIHgpOwotICBpZiAoaSAhPSAxMjcpCi0g
ICAgZnByaW50ZihmLCAiLCAiKTsKLSAgZWxzZQotICAgIGZwcmludGYoZiwgIn07Iik7Ci0gIGlm
ICgoaSAmIDcpID09IDcpCi0gICAgewotICAgIGZwcmludGYoZiwgIiAvKiAiKTsKLSAgICBpZiAo
aXNwcmludChpIC0gNykpIGZwcmludGYoZiwgIiAlYyAtIiwgaSAtIDcpOwotICAgICAgZWxzZSBm
cHJpbnRmKGYsICIlM2QtIiwgaSAtIDcpOwotICAgIGlmIChpc3ByaW50KGkpKSBmcHJpbnRmKGYs
ICIgJWMgIiwgaSk7Ci0gICAgICBlbHNlIGZwcmludGYoZiwgIiUzZCIsIGkpOwotICAgIGZwcmlu
dGYoZiwgIiAqL1xuIik7Ci0gICAgaWYgKGkgIT0gMTI3KQotICAgICAgZnByaW50ZihmLCAiICAi
KTsKLSAgICB9Ci0gIH0KKyAgICBteSBAdmFyaWFibGVzID0gcXcoCisgICAgICAgIGNiaXRfZGln
aXQKKyAgICAgICAgY2JpdF9sZW5ndGgKKyAgICAgICAgY2JpdF9zcGFjZQorICAgICAgICBjYml0
X3dvcmQKKyAgICAgICAgY2JpdHNfb2Zmc2V0CisgICAgICAgIGN0eXBlX3NwYWNlCisgICAgICAg
IGN0eXBlX3dvcmQKKyAgICAgICAgY3R5cGVfeGRpZ2l0CisgICAgICAgIGN0eXBlc19vZmZzZXQK
KyAgICAgICAgZmNjX29mZnNldAorICAgICAgICBsY2Nfb2Zmc2V0CisgICAgICAgIHRhYmxlc19s
ZW5ndGgKKyAgICApOworCisgICAgbG9jYWwgJC8gPSB1bmRlZjsKKworICAgIG15ICRoZWFkZXJQ
YXRoID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZShkaXJuYW1lKCQwKSwgInBjcmVfaW50ZXJuYWwuaCIp
OworCisgICAgbXkgJGZoID0gbmV3IEZpbGU6OlRlbXAoCisgICAgICAgIERJUiA9PiAoJEVOVnsn
VE1QRElSJ30gfHwgIi90bXAiKSwKKyAgICAgICAgU1VGRklYID0+ICIuaW4iLAorICAgICAgICBU
RU1QTEFURSA9PiBiYXNlbmFtZSgkMCkgLiAiLVhYWFhYWFhYIiwKKyAgICAgICAgVU5MSU5LID0+
IDAsCisgICAgKTsKKyAgICBteSAkdGVtcEZpbGUgPSAkZmgtPmZpbGVuYW1lKCk7CisKKyAgICBw
cmludCAkZmggIiNkZWZpbmUgREZUQUJMRVNcblxuIjsKKworICAgIG9wZW4oSEVBREVSLCAiPCIs
ICRoZWFkZXJQYXRoKSBvciBkaWUgIiQhIjsKKyAgICBwcmludCAkZmggPEhFQURFUj47CisgICAg
Y2xvc2UoSEVBREVSKTsKKworICAgIHByaW50ICRmaCAiXG5cbiI7CisKKyAgICBmb3IgbXkgJHYg
KEB2YXJpYWJsZXMpIHsKKyAgICAgICAgcHJpbnQgJGZoICJcJHBjcmVfaW50ZXJuYWx7XCIkdlwi
fSA9ICR2O1xuIjsKKyAgICB9CiAKLWlmICh0YWJsZXNfbGVuZ3RoICE9IGN0eXBlc19vZmZzZXQg
KyAxMjgpCi0gICAgYWJvcnQoKTsKKyAgICBjbG9zZSgkZmgpOwogCi1mcHJpbnRmKGYsICJcblxu
LyogRW5kIG9mIGNoYXJ0YWJsZXMuYyAqL1xuIik7CisgICAgb3BlbihDUFAsICItfCIsICJjcHAi
LCAkdGVtcEZpbGUpIG9yIGRpZSAiJCEiOworICAgIG15ICRjb250ZW50ID0gPENQUD47CisgICAg
Y2xvc2UoQ1BQKTsKIAotZmNsb3NlKGYpOwotcmV0dXJuIDA7CisgICAgZXZhbCAkY29udGVudDsK
KyAgICBkaWUgIiRAIiBpZiAkQDsKIH0KSW5kZXg6IEphdmFTY3JpcHRDb3JlL3BjcmUvZGZ0YWJs
ZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3BjcmUvZGZ0YWJsZXMuY3BwCShy
ZXZpc2lvbiAyOTM2MikKKysrIEphdmFTY3JpcHRDb3JlL3BjcmUvZGZ0YWJsZXMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDE4NCArMCwwIEBACi0vKiBUaGlzIGlzIEphdmFTY3JpcHRDb3JlJ3Mg
dmFyaWFudCBvZiB0aGUgUENSRSBsaWJyYXJ5LiBXaGlsZSB0aGlzIGxpYnJhcnkKLXN0YXJ0ZWQg
b3V0IGFzIGEgY29weSBvZiBQQ1JFLCBtYW55IG9mIHRoZSBmZWF0dXJlcyBvZiBQQ1JFIGhhdmUg
YmVlbgotcmVtb3ZlZC4gVGhpcyBsaWJyYXJ5IG5vdyBzdXBwb3J0cyBvbmx5IHRoZSByZWd1bGFy
IGV4cHJlc3Npb24gZmVhdHVyZXMKLXJlcXVpcmVkIGJ5IHRoZSBKYXZhU2NyaXB0IGxhbmd1YWdl
IHNwZWNpZmljYXRpb24sIGFuZCBoYXMgb25seSB0aGUgZnVuY3Rpb25zCi1uZWVkZWQgYnkgSmF2
YVNjcmlwdENvcmUgYW5kIHRoZSByZXN0IG9mIFdlYktpdC4KLQotICAgICAgICAgICAgICAgICBP
cmlnaW5hbGx5IHdyaXR0ZW4gYnkgUGhpbGlwIEhhemVsCi0gICAgICAgICAgIENvcHlyaWdodCAo
YykgMTk5Ny0yMDA2IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlCi0gICAgQ29weXJpZ2h0IChDKSAy
MDAyLCAyMDA0LCAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLQot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Ci0KLSAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0IG5vdGljZSwKLSAgICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotCi0gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2
ZXJzaXR5IG9mIENhbWJyaWRnZSBub3IgdGhlIG5hbWVzIG9mIGl0cwotICAgICAgY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KLSAgICAgIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCi0KLVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIgotQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UKLUFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRQotTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLVNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLUNPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi1BUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRQotUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotKi8KLQotLyogVGhpcyBpcyBhIGZyZWVzdGFuZGluZyBzdXBwb3J0IHByb2dyYW0gdG8gZ2Vu
ZXJhdGUgYSBmaWxlIGNvbnRhaW5pbmcKLWNoYXJhY3RlciB0YWJsZXMuIFRoZSB0YWJsZXMgYXJl
IGJ1aWx0IGFjY29yZGluZyB0byB0aGUgZGVmYXVsdCBDCi1sb2NhbGUuICovCi0KLSNkZWZpbmUg
REZUQUJMRVMKLQotI2luY2x1ZGUgPGN0eXBlLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNs
dWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLQotI2luY2x1ZGUgInBjcmVfaW50
ZXJuYWwuaCIKLQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQotewotaWYgKGFyZ2Mg
IT0gMikKLSAgewotICBmcHJpbnRmKHN0ZGVyciwgImRmdGFibGVzOiBvbmUgZmlsZW5hbWUgYXJn
dW1lbnQgaXMgcmVxdWlyZWRcbiIpOwotICByZXR1cm4gMTsKLSAgfQotCi1GSUxFKiBmID0gZm9w
ZW4oYXJndlsxXSwgIndiIik7Ci1pZiAoZiA9PSBOVUxMKQotICB7Ci0gIGZwcmludGYoc3RkZXJy
LCAiZGZ0YWJsZXM6IGZhaWxlZCB0byBvcGVuICVzIGZvciB3cml0aW5nXG4iLCBhcmd2WzFdKTsK
LSAgcmV0dXJuIDE7Ci0gIH0KLQotaW50IGk7Ci0KLWZwcmludGYoZiwKLSAgIi8qKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4iCi0gICIqICAgICAgUGVy
bC1Db21wYXRpYmxlIFJlZ3VsYXIgRXhwcmVzc2lvbnMgICAgICAgKlxuIgotICAiKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuIgotICAiLyogVGhp
cyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgd3JpdHRlbiBieSB0aGUgZGZ0YWJsZXMgYXV4aWxpYXJ5
IFxuIgotICAicHJvZ3JhbS4gSWYgeW91IGVkaXQgaXQgYnkgaGFuZCwgeW91IG1pZ2h0IGxpa2Ug
dG8gZWRpdCB0aGUgTWFrZWZpbGUgdG8gXG4iCi0gICJwcmV2ZW50IGl0cyBldmVyIGJlaW5nIHJl
Z2VuZXJhdGVkLlxuXG4iKTsKLWZwcmludGYoZiwKLSAgIlRoaXMgZmlsZSBjb250YWlucyB0aGUg
ZGVmYXVsdCB0YWJsZXMgZm9yIGNoYXJhY3RlcnMgd2l0aCBjb2RlcyBsZXNzIHRoYW5cbiIKLSAg
IjEyOCAoQVNDSUkgY2hhcmFjdGVycykuIFRoZXNlIHRhYmxlcyBhcmUgdXNlZCB3aGVuIG5vIGV4
dGVybmFsIHRhYmxlcyBhcmVcbiIKLSAgInBhc3NlZCB0byBQQ1JFLiAqL1xuXG4iCi0gICJjb25z
dCB1bnNpZ25lZCBjaGFyIGtqc19wY3JlX2RlZmF1bHRfdGFibGVzWyVkXSA9IHtcblxuIgotICAi
LyogVGhpcyB0YWJsZSBpcyBhIGxvd2VyIGNhc2luZyB0YWJsZS4gKi9cblxuIiwgdGFibGVzX2xl
bmd0aCk7Ci0KLWlmIChsY2Nfb2Zmc2V0ICE9IDApCi0gIGFib3J0KCk7Ci0KLWZwcmludGYoZiwg
IiAgIik7Ci1mb3IgKGkgPSAwOyBpIDwgMTI4OyBpKyspCi0gIHsKLSAgaWYgKChpICYgNykgPT0g
MCAmJiBpICE9IDApIGZwcmludGYoZiwgIlxuICAiKTsKLSAgZnByaW50ZihmLCAiMHglMDJYIiwg
dG9sb3dlcihpKSk7Ci0gIGlmIChpICE9IDEyNykgZnByaW50ZihmLCAiLCAiKTsKLSAgfQotZnBy
aW50ZihmLCAiLFxuXG4iKTsKLQotZnByaW50ZihmLCAiLyogVGhpcyB0YWJsZSBpcyBhIGNhc2Ug
ZmxpcHBpbmcgdGFibGUuICovXG5cbiIpOwotCi1pZiAoZmNjX29mZnNldCAhPSAxMjgpCi0gIGFi
b3J0KCk7Ci0KLWZwcmludGYoZiwgIiAgIik7Ci1mb3IgKGkgPSAwOyBpIDwgMTI4OyBpKyspCi0g
IHsKLSAgaWYgKChpICYgNykgPT0gMCAmJiBpICE9IDApIGZwcmludGYoZiwgIlxuICAiKTsKLSAg
ZnByaW50ZihmLCAiMHglMDJYIiwgaXNsb3dlcihpKSA/IHRvdXBwZXIoaSkgOiB0b2xvd2VyKGkp
KTsKLSAgaWYgKGkgIT0gMTI3KSBmcHJpbnRmKGYsICIsICIpOwotICB9Ci1mcHJpbnRmKGYsICIs
XG5cbiIpOwotCi1mcHJpbnRmKGYsCi0gICIvKiBUaGlzIHRhYmxlIGNvbnRhaW5zIGJpdCBtYXBz
IGZvciB2YXJpb3VzIGNoYXJhY3RlciBjbGFzc2VzLlxuIgotICAiRWFjaCBtYXAgaXMgMzIgYnl0
ZXMgbG9uZyBhbmQgdGhlIGJpdHMgcnVuIGZyb20gdGhlIGxlYXN0XG4iCi0gICJzaWduaWZpY2Fu
dCBlbmQgb2YgZWFjaCBieXRlLiBUaGUgY2xhc3NlcyBhcmU6IHNwYWNlLCBkaWdpdCwgd29yZC4g
Ki9cblxuIik7Ci0KLWlmIChjYml0c19vZmZzZXQgIT0gZmNjX29mZnNldCArIDEyOCkKLSAgYWJv
cnQoKTsKLQotdW5zaWduZWQgY2hhciBjYml0X3RhYmxlW2NiaXRfbGVuZ3RoXTsKLW1lbXNldChj
Yml0X3RhYmxlLCAwLCBjYml0X2xlbmd0aCk7Ci1mb3IgKGkgPSAnMCc7IGkgPD0gJzknOyBpKysp
Ci0gIGNiaXRfdGFibGVbY2JpdF9kaWdpdCArIGkgLyA4XSB8PSAxIDw8IChpICYgNyk7Ci1jYml0
X3RhYmxlW2NiaXRfd29yZCArICdfJyAvIDhdIHw9IDEgPDwgKCdfJyAmIDcpOwotZm9yIChpID0g
MDsgaSA8IDEyODsgaSsrKQotICB7Ci0gIGlmIChpc2FsbnVtKGkpKSBjYml0X3RhYmxlW2NiaXRf
d29yZCArIGkvOF0gfD0gMSA8PCAoaSAmIDcpOwotICBpZiAoaXNzcGFjZShpKSkgY2JpdF90YWJs
ZVtjYml0X3NwYWNlICsgaS84XSB8PSAxIDw8IChpICYgNyk7Ci0gIH0KLQotZnByaW50ZihmLCAi
ICAiKTsKLWZvciAoaSA9IDA7IGkgPCBjYml0X2xlbmd0aDsgaSsrKQotICB7Ci0gIGlmICgoaSAm
IDcpID09IDAgJiYgaSAhPSAwKQotICAgIHsKLSAgICBpZiAoKGkgJiAzMSkgPT0gMCkgZnByaW50
ZihmLCAiXG4iKTsKLSAgICBmcHJpbnRmKGYsICJcbiAgIik7Ci0gICAgfQotICBmcHJpbnRmKGYs
ICIweCUwMlgiLCBjYml0X3RhYmxlW2ldKTsKLSAgaWYgKGkgIT0gY2JpdF9sZW5ndGggLSAxKSBm
cHJpbnRmKGYsICIsICIpOwotICB9Ci1mcHJpbnRmKGYsICIsXG5cbiIpOwotCi1mcHJpbnRmKGYs
Ci0gICIvKiBUaGlzIHRhYmxlIGlkZW50aWZpZXMgdmFyaW91cyBjbGFzc2VzIG9mIGNoYXJhY3Rl
ciBieSBpbmRpdmlkdWFsIGJpdHM6XG4iCi0gICIgIDB4JTAyeCAgIHdoaXRlIHNwYWNlIGNoYXJh
Y3RlclxuIgotICAiICAweCUwMnggICBoZXhhZGVjaW1hbCBkaWdpdFxuIgotICAiICAweCUwMngg
ICBhbHBoYW51bWVyaWMgb3IgJ18nXG4qL1xuXG4iLAotICBjdHlwZV9zcGFjZSwgY3R5cGVfeGRp
Z2l0LCBjdHlwZV93b3JkKTsKLQotaWYgKGN0eXBlc19vZmZzZXQgIT0gY2JpdHNfb2Zmc2V0ICsg
Y2JpdF9sZW5ndGgpCi0gICAgYWJvcnQoKTsKLQotZnByaW50ZihmLCAiICAiKTsKLWZvciAoaSA9
IDA7IGkgPCAxMjg7IGkrKykKLSAgewotICBpbnQgeCA9IDA7Ci0gIGlmIChpc3NwYWNlKGkpKSB4
ICs9IGN0eXBlX3NwYWNlOwotICBpZiAoaXN4ZGlnaXQoaSkpIHggKz0gY3R5cGVfeGRpZ2l0Owot
ICBpZiAoaXNhbG51bShpKSB8fCBpID09ICdfJykgeCArPSBjdHlwZV93b3JkOwotICBmcHJpbnRm
KGYsICIweCUwMlgiLCB4KTsKLSAgaWYgKGkgIT0gMTI3KQotICAgIGZwcmludGYoZiwgIiwgIik7
Ci0gIGVsc2UKLSAgICBmcHJpbnRmKGYsICJ9OyIpOwotICBpZiAoKGkgJiA3KSA9PSA3KQotICAg
IHsKLSAgICBmcHJpbnRmKGYsICIgLyogIik7Ci0gICAgaWYgKGlzcHJpbnQoaSAtIDcpKSBmcHJp
bnRmKGYsICIgJWMgLSIsIGkgLSA3KTsKLSAgICAgIGVsc2UgZnByaW50ZihmLCAiJTNkLSIsIGkg
LSA3KTsKLSAgICBpZiAoaXNwcmludChpKSkgZnByaW50ZihmLCAiICVjICIsIGkpOwotICAgICAg
ZWxzZSBmcHJpbnRmKGYsICIlM2QiLCBpKTsKLSAgICBmcHJpbnRmKGYsICIgKi9cbiIpOwotICAg
IGlmIChpICE9IDEyNykKLSAgICAgIGZwcmludGYoZiwgIiAgIik7Ci0gICAgfQotICB9Ci0KLWlm
ICh0YWJsZXNfbGVuZ3RoICE9IGN0eXBlc19vZmZzZXQgKyAxMjgpCi0gICAgYWJvcnQoKTsKLQot
ZnByaW50ZihmLCAiXG5cbi8qIEVuZCBvZiBjaGFydGFibGVzLmMgKi9cbiIpOwotCi1mY2xvc2Uo
Zik7Ci1yZXR1cm4gMDsKLX0KSW5kZXg6IEphdmFTY3JpcHRDb3JlL3BjcmUvZGZ0YWJsZXMucHJv
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3BjcmUvZGZ0YWJsZXMucHJvCShyZXZpc2lv
biAyOTM2MikKKysrIEphdmFTY3JpcHRDb3JlL3BjcmUvZGZ0YWJsZXMucHJvCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDEyICswLDAgQEAKLVRFTVBMQVRFID0gYXBwCi1DT05GSUcgKz0gY29uc29sZQot
Q09ORklHIC09IGFwcF9idW5kbGUgcXQKLVNPVVJDRVMgPSBkZnRhYmxlcy5jcHAKLVRBUkdFVCA9
IGRmdGFibGVzCi1ERVNURElSID0gdG1wCi0KLWd0ay1wb3J0IHsKLSAgREVGSU5FUyArPSBCVUlM
RElOR19HVEtfXyBCVUlMRElOR19DQUlST19fCi19IGVsc2UgewotICBERUZJTkVTICs9IEJVSUxE
SU5HX1FUX18KLX0KSW5kZXg6IEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZS5wcmkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlLnByaQkocmV2aXNpb24gMjkzNjIpCisrKyBK
YXZhU2NyaXB0Q29yZS9wY3JlL3BjcmUucHJpCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw5ICsxMiw2
IEBAIFNPVVJDRVMgKz0gXAogICAgIHBjcmVfdWNwX3NlYXJjaGZ1bmNzLmNwcCBcCiAgICAgcGNy
ZV94Y2xhc3MuY3BwCiAKLUNUR0VORklMRSArPSBcCi0gICAgZGZ0YWJsZXMuY3BwCi0KICFDT05G
SUcoUVRESVJfYnVpbGQpIHsKICAgICBkZWZpbmVUZXN0KGFkZEV4dHJhQ29tcGlsZXIpIHsKICAg
ICAgICAgUU1BS0VfRVhUUkFfQ09NUElMRVJTICs9ICQkMQpAQCAtMjcsOCArMjQsNyBAQCBDVEdF
TkZJTEUgKz0gXAogCiAjIEdFTkVSQVRPUjogImNoYXJ0YWJsZXMuYyI6IGNvbXBpbGUgYW5kIGV4
ZWN1dGUgdGhlIGNoYXJ0YWJsZXMgZ2VuZXJhdG9yIChhbmQgYWRkIGl0IHRvIHNvdXJjZXMpCiBj
dGdlbi5vdXRwdXQgPSAkJEdFTkVSQVRFRF9TT1VSQ0VTX0RJUi9jaGFydGFibGVzLmMKLWN0Z2Vu
LmNvbW1hbmRzID0gJCRPVVRQVVRfRElSL0phdmFTY3JpcHRDb3JlL3BjcmUvdG1wL2RmdGFibGVz
ICR7UU1BS0VfRklMRV9PVVR9Ci1jdGdlbi5pbnB1dCA9IENUR0VORklMRQorY3RnZW4uY29tbWFu
ZHMgPSBkZnRhYmxlcyAke1FNQUtFX0ZJTEVfT1VUfQogY3RnZW4uQ09ORklHICs9IHRhcmdldF9w
cmVkZXBzIG5vX2xpbmsKIGN0Z2VuLnZhcmlhYmxlX291dCA9IEdFTkVSQVRFRF9TT1VSQ0VTCiBj
dGdlbi5kZXBlbmRlbmN5X3R5cGUgPSBUWVBFX0MK
</data>
<flag name="review"
          id="8027"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>18381</attachid>
            <date>2008-01-10 15:30:40 -0800</date>
            <delta_ts>2008-01-10 15:30:40 -0800</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-16818-v2.diff</filename>
            <type>text/plain</type>
            <size>48552</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI5Mzc0KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzMgQEAKKzIwMDgtMDEtMTAgIERhdmlkIEtp
bHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KKworICAgICAgICBkZnRhYmxlcyBzaG91bGQgYmUg
cmV3cml0dGVuIGFzIGEgc2NyaXB0CisKKyAgICAgICAgPGh0dHA6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2ODE4PgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTY4MTQ2Mz4K
KworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbi4KKworICAgICAgICBSZXdyb3RlIHRoZSBkZnRh
YmxlcyB1dGlsaXR5IGluIFBlcmwuICBBdHRlbXB0ZWQgdG8gc3dpdGNoIGFsbAorICAgICAgICBi
dWlsZCBzeXN0ZW1zIHRvIGNhbGwgdGhlIHNjcmlwdCBkaXJlY3RseSBpbnN0ZWFkIG9mIGJ1aWxk
aW5nCisgICAgICAgIGEgYmluYXJ5IGZpcnN0LiAgT25seSB0aGUgWGNvZGUgYnVpbGQgd2FzIGFi
bGUgdG8gYmUgdGVzdGVkLgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZTogQWRkZWQg
cGNyZSBkaXJlY3RvcnkgdG8gVlBBVEggYW5kIGNoYW5nZWQKKyAgICAgICAgdG8gaW52b2tlIGRm
dGFibGVzIGRpcmVjdGx5LgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBSZW1vdmVkIGJ1aWxk
IGluZm9ybWF0aW9uIGFuZCBjaGFuZ2VkIHRvIGludm9rZQorICAgICAgICBkZnRhYmxlcyBkaXJl
Y3RseS4KKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUuc2xu
OiBSZW1vdmVkIHJlZmVyZW5jZSB0bworICAgICAgICBkZnRhYmxlcyBwcm9qZWN0LgorICAgICAg
ICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZVN1Ym1pdC5zbG46IERpdHRv
LgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai9kZnRhYmxlczogUmVtb3ZlZC4KKyAg
ICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3Byb2ovZGZ0YWJsZXMvZGZ0YWJsZXMudmNwcm9qOiBS
ZW1vdmVkLgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6IFJlbW92ZWQgZGZ0YWJsZXMgdGFyZ2V0LgorICAgICAgICAqIGpzY29yZS5ia2w6IFJlbW92
ZWQgZGZ0YWJsZXMgZXhlY3V0YWJsZSBkZWZpbml0aW9uLgorICAgICAgICAqIHBjcmUvZGZ0YWJs
ZXM6IENvcGllZCBmcm9tIEphdmFTY3JpcHRDb3JlL3BjcmUvZGZ0YWJsZXMuY3BwLgorICAgICAg
ICAqIHBjcmUvZGZ0YWJsZXMuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBjcmUvZGZ0YWJsZXMu
cHJvOiBSZW1vdmVkLgorICAgICAgICAqIHBjcmUvcGNyZS5wcmk6IFJlbW92ZWQgcmVmZXJlbmNl
cyB0byBkZnRhYmxlcy5jcHAgYW5kIGNoYW5nZWQgdG8KKyAgICAgICAgaW52b2tlIGRmdGFibGVz
IGRpcmVjdGx5LgorCiAyMDA4LTAxLTEwICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBKYXZhU2NyaXB0Q29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDI5MzYyKQorKysgSmF2YVNjcmlwdENvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogCiBWUEFUSCA9
IFwKICAgICAkKEphdmFTY3JpcHRDb3JlKS9ranMgXAorICAgICQoSmF2YVNjcmlwdENvcmUpL3Bj
cmUgXAogIwogCiAuUEhPTlkgOiBhbGwKQEAgLTYwLDUgKzYxLDUgQEAgZ3JhbW1hci5jcHA6IGdy
YW1tYXIueQogCiAjIGNoYXJhY3RlciB0YWJsZXMgZm9yIFBDUkUKIAotY2hhcnRhYmxlcy5jIDog
JChCVUlMVF9QUk9EVUNUU19ESVIpL2RmdGFibGVzJChERlRBQkxFU19FWFRFTlNJT04pCitjaGFy
dGFibGVzLmMgOiBkZnRhYmxlcwogCSReICRACkluZGV4OiBKYXZhU2NyaXB0Q29yZS9HTlVtYWtl
ZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5hbQkocmV2
aXNpb24gMjkzNjIpCisrKyBKYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBj
b3B5KQpAQCAtMTM0LDE3ICsxMzQsMTMgQEAgRGVyaXZlZFNvdXJjZXMvbGV4ZXIubHV0Lmg6ICQo
Q1JFQVRFX0hBUwogJV9vYmplY3QubHV0Lmg6ICQoQ1JFQVRFX0hBU0hfVEFCTEUpICVfb2JqZWN0
LmNwcAogCSReIC1pID4gJEAKIAotSmF2YVNjcmlwdENvcmUvcGNyZS9jaGFydGFibGVzLmM6ICQo
dG9wX2J1aWxkZGlyKS9Qcm9ncmFtcy9kZnRhYmxlcyQoRVhFRVhUKQotCS4vUHJvZ3JhbXMvZGZ0
YWJsZXMgJEAKK0phdmFTY3JpcHRDb3JlL3BjcmUvY2hhcnRhYmxlcy5jOiAKKwkkKHNyY2Rpcikv
SmF2YVNjcmlwdENvcmUvcGNyZS9kZnRhYmxlcyAkQAogCiBub2luc3RfUFJPR1JBTVMgKz0gXAot
CVByb2dyYW1zL2RmdGFibGVzIFwKIAlQcm9ncmFtcy9taW5pZG9tIFwKIAlQcm9ncmFtcy90ZXN0
a2pzCiAKLSMgZGZ0YWJsZXMKLVByb2dyYW1zX2RmdGFibGVzX1NPVVJDRVMgPSBKYXZhU2NyaXB0
Q29yZS9wY3JlL2RmdGFibGVzLmNwcAotCiAjIG1pbmlkb20KIFByb2dyYW1zX21pbmlkb21fU09V
UkNFUyA9IFwKIAlKYXZhU2NyaXB0Q29yZS9BUEkvSlNOb2RlLmMgXApJbmRleDogSmF2YVNjcmlw
dENvcmUvanNjb3JlLmJrbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9qc2NvcmUuYmts
CShyZXZpc2lvbiAyOTM2MikKKysrIEphdmFTY3JpcHRDb3JlL2pzY29yZS5ia2wJKHdvcmtpbmcg
Y29weSkKQEAgLTEwMywxMiArMTAzLDYgQEAgSmF2YVNjcmlwdENvcmUgQmFrZWZpbGUgcHJvamVj
dCBmaWxlLgogICAgICAgICAKICAgICA8L2V4ZT4KIAotICAgIDxleGUgaWQ9ImRmdGFibGVzIj4K
LSAgICAgICAgPGRpcm5hbWU+JChTUkNESVIpPC9kaXJuYW1lPgotICAgICAgICA8aW5jbHVkZT4k
KFNSQ0RJUikvd3RmPC9pbmNsdWRlPgotICAgICAgICA8c291cmNlcz4kKFNSQ0RJUikvcGNyZS9k
ZnRhYmxlcy5jcHA8L3NvdXJjZXM+Ci0gICAgPC9leGU+Ci0KICAgICA8YWN0aW9uIGlkPSJEZXJp
dmVkU291cmNlcyI+CiAgICAgICAgIDxpcy1waG9ueSAvPgogICAgICAgICA8Y29tbWFuZD5iYXNo
IG1ha2UtZ2VuZXJhdGVkLXNvdXJjZXMuc2g8L2NvbW1hbmQ+CkluZGV4OiBKYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUuc2xuCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS5zbG4J
KHJldmlzaW9uIDI5MzYyKQorKysgSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9q
L0phdmFTY3JpcHRDb3JlLnNsbgkod29ya2luZyBjb3B5KQpAQCAtMywxMiArMyw5IEBAIE1pY3Jv
c29mdCBWaXN1YWwgU3R1ZGlvIFNvbHV0aW9uIEZpbGUsIEYKICMgVmlzdWFsIFN0dWRpbyAyMDA1
DQogUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJK
YXZhU2NyaXB0Q29yZSIsICJKYXZhU2NyaXB0Q29yZVxKYXZhU2NyaXB0Q29yZS52Y3Byb2oiLCAi
ezAxMUQxMEYxLUI2NTYtNEExQi1BMEMzLTM4NDJGMDIxMjJDNX0iDQogCVByb2plY3RTZWN0aW9u
KFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCi0JCXtCQzI5ODFDMC02N0E1LTRB
M0MtODc5Qi03ODRCQ0JERTI1NDF9ID0ge0JDMjk4MUMwLTY3QTUtNEEzQy04NzlCLTc4NEJDQkRF
MjU0MX0NCiAJCXs0RkY1QkExMS01OUVDLTRDMjQtOEY1Mi1GMjM1QzJFN0Q0M0F9ID0gezRGRjVC
QTExLTU5RUMtNEMyNC04RjUyLUYyMzVDMkU3RDQzQX0NCiAJRW5kUHJvamVjdFNlY3Rpb24NCiBF
bmRQcm9qZWN0DQotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0
Mn0iKSA9ICJkZnRhYmxlcyIsICJkZnRhYmxlc1xkZnRhYmxlcy52Y3Byb2oiLCAie0JDMjk4MUMw
LTY3QTUtNEEzQy04NzlCLTc4NEJDQkRFMjU0MX0iDQotRW5kUHJvamVjdA0KIFByb2plY3QoIns4
QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAidGVzdGtqcyIsICJ0ZXN0
a2pzXHRlc3RranMudmNwcm9qIiwgIntDNTlFNTEyOS1CNDUzLTQ5QjctQTUyQi0xRTEwNDcxNUY3
NkV9Ig0KIAlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0
DQogCQl7QUE4QTVBODUtNTkyQi00MzU3LUJDNjAtRTBFOTFFMDI2QUY2fSA9IHtBQThBNUE4NS01
OTJCLTQzNTctQkM2MC1FMEU5MUUwMjZBRjZ9DQpAQCAtMjAsOSArMTcsNiBAQCBFbmRQcm9qZWN0
DQogUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJG
aW5kU2FmYXJpIiwgIi4uXC4uXFdlYktpdFRvb2xzXEZpbmRTYWZhcmlcRmluZFNhZmFyaS52Y3By
b2oiLCAie0RBMzFEQTUyLTY2NzUtNDhENC04OUUwLTMzM0E3MTQ0Mzk3Q30iDQogRW5kUHJvamVj
dA0KIFByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAi
SmF2YVNjcmlwdENvcmVHZW5lcmF0ZWQiLCAiSmF2YVNjcmlwdENvcmVcSmF2YVNjcmlwdENvcmVH
ZW5lcmF0ZWQudmNwcm9qIiwgIns0RkY1QkExMS01OUVDLTRDMjQtOEY1Mi1GMjM1QzJFN0Q0M0F9
Ig0KLQlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQot
CQl7QkMyOTgxQzAtNjdBNS00QTNDLTg3OUItNzg0QkNCREUyNTQxfSA9IHtCQzI5ODFDMC02N0E1
LTRBM0MtODc5Qi03ODRCQ0JERTI1NDF9DQotCUVuZFByb2plY3RTZWN0aW9uDQogRW5kUHJvamVj
dA0KIEdsb2JhbA0KIAlHbG9iYWxTZWN0aW9uKFNvbHV0aW9uQ29uZmlndXJhdGlvblBsYXRmb3Jt
cykgPSBwcmVTb2x1dGlvbg0KQEAgLTM3LDEyICszMSw2IEBAIEdsb2JhbA0KIAkJezAxMUQxMEYx
LUI2NTYtNEExQi1BMEMzLTM4NDJGMDIxMjJDNX0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVn
fFdpbjMyDQogCQl7MDExRDEwRjEtQjY1Ni00QTFCLUEwQzMtMzg0MkYwMjEyMkM1fS5SZWxlYXNl
fFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCiAJCXswMTFEMTBGMS1CNjU2LTRBMUIt
QTBDMy0zODQyRjAyMTIyQzV9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzIN
Ci0JCXtCQzI5ODFDMC02N0E1LTRBM0MtODc5Qi03ODRCQ0JERTI1NDF9LkRlYnVnX0ludGVybmFs
fFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQotCQl7QkMyOTgxQzAtNjdBNS00QTNDLTg3
OUItNzg0QkNCREUyNTQxfS5EZWJ1Z19JbnRlcm5hbHxXaW4zMi5CdWlsZC4wID0gRGVidWd8V2lu
MzINCi0JCXtCQzI5ODFDMC02N0E1LTRBM0MtODc5Qi03ODRCQ0JERTI1NDF9LkRlYnVnfFdpbjMy
LkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQotCQl7QkMyOTgxQzAtNjdBNS00QTNDLTg3OUItNzg0
QkNCREUyNTQxfS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzINCi0JCXtCQzI5ODFD
MC02N0E1LTRBM0MtODc5Qi03ODRCQ0JERTI1NDF9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0g
RGVidWd8V2luMzINCi0JCXtCQzI5ODFDMC02N0E1LTRBM0MtODc5Qi03ODRCQ0JERTI1NDF9LlJl
bGVhc2V8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyDQogCQl7QzU5RTUxMjktQjQ1My00OUI3
LUE1MkItMUUxMDQ3MTVGNzZFfS5EZWJ1Z19JbnRlcm5hbHxXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1
Z19JbnRlcm5hbHxXaW4zMg0KIAkJe0M1OUU1MTI5LUI0NTMtNDlCNy1BNTJCLTFFMTA0NzE1Rjc2
RX0uRGVidWdfSW50ZXJuYWx8V2luMzIuQnVpbGQuMCA9IERlYnVnX0ludGVybmFsfFdpbjMyDQog
CQl7QzU5RTUxMjktQjQ1My00OUI3LUE1MkItMUUxMDQ3MTVGNzZFfS5EZWJ1Z3xXaW4zMi5BY3Rp
dmVDZmcgPSBEZWJ1Z3xXaW4zMg0KSW5kZXg6IEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LnZjcHJvai9KYXZhU2NyaXB0Q29yZVN1Ym1pdC5zbG4KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlU3VibWl0LnNsbgkocmV2
aXNpb24gMjkzNjIpCisrKyBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2
YVNjcmlwdENvcmVTdWJtaXQuc2xuCSh3b3JraW5nIGNvcHkpCkBAIC0zLDE4ICszLDEyIEBAIE1p
Y3Jvc29mdCBWaXN1YWwgU3R1ZGlvIFNvbHV0aW9uIEZpbGUsIEYKICMgVmlzdWFsIFN0dWRpbyAy
MDA1DQogUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9
ICJKYXZhU2NyaXB0Q29yZSIsICJKYXZhU2NyaXB0Q29yZVxKYXZhU2NyaXB0Q29yZS52Y3Byb2oi
LCAiezAxMUQxMEYxLUI2NTYtNEExQi1BMEMzLTM4NDJGMDIxMjJDNX0iDQogCVByb2plY3RTZWN0
aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCi0JCXtCQzI5ODFDMC02N0E1
LTRBM0MtODc5Qi03ODRCQ0JERTI1NDF9ID0ge0JDMjk4MUMwLTY3QTUtNEEzQy04NzlCLTc4NEJD
QkRFMjU0MX0NCiAJCXs0RkY1QkExMS01OUVDLTRDMjQtOEY1Mi1GMjM1QzJFN0Q0M0F9ID0gezRG
RjVCQTExLTU5RUMtNEMyNC04RjUyLUYyMzVDMkU3RDQzQX0NCiAJRW5kUHJvamVjdFNlY3Rpb24N
CiBFbmRQcm9qZWN0DQotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFC
Qzk0Mn0iKSA9ICJkZnRhYmxlcyIsICJkZnRhYmxlc1xkZnRhYmxlcy52Y3Byb2oiLCAie0JDMjk4
MUMwLTY3QTUtNEEzQy04NzlCLTc4NEJDQkRFMjU0MX0iDQotRW5kUHJvamVjdA0KIFByb2plY3Qo
Ins4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiV1RGIiwgIldURlxX
VEYudmNwcm9qIiwgIntBQThBNUE4NS01OTJCLTQzNTctQkM2MC1FMEU5MUUwMjZBRjZ9Ig0KIEVu
ZFByb2plY3QNCiBQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQy
fSIpID0gIkphdmFTY3JpcHRDb3JlR2VuZXJhdGVkIiwgIkphdmFTY3JpcHRDb3JlXEphdmFTY3Jp
cHRDb3JlR2VuZXJhdGVkLnZjcHJvaiIsICJ7NEZGNUJBMTEtNTlFQy00QzI0LThGNTItRjIzNUMy
RTdENDNBfSINCi0JUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJv
amVjdA0KLQkJe0JDMjk4MUMwLTY3QTUtNEEzQy04NzlCLTc4NEJDQkRFMjU0MX0gPSB7QkMyOTgx
QzAtNjdBNS00QTNDLTg3OUItNzg0QkNCREUyNTQxfQ0KLQlFbmRQcm9qZWN0U2VjdGlvbg0KIEVu
ZFByb2plY3QNCiBHbG9iYWwNCiAJR2xvYmFsU2VjdGlvbihTb2x1dGlvbkNvbmZpZ3VyYXRpb25Q
bGF0Zm9ybXMpID0gcHJlU29sdXRpb24NCkBAIC0yOSwxMiArMjMsNiBAQCBHbG9iYWwNCiAJCXsw
MTFEMTBGMS1CNjU2LTRBMUItQTBDMy0zODQyRjAyMTIyQzV9LkRlYnVnfFdpbjMyLkJ1aWxkLjAg
PSBEZWJ1Z3xXaW4zMg0KIAkJezAxMUQxMEYxLUI2NTYtNEExQi1BMEMzLTM4NDJGMDIxMjJDNX0u
UmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQogCQl7MDExRDEwRjEtQjY1
Ni00QTFCLUEwQzMtMzg0MkYwMjEyMkM1fS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNl
fFdpbjMyDQotCQl7QkMyOTgxQzAtNjdBNS00QTNDLTg3OUItNzg0QkNCREUyNTQxfS5EZWJ1Z19J
bnRlcm5hbHxXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMg0KLQkJe0JDMjk4MUMwLTY3QTUt
NEEzQy04NzlCLTc4NEJDQkRFMjU0MX0uRGVidWdfSW50ZXJuYWx8V2luMzIuQnVpbGQuMCA9IERl
YnVnfFdpbjMyDQotCQl7QkMyOTgxQzAtNjdBNS00QTNDLTg3OUItNzg0QkNCREUyNTQxfS5EZWJ1
Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMg0KLQkJe0JDMjk4MUMwLTY3QTUtNEEzQy04
NzlCLTc4NEJDQkRFMjU0MX0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyDQotCQl7
QkMyOTgxQzAtNjdBNS00QTNDLTg3OUItNzg0QkNCREUyNTQxfS5SZWxlYXNlfFdpbjMyLkFjdGl2
ZUNmZyA9IERlYnVnfFdpbjMyDQotCQl7QkMyOTgxQzAtNjdBNS00QTNDLTg3OUItNzg0QkNCREUy
NTQxfS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KIAkJe0FBOEE1QTg1LTU5
MkItNDM1Ny1CQzYwLUUwRTkxRTAyNkFGNn0uRGVidWdfSW50ZXJuYWx8V2luMzIuQWN0aXZlQ2Zn
ID0gRGVidWd8V2luMzINCiAJCXtBQThBNUE4NS01OTJCLTQzNTctQkM2MC1FMEU5MUUwMjZBRjZ9
LkRlYnVnX0ludGVybmFsfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KIAkJe0FBOEE1QTg1
LTU5MkItNDM1Ny1CQzYwLUUwRTkxRTAyNkFGNn0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVi
dWd8V2luMzINCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovZGZ0
YWJsZXMvZGZ0YWJsZXMudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnZjcHJvai9kZnRhYmxlcy9kZnRhYmxlcy52Y3Byb2oJKHJldmlzaW9uIDI5MzYy
KQorKysgSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL2RmdGFibGVzL2RmdGFi
bGVzLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMSwxMDcgKzAsMCBAQAotPD94bWwgdmVyc2lv
bj0iMS4wIiBlbmNvZGluZz0iV2luZG93cy0xMjUyIj8+DQotPFZpc3VhbFN0dWRpb1Byb2plY3QN
Ci0JUHJvamVjdFR5cGU9IlZpc3VhbCBDKysiDQotCVZlcnNpb249IjguMDAiDQotCU5hbWU9ImRm
dGFibGVzIg0KLQlQcm9qZWN0R1VJRD0ie0JDMjk4MUMwLTY3QTUtNEEzQy04NzlCLTc4NEJDQkRF
MjU0MX0iDQotCVJvb3ROYW1lc3BhY2U9ImRmdGFibGVzIg0KLQlLZXl3b3JkPSJXaW4zMlByb2oi
DQotCT4NCi0JPFBsYXRmb3Jtcz4NCi0JCTxQbGF0Zm9ybQ0KLQkJCU5hbWU9IldpbjMyIg0KLQkJ
Lz4NCi0JPC9QbGF0Zm9ybXM+DQotCTxUb29sRmlsZXM+DQotCTwvVG9vbEZpbGVzPg0KLQk8Q29u
ZmlndXJhdGlvbnM+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0K
LQkJCU91dHB1dERpcmVjdG9yeT0iJChXZWJLaXRPdXRwdXREaXIpXG9ialxKYXZhU2NyaXB0Q29y
ZSINCi0JCQlJbnRlcm1lZGlhdGVEaXJlY3Rvcnk9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcSmF2
YVNjcmlwdENvcmVcJChQcm9qZWN0TmFtZSlcJChDb25maWd1cmF0aW9uTmFtZSkiDQotCQkJQ29u
ZmlndXJhdGlvblR5cGU9IjEiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii4uXGRlYnVn
LnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIxIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlO
YW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0i
VkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERh
dGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2
aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNN
SURMVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
DQotCQkJCU9wdGltaXphdGlvbj0iMCINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IldJ
TjMyO19ERUJVRztfQ09OU09MRTtfQ1JUX1NFQ1VSRV9OT19ERVBSRUNBVEUiDQotCQkJCU1pbmlt
YWxSZWJ1aWxkPSJ0cnVlIg0KLQkJCQlFeGNlcHRpb25IYW5kbGluZz0iMCINCi0JCQkJQmFzaWNS
dW50aW1lQ2hlY2tzPSIzIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMyINCi0JCQkJVXNlUHJlY29t
cGlsZWRIZWFkZXI9IjAiDQotCQkJCVdhcm5pbmdMZXZlbD0iMyINCi0JCQkJRGV0ZWN0NjRCaXRQ
b3J0YWJpbGl0eVByb2JsZW1zPSJ0cnVlIg0KLQkJCQlEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PSIz
Ig0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxl
clRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJU
b29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0K
LQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlPdXRwdXRG
aWxlPSIkKE91dERpcilcJChQcm9qZWN0TmFtZSkuZXhlIg0KLQkJCQlMaW5rSW5jcmVtZW50YWw9
IjIiDQotCQkJCUdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj0idHJ1ZSINCi0JCQkJU3ViU3lzdGVt
PSIxIg0KLQkJCQlUYXJnZXRNYWNoaW5lPSIxIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFt
ZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0
VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJ
Lz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRv
b2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1l
PSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2Vi
RGVwbG95bWVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWls
ZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQk8L0NvbmZpZ3VyYXRp
b25zPg0KLQk8UmVmZXJlbmNlcz4NCi0JPC9SZWZlcmVuY2VzPg0KLQk8RmlsZXM+DQotCQk8Rmls
ZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccGNyZVxkZnRhYmxlcy5jcHAiDQotCQkJPg0KLQkJ
PC9GaWxlPg0KLQk8L0ZpbGVzPg0KLQk8R2xvYmFscz4NCi0JPC9HbG9iYWxzPg0KLTwvVmlzdWFs
U3R1ZGlvUHJvamVjdD4NCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI5MzYyKQorKysg
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
d29ya2luZyBjb3B5KQpAQCAtMTMsOSArMTMsNiBAQAogCQkJYnVpbGRQaGFzZXMgPSAoCiAJCQkJ
NjVGQjNGNjUwOUQxMUU5MTAwRjQ5REVCIC8qIEdlbmVyYXRlIERlcml2ZWQgU291cmNlcyAqLywK
IAkJCSk7Ci0JCQlkZXBlbmRlbmNpZXMgPSAoCi0JCQkJNUQyRjIxRDgwQkRGQUIxRDAwODJCMjk0
IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCi0JCQkpOwogCQkJbmFtZSA9ICJEZXJpdmVkIFNv
dXJjZXMiOwogCQkJcHJvZHVjdE5hbWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsKIAkJfTsKQEAgLTIy
Myw3ICsyMjAsNiBAQAogCQk5MzJGQzExRDA4MjRBNkEzMDA1QjNDNzUgLyogY3JlYXRlX2hhc2hf
dGFibGUgaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjky
QTg1NDAyNTU1OTdEMDFGRjYwRjcgLyogY3JlYXRlX2hhc2hfdGFibGUgKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM1QUY0NkMwOUU5RDlEQjAwQUNE
MUQ4IC8qIEZvcndhcmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzNUFGNDY5MDlFOUQ5REIwMEFDRDFEOCAvKiBGb3J3YXJkLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM1QUY0NkUwOUU5RDlEQjAw
QUNEMUQ4IC8qIFVudXNlZFBhcmFtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzVBRjQ2QjA5RTlEOURCMDBBQ0QxRDggLyogVW51c2VkUGFyYW0uaCAq
LzsgfTsKLQkJOTM1RjY5RkUwODI0NTA1NzAwM0QxQTQ1IC8qIGRmdGFibGVzLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NDE3MjBFMDM5RTA4Qjkw
MDU4QkZFQiAvKiBkZnRhYmxlcy5jcHAgKi87IH07CiAJCTkzNzAxMzQ4MENBOTdFMEUwMEZBMTRE
MyAvKiBwY3JlX3VjcF9zZWFyY2hmdW5jcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MzcwMTM0NzBDQTk3RTBFMDBGQTE0RDMgLyogcGNyZV91Y3Bf
c2VhcmNoZnVuY3MuY3BwICovOyBzZXR0aW5ncyA9IHtDT01QSUxFUl9GTEFHUyA9ICItV25vLXNp
Z24tY29tcGFyZSI7IH07IH07CiAJCTkzOEM0RjZBMENBMDZCQzcwMEQ5MzEwQSAvKiBBU0NJSUNU
eXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzhD
NEY2OTBDQTA2QkM3MDBEOTMxMEEgLyogQVNDSUlDVHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzOEM0RjZDMENBMDZCQ0UwMEQ5MzEwQSAv
KiBEaXNhbGxvd0NUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzhDNEY2QjBDQTA2QkNFMDBEOTMxMEEgLyogRGlzYWxsb3dDVHlwZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yNjIsMjIgKzI1
OCw2IEBACiAJCQlvdXRwdXRGaWxlcyA9ICgKIAkJCSk7CiAJCX07Ci0JCTVEQUQ5N0E4MEIzOUI3
OEUwMDE0RkVGRSAvKiBQQlhCdWlsZFJ1bGUgKi8gPSB7Ci0JCQlpc2EgPSBQQlhCdWlsZFJ1bGU7
Ci0JCQljb21waWxlclNwZWMgPSBjb20uYXBwbGUuY29tcGlsZXJzLmdjYy40XzA7Ci0JCQlmaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYzsKLQkJCWlzRWRpdGFibGUgPSAxOwotCQkJb3V0cHV0RmlsZXMg
PSAoCi0JCQkpOwotCQl9OwotCQk1REFEOTdBODBCMzlCODhFMDAxNEZFRkUgLyogUEJYQnVpbGRS
dWxlICovID0gewotCQkJaXNhID0gUEJYQnVpbGRSdWxlOwotCQkJY29tcGlsZXJTcGVjID0gY29t
LmFwcGxlLmNvbXBpbGVycy5nY2MuNF8wOwotCQkJZmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcDsK
LQkJCWlzRWRpdGFibGUgPSAxOwotCQkJb3V0cHV0RmlsZXMgPSAoCi0JCQkpOwotCQl9OwogCQk1
REFEOTdBODBCMzlCODhFMDAxNEZFRkYgLyogUEJYQnVpbGRSdWxlICovID0gewogCQkJaXNhID0g
UEJYQnVpbGRSdWxlOwogCQkJY29tcGlsZXJTcGVjID0gY29tLmFwcGxlLmNvbXBpbGVycy5nY2Mu
NF8wOwpAQCAtMzY0LDEzICszNDQsNiBAQAogCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSAxNEJE
NTlCRTBBM0U4RjkwMDBCQUY1OUM7CiAJCQlyZW1vdGVJbmZvID0gdGVzdGFwaTsKIAkJfTsKLQkJ
NUQyRjIxRDcwQkRGQUIxRDAwODJCMjk0IC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsK
LQkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKLQkJCWNvbnRhaW5lclBvcnRhbCA9IDA4
NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLzsKLQkJCXByb3h5VHlw
ZSA9IDE7Ci0JCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IDkzNUY2OUY1MDgyNDRGRUEwMDNEMUE0
NTsKLQkJCXJlbW90ZUluZm8gPSBkZnRhYmxlczsKLQkJfTsKIAkJNjVGQjNGN0QwOUQxMUVGMzAw
RjQ5REVCIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKIAkJCWlzYSA9IFBCWENvbnRh
aW5lckl0ZW1Qcm94eTsKIAkJCWNvbnRhaW5lclBvcnRhbCA9IDA4NjdENjkwRkU4NDAyOEZDMDJB
QUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLzsKQEAgLTUwNiw3ICs0NzksNiBAQAogCQk2NTIyNDZB
NDBDOEQ3QTBFMDA3QkRBRjcgLyogSGFzaEl0ZXJhdG9ycy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBIYXNoSXRlcmF0b3JzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTY1NDAwQzBGMEE2OUJBRjIwMDUwOTg4NyAvKiBQcm9wZXJ0eU5hbWVBcnJheS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJvcGVydHlOYW1lQXJyYXkuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTQwMEMxMDBBNjlCQUYyMDA1MDk4ODcg
LyogUHJvcGVydHlOYW1lQXJyYXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFByb3BlcnR5TmFtZUFycmF5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTY1NDE3
MjBFMDM5RTA4QjkwMDU4QkZFQiAvKiBkZnRhYmxlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBkZnRhYmxlcy5jcHA7IHBhdGggPSBw
Y3JlL2RmdGFibGVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9
OwogCQk2NTQxNzIwRjAzOUUwOEI5MDA1OEJGRUIgLyogcGNyZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwY3JlLmg7IHBhdGggPSBwY3JlL3Bj
cmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwogCQk2NTQxQkQ2
RTA4RTgwQTE3MDAyQ0JFRTcgLyogVENQYWdlTWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRDUGFnZU1hcC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCTY1NDFCRDZGMDhFODBBMTcwMDJDQkVFNyAvKiBU
Q1NwaW5Mb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFRDU3BpbkxvY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4
OyB9OwpAQCAtNTc3LDcgKzU0OSw2IEBACiAJCTkzM0EzNDlEMDM4QUU4MEYwMDg2MzVDRSAvKiBp
ZGVudGlmaWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gaWRlbnRpZmllci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldp
ZHRoID0gODsgfTsKIAkJOTM1QUY0NjkwOUU5RDlEQjAwQUNEMUQ4IC8qIEZvcndhcmQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9yd2FyZC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5MzVBRjQ2QjA5RTlEOURCMDBBQ0QxRDggLyogVW51c2VkUGFyYW0uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVW51c2VkUGFyYW0uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTM1RjY5RjYwODI0NEZFQTAwM0QxQTQ1IC8qIGRmdGFibGVz
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGls
ZWQubWFjaC1vLmV4ZWN1dGFibGUiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBkZnRhYmxl
czsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJOTM3MDEzNDcwQ0E5N0Uw
RTAwRkExNEQzIC8qIHBjcmVfdWNwX3NlYXJjaGZ1bmNzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IHBjcmVfdWNwX3NlYXJjaGZ1bmNzLmNwcDsgcGF0aCA9IHBjcmUv
cGNyZV91Y3Bfc2VhcmNoZnVuY3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
Mzc0RDNBNzAzOEQ5RDc0MDA4NjM1Q0UgLyogc2NvcGVfY2hhaW4uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBzY29wZV9jaGFpbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCTkzNzREM0E4MDM4RDlENzQwMDg2
MzVDRSAvKiBzY29wZV9jaGFpbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IHNjb3BlX2NoYWluLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgdGFiV2lkdGggPSA4OyB9OwpAQCAtNjk4LDEzICs2NjksNiBAQAogCQkJKTsKIAkJCXJ1
bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwotCQk5MzVGNjlGNDA4
MjQ0RkVBMDAzRDFBNDUgLyogRnJhbWV3b3JrcyAqLyA9IHsKLQkJCWlzYSA9IFBCWEZyYW1ld29y
a3NCdWlsZFBoYXNlOwotCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKLQkJCWZpbGVz
ID0gKAotCQkJKTsKLQkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwot
CQl9OwogLyogRW5kIFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlIHNlY3Rpb24gKi8KIAogLyogQmVn
aW4gUEJYR3JvdXAgc2VjdGlvbiAqLwpAQCAtNzM3LDcgKzcwMSw2IEBACiAJCQkJOTMyRkMzQzIw
ODI0QkI3MDAwNUIzQzc1IC8qIFJlc291cmNlcyAqLywKIAkJCQkwMzQ3NjhERkZGMzhBNTA0MTFE
QjlDOEIgLyogUHJvZHVjdHMgKi8sCiAJCQkJMDg2N0Q2OUFGRTg0MDI4RkMwMkFBQzA3IC8qIEZy
YW1ld29ya3MgKi8sCi0JCQkJOTMyRkMzQzEwODI0QkI2MTAwNUIzQzc1IC8qIEludGVybWVkaWF0
ZXMgKi8sCiAJCQkJMUM5MDUxM0UwQkE5RTg4MzAwODFFOUQwIC8qIENvbmZpZ3VyYXRpb25zICov
LAogCQkJKTsKIAkJCW5hbWUgPSBKYXZhU2NyaXB0Q29yZTsKQEAgLTEwNjksNyArMTAzMiw2IEBA
CiAJCTY1NDE3MjAzMDM5RTAxRjkwMDU4QkZFQiAvKiBwY3JlICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk2NTQxNzIwRTAzOUUwOEI5MDA1OEJGRUIgLyog
ZGZ0YWJsZXMuY3BwICovLAogCQkJCTY1NDE3MjBGMDM5RTA4QjkwMDU4QkZFQiAvKiBwY3JlLmgg
Ki8sCiAJCQkJOTMwNzU0QkYwOEIwRjY4MDAwQUIzMDU2IC8qIHBjcmVfY29tcGlsZS5jcHAgKi8s
CiAJCQkJOTMwNzU0RTkwOEIwRjc4NTAwQUIzMDU2IC8qIHBjcmVfZXhlYy5jcHAgKi8sCkBAIC0x
MDg0LDE2ICsxMDQ2LDYgQEAKIAkJCXRhYldpZHRoID0gNDsKIAkJCXVzZXNUYWJzID0gMDsKIAkJ
fTsKLQkJOTMyRkMzQzEwODI0QkI2MTAwNUIzQzc1IC8qIEludGVybWVkaWF0ZXMgKi8gPSB7Ci0J
CQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCTkzNUY2OUY2MDgyNDRGRUEw
MDNEMUE0NSAvKiBkZnRhYmxlcyAqLywKLQkJCSk7Ci0JCQluYW1lID0gSW50ZXJtZWRpYXRlczsK
LQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCQl0YWJXaWR0aCA9IDQ7Ci0JCQl1c2VzVGFi
cyA9IDA7Ci0JCX07CiAJCTkzMkZDM0MyMDgyNEJCNzAwMDVCM0M3NSAvKiBSZXNvdXJjZXMgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTM3NSwyNCArMTMy
Nyw2IEBACiAJCQlwcm9kdWN0UmVmZXJlbmNlID0gOTMyRjVCRTEwODIyQTFDNzAwNzM2OTc1IC8q
IHRlc3RranMgKi87CiAJCQlwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLnRv
b2wiOwogCQl9OwotCQk5MzVGNjlGNTA4MjQ0RkVBMDAzRDFBNDUgLyogZGZ0YWJsZXMgKi8gPSB7
Ci0JCQlpc2EgPSBQQlhOYXRpdmVUYXJnZXQ7Ci0JCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0g
MTQ5QzI3NTgwODkwMkFGRTAwOEE5RUZDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3Ig
UEJYTmF0aXZlVGFyZ2V0ICJkZnRhYmxlcyIgKi87Ci0JCQlidWlsZFBoYXNlcyA9ICgKLQkJCQk5
MzVGNjlGMzA4MjQ0RkVBMDAzRDFBNDUgLyogU291cmNlcyAqLywKLQkJCQk5MzVGNjlGNDA4MjQ0
RkVBMDAzRDFBNDUgLyogRnJhbWV3b3JrcyAqLywKLQkJCSk7Ci0JCQlidWlsZFJ1bGVzID0gKAot
CQkJCTVEQUQ5N0E4MEIzOUI3OEUwMDE0RkVGRSAvKiBQQlhCdWlsZFJ1bGUgKi8sCi0JCQkJNURB
RDk3QTgwQjM5Qjg4RTAwMTRGRUZFIC8qIFBCWEJ1aWxkUnVsZSAqLywKLQkJCSk7Ci0JCQlkZXBl
bmRlbmNpZXMgPSAoCi0JCQkpOwotCQkJbmFtZSA9IGRmdGFibGVzOwotCQkJcHJvZHVjdE5hbWUg
PSBkZnRhYmxlczsKLQkJCXByb2R1Y3RSZWZlcmVuY2UgPSA5MzVGNjlGNjA4MjQ0RkVBMDAzRDFB
NDUgLyogZGZ0YWJsZXMgKi87Ci0JCQlwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10
eXBlLnRvb2wiOwotCQl9OwogLyogRW5kIFBCWE5hdGl2ZVRhcmdldCBzZWN0aW9uICovCiAKIC8q
IEJlZ2luIFBCWFByb2plY3Qgc2VjdGlvbiAqLwpAQCAtMTQwOSw3ICsxMzQzLDYgQEAKIAkJCQk5
MzJGNUJFMzA4MjJBMUM3MDA3MzY5NzUgLyogQWxsICovLAogCQkJCTkzMkY1QjNFMDgyMkExQzcw
MDczNjk3NSAvKiBKYXZhU2NyaXB0Q29yZSAqLywKIAkJCQk2NUZCM0Y2NjA5RDExRTkxMDBGNDlE
RUIgLyogRGVyaXZlZCBTb3VyY2VzICovLAotCQkJCTkzNUY2OUY1MDgyNDRGRUEwMDNEMUE0NSAv
KiBkZnRhYmxlcyAqLywKIAkJCQkxNDEyMTExRjBBNDg3OTNDMDA0ODAyNTUgLyogbWluaWRvbSAq
LywKIAkJCQkxNEJENTlCRTBBM0U4RjkwMDBCQUY1OUMgLyogdGVzdGFwaSAqLywKIAkJCQk5MzJG
NUJEQTA4MjJBMUM3MDA3MzY5NzUgLyogdGVzdGtqcyAqLywKQEAgLTE1ODQsMTQgKzE1MTcsNiBA
QAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwotCQk5MzVGNjlGMzA4MjQ0RkVBMDAzRDFBNDUgLyogU291cmNlcyAqLyA9IHsKLQkJCWlzYSA9
IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwotCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsK
LQkJCWZpbGVzID0gKAotCQkJCTkzNUY2OUZFMDgyNDUwNTcwMDNEMUE0NSAvKiBkZnRhYmxlcy5j
cHAgaW4gU291cmNlcyAqLywKLQkJCSk7Ci0JCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKLQkJfTsKIC8qIEVuZCBQQlhTb3VyY2VzQnVpbGRQaGFzZSBzZWN0aW9uICov
CiAKIC8qIEJlZ2luIFBCWFRhcmdldERlcGVuZGVuY3kgc2VjdGlvbiAqLwpAQCAtMTYyMCwxMSAr
MTU0NSw2IEBACiAJCQl0YXJnZXQgPSAxNEJENTlCRTBBM0U4RjkwMDBCQUY1OUMgLyogdGVzdGFw
aSAqLzsKIAkJCXRhcmdldFByb3h5ID0gMTRCRDU5QzYwQTNFOEZBNDAwQkFGNTlDIC8qIFBCWENv
bnRhaW5lckl0ZW1Qcm94eSAqLzsKIAkJfTsKLQkJNUQyRjIxRDgwQkRGQUIxRDAwODJCMjk0IC8q
IFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7Ci0JCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5
OwotCQkJdGFyZ2V0ID0gOTM1RjY5RjUwODI0NEZFQTAwM0QxQTQ1IC8qIGRmdGFibGVzICovOwot
CQkJdGFyZ2V0UHJveHkgPSA1RDJGMjFENzBCREZBQjFEMDA4MkIyOTQgLyogUEJYQ29udGFpbmVy
SXRlbVByb3h5ICovOwotCQl9OwogCQk2NUZCM0Y3RTA5RDExRUYzMDBGNDlERUIgLyogUEJYVGFy
Z2V0RGVwZW5kZW5jeSAqLyA9IHsKIAkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CiAJCQl0
YXJnZXQgPSA2NUZCM0Y2NjA5RDExRTkxMDBGNDlERUIgLyogRGVyaXZlZCBTb3VyY2VzICovOwpA
QCAtMTY2NCwyNyArMTU4NCw2IEBACiAJCQl9OwogCQkJbmFtZSA9IFByb2R1Y3Rpb247CiAJCX07
Ci0JCTE0OUMyNzU5MDg5MDJBRkUwMDhBOUVGQyAvKiBEZWJ1ZyAqLyA9IHsKLQkJCWlzYSA9IFhD
QnVpbGRDb25maWd1cmF0aW9uOwotCQkJYnVpbGRTZXR0aW5ncyA9IHsKLQkJCQlQUk9EVUNUX05B
TUUgPSBkZnRhYmxlczsKLQkJCX07Ci0JCQluYW1lID0gRGVidWc7Ci0JCX07Ci0JCTE0OUMyNzVB
MDg5MDJBRkUwMDhBOUVGQyAvKiBSZWxlYXNlICovID0gewotCQkJaXNhID0gWENCdWlsZENvbmZp
Z3VyYXRpb247Ci0JCQlidWlsZFNldHRpbmdzID0gewotCQkJCVBST0RVQ1RfTkFNRSA9IGRmdGFi
bGVzOwotCQkJfTsKLQkJCW5hbWUgPSBSZWxlYXNlOwotCQl9OwotCQkxNDlDMjc1QzA4OTAyQUZF
MDA4QTlFRkMgLyogUHJvZHVjdGlvbiAqLyA9IHsKLQkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0
aW9uOwotCQkJYnVpbGRTZXR0aW5ncyA9IHsKLQkJCQlQUk9EVUNUX05BTUUgPSBkZnRhYmxlczsK
LQkJCX07Ci0JCQluYW1lID0gUHJvZHVjdGlvbjsKLQkJfTsKIAkJMTQ5QzI3NUUwODkwMkFGRTAw
OEE5RUZDIC8qIERlYnVnICovID0gewogCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CiAJ
CQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDFDOTA1MTQzMEJBOUU4QTcwMDgxRTlEMCAv
KiBKYXZhU2NyaXB0Q29yZS54Y2NvbmZpZyAqLzsKQEAgLTE4MzgsMTYgKzE3MzcsNiBAQAogCQkJ
ZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOwogCQkJZGVmYXVsdENvbmZpZ3VyYXRp
b25OYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKLQkJMTQ5QzI3NTgwODkwMkFGRTAwOEE5RUZDIC8q
IEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJkZnRhYmxlcyIg
Ki8gPSB7Ci0JCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OwotCQkJYnVpbGRDb25maWd1cmF0
aW9ucyA9ICgKLQkJCQkxNDlDMjc1OTA4OTAyQUZFMDA4QTlFRkMgLyogRGVidWcgKi8sCi0JCQkJ
MTQ5QzI3NUEwODkwMkFGRTAwOEE5RUZDIC8qIFJlbGVhc2UgKi8sCi0JCQkJMTQ5QzI3NUMwODkw
MkFGRTAwOEE5RUZDIC8qIFByb2R1Y3Rpb24gKi8sCi0JCQkpOwotCQkJZGVmYXVsdENvbmZpZ3Vy
YXRpb25Jc1Zpc2libGUgPSAwOwotCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVj
dGlvbjsKLQkJfTsKIAkJMTQ5QzI3NUQwODkwMkFGRTAwOEE5RUZDIC8qIEJ1aWxkIGNvbmZpZ3Vy
YXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJKYXZhU2NyaXB0Q29yZSIgKi8gPSB7CiAJ
CQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OwogCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgK
SW5kZXg6IEphdmFTY3JpcHRDb3JlL3BjcmUvZGZ0YWJsZXMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNj
cmlwdENvcmUvcGNyZS9kZnRhYmxlcwkocmV2aXNpb24gMjkzNjIpCShmcm9tIC4uL1ZvbHVtZXMv
RGF0YS9XZWJLaXQvaHR0cDovZGRraWx6ZXJAc3ZuLndlYmtpdC5vcmcvcmVwb3NpdG9yeS93ZWJr
aXQvdHJ1bmsvSmF2YVNjcmlwdENvcmUvcGNyZS9kZnRhYmxlcy5jcHA6MjkzNjIpCisrKyBKYXZh
U2NyaXB0Q29yZS9wY3JlL2RmdGFibGVzCSh3b3JraW5nIGNvcHkpCkluZGV4OiBKYXZhU2NyaXB0
Q29yZS9wY3JlL2RmdGFibGVzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3BjcmUvZGZ0
YWJsZXMJKHJldmlzaW9uIDI5MzYyKQorKysgSmF2YVNjcmlwdENvcmUvcGNyZS9kZnRhYmxlcwko
d29ya2luZyBjb3B5KQpAQCAtMSwxODQgKzEsMjY0IEBACi0vKiBUaGlzIGlzIEphdmFTY3JpcHRD
b3JlJ3MgdmFyaWFudCBvZiB0aGUgUENSRSBsaWJyYXJ5LiBXaGlsZSB0aGlzIGxpYnJhcnkKLXN0
YXJ0ZWQgb3V0IGFzIGEgY29weSBvZiBQQ1JFLCBtYW55IG9mIHRoZSBmZWF0dXJlcyBvZiBQQ1JF
IGhhdmUgYmVlbgotcmVtb3ZlZC4gVGhpcyBsaWJyYXJ5IG5vdyBzdXBwb3J0cyBvbmx5IHRoZSBy
ZWd1bGFyIGV4cHJlc3Npb24gZmVhdHVyZXMKLXJlcXVpcmVkIGJ5IHRoZSBKYXZhU2NyaXB0IGxh
bmd1YWdlIHNwZWNpZmljYXRpb24sIGFuZCBoYXMgb25seSB0aGUgZnVuY3Rpb25zCi1uZWVkZWQg
YnkgSmF2YVNjcmlwdENvcmUgYW5kIHRoZSByZXN0IG9mIFdlYktpdC4KLQotICAgICAgICAgICAg
ICAgICBPcmlnaW5hbGx5IHdyaXR0ZW4gYnkgUGhpbGlwIEhhemVsCi0gICAgICAgICAgIENvcHly
aWdodCAoYykgMTk5Ny0yMDA2IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlCi0gICAgQ29weXJpZ2h0
IChDKSAyMDAyLCAyMDA0LCAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6
Ci0KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0IG5vdGljZSwKLSAgICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotCi0gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRo
ZSBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZSBub3IgdGhlIG5hbWVzIG9mIGl0cwotICAgICAgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KLSAgICAgIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0KLVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIgotQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQot
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UKLUFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRQotTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKLVNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLUNPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi1BUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRQotUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotKi8KLQotLyogVGhpcyBpcyBhIGZyZWVzdGFuZGluZyBzdXBwb3J0IHByb2dyYW0g
dG8gZ2VuZXJhdGUgYSBmaWxlIGNvbnRhaW5pbmcKLWNoYXJhY3RlciB0YWJsZXMuIFRoZSB0YWJs
ZXMgYXJlIGJ1aWx0IGFjY29yZGluZyB0byB0aGUgZGVmYXVsdCBDCi1sb2NhbGUuICovCi0KLSNk
ZWZpbmUgREZUQUJMRVMKLQotI2luY2x1ZGUgPGN0eXBlLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4K
LSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KKyMhL3Vzci9iaW4vcGVy
bCAtdworIworIyBUaGlzIGlzIEphdmFTY3JpcHRDb3JlJ3MgdmFyaWFudCBvZiB0aGUgUENSRSBs
aWJyYXJ5LiBXaGlsZSB0aGlzIGxpYnJhcnkKKyMgc3RhcnRlZCBvdXQgYXMgYSBjb3B5IG9mIFBD
UkUsIG1hbnkgb2YgdGhlIGZlYXR1cmVzIG9mIFBDUkUgaGF2ZSBiZWVuCisjIHJlbW92ZWQuIFRo
aXMgbGlicmFyeSBub3cgc3VwcG9ydHMgb25seSB0aGUgcmVndWxhciBleHByZXNzaW9uIGZlYXR1
cmVzCisjIHJlcXVpcmVkIGJ5IHRoZSBKYXZhU2NyaXB0IGxhbmd1YWdlIHNwZWNpZmljYXRpb24s
IGFuZCBoYXMgb25seSB0aGUgZnVuY3Rpb25zCisjIG5lZWRlZCBieSBKYXZhU2NyaXB0Q29yZSBh
bmQgdGhlIHJlc3Qgb2YgV2ViS2l0LgorIyAKKyMgICAgICAgICAgICAgICAgICBPcmlnaW5hbGx5
IHdyaXR0ZW4gYnkgUGhpbGlwIEhhemVsCisjICAgICAgICAgICAgQ29weXJpZ2h0IChjKSAxOTk3
LTIwMDYgVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2UKKyMgIENvcHlyaWdodCAoQykgMjAwMiwgMjAw
NCwgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyAK
KyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0
OgorIyAKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorIyAgICAgICB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAKKyMgICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIyAKKyMgICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2Ugbm9yIHRoZSBuYW1l
cyBvZiBpdHMKKyMgICAgICAgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgICAgICAgdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMgCisjIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMg
IkFTIElTIgorIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisjIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisjIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRQorIyBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RQorIyBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KworIyBUaGlzIGlzIGEgZnJlZXN0YW5kaW5nIHN1cHBvcnQgcHJvZ3JhbSB0byBnZW5lcmF0ZSBh
IGZpbGUgY29udGFpbmluZworIyBjaGFyYWN0ZXIgdGFibGVzLiBUaGUgdGFibGVzIGFyZSBidWls
dCBhY2NvcmRpbmcgdG8gdGhlIGRlZmF1bHQgQworIyBsb2NhbGUuCisKK3VzZSBzdHJpY3Q7CisK
K3VzZSBGaWxlOjpCYXNlbmFtZTsKK3VzZSBGaWxlOjpTcGVjOwordXNlIEZpbGU6OlRlbXA7CisK
K3N1YiByZWFkSGVhZGVyVmFsdWVzKCk7CisKK215ICVwY3JlX2ludGVybmFsOworCitpZiAoc2Nh
bGFyKEBBUkdWKSAhPSAxKSB7CisgICAgcHJpbnQgU1RERVJSICJVc2FnZTogIiwgYmFzZW5hbWUo
JDApLCAiIG91dHB1dC1maWxlXG4iOworICAgIGV4aXQgMTsKK30KKworbXkgJG91dHB1dEZpbGUg
PSBzaGlmdCBAQVJHVjsKKworcmVhZEhlYWRlclZhbHVlcygpOworCitvcGVuKE9VVCwgIj4iLCAk
b3V0cHV0RmlsZSkgb3IgZGllICIkISI7CitiaW5tb2RlKE9VVCk7CisKK3ByaW50ZihPVVQKKyAg
ICAiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiIg
LgorICAgICIqICAgICAgUGVybC1Db21wYXRpYmxlIFJlZ3VsYXIgRXhwcmVzc2lvbnMgICAgICAg
KlxuIiAuCisgICAgIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKiovXG5cbiIgLgorICAgICIvKiBUaGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSB3cml0dGVu
IGJ5IHRoZSBkZnRhYmxlcyBhdXhpbGlhcnkgXG4iIC4KKyAgICAicHJvZ3JhbS4gSWYgeW91IGVk
aXQgaXQgYnkgaGFuZCwgeW91IG1pZ2h0IGxpa2UgdG8gZWRpdCB0aGUgTWFrZWZpbGUgdG8gXG4i
IC4KKyAgICAicHJldmVudCBpdHMgZXZlciBiZWluZyByZWdlbmVyYXRlZC5cblxuIik7Citwcmlu
dGYoT1VUCisgICAgIlRoaXMgZmlsZSBjb250YWlucyB0aGUgZGVmYXVsdCB0YWJsZXMgZm9yIGNo
YXJhY3RlcnMgd2l0aCBjb2RlcyBsZXNzIHRoYW5cbiIgLgorICAgICIxMjggKEFTQ0lJIGNoYXJh
Y3RlcnMpLiBUaGVzZSB0YWJsZXMgYXJlIHVzZWQgd2hlbiBubyBleHRlcm5hbCB0YWJsZXMgYXJl
XG4iIC4KKyAgICAicGFzc2VkIHRvIFBDUkUuICovXG5cbiIgLgorICAgICJjb25zdCB1bnNpZ25l
ZCBjaGFyIGtqc19wY3JlX2RlZmF1bHRfdGFibGVzWyVkXSA9IHtcblxuIiAuCisgICAgIi8qIFRo
aXMgdGFibGUgaXMgYSBsb3dlciBjYXNpbmcgdGFibGUuICovXG5cbiIsICRwY3JlX2ludGVybmFs
e3RhYmxlc19sZW5ndGh9KTsKKworaWYgKCRwY3JlX2ludGVybmFse2xjY19vZmZzZXR9ICE9IDAp
IHsKKyAgICBkaWUgImxjY19vZmZzZXQgIT0gMCI7Cit9CisKK3ByaW50ZihPVVQgIiAgIik7Citm
b3IgKG15ICRpID0gMDsgJGkgPCAxMjg7ICRpKyspIHsKKyAgICBpZiAoKCRpICYgNykgPT0gMCAm
JiAkaSAhPSAwKSB7CisgICAgICAgIHByaW50ZihPVVQgIlxuICAiKTsKKyAgICB9CisgICAgcHJp
bnRmKE9VVCAiMHglMDJYIiwgb3JkKGxjKGNocigkaSkpKSk7CisgICAgaWYgKCRpICE9IDEyNykg
eworICAgICAgICBwcmludGYoT1VUICIsICIpOworICAgIH0KK30KK3ByaW50ZihPVVQgIixcblxu
Iik7CisKK3ByaW50ZihPVVQgIi8qIFRoaXMgdGFibGUgaXMgYSBjYXNlIGZsaXBwaW5nIHRhYmxl
LiAqL1xuXG4iKTsKIAotI2luY2x1ZGUgInBjcmVfaW50ZXJuYWwuaCIKK2lmICgkcGNyZV9pbnRl
cm5hbHtmY2Nfb2Zmc2V0fSAhPSAxMjgpIHsKKyAgZGllICJmY2Nfb2Zmc2V0ICE9IDEyOCI7Cit9
CisKK3ByaW50ZihPVVQgIiAgIik7Citmb3IgKG15ICRpID0gMDsgJGkgPCAxMjg7ICRpKyspIHsK
KyAgICBpZiAoKCRpICYgNykgPT0gMCAmJiAkaSAhPSAwKSB7CisgICAgICAgIHByaW50ZihPVVQg
IlxuICAiKTsKKyAgICB9CisgICAgbXkgJGMgPSBjaHIoJGkpOworICAgIHByaW50ZihPVVQgIjB4
JTAyWCIsICRjID1+IC9bWzpsb3dlcjpdXS8gPyBvcmQodWMoJGMpKSA6IG9yZChsYygkYykpKTsK
KyAgICBpZiAoJGkgIT0gMTI3KSB7CisgICAgICAgIHByaW50ZihPVVQgIiwgIik7CisgICAgfQor
fQorcHJpbnRmKE9VVCAiLFxuXG4iKTsKKworcHJpbnRmKE9VVAorICAgICIvKiBUaGlzIHRhYmxl
IGNvbnRhaW5zIGJpdCBtYXBzIGZvciB2YXJpb3VzIGNoYXJhY3RlciBjbGFzc2VzLlxuIiAuCisg
ICAgIkVhY2ggbWFwIGlzIDMyIGJ5dGVzIGxvbmcgYW5kIHRoZSBiaXRzIHJ1biBmcm9tIHRoZSBs
ZWFzdFxuIiAuCisgICAgInNpZ25pZmljYW50IGVuZCBvZiBlYWNoIGJ5dGUuIFRoZSBjbGFzc2Vz
IGFyZTogc3BhY2UsIGRpZ2l0LCB3b3JkLiAqL1xuXG4iKTsKIAotaW50IG1haW4oaW50IGFyZ2Ms
IGNoYXIgKiphcmd2KQoraWYgKCRwY3JlX2ludGVybmFse2NiaXRzX29mZnNldH0gIT0gJHBjcmVf
aW50ZXJuYWx7ZmNjX29mZnNldH0gKyAxMjgpIHsKKyAgICBkaWUgImNiaXRzX29mZnNldCAhPSBm
Y2Nfb2Zmc2V0ICsgMTI4IjsKK30KKworbXkgQGNiaXRfdGFibGUgPSAoMCkgeCAkcGNyZV9pbnRl
cm5hbHtjYml0X2xlbmd0aH07Citmb3IgKG15ICRpID0gb3JkKCcwJyk7ICRpIDw9IG9yZCgnOScp
OyAkaSsrKSB7CisgICAgJGNiaXRfdGFibGVbJHBjcmVfaW50ZXJuYWx7Y2JpdF9kaWdpdH0gKyAk
aSAvIDhdIHw9IDEgPDwgKCRpICYgNyk7Cit9CiskY2JpdF90YWJsZVskcGNyZV9pbnRlcm5hbHtj
Yml0X3dvcmR9ICsgb3JkKCdfJykgLyA4XSB8PSAxIDw8IChvcmQoJ18nKSAmIDcpOworZm9yICht
eSAkaSA9IDA7ICRpIDwgMTI4OyAkaSsrKSB7CisgICAgbXkgJGMgPSBjaHIoJGkpOworICAgIGlm
ICgkYyA9fiAvW1s6YWxudW06XV0vKSB7CisgICAgICAgICRjYml0X3RhYmxlWyRwY3JlX2ludGVy
bmFse2NiaXRfd29yZH0gKyAkaSAvIDhdIHw9IDEgPDwgKCRpICYgNyk7CisgICAgfQorICAgIGlm
ICgkYyA9fiAvW1s6c3BhY2U6XV0vKSB7CisgICAgICAgICRjYml0X3RhYmxlWyRwY3JlX2ludGVy
bmFse2NiaXRfc3BhY2V9ICsgJGkgLyA4XSB8PSAxIDw8ICgkaSAmIDcpOworICAgIH0KK30KKwor
cHJpbnRmKE9VVCAiICAiKTsKK2ZvciAobXkgJGkgPSAwOyAkaSA8ICRwY3JlX2ludGVybmFse2Ni
aXRfbGVuZ3RofTsgJGkrKykgeworICAgIGlmICgoJGkgJiA3KSA9PSAwICYmICRpICE9IDApIHsK
KyAgICAgICAgaWYgKCgkaSAmIDMxKSA9PSAwKSB7CisgICAgICAgICAgICBwcmludGYoT1VUICJc
biIpOworICAgICAgICB9CisgICAgICAgIHByaW50ZihPVVQgIlxuICAiKTsKKyAgICB9CisgICAg
cHJpbnRmKE9VVCAiMHglMDJYIiwgJGNiaXRfdGFibGVbJGldKTsKKyAgICBpZiAoJGkgIT0gJHBj
cmVfaW50ZXJuYWx7Y2JpdF9sZW5ndGh9IC0gMSkgeworICAgICAgICBwcmludGYoT1VUICIsICIp
OworICAgIH0KK30KK3ByaW50ZihPVVQgIixcblxuIik7CisKK3ByaW50ZihPVVQKKyAgICAiLyog
VGhpcyB0YWJsZSBpZGVudGlmaWVzIHZhcmlvdXMgY2xhc3NlcyBvZiBjaGFyYWN0ZXIgYnkgaW5k
aXZpZHVhbCBiaXRzOlxuIiAuCisgICAgIiAgMHglMDJ4ICAgd2hpdGUgc3BhY2UgY2hhcmFjdGVy
XG4iIC4KKyAgICAiICAweCUwMnggICBoZXhhZGVjaW1hbCBkaWdpdFxuIiAuCisgICAgIiAgMHgl
MDJ4ICAgYWxwaGFudW1lcmljIG9yICdfJ1xuKi9cblxuIiwKKyAgICAkcGNyZV9pbnRlcm5hbHtj
dHlwZV9zcGFjZX0sICRwY3JlX2ludGVybmFse2N0eXBlX3hkaWdpdH0sICRwY3JlX2ludGVybmFs
e2N0eXBlX3dvcmR9KTsKKworaWYgKCRwY3JlX2ludGVybmFse2N0eXBlc19vZmZzZXR9ICE9ICRw
Y3JlX2ludGVybmFse2NiaXRzX29mZnNldH0gKyAkcGNyZV9pbnRlcm5hbHtjYml0X2xlbmd0aH0p
IHsKKyAgICBkaWUgImN0eXBlc19vZmZzZXQgIT0gY2JpdHNfb2Zmc2V0ICsgY2JpdF9sZW5ndGgi
OworfQorCitwcmludGYoT1VUICIgICIpOworZm9yIChteSAkaSA9IDA7ICRpIDwgMTI4OyAkaSsr
KSB7CisgICAgbXkgJHggPSAwOworICAgIG15ICRjID0gY2hyKCRpKTsKKyAgICBpZiAoJGMgPX4g
L1tbOnNwYWNlOl1dLykgeworICAgICAgICAkeCArPSAkcGNyZV9pbnRlcm5hbHtjdHlwZV9zcGFj
ZX07CisgICAgfQorICAgIGlmICgkYyA9fiAvW1s6eGRpZ2l0Ol1dLykgeworICAgICAgICAkeCAr
PSAkcGNyZV9pbnRlcm5hbHtjdHlwZV94ZGlnaXR9OworICAgIH0KKyAgICBpZiAoJGMgPX4gL1tb
OmFsbnVtOl1fXS8pIHsKKyAgICAgICAgJHggKz0gJHBjcmVfaW50ZXJuYWx7Y3R5cGVfd29yZH07
CisgICAgfQorICAgIHByaW50ZihPVVQgIjB4JTAyWCIsICR4KTsKKyAgICBpZiAoJGkgIT0gMTI3
KSB7CisgICAgICAgIHByaW50ZihPVVQgIiwgIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcHJp
bnRmKE9VVCAifTsiKTsKKyAgICB9CisgICAgaWYgKCgkaSAmIDcpID09IDcpIHsKKyAgICAgICAg
cHJpbnRmKE9VVCAiIC8qICIpOworICAgICAgICBteSAkZCA9IGNocigkaSAtIDcpOworICAgICAg
ICBpZiAoJGQgPX4gL1tbOnByaW50Ol1dLykgeworICAgICAgICAgICAgcHJpbnRmKE9VVCAiICVj
IC0iLCAkaSAtIDcpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcHJpbnRmKE9VVCAi
JTNkLSIsICRpIC0gNyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCRjID1+IG0vW1s6cHJpbnQ6
XV0vKSB7CisgICAgICAgICAgICBwcmludGYoT1VUICIgJWMgIiwgJGkpOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgcHJpbnRmKE9VVCAiJTNkIiwgJGkpOworICAgICAgICB9CisgICAg
ICAgIHByaW50ZihPVVQgIiAqL1xuIik7CisgICAgICAgIGlmICgkaSAhPSAxMjcpIHsKKyAgICAg
ICAgICAgIHByaW50ZihPVVQgIiAgIik7CisgICAgICAgIH0KKyAgICB9Cit9CisKK2lmICgkcGNy
ZV9pbnRlcm5hbHt0YWJsZXNfbGVuZ3RofSAhPSAkcGNyZV9pbnRlcm5hbHtjdHlwZXNfb2Zmc2V0
fSArIDEyOCkgeworICAgIGRpZSAidGFibGVzX2xlbmd0aCAhPSBjdHlwZXNfb2Zmc2V0ICsgMTI4
IjsKK30KKworcHJpbnRmKE9VVCAiXG5cbi8qIEVuZCBvZiBjaGFydGFibGVzLmMgKi9cbiIpOwor
CitjbG9zZShPVVQpOworCitleGl0IDA7CisKK3N1YiByZWFkSGVhZGVyVmFsdWVzKCkKIHsKLWlm
IChhcmdjICE9IDIpCi0gIHsKLSAgZnByaW50ZihzdGRlcnIsICJkZnRhYmxlczogb25lIGZpbGVu
YW1lIGFyZ3VtZW50IGlzIHJlcXVpcmVkXG4iKTsKLSAgcmV0dXJuIDE7Ci0gIH0KLQotRklMRSog
ZiA9IGZvcGVuKGFyZ3ZbMV0sICJ3YiIpOwotaWYgKGYgPT0gTlVMTCkKLSAgewotICBmcHJpbnRm
KHN0ZGVyciwgImRmdGFibGVzOiBmYWlsZWQgdG8gb3BlbiAlcyBmb3Igd3JpdGluZ1xuIiwgYXJn
dlsxXSk7Ci0gIHJldHVybiAxOwotICB9Ci0KLWludCBpOwotCi1mcHJpbnRmKGYsCi0gICIvKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuIgotICAiKiAg
ICAgIFBlcmwtQ29tcGF0aWJsZSBSZWd1bGFyIEV4cHJlc3Npb25zICAgICAgICpcbiIKLSAgIioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiIKLSAg
Ii8qIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IHdyaXR0ZW4gYnkgdGhlIGRmdGFibGVzIGF1
eGlsaWFyeSBcbiIKLSAgInByb2dyYW0uIElmIHlvdSBlZGl0IGl0IGJ5IGhhbmQsIHlvdSBtaWdo
dCBsaWtlIHRvIGVkaXQgdGhlIE1ha2VmaWxlIHRvIFxuIgotICAicHJldmVudCBpdHMgZXZlciBi
ZWluZyByZWdlbmVyYXRlZC5cblxuIik7Ci1mcHJpbnRmKGYsCi0gICJUaGlzIGZpbGUgY29udGFp
bnMgdGhlIGRlZmF1bHQgdGFibGVzIGZvciBjaGFyYWN0ZXJzIHdpdGggY29kZXMgbGVzcyB0aGFu
XG4iCi0gICIxMjggKEFTQ0lJIGNoYXJhY3RlcnMpLiBUaGVzZSB0YWJsZXMgYXJlIHVzZWQgd2hl
biBubyBleHRlcm5hbCB0YWJsZXMgYXJlXG4iCi0gICJwYXNzZWQgdG8gUENSRS4gKi9cblxuIgot
ICAiY29uc3QgdW5zaWduZWQgY2hhciBranNfcGNyZV9kZWZhdWx0X3RhYmxlc1slZF0gPSB7XG5c
biIKLSAgIi8qIFRoaXMgdGFibGUgaXMgYSBsb3dlciBjYXNpbmcgdGFibGUuICovXG5cbiIsIHRh
Ymxlc19sZW5ndGgpOwotCi1pZiAobGNjX29mZnNldCAhPSAwKQotICBhYm9ydCgpOwotCi1mcHJp
bnRmKGYsICIgICIpOwotZm9yIChpID0gMDsgaSA8IDEyODsgaSsrKQotICB7Ci0gIGlmICgoaSAm
IDcpID09IDAgJiYgaSAhPSAwKSBmcHJpbnRmKGYsICJcbiAgIik7Ci0gIGZwcmludGYoZiwgIjB4
JTAyWCIsIHRvbG93ZXIoaSkpOwotICBpZiAoaSAhPSAxMjcpIGZwcmludGYoZiwgIiwgIik7Ci0g
IH0KLWZwcmludGYoZiwgIixcblxuIik7Ci0KLWZwcmludGYoZiwgIi8qIFRoaXMgdGFibGUgaXMg
YSBjYXNlIGZsaXBwaW5nIHRhYmxlLiAqL1xuXG4iKTsKLQotaWYgKGZjY19vZmZzZXQgIT0gMTI4
KQotICBhYm9ydCgpOwotCi1mcHJpbnRmKGYsICIgICIpOwotZm9yIChpID0gMDsgaSA8IDEyODsg
aSsrKQotICB7Ci0gIGlmICgoaSAmIDcpID09IDAgJiYgaSAhPSAwKSBmcHJpbnRmKGYsICJcbiAg
Iik7Ci0gIGZwcmludGYoZiwgIjB4JTAyWCIsIGlzbG93ZXIoaSkgPyB0b3VwcGVyKGkpIDogdG9s
b3dlcihpKSk7Ci0gIGlmIChpICE9IDEyNykgZnByaW50ZihmLCAiLCAiKTsKLSAgfQotZnByaW50
ZihmLCAiLFxuXG4iKTsKLQotZnByaW50ZihmLAotICAiLyogVGhpcyB0YWJsZSBjb250YWlucyBi
aXQgbWFwcyBmb3IgdmFyaW91cyBjaGFyYWN0ZXIgY2xhc3Nlcy5cbiIKLSAgIkVhY2ggbWFwIGlz
IDMyIGJ5dGVzIGxvbmcgYW5kIHRoZSBiaXRzIHJ1biBmcm9tIHRoZSBsZWFzdFxuIgotICAic2ln
bmlmaWNhbnQgZW5kIG9mIGVhY2ggYnl0ZS4gVGhlIGNsYXNzZXMgYXJlOiBzcGFjZSwgZGlnaXQs
IHdvcmQuICovXG5cbiIpOwotCi1pZiAoY2JpdHNfb2Zmc2V0ICE9IGZjY19vZmZzZXQgKyAxMjgp
Ci0gIGFib3J0KCk7Ci0KLXVuc2lnbmVkIGNoYXIgY2JpdF90YWJsZVtjYml0X2xlbmd0aF07Ci1t
ZW1zZXQoY2JpdF90YWJsZSwgMCwgY2JpdF9sZW5ndGgpOwotZm9yIChpID0gJzAnOyBpIDw9ICc5
JzsgaSsrKQotICBjYml0X3RhYmxlW2NiaXRfZGlnaXQgKyBpIC8gOF0gfD0gMSA8PCAoaSAmIDcp
OwotY2JpdF90YWJsZVtjYml0X3dvcmQgKyAnXycgLyA4XSB8PSAxIDw8ICgnXycgJiA3KTsKLWZv
ciAoaSA9IDA7IGkgPCAxMjg7IGkrKykKLSAgewotICBpZiAoaXNhbG51bShpKSkgY2JpdF90YWJs
ZVtjYml0X3dvcmQgKyBpLzhdIHw9IDEgPDwgKGkgJiA3KTsKLSAgaWYgKGlzc3BhY2UoaSkpIGNi
aXRfdGFibGVbY2JpdF9zcGFjZSArIGkvOF0gfD0gMSA8PCAoaSAmIDcpOwotICB9Ci0KLWZwcmlu
dGYoZiwgIiAgIik7Ci1mb3IgKGkgPSAwOyBpIDwgY2JpdF9sZW5ndGg7IGkrKykKLSAgewotICBp
ZiAoKGkgJiA3KSA9PSAwICYmIGkgIT0gMCkKLSAgICB7Ci0gICAgaWYgKChpICYgMzEpID09IDAp
IGZwcmludGYoZiwgIlxuIik7Ci0gICAgZnByaW50ZihmLCAiXG4gICIpOwotICAgIH0KLSAgZnBy
aW50ZihmLCAiMHglMDJYIiwgY2JpdF90YWJsZVtpXSk7Ci0gIGlmIChpICE9IGNiaXRfbGVuZ3Ro
IC0gMSkgZnByaW50ZihmLCAiLCAiKTsKLSAgfQotZnByaW50ZihmLCAiLFxuXG4iKTsKLQotZnBy
aW50ZihmLAotICAiLyogVGhpcyB0YWJsZSBpZGVudGlmaWVzIHZhcmlvdXMgY2xhc3NlcyBvZiBj
aGFyYWN0ZXIgYnkgaW5kaXZpZHVhbCBiaXRzOlxuIgotICAiICAweCUwMnggICB3aGl0ZSBzcGFj
ZSBjaGFyYWN0ZXJcbiIKLSAgIiAgMHglMDJ4ICAgaGV4YWRlY2ltYWwgZGlnaXRcbiIKLSAgIiAg
MHglMDJ4ICAgYWxwaGFudW1lcmljIG9yICdfJ1xuKi9cblxuIiwKLSAgY3R5cGVfc3BhY2UsIGN0
eXBlX3hkaWdpdCwgY3R5cGVfd29yZCk7Ci0KLWlmIChjdHlwZXNfb2Zmc2V0ICE9IGNiaXRzX29m
ZnNldCArIGNiaXRfbGVuZ3RoKQotICAgIGFib3J0KCk7Ci0KLWZwcmludGYoZiwgIiAgIik7Ci1m
b3IgKGkgPSAwOyBpIDwgMTI4OyBpKyspCi0gIHsKLSAgaW50IHggPSAwOwotICBpZiAoaXNzcGFj
ZShpKSkgeCArPSBjdHlwZV9zcGFjZTsKLSAgaWYgKGlzeGRpZ2l0KGkpKSB4ICs9IGN0eXBlX3hk
aWdpdDsKLSAgaWYgKGlzYWxudW0oaSkgfHwgaSA9PSAnXycpIHggKz0gY3R5cGVfd29yZDsKLSAg
ZnByaW50ZihmLCAiMHglMDJYIiwgeCk7Ci0gIGlmIChpICE9IDEyNykKLSAgICBmcHJpbnRmKGYs
ICIsICIpOwotICBlbHNlCi0gICAgZnByaW50ZihmLCAifTsiKTsKLSAgaWYgKChpICYgNykgPT0g
NykKLSAgICB7Ci0gICAgZnByaW50ZihmLCAiIC8qICIpOwotICAgIGlmIChpc3ByaW50KGkgLSA3
KSkgZnByaW50ZihmLCAiICVjIC0iLCBpIC0gNyk7Ci0gICAgICBlbHNlIGZwcmludGYoZiwgIiUz
ZC0iLCBpIC0gNyk7Ci0gICAgaWYgKGlzcHJpbnQoaSkpIGZwcmludGYoZiwgIiAlYyAiLCBpKTsK
LSAgICAgIGVsc2UgZnByaW50ZihmLCAiJTNkIiwgaSk7Ci0gICAgZnByaW50ZihmLCAiICovXG4i
KTsKLSAgICBpZiAoaSAhPSAxMjcpCi0gICAgICBmcHJpbnRmKGYsICIgICIpOwotICAgIH0KLSAg
fQorICAgIG15IEB2YXJpYWJsZXMgPSBxdygKKyAgICAgICAgY2JpdF9kaWdpdAorICAgICAgICBj
Yml0X2xlbmd0aAorICAgICAgICBjYml0X3NwYWNlCisgICAgICAgIGNiaXRfd29yZAorICAgICAg
ICBjYml0c19vZmZzZXQKKyAgICAgICAgY3R5cGVfc3BhY2UKKyAgICAgICAgY3R5cGVfd29yZAor
ICAgICAgICBjdHlwZV94ZGlnaXQKKyAgICAgICAgY3R5cGVzX29mZnNldAorICAgICAgICBmY2Nf
b2Zmc2V0CisgICAgICAgIGxjY19vZmZzZXQKKyAgICAgICAgdGFibGVzX2xlbmd0aAorICAgICk7
CisKKyAgICBsb2NhbCAkLyA9IHVuZGVmOworCisgICAgbXkgJGhlYWRlclBhdGggPSBGaWxlOjpT
cGVjLT5jYXRmaWxlKGRpcm5hbWUoJDApLCAicGNyZV9pbnRlcm5hbC5oIik7CisKKyAgICBteSAk
ZmggPSBuZXcgRmlsZTo6VGVtcCgKKyAgICAgICAgRElSID0+ICgkRU5WeydUTVBESVInfSB8fCAi
L3RtcCIpLAorICAgICAgICBTVUZGSVggPT4gIi5pbiIsCisgICAgICAgIFRFTVBMQVRFID0+IGJh
c2VuYW1lKCQwKSAuICItWFhYWFhYWFgiLAorICAgICAgICBVTkxJTksgPT4gMCwKKyAgICApOwor
ICAgIG15ICR0ZW1wRmlsZSA9ICRmaC0+ZmlsZW5hbWUoKTsKKworICAgIHByaW50ICRmaCAiI2Rl
ZmluZSBERlRBQkxFU1xuXG4iOworCisgICAgb3BlbihIRUFERVIsICI8IiwgJGhlYWRlclBhdGgp
IG9yIGRpZSAiJCEiOworICAgIHByaW50ICRmaCA8SEVBREVSPjsKKyAgICBjbG9zZShIRUFERVIp
OworCisgICAgcHJpbnQgJGZoICJcblxuIjsKKworICAgIGZvciBteSAkdiAoQHZhcmlhYmxlcykg
eworICAgICAgICBwcmludCAkZmggIlwkcGNyZV9pbnRlcm5hbHtcIiR2XCJ9ID0gJHY7XG4iOwor
ICAgIH0KIAotaWYgKHRhYmxlc19sZW5ndGggIT0gY3R5cGVzX29mZnNldCArIDEyOCkKLSAgICBh
Ym9ydCgpOworICAgIGNsb3NlKCRmaCk7CiAKLWZwcmludGYoZiwgIlxuXG4vKiBFbmQgb2YgY2hh
cnRhYmxlcy5jICovXG4iKTsKKyAgICBvcGVuKENQUCwgIi18IiwgImNwcCIsICR0ZW1wRmlsZSkg
b3IgZGllICIkISI7CisgICAgbXkgJGNvbnRlbnQgPSA8Q1BQPjsKKyAgICBjbG9zZShDUFApOwog
Ci1mY2xvc2UoZik7Ci1yZXR1cm4gMDsKKyAgICBldmFsICRjb250ZW50OworICAgIGRpZSAiJEAi
IGlmICRAOwogfQpJbmRleDogSmF2YVNjcmlwdENvcmUvcGNyZS9kZnRhYmxlcy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gSmF2YVNjcmlwdENvcmUvcGNyZS9kZnRhYmxlcy5jcHAJKHJldmlzaW9uIDI5MzYy
KQorKysgSmF2YVNjcmlwdENvcmUvcGNyZS9kZnRhYmxlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsMTg0ICswLDAgQEAKLS8qIFRoaXMgaXMgSmF2YVNjcmlwdENvcmUncyB2YXJpYW50IG9mIHRo
ZSBQQ1JFIGxpYnJhcnkuIFdoaWxlIHRoaXMgbGlicmFyeQotc3RhcnRlZCBvdXQgYXMgYSBjb3B5
IG9mIFBDUkUsIG1hbnkgb2YgdGhlIGZlYXR1cmVzIG9mIFBDUkUgaGF2ZSBiZWVuCi1yZW1vdmVk
LiBUaGlzIGxpYnJhcnkgbm93IHN1cHBvcnRzIG9ubHkgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBm
ZWF0dXJlcwotcmVxdWlyZWQgYnkgdGhlIEphdmFTY3JpcHQgbGFuZ3VhZ2Ugc3BlY2lmaWNhdGlv
biwgYW5kIGhhcyBvbmx5IHRoZSBmdW5jdGlvbnMKLW5lZWRlZCBieSBKYXZhU2NyaXB0Q29yZSBh
bmQgdGhlIHJlc3Qgb2YgV2ViS2l0LgotCi0gICAgICAgICAgICAgICAgIE9yaWdpbmFsbHkgd3Jp
dHRlbiBieSBQaGlsaXAgSGF6ZWwKLSAgICAgICAgICAgQ29weXJpZ2h0IChjKSAxOTk3LTIwMDYg
VW5pdmVyc2l0eSBvZiBDYW1icmlkZ2UKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDIsIDIwMDQsIDIw
MDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci1tb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKLQotICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90
aWNlLAotICAgICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLQotICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAgICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0KLSAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2Ft
YnJpZGdlIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gICAgICBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICAgICAgdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLQot
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUyAiQVMgSVMiCi1BTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi1JTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQot
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFCi1MSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi1DT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci1JTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgotQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLUFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFCi1QT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0qLwotCi0vKiBU
aGlzIGlzIGEgZnJlZXN0YW5kaW5nIHN1cHBvcnQgcHJvZ3JhbSB0byBnZW5lcmF0ZSBhIGZpbGUg
Y29udGFpbmluZwotY2hhcmFjdGVyIHRhYmxlcy4gVGhlIHRhYmxlcyBhcmUgYnVpbHQgYWNjb3Jk
aW5nIHRvIHRoZSBkZWZhdWx0IEMKLWxvY2FsZS4gKi8KLQotI2RlZmluZSBERlRBQkxFUwotCi0j
aW5jbHVkZSA8Y3R5cGUuaD4KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5o
PgotI2luY2x1ZGUgPHN0cmluZy5oPgotCi0jaW5jbHVkZSAicGNyZV9pbnRlcm5hbC5oIgotCi1p
bnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCi17Ci1pZiAoYXJnYyAhPSAyKQotICB7Ci0g
IGZwcmludGYoc3RkZXJyLCAiZGZ0YWJsZXM6IG9uZSBmaWxlbmFtZSBhcmd1bWVudCBpcyByZXF1
aXJlZFxuIik7Ci0gIHJldHVybiAxOwotICB9Ci0KLUZJTEUqIGYgPSBmb3Blbihhcmd2WzFdLCAi
d2IiKTsKLWlmIChmID09IE5VTEwpCi0gIHsKLSAgZnByaW50ZihzdGRlcnIsICJkZnRhYmxlczog
ZmFpbGVkIHRvIG9wZW4gJXMgZm9yIHdyaXRpbmdcbiIsIGFyZ3ZbMV0pOwotICByZXR1cm4gMTsK
LSAgfQotCi1pbnQgaTsKLQotZnByaW50ZihmLAotICAiLyoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKipcbiIKLSAgIiogICAgICBQZXJsLUNvbXBhdGlibGUg
UmVndWxhciBFeHByZXNzaW9ucyAgICAgICAqXG4iCi0gICIqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4iCi0gICIvKiBUaGlzIGZpbGUgaXMgYXV0
b21hdGljYWxseSB3cml0dGVuIGJ5IHRoZSBkZnRhYmxlcyBhdXhpbGlhcnkgXG4iCi0gICJwcm9n
cmFtLiBJZiB5b3UgZWRpdCBpdCBieSBoYW5kLCB5b3UgbWlnaHQgbGlrZSB0byBlZGl0IHRoZSBN
YWtlZmlsZSB0byBcbiIKLSAgInByZXZlbnQgaXRzIGV2ZXIgYmVpbmcgcmVnZW5lcmF0ZWQuXG5c
biIpOwotZnByaW50ZihmLAotICAiVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBkZWZhdWx0IHRhYmxl
cyBmb3IgY2hhcmFjdGVycyB3aXRoIGNvZGVzIGxlc3MgdGhhblxuIgotICAiMTI4IChBU0NJSSBj
aGFyYWN0ZXJzKS4gVGhlc2UgdGFibGVzIGFyZSB1c2VkIHdoZW4gbm8gZXh0ZXJuYWwgdGFibGVz
IGFyZVxuIgotICAicGFzc2VkIHRvIFBDUkUuICovXG5cbiIKLSAgImNvbnN0IHVuc2lnbmVkIGNo
YXIga2pzX3BjcmVfZGVmYXVsdF90YWJsZXNbJWRdID0ge1xuXG4iCi0gICIvKiBUaGlzIHRhYmxl
IGlzIGEgbG93ZXIgY2FzaW5nIHRhYmxlLiAqL1xuXG4iLCB0YWJsZXNfbGVuZ3RoKTsKLQotaWYg
KGxjY19vZmZzZXQgIT0gMCkKLSAgYWJvcnQoKTsKLQotZnByaW50ZihmLCAiICAiKTsKLWZvciAo
aSA9IDA7IGkgPCAxMjg7IGkrKykKLSAgewotICBpZiAoKGkgJiA3KSA9PSAwICYmIGkgIT0gMCkg
ZnByaW50ZihmLCAiXG4gICIpOwotICBmcHJpbnRmKGYsICIweCUwMlgiLCB0b2xvd2VyKGkpKTsK
LSAgaWYgKGkgIT0gMTI3KSBmcHJpbnRmKGYsICIsICIpOwotICB9Ci1mcHJpbnRmKGYsICIsXG5c
biIpOwotCi1mcHJpbnRmKGYsICIvKiBUaGlzIHRhYmxlIGlzIGEgY2FzZSBmbGlwcGluZyB0YWJs
ZS4gKi9cblxuIik7Ci0KLWlmIChmY2Nfb2Zmc2V0ICE9IDEyOCkKLSAgYWJvcnQoKTsKLQotZnBy
aW50ZihmLCAiICAiKTsKLWZvciAoaSA9IDA7IGkgPCAxMjg7IGkrKykKLSAgewotICBpZiAoKGkg
JiA3KSA9PSAwICYmIGkgIT0gMCkgZnByaW50ZihmLCAiXG4gICIpOwotICBmcHJpbnRmKGYsICIw
eCUwMlgiLCBpc2xvd2VyKGkpID8gdG91cHBlcihpKSA6IHRvbG93ZXIoaSkpOwotICBpZiAoaSAh
PSAxMjcpIGZwcmludGYoZiwgIiwgIik7Ci0gIH0KLWZwcmludGYoZiwgIixcblxuIik7Ci0KLWZw
cmludGYoZiwKLSAgIi8qIFRoaXMgdGFibGUgY29udGFpbnMgYml0IG1hcHMgZm9yIHZhcmlvdXMg
Y2hhcmFjdGVyIGNsYXNzZXMuXG4iCi0gICJFYWNoIG1hcCBpcyAzMiBieXRlcyBsb25nIGFuZCB0
aGUgYml0cyBydW4gZnJvbSB0aGUgbGVhc3RcbiIKLSAgInNpZ25pZmljYW50IGVuZCBvZiBlYWNo
IGJ5dGUuIFRoZSBjbGFzc2VzIGFyZTogc3BhY2UsIGRpZ2l0LCB3b3JkLiAqL1xuXG4iKTsKLQot
aWYgKGNiaXRzX29mZnNldCAhPSBmY2Nfb2Zmc2V0ICsgMTI4KQotICBhYm9ydCgpOwotCi11bnNp
Z25lZCBjaGFyIGNiaXRfdGFibGVbY2JpdF9sZW5ndGhdOwotbWVtc2V0KGNiaXRfdGFibGUsIDAs
IGNiaXRfbGVuZ3RoKTsKLWZvciAoaSA9ICcwJzsgaSA8PSAnOSc7IGkrKykKLSAgY2JpdF90YWJs
ZVtjYml0X2RpZ2l0ICsgaSAvIDhdIHw9IDEgPDwgKGkgJiA3KTsKLWNiaXRfdGFibGVbY2JpdF93
b3JkICsgJ18nIC8gOF0gfD0gMSA8PCAoJ18nICYgNyk7Ci1mb3IgKGkgPSAwOyBpIDwgMTI4OyBp
KyspCi0gIHsKLSAgaWYgKGlzYWxudW0oaSkpIGNiaXRfdGFibGVbY2JpdF93b3JkICsgaS84XSB8
PSAxIDw8IChpICYgNyk7Ci0gIGlmIChpc3NwYWNlKGkpKSBjYml0X3RhYmxlW2NiaXRfc3BhY2Ug
KyBpLzhdIHw9IDEgPDwgKGkgJiA3KTsKLSAgfQotCi1mcHJpbnRmKGYsICIgICIpOwotZm9yIChp
ID0gMDsgaSA8IGNiaXRfbGVuZ3RoOyBpKyspCi0gIHsKLSAgaWYgKChpICYgNykgPT0gMCAmJiBp
ICE9IDApCi0gICAgewotICAgIGlmICgoaSAmIDMxKSA9PSAwKSBmcHJpbnRmKGYsICJcbiIpOwot
ICAgIGZwcmludGYoZiwgIlxuICAiKTsKLSAgICB9Ci0gIGZwcmludGYoZiwgIjB4JTAyWCIsIGNi
aXRfdGFibGVbaV0pOwotICBpZiAoaSAhPSBjYml0X2xlbmd0aCAtIDEpIGZwcmludGYoZiwgIiwg
Iik7Ci0gIH0KLWZwcmludGYoZiwgIixcblxuIik7Ci0KLWZwcmludGYoZiwKLSAgIi8qIFRoaXMg
dGFibGUgaWRlbnRpZmllcyB2YXJpb3VzIGNsYXNzZXMgb2YgY2hhcmFjdGVyIGJ5IGluZGl2aWR1
YWwgYml0czpcbiIKLSAgIiAgMHglMDJ4ICAgd2hpdGUgc3BhY2UgY2hhcmFjdGVyXG4iCi0gICIg
IDB4JTAyeCAgIGhleGFkZWNpbWFsIGRpZ2l0XG4iCi0gICIgIDB4JTAyeCAgIGFscGhhbnVtZXJp
YyBvciAnXydcbiovXG5cbiIsCi0gIGN0eXBlX3NwYWNlLCBjdHlwZV94ZGlnaXQsIGN0eXBlX3dv
cmQpOwotCi1pZiAoY3R5cGVzX29mZnNldCAhPSBjYml0c19vZmZzZXQgKyBjYml0X2xlbmd0aCkK
LSAgICBhYm9ydCgpOwotCi1mcHJpbnRmKGYsICIgICIpOwotZm9yIChpID0gMDsgaSA8IDEyODsg
aSsrKQotICB7Ci0gIGludCB4ID0gMDsKLSAgaWYgKGlzc3BhY2UoaSkpIHggKz0gY3R5cGVfc3Bh
Y2U7Ci0gIGlmIChpc3hkaWdpdChpKSkgeCArPSBjdHlwZV94ZGlnaXQ7Ci0gIGlmIChpc2FsbnVt
KGkpIHx8IGkgPT0gJ18nKSB4ICs9IGN0eXBlX3dvcmQ7Ci0gIGZwcmludGYoZiwgIjB4JTAyWCIs
IHgpOwotICBpZiAoaSAhPSAxMjcpCi0gICAgZnByaW50ZihmLCAiLCAiKTsKLSAgZWxzZQotICAg
IGZwcmludGYoZiwgIn07Iik7Ci0gIGlmICgoaSAmIDcpID09IDcpCi0gICAgewotICAgIGZwcmlu
dGYoZiwgIiAvKiAiKTsKLSAgICBpZiAoaXNwcmludChpIC0gNykpIGZwcmludGYoZiwgIiAlYyAt
IiwgaSAtIDcpOwotICAgICAgZWxzZSBmcHJpbnRmKGYsICIlM2QtIiwgaSAtIDcpOwotICAgIGlm
IChpc3ByaW50KGkpKSBmcHJpbnRmKGYsICIgJWMgIiwgaSk7Ci0gICAgICBlbHNlIGZwcmludGYo
ZiwgIiUzZCIsIGkpOwotICAgIGZwcmludGYoZiwgIiAqL1xuIik7Ci0gICAgaWYgKGkgIT0gMTI3
KQotICAgICAgZnByaW50ZihmLCAiICAiKTsKLSAgICB9Ci0gIH0KLQotaWYgKHRhYmxlc19sZW5n
dGggIT0gY3R5cGVzX29mZnNldCArIDEyOCkKLSAgICBhYm9ydCgpOwotCi1mcHJpbnRmKGYsICJc
blxuLyogRW5kIG9mIGNoYXJ0YWJsZXMuYyAqL1xuIik7Ci0KLWZjbG9zZShmKTsKLXJldHVybiAw
OwotfQpJbmRleDogSmF2YVNjcmlwdENvcmUvcGNyZS9kZnRhYmxlcy5wcm8KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gSmF2YVNjcmlwdENvcmUvcGNyZS9kZnRhYmxlcy5wcm8JKHJldmlzaW9uIDI5MzYyKQorKysg
SmF2YVNjcmlwdENvcmUvcGNyZS9kZnRhYmxlcy5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTEsMTIg
KzAsMCBAQAotVEVNUExBVEUgPSBhcHAKLUNPTkZJRyArPSBjb25zb2xlCi1DT05GSUcgLT0gYXBw
X2J1bmRsZSBxdAotU09VUkNFUyA9IGRmdGFibGVzLmNwcAotVEFSR0VUID0gZGZ0YWJsZXMKLURF
U1RESVIgPSB0bXAKLQotZ3RrLXBvcnQgewotICBERUZJTkVTICs9IEJVSUxESU5HX0dUS19fIEJV
SUxESU5HX0NBSVJPX18KLX0gZWxzZSB7Ci0gIERFRklORVMgKz0gQlVJTERJTkdfUVRfXwotfQpJ
bmRleDogSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlLnByaQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2Ny
aXB0Q29yZS9wY3JlL3BjcmUucHJpCShyZXZpc2lvbiAyOTM2MikKKysrIEphdmFTY3JpcHRDb3Jl
L3BjcmUvcGNyZS5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTEyLDkgKzEyLDYgQEAgU09VUkNFUyAr
PSBcCiAgICAgcGNyZV91Y3Bfc2VhcmNoZnVuY3MuY3BwIFwKICAgICBwY3JlX3hjbGFzcy5jcHAK
IAotQ1RHRU5GSUxFICs9IFwKLSAgICBkZnRhYmxlcy5jcHAKLQogIUNPTkZJRyhRVERJUl9idWls
ZCkgewogICAgIGRlZmluZVRlc3QoYWRkRXh0cmFDb21waWxlcikgewogICAgICAgICBRTUFLRV9F
WFRSQV9DT01QSUxFUlMgKz0gJCQxCkBAIC0yNyw4ICsyNCw3IEBAIENUR0VORklMRSArPSBcCiAK
ICMgR0VORVJBVE9SOiAiY2hhcnRhYmxlcy5jIjogY29tcGlsZSBhbmQgZXhlY3V0ZSB0aGUgY2hh
cnRhYmxlcyBnZW5lcmF0b3IgKGFuZCBhZGQgaXQgdG8gc291cmNlcykKIGN0Z2VuLm91dHB1dCA9
ICQkR0VORVJBVEVEX1NPVVJDRVNfRElSL2NoYXJ0YWJsZXMuYwotY3RnZW4uY29tbWFuZHMgPSAk
JE9VVFBVVF9ESVIvSmF2YVNjcmlwdENvcmUvcGNyZS90bXAvZGZ0YWJsZXMgJHtRTUFLRV9GSUxF
X09VVH0KLWN0Z2VuLmlucHV0ID0gQ1RHRU5GSUxFCitjdGdlbi5jb21tYW5kcyA9IGRmdGFibGVz
ICR7UU1BS0VfRklMRV9PVVR9CiBjdGdlbi5DT05GSUcgKz0gdGFyZ2V0X3ByZWRlcHMgbm9fbGlu
awogY3RnZW4udmFyaWFibGVfb3V0ID0gR0VORVJBVEVEX1NPVVJDRVMKIGN0Z2VuLmRlcGVuZGVu
Y3lfdHlwZSA9IFRZUEVfQwpJbmRleDogV2ViS2l0L3dpbi9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDI5Mzc2KQorKysgV2ViS2l0L3dpbi9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAwOC0wMS0xMCAgRGF2
aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgorCisgICAgICAgIGRmdGFibGVzIHNob3Vs
ZCBiZSByZXdyaXR0ZW4gYXMgYSBzY3JpcHQKKworICAgICAgICA8aHR0cDovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4MTg+CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81Njgx
NDYzPgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluLgorCisgICAgICAgICogV2ViS2l0LnZj
cHJvai9XZWJLaXQuc2xuOiBSZW1vdmVkIHJlZmVyZW5jZSB0byBkZnRhYmxlcyBwcm9qZWN0Lgor
CiAyMDA4LTAxLTEwICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBG
aXggbWFueSBidWdzIGJ5IGdpdmluZyBXaW5kb3dzIG9uZSBGcmFtZVZpZXcgcGVyIHBhZ2UgbG9h
ZApJbmRleDogV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdC5zbG4KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdC5zbG4JKHJldmlzaW9uIDI5MzYyKQor
KysgV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdC5zbG4JKHdvcmtpbmcgY29weSkKQEAg
LTQxLDcgKzQxLDYgQEAgRW5kUHJvamVjdA0KIFByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAt
OEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiSmF2YVNjcmlwdENvcmUiLCAiLi5cLi5cLi5cSmF2YVNj
cmlwdENvcmVcSmF2YVNjcmlwdENvcmUudmNwcm9qXEphdmFTY3JpcHRDb3JlXEphdmFTY3JpcHRD
b3JlLnZjcHJvaiIsICJ7MDExRDEwRjEtQjY1Ni00QTFCLUEwQzMtMzg0MkYwMjEyMkM1fSINCiAJ
UHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KIAkJezRG
RjVCQTExLTU5RUMtNEMyNC04RjUyLUYyMzVDMkU3RDQzQX0gPSB7NEZGNUJBMTEtNTlFQy00QzI0
LThGNTItRjIzNUMyRTdENDNBfQ0KLQkJe0JDMjk4MUMwLTY3QTUtNEEzQy04NzlCLTc4NEJDQkRF
MjU0MX0gPSB7QkMyOTgxQzAtNjdBNS00QTNDLTg3OUItNzg0QkNCREUyNTQxfQ0KIAlFbmRQcm9q
ZWN0U2VjdGlvbg0KIEVuZFByb2plY3QNCiBQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThE
MTEtMDBBMEM5MUJDOTQyfSIpID0gInRlc3RranMiLCAiLi5cLi5cLi5cSmF2YVNjcmlwdENvcmVc
SmF2YVNjcmlwdENvcmUudmNwcm9qXHRlc3RranNcdGVzdGtqcy52Y3Byb2oiLCAie0M1OUU1MTI5
LUI0NTMtNDlCNy1BNTJCLTFFMTA0NzE1Rjc2RX0iDQpAQCAtNTAsOCArNDksNiBAQCBQcm9qZWN0
KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5CiAJCXtBQThBNUE4NS01OTJCLTQzNTct
QkM2MC1FMEU5MUUwMjZBRjZ9ID0ge0FBOEE1QTg1LTU5MkItNDM1Ny1CQzYwLUUwRTkxRTAyNkFG
Nn0NCiAJRW5kUHJvamVjdFNlY3Rpb24NCiBFbmRQcm9qZWN0DQotUHJvamVjdCgiezhCQzlDRUI4
LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJkZnRhYmxlcyIsICIuLlwuLlwuLlxK
YXZhU2NyaXB0Q29yZVxKYXZhU2NyaXB0Q29yZS52Y3Byb2pcZGZ0YWJsZXNcZGZ0YWJsZXMudmNw
cm9qIiwgIntCQzI5ODFDMC02N0E1LTRBM0MtODc5Qi03ODRCQ0JERTI1NDF9Ig0KLUVuZFByb2pl
Y3QNCiBQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0g
IldURiIsICIuLlwuLlwuLlxKYXZhU2NyaXB0Q29yZVxKYXZhU2NyaXB0Q29yZS52Y3Byb2pcV1RG
XFdURi52Y3Byb2oiLCAie0FBOEE1QTg1LTU5MkItNDM1Ny1CQzYwLUUwRTkxRTAyNkFGNn0iDQog
RW5kUHJvamVjdA0KIFByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5
NDJ9IikgPSAiRmluZFNhZmFyaSIsICIuLlwuLlwuLlxXZWJLaXRUb29sc1xGaW5kU2FmYXJpXEZp
bmRTYWZhcmkudmNwcm9qIiwgIntEQTMxREE1Mi02Njc1LTQ4RDQtODlFMC0zMzNBNzE0NDM5N0N9
Ig0KQEAgLTY5LDkgKzY2LDYgQEAgUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAw
QTBDOQogCUVuZFByb2plY3RTZWN0aW9uDQogRW5kUHJvamVjdA0KIFByb2plY3QoIns4QkM5Q0VC
OC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiSmF2YVNjcmlwdENvcmVHZW5lcmF0
ZWQiLCAiLi5cLi5cLi5cSmF2YVNjcmlwdENvcmVcSmF2YVNjcmlwdENvcmUudmNwcm9qXEphdmFT
Y3JpcHRDb3JlXEphdmFTY3JpcHRDb3JlR2VuZXJhdGVkLnZjcHJvaiIsICJ7NEZGNUJBMTEtNTlF
Qy00QzI0LThGNTItRjIzNUMyRTdENDNBfSINCi0JUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVu
ZGVuY2llcykgPSBwb3N0UHJvamVjdA0KLQkJe0JDMjk4MUMwLTY3QTUtNEEzQy04NzlCLTc4NEJD
QkRFMjU0MX0gPSB7QkMyOTgxQzAtNjdBNS00QTNDLTg3OUItNzg0QkNCREUyNTQxfQ0KLQlFbmRQ
cm9qZWN0U2VjdGlvbg0KIEVuZFByb2plY3QNCiBQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQw
LThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIkludGVyZmFjZXNHZW5lcmF0ZWQiLCAiSW50ZXJmYWNl
c0dlbmVyYXRlZC52Y3Byb2oiLCAiezYyQzg5N0JFLUUyMDctNEJDNC1CMzdELTZGOUY5MTE2RjE2
Nn0iDQogCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QN
CkBAIC0xNDQsMTIgKzEzOCw2IEBAIEdsb2JhbA0KIAkJe0M1OUU1MTI5LUI0NTMtNDlCNy1BNTJC
LTFFMTA0NzE1Rjc2RX0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyDQogCQl7QzU5
RTUxMjktQjQ1My00OUI3LUE1MkItMUUxMDQ3MTVGNzZFfS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNm
ZyA9IFJlbGVhc2V8V2luMzINCiAJCXtDNTlFNTEyOS1CNDUzLTQ5QjctQTUyQi0xRTEwNDcxNUY3
NkV9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCi0JCXtCQzI5ODFDMC02
N0E1LTRBM0MtODc5Qi03ODRCQ0JERTI1NDF9LkRlYnVnX0ludGVybmFsfFdpbjMyLkFjdGl2ZUNm
ZyA9IERlYnVnfFdpbjMyDQotCQl7QkMyOTgxQzAtNjdBNS00QTNDLTg3OUItNzg0QkNCREUyNTQx
fS5EZWJ1Z19JbnRlcm5hbHxXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzINCi0JCXtCQzI5ODFD
MC02N0E1LTRBM0MtODc5Qi03ODRCQ0JERTI1NDF9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERl
YnVnfFdpbjMyDQotCQl7QkMyOTgxQzAtNjdBNS00QTNDLTg3OUItNzg0QkNCREUyNTQxfS5EZWJ1
Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzINCi0JCXtCQzI5ODFDMC02N0E1LTRBM0MtODc5
Qi03ODRCQ0JERTI1NDF9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCi0J
CXtCQzI5ODFDMC02N0E1LTRBM0MtODc5Qi03ODRCQ0JERTI1NDF9LlJlbGVhc2V8V2luMzIuQnVp
bGQuMCA9IERlYnVnfFdpbjMyDQogCQl7QUE4QTVBODUtNTkyQi00MzU3LUJDNjAtRTBFOTFFMDI2
QUY2fS5EZWJ1Z19JbnRlcm5hbHxXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMg0KIAkJe0FB
OEE1QTg1LTU5MkItNDM1Ny1CQzYwLUUwRTkxRTAyNkFGNn0uRGVidWdfSW50ZXJuYWx8V2luMzIu
QnVpbGQuMCA9IERlYnVnfFdpbjMyDQogCQl7QUE4QTVBODUtNTkyQi00MzU3LUJDNjAtRTBFOTFF
MDI2QUY2fS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMg0K
</data>

          </attachment>
      

    </bug>

</bugzilla>