<?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>19200</bug_id>
          
          <creation_ts>2008-05-22 14:27:42 -0700</creation_ts>
          <short_desc>*.in files should embed more information</short_desc>
          <delta_ts>2008-08-12 17:22:28 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Julien Chaffraix">jchaffraix</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>81255</commentid>
    <comment_count>0</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-05-22 14:27:42 -0700</bug_when>
    <thetext>Now that bug9191 is resolved, it would be nice to have some parameters/data in make_names.pl moved to the *.in files.
As pointed in the bug, XML seems like a good choice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>81461</commentid>
    <comment_count>1</comment_count>
      <attachid>21337</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-05-25 11:54:13 -0700</bug_when>
    <thetext>Created attachment 21337
Proof of concept

Attached is a sample of what I intend to do.

make_names.pl will discriminate the files according to the first element (&quot;tags&quot; or &quot;attrs&quot;).
It will use the attribute/value pair from that first element to build a parameter map that will be used for code generation.
The different tags/attrs (&quot;a&quot;, ...) follow and contain the different properties that were once in make_names.pl.

In the end, make_names.pl will only accept a limited number of parameters that cannot be included in the XML files.
Internally, we will move from arrays for attrs/tags to hashes of hashes so that each tags/attrs holds the full list of properties (this is a bit of an overkill but it will greatly simply extensibility).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>81584</commentid>
    <comment_count>2</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-05-27 05:22:57 -0700</bug_when>
    <thetext>We will also need to introduce a dependency on some Perl module to parse XML using SAX.

We have several choices:
- XML::Parser (or XML::Parser::Expat), which requires the expat library
- XML::libXML which will introduce a library dependency on the Qt port.
- ...

I am no Perl expert but those 2 seem the best available solutions. I have no preference as they works the same so the code will be roughly the same in each case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>81680</commentid>
    <comment_count>3</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-05-27 19:32:15 -0700</bug_when>
    <thetext>&gt; We have several choices:
&gt; - XML::Parser (or XML::Parser::Expat), which requires the expat library
&gt; - XML::libXML which will introduce a library dependency on the Qt port.
&gt; - ...

As discussed on IRC, those module includes new dependencies (on the library or the Perl module that needs to be compiled) so are not good candidates for our needs.

Furthermore, Sam pointed that other formats exist such as json, yaml, plist...

I had a look at the different formats and IMHO XML has the best zero-dependency Perl module (XML::Tiny).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>81681</commentid>
    <comment_count>4</comment_count>
      <attachid>21380</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-05-27 19:34:27 -0700</bug_when>
    <thetext>Created attachment 21380
First patch (using XML::Tiny)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82445</commentid>
    <comment_count>5</comment_count>
      <attachid>21380</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-06-06 11:10:43 -0700</bug_when>
    <thetext>Comment on attachment 21380
First patch (using XML::Tiny)

So this kinda looks like a work-in-progress to me.  I&apos;m OK with landing this as-is, but I&apos;d like to know more about the long-term plan for the syntax of this file.  It&apos;s kinda strange to have the xml tag name be the element name.  I guess I would have expected something more like:
&lt;tag&gt;a&lt;/tag&gt;
instead of
&lt;a/&gt;
although, I must admit,the later is much more concise.

Can you give more of a grand vision for what these files will contain when you&apos;re done hacking this all?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82455</commentid>
    <comment_count>6</comment_count>
      <attachid>21380</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-06-06 14:10:31 -0700</bug_when>
    <thetext>Comment on attachment 21380
First patch (using XML::Tiny)

Ok, Julien convinced me this was an incremental first step.  I think this is fine as-is.  I&apos;d like to see the rest of the &quot;Grand vision&quot; impelmented sooner rather than later though, since this syntax as-is is more combersome than the old files (for no gain).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82500</commentid>
    <comment_count>7</comment_count>
      <attachid>21380</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-06-06 19:13:59 -0700</bug_when>
    <thetext>Comment on attachment 21380
First patch (using XML::Tiny)

Committed in r34410.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82542</commentid>
    <comment_count>8</comment_count>
      <attachid>21556</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-06-07 02:15:13 -0700</bug_when>
    <thetext>Created attachment 21556
Second part - add XML attributes&apos; parsing and start moving some hacks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82543</commentid>
    <comment_count>9</comment_count>
      <attachid>21556</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-06-07 02:19:16 -0700</bug_when>
    <thetext>Comment on attachment 21556
Second part - add XML attributes&apos; parsing and start moving some hacks

looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82545</commentid>
    <comment_count>10</comment_count>
      <attachid>21556</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-06-07 02:59:34 -0700</bug_when>
    <thetext>Comment on attachment 21556
Second part - add XML attributes&apos; parsing and start moving some hacks

Committed in r34415.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82551</commentid>
    <comment_count>11</comment_count>
      <attachid>21559</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-06-07 06:18:06 -0700</bug_when>
    <thetext>Created attachment 21559
Third part - add a parameters hash and move some command line options to the *.in files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82670</commentid>
    <comment_count>12</comment_count>
      <attachid>21559</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-06-08 13:58:49 -0700</bug_when>
    <thetext>Comment on attachment 21559
Third part - add a parameters hash and move some command line options to the *.in files

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82732</commentid>
    <comment_count>13</comment_count>
      <attachid>21559</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-06-09 04:03:03 -0700</bug_when>
    <thetext>Comment on attachment 21559
Third part - add a parameters hash and move some command line options to the *.in files

landed in r34467.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82745</commentid>
    <comment_count>14</comment_count>
      <attachid>21593</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-06-09 07:47:56 -0700</bug_when>
    <thetext>Created attachment 21593
Fourth part: move more parameters</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82835</commentid>
    <comment_count>15</comment_count>
      <attachid>21593</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-06-10 10:22:38 -0700</bug_when>
    <thetext>Comment on attachment 21593
Fourth part: move more parameters

attrs shoudl have a null namespace by default.  SVG Attrs do not have a namespaceURI.

I don&apos;t think generateFactory and generateWrapperFactory shoudl be in these text files.  Those should be controlled by the scripts.  (i.e. you can generate one of htem if you want using the scripts).

The part of this which seems good in the files is the guardFactoryWith logic.

We can talk about it more over IRC if you like.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82837</commentid>
    <comment_count>16</comment_count>
      <attachid>21593</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-06-10 10:44:19 -0700</bug_when>
    <thetext>Comment on attachment 21593
Fourth part: move more parameters

Sigh.  I&apos;ve decided this is not really worth the trouble to make this more complicated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82854</commentid>
    <comment_count>17</comment_count>
      <attachid>21593</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-06-10 13:51:30 -0700</bug_when>
    <thetext>Comment on attachment 21593
Fourth part: move more parameters

landed in r34484.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82871</commentid>
    <comment_count>18</comment_count>
      <attachid>21612</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-06-10 17:24:05 -0700</bug_when>
    <thetext>Created attachment 21612
Final patch - Move more parameters in the XML files - Clean up the build systems</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82983</commentid>
    <comment_count>19</comment_count>
      <attachid>21612</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-06-11 11:58:38 -0700</bug_when>
    <thetext>Comment on attachment 21612
Final patch - Move more parameters in the XML files - Clean up the build systems

Why the mix of &apos;1&apos; in some places and &quot;1&quot; in others?

Seems fine.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>83076</commentid>
    <comment_count>20</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-06-11 17:46:29 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 21612 [edit])
&gt; Why the mix of &apos;1&apos; in some places and &quot;1&quot; in others?

I did not pay enough attention to the mix (the parser will not make a difference between the 2). I will correct the problem before landing.

I will also hold the patch a bit as there is an ongoing discussion on webkit-dev about the new format which could impact it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>88351</commentid>
    <comment_count>21</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-08-12 17:22:28 -0700</bug_when>
    <thetext>Closing the bug as the patch is outdated, it does not go in the direction that was discussed on the mailing list and I have something coming to solve it in a better way.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>21337</attachid>
            <date>2008-05-25 11:54:13 -0700</date>
            <delta_ts>2008-05-25 11:54:13 -0700</delta_ts>
            <desc>Proof of concept</desc>
            <filename>HTMLTagNames.in</filename>
            <type>text/plain</type>
            <size>2439</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">PHRhZ3MgbmFtZXNwYWNlPSJIVE1MIiBuYW1lc3BhY2VQcmVmaXg9InhodG1sIiBjcHBOYW1lc3Bh
Y2U9IldlYkNvcmUiIG5hbWVzcGFjZVVSST0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIg
Z2VuZXJhdGVGYWN0b3J5PSIxIiBnZW5lcmF0ZVdyYXBwZXJGYWN0b3J5PSIxIj4KPGEgdXBwZXJD
YXNlPSJBbmNob3IiLz4KPGFiYnIgbm9XcmFwcGVyPSIxIi8+CjxhY3JvbnltIG5vV3JhcHBlcj0i
MSIvPgo8YWRkcmVzcyBub1dyYXBwZXI9IjEiLz4KPGFwcGxldC8+CjxhcmVhLz4KI2lmIEVOQUJM
RV9WSURFTwo8YXVkaW8gYXBwbHlBdWRpb0hhY2s9IjEiLz4KI2VuZGlmCjxiIG5vV3JhcHBlcj0i
MSIvPgo8YmFzZS8+CjxiYXNlZm9udCB1cHBlckNhc2U9IkJhc2VGb250Ii8+CjxiZG8gbm9XcmFw
cGVyPSIxIi8+CjxiaWcgbm9XcmFwcGVyPSIxIi8+CjxibG9ja3F1b3RlLz4KPGJvZHkvPgo8YnIg
dXBwZXJDYXNlPSJCUiIvPgo8YnV0dG9uLz4KPGNhbnZhcy8+CjxjYXB0aW9uIHVwcGVyQ2FzZT0i
VGFibGVDYXB0aW9uIi8+CjxjZW50ZXIgbm9XcmFwcGVyPSIxIi8+CjxjaXRlIG5vV3JhcHBlcj0i
MSIvPgo8Y29kZSBub1dyYXBwZXI9IjEiLz4KPGNvbCB1cHBlckNhc2U9IlRhYmxlQ29sIi8+Cjxj
b2xncm91cCBjdXN0b21XcmFwcGVyPSJjb2wiLz4KPGRkIG5vV3JhcHBlcj0iMSIvPgo8ZGVsIHVw
cGVyQ2FzZT0iTW9kIi8+CjxkZm4gbm9XcmFwcGVyPSIxIi8+CjxkaXIgdXBwZXJDYXNlPSJEaXJl
Y3RvcnkiLz4KPGRpdi8+CjxkbCB1cHBlckNhc2U9IkRMaXN0Ii8+CjxkdCBub1dyYXBwZXI9IjEi
Lz4KPGVtIG5vV3JhcHBlcj0iMSIvPgo8ZW1iZWQvPgo8ZmllbGRzZXQgdXBwZXJDYXNlPSJGaWVs
ZFNldCIvPgo8Zm9udC8+Cjxmb3JtLz4KPGZyYW1lLz4KPGZyYW1lc2V0IHVwcGVyQ2FzZT0iRnJh
bWVTZXQiLz4KPGhlYWQvPgo8aDEgdXBwZXJDYXNlPSJIZWFkaW5nIi8+CjxoMiBjdXN0b21XcmFw
cGVyPSJoMSIvPgo8aDMgY3VzdG9tV3JhcHBlcj0iaDEiLz4KPGg0IGN1c3RvbVdyYXBwZXI9Imgx
Ii8+CjxoNSBjdXN0b21XcmFwcGVyPSJoMSIvPgo8aDYgY3VzdG9tV3JhcHBlcj0iaDEiLz4KPGhy
IHVwcGVyQ2FzZT0iSFIiLz4KPGh0bWwvPgo8aSBub1dyYXBwZXI9IjEiLz4KPGlmcmFtZSB1cHBl
ckNhc2U9IklGcmFtZSIvPgo8aW1hZ2UgY3VzdG9tV3JhcHBlcj0iaW1nIi8+CjxpbWcgdXBwZXJD
YXNlPSJJbWFnZSIvPgo8aW5wdXQvPgo8aW5zIGN1c3RvbVdyYXBwZXI9ImRlbCIvPgo8aXNpbmRl
eCB1cHBlckNhc2U9IklzSW5kZXgiLz4KPGtiZCBub1dyYXBwZXI9IjEiLz4KPGtleWdlbiBjdXN0
b21XcmFwcGVyPSJzZWxlY3QiLz4KPGxhYmVsLz4KPGxheWVyIG5vV3JhcHBlcj0iMSIvPgo8bGVn
ZW5kLz4KPGxpIHVwcGVyQ2FzZT0iTEkiLz4KPGxpbmsvPgo8bGlzdGluZyBjdXN0b21XcmFwcGVy
PSJwcmUiLz4KPG1hcC8+CjxtYXJxdWVlLz4KPG1lbnUvPgo8bWV0YS8+Cjxub2JyIG5vV3JhcHBl
cj0iMSIvPgo8bm9lbWJlZCBub1dyYXBwZXI9IjEiLz4KPG5vZnJhbWVzIG5vV3JhcHBlcj0iMSIv
Pgo8bm9sYXllciBub1dyYXBwZXI9IjEiLz4KPG5vc2NyaXB0IG5vV3JhcHBlcj0iMSIvPgo8b2Jq
ZWN0Lz4KPG9sIHVwcGVyQ2FzZT0iT0xpc3QiLz4KPG9wdGdyb3VwIHVwcGVyQ2FzZT0iT3B0R3Jv
dXAiLz4KPG9wdGlvbi8+CjxwIHVwcGVyQ2FzZT0iUGFyYWdyYXBoIi8+CjxwYXJhbS8+CjxwbGFp
bnRleHQgbm9XcmFwcGVyPSIxIi8+CjxwcmUvPgo8cSB1cHBlckNhc2U9IlF1b3RlIi8+CjxzIG5v
V3JhcHBlcj0iMSIvPgo8c2FtcCBub1dyYXBwZXI9IjEiLz4KPHNjcmlwdC8+CjxzZWxlY3QvPgo8
c21hbGwgbm9XcmFwcGVyPSIxIi8+CiNpZiBFTkFCTEVfVklERU8KPHNvdXJjZSBhcHBseUF1ZGlv
SGFjaz0iMSIvPgojZW5kaWYKPHNwYW4gbm9XcmFwcGVyPSIxIi8+CjxzdHJpa2Ugbm9XcmFwcGVy
PSIxIi8+CjxzdHJvbmcgbm9XcmFwcGVyPSIxIi8+CjxzdHlsZS8+CjxzdWIgbm9XcmFwcGVyPSIx
Ii8+CjxzdXAgbm9XcmFwcGVyPSIxIi8+Cjx0YWJsZS8+Cjx0Ym9keSB1cHBlckNhc2U9IlRhYmxl
U2VjdGlvbiIvPgo8dGQgdXBwZXJDYXNlPSJUYWJsZUNlbGwiLz4KPHRleHRhcmVhIHVwcGVyQ2Fz
ZT0iVGV4dEFyZWEiLz4KPHRmb290IGN1c3RvbVdyYXBwZXI9InRib2R5Ii8+Cjx0aCBjdXN0b21X
cmFwcGVyPSJ0ZCIvPgo8dGhlYWQgY3VzdG9tV3JhcHBlcj0idGJvZHkiLz4KPHRpdGxlLz4KPHRy
IHVwcGVyQ2FzZT0iVGFibGVSb3ciLz4KPHR0IG5vV3JhcHBlcj0iMSIvPgo8dSBub1dyYXBwZXI9
IjEiLz4KPHVsIHVwcGVyQ2FzZT0iVUxpc3QiLz4KPHZhciBub1dyYXBwZXI9IjEiLz4KI2lmIEVO
QUJMRV9WSURFTwo8dmlkZW8gYXBwbHlBdWRpb0hhY2s9IjEiLz4KI2VuZGlmCjx3YnIgbm9XcmFw
cGVyPSIxIi8+Cjx4bXAgY3VzdG9tV3JhcHBlcj0icHJlIi8+CjwvdGFncz4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21380</attachid>
            <date>2008-05-27 19:34:27 -0700</date>
            <delta_ts>2008-06-07 02:15:13 -0700</delta_ts>
            <desc>First patch (using XML::Tiny)</desc>
            <filename>makeNamesXmlInTiny.patch</filename>
            <type>text/plain</type>
            <size>48631</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNDE2MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjggQEAKKzIwMDgtMDUtMjcgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgLSBTd2l0Y2hlZCAqLmluIGZpbGVzIHRvIFhNTCBmb3JtYXQuCisKKyAgICAgICAgLSBB
ZGRlZCAoc2ltcGxlKSBwYXJzaW5nIGZhY2lsaXRpZXMgaW4gbWFrZV9uYW1lcy5wbCB1c2luZyB0
aGUgWE1MOjpUaW55IFBlcmwgcGFyc2VyLgorCisgICAgICAgIC0gVXBkYXRlZCB0aGUgYnVpbGQg
c3lzdGVtcyB0byBpbmNsdWRlIGJpbmRpbmdzL3NjcmlwdHMgd2hlbiBleGVjdXRpbmcgbWFrZV9u
YW1lcy5wbAorICAgICAgICAoZm9yIFhNTFRpbnkgZGVwZW5kZW5jeSkuCisKKyAgICAgICAgLSBD
bGVhbmVkLXVwIG1ha2VfbmFtZXMucGwgYSBsaXR0bGUuCisKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy5tYWtlOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBEaXR0by4KKyAgICAgICAgKiBX
ZWJDb3JlLnBybzogRGl0dG8uCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9YTUxUaW55LnBt
OiBBZGRlZC4KKyAgICAgICAgKiBkb20vbWFrZV9uYW1lcy5wbDoKKyAgICAgICAgKiBodG1sL0hU
TUxBdHRyaWJ1dGVOYW1lcy5pbjoKKyAgICAgICAgKiBodG1sL0hUTUxUYWdOYW1lcy5pbjoKKyAg
ICAgICAgKiBzdmcvc3ZnYXR0cnMuaW46CisgICAgICAgICogc3ZnL3N2Z3RhZ3MuaW46CisgICAg
ICAgICogc3ZnL3hsaW5rYXR0cnMuaW46CisgICAgICAgICogeG1sL3htbGF0dHJzLmluOgorCiAy
MDA4LTA1LTI3ICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXgg
QnVnIDE5Mjc2OiBYSFIgcmVzb3VyY2VzIGFyZSBjbGFzc2lmaWVkIGFzICJPdGhlciIgdW50aWwg
SW5zcGVjdG9yCkluZGV4OiBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAzNDE0OCkKKysrIFdlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtNTA4LDE5ICs1MDgsMTkg
QEAgZW5kaWYKIGlmZGVmIEhUTUxfRkxBR1MKIAogSFRNTE5hbWVzLmNwcCA6IGRvbS9tYWtlX25h
bWVzLnBsIGh0bWwvSFRNTFRhZ05hbWVzLmluIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCi0J
cGVybCAkPCAtLXRhZ3MgJChXZWJDb3JlKS9odG1sL0hUTUxUYWdOYW1lcy5pbiAtLWF0dHJzICQo
V2ViQ29yZSkvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4gLS1leHRyYURlZmluZXMgIiQoSFRN
TF9GTEFHUykiIFwKKwlwZXJsIC1JICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRh
Z3MgJChXZWJDb3JlKS9odG1sL0hUTUxUYWdOYW1lcy5pbiAtLWF0dHJzICQoV2ViQ29yZSkvaHRt
bC9IVE1MQXR0cmlidXRlTmFtZXMuaW4gLS1leHRyYURlZmluZXMgIiQoSFRNTF9GTEFHUykiIFwK
ICAgICAgICAgICAgIC0tbmFtZXNwYWNlIEhUTUwgLS1uYW1lc3BhY2VQcmVmaXggeGh0bWwgLS1j
cHBOYW1lc3BhY2UgV2ViQ29yZSAtLW5hbWVzcGFjZVVSSSAiaHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCIgLS13cmFwcGVyRmFjdG9yeSAtLWF0dHJzTnVsbE5hbWVzcGFjZSAtLW91dHB1dCAu
CiAKIGVsc2UKIAogSFRNTE5hbWVzLmNwcCA6IGRvbS9tYWtlX25hbWVzLnBsIGh0bWwvSFRNTFRh
Z05hbWVzLmluIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCi0JcGVybCAkPCAtLXRhZ3MgJChX
ZWJDb3JlKS9odG1sL0hUTUxUYWdOYW1lcy5pbiAtLWF0dHJzICQoV2ViQ29yZSkvaHRtbC9IVE1M
QXR0cmlidXRlTmFtZXMuaW4gXAorCXBlcmwgLUkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRz
ICQ8IC0tdGFncyAkKFdlYkNvcmUpL2h0bWwvSFRNTFRhZ05hbWVzLmluIC0tYXR0cnMgJChXZWJD
b3JlKS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbiBcCiAgICAgICAgICAgICAtLW5hbWVzcGFj
ZSBIVE1MIC0tbmFtZXNwYWNlUHJlZml4IHhodG1sIC0tY3BwTmFtZXNwYWNlIFdlYkNvcmUgLS1u
YW1lc3BhY2VVUkkgImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIC0td3JhcHBlckZhY3Rv
cnkgLS1hdHRyc051bGxOYW1lc3BhY2UgLS1vdXRwdXQgLgogCiBlbmRpZgogCiBYTUxOYW1lcy5j
cHAgOiBkb20vbWFrZV9uYW1lcy5wbCB4bWwveG1sYXR0cnMuaW4KLQlwZXJsICQ8IC0tYXR0cnMg
JChXZWJDb3JlKS94bWwveG1sYXR0cnMuaW4gXAorCXBlcmwgLUkgJChXZWJDb3JlKS9iaW5kaW5n
cy9zY3JpcHRzICQ8IC0tYXR0cnMgJChXZWJDb3JlKS94bWwveG1sYXR0cnMuaW4gXAogICAgICAg
ICAgICAgLS1uYW1lc3BhY2UgWE1MIC0tY3BwTmFtZXNwYWNlIFdlYkNvcmUgLS1uYW1lc3BhY2VV
UkkgImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIgLS1vdXRwdXQgLgogCiAj
IC0tLS0tLS0tCkBAIC01NjEsMTggKzU2MSwxOCBAQCBlbmRpZgogaWZkZWYgU1ZHX0ZMQUdTCiAK
IFNWR0VsZW1lbnRGYWN0b3J5LmNwcCBTVkdOYW1lcy5jcHAgOiBkb20vbWFrZV9uYW1lcy5wbCBz
dmcvc3ZndGFncy5pbiBzdmcvc3ZnYXR0cnMuaW4KLQlwZXJsICQ8IC0tdGFncyAkKFdlYkNvcmUp
L3N2Zy9zdmd0YWdzLmluIC0tYXR0cnMgJChXZWJDb3JlKS9zdmcvc3ZnYXR0cnMuaW4gLS1leHRy
YURlZmluZXMgIiQoU1ZHX0ZMQUdTKSIgXAorCXBlcmwgLUkgJChXZWJDb3JlKS9iaW5kaW5ncy9z
Y3JpcHRzICQ8IC0tdGFncyAkKFdlYkNvcmUpL3N2Zy9zdmd0YWdzLmluIC0tYXR0cnMgJChXZWJD
b3JlKS9zdmcvc3ZnYXR0cnMuaW4gLS1leHRyYURlZmluZXMgIiQoU1ZHX0ZMQUdTKSIgXAogICAg
ICAgICAgICAgLS1uYW1lc3BhY2UgU1ZHIC0tZ3VhcmRGYWN0b3J5V2l0aCAiRU5BQkxFKFNWRyki
IC0tY3BwTmFtZXNwYWNlIFdlYkNvcmUgLS1uYW1lc3BhY2VVUkkgImh0dHA6Ly93d3cudzMub3Jn
LzIwMDAvc3ZnIiAtLWZhY3RvcnkgLS13cmFwcGVyRmFjdG9yeSAtLWF0dHJzTnVsbE5hbWVzcGFj
ZSAtLW91dHB1dCAuCiBlbHNlCiAKIFNWR0VsZW1lbnRGYWN0b3J5LmNwcCBTVkdOYW1lcy5jcHAg
OiBkb20vbWFrZV9uYW1lcy5wbCBzdmcvc3ZndGFncy5pbiBzdmcvc3ZnYXR0cnMuaW4KLQlwZXJs
ICQ8IC0tdGFncyAkKFdlYkNvcmUpL3N2Zy9zdmd0YWdzLmluIC0tYXR0cnMgJChXZWJDb3JlKS9z
dmcvc3ZnYXR0cnMuaW4gXAorCXBlcmwgLUkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8
IC0tdGFncyAkKFdlYkNvcmUpL3N2Zy9zdmd0YWdzLmluIC0tYXR0cnMgJChXZWJDb3JlKS9zdmcv
c3ZnYXR0cnMuaW4gXAogICAgICAgICAgICAgLS1uYW1lc3BhY2UgU1ZHIC0tZ3VhcmRGYWN0b3J5
V2l0aCAiRU5BQkxFKFNWRykiIC0tY3BwTmFtZXNwYWNlIFdlYkNvcmUgLS1uYW1lc3BhY2VVUkkg
Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiAtLWZhY3RvcnkgLS13cmFwcGVyRmFjdG9yeSAt
LWF0dHJzTnVsbE5hbWVzcGFjZSAtLW91dHB1dCAuCiAKIGVuZGlmCiAKIFhMaW5rTmFtZXMuY3Bw
IDogZG9tL21ha2VfbmFtZXMucGwgc3ZnL3hsaW5rYXR0cnMuaW4KLQlwZXJsICQ8IC0tYXR0cnMg
JChXZWJDb3JlKS9zdmcveGxpbmthdHRycy5pbiBcCisJcGVybCAtSSAkKFdlYkNvcmUpL2JpbmRp
bmdzL3NjcmlwdHMgJDwgLS1hdHRycyAkKFdlYkNvcmUpL3N2Zy94bGlua2F0dHJzLmluIFwKICAg
ICAgICAgICAgIC0tbmFtZXNwYWNlIFhMaW5rIC0tY3BwTmFtZXNwYWNlIFdlYkNvcmUgLS1uYW1l
c3BhY2VVUkkgImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIC0tb3V0cHV0IC4KIAogZWxz
ZQpJbmRleDogV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0dO
VW1ha2VmaWxlLmFtCShyZXZpc2lvbiAzNDE0OCkKKysrIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0J
KHdvcmtpbmcgY29weSkKQEAgLTIxMDYsMTEgKzIxMDYsMTEgQEAgRGVyaXZlZFNvdXJjZXMvU1ZH
TmFtZXMuY3BwOiBEZXJpdmVkU291cgogCiBpZiBTVkdfRkxBR1MKIERlcml2ZWRTb3VyY2VzL1NW
R0VsZW1lbnRGYWN0b3J5LmNwcDogJChXZWJDb3JlKS9kb20vbWFrZV9uYW1lcy5wbCAkKFdlYkNv
cmUpL3N2Zy9zdmd0YWdzLmluICQoV2ViQ29yZSkvc3ZnL3N2Z2F0dHJzLmluCi0JJChQRVJMKSAk
PCAtLXRhZ3MgJChXZWJDb3JlKS9zdmcvc3ZndGFncy5pbiAtLWF0dHJzICQoV2ViQ29yZSkvc3Zn
L3N2Z2F0dHJzLmluIC0tZXh0cmFEZWZpbmVzICIkKFNWR19GRUFUVVJFUykiIFwKKwkkKFBFUkwp
IC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tdGFncyAkKFdlYkNvcmUpL3N2Zy9z
dmd0YWdzLmluIC0tYXR0cnMgJChXZWJDb3JlKS9zdmcvc3ZnYXR0cnMuaW4gLS1leHRyYURlZmlu
ZXMgIiQoU1ZHX0ZFQVRVUkVTKSIgXAogCS0tbmFtZXNwYWNlIFNWRyAtLWd1YXJkRmFjdG9yeVdp
dGggIkVOQUJMRShTVkcpIiAtLWNwcE5hbWVzcGFjZSBXZWJDb3JlIC0tbmFtZXNwYWNlVVJJICJo
dHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgLS1mYWN0b3J5IC0td3JhcHBlckZhY3RvcnkgLS1h
dHRyc051bGxOYW1lc3BhY2UgLS1vdXRwdXQgJChHRU5TT1VSQ0VTKQogZWxzZQogRGVyaXZlZFNv
dXJjZXMvU1ZHRWxlbWVudEZhY3RvcnkuY3BwOiAkKFdlYkNvcmUpL2RvbS9tYWtlX25hbWVzLnBs
ICQoV2ViQ29yZSkvc3ZnL3N2Z3RhZ3MuaW4gJChXZWJDb3JlKS9zdmcvc3ZnYXR0cnMuaW4KLQkk
KFBFUkwpICQ8IC0tdGFncyAkKFdlYkNvcmUpL3N2Zy9zdmd0YWdzLmluIC0tYXR0cnMgJChXZWJD
b3JlKS9zdmcvc3ZnYXR0cnMuaW4gLS1uYW1lc3BhY2UgU1ZHIC0tZ3VhcmRGYWN0b3J5V2l0aCAi
RU5BQkxFKFNWRykiIC0tY3BwTmFtZXNwYWNlIFdlYkNvcmUgLS1uYW1lc3BhY2VVUkkgImh0dHA6
Ly93d3cudzMub3JnLzIwMDAvc3ZnIiAtLWZhY3RvcnkgLS13cmFwcGVyRmFjdG9yeSAtLWF0dHJz
TnVsbE5hbWVzcGFjZSAtLW91dHB1dCAkKEdFTlNPVVJDRVMpCisJJChQRVJMKSAtSSQoV2ViQ29y
ZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9zdmcvc3ZndGFncy5pbiAt
LWF0dHJzICQoV2ViQ29yZSkvc3ZnL3N2Z2F0dHJzLmluIC0tbmFtZXNwYWNlIFNWRyAtLWd1YXJk
RmFjdG9yeVdpdGggIkVOQUJMRShTVkcpIiAtLWNwcE5hbWVzcGFjZSBXZWJDb3JlIC0tbmFtZXNw
YWNlVVJJICJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgLS1mYWN0b3J5IC0td3JhcHBlckZh
Y3RvcnkgLS1hdHRyc051bGxOYW1lc3BhY2UgLS1vdXRwdXQgJChHRU5TT1VSQ0VTKQogCiBlbmRp
ZiAjIFNWR19GTEFHUwogCkBAIC0yMTE5LDcgKzIxMTksNyBAQCBlbmRpZiAjIFNWR19GTEFHUwog
RGVyaXZlZFNvdXJjZXMvWExpbmtOYW1lcy5oOiBEZXJpdmVkU291cmNlcy9YTGlua05hbWVzLmNw
cDsKIAogRGVyaXZlZFNvdXJjZXMvWExpbmtOYW1lcy5jcHAgOiAkKFdlYkNvcmUpL2RvbS9tYWtl
X25hbWVzLnBsICQoV2ViQ29yZSkvc3ZnL3hsaW5rYXR0cnMuaW4KLQkkKFBFUkwpICQ8IC0tYXR0
cnMgJChXZWJDb3JlKS9zdmcveGxpbmthdHRycy5pbiAtLW5hbWVzcGFjZSBYTGluayAtLWNwcE5h
bWVzcGFjZSBXZWJDb3JlIC0tbmFtZXNwYWNlVVJJICJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hs
aW5rIiAtLW91dHB1dCAkKEdFTlNPVVJDRVMpCisJJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGlu
Z3Mvc2NyaXB0cyAkPCAtLWF0dHJzICQoV2ViQ29yZSkvc3ZnL3hsaW5rYXR0cnMuaW4gLS1uYW1l
c3BhY2UgWExpbmsgLS1jcHBOYW1lc3BhY2UgV2ViQ29yZSAtLW5hbWVzcGFjZVVSSSAiaHR0cDov
L3d3dy53My5vcmcvMTk5OS94bGluayIgLS1vdXRwdXQgJChHRU5TT1VSQ0VTKQogCiBlbmRpZiAj
IEVORCBFTkFCTEVfU1ZHCiAKQEAgLTIxOTksMTYgKzIxOTksMTYgQEAgRGVyaXZlZFNvdXJjZXMv
SFRNTE5hbWVzLmg6IERlcml2ZWRTb3VyYwogCiBpZiBIVE1MX0ZMQUdTCiBEZXJpdmVkU291cmNl
cy9IVE1MTmFtZXMuY3BwOiAkKFdlYkNvcmUpL2RvbS9tYWtlX25hbWVzLnBsICQoV2ViQ29yZSkv
aHRtbC9IVE1MVGFnTmFtZXMuaW4gJChXZWJDb3JlKS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5p
bgotCSQoUEVSTCkgJDwgLS10YWdzICQoV2ViQ29yZSkvaHRtbC9IVE1MVGFnTmFtZXMuaW4gLS1h
dHRycyAkKFdlYkNvcmUpL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluIC0tZXh0cmFEZWZpbmVz
ICIkKEhUTUxfRkVBVFVSRVMpIiAtLW5hbWVzcGFjZSBIVE1MIC0tbmFtZXNwYWNlUHJlZml4IHho
dG1sIC0tY3BwTmFtZXNwYWNlIFdlYkNvcmUgLS1uYW1lc3BhY2VVUkkgImh0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwiIC0td3JhcHBlckZhY3RvcnkgLS1hdHRyc051bGxOYW1lc3BhY2UgLS1v
dXRwdXQgJChHRU5TT1VSQ0VTKQorCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3Njcmlw
dHMgJDwgLS10YWdzICQoV2ViQ29yZSkvaHRtbC9IVE1MVGFnTmFtZXMuaW4gLS1hdHRycyAkKFdl
YkNvcmUpL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluIC0tZXh0cmFEZWZpbmVzICIkKEhUTUxf
RkVBVFVSRVMpIiAtLW5hbWVzcGFjZSBIVE1MIC0tbmFtZXNwYWNlUHJlZml4IHhodG1sIC0tY3Bw
TmFtZXNwYWNlIFdlYkNvcmUgLS1uYW1lc3BhY2VVUkkgImh0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwiIC0td3JhcHBlckZhY3RvcnkgLS1hdHRyc051bGxOYW1lc3BhY2UgLS1vdXRwdXQgJChH
RU5TT1VSQ0VTKQogZWxzZQogRGVyaXZlZFNvdXJjZXMvSFRNTE5hbWVzLmNwcDogJChXZWJDb3Jl
KS9kb20vbWFrZV9uYW1lcy5wbCAkKFdlYkNvcmUpL2h0bWwvSFRNTFRhZ05hbWVzLmluICQoV2Vi
Q29yZSkvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KLQkkKFBFUkwpICQ8IC0tdGFncyAkKFdl
YkNvcmUpL2h0bWwvSFRNTFRhZ05hbWVzLmluIC0tYXR0cnMgJChXZWJDb3JlKS9odG1sL0hUTUxB
dHRyaWJ1dGVOYW1lcy5pbiAtLW5hbWVzcGFjZSBIVE1MIC0tbmFtZXNwYWNlUHJlZml4IHhodG1s
IC0tY3BwTmFtZXNwYWNlIFdlYkNvcmUgLS1uYW1lc3BhY2VVUkkgImh0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGh0bWwiIC0td3JhcHBlckZhY3RvcnkgLS1hdHRyc051bGxOYW1lc3BhY2UgLS1vdXRw
dXQgJChHRU5TT1VSQ0VTKQorCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMg
JDwgLS10YWdzICQoV2ViQ29yZSkvaHRtbC9IVE1MVGFnTmFtZXMuaW4gLS1hdHRycyAkKFdlYkNv
cmUpL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluIC0tbmFtZXNwYWNlIEhUTUwgLS1uYW1lc3Bh
Y2VQcmVmaXggeGh0bWwgLS1jcHBOYW1lc3BhY2UgV2ViQ29yZSAtLW5hbWVzcGFjZVVSSSAiaHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgLS13cmFwcGVyRmFjdG9yeSAtLWF0dHJzTnVsbE5h
bWVzcGFjZSAtLW91dHB1dCAkKEdFTlNPVVJDRVMpCiBlbmRpZiAjIEhUTUxfRkxBR1MKIAogRGVy
aXZlZFNvdXJjZXMvWE1MTmFtZXMuaDogRGVyaXZlZFNvdXJjZXMvWE1MTmFtZXMuY3BwOwogCiBE
ZXJpdmVkU291cmNlcy9YTUxOYW1lcy5jcHA6ICQoV2ViQ29yZSkvZG9tL21ha2VfbmFtZXMucGwg
JChXZWJDb3JlKS94bWwveG1sYXR0cnMuaW4KLQkkKFBFUkwpICQ8IC0tYXR0cnMgJChXZWJDb3Jl
KS94bWwveG1sYXR0cnMuaW4gLS1uYW1lc3BhY2UgWE1MIC0tY3BwTmFtZXNwYWNlIFdlYkNvcmUg
LS1uYW1lc3BhY2VVUkkgImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIgLS1v
dXRwdXQgJChHRU5TT1VSQ0VTKQorCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3Njcmlw
dHMgJDwgLS1hdHRycyAkKFdlYkNvcmUpL3htbC94bWxhdHRycy5pbiAtLW5hbWVzcGFjZSBYTUwg
LS1jcHBOYW1lc3BhY2UgV2ViQ29yZSAtLW5hbWVzcGFjZVVSSSAiaHR0cDovL3d3dy53My5vcmcv
WE1MLzE5OTgvbmFtZXNwYWNlIiAtLW91dHB1dCAkKEdFTlNPVVJDRVMpCiAKIHZwYXRoICUuaWRs
ID0gXAogICAgICQoV2ViQ29yZSkgXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnBybwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUucHJvCShyZXZpc2lvbiAzNDE0OCkKKysrIFdlYkNvcmUv
V2ViQ29yZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTE1NzcsNyArMTU3Nyw3IEBAIFNPVVJDRVMg
Kz0gXAogCiAgICAgICAgICMgR0VORVJBVE9SIDUtQzoKICAgICAgICAgc3ZnbmFtZXNfYS5vdXRw
dXQgPSAkJEdFTkVSQVRFRF9TT1VSQ0VTX0RJUi9TVkdOYW1lcy5jcHAKLSAgICAgICAgc3ZnbmFt
ZXNfYS5jb21tYW5kcyA9IHBlcmwgJCRQV0QvZG9tL21ha2VfbmFtZXMucGwgLS10YWdzICQkUFdE
L3N2Zy9zdmd0YWdzLmluIC0tYXR0cnMgJCRQV0Qvc3ZnL3N2Z2F0dHJzLmluIC0tZXh0cmFEZWZp
bmVzIFwiJCR7REVGSU5FU31cIiAtLW5hbWVzcGFjZSBTVkcgLS1ndWFyZEZhY3RvcnlXaXRoIFwi
RU5BQkxFKFNWRylcIiAtLWNwcE5hbWVzcGFjZSBXZWJDb3JlIC0tbmFtZXNwYWNlVVJJICdodHRw
Oi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgLS1mYWN0b3J5IC0td3JhcHBlckZhY3RvcnkgLS1hdHRy
c051bGxOYW1lc3BhY2UgLS1wcmVwcm9jZXNzb3IgXCIkJHtRTUFLRV9NT0N9IC1FXCIgLS1vdXRw
dXQgJCRHRU5FUkFURURfU09VUkNFU19ESVIKKyAgICAgICAgc3ZnbmFtZXNfYS5jb21tYW5kcyA9
IHBlcmwgLUkkJFBXRC9iaW5kaW5ncy9zY3JpcHRzICQkUFdEL2RvbS9tYWtlX25hbWVzLnBsIC0t
dGFncyAkJFBXRC9zdmcvc3ZndGFncy5pbiAtLWF0dHJzICQkUFdEL3N2Zy9zdmdhdHRycy5pbiAt
LWV4dHJhRGVmaW5lcyBcIiQke0RFRklORVN9XCIgLS1uYW1lc3BhY2UgU1ZHIC0tZ3VhcmRGYWN0
b3J5V2l0aCBcIkVOQUJMRShTVkcpXCIgLS1jcHBOYW1lc3BhY2UgV2ViQ29yZSAtLW5hbWVzcGFj
ZVVSSSAnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIC0tZmFjdG9yeSAtLXdyYXBwZXJGYWN0
b3J5IC0tYXR0cnNOdWxsTmFtZXNwYWNlIC0tcHJlcHJvY2Vzc29yIFwiJCR7UU1BS0VfTU9DfSAt
RVwiIC0tb3V0cHV0ICQkR0VORVJBVEVEX1NPVVJDRVNfRElSCiAgICAgICAgIHN2Z25hbWVzX2Eu
aW5wdXQgPSBTVkdfTkFNRVMKICAgICAgICAgc3ZnbmFtZXNfYS5kZXBlbmRlbmN5X3R5cGUgPSBU
WVBFX0MKICAgICAgICAgc3ZnbmFtZXNfYS5DT05GSUcgPSB0YXJnZXRfcHJlZGVwcwpAQCAtMTYw
Myw3ICsxNjAzLDcgQEAgU09VUkNFUyArPSBcCiAKICAgICAgICAgIyBHRU5FUkFUT1IgNS1EOgog
ICAgICAgICB4bGlua25hbWVzLm91dHB1dCA9ICQkR0VORVJBVEVEX1NPVVJDRVNfRElSL1hMaW5r
TmFtZXMuY3BwCi0gICAgICAgIHhsaW5rbmFtZXMuY29tbWFuZHMgPSBwZXJsICQkUFdEL2RvbS9t
YWtlX25hbWVzLnBsIC0tYXR0cnMgJCRQV0Qvc3ZnL3hsaW5rYXR0cnMuaW4gLS1uYW1lc3BhY2Ug
WExpbmsgLS1jcHBOYW1lc3BhY2UgV2ViQ29yZSAtLW5hbWVzcGFjZVVSSSAnaHR0cDovL3d3dy53
My5vcmcvMTk5OS94bGluaycgLS1wcmVwcm9jZXNzb3IgXCIkJHtRTUFLRV9NT0N9IC1FXCIgLS1v
dXRwdXQgJCRHRU5FUkFURURfU09VUkNFU19ESVIKKyAgICAgICAgeGxpbmtuYW1lcy5jb21tYW5k
cyA9IHBlcmwgLUkkJFBXRC9iaW5kaW5ncy9zY3JpcHRzICQkUFdEL2RvbS9tYWtlX25hbWVzLnBs
IC0tYXR0cnMgJCRQV0Qvc3ZnL3hsaW5rYXR0cnMuaW4gLS1uYW1lc3BhY2UgWExpbmsgLS1jcHBO
YW1lc3BhY2UgV2ViQ29yZSAtLW5hbWVzcGFjZVVSSSAnaHR0cDovL3d3dy53My5vcmcvMTk5OS94
bGluaycgLS1wcmVwcm9jZXNzb3IgXCIkJHtRTUFLRV9NT0N9IC1FXCIgLS1vdXRwdXQgJCRHRU5F
UkFURURfU09VUkNFU19ESVIKICAgICAgICAgeGxpbmtuYW1lcy5pbnB1dCA9IFhMSU5LX05BTUVT
CiAgICAgICAgIHhsaW5rbmFtZXMuZGVwZW5kZW5jeV90eXBlID0gVFlQRV9DCiAgICAgICAgIHhs
aW5rbmFtZXMuQ09ORklHID0gdGFyZ2V0X3ByZWRlcHMKQEAgLTE2OTksNyArMTY5OSw3IEBAIFFN
QUtFX0VYVFJBX1RBUkdFVFMgKz0gZ3JhbW1hcl9oX2RlcAogCiAjIEdFTkVSQVRPUiA1LUE6CiBo
dG1sbmFtZXMub3V0cHV0ID0gJCRHRU5FUkFURURfU09VUkNFU19ESVIvSFRNTE5hbWVzLmNwcAot
aHRtbG5hbWVzLmNvbW1hbmRzID0gcGVybCAkJFBXRC9kb20vbWFrZV9uYW1lcy5wbCAtLXRhZ3Mg
JCRQV0QvaHRtbC9IVE1MVGFnTmFtZXMuaW4gLS1hdHRycyAkJFBXRC9odG1sL0hUTUxBdHRyaWJ1
dGVOYW1lcy5pbiAtLWV4dHJhRGVmaW5lcyBcIiQke0RFRklORVN9XCIgLS1uYW1lc3BhY2UgSFRN
TCAtLW5hbWVzcGFjZVByZWZpeCB4aHRtbCAtLWNwcE5hbWVzcGFjZSBXZWJDb3JlIC0tbmFtZXNw
YWNlVVJJICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJyAtLXdyYXBwZXJGYWN0b3J5IC0t
YXR0cnNOdWxsTmFtZXNwYWNlIC0tcHJlcHJvY2Vzc29yIFwiJCR7UU1BS0VfTU9DfSAtRVwiIC0t
b3V0cHV0ICQkR0VORVJBVEVEX1NPVVJDRVNfRElSCitodG1sbmFtZXMuY29tbWFuZHMgPSBwZXJs
IC1JJCRQV0QvYmluZGluZ3Mvc2NyaXB0cyAkJFBXRC9kb20vbWFrZV9uYW1lcy5wbCAtLXRhZ3Mg
JCRQV0QvaHRtbC9IVE1MVGFnTmFtZXMuaW4gLS1hdHRycyAkJFBXRC9odG1sL0hUTUxBdHRyaWJ1
dGVOYW1lcy5pbiAtLWV4dHJhRGVmaW5lcyBcIiQke0RFRklORVN9XCIgLS1uYW1lc3BhY2UgSFRN
TCAtLW5hbWVzcGFjZVByZWZpeCB4aHRtbCAtLWNwcE5hbWVzcGFjZSBXZWJDb3JlIC0tbmFtZXNw
YWNlVVJJICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJyAtLXdyYXBwZXJGYWN0b3J5IC0t
YXR0cnNOdWxsTmFtZXNwYWNlIC0tcHJlcHJvY2Vzc29yIFwiJCR7UU1BS0VfTU9DfSAtRVwiIC0t
b3V0cHV0ICQkR0VORVJBVEVEX1NPVVJDRVNfRElSCiBodG1sbmFtZXMuaW5wdXQgPSBIVE1MX05B
TUVTCiBodG1sbmFtZXMuZGVwZW5kZW5jeV90eXBlID0gVFlQRV9DCiBodG1sbmFtZXMuQ09ORklH
ID0gdGFyZ2V0X3ByZWRlcHMKQEAgLTE3MTcsNyArMTcxNyw3IEBAIGFkZEV4dHJhQ29tcGlsZXIo
aHRtbG5hbWVzX2EpCiAKICMgR0VORVJBVE9SIDUtQjoKIHhtbG5hbWVzLm91dHB1dCA9ICQkR0VO
RVJBVEVEX1NPVVJDRVNfRElSL1hNTE5hbWVzLmNwcAoteG1sbmFtZXMuY29tbWFuZHMgPSBwZXJs
ICQkUFdEL2RvbS9tYWtlX25hbWVzLnBsIC0tYXR0cnMgJCRQV0QveG1sL3htbGF0dHJzLmluIC0t
bmFtZXNwYWNlIFhNTCAtLWNwcE5hbWVzcGFjZSBXZWJDb3JlIC0tbmFtZXNwYWNlVVJJICdodHRw
Oi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UnIC0tcHJlcHJvY2Vzc29yIFwiJCR7UU1B
S0VfTU9DfSAtRVwiIC0tb3V0cHV0ICQkR0VORVJBVEVEX1NPVVJDRVNfRElSCit4bWxuYW1lcy5j
b21tYW5kcyA9IHBlcmwgLUkkJFBXRC9iaW5kaW5ncy9zY3JpcHRzICQkUFdEL2RvbS9tYWtlX25h
bWVzLnBsIC0tYXR0cnMgJCRQV0QveG1sL3htbGF0dHJzLmluIC0tbmFtZXNwYWNlIFhNTCAtLWNw
cE5hbWVzcGFjZSBXZWJDb3JlIC0tbmFtZXNwYWNlVVJJICdodHRwOi8vd3d3LnczLm9yZy9YTUwv
MTk5OC9uYW1lc3BhY2UnIC0tcHJlcHJvY2Vzc29yIFwiJCR7UU1BS0VfTU9DfSAtRVwiIC0tb3V0
cHV0ICQkR0VORVJBVEVEX1NPVVJDRVNfRElSCiB4bWxuYW1lcy5pbnB1dCA9IFhNTF9OQU1FUwog
eG1sbmFtZXMuZGVwZW5kZW5jeV90eXBlID0gVFlQRV9DCiB4bWxuYW1lcy5DT05GSUcgPSB0YXJn
ZXRfcHJlZGVwcwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL1hNTFRpbnkucG0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL1hNTFRpbnkucG0JKHJldmlzaW9u
IDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvWE1MVGlueS5wbQkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwyMDIgQEAKKyMgICAgICAgICAgICAgICAgICAgICBDb3B5cmlnaHQgMjAwNyBE
YXZpZCBDYW50cmVsbAorIyAgICAgICAgICAgICAgICAgICAgICAgIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjCisjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiBlaXRoZXI6Cisj
CisjICAgIGEpIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUKKyMgICAgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkKKyMgICAgbGF0ZXIgdmVyc2lvbiwgb3IKKyMgICAgYikgdGhl
ICJBcnRpc3RpYyBMaWNlbnNlIiB3aGljaCBjb21lcyB3aXRoIHRoaXMgS2l0LgorIworIyBUaGlz
IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIGVpdGhlcgorIyB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
b3IgdGhlIEFydGlzdGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworIyBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBBcnRpc3RpYyBMaWNlbnNlIHdpdGggdGhpcwor
IyBLaXQsIGluIHRoZSBmaWxlIG5hbWVkICJBcnRpc3RpYyIuICBJZiBub3QsIEknbGwgYmUgZ2xh
ZCB0byBwcm92aWRlIG9uZS4KKworIyBZb3Ugc2hvdWxkIGFsc28gaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBw
cm9ncmFtIGluIHRoZSBmaWxlIG5hbWVkICJDb3B5aW5nIi4gSWYgbm90LCB3cml0ZSB0byB0aGUK
KyMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRl
IDMzMCwgQm9zdG9uLCBNQQorIyAwMjExMS0xMzA3LCBVU0Egb3IgdmlzaXQgdGhlaXIgd2ViIHBh
Z2Ugb24gdGhlIGludGVybmV0IGF0CisjIGh0dHA6Ly93d3cuZ251Lm9yZy9jb3B5bGVmdC9ncGwu
aHRtbC4KKworIyBGb3IgdGhvc2Ugb2YgeW91IHRoYXQgY2hvb3NlIHRvIHVzZSB0aGUgR05VIEdl
bmVyYWwgUHVibGljIExpY2Vuc2UsCisjIG15IGludGVycHJldGF0aW9uIG9mIHRoZSBHTlUgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBpcyB0aGF0IG5vIFBlcmwKKyMgc2NyaXB0IGZhbGxzIHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR1BMIHVubGVzcyB5b3UgZXhwbGljaXRseSBwdXQKKyMgc2FpZCBz
Y3JpcHQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHUEwgeW91cnNlbGYuICBGdXJ0aGVybW9yZSwg
YW55CisjIG9iamVjdCBjb2RlIGxpbmtlZCB3aXRoIHBlcmwgZG9lcyBub3QgYXV0b21hdGljYWxs
eSBmYWxsIHVuZGVyIHRoZQorIyB0ZXJtcyBvZiB0aGUgR1BMLCBwcm92aWRlZCBzdWNoIG9iamVj
dCBjb2RlIG9ubHkgYWRkcyBkZWZpbml0aW9ucworIyBvZiBzdWJyb3V0aW5lcyBhbmQgdmFyaWFi
bGVzLCBhbmQgZG9lcyBub3Qgb3RoZXJ3aXNlIGltcGFpciB0aGUKKyMgcmVzdWx0aW5nIGludGVy
cHJldGVyIGZyb20gZXhlY3V0aW5nIGFueSBzdGFuZGFyZCBQZXJsIHNjcmlwdC4gIEkKKyMgY29u
c2lkZXIgbGlua2luZyBpbiBDIHN1YnJvdXRpbmVzIGluIHRoaXMgbWFubmVyIHRvIGJlIHRoZSBt
b3JhbAorIyBlcXVpdmFsZW50IG9mIGRlZmluaW5nIHN1YnJvdXRpbmVzIGluIHRoZSBQZXJsIGxh
bmd1YWdlIGl0c2VsZi4gIFlvdQorIyBtYXkgc2VsbCBzdWNoIGFuIG9iamVjdCBmaWxlIGFzIHBy
b3ByaWV0YXJ5IHByb3ZpZGVkIHRoYXQgeW91IHByb3ZpZGUgIAorIyBvciBvZmZlciB0byBwcm92
aWRlIHRoZSBQZXJsIHNvdXJjZSwgYXMgc3BlY2lmaWVkIGJ5IHRoZSBHTlUgR2VuZXJhbAorIyBQ
dWJsaWMgTGljZW5zZS4gIChUaGlzIGlzIG1lcmVseSBhbiBhbHRlcm5hdGUgd2F5IG9mIHNwZWNp
ZnlpbmcgaW5wdXQKKyMgdG8gdGhlIHByb2dyYW0uKSAgWW91IG1heSBhbHNvIHNlbGwgYSBiaW5h
cnkgcHJvZHVjZWQgYnkgdGhlIGR1bXBpbmcgb2YgCisjIGEgcnVubmluZyBQZXJsIHNjcmlwdCB0
aGF0IGJlbG9uZ3MgdG8geW91LCBwcm92aWRlZCB0aGF0IHlvdSBwcm92aWRlIG9yCisjIG9mZmVy
IHRvIHByb3ZpZGUgdGhlIFBlcmwgc291cmNlIGFzIHNwZWNpZmllZCBieSB0aGUgR1BMLiAgKFRo
ZQorIyBmYWN0IHRoYXQgYSBQZXJsIGludGVycHJldGVyIGFuZCB5b3VyIGNvZGUgYXJlIGluIHRo
ZSBzYW1lIGJpbmFyeSBmaWxlCisjIGlzLCBpbiB0aGlzIGNhc2UsIGEgZm9ybSBvZiBtZXJlIGFn
Z3JlZ2F0aW9uLikgIFRoaXMgaXMgbXkgaW50ZXJwcmV0YXRpb24KKyMgb2YgdGhlIEdQTC4gIElm
IHlvdSBzdGlsbCBoYXZlIGNvbmNlcm5zIG9yIGRpZmZpY3VsdGllcyB1bmRlcnN0YW5kaW5nCisj
IG15IGludGVudCwgZmVlbCBmcmVlIHRvIGNvbnRhY3QgbWUuICBPZiBjb3Vyc2UsIHRoZSBBcnRp
c3RpYyBMaWNlbnNlCisjIHNwZWxscyBhbGwgdGhpcyBvdXQgZm9yIHlvdXIgcHJvdGVjdGlvbiwg
c28geW91IG1heSBwcmVmZXIgdG8gdXNlIHRoYXQuCisKKyMgT3JpZ2luYWwgcGFja2FnZSBuYW1l
IFhNTDo6VGlueSAoaHR0cDovL3NlYXJjaC5jcGFuLm9yZy9+ZGNhbnRyZWxsL1hNTC1UaW55LykK
K3BhY2thZ2UgWE1MVGlueTsKKwordXNlIHN0cmljdDsKKworcmVxdWlyZSBFeHBvcnRlcjsKKwor
dXNlIHZhcnMgcXcoJFZFUlNJT04gQEVYUE9SVF9PSyBASVNBKTsKKworJFZFUlNJT04gPSAnMS4x
MSc7CitARVhQT1JUX09LID0gcXcocGFyc2VmaWxlKTsKK0BJU0EgPSBxdyhFeHBvcnRlcik7CisK
KyMgbG9jYWxpc2luZyBwcmV2ZW50cyB0aGUgd2FybmluZ25lc3MgbGVha2luZyBvdXQgb2YgdGhp
cyBtb2R1bGUKK2xvY2FsICReVyA9IDE7ICAgICMgY2FuJ3QgdXNlIHdhcm5pbmdzIGFzIHRoYXQn
cyBhIDUuNi1pc20KKworbXkgJXJlZ2V4cHMgPSAoCisgICAgbmFtZSA9PiAnWzphLXpdW1xcdzpc
XC4tXSonCispOworCitteSAkc3RyaWN0X2VudGl0eV9wYXJzaW5nOyAjIG1tbSwgZ2xvYmFsLiBk
b24ndCB3b3JyeSwgcGFyc2VmaWxlIHNldHMgaXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICMgZXhwbGljaXRseSBldmVyeSB0aW1lCitzdWIgcGFyc2VmaWxlIHsKKyAgICBteSgkYXJnLCAl
cGFyYW1zKSA9IEBfOworICAgIG15KCRmaWxlLCAkZWxlbSkgPSAoJycsIHsgY29udGVudCA9PiBb
XSB9KTsKKyAgICBsb2NhbCAkLzsgIyBzbHV1dXV1cnAKKworICAgICRzdHJpY3RfZW50aXR5X3Bh
cnNpbmcgPSAkcGFyYW1ze3N0cmljdF9lbnRpdHlfcGFyc2luZ307CisKKyAgICBpZihyZWYoJGFy
ZykgZXEgJycpIHsgIyB3ZSB3ZXJlIHBhc3NlZCBhIGZpbGVuYW1lIG9yIGEgc3RyaW5nCisgICAg
ICAgIGlmKCRhcmcgPX4gL15fVElOWV9YTUxfU1RSSU5HXyguKikvKSB7ICMgaXQncyBhIHN0cmlu
ZworICAgICAgICAgICAgJGZpbGUgPSAkMTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
IGxvY2FsICpGSDsKKyAgICAgICAgICAgIG9wZW4oRkgsICRhcmcpIHx8IGRpZShfX1BBQ0tBR0Vf
Xy4iOjpwYXJzZWZpbGU6IENhbid0IG9wZW4gJGFyZ1xuIik7CisgICAgICAgICAgICAkZmlsZSA9
IDxGSD47CisgICAgICAgICAgICBjbG9zZShGSCk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeyAk
ZmlsZSA9IDwkYXJnPjsgfQorICAgIGRpZSgiTm8gZWxlbWVudHNcbiIpIGlmICghZGVmaW5lZCgk
ZmlsZSkgfHwgJGZpbGUgPX4gL15ccyokLyk7CisKKyAgICAjIGlsbGVnYWwgbG93LUFTQ0lJIGNo
YXJzCisgICAgZGllKCJOb3Qgd2VsbC1mb3JtZWRcbiIpIGlmKCRmaWxlID1+IC9bXHgwMC1ceDA4
XHgwYlx4MGNceDBlLVx4MWZdLyk7CisKKyAgICAjIHR1cm4gQ0RBVEEgaW50byBQQ0RBVEEKKyAg
ICAkZmlsZSA9fiBzezwhXFtDREFUQVxbKC4qPyldXT59eworICAgICAgICAkXyA9ICQxLmNocigw
KTsgICAgICAgICAgIyB0aGlzIG1ha2VzIHN1cmUgdGhhdCBlbXB0eSBDREFUQXMgYmVjb21lCisg
ICAgICAgIHMvKFsmPD5dKS8gICAgICAgICAgICAgICAjIHRoZSBlbXB0eSBzdHJpbmcgYW5kIGFy
ZW4ndCBqdXN0IHRocm93biBhd2F5LgorICAgICAgICAgICAgJDEgZXEgJyYnID8gJyZhbXA7JyA6
CisgICAgICAgICAgICAkMSBlcSAnPCcgPyAnJmx0OycgIDoKKyAgICAgICAgICAgICAgICAgICAg
ICAgICcmZ3Q7JworICAgICAgICAvZWc7CisgICAgICAgICRfOworICAgIH1lZ3M7CisKKyAgICBk
aWUoIk5vdCB3ZWxsLWZvcm1lZFxuIikgaWYoCisgICAgICAgICRmaWxlID1+IC9dXT4vIHx8ICAg
ICAgICAgICAgICAgICAgICAgICAgICAjIF1dPiBub3QgZGVsaW1pdGluZyBDREFUQQorCSRmaWxl
ID1+IC88IS0tKC4qPyktLS0+L3MgfHwgICAgICAgICAgICAgICAjIC0tLT4gY2FuJ3QgZW5kIGEg
Y29tbWVudAorCWdyZXAgeyAkXyAmJiAvLS0vIH0gKCRmaWxlID1+IC9eXHMrfDwhLS0oLio/KS0t
PnxccyskL2dzKSAjIC0tIGluIGNvbW0KKyAgICApOworCisgICAgIyBzdHJpcCBsZWFkaW5nL3Ry
YWlsaW5nIHdoaXRlc3BhY2UgYW5kIGNvbW1lbnRzICh3aGljaCBkb24ndCBuZXN0IC0gcGhldyEp
CisgICAgJGZpbGUgPX4gcy9eXHMrfDwhLS0oLio/KS0tPnxccyskLy9nczsKKyAgICAKKyAgICAj
IHR1cm4gcXVvdGVkID4gaW4gYXR0cmlicyBpbnRvICZndDsKKyAgICAjIGRvdWJsZS0gYW5kIHNp
bmdsZS1xdW90ZWQgYXR0cmliIHZhbHVlcyBnZXQgZG9uZSBzZXBlcmF0ZWx5CisgICAgd2hpbGUo
JGZpbGUgPX4gcy8oJHJlZ2V4cHN7bmFtZX1ccyo9XHMqIlteIl0qKT4oW14iXSoiKS8kMSZndDsk
Mi9nc2kpIHt9CisgICAgd2hpbGUoJGZpbGUgPX4gcy8oJHJlZ2V4cHN7bmFtZX1ccyo9XHMqJ1te
J10qKT4oW14nXSonKS8kMSZndDskMi9nc2kpIHt9CisKKyAgICBpZigkcGFyYW1ze2ZhdGFsX2Rl
Y2xhcmF0aW9uc30gJiYgJGZpbGUgPX4gLzwhKEVOVElUWXxET0NUWVBFKS8pIHsKKyAgICAgICAg
ZGllKCJJIGNhbid0IGhhbmRsZSB0aGlzIGRvY3VtZW50XG4iKTsKKyAgICB9CisKKyAgICAjIGln
bm9yZSBlbXB0eSB0b2tlbnMvd2hpdGVzcGFjZSB0b2tlbnMKKyAgICBmb3JlYWNoIG15ICR0b2tl
biAoZ3JlcCB7IGxlbmd0aCAmJiAkXyAhfiAvXlxzKyQvIH0KKyAgICAgIHNwbGl0KC8oPFtePl0r
PikvLCAkZmlsZSkpIHsKKyAgICAgICAgaWYoCisJICAgICR0b2tlbiA9fiAvPFw/JHJlZ2V4cHN7
bmFtZX0uKj9cPz4vaXMgfHwgICMgUEkKKwkgICAgJHRva2VuID1+IC9ePCEoRU5USVRZfERPQ1RZ
UEUpL2kgICAgICAgICAgIyBlbnRpdHkvZG9jdHlwZSBkZWNsCisJKSB7CisJICAgIG5leHQ7Cisg
ICAgICAgIH0gZWxzaWYoJHRva2VuID1+IG0hXjwvKCRyZWdleHBze25hbWV9KVxzKj4haSkgeyAg
ICAgIyBjbG9zZSB0YWcKKwkgICAgZGllKCJOb3Qgd2VsbC1mb3JtZWRcblx0YXQgJHRva2VuXG4i
KSBpZigkZWxlbS0+e25hbWV9IG5lICQxKTsKKwkgICAgJGVsZW0gPSBkZWxldGUgJGVsZW0tPntw
YXJlbnR9OworICAgICAgICB9IGVsc2lmKCR0b2tlbiA9fiAvXjwkcmVnZXhwc3tuYW1lfShcc1te
Pl0qKSooXHMqXC8pPz4vaXMpIHsgICAjIG9wZW4gdGFnCisJICAgIG15KCR0YWduYW1lLCAkYXR0
cmlic19yYXcpID0gKCR0b2tlbiA9fiBtITwoXFMqKSguKj8pKFxzKi8pPz4hcyk7CisJICAgICMg
Zmlyc3QgbWFrZSBhdHRyaWJzIGludG8gYSBsaXN0IHNvIHdlIGNhbiBzcG90IGR1cGxpY2F0ZSBr
ZXlzCisJICAgIG15ICRhdHRyaWIgID0gWworCSAgICAgICAgIyBkbyBkb3VibGUtIGFuZCBzaW5n
bGUtIHF1b3RlZCBhdHRyaWJzIHNlcGVyYXRlbHkKKwkgICAgICAgICRhdHRyaWJzX3JhdyA9fiAv
XHMoJHJlZ2V4cHN7bmFtZX0pXHMqPVxzKiIoW14iXSo/KSIvZ2ksCisJICAgICAgICAkYXR0cmli
c19yYXcgPX4gL1xzKCRyZWdleHBze25hbWV9KVxzKj1ccyonKFteJ10qPyknL2dpCisJICAgIF07
CisJICAgIGlmKEB7JGF0dHJpYn0gPT0gMiAqIGtleXMgJXt7QHskYXR0cmlifX19KSB7CisJICAg
ICAgICAkYXR0cmliID0geyBAeyRhdHRyaWJ9IH0KKwkgICAgfSBlbHNlIHsgZGllKCJOb3Qgd2Vs
bC1mb3JtZWQgLSBkdXBsaWNhdGUgYXR0cmlidXRlXG4iKTsgfQorCSAgICAKKwkgICAgIyBub3cg
dHJhc2ggYW55IGF0dHJpYnMgdGhhdCB3ZSAqZGlkKiBtYW5hZ2UgdG8gcGFyc2UgYW5kIHNlZQor
CSAgICAjIGlmIHRoZXJlJ3MgYW55dGhpbmcgbGVmdAorCSAgICAkYXR0cmlic19yYXcgPX4gcy9c
cygkcmVnZXhwc3tuYW1lfSlccyo9XHMqIihbXiJdKj8pIi8vZ2k7CisJICAgICRhdHRyaWJzX3Jh
dyA9fiBzL1xzKCRyZWdleHBze25hbWV9KVxzKj1ccyonKFteJ10qPyknLy9naTsKKwkgICAgZGll
KCJOb3Qgd2VsbC1mb3JtZWRcbiRhdHRyaWJzX3JhdyIpIGlmKCRhdHRyaWJzX3JhdyA9fiAvXFMv
IHx8IGdyZXAgeyAvPC8gfSB2YWx1ZXMgJXskYXR0cmlifSk7CisKKwkgICAgdW5sZXNzKCRwYXJh
bXN7bm9fZW50aXR5X3BhcnNpbmd9KSB7CisJICAgICAgICBmb3JlYWNoIG15ICRrZXkgKGtleXMg
JXskYXR0cmlifSkgeworCSAgICAgICAgICAgICRhdHRyaWItPnska2V5fSA9IF9maXhlbnRpdGll
cygkYXR0cmliLT57JGtleX0pCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCSAg
ICAkZWxlbSA9IHsKKyAgICAgICAgICAgICAgICBjb250ZW50ID0+IFtdLAorICAgICAgICAgICAg
ICAgIG5hbWUgPT4gJHRhZ25hbWUsCisgICAgICAgICAgICAgICAgdHlwZSA9PiAnZScsCisgICAg
ICAgICAgICAgICAgYXR0cmliID0+ICRhdHRyaWIsCisgICAgICAgICAgICAgICAgcGFyZW50ID0+
ICRlbGVtCisgICAgICAgICAgICB9OworCSAgICBwdXNoIEB7JGVsZW0tPntwYXJlbnR9LT57Y29u
dGVudH19LCAkZWxlbTsKKwkgICAgIyBub3cgaGFuZGxlIHNlbGYtY2xvc2luZyB0YWdzCisgICAg
ICAgICAgICBpZigkdG9rZW4gPX4gL1xzKlwvPiQvKSB7CisgICAgICAgICAgICAgICAgJGVsZW0t
PntuYW1lfSA9fiBzL1wvJC8vOworCSAgICAgICAgJGVsZW0gPSBkZWxldGUgJGVsZW0tPntwYXJl
bnR9OworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2lmKCR0b2tlbiA9fiAvXjwvKSB7ICMg
c29tZSB0b2tlbiB0YWdnaXNoIHRoaW5nCisgICAgICAgICAgICBkaWUoIkkgY2FuJ3QgaGFuZGxl
IHRoaXMgZG9jdW1lbnRcblx0YXQgJHRva2VuXG4iKTsKKyAgICAgICAgfSBlbHNlIHsgICAgICAg
ICAgICAgICAgICAgICAgICAgICMgb3JkaW5hcnkgY29udGVudAorCSAgICAkdG9rZW4gPX4gcy9c
eDAwLy9nOyAjIGdldCByaWQgb2Ygb3VyIENEQVRBIG1hcmtlcgorICAgICAgICAgICAgdW5sZXNz
KCRwYXJhbXN7bm9fZW50aXR5X3BhcnNpbmd9KSB7ICR0b2tlbiA9IF9maXhlbnRpdGllcygkdG9r
ZW4pOyB9CisgICAgICAgICAgICBwdXNoIEB7JGVsZW0tPntjb250ZW50fX0sIHsgY29udGVudCA9
PiAkdG9rZW4sIHR5cGUgPT4gJ3QnIH07CisgICAgICAgIH0KKyAgICB9CisgICAgZGllKCJOb3Qg
d2VsbC1mb3JtZWRcbiIpIGlmKGV4aXN0cygkZWxlbS0+e3BhcmVudH0pKTsKKyAgICBkaWUoIkp1
bmsgYWZ0ZXIgZW5kIG9mIGRvY3VtZW50XG4iKSBpZigkI3skZWxlbS0+e2NvbnRlbnR9fSA+IDAp
OworICAgIGRpZSgiTm8gZWxlbWVudHNcbiIpIGlmKAorICAgICAgICAkI3skZWxlbS0+e2NvbnRl
bnR9fSA9PSAtMSB8fCAkZWxlbS0+e2NvbnRlbnR9LT5bMF0tPnt0eXBlfSBuZSAnZScKKyAgICAp
OworICAgIHJldHVybiAkZWxlbS0+e2NvbnRlbnR9OworfQorCitzdWIgX2ZpeGVudGl0aWVzIHsK
KyAgICBteSAkdGhpbmd5ID0gc2hpZnQ7CisKKyAgICBteSAkanVuayA9ICgkc3RyaWN0X2VudGl0
eV9wYXJzaW5nKSA/ICd8LionIDogJyc7CisgICAgJHRoaW5neSA9fiBzLyYoKCMoXGQrfHhbYS1m
QS1GMC05XSspOyl8bHQ7fGd0O3xxdW90O3xhcG9zO3xhbXA7JGp1bmspLworICAgICAgICAkMyA/
ICgKKwkgICAgc3Vic3RyKCQzLCAwLCAxKSBlcSAneCcgPyAgICAgIyB1c2luZyBhID1+IG1hdGNo
IGhlcmUgY2xvYmJlcnMgJDMKKwkgICAgICAgIGNocihoZXgoc3Vic3RyKCQzLCAxKSkpIDogIyBz
byBkb24ndCAiZml4IiBpdCEKKwkJY2hyKCQzKQorCSkgOgorICAgICAgICAkMSBlcSAnbHQ7JyAg
ID8gJzwnIDoKKyAgICAgICAgJDEgZXEgJ2d0OycgICA/ICc+JyA6CisgICAgICAgICQxIGVxICdh
cG9zOycgPyAiJyIgOgorICAgICAgICAkMSBlcSAncXVvdDsnID8gJyInIDoKKyAgICAgICAgJDEg
ZXEgJ2FtcDsnICA/ICcmJyA6CisgICAgICAgICAgICAgICAgICAgICAgICBkaWUoIklsbGVnYWwg
YW1wZXJzYW5kIG9yIGVudGl0eVxuXHRhdCAkMVxuIikKKyAgICAvZ2U7CisgICAgJHRoaW5neTsK
K30KSW5kZXg6IFdlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9kb20vbWFrZV9uYW1lcy5wbAkocmV2aXNpb24gMzQxNDgpCisrKyBXZWJDb3JlL2RvbS9tYWtl
X25hbWVzLnBsCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw5ICsyNywxMyBAQAogIyBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
CiB1c2Ugc3RyaWN0OworCit1c2UgQ29uZmlnOwogdXNlIEdldG9wdDo6TG9uZzsKIHVzZSBGaWxl
OjpQYXRoOwotdXNlIENvbmZpZzsKK3VzZSBJTzo6RmlsZTsKK3VzZSBTd2l0Y2g7Cit1c2UgWE1M
VGlueSBxdyhwYXJzZWZpbGUpOwogCiBteSAkcHJpbnRGYWN0b3J5ID0gMDsKIG15ICRwcmludFdy
YXBwZXJGYWN0b3J5ID0gMDsKQEAgLTQwLDggKzQ0LDggQEAgbXkgJG5hbWVzcGFjZVVSSSA9ICIi
OwogbXkgJHRhZ3NGaWxlID0gIiI7CiBteSAkYXR0cnNGaWxlID0gIiI7CiBteSAkb3V0cHV0RGly
ID0gIi4iOwotbXkgQHRhZ3MgPSAoKTsKLW15IEBhdHRycyA9ICgpOworbXkgJXRhZ3MgPSAoKTsK
K215ICVhdHRycyA9ICgpOwogbXkgJHRhZ3NOdWxsTmFtZXNwYWNlID0gMDsKIG15ICRhdHRyc051
bGxOYW1lc3BhY2UgPSAwOwogbXkgJGV4dHJhRGVmaW5lcyA9IDA7CkBAIC03Myw4ICs3Nyw4IEBA
IGRpZSAiWW91IG11c3Qgc3BlY2lmeSBhdCBsZWFzdCBvbmUgb2YgLS0KIAogJG5hbWVzcGFjZVBy
ZWZpeCA9ICRuYW1lc3BhY2UgdW5sZXNzICRuYW1lc3BhY2VQcmVmaXg7CiAKLUB0YWdzID0gcmVh
ZE5hbWVzKCR0YWdzRmlsZSkgaWYgbGVuZ3RoKCR0YWdzRmlsZSk7Ci1AYXR0cnMgPSByZWFkTmFt
ZXMoJGF0dHJzRmlsZSkgaWYgbGVuZ3RoKCRhdHRyc0ZpbGUpOworcmVhZE5hbWVzKCR0YWdzRmls
ZSkgaWYgbGVuZ3RoKCR0YWdzRmlsZSk7CityZWFkTmFtZXMoJGF0dHJzRmlsZSkgaWYgbGVuZ3Ro
KCRhdHRyc0ZpbGUpOwogCiBta3BhdGgoJG91dHB1dERpcik7CiBteSAkbmFtZXNCYXNlUGF0aCA9
ICIkb3V0cHV0RGlyLyR7bmFtZXNwYWNlfU5hbWVzIjsKQEAgLTk0LDQ2ICs5OCw4NyBAQCBpZiAo
JHByaW50V3JhcHBlckZhY3RvcnkpIHsKICAgICBwcmludFdyYXBwZXJGYWN0b3J5SGVhZGVyRmls
ZSgiJHdyYXBwZXJGYWN0b3J5QmFzZVBhdGguaCIpOwogfQogCisjIyMgUGFyc2luZyBoYW5kbGVy
cworCitzdWIgcGFyc2VUYWdzCit7CisgICAgbXkgJGNvbnRlbnRzUmVmID0gc2hpZnQ7CisgICAg
Zm9yZWFjaCBteSAkY29udGVudFJlZiAoQCRjb250ZW50c1JlZikgeworICAgICAgICBteSAkdGFn
ID0gJCR7Y29udGVudFJlZn17J25hbWUnfTsKKyAgICAgICAgJHRhZyA9fiBzLy0vXy9nOworCisg
ICAgICAgICMgRklYTUU6IHdlIGN1cnJlbnRseSBpbnNlcnQgJycgaW50byB0aGUgaGFzaCBidXQg
aXQgc2hvdWxkIGJlIHJlcGxhY2VkIGJ5IGEgZGVzY3JpcHRpb24gbWFwCisgICAgICAgICMgdGFr
aW5nIGludG8gYWNjb3VudCB0aGUgZWxlbWVudCdzIGF0dHJpYnV0ZXMuCisgICAgICAgICR0YWdz
eyR0YWd9ID0gJyc7CisgICAgfQorfQorCitzdWIgcGFyc2VBdHRycworeworICAgIG15ICRjb250
ZW50c1JlZiA9IHNoaWZ0OworICAgIGZvcmVhY2ggbXkgJGNvbnRlbnRSZWYgKEAkY29udGVudHNS
ZWYpIHsKKyAgICAgICAgbXkgJGF0dHIgPSAkJHtjb250ZW50UmVmfXsnbmFtZSd9OworICAgICAg
ICAkYXR0ciA9fiBzLy0vXy9nOworCisgICAgICAgICMgRklYTUU6IHdlIGN1cnJlbnRseSBpbnNl
cnQgJycgaW50byB0aGUgaGFzaCBidXQgaXQgc2hvdWxkIGJlIHJlcGxhY2VkIGJ5IGEgZGVzY3Jp
cHRpb24gbWFwCisgICAgICAgICMgdGFraW5nIGludG8gYWNjb3VudCB0aGUgZWxlbWVudCdzIGF0
dHJpYnV0ZXMuCisgICAgICAgICRhdHRyc3skYXR0cn0gPSAnJzsKKyAgICB9Cit9CisKICMjIFN1
cHBvcnQgcm91dGluZXMKIAogc3ViIHJlYWROYW1lcwogewogICAgIG15ICRuYW1lc0ZpbGUgPSBz
aGlmdDsKIAorICAgIG15ICRuYW1lcyA9IG5ldyBJTzo6RmlsZTsKICAgICBpZiAoJGV4dHJhRGVm
aW5lcyBlcSAwKSB7Ci0gICAgICAgIGRpZSAiRmFpbGVkIHRvIG9wZW4gZmlsZTogJG5hbWVzRmls
ZSIgdW5sZXNzIG9wZW4gTkFNRVMsICRwcmVwcm9jZXNzb3IgLiAiICIgLiAkbmFtZXNGaWxlIC4g
InwiIG9yIGRpZTsKKyAgICAgICAgb3BlbigkbmFtZXMsICRwcmVwcm9jZXNzb3IgLiAiICIgLiAk
bmFtZXNGaWxlIC4gInwiKSBvciBkaWUgIkZhaWxlZCB0byBvcGVuIGZpbGU6ICRuYW1lc0ZpbGUi
OwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGRpZSAiRmFpbGVkIHRvIG9wZW4gZmlsZTogJG5hbWVz
RmlsZSIgdW5sZXNzIG9wZW4gTkFNRVMsICRwcmVwcm9jZXNzb3IgLiAiIC1EIiAuIGpvaW4oIiAt
RCIsIHNwbGl0KCIgIiwgJGV4dHJhRGVmaW5lcykpIC4gIiAiIC4gJG5hbWVzRmlsZSAuICJ8IiBv
ciBkaWU7CisgICAgICAgIG9wZW4oJG5hbWVzLCAkcHJlcHJvY2Vzc29yIC4gIiAtRCIgLiBqb2lu
KCIgLUQiLCBzcGxpdCgiICIsICRleHRyYURlZmluZXMpKSAuICIgIiAuICRuYW1lc0ZpbGUgLiAi
fCIpIG9yIGRpZSAiRmFpbGVkIHRvIG9wZW4gZmlsZTogJG5hbWVzRmlsZSI7CiAgICAgfQogCi0g
ICAgbXkgQG5hbWVzID0gKCk7Ci0gICAgd2hpbGUgKDxOQU1FUz4pIHsKLSAgICAgICAgbmV4dCBp
ZiAobS8jLyk7Ci0gICAgICAgIG5leHQgaWYgKG0vXlsgXHRdKiQvKTsKLSAgICAgICAgcy8tL18v
ZzsKLSAgICAgICAgY2hvbXAgJF87Ci0gICAgICAgIHB1c2ggQG5hbWVzLCAkXzsKLSAgICB9ICAg
IAotICAgIGNsb3NlKE5BTUVTKTsKLSAgICAKLSAgICBkaWUgIkZhaWxlZCB0byByZWFkIG5hbWVz
IGZyb20gZmlsZTogJG5hbWVzRmlsZSIgdW5sZXNzIChzY2FsYXIoQG5hbWVzKSk7Ci0gICAgCi0g
ICAgcmV0dXJuIEBuYW1lcworICAgICMgU3RvcmUgaGFzaGVzIGtleXMgY291bnQgdG8ga25vdyBp
ZiBzb21lIGluc2VydGlvbiBvY2N1cmVkLgorICAgIG15ICR0YWdzQ291bnQgPSBrZXlzICV0YWdz
OworICAgIG15ICRhdHRyc0NvdW50ID0ga2V5cyAlYXR0cnM7CisKKyAgICBteSAkZG9jdW1lbnRS
ZWYgPSBwYXJzZWZpbGUoJG5hbWVzKTsKKworICAgICMgWE1MOjpUaW55IHJldHVybnMgYW4gYXJy
YXkgcmVmZXJlbmNlIHRvIGEgaGFzaCBjb250YWluaW5nIHRoZSBkaWZmZXJlbnQgcHJvcGVydGll
cworICAgIG15ICVkb2N1bWVudCA9ICV7QCRkb2N1bWVudFJlZlswXX07CisgICAgbXkgJG5hbWUg
PSAkZG9jdW1lbnR7J25hbWUnfTsKKworICAgICMgQ2hlY2sgcm9vdCBlbGVtZW50IHRvIGRldGVy
bWluZSB3aGF0IHdlIGFyZSBwYXJzaW5nCisgICAgc3dpdGNoKCRuYW1lKSB7CisgICAgICAgIGNh
c2UgInRhZ3MiIHsKKyAgICAgICAgICAgIHBhcnNlVGFncyhcQHskZG9jdW1lbnR7J2NvbnRlbnQn
fX0pOworICAgICAgICB9CisgICAgICAgIGNhc2UgImF0dHJzIiB7CisgICAgICAgICAgICBwYXJz
ZUF0dHJzKFxAeyRkb2N1bWVudHsnY29udGVudCd9fSk7CisgICAgICAgIH0KKyAgICB9CisKKyAg
ICAjIEZJWE1FOiB3ZSBzaG91bGQgcHJvY2VzcyB0aGUgYXR0cmlidXRlcyBoZXJlIHRvIGJ1aWxk
IGEgcGFyYW1ldGVyIG1hcAorCisgICAgY2xvc2UoJG5hbWVzKTsKKworICAgIGRpZSAiRmFpbGVk
IHRvIHJlYWQgbmFtZXMgZnJvbSBmaWxlOiAkbmFtZXNGaWxlIiBpZiAoKGtleXMgJXRhZ3MgPT0g
JHRhZ3NDb3VudCkgJiYgKGtleXMgJWF0dHJzID09ICRhdHRyc0NvdW50KSk7CiB9CiAKIHN1YiBw
cmludE1hY3JvcwogewotICAgIG15ICgkRiwgJG1hY3JvLCAkc3VmZml4LCBAbmFtZXMpID0gQF87
Ci0gICAgZm9yIG15ICRuYW1lIChAbmFtZXMpIHsKKyAgICBteSAoJEYsICRtYWNybywgJHN1ZmZp
eCwgJG5hbWVzUmVmKSA9IEBfOworICAgIGZvciBteSAkbmFtZSAoc29ydCBrZXlzICUkbmFtZXNS
ZWYpIHsKICAgICAgICAgcHJpbnQgRiAiICAgICRtYWNybyAkbmFtZSIsIiRzdWZmaXg7XG4iOwog
ICAgIH0KIH0KIAogc3ViIHByaW50Q29uc3RydWN0b3JzCiB7Ci0gICAgbXkgKCRGLCBAbmFtZXMp
ID0gQF87CisgICAgbXkgKCRGLCAkbmFtZXNSZWYpID0gQF87CiAgICAgcHJpbnQgRiAiI2lmICRn
dWFyZEZhY3RvcnlXaXRoXG4iIGlmICRndWFyZEZhY3RvcnlXaXRoOwotICAgIGZvciBteSAkbmFt
ZSAoQG5hbWVzKSB7CisgICAgZm9yIG15ICRuYW1lIChzb3J0IGtleXMgJSRuYW1lc1JlZikgewog
ICAgICAgICBteSAkdWNOYW1lID0gdXBwZXJDYXNlTmFtZSgkbmFtZSk7CiAgICAgCiAgICAgICAg
IHByaW50IEYgIiR7bmFtZXNwYWNlfUVsZW1lbnQqICR7bmFtZX1Db25zdHJ1Y3RvcihEb2N1bWVu
dCogZG9jLCBib29sIGNyZWF0ZWRCeVBhcnNlcilcbiI7CkBAIC0xNDYsOCArMTkxLDggQEAgc3Vi
IHByaW50Q29uc3RydWN0b3JzCiAKIHN1YiBwcmludEZ1bmN0aW9uSW5pdHMKIHsKLSAgICBteSAo
JEYsIEBuYW1lcykgPSBAXzsKLSAgICBmb3IgbXkgJG5hbWUgKEBuYW1lcykgeworICAgIG15ICgk
RiwgJG5hbWVzUmVmKSA9IEBfOworICAgIGZvciBteSAkbmFtZSAoc29ydCBrZXlzICUkbmFtZXNS
ZWYpIHsKICAgICAgICAgcHJpbnQgRiAiICAgIGdGdW5jdGlvbk1hcC0+c2V0KCR7bmFtZX1UYWcu
bG9jYWxOYW1lKCkuaW1wbCgpLCAke25hbWV9Q29uc3RydWN0b3IpO1xuIjsKICAgICB9CiB9CkBA
IC0yNzEsMTUgKzMxNiwxNSBAQCBzdWIgcHJpbnROYW1lc0hlYWRlckZpbGUKICAgICBwcmludCBG
ICIvLyBOYW1lc3BhY2VcbiI7CiAgICAgcHJpbnQgRiAiZXh0ZXJuIGNvbnN0IFdlYkNvcmU6OkF0
b21pY1N0cmluZyAke2xvd2VyTmFtZXNwYWNlfU5hbWVzcGFjZVVSSTtcblxuIjsKIAotICAgIGlm
IChzY2FsYXIoQHRhZ3MpKSB7CisgICAgaWYgKGtleXMgJXRhZ3MpIHsKICAgICAgICAgcHJpbnQg
RiAiLy8gVGFnc1xuIjsKLSAgICAgICAgcHJpbnRNYWNyb3MoJEYsICJleHRlcm4gY29uc3QgV2Vi
Q29yZTo6UXVhbGlmaWVkTmFtZSIsICJUYWciLCBAdGFncyk7CisgICAgICAgIHByaW50TWFjcm9z
KCRGLCAiZXh0ZXJuIGNvbnN0IFdlYkNvcmU6OlF1YWxpZmllZE5hbWUiLCAiVGFnIiwgXCV0YWdz
KTsKICAgICAgICAgcHJpbnQgRiAiXG5cbldlYkNvcmU6OlF1YWxpZmllZE5hbWUqKiBnZXQke25h
bWVzcGFjZX1UYWdzKHNpemVfdCogc2l6ZSk7XG4iOwogICAgIH0KICAgICAKLSAgICBpZiAoc2Nh
bGFyKEBhdHRycykpIHsKKyAgICBpZiAoa2V5cyAlYXR0cnMpIHsKICAgICAgICAgcHJpbnQgRiAi
Ly8gQXR0cmlidXRlc1xuIjsKLSAgICAgICAgcHJpbnRNYWNyb3MoJEYsICJleHRlcm4gY29uc3Qg
V2ViQ29yZTo6UXVhbGlmaWVkTmFtZSIsICJBdHRyIiwgQGF0dHJzKTsKKyAgICAgICAgcHJpbnRN
YWNyb3MoJEYsICJleHRlcm4gY29uc3QgV2ViQ29yZTo6UXVhbGlmaWVkTmFtZSIsICJBdHRyIiwg
XCVhdHRycyk7CiAgICAgICAgIHByaW50IEYgIlxuXG5XZWJDb3JlOjpRdWFsaWZpZWROYW1lKiog
Z2V0JHtuYW1lc3BhY2V9QXR0cihzaXplX3QqIHNpemUpO1xuIjsKICAgICB9CiAgICAgcHJpbnQg
RiAiI2VuZGlmXG5cbiI7CkBAIC0zMTksMzYgKzM2NCwzNiBAQCB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIERFRklORV9HTE9CQUwoQXRvbWljU3RyaW5nLCAke2xvd2VyTmFtZXNwYWNlfU5hbWVz
cGFjZVVSSSwgXCIkbmFtZXNwYWNlVVJJXCIpCiAiOwogCi0gICAgaWYgKHNjYWxhcihAdGFncykp
IHsKKyAgICBpZiAoa2V5cyAldGFncykgewogICAgICAgICBwcmludCBGICIvLyBUYWdzXG4iOwot
ICAgICAgICBmb3IgbXkgJG5hbWUgKEB0YWdzKSB7CisgICAgICAgIGZvciBteSAkbmFtZSAoc29y
dCBrZXlzICV0YWdzKSB7CiAgICAgICAgICAgICBwcmludCBGICJERUZJTkVfR0xPQkFMKFF1YWxp
ZmllZE5hbWUsICIsICRuYW1lLCAiVGFnLCBudWxsQXRvbSwgXCIkbmFtZVwiLCAke2xvd2VyTmFt
ZXNwYWNlfU5hbWVzcGFjZVVSSSk7XG4iOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBw
cmludCBGICJcblxuV2ViQ29yZTo6UXVhbGlmaWVkTmFtZSoqIGdldCR7bmFtZXNwYWNlfVRhZ3Mo
c2l6ZV90KiBzaXplKVxuIjsKICAgICAgICAgcHJpbnQgRiAie1xuICAgIHN0YXRpYyBXZWJDb3Jl
OjpRdWFsaWZpZWROYW1lKiAke25hbWVzcGFjZX1UYWdzW10gPSB7XG4iOwotICAgICAgICBmb3Ig
bXkgJG5hbWUgKEB0YWdzKSB7CisgICAgICAgIGZvciBteSAkbmFtZSAoc29ydCBrZXlzICV0YWdz
KSB7CiAgICAgICAgICAgICBwcmludCBGICIgICAgICAgIChXZWJDb3JlOjpRdWFsaWZpZWROYW1l
KikmJHtuYW1lfVRhZyxcbiI7CiAgICAgICAgIH0KICAgICAgICAgcHJpbnQgRiAiICAgIH07XG4i
OwotICAgICAgICBwcmludCBGICIgICAgKnNpemUgPSAiLCBzY2FsYXIoQHRhZ3MpLCAiO1xuIjsK
KyAgICAgICAgcHJpbnQgRiAiICAgICpzaXplID0gIiwgc2NhbGFyKGtleXMgJXRhZ3MpLCAiO1xu
IjsKICAgICAgICAgcHJpbnQgRiAiICAgIHJldHVybiAke25hbWVzcGFjZX1UYWdzO1xuIjsKICAg
ICAgICAgcHJpbnQgRiAifVxuIjsKICAgICAgICAgCiAgICAgfQogCi0gICAgaWYgKHNjYWxhcihA
YXR0cnMpKSB7CisgICAgaWYgKGtleXMgJWF0dHJzKSB7CiAgICAgICAgIHByaW50IEYgIlxuLy8g
QXR0cmlidXRlc1xuIjsKLSAgICAgICAgZm9yIG15ICRuYW1lIChAYXR0cnMpIHsKKyAgICAgICAg
Zm9yIG15ICRuYW1lIChzb3J0IGtleXMgJWF0dHJzKSB7CiAgICAgICAgICAgICBwcmludCBGICJE
RUZJTkVfR0xPQkFMKFF1YWxpZmllZE5hbWUsICIsICRuYW1lLCAiQXR0ciwgbnVsbEF0b20sIFwi
JG5hbWVcIiwgJHtsb3dlck5hbWVzcGFjZX1OYW1lc3BhY2VVUkkpO1xuIjsKICAgICAgICAgfQog
ICAgICAgICBwcmludCBGICJcblxuV2ViQ29yZTo6UXVhbGlmaWVkTmFtZSoqIGdldCR7bmFtZXNw
YWNlfUF0dHJzKHNpemVfdCogc2l6ZSlcbiI7CiAgICAgICAgIHByaW50IEYgIntcbiAgICBzdGF0
aWMgV2ViQ29yZTo6UXVhbGlmaWVkTmFtZSogJHtuYW1lc3BhY2V9QXR0cltdID0ge1xuIjsKLSAg
ICAgICAgZm9yIG15ICRuYW1lIChAYXR0cnMpIHsKKyAgICAgICAgZm9yIG15ICRuYW1lIChzb3J0
IGtleXMgJWF0dHJzKSB7CiAgICAgICAgICAgICBwcmludCBGICIgICAgICAgIChXZWJDb3JlOjpR
dWFsaWZpZWROYW1lKikmJHtuYW1lfUF0dHIsXG4iOwogICAgICAgICB9CiAgICAgICAgIHByaW50
IEYgIiAgICB9O1xuIjsKLSAgICAgICAgcHJpbnQgRiAiICAgICpzaXplID0gIiwgc2NhbGFyKEBh
dHRycyksICI7XG4iOworICAgICAgICBwcmludCBGICIgICAgKnNpemUgPSAiLCBzY2FsYXIoa2V5
cyAlYXR0cnMpLCAiO1xuIjsKICAgICAgICAgcHJpbnQgRiAiICAgIHJldHVybiAke25hbWVzcGFj
ZX1BdHRyO1xuIjsKICAgICAgICAgcHJpbnQgRiAifVxuIjsKICAgICB9CkBAIC0zNjksMTMgKzQx
NCwxMyBAQCBwcmludCBGICJcbnZvaWQgaW5pdCgpCiAKICAgICBwcmludChGICIgICAgLy8gTmFt
ZXNwYWNlXG4iKTsKICAgICBwcmludChGICIgICAgbmV3ICgodm9pZCopJiR7bG93ZXJOYW1lc3Bh
Y2V9TmFtZXNwYWNlVVJJKSBBdG9taWNTdHJpbmcoJHtsb3dlck5hbWVzcGFjZX1OUyk7XG5cbiIp
OwotICAgIGlmIChzY2FsYXIoQHRhZ3MpKSB7CisgICAgaWYgKGtleXMgJXRhZ3MpIHsKICAgICAg
ICAgbXkgJHRhZ3NOYW1lc3BhY2UgPSAkdGFnc051bGxOYW1lc3BhY2UgPyAibnVsbEF0b20iIDog
IiR7bG93ZXJOYW1lc3BhY2V9TlMiOwotICAgICAgICBwcmludERlZmluaXRpb25zKCRGLCBcQHRh
Z3MsICJ0YWdzIiwgJHRhZ3NOYW1lc3BhY2UpOworICAgICAgICBwcmludERlZmluaXRpb25zKCRG
LCBcJXRhZ3MsICJ0YWdzIiwgJHRhZ3NOYW1lc3BhY2UpOwogICAgIH0KLSAgICBpZiAoc2NhbGFy
KEBhdHRycykpIHsKKyAgICBpZiAoa2V5cyAlYXR0cnMpIHsKICAgICAgICAgbXkgJGF0dHJzTmFt
ZXNwYWNlID0gJGF0dHJzTnVsbE5hbWVzcGFjZSA/ICJudWxsQXRvbSIgOiAiJHtsb3dlck5hbWVz
cGFjZX1OUyI7Ci0gICAgICAgIHByaW50RGVmaW5pdGlvbnMoJEYsIFxAYXR0cnMsICJhdHRyaWJ1
dGVzIiwgJGF0dHJzTmFtZXNwYWNlKTsKKyAgICAgICAgcHJpbnREZWZpbml0aW9ucygkRiwgXCVh
dHRycywgImF0dHJpYnV0ZXMiLCAkYXR0cnNOYW1lc3BhY2UpOwogICAgIH0KIAogICAgIHByaW50
IEYgIn1cblxufSB9XG5cbiI7CkBAIC0zODQsOCArNDI5LDggQEAgcHJpbnQgRiAiXG52b2lkIGlu
aXQoKQogCiBzdWIgcHJpbnRKU0VsZW1lbnRJbmNsdWRlcwogewotICAgIG15ICgkRiwgQG5hbWVz
KSA9IEBfOwotICAgIGZvciBteSAkbmFtZSAoQG5hbWVzKSB7CisgICAgbXkgKCRGLCAkbmFtZXNS
ZWYpID0gQF87CisgICAgZm9yIG15ICRuYW1lIChzb3J0IGtleXMgJSRuYW1lc1JlZikgewogICAg
ICAgICBuZXh0IGlmIChoYXNDdXN0b21NYXBwaW5nKCRuYW1lKSk7CiAKICAgICAgICAgbXkgJHVj
TmFtZSA9IHVwcGVyQ2FzZU5hbWUoJG5hbWUpOwpAQCAtMzk2LDcgKzQ0MSw3IEBAIHN1YiBwcmlu
dEpTRWxlbWVudEluY2x1ZGVzCiBzdWIgcHJpbnRFbGVtZW50SW5jbHVkZXMKIHsKICAgICBteSAo
JEYsICRuYW1lc1JlZiwgJHNob3VsZFNraXBDdXN0b21NYXBwaW5ncykgPSBAXzsKLSAgICBmb3Ig
bXkgJG5hbWUgKEAkbmFtZXNSZWYpIHsKKyAgICBmb3IgbXkgJG5hbWUgKHNvcnQga2V5cyAlJG5h
bWVzUmVmKSB7CiAgICAgICAgIG5leHQgaWYgKCRzaG91bGRTa2lwQ3VzdG9tTWFwcGluZ3MgJiYg
aGFzQ3VzdG9tTWFwcGluZygkbmFtZSkpOwogCiAgICAgICAgIG15ICR1Y05hbWUgPSB1cHBlckNh
c2VOYW1lKCRuYW1lKTsKQEAgLTQxNCwxMSArNDU5LDExIEBAIHN1YiBwcmludERlZmluaXRpb25z
CiAgICAgCiAgICAgcHJpbnQgRiAiICAgIC8vICIgLiB1Y2ZpcnN0KCR0eXBlKSAuICJcbiI7CiAK
LSAgICBmb3IgbXkgJG5hbWUgKEAkbmFtZXNSZWYpIHsKKyAgICBmb3IgbXkgJG5hbWUgKHNvcnQg
a2V5cyAlJG5hbWVzUmVmKSB7CiAgICAgICAgIHByaW50IEYgIiAgICBjb25zdCBjaGFyICokbmFt
ZSIsIiR7c2hvcnRDYW1lbFR5cGV9U3RyaW5nID0gXCIkbmFtZVwiO1xuIjsKICAgICB9CiAgICAg
ICAgIAotICAgIGZvciBteSAkbmFtZSAoQCRuYW1lc1JlZikgeworICAgIGZvciBteSAkbmFtZSAo
c29ydCBrZXlzICUkbmFtZXNSZWYpIHsKICAgICAgICAgaWYgKCRuYW1lID1+IC9fLykgewogICAg
ICAgICAgICAgbXkgJHJlYWxOYW1lID0gJG5hbWU7CiAgICAgICAgICAgICAkcmVhbE5hbWUgPX4g
cy9fLy0vZzsKQEAgLTQyNyw3ICs0NzIsNyBAQCBzdWIgcHJpbnREZWZpbml0aW9ucwogICAgIH0K
ICAgICBwcmludCBGICJcbiI7CiAKLSAgICBmb3IgbXkgJG5hbWUgKEAkbmFtZXNSZWYpIHsKKyAg
ICBmb3IgbXkgJG5hbWUgKHNvcnQga2V5cyAlJG5hbWVzUmVmKSB7CiAgICAgICAgIHByaW50IEYg
IiAgICBuZXcgKCh2b2lkKikmJG5hbWUiLCIke3Nob3J0Q2FtZWxUeXBlfSkgUXVhbGlmaWVkTmFt
ZShudWxsQXRvbSwgJG5hbWUiLCIke3Nob3J0Q2FtZWxUeXBlfVN0cmluZywgJG5hbWVzcGFjZVVS
SSk7XG4iOwogICAgIH0KIApAQCAtNDUyLDcgKzQ5Nyw3IEBAIHByaW50IEYgPDxFTkQKIEVORAog
OwogCi1wcmludEVsZW1lbnRJbmNsdWRlcygkRiwgXEB0YWdzLCAwKTsKK3ByaW50RWxlbWVudElu
Y2x1ZGVzKCRGLCBcJXRhZ3MsIDApOwogCiBwcmludCBGIDw8RU5ECiAjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KQEAgLTQ3MCw3ICs1MTUsNyBAQCBuYW1lc3BhY2UgJHtjcHBOYW1lc3BhY2V9IHsK
IEVORAogOwogCi1wcmludENvbnN0cnVjdG9ycygkRiwgQHRhZ3MpOworcHJpbnRDb25zdHJ1Y3Rv
cnMoJEYsIFwldGFncyk7CiAKIHByaW50IEYgIiNpZiAkZ3VhcmRGYWN0b3J5V2l0aFxuIiBpZiAk
Z3VhcmRGYWN0b3J5V2l0aDsKIApAQCAtNDg2LDcgKzUzMSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9p
ZCBjcmVhdGVGdW5jdGlvbk1hcElmTmUKIEVORAogOwogCi1wcmludEZ1bmN0aW9uSW5pdHMoJEYs
IEB0YWdzKTsKK3ByaW50RnVuY3Rpb25Jbml0cygkRiwgXCV0YWdzKTsKIAogcHJpbnQgRiAifVxu
IjsKIHByaW50IEYgIiNlbmRpZlxuXG4iIGlmICRndWFyZEZhY3RvcnlXaXRoOwpAQCAtNjYwLDgg
KzcwNSw4IEBAIHN1YiBoYXNDdXN0b21NYXBwaW5nCiAKIHN1YiBwcmludFdyYXBwZXJGdW5jdGlv
bnMKIHsKLSAgICBteSAoJEYsIEBuYW1lcykgPSBAXzsKLSAgICBmb3IgbXkgJG5hbWUgKEBuYW1l
cykgeworICAgIG15ICgkRiwgJG5hbWVzUmVmKSA9IEBfOworICAgIGZvciBteSAkbmFtZSAoc29y
dCBrZXlzICUkbmFtZXNSZWYpIHsKICAgICAgICAgIyBDdXN0b20gbWFwcGluZyBkbyBub3QgbmVl
ZCBhIEpTIHdyYXBwZXIKICAgICAgICAgbmV4dCBpZiAoaGFzQ3VzdG9tTWFwcGluZygkbmFtZSkp
OwogCkBAIC03MDUsMTEgKzc1MCwxMSBAQCBzdWIgcHJpbnRXcmFwcGVyRmFjdG9yeUNwcEZpbGUK
IAogICAgIHByaW50IEYgIiNpbmNsdWRlIFwiSlMke25hbWVzcGFjZX1FbGVtZW50V3JhcHBlckZh
Y3RvcnkuaFwiXG4iOwogCi0gICAgcHJpbnRKU0VsZW1lbnRJbmNsdWRlcygkRiwgQHRhZ3MpOwor
ICAgIHByaW50SlNFbGVtZW50SW5jbHVkZXMoJEYsIFwldGFncyk7CiAKICAgICBwcmludCBGICJc
biNpbmNsdWRlIFwiJHtuYW1lc3BhY2V9TmFtZXMuaFwiXG5cbiI7CiAKLSAgICBwcmludEVsZW1l
bnRJbmNsdWRlcygkRiwgXEB0YWdzLCAxKTsKKyAgICBwcmludEVsZW1lbnRJbmNsdWRlcygkRiwg
XCV0YWdzLCAxKTsKIAogICAgIHByaW50IEYgPDxFTkQKIHVzaW5nIG5hbWVzcGFjZSBLSlM7CkBA
IC03MjMsNyArNzY4LDcgQEAgdHlwZWRlZiBKU05vZGUqICgqQ3JlYXRlJHtuYW1lc3BhY2V9RWxl
bQogRU5ECiA7CiAKLSAgICBwcmludFdyYXBwZXJGdW5jdGlvbnMoJEYsIEB0YWdzKTsKKyAgICBw
cmludFdyYXBwZXJGdW5jdGlvbnMoJEYsIFwldGFncyk7CiAKICAgICBwcmludCBGIDw8RU5ECiBK
U05vZGUqIGNyZWF0ZUpTJHtuYW1lc3BhY2V9V3JhcHBlcihFeGVjU3RhdGUqIGV4ZWMsIFBhc3NS
ZWZQdHI8JHtuYW1lc3BhY2V9RWxlbWVudD4gZWxlbWVudCkKQEAgLTczMyw3ICs3NzgsNyBAQCBK
U05vZGUqIGNyZWF0ZUpTJHtuYW1lc3BhY2V9V3JhcHBlcihFeGVjCiBFTkQKIDsKIAotICAgIGZv
ciBteSAkdGFnIChAdGFncykgeworICAgIGZvciBteSAkdGFnIChzb3J0IGtleXMgJXRhZ3MpIHsK
ICAgICAgICAgbmV4dCBpZiAoaGFzQ3VzdG9tTWFwcGluZygkdGFnKSk7CiAKICAgICAgICAgbXkg
JHVjVGFnID0gdXBwZXJDYXNlTmFtZSgkdGFnKTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MQXR0
cmlidXRlTmFtZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVO
YW1lcy5pbgkocmV2aXNpb24gMzQxNDgpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5h
bWVzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE5OSArMSwyMDEgQEAKLWFiYnIKLWFjY2VwdF9j
aGFyc2V0Ci1hY2NlcHQKLWFjY2Vzc2tleQotYWN0aW9uCi1hbGlnbgotYWxpbmsKLWFsdAotYXJj
aGl2ZQotYXJpYS1hY3RpdmVkZXNjZW5kYW50Ci1hcmlhLWNoZWNrZWQKLWFyaWEtZGVzY3JpYmVk
YnkKLWFyaWEtbGFiZWxlZGJ5Ci1hcmlhLWxhYmVsbGVkYnkKLWFyaWEtbGV2ZWwKLWFyaWEtcHJl
c3NlZAotYXJpYS12YWx1ZW1heAotYXJpYS12YWx1ZW1pbgotYXJpYS12YWx1ZW5vdwotYXV0b2Nv
bXBsZXRlCi1hdXRvcGxheQotYXV0b3NhdmUKLWF4aXMKLWJhY2tncm91bmQKLWJlaGF2aW9yCi1i
Z2NvbG9yCi1iZ3Byb3BlcnRpZXMKLWJvcmRlcgotYm9yZGVyY29sb3IKLWNlbGxwYWRkaW5nCi1j
ZWxsc3BhY2luZwotY2hhcgotY2hhbGxlbmdlCi1jaGFyb2ZmCi1jaGFyc2V0Ci1jaGVja2VkCi1j
ZWxsYm9yZGVyCi1jaXRlCi1jbGFzcwotY2xhc3NpZAotY2xlYXIKLWNvZGUKLWNvZGViYXNlCi1j
b2RldHlwZQotY29sb3IKLWNvbHMKLWNvbHNwYW4KLWNvbXBhY3QKLWNvbXBvc2l0ZQotY29udGVu
dAotY29udGVudGVkaXRhYmxlCi1jb250cm9scwotY29vcmRzCi1kYXRhCi1kYXRldGltZQotZGVj
bGFyZQotZGVmZXIKLWRpcgotZGlyZWN0aW9uCi1kaXNhYmxlZAotZW5jdHlwZQotZW5kCi1mYWNl
Ci1mb3IKLWZyYW1lCi1mcmFtZWJvcmRlcgotaGVhZGVycwotaGVpZ2h0Ci1oaWRkZW4KLWhyZWYK
LWhyZWZsYW5nCi1oc3BhY2UKLWh0dHBfZXF1aXYKLWlkCi1pbmNyZW1lbnRhbAotaXNtYXAKLWtl
eXR5cGUKLWxhYmVsCi1sYW5nCi1sYW5ndWFnZQotbGVmdAotbGVmdG1hcmdpbgotbGluawotbG9u
Z2Rlc2MKLWxvb3AKLXBsYXljb3VudAotbG9vcGVuZAotbG9vcHN0YXJ0Ci1sb3dzcmMKLW1hbmlm
ZXN0Ci1tYXJnaW5oZWlnaHQKLW1hcmdpbndpZHRoCi1tYXgKLW1heGxlbmd0aAotbWF5c2NyaXB0
Ci1tZWRpYQotbWV0aG9kCi1taW4KLW11bHRpcGxlCi1uYW1lCi1ub2hyZWYKLW5vcmVzaXplCi1u
b3NoYWRlCi1ub3dyYXAKLW9iamVjdAotb25hYm9ydAotb25iZWZvcmVjb3B5Ci1vbmJlZm9yZWN1
dAotb25iZWZvcmVwYXN0ZQotb25iZWZvcmV1bmxvYWQKLW9uYmx1cgotb25jaGFuZ2UKLW9uY2xp
Y2sKLW9uY29udGV4dG1lbnUKLW9uY29weQotb25jdXQKLW9uZGJsY2xpY2sKLW9uZHJhZwotb25k
cmFnZW5kCi1vbmRyYWdlbnRlcgotb25kcmFnbGVhdmUKLW9uZHJhZ292ZXIKLW9uZHJhZ3N0YXJ0
Ci1vbmRyb3AKLW9uZXJyb3IKLW9uZm9jdXMKLW9uaW5wdXQKLW9ua2V5ZG93bgotb25rZXlwcmVz
cwotb25rZXl1cAotb25sb2FkCi1vbm1vdXNlZG93bgotb25tb3VzZW1vdmUKLW9ubW91c2VvdXQK
LW9ubW91c2VvdmVyCi1vbm1vdXNldXAKLW9ubW91c2V3aGVlbAotb25wYXN0ZQotb25yZXNldAot
b25yZXNpemUKLW9uc2Nyb2xsCi1vbnNlYXJjaAotb25zZWxlY3QKLW9uc2VsZWN0c3RhcnQKLW9u
c3RvcmFnZQotb25zdWJtaXQKLW9udW5sb2FkCi1wYWdleAotcGFnZXkKLXBsYWNlaG9sZGVyCi1w
bGFpbgotcGx1Z2lucGFnZQotcGx1Z2luc3BhZ2UKLXBsdWdpbnVybAotcG9zdGVyCi1wcmVjaXNp
b24KLXByb2ZpbGUKLXByb21wdAotcmVhZG9ubHkKLXJlbAotcmVzdWx0cwotcmV2Ci1yb2xlCi1y
b3dzCi1yb3dzcGFuCi1ydWxlcwotc2NoZW1lCi1zY29wZQotc2Nyb2xsYW1vdW50Ci1zY3JvbGxk
ZWxheQotc2Nyb2xsaW5nCi1zZWxlY3RlZAotc2hhcGUKLXNpemUKLXNwYW4KLXNyYwotc3RhbmRi
eQotc3RhcnQKLXN0eWxlCi1zdW1tYXJ5Ci10YWJpbmRleAotdGFibGVib3JkZXIKLXRhcmdldAot
dGV4dAotdGl0bGUKLXRvcAotdG9wbWFyZ2luCi10cnVlc3BlZWQKLXR5cGUKLXVzZW1hcAotdmFs
aWduCi12YWx1ZQotdmFsdWV0eXBlCi12ZXJzaW9uCi12aWV3c291cmNlCi12bGluawotdnNwYWNl
Ci13aWR0aAotd3JhcAorPGF0dHJzPgorPGFiYnIvPgorPGFjY2VwdF9jaGFyc2V0Lz4KKzxhY2Nl
cHQvPgorPGFjY2Vzc2tleS8+Cis8YWN0aW9uLz4KKzxhbGlnbi8+Cis8YWxpbmsvPgorPGFsdC8+
Cis8YXJjaGl2ZS8+Cis8YXJpYS1hY3RpdmVkZXNjZW5kYW50Lz4KKzxhcmlhLWNoZWNrZWQvPgor
PGFyaWEtZGVzY3JpYmVkYnkvPgorPGFyaWEtbGFiZWxlZGJ5Lz4KKzxhcmlhLWxhYmVsbGVkYnkv
PgorPGFyaWEtbGV2ZWwvPgorPGFyaWEtcHJlc3NlZC8+Cis8YXJpYS12YWx1ZW1heC8+Cis8YXJp
YS12YWx1ZW1pbi8+Cis8YXJpYS12YWx1ZW5vdy8+Cis8YXV0b2NvbXBsZXRlLz4KKzxhdXRvcGxh
eS8+Cis8YXV0b3NhdmUvPgorPGF4aXMvPgorPGJhY2tncm91bmQvPgorPGJlaGF2aW9yLz4KKzxi
Z2NvbG9yLz4KKzxiZ3Byb3BlcnRpZXMvPgorPGJvcmRlci8+Cis8Ym9yZGVyY29sb3IvPgorPGNl
bGxwYWRkaW5nLz4KKzxjZWxsc3BhY2luZy8+Cis8Y2hhci8+Cis8Y2hhbGxlbmdlLz4KKzxjaGFy
b2ZmLz4KKzxjaGFyc2V0Lz4KKzxjaGVja2VkLz4KKzxjZWxsYm9yZGVyLz4KKzxjaXRlLz4KKzxj
bGFzcy8+Cis8Y2xhc3NpZC8+Cis8Y2xlYXIvPgorPGNvZGUvPgorPGNvZGViYXNlLz4KKzxjb2Rl
dHlwZS8+Cis8Y29sb3IvPgorPGNvbHMvPgorPGNvbHNwYW4vPgorPGNvbXBhY3QvPgorPGNvbXBv
c2l0ZS8+Cis8Y29udGVudC8+Cis8Y29udGVudGVkaXRhYmxlLz4KKzxjb250cm9scy8+Cis8Y29v
cmRzLz4KKzxkYXRhLz4KKzxkYXRldGltZS8+Cis8ZGVjbGFyZS8+Cis8ZGVmZXIvPgorPGRpci8+
Cis8ZGlyZWN0aW9uLz4KKzxkaXNhYmxlZC8+Cis8ZW5jdHlwZS8+Cis8ZW5kLz4KKzxmYWNlLz4K
Kzxmb3IvPgorPGZyYW1lLz4KKzxmcmFtZWJvcmRlci8+Cis8aGVhZGVycy8+Cis8aGVpZ2h0Lz4K
KzxoaWRkZW4vPgorPGhyZWYvPgorPGhyZWZsYW5nLz4KKzxoc3BhY2UvPgorPGh0dHBfZXF1aXYv
PgorPGlkLz4KKzxpbmNyZW1lbnRhbC8+Cis8aXNtYXAvPgorPGtleXR5cGUvPgorPGxhYmVsLz4K
KzxsYW5nLz4KKzxsYW5ndWFnZS8+Cis8bGVmdC8+Cis8bGVmdG1hcmdpbi8+Cis8bGluay8+Cis8
bG9uZ2Rlc2MvPgorPGxvb3AvPgorPHBsYXljb3VudC8+Cis8bG9vcGVuZC8+Cis8bG9vcHN0YXJ0
Lz4KKzxsb3dzcmMvPgorPG1hbmlmZXN0Lz4KKzxtYXJnaW5oZWlnaHQvPgorPG1hcmdpbndpZHRo
Lz4KKzxtYXgvPgorPG1heGxlbmd0aC8+Cis8bWF5c2NyaXB0Lz4KKzxtZWRpYS8+Cis8bWV0aG9k
Lz4KKzxtaW4vPgorPG11bHRpcGxlLz4KKzxuYW1lLz4KKzxub2hyZWYvPgorPG5vcmVzaXplLz4K
Kzxub3NoYWRlLz4KKzxub3dyYXAvPgorPG9iamVjdC8+Cis8b25hYm9ydC8+Cis8b25iZWZvcmVj
b3B5Lz4KKzxvbmJlZm9yZWN1dC8+Cis8b25iZWZvcmVwYXN0ZS8+Cis8b25iZWZvcmV1bmxvYWQv
PgorPG9uYmx1ci8+Cis8b25jaGFuZ2UvPgorPG9uY2xpY2svPgorPG9uY29udGV4dG1lbnUvPgor
PG9uY29weS8+Cis8b25jdXQvPgorPG9uZGJsY2xpY2svPgorPG9uZHJhZy8+Cis8b25kcmFnZW5k
Lz4KKzxvbmRyYWdlbnRlci8+Cis8b25kcmFnbGVhdmUvPgorPG9uZHJhZ292ZXIvPgorPG9uZHJh
Z3N0YXJ0Lz4KKzxvbmRyb3AvPgorPG9uZXJyb3IvPgorPG9uZm9jdXMvPgorPG9uaW5wdXQvPgor
PG9ua2V5ZG93bi8+Cis8b25rZXlwcmVzcy8+Cis8b25rZXl1cC8+Cis8b25sb2FkLz4KKzxvbm1v
dXNlZG93bi8+Cis8b25tb3VzZW1vdmUvPgorPG9ubW91c2VvdXQvPgorPG9ubW91c2VvdmVyLz4K
Kzxvbm1vdXNldXAvPgorPG9ubW91c2V3aGVlbC8+Cis8b25wYXN0ZS8+Cis8b25yZXNldC8+Cis8
b25yZXNpemUvPgorPG9uc2Nyb2xsLz4KKzxvbnNlYXJjaC8+Cis8b25zZWxlY3QvPgorPG9uc2Vs
ZWN0c3RhcnQvPgorPG9uc3RvcmFnZS8+Cis8b25zdWJtaXQvPgorPG9udW5sb2FkLz4KKzxwYWdl
eC8+Cis8cGFnZXkvPgorPHBsYWNlaG9sZGVyLz4KKzxwbGFpbi8+Cis8cGx1Z2lucGFnZS8+Cis8
cGx1Z2luc3BhZ2UvPgorPHBsdWdpbnVybC8+Cis8cG9zdGVyLz4KKzxwcmVjaXNpb24vPgorPHBy
b2ZpbGUvPgorPHByb21wdC8+Cis8cmVhZG9ubHkvPgorPHJlbC8+Cis8cmVzdWx0cy8+Cis8cmV2
Lz4KKzxyb2xlLz4KKzxyb3dzLz4KKzxyb3dzcGFuLz4KKzxydWxlcy8+Cis8c2NoZW1lLz4KKzxz
Y29wZS8+Cis8c2Nyb2xsYW1vdW50Lz4KKzxzY3JvbGxkZWxheS8+Cis8c2Nyb2xsaW5nLz4KKzxz
ZWxlY3RlZC8+Cis8c2hhcGUvPgorPHNpemUvPgorPHNwYW4vPgorPHNyYy8+Cis8c3RhbmRieS8+
Cis8c3RhcnQvPgorPHN0eWxlLz4KKzxzdW1tYXJ5Lz4KKzx0YWJpbmRleC8+Cis8dGFibGVib3Jk
ZXIvPgorPHRhcmdldC8+Cis8dGV4dC8+Cis8dGl0bGUvPgorPHRvcC8+Cis8dG9wbWFyZ2luLz4K
Kzx0cnVlc3BlZWQvPgorPHR5cGUvPgorPHVzZW1hcC8+Cis8dmFsaWduLz4KKzx2YWx1ZS8+Cis8
dmFsdWV0eXBlLz4KKzx2ZXJzaW9uLz4KKzx2aWV3c291cmNlLz4KKzx2bGluay8+Cis8dnNwYWNl
Lz4KKzx3aWR0aC8+Cis8d3JhcC8+Cis8L2F0dHJzPgpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxU
YWdOYW1lcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCShy
ZXZpc2lvbiAzNDE0OCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4JKHdvcmtpbmcg
Y29weSkKQEAgLTEsMTE0ICsxLDExNSBAQAotYQotYWJicgotYWNyb255bQotYWRkcmVzcwotYXBw
bGV0Ci1hcmVhCis8dGFncz4KKzxhLz4KKzxhYmJyLz4KKzxhY3JvbnltLz4KKzxhZGRyZXNzLz4K
KzxhcHBsZXQvPgorPGFyZWEvPgogI2lmIEVOQUJMRV9WSURFTwotYXVkaW8KKzxhdWRpby8+CiAj
ZW5kaWYKLWIKLWJhc2UKLWJhc2Vmb250Ci1iZG8KLWJpZwotYmxvY2txdW90ZQotYm9keQotYnIK
LWJ1dHRvbgotY2FudmFzCi1jYXB0aW9uCi1jZW50ZXIKLWNpdGUKLWNvZGUKLWNvbAotY29sZ3Jv
dXAKLWRkCi1kZWwKLWRmbgotZGlyCi1kaXYKLWRsCi1kdAotZW0KLWVtYmVkCi1maWVsZHNldAot
Zm9udAotZm9ybQotZnJhbWUKLWZyYW1lc2V0Ci1oZWFkCi1oMQotaDIKLWgzCi1oNAotaDUKLWg2
Ci1ocgotaHRtbAotaQotaWZyYW1lCi1pbWFnZQotaW1nCi1pbnB1dAotaW5zCi1pc2luZGV4Ci1r
YmQKLWtleWdlbgotbGFiZWwKLWxheWVyCi1sZWdlbmQKLWxpCi1saW5rCi1saXN0aW5nCi1tYXAK
LW1hcnF1ZWUKLW1lbnUKLW1ldGEKLW5vYnIKLW5vZW1iZWQKLW5vZnJhbWVzCi1ub2xheWVyCi1u
b3NjcmlwdAotb2JqZWN0Ci1vbAotb3B0Z3JvdXAKLW9wdGlvbgotcAotcGFyYW0KLXBsYWludGV4
dAotcHJlCi1xCi1zCi1zYW1wCi1zY3JpcHQKLXNlbGVjdAotc21hbGwKKzxiLz4KKzxiYXNlLz4K
KzxiYXNlZm9udC8+Cis8YmRvLz4KKzxiaWcvPgorPGJsb2NrcXVvdGUvPgorPGJvZHkvPgorPGJy
Lz4KKzxidXR0b24vPgorPGNhbnZhcy8+Cis8Y2FwdGlvbi8+Cis8Y2VudGVyLz4KKzxjaXRlLz4K
Kzxjb2RlLz4KKzxjb2wvPgorPGNvbGdyb3VwLz4KKzxkZC8+Cis8ZGVsLz4KKzxkZm4vPgorPGRp
ci8+Cis8ZGl2Lz4KKzxkbC8+Cis8ZHQvPgorPGVtLz4KKzxlbWJlZC8+Cis8ZmllbGRzZXQvPgor
PGZvbnQvPgorPGZvcm0vPgorPGZyYW1lLz4KKzxmcmFtZXNldC8+Cis8aGVhZC8+Cis8aDEvPgor
PGgyLz4KKzxoMy8+Cis8aDQvPgorPGg1Lz4KKzxoNi8+Cis8aHIvPgorPGh0bWwvPgorPGkvPgor
PGlmcmFtZS8+Cis8aW1hZ2UvPgorPGltZy8+Cis8aW5wdXQvPgorPGlucy8+Cis8aXNpbmRleC8+
Cis8a2JkLz4KKzxrZXlnZW4vPgorPGxhYmVsLz4KKzxsYXllci8+Cis8bGVnZW5kLz4KKzxsaS8+
Cis8bGluay8+Cis8bGlzdGluZy8+Cis8bWFwLz4KKzxtYXJxdWVlLz4KKzxtZW51Lz4KKzxtZXRh
Lz4KKzxub2JyLz4KKzxub2VtYmVkLz4KKzxub2ZyYW1lcy8+Cis8bm9sYXllci8+Cis8bm9zY3Jp
cHQvPgorPG9iamVjdC8+Cis8b2wvPgorPG9wdGdyb3VwLz4KKzxvcHRpb24vPgorPHAvPgorPHBh
cmFtLz4KKzxwbGFpbnRleHQvPgorPHByZS8+Cis8cS8+Cis8cy8+Cis8c2FtcC8+Cis8c2NyaXB0
Lz4KKzxzZWxlY3QvPgorPHNtYWxsLz4KICNpZiBFTkFCTEVfVklERU8KLXNvdXJjZQorPHNvdXJj
ZS8+CiAjZW5kaWYKLXNwYW4KLXN0cmlrZQotc3Ryb25nCi1zdHlsZQotc3ViCi1zdXAKLXRhYmxl
Ci10Ym9keQotdGQKLXRleHRhcmVhCi10Zm9vdAotdGgKLXRoZWFkCi10aXRsZQotdHIKLXR0Ci11
Ci11bAotdmFyCis8c3Bhbi8+Cis8c3RyaWtlLz4KKzxzdHJvbmcvPgorPHN0eWxlLz4KKzxzdWIv
PgorPHN1cC8+Cis8dGFibGUvPgorPHRib2R5Lz4KKzx0ZC8+Cis8dGV4dGFyZWEvPgorPHRmb290
Lz4KKzx0aC8+Cis8dGhlYWQvPgorPHRpdGxlLz4KKzx0ci8+Cis8dHQvPgorPHUvPgorPHVsLz4K
Kzx2YXIvPgogI2lmIEVOQUJMRV9WSURFTwotdmlkZW8KKzx2aWRlby8+CiAjZW5kaWYKLXdicgot
eG1wCi0KKzx3YnIvPgorPHhtcC8+Cis8L3RhZ3M+CkluZGV4OiBXZWJDb3JlL3N2Zy9zdmdhdHRy
cy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9zdmdhdHRycy5pbgkocmV2aXNpb24gMzQx
NDgpCisrKyBXZWJDb3JlL3N2Zy9zdmdhdHRycy5pbgkod29ya2luZyBjb3B5KQpAQCAtMSwyNDcg
KzEsMjQ5IEBACi1hY2NlbnQtaGVpZ2h0Ci1hY2N1bXVsYXRlCi1hZGRpdGl2ZQotYWxpZ25tZW50
LWJhc2VsaW5lCi1hbHBoYWJldGljCi1hbXBsaXR1ZGUKLWFuaW1hdGUKLWFyYWJpYy1mb3JtCi1h
c2NlbnQKLWF0dHJpYnV0ZU5hbWUKLWF0dHJpYnV0ZVR5cGUKLWF6aW11dGgKLWJhc2VGcmVxdWVu
Y3kKLWJhc2VsaW5lLXNoaWZ0Ci1iYXNlUHJvZmlsZQotYmJveAotYmVnaW4KLWJpYXMKLWJ5Ci1j
YWxjTW9kZQotY2FwLWhlaWdodAotY2xpcAotY2xpcC1wYXRoCi1jbGlwLXJ1bGUKLWNsaXBQYXRo
VW5pdHMKLWNvbG9yCi1jb2xvci1pbnRlcnBvbGF0aW9uCi1jb2xvci1pbnRlcnBvbGF0aW9uLWZp
bHRlcnMKLWNvbG9yLXByb2ZpbGUKLWNvbG9yLXJlbmRlcmluZwotY29udGVudFNjcmlwdFR5cGUK
LWNvbnRlbnRTdHlsZVR5cGUKLWN1cnNvcgotY3gKLWN5Ci1kCi1kZXNjZW50Ci1kaWZmdXNlQ29u
c3RhbnQKLWRpcmVjdGlvbgotZGlzcGxheQotZGl2aXNvcgotZG9taW5hbnQtYmFzZWxpbmUKLWR1
cgotZHgKLWR5Ci1lZGdlTW9kZQotZWxldmF0aW9uCi1lbmFibGUtYmFja2dyb3VuZAotZW5kCi1l
eHBvbmVudAotZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZAotZmVDb2xvck1hdHJpeAotZmVDb21w
b3NpdGUKLWZlR2F1c3NpYW5CbHVyCi1mZU1vcnBob2xvZ3kKLWZlVGlsZQotZmlsbAotZmlsbC1v
cGFjaXR5Ci1maWxsLXJ1bGUKLWZpbHRlcgotZmlsdGVyUmVzCi1maWx0ZXJVbml0cwotZmxvb2Qt
Y29sb3IKLWZsb29kLW9wYWNpdHkKLWZvbnQtZmFtaWx5Ci1mb250LXNpemUKLWZvbnQtc2l6ZS1h
ZGp1c3QKLWZvbnQtc3RyZXRjaAotZm9udC1zdHlsZQotZm9udC12YXJpYW50Ci1mb250LXdlaWdo
dAotZm9ybWF0Ci1mcm9tCi1meAotZnkKLWcxCi1nMgotZ2x5cGgtbmFtZQotZ2x5cGgtb3JpZW50
YXRpb24taG9yaXpvbnRhbAotZ2x5cGgtb3JpZW50YXRpb24tdmVydGljYWwKLWdseXBoUmVmCi1n
cmFkaWVudFRyYW5zZm9ybQotZ3JhZGllbnRVbml0cwotaGFuZ2luZwotaGVpZ2h0Ci1ob3Jpei1h
ZHYteAotaG9yaXotb3JpZ2luLXgKLWhvcml6LW9yaWdpbi15Ci1pZGVvZ3JhcGhpYwotaW1hZ2Ut
cmVuZGVyaW5nCi1pbgotaW4yCi1pbnRlcmNlcHQKLWsKLWsxCi1rMgotazMKLWs0Ci1rZXJuZWxN
YXRyaXgKLWtlcm5lbFVuaXRMZW5ndGgKLWtlcm5pbmcKLWtleVBvaW50cwota2V5U3BsaW5lcwot
a2V5VGltZXMKLWxhbmcKLWxlbmd0aEFkanVzdAotbGV0dGVyLXNwYWNpbmcKLWxpZ2h0aW5nLWNv
bG9yCi1saW1pdGluZ0NvbmVBbmdsZQotbG9jYWwKLW1hcmtlci1lbmQKLW1hcmtlci1taWQKLW1h
cmtlci1zdGFydAotbWFya2VySGVpZ2h0Ci1tYXJrZXJVbml0cwotbWFya2VyV2lkdGgKLW1hc2sK
LW1hc2tDb250ZW50VW5pdHMKLW1hc2tVbml0cwotbWF0aGVtYXRpY2FsCi1tYXgKLW1lZGlhCi1t
ZXRob2QKLW1pbgotbW9kZQotbmFtZQotbnVtT2N0YXZlcwotb2Zmc2V0Ci1vbmFjdGl2YXRlCi1v
bmJlZ2luCi1vbmVuZAotb25mb2N1c2luCi1vbmZvY3Vzb3V0Ci1vbnJlcGVhdAotb256b29tCi1v
cGFjaXR5Ci1vcGVyYXRvcgotb3JkZXIKLW9yaWVudAotb3JpZW50YXRpb24KLW9yaWdpbgotb3Zl
cmZsb3cKLW92ZXJsaW5lLXBvc2l0aW9uCi1vdmVybGluZS10aGlja25lc3MKLXBhbm9zZS0xCi1w
YXRoCi1wYXRoTGVuZ3RoCi1wYXR0ZXJuQ29udGVudFVuaXRzCi1wYXR0ZXJuVHJhbnNmb3JtCi1w
YXR0ZXJuVW5pdHMKLXBvaW50ZXItZXZlbnRzCi1wb2ludHMKLXBvaW50c0F0WAotcG9pbnRzQXRZ
Ci1wb2ludHNBdFoKLXByZXNlcnZlQWxwaGEKLXByZXNlcnZlQXNwZWN0UmF0aW8KLXByaW1pdGl2
ZVVuaXRzCi1yCi1yYWRpdXMKLXJlZlgKLXJlZlkKLXJlbmRlcmluZy1pbnRlbnQKLXJlcGVhdENv
dW50Ci1yZXBlYXREdXIKLXJlcXVpcmVkRXh0ZW5zaW9ucwotcmVxdWlyZWRGZWF0dXJlcwotcmVz
dGFydAotcmVzdWx0Ci1yb3RhdGUKLXJ4Ci1yeQotc2NhbGUKLXNlZWQKLXNoYXBlLXJlbmRlcmlu
Zwotc2xvcGUKLXNwYWNpbmcKLXNwZWN1bGFyQ29uc3RhbnQKLXNwZWN1bGFyRXhwb25lbnQKLXNw
cmVhZE1ldGhvZAotc3RhcnRPZmZzZXQKLXN0ZERldmlhdGlvbgotc3RlbWgKLXN0ZW12Ci1zdGl0
Y2hUaWxlcwotc3RvcC1jb2xvcgotc3RvcC1vcGFjaXR5Ci1zdHJpa2V0aHJvdWdoLXBvc2l0aW9u
Ci1zdHJpa2V0aHJvdWdoLXRoaWNrbmVzcwotc3Ryb2tlCi1zdHJva2UtZGFzaGFycmF5Ci1zdHJv
a2UtZGFzaG9mZnNldAotc3Ryb2tlLWxpbmVjYXAKLXN0cm9rZS1saW5lam9pbgotc3Ryb2tlLW1p
dGVybGltaXQKLXN0cm9rZS1vcGFjaXR5Ci1zdHJva2Utd2lkdGgKLXN0eWxlCi1zdXJmYWNlU2Nh
bGUKLXN5c3RlbUxhbmd1YWdlCi10YWJsZVZhbHVlcwotdGFyZ2V0Ci10YXJnZXRYCi10YXJnZXRZ
Ci10ZXh0LWFuY2hvcgotdGV4dC1kZWNvcmF0aW9uCi10ZXh0LXJlbmRlcmluZwotdGV4dExlbmd0
aAotdGl0bGUKLXRvCi10cmFuc2Zvcm0KLXR5cGUKLXUxCi11MgotdW5kZXJsaW5lLXBvc2l0aW9u
Ci11bmRlcmxpbmUtdGhpY2tuZXNzCi11bmljb2RlCi11bmljb2RlLWJpZGkKLXVuaWNvZGUtcmFu
Z2UKLXVuaXRzLXBlci1lbQotdi1hbHBoYWJldGljCi12LWhhbmdpbmcKLXYtaWRlb2dyYXBoaWMK
LXYtbWF0aGVtYXRpY2FsCi12YWx1ZXMKLXZlcnNpb24KLXZlcnQtYWR2LXkKLXZlcnQtb3JpZ2lu
LXgKLXZlcnQtb3JpZ2luLXkKLXZpZXdCb3gKLXZpZXdUYXJnZXQKLXZpc2liaWxpdHkKLXdpZHRo
Ci13aWR0aHMKLXdvcmQtc3BhY2luZwotd3JpdGluZy1tb2RlCi14Ci14LWhlaWdodAoteDEKLXgy
Ci14Q2hhbm5lbFNlbGVjdG9yCi15Ci15MQoteTIKLXlDaGFubmVsU2VsZWN0b3IKLXoKLXpvb21B
bmRQYW4KKzxhdHRycz4KKzxhY2NlbnQtaGVpZ2h0Lz4KKzxhY2N1bXVsYXRlLz4KKzxhZGRpdGl2
ZS8+Cis8YWxpZ25tZW50LWJhc2VsaW5lLz4KKzxhbHBoYWJldGljLz4KKzxhbXBsaXR1ZGUvPgor
PGFuaW1hdGUvPgorPGFyYWJpYy1mb3JtLz4KKzxhc2NlbnQvPgorPGF0dHJpYnV0ZU5hbWUvPgor
PGF0dHJpYnV0ZVR5cGUvPgorPGF6aW11dGgvPgorPGJhc2VGcmVxdWVuY3kvPgorPGJhc2VsaW5l
LXNoaWZ0Lz4KKzxiYXNlUHJvZmlsZS8+Cis8YmJveC8+Cis8YmVnaW4vPgorPGJpYXMvPgorPGJ5
Lz4KKzxjYWxjTW9kZS8+Cis8Y2FwLWhlaWdodC8+Cis8Y2xpcC8+Cis8Y2xpcC1wYXRoLz4KKzxj
bGlwLXJ1bGUvPgorPGNsaXBQYXRoVW5pdHMvPgorPGNvbG9yLz4KKzxjb2xvci1pbnRlcnBvbGF0
aW9uLz4KKzxjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMvPgorPGNvbG9yLXByb2ZpbGUvPgor
PGNvbG9yLXJlbmRlcmluZy8+Cis8Y29udGVudFNjcmlwdFR5cGUvPgorPGNvbnRlbnRTdHlsZVR5
cGUvPgorPGN1cnNvci8+Cis8Y3gvPgorPGN5Lz4KKzxkLz4KKzxkZXNjZW50Lz4KKzxkaWZmdXNl
Q29uc3RhbnQvPgorPGRpcmVjdGlvbi8+Cis8ZGlzcGxheS8+Cis8ZGl2aXNvci8+Cis8ZG9taW5h
bnQtYmFzZWxpbmUvPgorPGR1ci8+Cis8ZHgvPgorPGR5Lz4KKzxlZGdlTW9kZS8+Cis8ZWxldmF0
aW9uLz4KKzxlbmFibGUtYmFja2dyb3VuZC8+Cis8ZW5kLz4KKzxleHBvbmVudC8+Cis8ZXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZC8+Cis8ZmVDb2xvck1hdHJpeC8+Cis8ZmVDb21wb3NpdGUvPgor
PGZlR2F1c3NpYW5CbHVyLz4KKzxmZU1vcnBob2xvZ3kvPgorPGZlVGlsZS8+Cis8ZmlsbC8+Cis8
ZmlsbC1vcGFjaXR5Lz4KKzxmaWxsLXJ1bGUvPgorPGZpbHRlci8+Cis8ZmlsdGVyUmVzLz4KKzxm
aWx0ZXJVbml0cy8+Cis8Zmxvb2QtY29sb3IvPgorPGZsb29kLW9wYWNpdHkvPgorPGZvbnQtZmFt
aWx5Lz4KKzxmb250LXNpemUvPgorPGZvbnQtc2l6ZS1hZGp1c3QvPgorPGZvbnQtc3RyZXRjaC8+
Cis8Zm9udC1zdHlsZS8+Cis8Zm9udC12YXJpYW50Lz4KKzxmb250LXdlaWdodC8+Cis8Zm9ybWF0
Lz4KKzxmcm9tLz4KKzxmeC8+Cis8ZnkvPgorPGcxLz4KKzxnMi8+Cis8Z2x5cGgtbmFtZS8+Cis8
Z2x5cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbC8+Cis8Z2x5cGgtb3JpZW50YXRpb24tdmVydGlj
YWwvPgorPGdseXBoUmVmLz4KKzxncmFkaWVudFRyYW5zZm9ybS8+Cis8Z3JhZGllbnRVbml0cy8+
Cis8aGFuZ2luZy8+Cis8aGVpZ2h0Lz4KKzxob3Jpei1hZHYteC8+Cis8aG9yaXotb3JpZ2luLXgv
PgorPGhvcml6LW9yaWdpbi15Lz4KKzxpZGVvZ3JhcGhpYy8+Cis8aW1hZ2UtcmVuZGVyaW5nLz4K
Kzxpbi8+Cis8aW4yLz4KKzxpbnRlcmNlcHQvPgorPGsvPgorPGsxLz4KKzxrMi8+Cis8azMvPgor
PGs0Lz4KKzxrZXJuZWxNYXRyaXgvPgorPGtlcm5lbFVuaXRMZW5ndGgvPgorPGtlcm5pbmcvPgor
PGtleVBvaW50cy8+Cis8a2V5U3BsaW5lcy8+Cis8a2V5VGltZXMvPgorPGxhbmcvPgorPGxlbmd0
aEFkanVzdC8+Cis8bGV0dGVyLXNwYWNpbmcvPgorPGxpZ2h0aW5nLWNvbG9yLz4KKzxsaW1pdGlu
Z0NvbmVBbmdsZS8+Cis8bG9jYWwvPgorPG1hcmtlci1lbmQvPgorPG1hcmtlci1taWQvPgorPG1h
cmtlci1zdGFydC8+Cis8bWFya2VySGVpZ2h0Lz4KKzxtYXJrZXJVbml0cy8+Cis8bWFya2VyV2lk
dGgvPgorPG1hc2svPgorPG1hc2tDb250ZW50VW5pdHMvPgorPG1hc2tVbml0cy8+Cis8bWF0aGVt
YXRpY2FsLz4KKzxtYXgvPgorPG1lZGlhLz4KKzxtZXRob2QvPgorPG1pbi8+Cis8bW9kZS8+Cis8
bmFtZS8+Cis8bnVtT2N0YXZlcy8+Cis8b2Zmc2V0Lz4KKzxvbmFjdGl2YXRlLz4KKzxvbmJlZ2lu
Lz4KKzxvbmVuZC8+Cis8b25mb2N1c2luLz4KKzxvbmZvY3Vzb3V0Lz4KKzxvbnJlcGVhdC8+Cis8
b256b29tLz4KKzxvcGFjaXR5Lz4KKzxvcGVyYXRvci8+Cis8b3JkZXIvPgorPG9yaWVudC8+Cis8
b3JpZW50YXRpb24vPgorPG9yaWdpbi8+Cis8b3ZlcmZsb3cvPgorPG92ZXJsaW5lLXBvc2l0aW9u
Lz4KKzxvdmVybGluZS10aGlja25lc3MvPgorPHBhbm9zZS0xLz4KKzxwYXRoLz4KKzxwYXRoTGVu
Z3RoLz4KKzxwYXR0ZXJuQ29udGVudFVuaXRzLz4KKzxwYXR0ZXJuVHJhbnNmb3JtLz4KKzxwYXR0
ZXJuVW5pdHMvPgorPHBvaW50ZXItZXZlbnRzLz4KKzxwb2ludHMvPgorPHBvaW50c0F0WC8+Cis8
cG9pbnRzQXRZLz4KKzxwb2ludHNBdFovPgorPHByZXNlcnZlQWxwaGEvPgorPHByZXNlcnZlQXNw
ZWN0UmF0aW8vPgorPHByaW1pdGl2ZVVuaXRzLz4KKzxyLz4KKzxyYWRpdXMvPgorPHJlZlgvPgor
PHJlZlkvPgorPHJlbmRlcmluZy1pbnRlbnQvPgorPHJlcGVhdENvdW50Lz4KKzxyZXBlYXREdXIv
PgorPHJlcXVpcmVkRXh0ZW5zaW9ucy8+Cis8cmVxdWlyZWRGZWF0dXJlcy8+Cis8cmVzdGFydC8+
Cis8cmVzdWx0Lz4KKzxyb3RhdGUvPgorPHJ4Lz4KKzxyeS8+Cis8c2NhbGUvPgorPHNlZWQvPgor
PHNoYXBlLXJlbmRlcmluZy8+Cis8c2xvcGUvPgorPHNwYWNpbmcvPgorPHNwZWN1bGFyQ29uc3Rh
bnQvPgorPHNwZWN1bGFyRXhwb25lbnQvPgorPHNwcmVhZE1ldGhvZC8+Cis8c3RhcnRPZmZzZXQv
PgorPHN0ZERldmlhdGlvbi8+Cis8c3RlbWgvPgorPHN0ZW12Lz4KKzxzdGl0Y2hUaWxlcy8+Cis8
c3RvcC1jb2xvci8+Cis8c3RvcC1vcGFjaXR5Lz4KKzxzdHJpa2V0aHJvdWdoLXBvc2l0aW9uLz4K
KzxzdHJpa2V0aHJvdWdoLXRoaWNrbmVzcy8+Cis8c3Ryb2tlLz4KKzxzdHJva2UtZGFzaGFycmF5
Lz4KKzxzdHJva2UtZGFzaG9mZnNldC8+Cis8c3Ryb2tlLWxpbmVjYXAvPgorPHN0cm9rZS1saW5l
am9pbi8+Cis8c3Ryb2tlLW1pdGVybGltaXQvPgorPHN0cm9rZS1vcGFjaXR5Lz4KKzxzdHJva2Ut
d2lkdGgvPgorPHN0eWxlLz4KKzxzdXJmYWNlU2NhbGUvPgorPHN5c3RlbUxhbmd1YWdlLz4KKzx0
YWJsZVZhbHVlcy8+Cis8dGFyZ2V0Lz4KKzx0YXJnZXRYLz4KKzx0YXJnZXRZLz4KKzx0ZXh0LWFu
Y2hvci8+Cis8dGV4dC1kZWNvcmF0aW9uLz4KKzx0ZXh0LXJlbmRlcmluZy8+Cis8dGV4dExlbmd0
aC8+Cis8dGl0bGUvPgorPHRvLz4KKzx0cmFuc2Zvcm0vPgorPHR5cGUvPgorPHUxLz4KKzx1Mi8+
Cis8dW5kZXJsaW5lLXBvc2l0aW9uLz4KKzx1bmRlcmxpbmUtdGhpY2tuZXNzLz4KKzx1bmljb2Rl
Lz4KKzx1bmljb2RlLWJpZGkvPgorPHVuaWNvZGUtcmFuZ2UvPgorPHVuaXRzLXBlci1lbS8+Cis8
di1hbHBoYWJldGljLz4KKzx2LWhhbmdpbmcvPgorPHYtaWRlb2dyYXBoaWMvPgorPHYtbWF0aGVt
YXRpY2FsLz4KKzx2YWx1ZXMvPgorPHZlcnNpb24vPgorPHZlcnQtYWR2LXkvPgorPHZlcnQtb3Jp
Z2luLXgvPgorPHZlcnQtb3JpZ2luLXkvPgorPHZpZXdCb3gvPgorPHZpZXdUYXJnZXQvPgorPHZp
c2liaWxpdHkvPgorPHdpZHRoLz4KKzx3aWR0aHMvPgorPHdvcmQtc3BhY2luZy8+Cis8d3JpdGlu
Zy1tb2RlLz4KKzx4Lz4KKzx4LWhlaWdodC8+Cis8eDEvPgorPHgyLz4KKzx4Q2hhbm5lbFNlbGVj
dG9yLz4KKzx5Lz4KKzx5MS8+Cis8eTIvPgorPHlDaGFubmVsU2VsZWN0b3IvPgorPHovPgorPHpv
b21BbmRQYW4vPgorPC9hdHRycz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBX
ZWJDb3JlL3N2Zy9zdmd0YWdzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL3N2Z3RhZ3Mu
aW4JKHJldmlzaW9uIDM0MTQ4KQorKysgV2ViQ29yZS9zdmcvc3ZndGFncy5pbgkod29ya2luZyBj
b3B5KQpAQCAtMSwxMTEgKzEsMTEzIEBACi1hCis8dGFncz4KKzxhLz4KICNpZiBFTkFCTEVfU1ZH
X0ZPTlRTCi1hbHRHbHlwaAorPGFsdEdseXBoLz4KICNlbmRpZgogI2lmIDAKLWFsdEdseXBoRGVm
Ci1hbHRHbHlwaEl0ZW0KKzxhbHRHbHlwaERlZi8+Cis8YWx0R2x5cGhJdGVtLz4KICNlbmRpZgog
I2lmZGVmIEVOQUJMRV9TVkdfQU5JTUFUSU9OCi1hbmltYXRlCi1hbmltYXRlQ29sb3IKLWFuaW1h
dGVNb3Rpb24KLWFuaW1hdGVUcmFuc2Zvcm0KLXNldAorPGFuaW1hdGUvPgorPGFuaW1hdGVDb2xv
ci8+Cis8YW5pbWF0ZU1vdGlvbi8+Cis8YW5pbWF0ZVRyYW5zZm9ybS8+Cis8c2V0Lz4KICNlbmRp
ZgotY2lyY2xlCi1jbGlwUGF0aAorPGNpcmNsZS8+Cis8Y2xpcFBhdGgvPgogI2lmIDAKLWNvbG9y
X3Byb2ZpbGUKKzxjb2xvcl9wcm9maWxlLz4KICNlbmRpZgotY3Vyc29yCis8Y3Vyc29yLz4KICNp
ZiBFTkFCTEVfU1ZHX0ZPTlRTCi1kZWZpbml0aW9uX3NyYworPGRlZmluaXRpb25fc3JjLz4KICNl
bmRpZgotZGVmcwotZGVzYwotZWxsaXBzZQorPGRlZnMvPgorPGRlc2MvPgorPGVsbGlwc2UvPgog
I2lmZGVmIEVOQUJMRV9TVkdfRklMVEVSUwotZmVCbGVuZAotZmVDb2xvck1hdHJpeAotZmVDb21w
b25lbnRUcmFuc2ZlcgotZmVDb21wb3NpdGUKLSNpZiAwCi1mZUNvbnZvbHZlTWF0cml4Ci0jZW5k
aWYKLWZlRGlmZnVzZUxpZ2h0aW5nCi1mZURpc3BsYWNlbWVudE1hcAotZmVEaXN0YW50TGlnaHQK
LWZlRmxvb2QKLWZlRnVuY0EKLWZlRnVuY0IKLWZlRnVuY0cKLWZlRnVuY1IKLWZlR2F1c3NpYW5C
bHVyCi1mZUltYWdlCi1mZU1lcmdlCi1mZU1lcmdlTm9kZQotI2lmIDAKLWZlTW9ycGhvbG9neQot
I2VuZGlmCi1mZU9mZnNldAotZmVQb2ludExpZ2h0Ci1mZVNwZWN1bGFyTGlnaHRpbmcKLWZlU3Bv
dExpZ2h0Ci1mZVRpbGUKLWZlVHVyYnVsZW5jZQotZmlsdGVyCis8ZmVCbGVuZC8+Cis8ZmVDb2xv
ck1hdHJpeC8+Cis8ZmVDb21wb25lbnRUcmFuc2Zlci8+Cis8ZmVDb21wb3NpdGUvPgorI2lmIDAK
KzxmZUNvbnZvbHZlTWF0cml4Lz4KKyNlbmRpZgorPGZlRGlmZnVzZUxpZ2h0aW5nLz4KKzxmZURp
c3BsYWNlbWVudE1hcC8+Cis8ZmVEaXN0YW50TGlnaHQvPgorPGZlRmxvb2QvPgorPGZlRnVuY0Ev
PgorPGZlRnVuY0IvPgorPGZlRnVuY0cvPgorPGZlRnVuY1IvPgorPGZlR2F1c3NpYW5CbHVyLz4K
KzxmZUltYWdlLz4KKzxmZU1lcmdlLz4KKzxmZU1lcmdlTm9kZS8+CisjaWYgMAorPGZlTW9ycGhv
bG9neS8+CisjZW5kaWYKKzxmZU9mZnNldC8+Cis8ZmVQb2ludExpZ2h0Lz4KKzxmZVNwZWN1bGFy
TGlnaHRpbmcvPgorPGZlU3BvdExpZ2h0Lz4KKzxmZVRpbGUvPgorPGZlVHVyYnVsZW5jZS8+Cis8
ZmlsdGVyLz4KICNlbmRpZgogI2lmZGVmIEVOQUJMRV9TVkdfRk9OVFMKLWZvbnQKLWZvbnRfZmFj
ZQotZm9udF9mYWNlX2Zvcm1hdAotZm9udF9mYWNlX25hbWUKLWZvbnRfZmFjZV9zcmMKLWZvbnRf
ZmFjZV91cmkKKzxmb250Lz4KKzxmb250X2ZhY2UvPgorPGZvbnRfZmFjZV9mb3JtYXQvPgorPGZv
bnRfZmFjZV9uYW1lLz4KKzxmb250X2ZhY2Vfc3JjLz4KKzxmb250X2ZhY2VfdXJpLz4KICNlbmRp
ZgogI2lmZGVmIEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QKLWZvcmVpZ25PYmplY3QKKzxmb3Jl
aWduT2JqZWN0Lz4KICNlbmRpZgotZworPGcvPgogI2lmZGVmIEVOQUJMRV9TVkdfRk9OVFMKLWds
eXBoCis8Z2x5cGgvPgogI2VuZGlmCiAjaWYgMAotZ2x5cGhSZWYKKzxnbHlwaFJlZi8+CiAjZW5k
aWYKICNpZmRlZiBFTkFCTEVfU1ZHX0ZPTlRTCi1oa2VybgorPGhrZXJuLz4KICNlbmRpZgotaW1h
Z2UKLWxpbmUKLWxpbmVhckdyYWRpZW50Ci1tYXJrZXIKLW1hc2sKLW1ldGFkYXRhCis8aW1hZ2Uv
PgorPGxpbmUvPgorPGxpbmVhckdyYWRpZW50Lz4KKzxtYXJrZXIvPgorPG1hc2svPgorPG1ldGFk
YXRhLz4KICNpZmRlZiBFTkFCTEVfU1ZHX0ZPTlRTCi1taXNzaW5nX2dseXBoCis8bWlzc2luZ19n
bHlwaC8+CiAjZW5kaWYKLW1wYXRoCi1wYXRoCi1wYXR0ZXJuCi1wb2x5Z29uCi1wb2x5bGluZQot
cmFkaWFsR3JhZGllbnQKLXJlY3QKLXNjcmlwdAotc3RvcAotc3R5bGUKLXN2Zwotc3dpdGNoCi1z
eW1ib2wKLXRleHQKLXRleHRQYXRoCi10aXRsZQotdHJlZgotdHNwYW4KLXVzZQotdmlldworPG1w
YXRoLz4KKzxwYXRoLz4KKzxwYXR0ZXJuLz4KKzxwb2x5Z29uLz4KKzxwb2x5bGluZS8+Cis8cmFk
aWFsR3JhZGllbnQvPgorPHJlY3QvPgorPHNjcmlwdC8+Cis8c3RvcC8+Cis8c3R5bGUvPgorPHN2
Zy8+Cis8c3dpdGNoLz4KKzxzeW1ib2wvPgorPHRleHQvPgorPHRleHRQYXRoLz4KKzx0aXRsZS8+
Cis8dHJlZi8+Cis8dHNwYW4vPgorPHVzZS8+Cis8dmlldy8+CiAjaWYgMAotdmtlcm4KKzx2a2Vy
bi8+CiAjZW5kaWYKKzwvdGFncz4KSW5kZXg6IFdlYkNvcmUvc3ZnL3hsaW5rYXR0cnMuaW4KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9zdmcveGxpbmthdHRycy5pbgkocmV2aXNpb24gMzQxNDgpCisr
KyBXZWJDb3JlL3N2Zy94bGlua2F0dHJzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsOSBA
QAotYWN0dWF0ZQotYXJjcm9sZQotaHJlZgotcm9sZQotc2hvdwotdGl0bGUKLXR5cGUKKzxhdHRy
cz4KKzxhY3R1YXRlLz4KKzxhcmNyb2xlLz4KKzxocmVmLz4KKzxyb2xlLz4KKzxzaG93Lz4KKzx0
aXRsZS8+Cis8dHlwZS8+Cis8L2F0dHJzPgpJbmRleDogV2ViQ29yZS94bWwveG1sYXR0cnMuaW4K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS94bWwveG1sYXR0cnMuaW4JKHJldmlzaW9uIDM0MTQ4KQor
KysgV2ViQ29yZS94bWwveG1sYXR0cnMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1IEBA
Ci1iYXNlCi1sYW5nCi1zcGFjZQorPGF0dHJzPgorPGJhc2UvPgorPGxhbmcvPgorPHNwYWNlLz4K
KzwvYXR0cnM+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21556</attachid>
            <date>2008-06-07 02:15:13 -0700</date>
            <delta_ts>2008-06-07 02:59:34 -0700</delta_ts>
            <desc>Second part - add XML attributes&apos; parsing and start moving some hacks</desc>
            <filename>makeNamesXmlIn2-CL.patch</filename>
            <type>text/plain</type>
            <size>11427</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
N2U4YTQwNC4uMDlmZWZlNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAwOC0wNi0wNyAgSnVsaWVuIENoYWZm
cmFpeCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBQYXJ0IG9mIGJ1ZyAxOTIwMDogKi5pbiBmaWxlcyBzaG91
bGQgZW1iZWQgbW9yZSBpbmZvcm1hdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTkyMDAKKworICAgICAgICAtIEFkZGVkIFhNTCBhdHRyaWJ1dGVz
JyBwYXJzaW5nLgorCisgICAgICAgIC0gTW92ZWQgdGhlIChtb3N0KSBjYXBpdGFsaXphdGlvbiBh
bmQgYXVkaW8gaGFja3MgaW4gdGhlICouaW4gZmlsZXMuCisKKyAgICAgICAgKiBkb20vbWFrZV9u
YW1lcy5wbDoKKyAgICAgICAgKiBodG1sL0hUTUxUYWdOYW1lcy5pbjoKKyAgICAgICAgKiBzdmcv
c3ZndGFncy5pbjoKKwogMjAwOC0wNi0wNiAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhA
d2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljLgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9kb20vbWFrZV9uYW1lcy5wbCBiL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwKaW5kZXgg
ZWExZmM5Yi4uY2JjMTBiYyAxMDA3NTUKLS0tIGEvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbAor
KysgYi9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCkBAIC01MSw3ICs1MSw2IEBAIG15ICRhdHRy
c051bGxOYW1lc3BhY2UgPSAwOwogbXkgJGV4dHJhRGVmaW5lcyA9IDA7CiBteSAkcHJlcHJvY2Vz
c29yID0gIi91c3IvYmluL2djYyAtRSAtUCAteCBjKysiOwogbXkgJGd1YXJkRmFjdG9yeVdpdGgg
PSAwOwotbXkgJWh0bWxDYXBpdGFsaXphdGlvbkhhY2tzID0gKCk7CiBteSAlc3ZnQ3VzdG9tTWFw
cGluZ3MgPSAoKTsKIG15ICVodG1sQ3VzdG9tTWFwcGluZ3MgPSAoKTsKIApAQCAtOTgsOCArOTcs
MjkgQEAgaWYgKCRwcmludFdyYXBwZXJGYWN0b3J5KSB7CiAgICAgcHJpbnRXcmFwcGVyRmFjdG9y
eUhlYWRlckZpbGUoIiR3cmFwcGVyRmFjdG9yeUJhc2VQYXRoLmgiKTsKIH0KIAorIyMjIEhhc2gg
aW5pdGlhbGl6YXRpb24KKworc3ViIGluaXRpYWxpemVUYWdQcm9wZXJ0eUhhc2gKK3sKKyAgICBy
ZXR1cm4gKCd1cHBlckNhc2UnID0+IHVwcGVyQ2FzZU5hbWUoJF9bMF0pLAorICAgICAgICAgICAg
J2FwcGx5QXVkaW9IYWNrJyA9PiAwKTsKK30KKworc3ViIGluaXRpYWxpemVBdHRyUHJvcGVydHlI
YXNoCit7CisgICAgcmV0dXJuICgndXBwZXJDYXNlJyA9PiB1cHBlckNhc2VOYW1lKCRfWzBdKSk7
Cit9CisKKwogIyMjIFBhcnNpbmcgaGFuZGxlcnMKIAorIyBPdXIgZmlsZXMgc2hvdWxkIGhhdmUg
dGhlIGZvbGxvd2luZyBmb3JtIDoKKyMgPHRhZ3M+IG9yIDxhdHRycz4KKyMgPCd0YWcvYXR0ciBu
YW1lJyAncHJvcGVydHkxJyA9ICd2YWx1ZTEnIC4uLiAvPgorIyB3aGVyZSB0aGUgcHJvcGVydGll
cyBhcmUgZGVmaW5lZCBpbiB0aGUgaW5pdGlhbGl6ZSpQcm9wZXJ0eUhhc2ggbWV0aG9kcy4KKyMg
KG1vcmUgdGFnL2F0dHIgLi4uKQorIyA8L3RhZ3M+IG9yIDwvYXR0cnM+CisKIHN1YiBwYXJzZVRh
Z3MKIHsKICAgICBteSAkY29udGVudHNSZWYgPSBzaGlmdDsKQEAgLTEwNyw5ICsxMjcsMTUgQEAg
c3ViIHBhcnNlVGFncwogICAgICAgICBteSAkdGFnID0gJCR7Y29udGVudFJlZn17J25hbWUnfTsK
ICAgICAgICAgJHRhZyA9fiBzLy0vXy9nOwogCi0gICAgICAgICMgRklYTUU6IHdlIGN1cnJlbnRs
eSBpbnNlcnQgJycgaW50byB0aGUgaGFzaCBidXQgaXQgc2hvdWxkIGJlIHJlcGxhY2VkIGJ5IGEg
ZGVzY3JpcHRpb24gbWFwCi0gICAgICAgICMgdGFraW5nIGludG8gYWNjb3VudCB0aGUgZWxlbWVu
dCdzIGF0dHJpYnV0ZXMuCi0gICAgICAgICR0YWdzeyR0YWd9ID0gJyc7CisgICAgICAgICMgSW5p
dGlhbGl6ZSBkZWZhdWx0IHByb3BlcnRpZXMnIHZhbHVlcy4KKyAgICAgICAgJHRhZ3N7JHRhZ30g
PSB7IGluaXRpYWxpemVUYWdQcm9wZXJ0eUhhc2goJHRhZykgfSBpZiAhZGVmaW5lZCgkdGFnc3sk
dGFnfSk7CisKKyAgICAgICAgIyBQYXJzZSB0aGUgWE1MIGF0dHJpYnV0ZXMuCisgICAgICAgIG15
ICVwcm9wZXJ0aWVzID0gJXskJGNvbnRlbnRSZWZ7J2F0dHJpYid9fTsKKyAgICAgICAgZm9yZWFj
aCBteSAkcHJvcGVydHkgKGtleXMgJXByb3BlcnRpZXMpIHsKKyAgICAgICAgICAgIGRpZSAiVW5r
bm93biBwcm9wZXJ0eSAkcHJvcGVydHkgZm9yIHRhZyAkdGFnXG4iIGlmICFkZWZpbmVkKCR0YWdz
eyR0YWd9eyRwcm9wZXJ0eX0pOworICAgICAgICAgICAgJHRhZ3N7JHRhZ317JHByb3BlcnR5fSA9
ICRwcm9wZXJ0aWVzeyRwcm9wZXJ0eX07CisgICAgICAgIH0KICAgICB9CiB9CiAKQEAgLTEyMCw5
ICsxNDYsMTUgQEAgc3ViIHBhcnNlQXR0cnMKICAgICAgICAgbXkgJGF0dHIgPSAkJHtjb250ZW50
UmVmfXsnbmFtZSd9OwogICAgICAgICAkYXR0ciA9fiBzLy0vXy9nOwogCi0gICAgICAgICMgRklY
TUU6IHdlIGN1cnJlbnRseSBpbnNlcnQgJycgaW50byB0aGUgaGFzaCBidXQgaXQgc2hvdWxkIGJl
IHJlcGxhY2VkIGJ5IGEgZGVzY3JpcHRpb24gbWFwCi0gICAgICAgICMgdGFraW5nIGludG8gYWNj
b3VudCB0aGUgZWxlbWVudCdzIGF0dHJpYnV0ZXMuCi0gICAgICAgICRhdHRyc3skYXR0cn0gPSAn
JzsKKyAgICAgICAgIyBJbml0aWFsaXplIGRlZmF1bHQgcHJvcGVydGllcycgdmFsdWVzLgorICAg
ICAgICAkYXR0cnN7JGF0dHJ9ID0geyBpbml0aWFsaXplQXR0clByb3BlcnR5SGFzaCgkYXR0cikg
fSBpZiAhZGVmaW5lZCgkYXR0cnN7JGF0dHJ9KTsKKworICAgICAgICAjIFBhcnNlIHRoZSBYTUwg
YXR0cmlidXRlcy4KKyAgICAgICAgbXkgJXByb3BlcnRpZXMgPSAleyQkY29udGVudFJlZnsnYXR0
cmliJ319OworICAgICAgICBmb3JlYWNoIG15ICRwcm9wZXJ0eSAoa2V5cyAlcHJvcGVydGllcykg
eworICAgICAgICAgICAgZGllICJVbmtub3duIHByb3BlcnR5ICRwcm9wZXJ0eSBmb3IgYXR0cmli
dXRlICRhdHRyXG4iIGlmICFkZWZpbmVkKCRhdHRyc3skYXR0cn17JHByb3BlcnR5fSk7CisgICAg
ICAgICAgICAkYXR0cnN7JGF0dHJ9eyRwcm9wZXJ0eX0gPSAkcHJvcGVydGllc3skcHJvcGVydHl9
OworICAgICAgICB9CiAgICAgfQogfQogCkBAIC0xNzcsMTAgKzIwOSwxMiBAQCBzdWIgcHJpbnRN
YWNyb3MKIHN1YiBwcmludENvbnN0cnVjdG9ycwogewogICAgIG15ICgkRiwgJG5hbWVzUmVmKSA9
IEBfOworICAgIG15ICVuYW1lcyA9ICUkbmFtZXNSZWY7CisKICAgICBwcmludCBGICIjaWYgJGd1
YXJkRmFjdG9yeVdpdGhcbiIgaWYgJGd1YXJkRmFjdG9yeVdpdGg7Ci0gICAgZm9yIG15ICRuYW1l
IChzb3J0IGtleXMgJSRuYW1lc1JlZikgewotICAgICAgICBteSAkdWNOYW1lID0gdXBwZXJDYXNl
TmFtZSgkbmFtZSk7Ci0gICAgCisgICAgZm9yIG15ICRuYW1lIChzb3J0IGtleXMgJW5hbWVzKSB7
CisgICAgICAgIG15ICR1Y05hbWUgPSAkbmFtZXN7JG5hbWV9eyJ1cHBlckNhc2UifTsKKwogICAg
ICAgICBwcmludCBGICIke25hbWVzcGFjZX1FbGVtZW50KiAke25hbWV9Q29uc3RydWN0b3IoRG9j
dW1lbnQqIGRvYywgYm9vbCBjcmVhdGVkQnlQYXJzZXIpXG4iOwogICAgICAgICBwcmludCBGICJ7
XG4iOwogICAgICAgICBwcmludCBGICIgICAgcmV0dXJuIG5ldyAke25hbWVzcGFjZX0ke3VjTmFt
ZX1FbGVtZW50KCR7bmFtZX1UYWcsIGRvYyk7XG4iOwpAQCAtMTk3LDUwICsyMzEsMTQgQEAgc3Vi
IHByaW50RnVuY3Rpb25Jbml0cwogICAgIH0KIH0KIAotc3ViIGluaXRpYWxpemVIdG1sSGFja3MK
LXsKLSAgICBpZiAoIWtleXMgJWh0bWxDYXBpdGFsaXphdGlvbkhhY2tzKSB7Ci0gICAgICAgICVo
dG1sQ2FwaXRhbGl6YXRpb25IYWNrcyA9ICgnYScgPT4gJ0FuY2hvcicsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnYmFzZWZvbnQnID0+ICdCYXNlRm9udCcsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYnInID0+ICdCUicsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnY2FwdGlvbicgPT4gJ1RhYmxlQ2FwdGlvbicsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29sJyA9PiAnVGFibGVDb2wnLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RlbCcgPT4gJ01vZCcsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGlyJyA9PiAnRGlyZWN0b3J5JywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkbCcgPT4gJ0RMaXN0JywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZHNldCcgPT4gJ0ZpZWxkU2V0JywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmcmFtZXNldCcgPT4gJ0ZyYW1lU2V0
JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoMScgPT4gJ0hlYWRpbmcn
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hyJyA9PiAnSFInLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lmcmFtZScgPT4gJ0lGcmFtZScsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW1nJyA9PiAnSW1hZ2UnLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lzaW5kZXgnID0+ICdJc0luZGV4JywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsaScgPT4gJ0xJJywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvbCcgPT4gJ09MaXN0JywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvcHRncm91cCcgPT4gJ09wdEdyb3VwJywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwJyA9PiAnUGFyYWdyYXBoJywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdxJyA9PiAnUXVvdGUnLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Rib2R5JyA9PiAnVGFibGVTZWN0aW9uJywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0ZCcgPT4gJ1RhYmxlQ2VsbCcs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGV4dGFyZWEnID0+ICdUZXh0
QXJlYScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHInID0+ICdUYWJs
ZVJvdycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndWwnID0+ICdVTGlz
dCcpOwotICAgIH0KLX0KLQogc3ViIHN2Z0NhcGl0YWxpemF0aW9uSGFja3MKIHsKICAgICBteSAk
bmFtZSA9IHNoaWZ0OwotICAgIAorCiAgICAgaWYgKCRuYW1lID1+IC9eZmUoLispJC8pIHsKICAg
ICAgICAgJG5hbWUgPSAiRkUiIC4gdWNmaXJzdCAkMTsKICAgICB9Ci0gICAgJG5hbWUgPX4gcy9r
ZXJuL0tlcm4vOwotICAgICRuYW1lID1+IHMvbXBhdGgvTVBhdGgvOwotICAgICRuYW1lID1+IHMv
c3ZnL1NWRy87Ci0gICAgJG5hbWUgPX4gcy90cmVmL1RSZWYvOwotICAgICRuYW1lID1+IHMvdHNw
YW4vVFNwYW4vOwotICAgIAorCiAgICAgcmV0dXJuICRuYW1lOwogfQogCkBAIC0yNTAsMTIgKzI0
OCw2IEBAIHN1YiB1cHBlckNhc2VOYW1lCiAgICAgCiAgICAgJG5hbWUgPSBzdmdDYXBpdGFsaXph
dGlvbkhhY2tzKCRuYW1lKSBpZiAoJG5hbWVzcGFjZSBlcSAiU1ZHIik7CiAKLSAgICAjIFByb2Nl
c3Mgc3BlY2lhbCBtYXBwaW5nCi0gICAgaWYgKCRuYW1lc3BhY2UgZXEgIkhUTUwiKSB7Ci0gICAg
ICAgIGluaXRpYWxpemVIdG1sSGFja3MoKTsKLSAgICAgICAgcmV0dXJuICRodG1sQ2FwaXRhbGl6
YXRpb25IYWNrc3skbmFtZX0gaWYgZXhpc3RzICRodG1sQ2FwaXRhbGl6YXRpb25IYWNrc3skbmFt
ZX07Ci0gICAgfQotCiAgICAgd2hpbGUgKCRuYW1lID1+IC9eKC4qPylfKC4qKS8pIHsKICAgICAg
ICAgJG5hbWUgPSAkMSAuIHVjZmlyc3QgJDI7CiAgICAgfQpAQCAtNDMwLDEwICs0MjIsMTEgQEAg
cHJpbnQgRiAiXG52b2lkIGluaXQoKQogc3ViIHByaW50SlNFbGVtZW50SW5jbHVkZXMKIHsKICAg
ICBteSAoJEYsICRuYW1lc1JlZikgPSBAXzsKLSAgICBmb3IgbXkgJG5hbWUgKHNvcnQga2V5cyAl
JG5hbWVzUmVmKSB7CisgICAgbXkgJW5hbWVzID0gJSRuYW1lc1JlZjsKKyAgICBmb3IgbXkgJG5h
bWUgKHNvcnQga2V5cyAlbmFtZXMpIHsKICAgICAgICAgbmV4dCBpZiAoaGFzQ3VzdG9tTWFwcGlu
ZygkbmFtZSkpOwogCi0gICAgICAgIG15ICR1Y05hbWUgPSB1cHBlckNhc2VOYW1lKCRuYW1lKTsK
KyAgICAgICAgbXkgJHVjTmFtZSA9ICRuYW1lc3skbmFtZX17InVwcGVyQ2FzZSJ9OwogICAgICAg
ICBwcmludCBGICIjaW5jbHVkZSBcIkpTJHtuYW1lc3BhY2V9JHt1Y05hbWV9RWxlbWVudC5oXCJc
biI7CiAgICAgfQogfQpAQCAtNDQxLDEwICs0MzQsMTEgQEAgc3ViIHByaW50SlNFbGVtZW50SW5j
bHVkZXMKIHN1YiBwcmludEVsZW1lbnRJbmNsdWRlcwogewogICAgIG15ICgkRiwgJG5hbWVzUmVm
LCAkc2hvdWxkU2tpcEN1c3RvbU1hcHBpbmdzKSA9IEBfOwotICAgIGZvciBteSAkbmFtZSAoc29y
dCBrZXlzICUkbmFtZXNSZWYpIHsKKyAgICBteSAlbmFtZXMgPSAlJG5hbWVzUmVmOworICAgIGZv
ciBteSAkbmFtZSAoc29ydCBrZXlzICVuYW1lcykgewogICAgICAgICBuZXh0IGlmICgkc2hvdWxk
U2tpcEN1c3RvbU1hcHBpbmdzICYmIGhhc0N1c3RvbU1hcHBpbmcoJG5hbWUpKTsKIAotICAgICAg
ICBteSAkdWNOYW1lID0gdXBwZXJDYXNlTmFtZSgkbmFtZSk7CisgICAgICAgIG15ICR1Y05hbWUg
PSAkbmFtZXN7JG5hbWV9eyJ1cHBlckNhc2UifTsKICAgICAgICAgcHJpbnQgRiAiI2luY2x1ZGUg
XCIke25hbWVzcGFjZX0ke3VjTmFtZX1FbGVtZW50LmhcIlxuIjsKICAgICB9CiB9CkBAIC02Mjgs
MTIgKzYyMiw2IEBAIG5hbWVzcGFjZSAke2NwcE5hbWVzcGFjZX0KIAogIyMgV3JhcHBlciBGYWN0
b3J5IHJvdXRpbmVzCiAKLXN1YiBpc01lZGlhVGFnCi17Ci0gICAgbXkgJG5hbWUgPSBzaGlmdDsK
LSAgICByZXR1cm4gJG5hbWUgZXEgImF1ZGlvIiB8fCAkbmFtZSBlcSAic291cmNlIiB8fCAkbmFt
ZSBlcSAidmlkZW8iIHx8IDA7Ci19Ci0KIHN1YiBpbml0aWFsaXplQ3VzdG9tTWFwcGluZ3MKIHsK
ICAgICBpZiAoIWtleXMgJXN2Z0N1c3RvbU1hcHBpbmdzKSB7CkBAIC03MDYsMTMgKzY5NCwxNCBA
QCBzdWIgaGFzQ3VzdG9tTWFwcGluZwogc3ViIHByaW50V3JhcHBlckZ1bmN0aW9ucwogewogICAg
IG15ICgkRiwgJG5hbWVzUmVmKSA9IEBfOwotICAgIGZvciBteSAkbmFtZSAoc29ydCBrZXlzICUk
bmFtZXNSZWYpIHsKKyAgICBteSAlbmFtZXMgPSAlJG5hbWVzUmVmOworICAgIGZvciBteSAkbmFt
ZSAoc29ydCBrZXlzICVuYW1lcykgewogICAgICAgICAjIEN1c3RvbSBtYXBwaW5nIGRvIG5vdCBu
ZWVkIGEgSlMgd3JhcHBlcgogICAgICAgICBuZXh0IGlmIChoYXNDdXN0b21NYXBwaW5nKCRuYW1l
KSk7CiAKLSAgICAgICAgbXkgJHVjTmFtZSA9IHVwcGVyQ2FzZU5hbWUoJG5hbWUpOworICAgICAg
ICBteSAkdWNOYW1lID0gJG5hbWVzeyRuYW1lfXsidXBwZXJDYXNlIn07CiAgICAgICAgICMgSGFj
ayBmb3IgdGhlIG1lZGlhIHRhZ3MKLSAgICAgICAgaWYgKGlzTWVkaWFUYWcoJG5hbWUpKSB7Cisg
ICAgICAgIGlmICgkbmFtZXN7JG5hbWV9eyJhcHBseUF1ZGlvSGFjayJ9KSB7CiAgICAgICAgICAg
ICBwcmludCBGIDw8RU5ECiBzdGF0aWMgSlNOb2RlKiBjcmVhdGUke3VjTmFtZX1XcmFwcGVyKEV4
ZWNTdGF0ZSogZXhlYywgUGFzc1JlZlB0cjwke25hbWVzcGFjZX1FbGVtZW50PiBlbGVtZW50KQog
ewpAQCAtNzgxLDE0ICs3NzAsMTUgQEAgRU5ECiAgICAgZm9yIG15ICR0YWcgKHNvcnQga2V5cyAl
dGFncykgewogICAgICAgICBuZXh0IGlmIChoYXNDdXN0b21NYXBwaW5nKCR0YWcpKTsKIAotICAg
ICAgICBteSAkdWNUYWcgPSB1cHBlckNhc2VOYW1lKCR0YWcpOworICAgICAgICBteSAkdWNUYWcg
PSAkdGFnc3skdGFnfXsidXBwZXJDYXNlIn07CiAgICAgICAgIHByaW50IEYgIiAgICAgICBtYXAu
c2V0KCR7dGFnfVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZSR7dWNUYWd9V3JhcHBlcik7
XG4iOwogICAgIH0KIAogICAgIGlmICgkbmFtZXNwYWNlIGVxICJIVE1MIikgewogICAgICAgICBm
b3IgbXkgJHRhZyAoc29ydCBrZXlzICVodG1sQ3VzdG9tTWFwcGluZ3MpIHsKICAgICAgICAgICAg
IG5leHQgaWYgISRodG1sQ3VzdG9tTWFwcGluZ3N7JHRhZ307Ci0gICAgICAgICAgICBteSAkdWND
dXN0b21UYWcgPSB1cHBlckNhc2VOYW1lKCRodG1sQ3VzdG9tTWFwcGluZ3N7JHRhZ30pOworCisg
ICAgICAgICAgICBteSAkdWNDdXN0b21UYWcgPSAkdGFnc3skaHRtbEN1c3RvbU1hcHBpbmdzeyR0
YWd9fXsidXBwZXJDYXNlIn07CiAgICAgICAgICAgICBwcmludCBGICIgICAgICAgbWFwLnNldCgk
e3RhZ31UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGUke3VjQ3VzdG9tVGFnfVdyYXBwZXIp
O1xuIjsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MVGFn
TmFtZXMuaW4gYi9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCmluZGV4IDk1NzRjOTkuLmM3
MWZhNDMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4KKysrIGIvV2Vi
Q29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgpAQCAtMSw2NSArMSw2NSBAQAogPHRhZ3M+Ci08YS8+
Cis8YSB1cHBlckNhc2U9IkFuY2hvciIvPgogPGFiYnIvPgogPGFjcm9ueW0vPgogPGFkZHJlc3Mv
PgogPGFwcGxldC8+CiA8YXJlYS8+CiAjaWYgRU5BQkxFX1ZJREVPCi08YXVkaW8vPgorPGF1ZGlv
IGFwcGx5QXVkaW9IYWNrPSIxIi8+CiAjZW5kaWYKIDxiLz4KIDxiYXNlLz4KLTxiYXNlZm9udC8+
Cis8YmFzZWZvbnQgdXBwZXJDYXNlPSJCYXNlRm9udCIvPgogPGJkby8+CiA8YmlnLz4KIDxibG9j
a3F1b3RlLz4KIDxib2R5Lz4KLTxici8+Cis8YnIgdXBwZXJDYXNlPSJCUiIvPgogPGJ1dHRvbi8+
CiA8Y2FudmFzLz4KLTxjYXB0aW9uLz4KKzxjYXB0aW9uIHVwcGVyQ2FzZT0iVGFibGVDYXB0aW9u
Ii8+CiA8Y2VudGVyLz4KIDxjaXRlLz4KIDxjb2RlLz4KLTxjb2wvPgorPGNvbCB1cHBlckNhc2U9
IlRhYmxlQ29sIi8+CiA8Y29sZ3JvdXAvPgogPGRkLz4KLTxkZWwvPgorPGRlbCB1cHBlckNhc2U9
Ik1vZCIvPgogPGRmbi8+Ci08ZGlyLz4KKzxkaXIgdXBwZXJDYXNlPSJEaXJlY3RvcnkiLz4KIDxk
aXYvPgotPGRsLz4KKzxkbCB1cHBlckNhc2U9IkRMaXN0Ii8+CiA8ZHQvPgogPGVtLz4KIDxlbWJl
ZC8+Ci08ZmllbGRzZXQvPgorPGZpZWxkc2V0IHVwcGVyQ2FzZT0iRmllbGRTZXQiLz4KIDxmb250
Lz4KIDxmb3JtLz4KIDxmcmFtZS8+Ci08ZnJhbWVzZXQvPgorPGZyYW1lc2V0IHVwcGVyQ2FzZT0i
RnJhbWVTZXQiLz4KIDxoZWFkLz4KLTxoMS8+Cis8aDEgdXBwZXJDYXNlPSJIZWFkaW5nIi8+CiA8
aDIvPgogPGgzLz4KIDxoNC8+CiA8aDUvPgogPGg2Lz4KLTxoci8+Cis8aHIgdXBwZXJDYXNlPSJI
UiIvPgogPGh0bWwvPgogPGkvPgotPGlmcmFtZS8+Cis8aWZyYW1lIHVwcGVyQ2FzZT0iSUZyYW1l
Ii8+CiA8aW1hZ2UvPgotPGltZy8+Cis8aW1nIHVwcGVyQ2FzZT0iSW1hZ2UiLz4KIDxpbnB1dC8+
CiA8aW5zLz4KLTxpc2luZGV4Lz4KKzxpc2luZGV4IHVwcGVyQ2FzZT0iSXNJbmRleCIvPgogPGti
ZC8+CiA8a2V5Z2VuLz4KIDxsYWJlbC8+CiA8bGF5ZXIvPgogPGxlZ2VuZC8+Ci08bGkvPgorPGxp
IHVwcGVyQ2FzZT0iTEkiLz4KIDxsaW5rLz4KIDxsaXN0aW5nLz4KIDxtYXAvPgpAQCAtNzIsMjEg
KzcyLDIxIEBACiA8bm9sYXllci8+CiA8bm9zY3JpcHQvPgogPG9iamVjdC8+Ci08b2wvPgotPG9w
dGdyb3VwLz4KKzxvbCB1cHBlckNhc2U9Ik9MaXN0Ii8+Cis8b3B0Z3JvdXAgdXBwZXJDYXNlPSJP
cHRHcm91cCIvPgogPG9wdGlvbi8+Ci08cC8+Cis8cCB1cHBlckNhc2U9IlBhcmFncmFwaCIvPgog
PHBhcmFtLz4KIDxwbGFpbnRleHQvPgogPHByZS8+Ci08cS8+Cis8cSB1cHBlckNhc2U9IlF1b3Rl
Ii8+CiA8cy8+CiA8c2FtcC8+CiA8c2NyaXB0Lz4KIDxzZWxlY3QvPgogPHNtYWxsLz4KICNpZiBF
TkFCTEVfVklERU8KLTxzb3VyY2UvPgorPHNvdXJjZSBhcHBseUF1ZGlvSGFjaz0iMSIvPgogI2Vu
ZGlmCiA8c3Bhbi8+CiA8c3RyaWtlLz4KQEAgLTk1LDIwICs5NSwyMCBAQAogPHN1Yi8+CiA8c3Vw
Lz4KIDx0YWJsZS8+Ci08dGJvZHkvPgotPHRkLz4KLTx0ZXh0YXJlYS8+Cis8dGJvZHkgdXBwZXJD
YXNlPSJUYWJsZVNlY3Rpb24iLz4KKzx0ZCB1cHBlckNhc2U9IlRhYmxlQ2VsbCIvPgorPHRleHRh
cmVhIHVwcGVyQ2FzZT0iVGV4dEFyZWEiLz4KIDx0Zm9vdC8+CiA8dGgvPgogPHRoZWFkLz4KIDx0
aXRsZS8+Ci08dHIvPgorPHRyIHVwcGVyQ2FzZT0iVGFibGVSb3ciLz4KIDx0dC8+CiA8dS8+Ci08
dWwvPgorPHVsIHVwcGVyQ2FzZT0iVUxpc3QiLz4KIDx2YXIvPgogI2lmIEVOQUJMRV9WSURFTwot
PHZpZGVvLz4KKzx2aWRlbyBhcHBseUF1ZGlvSGFjaz0iMSIvPgogI2VuZGlmCiA8d2JyLz4KIDx4
bXAvPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdmcvc3ZndGFncy5pbiBiL1dlYkNvcmUvc3ZnL3N2
Z3RhZ3MuaW4KaW5kZXggNWZmOTdmNy4uNmZhZTA5MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcv
c3ZndGFncy5pbgorKysgYi9XZWJDb3JlL3N2Zy9zdmd0YWdzLmluCkBAIC03Niw3ICs3Niw3IEBA
CiA8Z2x5cGhSZWYvPgogI2VuZGlmCiAjaWZkZWYgRU5BQkxFX1NWR19GT05UUwotPGhrZXJuLz4K
Kzxoa2VybiB1cHBlckNhc2U9IkhLZXJuIi8+CiAjZW5kaWYKIDxpbWFnZS8+CiA8bGluZS8+CkBA
IC04Nyw3ICs4Nyw3IEBACiAjaWZkZWYgRU5BQkxFX1NWR19GT05UUwogPG1pc3NpbmdfZ2x5cGgv
PgogI2VuZGlmCi08bXBhdGgvPgorPG1wYXRoIHVwcGVyQ2FzZT0iTVBhdGgiLz4KIDxwYXRoLz4K
IDxwYXR0ZXJuLz4KIDxwb2x5Z29uLz4KQEAgLTk3LDE3ICs5NywxNyBAQAogPHNjcmlwdC8+CiA8
c3RvcC8+CiA8c3R5bGUvPgotPHN2Zy8+Cis8c3ZnIHVwcGVyQ2FzZT0iU1ZHIi8+CiA8c3dpdGNo
Lz4KIDxzeW1ib2wvPgogPHRleHQvPgogPHRleHRQYXRoLz4KIDx0aXRsZS8+Ci08dHJlZi8+Ci08
dHNwYW4vPgorPHRyZWYgdXBwZXJDYXNlPSJUUmVmIi8+Cis8dHNwYW4gdXBwZXJDYXNlPSJUU3Bh
biIvPgogPHVzZS8+CiA8dmlldy8+CiAjaWYgMAotPHZrZXJuLz4KKzx2a2VybiB1cHBlckNhc2U9
IlZLZXJuIi8+CiAjZW5kaWYKIDwvdGFncz4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21559</attachid>
            <date>2008-06-07 06:18:06 -0700</date>
            <delta_ts>2008-06-09 04:03:03 -0700</delta_ts>
            <desc>Third part - add a parameters hash and move some command line options to the *.in files</desc>
            <filename>makeNamesXmlIn3-CL.patch</filename>
            <type>text/plain</type>
            <size>22757</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNDQyNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMDgtMDYtMDcgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUGFydCBvZiBidWcgMTkyMDA6ICouaW4gZmlsZXMgc2hvdWxkIGVtYmVkIG1vcmUgaW5m
b3JtYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5MjAwCisKKyAgICAgICAgLSBBZGRlZCBhIHBhcmFtZXRlcnMgaGFzaCB0aGF0IHdpbGwgaG9s
ZCB0aGUgcGFyYW1ldGVycyB3ZSB1c2VkIHRvIGdpdmUgaW4gdGhlCisgICAgICAgIGNvbW1hbmQg
bGluZS4KKworICAgICAgICAtIEFkZGVkICJ0YWdzIiAvICJhdHRycyIgWE1MIHRhZyBwYXJzaW5n
IHRvIGZpbGwgdGhlIHBhcmFtZXRlcnMgaGFzaC4KKworICAgICAgICAtIE1vdmVkIG5hbWVzcGFj
ZSwgbmFtZXNwYWNlVVJJLCBuYW1lc3BhY2VQcmVmaXggYW5kIGNwcE5hbWVzcGFjZSBpbiB0aGUg
Ki5pbgorICAgICAgICBmaWxlcy4KKworICAgICAgICAqIGRvbS9tYWtlX25hbWVzLnBsOgorICAg
ICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluOgorICAgICAgICAqIGh0bWwvSFRNTFRh
Z05hbWVzLmluOgorICAgICAgICAqIHN2Zy9zdmdhdHRycy5pbjoKKyAgICAgICAgKiBzdmcvc3Zn
dGFncy5pbjoKKyAgICAgICAgKiBzdmcveGxpbmthdHRycy5pbjoKKyAgICAgICAgKiB4bWwveG1s
YXR0cnMuaW46CisKIDIwMDgtMDYtMDcgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IGFwLgpJbmRleDogV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5w
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCShyZXZpc2lvbiAzNDQx
NSkKKysrIFdlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwJKHdvcmtpbmcgY29weSkKQEAgLTM3LDE1
ICszNywxMiBAQCB1c2UgWE1MVGlueSBxdyhwYXJzZWZpbGUpOwogCiBteSAkcHJpbnRGYWN0b3J5
ID0gMDsKIG15ICRwcmludFdyYXBwZXJGYWN0b3J5ID0gMDsKLW15ICRjcHBOYW1lc3BhY2UgPSAi
IjsKLW15ICRuYW1lc3BhY2UgPSAiIjsKLW15ICRuYW1lc3BhY2VQcmVmaXggPSAiIjsKLW15ICRu
YW1lc3BhY2VVUkkgPSAiIjsKIG15ICR0YWdzRmlsZSA9ICIiOwogbXkgJGF0dHJzRmlsZSA9ICIi
OwogbXkgJG91dHB1dERpciA9ICIuIjsKIG15ICV0YWdzID0gKCk7CiBteSAlYXR0cnMgPSAoKTsK
K215ICVwYXJhbWV0ZXJzID0gKCk7CiBteSAkdGFnc051bGxOYW1lc3BhY2UgPSAwOwogbXkgJGF0
dHJzTnVsbE5hbWVzcGFjZSA9IDA7CiBteSAkZXh0cmFEZWZpbmVzID0gMDsKQEAgLTU3LDEwICs1
NCw2IEBAIG15ICVodG1sQ3VzdG9tTWFwcGluZ3MgPSAoKTsKIEdldE9wdGlvbnMoJ3RhZ3M9cycg
PT4gXCR0YWdzRmlsZSwgCiAgICAgJ2F0dHJzPXMnID0+IFwkYXR0cnNGaWxlLAogICAgICdvdXRw
dXREaXI9cycgPT4gXCRvdXRwdXREaXIsCi0gICAgJ25hbWVzcGFjZT1zJyA9PiBcJG5hbWVzcGFj
ZSwKLSAgICAnbmFtZXNwYWNlUHJlZml4PXMnID0+IFwkbmFtZXNwYWNlUHJlZml4LAotICAgICdu
YW1lc3BhY2VVUkk9cycgPT4gXCRuYW1lc3BhY2VVUkksCi0gICAgJ2NwcE5hbWVzcGFjZT1zJyA9
PiBcJGNwcE5hbWVzcGFjZSwKICAgICAnZmFjdG9yeScgPT4gXCRwcmludEZhY3RvcnksCiAgICAg
J3dyYXBwZXJGYWN0b3J5JyA9PiBcJHByaW50V3JhcHBlckZhY3RvcnksCiAgICAgJ3RhZ3NOdWxs
TmFtZXNwYWNlJyA9PiBcJHRhZ3NOdWxsTmFtZXNwYWNlLApAQCAtNjksMjAgKzYyLDIxIEBAIEdl
dE9wdGlvbnMoJ3RhZ3M9cycgPT4gXCR0YWdzRmlsZSwgCiAgICAgJ3ByZXByb2Nlc3Nvcj1zJyA9
PiBcJHByZXByb2Nlc3NvciwKICAgICAnZ3VhcmRGYWN0b3J5V2l0aD1zJyA9PiBcJGd1YXJkRmFj
dG9yeVdpdGgpOwogCi1kaWUgIllvdSBtdXN0IHNwZWNpZnkgYSBuYW1lc3BhY2UgKGUuZy4gU1ZH
KSBmb3IgPG5hbWVzcGFjZT5OYW1lcy5oIiB1bmxlc3MgJG5hbWVzcGFjZTsKLWRpZSAiWW91IG11
c3Qgc3BlY2lmeSBhIG5hbWVzcGFjZVVSSSAoZS5nLiBodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2
ZykiIHVubGVzcyAkbmFtZXNwYWNlVVJJOwotZGllICJZb3UgbXVzdCBzcGVjaWZ5IGEgY3BwTmFt
ZXNwYWNlIChlLmcuIERPTSkgdXNlZCBmb3IgPGNwcE5hbWVzcGFjZT46OjxuYW1lc3BhY2U+TmFt
ZXM6OmZvb1RhZyIgdW5sZXNzICRjcHBOYW1lc3BhY2U7CiBkaWUgIllvdSBtdXN0IHNwZWNpZnkg
YXQgbGVhc3Qgb25lIG9mIC0tdGFncyA8ZmlsZT4gb3IgLS1hdHRycyA8ZmlsZT4iIHVubGVzcyAo
bGVuZ3RoKCR0YWdzRmlsZSkgfHwgbGVuZ3RoKCRhdHRyc0ZpbGUpKTsKIAotJG5hbWVzcGFjZVBy
ZWZpeCA9ICRuYW1lc3BhY2UgdW5sZXNzICRuYW1lc3BhY2VQcmVmaXg7Ci0KIHJlYWROYW1lcygk
dGFnc0ZpbGUpIGlmIGxlbmd0aCgkdGFnc0ZpbGUpOwogcmVhZE5hbWVzKCRhdHRyc0ZpbGUpIGlm
IGxlbmd0aCgkYXR0cnNGaWxlKTsKIAorZGllICJZb3UgbXVzdCBzcGVjaWZ5IGEgbmFtZXNwYWNl
IChlLmcuIFNWRykgZm9yIDxuYW1lc3BhY2U+TmFtZXMuaCIgdW5sZXNzICRwYXJhbWV0ZXJzeydu
YW1lc3BhY2UnfTsKK2RpZSAiWW91IG11c3Qgc3BlY2lmeSBhIG5hbWVzcGFjZVVSSSAoZS5nLiBo
dHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZykiIHVubGVzcyAkcGFyYW1ldGVyc3snbmFtZXNwYWNl
VVJJJ307CitkaWUgIllvdSBtdXN0IHNwZWNpZnkgYSBjcHBOYW1lc3BhY2UgKGUuZy4gRE9NKSB1
c2VkIGZvciA8Y3BwTmFtZXNwYWNlPjo6PG5hbWVzcGFjZT5OYW1lczo6Zm9vVGFnIiB1bmxlc3Mg
JHBhcmFtZXRlcnN7J2NwcE5hbWVzcGFjZSd9OworCiskcGFyYW1ldGVyc3snbmFtZXNwYWNlUHJl
Zml4J30gPSAkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ30gdW5sZXNzICRwYXJhbWV0ZXJzeyduYW1l
c3BhY2VQcmVmaXgnfTsKKwogbWtwYXRoKCRvdXRwdXREaXIpOwotbXkgJG5hbWVzQmFzZVBhdGgg
PSAiJG91dHB1dERpci8ke25hbWVzcGFjZX1OYW1lcyI7Ci1teSAkZmFjdG9yeUJhc2VQYXRoID0g
IiRvdXRwdXREaXIvJHtuYW1lc3BhY2V9RWxlbWVudEZhY3RvcnkiOwotbXkgJHdyYXBwZXJGYWN0
b3J5QmFzZVBhdGggPSAiJG91dHB1dERpci9KUyR7bmFtZXNwYWNlfUVsZW1lbnRXcmFwcGVyRmFj
dG9yeSI7CitteSAkbmFtZXNCYXNlUGF0aCA9ICIkb3V0cHV0RGlyLyRwYXJhbWV0ZXJzeyduYW1l
c3BhY2UnfU5hbWVzIjsKK215ICRmYWN0b3J5QmFzZVBhdGggPSAiJG91dHB1dERpci8kcGFyYW1l
dGVyc3snbmFtZXNwYWNlJ31FbGVtZW50RmFjdG9yeSI7CitteSAkd3JhcHBlckZhY3RvcnlCYXNl
UGF0aCA9ICIkb3V0cHV0RGlyL0pTJHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9RWxlbWVudFdyYXBw
ZXJGYWN0b3J5IjsKIAogcHJpbnROYW1lc0hlYWRlckZpbGUoIiRuYW1lc0Jhc2VQYXRoLmgiKTsK
IHByaW50TmFtZXNDcHBGaWxlKCIkbmFtZXNCYXNlUGF0aC5jcHAiKTsKQEAgLTExMCwxMSArMTA0
LDE4IEBAIHN1YiBpbml0aWFsaXplQXR0clByb3BlcnR5SGFzaAogICAgIHJldHVybiAoJ3VwcGVy
Q2FzZScgPT4gdXBwZXJDYXNlTmFtZSgkX1swXSkpOwogfQogCitzdWIgaW5pdGlhbGl6ZVBhcmFt
ZXRlcnNIYXNoCit7CisgICAgcmV0dXJuICgnbmFtZXNwYWNlJyA9PiAnJywKKyAgICAgICAgICAg
ICduYW1lc3BhY2VQcmVmaXgnID0+ICcnLAorICAgICAgICAgICAgJ25hbWVzcGFjZVVSSScgPT4g
JycsCisgICAgICAgICAgICAnY3BwTmFtZXNwYWNlJyA9PiAnJyk7Cit9CiAKICMjIyBQYXJzaW5n
IGhhbmRsZXJzCiAKICMgT3VyIGZpbGVzIHNob3VsZCBoYXZlIHRoZSBmb2xsb3dpbmcgZm9ybSA6
Ci0jIDx0YWdzPiBvciA8YXR0cnM+CisjIDwndGFncycgb3IgJ2F0dHJzJyBnbG9iYWxQcm9wZXJ0
eTEgPSAndmFsdWUxJyAuLi4gLz4KICMgPCd0YWcvYXR0ciBuYW1lJyAncHJvcGVydHkxJyA9ICd2
YWx1ZTEnIC4uLiAvPgogIyB3aGVyZSB0aGUgcHJvcGVydGllcyBhcmUgZGVmaW5lZCBpbiB0aGUg
aW5pdGlhbGl6ZSpQcm9wZXJ0eUhhc2ggbWV0aG9kcy4KICMgKG1vcmUgdGFnL2F0dHIgLi4uKQpA
QCAtMTU4LDYgKzE1OSwyMSBAQCBzdWIgcGFyc2VBdHRycwogICAgIH0KIH0KIAorc3ViIHBhcnNl
UGFyYW1ldGVycworeworICAgIG15ICRwcm9wZXJ0aWVzUmVmID0gc2hpZnQ7CisgICAgbXkgJXBy
b3BlcnRpZXMgPSAlJHByb3BlcnRpZXNSZWY7CisKKyAgICAjIEluaXRpYWxpemUgZGVmYXVsdCBw
cm9wZXJ0aWVzJyB2YWx1ZXMuCisgICAgJXBhcmFtZXRlcnMgPSBpbml0aWFsaXplUGFyYW1ldGVy
c0hhc2goKSBpZiAhKGtleXMgJXBhcmFtZXRlcnMpOworCisgICAgIyBQYXJzZSB0aGUgWE1MIGF0
dHJpYnV0ZXMuCisgICAgZm9yZWFjaCBteSAkcHJvcGVydHkgKGtleXMgJXByb3BlcnRpZXMpIHsK
KyAgICAgICAgZGllICJVbmtub3duIHBhcmFtZXRlciAkcHJvcGVydHkgZm9yIHRhZ3MvYXR0cnNc
biIgaWYgIWRlZmluZWQoJHBhcmFtZXRlcnN7JHByb3BlcnR5fSk7CisgICAgICAgICRwYXJhbWV0
ZXJzeyRwcm9wZXJ0eX0gPSAkcHJvcGVydGllc3skcHJvcGVydHl9OworICAgIH0KK30KKwogIyMg
U3VwcG9ydCByb3V0aW5lcwogCiBzdWIgcmVhZE5hbWVzCkBAIC0xODQsMTUgKzIwMCwxNyBAQCBz
dWIgcmVhZE5hbWVzCiAgICAgIyBDaGVjayByb290IGVsZW1lbnQgdG8gZGV0ZXJtaW5lIHdoYXQg
d2UgYXJlIHBhcnNpbmcKICAgICBzd2l0Y2goJG5hbWUpIHsKICAgICAgICAgY2FzZSAidGFncyIg
eworICAgICAgICAgICAgcGFyc2VQYXJhbWV0ZXJzKFwleyRkb2N1bWVudHsnYXR0cmliJ319KTsK
ICAgICAgICAgICAgIHBhcnNlVGFncyhcQHskZG9jdW1lbnR7J2NvbnRlbnQnfX0pOwogICAgICAg
ICB9CiAgICAgICAgIGNhc2UgImF0dHJzIiB7CisgICAgICAgICAgICBwYXJzZVBhcmFtZXRlcnMo
XCV7JGRvY3VtZW50eydhdHRyaWInfX0pOwogICAgICAgICAgICAgcGFyc2VBdHRycyhcQHskZG9j
dW1lbnR7J2NvbnRlbnQnfX0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZGllICJE
byBub3Qga25vdyBob3cgdG8gcGFyc2UgZmlsZSBzdGFydGluZyB3aXRoICRuYW1lIVxuIjsKICAg
ICAgICAgfQogICAgIH0KIAotICAgICMgRklYTUU6IHdlIHNob3VsZCBwcm9jZXNzIHRoZSBhdHRy
aWJ1dGVzIGhlcmUgdG8gYnVpbGQgYSBwYXJhbWV0ZXIgbWFwCi0KICAgICBjbG9zZSgkbmFtZXMp
OwogCiAgICAgZGllICJGYWlsZWQgdG8gcmVhZCBuYW1lcyBmcm9tIGZpbGU6ICRuYW1lc0ZpbGUi
IGlmICgoa2V5cyAldGFncyA9PSAkdGFnc0NvdW50KSAmJiAoa2V5cyAlYXR0cnMgPT0gJGF0dHJz
Q291bnQpKTsKQEAgLTIxNSw5ICsyMzMsOSBAQCBzdWIgcHJpbnRDb25zdHJ1Y3RvcnMKICAgICBm
b3IgbXkgJG5hbWUgKHNvcnQga2V5cyAlbmFtZXMpIHsKICAgICAgICAgbXkgJHVjTmFtZSA9ICRu
YW1lc3skbmFtZX17InVwcGVyQ2FzZSJ9OwogCi0gICAgICAgIHByaW50IEYgIiR7bmFtZXNwYWNl
fUVsZW1lbnQqICR7bmFtZX1Db25zdHJ1Y3RvcihEb2N1bWVudCogZG9jLCBib29sIGNyZWF0ZWRC
eVBhcnNlcilcbiI7CisgICAgICAgIHByaW50IEYgIiRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfUVs
ZW1lbnQqICR7bmFtZX1Db25zdHJ1Y3RvcihEb2N1bWVudCogZG9jLCBib29sIGNyZWF0ZWRCeVBh
cnNlcilcbiI7CiAgICAgICAgIHByaW50IEYgIntcbiI7Ci0gICAgICAgIHByaW50IEYgIiAgICBy
ZXR1cm4gbmV3ICR7bmFtZXNwYWNlfSR7dWNOYW1lfUVsZW1lbnQoJHtuYW1lfVRhZywgZG9jKTtc
biI7CisgICAgICAgIHByaW50IEYgIiAgICByZXR1cm4gbmV3ICRwYXJhbWV0ZXJzeyduYW1lc3Bh
Y2UnfSR7dWNOYW1lfUVsZW1lbnQoJHtuYW1lfVRhZywgZG9jKTtcbiI7CiAgICAgICAgIHByaW50
IEYgIn1cblxuIjsKICAgICB9CiAgICAgcHJpbnQgRiAiI2VuZGlmXG4iIGlmICRndWFyZEZhY3Rv
cnlXaXRoOwpAQCAtMjQ2LDcgKzI2NCw3IEBAIHN1YiB1cHBlckNhc2VOYW1lCiB7CiAgICAgbXkg
JG5hbWUgPSBzaGlmdDsKICAgICAKLSAgICAkbmFtZSA9IHN2Z0NhcGl0YWxpemF0aW9uSGFja3Mo
JG5hbWUpIGlmICgkbmFtZXNwYWNlIGVxICJTVkciKTsKKyAgICAkbmFtZSA9IHN2Z0NhcGl0YWxp
emF0aW9uSGFja3MoJG5hbWUpIGlmICgkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ30gZXEgIlNWRyIp
OwogCiAgICAgd2hpbGUgKCRuYW1lID1+IC9eKC4qPylfKC4qKS8pIHsKICAgICAgICAgJG5hbWUg
PSAkMSAuIHVjZmlyc3QgJDI7CkBAIC0yOTcsMjcgKzMxNSwyNyBAQCBzdWIgcHJpbnROYW1lc0hl
YWRlckZpbGUKICAgICBvcGVuIEYsICI+JGhlYWRlclBhdGgiOwogICAgIAogICAgIHByaW50TGlj
ZW5zZUhlYWRlcigkRik7Ci0gICAgcHJpbnQgRiAiI2lmbmRlZiBET01fJHtuYW1lc3BhY2V9TkFN
RVNfSFxuIjsKLSAgICBwcmludCBGICIjZGVmaW5lIERPTV8ke25hbWVzcGFjZX1OQU1FU19IXG5c
biI7CisgICAgcHJpbnQgRiAiI2lmbmRlZiBET01fJHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9TkFN
RVNfSFxuIjsKKyAgICBwcmludCBGICIjZGVmaW5lIERPTV8kcGFyYW1ldGVyc3snbmFtZXNwYWNl
J31OQU1FU19IXG5cbiI7CiAgICAgcHJpbnQgRiAiI2luY2x1ZGUgXCJRdWFsaWZpZWROYW1lLmhc
IlxuXG4iOwogICAgIAotICAgIHByaW50IEYgIm5hbWVzcGFjZSAkY3BwTmFtZXNwYWNlIHsgbmFt
ZXNwYWNlICR7bmFtZXNwYWNlfU5hbWVzIHtcblxuIjsKKyAgICBwcmludCBGICJuYW1lc3BhY2Ug
JHBhcmFtZXRlcnN7J2NwcE5hbWVzcGFjZSd9IHsgbmFtZXNwYWNlICRwYXJhbWV0ZXJzeyduYW1l
c3BhY2UnfU5hbWVzIHtcblxuIjsKICAgICAKLSAgICBteSAkbG93ZXJOYW1lc3BhY2UgPSBsYygk
bmFtZXNwYWNlUHJlZml4KTsKLSAgICBwcmludCBGICIjaWZuZGVmIERPTV8ke25hbWVzcGFjZX1O
QU1FU19ISURFX0dMT0JBTFNcbiI7CisgICAgbXkgJGxvd2VyTmFtZXNwYWNlID0gbGMoJHBhcmFt
ZXRlcnN7J25hbWVzcGFjZVByZWZpeCd9KTsKKyAgICBwcmludCBGICIjaWZuZGVmIERPTV8kcGFy
YW1ldGVyc3snbmFtZXNwYWNlJ31OQU1FU19ISURFX0dMT0JBTFNcbiI7CiAgICAgcHJpbnQgRiAi
Ly8gTmFtZXNwYWNlXG4iOwogICAgIHByaW50IEYgImV4dGVybiBjb25zdCBXZWJDb3JlOjpBdG9t
aWNTdHJpbmcgJHtsb3dlck5hbWVzcGFjZX1OYW1lc3BhY2VVUkk7XG5cbiI7CiAKICAgICBpZiAo
a2V5cyAldGFncykgewogICAgICAgICBwcmludCBGICIvLyBUYWdzXG4iOwogICAgICAgICBwcmlu
dE1hY3JvcygkRiwgImV4dGVybiBjb25zdCBXZWJDb3JlOjpRdWFsaWZpZWROYW1lIiwgIlRhZyIs
IFwldGFncyk7Ci0gICAgICAgIHByaW50IEYgIlxuXG5XZWJDb3JlOjpRdWFsaWZpZWROYW1lKiog
Z2V0JHtuYW1lc3BhY2V9VGFncyhzaXplX3QqIHNpemUpO1xuIjsKKyAgICAgICAgcHJpbnQgRiAi
XG5cbldlYkNvcmU6OlF1YWxpZmllZE5hbWUqKiBnZXQkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ31U
YWdzKHNpemVfdCogc2l6ZSk7XG4iOwogICAgIH0KICAgICAKICAgICBpZiAoa2V5cyAlYXR0cnMp
IHsKICAgICAgICAgcHJpbnQgRiAiLy8gQXR0cmlidXRlc1xuIjsKICAgICAgICAgcHJpbnRNYWNy
b3MoJEYsICJleHRlcm4gY29uc3QgV2ViQ29yZTo6UXVhbGlmaWVkTmFtZSIsICJBdHRyIiwgXCVh
dHRycyk7Ci0gICAgICAgIHByaW50IEYgIlxuXG5XZWJDb3JlOjpRdWFsaWZpZWROYW1lKiogZ2V0
JHtuYW1lc3BhY2V9QXR0cihzaXplX3QqIHNpemUpO1xuIjsKKyAgICAgICAgcHJpbnQgRiAiXG5c
bldlYkNvcmU6OlF1YWxpZmllZE5hbWUqKiBnZXQkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ31BdHRy
KHNpemVfdCogc2l6ZSk7XG4iOwogICAgIH0KICAgICBwcmludCBGICIjZW5kaWZcblxuIjsKICAg
ICBwcmludCBGICJ2b2lkIGluaXQoKTtcblxuIjsKQEAgLTMzNSwyNSArMzUzLDI1IEBAIHN1YiBw
cmludE5hbWVzQ3BwRmlsZQogICAgIAogICAgIHByaW50TGljZW5zZUhlYWRlcigkRik7CiAgICAg
Ci0gICAgbXkgJGxvd2VyTmFtZXNwYWNlID0gbGMoJG5hbWVzcGFjZVByZWZpeCk7CisgICAgbXkg
JGxvd2VyTmFtZXNwYWNlID0gbGMoJHBhcmFtZXRlcnN7J25hbWVzcGFjZVByZWZpeCd9KTsKIAog
cHJpbnQgRiAiI2luY2x1ZGUgXCJjb25maWcuaFwiXG4iOwogCiBwcmludCBGICIjaWZkZWYgQVZP
SURfU1RBVElDX0NPTlNUUlVDVE9SU1xuIjsKLXByaW50IEYgIiNkZWZpbmUgRE9NXyR7bmFtZXNw
YWNlfU5BTUVTX0hJREVfR0xPQkFMUyAxXG4iOworcHJpbnQgRiAiI2RlZmluZSBET01fJHBhcmFt
ZXRlcnN7J25hbWVzcGFjZSd9TkFNRVNfSElERV9HTE9CQUxTIDFcbiI7CiBwcmludCBGICIjZWxz
ZVxuIjsKIHByaW50IEYgIiNkZWZpbmUgUU5BTUVfREVGQVVMVF9DT05TVFJVQ1RPUiAxXG4iOwog
cHJpbnQgRiAiI2VuZGlmXG5cbiI7CiAKIAotcHJpbnQgRiAiI2luY2x1ZGUgXCIke25hbWVzcGFj
ZX1OYW1lcy5oXCJcblxuIjsKK3ByaW50IEYgIiNpbmNsdWRlIFwiJHBhcmFtZXRlcnN7J25hbWVz
cGFjZSd9TmFtZXMuaFwiXG5cbiI7CiBwcmludCBGICIjaW5jbHVkZSBcIlN0YXRpY0NvbnN0cnVj
dG9ycy5oXCJcbiI7CiAKLXByaW50IEYgIm5hbWVzcGFjZSAkY3BwTmFtZXNwYWNlIHsgbmFtZXNw
YWNlICR7bmFtZXNwYWNlfU5hbWVzIHsKK3ByaW50IEYgIm5hbWVzcGFjZSAkcGFyYW1ldGVyc3sn
Y3BwTmFtZXNwYWNlJ30geyBuYW1lc3BhY2UgJHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9TmFtZXMg
ewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotREVGSU5FX0dMT0JBTChBdG9taWNTdHJp
bmcsICR7bG93ZXJOYW1lc3BhY2V9TmFtZXNwYWNlVVJJLCBcIiRuYW1lc3BhY2VVUklcIikKK0RF
RklORV9HTE9CQUwoQXRvbWljU3RyaW5nLCAke2xvd2VyTmFtZXNwYWNlfU5hbWVzcGFjZVVSSSwg
XCIkcGFyYW1ldGVyc3snbmFtZXNwYWNlVVJJJ31cIikKICI7CiAKICAgICBpZiAoa2V5cyAldGFn
cykgewpAQCAtMzYyLDE0ICszODAsMTQgQEAgREVGSU5FX0dMT0JBTChBdG9taWNTdHJpbmcsICR7
bG93ZXJOYW1lcwogICAgICAgICAgICAgcHJpbnQgRiAiREVGSU5FX0dMT0JBTChRdWFsaWZpZWRO
YW1lLCAiLCAkbmFtZSwgIlRhZywgbnVsbEF0b20sIFwiJG5hbWVcIiwgJHtsb3dlck5hbWVzcGFj
ZX1OYW1lc3BhY2VVUkkpO1xuIjsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgcHJpbnQg
RiAiXG5cbldlYkNvcmU6OlF1YWxpZmllZE5hbWUqKiBnZXQke25hbWVzcGFjZX1UYWdzKHNpemVf
dCogc2l6ZSlcbiI7Ci0gICAgICAgIHByaW50IEYgIntcbiAgICBzdGF0aWMgV2ViQ29yZTo6UXVh
bGlmaWVkTmFtZSogJHtuYW1lc3BhY2V9VGFnc1tdID0ge1xuIjsKKyAgICAgICAgcHJpbnQgRiAi
XG5cbldlYkNvcmU6OlF1YWxpZmllZE5hbWUqKiBnZXQkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ31U
YWdzKHNpemVfdCogc2l6ZSlcbiI7CisgICAgICAgIHByaW50IEYgIntcbiAgICBzdGF0aWMgV2Vi
Q29yZTo6UXVhbGlmaWVkTmFtZSogJHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9VGFnc1tdID0ge1xu
IjsKICAgICAgICAgZm9yIG15ICRuYW1lIChzb3J0IGtleXMgJXRhZ3MpIHsKICAgICAgICAgICAg
IHByaW50IEYgIiAgICAgICAgKFdlYkNvcmU6OlF1YWxpZmllZE5hbWUqKSYke25hbWV9VGFnLFxu
IjsKICAgICAgICAgfQogICAgICAgICBwcmludCBGICIgICAgfTtcbiI7CiAgICAgICAgIHByaW50
IEYgIiAgICAqc2l6ZSA9ICIsIHNjYWxhcihrZXlzICV0YWdzKSwgIjtcbiI7Ci0gICAgICAgIHBy
aW50IEYgIiAgICByZXR1cm4gJHtuYW1lc3BhY2V9VGFncztcbiI7CisgICAgICAgIHByaW50IEYg
IiAgICByZXR1cm4gJHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9VGFncztcbiI7CiAgICAgICAgIHBy
aW50IEYgIn1cbiI7CiAgICAgICAgIAogICAgIH0KQEAgLTM3OSwxNCArMzk3LDE0IEBAIERFRklO
RV9HTE9CQUwoQXRvbWljU3RyaW5nLCAke2xvd2VyTmFtZXMKICAgICAgICAgZm9yIG15ICRuYW1l
IChzb3J0IGtleXMgJWF0dHJzKSB7CiAgICAgICAgICAgICBwcmludCBGICJERUZJTkVfR0xPQkFM
KFF1YWxpZmllZE5hbWUsICIsICRuYW1lLCAiQXR0ciwgbnVsbEF0b20sIFwiJG5hbWVcIiwgJHts
b3dlck5hbWVzcGFjZX1OYW1lc3BhY2VVUkkpO1xuIjsKICAgICAgICAgfQotICAgICAgICBwcmlu
dCBGICJcblxuV2ViQ29yZTo6UXVhbGlmaWVkTmFtZSoqIGdldCR7bmFtZXNwYWNlfUF0dHJzKHNp
emVfdCogc2l6ZSlcbiI7Ci0gICAgICAgIHByaW50IEYgIntcbiAgICBzdGF0aWMgV2ViQ29yZTo6
UXVhbGlmaWVkTmFtZSogJHtuYW1lc3BhY2V9QXR0cltdID0ge1xuIjsKKyAgICAgICAgcHJpbnQg
RiAiXG5cbldlYkNvcmU6OlF1YWxpZmllZE5hbWUqKiBnZXQkcGFyYW1ldGVyc3snbmFtZXNwYWNl
J31BdHRycyhzaXplX3QqIHNpemUpXG4iOworICAgICAgICBwcmludCBGICJ7XG4gICAgc3RhdGlj
IFdlYkNvcmU6OlF1YWxpZmllZE5hbWUqICRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfUF0dHJbXSA9
IHtcbiI7CiAgICAgICAgIGZvciBteSAkbmFtZSAoc29ydCBrZXlzICVhdHRycykgewogICAgICAg
ICAgICAgcHJpbnQgRiAiICAgICAgICAoV2ViQ29yZTo6UXVhbGlmaWVkTmFtZSopJiR7bmFtZX1B
dHRyLFxuIjsKICAgICAgICAgfQogICAgICAgICBwcmludCBGICIgICAgfTtcbiI7CiAgICAgICAg
IHByaW50IEYgIiAgICAqc2l6ZSA9ICIsIHNjYWxhcihrZXlzICVhdHRycyksICI7XG4iOwotICAg
ICAgICBwcmludCBGICIgICAgcmV0dXJuICR7bmFtZXNwYWNlfUF0dHI7XG4iOworICAgICAgICBw
cmludCBGICIgICAgcmV0dXJuICRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfUF0dHI7XG4iOwogICAg
ICAgICBwcmludCBGICJ9XG4iOwogICAgIH0KIApAQCAtNDAyLDcgKzQyMCw3IEBAIHByaW50IEYg
Ilxudm9pZCBpbml0KCkKICAgICBBdG9taWNTdHJpbmc6OmluaXQoKTsKICI7CiAgICAgCi0gICAg
cHJpbnQoRiAiICAgIEF0b21pY1N0cmluZyAke2xvd2VyTmFtZXNwYWNlfU5TKFwiJG5hbWVzcGFj
ZVVSSVwiKTtcblxuIik7CisgICAgcHJpbnQoRiAiICAgIEF0b21pY1N0cmluZyAke2xvd2VyTmFt
ZXNwYWNlfU5TKFwiJHBhcmFtZXRlcnN7J25hbWVzcGFjZVVSSSd9XCIpO1xuXG4iKTsKIAogICAg
IHByaW50KEYgIiAgICAvLyBOYW1lc3BhY2VcbiIpOwogICAgIHByaW50KEYgIiAgICBuZXcgKCh2
b2lkKikmJHtsb3dlck5hbWVzcGFjZX1OYW1lc3BhY2VVUkkpIEF0b21pY1N0cmluZygke2xvd2Vy
TmFtZXNwYWNlfU5TKTtcblxuIik7CkBAIC00MjcsNyArNDQ1LDcgQEAgc3ViIHByaW50SlNFbGVt
ZW50SW5jbHVkZXMKICAgICAgICAgbmV4dCBpZiAoaGFzQ3VzdG9tTWFwcGluZygkbmFtZSkpOwog
CiAgICAgICAgIG15ICR1Y05hbWUgPSAkbmFtZXN7JG5hbWV9eyJ1cHBlckNhc2UifTsKLSAgICAg
ICAgcHJpbnQgRiAiI2luY2x1ZGUgXCJKUyR7bmFtZXNwYWNlfSR7dWNOYW1lfUVsZW1lbnQuaFwi
XG4iOworICAgICAgICBwcmludCBGICIjaW5jbHVkZSBcIkpTJHBhcmFtZXRlcnN7J25hbWVzcGFj
ZSd9JHt1Y05hbWV9RWxlbWVudC5oXCJcbiI7CiAgICAgfQogfQogCkBAIC00MzksNyArNDU3LDcg
QEAgc3ViIHByaW50RWxlbWVudEluY2x1ZGVzCiAgICAgICAgIG5leHQgaWYgKCRzaG91bGRTa2lw
Q3VzdG9tTWFwcGluZ3MgJiYgaGFzQ3VzdG9tTWFwcGluZygkbmFtZSkpOwogCiAgICAgICAgIG15
ICR1Y05hbWUgPSAkbmFtZXN7JG5hbWV9eyJ1cHBlckNhc2UifTsKLSAgICAgICAgcHJpbnQgRiAi
I2luY2x1ZGUgXCIke25hbWVzcGFjZX0ke3VjTmFtZX1FbGVtZW50LmhcIlxuIjsKKyAgICAgICAg
cHJpbnQgRiAiI2luY2x1ZGUgXCIkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ30ke3VjTmFtZX1FbGVt
ZW50LmhcIlxuIjsKICAgICB9CiB9CiAKQEAgLTQ4NCw4ICs1MDIsOCBAQCBwcmludExpY2Vuc2VI
ZWFkZXIoJEYpOwogCiBwcmludCBGIDw8RU5ECiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiJHtuYW1lc3BhY2V9RWxlbWVudEZhY3RvcnkuaCIKLSNpbmNsdWRlICIke25hbWVzcGFjZX1O
YW1lcy5oIgorI2luY2x1ZGUgIiRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfUVsZW1lbnRGYWN0b3J5
LmgiCisjaW5jbHVkZSAiJHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9TmFtZXMuaCIKICNpbmNsdWRl
ICJQYWdlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKIEVORApAQCAtNDk3LDE0ICs1MTUsMTQg
QEAgcHJpbnQgRiA8PEVORAogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwotdXNpbmcgbmFtZXNwYWNlICR7Y3BwTmFtZXNwYWNlfTo6JHtuYW1lc3Bh
Y2V9TmFtZXM7Cit1c2luZyBuYW1lc3BhY2UgJHBhcmFtZXRlcnN7J2NwcE5hbWVzcGFjZSd9Ojok
cGFyYW1ldGVyc3snbmFtZXNwYWNlJ31OYW1lczsKIAotdHlwZWRlZiAke25hbWVzcGFjZX1FbGVt
ZW50KiAoKkNvbnN0cnVjdG9yRnVuYykoRG9jdW1lbnQqIGRvYywgYm9vbCBjcmVhdGVkQnlQYXJz
ZXIpOwordHlwZWRlZiAkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ31FbGVtZW50KiAoKkNvbnN0cnVj
dG9yRnVuYykoRG9jdW1lbnQqIGRvYywgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwogdHlwZWRlZiBX
VEY6Okhhc2hNYXA8QXRvbWljU3RyaW5nSW1wbCosIENvbnN0cnVjdG9yRnVuYz4gRnVuY3Rpb25N
YXA7CiAKIHN0YXRpYyBGdW5jdGlvbk1hcCogZ0Z1bmN0aW9uTWFwID0gMDsKIAotbmFtZXNwYWNl
ICR7Y3BwTmFtZXNwYWNlfSB7CituYW1lc3BhY2UgJHBhcmFtZXRlcnN7J2NwcE5hbWVzcGFjZSd9
IHsKIAogRU5ECiA7CkBAIC01MzEsNyArNTQ5LDcgQEAgcHJpbnQgRiAifVxuIjsKIHByaW50IEYg
IiNlbmRpZlxuXG4iIGlmICRndWFyZEZhY3RvcnlXaXRoOwogCiBwcmludCBGIDw8RU5ECi0ke25h
bWVzcGFjZX1FbGVtZW50KiAke25hbWVzcGFjZX1FbGVtZW50RmFjdG9yeTo6Y3JlYXRlJHtuYW1l
c3BhY2V9RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiBxTmFtZSwgRG9jdW1lbnQqIGRvYywg
Ym9vbCBjcmVhdGVkQnlQYXJzZXIpCiskcGFyYW1ldGVyc3snbmFtZXNwYWNlJ31FbGVtZW50KiAk
cGFyYW1ldGVyc3snbmFtZXNwYWNlJ31FbGVtZW50RmFjdG9yeTo6Y3JlYXRlJHBhcmFtZXRlcnN7
J25hbWVzcGFjZSd9RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiBxTmFtZSwgRG9jdW1lbnQq
IGRvYywgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCiB7CiBFTkQKIDsKQEAgLTU1NCw3ICs1NzIsNyBA
QCBwcmludCBGIDw8RU5ECiAgICAgaWYgKGZ1bmMpCiAgICAgICAgIHJldHVybiBmdW5jKGRvYywg
Y3JlYXRlZEJ5UGFyc2VyKTsKIAotICAgIHJldHVybiBuZXcgJHtuYW1lc3BhY2V9RWxlbWVudChx
TmFtZSwgZG9jKTsKKyAgICByZXR1cm4gbmV3ICRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfUVsZW1l
bnQocU5hbWUsIGRvYyk7CiBFTkQKIDsKIApAQCAtNTg4LDggKzYwNiw4IEBAIHN1YiBwcmludEZh
Y3RvcnlIZWFkZXJGaWxlCiAKICAgICBwcmludExpY2Vuc2VIZWFkZXIoJEYpOwogCi1wcmludCBG
ICIjaWZuZGVmICR7bmFtZXNwYWNlfUVMRU1FTlRGQUNUT1JZX0hcbiI7Ci1wcmludCBGICIjZGVm
aW5lICR7bmFtZXNwYWNlfUVMRU1FTlRGQUNUT1JZX0hcblxuIjsKK3ByaW50IEYgIiNpZm5kZWYg
JHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9RUxFTUVOVEZBQ1RPUllfSFxuIjsKK3ByaW50IEYgIiNk
ZWZpbmUgJHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9RUxFTUVOVEZBQ1RPUllfSFxuXG4iOwogCiBw
cmludCBGICIKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTU5OSwxNyArNjE3LDE3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBBdG9taWNTdHJpbmc7CiB9CiAKLW5hbWVzcGFjZSAk
e2NwcE5hbWVzcGFjZX0KK25hbWVzcGFjZSAkcGFyYW1ldGVyc3snY3BwTmFtZXNwYWNlJ30KIHsK
LSAgICBjbGFzcyAke25hbWVzcGFjZX1FbGVtZW50OworICAgIGNsYXNzICRwYXJhbWV0ZXJzeydu
YW1lc3BhY2UnfUVsZW1lbnQ7CiAKICAgICAvLyBUaGUgaWRlYSBiZWhpbmQgdGhpcyBjbGFzcyBp
cyB0aGF0IHRoZXJlIHdpbGwgZXZlbnR1YWxseSBiZSBhIG1hcHBpbmcgZnJvbSBuYW1lc3BhY2Ug
VVJJcyB0byBFbGVtZW50RmFjdG9yaWVzIHRoYXQgY2FuIGRpc3BlbnNlCiAgICAgLy8gZWxlbWVu
dHMuICBJbiBhIGNvbXBvdW5kIGRvY3VtZW50IHdvcmxkLCB0aGUgZ2VuZXJpYyBjcmVhdGVFbGVt
ZW50IGZ1bmN0aW9uICh3aWxsIGVuZCB1cCBiZWluZyB2aXJ0dWFsKSB3aWxsIGJlIGNhbGxlZC4K
LSAgICBjbGFzcyAke25hbWVzcGFjZX1FbGVtZW50RmFjdG9yeQorICAgIGNsYXNzICRwYXJhbWV0
ZXJzeyduYW1lc3BhY2UnfUVsZW1lbnRGYWN0b3J5CiAgICAgewogICAgIHB1YmxpYzoKICAgICAg
ICAgV2ViQ29yZTo6RWxlbWVudCogY3JlYXRlRWxlbWVudChjb25zdCBXZWJDb3JlOjpRdWFsaWZp
ZWROYW1lJiBxTmFtZSwgV2ViQ29yZTo6RG9jdW1lbnQqIGRvYywgYm9vbCBjcmVhdGVkQnlQYXJz
ZXIgPSB0cnVlKTsKLSAgICAgICAgc3RhdGljICR7bmFtZXNwYWNlfUVsZW1lbnQqIGNyZWF0ZSR7
bmFtZXNwYWNlfUVsZW1lbnQoY29uc3QgV2ViQ29yZTo6UXVhbGlmaWVkTmFtZSYgcU5hbWUsIFdl
YkNvcmU6OkRvY3VtZW50KiBkb2MsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyID0gdHJ1ZSk7CisgICAg
ICAgIHN0YXRpYyAkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ31FbGVtZW50KiBjcmVhdGUkcGFyYW1l
dGVyc3snbmFtZXNwYWNlJ31FbGVtZW50KGNvbnN0IFdlYkNvcmU6OlF1YWxpZmllZE5hbWUmIHFO
YW1lLCBXZWJDb3JlOjpEb2N1bWVudCogZG9jLCBib29sIGNyZWF0ZWRCeVBhcnNlciA9IHRydWUp
OwogICAgIH07CiB9CiAKQEAgLTY4Niw4ICs3MDQsOCBAQCBzdWIgaGFzQ3VzdG9tTWFwcGluZwog
ewogICAgIG15ICRuYW1lID0gc2hpZnQ7CiAgICAgaW5pdGlhbGl6ZUN1c3RvbU1hcHBpbmdzKCk7
Ci0gICAgcmV0dXJuIDEgaWYgJG5hbWVzcGFjZSBlcSAiSFRNTCIgJiYgZXhpc3RzKCRodG1sQ3Vz
dG9tTWFwcGluZ3N7JG5hbWV9KTsKLSAgICByZXR1cm4gMSBpZiAkbmFtZXNwYWNlIGVxICJTVkci
ICYmIGV4aXN0cygkc3ZnQ3VzdG9tTWFwcGluZ3N7JG5hbWV9KTsKKyAgICByZXR1cm4gMSBpZiAk
cGFyYW1ldGVyc3snbmFtZXNwYWNlJ30gZXEgIkhUTUwiICYmIGV4aXN0cygkaHRtbEN1c3RvbU1h
cHBpbmdzeyRuYW1lfSk7CisgICAgcmV0dXJuIDEgaWYgJHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9
IGVxICJTVkciICYmIGV4aXN0cygkc3ZnQ3VzdG9tTWFwcGluZ3N7JG5hbWV9KTsKICAgICByZXR1
cm4gMDsKIH0KIApAQCAtNzAzLDIwICs3MjEsMjAgQEAgc3ViIHByaW50V3JhcHBlckZ1bmN0aW9u
cwogICAgICAgICAjIEhhY2sgZm9yIHRoZSBtZWRpYSB0YWdzCiAgICAgICAgIGlmICgkbmFtZXN7
JG5hbWV9eyJhcHBseUF1ZGlvSGFjayJ9KSB7CiAgICAgICAgICAgICBwcmludCBGIDw8RU5ECi1z
dGF0aWMgSlNOb2RlKiBjcmVhdGUke3VjTmFtZX1XcmFwcGVyKEV4ZWNTdGF0ZSogZXhlYywgUGFz
c1JlZlB0cjwke25hbWVzcGFjZX1FbGVtZW50PiBlbGVtZW50KQorc3RhdGljIEpTTm9kZSogY3Jl
YXRlJHt1Y05hbWV9V3JhcHBlcihFeGVjU3RhdGUqIGV4ZWMsIFBhc3NSZWZQdHI8JHBhcmFtZXRl
cnN7J25hbWVzcGFjZSd9RWxlbWVudD4gZWxlbWVudCkKIHsKICAgICBpZiAoIU1lZGlhUGxheWVy
Ojppc0F2YWlsYWJsZSgpKQotICAgICAgICByZXR1cm4gbmV3IEpTJHtuYW1lc3BhY2V9RWxlbWVu
dChKUyR7bmFtZXNwYWNlfUVsZW1lbnRQcm90b3R5cGU6OnNlbGYoZXhlYyksIGVsZW1lbnQuZ2V0
KCkpOwotICAgIHJldHVybiBuZXcgSlMke25hbWVzcGFjZX0ke3VjTmFtZX1FbGVtZW50KEpTJHtu
YW1lc3BhY2V9JHt1Y05hbWV9RWxlbWVudFByb3RvdHlwZTo6c2VsZihleGVjKSwgc3RhdGljX2Nh
c3Q8JHtuYW1lc3BhY2V9JHt1Y05hbWV9RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKKyAgICAg
ICAgcmV0dXJuIG5ldyBKUyRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfUVsZW1lbnQoSlMkcGFyYW1l
dGVyc3snbmFtZXNwYWNlJ31FbGVtZW50UHJvdG90eXBlOjpzZWxmKGV4ZWMpLCBlbGVtZW50Lmdl
dCgpKTsKKyAgICByZXR1cm4gbmV3IEpTJHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9JHt1Y05hbWV9
RWxlbWVudChKUyRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfSR7dWNOYW1lfUVsZW1lbnRQcm90b3R5
cGU6OnNlbGYoZXhlYyksIHN0YXRpY19jYXN0PCRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfSR7dWNO
YW1lfUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7CiB9CiAKIEVORAogOwogICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgcHJpbnQgRiA8PEVORAotc3RhdGljIEpTTm9kZSogY3JlYXRlJHt1
Y05hbWV9V3JhcHBlcihFeGVjU3RhdGUqIGV4ZWMsIFBhc3NSZWZQdHI8JHtuYW1lc3BhY2V9RWxl
bWVudD4gZWxlbWVudCkKK3N0YXRpYyBKU05vZGUqIGNyZWF0ZSR7dWNOYW1lfVdyYXBwZXIoRXhl
Y1N0YXRlKiBleGVjLCBQYXNzUmVmUHRyPCRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfUVsZW1lbnQ+
IGVsZW1lbnQpCiB7ICAgCi0gICAgcmV0dXJuIG5ldyBKUyR7bmFtZXNwYWNlfSR7dWNOYW1lfUVs
ZW1lbnQoSlMke25hbWVzcGFjZX0ke3VjTmFtZX1FbGVtZW50UHJvdG90eXBlOjpzZWxmKGV4ZWMp
LCBzdGF0aWNfY2FzdDwke25hbWVzcGFjZX0ke3VjTmFtZX1FbGVtZW50Kj4oZWxlbWVudC5nZXQo
KSkpOworICAgIHJldHVybiBuZXcgSlMkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ30ke3VjTmFtZX1F
bGVtZW50KEpTJHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9JHt1Y05hbWV9RWxlbWVudFByb3RvdHlw
ZTo6c2VsZihleGVjKSwgc3RhdGljX2Nhc3Q8JHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9JHt1Y05h
bWV9RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKIH0KIAogRU5ECkBAIC03MzcsMTEgKzc1NSwx
MSBAQCBzdWIgcHJpbnRXcmFwcGVyRmFjdG9yeUNwcEZpbGUKIAogICAgIHByaW50IEYgIiNpZiAk
Z3VhcmRGYWN0b3J5V2l0aFxuXG4iIGlmICRndWFyZEZhY3RvcnlXaXRoOwogCi0gICAgcHJpbnQg
RiAiI2luY2x1ZGUgXCJKUyR7bmFtZXNwYWNlfUVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oXCJcbiI7
CisgICAgcHJpbnQgRiAiI2luY2x1ZGUgXCJKUyRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfUVsZW1l
bnRXcmFwcGVyRmFjdG9yeS5oXCJcbiI7CiAKICAgICBwcmludEpTRWxlbWVudEluY2x1ZGVzKCRG
LCBcJXRhZ3MpOwogCi0gICAgcHJpbnQgRiAiXG4jaW5jbHVkZSBcIiR7bmFtZXNwYWNlfU5hbWVz
LmhcIlxuXG4iOworICAgIHByaW50IEYgIlxuI2luY2x1ZGUgXCIkcGFyYW1ldGVyc3snbmFtZXNw
YWNlJ31OYW1lcy5oXCJcblxuIjsKIAogICAgIHByaW50RWxlbWVudEluY2x1ZGVzKCRGLCBcJXRh
Z3MsIDEpOwogCkBAIC03NTAsOSArNzY4LDkgQEAgdXNpbmcgbmFtZXNwYWNlIEtKUzsKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBuYW1lc3BhY2UgJHtuYW1lc3BhY2V9TmFtZXM7Cit1
c2luZyBuYW1lc3BhY2UgJHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9TmFtZXM7CiAKLXR5cGVkZWYg
SlNOb2RlKiAoKkNyZWF0ZSR7bmFtZXNwYWNlfUVsZW1lbnRXcmFwcGVyRnVuY3Rpb24pKEV4ZWNT
dGF0ZSosIFBhc3NSZWZQdHI8JHtuYW1lc3BhY2V9RWxlbWVudD4pOwordHlwZWRlZiBKU05vZGUq
ICgqQ3JlYXRlJHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9RWxlbWVudFdyYXBwZXJGdW5jdGlvbiko
RXhlY1N0YXRlKiwgUGFzc1JlZlB0cjwkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ31FbGVtZW50Pik7
CiAKIEVORAogOwpAQCAtNzYwLDkgKzc3OCw5IEBAIEVORAogICAgIHByaW50V3JhcHBlckZ1bmN0
aW9ucygkRiwgXCV0YWdzKTsKIAogICAgIHByaW50IEYgPDxFTkQKLUpTTm9kZSogY3JlYXRlSlMk
e25hbWVzcGFjZX1XcmFwcGVyKEV4ZWNTdGF0ZSogZXhlYywgUGFzc1JlZlB0cjwke25hbWVzcGFj
ZX1FbGVtZW50PiBlbGVtZW50KQorSlNOb2RlKiBjcmVhdGVKUyRwYXJhbWV0ZXJzeyduYW1lc3Bh
Y2UnfVdyYXBwZXIoRXhlY1N0YXRlKiBleGVjLCBQYXNzUmVmUHRyPCRwYXJhbWV0ZXJzeyduYW1l
c3BhY2UnfUVsZW1lbnQ+IGVsZW1lbnQpCiB7ICAgCi0gICAgc3RhdGljIEhhc2hNYXA8V2ViQ29y
ZTo6QXRvbWljU3RyaW5nSW1wbCosIENyZWF0ZSR7bmFtZXNwYWNlfUVsZW1lbnRXcmFwcGVyRnVu
Y3Rpb24+IG1hcDsKKyAgICBzdGF0aWMgSGFzaE1hcDxXZWJDb3JlOjpBdG9taWNTdHJpbmdJbXBs
KiwgQ3JlYXRlJHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9RWxlbWVudFdyYXBwZXJGdW5jdGlvbj4g
bWFwOwogICAgIGlmIChtYXAuaXNFbXB0eSgpKSB7CiBFTkQKIDsKQEAgLTc3NCw3ICs3OTIsNyBA
QCBFTkQKICAgICAgICAgcHJpbnQgRiAiICAgICAgIG1hcC5zZXQoJHt0YWd9VGFnLmxvY2FsTmFt
ZSgpLmltcGwoKSwgY3JlYXRlJHt1Y1RhZ31XcmFwcGVyKTtcbiI7CiAgICAgfQogCi0gICAgaWYg
KCRuYW1lc3BhY2UgZXEgIkhUTUwiKSB7CisgICAgaWYgKCRwYXJhbWV0ZXJzeyduYW1lc3BhY2Un
fSBlcSAiSFRNTCIpIHsKICAgICAgICAgZm9yIG15ICR0YWcgKHNvcnQga2V5cyAlaHRtbEN1c3Rv
bU1hcHBpbmdzKSB7CiAgICAgICAgICAgICBuZXh0IGlmICEkaHRtbEN1c3RvbU1hcHBpbmdzeyR0
YWd9OwogCkBAIC03ODcsMTAgKzgwNSwxMCBAQCBFTkQKIAogICAgIHByaW50IEYgPDxFTkQKICAg
ICB9Ci0gICAgQ3JlYXRlJHtuYW1lc3BhY2V9RWxlbWVudFdyYXBwZXJGdW5jdGlvbiBjcmVhdGVX
cmFwcGVyRnVuY3Rpb24gPSBtYXAuZ2V0KGVsZW1lbnQtPmxvY2FsTmFtZSgpLmltcGwoKSk7Cisg
ICAgQ3JlYXRlJHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9RWxlbWVudFdyYXBwZXJGdW5jdGlvbiBj
cmVhdGVXcmFwcGVyRnVuY3Rpb24gPSBtYXAuZ2V0KGVsZW1lbnQtPmxvY2FsTmFtZSgpLmltcGwo
KSk7CiAgICAgaWYgKGNyZWF0ZVdyYXBwZXJGdW5jdGlvbikKICAgICAgICAgcmV0dXJuIGNyZWF0
ZVdyYXBwZXJGdW5jdGlvbihleGVjLCBlbGVtZW50KTsKLSAgICByZXR1cm4gbmV3IEpTJHtuYW1l
c3BhY2V9RWxlbWVudChKUyR7bmFtZXNwYWNlfUVsZW1lbnRQcm90b3R5cGU6OnNlbGYoZXhlYyks
IGVsZW1lbnQuZ2V0KCkpOworICAgIHJldHVybiBuZXcgSlMkcGFyYW1ldGVyc3snbmFtZXNwYWNl
J31FbGVtZW50KEpTJHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9RWxlbWVudFByb3RvdHlwZTo6c2Vs
ZihleGVjKSwgZWxlbWVudC5nZXQoKSk7CiB9CiAKIH0KQEAgLTgxMSw4ICs4MjksOCBAQCBzdWIg
cHJpbnRXcmFwcGVyRmFjdG9yeUhlYWRlckZpbGUKIAogICAgIHByaW50TGljZW5zZUhlYWRlcigk
Rik7CiAKLSAgICBwcmludCBGICIjaWZuZGVmIEpTJHtuYW1lc3BhY2V9RWxlbWVudFdyYXBwZXJG
YWN0b3J5X2hcbiI7Ci0gICAgcHJpbnQgRiAiI2RlZmluZSBKUyR7bmFtZXNwYWNlfUVsZW1lbnRX
cmFwcGVyRmFjdG9yeV9oXG5cbiI7CisgICAgcHJpbnQgRiAiI2lmbmRlZiBKUyRwYXJhbWV0ZXJz
eyduYW1lc3BhY2UnfUVsZW1lbnRXcmFwcGVyRmFjdG9yeV9oXG4iOworICAgIHByaW50IEYgIiNk
ZWZpbmUgSlMkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ31FbGVtZW50V3JhcHBlckZhY3RvcnlfaFxu
XG4iOwogCiAgICAgcHJpbnQgRiAiI2lmICR7Z3VhcmRGYWN0b3J5V2l0aH1cbiIgaWYgJGd1YXJk
RmFjdG9yeVdpdGg7CiAKQEAgLTgyNiw5ICs4NDQsOSBAQCBuYW1lc3BhY2UgS0pTIHsKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIEpTTm9kZTsKLSAgICBjbGFzcyAke25hbWVzcGFj
ZX1FbGVtZW50OworICAgIGNsYXNzICRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfUVsZW1lbnQ7CiAK
LSAgICBKU05vZGUqIGNyZWF0ZUpTJHtuYW1lc3BhY2V9V3JhcHBlcihLSlM6OkV4ZWNTdGF0ZSos
IFBhc3NSZWZQdHI8JHtuYW1lc3BhY2V9RWxlbWVudD4pOworICAgIEpTTm9kZSogY3JlYXRlSlMk
cGFyYW1ldGVyc3snbmFtZXNwYWNlJ31XcmFwcGVyKEtKUzo6RXhlY1N0YXRlKiwgUGFzc1JlZlB0
cjwkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ31FbGVtZW50Pik7CiAKIH0KICAKQEAgLTgzNyw3ICs4
NTUsNyBAQCBFTkQKIAogICAgIHByaW50IEYgIiNlbmRpZiAvLyAkZ3VhcmRGYWN0b3J5V2l0aFxu
XG4iIGlmICRndWFyZEZhY3RvcnlXaXRoOwogCi0gICAgcHJpbnQgRiAiI2VuZGlmIC8vIEpTJHtu
YW1lc3BhY2V9RWxlbWVudFdyYXBwZXJGYWN0b3J5X2hcbiI7CisgICAgcHJpbnQgRiAiI2VuZGlm
IC8vIEpTJHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9RWxlbWVudFdyYXBwZXJGYWN0b3J5X2hcbiI7
CiAKICAgICBjbG9zZSBGOwogfQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1l
cy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCShy
ZXZpc2lvbiAzNDQxNCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4JKHdv
cmtpbmcgY29weSkKQEAgLTEsNCArMSw0IEBACi08YXR0cnM+Cis8YXR0cnMgbmFtZXNwYWNlPSJI
VE1MIiBuYW1lc3BhY2VQcmVmaXg9InhodG1sIiBjcHBOYW1lc3BhY2U9IldlYkNvcmUiIG5hbWVz
cGFjZVVSST0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CiA8YWJici8+CiA8YWNjZXB0
X2NoYXJzZXQvPgogPGFjY2VwdC8+CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmlu
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4JKHJldmlzaW9uIDM0
NDE1KQorKysgV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgkod29ya2luZyBjb3B5KQpAQCAt
MSw0ICsxLDQgQEAKLTx0YWdzPgorPHRhZ3MgbmFtZXNwYWNlPSJIVE1MIiBuYW1lc3BhY2VQcmVm
aXg9InhodG1sIiBjcHBOYW1lc3BhY2U9IldlYkNvcmUiIG5hbWVzcGFjZVVSST0iaHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCI+CiA8YSB1cHBlckNhc2U9IkFuY2hvciIvPgogPGFiYnIvPgog
PGFjcm9ueW0vPgpJbmRleDogV2ViQ29yZS9zdmcvc3ZnYXR0cnMuaW4KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9zdmcvc3ZnYXR0cnMuaW4JKHJldmlzaW9uIDM0NDE0KQorKysgV2ViQ29yZS9zdmcv
c3ZnYXR0cnMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSw0IEBACi08YXR0cnM+Cis8YXR0
cnMgbmFtZXNwYWNlPSJTVkciIGNwcE5hbWVzcGFjZT0iV2ViQ29yZSIgbmFtZXNwYWNlVVJJPSJo
dHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiA8YWNjZW50LWhlaWdodC8+CiA8YWNjdW11bGF0
ZS8+CiA8YWRkaXRpdmUvPgpJbmRleDogV2ViQ29yZS9zdmcvc3ZndGFncy5pbgo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3N2Zy9zdmd0YWdzLmluCShyZXZpc2lvbiAzNDQxNSkKKysrIFdlYkNvcmUv
c3ZnL3N2Z3RhZ3MuaW4JKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSw0IEBACi08dGFncz4KKzx0
YWdzIG5hbWVzcGFjZT0iU1ZHIiBjcHBOYW1lc3BhY2U9IldlYkNvcmUiIG5hbWVzcGFjZVVSST0i
aHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogPGEvPgogI2lmIEVOQUJMRV9TVkdfRk9OVFMK
IDxhbHRHbHlwaC8+CkluZGV4OiBXZWJDb3JlL3N2Zy94bGlua2F0dHJzLmluCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvc3ZnL3hsaW5rYXR0cnMuaW4JKHJldmlzaW9uIDM0NDE0KQorKysgV2ViQ29y
ZS9zdmcveGxpbmthdHRycy5pbgkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDQgQEAKLTxhdHRy
cz4KKzxhdHRycyBuYW1lc3BhY2U9IlhMaW5rIiBjcHBOYW1lc3BhY2U9IldlYkNvcmUiIG5hbWVz
cGFjZVVSST0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiA8YWN0dWF0ZS8+CiA8YXJj
cm9sZS8+CiA8aHJlZi8+CkluZGV4OiBXZWJDb3JlL3htbC94bWxhdHRycy5pbgo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3htbC94bWxhdHRycy5pbgkocmV2aXNpb24gMzQ0MTQpCisrKyBXZWJDb3Jl
L3htbC94bWxhdHRycy5pbgkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDQgQEAKLTxhdHRycz4K
KzxhdHRycyBuYW1lc3BhY2U9IlhNTCIgY3BwTmFtZXNwYWNlPSJXZWJDb3JlIiBuYW1lc3BhY2VV
Ukk9Imh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSI+CiA8YmFzZS8+CiA8bGFu
Zy8+CiA8c3BhY2UvPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21593</attachid>
            <date>2008-06-09 07:47:56 -0700</date>
            <delta_ts>2008-06-10 13:51:30 -0700</delta_ts>
            <desc>Fourth part: move more parameters</desc>
            <filename>makeNamesXmlIn4-updated-CL.patch</filename>
            <type>text/plain</type>
            <size>10087</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvc3ZnL3N2Z3RhZ3MuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcv
c3ZndGFncy5pbgkocmV2aXNpb24gMzQ0NjcpCisrKyBXZWJDb3JlL3N2Zy9zdmd0YWdzLmluCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAotPHRhZ3MgbmFtZXNwYWNlPSJTVkciIGNwcE5h
bWVzcGFjZT0iV2ViQ29yZSIgbmFtZXNwYWNlVVJJPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2
ZyI+Cis8dGFncyBuYW1lc3BhY2U9IlNWRyIgY3BwTmFtZXNwYWNlPSJXZWJDb3JlIiBuYW1lc3Bh
Y2VVUkk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBnZW5lcmF0ZUZhY3Rvcnk9IjEiIGdl
bmVyYXRlV3JhcHBlckZhY3Rvcnk9IjEiIGd1YXJkRmFjdG9yeVdpdGg9IkVOQUJMRShTVkcpIj4K
IDxhLz4KICNpZiBFTkFCTEVfU1ZHX0ZPTlRTCiA8YWx0R2x5cGgvPgpJbmRleDogV2ViQ29yZS9z
dmcvc3ZnYXR0cnMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvc3ZnYXR0cnMuaW4JKHJl
dmlzaW9uIDM0NDY3KQorKysgV2ViQ29yZS9zdmcvc3ZnYXR0cnMuaW4JKHdvcmtpbmcgY29weSkK
QEAgLTEsNCArMSw0IEBACi08YXR0cnMgbmFtZXNwYWNlPSJTVkciIGNwcE5hbWVzcGFjZT0iV2Vi
Q29yZSIgbmFtZXNwYWNlVVJJPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+Cis8YXR0cnMg
bmFtZXNwYWNlPSJTVkciIGNwcE5hbWVzcGFjZT0iV2ViQ29yZSIgbmFtZXNwYWNlVVJJPSJodHRw
Oi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZ2VuZXJhdGVGYWN0b3J5PSIxIiBnZW5lcmF0ZVdyYXBw
ZXJGYWN0b3J5PSIxIiBndWFyZEZhY3RvcnlXaXRoPSJFTkFCTEUoU1ZHKSIgbnVsbE5hbWVzcGFj
ZT0iMSI+CiA8YWNjZW50LWhlaWdodC8+CiA8YWNjdW11bGF0ZS8+CiA8YWRkaXRpdmUvPgpJbmRl
eDogV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0
bWwvSFRNTFRhZ05hbWVzLmluCShyZXZpc2lvbiAzNDQ2NykKKysrIFdlYkNvcmUvaHRtbC9IVE1M
VGFnTmFtZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSw0IEBACi08dGFncyBuYW1lc3Bh
Y2U9IkhUTUwiIG5hbWVzcGFjZVByZWZpeD0ieGh0bWwiIGNwcE5hbWVzcGFjZT0iV2ViQ29yZSIg
bmFtZXNwYWNlVVJJPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzx0YWdzIG5hbWVz
cGFjZT0iSFRNTCIgbmFtZXNwYWNlUHJlZml4PSJ4aHRtbCIgY3BwTmFtZXNwYWNlPSJXZWJDb3Jl
IiBuYW1lc3BhY2VVUkk9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIGdlbmVyYXRlRmFj
dG9yeT0nMScgZ2VuZXJhdGVXcmFwcGVyRmFjdG9yeT0nMSc+CiA8YSB1cHBlckNhc2U9IkFuY2hv
ciIvPgogPGFiYnIvPgogPGFjcm9ueW0vPgpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1
dGVOYW1lcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVz
LmluCShyZXZpc2lvbiAzNDQ2NykKKysrIFdlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMu
aW4JKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSw0IEBACi08YXR0cnMgbmFtZXNwYWNlPSJIVE1M
IiBuYW1lc3BhY2VQcmVmaXg9InhodG1sIiBjcHBOYW1lc3BhY2U9IldlYkNvcmUiIG5hbWVzcGFj
ZVVSST0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8YXR0cnMgbmFtZXNwYWNlPSJI
VE1MIiBuYW1lc3BhY2VQcmVmaXg9InhodG1sIiBjcHBOYW1lc3BhY2U9IldlYkNvcmUiIG5hbWVz
cGFjZVVSST0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgZ2VuZXJhdGVGYWN0b3J5PSIx
IiBnZW5lcmF0ZVdyYXBwZXJGYWN0b3J5PSIxIiBudWxsTmFtZXNwYWNlPSIxIj4KIDxhYmJyLz4K
IDxhY2NlcHRfY2hhcnNldC8+CiA8YWNjZXB0Lz4KSW5kZXg6IFdlYkNvcmUvZG9tL21ha2VfbmFt
ZXMucGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbAkocmV2aXNpb24g
MzQ0NjcpCisrKyBXZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCSh3b3JraW5nIGNvcHkpCkBAIC0z
NSwzMiArMzUsMjIgQEAKIHVzZSBTd2l0Y2g7CiB1c2UgWE1MVGlueSBxdyhwYXJzZWZpbGUpOwog
Ci1teSAkcHJpbnRGYWN0b3J5ID0gMDsKLW15ICRwcmludFdyYXBwZXJGYWN0b3J5ID0gMDsKIG15
ICR0YWdzRmlsZSA9ICIiOwogbXkgJGF0dHJzRmlsZSA9ICIiOwogbXkgJG91dHB1dERpciA9ICIu
IjsKIG15ICV0YWdzID0gKCk7CiBteSAlYXR0cnMgPSAoKTsKIG15ICVwYXJhbWV0ZXJzID0gKCk7
Ci1teSAkdGFnc051bGxOYW1lc3BhY2UgPSAwOwotbXkgJGF0dHJzTnVsbE5hbWVzcGFjZSA9IDA7
CiBteSAkZXh0cmFEZWZpbmVzID0gMDsKIG15ICRwcmVwcm9jZXNzb3IgPSAiL3Vzci9iaW4vZ2Nj
IC1FIC1QIC14IGMrKyI7Ci1teSAkZ3VhcmRGYWN0b3J5V2l0aCA9IDA7CiBteSAlc3ZnQ3VzdG9t
TWFwcGluZ3MgPSAoKTsKIG15ICVodG1sQ3VzdG9tTWFwcGluZ3MgPSAoKTsKIAogR2V0T3B0aW9u
cygndGFncz1zJyA9PiBcJHRhZ3NGaWxlLCAKICAgICAnYXR0cnM9cycgPT4gXCRhdHRyc0ZpbGUs
CiAgICAgJ291dHB1dERpcj1zJyA9PiBcJG91dHB1dERpciwKLSAgICAnZmFjdG9yeScgPT4gXCRw
cmludEZhY3RvcnksCi0gICAgJ3dyYXBwZXJGYWN0b3J5JyA9PiBcJHByaW50V3JhcHBlckZhY3Rv
cnksCi0gICAgJ3RhZ3NOdWxsTmFtZXNwYWNlJyA9PiBcJHRhZ3NOdWxsTmFtZXNwYWNlLAotICAg
ICdhdHRyc051bGxOYW1lc3BhY2UnID0+IFwkYXR0cnNOdWxsTmFtZXNwYWNlLAogICAgICdleHRy
YURlZmluZXM9cycgPT4gXCRleHRyYURlZmluZXMsCi0gICAgJ3ByZXByb2Nlc3Nvcj1zJyA9PiBc
JHByZXByb2Nlc3NvciwKLSAgICAnZ3VhcmRGYWN0b3J5V2l0aD1zJyA9PiBcJGd1YXJkRmFjdG9y
eVdpdGgpOworICAgICdwcmVwcm9jZXNzb3I9cycgPT4gXCRwcmVwcm9jZXNzb3IpOwogCiBkaWUg
IllvdSBtdXN0IHNwZWNpZnkgYXQgbGVhc3Qgb25lIG9mIC0tdGFncyA8ZmlsZT4gb3IgLS1hdHRy
cyA8ZmlsZT4iIHVubGVzcyAobGVuZ3RoKCR0YWdzRmlsZSkgfHwgbGVuZ3RoKCRhdHRyc0ZpbGUp
KTsKIApAQCAtODEsMTIgKzcxLDEyIEBACiBwcmludE5hbWVzSGVhZGVyRmlsZSgiJG5hbWVzQmFz
ZVBhdGguaCIpOwogcHJpbnROYW1lc0NwcEZpbGUoIiRuYW1lc0Jhc2VQYXRoLmNwcCIpOwogCi1p
ZiAoJHByaW50RmFjdG9yeSkgeworaWYgKCRwYXJhbWV0ZXJzeydnZW5lcmF0ZUZhY3RvcnknfSkg
ewogICAgIHByaW50RmFjdG9yeUNwcEZpbGUoIiRmYWN0b3J5QmFzZVBhdGguY3BwIik7CiAgICAg
cHJpbnRGYWN0b3J5SGVhZGVyRmlsZSgiJGZhY3RvcnlCYXNlUGF0aC5oIik7CiB9CiAKLWlmICgk
cHJpbnRXcmFwcGVyRmFjdG9yeSkgeworaWYgKCRwYXJhbWV0ZXJzeydnZW5lcmF0ZVdyYXBwZXJG
YWN0b3J5J30pIHsKICAgICBwcmludFdyYXBwZXJGYWN0b3J5Q3BwRmlsZSgiJHdyYXBwZXJGYWN0
b3J5QmFzZVBhdGguY3BwIik7CiAgICAgcHJpbnRXcmFwcGVyRmFjdG9yeUhlYWRlckZpbGUoIiR3
cmFwcGVyRmFjdG9yeUJhc2VQYXRoLmgiKTsKIH0KQEAgLTEwOSw3ICs5OSwxMyBAQAogICAgIHJl
dHVybiAoJ25hbWVzcGFjZScgPT4gJycsCiAgICAgICAgICAgICAnbmFtZXNwYWNlUHJlZml4JyA9
PiAnJywKICAgICAgICAgICAgICduYW1lc3BhY2VVUkknID0+ICcnLAotICAgICAgICAgICAgJ2Nw
cE5hbWVzcGFjZScgPT4gJycpOworICAgICAgICAgICAgJ2NwcE5hbWVzcGFjZScgPT4gJycsCisg
ICAgICAgICAgICAnZ2VuZXJhdGVGYWN0b3J5JyA9PiAwLAorICAgICAgICAgICAgJ2d1YXJkRmFj
dG9yeVdpdGgnID0+ICcnLAorICAgICAgICAgICAgJ2dlbmVyYXRlV3JhcHBlckZhY3RvcnknID0+
IDAsCisgICAgICAgICAgICAjIFRoZSAyIG51bGxOYW1lc3BhY2UgcHJvcGVydGllcyBhcmUgZ2Vu
ZXJhdGVkIGZyb20gdGhlICJudWxsTmFtZXNwYWNlIiBhdHRyaWJ1dGUgd2l0aCByZXNwZWN0IHRv
IHRoZSBmaWxlIHBhcnNlZCAoYXR0cnMgb3IgdGFncykuCisgICAgICAgICAgICAndGFnc051bGxO
YW1lc3BhY2UnID0+IDAsCisgICAgICAgICAgICAnYXR0cnNOdWxsTmFtZXNwYWNlJyA9PiAwKTsK
IH0KIAogIyMjIFBhcnNpbmcgaGFuZGxlcnMKQEAgLTE2MSw3ICsxNTcsNyBAQAogCiBzdWIgcGFy
c2VQYXJhbWV0ZXJzCiB7Ci0gICAgbXkgJHByb3BlcnRpZXNSZWYgPSBzaGlmdDsKKyAgICBteSAo
JHByb3BlcnRpZXNSZWYsICRlbGVtZW50TmFtZSkgPSBAXzsKICAgICBteSAlcHJvcGVydGllcyA9
ICUkcHJvcGVydGllc1JlZjsKIAogICAgICMgSW5pdGlhbGl6ZSBkZWZhdWx0IHByb3BlcnRpZXMn
IHZhbHVlcy4KQEAgLTE2OSw4ICsxNjUsMTcgQEAKIAogICAgICMgUGFyc2UgdGhlIFhNTCBhdHRy
aWJ1dGVzLgogICAgIGZvcmVhY2ggbXkgJHByb3BlcnR5IChrZXlzICVwcm9wZXJ0aWVzKSB7Ci0g
ICAgICAgIGRpZSAiVW5rbm93biBwYXJhbWV0ZXIgJHByb3BlcnR5IGZvciB0YWdzL2F0dHJzXG4i
IGlmICFkZWZpbmVkKCRwYXJhbWV0ZXJzeyRwcm9wZXJ0eX0pOwotICAgICAgICAkcGFyYW1ldGVy
c3skcHJvcGVydHl9ID0gJHByb3BlcnRpZXN7JHByb3BlcnR5fTsKKyAgICAgICAgIyBUaGlzIGlz
IHVzZWQgaW4gY2FzZSB3ZSB3YW50IHRvIGNoYW5nZSB0aGUgcGFyYW1ldGVyIG5hbWUgZGVwZW5k
aW5nCisgICAgICAgICMgb24gd2hhdCBpcyBwYXJzZWQuCisgICAgICAgIG15ICRwYXJhbWV0ZXIg
PSAkcHJvcGVydHk7CisKKyAgICAgICAgIyAibnVsbE5hbWVzcGFjZSIgY2FzZQorICAgICAgICBp
ZiAoJHByb3BlcnR5IGVxICJudWxsTmFtZXNwYWNlIikgeworICAgICAgICAgICAgJHBhcmFtZXRl
ciA9ICRlbGVtZW50TmFtZS4odWNmaXJzdCAkcHJvcGVydHkpOworICAgICAgICB9CisKKyAgICAg
ICAgZGllICJVbmtub3duIHBhcmFtZXRlciAkcHJvcGVydHkgZm9yIHRhZ3MvYXR0cnNcbiIgaWYg
IWRlZmluZWQoJHBhcmFtZXRlcnN7JHBhcmFtZXRlcn0pOworICAgICAgICAkcGFyYW1ldGVyc3sk
cGFyYW1ldGVyfSA9ICRwcm9wZXJ0aWVzeyRwcm9wZXJ0eX07CiAgICAgfQogfQogCkBAIC0yMDAs
MTEgKzIwNSwxMSBAQAogICAgICMgQ2hlY2sgcm9vdCBlbGVtZW50IHRvIGRldGVybWluZSB3aGF0
IHdlIGFyZSBwYXJzaW5nCiAgICAgc3dpdGNoKCRuYW1lKSB7CiAgICAgICAgIGNhc2UgInRhZ3Mi
IHsKLSAgICAgICAgICAgIHBhcnNlUGFyYW1ldGVycyhcJXskZG9jdW1lbnR7J2F0dHJpYid9fSk7
CisgICAgICAgICAgICBwYXJzZVBhcmFtZXRlcnMoXCV7JGRvY3VtZW50eydhdHRyaWInfX0sICRu
YW1lKTsKICAgICAgICAgICAgIHBhcnNlVGFncyhcQHskZG9jdW1lbnR7J2NvbnRlbnQnfX0pOwog
ICAgICAgICB9CiAgICAgICAgIGNhc2UgImF0dHJzIiB7Ci0gICAgICAgICAgICBwYXJzZVBhcmFt
ZXRlcnMoXCV7JGRvY3VtZW50eydhdHRyaWInfX0pOworICAgICAgICAgICAgcGFyc2VQYXJhbWV0
ZXJzKFwleyRkb2N1bWVudHsnYXR0cmliJ319LCAkbmFtZSk7CiAgICAgICAgICAgICBwYXJzZUF0
dHJzKFxAeyRkb2N1bWVudHsnY29udGVudCd9fSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICBkaWUgIkRvIG5vdCBrbm93IGhvdyB0byBwYXJzZSBmaWxlIHN0YXJ0aW5nIHdpdGggJG5h
bWUhXG4iOwpAQCAtMjI5LDcgKzIzNCw3IEBACiAgICAgbXkgKCRGLCAkbmFtZXNSZWYpID0gQF87
CiAgICAgbXkgJW5hbWVzID0gJSRuYW1lc1JlZjsKIAotICAgIHByaW50IEYgIiNpZiAkZ3VhcmRG
YWN0b3J5V2l0aFxuIiBpZiAkZ3VhcmRGYWN0b3J5V2l0aDsKKyAgICBwcmludCBGICIjaWYgJHBh
cmFtZXRlcnN7J2d1YXJkRmFjdG9yeVdpdGgnfVxuIiBpZiAkcGFyYW1ldGVyc3snZ3VhcmRGYWN0
b3J5V2l0aCd9OwogICAgIGZvciBteSAkbmFtZSAoc29ydCBrZXlzICVuYW1lcykgewogICAgICAg
ICBteSAkdWNOYW1lID0gJG5hbWVzeyRuYW1lfXsidXBwZXJDYXNlIn07CiAKQEAgLTIzOCw3ICsy
NDMsNyBAQAogICAgICAgICBwcmludCBGICIgICAgcmV0dXJuIG5ldyAkcGFyYW1ldGVyc3snbmFt
ZXNwYWNlJ30ke3VjTmFtZX1FbGVtZW50KCR7bmFtZX1UYWcsIGRvYyk7XG4iOwogICAgICAgICBw
cmludCBGICJ9XG5cbiI7CiAgICAgfQotICAgIHByaW50IEYgIiNlbmRpZlxuIiBpZiAkZ3VhcmRG
YWN0b3J5V2l0aDsKKyAgICBwcmludCBGICIjZW5kaWZcbiIgaWYgJHBhcmFtZXRlcnN7J2d1YXJk
RmFjdG9yeVdpdGgnfTsKIH0KIAogc3ViIHByaW50RnVuY3Rpb25Jbml0cwpAQCAtNDI1LDExICs0
MzAsMTEgQEAKICAgICBwcmludChGICIgICAgLy8gTmFtZXNwYWNlXG4iKTsKICAgICBwcmludChG
ICIgICAgbmV3ICgodm9pZCopJiR7bG93ZXJOYW1lc3BhY2V9TmFtZXNwYWNlVVJJKSBBdG9taWNT
dHJpbmcoJHtsb3dlck5hbWVzcGFjZX1OUyk7XG5cbiIpOwogICAgIGlmIChrZXlzICV0YWdzKSB7
Ci0gICAgICAgIG15ICR0YWdzTmFtZXNwYWNlID0gJHRhZ3NOdWxsTmFtZXNwYWNlID8gIm51bGxB
dG9tIiA6ICIke2xvd2VyTmFtZXNwYWNlfU5TIjsKKyAgICAgICAgbXkgJHRhZ3NOYW1lc3BhY2Ug
PSAkcGFyYW1ldGVyc3sndGFnc051bGxOYW1lc3BhY2UnfSA/ICJudWxsQXRvbSIgOiAiJHtsb3dl
ck5hbWVzcGFjZX1OUyI7CiAgICAgICAgIHByaW50RGVmaW5pdGlvbnMoJEYsIFwldGFncywgInRh
Z3MiLCAkdGFnc05hbWVzcGFjZSk7CiAgICAgfQogICAgIGlmIChrZXlzICVhdHRycykgewotICAg
ICAgICBteSAkYXR0cnNOYW1lc3BhY2UgPSAkYXR0cnNOdWxsTmFtZXNwYWNlID8gIm51bGxBdG9t
IiA6ICIke2xvd2VyTmFtZXNwYWNlfU5TIjsKKyAgICAgICAgbXkgJGF0dHJzTmFtZXNwYWNlID0g
JHBhcmFtZXRlcnN7J2F0dHJzTnVsbE5hbWVzcGFjZSd9ID8gIm51bGxBdG9tIiA6ICIke2xvd2Vy
TmFtZXNwYWNlfU5TIjsKICAgICAgICAgcHJpbnREZWZpbml0aW9ucygkRiwgXCVhdHRycywgImF0
dHJpYnV0ZXMiLCAkYXR0cnNOYW1lc3BhY2UpOwogICAgIH0KIApAQCAtNTI5LDcgKzUzNCw3IEBA
CiAKIHByaW50Q29uc3RydWN0b3JzKCRGLCBcJXRhZ3MpOwogCi1wcmludCBGICIjaWYgJGd1YXJk
RmFjdG9yeVdpdGhcbiIgaWYgJGd1YXJkRmFjdG9yeVdpdGg7CitwcmludCBGICIjaWYgJHBhcmFt
ZXRlcnN7J2d1YXJkRmFjdG9yeVdpdGgnfVxuIiBpZiAkcGFyYW1ldGVyc3snZ3VhcmRGYWN0b3J5
V2l0aCd9OwogCiBwcmludCBGIDw8RU5ECiBzdGF0aWMgaW5saW5lIHZvaWQgY3JlYXRlRnVuY3Rp
b25NYXBJZk5lY2Vzc2FyeSgpCkBAIC01NDYsNyArNTUxLDcgQEAKIHByaW50RnVuY3Rpb25Jbml0
cygkRiwgXCV0YWdzKTsKIAogcHJpbnQgRiAifVxuIjsKLXByaW50IEYgIiNlbmRpZlxuXG4iIGlm
ICRndWFyZEZhY3RvcnlXaXRoOworcHJpbnQgRiAiI2VuZGlmXG5cbiIgaWYgJHBhcmFtZXRlcnN7
J2d1YXJkRmFjdG9yeVdpdGgnfTsKIAogcHJpbnQgRiA8PEVORAogJHBhcmFtZXRlcnN7J25hbWVz
cGFjZSd9RWxlbWVudCogJHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9RWxlbWVudEZhY3Rvcnk6OmNy
ZWF0ZSRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
cU5hbWUsIERvY3VtZW50KiBkb2MsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQpAQCAtNTU0LDcgKzU1
OSw3IEBACiBFTkQKIDsKIAotcHJpbnQgRiAiI2lmICRndWFyZEZhY3RvcnlXaXRoXG4iIGlmICRn
dWFyZEZhY3RvcnlXaXRoOworcHJpbnQgRiAiI2lmICRwYXJhbWV0ZXJzeydndWFyZEZhY3RvcnlX
aXRoJ31cbiIgaWYgJHBhcmFtZXRlcnN7J2d1YXJkRmFjdG9yeVdpdGgnfTsKIAogcHJpbnQgRiA8
PEVORAogICAgIC8vIERvbid0IG1ha2UgZWxlbWVudHMgd2l0aG91dCBhIGRvY3VtZW50CkBAIC01
NzYsNyArNTgxLDcgQEAKIEVORAogOwogCi1pZiAoJGd1YXJkRmFjdG9yeVdpdGgpIHsKK2lmICgk
cGFyYW1ldGVyc3snZ3VhcmRGYWN0b3J5V2l0aCd9KSB7CiAKIHByaW50IEYgPDxFTkQKICNlbHNl
CkBAIC03NTMsNyArNzU4LDcgQEAKIAogICAgIHByaW50IEYgIiNpbmNsdWRlIFwiY29uZmlnLmhc
IlxuXG4iOwogCi0gICAgcHJpbnQgRiAiI2lmICRndWFyZEZhY3RvcnlXaXRoXG5cbiIgaWYgJGd1
YXJkRmFjdG9yeVdpdGg7CisgICAgcHJpbnQgRiAiI2lmICRwYXJhbWV0ZXJzeydndWFyZEZhY3Rv
cnlXaXRoJ31cblxuIiBpZiAkcGFyYW1ldGVyc3snZ3VhcmRGYWN0b3J5V2l0aCd9OwogCiAgICAg
cHJpbnQgRiAiI2luY2x1ZGUgXCJKUyRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfUVsZW1lbnRXcmFw
cGVyRmFjdG9yeS5oXCJcbiI7CiAKQEAgLTgxNiw3ICs4MjEsNyBAQAogRU5ECiA7CiAKLSAgICBw
cmludCBGICIjZW5kaWZcbiIgaWYgJGd1YXJkRmFjdG9yeVdpdGg7CisgICAgcHJpbnQgRiAiI2Vu
ZGlmXG4iIGlmICRwYXJhbWV0ZXJzeydndWFyZEZhY3RvcnlXaXRoJ307CiAKICAgICBjbG9zZSBG
OwogfQpAQCAtODMyLDcgKzgzNyw3IEBACiAgICAgcHJpbnQgRiAiI2lmbmRlZiBKUyRwYXJhbWV0
ZXJzeyduYW1lc3BhY2UnfUVsZW1lbnRXcmFwcGVyRmFjdG9yeV9oXG4iOwogICAgIHByaW50IEYg
IiNkZWZpbmUgSlMkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ31FbGVtZW50V3JhcHBlckZhY3Rvcnlf
aFxuXG4iOwogCi0gICAgcHJpbnQgRiAiI2lmICR7Z3VhcmRGYWN0b3J5V2l0aH1cbiIgaWYgJGd1
YXJkRmFjdG9yeVdpdGg7CisgICAgcHJpbnQgRiAiI2lmICRwYXJhbWV0ZXJzeydndWFyZEZhY3Rv
cnlXaXRoJ31cbiIgaWYgJHBhcmFtZXRlcnN7J2d1YXJkRmFjdG9yeVdpdGgnfTsKIAogICAgIHBy
aW50IEYgPDxFTkQKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtODUzLDcgKzg1OCw3IEBA
CiBFTkQKIDsKIAotICAgIHByaW50IEYgIiNlbmRpZiAvLyAkZ3VhcmRGYWN0b3J5V2l0aFxuXG4i
IGlmICRndWFyZEZhY3RvcnlXaXRoOworICAgIHByaW50IEYgIiNlbmRpZiAvLyAkcGFyYW1ldGVy
c3snZ3VhcmRGYWN0b3J5V2l0aCd9XG5cbiIgaWYgJHBhcmFtZXRlcnN7J2d1YXJkRmFjdG9yeVdp
dGgnfTsKIAogICAgIHByaW50IEYgIiNlbmRpZiAvLyBKUyRwYXJhbWV0ZXJzeyduYW1lc3BhY2Un
fUVsZW1lbnRXcmFwcGVyRmFjdG9yeV9oXG4iOwogCkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMzQ0NjgpCisrKyBXZWJD
b3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDA4LTA2LTA5
ICBKdWxpZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhcnQgb2YgYnVnIDE5MjAwOiAq
LmluIGZpbGVzIHNob3VsZCBlbWJlZCBtb3JlIGluZm9ybWF0aW9uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTIwMAorCisgICAgICAgIE1vdmUgbW9y
ZSBwYXJhbWV0ZXJzIHRvIHRoZSBYTUwgZmlsZXMuCisKKyAgICAgICAgKiBkb20vbWFrZV9uYW1l
cy5wbDoKKyAgICAgICAgKiBodG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbjoKKyAgICAgICAgKiBo
dG1sL0hUTUxUYWdOYW1lcy5pbjoKKyAgICAgICAgKiBzdmcvc3ZnYXR0cnMuaW46CisgICAgICAg
ICogc3ZnL3N2Z3RhZ3MuaW46CisKIDIwMDgtMDYtMDcgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hh
ZmZyYWl4QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21612</attachid>
            <date>2008-06-10 17:24:05 -0700</date>
            <delta_ts>2008-06-11 11:58:38 -0700</delta_ts>
            <desc>Final patch - Move more parameters in the XML files - Clean up the build systems</desc>
            <filename>makeNamesXmlIn-final-CL.patch</filename>
            <type>text/plain</type>
            <size>21679</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQkocmV2aXNpb24gMzQ0ODMpCisrKyBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCSh3
b3JraW5nIGNvcHkpCkBAIC0yMTA1LDExICsyMTA1LDEwIEBACiAKIGlmIFNWR19GTEFHUwogRGVy
aXZlZFNvdXJjZXMvU1ZHRWxlbWVudEZhY3RvcnkuY3BwOiAkKFdlYkNvcmUpL2RvbS9tYWtlX25h
bWVzLnBsICQoV2ViQ29yZSkvc3ZnL3N2Z3RhZ3MuaW4gJChXZWJDb3JlKS9zdmcvc3ZnYXR0cnMu
aW4KLQkkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tdGFncyAkKFdl
YkNvcmUpL3N2Zy9zdmd0YWdzLmluIC0tYXR0cnMgJChXZWJDb3JlKS9zdmcvc3ZnYXR0cnMuaW4g
LS1leHRyYURlZmluZXMgIiQoU1ZHX0ZFQVRVUkVTKSIgXAotCS0tbmFtZXNwYWNlIFNWRyAtLWd1
YXJkRmFjdG9yeVdpdGggIkVOQUJMRShTVkcpIiAtLWNwcE5hbWVzcGFjZSBXZWJDb3JlIC0tbmFt
ZXNwYWNlVVJJICJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgLS1mYWN0b3J5IC0td3JhcHBl
ckZhY3RvcnkgLS1hdHRyc051bGxOYW1lc3BhY2UgLS1vdXRwdXQgJChHRU5TT1VSQ0VTKQorCSQo
UEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS10YWdzICQoV2ViQ29yZSkv
c3ZnL3N2Z3RhZ3MuaW4gLS1hdHRycyAkKFdlYkNvcmUpL3N2Zy9zdmdhdHRycy5pbiAtLWV4dHJh
RGVmaW5lcyAiJChTVkdfRkVBVFVSRVMpIiAtLW91dHB1dCAkKEdFTlNPVVJDRVMpCiBlbHNlCiBE
ZXJpdmVkU291cmNlcy9TVkdFbGVtZW50RmFjdG9yeS5jcHA6ICQoV2ViQ29yZSkvZG9tL21ha2Vf
bmFtZXMucGwgJChXZWJDb3JlKS9zdmcvc3ZndGFncy5pbiAkKFdlYkNvcmUpL3N2Zy9zdmdhdHRy
cy5pbgotCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS10YWdzICQo
V2ViQ29yZSkvc3ZnL3N2Z3RhZ3MuaW4gLS1hdHRycyAkKFdlYkNvcmUpL3N2Zy9zdmdhdHRycy5p
biAtLW5hbWVzcGFjZSBTVkcgLS1ndWFyZEZhY3RvcnlXaXRoICJFTkFCTEUoU1ZHKSIgLS1jcHBO
YW1lc3BhY2UgV2ViQ29yZSAtLW5hbWVzcGFjZVVSSSAiaHR0cDovL3d3dy53My5vcmcvMjAwMC9z
dmciIC0tZmFjdG9yeSAtLXdyYXBwZXJGYWN0b3J5IC0tYXR0cnNOdWxsTmFtZXNwYWNlIC0tb3V0
cHV0ICQoR0VOU09VUkNFUykKKyAJJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0
cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9zdmcvc3ZndGFncy5pbiAtLWF0dHJzICQoV2ViQ29yZSkv
c3ZnL3N2Z2F0dHJzLmluIC0tb3V0cHV0ICQoR0VOU09VUkNFUykKIAogZW5kaWYgIyBTVkdfRkxB
R1MKIApAQCAtMjExOCw3ICsyMTE3LDcgQEAKIERlcml2ZWRTb3VyY2VzL1hMaW5rTmFtZXMuaDog
RGVyaXZlZFNvdXJjZXMvWExpbmtOYW1lcy5jcHA7CiAKIERlcml2ZWRTb3VyY2VzL1hMaW5rTmFt
ZXMuY3BwIDogJChXZWJDb3JlKS9kb20vbWFrZV9uYW1lcy5wbCAkKFdlYkNvcmUpL3N2Zy94bGlu
a2F0dHJzLmluCi0JJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLWF0
dHJzICQoV2ViQ29yZSkvc3ZnL3hsaW5rYXR0cnMuaW4gLS1uYW1lc3BhY2UgWExpbmsgLS1jcHBO
YW1lc3BhY2UgV2ViQ29yZSAtLW5hbWVzcGFjZVVSSSAiaHR0cDovL3d3dy53My5vcmcvMTk5OS94
bGluayIgLS1vdXRwdXQgJChHRU5TT1VSQ0VTKQorCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRp
bmdzL3NjcmlwdHMgJDwgLS1hdHRycyAkKFdlYkNvcmUpL3N2Zy94bGlua2F0dHJzLmluIC0tb3V0
cHV0ICQoR0VOU09VUkNFUykKIAogZW5kaWYgIyBFTkQgRU5BQkxFX1NWRwogCkBAIC0yMTk4LDE2
ICsyMTk3LDE2IEBACiAKIGlmIEhUTUxfRkxBR1MKIERlcml2ZWRTb3VyY2VzL0hUTUxOYW1lcy5j
cHA6ICQoV2ViQ29yZSkvZG9tL21ha2VfbmFtZXMucGwgJChXZWJDb3JlKS9odG1sL0hUTUxUYWdO
YW1lcy5pbiAkKFdlYkNvcmUpL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCi0JJChQRVJMKSAt
SSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9odG1sL0hU
TUxUYWdOYW1lcy5pbiAtLWF0dHJzICQoV2ViQ29yZSkvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMu
aW4gLS1leHRyYURlZmluZXMgIiQoSFRNTF9GRUFUVVJFUykiIC0tbmFtZXNwYWNlIEhUTUwgLS1u
YW1lc3BhY2VQcmVmaXggeGh0bWwgLS1jcHBOYW1lc3BhY2UgV2ViQ29yZSAtLW5hbWVzcGFjZVVS
SSAiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgLS13cmFwcGVyRmFjdG9yeSAtLWF0dHJz
TnVsbE5hbWVzcGFjZSAtLW91dHB1dCAkKEdFTlNPVVJDRVMpCisJJChQRVJMKSAtSSQoV2ViQ29y
ZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9odG1sL0hUTUxUYWdOYW1l
cy5pbiAtLWF0dHJzICQoV2ViQ29yZSkvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4gLS1leHRy
YURlZmluZXMgIiQoSFRNTF9GRUFUVVJFUykiIC0tb3V0cHV0ICQoR0VOU09VUkNFUykKIGVsc2UK
IERlcml2ZWRTb3VyY2VzL0hUTUxOYW1lcy5jcHA6ICQoV2ViQ29yZSkvZG9tL21ha2VfbmFtZXMu
cGwgJChXZWJDb3JlKS9odG1sL0hUTUxUYWdOYW1lcy5pbiAkKFdlYkNvcmUpL2h0bWwvSFRNTEF0
dHJpYnV0ZU5hbWVzLmluCi0JJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAk
PCAtLXRhZ3MgJChXZWJDb3JlKS9odG1sL0hUTUxUYWdOYW1lcy5pbiAtLWF0dHJzICQoV2ViQ29y
ZSkvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4gLS1uYW1lc3BhY2UgSFRNTCAtLW5hbWVzcGFj
ZVByZWZpeCB4aHRtbCAtLWNwcE5hbWVzcGFjZSBXZWJDb3JlIC0tbmFtZXNwYWNlVVJJICJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiAtLXdyYXBwZXJGYWN0b3J5IC0tYXR0cnNOdWxsTmFt
ZXNwYWNlIC0tb3V0cHV0ICQoR0VOU09VUkNFUykKKwkkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5k
aW5ncy9zY3JpcHRzICQ8IC0tdGFncyAkKFdlYkNvcmUpL2h0bWwvSFRNTFRhZ05hbWVzLmluIC0t
YXR0cnMgJChXZWJDb3JlKS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbiAtLW91dHB1dCAkKEdF
TlNPVVJDRVMpCiBlbmRpZiAjIEhUTUxfRkxBR1MKIAogRGVyaXZlZFNvdXJjZXMvWE1MTmFtZXMu
aDogRGVyaXZlZFNvdXJjZXMvWE1MTmFtZXMuY3BwOwogCiBEZXJpdmVkU291cmNlcy9YTUxOYW1l
cy5jcHA6ICQoV2ViQ29yZSkvZG9tL21ha2VfbmFtZXMucGwgJChXZWJDb3JlKS94bWwveG1sYXR0
cnMuaW4KLQkkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tYXR0cnMg
JChXZWJDb3JlKS94bWwveG1sYXR0cnMuaW4gLS1uYW1lc3BhY2UgWE1MIC0tY3BwTmFtZXNwYWNl
IFdlYkNvcmUgLS1uYW1lc3BhY2VVUkkgImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVz
cGFjZSIgLS1vdXRwdXQgJChHRU5TT1VSQ0VTKQorCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRp
bmdzL3NjcmlwdHMgJDwgLS1hdHRycyAkKFdlYkNvcmUpL3htbC94bWxhdHRycy5pbiAtLW91dHB1
dCAkKEdFTlNPVVJDRVMpCiAKIHZwYXRoICUuaWRsID0gXAogICAgICQoV2ViQ29yZSkgXApJbmRl
eDogV2ViQ29yZS9zdmcvc3ZndGFncy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9zdmd0
YWdzLmluCShyZXZpc2lvbiAzNDQ4NCkKKysrIFdlYkNvcmUvc3ZnL3N2Z3RhZ3MuaW4JKHdvcmtp
bmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAKICNpZmRlZiBFTkFCTEVfU1ZHX0FOSU1BVElPTgog
PGFuaW1hdGUvPgogPGFuaW1hdGVDb2xvci8+Ci08YW5pbWF0ZU1vdGlvbi8+Cis8YW5pbWF0ZU1v
dGlvbiBub1dyYXBwZXI9JzEnLz4KIDxhbmltYXRlVHJhbnNmb3JtLz4KIDxzZXQvPgogI2VuZGlm
CkBAIC03Niw3ICs3Niw3IEBACiA8Z2x5cGhSZWYvPgogI2VuZGlmCiAjaWZkZWYgRU5BQkxFX1NW
R19GT05UUwotPGhrZXJuIHVwcGVyQ2FzZT0iSEtlcm4iLz4KKzxoa2VybiB1cHBlckNhc2U9IkhL
ZXJuIiBub1dyYXBwZXI9JzEnLz4KICNlbmRpZgogPGltYWdlLz4KIDxsaW5lLz4KQEAgLTg3LDcg
Kzg3LDcgQEAKICNpZmRlZiBFTkFCTEVfU1ZHX0ZPTlRTCiA8bWlzc2luZ19nbHlwaC8+CiAjZW5k
aWYKLTxtcGF0aCB1cHBlckNhc2U9Ik1QYXRoIi8+Cis8bXBhdGggdXBwZXJDYXNlPSJNUGF0aCIg
bm9XcmFwcGVyPScxJy8+CiA8cGF0aC8+CiA8cGF0dGVybi8+CiA8cG9seWdvbi8+CkluZGV4OiBX
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlCShyZXZpc2lvbiAzNDQ4MykKKysrIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQkod29ya2luZyBjb3B5KQpAQCAtNTA4LDIwICs1MDgsMTcgQEAKIGlmZGVmIEhUTUxfRkxB
R1MKIAogSFRNTE5hbWVzLmNwcCA6IGRvbS9tYWtlX25hbWVzLnBsIGh0bWwvSFRNTFRhZ05hbWVz
LmluIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCi0JcGVybCAtSSAkKFdlYkNvcmUpL2JpbmRp
bmdzL3NjcmlwdHMgJDwgLS10YWdzICQoV2ViQ29yZSkvaHRtbC9IVE1MVGFnTmFtZXMuaW4gLS1h
dHRycyAkKFdlYkNvcmUpL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluIC0tZXh0cmFEZWZpbmVz
ICIkKEhUTUxfRkxBR1MpIiBcCi0gICAgICAgICAgICAtLW5hbWVzcGFjZSBIVE1MIC0tbmFtZXNw
YWNlUHJlZml4IHhodG1sIC0tY3BwTmFtZXNwYWNlIFdlYkNvcmUgLS1uYW1lc3BhY2VVUkkgImh0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIC0td3JhcHBlckZhY3RvcnkgLS1hdHRyc051bGxO
YW1lc3BhY2UgLS1vdXRwdXQgLgorCXBlcmwgLUkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRz
ICQ8IC0tdGFncyAkKFdlYkNvcmUpL2h0bWwvSFRNTFRhZ05hbWVzLmluIC0tYXR0cnMgJChXZWJD
b3JlKS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbiAtLWV4dHJhRGVmaW5lcyAiJChIVE1MX0ZM
QUdTKSIgLS1vdXRwdXQgLgogCiBlbHNlCiAKIEhUTUxOYW1lcy5jcHAgOiBkb20vbWFrZV9uYW1l
cy5wbCBodG1sL0hUTUxUYWdOYW1lcy5pbiBodG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgotCXBl
cmwgLUkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tdGFncyAkKFdlYkNvcmUpL2h0
bWwvSFRNTFRhZ05hbWVzLmluIC0tYXR0cnMgJChXZWJDb3JlKS9odG1sL0hUTUxBdHRyaWJ1dGVO
YW1lcy5pbiBcCi0gICAgICAgICAgICAtLW5hbWVzcGFjZSBIVE1MIC0tbmFtZXNwYWNlUHJlZml4
IHhodG1sIC0tY3BwTmFtZXNwYWNlIFdlYkNvcmUgLS1uYW1lc3BhY2VVUkkgImh0dHA6Ly93d3cu
dzMub3JnLzE5OTkveGh0bWwiIC0td3JhcHBlckZhY3RvcnkgLS1hdHRyc051bGxOYW1lc3BhY2Ug
LS1vdXRwdXQgLgorCXBlcmwgLUkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tdGFn
cyAkKFdlYkNvcmUpL2h0bWwvSFRNTFRhZ05hbWVzLmluIC0tYXR0cnMgJChXZWJDb3JlKS9odG1s
L0hUTUxBdHRyaWJ1dGVOYW1lcy5pbiAtLW91dHB1dCAuCiAKIGVuZGlmCiAKIFhNTE5hbWVzLmNw
cCA6IGRvbS9tYWtlX25hbWVzLnBsIHhtbC94bWxhdHRycy5pbgotCXBlcmwgLUkgJChXZWJDb3Jl
KS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tYXR0cnMgJChXZWJDb3JlKS94bWwveG1sYXR0cnMuaW4g
XAotICAgICAgICAgICAgLS1uYW1lc3BhY2UgWE1MIC0tY3BwTmFtZXNwYWNlIFdlYkNvcmUgLS1u
YW1lc3BhY2VVUkkgImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIgLS1vdXRw
dXQgLgorCXBlcmwgLUkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tYXR0cnMgJChX
ZWJDb3JlKS94bWwveG1sYXR0cnMuaW4gIC0tb3V0cHV0IC4KIAogIyAtLS0tLS0tLQogCkBAIC01
NjEsMTkgKzU1OCwxNyBAQAogaWZkZWYgU1ZHX0ZMQUdTCiAKIFNWR0VsZW1lbnRGYWN0b3J5LmNw
cCBTVkdOYW1lcy5jcHAgOiBkb20vbWFrZV9uYW1lcy5wbCBzdmcvc3ZndGFncy5pbiBzdmcvc3Zn
YXR0cnMuaW4KLQlwZXJsIC1JICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3Mg
JChXZWJDb3JlKS9zdmcvc3ZndGFncy5pbiAtLWF0dHJzICQoV2ViQ29yZSkvc3ZnL3N2Z2F0dHJz
LmluIC0tZXh0cmFEZWZpbmVzICIkKFNWR19GTEFHUykiIFwKLSAgICAgICAgICAgIC0tbmFtZXNw
YWNlIFNWRyAtLWd1YXJkRmFjdG9yeVdpdGggIkVOQUJMRShTVkcpIiAtLWNwcE5hbWVzcGFjZSBX
ZWJDb3JlIC0tbmFtZXNwYWNlVVJJICJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgLS1mYWN0
b3J5IC0td3JhcHBlckZhY3RvcnkgLS1hdHRyc051bGxOYW1lc3BhY2UgLS1vdXRwdXQgLgorCXBl
cmwgLUkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tdGFncyAkKFdlYkNvcmUpL3N2
Zy9zdmd0YWdzLmluIC0tYXR0cnMgJChXZWJDb3JlKS9zdmcvc3ZnYXR0cnMuaW4gLS1leHRyYURl
ZmluZXMgIiQoU1ZHX0ZMQUdTKSIgLS1vdXRwdXQgLgorCiBlbHNlCiAKIFNWR0VsZW1lbnRGYWN0
b3J5LmNwcCBTVkdOYW1lcy5jcHAgOiBkb20vbWFrZV9uYW1lcy5wbCBzdmcvc3ZndGFncy5pbiBz
dmcvc3ZnYXR0cnMuaW4KLQlwZXJsIC1JICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAt
LXRhZ3MgJChXZWJDb3JlKS9zdmcvc3ZndGFncy5pbiAtLWF0dHJzICQoV2ViQ29yZSkvc3ZnL3N2
Z2F0dHJzLmluIFwKLSAgICAgICAgICAgIC0tbmFtZXNwYWNlIFNWRyAtLWd1YXJkRmFjdG9yeVdp
dGggIkVOQUJMRShTVkcpIiAtLWNwcE5hbWVzcGFjZSBXZWJDb3JlIC0tbmFtZXNwYWNlVVJJICJo
dHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgLS1mYWN0b3J5IC0td3JhcHBlckZhY3RvcnkgLS1h
dHRyc051bGxOYW1lc3BhY2UgLS1vdXRwdXQgLgorCXBlcmwgLUkgJChXZWJDb3JlKS9iaW5kaW5n
cy9zY3JpcHRzICQ8IC0tdGFncyAkKFdlYkNvcmUpL3N2Zy9zdmd0YWdzLmluIC0tYXR0cnMgJChX
ZWJDb3JlKS9zdmcvc3ZnYXR0cnMuaW4gLS1vdXRwdXQgLgogCiBlbmRpZgogCiBYTGlua05hbWVz
LmNwcCA6IGRvbS9tYWtlX25hbWVzLnBsIHN2Zy94bGlua2F0dHJzLmluCi0JcGVybCAtSSAkKFdl
YkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS1hdHRycyAkKFdlYkNvcmUpL3N2Zy94bGlua2F0
dHJzLmluIFwKLSAgICAgICAgICAgIC0tbmFtZXNwYWNlIFhMaW5rIC0tY3BwTmFtZXNwYWNlIFdl
YkNvcmUgLS1uYW1lc3BhY2VVUkkgImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIC0tb3V0
cHV0IC4KKwlwZXJsIC1JICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLWF0dHJzICQo
V2ViQ29yZSkvc3ZnL3hsaW5rYXR0cnMuaW4gLS1vdXRwdXQgLgogCiBlbHNlCiAKSW5kZXg6IFdl
YkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hU
TUxUYWdOYW1lcy5pbgkocmV2aXNpb24gMzQ0ODQpCisrKyBXZWJDb3JlL2h0bWwvSFRNTFRhZ05h
bWVzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM3ICsxLDM3IEBACiA8dGFncyBuYW1lc3BhY2U9
IkhUTUwiIG5hbWVzcGFjZVByZWZpeD0ieGh0bWwiIGNwcE5hbWVzcGFjZT0iV2ViQ29yZSIgbmFt
ZXNwYWNlVVJJPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBnZW5lcmF0ZUZhY3Rvcnk9
IjEiIGdlbmVyYXRlV3JhcHBlckZhY3Rvcnk9IjEiPgogPGEgdXBwZXJDYXNlPSJBbmNob3IiLz4K
LTxhYmJyLz4KLTxhY3JvbnltLz4KLTxhZGRyZXNzLz4KKzxhYmJyIG5vV3JhcHBlcj0iMSIvPgor
PGFjcm9ueW0gbm9XcmFwcGVyPSIxIi8+Cis8YWRkcmVzcyBub1dyYXBwZXI9IjEiLz4KIDxhcHBs
ZXQvPgogPGFyZWEvPgogI2lmIEVOQUJMRV9WSURFTwogPGF1ZGlvIGFwcGx5QXVkaW9IYWNrPSIx
Ii8+CiAjZW5kaWYKLTxiLz4KKzxiIG5vV3JhcHBlcj0iMSIvPgogPGJhc2UvPgogPGJhc2Vmb250
IHVwcGVyQ2FzZT0iQmFzZUZvbnQiLz4KLTxiZG8vPgotPGJpZy8+Cis8YmRvIG5vV3JhcHBlcj0i
MSIvPgorPGJpZyBub1dyYXBwZXI9IjEiLz4KIDxibG9ja3F1b3RlLz4KIDxib2R5Lz4KIDxiciB1
cHBlckNhc2U9IkJSIi8+CiA8YnV0dG9uLz4KIDxjYW52YXMvPgogPGNhcHRpb24gdXBwZXJDYXNl
PSJUYWJsZUNhcHRpb24iLz4KLTxjZW50ZXIvPgotPGNpdGUvPgotPGNvZGUvPgorPGNlbnRlciBu
b1dyYXBwZXI9IjEiLz4KKzxjaXRlIG5vV3JhcHBlcj0iMSIvPgorPGNvZGUgbm9XcmFwcGVyPSIx
Ii8+CiA8Y29sIHVwcGVyQ2FzZT0iVGFibGVDb2wiLz4KLTxjb2xncm91cC8+Ci08ZGQvPgorPGNv
bGdyb3VwIGN1c3RvbVdyYXBwZXI9ImNvbCIvPgorPGRkIG5vV3JhcHBlcj0iMSIvPgogPGRlbCB1
cHBlckNhc2U9Ik1vZCIvPgotPGRmbi8+Cis8ZGZuIG5vV3JhcHBlcj0iMSIvPgogPGRpciB1cHBl
ckNhc2U9IkRpcmVjdG9yeSIvPgogPGRpdi8+CiA8ZGwgdXBwZXJDYXNlPSJETGlzdCIvPgotPGR0
Lz4KLTxlbS8+Cis8ZHQgbm9XcmFwcGVyPSIxIi8+Cis8ZW0gbm9XcmFwcGVyPSIxIi8+CiA8ZW1i
ZWQvPgogPGZpZWxkc2V0IHVwcGVyQ2FzZT0iRmllbGRTZXQiLz4KIDxmb250Lz4KQEAgLTQwLDc2
ICs0MCw3NiBAQAogPGZyYW1lc2V0IHVwcGVyQ2FzZT0iRnJhbWVTZXQiLz4KIDxoZWFkLz4KIDxo
MSB1cHBlckNhc2U9IkhlYWRpbmciLz4KLTxoMi8+Ci08aDMvPgotPGg0Lz4KLTxoNS8+Ci08aDYv
PgorPGgyIGN1c3RvbVdyYXBwZXI9ImgxIi8+Cis8aDMgY3VzdG9tV3JhcHBlcj0iaDEiLz4KKzxo
NCBjdXN0b21XcmFwcGVyPSJoMSIvPgorPGg1IGN1c3RvbVdyYXBwZXI9ImgxIi8+Cis8aDYgY3Vz
dG9tV3JhcHBlcj0iaDEiLz4KIDxociB1cHBlckNhc2U9IkhSIi8+CiA8aHRtbC8+Ci08aS8+Cis8
aSBub1dyYXBwZXI9IjEiLz4KIDxpZnJhbWUgdXBwZXJDYXNlPSJJRnJhbWUiLz4KLTxpbWFnZS8+
Cis8aW1hZ2UgY3VzdG9tV3JhcHBlcj0iaW1nIi8+CiA8aW1nIHVwcGVyQ2FzZT0iSW1hZ2UiLz4K
IDxpbnB1dC8+Ci08aW5zLz4KKzxpbnMgY3VzdG9tV3JhcHBlcj0iZGVsIi8+CiA8aXNpbmRleCB1
cHBlckNhc2U9IklzSW5kZXgiLz4KLTxrYmQvPgotPGtleWdlbi8+Cis8a2JkIG5vV3JhcHBlcj0i
MSIvPgorPGtleWdlbiBjdXN0b21XcmFwcGVyPSJzZWxlY3QiLz4KIDxsYWJlbC8+Ci08bGF5ZXIv
PgorPGxheWVyIG5vV3JhcHBlcj0iMSIvPgogPGxlZ2VuZC8+CiA8bGkgdXBwZXJDYXNlPSJMSSIv
PgogPGxpbmsvPgotPGxpc3RpbmcvPgorPGxpc3RpbmcgY3VzdG9tV3JhcHBlcj0icHJlIi8+CiA8
bWFwLz4KIDxtYXJxdWVlLz4KIDxtZW51Lz4KIDxtZXRhLz4KLTxub2JyLz4KLTxub2VtYmVkLz4K
LTxub2ZyYW1lcy8+Ci08bm9sYXllci8+Ci08bm9zY3JpcHQvPgorPG5vYnIgbm9XcmFwcGVyPSIx
Ii8+Cis8bm9lbWJlZCBub1dyYXBwZXI9IjEiLz4KKzxub2ZyYW1lcyBub1dyYXBwZXI9IjEiLz4K
Kzxub2xheWVyIG5vV3JhcHBlcj0iMSIvPgorPG5vc2NyaXB0IG5vV3JhcHBlcj0iMSIvPgogPG9i
amVjdC8+CiA8b2wgdXBwZXJDYXNlPSJPTGlzdCIvPgogPG9wdGdyb3VwIHVwcGVyQ2FzZT0iT3B0
R3JvdXAiLz4KIDxvcHRpb24vPgogPHAgdXBwZXJDYXNlPSJQYXJhZ3JhcGgiLz4KIDxwYXJhbS8+
Ci08cGxhaW50ZXh0Lz4KKzxwbGFpbnRleHQgbm9XcmFwcGVyPSIxIi8+CiA8cHJlLz4KIDxxIHVw
cGVyQ2FzZT0iUXVvdGUiLz4KLTxzLz4KLTxzYW1wLz4KKzxzIG5vV3JhcHBlcj0iMSIvPgorPHNh
bXAgbm9XcmFwcGVyPSIxIi8+CiA8c2NyaXB0Lz4KIDxzZWxlY3QvPgotPHNtYWxsLz4KKzxzbWFs
bCBub1dyYXBwZXI9IjEiLz4KICNpZiBFTkFCTEVfVklERU8KIDxzb3VyY2UgYXBwbHlBdWRpb0hh
Y2s9IjEiLz4KICNlbmRpZgotPHNwYW4vPgotPHN0cmlrZS8+Ci08c3Ryb25nLz4KKzxzcGFuIG5v
V3JhcHBlcj0iMSIvPgorPHN0cmlrZSBub1dyYXBwZXI9IjEiLz4KKzxzdHJvbmcgbm9XcmFwcGVy
PSIxIi8+CiA8c3R5bGUvPgotPHN1Yi8+Ci08c3VwLz4KKzxzdWIgbm9XcmFwcGVyPSIxIi8+Cis8
c3VwIG5vV3JhcHBlcj0iMSIvPgogPHRhYmxlLz4KIDx0Ym9keSB1cHBlckNhc2U9IlRhYmxlU2Vj
dGlvbiIvPgogPHRkIHVwcGVyQ2FzZT0iVGFibGVDZWxsIi8+CiA8dGV4dGFyZWEgdXBwZXJDYXNl
PSJUZXh0QXJlYSIvPgotPHRmb290Lz4KLTx0aC8+Ci08dGhlYWQvPgorPHRmb290IGN1c3RvbVdy
YXBwZXI9InRib2R5Ii8+Cis8dGggY3VzdG9tV3JhcHBlcj0idGQiLz4KKzx0aGVhZCBjdXN0b21X
cmFwcGVyPSJ0Ym9keSIvPgogPHRpdGxlLz4KIDx0ciB1cHBlckNhc2U9IlRhYmxlUm93Ii8+Ci08
dHQvPgotPHUvPgorPHR0IG5vV3JhcHBlcj0iMSIvPgorPHUgbm9XcmFwcGVyPSIxIi8+CiA8dWwg
dXBwZXJDYXNlPSJVTGlzdCIvPgotPHZhci8+Cis8dmFyIG5vV3JhcHBlcj0iMSIvPgogI2lmIEVO
QUJMRV9WSURFTwogPHZpZGVvIGFwcGx5QXVkaW9IYWNrPSIxIi8+CiAjZW5kaWYKLTx3YnIvPgot
PHhtcC8+Cis8d2JyIG5vV3JhcHBlcj0iMSIvPgorPHhtcCBjdXN0b21XcmFwcGVyPSJwcmUiLz4K
IDwvdGFncz4KSW5kZXg6IFdlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbAkocmV2aXNpb24gMzQ0ODQpCisrKyBXZWJDb3JlL2Rv
bS9tYWtlX25hbWVzLnBsCSh3b3JraW5nIGNvcHkpCkBAIC00Myw4ICs0Myw2IEBACiBteSAlcGFy
YW1ldGVycyA9ICgpOwogbXkgJGV4dHJhRGVmaW5lcyA9IDA7CiBteSAkcHJlcHJvY2Vzc29yID0g
Ii91c3IvYmluL2djYyAtRSAtUCAteCBjKysiOwotbXkgJXN2Z0N1c3RvbU1hcHBpbmdzID0gKCk7
Ci1teSAlaHRtbEN1c3RvbU1hcHBpbmdzID0gKCk7CiAKIEdldE9wdGlvbnMoJ3RhZ3M9cycgPT4g
XCR0YWdzRmlsZSwgCiAgICAgJ2F0dHJzPXMnID0+IFwkYXR0cnNGaWxlLApAQCAtODYsNyArODQs
OSBAQAogc3ViIGluaXRpYWxpemVUYWdQcm9wZXJ0eUhhc2gKIHsKICAgICByZXR1cm4gKCd1cHBl
ckNhc2UnID0+IHVwcGVyQ2FzZU5hbWUoJF9bMF0pLAotICAgICAgICAgICAgJ2FwcGx5QXVkaW9I
YWNrJyA9PiAwKTsKKyAgICAgICAgICAgICdhcHBseUF1ZGlvSGFjaycgPT4gMCwKKyAgICAgICAg
ICAgICdub1dyYXBwZXInID0+IDAsCisgICAgICAgICAgICAnY3VzdG9tV3JhcHBlcicgPT4gJycp
OwogfQogCiBzdWIgaW5pdGlhbGl6ZUF0dHJQcm9wZXJ0eUhhc2gKQEAgLTI1NCwyMyArMjU0LDE2
IEBACiAgICAgfQogfQogCi1zdWIgc3ZnQ2FwaXRhbGl6YXRpb25IYWNrcworc3ViIHVwcGVyQ2Fz
ZU5hbWUKIHsKICAgICBteSAkbmFtZSA9IHNoaWZ0OwogCi0gICAgaWYgKCRuYW1lID1+IC9eZmUo
LispJC8pIHsKKyAgICAjIFNWRyBGaWx0ZXIgc3BlY2lhbCBjYXNlLgorICAgIGlmICgkcGFyYW1l
dGVyc3sibmFtZXNwYWNlIn0gZXEgIlNWRyIgJiYgJG5hbWUgPX4gL15mZSguKykkLykgewogICAg
ICAgICAkbmFtZSA9ICJGRSIgLiB1Y2ZpcnN0ICQxOworICAgICAgICByZXR1cm4gJG5hbWU7CiAg
ICAgfQogCi0gICAgcmV0dXJuICRuYW1lOwotfQotCi1zdWIgdXBwZXJDYXNlTmFtZQotewotICAg
IG15ICRuYW1lID0gc2hpZnQ7Ci0gICAgCi0gICAgJG5hbWUgPSBzdmdDYXBpdGFsaXphdGlvbkhh
Y2tzKCRuYW1lKSBpZiAoJHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9IGVxICJTVkciKTsKLQogICAg
IHdoaWxlICgkbmFtZSA9fiAvXiguKj8pXyguKikvKSB7CiAgICAgICAgICRuYW1lID0gJDEgLiB1
Y2ZpcnN0ICQyOwogICAgIH0KQEAgLTQ0Nyw3ICs0NDAsNyBAQAogICAgIG15ICgkRiwgJG5hbWVz
UmVmKSA9IEBfOwogICAgIG15ICVuYW1lcyA9ICUkbmFtZXNSZWY7CiAgICAgZm9yIG15ICRuYW1l
IChzb3J0IGtleXMgJW5hbWVzKSB7Ci0gICAgICAgIG5leHQgaWYgKGhhc0N1c3RvbU1hcHBpbmco
JG5hbWUpKTsKKyAgICAgICAgbmV4dCBpZiBoYXNDdXN0b21XcmFwcGVyKCRuYW1lLCAkbmFtZXNS
ZWYpOwogCiAgICAgICAgIG15ICR1Y05hbWUgPSAkbmFtZXN7JG5hbWV9eyJ1cHBlckNhc2UifTsK
ICAgICAgICAgcHJpbnQgRiAiI2luY2x1ZGUgXCJKUyRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfSR7
dWNOYW1lfUVsZW1lbnQuaFwiXG4iOwpAQCAtNDU5LDcgKzQ1Miw3IEBACiAgICAgbXkgKCRGLCAk
bmFtZXNSZWYsICRzaG91bGRTa2lwQ3VzdG9tTWFwcGluZ3MpID0gQF87CiAgICAgbXkgJW5hbWVz
ID0gJSRuYW1lc1JlZjsKICAgICBmb3IgbXkgJG5hbWUgKHNvcnQga2V5cyAlbmFtZXMpIHsKLSAg
ICAgICAgbmV4dCBpZiAoJHNob3VsZFNraXBDdXN0b21NYXBwaW5ncyAmJiBoYXNDdXN0b21NYXBw
aW5nKCRuYW1lKSk7CisgICAgICAgIG5leHQgaWYgKCRzaG91bGRTa2lwQ3VzdG9tTWFwcGluZ3Mg
JiYgaGFzQ3VzdG9tV3JhcHBlcigkbmFtZSwgJG5hbWVzUmVmKSk7CiAKICAgICAgICAgbXkgJHVj
TmFtZSA9ICRuYW1lc3skbmFtZX17InVwcGVyQ2FzZSJ9OwogICAgICAgICBwcmludCBGICIjaW5j
bHVkZSBcIiRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfSR7dWNOYW1lfUVsZW1lbnQuaFwiXG4iOwpA
QCAtNjQ1LDcyICs2MzgsMTMgQEAKIAogIyMgV3JhcHBlciBGYWN0b3J5IHJvdXRpbmVzCiAKLXN1
YiBpbml0aWFsaXplQ3VzdG9tTWFwcGluZ3MKKyMgUmV0dXJuIDEgaWYgJ25vV3JhcHBlcicgb3Ig
J2N1c3RvbVdyYXBwZXInIGFyZSBzZXQgZm9yIHRoZSB0YWcgCisjIFJldHVybiAwIG90aGVyd2lz
ZS4KK3N1YiBoYXNDdXN0b21XcmFwcGVyCiB7Ci0gICAgaWYgKCFrZXlzICVzdmdDdXN0b21NYXBw
aW5ncykgewotICAgICAgICAjIFRoZXNlIGFyZSB1c2VkIHRvIG1hcCBhIHRhZyB0byBhbm90aGVy
IG9uZSBpbiBXcmFwcGVyRmFjdG9yeQotICAgICAgICAjIChmb3IgZXhhbXBsZSwgImgyIiBpcyBt
YXBwZWQgdG8gImgxIiBzbyB0aGF0IHRoZXkgdXNlIHRoZSBzYW1lIEpTIFdyYXBwZXIgKCJoMSIg
d3JhcHBlcikpCi0gICAgICAgICMgTWFwcGluZyB0byBhbiBlbXB0eSBzdHJpbmcgd2lsbCBub3Qg
Z2VuZXJhdGUgYSB3cmFwcGVyCi0gICAgICAgICVzdmdDdXN0b21NYXBwaW5ncyA9ICgnYW5pbWF0
ZU1vdGlvbicgPT4gJycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGtlcm4nID0+
ICcnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21wYXRoJyA9PiAnJyk7Ci0gICAg
ICAgICVodG1sQ3VzdG9tTWFwcGluZ3MgPSAoJ2FiYnInID0+ICcnLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICdhY3JvbnltJyA9PiAnJywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnYWRkcmVzcycgPT4gJycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
J2InID0+ICcnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiZG8nID0+ICcnLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiaWcnID0+ICcnLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICdjZW50ZXInID0+ICcnLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdjaXRlJyA9PiAnJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
Y29kZScgPT4gJycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbGdyb3VwJyA9
PiAnY29sJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGQnID0+ICcnLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZm4nID0+ICcnLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICdkdCcgPT4gJycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ2VtJyA9PiAnJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaDInID0+ICdo
MScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2gzJyA9PiAnaDEnLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICdoNCcgPT4gJ2gxJywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnaDUnID0+ICdoMScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ2g2JyA9PiAnaDEnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpJyA9PiAn
JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW1hZ2UnID0+ICdpbWcnLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbnMnID0+ICdkZWwnLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICdrYmQnID0+ICcnLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICdrZXlnZW4nID0+ICdzZWxlY3QnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICdsaXN0aW5nJyA9PiAncHJlJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
bGF5ZXInID0+ICcnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdub2JyJyA9PiAn
JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbm9lbWJlZCcgPT4gJycsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25vZnJhbWVzJyA9PiAnJywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnbm9sYXllcicgPT4gJycsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJ25vc2NyaXB0JyA9PiAnJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAncGxhaW50ZXh0JyA9PiAnJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
cycgPT4gJycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NhbXAnID0+ICcnLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzbWFsbCcgPT4gJycsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ3NwYW4nID0+ICcnLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdzdHJpa2UnID0+ICcnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICdzdHJvbmcnID0+ICcnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzdWInID0+
ICcnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzdXAnID0+ICcnLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICd0Zm9vdCcgPT4gJ3Rib2R5JywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAndGgnID0+ICd0ZCcsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ3RoZWFkJyA9PiAndGJvZHknLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICd0dCcgPT4gJycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3UnID0+ICcn
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2YXInID0+ICcnLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICd3YnInID0+ICcnLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICd4bXAnID0+ICdwcmUnKTsKLSAgICB9Ci19Ci0KLXN1YiBoYXNDdXN0b21NYXBw
aW5nCi17Ci0gICAgbXkgJG5hbWUgPSBzaGlmdDsKLSAgICBpbml0aWFsaXplQ3VzdG9tTWFwcGlu
Z3MoKTsKLSAgICByZXR1cm4gMSBpZiAkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ30gZXEgIkhUTUwi
ICYmIGV4aXN0cygkaHRtbEN1c3RvbU1hcHBpbmdzeyRuYW1lfSk7Ci0gICAgcmV0dXJuIDEgaWYg
JHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9IGVxICJTVkciICYmIGV4aXN0cygkc3ZnQ3VzdG9tTWFw
cGluZ3N7JG5hbWV9KTsKKyAgICBteSAoJG5hbWUsICRuYW1lc1JlZikgPSBAXzsKKyAgICBteSAl
bmFtZXMgPSAlJG5hbWVzUmVmOworICAgIHJldHVybiAxIGlmICgkbmFtZXN7JG5hbWV9eydub1dy
YXBwZXInfSB8fCAkbmFtZXN7JG5hbWV9eydjdXN0b21XcmFwcGVyJ30pOwogICAgIHJldHVybiAw
OwogfQogCkBAIC03MTksOCArNjUzLDcgQEAKICAgICBteSAoJEYsICRuYW1lc1JlZikgPSBAXzsK
ICAgICBteSAlbmFtZXMgPSAlJG5hbWVzUmVmOwogICAgIGZvciBteSAkbmFtZSAoc29ydCBrZXlz
ICVuYW1lcykgewotICAgICAgICAjIEN1c3RvbSBtYXBwaW5nIGRvIG5vdCBuZWVkIGEgSlMgd3Jh
cHBlcgotICAgICAgICBuZXh0IGlmIChoYXNDdXN0b21NYXBwaW5nKCRuYW1lKSk7CisgICAgICAg
IG5leHQgaWYgaGFzQ3VzdG9tV3JhcHBlcigkbmFtZSwgJG5hbWVzUmVmKTsKIAogICAgICAgICBt
eSAkdWNOYW1lID0gJG5hbWVzeyRuYW1lfXsidXBwZXJDYXNlIn07CiAgICAgICAgICMgSGFjayBm
b3IgdGhlIG1lZGlhIHRhZ3MKQEAgLTc5MSwyMyArNzI0LDEzIEBACiA7CiAKICAgICBmb3IgbXkg
JHRhZyAoc29ydCBrZXlzICV0YWdzKSB7Ci0gICAgICAgIG5leHQgaWYgKGhhc0N1c3RvbU1hcHBp
bmcoJHRhZykpOworICAgICAgICBuZXh0IGlmICgkdGFnc3skdGFnfXsnbm9XcmFwcGVyJ30pOwog
Ci0gICAgICAgIG15ICR1Y1RhZyA9ICR0YWdzeyR0YWd9eyJ1cHBlckNhc2UifTsKKyAgICAgICAg
IyBJZiB3ZSBoYXZlIGEgY3VzdG9tV3JhcHBlciBzZXQsIHRoZW4gdXNlIGl0cyB1cHBlciBjYXNl
IG5hbWUuCisgICAgICAgIG15ICR1Y1RhZyA9ICR0YWdzeyR0YWd9eydjdXN0b21XcmFwcGVyJ30g
PyAkdGFnc3sgJHRhZ3N7JHRhZ317J2N1c3RvbVdyYXBwZXInfSB9eyd1cHBlckNhc2UnfSA6ICR0
YWdzeyR0YWd9eyd1cHBlckNhc2UnfTsKICAgICAgICAgcHJpbnQgRiAiICAgICAgIG1hcC5zZXQo
JHt0YWd9VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlJHt1Y1RhZ31XcmFwcGVyKTtcbiI7
CiAgICAgfQogCi0gICAgaWYgKCRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfSBlcSAiSFRNTCIpIHsK
LSAgICAgICAgZm9yIG15ICR0YWcgKHNvcnQga2V5cyAlaHRtbEN1c3RvbU1hcHBpbmdzKSB7Ci0g
ICAgICAgICAgICBuZXh0IGlmICEkaHRtbEN1c3RvbU1hcHBpbmdzeyR0YWd9OwotCi0gICAgICAg
ICAgICBteSAkdWNDdXN0b21UYWcgPSAkdGFnc3skaHRtbEN1c3RvbU1hcHBpbmdzeyR0YWd9fXsi
dXBwZXJDYXNlIn07Ci0gICAgICAgICAgICBwcmludCBGICIgICAgICAgbWFwLnNldCgke3RhZ31U
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGUke3VjQ3VzdG9tVGFnfVdyYXBwZXIpO1xuIjsK
LSAgICAgICAgfQotICAgIH0KLQotICAgICMgQ3VycmVudGx5IFNWRyBoYXMgbm8gbmVlZCB0byBh
ZGQgY3VzdG9tIG1hcC5zZXQgYXMgaXQgb25seSBoYXMgZW1wdHkgZWxlbWVudHMKLQogICAgIHBy
aW50IEYgPDxFTkQKICAgICB9CiAgICAgQ3JlYXRlJHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9RWxl
bWVudFdyYXBwZXJGdW5jdGlvbiBjcmVhdGVXcmFwcGVyRnVuY3Rpb24gPSBtYXAuZ2V0KGVsZW1l
bnQtPmxvY2FsTmFtZSgpLmltcGwoKSk7CkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJvCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDM0NDgzKQorKysgV2ViQ29y
ZS9XZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtMTU3OCw3ICsxNTc4LDcgQEAKIAogICAg
ICAgICAjIEdFTkVSQVRPUiA1LUM6CiAgICAgICAgIHN2Z25hbWVzX2Eub3V0cHV0ID0gJCRHRU5F
UkFURURfU09VUkNFU19ESVIvU1ZHTmFtZXMuY3BwCi0gICAgICAgIHN2Z25hbWVzX2EuY29tbWFu
ZHMgPSBwZXJsIC1JJCRQV0QvYmluZGluZ3Mvc2NyaXB0cyAkJFBXRC9kb20vbWFrZV9uYW1lcy5w
bCAtLXRhZ3MgJCRQV0Qvc3ZnL3N2Z3RhZ3MuaW4gLS1hdHRycyAkJFBXRC9zdmcvc3ZnYXR0cnMu
aW4gLS1leHRyYURlZmluZXMgXCIkJHtERUZJTkVTfVwiIC0tbmFtZXNwYWNlIFNWRyAtLWd1YXJk
RmFjdG9yeVdpdGggXCJFTkFCTEUoU1ZHKVwiIC0tY3BwTmFtZXNwYWNlIFdlYkNvcmUgLS1uYW1l
c3BhY2VVUkkgJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyAtLWZhY3RvcnkgLS13cmFwcGVy
RmFjdG9yeSAtLWF0dHJzTnVsbE5hbWVzcGFjZSAtLXByZXByb2Nlc3NvciBcIiQke1FNQUtFX01P
Q30gLUVcIiAtLW91dHB1dCAkJEdFTkVSQVRFRF9TT1VSQ0VTX0RJUgorICAgICAgICBzdmduYW1l
c19hLmNvbW1hbmRzID0gcGVybCAtSSQkUFdEL2JpbmRpbmdzL3NjcmlwdHMgJCRQV0QvZG9tL21h
a2VfbmFtZXMucGwgLS10YWdzICQkUFdEL3N2Zy9zdmd0YWdzLmluIC0tYXR0cnMgJCRQV0Qvc3Zn
L3N2Z2F0dHJzLmluIC0tZXh0cmFEZWZpbmVzIFwiJCR7REVGSU5FU31cIiAtLXByZXByb2Nlc3Nv
ciBcIiQke1FNQUtFX01PQ30gLUVcIiAtLW91dHB1dCAkJEdFTkVSQVRFRF9TT1VSQ0VTX0RJUgog
ICAgICAgICBzdmduYW1lc19hLmlucHV0ID0gU1ZHX05BTUVTCiAgICAgICAgIHN2Z25hbWVzX2Eu
ZGVwZW5kZW5jeV90eXBlID0gVFlQRV9DCiAgICAgICAgIHN2Z25hbWVzX2EuQ09ORklHID0gdGFy
Z2V0X3ByZWRlcHMKQEAgLTE2MDQsNyArMTYwNCw3IEBACiAKICAgICAgICAgIyBHRU5FUkFUT1Ig
NS1EOgogICAgICAgICB4bGlua25hbWVzLm91dHB1dCA9ICQkR0VORVJBVEVEX1NPVVJDRVNfRElS
L1hMaW5rTmFtZXMuY3BwCi0gICAgICAgIHhsaW5rbmFtZXMuY29tbWFuZHMgPSBwZXJsIC1JJCRQ
V0QvYmluZGluZ3Mvc2NyaXB0cyAkJFBXRC9kb20vbWFrZV9uYW1lcy5wbCAtLWF0dHJzICQkUFdE
L3N2Zy94bGlua2F0dHJzLmluIC0tbmFtZXNwYWNlIFhMaW5rIC0tY3BwTmFtZXNwYWNlIFdlYkNv
cmUgLS1uYW1lc3BhY2VVUkkgJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnIC0tcHJlcHJv
Y2Vzc29yIFwiJCR7UU1BS0VfTU9DfSAtRVwiIC0tb3V0cHV0ICQkR0VORVJBVEVEX1NPVVJDRVNf
RElSCisgICAgICAgIHhsaW5rbmFtZXMuY29tbWFuZHMgPSBwZXJsIC1JJCRQV0QvYmluZGluZ3Mv
c2NyaXB0cyAkJFBXRC9kb20vbWFrZV9uYW1lcy5wbCAtLWF0dHJzICQkUFdEL3N2Zy94bGlua2F0
dHJzLmluIC0tcHJlcHJvY2Vzc29yIFwiJCR7UU1BS0VfTU9DfSAtRVwiIC0tb3V0cHV0ICQkR0VO
RVJBVEVEX1NPVVJDRVNfRElSCiAgICAgICAgIHhsaW5rbmFtZXMuaW5wdXQgPSBYTElOS19OQU1F
UwogICAgICAgICB4bGlua25hbWVzLmRlcGVuZGVuY3lfdHlwZSA9IFRZUEVfQwogICAgICAgICB4
bGlua25hbWVzLkNPTkZJRyA9IHRhcmdldF9wcmVkZXBzCkBAIC0xNzAwLDcgKzE3MDAsNyBAQAog
CiAjIEdFTkVSQVRPUiA1LUE6CiBodG1sbmFtZXMub3V0cHV0ID0gJCRHRU5FUkFURURfU09VUkNF
U19ESVIvSFRNTE5hbWVzLmNwcAotaHRtbG5hbWVzLmNvbW1hbmRzID0gcGVybCAtSSQkUFdEL2Jp
bmRpbmdzL3NjcmlwdHMgJCRQV0QvZG9tL21ha2VfbmFtZXMucGwgLS10YWdzICQkUFdEL2h0bWwv
SFRNTFRhZ05hbWVzLmluIC0tYXR0cnMgJCRQV0QvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4g
LS1leHRyYURlZmluZXMgXCIkJHtERUZJTkVTfVwiIC0tbmFtZXNwYWNlIEhUTUwgLS1uYW1lc3Bh
Y2VQcmVmaXggeGh0bWwgLS1jcHBOYW1lc3BhY2UgV2ViQ29yZSAtLW5hbWVzcGFjZVVSSSAnaHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcgLS13cmFwcGVyRmFjdG9yeSAtLWF0dHJzTnVsbE5h
bWVzcGFjZSAtLXByZXByb2Nlc3NvciBcIiQke1FNQUtFX01PQ30gLUVcIiAtLW91dHB1dCAkJEdF
TkVSQVRFRF9TT1VSQ0VTX0RJUgoraHRtbG5hbWVzLmNvbW1hbmRzID0gcGVybCAtSSQkUFdEL2Jp
bmRpbmdzL3NjcmlwdHMgJCRQV0QvZG9tL21ha2VfbmFtZXMucGwgLS10YWdzICQkUFdEL2h0bWwv
SFRNTFRhZ05hbWVzLmluIC0tYXR0cnMgJCRQV0QvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4g
LS1leHRyYURlZmluZXMgXCIkJHtERUZJTkVTfVwiIC0tcHJlcHJvY2Vzc29yIFwiJCR7UU1BS0Vf
TU9DfSAtRVwiIC0tb3V0cHV0ICQkR0VORVJBVEVEX1NPVVJDRVNfRElSCiBodG1sbmFtZXMuaW5w
dXQgPSBIVE1MX05BTUVTCiBodG1sbmFtZXMuZGVwZW5kZW5jeV90eXBlID0gVFlQRV9DCiBodG1s
bmFtZXMuQ09ORklHID0gdGFyZ2V0X3ByZWRlcHMKQEAgLTE3MTgsNyArMTcxOCw3IEBACiAKICMg
R0VORVJBVE9SIDUtQjoKIHhtbG5hbWVzLm91dHB1dCA9ICQkR0VORVJBVEVEX1NPVVJDRVNfRElS
L1hNTE5hbWVzLmNwcAoteG1sbmFtZXMuY29tbWFuZHMgPSBwZXJsIC1JJCRQV0QvYmluZGluZ3Mv
c2NyaXB0cyAkJFBXRC9kb20vbWFrZV9uYW1lcy5wbCAtLWF0dHJzICQkUFdEL3htbC94bWxhdHRy
cy5pbiAtLW5hbWVzcGFjZSBYTUwgLS1jcHBOYW1lc3BhY2UgV2ViQ29yZSAtLW5hbWVzcGFjZVVS
SSAnaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlJyAtLXByZXByb2Nlc3NvciBc
IiQke1FNQUtFX01PQ30gLUVcIiAtLW91dHB1dCAkJEdFTkVSQVRFRF9TT1VSQ0VTX0RJUgoreG1s
bmFtZXMuY29tbWFuZHMgPSBwZXJsIC1JJCRQV0QvYmluZGluZ3Mvc2NyaXB0cyAkJFBXRC9kb20v
bWFrZV9uYW1lcy5wbCAtLWF0dHJzICQkUFdEL3htbC94bWxhdHRycy5pbiAtLXByZXByb2Nlc3Nv
ciBcIiQke1FNQUtFX01PQ30gLUVcIiAtLW91dHB1dCAkJEdFTkVSQVRFRF9TT1VSQ0VTX0RJUgog
eG1sbmFtZXMuaW5wdXQgPSBYTUxfTkFNRVMKIHhtbG5hbWVzLmRlcGVuZGVuY3lfdHlwZSA9IFRZ
UEVfQwogeG1sbmFtZXMuQ09ORklHID0gdGFyZ2V0X3ByZWRlcHMKSW5kZXg6IFdlYkNvcmUvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAzNDQ4NikK
KysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIw
MDgtMDYtMTAgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQnVnIDE5MjAwOiAq
LmluIGZpbGVzIHNob3VsZCBlbWJlZCBtb3JlIGluZm9ybWF0aW9uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTIwMAorCisgICAgICAgIC0gTW92ZSBK
UypFbGVtZW50V3JhcHBlckZhY3RvcnkgaW5mb3JtYXRpb24gaW4gdGhlIFhNTCBmaWxlcy4KKwor
ICAgICAgICAtIFJlbW92ZSB0aGUgdXNlbGVzcyBwYXJhbWV0ZXJzIG9mIHRoZSBidWlsZCBzeXN0
ZW1zLgorCisgICAgICAgIC0gQ2xlYW4gdXAgbWFrZV9uYW1lcy5wbCBhIGxpdHRsZSBiaXQuCisK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFt
OgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIGRvbS9tYWtlX25hbWVzLnBsOgor
ICAgICAgICAqIGh0bWwvSFRNTFRhZ05hbWVzLmluOgorICAgICAgICAqIHN2Zy9zdmd0YWdzLmlu
OgorCiAyMDA4LTA2LTEwICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBtanMuCg==
</data>
<flag name="review"
          id="9474"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>