<?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>30907</bug_id>
          
          <creation_ts>2009-10-29 08:32:39 -0700</creation_ts>
          <short_desc>Web Inspector: Rewrite CSSSourceSyntaxHighlighter so it shares more code</short_desc>
          <delta_ts>2009-11-02 09:28:04 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</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>0</everconfirmed>
          <reporter name="Keishi Hattori">keishi</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aroben</cc>
    
    <cc>bweinstein</cc>
    
    <cc>commit-queue</cc>
    
    <cc>joepeck</cc>
    
    <cc>pfeldman</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>158907</commentid>
    <comment_count>0</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2009-10-29 08:32:39 -0700</bug_when>
    <thetext>We should rewrite CSSSourceSyntaxHighlighter to share code with JavaScriptSourceSyntaxHighlighter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159013</commentid>
    <comment_count>1</comment_count>
      <attachid>42126</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2009-10-29 12:30:24 -0700</bug_when>
    <thetext>Created attachment 42126
proposed patch

Code became uglier than I hoped. This version features full list of keywords so users can spot their typos.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159706</commentid>
    <comment_count>2</comment_count>
      <attachid>42290</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2009-11-01 18:53:42 -0800</bug_when>
    <thetext>Created attachment 42290
proposed patch 2

I think I was able to make it much more organized. Patch also fixes few issues with JS syntax highlighter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159712</commentid>
    <comment_count>3</comment_count>
      <attachid>42290</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2009-11-01 19:27:31 -0800</bug_when>
    <thetext>Comment on attachment 42290
proposed patch 2

&gt; +    const urlPattern = /^url\(\s*(?:(?:&quot;(?:[\t !#\$%&amp;\(-~]|\\n|\r\n|\r|\f|&apos;|[\200-\377]|(?:\[0-9a-fA-F]{1,6}[ \n\r\t\f]?|\[ -~\200-\377\n]))*&quot;|&apos;(?:[\t !#\$%&amp;\(-~]|\\n|\r\n|\r|\f|&apos;|[\200-\377]|(?:\[0-9a-fA-F]{1,6}[ \n\r\t\f]?|\[ -~\200-\377\n]))*&apos;)|(?:[!#$%&amp;*-~]|[\200-\377]|(?:\[0-9a-fA-F]{1,6}[ \n\r\t\f]?|\[ -~\200-\377\n]))*)\s*\)/i;
&gt; +    const stringPattern = /^(?:&quot;(?:[\t !#\$%&amp;\(-~]|\\n|\r\n|\r|\f|&apos;|[\200-\377]|(?:\[0-9a-fA-F]{1,6}[ \n\r\t\f]?|\[ -~\200-\377\n]))*&quot;|&apos;(?:[\t !#\$%&amp;\(-~]|\\n|\r\n|\r|\f|&apos;|[\200-\377]|(?:\[0-9a-fA-F]{1,6}[ \n\r\t\f]?|\[ -~\200-\377\n]))*&apos;)/i;
&gt; +    const identPattern = /^-?(?:[_a-zA-Z]|[\200-\377]|(?:\[0-9a-fA-F]{1,6}[ \n\r\t\f]?|\[ -~\200-\377\n]))(?:[_a-zA-Z0-9-]|[\200-\377]|(?:\[0-9a-fA-F]{1,6}[ \n\r\t\f]?|\[ -~\200-\377\n]))*/i;

The only thing I think needs fixed about this patch is the regexs. They are super complex.

There are a number of places than can be simplified. Like: [ \n\r\t\f] should just be \s.

There is also a mistake with \\n being used when it should be \n.

Also [\200-\377] is odd. I know it is fro mthe spec, but the spec also says:

&gt; The &quot;\377&quot; represents the highest character number that current versions of
&gt; Flex can deal with (decimal 255). It should be read as &quot;\4177777&quot; (decimal
&gt; 1114111), which is the highest possible code point in Unicode/ISO-10646.

We can support full unicode.

The multiple character rnages ORed together should just be combined inot one character range. Like the follow example.

&gt; [_a-zA-Z0-9-]|[\200-\377]

So you would have:

[-_a-zA-Z0-9\200-\4177777]

I wonder if we should just use \w and call it a day?


This \ should be \\.

\[0-9a-fA-F]{1,6}

It is really hard to review this. These are just the things that stood out to me. I recomend we just write simple regexs and not try to generate them from the spec&apos;s FLEX tokenizer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159725</commentid>
    <comment_count>4</comment_count>
      <attachid>42293</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2009-11-01 20:33:22 -0800</bug_when>
    <thetext>Created attachment 42293
proposed patch 3

Simplified the regexps.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159732</commentid>
    <comment_count>5</comment_count>
      <attachid>42293</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2009-11-01 21:04:50 -0800</bug_when>
    <thetext>Comment on attachment 42293
proposed patch 3

propertyKeywords, valueKeywords, mediaTypes and keywords should be objects with properties not arrays. That way it is fast to look up.

So:

const mediaTypes = {&quot;all&quot;: true, &quot;aural&quot;: true, &quot;braille&quot;: true, &quot;embossed&quot;: true, &quot;handheld&quot;: true, &quot;print&quot;: true, &quot;projection&quot;: true, &quot;screen&quot;: true, &quot;tty&quot;: true, &quot;tv&quot;: true};

And test like:

token in mediaTypes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159735</commentid>
    <comment_count>6</comment_count>
      <attachid>42298</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2009-11-01 21:17:48 -0800</bug_when>
    <thetext>Created attachment 42298
proposed patch 4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159746</commentid>
    <comment_count>7</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2009-11-01 22:45:15 -0800</bug_when>
    <thetext>I don&apos;t see a difference between 3 and 4.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159749</commentid>
    <comment_count>8</comment_count>
      <attachid>42303</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2009-11-01 23:00:58 -0800</bug_when>
    <thetext>Created attachment 42303
Sorry, I was editing the wrong file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159815</commentid>
    <comment_count>9</comment_count>
      <attachid>42303</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-11-02 09:27:59 -0800</bug_when>
    <thetext>Comment on attachment 42303
Sorry, I was editing the wrong file

Clearing flags on attachment: 42303

Committed r50411: &lt;http://trac.webkit.org/changeset/50411&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159816</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-11-02 09:28:04 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42126</attachid>
            <date>2009-10-29 12:30:24 -0700</date>
            <delta_ts>2009-11-01 18:53:42 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>css.diff</filename>
            <type>text/plain</type>
            <size>60990</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MDI4OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMDktMTAtMjkgIEtlaXNoaSBIYXR0b3JpICA8Y2FzZXkuaGF0dG9y
aUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgV2ViIEluc3BlY3RvcjogUmV3cml0ZSBDU1NTb3VyY2VTeW50YXhIaWdobGlnaHRlciBz
byBpdCBzaGFyZXMgbW9yZSBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zMDkwNworCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9jc3Mtc3ludGF4
LWhpZ2hsaWdodC5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRz
VHJlZU91dGxpbmUuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFt
ZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuc3ludGF4
SGlnaGxpZ2h0Q1NTKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VTeW50YXhIaWdobGln
aHRlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlU3ludGF4SGlnaGxpZ2h0ZXIucHJv
dG90eXBlLnByb2Nlc3MucHJvY2Vzc0NodW5rKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3Vy
Y2VTeW50YXhIaWdobGlnaHRlci5wcm90b3R5cGUucHJvY2Vzcy5tb3ZlVG9OZXh0TGluZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlU3ludGF4SGlnaGxpZ2h0ZXIucHJvdG90eXBlLnBy
b2Nlc3MpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZVN5bnRheEhpZ2hsaWdodGVyLnBy
b3RvdHlwZS5sZXgpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZVN5bnRheEhpZ2hsaWdo
dGVyLnByb3RvdHlwZS5hcHBlbmROb25Ub2tlbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291
cmNlU3ludGF4SGlnaGxpZ2h0ZXIucHJvdG90eXBlLnN5bnRheEhpZ2hsaWdodE5vZGUpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkNTU1NvdXJjZVN5bnRheEhpZ2hsaWdodGVyKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuX2xvYWRlZCk6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3JTeW50YXhIaWdobGlnaHQuY3NzOgorCiAyMDA5
LTEwLTI5ICBMYXN6bG8gR29tYm9zICA8bGFzemxvLjEuZ29tYm9zQG5va2lhLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBUb3IgQXJuZSBWZXN0YsO4LgpJbmRleDogV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMJKHJldmlzaW9uIDUw
Mjc0KQorKysgV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUu
anMJKHdvcmtpbmcgY29weSkKQEAgLTg0Nyw4ICs4NDcsOCBAQCBXZWJJbnNwZWN0b3IuRWxlbWVu
dHNUcmVlRWxlbWVudC5wcm90b3R5CiAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbmV3Tm9k
ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgIG5ld05vZGUudGV4dENvbnRlbnQgPSBub2RlLnRleHRDb250ZW50OwogICAgICAgICAgICAg
ICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICB2YXIgY3NzU3ludGF4SGlnaGxp
Z2h0ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkNTU1NvdXJjZVN5bnRheEhpZ2hsaWdoZXIobnVsbCwg
bnVsbCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjc3NTeW50YXhIaWdobGlnaHRlci5zeW50
YXhIaWdobGlnaHRMaW5lKG5ld05vZGUsIG51bGwpOworICAgICAgICAgICAgICAgICAgICAgICAg
dmFyIGNzc1N5bnRheEhpZ2hsaWdodGVyID0gbmV3IFdlYkluc3BlY3Rvci5DU1NTb3VyY2VTeW50
YXhIaWdobGlnaHRlcihudWxsLCBudWxsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNzc1N5
bnRheEhpZ2hsaWdodGVyLnN5bnRheEhpZ2hsaWdodE5vZGUobmV3Tm9kZSk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgIGluZm8udGl0bGUgPSAiPHNw
YW4gY2xhc3M9XCJ3ZWJraXQtaHRtbC10ZXh0LW5vZGUgd2Via2l0LWh0bWwtY3NzLW5vZGVcIj4i
ICsgbmV3Tm9kZS5pbm5lckhUTUwucmVwbGFjZSgvXltcblxyXSovLCAiIikucmVwbGFjZSgvXHMq
JC8sICIiKSArICI8L3NwYW4+IjsKICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKSW5kZXg6
IFdlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMJKHJldmlzaW9uIDUw
Mjc0KQorKysgV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC03MjksMjAgKzcyOSwyMCBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUu
cHJvdG90eXBlID0gewogICAgICAgICBpZiAoIXRhYmxlKQogICAgICAgICAgICAgcmV0dXJuOwog
Ci0gICAgICAgIHZhciBjc3NTeW50YXhIaWdobGlnaHRlciA9IG5ldyBXZWJJbnNwZWN0b3IuQ1NT
U291cmNlU3ludGF4SGlnaGxpZ2hlcih0YWJsZSwgdGhpcyk7CisgICAgICAgIHZhciBjc3NTeW50
YXhIaWdobGlnaHRlciA9IG5ldyBXZWJJbnNwZWN0b3IuQ1NTU291cmNlU3ludGF4SGlnaGxpZ2h0
ZXIodGFibGUsIHRoaXMpOwogICAgICAgICBjc3NTeW50YXhIaWdobGlnaHRlci5wcm9jZXNzKCk7
CiAgICAgfQogfQogCiBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLl9fcHJvdG9f
XyA9IFdlYkluc3BlY3Rvci5PYmplY3QucHJvdG90eXBlOwogCi1XZWJJbnNwZWN0b3IuU291cmNl
U3ludGF4SGlnaGxpZ2hlciA9IGZ1bmN0aW9uKHRhYmxlLCBzb3VyY2VGcmFtZSkKK1dlYkluc3Bl
Y3Rvci5Tb3VyY2VTeW50YXhIaWdobGlnaHRlciA9IGZ1bmN0aW9uKHRhYmxlLCBzb3VyY2VGcmFt
ZSkKIHsKICAgICB0aGlzLnRhYmxlID0gdGFibGU7CiAgICAgdGhpcy5zb3VyY2VGcmFtZSA9IHNv
dXJjZUZyYW1lOwogfQogCi1XZWJJbnNwZWN0b3IuU291cmNlU3ludGF4SGlnaGxpZ2hlci5wcm90
b3R5cGUgPSB7CitXZWJJbnNwZWN0b3IuU291cmNlU3ludGF4SGlnaGxpZ2h0ZXIucHJvdG90eXBl
ID0gewogICAgIGNyZWF0ZVNwYW46IGZ1bmN0aW9uKGNvbnRlbnQsIGNsYXNzTmFtZSkKICAgICB7
CiAgICAgICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwpAQCAt
NzUxLDIzNCArNzUxLDU2MyBAQCBXZWJJbnNwZWN0b3IuU291cmNlU3ludGF4SGlnaGxpZ2hlci5w
cm90CiAgICAgICAgIHJldHVybiBzcGFuOwogICAgIH0sCiAKLSAgICBnZW5lcmF0ZUZpbmRlcjog
ZnVuY3Rpb24ocmVnZXgsIG1hdGNoTnVtYmVyLCBjbGFzc05hbWUpCi0gICAgewotICAgICAgICBy
ZXR1cm4gZnVuY3Rpb24oc3RyKSB7Ci0gICAgICAgICAgICB2YXIgbWF0Y2ggPSByZWdleC5leGVj
KHN0cik7Ci0gICAgICAgICAgICBpZiAoIW1hdGNoKQotICAgICAgICAgICAgICAgIHJldHVybiBu
dWxsOwotICAgICAgICAgICAgdGhpcy5wcmV2aW91c01hdGNoTGVuZ3RoID0gbWF0Y2hbbWF0Y2hO
dW1iZXJdLmxlbmd0aDsKLSAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVNwYW4obWF0Y2hb
bWF0Y2hOdW1iZXJdLCBjbGFzc05hbWUpOwotICAgICAgICB9OwotICAgIH0sCi0KICAgICBwcm9j
ZXNzOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICAvLyBTcGxpdCB1cCB0aGUgd29yayBpbnRv
IGNodW5rcyBzbyB3ZSBkb24ndCBibG9jayB0aGUKICAgICAgICAgLy8gVUkgdGhyZWFkIHdoaWxl
IHByb2Nlc3NpbmcuCiAKLSAgICAgICAgdmFyIGkgPSAwOwogICAgICAgICB2YXIgcm93cyA9IHRo
aXMudGFibGUucm93czsKICAgICAgICAgdmFyIHJvd3NMZW5ndGggPSByb3dzLmxlbmd0aDsKLSAg
ICAgICAgdmFyIHByZXZpb3VzQ2VsbCA9IG51bGw7Ci0gICAgICAgIGNvbnN0IGxpbmVzUGVyQ2h1
bmsgPSAxMDsKLQorICAgICAgICBjb25zdCB0b2tlbnNQZXJDaHVuayA9IDEwMDsKKyAgICAgICAg
Y29uc3QgbGluZUxlbmd0aExpbWl0ID0gMjAwMDA7CisgICAgICAgIAorICAgICAgICB2YXIgYm91
bmRQcm9jZXNzQ2h1bmsgPSBwcm9jZXNzQ2h1bmsuYmluZCh0aGlzKTsKKyAgICAgICAgdmFyIHBy
b2Nlc3NDaHVua0ludGVydmFsID0gc2V0SW50ZXJ2YWwoYm91bmRQcm9jZXNzQ2h1bmssIDI1KTsK
KyAgICAgICAgYm91bmRQcm9jZXNzQ2h1bmsoKTsKKyAgICAgICAgCiAgICAgICAgIGZ1bmN0aW9u
IHByb2Nlc3NDaHVuaygpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGZvciAodmFyIGVuZCA9IE1h
dGgubWluKGkgKyBsaW5lc1BlckNodW5rLCByb3dzTGVuZ3RoKTsgaSA8IGVuZDsgKytpKSB7Ci0g
ICAgICAgICAgICAgICAgdmFyIHJvdyA9IHJvd3NbaV07Ci0gICAgICAgICAgICAgICAgaWYgKCFy
b3cpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIHZhciBj
ZWxsID0gcm93LmNlbGxzWzFdOwotICAgICAgICAgICAgICAgIGlmICghY2VsbCkKLSAgICAgICAg
ICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgdGhpcy5zeW50YXhIaWdobGln
aHRMaW5lKGNlbGwsIHByZXZpb3VzQ2VsbCk7Ci0gICAgICAgICAgICAgICAgaWYgKGkgPCAoZW5k
IC0gMSkpCi0gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVsZXRlQ29udGludWVGbGFncyhwcmV2
aW91c0NlbGwpOwotICAgICAgICAgICAgICAgIHByZXZpb3VzQ2VsbCA9IGNlbGw7Ci0gICAgICAg
ICAgICB9CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRva2Vuc1BlckNodW5rOyBp
KyspIHsKKyAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJzb3IgPj0gdGhpcy5saW5lQ29kZS5s
ZW5ndGgpCisgICAgICAgICAgICAgICAgICAgIG1vdmVUb05leHRMaW5lLmNhbGwodGhpcyk7Cisg
ICAgICAgICAgICAgICAgaWYgKHRoaXMubGluZUluZGV4ID49IHJvd3NMZW5ndGgpIHsKKyAgICAg
ICAgICAgICAgICAgICAgdGhpcy5zb3VyY2VGcmFtZS5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMo
InN5bnRheCBoaWdobGlnaHRpbmcgY29tcGxldGUiKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJzb3Ig
PiBsaW5lTGVuZ3RoTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgdmFyIGNvZGVGcmFnbWVu
dCA9IHRoaXMubGluZUNvZGUuc3Vic3RyaW5nKHRoaXMuY3Vyc29yKTsKKyAgICAgICAgICAgICAg
ICAgICAgdGhpcy5ub25Ub2tlbiArPSBjb2RlRnJhZ21lbnQ7CisgICAgICAgICAgICAgICAgICAg
IHRoaXMuY3Vyc29yICs9IGNvZGVGcmFnbWVudC5sZW5ndGg7CisgICAgICAgICAgICAgICAgfQog
Ci0gICAgICAgICAgICBpZiAoaSA+PSByb3dzTGVuZ3RoICYmIHByb2Nlc3NDaHVua0ludGVydmFs
KSB7Ci0gICAgICAgICAgICAgICAgdGhpcy5kZWxldGVDb250aW51ZUZsYWdzKHByZXZpb3VzQ2Vs
bCk7Ci0gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMucHJldmlvdXNNYXRjaExlbmd0aDsKKyAg
ICAgICAgICAgICAgICB0aGlzLmxleCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAg
ICAgIAorICAgICAgICBmdW5jdGlvbiBtb3ZlVG9OZXh0TGluZSgpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIHRoaXMuYXBwZW5kTm9uVG9rZW4oKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAg
dmFyIHJvdyA9IHJvd3NbdGhpcy5saW5lSW5kZXhdOworICAgICAgICAgICAgdmFyIGxpbmUgPSBy
b3cgPyByb3cuY2VsbHNbMV0gOiBudWxsOworICAgICAgICAgICAgaWYgKGxpbmUgJiYgdGhpcy5s
aW5lRnJhZ21lbnQpIHsKKyAgICAgICAgICAgICAgICB2YXIgbWVzc2FnZUJ1YmJsZSA9IG51bGw7
CisgICAgICAgICAgICAgICAgaWYgKGxpbmUubGFzdENoaWxkICYmIGxpbmUubGFzdENoaWxkLm5v
ZGVUeXBlID09PSBOb2RlLkVMRU1FTlRfTk9ERSAmJiBsaW5lLmxhc3RDaGlsZC5oYXNTdHlsZUNs
YXNzKCJ3ZWJraXQtaHRtbC1tZXNzYWdlLWJ1YmJsZSIpKSB7CisgICAgICAgICAgICAgICAgICAg
IG1lc3NhZ2VCdWJibGUgPSBsaW5lLmxhc3RDaGlsZDsKKyAgICAgICAgICAgICAgICAgICAgbGlu
ZS5yZW1vdmVDaGlsZChtZXNzYWdlQnViYmxlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgCisgICAgICAgICAgICAgICAgRWxlbWVudC5wcm90b3R5cGUucmVtb3ZlQ2hpbGRy
ZW4uY2FsbChsaW5lKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBsaW5lLmFw
cGVuZENoaWxkKHRoaXMubGluZUZyYWdtZW50KTsKKyAgICAgICAgICAgICAgICBpZiAobWVzc2Fn
ZUJ1YmJsZSkKKyAgICAgICAgICAgICAgICAgICAgbGluZS5hcHBlbmRDaGlsZChtZXNzYWdlQnVi
YmxlKTsKKyAgICAgICAgICAgICAgICB0aGlzLmxpbmVGcmFnbWVudCA9IG51bGw7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICB0aGlzLmxpbmVJbmRleCsrOworICAgICAgICAgICAgaWYgKHRo
aXMubGluZUluZGV4ID49IHJvd3NMZW5ndGggJiYgcHJvY2Vzc0NodW5rSW50ZXJ2YWwpIHsKICAg
ICAgICAgICAgICAgICBjbGVhckludGVydmFsKHByb2Nlc3NDaHVua0ludGVydmFsKTsKLQogICAg
ICAgICAgICAgICAgIHRoaXMuc291cmNlRnJhbWUuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKCJz
eW50YXggaGlnaGxpZ2h0aW5nIGNvbXBsZXRlIik7CisgICAgICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICAgICAgfQorICAgICAgICAgICAgcm93ID0gcm93c1t0aGlzLmxpbmVJbmRleF07Cisg
ICAgICAgICAgICBsaW5lID0gcm93ID8gcm93LmNlbGxzWzFdIDogbnVsbDsKKyAgICAgICAgICAg
IHRoaXMubGluZUNvZGUgPSBsaW5lLnRleHRDb250ZW50OworICAgICAgICAgICAgdGhpcy5saW5l
RnJhZ21lbnQgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7CisgICAgICAgICAg
ICB0aGlzLmN1cnNvciA9IDA7CisgICAgICAgICAgICBpZiAoIWxpbmUpCisgICAgICAgICAgICAg
ICAgbW92ZVRvTmV4dExpbmUoKTsKICAgICAgICAgfQotCi0gICAgICAgIHZhciBib3VuZFByb2Nl
c3NDaHVuayA9IHByb2Nlc3NDaHVuay5iaW5kKHRoaXMpOwotICAgICAgICB2YXIgcHJvY2Vzc0No
dW5rSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChib3VuZFByb2Nlc3NDaHVuaywgMjUpOwotICAgICAg
ICBib3VuZFByb2Nlc3NDaHVuaygpOwotICAgIH0KLX0KLQotV2ViSW5zcGVjdG9yLkNTU1NvdXJj
ZVN5bnRheEhpZ2hsaWdoZXIgPSBmdW5jdGlvbih0YWJsZSwgc291cmNlRnJhbWUpIHsKLSAgICBX
ZWJJbnNwZWN0b3IuU291cmNlU3ludGF4SGlnaGxpZ2hlci5jYWxsKHRoaXMsIHRhYmxlLCBzb3Vy
Y2VGcmFtZSk7Ci0KLSAgICB0aGlzLmZpbmROdW1iZXIgPSB0aGlzLmdlbmVyYXRlRmluZGVyKC9e
KCgtPyhcZCt8XGQqXC5cZCspKXxeKCNbYS1mQS1GMC05XXszLDZ9KSkoPzpcRHwkKS8sIDEsICJ3
ZWJraXQtY3NzLW51bWJlciIpOwotICAgIHRoaXMuZmluZFVuaXRzID0gdGhpcy5nZW5lcmF0ZUZp
bmRlcigvXihweHxlbXxwdHxpbnxjbXxtbXxwY3xleCkoPzpcV3wkKS8sIDEsICJ3ZWJraXQtY3Nz
LXVuaXQiKTsKLSAgICB0aGlzLmZpbmRLZXl3b3JkID0gdGhpcy5nZW5lcmF0ZUZpbmRlcigvXihy
Z2JhP3xoc2xhP3x2YXIpKD86XFd8JCkvLCAxLCAid2Via2l0LWNzcy1rZXl3b3JkIik7Ci0gICAg
dGhpcy5maW5kU2luZ2xlTGluZVN0cmluZyA9IHRoaXMuZ2VuZXJhdGVGaW5kZXIoL14iKD86W14i
XFxdfFxcLikqInxeJyhbXidcXF18XFwuKSonLywgMCwgIndlYmtpdC1jc3Mtc3RyaW5nIik7IC8v
ICIgdGhpcyBxdW90ZSBrZWVwcyBYY29kZSBoYXBweQotICAgIHRoaXMuZmluZFNpbmdsZUxpbmVD
b21tZW50ID0gdGhpcy5nZW5lcmF0ZUZpbmRlcigvXlwvXCouKj9cKlwvLywgMCwgIndlYmtpdC1j
c3MtY29tbWVudCIpOwotICAgIHRoaXMuZmluZE11bHRpbGluZUNvbW1lbnRTdGFydCA9IHRoaXMu
Z2VuZXJhdGVGaW5kZXIoL15cL1wqLiokLywgMCwgIndlYmtpdC1jc3MtY29tbWVudCIpOwotICAg
IHRoaXMuZmluZE11bHRpbGluZUNvbW1lbnRFbmQgPSB0aGlzLmdlbmVyYXRlRmluZGVyKC9eLio/
XCpcLy8sIDAsICJ3ZWJraXQtY3NzLWNvbW1lbnQiKTsKLSAgICB0aGlzLmZpbmRTZWxlY3RvciA9
IHRoaXMuZ2VuZXJhdGVGaW5kZXIoL14oWyNcLl0/W19hLXpBLVpdLio/KSg/OlxXfCQpLywgMSwg
IndlYmtpdC1jc3Mtc2VsZWN0b3IiKTsKLSAgICB0aGlzLmZpbmRQcm9wZXJ0eSA9IHRoaXMuZ2Vu
ZXJhdGVGaW5kZXIoL14oLT9bX2EtejAtOV1bX2EtejAtOS1dKlxzKikoPzpcOikvLCAxLCAid2Vi
a2l0LWNzcy1wcm9wZXJ0eSIpOwotICAgIHRoaXMuZmluZEdlbmVyaWNJZGVudCA9IHRoaXMuZ2Vu
ZXJhdGVGaW5kZXIoL14oW0AtXT9bX2EtejAtOV1bX2EtejAtOS1dKikoPzpcV3wkKS8sIDEsICJ3
ZWJraXQtY3NzLXN0cmluZyIpOwotfQotCi1XZWJJbnNwZWN0b3IuQ1NTU291cmNlU3ludGF4SGln
aGxpZ2hlci5wcm90b3R5cGUgPSB7Ci0gICAgZGVsZXRlQ29udGludWVGbGFnczogZnVuY3Rpb24o
Y2VsbCkKLSAgICB7Ci0gICAgICAgIGlmICghY2VsbCkKLSAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgZGVsZXRlIGNlbGwuX2NvbW1lbnRDb250aW51ZXM7Ci0gICAgICAgIGRlbGV0ZSBjZWxs
Ll9pblNlbGVjdG9yOwotICAgIH0sCi0KLSAgICBmaW5kUHNldWRvQ2xhc3M6IGZ1bmN0aW9uKHN0
cikKLSAgICB7Ci0gICAgICAgIHZhciBtYXRjaCA9IC9eKDo6PykoW19hLXowLTldW19hLXowLTkt
XSopLy5leGVjKHN0cik7Ci0gICAgICAgIGlmICghbWF0Y2gpCi0gICAgICAgICAgICByZXR1cm4g
bnVsbDsKLSAgICAgICAgdGhpcy5wcmV2aW91c01hdGNoTGVuZ3RoID0gbWF0Y2hbMF0ubGVuZ3Ro
OwotICAgICAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKLSAg
ICAgICAgc3Bhbi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtYXRjaFsxXSkp
OwotICAgICAgICBzcGFuLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlU3BhbihtYXRjaFsyXSwgIndl
YmtpdC1jc3MtcHNldWRvLWNsYXNzIikpOwotICAgICAgICByZXR1cm4gc3BhbjsKICAgICB9LAot
Ci0gICAgZmluZFVSTDogZnVuY3Rpb24oc3RyKQorICAgIAorICAgIGxleDogZnVuY3Rpb24oKQog
ICAgIHsKLSAgICAgICAgdmFyIG1hdGNoID0gL14oPzpsb2NhbHx1cmwpXCgoW15cKV0qPylcKS8u
ZXhlYyhzdHIpOwotICAgICAgICBpZiAoIW1hdGNoKQotICAgICAgICAgICAgcmV0dXJuIG51bGw7
Ci0gICAgICAgIHRoaXMucHJldmlvdXNNYXRjaExlbmd0aCA9IG1hdGNoWzBdLmxlbmd0aDsKLSAg
ICAgICAgdmFyIGlubmVyVXJsU3BhbiA9IHRoaXMuY3JlYXRlU3BhbihtYXRjaFsxXSwgIndlYmtp
dC1jc3MtdXJsIik7Ci0gICAgICAgIHZhciBvdXRlclNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJzcGFuIik7Ci0gICAgICAgIG91dGVyU3Bhbi5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVNw
YW4oInVybCIsICJ3ZWJraXQtY3NzLWtleXdvcmQiKSk7Ci0gICAgICAgIG91dGVyU3Bhbi5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiKCIpKTsKLSAgICAgICAgb3V0ZXJTcGFu
LmFwcGVuZENoaWxkKGlubmVyVXJsU3Bhbik7Ci0gICAgICAgIG91dGVyU3Bhbi5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiKSIpKTsKLSAgICAgICAgcmV0dXJuIG91dGVyU3Bh
bjsKKyAgICAgICAgdmFyIHRva2VuID0gbnVsbDsKKyAgICAgICAgdmFyIGNvZGVGcmFnbWVudCA9
IHRoaXMubGluZUNvZGUuc3Vic3RyaW5nKHRoaXMuY3Vyc29yKTsKKyAgICAgICAgCisgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5ydWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAg
ICAgdmFyIHJ1bGUgPSB0aGlzLnJ1bGVzW2ldOworICAgICAgICAgICAgdmFyIHJ1bGVDb250aW51
ZVN0YXRlQ29uZGl0aW9uID0gdHlwZW9mIHJ1bGUuY29udGludWVTdGF0ZUNvbmRpdGlvbiA9PT0g
InVuZGVmaW5lZCIgPyB0aGlzLkNvbnRpbnVlU3RhdGUuTm9uZSA6IHJ1bGUuY29udGludWVTdGF0
ZUNvbmRpdGlvbjsKKyAgICAgICAgICAgIGlmICh0aGlzLmNvbnRpbnVlU3RhdGUgPT09IHJ1bGVD
b250aW51ZVN0YXRlQ29uZGl0aW9uKSB7CisgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBydWxl
LmxleFN0YXRlQ29uZGl0aW9uICE9PSAidW5kZWZpbmVkIiAmJiB0aGlzLmxleFN0YXRlICE9PSBy
dWxlLmxleFN0YXRlQ29uZGl0aW9uKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgICAgICAgICB2YXIgbWF0Y2ggPSBydWxlLnBhdHRlcm4uZXhlYyhjb2RlRnJhZ21lbnQp
OworICAgICAgICAgICAgICAgIGlmIChtYXRjaCkgeworICAgICAgICAgICAgICAgICAgICB0b2tl
biA9IG1hdGNoWzBdOworICAgICAgICAgICAgICAgICAgICBpZiAodG9rZW4pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGlmICghcnVsZS5kb250QXBwZW5kTm9uVG9rZW4pCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGhpcy5hcHBlbmROb25Ub2tlbigpOworICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHJ1bGUuYWN0aW9uLmNhbGwodGhpcywgdG9rZW4pOworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9
CisgICAgICAgIHRoaXMubm9uVG9rZW4gKz0gY29kZUZyYWdtZW50WzBdOworICAgICAgICB0aGlz
LmN1cnNvcisrOwogICAgIH0sCi0KLSAgICBmaW5kQXRSdWxlOiBmdW5jdGlvbihzdHIpCisgICAg
CisgICAgYXBwZW5kTm9uVG9rZW46IGZ1bmN0aW9uICgpCiAgICAgewotICAgICAgICB2YXIgbWF0
Y2ggPSAvXkBbX2EtejAtOV1bX2EtejAtOS1dKig/OlxXfCQpLy5leGVjKHN0cik7Ci0gICAgICAg
IGlmICghbWF0Y2gpCi0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgdGhpcy5wcmV2
aW91c01hdGNoTGVuZ3RoID0gbWF0Y2hbMF0ubGVuZ3RoOwotICAgICAgICByZXR1cm4gdGhpcy5j
cmVhdGVTcGFuKG1hdGNoWzBdLCAid2Via2l0LWNzcy1hdC1ydWxlIik7CisgICAgICAgIGlmICh0
aGlzLm5vblRva2VuLmxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgIHRoaXMubGluZUZyYWdtZW50
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRoaXMubm9uVG9rZW4pKTsKKyAg
ICAgICAgICAgIHRoaXMubm9uVG9rZW4gPSAiIjsKKyAgICAgICAgfQogICAgIH0sCi0KLSAgICBz
eW50YXhIaWdobGlnaHRMaW5lOiBmdW5jdGlvbihsaW5lLCBwcmV2TGluZSkKKyAgICAKKyAgICBz
eW50YXhIaWdobGlnaHROb2RlOiBmdW5jdGlvbihub2RlKQogICAgIHsKLSAgICAgICAgdmFyIGNv
ZGUgPSBsaW5lLnRleHRDb250ZW50OwotICAgICAgICB3aGlsZSAobGluZS5maXJzdENoaWxkKQot
ICAgICAgICAgICAgbGluZS5yZW1vdmVDaGlsZChsaW5lLmZpcnN0Q2hpbGQpOwotCi0gICAgICAg
IHZhciB0b2tlbjsKLSAgICAgICAgdmFyIHRtcCA9IDA7Ci0gICAgICAgIHZhciBpID0gMDsKLSAg
ICAgICAgdGhpcy5wcmV2aW91c01hdGNoTGVuZ3RoID0gMDsKLQotICAgICAgICBpZiAocHJldkxp
bmUpIHsKLSAgICAgICAgICAgIGlmIChwcmV2TGluZS5fY29tbWVudENvbnRpbnVlcykgewotICAg
ICAgICAgICAgICAgIGlmICghKHRva2VuID0gdGhpcy5maW5kTXVsdGlsaW5lQ29tbWVudEVuZChj
b2RlKSkpIHsKLSAgICAgICAgICAgICAgICAgICAgdG9rZW4gPSB0aGlzLmNyZWF0ZVNwYW4oY29k
ZSwgIndlYmtpdC1qYXZhc2NyaXB0LWNvbW1lbnQiKTsKLSAgICAgICAgICAgICAgICAgICAgbGlu
ZS5fY29tbWVudENvbnRpbnVlcyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgaWYgKHRva2VuKSB7Ci0gICAgICAgICAgICAgICAgaSArPSB0aGlz
LnByZXZpb3VzTWF0Y2hMZW5ndGggPyB0aGlzLnByZXZpb3VzTWF0Y2hMZW5ndGggOiBjb2RlLmxl
bmd0aDsKLSAgICAgICAgICAgICAgICB0bXAgPSBpOwotICAgICAgICAgICAgICAgIGxpbmUuYXBw
ZW5kQ2hpbGQodG9rZW4pOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgdmFy
IGluU2VsZWN0b3IgPSAocHJldkxpbmUgJiYgcHJldkxpbmUuX2luU2VsZWN0b3IpOyAvLyBpbnNp
ZGUgYSBzZWxlY3Rvciwgd2UgY2FuIG5vdyBwYXJzZSBwcm9wZXJ0aWVzIGFuZCB2YWx1ZXMKLSAg
ICAgICAgdmFyIGluQXRSdWxlQmxvY2sgPSAocHJldkxpbmUgJiYgcHJldkxpbmUuX2luQXRSdWxl
QmxvY2spOyAvLyBpbnNpZGUgYW4gQHJ1bGUgYmxvY2ssIGJ1dCBub3QgbmVjZXNzYXJpbHkgaW5z
aWRlIGEgc2VsZWN0b3IgeWV0Ci0gICAgICAgIHZhciBhdFJ1bGVTdGFydGVkID0gKHByZXZMaW5l
ICYmIHByZXZMaW5lLl9hdFJ1bGVTdGFydGVkKTsgLy8gd2UgcmVjZWl2ZWQgYW4gQHJ1bGUsIHdl
IG1heSBzdG9wIHRoZSBAcnVsZSBhdCBhIHNlbWljb2xvbiBvciBvcGVuIGEgYmxvY2sgYW5kIGJl
Y29tZSBpbkF0UnVsZUJsb2NrCi0gICAgICAgIHZhciBhdFJ1bGVJc1NlbGVjdG9yID0gKHByZXZM
aW5lICYmIHByZXZMaW5lLl9hdFJ1bGVJc1NlbGVjdG9yKTsgLy8gd2hlbiB0aGlzIEBydWxlIG9w
ZW5zIGEgYmxvY2sgaXQgaW1tZWRpYXRlbHkgZ29lcyBpbnRvIHBhcnNpbmcgcHJvcGVydGllcyBh
bmQgdmFsdWVzIGluc3RlYWQgb2Ygc2VsZWN0b3JzCi0KLSAgICAgICAgZm9yICggOyBpIDwgY29k
ZS5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIGNvZGVGcmFnbWVudCA9IGNvZGUuc3Vi
c3RyKGkpOwotICAgICAgICAgICAgdmFyIHByZXZDaGFyID0gY29kZVtpIC0gMV07Ci0gICAgICAg
ICAgICB2YXIgY3VyckNoYXIgPSBjb2RlRnJhZ21lbnRbMF07Ci0gICAgICAgICAgICB0b2tlbiA9
IHRoaXMuZmluZFNpbmdsZUxpbmVDb21tZW50KGNvZGVGcmFnbWVudCk7Ci0gICAgICAgICAgICBp
ZiAoIXRva2VuKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCh0b2tlbiA9IHRoaXMuZmluZE11bHRp
bGluZUNvbW1lbnRTdGFydChjb2RlRnJhZ21lbnQpKSkKLSAgICAgICAgICAgICAgICAgICAgbGlu
ZS5fY29tbWVudENvbnRpbnVlcyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAoY3Vy
ckNoYXIgPT09ICI7IiAmJiAhaW5BdFJ1bGVCbG9jaykKLSAgICAgICAgICAgICAgICAgICAgYXRS
dWxlU3RhcnRlZCA9IGZhbHNlOwotICAgICAgICAgICAgICAgIGVsc2UgaWYgKGN1cnJDaGFyID09
PSAifSIpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGluU2VsZWN0b3IgJiYgaW5BdFJ1bGVC
bG9jayAmJiBhdFJ1bGVJc1NlbGVjdG9yKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpblNl
bGVjdG9yID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpbkF0UnVsZUJsb2NrID0g
ZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhdFJ1bGVTdGFydGVkID0gZmFsc2U7Ci0g
ICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5TZWxlY3RvcikgewotICAgICAgICAgICAg
ICAgICAgICAgICAgaW5TZWxlY3RvciA9IGZhbHNlOwotICAgICAgICAgICAgICAgICAgICB9IGVs
c2UgaWYgKGluQXRSdWxlQmxvY2spIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGluQXRSdWxl
QmxvY2sgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGF0UnVsZVN0YXJ0ZWQgPSBm
YWxzZTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAo
Y3VyckNoYXIgPT09ICJ7IikgewotICAgICAgICAgICAgICAgICAgICBpZiAoIWF0UnVsZVN0YXJ0
ZWQgfHwgaW5BdFJ1bGVCbG9jaykgewotICAgICAgICAgICAgICAgICAgICAgICAgaW5TZWxlY3Rv
ciA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIWluQXRSdWxlQmxvY2sg
JiYgYXRSdWxlSXNTZWxlY3RvcikgewotICAgICAgICAgICAgICAgICAgICAgICAgaW5BdFJ1bGVC
bG9jayA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpblNlbGVjdG9yID0gdHJ1ZTsK
LSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghaW5BdFJ1bGVCbG9jaykgewotICAgICAg
ICAgICAgICAgICAgICAgICAgaW5BdFJ1bGVCbG9jayA9IHRydWU7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBpblNlbGVjdG9yID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICB9IGVsc2UgaWYgKGluU2VsZWN0b3IpIHsKLSAgICAgICAgICAgICAgICAgICAg
aWYgKCFwcmV2Q2hhciB8fCAvXlxkLy50ZXN0KHByZXZDaGFyKSkgewotICAgICAgICAgICAgICAg
ICAgICAgICAgdG9rZW4gPSB0aGlzLmZpbmRVbml0cyhjb2RlRnJhZ21lbnQpOwotICAgICAgICAg
ICAgICAgICAgICB9IGVsc2UgaWYgKCFwcmV2Q2hhciB8fCAvXlxXLy50ZXN0KHByZXZDaGFyKSkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4gPSB0aGlzLmZpbmROdW1iZXIoY29kZUZy
YWdtZW50KSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbmRLZXl3
b3JkKGNvZGVGcmFnbWVudCkgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhp
cy5maW5kVVJMKGNvZGVGcmFnbWVudCkgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGhpcy5maW5kUHJvcGVydHkoY29kZUZyYWdtZW50KSB8fAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0aGlzLmZpbmRBdFJ1bGUoY29kZUZyYWdtZW50KSB8fAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbmRHZW5lcmljSWRlbnQoY29kZUZyYWdtZW50
KSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbmRTaW5nbGVMaW5l
U3RyaW5nKGNvZGVGcmFnbWVudCk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICB9IGVsc2UgaWYgKCFpblNlbGVjdG9yKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChh
dFJ1bGVTdGFydGVkICYmICFpbkF0UnVsZUJsb2NrKQotICAgICAgICAgICAgICAgICAgICAgICAg
dG9rZW4gPSB0aGlzLmZpbmRVUkwoY29kZUZyYWdtZW50KTsgLy8gZm9yIEBpbXBvcnQKLSAgICAg
ICAgICAgICAgICAgICAgaWYgKCF0b2tlbikgewotICAgICAgICAgICAgICAgICAgICAgICAgdG9r
ZW4gPSB0aGlzLmZpbmRTZWxlY3Rvcihjb2RlRnJhZ21lbnQpIHx8Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRoaXMuZmluZFBzZXVkb0NsYXNzKGNvZGVGcmFnbWVudCkgfHwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maW5kQXRSdWxlKGNvZGVGcmFnbWVu
dCk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9CisgICAgICAgIHRo
aXMubGluZUNvZGUgPSBub2RlLnRleHRDb250ZW50OworICAgICAgICB0aGlzLmxpbmVGcmFnbWVu
dCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKKyAgICAgICAgdGhpcy5jdXJz
b3IgPSAwOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaWYgKHRoaXMuY3Vy
c29yID49IHRoaXMubGluZUNvZGUubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgdmFyIGNvZGVG
cmFnbWVudCA9IHRoaXMubGluZUNvZGUuc3Vic3RyaW5nKHRoaXMuY3Vyc29yKTsKKyAgICAgICAg
ICAgICAgICB0aGlzLm5vblRva2VuICs9IGNvZGVGcmFnbWVudDsKKyAgICAgICAgICAgICAgICB0
aGlzLmN1cnNvciArPSBjb2RlRnJhZ21lbnQubGVuZ3RoOworICAgICAgICAgICAgICAgIHRoaXMu
YXBwZW5kTm9uVG9rZW4oKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAobm9kZS5maXJzdENoaWxk
KQorICAgICAgICAgICAgICAgICAgICBub2RlLnJlbW92ZUNoaWxkKG5vZGUuZmlyc3RDaGlsZCk7
CisgICAgICAgICAgICAgICAgbm9kZS5hcHBlbmRDaGlsZCh0aGlzLmxpbmVGcmFnbWVudCk7Cisg
ICAgICAgICAgICAgICAgdGhpcy5saW5lRnJhZ21lbnQgPW51bGw7CisgICAgICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBpZiAodG9rZW4pIHsKLSAgICAg
ICAgICAgICAgICBpZiAoY3VyckNoYXIgPT09ICJAIikgewotICAgICAgICAgICAgICAgICAgICBh
dFJ1bGVTdGFydGVkID0gdHJ1ZTsKLQotICAgICAgICAgICAgICAgICAgICAvLyBUaGUgQGZvbnQt
ZmFjZSwgQHBhZ2UsIGFuZCBAdmFyaWFibGVzIGF0LXJ1bGVzIGRvIG5vdCBjb250YWluIHNlbGVj
dG9ycyBsaWtlIG90aGVyIGF0LXJ1bGVzCi0gICAgICAgICAgICAgICAgICAgIC8vIGluc3RlYWQg
aXQgYWN0cyBhcyBhIHNlbGVjdG9yIGFuZCBjb250YWlucyBwcm9wZXJ0aWVzIGFuZCB2YWx1ZXMu
Ci0gICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gdG9rZW4udGV4dENvbnRlbnQ7Ci0gICAg
ICAgICAgICAgICAgICAgIGF0UnVsZUlzU2VsZWN0b3IgPSAvZm9udC1mYWNlLy50ZXN0KHRleHQp
IHx8IC9wYWdlLy50ZXN0KHRleHQpIHx8IC92YXJpYWJsZXMvLnRlc3QodGV4dCk7Ci0gICAgICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgaWYgKHRtcCAhPT0gaSkKLSAgICAgICAgICAg
ICAgICAgICAgbGluZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjb2RlLnN1
YnN0cmluZyh0bXAsIGkpKSk7Ci0gICAgICAgICAgICAgICAgbGluZS5hcHBlbmRDaGlsZCh0b2tl
bik7Ci0gICAgICAgICAgICAgICAgaSArPSB0aGlzLnByZXZpb3VzTWF0Y2hMZW5ndGggLSAxOwot
ICAgICAgICAgICAgICAgIHRtcCA9IGkgKyAxOwotICAgICAgICAgICAgfQorICAgICAgICAgICAg
dGhpcy5sZXgoKTsKICAgICAgICAgfQorICAgIH0KK30KIAotICAgICAgICBsaW5lLl9pblNlbGVj
dG9yID0gaW5TZWxlY3RvcjsKLSAgICAgICAgbGluZS5faW5BdFJ1bGVCbG9jayA9IGluQXRSdWxl
QmxvY2s7Ci0gICAgICAgIGxpbmUuX2F0UnVsZVN0YXJ0ZWQgPSBhdFJ1bGVTdGFydGVkOwotICAg
ICAgICBsaW5lLl9hdFJ1bGVJc1NlbGVjdG9yID0gYXRSdWxlSXNTZWxlY3RvcjsKK1dlYkluc3Bl
Y3Rvci5DU1NTb3VyY2VTeW50YXhIaWdobGlnaHRlciA9IGZ1bmN0aW9uKHRhYmxlLCBzb3VyY2VG
cmFtZSkgeworICAgIFdlYkluc3BlY3Rvci5Tb3VyY2VTeW50YXhIaWdobGlnaHRlci5jYWxsKHRo
aXMsIHRhYmxlLCBzb3VyY2VGcmFtZSk7CisKKyAgICB0aGlzLkxleFN0YXRlID0geworICAgICAg
ICBJbml0aWFsOiAxLAorICAgICAgICBJbnNpZGVSdWxlOiAyLAorICAgICAgICBFeHBlY3RpbmdQ
cm9wZXJ0eTogMywKKyAgICAgICAgRXhwZWN0aW5nVmFsdWU6IDQsCisgICAgICAgIEFmdGVyU2Vs
ZWN0b3I6IDUsCisgICAgICAgIEV4cGVjdGluZ0ltcG9ydFVSTDogNiwKKyAgICAgICAgQWZ0ZXJB
dFJ1bGU6IDcsCisgICAgICAgIEV4cGVjdGluZ01lZGlhVHlwZTogOCwKKyAgICAgICAgQWZ0ZXJB
dENoYXJzZXQ6IDkKKyAgICB9OworICAgIHRoaXMuQ29udGludWVTdGF0ZSA9IHsKKyAgICAgICAg
Tm9uZTogMCwKKyAgICAgICAgQ29tbWVudDogMSwKKyAgICAgICAgU2luZ2xlUXVvdGVTdHJpbmc6
IDIsCisgICAgICAgIERvdWJsZVF1b3RlU3RyaW5nOiAzCisgICAgfTsKKyAgICAKKyAgICB0aGlz
Lm5vblRva2VuID0gIiI7CisgICAgdGhpcy5jdXJzb3IgPSAwOworICAgIHRoaXMubGluZUluZGV4
ID0gLTE7CisgICAgdGhpcy5saW5lQ29kZSA9ICIiOworICAgIHRoaXMubGluZUZyYWdtZW50ID0g
bnVsbDsKKyAgICB0aGlzLmxleFN0YXRlID0gdGhpcy5MZXhTdGF0ZS5Jbml0aWFsOworICAgIHRo
aXMuY29udGludWVTdGF0ZSA9IHRoaXMuQ29udGludWVTdGF0ZS5Ob25lOworICAgIAorICAgIHRo
aXMucnVsZXMgPSBbeworICAgICAgICBwYXR0ZXJuOiAvXlwvXCpbXlwqXSpcKisoW15cLypdW14q
XSpcKispKlwvL2ksCisgICAgICAgIGFjdGlvbjogY29tbWVudEFjdGlvbgorICAgIH0sIHsKKyAg
ICAgICAgcGF0dGVybjogL14oPzpcL1wqKD86W15cKl18XCpbXlwvXSkqKS9pLAorICAgICAgICBh
Y3Rpb246IGNvbW1lbnRTdGFydEFjdGlvbgorICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjogL14o
PzooPzpbXlwqXXxcKlteXC9dKSpcKitcLykvaSwKKyAgICAgICAgYWN0aW9uOiBjb21tZW50RW5k
QWN0aW9uLAorICAgICAgICBjb250aW51ZVN0YXRlQ29uZGl0aW9uOiB0aGlzLkNvbnRpbnVlU3Rh
dGUuQ29tbWVudAorICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjogL14uKi9pLAorICAgICAgICBh
Y3Rpb246IGNvbW1lbnRNaWRkbGVBY3Rpb24sCisgICAgICAgIGNvbnRpbnVlU3RhdGVDb25kaXRp
b246IHRoaXMuQ29udGludWVTdGF0ZS5Db21tZW50CisgICAgfSwgeworICAgICAgICBwYXR0ZXJu
OiAvXnsvaSwKKyAgICAgICAgYWN0aW9uOiBydWxlU3RhcnRBY3Rpb24sCisgICAgICAgIGxleFN0
YXRlQ29uZGl0aW9uOiB0aGlzLkxleFN0YXRlLkFmdGVyU2VsZWN0b3IsCisgICAgICAgIGRvbnRB
cHBlbmROb25Ub2tlbjogdHJ1ZQorICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjogL159L2ksCisg
ICAgICAgIGFjdGlvbjogcnVsZUVuZEFjdGlvbiwKKyAgICAgICAgbGV4U3RhdGVDb25kaXRpb246
IHRoaXMuTGV4U3RhdGUuRXhwZWN0aW5nVmFsdWUsCisgICAgICAgIGRvbnRBcHBlbmROb25Ub2tl
bjogdHJ1ZQorICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjogL159L2ksCisgICAgICAgIGFjdGlv
bjogcnVsZUVuZEFjdGlvbiwKKyAgICAgICAgbGV4U3RhdGVDb25kaXRpb246IHRoaXMuTGV4U3Rh
dGUuRXhwZWN0aW5nUHJvcGVydHksCisgICAgICAgIGRvbnRBcHBlbmROb25Ub2tlbjogdHJ1ZQor
ICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjogL147L2ksCisgICAgICAgIGFjdGlvbjogZGVjbGFy
YXRpb25FbmRBY3Rpb24sCisgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0aGlzLkxleFN0YXRl
LkV4cGVjdGluZ1ZhbHVlLAorICAgICAgICBkb250QXBwZW5kTm9uVG9rZW46IHRydWUKKyAgICB9
LCB7CisgICAgICAgIHBhdHRlcm46IC9eKD86LXdlYmtpdC1tYXRjaC1uZWFyZXN0LW1haWwtYmxv
Y2txdW90ZS1jb2xvcnwtd2Via2l0LXZhcmlhYmxlLWRlY2xhcmF0aW9uLWJsb2NrfC13ZWJraXQt
dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb258LXdlYmtpdC10ZXh0LWRlY29yYXRpb25zLWluLWVm
ZmVjdHwtd2Via2l0LWJvcmRlci1ob3Jpem9udGFsLXNwYWNpbmd8LXdlYmtpdC1hbmltYXRpb24t
dGltaW5nLWZ1bmN0aW9ufC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudHwtd2Via2l0
LWJvcmRlci12ZXJ0aWNhbC1zcGFjaW5nfC13ZWJraXQtbWFyZ2luLWJvdHRvbS1jb2xsYXBzZXwt
d2Via2l0LXBlcnNwZWN0aXZlLW9yaWdpbi15fC13ZWJraXQtcGVyc3BlY3RpdmUtb3JpZ2luLXh8
LXdlYmtpdC1iYWNrZ3JvdW5kLWNvbXBvc2l0ZXwtd2Via2l0LWFuaW1hdGlvbi1wbGF5LXN0YXRl
fC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eXwtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb258
LXdlYmtpdC1tYXJnaW4tdG9wLWNvbGxhcHNlfC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZXwt
d2Via2l0LWNvbHVtbi1icmVhay1iZWZvcmV8LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5fC13
ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbnxib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1c3wtd2Vi
a2l0LXRyYW5zZm9ybS1vcmlnaW4tenwtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW4teXwtd2Via2l0
LXRyYW5zZm9ybS1vcmlnaW4teHwtd2Via2l0LXBlcnNwZWN0aXZlLW9yaWdpbnwtd2Via2l0LW1h
cnF1ZWUtcmVwZXRpdGlvbnwtd2Via2l0LWNvbHVtbi1icmVhay1hZnRlcnwtd2Via2l0LWFuaW1h
dGlvbi1kdXJhdGlvbnxib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzfC13ZWJraXQtdGV4dC1zdHJv
a2Utd2lkdGh8LXdlYmtpdC10ZXh0LXN0cm9rZS1jb2xvcnwtd2Via2l0LW1hcnF1ZWUtaW5jcmVt
ZW50fC13ZWJraXQtbWFycXVlZS1kaXJlY3Rpb258LXdlYmtpdC1jb2x1bW4tcnVsZS13aWR0aHwt
d2Via2l0LWNvbHVtbi1ydWxlLXN0eWxlfC13ZWJraXQtY29sdW1uLXJ1bGUtY29sb3J8LXdlYmtp
dC1ib3gtb3JkaW5hbC1ncm91cHwtd2Via2l0LWJhY2tncm91bmQtb3JpZ2lufC13ZWJraXQtdHJh
bnNpdGlvbi1kZWxheXwtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW58LXdlYmtpdC10ZXh0LXNpemUt
YWRqdXN0fHRleHQtbGluZS10aHJvdWdoLXdpZHRofHRleHQtbGluZS10aHJvdWdoLXN0eWxlfHRl
eHQtbGluZS10aHJvdWdoLWNvbG9yfGJvcmRlci10b3AtcmlnaHQtcmFkaXVzfC13ZWJraXQtdHJh
bnNmb3JtLXN0eWxlfC13ZWJraXQtdGV4dC1maWxsLWNvbG9yfC13ZWJraXQtbWFzay1wb3NpdGlv
bi15fC13ZWJraXQtbWFzay1wb3NpdGlvbi14fC13ZWJraXQtbWFzay1hdHRhY2htZW50fC13ZWJr
aXQtbWFyZ2luLWNvbGxhcHNlfC13ZWJraXQtZm9udC1zaXplLWRlbHRhfC13ZWJraXQtYmFja2dy
b3VuZC1zaXplfC13ZWJraXQtYmFja2dyb3VuZC1jbGlwfC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5
fHRleHQtbGluZS10aHJvdWdoLW1vZGV8Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1c3wtd2Via2l0LW1h
c2stY29tcG9zaXRlfC13ZWJraXQtbWFzay1ib3gtaW1hZ2V8LXdlYmtpdC1mb250LXNtb290aGlu
Z3wtd2Via2l0LWJveC1mbGV4LWdyb3VwfC13ZWJraXQtYW5pbWF0aW9uLW5hbWV8YmFja2dyb3Vu
ZC1wb3NpdGlvbi15fGJhY2tncm91bmQtcG9zaXRpb24teHxiYWNrZ3JvdW5kLWF0dGFjaG1lbnR8
LXdlYmtpdC10ZXh0LXNlY3VyaXR5fC13ZWJraXQtcGFkZGluZy1zdGFydHwtd2Via2l0LW1hc2st
cmVwZWF0LXl8LXdlYmtpdC1tYXNrLXJlcGVhdC14fC13ZWJraXQtbWFzay1wb3NpdGlvbnwtd2Vi
a2l0LW1hcnF1ZWUtc3R5bGV8LXdlYmtpdC1tYXJxdWVlLXNwZWVkfC13ZWJraXQtYm94LWRpcmVj
dGlvbnwtd2Via2l0LWJvcmRlci1yYWRpdXN8dGV4dC11bmRlcmxpbmUtd2lkdGh8dGV4dC11bmRl
cmxpbmUtc3R5bGV8dGV4dC11bmRlcmxpbmUtY29sb3J8LXdlYmtpdC1ydGwtb3JkZXJpbmd8LXdl
YmtpdC1tYXJnaW4tc3RhcnR8LXdlYmtpdC1jb2x1bW4td2lkdGh8LXdlYmtpdC1jb2x1bW4tY291
bnR8LXdlYmtpdC1ib3JkZXItaW1hZ2V8dGV4dC11bmRlcmxpbmUtbW9kZXx0ZXh0LW92ZXJsaW5l
LXdpZHRofHRleHQtb3ZlcmxpbmUtc3R5bGV8dGV4dC1vdmVybGluZS1jb2xvcnxsaXN0LXN0eWxl
LXBvc2l0aW9ufGJvcmRlci1ib3R0b20td2lkdGh8Ym9yZGVyLWJvdHRvbS1zdHlsZXxib3JkZXIt
Ym90dG9tLWNvbG9yfGJhY2tncm91bmQtcmVwZWF0LXl8YmFja2dyb3VuZC1yZXBlYXQteHxiYWNr
Z3JvdW5kLXBvc2l0aW9ufC13ZWJraXQtdXNlci1zZWxlY3R8LXdlYmtpdC11c2VyLW1vZGlmeXwt
d2Via2l0LXRleHQtc3Ryb2tlfC13ZWJraXQtcGVyc3BlY3RpdmV8LXdlYmtpdC1tYXNrLXJlcGVh
dHwtd2Via2l0LW1hc2stb3JpZ2lufC13ZWJraXQtY29sdW1uLXJ1bGV8LXdlYmtpdC1ib3gtcmVm
bGVjdHx0ZXh0LW92ZXJsaW5lLW1vZGV8Ym9yZGVyLXJpZ2h0LXdpZHRofGJvcmRlci1yaWdodC1z
dHlsZXxib3JkZXItcmlnaHQtY29sb3J8LXdlYmtpdC10cmFuc2l0aW9ufC13ZWJraXQtbWFzay1p
bWFnZXwtd2Via2l0LWxpbmUtY2xhbXB8LXdlYmtpdC1saW5lLWJyZWFrfC13ZWJraXQtY29sdW1u
LWdhcHwtd2Via2l0LWJveC1zaXppbmd8LXdlYmtpdC1ib3gtc2hhZG93fC13ZWJraXQtYm94LW9y
aWVudHwtd2Via2l0LWJvcmRlci1maXR8LXdlYmtpdC1hcHBlYXJhbmNlfHRleHQtbGluZS10aHJv
dWdofHBhZ2UtYnJlYWstaW5zaWRlfHBhZ2UtYnJlYWstYmVmb3JlfGNvdW50ZXItaW5jcmVtZW50
fGJvcmRlci1sZWZ0LXdpZHRofGJvcmRlci1sZWZ0LXN0eWxlfGJvcmRlci1sZWZ0LWNvbG9yfGJh
Y2tncm91bmQtcmVwZWF0fGJhY2tncm91bmQtb3JpZ2lufC13ZWJraXQtdXNlci1kcmFnfC13ZWJr
aXQtdHJhbnNmb3JtfC13ZWJraXQtbmJzcC1tb2RlfC13ZWJraXQtbWFzay1zaXplfC13ZWJraXQt
bWFzay1jbGlwfC13ZWJraXQtaGlnaGxpZ2h0fC13ZWJraXQtYm94LWxpbmVzfC13ZWJraXQtYm94
LWFsaWdufC13ZWJraXQtYW5pbWF0aW9ufHBhZ2UtYnJlYWstYWZ0ZXJ8bGlzdC1zdHlsZS1pbWFn
ZXxib3JkZXItdG9wLXdpZHRofGJvcmRlci10b3Atc3R5bGV8Ym9yZGVyLXRvcC1jb2xvcnxiYWNr
Z3JvdW5kLWltYWdlfGJhY2tncm91bmQtY29sb3J8LXdlYmtpdC1ib3gtcGFja3wtd2Via2l0LWJv
eC1mbGV4fHRleHQtZGVjb3JhdGlvbnxsaXN0LXN0eWxlLXR5cGV8Ym9yZGVyLWNvbGxhcHNlfGJh
Y2tncm91bmQtc2l6ZXxiYWNrZ3JvdW5kLWNsaXB8LXdlYmtpdC1tYXJxdWVlfC13ZWJraXQtY29s
dW1uc3wtd2Via2l0LWJpbmRpbmd8dmVydGljYWwtYWxpZ258dGV4dC11bmRlcmxpbmV8dGV4dC10
cmFuc2Zvcm18dGV4dC1yZW5kZXJpbmd8cG9pbnRlci1ldmVudHN8cGFkZGluZy1ib3R0b218b3V0
bGluZS1vZmZzZXR8bGV0dGVyLXNwYWNpbmd8Ym9yZGVyLXNwYWNpbmd8dW5pY29kZS1yYW5nZXx0
ZXh0LW92ZXJsaW5lfHRleHQtb3ZlcmZsb3d8cGFkZGluZy1yaWdodHxvdXRsaW5lLXdpZHRofG91
dGxpbmUtc3R5bGV8b3V0bGluZS1jb2xvcnxtYXJnaW4tYm90dG9tfGNvdW50ZXItcmVzZXR8Ym9y
ZGVyLXJhZGl1c3xib3JkZXItYm90dG9tfHdvcmQtc3BhY2luZ3x1bmljb2RlLWJpZGl8dGFibGUt
bGF5b3V0fHBhZGRpbmctbGVmdHxtYXJnaW4tcmlnaHR8Zm9udC12YXJpYW50fGZvbnQtc3RyZXRj
aHxjYXB0aW9uLXNpZGV8Ym9yZGVyLXdpZHRofGJvcmRlci1zdHlsZXxib3JkZXItcmlnaHR8Ym9y
ZGVyLWNvbG9yfC13ZWJraXQtbWFza3x3aGl0ZS1zcGFjZXx0ZXh0LXNoYWRvd3x0ZXh0LWluZGVu
dHxwYWRkaW5nLXRvcHxtYXJnaW4tbGVmdHxsaW5lLWhlaWdodHxmb250LXdlaWdodHxmb250LWZh
bWlseXxlbXB0eS1jZWxsc3xib3JkZXItbGVmdHx3b3JkLWJyZWFrfHZpc2liaWxpdHl8dGV4dC1h
bGlnbnxvdmVyZmxvdy15fG92ZXJmbG93LXh8bWluLWhlaWdodHxtYXgtaGVpZ2h0fG1hcmdpbi10
b3B8bGlzdC1zdHlsZXxmb250LXN0eWxlfGJvcmRlci10b3B8YmFja2dyb3VuZHx3b3JkLXdyYXB8
bWluLXdpZHRofG1heC13aWR0aHxmb250LXNpemV8ZGlyZWN0aW9ufHBvc2l0aW9ufG92ZXJmbG93
fHotaW5kZXh8cGFkZGluZ3xvdXRsaW5lfG9ycGhhbnN8b3BhY2l0eXxkaXNwbGF5fGNvbnRlbnR8
d2lkb3dzfHJlc2l6ZXxxdW90ZXN8bWFyZ2lufGhlaWdodHxjdXJzb3J8Ym90dG9tfGJvcmRlcnx3
aWR0aHxyaWdodHxmbG9hdHxjb2xvcnxjbGVhcnx6b29tfHNpemV8cGFnZXxsZWZ0fGZvbnR8Y2xp
cHx0b3B8c3JjKS9pLAorICAgICAgICBhY3Rpb246IHByb3BlcnR5QWN0aW9uLAorICAgICAgICBs
ZXhTdGF0ZUNvbmRpdGlvbjogdGhpcy5MZXhTdGF0ZS5FeHBlY3RpbmdQcm9wZXJ0eQorICAgIH0s
IHsKKyAgICAgICAgcGF0dGVybjogL146L2ksCisgICAgICAgIGFjdGlvbjogcHJvcGVydHlFbmRB
Y3Rpb24sCisgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0aGlzLkxleFN0YXRlLkV4cGVjdGlu
Z1Byb3BlcnR5LAorICAgICAgICBkb250QXBwZW5kTm9uVG9rZW46IHRydWUKKyAgICB9LCB7Cisg
ICAgICAgIHBhdHRlcm46IC9edXJsXChccyooPzooPzoiKD86W1x0ICEjXCQlJlwoLX5dfFxcbnxc
clxufFxyfFxmfCd8W1wyMDAtXDM3N118KD86XFswLTlhLWZBLUZdezEsNn1bIFxuXHJcdFxmXT98
XFsgLX5cMjAwLVwzNzdcbl0pKSoifCcoPzpbXHQgISNcJCUmXCgtfl18XFxufFxyXG58XHJ8XGZ8
J3xbXDIwMC1cMzc3XXwoPzpcWzAtOWEtZkEtRl17MSw2fVsgXG5cclx0XGZdP3xcWyAtflwyMDAt
XDM3N1xuXSkpKicpfCg/OlshIyQlJiotfl18W1wyMDAtXDM3N118KD86XFswLTlhLWZBLUZdezEs
Nn1bIFxuXHJcdFxmXT98XFsgLX5cMjAwLVwzNzdcbl0pKSopXHMqXCkvaSwKKyAgICAgICAgYWN0
aW9uOiBVUkxBY3Rpb24sCisgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0aGlzLkxleFN0YXRl
LkV4cGVjdGluZ1ZhbHVlCisgICAgfSwgeworICAgICAgICBwYXR0ZXJuOiAvXnVybFwoXHMqKD86
KD86Iig/OltcdCAhI1wkJSZcKC1+XXxcXG58XHJcbnxccnxcZnwnfFtcMjAwLVwzNzddfCg/Olxb
MC05YS1mQS1GXXsxLDZ9WyBcblxyXHRcZl0/fFxbIC1+XDIwMC1cMzc3XG5dKSkqInwnKD86W1x0
ICEjXCQlJlwoLX5dfFxcbnxcclxufFxyfFxmfCd8W1wyMDAtXDM3N118KD86XFswLTlhLWZBLUZd
ezEsNn1bIFxuXHJcdFxmXT98XFsgLX5cMjAwLVwzNzdcbl0pKSonKXwoPzpbISMkJSYqLX5dfFtc
MjAwLVwzNzddfCg/OlxbMC05YS1mQS1GXXsxLDZ9WyBcblxyXHRcZl0/fFxbIC1+XDIwMC1cMzc3
XG5dKSkqKVxzKlwpL2ksCisgICAgICAgIGFjdGlvbjogaW1wb3J0VVJMQWN0aW9uLAorICAgICAg
ICBsZXhTdGF0ZUNvbmRpdGlvbjogdGhpcy5MZXhTdGF0ZS5FeHBlY3RpbmdJbXBvcnRVUkwKKyAg
ICB9LCB7CisgICAgICAgIHBhdHRlcm46IC9eKD86Iig/OltcdCAhI1wkJSZcKC1+XXxcXG58XHJc
bnxccnxcZnwnfFtcMjAwLVwzNzddfCg/OlxbMC05YS1mQS1GXXsxLDZ9WyBcblxyXHRcZl0/fFxb
IC1+XDIwMC1cMzc3XG5dKSkqInwnKD86W1x0ICEjXCQlJlwoLX5dfFxcbnxcclxufFxyfFxmfCd8
W1wyMDAtXDM3N118KD86XFswLTlhLWZBLUZdezEsNn1bIFxuXHJcdFxmXT98XFsgLX5cMjAwLVwz
Nzdcbl0pKSonKS9pLAorICAgICAgICBhY3Rpb246IHN0cmluZ0FjdGlvbiwKKyAgICAgICAgbGV4
U3RhdGVDb25kaXRpb246IHRoaXMuTGV4U3RhdGUuRXhwZWN0aW5nVmFsdWUKKyAgICB9LCB7Cisg
ICAgICAgIHBhdHRlcm46IC9eKD86Jyg/OltcdCAhI1wkJSZcKC1+XXxcXG58XHJcbnxccnxcZnwn
fFtcMjAwLVwzNzddfCg/OlxbMC05YS1mQS1GXXsxLDZ9WyBcblxyXHRcZl0/fFxbIC1+XDIwMC1c
Mzc3XG5dKSkqKVxcJC8sCisgICAgICAgIGFjdGlvbjogc2luZ2xlUXVvdGVTdHJpbmdTdGFydEFj
dGlvbiwKKyAgICAgICAgbGV4U3RhdGVDb25kaXRpb246IHRoaXMuTGV4U3RhdGUuRXhwZWN0aW5n
VmFsdWUKKyAgICB9LCB7CisgICAgICAgIHBhdHRlcm46IC9eKD86KD86W1x0ICEjXCQlJlwoLX5d
fFxcbnxcclxufFxyfFxmfCd8W1wyMDAtXDM3N118KD86XFswLTlhLWZBLUZdezEsNn1bIFxuXHJc
dFxmXT98XFsgLX5cMjAwLVwzNzdcbl0pKSonKS8sCisgICAgICAgIGFjdGlvbjogc2luZ2xlUXVv
dGVTdHJpbmdFbmRBY3Rpb24sCisgICAgICAgIGNvbnRpbnVlU3RhdGVDb25kaXRpb246IHRoaXMu
Q29udGludWVTdGF0ZS5TaW5nbGVRdW90ZVN0cmluZworICAgIH0sIHsKKyAgICAgICAgcGF0dGVy
bjogL14oPzooPzpbXHQgISNcJCUmXCgtfl18XFxufFxyXG58XHJ8XGZ8J3xbXDIwMC1cMzc3XXwo
PzpcWzAtOWEtZkEtRl17MSw2fVsgXG5cclx0XGZdP3xcWyAtflwyMDAtXDM3N1xuXSkpKilcXCQv
LAorICAgICAgICBhY3Rpb246IHNpbmdsZVF1b3RlU3RyaW5nTWlkZGxlQWN0aW9uLAorICAgICAg
ICBjb250aW51ZVN0YXRlQ29uZGl0aW9uOiB0aGlzLkNvbnRpbnVlU3RhdGUuU2luZ2xlUXVvdGVT
dHJpbmcKKyAgICB9LCB7CisgICAgICAgIHBhdHRlcm46IC9eKD86Iig/OltcdCAhI1wkJSZcKC1+
XXxcXG58XHJcbnxccnxcZnwnfFtcMjAwLVwzNzddfCg/OlxbMC05YS1mQS1GXXsxLDZ9WyBcblxy
XHRcZl0/fFxbIC1+XDIwMC1cMzc3XG5dKSkqKVxcJC8sCisgICAgICAgIGFjdGlvbjogZG91Ymxl
UXVvdGVTdHJpbmdTdGFydEFjdGlvbiwKKyAgICAgICAgbGV4U3RhdGVDb25kaXRpb246IHRoaXMu
TGV4U3RhdGUuRXhwZWN0aW5nVmFsdWUKKyAgICB9LCB7CisgICAgICAgIHBhdHRlcm46IC9eKD86
KD86W1x0ICEjXCQlJlwoLX5dfFxcbnxcclxufFxyfFxmfCd8W1wyMDAtXDM3N118KD86XFswLTlh
LWZBLUZdezEsNn1bIFxuXHJcdFxmXT98XFsgLX5cMjAwLVwzNzdcbl0pKSoiKS8sCisgICAgICAg
IGFjdGlvbjogZG91YmxlUXVvdGVTdHJpbmdFbmRBY3Rpb24sCisgICAgICAgIGNvbnRpbnVlU3Rh
dGVDb25kaXRpb246IHRoaXMuQ29udGludWVTdGF0ZS5Eb3VibGVRdW90ZVN0cmluZworICAgIH0s
IHsKKyAgICAgICAgcGF0dGVybjogL14oPzooPzpbXHQgISNcJCUmXCgtfl18XFxufFxyXG58XHJ8
XGZ8J3xbXDIwMC1cMzc3XXwoPzpcWzAtOWEtZkEtRl17MSw2fVsgXG5cclx0XGZdP3xcWyAtflwy
MDAtXDM3N1xuXSkpKilcXCQvLAorICAgICAgICBhY3Rpb246IGRvdWJsZVF1b3RlU3RyaW5nTWlk
ZGxlQWN0aW9uLAorICAgICAgICBjb250aW51ZVN0YXRlQ29uZGl0aW9uOiB0aGlzLkNvbnRpbnVl
U3RhdGUuRG91YmxlUXVvdGVTdHJpbmcKKyAgICB9LCB7CisgICAgICAgIHBhdHRlcm46IC9eKD86
Iyg/OlswLTlhLWZBLUZdezZ9fFswLTlhLWZBLUZdezN9KXxhbGljZWJsdWV8YW50aXF1ZXdoaXRl
fGFxdWF8YXF1YW1hcmluZXxhenVyZXxiZWlnZXxiaXNxdWV8YmxhY2t8YmxhbmNoZWRhbG1vbmR8
Ymx1ZXxibHVldmlvbGV0fGJyb3dufGJ1cmx5d29vZHxjYWRldGJsdWV8Y2hhcnRyZXVzZXxjaG9j
b2xhdGV8Y29yYWx8Y29ybmZsb3dlcmJsdWV8Y29ybnNpbGt8Y3JpbXNvbnxjeWFufGRhcmtibHVl
fGRhcmtjeWFufGRhcmtnb2xkZW5yb2R8ZGFya2dyYXl8ZGFya2dyZXl8ZGFya2dyZWVufGRhcmtr
aGFraXxkYXJrbWFnZW50YXxkYXJrb2xpdmVncmVlbnxkYXJrb3JhbmdlfGRhcmtvcmNoaWR8ZGFy
a3JlZHxkYXJrc2FsbW9ufGRhcmtzZWFncmVlbnxkYXJrc2xhdGVibHVlfGRhcmtzbGF0ZWdyYXl8
ZGFya3NsYXRlZ3JleXxkYXJrdHVycXVvaXNlfGRhcmt2aW9sZXR8ZGVlcHBpbmt8ZGVlcHNreWJs
dWV8ZGltZ3JheXxkaW1ncmV5fGRvZGdlcmJsdWV8ZmlyZWJyaWNrfGZsb3JhbHdoaXRlfGZvcmVz
dGdyZWVufGZ1Y2hzaWF8Z2FpbnNib3JvfGdob3N0d2hpdGV8Z29sZHxnb2xkZW5yb2R8Z3JheXxn
cmV5fGdyZWVufGdyZWVueWVsbG93fGhvbmV5ZGV3fGhvdHBpbmt8aW5kaWFucmVkfGluZGlnb3xp
dm9yeXxraGFraXxsYXZlbmRlcnxsYXZlbmRlcmJsdXNofGxhd25ncmVlbnxsZW1vbmNoaWZmb258
bGlnaHRibHVlfGxpZ2h0Y29yYWx8bGlnaHRjeWFufGxpZ2h0Z29sZGVucm9keWVsbG93fGxpZ2h0
Z3JheXxsaWdodGdyZXl8bGlnaHRncmVlbnxsaWdodHBpbmt8bGlnaHRzYWxtb258bGlnaHRzZWFn
cmVlbnxsaWdodHNreWJsdWV8bGlnaHRzbGF0ZWJsdWV8bGlnaHRzbGF0ZWdyYXl8bGlnaHRzbGF0
ZWdyZXl8bGlnaHRzdGVlbGJsdWV8bGlnaHR5ZWxsb3d8bGltZXxsaW1lZ3JlZW58bGluZW58bWFn
ZW50YXxtYXJvb258bWVkaXVtYXF1YW1hcmluZXxtZWRpdW1ibHVlfG1lZGl1bW9yY2hpZHxtZWRp
dW1wdXJwbGV8bWVkaXVtc2VhZ3JlZW58bWVkaXVtc2xhdGVibHVlfG1lZGl1bXNwcmluZ2dyZWVu
fG1lZGl1bXR1cnF1b2lzZXxtZWRpdW12aW9sZXRyZWR8bWlkbmlnaHRibHVlfG1pbnRjcmVhbXxt
aXN0eXJvc2V8bW9jY2FzaW58bmF2YWpvd2hpdGV8bmF2eXxvbGRsYWNlfG9saXZlfG9saXZlZHJh
YnxvcmFuZ2V8b3JhbmdlcmVkfG9yY2hpZHxwYWxlZ29sZGVucm9kfHBhbGVncmVlbnxwYWxldHVy
cXVvaXNlfHBhbGV2aW9sZXRyZWR8cGFwYXlhd2hpcHxwZWFjaHB1ZmZ8cGVydXxwaW5rfHBsdW18
cG93ZGVyYmx1ZXxwdXJwbGV8cmVkfHJvc3licm93bnxyb3lhbGJsdWV8c2FkZGxlYnJvd258c2Fs
bW9ufHNhbmR5YnJvd258c2VhZ3JlZW58c2Vhc2hlbGx8c2llbm5hfHNpbHZlcnxza3libHVlfHNs
YXRlYmx1ZXxzbGF0ZWdyYXl8c2xhdGVncmV5fHNub3d8c3ByaW5nZ3JlZW58c3RlZWxibHVlfHRh
bnx0ZWFsfHRoaXN0bGV8dG9tYXRvfHR1cnF1b2lzZXx2aW9sZXR8dmlvbGV0cmVkfHdoZWF0fHdo
aXRlfHdoaXRlc21va2V8eWVsbG93fHllbGxvd2dyZWVufHRyYW5zcGFyZW50fHJnYmFcKFxzKig/
OlswLTldK3xbMC05XSpcLlswLTldKyklP1xzKixccyooPzpbMC05XSt8WzAtOV0qXC5bMC05XSsp
JT9ccyosXHMqKD86WzAtOV0rfFswLTldKlwuWzAtOV0rKSU/XHMqLFxzKig/OlswLTldK3xbMC05
XSpcLlswLTldKyklP1xzKlwpfGhzbGFcKFxzKig/OlswLTldK3xbMC05XSpcLlswLTldKyklP1xz
KixccyooPzpbMC05XSt8WzAtOV0qXC5bMC05XSspJT9ccyosXHMqKD86WzAtOV0rfFswLTldKlwu
WzAtOV0rKSU/XHMqLFxzKig/OlswLTldK3xbMC05XSpcLlswLTldKyklP1xzKlwpfHJnYlwoXHMq
KD86WzAtOV0rfFswLTldKlwuWzAtOV0rKSU/XHMqLFxzKig/OlswLTldK3xbMC05XSpcLlswLTld
KyklP1xzKixccyooPzpbMC05XSt8WzAtOV0qXC5bMC05XSspJT9ccypcKXxoc2xcKFxzKig/Olsw
LTldK3xbMC05XSpcLlswLTldKyklP1xzKixccyooPzpbMC05XSt8WzAtOV0qXC5bMC05XSspJT9c
cyosXHMqKD86WzAtOV0rfFswLTldKlwuWzAtOV0rKSU/XHMqXCkpL2ksCisgICAgICAgIGFjdGlv
bjogY29sb3JBY3Rpb24sCisgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0aGlzLkxleFN0YXRl
LkV4cGVjdGluZ1ZhbHVlCisgICAgfSwgeworICAgICAgICBwYXR0ZXJuOiAvXig/Om1lZGlhLXJl
dHVybi10by1yZWFsdGltZS1idXR0b258c2VhcmNoZmllbGQtcmVzdWx0cy1kZWNvcmF0aW9ufG1l
ZGlhLXZvbHVtZS1zbGlkZXItY29udGFpbmVyfG1lZGlhLXRpbWUtcmVtYWluaW5nLWRpc3BsYXl8
c2VhcmNoZmllbGQtcmVzdWx0cy1idXR0b258bWVkaWEtY3VycmVudC10aW1lLWRpc3BsYXl8c2Vh
cmNoZmllbGQtY2FuY2VsLWJ1dHRvbnxyZWFkLXdyaXRlLXBsYWludGV4dC1vbmx5fG1lZGlhLXNl
ZWstZm9yd2FyZC1idXR0b258bWVkaWEtY29udHJvbHMtYmFja2dyb3VuZHxtZWRpYS12b2x1bWUt
c2xpZGVydGh1bWJ8LXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yfG1lZGlhLWZ1bGxzY3JlZW4tYnV0
dG9ufC13ZWJraXQtYmFzZWxpbmUtbWlkZGxlfHNsaWRlcnRodW1iLWhvcml6b250YWx8c2VhcmNo
ZmllbGQtZGVjb3JhdGlvbnxtZWRpYS1zZWVrLWJhY2stYnV0dG9ufC13ZWJraXQtc21hbGwtY29u
dHJvbHxzdWJwaXhlbC1hbnRpYWxpYXNlZHxzbGlkZXJ0aHVtYi12ZXJ0aWNhbHxkZWNpbWFsLWxl
YWRpbmctemVyb3wtd2Via2l0LW1pbmktY29udHJvbHxtZWRpYS12b2x1bWUtc2xpZGVyfG1lZGlh
LXJld2luZC1idXR0b258aW5hY3RpdmVjYXB0aW9udGV4dHxjYXBzLWxvY2staW5kaWNhdG9yfHRh
YmxlLWhlYWRlci1ncm91cHx0YWJsZS1mb290ZXItZ3JvdXB8dGFibGUtY29sdW1uLWdyb3VwfG9w
dGltaXplTGVnaWJpbGl0eXxtZW51bGlzdC10ZXh0ZmllbGR8Z2VvbWV0cmljUHJlY2lzaW9ufC13
ZWJraXQtaW5saW5lLWJveHwtd2Via2l0LWFjdGl2ZWxpbmt8dGhyZWVkbGlnaHRzaGFkb3d8c2xp
ZGVyLWhvcml6b250YWx8bWVkaWEtc2xpZGVydGh1bWJ8bWVkaWEtcGxheS1idXR0b258bWVkaWEt
bXV0ZS1idXR0b258LXdlYmtpdC14eHgtbGFyZ2V8dGhyZWVkZGFya3NoYWRvd3xkZXN0aW5hdGlv
bi1vdmVyfGRlc3RpbmF0aW9uLWF0b3B8LXdlYmtpdC16b29tLW91dHwtd2Via2l0LWdyYWJiaW5n
fHVsdHJhLWNvbmRlbnNlZHx0aHJlZWRoaWdobGlnaHR8dGFibGUtcm93LWdyb3VwfHNsaWRlci12
ZXJ0aWNhbHxtZW51bGlzdC1idXR0b258aW5hY3RpdmVjYXB0aW9ufGV4dHJhLWNvbmRlbnNlZHxk
ZXN0aW5hdGlvbi1vdXR8Y2prLWlkZW9ncmFwaGljfGJ1dHRvbmhpZ2hsaWdodHwtd2Via2l0LXpv
b20taW58LXdlYmtpdC1tYXJxdWVlfC13ZWJraXQtY29udHJvbHx2aXNpYmxlUGFpbnRlZHx1bHRy
YS1leHBhbmRlZHxzZW1pLWNvbmRlbnNlZHxuby1jbG9zZS1xdW90ZXxrYXRha2FuYS1pcm9oYXxp
bmZvYmFja2dyb3VuZHxpbmFjdGl2ZWJvcmRlcnxoaXJhZ2FuYS1pcm9oYXxleHRyYS1leHBhbmRl
ZHxkZXN0aW5hdGlvbi1pbnxkZWZhdWx0LWJ1dHRvbnwtd2Via2l0LW5vd3JhcHwtd2Via2l0LWNl
bnRlcnx2aXNpYmxlU3Ryb2tlfHZlcnRpY2FsLXRleHR8dGFibGUtY2FwdGlvbnxzcXVhcmUtYnV0
dG9ufHNtYWxsLWNhcHRpb258c2VtaS1leHBhbmRlZHxvcHRpbWl6ZVNwZWVkfG5vLW9wZW4tcXVv
dGV8bWluLWludHJpbnNpY3xtZW51bGlzdC10ZXh0fGhpZ2hsaWdodHRleHR8YmlkaS1vdmVycmlk
ZXxhY3RpdmVjYXB0aW9ufC13ZWJraXQtcmlnaHR8dGhyZWVkc2hhZG93fHRhYmxlLWNvbHVtbnxw
bHVzLWxpZ2h0ZXJ8bWVkaWEtc2xpZGVyfGxpbmUtdGhyb3VnaHxpbmxpbmUtdGFibGV8aW5saW5l
LWJsb2NrfGRvdC1kb3QtZGFzaHxjdXJyZW50Y29sb3J8Y29udGV4dC1tZW51fGJ1dHRvbnNoYWRv
d3xidXR0b24tYmV2ZWx8YXBwd29ya3NwYWNlfGFmdGVyLS1zcGFjZXxhY3RpdmVib3JkZXJ8LXdl
YmtpdC10ZXh0fC13ZWJraXQtbGlua3wtd2Via2l0LWxlZnR8LXdlYmtpdC1ncmFifC13ZWJraXQt
Ym9keXwtd2Via2l0LWF1dG98LXdhcC1tYXJxdWVlfHdpbmRvd2ZyYW1lfHZpc2libGVGaWxsfHVw
cGVyLXJvbWFufHVwcGVyLWxhdGlufHVwcGVyLWFscGhhfHRleHQtYm90dG9tfHNvdXJjZS1vdmVy
fHNvdXJjZS1hdG9wfHNraXAtLXNwYWNlfHNlYXJjaGZpZWxkfHB1c2gtYnV0dG9ufHByZXNlcnZl
LTNkfHBsdXMtZGFya2VyfHBhZGRpbmctYm94fG53c2UtcmVzaXplfG5vdC1hbGxvd2VkfG5lc3ct
cmVzaXplfG1lc3NhZ2UtYm94fGxvd2VyLXJvbWFufGxvd2VyLWxhdGlufGxvd2VyLWdyZWVrfGxv
d2VyLWFscGhhfGxpc3QtYnV0dG9ufGlubGluZS1heGlzfGVhc2UtaW4tb3V0fGNvbnRlbnQtYm94
fGNsb3NlLXF1b3RlfGNhcHRpb250ZXh0fGFudGlhbGlhc2VkfC13ZWJraXQtYm94fHdpbmRvd3Rl
eHR8dGhyZWVkZmFjZXx0YWJsZS1jZWxsfHN0YXR1cy1iYXJ8c291cmNlLW91dHxzbWFsbC1jYXBz
fHNhbnMtc2VyaWZ8cm93LXJlc2l6ZXxyZWFkLXdyaXRlfG9wZW4tcXVvdGV8aG9yaXpvbnRhbHxj
b250aW51b3VzfGNvbC1yZXNpemV8Y2FwaXRhbGl6ZXxidXR0b250ZXh0fGJ1dHRvbmZhY2V8YnJl
YWstd29yZHxib3JkZXItYm94fGJsb2NrLWF4aXN8YmFja2dyb3VuZHxhbGwtc2Nyb2xsfHVwcGVy
Y2FzZXx1bmRlcmxpbmV8dGV4dGZpZWxkfHRhYmxlLXJvd3xzdy1yZXNpemV8c291cmNlLWlufHNl
LXJlc2l6ZXxzY3JvbGxiYXJ8cmVhZC1vbmx5fG53LXJlc2l6ZXxucy1yZXNpemV8bm8tcmVwZWF0
fG5lLXJlc2l6ZXxtb25vc3BhY2V8bG93ZXJjYXNlfGxpc3QtaXRlbXxsYW5kc2NhcGV8aW50cmlu
c2ljfGhpZ2hsaWdodHxldy1yZXNpemV8Y3Jvc3NoYWlyfGNvbmRlbnNlZHxicmVhay1hbGx8YmFj
a3dhcmRzfGFsdGVybmF0ZXx4eC1zbWFsbHx4eC1sYXJnZXx3LXJlc2l6ZXx2ZXJ0aWNhbHx0ZXh0
YXJlYXx0ZXh0LXRvcHxzZXBhcmF0ZXxzLXJlc2l6ZXxyZXBlYXQteXxyZXBlYXQteHxyZWxhdGl2
ZXxwcm9ncmVzc3xwcmUtd3JhcHxwcmUtbGluZXxwb3J0cmFpdHxvdmVybGluZXxuYXJyb3dlcnxu
LXJlc2l6ZXxtdWx0aXBsZXxtZW51dGV4dHxtZW51bGlzdHxsaXN0aXRlbXxrYXRha2FuYXxpbmZv
dGV4dHxpbmZpbml0ZXxoaXJhZ2FuYXxnZW9yZ2lhbnxmb3J3YXJkc3xleHBhbmRlZHxlbGxpcHNp
c3xlYXNlLW91dHxlLXJlc2l6ZXxkb3QtZGFzaHxkb2N1bWVudHxjb2xsYXBzZXxjaGVja2JveHxi
YXNlbGluZXxhcm1lbmlhbnxhYnNvbHV0ZXx4LXNtYWxsfHgtbGFyZ2V8dmlzaWJsZXxzdHJldGNo
fHNtYWxsZXJ8cnVubmluZ3xyZXZlcnNlfHBvaW50ZXJ8cGFpbnRlZHxwYWRkaW5nfG92ZXJsYXl8
b3V0c2lkZXxvYmxpcXVlfG5vLWRyb3B8bG9naWNhbHxsaXN0Ym94fGxpZ2h0ZXJ8anVzdGlmeXxp
bml0aWFsfGluaGVyaXR8ZmFudGFzeXxlbGVtZW50fGVhc2UtaW58ZGlzY2FyZHxkZWZhdWx0fGRl
Y2ltYWx8Y3Vyc2l2ZXxjb250ZW50fGNvbnRhaW58Y29tcGFjdHxjYXB0aW9ufHdpbmRvd3x2aXN1
YWx8c3Ryb2tlfHN0YXRpY3xzcXVhcmV8c2luZ2xlfHNjcm9sbHxydW4taW58cmVwZWF0fHBhdXNl
ZHxvdXRzZXR8bm93cmFwfG5vcm1hbHxtaWRkbGV8bWVkaXVtfGxpbmVhcnxsYXJnZXJ8aXRhbGlj
fGludmVydHxpbnNpZGV8aW5saW5lfGlnbm9yZXxoaWdoZXJ8aGlkZGVufGhlYnJld3xncm9vdmV8
ZG91YmxlfGRvdHRlZHxkYXNoZWR8Y2lyY2xlfGNlbnRlcnxidXR0b258Ym90dG9tfGJvcmRlcnxi
b2xkZXJ8YWx3YXlzfHdpZGVyfHRoaWNrfHRhYmxlfHN1cGVyfHN0YXJ0fHNwYWNlfHNvbGlkfHNt
YWxsfHNsaWRlfHNlcmlmfHJvdW5kfHJpZ2h0fHJpZGdlfHJlc2V0fHJhZGlvfG1hdGNofGxvd2Vy
fGxvY2FsfGxpbmVzfGxldmVsfGxhcmdlfGluc2V0fGZpeGVkfGVtYmVkfGNyb3NzfGNvdmVyfGNs
ZWFyfGNhcmV0fGJsb2NrfGJsaW5rfGJlbG93fGF2b2lkfGFsaWFzfGFoZWFkfGFib3ZlfHdhdmV8
d2FpdHx0aGlufHRleHR8dGV4dHxzbG93fHNob3d8bm9uZXxtb3ZlfG1lbnV8bG91ZHxsZWZ0fGlj
b258aGlkZXxoZWxwfGhhbmR8ZmxhdHxmaWxsfGZhc3R8ZWFzZXxkb3dufGRpc2N8Y3JvcHxjb3B5
fGNsaXB8Y2VsbHxib3RofGJvbGR8YXV0b3x4b3J8dG9wfHN1YnxydGx8cHJlfG1peHxsdHJ8ZW5k
fGFsbHx1cCkvaSwKKyAgICAgICAgYWN0aW9uOiB2YWx1ZUtleXdvcmRBY3Rpb24sCisgICAgICAg
IGxleFN0YXRlQ29uZGl0aW9uOiB0aGlzLkxleFN0YXRlLkV4cGVjdGluZ1ZhbHVlCisgICAgfSwg
eworICAgICAgICBwYXR0ZXJuOiAvXig/Oig/OlswLTldK3xbMC05XSpcLlswLTldKykoPzplbXxy
ZW18X19xZW18ZXh8cHh8Y218bW18aW58cHR8cGN8ZGVnfHJhZHxncmFkfHR1cm58bXN8c3xIenxr
SHp8JSspPykvaSwKKyAgICAgICAgYWN0aW9uOiBudW1iZXJWYWx1ZUFjdGlvbiwKKyAgICAgICAg
bGV4U3RhdGVDb25kaXRpb246IHRoaXMuTGV4U3RhdGUuRXhwZWN0aW5nVmFsdWUKKyAgICB9LCB7
CisgICAgICAgIHBhdHRlcm46IC9eIVxzKmltcG9ydGFudC9pLAorICAgICAgICBhY3Rpb246IGlt
cG9ydGFudEFjdGlvbiwKKyAgICAgICAgbGV4U3RhdGVDb25kaXRpb246IHRoaXMuTGV4U3RhdGUu
RXhwZWN0aW5nVmFsdWUKKyAgICB9LCB7CisgICAgICAgIHBhdHRlcm46IC9eKD86KD86KD86WzAt
OV0rfFswLTldKlwuWzAtOV0rKSg/OmVtfHJlbXxfX3FlbXxleHxweHxjbXxtbXxpbnxwdHxwY3xk
ZWd8cmFkfGdyYWR8dHVybnxtc3xzfEh6fGtIenwlKyk/KSV8ZnJvbXx0bykvaSwKKyAgICAgICAg
YWN0aW9uOiB0aW1pbmdBY3Rpb24sCisgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0aGlzLkxl
eFN0YXRlLkluaXRpYWwKKyAgICB9LCB7CisgICAgICAgIHBhdHRlcm46IC9eKD86KD86LT8oPzpb
X2EtekEtWl18W1wyMDAtXDM3N118KD86XFswLTlhLWZBLUZdezEsNn1bIFxuXHJcdFxmXT98XFsg
LX5cMjAwLVwzNzdcbl0pKSg/OltfYS16QS1aMC05LV18W1wyMDAtXDM3N118KD86XFswLTlhLWZB
LUZdezEsNn1bIFxuXHJcdFxmXT98XFsgLX5cMjAwLVwzNzdcbl0pKSp8XCopKD86Iy0/KD86W19h
LXpBLVpdfFtcMjAwLVwzNzddfCg/OlxbMC05YS1mQS1GXXsxLDZ9WyBcblxyXHRcZl0/fFxbIC1+
XDIwMC1cMzc3XG5dKSkoPzpbX2EtekEtWjAtOS1dfFtcMjAwLVwzNzddfCg/OlxbMC05YS1mQS1G
XXsxLDZ9WyBcblxyXHRcZl0/fFxbIC1+XDIwMC1cMzc3XG5dKSkqfFwuLT8oPzpbX2EtekEtWl18
W1wyMDAtXDM3N118KD86XFswLTlhLWZBLUZdezEsNn1bIFxuXHJcdFxmXT98XFsgLX5cMjAwLVwz
Nzdcbl0pKSg/OltfYS16QS1aMC05LV18W1wyMDAtXDM3N118KD86XFswLTlhLWZBLUZdezEsNn1b
IFxuXHJcdFxmXT98XFsgLX5cMjAwLVwzNzdcbl0pKSp8XFtccyotPyg/OltfYS16QS1aXXxbXDIw
MC1cMzc3XXwoPzpcWzAtOWEtZkEtRl17MSw2fVsgXG5cclx0XGZdP3xcWyAtflwyMDAtXDM3N1xu
XSkpKD86W19hLXpBLVowLTktXXxbXDIwMC1cMzc3XXwoPzpcWzAtOWEtZkEtRl17MSw2fVsgXG5c
clx0XGZdP3xcWyAtflwyMDAtXDM3N1xuXSkpKlxzKig/Oig/Oj18fj18XHw9KVxzKig/Oi0/KD86
W19hLXpBLVpdfFtcMjAwLVwzNzddfCg/OlxbMC05YS1mQS1GXXsxLDZ9WyBcblxyXHRcZl0/fFxb
IC1+XDIwMC1cMzc3XG5dKSkoPzpbX2EtekEtWjAtOS1dfFtcMjAwLVwzNzddfCg/OlxbMC05YS1m
QS1GXXsxLDZ9WyBcblxyXHRcZl0/fFxbIC1+XDIwMC1cMzc3XG5dKSkqfCg/OiIoPzpbXHQgISNc
JCUmXCgtfl18XFxufFxyXG58XHJ8XGZ8J3xbXDIwMC1cMzc3XXwoPzpcWzAtOWEtZkEtRl17MSw2
fVsgXG5cclx0XGZdP3xcWyAtflwyMDAtXDM3N1xuXSkpKiJ8Jyg/OltcdCAhI1wkJSZcKC1+XXxc
XG58XHJcbnxccnxcZnwnfFtcMjAwLVwzNzddfCg/OlxbMC05YS1mQS1GXXsxLDZ9WyBcblxyXHRc
Zl0/fFxbIC1+XDIwMC1cMzc3XG5dKSkqJykpXHMqKT9cXXw6KD86LT8oPzpbX2EtekEtWl18W1wy
MDAtXDM3N118KD86XFswLTlhLWZBLUZdezEsNn1bIFxuXHJcdFxmXT98XFsgLX5cMjAwLVwzNzdc
bl0pKSg/OltfYS16QS1aMC05LV18W1wyMDAtXDM3N118KD86XFswLTlhLWZBLUZdezEsNn1bIFxu
XHJcdFxmXT98XFsgLX5cMjAwLVwzNzdcbl0pKSp8LT8oPzpbX2EtekEtWl18W1wyMDAtXDM3N118
KD86XFswLTlhLWZBLUZdezEsNn1bIFxuXHJcdFxmXT98XFsgLX5cMjAwLVwzNzdcbl0pKSg/Oltf
YS16QS1aMC05LV18W1wyMDAtXDM3N118KD86XFswLTlhLWZBLUZdezEsNn1bIFxuXHJcdFxmXT98
XFsgLX5cMjAwLVwzNzdcbl0pKSpcKFxzKig/Oi0/KD86W19hLXpBLVpdfFtcMjAwLVwzNzddfCg/
OlxbMC05YS1mQS1GXXsxLDZ9WyBcblxyXHRcZl0/fFxbIC1+XDIwMC1cMzc3XG5dKSkoPzpbX2Et
ekEtWjAtOS1dfFtcMjAwLVwzNzddfCg/OlxbMC05YS1mQS1GXXsxLDZ9WyBcblxyXHRcZl0/fFxb
IC1+XDIwMC1cMzc3XG5dKSkqXHMqKT9cKSkpKnwoPzojLT8oPzpbX2EtekEtWl18W1wyMDAtXDM3
N118KD86XFswLTlhLWZBLUZdezEsNn1bIFxuXHJcdFxmXT98XFsgLX5cMjAwLVwzNzdcbl0pKSg/
OltfYS16QS1aMC05LV18W1wyMDAtXDM3N118KD86XFswLTlhLWZBLUZdezEsNn1bIFxuXHJcdFxm
XT98XFsgLX5cMjAwLVwzNzdcbl0pKSp8XC4tPyg/OltfYS16QS1aXXxbXDIwMC1cMzc3XXwoPzpc
WzAtOWEtZkEtRl17MSw2fVsgXG5cclx0XGZdP3xcWyAtflwyMDAtXDM3N1xuXSkpKD86W19hLXpB
LVowLTktXXxbXDIwMC1cMzc3XXwoPzpcWzAtOWEtZkEtRl17MSw2fVsgXG5cclx0XGZdP3xcWyAt
flwyMDAtXDM3N1xuXSkpKnxcW1xzKi0/KD86W19hLXpBLVpdfFtcMjAwLVwzNzddfCg/OlxbMC05
YS1mQS1GXXsxLDZ9WyBcblxyXHRcZl0/fFxbIC1+XDIwMC1cMzc3XG5dKSkoPzpbX2EtekEtWjAt
OS1dfFtcMjAwLVwzNzddfCg/OlxbMC05YS1mQS1GXXsxLDZ9WyBcblxyXHRcZl0/fFxbIC1+XDIw
MC1cMzc3XG5dKSkqXHMqKD86KD86PXx+PXxcfD0pXHMqKD86LT8oPzpbX2EtekEtWl18W1wyMDAt
XDM3N118KD86XFswLTlhLWZBLUZdezEsNn1bIFxuXHJcdFxmXT98XFsgLX5cMjAwLVwzNzdcbl0p
KSg/OltfYS16QS1aMC05LV18W1wyMDAtXDM3N118KD86XFswLTlhLWZBLUZdezEsNn1bIFxuXHJc
dFxmXT98XFsgLX5cMjAwLVwzNzdcbl0pKSp8KD86Iig/OltcdCAhI1wkJSZcKC1+XXxcXG58XHJc
bnxccnxcZnwnfFtcMjAwLVwzNzddfCg/OlxbMC05YS1mQS1GXXsxLDZ9WyBcblxyXHRcZl0/fFxb
IC1+XDIwMC1cMzc3XG5dKSkqInwnKD86W1x0ICEjXCQlJlwoLX5dfFxcbnxcclxufFxyfFxmfCd8
W1wyMDAtXDM3N118KD86XFswLTlhLWZBLUZdezEsNn1bIFxuXHJcdFxmXT98XFsgLX5cMjAwLVwz
Nzdcbl0pKSonKSlccyopP1xdfDooPzotPyg/OltfYS16QS1aXXxbXDIwMC1cMzc3XXwoPzpcWzAt
OWEtZkEtRl17MSw2fVsgXG5cclx0XGZdP3xcWyAtflwyMDAtXDM3N1xuXSkpKD86W19hLXpBLVow
LTktXXxbXDIwMC1cMzc3XXwoPzpcWzAtOWEtZkEtRl17MSw2fVsgXG5cclx0XGZdP3xcWyAtflwy
MDAtXDM3N1xuXSkpKnwtPyg/OltfYS16QS1aXXxbXDIwMC1cMzc3XXwoPzpcWzAtOWEtZkEtRl17
MSw2fVsgXG5cclx0XGZdP3xcWyAtflwyMDAtXDM3N1xuXSkpKD86W19hLXpBLVowLTktXXxbXDIw
MC1cMzc3XXwoPzpcWzAtOWEtZkEtRl17MSw2fVsgXG5cclx0XGZdP3xcWyAtflwyMDAtXDM3N1xu
XSkpKlwoXHMqKD86LT8oPzpbX2EtekEtWl18W1wyMDAtXDM3N118KD86XFswLTlhLWZBLUZdezEs
Nn1bIFxuXHJcdFxmXT98XFsgLX5cMjAwLVwzNzdcbl0pKSg/OltfYS16QS1aMC05LV18W1wyMDAt
XDM3N118KD86XFswLTlhLWZBLUZdezEsNn1bIFxuXHJcdFxmXT98XFsgLX5cMjAwLVwzNzdcbl0p
KSpccyopP1wpKSkrKS9pLAorICAgICAgICBhY3Rpb246IHNlbGVjdG9yQWN0aW9uLAorICAgICAg
ICBsZXhTdGF0ZUNvbmRpdGlvbjogdGhpcy5MZXhTdGF0ZS5Jbml0aWFsCisgICAgfSwgeworICAg
ICAgICBwYXR0ZXJuOiAvXnsvaSwKKyAgICAgICAgYWN0aW9uOiBhdFJ1bGVTdGFydEFjdGlvbiwK
KyAgICAgICAgbGV4U3RhdGVDb25kaXRpb246IHRoaXMuTGV4U3RhdGUuQWZ0ZXJBdFJ1bGUsCisg
ICAgICAgIGRvbnRBcHBlbmROb25Ub2tlbjogdHJ1ZQorICAgIH0sIHsKKyAgICAgICAgcGF0dGVy
bjogL147L2ksCisgICAgICAgIGFjdGlvbjogZW5kQXRJbXBvcnRBY3Rpb24sCisgICAgICAgIGxl
eFN0YXRlQ29uZGl0aW9uOiB0aGlzLkxleFN0YXRlLkV4cGVjdGluZ01lZGlhVHlwZSwKKyAgICAg
ICAgZG9udEFwcGVuZE5vblRva2VuOiB0cnVlCisgICAgfSwgeworICAgICAgICBwYXR0ZXJuOiAv
Xig/OmFsbHxhdXJhbHxicmFpbGxlfGVtYm9zc2VkfGhhbmRoZWxkfHByaW50fHByb2plY3Rpb258
c2NyZWVufHR0eXx0dikvaSwKKyAgICAgICAgYWN0aW9uOiBtZWRpYVR5cGVBY3Rpb24sCisgICAg
ICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0aGlzLkxleFN0YXRlLkV4cGVjdGluZ01lZGlhVHlwZQor
ICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjogL157L2ksCisgICAgICAgIGFjdGlvbjogc3RhcnRB
dE1lZGlhQmxvY2tBY3Rpb24sCisgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0aGlzLkxleFN0
YXRlLkV4cGVjdGluZ01lZGlhVHlwZSwKKyAgICAgICAgZG9udEFwcGVuZE5vblRva2VuOiB0cnVl
CisgICAgfSwgeworICAgICAgICBwYXR0ZXJuOiAvXkBtZWRpYS9pLAorICAgICAgICBhY3Rpb246
IGF0TWVkaWFBY3Rpb24sCisgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0aGlzLkxleFN0YXRl
LkluaXRpYWwKKyAgICB9LCB7CisgICAgICAgIHBhdHRlcm46IC9eQGltcG9ydC9pLAorICAgICAg
ICBhY3Rpb246IGF0SW1wb3J0QWN0aW9uLAorICAgICAgICBsZXhTdGF0ZUNvbmRpdGlvbjogdGhp
cy5MZXhTdGF0ZS5Jbml0aWFsCisgICAgfSwgeworICAgICAgICBwYXR0ZXJuOiAvXkBmb250LWZh
Y2UvaSwKKyAgICAgICAgYWN0aW9uOiBhdEZvbnRGYWNlQWN0aW9uLAorICAgICAgICBsZXhTdGF0
ZUNvbmRpdGlvbjogdGhpcy5MZXhTdGF0ZS5Jbml0aWFsCisgICAgfSwgeworICAgICAgICBwYXR0
ZXJuOiAvXkBjaGFyc2V0L2ksCisgICAgICAgIGFjdGlvbjogYXRDaGFyc2V0QWN0aW9uLAorICAg
ICAgICBsZXhTdGF0ZUNvbmRpdGlvbjogdGhpcy5MZXhTdGF0ZS5Jbml0aWFsCisgICAgfSwgewor
ICAgICAgICBwYXR0ZXJuOiAvXig/OiIoPzpbXHQgISNcJCUmXCgtfl18XFxufFxyXG58XHJ8XGZ8
J3xbXDIwMC1cMzc3XXwoPzpcWzAtOWEtZkEtRl17MSw2fVsgXG5cclx0XGZdP3xcWyAtflwyMDAt
XDM3N1xuXSkpKiJ8Jyg/OltcdCAhI1wkJSZcKC1+XXxcXG58XHJcbnxccnxcZnwnfFtcMjAwLVwz
NzddfCg/OlxbMC05YS1mQS1GXXsxLDZ9WyBcblxyXHRcZl0/fFxbIC1+XDIwMC1cMzc3XG5dKSkq
JykvaSwKKyAgICAgICAgYWN0aW9uOiBlbmNvZGluZ0FjdGlvbiwKKyAgICAgICAgbGV4U3RhdGVD
b25kaXRpb246IHRoaXMuTGV4U3RhdGUuQWZ0ZXJBdENoYXJzZXQKKyAgICB9LCB7CisgICAgICAg
IHBhdHRlcm46IC9eOy9pLAorICAgICAgICBhY3Rpb246IGVuZEF0Q2hhcnNldEFjdGlvbiwKKyAg
ICAgICAgbGV4U3RhdGVDb25kaXRpb246IHRoaXMuTGV4U3RhdGUuQWZ0ZXJBdENoYXJzZXQsCisg
ICAgICAgIGRvbnRBcHBlbmROb25Ub2tlbjogdHJ1ZQorICAgIH0sIHsKKyAgICAgICAgcGF0dGVy
bjogL15AcGFnZS9pLAorICAgICAgICBhY3Rpb246IGF0UGFnZUFjdGlvbiwKKyAgICAgICAgbGV4
U3RhdGVDb25kaXRpb246IHRoaXMuTGV4U3RhdGUuSW5pdGlhbAorICAgIH0sIHsKKyAgICAgICAg
cGF0dGVybjogL15ALT8oPzpbX2EtekEtWl18W1wyMDAtXDM3N118KD86XFswLTlhLWZBLUZdezEs
Nn1bIFxuXHJcdFxmXT98XFsgLX5cMjAwLVwzNzdcbl0pKSg/OltfYS16QS1aMC05LV18W1wyMDAt
XDM3N118KD86XFswLTlhLWZBLUZdezEsNn1bIFxuXHJcdFxmXT98XFsgLX5cMjAwLVwzNzdcbl0p
KSovaSwKKyAgICAgICAgYWN0aW9uOiBhdFJ1bGVBY3Rpb24sCisgICAgICAgIGxleFN0YXRlQ29u
ZGl0aW9uOiB0aGlzLkxleFN0YXRlLkluaXRpYWwKKyAgICB9LCB7CisgICAgICAgIHBhdHRlcm46
IC9eKD86KD86LT8oPzpbX2EtekEtWl18W1wyMDAtXDM3N118KD86XFswLTlhLWZBLUZdezEsNn1b
IFxuXHJcdFxmXT98XFsgLX5cMjAwLVwzNzdcbl0pKSg/OltfYS16QS1aMC05LV18W1wyMDAtXDM3
N118KD86XFswLTlhLWZBLUZdezEsNn1bIFxuXHJcdFxmXT98XFsgLX5cMjAwLVwzNzdcbl0pKSp8
XCopKD86Iy0/KD86W19hLXpBLVpdfFtcMjAwLVwzNzddfCg/OlxbMC05YS1mQS1GXXsxLDZ9WyBc
blxyXHRcZl0/fFxbIC1+XDIwMC1cMzc3XG5dKSkoPzpbX2EtekEtWjAtOS1dfFtcMjAwLVwzNzdd
fCg/OlxbMC05YS1mQS1GXXsxLDZ9WyBcblxyXHRcZl0/fFxbIC1+XDIwMC1cMzc3XG5dKSkqfFwu
LT8oPzpbX2EtekEtWl18W1wyMDAtXDM3N118KD86XFswLTlhLWZBLUZdezEsNn1bIFxuXHJcdFxm
XT98XFsgLX5cMjAwLVwzNzdcbl0pKSg/OltfYS16QS1aMC05LV18W1wyMDAtXDM3N118KD86XFsw
LTlhLWZBLUZdezEsNn1bIFxuXHJcdFxmXT98XFsgLX5cMjAwLVwzNzdcbl0pKSp8XFtccyotPyg/
OltfYS16QS1aXXxbXDIwMC1cMzc3XXwoPzpcWzAtOWEtZkEtRl17MSw2fVsgXG5cclx0XGZdP3xc
WyAtflwyMDAtXDM3N1xuXSkpKD86W19hLXpBLVowLTktXXxbXDIwMC1cMzc3XXwoPzpcWzAtOWEt
ZkEtRl17MSw2fVsgXG5cclx0XGZdP3xcWyAtflwyMDAtXDM3N1xuXSkpKlxzKig/Oig/Oj18fj18
XHw9KVxzKig/Oi0/KD86W19hLXpBLVpdfFtcMjAwLVwzNzddfCg/OlxbMC05YS1mQS1GXXsxLDZ9
WyBcblxyXHRcZl0/fFxbIC1+XDIwMC1cMzc3XG5dKSkoPzpbX2EtekEtWjAtOS1dfFtcMjAwLVwz
NzddfCg/OlxbMC05YS1mQS1GXXsxLDZ9WyBcblxyXHRcZl0/fFxbIC1+XDIwMC1cMzc3XG5dKSkq
fCg/OiIoPzpbXHQgISNcJCUmXCgtfl18XFxufFxyXG58XHJ8XGZ8J3xbXDIwMC1cMzc3XXwoPzpc
WzAtOWEtZkEtRl17MSw2fVsgXG5cclx0XGZdP3xcWyAtflwyMDAtXDM3N1xuXSkpKiJ8Jyg/Oltc
dCAhI1wkJSZcKC1+XXxcXG58XHJcbnxccnxcZnwnfFtcMjAwLVwzNzddfCg/OlxbMC05YS1mQS1G
XXsxLDZ9WyBcblxyXHRcZl0/fFxbIC1+XDIwMC1cMzc3XG5dKSkqJykpXHMqKT9cXXw6KD86LT8o
PzpbX2EtekEtWl18W1wyMDAtXDM3N118KD86XFswLTlhLWZBLUZdezEsNn1bIFxuXHJcdFxmXT98
XFsgLX5cMjAwLVwzNzdcbl0pKSg/OltfYS16QS1aMC05LV18W1wyMDAtXDM3N118KD86XFswLTlh
LWZBLUZdezEsNn1bIFxuXHJcdFxmXT98XFsgLX5cMjAwLVwzNzdcbl0pKSp8LT8oPzpbX2EtekEt
Wl18W1wyMDAtXDM3N118KD86XFswLTlhLWZBLUZdezEsNn1bIFxuXHJcdFxmXT98XFsgLX5cMjAw
LVwzNzdcbl0pKSg/OltfYS16QS1aMC05LV18W1wyMDAtXDM3N118KD86XFswLTlhLWZBLUZdezEs
Nn1bIFxuXHJcdFxmXT98XFsgLX5cMjAwLVwzNzdcbl0pKSpcKFxzKig/Oi0/KD86W19hLXpBLVpd
fFtcMjAwLVwzNzddfCg/OlxbMC05YS1mQS1GXXsxLDZ9WyBcblxyXHRcZl0/fFxbIC1+XDIwMC1c
Mzc3XG5dKSkoPzpbX2EtekEtWjAtOS1dfFtcMjAwLVwzNzddfCg/OlxbMC05YS1mQS1GXXsxLDZ9
WyBcblxyXHRcZl0/fFxbIC1+XDIwMC1cMzc3XG5dKSkqXHMqKT9cKSkpKnwoPzojLT8oPzpbX2Et
ekEtWl18W1wyMDAtXDM3N118KD86XFswLTlhLWZBLUZdezEsNn1bIFxuXHJcdFxmXT98XFsgLX5c
MjAwLVwzNzdcbl0pKSg/OltfYS16QS1aMC05LV18W1wyMDAtXDM3N118KD86XFswLTlhLWZBLUZd
ezEsNn1bIFxuXHJcdFxmXT98XFsgLX5cMjAwLVwzNzdcbl0pKSp8XC4tPyg/OltfYS16QS1aXXxb
XDIwMC1cMzc3XXwoPzpcWzAtOWEtZkEtRl17MSw2fVsgXG5cclx0XGZdP3xcWyAtflwyMDAtXDM3
N1xuXSkpKD86W19hLXpBLVowLTktXXxbXDIwMC1cMzc3XXwoPzpcWzAtOWEtZkEtRl17MSw2fVsg
XG5cclx0XGZdP3xcWyAtflwyMDAtXDM3N1xuXSkpKnxcW1xzKi0/KD86W19hLXpBLVpdfFtcMjAw
LVwzNzddfCg/OlxbMC05YS1mQS1GXXsxLDZ9WyBcblxyXHRcZl0/fFxbIC1+XDIwMC1cMzc3XG5d
KSkoPzpbX2EtekEtWjAtOS1dfFtcMjAwLVwzNzddfCg/OlxbMC05YS1mQS1GXXsxLDZ9WyBcblxy
XHRcZl0/fFxbIC1+XDIwMC1cMzc3XG5dKSkqXHMqKD86KD86PXx+PXxcfD0pXHMqKD86LT8oPzpb
X2EtekEtWl18W1wyMDAtXDM3N118KD86XFswLTlhLWZBLUZdezEsNn1bIFxuXHJcdFxmXT98XFsg
LX5cMjAwLVwzNzdcbl0pKSg/OltfYS16QS1aMC05LV18W1wyMDAtXDM3N118KD86XFswLTlhLWZB
LUZdezEsNn1bIFxuXHJcdFxmXT98XFsgLX5cMjAwLVwzNzdcbl0pKSp8KD86Iig/OltcdCAhI1wk
JSZcKC1+XXxcXG58XHJcbnxccnxcZnwnfFtcMjAwLVwzNzddfCg/OlxbMC05YS1mQS1GXXsxLDZ9
WyBcblxyXHRcZl0/fFxbIC1+XDIwMC1cMzc3XG5dKSkqInwnKD86W1x0ICEjXCQlJlwoLX5dfFxc
bnxcclxufFxyfFxmfCd8W1wyMDAtXDM3N118KD86XFswLTlhLWZBLUZdezEsNn1bIFxuXHJcdFxm
XT98XFsgLX5cMjAwLVwzNzdcbl0pKSonKSlccyopP1xdfDooPzotPyg/OltfYS16QS1aXXxbXDIw
MC1cMzc3XXwoPzpcWzAtOWEtZkEtRl17MSw2fVsgXG5cclx0XGZdP3xcWyAtflwyMDAtXDM3N1xu
XSkpKD86W19hLXpBLVowLTktXXxbXDIwMC1cMzc3XXwoPzpcWzAtOWEtZkEtRl17MSw2fVsgXG5c
clx0XGZdP3xcWyAtflwyMDAtXDM3N1xuXSkpKnwtPyg/OltfYS16QS1aXXxbXDIwMC1cMzc3XXwo
PzpcWzAtOWEtZkEtRl17MSw2fVsgXG5cclx0XGZdP3xcWyAtflwyMDAtXDM3N1xuXSkpKD86W19h
LXpBLVowLTktXXxbXDIwMC1cMzc3XXwoPzpcWzAtOWEtZkEtRl17MSw2fVsgXG5cclx0XGZdP3xc
WyAtflwyMDAtXDM3N1xuXSkpKlwoXHMqKD86LT8oPzpbX2EtekEtWl18W1wyMDAtXDM3N118KD86
XFswLTlhLWZBLUZdezEsNn1bIFxuXHJcdFxmXT98XFsgLX5cMjAwLVwzNzdcbl0pKSg/OltfYS16
QS1aMC05LV18W1wyMDAtXDM3N118KD86XFswLTlhLWZBLUZdezEsNn1bIFxuXHJcdFxmXT98XFsg
LX5cMjAwLVwzNzdcbl0pKSpccyopP1wpKSkrKS9pLAorICAgICAgICBhY3Rpb246IHNlbGVjdG9y
QWN0aW9uLAorICAgICAgICBsZXhTdGF0ZUNvbmRpdGlvbjogdGhpcy5MZXhTdGF0ZS5BZnRlclNl
bGVjdG9yCisgICAgfV07CisgICAgCisgICAgZnVuY3Rpb24gc3RhcnRBdE1lZGlhQmxvY2tBY3Rp
b24odG9rZW4pCisgICAgeworICAgICAgICB0aGlzLmN1cnNvciArPSB0b2tlbi5sZW5ndGg7Cisg
ICAgICAgIHRoaXMubm9uVG9rZW4gKz0gdG9rZW47CisgICAgICAgIHRoaXMubGV4U3RhdGUgPSB0
aGlzLkxleFN0YXRlLkluaXRpYWw7CisgICAgfQorICAgIAorICAgIGZ1bmN0aW9uIGF0TWVkaWFB
Y3Rpb24odG9rZW4pCisgICAgeworICAgICAgICB0aGlzLmN1cnNvciArPSB0b2tlbi5sZW5ndGg7
CisgICAgICAgIHRoaXMubGluZUZyYWdtZW50LmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlU3Bhbih0
b2tlbiwgIndlYmtpdC1jc3MtYXQtcnVsZSIpKTsKKyAgICAgICAgdGhpcy5sZXhTdGF0ZSA9IHRo
aXMuTGV4U3RhdGUuRXhwZWN0aW5nTWVkaWFUeXBlOworICAgIH0KKyAgICAKKyAgICBmdW5jdGlv
biB0aW1pbmdBY3Rpb24gKHRva2VuKQorICAgIHsKKyAgICAgICAgdGhpcy5jdXJzb3IgKz0gdG9r
ZW4ubGVuZ3RoOworICAgICAgICB0aGlzLmxpbmVGcmFnbWVudC5hcHBlbmRDaGlsZCh0aGlzLmNy
ZWF0ZVNwYW4odG9rZW4sICJ3ZWJraXQtY3NzLWF0LXJ1bGUiKSk7CisgICAgICAgIHRoaXMubGV4
U3RhdGUgPSB0aGlzLkxleFN0YXRlLkFmdGVyU2VsZWN0b3I7CisgICAgfQorICAgIAorICAgIGZ1
bmN0aW9uIGF0UGFnZUFjdGlvbih0b2tlbikKKyAgICB7CisgICAgICAgIHRoaXMuY3Vyc29yICs9
IHRva2VuLmxlbmd0aDsKKyAgICAgICAgdGhpcy5saW5lRnJhZ21lbnQuYXBwZW5kQ2hpbGQodGhp
cy5jcmVhdGVTcGFuKHRva2VuLCAid2Via2l0LWNzcy1hdC1ydWxlIikpOworICAgICAgICB0aGlz
LmxleFN0YXRlID0gdGhpcy5MZXhTdGF0ZS5BZnRlclNlbGVjdG9yOworICAgIH0KKyAgICAKKyAg
ICBmdW5jdGlvbiBhdENoYXJzZXRBY3Rpb24odG9rZW4pCisgICAgeworICAgICAgICB0aGlzLmN1
cnNvciArPSB0b2tlbi5sZW5ndGg7CisgICAgICAgIHRoaXMubGluZUZyYWdtZW50LmFwcGVuZENo
aWxkKHRoaXMuY3JlYXRlU3Bhbih0b2tlbiwgIndlYmtpdC1jc3MtYXQtcnVsZSIpKTsKKyAgICAg
ICAgdGhpcy5sZXhTdGF0ZSA9IHRoaXMuTGV4U3RhdGUuQWZ0ZXJBdENoYXJzZXQ7CisgICAgfQor
ICAgIAorICAgIGZ1bmN0aW9uIGVuY29kaW5nQWN0aW9uKHRva2VuKSB7CisgICAgICAgIHRoaXMu
Y3Vyc29yICs9IHRva2VuLmxlbmd0aDsKKyAgICAgICAgdGhpcy5saW5lRnJhZ21lbnQuYXBwZW5k
Q2hpbGQodGhpcy5jcmVhdGVTcGFuKHRva2VuLCAid2Via2l0LWNzcy1zdHJpbmciKSk7CisgICAg
fQorICAgIAorICAgIGZ1bmN0aW9uIGVuZEF0Q2hhcnNldEFjdGlvbih0b2tlbikgeworICAgICAg
ICB0aGlzLmN1cnNvciArPSB0b2tlbi5sZW5ndGg7CisgICAgICAgIHRoaXMubm9uVG9rZW4gKz0g
dG9rZW47CisgICAgICAgIHRoaXMubGV4U3RhdGUgPSB0aGlzLkxleFN0YXRlLkluaXRpYWw7Cisg
ICAgfQorICAgIAorICAgIGZ1bmN0aW9uIG1lZGlhVHlwZUFjdGlvbih0b2tlbikgeworICAgICAg
ICB0aGlzLmN1cnNvciArPSB0b2tlbi5sZW5ndGg7CisgICAgICAgIHRoaXMubGluZUZyYWdtZW50
LmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlU3Bhbih0b2tlbiwgIndlYmtpdC1jc3Mta2V5d29yZCIp
KTsKKyAgICB9CisgICAgCisgICAgZnVuY3Rpb24gYXRJbXBvcnRBY3Rpb24odG9rZW4pCisgICAg
eworICAgICAgICB0aGlzLmN1cnNvciArPSB0b2tlbi5sZW5ndGg7CisgICAgICAgIHRoaXMubGlu
ZUZyYWdtZW50LmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlU3Bhbih0b2tlbiwgIndlYmtpdC1jc3Mt
YXQtcnVsZSIpKTsKKyAgICAgICAgdGhpcy5sZXhTdGF0ZSA9IHRoaXMuTGV4U3RhdGUuRXhwZWN0
aW5nSW1wb3J0VVJMOworICAgIH0KKyAgICAKKyAgICBmdW5jdGlvbiBpbXBvcnRVUkxBY3Rpb24o
dG9rZW4pIHsKKyAgICAgICAgdGhpcy5jdXJzb3IgKz0gdG9rZW4ubGVuZ3RoOworICAgICAgICB0
aGlzLmxpbmVGcmFnbWVudC5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVNwYW4odG9rZW4sICJ3ZWJr
aXQtY3NzLXVybCIpKTsKKyAgICAgICAgdGhpcy5sZXhTdGF0ZSA9IHRoaXMuTGV4U3RhdGUuRXhw
ZWN0aW5nTWVkaWFUeXBlOworICAgIH0KKyAgICAKKyAgICBmdW5jdGlvbiBlbmRBdEltcG9ydEFj
dGlvbih0b2tlbikgeworICAgICAgICB0aGlzLmN1cnNvciArPSB0b2tlbi5sZW5ndGg7CisgICAg
ICAgIHRoaXMubm9uVG9rZW4gKz0gdG9rZW47CisgICAgICAgIHRoaXMubGV4U3RhdGUgPSB0aGlz
LkxleFN0YXRlLkluaXRpYWw7CisgICAgfQorICAgIAorICAgIGZ1bmN0aW9uIGF0Rm9udEZhY2VB
Y3Rpb24odG9rZW4pCisgICAgeworICAgICAgICB0aGlzLmN1cnNvciArPSB0b2tlbi5sZW5ndGg7
CisgICAgICAgIHRoaXMubGluZUZyYWdtZW50LmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlU3Bhbih0
b2tlbiwgIndlYmtpdC1jc3MtYXQtcnVsZSIpKTsKKyAgICAgICAgdGhpcy5sZXhTdGF0ZSA9IHRo
aXMuTGV4U3RhdGUuQWZ0ZXJTZWxlY3RvcjsKKyAgICB9CisgICAgCisgICAgZnVuY3Rpb24gY29t
bWVudEFjdGlvbih0b2tlbikKKyAgICB7CisgICAgICAgIHRoaXMuY3Vyc29yICs9IHRva2VuLmxl
bmd0aDsKKyAgICAgICAgdGhpcy5saW5lRnJhZ21lbnQuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVT
cGFuKHRva2VuLCAid2Via2l0LWNzcy1jb21tZW50IikpOworICAgIH0KKyAgICAKKyAgICBmdW5j
dGlvbiBjb21tZW50U3RhcnRBY3Rpb24odG9rZW4pCisgICAgeworICAgICAgICB0aGlzLmN1cnNv
ciArPSB0b2tlbi5sZW5ndGg7CisgICAgICAgIHRoaXMubGluZUZyYWdtZW50LmFwcGVuZENoaWxk
KHRoaXMuY3JlYXRlU3Bhbih0b2tlbiwgIndlYmtpdC1jc3MtY29tbWVudCIpKTsKKyAgICAgICAg
dGhpcy5jb250aW51ZVN0YXRlID0gdGhpcy5Db250aW51ZVN0YXRlLkNvbW1lbnQ7CisgICAgfQor
ICAgIAorICAgIGZ1bmN0aW9uIGNvbW1lbnRFbmRBY3Rpb24odG9rZW4pCisgICAgeworICAgICAg
ICB0aGlzLmN1cnNvciArPSB0b2tlbi5sZW5ndGg7CisgICAgICAgIHRoaXMubGluZUZyYWdtZW50
LmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlU3Bhbih0b2tlbiwgIndlYmtpdC1jc3MtY29tbWVudCIp
KTsKKyAgICAgICAgdGhpcy5jb250aW51ZVN0YXRlID0gdGhpcy5Db250aW51ZVN0YXRlLk5vbmU7
CisgICAgfQogCi0gICAgICAgIGlmICh0bXAgPCBjb2RlLmxlbmd0aCkKLSAgICAgICAgICAgIGxp
bmUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY29kZS5zdWJzdHJpbmcodG1w
LCBpKSkpOworICAgIGZ1bmN0aW9uIGNvbW1lbnRNaWRkbGVBY3Rpb24odG9rZW4pCisgICAgewor
ICAgICAgICB0aGlzLmN1cnNvciArPSB0b2tlbi5sZW5ndGg7CisgICAgICAgIHRoaXMubGluZUZy
YWdtZW50LmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlU3Bhbih0b2tlbiwgIndlYmtpdC1jc3MtY29t
bWVudCIpKTsKKyAgICB9CisgICAgCisgICAgZnVuY3Rpb24gcnVsZVN0YXJ0QWN0aW9uKHRva2Vu
KQorICAgIHsKKyAgICAgICAgdGhpcy5jdXJzb3IgKz0gdG9rZW4ubGVuZ3RoOworICAgICAgICB0
aGlzLm5vblRva2VuICs9IHRva2VuOworICAgICAgICB0aGlzLmxleFN0YXRlID0gdGhpcy5MZXhT
dGF0ZS5FeHBlY3RpbmdQcm9wZXJ0eTsKKyAgICB9CisgICAgCisgICAgZnVuY3Rpb24gcnVsZUVu
ZEFjdGlvbih0b2tlbikKKyAgICB7CisgICAgICAgIHRoaXMuY3Vyc29yICs9IHRva2VuLmxlbmd0
aDsKKyAgICAgICAgdGhpcy5ub25Ub2tlbiArPSB0b2tlbjsKKyAgICAgICAgdGhpcy5sZXhTdGF0
ZSA9IHRoaXMuTGV4U3RhdGUuSW5pdGlhbDsKKyAgICB9CisgICAgCisgICAgZnVuY3Rpb24gZGVj
bGFyYXRpb25FbmRBY3Rpb24odG9rZW4pCisgICAgeworICAgICAgICB0aGlzLmN1cnNvciArPSB0
b2tlbi5sZW5ndGg7CisgICAgICAgIHRoaXMubm9uVG9rZW4gKz0gdG9rZW47CisgICAgICAgIHRo
aXMubGV4U3RhdGUgPSB0aGlzLkxleFN0YXRlLkV4cGVjdGluZ1Byb3BlcnR5OworICAgIH0KKyAg
ICAKKyAgICBmdW5jdGlvbiBzZWxlY3RvckFjdGlvbih0b2tlbikKKyAgICB7CisgICAgICAgIHRo
aXMuY3Vyc29yICs9IHRva2VuLmxlbmd0aDsKKyAgICAgICAgdGhpcy5saW5lRnJhZ21lbnQuYXBw
ZW5kQ2hpbGQodGhpcy5jcmVhdGVTcGFuKHRva2VuLCAid2Via2l0LWNzcy1zZWxlY3RvciIpKTsK
KyAgICAgICAgdGhpcy5sZXhTdGF0ZSA9IHRoaXMuTGV4U3RhdGUuQWZ0ZXJTZWxlY3RvcjsKKyAg
ICB9CisgICAgCisgICAgZnVuY3Rpb24gcHJvcGVydHlBY3Rpb24odG9rZW4pCisgICAgeworICAg
ICAgICB0aGlzLmN1cnNvciArPSB0b2tlbi5sZW5ndGg7CisgICAgICAgIHRoaXMubGluZUZyYWdt
ZW50LmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlU3Bhbih0b2tlbiwgIndlYmtpdC1jc3MtcHJvcGVy
dHkiKSk7CisgICAgfQorICAgIAorICAgIGZ1bmN0aW9uIHByb3BlcnR5RW5kQWN0aW9uKHRva2Vu
KQorICAgIHsKKyAgICAgICAgdGhpcy5jdXJzb3IgKz0gdG9rZW4ubGVuZ3RoOworICAgICAgICB0
aGlzLm5vblRva2VuICs9IHRva2VuOworICAgICAgICB0aGlzLmxleFN0YXRlID0gdGhpcy5MZXhT
dGF0ZS5FeHBlY3RpbmdWYWx1ZTsKKyAgICB9CisgICAgCisgICAgZnVuY3Rpb24gVVJMQWN0aW9u
KHRva2VuKSB7CisgICAgICAgIHRoaXMuY3Vyc29yICs9IHRva2VuLmxlbmd0aDsKKyAgICAgICAg
dGhpcy5saW5lRnJhZ21lbnQuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVTcGFuKHRva2VuLCAid2Vi
a2l0LWNzcy11cmwiKSk7CisgICAgfQorICAgIAorICAgIGZ1bmN0aW9uIHN0cmluZ0FjdGlvbih0
b2tlbikgeworICAgICAgICB0aGlzLmN1cnNvciArPSB0b2tlbi5sZW5ndGg7CisgICAgICAgIHRo
aXMubGluZUZyYWdtZW50LmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlU3Bhbih0b2tlbiwgIndlYmtp
dC1jc3Mtc3RyaW5nIikpOworICAgIH0KKyAgICAKKyAgICBmdW5jdGlvbiBjb2xvckFjdGlvbih0
b2tlbikgeworICAgICAgICB0aGlzLmN1cnNvciArPSB0b2tlbi5sZW5ndGg7CisgICAgICAgIHRo
aXMubGluZUZyYWdtZW50LmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlU3Bhbih0b2tlbiwgIndlYmtp
dC1jc3MtY29sb3IiKSk7CisgICAgfQorICAgIAorICAgIGNvbnN0IHVuaXRQYXR0ZXJuID0gLyg/
OmVtfHJlbXxfX3FlbXxleHxweHxjbXxtbXxpbnxwdHxwY3xkZWd8cmFkfGdyYWR8dHVybnxtc3xz
fEh6fGtIenwlKyk/JC87CisgICAgZnVuY3Rpb24gbnVtYmVyVmFsdWVBY3Rpb24odG9rZW4pIHsK
KyAgICAgICAgdGhpcy5jdXJzb3IgKz0gdG9rZW4ubGVuZ3RoOworICAgICAgICB2YXIgdW5pdCA9
IHVuaXRQYXR0ZXJuLmV4ZWModG9rZW4pWzBdOworICAgICAgICB2YXIgbnVtID0gdG9rZW4uc3Vi
c3RyaW5nKDAsIHRva2VuLmxlbmd0aCAtIHVuaXQubGVuZ3RoKTsKKyAgICAgICAgdGhpcy5saW5l
RnJhZ21lbnQuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVTcGFuKG51bSwgIndlYmtpdC1jc3MtbnVt
YmVyIikpOworICAgICAgICB0aGlzLmxpbmVGcmFnbWVudC5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0
ZVNwYW4odW5pdCwgIndlYmtpdC1jc3MtdW5pdCIpKTsKKyAgICB9CisgICAgCisgICAgZnVuY3Rp
b24gaW1wb3J0YW50QWN0aW9uKHRva2VuKSB7CisgICAgICAgIHRoaXMuY3Vyc29yICs9IHRva2Vu
Lmxlbmd0aDsKKyAgICAgICAgdGhpcy5saW5lRnJhZ21lbnQuYXBwZW5kQ2hpbGQodGhpcy5jcmVh
dGVTcGFuKHRva2VuLCAid2Via2l0LWNzcy1pbXBvcnRhbnQiKSk7CisgICAgfQorICAgIAorICAg
IGZ1bmN0aW9uIGF0UnVsZUFjdGlvbih0b2tlbikgeworICAgICAgICB0aGlzLmN1cnNvciArPSB0
b2tlbi5sZW5ndGg7CisgICAgICAgIHRoaXMubGluZUZyYWdtZW50LmFwcGVuZENoaWxkKHRoaXMu
Y3JlYXRlU3Bhbih0b2tlbiwgIndlYmtpdC1jc3MtYXQtcnVsZSIpKTsKKyAgICAgICAgdGhpcy5s
ZXhTdGF0ZSA9IHRoaXMuTGV4U3RhdGUuQWZ0ZXJBdFJ1bGU7CisgICAgfQorICAgIAorICAgIGZ1
bmN0aW9uIGF0UnVsZVN0YXJ0QWN0aW9uKHRva2VuKSB7CisgICAgICAgIHRoaXMuY3Vyc29yICs9
IHRva2VuLmxlbmd0aDsKKyAgICAgICAgdGhpcy5ub25Ub2tlbiArPSB0b2tlbjsKKyAgICAgICAg
dGhpcy5sZXhTdGF0ZSA9IHRoaXMuTGV4U3RhdGUuSW5pdGlhbDsKKyAgICB9CisgICAgCisgICAg
ZnVuY3Rpb24gYXRSdWxlRW5kQWN0aW9uKHRva2VuKSB7CisgICAgICAgIHRoaXMuY3Vyc29yICs9
IHRva2VuLmxlbmd0aDsKKyAgICAgICAgdGhpcy5ub25Ub2tlbiArPSB0b2tlbjsKKyAgICAgICAg
dGhpcy5sZXhTdGF0ZSA9IHRoaXMuTGV4U3RhdGUuSW5pdGlhbDsKKyAgICB9CisgICAgCisgICAg
ZnVuY3Rpb24gdmFsdWVLZXl3b3JkQWN0aW9uKHRva2VuKSB7CisgICAgICAgIHRoaXMuY3Vyc29y
ICs9IHRva2VuLmxlbmd0aDsKKyAgICAgICAgdGhpcy5saW5lRnJhZ21lbnQuYXBwZW5kQ2hpbGQo
dGhpcy5jcmVhdGVTcGFuKHRva2VuLCAid2Via2l0LWNzcy12YWx1ZS1rZXl3b3JkIikpOworICAg
IH0KKyAgICAKKyAgICBmdW5jdGlvbiBzaW5nbGVRdW90ZVN0cmluZ1N0YXJ0QWN0aW9uKHRva2Vu
KQorICAgIHsKKyAgICAgICAgdGhpcy5jdXJzb3IgKz0gdG9rZW4ubGVuZ3RoOworICAgICAgICB0
aGlzLmxpbmVGcmFnbWVudC5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVNwYW4odG9rZW4sICJ3ZWJr
aXQtY3NzLXN0cmluZyIpKTsKKyAgICAgICAgdGhpcy5jb250aW51ZVN0YXRlID0gdGhpcy5Db250
aW51ZVN0YXRlLlNpbmdsZVF1b3RlU3RyaW5nOworICAgIH0KKyAgICAKKyAgICBmdW5jdGlvbiBz
aW5nbGVRdW90ZVN0cmluZ0VuZEFjdGlvbih0b2tlbikKKyAgICB7CisgICAgICAgIHRoaXMuY3Vy
c29yICs9IHRva2VuLmxlbmd0aDsKKyAgICAgICAgdGhpcy5saW5lRnJhZ21lbnQuYXBwZW5kQ2hp
bGQodGhpcy5jcmVhdGVTcGFuKHRva2VuLCAid2Via2l0LWNzcy1zdHJpbmciKSk7CisgICAgICAg
IHRoaXMuY29udGludWVTdGF0ZSA9IHRoaXMuQ29udGludWVTdGF0ZS5Ob25lOworICAgIH0KKyAg
ICAKKyAgICBmdW5jdGlvbiBzaW5nbGVRdW90ZVN0cmluZ01pZGRsZUFjdGlvbih0b2tlbikKKyAg
ICB7CisgICAgICAgIHRoaXMuY3Vyc29yICs9IHRva2VuLmxlbmd0aDsKKyAgICAgICAgdGhpcy5s
aW5lRnJhZ21lbnQuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVTcGFuKHRva2VuLCAid2Via2l0LWNz
cy1zdHJpbmciKSk7CisgICAgfQorICAgIAorICAgIGZ1bmN0aW9uIGRvdWJsZVF1b3RlU3RyaW5n
U3RhcnRBY3Rpb24odG9rZW4pCisgICAgeworICAgICAgICB0aGlzLmN1cnNvciArPSB0b2tlbi5s
ZW5ndGg7CisgICAgICAgIHRoaXMubGluZUZyYWdtZW50LmFwcGVuZENoaWxkKHRoaXMuY3JlYXRl
U3Bhbih0b2tlbiwgIndlYmtpdC1jc3Mtc3RyaW5nIikpOworICAgICAgICB0aGlzLmNvbnRpbnVl
U3RhdGUgPSB0aGlzLkNvbnRpbnVlU3RhdGUuRG91YmxlUXVvdGVTdHJpbmc7CisgICAgfQorICAg
IAorICAgIGZ1bmN0aW9uIGRvdWJsZVF1b3RlU3RyaW5nRW5kQWN0aW9uKHRva2VuKQorICAgIHsK
KyAgICAgICAgdGhpcy5jdXJzb3IgKz0gdG9rZW4ubGVuZ3RoOworICAgICAgICB0aGlzLmxpbmVG
cmFnbWVudC5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVNwYW4odG9rZW4sICJ3ZWJraXQtY3NzLXN0
cmluZyIpKTsKKyAgICAgICAgdGhpcy5jb250aW51ZVN0YXRlID0gdGhpcy5Db250aW51ZVN0YXRl
Lk5vbmU7CisgICAgfQorICAgIAorICAgIGZ1bmN0aW9uIGRvdWJsZVF1b3RlU3RyaW5nTWlkZGxl
QWN0aW9uKHRva2VuKQorICAgIHsKKyAgICAgICAgdGhpcy5jdXJzb3IgKz0gdG9rZW4ubGVuZ3Ro
OworICAgICAgICB0aGlzLmxpbmVGcmFnbWVudC5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVNwYW4o
dG9rZW4sICJ3ZWJraXQtY3NzLXN0cmluZyIpKTsKICAgICB9CiB9CiAKLVdlYkluc3BlY3Rvci5D
U1NTb3VyY2VTeW50YXhIaWdobGlnaGVyLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0
b3IuU291cmNlU3ludGF4SGlnaGxpZ2hlci5wcm90b3R5cGU7CitXZWJJbnNwZWN0b3IuQ1NTU291
cmNlU3ludGF4SGlnaGxpZ2h0ZXIucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5T
b3VyY2VTeW50YXhIaWdobGlnaHRlci5wcm90b3R5cGU7CiAKIFdlYkluc3BlY3Rvci5KYXZhU2Ny
aXB0U291cmNlU3ludGF4SGlnaGxpZ2h0ZXIgPSBmdW5jdGlvbih0YWJsZSwgc291cmNlRnJhbWUp
IHsKLSAgICBXZWJJbnNwZWN0b3IuU291cmNlU3ludGF4SGlnaGxpZ2hlci5jYWxsKHRoaXMsIHRh
YmxlLCBzb3VyY2VGcmFtZSk7CisgICAgV2ViSW5zcGVjdG9yLlNvdXJjZVN5bnRheEhpZ2hsaWdo
dGVyLmNhbGwodGhpcywgdGFibGUsIHNvdXJjZUZyYW1lKTsKIAogICAgIHRoaXMuTGV4U3RhdGUg
PSB7CiAgICAgICAgIEluaXRpYWw6IDEsCkBAIC0xMDYwLDcgKzEzODksNyBAQCBXZWJJbnNwZWN0
b3IuSmF2YVNjcmlwdFNvdXJjZVN5bnRheEhpZ2hsCiAgICAgICAgIH0sIHsKICAgICAgICAgICAg
IHBhdHRlcm46IC9eKD86XC89PykvLAogICAgICAgICAgICAgYWN0aW9uOiBkaXZQdW5jdHVhdG9y
QWN0aW9uLAotICAgICAgICAgICAgc3RhdGVDb25kaXRpb246IHRoaXMuTGV4U3RhdGUuRGl2aXNp
b25BbGxvd2VkLAorICAgICAgICAgICAgbGV4U3RhdGVDb25kaXRpb246IHRoaXMuTGV4U3RhdGUu
RGl2aXNpb25BbGxvd2VkLAogICAgICAgICAgICAgZG9udEFwcGVuZE5vblRva2VuOiB0cnVlCiAg
ICAgICAgIH0sIHsKICAgICAgICAgICAgIHBhdHRlcm46IC9eKD86XC8oPzooPzpcXC4pfFteXFwq
XC9dKSg/Oig/OlxcLil8W15cXC9dKSpcLyg/Oig/OlthLXpBLVpdfFskX118XFwoPzp1WzAtOWEt
ZkEtRl1bMC05YS1mQS1GXVswLTlhLWZBLUZdWzAtOWEtZkEtRl0pKXxbMC05XSkqKS8sCkBAIC0x
MTk2LDcgKzE1MjUsOCBAQCBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZVN5bnRheEhpZ2hs
CiAgICAgICAgIGNvbnN0IGtleXdvcmRzID0gWyJudWxsIiwgInRydWUiLCAiZmFsc2UiLCAiYnJl
YWsiLCAiY2FzZSIsICJjYXRjaCIsICJjb25zdCIsICJkZWZhdWx0IiwgImZpbmFsbHkiLCAiZm9y
IiwgImluc3RhbmNlb2YiLCAibmV3IiwgInZhciIsICJjb250aW51ZSIsICJmdW5jdGlvbiIsICJy
ZXR1cm4iLCAidm9pZCIsICJkZWxldGUiLCAiaWYiLCAidGhpcyIsICJkbyIsICJ3aGlsZSIsICJl
bHNlIiwgImluIiwgInN3aXRjaCIsICJ0aHJvdyIsICJ0cnkiLCAidHlwZW9mIiwgIndpdGgiLCAi
ZGVidWdnZXIiLCAiY2xhc3MiLCAiZW51bSIsICJleHBvcnQiLCAiZXh0ZW5kcyIsICJpbXBvcnQi
LCAic3VwZXIiLCAiZ2V0IiwgInNldCJdOwogICAgICAgICB0aGlzLmN1cnNvciArPSB0b2tlbi5s
ZW5ndGg7CiAgICAgICAgIGlmIChrZXl3b3Jkcy5pbmRleE9mKHRva2VuKSA9PT0gLTEpIHsKLSAg
ICAgICAgICAgIHRoaXMubm9uVG9rZW4gKz0gdG9rZW47CisgICAgICAgICAgICB0aGlzLmFwcGVu
ZE5vblRva2VuKCk7CisgICAgICAgICAgICB0aGlzLmxpbmVGcmFnbWVudC5hcHBlbmRDaGlsZCh0
aGlzLmNyZWF0ZVNwYW4odG9rZW4sICJ3ZWJraXQtamF2YXNjcmlwdC1pZGVudCIpKTsKICAgICAg
ICAgICAgIHRoaXMubGV4U3RhdGUgPSB0aGlzLkxleFN0YXRlLkRpdmlzaW9uQWxsb3dlZDsKICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHRoaXMuYXBwZW5kTm9uVG9rZW4oKTsKQEAgLTEy
MjcsMTMxICsxNTU3LDQgQEAgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VTeW50YXhIaWdo
bAogICAgIH0KIH0KIAotV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VTeW50YXhIaWdobGln
aHRlci5wcm90b3R5cGUgPSB7Ci0gICAgcHJvY2VzczogZnVuY3Rpb24oKQotICAgIHsKLSAgICAg
ICAgLy8gU3BsaXQgdXAgdGhlIHdvcmsgaW50byBjaHVua3Mgc28gd2UgZG9uJ3QgYmxvY2sgdGhl
Ci0gICAgICAgIC8vIFVJIHRocmVhZCB3aGlsZSBwcm9jZXNzaW5nLgotCi0gICAgICAgIHZhciBy
b3dzID0gdGhpcy50YWJsZS5yb3dzOwotICAgICAgICB2YXIgcm93c0xlbmd0aCA9IHJvd3MubGVu
Z3RoOwotICAgICAgICBjb25zdCB0b2tlbnNQZXJDaHVuayA9IDEwMDsKLSAgICAgICAgY29uc3Qg
bGluZUxlbmd0aExpbWl0ID0gMjAwMDA7Ci0gICAgICAgIAotICAgICAgICB2YXIgYm91bmRQcm9j
ZXNzQ2h1bmsgPSBwcm9jZXNzQ2h1bmsuYmluZCh0aGlzKTsKLSAgICAgICAgdmFyIHByb2Nlc3ND
aHVua0ludGVydmFsID0gc2V0SW50ZXJ2YWwoYm91bmRQcm9jZXNzQ2h1bmssIDI1KTsKLSAgICAg
ICAgYm91bmRQcm9jZXNzQ2h1bmsoKTsKLSAgICAgICAgCi0gICAgICAgIGZ1bmN0aW9uIHByb2Nl
c3NDaHVuaygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdG9r
ZW5zUGVyQ2h1bms7IGkrKykgewotICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1cnNvciA+PSB0
aGlzLmxpbmVDb2RlLmxlbmd0aCkKLSAgICAgICAgICAgICAgICAgICAgbW92ZVRvTmV4dExpbmUu
Y2FsbCh0aGlzKTsKLSAgICAgICAgICAgICAgICBpZiAodGhpcy5saW5lSW5kZXggPj0gcm93c0xl
bmd0aCkgewotICAgICAgICAgICAgICAgICAgICB0aGlzLnNvdXJjZUZyYW1lLmRpc3BhdGNoRXZl
bnRUb0xpc3RlbmVycygic3ludGF4IGhpZ2hsaWdodGluZyBjb21wbGV0ZSIpOwotICAgICAgICAg
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlm
ICh0aGlzLmN1cnNvciA+IGxpbmVMZW5ndGhMaW1pdCkgewotICAgICAgICAgICAgICAgICAgICB2
YXIgY29kZUZyYWdtZW50ID0gdGhpcy5saW5lQ29kZS5zdWJzdHJpbmcodGhpcy5jdXJzb3IpOwot
ICAgICAgICAgICAgICAgICAgICB0aGlzLm5vblRva2VuICs9IGNvZGVGcmFnbWVudDsKLSAgICAg
ICAgICAgICAgICAgICAgdGhpcy5jdXJzb3IgKz0gY29kZUZyYWdtZW50Lmxlbmd0aDsKLSAgICAg
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICB0aGlzLmxleCgpOwotICAgICAgICAgICAg
fQotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBmdW5jdGlvbiBtb3ZlVG9OZXh0TGluZSgp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHRoaXMuYXBwZW5kTm9uVG9rZW4oKTsKLSAgICAgICAg
ICAgIAotICAgICAgICAgICAgdmFyIHJvdyA9IHJvd3NbdGhpcy5saW5lSW5kZXhdOwotICAgICAg
ICAgICAgdmFyIGxpbmUgPSByb3cgPyByb3cuY2VsbHNbMV0gOiBudWxsOwotICAgICAgICAgICAg
aWYgKGxpbmUgJiYgdGhpcy5saW5lRnJhZ21lbnQpIHsKLSAgICAgICAgICAgICAgICB2YXIgbWVz
c2FnZUJ1YmJsZSA9IG51bGw7Ci0gICAgICAgICAgICAgICAgaWYgKGxpbmUubGFzdENoaWxkICYm
IGxpbmUubGFzdENoaWxkLm5vZGVUeXBlID09PSBOb2RlLkVMRU1FTlRfTk9ERSAmJiBsaW5lLmxh
c3RDaGlsZC5oYXNTdHlsZUNsYXNzKCJ3ZWJraXQtaHRtbC1tZXNzYWdlLWJ1YmJsZSIpKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VCdWJibGUgPSBsaW5lLmxhc3RDaGlsZDsKLSAgICAg
ICAgICAgICAgICAgICAgbGluZS5yZW1vdmVDaGlsZChtZXNzYWdlQnViYmxlKTsKLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgRWxlbWVudC5wcm90
b3R5cGUucmVtb3ZlQ2hpbGRyZW4uY2FsbChsaW5lKTsKLSAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgICAgICBsaW5lLmFwcGVuZENoaWxkKHRoaXMubGluZUZyYWdtZW50KTsKLSAgICAgICAg
ICAgICAgICBpZiAobWVzc2FnZUJ1YmJsZSkKLSAgICAgICAgICAgICAgICAgICAgbGluZS5hcHBl
bmRDaGlsZChtZXNzYWdlQnViYmxlKTsKLSAgICAgICAgICAgICAgICB0aGlzLmxpbmVGcmFnbWVu
dCA9IG51bGw7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB0aGlzLmxpbmVJbmRleCsrOwot
ICAgICAgICAgICAgaWYgKHRoaXMubGluZUluZGV4ID49IHJvd3NMZW5ndGggJiYgcHJvY2Vzc0No
dW5rSW50ZXJ2YWwpIHsKLSAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKHByb2Nlc3NDaHVu
a0ludGVydmFsKTsKLSAgICAgICAgICAgICAgICB0aGlzLnNvdXJjZUZyYW1lLmRpc3BhdGNoRXZl
bnRUb0xpc3RlbmVycygic3ludGF4IGhpZ2hsaWdodGluZyBjb21wbGV0ZSIpOwotICAgICAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJvdyA9IHJvd3NbdGhp
cy5saW5lSW5kZXhdOwotICAgICAgICAgICAgbGluZSA9IHJvdyA/IHJvdy5jZWxsc1sxXSA6IG51
bGw7Ci0gICAgICAgICAgICB0aGlzLmxpbmVDb2RlID0gbGluZS50ZXh0Q29udGVudDsKLSAgICAg
ICAgICAgIHRoaXMubGluZUZyYWdtZW50ID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVu
dCgpOwotICAgICAgICAgICAgdGhpcy5jdXJzb3IgPSAwOwotICAgICAgICAgICAgaWYgKCFsaW5l
KQotICAgICAgICAgICAgICAgIG1vdmVUb05leHRMaW5lKCk7Ci0gICAgICAgIH0KLSAgICB9LAot
ICAgIAotICAgIGxleDogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdmFyIHRva2VuID0gbnVs
bDsKLSAgICAgICAgdmFyIGNvZGVGcmFnbWVudCA9IHRoaXMubGluZUNvZGUuc3Vic3RyaW5nKHRo
aXMuY3Vyc29yKTsKLSAgICAgICAgCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5y
dWxlcy5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgdmFyIHJ1bGUgPSB0aGlzLnJ1bGVzW2ld
OwotICAgICAgICAgICAgdmFyIHJ1bGVDb250aW51ZVN0YXRlQ29uZGl0aW9uID0gdHlwZW9mIHJ1
bGUuY29udGludWVTdGF0ZUNvbmRpdGlvbiA9PT0gInVuZGVmaW5lZCIgPyB0aGlzLkNvbnRpbnVl
U3RhdGUuTm9uZSA6IHJ1bGUuY29udGludWVTdGF0ZUNvbmRpdGlvbjsKLSAgICAgICAgICAgIGlm
ICh0aGlzLmNvbnRpbnVlU3RhdGUgPT09IHJ1bGVDb250aW51ZVN0YXRlQ29uZGl0aW9uKSB7Ci0g
ICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBydWxlLnN0YXRlQ29uZGl0aW9uICE9PSAidW5kZWZp
bmVkIiAmJiB0aGlzLmxleFN0YXRlICE9PSBydWxlLnN0YXRlQ29uZGl0aW9uKQotICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICB2YXIgbWF0Y2ggPSBydWxlLnBh
dHRlcm4uZXhlYyhjb2RlRnJhZ21lbnQpOwotICAgICAgICAgICAgICAgIGlmIChtYXRjaCkgewot
ICAgICAgICAgICAgICAgICAgICB0b2tlbiA9IG1hdGNoWzBdOwotICAgICAgICAgICAgICAgICAg
ICBpZiAodG9rZW4pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcnVsZS5kb250QXBw
ZW5kTm9uVG9rZW4pCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBlbmROb25U
b2tlbigpOwotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJ1bGUuYWN0aW9uLmNhbGwo
dGhpcywgdG9rZW4pOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHRoaXMubm9uVG9rZW4gKz0gY29kZUZy
YWdtZW50WzBdOwotICAgICAgICB0aGlzLmN1cnNvcisrOwotICAgIH0sCi0gICAgCi0gICAgYXBw
ZW5kTm9uVG9rZW46IGZ1bmN0aW9uICgpCi0gICAgewotICAgICAgICBpZiAodGhpcy5ub25Ub2tl
bi5sZW5ndGggPiAwKSB7Ci0gICAgICAgICAgICB0aGlzLmxpbmVGcmFnbWVudC5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0aGlzLm5vblRva2VuKSk7Ci0gICAgICAgICAgICB0
aGlzLm5vblRva2VuID0gIiI7Ci0gICAgICAgIH0KLSAgICB9LAotICAgIAotICAgIHN5bnRheEhp
Z2hsaWdodE5vZGU6IGZ1bmN0aW9uKG5vZGUpCi0gICAgewotICAgICAgICB0aGlzLmxpbmVDb2Rl
ID0gbm9kZS50ZXh0Q29udGVudDsKLSAgICAgICAgdGhpcy5saW5lRnJhZ21lbnQgPSBkb2N1bWVu
dC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAgICAgIHRoaXMuY3Vyc29yID0gMDsKLSAg
ICAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgICAgIGlmICh0aGlzLmN1cnNvciA+PSB0aGlz
LmxpbmVDb2RlLmxlbmd0aCkgewotICAgICAgICAgICAgICAgIHZhciBjb2RlRnJhZ21lbnQgPSB0
aGlzLmxpbmVDb2RlLnN1YnN0cmluZyh0aGlzLmN1cnNvcik7Ci0gICAgICAgICAgICAgICAgdGhp
cy5ub25Ub2tlbiArPSBjb2RlRnJhZ21lbnQ7Ci0gICAgICAgICAgICAgICAgdGhpcy5jdXJzb3Ig
Kz0gY29kZUZyYWdtZW50Lmxlbmd0aDsKLSAgICAgICAgICAgICAgICB0aGlzLmFwcGVuZE5vblRv
a2VuKCk7Ci0gICAgICAgICAgICAgICAgd2hpbGUgKG5vZGUuZmlyc3RDaGlsZCkKLSAgICAgICAg
ICAgICAgICAgICAgbm9kZS5yZW1vdmVDaGlsZChub2RlLmZpcnN0Q2hpbGQpOwotICAgICAgICAg
ICAgICAgIG5vZGUuYXBwZW5kQ2hpbGQodGhpcy5saW5lRnJhZ21lbnQpOwotICAgICAgICAgICAg
ICAgIHRoaXMubGluZUZyYWdtZW50ID1udWxsOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgICAgIH0KLQotICAgICAgICAgICAgdGhpcy5sZXgoKTsKLSAgICAgICAgfQotICAgIH0K
LX0KLQotV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VTeW50YXhIaWdobGlnaHRlci5wcm90
b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlNvdXJjZVN5bnRheEhpZ2hsaWdoZXIucHJv
dG90eXBlOworV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VTeW50YXhIaWdobGlnaHRlci5w
cm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlNvdXJjZVN5bnRheEhpZ2hsaWdodGVy
LnByb3RvdHlwZTsKSW5kZXg6IFdlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3JT
eW50YXhIaWdobGlnaHQuY3NzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9pbnNwZWN0b3JTeW50YXhIaWdobGlnaHQuY3NzCShyZXZpc2lvbiA1MDI3NCkKKysrIFdl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3JTeW50YXhIaWdobGlnaHQuY3NzCSh3
b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBACiAgICAgY29sb3I6IHJnYigwLCAxMTYsIDAp
OwogfQogCi0ud2Via2l0LWNzcy1zdHJpbmcsIC53ZWJraXQtY3NzLWtleXdvcmQsIC53ZWJraXQt
Y3NzLXVuaXQgeworLndlYmtpdC1jc3MtY29sb3IsIC53ZWJraXQtY3NzLXZhbHVlLWtleXdvcmQs
IC53ZWJraXQtY3NzLXN0cmluZywgLndlYmtpdC1jc3Mta2V5d29yZCwgLndlYmtpdC1jc3MtdW5p
dCB7CiAgICAgY29sb3I6IHJnYig3LCAxNDQsIDE1NCk7CiB9CiAKQEAgLTUwLDggKzUwLDggQEAK
ICAgICBjb2xvcjogcmdiKDAsIDAsIDApOwogfQogCi0ud2Via2l0LWNzcy1wc2V1ZG8tY2xhc3Mg
ewotICAgIGNvbG9yOiByZ2IoMTI4LCAxMjgsIDEyOCk7Cisud2Via2l0LWNzcy1pbXBvcnRhbnQg
eworICAgIGNvbG9yOiByZ2IoMjU1LCAwLCAwKTsKIH0KIAogLndlYmtpdC1qYXZhc2NyaXB0LWNv
bW1lbnQgewpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNTAyODkpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAwOS0xMC0yOSAgS2Vpc2hpIEhh
dHRvcmkgIDxjYXNleS5oYXR0b3JpQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZXdyaXRlIENTU1NvdXJj
ZVN5bnRheEhpZ2hsaWdodGVyIHNvIGl0IHNoYXJlcyBtb3JlIGNvZGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwOTA3CisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvY3NzLXN5bnRheC1oaWdobGlnaHQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvY3NzLXN5bnRheC1oaWdobGlnaHQuaHRtbDogQWRkZWQuCisKIDIwMDktMTAt
MjkgIEJyaWFuIFdlaW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJ1
YmJlci1zdGFtcGVkIGJ5IFN0ZXZlIEZhbGtlbmJ1cmcuCkluZGV4OiBMYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY3NzLXN5bnRheC1oaWdobGlnaHQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2luc3BlY3Rvci9jc3Mtc3ludGF4LWhpZ2hsaWdodC1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzLXN5bnRheC1oaWdobGlnaHQt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwIEBACitUZXN0cyB0aGF0IENT
U1NvdXJjZVN5bnRheEhpZ2hsaWdodGVyIGRldGVjdHMgdGhlIHRva2Vucy4KKword2Via2l0LWNz
cy1zZWxlY3Rvcgord2Via2l0LWNzcy1zZWxlY3RvciwqLHdlYmtpdC1jc3Mtc2VsZWN0b3IKK3dl
YmtpdC1jc3MtYXQtcnVsZSwqLHdlYmtpdC1jc3MtdXJsLCoKK3dlYmtpdC1jc3MtYXQtcnVsZSwq
LHdlYmtpdC1jc3MtdXJsLCosd2Via2l0LWNzcy1rZXl3b3JkLCosd2Via2l0LWNzcy1rZXl3b3Jk
LCoKK3dlYmtpdC1jc3MtYXQtcnVsZSwqLHdlYmtpdC1jc3Mta2V5d29yZCwqLHdlYmtpdC1jc3Mt
c2VsZWN0b3IsKix3ZWJraXQtY3NzLXByb3BlcnR5LCosd2Via2l0LWNzcy1jb2xvciwqCit3ZWJr
aXQtY3NzLWF0LXJ1bGUsKix3ZWJraXQtY3NzLXByb3BlcnR5LCoKK3dlYmtpdC1jc3Mtc2VsZWN0
b3IsKix3ZWJraXQtY3NzLXByb3BlcnR5LCosd2Via2l0LWNzcy1jb2xvciwqCisKSW5kZXg6IExh
eW91dFRlc3RzL2luc3BlY3Rvci9jc3Mtc3ludGF4LWhpZ2hsaWdodC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2luc3BlY3Rvci9jc3Mtc3ludGF4LWhpZ2hsaWdodC5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy1zeW50YXgtaGlnaGxpZ2h0Lmh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjQgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iZXZhbHVhdGUtaW4tZnJvbnRlbmQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZnVu
Y3Rpb24gZG9pdCgpCit7CisgICAgZnVuY3Rpb24gY2FsbGJhY2socmVzdWx0KQorICAgIHsKKyAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXN1bHQubGVuZ3RoOyArK2kpCisgICAgICAgICAg
ICBvdXRwdXQocmVzdWx0W2ldKTsKKyAgICAgICAgbm90aWZ5RG9uZSgpOworICAgIH0KKyAgICBl
dmFsdWF0ZUluV2ViSW5zcGVjdG9yKCJkb2l0QW5kRHVtcCIsIGNhbGxiYWNrKTsKK30KKworPC9z
Y3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0ib25sb2FkKCkiPgorPHA+CitUZXN0cyB0
aGF0IENTU1NvdXJjZVN5bnRheEhpZ2hsaWdodGVyIGRldGVjdHMgdGhlIHRva2Vucy4KKzwvcD4K
KworPGRpdiBpZD0iZnJvbnRlbmQtc2NyaXB0IiBzdHlsZT0iZGlzcGxheTpub25lIj4KK2Z1bmN0
aW9uIGRvaXRBbmREdW1wKHRlc3RDb250cm9sbGVyKSB7CisgICAgdGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBy
ZXN1bHQgPSBbXTsKKyAgICAgICAgCisgICAgICAgIHJlc3VsdC5wdXNoKGR1bXBTeW50YXhIaWdo
bGlnaHQoImFbaHJlZj0nLyddIikpOworICAgICAgICByZXN1bHQucHVzaChkdW1wU3ludGF4SGln
aGxpZ2h0KCIjY29udGVudCA+IGE6aG92ZXIiKSk7CisgICAgICAgIHJlc3VsdC5wdXNoKGR1bXBT
eW50YXhIaWdobGlnaHQoIkBpbXBvcnQgdXJsKHN0eWxlLmNzcyk7IikpOworICAgICAgICByZXN1
bHQucHVzaChkdW1wU3ludGF4SGlnaGxpZ2h0KCJAaW1wb3J0IHVybChcInN0eWxlLmNzc1wiKSBw
cm9qZWN0aW9uLCB0djsiKSk7CisgICAgICAgIHJlc3VsdC5wdXNoKGR1bXBTeW50YXhIaWdobGln
aHQoIkBtZWRpYSBzY3JlZW4geyBib2R5IHsgY29sb3I6IHJlZDsgfSB9IikpOworICAgICAgICBy
ZXN1bHQucHVzaChkdW1wU3ludGF4SGlnaGxpZ2h0KCJAZm9udC1mYWNlIHsgZm9udC1mYW1pbHk6
IE15SGVsdmV0aWNhOyB9IikpOworICAgICAgICByZXN1bHQucHVzaChkdW1wU3ludGF4SGlnaGxp
Z2h0KCJwIHsgY29sb3I6IGNvbG9yOyByZWQ6IHJlZDsgfSIpKTsKKyAgICAgICAgCisgICAgICAg
IHRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUocmVzdWx0KTsKKyAgICAgICAgCisgICAgfSwgMCk7
Cit9CitmdW5jdGlvbiBkdW1wU3ludGF4SGlnaGxpZ2h0KHN0cikgeworICAgIHZhciBub2RlID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICAgIG5vZGUudGV4dENvbnRlbnQgPSBz
dHI7CisgICAgdmFyIENTU1N5bnRheEhpZ2hsaWdodGVyID0gbmV3IFdlYkluc3BlY3Rvci5DU1NT
b3VyY2VTeW50YXhIaWdobGlnaHRlcihudWxsLCBudWxsKTsKKyAgICBDU1NTeW50YXhIaWdobGln
aHRlci5zeW50YXhIaWdobGlnaHROb2RlKG5vZGUpOworICAgIHZhciBub2RlX3BhcnRzID0gW107
CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2RlLmNoaWxkTm9kZXMubGVuZ3RoOyBpKyspIHsK
KyAgICAgICAgaWYgKG5vZGUuY2hpbGROb2Rlc1tpXS5nZXRBdHRyaWJ1dGUpIHsKKyAgICAgICAg
ICAgIG5vZGVfcGFydHMucHVzaChub2RlLmNoaWxkTm9kZXNbaV0uZ2V0QXR0cmlidXRlKCJjbGFz
cyIpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG5vZGVfcGFydHMucHVzaCgiKiIp
OworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBub2RlX3BhcnRzLmpvaW4oIiwiKTsKK30K
KzwvZGl2PgorCis8ZGl2IGlkPSJvdXRwdXQiPgorPC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42290</attachid>
            <date>2009-11-01 18:53:42 -0800</date>
            <delta_ts>2009-11-01 20:33:22 -0800</delta_ts>
            <desc>proposed patch 2</desc>
            <filename>css.diff</filename>
            <type>text/plain</type>
            <size>58634</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MDM5NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMDktMTEtMDEgIEtlaXNoaSBIYXR0b3JpICA8Y2FzZXkuaGF0dG9y
aUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgV2ViIEluc3BlY3RvcjogUmV3cml0ZSBDU1NTb3VyY2VTeW50YXhIaWdobGlnaHRlciBz
byBpdCBzaGFyZXMgbW9yZSBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zMDkwNworCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9jc3Mtc3ludGF4
LWhpZ2hsaWdodC5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRz
VHJlZU91dGxpbmUuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFt
ZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuc3ludGF4
SGlnaGxpZ2h0Q1NTKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VTeW50YXhIaWdobGln
aHRlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlU3ludGF4SGlnaGxpZ2h0ZXIucHJv
dG90eXBlLnByb2Nlc3MucHJvY2Vzc0NodW5rKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3Vy
Y2VTeW50YXhIaWdobGlnaHRlci5wcm90b3R5cGUucHJvY2Vzcy5tb3ZlVG9OZXh0TGluZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlU3ludGF4SGlnaGxpZ2h0ZXIucHJvdG90eXBlLnBy
b2Nlc3MpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZVN5bnRheEhpZ2hsaWdodGVyLnBy
b3RvdHlwZS5sZXgpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZVN5bnRheEhpZ2hsaWdo
dGVyLnByb3RvdHlwZS5hcHBlbmROb25Ub2tlbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291
cmNlU3ludGF4SGlnaGxpZ2h0ZXIucHJvdG90eXBlLnN5bnRheEhpZ2hsaWdodE5vZGUpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkNTU1NvdXJjZVN5bnRheEhpZ2hsaWdodGVyKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3RvclN5bnRheEhpZ2hsaWdodC5jc3M6CisKIDIw
MDktMTEtMDIgIFJvbGFuZCBTdGVpbmVyICA8cm9sYW5kc3RlaW5lckBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2ZSBIeWF0dC4KSW5kZXg6IFdlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzCShyZXZpc2lvbiA1MDM5
NikKKysrIFdlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC04NTAsOCArODUwLDggQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRz
VHJlZUVsZW1lbnQucHJvdG90eQogICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG5ld05vZGUg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBuZXdOb2RlLnRleHRDb250ZW50ID0gbm9kZS50ZXh0Q29udGVudDsKICAgICAgICAgICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNzc1N5bnRheEhpZ2hsaWdo
dGVyID0gbmV3IFdlYkluc3BlY3Rvci5DU1NTb3VyY2VTeW50YXhIaWdobGlnaGVyKG51bGwsIG51
bGwpOwotICAgICAgICAgICAgICAgICAgICAgICAgY3NzU3ludGF4SGlnaGxpZ2h0ZXIuc3ludGF4
SGlnaGxpZ2h0TGluZShuZXdOb2RlLCBudWxsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZh
ciBjc3NTeW50YXhIaWdobGlnaHRlciA9IG5ldyBXZWJJbnNwZWN0b3IuQ1NTU291cmNlU3ludGF4
SGlnaGxpZ2h0ZXIobnVsbCwgbnVsbCk7CisgICAgICAgICAgICAgICAgICAgICAgICBjc3NTeW50
YXhIaWdobGlnaHRlci5zeW50YXhIaWdobGlnaHROb2RlKG5ld05vZGUpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICBpbmZvLnRpdGxlID0gIjxzcGFu
IGNsYXNzPVwid2Via2l0LWh0bWwtdGV4dC1ub2RlIHdlYmtpdC1odG1sLWNzcy1ub2RlXCI+IiAr
IG5ld05vZGUuaW5uZXJIVE1MLnJlcGxhY2UoL15bXG5ccl0qLywgIiIpLnJlcGxhY2UoL1xzKiQv
LCAiIikgKyAiPC9zcGFuPiI7CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CkluZGV4OiBX
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzCShyZXZpc2lvbiA1MDM5
NikKKysrIFdlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtNzMxLDIwICs3MzEsMjAgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgaWYgKCF0YWJsZSkKICAgICAgICAgICAgIHJldHVybjsKIAot
ICAgICAgICB2YXIgY3NzU3ludGF4SGlnaGxpZ2h0ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkNTU1Nv
dXJjZVN5bnRheEhpZ2hsaWdoZXIodGFibGUsIHRoaXMpOworICAgICAgICB2YXIgY3NzU3ludGF4
SGlnaGxpZ2h0ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkNTU1NvdXJjZVN5bnRheEhpZ2hsaWdodGVy
KHRhYmxlLCB0aGlzKTsKICAgICAgICAgY3NzU3ludGF4SGlnaGxpZ2h0ZXIucHJvY2VzcygpOwog
ICAgIH0KIH0KIAogV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS5fX3Byb3RvX18g
PSBXZWJJbnNwZWN0b3IuT2JqZWN0LnByb3RvdHlwZTsKIAotV2ViSW5zcGVjdG9yLlNvdXJjZVN5
bnRheEhpZ2hsaWdoZXIgPSBmdW5jdGlvbih0YWJsZSwgc291cmNlRnJhbWUpCitXZWJJbnNwZWN0
b3IuU291cmNlU3ludGF4SGlnaGxpZ2h0ZXIgPSBmdW5jdGlvbih0YWJsZSwgc291cmNlRnJhbWUp
CiB7CiAgICAgdGhpcy50YWJsZSA9IHRhYmxlOwogICAgIHRoaXMuc291cmNlRnJhbWUgPSBzb3Vy
Y2VGcmFtZTsKIH0KIAotV2ViSW5zcGVjdG9yLlNvdXJjZVN5bnRheEhpZ2hsaWdoZXIucHJvdG90
eXBlID0geworV2ViSW5zcGVjdG9yLlNvdXJjZVN5bnRheEhpZ2hsaWdodGVyLnByb3RvdHlwZSA9
IHsKICAgICBjcmVhdGVTcGFuOiBmdW5jdGlvbihjb250ZW50LCBjbGFzc05hbWUpCiAgICAgewog
ICAgICAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKQEAgLTc1
MywyMzQgKzc1Myw1OTIgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZVN5bnRheEhpZ2hsaWdoZXIucHJv
dAogICAgICAgICByZXR1cm4gc3BhbjsKICAgICB9LAogCi0gICAgZ2VuZXJhdGVGaW5kZXI6IGZ1
bmN0aW9uKHJlZ2V4LCBtYXRjaE51bWJlciwgY2xhc3NOYW1lKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIGZ1bmN0aW9uKHN0cikgewotICAgICAgICAgICAgdmFyIG1hdGNoID0gcmVnZXguZXhlYyhz
dHIpOwotICAgICAgICAgICAgaWYgKCFtYXRjaCkKLSAgICAgICAgICAgICAgICByZXR1cm4gbnVs
bDsKLSAgICAgICAgICAgIHRoaXMucHJldmlvdXNNYXRjaExlbmd0aCA9IG1hdGNoW21hdGNoTnVt
YmVyXS5sZW5ndGg7Ci0gICAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVTcGFuKG1hdGNoW21h
dGNoTnVtYmVyXSwgY2xhc3NOYW1lKTsKLSAgICAgICAgfTsKLSAgICB9LAotCiAgICAgcHJvY2Vz
czogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgLy8gU3BsaXQgdXAgdGhlIHdvcmsgaW50byBj
aHVua3Mgc28gd2UgZG9uJ3QgYmxvY2sgdGhlCiAgICAgICAgIC8vIFVJIHRocmVhZCB3aGlsZSBw
cm9jZXNzaW5nLgogCi0gICAgICAgIHZhciBpID0gMDsKICAgICAgICAgdmFyIHJvd3MgPSB0aGlz
LnRhYmxlLnJvd3M7CiAgICAgICAgIHZhciByb3dzTGVuZ3RoID0gcm93cy5sZW5ndGg7Ci0gICAg
ICAgIHZhciBwcmV2aW91c0NlbGwgPSBudWxsOwotICAgICAgICBjb25zdCBsaW5lc1BlckNodW5r
ID0gMTA7Ci0KKyAgICAgICAgY29uc3QgdG9rZW5zUGVyQ2h1bmsgPSAxMDA7CisgICAgICAgIGNv
bnN0IGxpbmVMZW5ndGhMaW1pdCA9IDIwMDAwOworICAgICAgICAKKyAgICAgICAgdmFyIGJvdW5k
UHJvY2Vzc0NodW5rID0gcHJvY2Vzc0NodW5rLmJpbmQodGhpcyk7CisgICAgICAgIHZhciBwcm9j
ZXNzQ2h1bmtJbnRlcnZhbCA9IHNldEludGVydmFsKGJvdW5kUHJvY2Vzc0NodW5rLCAyNSk7Cisg
ICAgICAgIGJvdW5kUHJvY2Vzc0NodW5rKCk7CisgICAgICAgIAogICAgICAgICBmdW5jdGlvbiBw
cm9jZXNzQ2h1bmsoKQogICAgICAgICB7Ci0gICAgICAgICAgICBmb3IgKHZhciBlbmQgPSBNYXRo
Lm1pbihpICsgbGluZXNQZXJDaHVuaywgcm93c0xlbmd0aCk7IGkgPCBlbmQ7ICsraSkgewotICAg
ICAgICAgICAgICAgIHZhciByb3cgPSByb3dzW2ldOwotICAgICAgICAgICAgICAgIGlmICghcm93
KQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICB2YXIgY2Vs
bCA9IHJvdy5jZWxsc1sxXTsKLSAgICAgICAgICAgICAgICBpZiAoIWNlbGwpCi0gICAgICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIHRoaXMuc3ludGF4SGlnaGxpZ2h0
TGluZShjZWxsLCBwcmV2aW91c0NlbGwpOwotICAgICAgICAgICAgICAgIGlmIChpIDwgKGVuZCAt
IDEpKQotICAgICAgICAgICAgICAgICAgICB0aGlzLmRlbGV0ZUNvbnRpbnVlRmxhZ3MocHJldmlv
dXNDZWxsKTsKLSAgICAgICAgICAgICAgICBwcmV2aW91c0NlbGwgPSBjZWxsOwotICAgICAgICAg
ICAgfQorICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0b2tlbnNQZXJDaHVuazsgaSsr
KSB7CisgICAgICAgICAgICAgICAgaWYgKHRoaXMuY3Vyc29yID49IHRoaXMubGluZUNvZGUubGVu
Z3RoKQorICAgICAgICAgICAgICAgICAgICBtb3ZlVG9OZXh0TGluZS5jYWxsKHRoaXMpOworICAg
ICAgICAgICAgICAgIGlmICh0aGlzLmxpbmVJbmRleCA+PSByb3dzTGVuZ3RoKSB7CisgICAgICAg
ICAgICAgICAgICAgIHRoaXMuc291cmNlRnJhbWUuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKCJz
eW50YXggaGlnaGxpZ2h0aW5nIGNvbXBsZXRlIik7CisgICAgICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHRoaXMuY3Vyc29yID4g
bGluZUxlbmd0aExpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIHZhciBjb2RlRnJhZ21lbnQg
PSB0aGlzLmxpbmVDb2RlLnN1YnN0cmluZyh0aGlzLmN1cnNvcik7CisgICAgICAgICAgICAgICAg
ICAgIHRoaXMubm9uVG9rZW4gKz0gY29kZUZyYWdtZW50OworICAgICAgICAgICAgICAgICAgICB0
aGlzLmN1cnNvciArPSBjb2RlRnJhZ21lbnQubGVuZ3RoOworICAgICAgICAgICAgICAgIH0KIAot
ICAgICAgICAgICAgaWYgKGkgPj0gcm93c0xlbmd0aCAmJiBwcm9jZXNzQ2h1bmtJbnRlcnZhbCkg
ewotICAgICAgICAgICAgICAgIHRoaXMuZGVsZXRlQ29udGludWVGbGFncyhwcmV2aW91c0NlbGwp
OwotICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnByZXZpb3VzTWF0Y2hMZW5ndGg7CisgICAg
ICAgICAgICAgICAgdGhpcy5sZXgoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAg
ICAKKyAgICAgICAgZnVuY3Rpb24gbW92ZVRvTmV4dExpbmUoKQorICAgICAgICB7CisgICAgICAg
ICAgICB0aGlzLmFwcGVuZE5vblRva2VuKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHZh
ciByb3cgPSByb3dzW3RoaXMubGluZUluZGV4XTsKKyAgICAgICAgICAgIHZhciBsaW5lID0gcm93
ID8gcm93LmNlbGxzWzFdIDogbnVsbDsKKyAgICAgICAgICAgIGlmIChsaW5lICYmIHRoaXMubGlu
ZUZyYWdtZW50KSB7CisgICAgICAgICAgICAgICAgRWxlbWVudC5wcm90b3R5cGUucmVtb3ZlQ2hp
bGRyZW4uY2FsbChsaW5lKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBsaW5l
LmFwcGVuZENoaWxkKHRoaXMubGluZUZyYWdtZW50KTsKKyAgICAgICAgICAgICAgICBpZiAodGhp
cy5tZXNzYWdlQnViYmxlKQorICAgICAgICAgICAgICAgICAgICBsaW5lLmFwcGVuZENoaWxkKHRo
aXMubWVzc2FnZUJ1YmJsZSk7CisgICAgICAgICAgICAgICAgdGhpcy5saW5lRnJhZ21lbnQgPSBu
dWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhpcy5saW5lSW5kZXgrKzsKKyAgICAg
ICAgICAgIGlmICh0aGlzLmxpbmVJbmRleCA+PSByb3dzTGVuZ3RoICYmIHByb2Nlc3NDaHVua0lu
dGVydmFsKSB7CiAgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChwcm9jZXNzQ2h1bmtJbnRl
cnZhbCk7Ci0KICAgICAgICAgICAgICAgICB0aGlzLnNvdXJjZUZyYW1lLmRpc3BhdGNoRXZlbnRU
b0xpc3RlbmVycygic3ludGF4IGhpZ2hsaWdodGluZyBjb21wbGV0ZSIpOworICAgICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJvdyA9IHJvd3NbdGhpcy5s
aW5lSW5kZXhdOworICAgICAgICAgICAgbGluZSA9IHJvdyA/IHJvdy5jZWxsc1sxXSA6IG51bGw7
CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHRoaXMubWVzc2FnZUJ1YmJsZSA9IG51bGw7Cisg
ICAgICAgICAgICBpZiAobGluZS5sYXN0Q2hpbGQgJiYgbGluZS5sYXN0Q2hpbGQubm9kZVR5cGUg
PT09IE5vZGUuRUxFTUVOVF9OT0RFICYmIGxpbmUubGFzdENoaWxkLmhhc1N0eWxlQ2xhc3MoIndl
YmtpdC1odG1sLW1lc3NhZ2UtYnViYmxlIikpIHsKKyAgICAgICAgICAgICAgICB0aGlzLm1lc3Nh
Z2VCdWJibGUgPSBsaW5lLmxhc3RDaGlsZDsKKyAgICAgICAgICAgICAgICBsaW5lLnJlbW92ZUNo
aWxkKHRoaXMubWVzc2FnZUJ1YmJsZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRo
aXMubGluZUNvZGUgPSBsaW5lLnRleHRDb250ZW50OworICAgICAgICAgICAgdGhpcy5saW5lRnJh
Z21lbnQgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7CisgICAgICAgICAgICB0
aGlzLmN1cnNvciA9IDA7CisgICAgICAgICAgICBpZiAoIWxpbmUpCisgICAgICAgICAgICAgICAg
bW92ZVRvTmV4dExpbmUoKTsKKyAgICAgICAgfQorICAgIH0sCisgICAgCisgICAgbGV4OiBmdW5j
dGlvbigpCisgICAgeworICAgICAgICB2YXIgdG9rZW4gPSBudWxsOworICAgICAgICB2YXIgY29k
ZUZyYWdtZW50ID0gdGhpcy5saW5lQ29kZS5zdWJzdHJpbmcodGhpcy5jdXJzb3IpOworICAgICAg
ICAKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnJ1bGVzLmxlbmd0aDsgaSsrKSB7
CisgICAgICAgICAgICB2YXIgcnVsZSA9IHRoaXMucnVsZXNbaV07CisgICAgICAgICAgICB2YXIg
cnVsZUNvbnRpbnVlU3RhdGVDb25kaXRpb24gPSB0eXBlb2YgcnVsZS5jb250aW51ZVN0YXRlQ29u
ZGl0aW9uID09PSAidW5kZWZpbmVkIiA/IHRoaXMuQ29udGludWVTdGF0ZS5Ob25lIDogcnVsZS5j
b250aW51ZVN0YXRlQ29uZGl0aW9uOworICAgICAgICAgICAgaWYgKHRoaXMuY29udGludWVTdGF0
ZSA9PT0gcnVsZUNvbnRpbnVlU3RhdGVDb25kaXRpb24pIHsKKyAgICAgICAgICAgICAgICBpZiAo
dHlwZW9mIHJ1bGUubGV4U3RhdGVDb25kaXRpb24gIT09ICJ1bmRlZmluZWQiICYmIHRoaXMubGV4
U3RhdGUgIT09IHJ1bGUubGV4U3RhdGVDb25kaXRpb24pCisgICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICAgICAgICAgIHZhciBtYXRjaCA9IHJ1bGUucGF0dGVybi5leGVjKGNv
ZGVGcmFnbWVudCk7CisgICAgICAgICAgICAgICAgaWYgKG1hdGNoKSB7CisgICAgICAgICAgICAg
ICAgICAgIHRva2VuID0gbWF0Y2hbMF07CisgICAgICAgICAgICAgICAgICAgIGlmICh0b2tlbikg
eworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFydWxlLmRvbnRBcHBlbmROb25Ub2tlbikK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGVuZE5vblRva2VuKCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gcnVsZS5hY3Rpb24uY2FsbCh0aGlzLCB0b2tlbik7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5ub25Ub2tlbiArPSBjb2RlRnJhZ21lbnRbMF07Cisg
ICAgICAgIHRoaXMuY3Vyc29yKys7CisgICAgfSwKKyAgICAKKyAgICBhcHBlbmROb25Ub2tlbjog
ZnVuY3Rpb24gKCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLm5vblRva2VuLmxlbmd0aCA+IDAp
IHsKKyAgICAgICAgICAgIHRoaXMubGluZUZyYWdtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKHRoaXMubm9uVG9rZW4pKTsKKyAgICAgICAgICAgIHRoaXMubm9uVG9rZW4g
PSAiIjsKICAgICAgICAgfQorICAgIH0sCisgICAgCisgICAgc3ludGF4SGlnaGxpZ2h0Tm9kZTog
ZnVuY3Rpb24obm9kZSkKKyAgICB7CisgICAgICAgIHRoaXMubGluZUNvZGUgPSBub2RlLnRleHRD
b250ZW50OworICAgICAgICB0aGlzLmxpbmVGcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3Vt
ZW50RnJhZ21lbnQoKTsKKyAgICAgICAgdGhpcy5jdXJzb3IgPSAwOworICAgICAgICB3aGlsZSAo
dHJ1ZSkgeworICAgICAgICAgICAgaWYgKHRoaXMuY3Vyc29yID49IHRoaXMubGluZUNvZGUubGVu
Z3RoKSB7CisgICAgICAgICAgICAgICAgdmFyIGNvZGVGcmFnbWVudCA9IHRoaXMubGluZUNvZGUu
c3Vic3RyaW5nKHRoaXMuY3Vyc29yKTsKKyAgICAgICAgICAgICAgICB0aGlzLm5vblRva2VuICs9
IGNvZGVGcmFnbWVudDsKKyAgICAgICAgICAgICAgICB0aGlzLmN1cnNvciArPSBjb2RlRnJhZ21l
bnQubGVuZ3RoOworICAgICAgICAgICAgICAgIHRoaXMuYXBwZW5kTm9uVG9rZW4oKTsKKyAgICAg
ICAgICAgICAgICB3aGlsZSAobm9kZS5maXJzdENoaWxkKQorICAgICAgICAgICAgICAgICAgICBu
b2RlLnJlbW92ZUNoaWxkKG5vZGUuZmlyc3RDaGlsZCk7CisgICAgICAgICAgICAgICAgbm9kZS5h
cHBlbmRDaGlsZCh0aGlzLmxpbmVGcmFnbWVudCk7CisgICAgICAgICAgICAgICAgdGhpcy5saW5l
RnJhZ21lbnQgPW51bGw7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQog
Ci0gICAgICAgIHZhciBib3VuZFByb2Nlc3NDaHVuayA9IHByb2Nlc3NDaHVuay5iaW5kKHRoaXMp
OwotICAgICAgICB2YXIgcHJvY2Vzc0NodW5rSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChib3VuZFBy
b2Nlc3NDaHVuaywgMjUpOwotICAgICAgICBib3VuZFByb2Nlc3NDaHVuaygpOworICAgICAgICAg
ICAgdGhpcy5sZXgoKTsKKyAgICAgICAgfQogICAgIH0KIH0KIAotV2ViSW5zcGVjdG9yLkNTU1Nv
dXJjZVN5bnRheEhpZ2hsaWdoZXIgPSBmdW5jdGlvbih0YWJsZSwgc291cmNlRnJhbWUpIHsKLSAg
ICBXZWJJbnNwZWN0b3IuU291cmNlU3ludGF4SGlnaGxpZ2hlci5jYWxsKHRoaXMsIHRhYmxlLCBz
b3VyY2VGcmFtZSk7CitXZWJJbnNwZWN0b3IuQ1NTU291cmNlU3ludGF4SGlnaGxpZ2h0ZXIgPSBm
dW5jdGlvbih0YWJsZSwgc291cmNlRnJhbWUpIHsKKyAgICBXZWJJbnNwZWN0b3IuU291cmNlU3lu
dGF4SGlnaGxpZ2h0ZXIuY2FsbCh0aGlzLCB0YWJsZSwgc291cmNlRnJhbWUpOwogCi0gICAgdGhp
cy5maW5kTnVtYmVyID0gdGhpcy5nZW5lcmF0ZUZpbmRlcigvXigoLT8oXGQrfFxkKlwuXGQrKSl8
XigjW2EtZkEtRjAtOV17Myw2fSkpKD86XER8JCkvLCAxLCAid2Via2l0LWNzcy1udW1iZXIiKTsK
LSAgICB0aGlzLmZpbmRVbml0cyA9IHRoaXMuZ2VuZXJhdGVGaW5kZXIoL14ocHh8ZW18cHR8aW58
Y218bW18cGN8ZXgpKD86XFd8JCkvLCAxLCAid2Via2l0LWNzcy11bml0Iik7Ci0gICAgdGhpcy5m
aW5kS2V5d29yZCA9IHRoaXMuZ2VuZXJhdGVGaW5kZXIoL14ocmdiYT98aHNsYT98dmFyKSg/OlxX
fCQpLywgMSwgIndlYmtpdC1jc3Mta2V5d29yZCIpOwotICAgIHRoaXMuZmluZFNpbmdsZUxpbmVT
dHJpbmcgPSB0aGlzLmdlbmVyYXRlRmluZGVyKC9eIig/OlteIlxcXXxcXC4pKiJ8XicoW14nXFxd
fFxcLikqJy8sIDAsICJ3ZWJraXQtY3NzLXN0cmluZyIpOyAvLyAiIHRoaXMgcXVvdGUga2VlcHMg
WGNvZGUgaGFwcHkKLSAgICB0aGlzLmZpbmRTaW5nbGVMaW5lQ29tbWVudCA9IHRoaXMuZ2VuZXJh
dGVGaW5kZXIoL15cL1wqLio/XCpcLy8sIDAsICJ3ZWJraXQtY3NzLWNvbW1lbnQiKTsKLSAgICB0
aGlzLmZpbmRNdWx0aWxpbmVDb21tZW50U3RhcnQgPSB0aGlzLmdlbmVyYXRlRmluZGVyKC9eXC9c
Ki4qJC8sIDAsICJ3ZWJraXQtY3NzLWNvbW1lbnQiKTsKLSAgICB0aGlzLmZpbmRNdWx0aWxpbmVD
b21tZW50RW5kID0gdGhpcy5nZW5lcmF0ZUZpbmRlcigvXi4qP1wqXC8vLCAwLCAid2Via2l0LWNz
cy1jb21tZW50Iik7Ci0gICAgdGhpcy5maW5kU2VsZWN0b3IgPSB0aGlzLmdlbmVyYXRlRmluZGVy
KC9eKFsjXC5dP1tfYS16QS1aXS4qPykoPzpcV3wkKS8sIDEsICJ3ZWJraXQtY3NzLXNlbGVjdG9y
Iik7Ci0gICAgdGhpcy5maW5kUHJvcGVydHkgPSB0aGlzLmdlbmVyYXRlRmluZGVyKC9eKC0/W19h
LXowLTldW19hLXowLTktXSpccyopKD86XDopLywgMSwgIndlYmtpdC1jc3MtcHJvcGVydHkiKTsK
LSAgICB0aGlzLmZpbmRHZW5lcmljSWRlbnQgPSB0aGlzLmdlbmVyYXRlRmluZGVyKC9eKFtALV0/
W19hLXowLTldW19hLXowLTktXSopKD86XFd8JCkvLCAxLCAid2Via2l0LWNzcy1zdHJpbmciKTsK
LX0KLQotV2ViSW5zcGVjdG9yLkNTU1NvdXJjZVN5bnRheEhpZ2hsaWdoZXIucHJvdG90eXBlID0g
ewotICAgIGRlbGV0ZUNvbnRpbnVlRmxhZ3M6IGZ1bmN0aW9uKGNlbGwpCisgICAgdGhpcy5MZXhT
dGF0ZSA9IHsKKyAgICAgICAgSW5pdGlhbDogMSwKKyAgICAgICAgRGVjbGFyYXRpb25Qcm9wZXJ0
eTogMiwKKyAgICAgICAgRGVjbGFyYXRpb25WYWx1ZTogMywKKyAgICAgICAgQXRNZWRpYTogNCwK
KyAgICAgICAgQXRSdWxlOiA1LAorICAgICAgICBBdEtleWZyYW1lczogNgorICAgIH07CisgICAg
dGhpcy5Db250aW51ZVN0YXRlID0geworICAgICAgICBOb25lOiAwLAorICAgICAgICBDb21tZW50
OiAxCisgICAgfTsKKyAgICAKKyAgICB0aGlzLm5vblRva2VuID0gIiI7CisgICAgdGhpcy5jdXJz
b3IgPSAwOworICAgIHRoaXMubGluZUluZGV4ID0gLTE7CisgICAgdGhpcy5saW5lQ29kZSA9ICIi
OworICAgIHRoaXMubGluZUZyYWdtZW50ID0gbnVsbDsKKyAgICB0aGlzLmxleFN0YXRlID0gdGhp
cy5MZXhTdGF0ZS5Jbml0aWFsOworICAgIHRoaXMuY29udGludWVTdGF0ZSA9IHRoaXMuQ29udGlu
dWVTdGF0ZS5Ob25lOworICAgIAorICAgIGNvbnN0IHVybFBhdHRlcm4gPSAvXnVybFwoXHMqKD86
KD86Iig/OltcdCAhI1wkJSZcKC1+XXxcXG58XHJcbnxccnxcZnwnfFtcMjAwLVwzNzddfCg/Olxb
MC05YS1mQS1GXXsxLDZ9WyBcblxyXHRcZl0/fFxbIC1+XDIwMC1cMzc3XG5dKSkqInwnKD86W1x0
ICEjXCQlJlwoLX5dfFxcbnxcclxufFxyfFxmfCd8W1wyMDAtXDM3N118KD86XFswLTlhLWZBLUZd
ezEsNn1bIFxuXHJcdFxmXT98XFsgLX5cMjAwLVwzNzdcbl0pKSonKXwoPzpbISMkJSYqLX5dfFtc
MjAwLVwzNzddfCg/OlxbMC05YS1mQS1GXXsxLDZ9WyBcblxyXHRcZl0/fFxbIC1+XDIwMC1cMzc3
XG5dKSkqKVxzKlwpL2k7CisgICAgY29uc3Qgc3RyaW5nUGF0dGVybiA9IC9eKD86Iig/OltcdCAh
I1wkJSZcKC1+XXxcXG58XHJcbnxccnxcZnwnfFtcMjAwLVwzNzddfCg/OlxbMC05YS1mQS1GXXsx
LDZ9WyBcblxyXHRcZl0/fFxbIC1+XDIwMC1cMzc3XG5dKSkqInwnKD86W1x0ICEjXCQlJlwoLX5d
fFxcbnxcclxufFxyfFxmfCd8W1wyMDAtXDM3N118KD86XFswLTlhLWZBLUZdezEsNn1bIFxuXHJc
dFxmXT98XFsgLX5cMjAwLVwzNzdcbl0pKSonKS9pOworICAgIGNvbnN0IGlkZW50UGF0dGVybiA9
IC9eLT8oPzpbX2EtekEtWl18W1wyMDAtXDM3N118KD86XFswLTlhLWZBLUZdezEsNn1bIFxuXHJc
dFxmXT98XFsgLX5cMjAwLVwzNzdcbl0pKSg/OltfYS16QS1aMC05LV18W1wyMDAtXDM3N118KD86
XFswLTlhLWZBLUZdezEsNn1bIFxuXHJcdFxmXT98XFsgLX5cMjAwLVwzNzdcbl0pKSovaTsKKyAg
ICBjb25zdCBzdGFydEJsb2NrUGF0dGVybiA9IC9eey9pOworICAgIGNvbnN0IGVuZEJsb2NrUGF0
dGVybiA9IC9efS9pOworICAgIHRoaXMucnVsZXMgPSBbeworICAgICAgICAgICAgcGF0dGVybjog
L15cL1wqW15cKl0qXCorKFteXC8qXVteKl0qXCorKSpcLy9pLAorICAgICAgICAgICAgYWN0aW9u
OiBjb21tZW50QWN0aW9uCisgICAgICAgIH0sIHsKKyAgICAgICAgICAgIHBhdHRlcm46IC9eKD86
XC9cKig/OlteXCpdfFwqW15cL10pKikvaSwKKyAgICAgICAgICAgIGFjdGlvbjogY29tbWVudFN0
YXJ0QWN0aW9uCisgICAgICAgIH0sIHsKKyAgICAgICAgICAgIHBhdHRlcm46IC9eKD86KD86W15c
Kl18XCpbXlwvXSkqXCorXC8pL2ksCisgICAgICAgICAgICBhY3Rpb246IGNvbW1lbnRFbmRBY3Rp
b24sCisgICAgICAgICAgICBjb250aW51ZVN0YXRlQ29uZGl0aW9uOiB0aGlzLkNvbnRpbnVlU3Rh
dGUuQ29tbWVudAorICAgICAgICB9LCB7CisgICAgICAgICAgICBwYXR0ZXJuOiAvXi4qL2ksCisg
ICAgICAgICAgICBhY3Rpb246IGNvbW1lbnRNaWRkbGVBY3Rpb24sCisgICAgICAgICAgICBjb250
aW51ZVN0YXRlQ29uZGl0aW9uOiB0aGlzLkNvbnRpbnVlU3RhdGUuQ29tbWVudAorICAgICAgICB9
LCB7CisgICAgICAgICAgICBwYXR0ZXJuOiAvXig/Oig/Oi0/KD86W19hLXpBLVpdfFtcMjAwLVwz
NzddfCg/OlxbMC05YS1mQS1GXXsxLDZ9WyBcblxyXHRcZl0/fFxbIC1+XDIwMC1cMzc3XG5dKSko
PzpbX2EtekEtWjAtOS1dfFtcMjAwLVwzNzddfCg/OlxbMC05YS1mQS1GXXsxLDZ9WyBcblxyXHRc
Zl0/fFxbIC1+XDIwMC1cMzc3XG5dKSkqfFwqKSg/OiMtPyg/OltfYS16QS1aXXxbXDIwMC1cMzc3
XXwoPzpcWzAtOWEtZkEtRl17MSw2fVsgXG5cclx0XGZdP3xcWyAtflwyMDAtXDM3N1xuXSkpKD86
W19hLXpBLVowLTktXXxbXDIwMC1cMzc3XXwoPzpcWzAtOWEtZkEtRl17MSw2fVsgXG5cclx0XGZd
P3xcWyAtflwyMDAtXDM3N1xuXSkpKnxcLi0/KD86W19hLXpBLVpdfFtcMjAwLVwzNzddfCg/Olxb
MC05YS1mQS1GXXsxLDZ9WyBcblxyXHRcZl0/fFxbIC1+XDIwMC1cMzc3XG5dKSkoPzpbX2EtekEt
WjAtOS1dfFtcMjAwLVwzNzddfCg/OlxbMC05YS1mQS1GXXsxLDZ9WyBcblxyXHRcZl0/fFxbIC1+
XDIwMC1cMzc3XG5dKSkqfFxbXHMqLT8oPzpbX2EtekEtWl18W1wyMDAtXDM3N118KD86XFswLTlh
LWZBLUZdezEsNn1bIFxuXHJcdFxmXT98XFsgLX5cMjAwLVwzNzdcbl0pKSg/OltfYS16QS1aMC05
LV18W1wyMDAtXDM3N118KD86XFswLTlhLWZBLUZdezEsNn1bIFxuXHJcdFxmXT98XFsgLX5cMjAw
LVwzNzdcbl0pKSpccyooPzooPzo9fH49fFx8PSlccyooPzotPyg/OltfYS16QS1aXXxbXDIwMC1c
Mzc3XXwoPzpcWzAtOWEtZkEtRl17MSw2fVsgXG5cclx0XGZdP3xcWyAtflwyMDAtXDM3N1xuXSkp
KD86W19hLXpBLVowLTktXXxbXDIwMC1cMzc3XXwoPzpcWzAtOWEtZkEtRl17MSw2fVsgXG5cclx0
XGZdP3xcWyAtflwyMDAtXDM3N1xuXSkpKnwoPzoiKD86W1x0ICEjXCQlJlwoLX5dfFxcbnxcclxu
fFxyfFxmfCd8W1wyMDAtXDM3N118KD86XFswLTlhLWZBLUZdezEsNn1bIFxuXHJcdFxmXT98XFsg
LX5cMjAwLVwzNzdcbl0pKSoifCcoPzpbXHQgISNcJCUmXCgtfl18XFxufFxyXG58XHJ8XGZ8J3xb
XDIwMC1cMzc3XXwoPzpcWzAtOWEtZkEtRl17MSw2fVsgXG5cclx0XGZdP3xcWyAtflwyMDAtXDM3
N1xuXSkpKicpKVxzKik/XF18Oig/Oi0/KD86W19hLXpBLVpdfFtcMjAwLVwzNzddfCg/OlxbMC05
YS1mQS1GXXsxLDZ9WyBcblxyXHRcZl0/fFxbIC1+XDIwMC1cMzc3XG5dKSkoPzpbX2EtekEtWjAt
OS1dfFtcMjAwLVwzNzddfCg/OlxbMC05YS1mQS1GXXsxLDZ9WyBcblxyXHRcZl0/fFxbIC1+XDIw
MC1cMzc3XG5dKSkqfC0/KD86W19hLXpBLVpdfFtcMjAwLVwzNzddfCg/OlxbMC05YS1mQS1GXXsx
LDZ9WyBcblxyXHRcZl0/fFxbIC1+XDIwMC1cMzc3XG5dKSkoPzpbX2EtekEtWjAtOS1dfFtcMjAw
LVwzNzddfCg/OlxbMC05YS1mQS1GXXsxLDZ9WyBcblxyXHRcZl0/fFxbIC1+XDIwMC1cMzc3XG5d
KSkqXChccyooPzotPyg/OltfYS16QS1aXXxbXDIwMC1cMzc3XXwoPzpcWzAtOWEtZkEtRl17MSw2
fVsgXG5cclx0XGZdP3xcWyAtflwyMDAtXDM3N1xuXSkpKD86W19hLXpBLVowLTktXXxbXDIwMC1c
Mzc3XXwoPzpcWzAtOWEtZkEtRl17MSw2fVsgXG5cclx0XGZdP3xcWyAtflwyMDAtXDM3N1xuXSkp
KlxzKik/XCkpKSp8KD86Iy0/KD86W19hLXpBLVpdfFtcMjAwLVwzNzddfCg/OlxbMC05YS1mQS1G
XXsxLDZ9WyBcblxyXHRcZl0/fFxbIC1+XDIwMC1cMzc3XG5dKSkoPzpbX2EtekEtWjAtOS1dfFtc
MjAwLVwzNzddfCg/OlxbMC05YS1mQS1GXXsxLDZ9WyBcblxyXHRcZl0/fFxbIC1+XDIwMC1cMzc3
XG5dKSkqfFwuLT8oPzpbX2EtekEtWl18W1wyMDAtXDM3N118KD86XFswLTlhLWZBLUZdezEsNn1b
IFxuXHJcdFxmXT98XFsgLX5cMjAwLVwzNzdcbl0pKSg/OltfYS16QS1aMC05LV18W1wyMDAtXDM3
N118KD86XFswLTlhLWZBLUZdezEsNn1bIFxuXHJcdFxmXT98XFsgLX5cMjAwLVwzNzdcbl0pKSp8
XFtccyotPyg/OltfYS16QS1aXXxbXDIwMC1cMzc3XXwoPzpcWzAtOWEtZkEtRl17MSw2fVsgXG5c
clx0XGZdP3xcWyAtflwyMDAtXDM3N1xuXSkpKD86W19hLXpBLVowLTktXXxbXDIwMC1cMzc3XXwo
PzpcWzAtOWEtZkEtRl17MSw2fVsgXG5cclx0XGZdP3xcWyAtflwyMDAtXDM3N1xuXSkpKlxzKig/
Oig/Oj18fj18XHw9KVxzKig/Oi0/KD86W19hLXpBLVpdfFtcMjAwLVwzNzddfCg/OlxbMC05YS1m
QS1GXXsxLDZ9WyBcblxyXHRcZl0/fFxbIC1+XDIwMC1cMzc3XG5dKSkoPzpbX2EtekEtWjAtOS1d
fFtcMjAwLVwzNzddfCg/OlxbMC05YS1mQS1GXXsxLDZ9WyBcblxyXHRcZl0/fFxbIC1+XDIwMC1c
Mzc3XG5dKSkqfCg/OiIoPzpbXHQgISNcJCUmXCgtfl18XFxufFxyXG58XHJ8XGZ8J3xbXDIwMC1c
Mzc3XXwoPzpcWzAtOWEtZkEtRl17MSw2fVsgXG5cclx0XGZdP3xcWyAtflwyMDAtXDM3N1xuXSkp
KiJ8Jyg/OltcdCAhI1wkJSZcKC1+XXxcXG58XHJcbnxccnxcZnwnfFtcMjAwLVwzNzddfCg/Olxb
MC05YS1mQS1GXXsxLDZ9WyBcblxyXHRcZl0/fFxbIC1+XDIwMC1cMzc3XG5dKSkqJykpXHMqKT9c
XXw6KD86LT8oPzpbX2EtekEtWl18W1wyMDAtXDM3N118KD86XFswLTlhLWZBLUZdezEsNn1bIFxu
XHJcdFxmXT98XFsgLX5cMjAwLVwzNzdcbl0pKSg/OltfYS16QS1aMC05LV18W1wyMDAtXDM3N118
KD86XFswLTlhLWZBLUZdezEsNn1bIFxuXHJcdFxmXT98XFsgLX5cMjAwLVwzNzdcbl0pKSp8LT8o
PzpbX2EtekEtWl18W1wyMDAtXDM3N118KD86XFswLTlhLWZBLUZdezEsNn1bIFxuXHJcdFxmXT98
XFsgLX5cMjAwLVwzNzdcbl0pKSg/OltfYS16QS1aMC05LV18W1wyMDAtXDM3N118KD86XFswLTlh
LWZBLUZdezEsNn1bIFxuXHJcdFxmXT98XFsgLX5cMjAwLVwzNzdcbl0pKSpcKFxzKig/Oi0/KD86
W19hLXpBLVpdfFtcMjAwLVwzNzddfCg/OlxbMC05YS1mQS1GXXsxLDZ9WyBcblxyXHRcZl0/fFxb
IC1+XDIwMC1cMzc3XG5dKSkoPzpbX2EtekEtWjAtOS1dfFtcMjAwLVwzNzddfCg/OlxbMC05YS1m
QS1GXXsxLDZ9WyBcblxyXHRcZl0/fFxbIC1+XDIwMC1cMzc3XG5dKSkqXHMqKT9cKSkpKykvaSwK
KyAgICAgICAgICAgIGFjdGlvbjogc2VsZWN0b3JBY3Rpb24sCisgICAgICAgICAgICBsZXhTdGF0
ZUNvbmRpdGlvbjogdGhpcy5MZXhTdGF0ZS5Jbml0aWFsCisgICAgICAgIH0sIHsKKyAgICAgICAg
ICAgIHBhdHRlcm46IHN0YXJ0QmxvY2tQYXR0ZXJuLAorICAgICAgICAgICAgYWN0aW9uOiBzdGFy
dFJ1bGVzZXRCbG9ja0FjdGlvbiwKKyAgICAgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0aGlz
LkxleFN0YXRlLkluaXRpYWwsCisgICAgICAgICAgICBkb250QXBwZW5kTm9uVG9rZW46IHRydWUK
KyAgICAgICAgfSwgeworICAgICAgICAgICAgcGF0dGVybjogaWRlbnRQYXR0ZXJuLAorICAgICAg
ICAgICAgYWN0aW9uOiBwcm9wZXJ0eUFjdGlvbiwKKyAgICAgICAgICAgIGxleFN0YXRlQ29uZGl0
aW9uOiB0aGlzLkxleFN0YXRlLkRlY2xhcmF0aW9uUHJvcGVydHksCisgICAgICAgICAgICBkb250
QXBwZW5kTm9uVG9rZW46IHRydWUKKyAgICAgICAgfSwgeworICAgICAgICAgICAgcGF0dGVybjog
L146L2ksCisgICAgICAgICAgICBhY3Rpb246IGRlY2xhcmF0aW9uQ29sb25BY3Rpb24sCisgICAg
ICAgICAgICBsZXhTdGF0ZUNvbmRpdGlvbjogdGhpcy5MZXhTdGF0ZS5EZWNsYXJhdGlvblByb3Bl
cnR5LAorICAgICAgICAgICAgZG9udEFwcGVuZE5vblRva2VuOiB0cnVlCisgICAgICAgIH0sIHsK
KyAgICAgICAgICAgIHBhdHRlcm46IC9eKD86Iyg/OlswLTlhLWZBLUZdezZ9fFswLTlhLWZBLUZd
ezN9KXxhbGljZWJsdWV8YW50aXF1ZXdoaXRlfGFxdWF8YXF1YW1hcmluZXxhenVyZXxiZWlnZXxi
aXNxdWV8YmxhY2t8YmxhbmNoZWRhbG1vbmR8Ymx1ZXxibHVldmlvbGV0fGJyb3dufGJ1cmx5d29v
ZHxjYWRldGJsdWV8Y2hhcnRyZXVzZXxjaG9jb2xhdGV8Y29yYWx8Y29ybmZsb3dlcmJsdWV8Y29y
bnNpbGt8Y3JpbXNvbnxjeWFufGRhcmtibHVlfGRhcmtjeWFufGRhcmtnb2xkZW5yb2R8ZGFya2dy
YXl8ZGFya2dyZXl8ZGFya2dyZWVufGRhcmtraGFraXxkYXJrbWFnZW50YXxkYXJrb2xpdmVncmVl
bnxkYXJrb3JhbmdlfGRhcmtvcmNoaWR8ZGFya3JlZHxkYXJrc2FsbW9ufGRhcmtzZWFncmVlbnxk
YXJrc2xhdGVibHVlfGRhcmtzbGF0ZWdyYXl8ZGFya3NsYXRlZ3JleXxkYXJrdHVycXVvaXNlfGRh
cmt2aW9sZXR8ZGVlcHBpbmt8ZGVlcHNreWJsdWV8ZGltZ3JheXxkaW1ncmV5fGRvZGdlcmJsdWV8
ZmlyZWJyaWNrfGZsb3JhbHdoaXRlfGZvcmVzdGdyZWVufGZ1Y2hzaWF8Z2FpbnNib3JvfGdob3N0
d2hpdGV8Z29sZHxnb2xkZW5yb2R8Z3JheXxncmV5fGdyZWVufGdyZWVueWVsbG93fGhvbmV5ZGV3
fGhvdHBpbmt8aW5kaWFucmVkfGluZGlnb3xpdm9yeXxraGFraXxsYXZlbmRlcnxsYXZlbmRlcmJs
dXNofGxhd25ncmVlbnxsZW1vbmNoaWZmb258bGlnaHRibHVlfGxpZ2h0Y29yYWx8bGlnaHRjeWFu
fGxpZ2h0Z29sZGVucm9keWVsbG93fGxpZ2h0Z3JheXxsaWdodGdyZXl8bGlnaHRncmVlbnxsaWdo
dHBpbmt8bGlnaHRzYWxtb258bGlnaHRzZWFncmVlbnxsaWdodHNreWJsdWV8bGlnaHRzbGF0ZWJs
dWV8bGlnaHRzbGF0ZWdyYXl8bGlnaHRzbGF0ZWdyZXl8bGlnaHRzdGVlbGJsdWV8bGlnaHR5ZWxs
b3d8bGltZXxsaW1lZ3JlZW58bGluZW58bWFnZW50YXxtYXJvb258bWVkaXVtYXF1YW1hcmluZXxt
ZWRpdW1ibHVlfG1lZGl1bW9yY2hpZHxtZWRpdW1wdXJwbGV8bWVkaXVtc2VhZ3JlZW58bWVkaXVt
c2xhdGVibHVlfG1lZGl1bXNwcmluZ2dyZWVufG1lZGl1bXR1cnF1b2lzZXxtZWRpdW12aW9sZXRy
ZWR8bWlkbmlnaHRibHVlfG1pbnRjcmVhbXxtaXN0eXJvc2V8bW9jY2FzaW58bmF2YWpvd2hpdGV8
bmF2eXxvbGRsYWNlfG9saXZlfG9saXZlZHJhYnxvcmFuZ2V8b3JhbmdlcmVkfG9yY2hpZHxwYWxl
Z29sZGVucm9kfHBhbGVncmVlbnxwYWxldHVycXVvaXNlfHBhbGV2aW9sZXRyZWR8cGFwYXlhd2hp
cHxwZWFjaHB1ZmZ8cGVydXxwaW5rfHBsdW18cG93ZGVyYmx1ZXxwdXJwbGV8cmVkfHJvc3licm93
bnxyb3lhbGJsdWV8c2FkZGxlYnJvd258c2FsbW9ufHNhbmR5YnJvd258c2VhZ3JlZW58c2Vhc2hl
bGx8c2llbm5hfHNpbHZlcnxza3libHVlfHNsYXRlYmx1ZXxzbGF0ZWdyYXl8c2xhdGVncmV5fHNu
b3d8c3ByaW5nZ3JlZW58c3RlZWxibHVlfHRhbnx0ZWFsfHRoaXN0bGV8dG9tYXRvfHR1cnF1b2lz
ZXx2aW9sZXR8dmlvbGV0cmVkfHdoZWF0fHdoaXRlfHdoaXRlc21va2V8eWVsbG93fHllbGxvd2dy
ZWVufHRyYW5zcGFyZW50fHJnYmFcKFxzKig/OlswLTldK3xbMC05XSpcLlswLTldKyklP1xzKixc
cyooPzpbMC05XSt8WzAtOV0qXC5bMC05XSspJT9ccyosXHMqKD86WzAtOV0rfFswLTldKlwuWzAt
OV0rKSU/XHMqLFxzKig/OlswLTldK3xbMC05XSpcLlswLTldKyklP1xzKlwpfGhzbGFcKFxzKig/
OlswLTldK3xbMC05XSpcLlswLTldKyklP1xzKixccyooPzpbMC05XSt8WzAtOV0qXC5bMC05XSsp
JT9ccyosXHMqKD86WzAtOV0rfFswLTldKlwuWzAtOV0rKSU/XHMqLFxzKig/OlswLTldK3xbMC05
XSpcLlswLTldKyklP1xzKlwpfHJnYlwoXHMqKD86WzAtOV0rfFswLTldKlwuWzAtOV0rKSU/XHMq
LFxzKig/OlswLTldK3xbMC05XSpcLlswLTldKyklP1xzKixccyooPzpbMC05XSt8WzAtOV0qXC5b
MC05XSspJT9ccypcKXxoc2xcKFxzKig/OlswLTldK3xbMC05XSpcLlswLTldKyklP1xzKixccyoo
PzpbMC05XSt8WzAtOV0qXC5bMC05XSspJT9ccyosXHMqKD86WzAtOV0rfFswLTldKlwuWzAtOV0r
KSU/XHMqXCkpL2ksCisgICAgICAgICAgICBhY3Rpb246IGNvbG9yQWN0aW9uLAorICAgICAgICAg
ICAgbGV4U3RhdGVDb25kaXRpb246IHRoaXMuTGV4U3RhdGUuRGVjbGFyYXRpb25WYWx1ZQorICAg
ICAgICB9LCB7CisgICAgICAgICAgICBwYXR0ZXJuOiAvXig/Oig/OlswLTldK3xbMC05XSpcLlsw
LTldKykoPzplbXxyZW18X19xZW18ZXh8cHh8Y218bW18aW58cHR8cGN8ZGVnfHJhZHxncmFkfHR1
cm58bXN8c3xIenxrSHp8JSk/KS9pLAorICAgICAgICAgICAgYWN0aW9uOiBudW12YWx1ZUFjdGlv
biwKKyAgICAgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0aGlzLkxleFN0YXRlLkRlY2xhcmF0
aW9uVmFsdWUKKyAgICAgICAgfSwgeworICAgICAgICAgICAgcGF0dGVybjogdXJsUGF0dGVybiwK
KyAgICAgICAgICAgIGFjdGlvbjogdXJsQWN0aW9uLAorICAgICAgICAgICAgbGV4U3RhdGVDb25k
aXRpb246IHRoaXMuTGV4U3RhdGUuRGVjbGFyYXRpb25WYWx1ZQorICAgICAgICB9LCB7CisgICAg
ICAgICAgICBwYXR0ZXJuOiBzdHJpbmdQYXR0ZXJuLAorICAgICAgICAgICAgYWN0aW9uOiBzdHJp
bmdBY3Rpb24sCisgICAgICAgICAgICBsZXhTdGF0ZUNvbmRpdGlvbjogdGhpcy5MZXhTdGF0ZS5E
ZWNsYXJhdGlvblZhbHVlCisgICAgICAgIH0sIHsKKyAgICAgICAgICAgIHBhdHRlcm46IC9eIVxz
KmltcG9ydGFudC9pLAorICAgICAgICAgICAgYWN0aW9uOiBpbXBvcnRhbnRBY3Rpb24sCisgICAg
ICAgICAgICBsZXhTdGF0ZUNvbmRpdGlvbjogdGhpcy5MZXhTdGF0ZS5EZWNsYXJhdGlvblZhbHVl
CisgICAgICAgIH0sIHsKKyAgICAgICAgICAgIHBhdHRlcm46IGlkZW50UGF0dGVybiwKKyAgICAg
ICAgICAgIGFjdGlvbjogdmFsdWVJZGVudEFjdGlvbiwKKyAgICAgICAgICAgIGxleFN0YXRlQ29u
ZGl0aW9uOiB0aGlzLkxleFN0YXRlLkRlY2xhcmF0aW9uVmFsdWUsCisgICAgICAgICAgICBkb250
QXBwZW5kTm9uVG9rZW46IHRydWUKKyAgICAgICAgfSwgeworICAgICAgICAgICAgcGF0dGVybjog
L147L2ksCisgICAgICAgICAgICBhY3Rpb246IGRlY2xhcmF0aW9uU2VtaWNvbG9uQWN0aW9uLAor
ICAgICAgICAgICAgbGV4U3RhdGVDb25kaXRpb246IHRoaXMuTGV4U3RhdGUuRGVjbGFyYXRpb25W
YWx1ZSwKKyAgICAgICAgICAgIGRvbnRBcHBlbmROb25Ub2tlbjogdHJ1ZQorICAgICAgICB9LCB7
CisgICAgICAgICAgICBwYXR0ZXJuOiBlbmRCbG9ja1BhdHRlcm4sCisgICAgICAgICAgICBhY3Rp
b246IGVuZFJ1bGVzZXRCbG9ja0FjdGlvbiwKKyAgICAgICAgICAgIGxleFN0YXRlQ29uZGl0aW9u
OiB0aGlzLkxleFN0YXRlLkRlY2xhcmF0aW9uUHJvcGVydHksCisgICAgICAgICAgICBkb250QXBw
ZW5kTm9uVG9rZW46IHRydWUKKyAgICAgICAgfSwgeworICAgICAgICAgICAgcGF0dGVybjogZW5k
QmxvY2tQYXR0ZXJuLAorICAgICAgICAgICAgYWN0aW9uOiBlbmRSdWxlc2V0QmxvY2tBY3Rpb24s
CisgICAgICAgICAgICBsZXhTdGF0ZUNvbmRpdGlvbjogdGhpcy5MZXhTdGF0ZS5EZWNsYXJhdGlv
blZhbHVlLAorICAgICAgICAgICAgZG9udEFwcGVuZE5vblRva2VuOiB0cnVlCisgICAgICAgIH0s
IHsKKyAgICAgICAgICAgIHBhdHRlcm46IC9eQG1lZGlhL2ksCisgICAgICAgICAgICBhY3Rpb246
IGF0TWVkaWFBY3Rpb24sCisgICAgICAgICAgICBsZXhTdGF0ZUNvbmRpdGlvbjogdGhpcy5MZXhT
dGF0ZS5Jbml0aWFsCisgICAgICAgIH0sIHsKKyAgICAgICAgICAgIHBhdHRlcm46IHN0YXJ0Qmxv
Y2tQYXR0ZXJuLAorICAgICAgICAgICAgYWN0aW9uOiBzdGFydEF0TWVkaWFCbG9ja0FjdGlvbiwK
KyAgICAgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0aGlzLkxleFN0YXRlLkF0TWVkaWEsCisg
ICAgICAgICAgICBkb250QXBwZW5kTm9uVG9rZW46IHRydWUKKyAgICAgICAgfSwgeworICAgICAg
ICAgICAgcGF0dGVybjogL15ALXdlYmtpdC1rZXlmcmFtZXMvaSwKKyAgICAgICAgICAgIGFjdGlv
bjogYXRLZXlmcmFtZXNBY3Rpb24sCisgICAgICAgICAgICBsZXhTdGF0ZUNvbmRpdGlvbjogdGhp
cy5MZXhTdGF0ZS5Jbml0aWFsCisgICAgICAgIH0sIHsKKyAgICAgICAgICAgIHBhdHRlcm46IHN0
YXJ0QmxvY2tQYXR0ZXJuLAorICAgICAgICAgICAgYWN0aW9uOiBzdGFydEF0TWVkaWFCbG9ja0Fj
dGlvbiwKKyAgICAgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0aGlzLkxleFN0YXRlLkF0S2V5
ZnJhbWVzLAorICAgICAgICAgICAgZG9udEFwcGVuZE5vblRva2VuOiB0cnVlCisgICAgICAgIH0s
IHsKKyAgICAgICAgICAgIHBhdHRlcm46IC9eQC0/KD86W19hLXpBLVpdfFtcMjAwLVwzNzddfCg/
OlxbMC05YS1mQS1GXXsxLDZ9WyBcblxyXHRcZl0/fFxbIC1+XDIwMC1cMzc3XG5dKSkoPzpbX2Et
ekEtWjAtOS1dfFtcMjAwLVwzNzddfCg/OlxbMC05YS1mQS1GXXsxLDZ9WyBcblxyXHRcZl0/fFxb
IC1+XDIwMC1cMzc3XG5dKSkqL2ksCisgICAgICAgICAgICBhY3Rpb246IGF0UnVsZUFjdGlvbiwK
KyAgICAgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0aGlzLkxleFN0YXRlLkluaXRpYWwKKyAg
ICAgICAgfSwgeworICAgICAgICAgICAgcGF0dGVybjogL147L2ksCisgICAgICAgICAgICBhY3Rp
b246IGVuZEF0UnVsZUFjdGlvbiwKKyAgICAgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0aGlz
LkxleFN0YXRlLkF0UnVsZQorICAgICAgICB9LCB7CisgICAgICAgICAgICBwYXR0ZXJuOiB1cmxQ
YXR0ZXJuLAorICAgICAgICAgICAgYWN0aW9uOiB1cmxBY3Rpb24sCisgICAgICAgICAgICBsZXhT
dGF0ZUNvbmRpdGlvbjogdGhpcy5MZXhTdGF0ZS5BdFJ1bGUKKyAgICAgICAgfSwgeworICAgICAg
ICAgICAgcGF0dGVybjogc3RyaW5nUGF0dGVybiwKKyAgICAgICAgICAgIGFjdGlvbjogc3RyaW5n
QWN0aW9uLAorICAgICAgICAgICAgbGV4U3RhdGVDb25kaXRpb246IHRoaXMuTGV4U3RhdGUuQXRS
dWxlCisgICAgICAgIH0sIHsKKyAgICAgICAgICAgIHBhdHRlcm46IHN0cmluZ1BhdHRlcm4sCisg
ICAgICAgICAgICBhY3Rpb246IHN0cmluZ0FjdGlvbiwKKyAgICAgICAgICAgIGxleFN0YXRlQ29u
ZGl0aW9uOiB0aGlzLkxleFN0YXRlLkF0S2V5ZnJhbWVzCisgICAgICAgIH0sIHsKKyAgICAgICAg
ICAgIHBhdHRlcm46IGlkZW50UGF0dGVybiwKKyAgICAgICAgICAgIGFjdGlvbjogYXRSdWxlSWRl
bnRBY3Rpb24sCisgICAgICAgICAgICBsZXhTdGF0ZUNvbmRpdGlvbjogdGhpcy5MZXhTdGF0ZS5B
dFJ1bGUsCisgICAgICAgICAgICBkb250QXBwZW5kTm9uVG9rZW46IHRydWUKKyAgICAgICAgfSwg
eworICAgICAgICAgICAgcGF0dGVybjogaWRlbnRQYXR0ZXJuLAorICAgICAgICAgICAgYWN0aW9u
OiBhdFJ1bGVJZGVudEFjdGlvbiwKKyAgICAgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0aGlz
LkxleFN0YXRlLkF0TWVkaWEsCisgICAgICAgICAgICBkb250QXBwZW5kTm9uVG9rZW46IHRydWUK
KyAgICAgICAgfSwgeworICAgICAgICAgICAgcGF0dGVybjogc3RhcnRCbG9ja1BhdHRlcm4sCisg
ICAgICAgICAgICBhY3Rpb246IHN0YXJ0QXRSdWxlQmxvY2tBY3Rpb24sCisgICAgICAgICAgICBs
ZXhTdGF0ZUNvbmRpdGlvbjogdGhpcy5MZXhTdGF0ZS5BdFJ1bGUsCisgICAgICAgICAgICBkb250
QXBwZW5kTm9uVG9rZW46IHRydWUKKyAgICAgICAgfV07CisgICAgCisgICAgZnVuY3Rpb24gY29t
bWVudEFjdGlvbih0b2tlbikKICAgICB7Ci0gICAgICAgIGlmICghY2VsbCkKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgZGVsZXRlIGNlbGwuX2NvbW1lbnRDb250aW51ZXM7Ci0gICAgICAg
IGRlbGV0ZSBjZWxsLl9pblNlbGVjdG9yOwotICAgIH0sCi0KLSAgICBmaW5kUHNldWRvQ2xhc3M6
IGZ1bmN0aW9uKHN0cikKKyAgICAgICAgdGhpcy5jdXJzb3IgKz0gdG9rZW4ubGVuZ3RoOworICAg
ICAgICB0aGlzLmxpbmVGcmFnbWVudC5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVNwYW4odG9rZW4s
ICJ3ZWJraXQtY3NzLWNvbW1lbnQiKSk7CisgICAgfQorICAgIAorICAgIGZ1bmN0aW9uIGNvbW1l
bnRTdGFydEFjdGlvbih0b2tlbikKICAgICB7Ci0gICAgICAgIHZhciBtYXRjaCA9IC9eKDo6Pyko
W19hLXowLTldW19hLXowLTktXSopLy5leGVjKHN0cik7Ci0gICAgICAgIGlmICghbWF0Y2gpCi0g
ICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgdGhpcy5wcmV2aW91c01hdGNoTGVuZ3Ro
ID0gbWF0Y2hbMF0ubGVuZ3RoOwotICAgICAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoInNwYW4iKTsKLSAgICAgICAgc3Bhbi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZShtYXRjaFsxXSkpOwotICAgICAgICBzcGFuLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRl
U3BhbihtYXRjaFsyXSwgIndlYmtpdC1jc3MtcHNldWRvLWNsYXNzIikpOwotICAgICAgICByZXR1
cm4gc3BhbjsKLSAgICB9LAotCi0gICAgZmluZFVSTDogZnVuY3Rpb24oc3RyKQorICAgICAgICB0
aGlzLmN1cnNvciArPSB0b2tlbi5sZW5ndGg7CisgICAgICAgIHRoaXMubGluZUZyYWdtZW50LmFw
cGVuZENoaWxkKHRoaXMuY3JlYXRlU3Bhbih0b2tlbiwgIndlYmtpdC1jc3MtY29tbWVudCIpKTsK
KyAgICAgICAgdGhpcy5jb250aW51ZVN0YXRlID0gdGhpcy5Db250aW51ZVN0YXRlLkNvbW1lbnQ7
CisgICAgfQorICAgIAorICAgIGZ1bmN0aW9uIGNvbW1lbnRFbmRBY3Rpb24odG9rZW4pCiAgICAg
ewotICAgICAgICB2YXIgbWF0Y2ggPSAvXig/OmxvY2FsfHVybClcKChbXlwpXSo/KVwpLy5leGVj
KHN0cik7Ci0gICAgICAgIGlmICghbWF0Y2gpCi0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAg
ICAgICAgdGhpcy5wcmV2aW91c01hdGNoTGVuZ3RoID0gbWF0Y2hbMF0ubGVuZ3RoOwotICAgICAg
ICB2YXIgaW5uZXJVcmxTcGFuID0gdGhpcy5jcmVhdGVTcGFuKG1hdGNoWzFdLCAid2Via2l0LWNz
cy11cmwiKTsKLSAgICAgICAgdmFyIG91dGVyU3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
InNwYW4iKTsKLSAgICAgICAgb3V0ZXJTcGFuLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlU3Bhbigi
dXJsIiwgIndlYmtpdC1jc3Mta2V5d29yZCIpKTsKLSAgICAgICAgb3V0ZXJTcGFuLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIoIikpOwotICAgICAgICBvdXRlclNwYW4uYXBw
ZW5kQ2hpbGQoaW5uZXJVcmxTcGFuKTsKLSAgICAgICAgb3V0ZXJTcGFuLmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKCIpIikpOwotICAgICAgICByZXR1cm4gb3V0ZXJTcGFuOwot
ICAgIH0sCisgICAgICAgIHRoaXMuY3Vyc29yICs9IHRva2VuLmxlbmd0aDsKKyAgICAgICAgdGhp
cy5saW5lRnJhZ21lbnQuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVTcGFuKHRva2VuLCAid2Via2l0
LWNzcy1jb21tZW50IikpOworICAgICAgICB0aGlzLmNvbnRpbnVlU3RhdGUgPSB0aGlzLkNvbnRp
bnVlU3RhdGUuTm9uZTsKKyAgICB9CiAKLSAgICBmaW5kQXRSdWxlOiBmdW5jdGlvbihzdHIpCisg
ICAgZnVuY3Rpb24gY29tbWVudE1pZGRsZUFjdGlvbih0b2tlbikKICAgICB7Ci0gICAgICAgIHZh
ciBtYXRjaCA9IC9eQFtfYS16MC05XVtfYS16MC05LV0qKD86XFd8JCkvLmV4ZWMoc3RyKTsKLSAg
ICAgICAgaWYgKCFtYXRjaCkKLSAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICB0aGlz
LnByZXZpb3VzTWF0Y2hMZW5ndGggPSBtYXRjaFswXS5sZW5ndGg7Ci0gICAgICAgIHJldHVybiB0
aGlzLmNyZWF0ZVNwYW4obWF0Y2hbMF0sICJ3ZWJraXQtY3NzLWF0LXJ1bGUiKTsKLSAgICB9LAot
Ci0gICAgc3ludGF4SGlnaGxpZ2h0TGluZTogZnVuY3Rpb24obGluZSwgcHJldkxpbmUpCisgICAg
ICAgIHRoaXMuY3Vyc29yICs9IHRva2VuLmxlbmd0aDsKKyAgICAgICAgdGhpcy5saW5lRnJhZ21l
bnQuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVTcGFuKHRva2VuLCAid2Via2l0LWNzcy1jb21tZW50
IikpOworICAgIH0KKyAgICAKKyAgICBmdW5jdGlvbiBzZWxlY3RvckFjdGlvbih0b2tlbikKICAg
ICB7Ci0gICAgICAgIHZhciBjb2RlID0gbGluZS50ZXh0Q29udGVudDsKLSAgICAgICAgd2hpbGUg
KGxpbmUuZmlyc3RDaGlsZCkKLSAgICAgICAgICAgIGxpbmUucmVtb3ZlQ2hpbGQobGluZS5maXJz
dENoaWxkKTsKLQotICAgICAgICB2YXIgdG9rZW47Ci0gICAgICAgIHZhciB0bXAgPSAwOwotICAg
ICAgICB2YXIgaSA9IDA7Ci0gICAgICAgIHRoaXMucHJldmlvdXNNYXRjaExlbmd0aCA9IDA7Ci0K
LSAgICAgICAgaWYgKHByZXZMaW5lKSB7Ci0gICAgICAgICAgICBpZiAocHJldkxpbmUuX2NvbW1l
bnRDb250aW51ZXMpIHsKLSAgICAgICAgICAgICAgICBpZiAoISh0b2tlbiA9IHRoaXMuZmluZE11
bHRpbGluZUNvbW1lbnRFbmQoY29kZSkpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRva2VuID0g
dGhpcy5jcmVhdGVTcGFuKGNvZGUsICJ3ZWJraXQtamF2YXNjcmlwdC1jb21tZW50Iik7Ci0gICAg
ICAgICAgICAgICAgICAgIGxpbmUuX2NvbW1lbnRDb250aW51ZXMgPSB0cnVlOwotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICh0b2tlbikgewotICAgICAg
ICAgICAgICAgIGkgKz0gdGhpcy5wcmV2aW91c01hdGNoTGVuZ3RoID8gdGhpcy5wcmV2aW91c01h
dGNoTGVuZ3RoIDogY29kZS5sZW5ndGg7Ci0gICAgICAgICAgICAgICAgdG1wID0gaTsKLSAgICAg
ICAgICAgICAgICBsaW5lLmFwcGVuZENoaWxkKHRva2VuKTsKLSAgICAgICAgICAgIH0KKyAgICAg
ICAgdGhpcy5jdXJzb3IgKz0gdG9rZW4ubGVuZ3RoOworICAgICAgICB0aGlzLmxpbmVGcmFnbWVu
dC5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVNwYW4odG9rZW4sICJ3ZWJraXQtY3NzLXNlbGVjdG9y
IikpOworICAgIH0KKyAgICAKKyAgICBmdW5jdGlvbiBzdGFydFJ1bGVzZXRCbG9ja0FjdGlvbih0
b2tlbikKKyAgICB7CisgICAgICAgIHRoaXMuY3Vyc29yICs9IHRva2VuLmxlbmd0aDsKKyAgICAg
ICAgdGhpcy5ub25Ub2tlbiArPSB0b2tlbjsKKyAgICAgICAgdGhpcy5sZXhTdGF0ZSA9IHRoaXMu
TGV4U3RhdGUuRGVjbGFyYXRpb25Qcm9wZXJ0eTsKKyAgICB9CisgICAgCisgICAgZnVuY3Rpb24g
ZW5kUnVsZXNldEJsb2NrQWN0aW9uKHRva2VuKQorICAgIHsKKyAgICAgICAgdGhpcy5jdXJzb3Ig
Kz0gdG9rZW4ubGVuZ3RoOworICAgICAgICB0aGlzLm5vblRva2VuICs9IHRva2VuOworICAgICAg
ICB0aGlzLmxleFN0YXRlID0gdGhpcy5MZXhTdGF0ZS5Jbml0aWFsOworICAgIH0KKyAgICAKKyAg
ICBjb25zdCBwcm9wZXJ0eUtleXdvcmRzID0gWyItd2Via2l0LW1hdGNoLW5lYXJlc3QtbWFpbC1i
bG9ja3F1b3RlLWNvbG9yIiwgCisgICAgIi13ZWJraXQtdmFyaWFibGUtZGVjbGFyYXRpb24tYmxv
Y2siLCAiLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiIsIAorICAgICItd2Via2l0
LXRleHQtZGVjb3JhdGlvbnMtaW4tZWZmZWN0IiwgIi13ZWJraXQtYm9yZGVyLWhvcml6b250YWwt
c3BhY2luZyIsIAorICAgICItd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24iLCAiLXdl
YmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50IiwgCisgICAgIi13ZWJraXQtYm9yZGVyLXZl
cnRpY2FsLXNwYWNpbmciLCAiLXdlYmtpdC1tYXJnaW4tYm90dG9tLWNvbGxhcHNlIiwgCisgICAg
Ii13ZWJraXQtcGVyc3BlY3RpdmUtb3JpZ2luLXkiLCAiLXdlYmtpdC1wZXJzcGVjdGl2ZS1vcmln
aW4teCIsIAorICAgICItd2Via2l0LWJhY2tncm91bmQtY29tcG9zaXRlIiwgIi13ZWJraXQtYW5p
bWF0aW9uLXBsYXktc3RhdGUiLCAKKyAgICAiLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5Iiwg
Ii13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbiIsIAorICAgICItd2Via2l0LW1hcmdpbi10b3At
Y29sbGFwc2UiLCAiLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlIiwgCisgICAgIi13ZWJraXQt
Y29sdW1uLWJyZWFrLWJlZm9yZSIsICItd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHkiLCAKKyAg
ICAiLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uIiwgImJvcmRlci1ib3R0b20tcmlnaHQtcmFk
aXVzIiwgCisgICAgIi13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbi16IiwgIi13ZWJraXQtdHJhbnNm
b3JtLW9yaWdpbi15IiwgCisgICAgIi13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbi14IiwgIi13ZWJr
aXQtcGVyc3BlY3RpdmUtb3JpZ2luIiwgCisgICAgIi13ZWJraXQtbWFycXVlZS1yZXBldGl0aW9u
IiwgIi13ZWJraXQtY29sdW1uLWJyZWFrLWFmdGVyIiwgCisgICAgIi13ZWJraXQtYW5pbWF0aW9u
LWR1cmF0aW9uIiwgImJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMiLCAiLXdlYmtpdC10ZXh0LXN0
cm9rZS13aWR0aCIsIAorICAgICItd2Via2l0LXRleHQtc3Ryb2tlLWNvbG9yIiwgIi13ZWJraXQt
bWFycXVlZS1pbmNyZW1lbnQiLCAiLXdlYmtpdC1tYXJxdWVlLWRpcmVjdGlvbiIsIAorICAgICIt
d2Via2l0LWNvbHVtbi1ydWxlLXdpZHRoIiwgIi13ZWJraXQtY29sdW1uLXJ1bGUtc3R5bGUiLCAi
LXdlYmtpdC1jb2x1bW4tcnVsZS1jb2xvciIsIAorICAgICItd2Via2l0LWJveC1vcmRpbmFsLWdy
b3VwIiwgIi13ZWJraXQtYmFja2dyb3VuZC1vcmlnaW4iLCAiLXdlYmtpdC10cmFuc2l0aW9uLWRl
bGF5IiwgCisgICAgIi13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbiIsICItd2Via2l0LXRleHQtc2l6
ZS1hZGp1c3QiLCAidGV4dC1saW5lLXRocm91Z2gtd2lkdGgiLCAKKyAgICAidGV4dC1saW5lLXRo
cm91Z2gtc3R5bGUiLCAidGV4dC1saW5lLXRocm91Z2gtY29sb3IiLCAiYm9yZGVyLXRvcC1yaWdo
dC1yYWRpdXMiLCAKKyAgICAiLXdlYmtpdC10cmFuc2Zvcm0tc3R5bGUiLCAiLXdlYmtpdC10ZXh0
LWZpbGwtY29sb3IiLCAiLXdlYmtpdC1tYXNrLXBvc2l0aW9uLXkiLCAKKyAgICAiLXdlYmtpdC1t
YXNrLXBvc2l0aW9uLXgiLCAiLXdlYmtpdC1tYXNrLWF0dGFjaG1lbnQiLCAiLXdlYmtpdC1tYXJn
aW4tY29sbGFwc2UiLCAKKyAgICAiLXdlYmtpdC1mb250LXNpemUtZGVsdGEiLCAiLXdlYmtpdC1i
YWNrZ3JvdW5kLXNpemUiLCAiLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXAiLCAKKyAgICAiLXdlYmtp
dC1hbmltYXRpb24tZGVsYXkiLCAidGV4dC1saW5lLXRocm91Z2gtbW9kZSIsICJib3JkZXItdG9w
LWxlZnQtcmFkaXVzIiwgCisgICAgIi13ZWJraXQtbWFzay1jb21wb3NpdGUiLCAiLXdlYmtpdC1t
YXNrLWJveC1pbWFnZSIsICItd2Via2l0LWZvbnQtc21vb3RoaW5nIiwgCisgICAgIi13ZWJraXQt
Ym94LWZsZXgtZ3JvdXAiLCAiLXdlYmtpdC1hbmltYXRpb24tbmFtZSIsICJiYWNrZ3JvdW5kLXBv
c2l0aW9uLXkiLCAKKyAgICAiYmFja2dyb3VuZC1wb3NpdGlvbi14IiwgImJhY2tncm91bmQtYXR0
YWNobWVudCIsICItd2Via2l0LXRleHQtc2VjdXJpdHkiLCAKKyAgICAiLXdlYmtpdC1wYWRkaW5n
LXN0YXJ0IiwgIi13ZWJraXQtbWFzay1yZXBlYXQteSIsICItd2Via2l0LW1hc2stcmVwZWF0LXgi
LCAKKyAgICAiLXdlYmtpdC1tYXNrLXBvc2l0aW9uIiwgIi13ZWJraXQtbWFycXVlZS1zdHlsZSIs
ICItd2Via2l0LW1hcnF1ZWUtc3BlZWQiLCAKKyAgICAiLXdlYmtpdC1ib3gtZGlyZWN0aW9uIiwg
Ii13ZWJraXQtYm9yZGVyLXJhZGl1cyIsICJ0ZXh0LXVuZGVybGluZS13aWR0aCIsIAorICAgICJ0
ZXh0LXVuZGVybGluZS1zdHlsZSIsICJ0ZXh0LXVuZGVybGluZS1jb2xvciIsICItd2Via2l0LXJ0
bC1vcmRlcmluZyIsIAorICAgICItd2Via2l0LW1hcmdpbi1zdGFydCIsICItd2Via2l0LWNvbHVt
bi13aWR0aCIsICItd2Via2l0LWNvbHVtbi1jb3VudCIsIAorICAgICItd2Via2l0LWJvcmRlci1p
bWFnZSIsICJ0ZXh0LXVuZGVybGluZS1tb2RlIiwgInRleHQtb3ZlcmxpbmUtd2lkdGgiLCAKKyAg
ICAidGV4dC1vdmVybGluZS1zdHlsZSIsICJ0ZXh0LW92ZXJsaW5lLWNvbG9yIiwgImxpc3Qtc3R5
bGUtcG9zaXRpb24iLCAKKyAgICAiYm9yZGVyLWJvdHRvbS13aWR0aCIsICJib3JkZXItYm90dG9t
LXN0eWxlIiwgImJvcmRlci1ib3R0b20tY29sb3IiLCAKKyAgICAiYmFja2dyb3VuZC1yZXBlYXQt
eSIsICJiYWNrZ3JvdW5kLXJlcGVhdC14IiwgImJhY2tncm91bmQtcG9zaXRpb24iLCAKKyAgICAi
LXdlYmtpdC11c2VyLXNlbGVjdCIsICItd2Via2l0LXVzZXItbW9kaWZ5IiwgIi13ZWJraXQtdGV4
dC1zdHJva2UiLCAKKyAgICAiLXdlYmtpdC1wZXJzcGVjdGl2ZSIsICItd2Via2l0LW1hc2stcmVw
ZWF0IiwgIi13ZWJraXQtbWFzay1vcmlnaW4iLCAKKyAgICAiLXdlYmtpdC1jb2x1bW4tcnVsZSIs
ICItd2Via2l0LWJveC1yZWZsZWN0IiwgInRleHQtb3ZlcmxpbmUtbW9kZSIsICJib3JkZXItcmln
aHQtd2lkdGgiLCAKKyAgICAiYm9yZGVyLXJpZ2h0LXN0eWxlIiwgImJvcmRlci1yaWdodC1jb2xv
ciIsICItd2Via2l0LXRyYW5zaXRpb24iLCAiLXdlYmtpdC1tYXNrLWltYWdlIiwgCisgICAgIi13
ZWJraXQtbGluZS1jbGFtcCIsICItd2Via2l0LWxpbmUtYnJlYWsiLCAiLXdlYmtpdC1jb2x1bW4t
Z2FwIiwgIi13ZWJraXQtYm94LXNpemluZyIsIAorICAgICItd2Via2l0LWJveC1zaGFkb3ciLCAi
LXdlYmtpdC1ib3gtb3JpZW50IiwgIi13ZWJraXQtYm9yZGVyLWZpdCIsICItd2Via2l0LWFwcGVh
cmFuY2UiLCAKKyAgICAidGV4dC1saW5lLXRocm91Z2giLCAicGFnZS1icmVhay1pbnNpZGUiLCAi
cGFnZS1icmVhay1iZWZvcmUiLCAiY291bnRlci1pbmNyZW1lbnQiLCAKKyAgICAiYm9yZGVyLWxl
ZnQtd2lkdGgiLCAiYm9yZGVyLWxlZnQtc3R5bGUiLCAiYm9yZGVyLWxlZnQtY29sb3IiLCAiYmFj
a2dyb3VuZC1yZXBlYXQiLCAKKyAgICAiYmFja2dyb3VuZC1vcmlnaW4iLCAiLXdlYmtpdC11c2Vy
LWRyYWciLCAiLXdlYmtpdC10cmFuc2Zvcm0iLCAiLXdlYmtpdC1uYnNwLW1vZGUiLCAKKyAgICAi
LXdlYmtpdC1tYXNrLXNpemUiLCAiLXdlYmtpdC1tYXNrLWNsaXAiLCAiLXdlYmtpdC1oaWdobGln
aHQiLCAiLXdlYmtpdC1ib3gtbGluZXMiLCAKKyAgICAiLXdlYmtpdC1ib3gtYWxpZ24iLCAiLXdl
YmtpdC1hbmltYXRpb24iLCAicGFnZS1icmVhay1hZnRlciIsICJsaXN0LXN0eWxlLWltYWdlIiwg
CisgICAgImJvcmRlci10b3Atd2lkdGgiLCAiYm9yZGVyLXRvcC1zdHlsZSIsICJib3JkZXItdG9w
LWNvbG9yIiwgImJhY2tncm91bmQtaW1hZ2UiLCAKKyAgICAiYmFja2dyb3VuZC1jb2xvciIsICIt
d2Via2l0LWJveC1wYWNrIiwgIi13ZWJraXQtYm94LWZsZXgiLCAidGV4dC1kZWNvcmF0aW9uIiwg
CisgICAgImxpc3Qtc3R5bGUtdHlwZSIsICJib3JkZXItY29sbGFwc2UiLCAiYmFja2dyb3VuZC1z
aXplIiwgImJhY2tncm91bmQtY2xpcCIsIAorICAgICItd2Via2l0LW1hcnF1ZWUiLCAiLXdlYmtp
dC1jb2x1bW5zIiwgIi13ZWJraXQtYmluZGluZyIsICJ2ZXJ0aWNhbC1hbGlnbiIsIAorICAgICJ0
ZXh0LXVuZGVybGluZSIsICJ0ZXh0LXRyYW5zZm9ybSIsICJ0ZXh0LXJlbmRlcmluZyIsICJwb2lu
dGVyLWV2ZW50cyIsICJwYWRkaW5nLWJvdHRvbSIsIAorICAgICJvdXRsaW5lLW9mZnNldCIsICJs
ZXR0ZXItc3BhY2luZyIsICJib3JkZXItc3BhY2luZyIsICJ1bmljb2RlLXJhbmdlIiwgInRleHQt
b3ZlcmxpbmUiLCAKKyAgICAidGV4dC1vdmVyZmxvdyIsICJwYWRkaW5nLXJpZ2h0IiwgIm91dGxp
bmUtd2lkdGgiLCAib3V0bGluZS1zdHlsZSIsICJvdXRsaW5lLWNvbG9yIiwgCisgICAgIm1hcmdp
bi1ib3R0b20iLCAiY291bnRlci1yZXNldCIsICJib3JkZXItcmFkaXVzIiwgImJvcmRlci1ib3R0
b20iLCAid29yZC1zcGFjaW5nIiwgCisgICAgInVuaWNvZGUtYmlkaSIsICJ0YWJsZS1sYXlvdXQi
LCAicGFkZGluZy1sZWZ0IiwgIm1hcmdpbi1yaWdodCIsICJmb250LXZhcmlhbnQiLCAKKyAgICAi
Zm9udC1zdHJldGNoIiwgImNhcHRpb24tc2lkZSIsICJib3JkZXItd2lkdGgiLCAiYm9yZGVyLXN0
eWxlIiwgImJvcmRlci1yaWdodCIsIAorICAgICJib3JkZXItY29sb3IiLCAiLXdlYmtpdC1tYXNr
IiwgIndoaXRlLXNwYWNlIiwgInRleHQtc2hhZG93IiwgInRleHQtaW5kZW50IiwgCisgICAgInBh
ZGRpbmctdG9wIiwgIm1hcmdpbi1sZWZ0IiwgImxpbmUtaGVpZ2h0IiwgImZvbnQtd2VpZ2h0Iiwg
ImZvbnQtZmFtaWx5IiwgCisgICAgImVtcHR5LWNlbGxzIiwgImJvcmRlci1sZWZ0IiwgIndvcmQt
YnJlYWsiLCAidmlzaWJpbGl0eSIsICJ0ZXh0LWFsaWduIiwgCisgICAgIm92ZXJmbG93LXkiLCAi
b3ZlcmZsb3cteCIsICJtaW4taGVpZ2h0IiwgIm1heC1oZWlnaHQiLCAibWFyZ2luLXRvcCIsIAor
ICAgICJsaXN0LXN0eWxlIiwgImZvbnQtc3R5bGUiLCAiYm9yZGVyLXRvcCIsICJiYWNrZ3JvdW5k
IiwgIndvcmQtd3JhcCIsIAorICAgICJtaW4td2lkdGgiLCAibWF4LXdpZHRoIiwgImZvbnQtc2l6
ZSIsICJkaXJlY3Rpb24iLCAicG9zaXRpb24iLCAib3ZlcmZsb3ciLCAiei1pbmRleCIsIAorICAg
ICJwYWRkaW5nIiwgIm91dGxpbmUiLCAib3JwaGFucyIsICJvcGFjaXR5IiwgImRpc3BsYXkiLCAi
Y29udGVudCIsICJ3aWRvd3MiLCAicmVzaXplIiwgCisgICAgInF1b3RlcyIsICJtYXJnaW4iLCAi
aGVpZ2h0IiwgImN1cnNvciIsICJib3R0b20iLCAiYm9yZGVyIiwgIndpZHRoIiwgInJpZ2h0Iiwg
ImZsb2F0IiwgCisgICAgImNvbG9yIiwgImNsZWFyIiwgInpvb20iLCAic2l6ZSIsICJwYWdlIiwg
ImxlZnQiLCAiZm9udCIsICJjbGlwIiwgInRvcCIsICJzcmMiXTsKKyAgICBmdW5jdGlvbiBwcm9w
ZXJ0eUFjdGlvbih0b2tlbikKKyAgICB7CisgICAgICAgIHRoaXMuY3Vyc29yICs9IHRva2VuLmxl
bmd0aDsKKyAgICAgICAgaWYgKHByb3BlcnR5S2V5d29yZHMuaW5kZXhPZih0b2tlbikgPT09IC0x
KQorICAgICAgICAgICAgdGhpcy5ub25Ub2tlbiArPSB0b2tlbjsKKyAgICAgICAgZWxzZSB7Cisg
ICAgICAgICAgICB0aGlzLmFwcGVuZE5vblRva2VuLmNhbGwodGhpcyk7CisgICAgICAgICAgICB0
aGlzLmxpbmVGcmFnbWVudC5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVNwYW4odG9rZW4sICJ3ZWJr
aXQtY3NzLXByb3BlcnR5IikpOwogICAgICAgICB9CisgICAgfQorICAgIAorICAgIGZ1bmN0aW9u
IGRlY2xhcmF0aW9uQ29sb25BY3Rpb24odG9rZW4pCisgICAgeworICAgICAgICB0aGlzLmN1cnNv
ciArPSB0b2tlbi5sZW5ndGg7CisgICAgICAgIHRoaXMubm9uVG9rZW4gKz0gdG9rZW47CisgICAg
ICAgIHRoaXMubGV4U3RhdGUgPSB0aGlzLkxleFN0YXRlLkRlY2xhcmF0aW9uVmFsdWU7CisgICAg
fQogCi0gICAgICAgIHZhciBpblNlbGVjdG9yID0gKHByZXZMaW5lICYmIHByZXZMaW5lLl9pblNl
bGVjdG9yKTsgLy8gaW5zaWRlIGEgc2VsZWN0b3IsIHdlIGNhbiBub3cgcGFyc2UgcHJvcGVydGll
cyBhbmQgdmFsdWVzCi0gICAgICAgIHZhciBpbkF0UnVsZUJsb2NrID0gKHByZXZMaW5lICYmIHBy
ZXZMaW5lLl9pbkF0UnVsZUJsb2NrKTsgLy8gaW5zaWRlIGFuIEBydWxlIGJsb2NrLCBidXQgbm90
IG5lY2Vzc2FyaWx5IGluc2lkZSBhIHNlbGVjdG9yIHlldAotICAgICAgICB2YXIgYXRSdWxlU3Rh
cnRlZCA9IChwcmV2TGluZSAmJiBwcmV2TGluZS5fYXRSdWxlU3RhcnRlZCk7IC8vIHdlIHJlY2Vp
dmVkIGFuIEBydWxlLCB3ZSBtYXkgc3RvcCB0aGUgQHJ1bGUgYXQgYSBzZW1pY29sb24gb3Igb3Bl
biBhIGJsb2NrIGFuZCBiZWNvbWUgaW5BdFJ1bGVCbG9jawotICAgICAgICB2YXIgYXRSdWxlSXNT
ZWxlY3RvciA9IChwcmV2TGluZSAmJiBwcmV2TGluZS5fYXRSdWxlSXNTZWxlY3Rvcik7IC8vIHdo
ZW4gdGhpcyBAcnVsZSBvcGVucyBhIGJsb2NrIGl0IGltbWVkaWF0ZWx5IGdvZXMgaW50byBwYXJz
aW5nIHByb3BlcnRpZXMgYW5kIHZhbHVlcyBpbnN0ZWFkIG9mIHNlbGVjdG9ycwotCi0gICAgICAg
IGZvciAoIDsgaSA8IGNvZGUubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIHZhciBjb2RlRnJh
Z21lbnQgPSBjb2RlLnN1YnN0cihpKTsKLSAgICAgICAgICAgIHZhciBwcmV2Q2hhciA9IGNvZGVb
aSAtIDFdOwotICAgICAgICAgICAgdmFyIGN1cnJDaGFyID0gY29kZUZyYWdtZW50WzBdOwotICAg
ICAgICAgICAgdG9rZW4gPSB0aGlzLmZpbmRTaW5nbGVMaW5lQ29tbWVudChjb2RlRnJhZ21lbnQp
OwotICAgICAgICAgICAgaWYgKCF0b2tlbikgewotICAgICAgICAgICAgICAgIGlmICgodG9rZW4g
PSB0aGlzLmZpbmRNdWx0aWxpbmVDb21tZW50U3RhcnQoY29kZUZyYWdtZW50KSkpCi0gICAgICAg
ICAgICAgICAgICAgIGxpbmUuX2NvbW1lbnRDb250aW51ZXMgPSB0cnVlOwotICAgICAgICAgICAg
ICAgIGVsc2UgaWYgKGN1cnJDaGFyID09PSAiOyIgJiYgIWluQXRSdWxlQmxvY2spCi0gICAgICAg
ICAgICAgICAgICAgIGF0UnVsZVN0YXJ0ZWQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICBlbHNl
IGlmIChjdXJyQ2hhciA9PT0gIn0iKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChpblNlbGVj
dG9yICYmIGluQXRSdWxlQmxvY2sgJiYgYXRSdWxlSXNTZWxlY3RvcikgewotICAgICAgICAgICAg
ICAgICAgICAgICAgaW5TZWxlY3RvciA9IGZhbHNlOwotICAgICAgICAgICAgICAgICAgICAgICAg
aW5BdFJ1bGVCbG9jayA9IGZhbHNlOwotICAgICAgICAgICAgICAgICAgICAgICAgYXRSdWxlU3Rh
cnRlZCA9IGZhbHNlOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGluU2VsZWN0b3Ip
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGluU2VsZWN0b3IgPSBmYWxzZTsKLSAgICAgICAg
ICAgICAgICAgICAgfSBlbHNlIGlmIChpbkF0UnVsZUJsb2NrKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBpbkF0UnVsZUJsb2NrID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgICAgICBh
dFJ1bGVTdGFydGVkID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICB9IGVsc2UgaWYgKGN1cnJDaGFyID09PSAieyIpIHsKLSAgICAgICAgICAgICAgICAgICAg
aWYgKCFhdFJ1bGVTdGFydGVkIHx8IGluQXRSdWxlQmxvY2spIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGluU2VsZWN0b3IgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYg
KCFpbkF0UnVsZUJsb2NrICYmIGF0UnVsZUlzU2VsZWN0b3IpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGluQXRSdWxlQmxvY2sgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgaW5T
ZWxlY3RvciA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIWluQXRSdWxl
QmxvY2spIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGluQXRSdWxlQmxvY2sgPSB0cnVlOwot
ICAgICAgICAgICAgICAgICAgICAgICAgaW5TZWxlY3RvciA9IGZhbHNlOwotICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpblNlbGVjdG9yKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIGlmICghcHJldkNoYXIgfHwgL15cZC8udGVzdChwcmV2Q2hhcikpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuID0gdGhpcy5maW5kVW5pdHMoY29kZUZyYWdt
ZW50KTsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghcHJldkNoYXIgfHwgL15cVy8u
dGVzdChwcmV2Q2hhcikpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuID0gdGhpcy5m
aW5kTnVtYmVyKGNvZGVGcmFnbWVudCkgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGhpcy5maW5kS2V5d29yZChjb2RlRnJhZ21lbnQpIHx8Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRoaXMuZmluZFVSTChjb2RlRnJhZ21lbnQpIHx8Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRoaXMuZmluZFByb3BlcnR5KGNvZGVGcmFnbWVudCkgfHwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maW5kQXRSdWxlKGNvZGVGcmFnbWVu
dCkgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maW5kR2VuZXJpY0lk
ZW50KGNvZGVGcmFnbWVudCkgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhp
cy5maW5kU2luZ2xlTGluZVN0cmluZyhjb2RlRnJhZ21lbnQpOwotICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmICghaW5TZWxlY3RvcikgewotICAgICAgICAg
ICAgICAgICAgICBpZiAoYXRSdWxlU3RhcnRlZCAmJiAhaW5BdFJ1bGVCbG9jaykKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHRva2VuID0gdGhpcy5maW5kVVJMKGNvZGVGcmFnbWVudCk7IC8vIGZv
ciBAaW1wb3J0Ci0gICAgICAgICAgICAgICAgICAgIGlmICghdG9rZW4pIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHRva2VuID0gdGhpcy5maW5kU2VsZWN0b3IoY29kZUZyYWdtZW50KSB8fAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbmRQc2V1ZG9DbGFzcyhjb2Rl
RnJhZ21lbnQpIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmluZEF0
UnVsZShjb2RlRnJhZ21lbnQpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAodG9rZW4pIHsKLSAgICAgICAg
ICAgICAgICBpZiAoY3VyckNoYXIgPT09ICJAIikgewotICAgICAgICAgICAgICAgICAgICBhdFJ1
bGVTdGFydGVkID0gdHJ1ZTsKLQotICAgICAgICAgICAgICAgICAgICAvLyBUaGUgQGZvbnQtZmFj
ZSwgQHBhZ2UsIGFuZCBAdmFyaWFibGVzIGF0LXJ1bGVzIGRvIG5vdCBjb250YWluIHNlbGVjdG9y
cyBsaWtlIG90aGVyIGF0LXJ1bGVzCi0gICAgICAgICAgICAgICAgICAgIC8vIGluc3RlYWQgaXQg
YWN0cyBhcyBhIHNlbGVjdG9yIGFuZCBjb250YWlucyBwcm9wZXJ0aWVzIGFuZCB2YWx1ZXMuCi0g
ICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gdG9rZW4udGV4dENvbnRlbnQ7Ci0gICAgICAg
ICAgICAgICAgICAgIGF0UnVsZUlzU2VsZWN0b3IgPSAvZm9udC1mYWNlLy50ZXN0KHRleHQpIHx8
IC9wYWdlLy50ZXN0KHRleHQpIHx8IC92YXJpYWJsZXMvLnRlc3QodGV4dCk7Ci0gICAgICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICAgICAgaWYgKHRtcCAhPT0gaSkKLSAgICAgICAgICAgICAg
ICAgICAgbGluZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjb2RlLnN1YnN0
cmluZyh0bXAsIGkpKSk7Ci0gICAgICAgICAgICAgICAgbGluZS5hcHBlbmRDaGlsZCh0b2tlbik7
Ci0gICAgICAgICAgICAgICAgaSArPSB0aGlzLnByZXZpb3VzTWF0Y2hMZW5ndGggLSAxOwotICAg
ICAgICAgICAgICAgIHRtcCA9IGkgKyAxOwotICAgICAgICAgICAgfQorICAgIGNvbnN0IHZhbHVl
S2V5d29yZHMgPSBbIm1lZGlhLXJldHVybi10by1yZWFsdGltZS1idXR0b24iLCAic2VhcmNoZmll
bGQtcmVzdWx0cy1kZWNvcmF0aW9uIiwgCisgICAgIm1lZGlhLXZvbHVtZS1zbGlkZXItY29udGFp
bmVyIiwgIm1lZGlhLXRpbWUtcmVtYWluaW5nLWRpc3BsYXkiLCAic2VhcmNoZmllbGQtcmVzdWx0
cy1idXR0b24iLCAKKyAgICAibWVkaWEtY3VycmVudC10aW1lLWRpc3BsYXkiLCAic2VhcmNoZmll
bGQtY2FuY2VsLWJ1dHRvbiIsICJyZWFkLXdyaXRlLXBsYWludGV4dC1vbmx5IiwgCisgICAgIm1l
ZGlhLXNlZWstZm9yd2FyZC1idXR0b24iLCAibWVkaWEtY29udHJvbHMtYmFja2dyb3VuZCIsICJt
ZWRpYS12b2x1bWUtc2xpZGVydGh1bWIiLCAKKyAgICAiLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9y
IiwgIm1lZGlhLWZ1bGxzY3JlZW4tYnV0dG9uIiwgIi13ZWJraXQtYmFzZWxpbmUtbWlkZGxlIiwg
CisgICAgInNsaWRlcnRodW1iLWhvcml6b250YWwiLCAic2VhcmNoZmllbGQtZGVjb3JhdGlvbiIs
ICJtZWRpYS1zZWVrLWJhY2stYnV0dG9uIiwgCisgICAgIi13ZWJraXQtc21hbGwtY29udHJvbCIs
ICJzdWJwaXhlbC1hbnRpYWxpYXNlZCIsICJzbGlkZXJ0aHVtYi12ZXJ0aWNhbCIsIAorICAgICJk
ZWNpbWFsLWxlYWRpbmctemVybyIsICItd2Via2l0LW1pbmktY29udHJvbCIsICJtZWRpYS12b2x1
bWUtc2xpZGVyIiwgIm1lZGlhLXJld2luZC1idXR0b24iLCAKKyAgICAiaW5hY3RpdmVjYXB0aW9u
dGV4dCIsICJjYXBzLWxvY2staW5kaWNhdG9yIiwgInRhYmxlLWhlYWRlci1ncm91cCIsICJ0YWJs
ZS1mb290ZXItZ3JvdXAiLCAKKyAgICAidGFibGUtY29sdW1uLWdyb3VwIiwgIm9wdGltaXplTGVn
aWJpbGl0eSIsICJtZW51bGlzdC10ZXh0ZmllbGQiLCAiZ2VvbWV0cmljUHJlY2lzaW9uIiwgCisg
ICAgIi13ZWJraXQtaW5saW5lLWJveCIsICItd2Via2l0LWFjdGl2ZWxpbmsiLCAidGhyZWVkbGln
aHRzaGFkb3ciLCAic2xpZGVyLWhvcml6b250YWwiLCAKKyAgICAibWVkaWEtc2xpZGVydGh1bWIi
LCAibWVkaWEtcGxheS1idXR0b24iLCAibWVkaWEtbXV0ZS1idXR0b24iLCAiLXdlYmtpdC14eHgt
bGFyZ2UiLCAKKyAgICAidGhyZWVkZGFya3NoYWRvdyIsICJkZXN0aW5hdGlvbi1vdmVyIiwgImRl
c3RpbmF0aW9uLWF0b3AiLCAiLXdlYmtpdC16b29tLW91dCIsIAorICAgICItd2Via2l0LWdyYWJi
aW5nIiwgInVsdHJhLWNvbmRlbnNlZCIsICJ0aHJlZWRoaWdobGlnaHQiLCAidGFibGUtcm93LWdy
b3VwIiwgCisgICAgInNsaWRlci12ZXJ0aWNhbCIsICJtZW51bGlzdC1idXR0b24iLCAiaW5hY3Rp
dmVjYXB0aW9uIiwgImV4dHJhLWNvbmRlbnNlZCIsIAorICAgICJkZXN0aW5hdGlvbi1vdXQiLCAi
Y2prLWlkZW9ncmFwaGljIiwgImJ1dHRvbmhpZ2hsaWdodCIsICItd2Via2l0LXpvb20taW4iLCAK
KyAgICAiLXdlYmtpdC1tYXJxdWVlIiwgIi13ZWJraXQtY29udHJvbCIsICJ2aXNpYmxlUGFpbnRl
ZCIsICJ1bHRyYS1leHBhbmRlZCIsICJzZW1pLWNvbmRlbnNlZCIsIAorICAgICJuby1jbG9zZS1x
dW90ZSIsICJrYXRha2FuYS1pcm9oYSIsICJpbmZvYmFja2dyb3VuZCIsICJpbmFjdGl2ZWJvcmRl
ciIsICJoaXJhZ2FuYS1pcm9oYSIsIAorICAgICJleHRyYS1leHBhbmRlZCIsICJkZXN0aW5hdGlv
bi1pbiIsICJkZWZhdWx0LWJ1dHRvbiIsICItd2Via2l0LW5vd3JhcCIsICItd2Via2l0LWNlbnRl
ciIsIAorICAgICJ2aXNpYmxlU3Ryb2tlIiwgInZlcnRpY2FsLXRleHQiLCAidGFibGUtY2FwdGlv
biIsICJzcXVhcmUtYnV0dG9uIiwgInNtYWxsLWNhcHRpb24iLCAKKyAgICAic2VtaS1leHBhbmRl
ZCIsICJvcHRpbWl6ZVNwZWVkIiwgIm5vLW9wZW4tcXVvdGUiLCAibWluLWludHJpbnNpYyIsICJt
ZW51bGlzdC10ZXh0IiwgCisgICAgImhpZ2hsaWdodHRleHQiLCAiYmlkaS1vdmVycmlkZSIsICJh
Y3RpdmVjYXB0aW9uIiwgIi13ZWJraXQtcmlnaHQiLCAidGhyZWVkc2hhZG93IiwgCisgICAgInRh
YmxlLWNvbHVtbiIsICJwbHVzLWxpZ2h0ZXIiLCAibWVkaWEtc2xpZGVyIiwgImxpbmUtdGhyb3Vn
aCIsICJpbmxpbmUtdGFibGUiLCAKKyAgICAiaW5saW5lLWJsb2NrIiwgImRvdC1kb3QtZGFzaCIs
ICJjdXJyZW50Y29sb3IiLCAiY29udGV4dC1tZW51IiwgImJ1dHRvbnNoYWRvdyIsIAorICAgICJi
dXR0b24tYmV2ZWwiLCAiYXBwd29ya3NwYWNlIiwgImFmdGVyLS1zcGFjZSIsICJhY3RpdmVib3Jk
ZXIiLCAiLXdlYmtpdC10ZXh0IiwgCisgICAgIi13ZWJraXQtbGluayIsICItd2Via2l0LWxlZnQi
LCAiLXdlYmtpdC1ncmFiIiwgIi13ZWJraXQtYm9keSIsICItd2Via2l0LWF1dG8iLCAKKyAgICAi
LXdhcC1tYXJxdWVlIiwgIndpbmRvd2ZyYW1lIiwgInZpc2libGVGaWxsIiwgInVwcGVyLXJvbWFu
IiwgInVwcGVyLWxhdGluIiwgCisgICAgInVwcGVyLWFscGhhIiwgInRleHQtYm90dG9tIiwgInNv
dXJjZS1vdmVyIiwgInNvdXJjZS1hdG9wIiwgInNraXAtLXNwYWNlIiwgCisgICAgInNlYXJjaGZp
ZWxkIiwgInB1c2gtYnV0dG9uIiwgInByZXNlcnZlLTNkIiwgInBsdXMtZGFya2VyIiwgInBhZGRp
bmctYm94IiwgCisgICAgIm53c2UtcmVzaXplIiwgIm5vdC1hbGxvd2VkIiwgIm5lc3ctcmVzaXpl
IiwgIm1lc3NhZ2UtYm94IiwgImxvd2VyLXJvbWFuIiwgCisgICAgImxvd2VyLWxhdGluIiwgImxv
d2VyLWdyZWVrIiwgImxvd2VyLWFscGhhIiwgImxpc3QtYnV0dG9uIiwgImlubGluZS1heGlzIiwg
CisgICAgImVhc2UtaW4tb3V0IiwgImNvbnRlbnQtYm94IiwgImNsb3NlLXF1b3RlIiwgImNhcHRp
b250ZXh0IiwgImFudGlhbGlhc2VkIiwgCisgICAgIi13ZWJraXQtYm94IiwgIndpbmRvd3RleHQi
LCAidGhyZWVkZmFjZSIsICJ0YWJsZS1jZWxsIiwgInN0YXR1cy1iYXIiLCAic291cmNlLW91dCIs
IAorICAgICJzbWFsbC1jYXBzIiwgInNhbnMtc2VyaWYiLCAicm93LXJlc2l6ZSIsICJyZWFkLXdy
aXRlIiwgIm9wZW4tcXVvdGUiLCAiaG9yaXpvbnRhbCIsIAorICAgICJjb250aW51b3VzIiwgImNv
bC1yZXNpemUiLCAiY2FwaXRhbGl6ZSIsICJidXR0b250ZXh0IiwgImJ1dHRvbmZhY2UiLCAiYnJl
YWstd29yZCIsIAorICAgICJib3JkZXItYm94IiwgImJsb2NrLWF4aXMiLCAiYmFja2dyb3VuZCIs
ICJhbGwtc2Nyb2xsIiwgInVwcGVyY2FzZSIsICJ1bmRlcmxpbmUiLCAKKyAgICAidGV4dGZpZWxk
IiwgInRhYmxlLXJvdyIsICJzdy1yZXNpemUiLCAic291cmNlLWluIiwgInNlLXJlc2l6ZSIsICJz
Y3JvbGxiYXIiLCAKKyAgICAicmVhZC1vbmx5IiwgIm53LXJlc2l6ZSIsICJucy1yZXNpemUiLCAi
bm8tcmVwZWF0IiwgIm5lLXJlc2l6ZSIsICJtb25vc3BhY2UiLCAKKyAgICAibG93ZXJjYXNlIiwg
Imxpc3QtaXRlbSIsICJsYW5kc2NhcGUiLCAiaW50cmluc2ljIiwgImhpZ2hsaWdodCIsICJldy1y
ZXNpemUiLCAKKyAgICAiY3Jvc3NoYWlyIiwgImNvbmRlbnNlZCIsICJicmVhay1hbGwiLCAiYmFj
a3dhcmRzIiwgImFsdGVybmF0ZSIsICJ4eC1zbWFsbCIsIAorICAgICJ4eC1sYXJnZSIsICJ3LXJl
c2l6ZSIsICJ2ZXJ0aWNhbCIsICJ0ZXh0YXJlYSIsICJ0ZXh0LXRvcCIsICJzZXBhcmF0ZSIsICJz
LXJlc2l6ZSIsIAorICAgICJyZXBlYXQteSIsICJyZXBlYXQteCIsICJyZWxhdGl2ZSIsICJwcm9n
cmVzcyIsICJwcmUtd3JhcCIsICJwcmUtbGluZSIsICJwb3J0cmFpdCIsIAorICAgICJvdmVybGlu
ZSIsICJuYXJyb3dlciIsICJuLXJlc2l6ZSIsICJtdWx0aXBsZSIsICJtZW51dGV4dCIsICJtZW51
bGlzdCIsICJsaXN0aXRlbSIsIAorICAgICJrYXRha2FuYSIsICJpbmZvdGV4dCIsICJpbmZpbml0
ZSIsICJoaXJhZ2FuYSIsICJnZW9yZ2lhbiIsICJmb3J3YXJkcyIsICJleHBhbmRlZCIsIAorICAg
ICJlbGxpcHNpcyIsICJlYXNlLW91dCIsICJlLXJlc2l6ZSIsICJkb3QtZGFzaCIsICJkb2N1bWVu
dCIsICJjb2xsYXBzZSIsICJjaGVja2JveCIsIAorICAgICJiYXNlbGluZSIsICJhcm1lbmlhbiIs
ICJhYnNvbHV0ZSIsICJ4LXNtYWxsIiwgIngtbGFyZ2UiLCAidmlzaWJsZSIsICJzdHJldGNoIiwg
CisgICAgInNtYWxsZXIiLCAicnVubmluZyIsICJyZXZlcnNlIiwgInBvaW50ZXIiLCAicGFpbnRl
ZCIsICJwYWRkaW5nIiwgIm92ZXJsYXkiLCAib3V0c2lkZSIsIAorICAgICJvYmxpcXVlIiwgIm5v
LWRyb3AiLCAibG9naWNhbCIsICJsaXN0Ym94IiwgImxpZ2h0ZXIiLCAianVzdGlmeSIsICJpbml0
aWFsIiwgImluaGVyaXQiLCAKKyAgICAiZmFudGFzeSIsICJlbGVtZW50IiwgImVhc2UtaW4iLCAi
ZGlzY2FyZCIsICJkZWZhdWx0IiwgImRlY2ltYWwiLCAiY3Vyc2l2ZSIsICJjb250ZW50IiwgCisg
ICAgImNvbnRhaW4iLCAiY29tcGFjdCIsICJjYXB0aW9uIiwgIndpbmRvdyIsICJ2aXN1YWwiLCAi
c3Ryb2tlIiwgInN0YXRpYyIsICJzcXVhcmUiLCAKKyAgICAic2luZ2xlIiwgInNjcm9sbCIsICJy
dW4taW4iLCAicmVwZWF0IiwgInBhdXNlZCIsICJvdXRzZXQiLCAibm93cmFwIiwgIm5vcm1hbCIs
IAorICAgICJtaWRkbGUiLCAibWVkaXVtIiwgImxpbmVhciIsICJsYXJnZXIiLCAiaXRhbGljIiwg
ImludmVydCIsICJpbnNpZGUiLCAiaW5saW5lIiwgCisgICAgImlnbm9yZSIsICJoaWdoZXIiLCAi
aGlkZGVuIiwgImhlYnJldyIsICJncm9vdmUiLCAiZG91YmxlIiwgImRvdHRlZCIsICJkYXNoZWQi
LCAKKyAgICAiY2lyY2xlIiwgImNlbnRlciIsICJidXR0b24iLCAiYm90dG9tIiwgImJvcmRlciIs
ICJib2xkZXIiLCAiYWx3YXlzIiwgIndpZGVyIiwgCisgICAgInRoaWNrIiwgInRhYmxlIiwgInN1
cGVyIiwgInN0YXJ0IiwgInNwYWNlIiwgInNvbGlkIiwgInNtYWxsIiwgInNsaWRlIiwgInNlcmlm
IiwgCisgICAgInJvdW5kIiwgInJpZ2h0IiwgInJpZGdlIiwgInJlc2V0IiwgInJhZGlvIiwgIm1h
dGNoIiwgImxvd2VyIiwgImxvY2FsIiwgImxpbmVzIiwgCisgICAgImxldmVsIiwgImxhcmdlIiwg
Imluc2V0IiwgImZpeGVkIiwgImVtYmVkIiwgImNyb3NzIiwgImNvdmVyIiwgImNsZWFyIiwgImNh
cmV0IiwgCisgICAgImJsb2NrIiwgImJsaW5rIiwgImJlbG93IiwgImF2b2lkIiwgImFsaWFzIiwg
ImFoZWFkIiwgImFib3ZlIiwgIndhdmUiLCAid2FpdCIsIAorICAgICJ0aGluIiwgInRleHQiLCAi
dGV4dCIsICJzbG93IiwgInNob3ciLCAibm9uZSIsICJtb3ZlIiwgIm1lbnUiLCAibG91ZCIsICJs
ZWZ0IiwgCisgICAgImljb24iLCAiaGlkZSIsICJoZWxwIiwgImhhbmQiLCAiZmxhdCIsICJmaWxs
IiwgImZhc3QiLCAiZWFzZSIsICJkb3duIiwgImRpc2MiLCAKKyAgICAiY3JvcCIsICJjb3B5Iiwg
ImNsaXAiLCAiY2VsbCIsICJib3RoIiwgImJvbGQiLCAiYXV0byIsICJ4b3IiLCAidG9wIiwgInN1
YiIsICJydGwiLCAKKyAgICAicHJlIiwgIm1peCIsICJsdHIiLCAiZW5kIiwgImFsbCIsICJ1cCJd
OworICAgIGZ1bmN0aW9uIHZhbHVlSWRlbnRBY3Rpb24odG9rZW4pIHsKKyAgICAgICAgdGhpcy5j
dXJzb3IgKz0gdG9rZW4ubGVuZ3RoOworICAgICAgICBpZiAodmFsdWVLZXl3b3Jkcy5pbmRleE9m
KHRva2VuKSA9PT0gLTEpCisgICAgICAgICAgICB0aGlzLm5vblRva2VuICs9IHRva2VuOworICAg
ICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRoaXMuYXBwZW5kTm9uVG9rZW4uY2FsbCh0aGlzKTsK
KyAgICAgICAgICAgIHRoaXMubGluZUZyYWdtZW50LmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlU3Bh
bih0b2tlbiwgIndlYmtpdC1jc3Mta2V5d29yZCIpKTsKICAgICAgICAgfQorICAgIH0KIAotICAg
ICAgICBsaW5lLl9pblNlbGVjdG9yID0gaW5TZWxlY3RvcjsKLSAgICAgICAgbGluZS5faW5BdFJ1
bGVCbG9jayA9IGluQXRSdWxlQmxvY2s7Ci0gICAgICAgIGxpbmUuX2F0UnVsZVN0YXJ0ZWQgPSBh
dFJ1bGVTdGFydGVkOwotICAgICAgICBsaW5lLl9hdFJ1bGVJc1NlbGVjdG9yID0gYXRSdWxlSXNT
ZWxlY3RvcjsKLQotICAgICAgICBpZiAodG1wIDwgY29kZS5sZW5ndGgpCi0gICAgICAgICAgICBs
aW5lLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNvZGUuc3Vic3RyaW5nKHRt
cCwgaSkpKTsKKyAgICBmdW5jdGlvbiBudW12YWx1ZUFjdGlvbih0b2tlbikKKyAgICB7CisgICAg
ICAgIHRoaXMuY3Vyc29yICs9IHRva2VuLmxlbmd0aDsKKyAgICAgICAgdGhpcy5saW5lRnJhZ21l
bnQuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVTcGFuKHRva2VuLCAid2Via2l0LWNzcy1udW1iZXIi
KSk7CisgICAgfQorICAgIAorICAgIGZ1bmN0aW9uIGRlY2xhcmF0aW9uU2VtaWNvbG9uQWN0aW9u
KHRva2VuKQorICAgIHsKKyAgICAgICAgdGhpcy5jdXJzb3IgKz0gdG9rZW4ubGVuZ3RoOworICAg
ICAgICB0aGlzLm5vblRva2VuICs9IHRva2VuOworICAgICAgICB0aGlzLmxleFN0YXRlID0gdGhp
cy5MZXhTdGF0ZS5EZWNsYXJhdGlvblByb3BlcnR5OworICAgIH0KKyAgICAKKyAgICBmdW5jdGlv
biB1cmxBY3Rpb24odG9rZW4pCisgICAgeworICAgICAgICB0aGlzLmN1cnNvciArPSB0b2tlbi5s
ZW5ndGg7CisgICAgICAgIHRoaXMubGluZUZyYWdtZW50LmFwcGVuZENoaWxkKHRoaXMuY3JlYXRl
U3Bhbih0b2tlbiwgIndlYmtpdC1jc3MtdXJsIikpOworICAgIH0KKyAgICAKKyAgICBmdW5jdGlv
biBzdHJpbmdBY3Rpb24odG9rZW4pCisgICAgeworICAgICAgICB0aGlzLmN1cnNvciArPSB0b2tl
bi5sZW5ndGg7CisgICAgICAgIHRoaXMubGluZUZyYWdtZW50LmFwcGVuZENoaWxkKHRoaXMuY3Jl
YXRlU3Bhbih0b2tlbiwgIndlYmtpdC1jc3Mtc3RyaW5nIikpOworICAgIH0KKyAgICAKKyAgICBm
dW5jdGlvbiBjb2xvckFjdGlvbih0b2tlbikKKyAgICB7CisgICAgICAgIHRoaXMuY3Vyc29yICs9
IHRva2VuLmxlbmd0aDsKKyAgICAgICAgdGhpcy5saW5lRnJhZ21lbnQuYXBwZW5kQ2hpbGQodGhp
cy5jcmVhdGVTcGFuKHRva2VuLCAid2Via2l0LWNzcy1jb2xvciIpKTsKKyAgICB9CisgICAgCisg
ICAgZnVuY3Rpb24gaW1wb3J0YW50QWN0aW9uKHRva2VuKQorICAgIHsKKyAgICAgICAgdGhpcy5j
dXJzb3IgKz0gdG9rZW4ubGVuZ3RoOworICAgICAgICB0aGlzLmxpbmVGcmFnbWVudC5hcHBlbmRD
aGlsZCh0aGlzLmNyZWF0ZVNwYW4odG9rZW4sICJ3ZWJraXQtY3NzLWltcG9ydGFudCIpKTsKKyAg
ICB9CisgICAgCisgICAgZnVuY3Rpb24gYXRNZWRpYUFjdGlvbih0b2tlbikKKyAgICB7CisgICAg
ICAgIHRoaXMuY3Vyc29yICs9IHRva2VuLmxlbmd0aDsKKyAgICAgICAgdGhpcy5saW5lRnJhZ21l
bnQuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVTcGFuKHRva2VuLCAid2Via2l0LWNzcy1hdC1ydWxl
IikpOworICAgICAgICB0aGlzLmxleFN0YXRlID0gdGhpcy5MZXhTdGF0ZS5BdE1lZGlhOworICAg
IH0KKyAgICAKKyAgICBmdW5jdGlvbiBzdGFydEF0TWVkaWFCbG9ja0FjdGlvbih0b2tlbikKKyAg
ICB7CisgICAgICAgIHRoaXMuY3Vyc29yICs9IHRva2VuLmxlbmd0aDsKKyAgICAgICAgdGhpcy5u
b25Ub2tlbiArPSB0b2tlbjsKKyAgICAgICAgdGhpcy5sZXhTdGF0ZSA9IHRoaXMuTGV4U3RhdGUu
SW5pdGlhbDsKKyAgICB9CisgICAgCisgICAgZnVuY3Rpb24gYXRLZXlmcmFtZXNBY3Rpb24odG9r
ZW4pCisgICAgeworICAgICAgICB0aGlzLmN1cnNvciArPSB0b2tlbi5sZW5ndGg7CisgICAgICAg
IHRoaXMubGluZUZyYWdtZW50LmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlU3Bhbih0b2tlbiwgIndl
YmtpdC1jc3MtYXQtcnVsZSIpKTsKKyAgICAgICAgdGhpcy5sZXhTdGF0ZSA9IHRoaXMuTGV4U3Rh
dGUuQXRLZXlmcmFtZXM7CisgICAgfQorICAgIAorICAgIGZ1bmN0aW9uIHN0YXJ0QXRLZXlmcmFt
ZXNCbG9ja0FjdGlvbih0b2tlbikKKyAgICB7CisgICAgICAgIHRoaXMuY3Vyc29yICs9IHRva2Vu
Lmxlbmd0aDsKKyAgICAgICAgdGhpcy5ub25Ub2tlbiArPSB0b2tlbjsKKyAgICAgICAgdGhpcy5s
ZXhTdGF0ZSA9IHRoaXMuTGV4U3RhdGUuSW5pdGlhbDsKKyAgICB9CisgICAgCisgICAgZnVuY3Rp
b24gYXRSdWxlQWN0aW9uKHRva2VuKSB7CisgICAgICAgIHRoaXMuY3Vyc29yICs9IHRva2VuLmxl
bmd0aDsKKyAgICAgICAgdGhpcy5saW5lRnJhZ21lbnQuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVT
cGFuKHRva2VuLCAid2Via2l0LWNzcy1hdC1ydWxlIikpOworICAgICAgICB0aGlzLmxleFN0YXRl
ID0gdGhpcy5MZXhTdGF0ZS5BdFJ1bGU7CisgICAgfQorICAgIAorICAgIGZ1bmN0aW9uIGVuZEF0
UnVsZUFjdGlvbih0b2tlbikgeworICAgICAgICB0aGlzLmN1cnNvciArPSB0b2tlbi5sZW5ndGg7
CisgICAgICAgIHRoaXMubm9uVG9rZW4gKz0gdG9rZW47CisgICAgICAgIHRoaXMubGV4U3RhdGUg
PSB0aGlzLkxleFN0YXRlLkluaXRpYWw7CisgICAgfQorICAgIAorICAgIGZ1bmN0aW9uIHN0YXJ0
QXRSdWxlQmxvY2tBY3Rpb24odG9rZW4pCisgICAgeworICAgICAgICB0aGlzLmN1cnNvciArPSB0
b2tlbi5sZW5ndGg7CisgICAgICAgIHRoaXMubm9uVG9rZW4gKz0gdG9rZW47CisgICAgICAgIHRo
aXMubGV4U3RhdGUgPSB0aGlzLkxleFN0YXRlLkRlY2xhcmF0aW9uUHJvcGVydHk7CisgICAgfQor
ICAgIAorICAgIGNvbnN0IG1lZGlhVHlwZXMgPSBbImFsbCIsICJhdXJhbCIsICJicmFpbGxlIiwg
ImVtYm9zc2VkIiwgImhhbmRoZWxkIiwgInByaW50IiwgInByb2plY3Rpb24iLCAic2NyZWVuIiwg
InR0eSIsICJ0diJdOworICAgIGZ1bmN0aW9uIGF0UnVsZUlkZW50QWN0aW9uKHRva2VuKSB7Cisg
ICAgICAgIHRoaXMuY3Vyc29yICs9IHRva2VuLmxlbmd0aDsKKyAgICAgICAgaWYgKG1lZGlhVHlw
ZXMuaW5kZXhPZih0b2tlbikgPT09IC0xKQorICAgICAgICAgICAgdGhpcy5ub25Ub2tlbiArPSB0
b2tlbjsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0aGlzLmFwcGVuZE5vblRva2VuLmNh
bGwodGhpcyk7CisgICAgICAgICAgICB0aGlzLmxpbmVGcmFnbWVudC5hcHBlbmRDaGlsZCh0aGlz
LmNyZWF0ZVNwYW4odG9rZW4sICJ3ZWJraXQtY3NzLWtleXdvcmQiKSk7CisgICAgICAgIH0KICAg
ICB9CiB9CiAKLVdlYkluc3BlY3Rvci5DU1NTb3VyY2VTeW50YXhIaWdobGlnaGVyLnByb3RvdHlw
ZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuU291cmNlU3ludGF4SGlnaGxpZ2hlci5wcm90b3R5
cGU7CitXZWJJbnNwZWN0b3IuQ1NTU291cmNlU3ludGF4SGlnaGxpZ2h0ZXIucHJvdG90eXBlLl9f
cHJvdG9fXyA9IFdlYkluc3BlY3Rvci5Tb3VyY2VTeW50YXhIaWdobGlnaHRlci5wcm90b3R5cGU7
CiAKIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlU3ludGF4SGlnaGxpZ2h0ZXIgPSBmdW5j
dGlvbih0YWJsZSwgc291cmNlRnJhbWUpIHsKLSAgICBXZWJJbnNwZWN0b3IuU291cmNlU3ludGF4
SGlnaGxpZ2hlci5jYWxsKHRoaXMsIHRhYmxlLCBzb3VyY2VGcmFtZSk7CisgICAgV2ViSW5zcGVj
dG9yLlNvdXJjZVN5bnRheEhpZ2hsaWdodGVyLmNhbGwodGhpcywgdGFibGUsIHNvdXJjZUZyYW1l
KTsKIAogICAgIHRoaXMuTGV4U3RhdGUgPSB7CiAgICAgICAgIEluaXRpYWw6IDEsCkBAIC0xMDYy
LDcgKzE0MjAsNyBAQCBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZVN5bnRheEhpZ2hsCiAg
ICAgICAgIH0sIHsKICAgICAgICAgICAgIHBhdHRlcm46IC9eKD86XC89PykvLAogICAgICAgICAg
ICAgYWN0aW9uOiBkaXZQdW5jdHVhdG9yQWN0aW9uLAotICAgICAgICAgICAgc3RhdGVDb25kaXRp
b246IHRoaXMuTGV4U3RhdGUuRGl2aXNpb25BbGxvd2VkLAorICAgICAgICAgICAgbGV4U3RhdGVD
b25kaXRpb246IHRoaXMuTGV4U3RhdGUuRGl2aXNpb25BbGxvd2VkLAogICAgICAgICAgICAgZG9u
dEFwcGVuZE5vblRva2VuOiB0cnVlCiAgICAgICAgIH0sIHsKICAgICAgICAgICAgIHBhdHRlcm46
IC9eKD86XC8oPzooPzpcXC4pfFteXFwqXC9dKSg/Oig/OlxcLil8W15cXC9dKSpcLyg/Oig/Olth
LXpBLVpdfFskX118XFwoPzp1WzAtOWEtZkEtRl1bMC05YS1mQS1GXVswLTlhLWZBLUZdWzAtOWEt
ZkEtRl0pKXxbMC05XSkqKS8sCkBAIC0xMTk4LDcgKzE1NTYsOCBAQCBXZWJJbnNwZWN0b3IuSmF2
YVNjcmlwdFNvdXJjZVN5bnRheEhpZ2hsCiAgICAgICAgIGNvbnN0IGtleXdvcmRzID0gWyJudWxs
IiwgInRydWUiLCAiZmFsc2UiLCAiYnJlYWsiLCAiY2FzZSIsICJjYXRjaCIsICJjb25zdCIsICJk
ZWZhdWx0IiwgImZpbmFsbHkiLCAiZm9yIiwgImluc3RhbmNlb2YiLCAibmV3IiwgInZhciIsICJj
b250aW51ZSIsICJmdW5jdGlvbiIsICJyZXR1cm4iLCAidm9pZCIsICJkZWxldGUiLCAiaWYiLCAi
dGhpcyIsICJkbyIsICJ3aGlsZSIsICJlbHNlIiwgImluIiwgInN3aXRjaCIsICJ0aHJvdyIsICJ0
cnkiLCAidHlwZW9mIiwgIndpdGgiLCAiZGVidWdnZXIiLCAiY2xhc3MiLCAiZW51bSIsICJleHBv
cnQiLCAiZXh0ZW5kcyIsICJpbXBvcnQiLCAic3VwZXIiLCAiZ2V0IiwgInNldCJdOwogICAgICAg
ICB0aGlzLmN1cnNvciArPSB0b2tlbi5sZW5ndGg7CiAgICAgICAgIGlmIChrZXl3b3Jkcy5pbmRl
eE9mKHRva2VuKSA9PT0gLTEpIHsKLSAgICAgICAgICAgIHRoaXMubm9uVG9rZW4gKz0gdG9rZW47
CisgICAgICAgICAgICB0aGlzLmFwcGVuZE5vblRva2VuKCk7CisgICAgICAgICAgICB0aGlzLmxp
bmVGcmFnbWVudC5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVNwYW4odG9rZW4sICJ3ZWJraXQtamF2
YXNjcmlwdC1pZGVudCIpKTsKICAgICAgICAgICAgIHRoaXMubGV4U3RhdGUgPSB0aGlzLkxleFN0
YXRlLkRpdmlzaW9uQWxsb3dlZDsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHRoaXMu
YXBwZW5kTm9uVG9rZW4oKTsKQEAgLTEyMjksMTMyICsxNTg4LDQgQEAgV2ViSW5zcGVjdG9yLkph
dmFTY3JpcHRTb3VyY2VTeW50YXhIaWdobAogICAgIH0KIH0KIAotV2ViSW5zcGVjdG9yLkphdmFT
Y3JpcHRTb3VyY2VTeW50YXhIaWdobGlnaHRlci5wcm90b3R5cGUgPSB7Ci0gICAgcHJvY2Vzczog
ZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgLy8gU3BsaXQgdXAgdGhlIHdvcmsgaW50byBjaHVu
a3Mgc28gd2UgZG9uJ3QgYmxvY2sgdGhlCi0gICAgICAgIC8vIFVJIHRocmVhZCB3aGlsZSBwcm9j
ZXNzaW5nLgotCi0gICAgICAgIHZhciByb3dzID0gdGhpcy50YWJsZS5yb3dzOwotICAgICAgICB2
YXIgcm93c0xlbmd0aCA9IHJvd3MubGVuZ3RoOwotICAgICAgICBjb25zdCB0b2tlbnNQZXJDaHVu
ayA9IDEwMDsKLSAgICAgICAgY29uc3QgbGluZUxlbmd0aExpbWl0ID0gMjAwMDA7Ci0gICAgICAg
IAotICAgICAgICB2YXIgYm91bmRQcm9jZXNzQ2h1bmsgPSBwcm9jZXNzQ2h1bmsuYmluZCh0aGlz
KTsKLSAgICAgICAgdmFyIHByb2Nlc3NDaHVua0ludGVydmFsID0gc2V0SW50ZXJ2YWwoYm91bmRQ
cm9jZXNzQ2h1bmssIDI1KTsKLSAgICAgICAgYm91bmRQcm9jZXNzQ2h1bmsoKTsKLSAgICAgICAg
Ci0gICAgICAgIGZ1bmN0aW9uIHByb2Nlc3NDaHVuaygpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgdG9rZW5zUGVyQ2h1bms7IGkrKykgewotICAgICAgICAgICAg
ICAgIGlmICh0aGlzLmN1cnNvciA+PSB0aGlzLmxpbmVDb2RlLmxlbmd0aCkKLSAgICAgICAgICAg
ICAgICAgICAgbW92ZVRvTmV4dExpbmUuY2FsbCh0aGlzKTsKLSAgICAgICAgICAgICAgICBpZiAo
dGhpcy5saW5lSW5kZXggPj0gcm93c0xlbmd0aCkgewotICAgICAgICAgICAgICAgICAgICB0aGlz
LnNvdXJjZUZyYW1lLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycygic3ludGF4IGhpZ2hsaWdodGlu
ZyBjb21wbGV0ZSIpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1cnNvciA+IGxpbmVMZW5ndGhMaW1pdCkg
ewotICAgICAgICAgICAgICAgICAgICB2YXIgY29kZUZyYWdtZW50ID0gdGhpcy5saW5lQ29kZS5z
dWJzdHJpbmcodGhpcy5jdXJzb3IpOwotICAgICAgICAgICAgICAgICAgICB0aGlzLm5vblRva2Vu
ICs9IGNvZGVGcmFnbWVudDsKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJzb3IgKz0gY29k
ZUZyYWdtZW50Lmxlbmd0aDsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICB0
aGlzLmxleCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBm
dW5jdGlvbiBtb3ZlVG9OZXh0TGluZSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRoaXMuYXBw
ZW5kTm9uVG9rZW4oKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgdmFyIHJvdyA9IHJvd3Nb
dGhpcy5saW5lSW5kZXhdOwotICAgICAgICAgICAgdmFyIGxpbmUgPSByb3cgPyByb3cuY2VsbHNb
MV0gOiBudWxsOwotICAgICAgICAgICAgaWYgKGxpbmUgJiYgdGhpcy5saW5lRnJhZ21lbnQpIHsK
LSAgICAgICAgICAgICAgICBFbGVtZW50LnByb3RvdHlwZS5yZW1vdmVDaGlsZHJlbi5jYWxsKGxp
bmUpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGxpbmUuYXBwZW5kQ2hpbGQo
dGhpcy5saW5lRnJhZ21lbnQpOwotICAgICAgICAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2VCdWJi
bGUpCi0gICAgICAgICAgICAgICAgICAgIGxpbmUuYXBwZW5kQ2hpbGQodGhpcy5tZXNzYWdlQnVi
YmxlKTsKLSAgICAgICAgICAgICAgICB0aGlzLmxpbmVGcmFnbWVudCA9IG51bGw7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICB0aGlzLmxpbmVJbmRleCsrOwotICAgICAgICAgICAgaWYgKHRo
aXMubGluZUluZGV4ID49IHJvd3NMZW5ndGggJiYgcHJvY2Vzc0NodW5rSW50ZXJ2YWwpIHsKLSAg
ICAgICAgICAgICAgICBjbGVhckludGVydmFsKHByb2Nlc3NDaHVua0ludGVydmFsKTsKLSAgICAg
ICAgICAgICAgICB0aGlzLnNvdXJjZUZyYW1lLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycygic3lu
dGF4IGhpZ2hsaWdodGluZyBjb21wbGV0ZSIpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIHJvdyA9IHJvd3NbdGhpcy5saW5lSW5kZXhdOwotICAg
ICAgICAgICAgbGluZSA9IHJvdyA/IHJvdy5jZWxsc1sxXSA6IG51bGw7Ci0gICAgICAgICAgICAK
LSAgICAgICAgICAgIHRoaXMubWVzc2FnZUJ1YmJsZSA9IG51bGw7Ci0gICAgICAgICAgICBpZiAo
bGluZS5sYXN0Q2hpbGQgJiYgbGluZS5sYXN0Q2hpbGQubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVO
VF9OT0RFICYmIGxpbmUubGFzdENoaWxkLmhhc1N0eWxlQ2xhc3MoIndlYmtpdC1odG1sLW1lc3Nh
Z2UtYnViYmxlIikpIHsKLSAgICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2VCdWJibGUgPSBsaW5l
Lmxhc3RDaGlsZDsKLSAgICAgICAgICAgICAgICBsaW5lLnJlbW92ZUNoaWxkKHRoaXMubWVzc2Fn
ZUJ1YmJsZSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHRoaXMubGluZUNvZGUgPSBs
aW5lLnRleHRDb250ZW50OwotICAgICAgICAgICAgdGhpcy5saW5lRnJhZ21lbnQgPSBkb2N1bWVu
dC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAgICAgICAgICB0aGlzLmN1cnNvciA9IDA7
Ci0gICAgICAgICAgICBpZiAoIWxpbmUpCi0gICAgICAgICAgICAgICAgbW92ZVRvTmV4dExpbmUo
KTsKLSAgICAgICAgfQotICAgIH0sCi0gICAgCi0gICAgbGV4OiBmdW5jdGlvbigpCi0gICAgewot
ICAgICAgICB2YXIgdG9rZW4gPSBudWxsOwotICAgICAgICB2YXIgY29kZUZyYWdtZW50ID0gdGhp
cy5saW5lQ29kZS5zdWJzdHJpbmcodGhpcy5jdXJzb3IpOwotICAgICAgICAKLSAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCB0aGlzLnJ1bGVzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICB2
YXIgcnVsZSA9IHRoaXMucnVsZXNbaV07Ci0gICAgICAgICAgICB2YXIgcnVsZUNvbnRpbnVlU3Rh
dGVDb25kaXRpb24gPSB0eXBlb2YgcnVsZS5jb250aW51ZVN0YXRlQ29uZGl0aW9uID09PSAidW5k
ZWZpbmVkIiA/IHRoaXMuQ29udGludWVTdGF0ZS5Ob25lIDogcnVsZS5jb250aW51ZVN0YXRlQ29u
ZGl0aW9uOwotICAgICAgICAgICAgaWYgKHRoaXMuY29udGludWVTdGF0ZSA9PT0gcnVsZUNvbnRp
bnVlU3RhdGVDb25kaXRpb24pIHsKLSAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJ1bGUuc3Rh
dGVDb25kaXRpb24gIT09ICJ1bmRlZmluZWQiICYmIHRoaXMubGV4U3RhdGUgIT09IHJ1bGUuc3Rh
dGVDb25kaXRpb24pCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAg
ICAgIHZhciBtYXRjaCA9IHJ1bGUucGF0dGVybi5leGVjKGNvZGVGcmFnbWVudCk7Ci0gICAgICAg
ICAgICAgICAgaWYgKG1hdGNoKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRva2VuID0gbWF0Y2hb
MF07Ci0gICAgICAgICAgICAgICAgICAgIGlmICh0b2tlbikgewotICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKCFydWxlLmRvbnRBcHBlbmROb25Ub2tlbikKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0aGlzLmFwcGVuZE5vblRva2VuKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gcnVsZS5hY3Rpb24uY2FsbCh0aGlzLCB0b2tlbik7Ci0gICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAg
dGhpcy5ub25Ub2tlbiArPSBjb2RlRnJhZ21lbnRbMF07Ci0gICAgICAgIHRoaXMuY3Vyc29yKys7
Ci0gICAgfSwKLSAgICAKLSAgICBhcHBlbmROb25Ub2tlbjogZnVuY3Rpb24gKCkKLSAgICB7Ci0g
ICAgICAgIGlmICh0aGlzLm5vblRva2VuLmxlbmd0aCA+IDApIHsKLSAgICAgICAgICAgIHRoaXMu
bGluZUZyYWdtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRoaXMubm9u
VG9rZW4pKTsKLSAgICAgICAgICAgIHRoaXMubm9uVG9rZW4gPSAiIjsKLSAgICAgICAgfQotICAg
IH0sCi0gICAgCi0gICAgc3ludGF4SGlnaGxpZ2h0Tm9kZTogZnVuY3Rpb24obm9kZSkKLSAgICB7
Ci0gICAgICAgIHRoaXMubGluZUNvZGUgPSBub2RlLnRleHRDb250ZW50OwotICAgICAgICB0aGlz
LmxpbmVGcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAgICAg
ICAgdGhpcy5jdXJzb3IgPSAwOwotICAgICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICAgICAg
aWYgKHRoaXMuY3Vyc29yID49IHRoaXMubGluZUNvZGUubGVuZ3RoKSB7Ci0gICAgICAgICAgICAg
ICAgdmFyIGNvZGVGcmFnbWVudCA9IHRoaXMubGluZUNvZGUuc3Vic3RyaW5nKHRoaXMuY3Vyc29y
KTsKLSAgICAgICAgICAgICAgICB0aGlzLm5vblRva2VuICs9IGNvZGVGcmFnbWVudDsKLSAgICAg
ICAgICAgICAgICB0aGlzLmN1cnNvciArPSBjb2RlRnJhZ21lbnQubGVuZ3RoOwotICAgICAgICAg
ICAgICAgIHRoaXMuYXBwZW5kTm9uVG9rZW4oKTsKLSAgICAgICAgICAgICAgICB3aGlsZSAobm9k
ZS5maXJzdENoaWxkKQotICAgICAgICAgICAgICAgICAgICBub2RlLnJlbW92ZUNoaWxkKG5vZGUu
Zmlyc3RDaGlsZCk7Ci0gICAgICAgICAgICAgICAgbm9kZS5hcHBlbmRDaGlsZCh0aGlzLmxpbmVG
cmFnbWVudCk7Ci0gICAgICAgICAgICAgICAgdGhpcy5saW5lRnJhZ21lbnQgPW51bGw7Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB0aGlzLmxl
eCgpOwotICAgICAgICB9Ci0gICAgfQotfQotCi1XZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJj
ZVN5bnRheEhpZ2hsaWdodGVyLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuU291
cmNlU3ludGF4SGlnaGxpZ2hlci5wcm90b3R5cGU7CitXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNv
dXJjZVN5bnRheEhpZ2hsaWdodGVyLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3Iu
U291cmNlU3ludGF4SGlnaGxpZ2h0ZXIucHJvdG90eXBlOwpJbmRleDogV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL2luc3BlY3RvclN5bnRheEhpZ2hsaWdodC5jc3MKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3RvclN5bnRheEhpZ2hsaWdodC5jc3MJ
KHJldmlzaW9uIDUwMzk2KQorKysgV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rv
clN5bnRheEhpZ2hsaWdodC5jc3MJKHdvcmtpbmcgY29weSkKQEAgLTI2LDMzICsyNiwyOSBAQAog
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KICAqLwogCi0ud2Via2l0LWNzcy1jb21tZW50IHsgCi0gICAgY29sb3I6IHJn
YigwLCAxMTYsIDApOwotfQotCi0ud2Via2l0LWNzcy1zdHJpbmcsIC53ZWJraXQtY3NzLWtleXdv
cmQsIC53ZWJraXQtY3NzLXVuaXQgewotICAgIGNvbG9yOiByZ2IoNywgMTQ0LCAxNTQpOwotfQot
Ci0ud2Via2l0LWNzcy1udW1iZXIgewotICAgIGNvbG9yOiByZ2IoNTAsIDAsIDI1NSk7Ci19Ci0K
LS53ZWJraXQtY3NzLXByb3BlcnR5LCAud2Via2l0LWNzcy1hdC1ydWxlIHsKLSAgICBjb2xvcjog
cmdiKDIwMCwgMCwgMCk7Ci19Ci0KLS53ZWJraXQtY3NzLXVybCB7Ci0gICAgY29sb3I6IHJnYigw
LCAwLCAwKTsKLX0KLQotLndlYmtpdC1jc3Mtc2VsZWN0b3IgewotICAgIGNvbG9yOiByZ2IoMCwg
MCwgMCk7Ci19Ci0KLS53ZWJraXQtY3NzLXBzZXVkby1jbGFzcyB7Ci0gICAgY29sb3I6IHJnYigx
MjgsIDEyOCwgMTI4KTsKLX0KKyAud2Via2l0LWNzcy1jb21tZW50IHsgCisgICAgIGNvbG9yOiBy
Z2IoMCwgMTE2LCAwKTsKKyB9CisKKyAud2Via2l0LWNzcy11cmwsIC53ZWJraXQtY3NzLWNvbG9y
LCAud2Via2l0LWNzcy1zdHJpbmcsIC53ZWJraXQtY3NzLWtleXdvcmQgeworICAgICBjb2xvcjog
cmdiKDcsIDE0NCwgMTU0KTsKKyB9CisKKyAud2Via2l0LWNzcy1udW1iZXIgeworICAgICBjb2xv
cjogcmdiKDUwLCAwLCAyNTUpOworIH0KKworIC53ZWJraXQtY3NzLXByb3BlcnR5LCAud2Via2l0
LWNzcy1hdC1ydWxlIHsKKyAgICAgY29sb3I6IHJnYigyMDAsIDAsIDApOworIH0KKworIC53ZWJr
aXQtY3NzLXNlbGVjdG9yIHsKKyAgICAgcmdiKDAsIDAsIDApOworIH0KKworIC53ZWJraXQtY3Nz
LWltcG9ydGFudCB7CisgICAgIGNvbG9yOiByZ2IoMjAwLCAwLCAxODApOworIH0KIAogLndlYmtp
dC1qYXZhc2NyaXB0LWNvbW1lbnQgewogICAgIGNvbG9yOiByZ2IoMCwgMTE2LCAwKTsKSW5kZXg6
IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDUwMzk3KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMTEtMDEgIEtlaXNoaSBIYXR0b3JpICA8Y2FzZXku
aGF0dG9yaUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUmV3cml0ZSBDU1NTb3VyY2VTeW50YXhIaWdobGln
aHRlciBzbyBpdCBzaGFyZXMgbW9yZSBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zMDkwNworCisgICAgICAgICogaW5zcGVjdG9yL2Nzcy1zeW50
YXgtaGlnaGxpZ2h0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Nz
cy1zeW50YXgtaGlnaGxpZ2h0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9qYXZh
c2NyaXB0LXN5bnRheC1oaWdobGlnaHQtZXhwZWN0ZWQudHh0OgorCiAyMDA5LTExLTAyICBSb2xh
bmQgU3RlaW5lciAgPHJvbGFuZHN0ZWluZXJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IERhdmUgSHlhdHQuCkluZGV4OiBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzLXN5bnRh
eC1oaWdobGlnaHQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2luc3Bl
Y3Rvci9jc3Mtc3ludGF4LWhpZ2hsaWdodC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzLXN5bnRheC1oaWdobGlnaHQtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDExIEBACitUZXN0cyB0aGF0IENTU1NvdXJjZVN5bnRheEhp
Z2hsaWdodGVyIGRldGVjdHMgdGhlIHRva2Vucy4KKword2Via2l0LWNzcy1zZWxlY3Rvcgord2Vi
a2l0LWNzcy1zZWxlY3RvciwqLHdlYmtpdC1jc3Mtc2VsZWN0b3IKK3dlYmtpdC1jc3MtYXQtcnVs
ZSwqLHdlYmtpdC1jc3MtdXJsLCoKK3dlYmtpdC1jc3MtYXQtcnVsZSwqLHdlYmtpdC1jc3MtdXJs
LCosd2Via2l0LWNzcy1rZXl3b3JkLCosd2Via2l0LWNzcy1rZXl3b3JkLCoKK3dlYmtpdC1jc3Mt
YXQtcnVsZSwqLHdlYmtpdC1jc3Mta2V5d29yZCwqLHdlYmtpdC1jc3Mtc2VsZWN0b3IsKix3ZWJr
aXQtY3NzLXByb3BlcnR5LCosd2Via2l0LWNzcy1jb2xvciwqCit3ZWJraXQtY3NzLWF0LXJ1bGUs
Kix3ZWJraXQtY3NzLXByb3BlcnR5LCoKK3dlYmtpdC1jc3Mtc2VsZWN0b3IsKix3ZWJraXQtY3Nz
LXByb3BlcnR5LCosd2Via2l0LWNzcy1jb2xvciwqCit3ZWJraXQtY3NzLXNlbGVjdG9yLCosd2Vi
a2l0LWNzcy1wcm9wZXJ0eSwqLHdlYmtpdC1jc3MtY29sb3IsKix3ZWJraXQtY3NzLWltcG9ydGFu
dCwqCisKSW5kZXg6IExheW91dFRlc3RzL2luc3BlY3Rvci9jc3Mtc3ludGF4LWhpZ2hsaWdodC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2luc3BlY3Rvci9jc3Mtc3ludGF4LWhpZ2hs
aWdodC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy1zeW50
YXgtaGlnaGxpZ2h0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjYgQEAKKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iZXZhbHVhdGUtaW4tZnJvbnRlbmQuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KKworZnVuY3Rpb24gZG9pdCgpCit7CisgICAgZnVuY3Rpb24gY2FsbGJhY2socmVz
dWx0KQorICAgIHsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXN1bHQubGVuZ3RoOyAr
K2kpCisgICAgICAgICAgICBvdXRwdXQocmVzdWx0W2ldKTsKKyAgICAgICAgbm90aWZ5RG9uZSgp
OworICAgIH0KKyAgICBldmFsdWF0ZUluV2ViSW5zcGVjdG9yKCJkb2l0QW5kRHVtcCIsIGNhbGxi
YWNrKTsKK30KKworPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0ib25sb2FkKCki
PgorPHA+CitUZXN0cyB0aGF0IENTU1NvdXJjZVN5bnRheEhpZ2hsaWdodGVyIGRldGVjdHMgdGhl
IHRva2Vucy4KKzwvcD4KKworPGRpdiBpZD0iZnJvbnRlbmQtc2NyaXB0IiBzdHlsZT0iZGlzcGxh
eTpub25lIj4KK2Z1bmN0aW9uIGRvaXRBbmREdW1wKHRlc3RDb250cm9sbGVyKSB7CisgICAgdGVz
dENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
CisgICAgICAgIHZhciByZXN1bHQgPSBbXTsKKyAgICAgICAgCisgICAgICAgIHJlc3VsdC5wdXNo
KGR1bXBTeW50YXhIaWdobGlnaHQoImFbaHJlZj0nLyddIikpOworICAgICAgICByZXN1bHQucHVz
aChkdW1wU3ludGF4SGlnaGxpZ2h0KCIjY29udGVudCA+IGE6aG92ZXIiKSk7CisgICAgICAgIHJl
c3VsdC5wdXNoKGR1bXBTeW50YXhIaWdobGlnaHQoIkBpbXBvcnQgdXJsKHN0eWxlLmNzcyk7Iikp
OworICAgICAgICByZXN1bHQucHVzaChkdW1wU3ludGF4SGlnaGxpZ2h0KCJAaW1wb3J0IHVybChc
InN0eWxlLmNzc1wiKSBwcm9qZWN0aW9uLCB0djsiKSk7CisgICAgICAgIHJlc3VsdC5wdXNoKGR1
bXBTeW50YXhIaWdobGlnaHQoIkBtZWRpYSBzY3JlZW4geyBib2R5IHsgY29sb3I6IHJlZDsgfSB9
IikpOworICAgICAgICByZXN1bHQucHVzaChkdW1wU3ludGF4SGlnaGxpZ2h0KCJAZm9udC1mYWNl
IHsgZm9udC1mYW1pbHk6IE15SGVsdmV0aWNhOyB9IikpOworICAgICAgICByZXN1bHQucHVzaChk
dW1wU3ludGF4SGlnaGxpZ2h0KCJwIHsgY29sb3I6IGNvbG9yOyByZWQ6IHJlZDsgfSIpKTsKKyAg
ICAgICAgcmVzdWx0LnB1c2goZHVtcFN5bnRheEhpZ2hsaWdodCgicCB7IGNvbG9yOiByZWQgIWlt
cG9ydGFudDsgfSIpKTsKKyAgICAgICAgCisgICAgICAgIHRlc3RDb250cm9sbGVyLm5vdGlmeURv
bmUocmVzdWx0KTsKKyAgICAgICAgCisgICAgfSwgMCk7Cit9CitmdW5jdGlvbiBkdW1wU3ludGF4
SGlnaGxpZ2h0KHN0cikgeworICAgIHZhciBub2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
c3BhbiIpOworICAgIG5vZGUudGV4dENvbnRlbnQgPSBzdHI7CisgICAgdmFyIGphdmFzY3JpcHRT
eW50YXhIaWdobGlnaHRlciA9IG5ldyBXZWJJbnNwZWN0b3IuQ1NTU291cmNlU3ludGF4SGlnaGxp
Z2h0ZXIobnVsbCwgbnVsbCk7CisgICAgamF2YXNjcmlwdFN5bnRheEhpZ2hsaWdodGVyLnN5bnRh
eEhpZ2hsaWdodE5vZGUobm9kZSk7CisgICAgdmFyIG5vZGVfcGFydHMgPSBbXTsKKyAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IG5vZGUuY2hpbGROb2Rlcy5sZW5ndGg7IGkrKykgeworICAgICAgICBp
ZiAobm9kZS5jaGlsZE5vZGVzW2ldLmdldEF0dHJpYnV0ZSkgeworICAgICAgICAgICAgbm9kZV9w
YXJ0cy5wdXNoKG5vZGUuY2hpbGROb2Rlc1tpXS5nZXRBdHRyaWJ1dGUoImNsYXNzIikpOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgbm9kZV9wYXJ0cy5wdXNoKCIqIik7CisgICAgICAg
ICAgICAvL25vZGVfcGFydHMucHVzaChub2RlLmNoaWxkTm9kZXNbaV0udGV4dENvbnRlbnQpOwor
ICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBub2RlX3BhcnRzLmpvaW4oIiwiKTsKK30KKzwv
ZGl2PgorCis8ZGl2IGlkPSJvdXRwdXQiPgorPC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KSW5k
ZXg6IExheW91dFRlc3RzL2luc3BlY3Rvci9qYXZhc2NyaXB0LXN5bnRheC1oaWdobGlnaHQtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2luc3BlY3Rvci9qYXZhc2NyaXB0
LXN5bnRheC1oaWdobGlnaHQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA1MDM5NikKKysrIExheW91
dFRlc3RzL2luc3BlY3Rvci9qYXZhc2NyaXB0LXN5bnRheC1oaWdobGlnaHQtZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0zLDEyICszLDEyIEBAIFRlc3RzIHRoYXQgSmF2YVNjcmlwdFNv
dXJjZVN5bnRheEhpZ2hsaWcKIHdlYmtpdC1qYXZhc2NyaXB0LWtleXdvcmQsd2Via2l0LWphdmFz
Y3JpcHQtc3RyaW5nLCoKIHdlYmtpdC1qYXZhc2NyaXB0LXJlZ2V4cAogd2Via2l0LWphdmFzY3Jp
cHQtY29tbWVudAotd2Via2l0LWphdmFzY3JpcHQtbnVtYmVyLCosd2Via2l0LWphdmFzY3JpcHQt
bnVtYmVyLCosd2Via2l0LWphdmFzY3JpcHQtcmVnZXhwLCosd2Via2l0LWphdmFzY3JpcHQtc3Ry
aW5nLCoKLXdlYmtpdC1qYXZhc2NyaXB0LXN0cmluZywqLHdlYmtpdC1qYXZhc2NyaXB0LW51bWJl
cgotd2Via2l0LWphdmFzY3JpcHQta2V5d29yZCwqLHdlYmtpdC1qYXZhc2NyaXB0LW51bWJlcix3
ZWJraXQtamF2YXNjcmlwdC1jb21tZW50LCosd2Via2l0LWphdmFzY3JpcHQtbnVtYmVyCi13ZWJr
aXQtamF2YXNjcmlwdC1jb21tZW50LHdlYmtpdC1qYXZhc2NyaXB0LXJlZ2V4cCwqLHdlYmtpdC1q
YXZhc2NyaXB0LXN0cmluZywqCit3ZWJraXQtamF2YXNjcmlwdC1udW1iZXIsKix3ZWJraXQtamF2
YXNjcmlwdC1udW1iZXIsKix3ZWJraXQtamF2YXNjcmlwdC1yZWdleHAsKix3ZWJraXQtamF2YXNj
cmlwdC1pZGVudCwqLHdlYmtpdC1qYXZhc2NyaXB0LXN0cmluZywqCit3ZWJraXQtamF2YXNjcmlw
dC1zdHJpbmcsKix3ZWJraXQtamF2YXNjcmlwdC1pZGVudCwqLHdlYmtpdC1qYXZhc2NyaXB0LW51
bWJlcgord2Via2l0LWphdmFzY3JpcHQta2V5d29yZCwqLHdlYmtpdC1qYXZhc2NyaXB0LWlkZW50
LCosd2Via2l0LWphdmFzY3JpcHQtbnVtYmVyLHdlYmtpdC1qYXZhc2NyaXB0LWNvbW1lbnQsKix3
ZWJraXQtamF2YXNjcmlwdC1udW1iZXIKK3dlYmtpdC1qYXZhc2NyaXB0LWNvbW1lbnQsd2Via2l0
LWphdmFzY3JpcHQtcmVnZXhwLCosd2Via2l0LWphdmFzY3JpcHQtaWRlbnQsKix3ZWJraXQtamF2
YXNjcmlwdC1zdHJpbmcsKgogd2Via2l0LWphdmFzY3JpcHQtc3RyaW5nLCoKIHdlYmtpdC1qYXZh
c2NyaXB0LXN0cmluZywqCiB3ZWJraXQtamF2YXNjcmlwdC1zdHJpbmcsKgotKix3ZWJraXQtamF2
YXNjcmlwdC1jb21tZW50LCoKK3dlYmtpdC1qYXZhc2NyaXB0LWlkZW50LHdlYmtpdC1qYXZhc2Ny
aXB0LWNvbW1lbnQsd2Via2l0LWphdmFzY3JpcHQtaWRlbnQKIAo=
</data>
<flag name="review"
          id="23802"
          type_id="1"
          status="-"
          setter="timothy"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42293</attachid>
            <date>2009-11-01 20:33:22 -0800</date>
            <delta_ts>2009-11-01 21:17:48 -0800</delta_ts>
            <desc>proposed patch 3</desc>
            <filename>css.diff</filename>
            <type>text/plain</type>
            <size>62802</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MDM5NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMDktMTEtMDEgIEtlaXNoaSBIYXR0b3JpICA8Y2FzZXkuaGF0dG9y
aUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgV2ViIEluc3BlY3RvcjogUmV3cml0ZSBDU1NTb3VyY2VTeW50YXhIaWdobGlnaHRlciBz
byBpdCBzaGFyZXMgbW9yZSBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zMDkwNworCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9jc3Mtc3ludGF4
LWhpZ2hsaWdodC5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRz
VHJlZU91dGxpbmUuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFt
ZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuc3ludGF4
SGlnaGxpZ2h0Q1NTKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VTeW50YXhIaWdobGln
aHRlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlU3ludGF4SGlnaGxpZ2h0ZXIucHJv
dG90eXBlLnByb2Nlc3MucHJvY2Vzc0NodW5rKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3Vy
Y2VTeW50YXhIaWdobGlnaHRlci5wcm90b3R5cGUucHJvY2Vzcy5tb3ZlVG9OZXh0TGluZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlU3ludGF4SGlnaGxpZ2h0ZXIucHJvdG90eXBlLnBy
b2Nlc3MpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZVN5bnRheEhpZ2hsaWdodGVyLnBy
b3RvdHlwZS5sZXgpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZVN5bnRheEhpZ2hsaWdo
dGVyLnByb3RvdHlwZS5hcHBlbmROb25Ub2tlbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291
cmNlU3ludGF4SGlnaGxpZ2h0ZXIucHJvdG90eXBlLnN5bnRheEhpZ2hsaWdodE5vZGUpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkNTU1NvdXJjZVN5bnRheEhpZ2hsaWdodGVyKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3RvclN5bnRheEhpZ2hsaWdodC5jc3M6CisKIDIw
MDktMTEtMDIgIFJvbGFuZCBTdGVpbmVyICA8cm9sYW5kc3RlaW5lckBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2ZSBIeWF0dC4KSW5kZXg6IFdlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzCShyZXZpc2lvbiA1MDM5
NikKKysrIFdlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC04NTAsOCArODUwLDggQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRz
VHJlZUVsZW1lbnQucHJvdG90eQogICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG5ld05vZGUg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBuZXdOb2RlLnRleHRDb250ZW50ID0gbm9kZS50ZXh0Q29udGVudDsKICAgICAgICAgICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNzc1N5bnRheEhpZ2hsaWdo
dGVyID0gbmV3IFdlYkluc3BlY3Rvci5DU1NTb3VyY2VTeW50YXhIaWdobGlnaGVyKG51bGwsIG51
bGwpOwotICAgICAgICAgICAgICAgICAgICAgICAgY3NzU3ludGF4SGlnaGxpZ2h0ZXIuc3ludGF4
SGlnaGxpZ2h0TGluZShuZXdOb2RlLCBudWxsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZh
ciBjc3NTeW50YXhIaWdobGlnaHRlciA9IG5ldyBXZWJJbnNwZWN0b3IuQ1NTU291cmNlU3ludGF4
SGlnaGxpZ2h0ZXIobnVsbCwgbnVsbCk7CisgICAgICAgICAgICAgICAgICAgICAgICBjc3NTeW50
YXhIaWdobGlnaHRlci5zeW50YXhIaWdobGlnaHROb2RlKG5ld05vZGUpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICBpbmZvLnRpdGxlID0gIjxzcGFu
IGNsYXNzPVwid2Via2l0LWh0bWwtdGV4dC1ub2RlIHdlYmtpdC1odG1sLWNzcy1ub2RlXCI+IiAr
IG5ld05vZGUuaW5uZXJIVE1MLnJlcGxhY2UoL15bXG5ccl0qLywgIiIpLnJlcGxhY2UoL1xzKiQv
LCAiIikgKyAiPC9zcGFuPiI7CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CkluZGV4OiBX
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzCShyZXZpc2lvbiA1MDM5
NikKKysrIFdlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtNzMxLDIwICs3MzEsMjAgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgaWYgKCF0YWJsZSkKICAgICAgICAgICAgIHJldHVybjsKIAot
ICAgICAgICB2YXIgY3NzU3ludGF4SGlnaGxpZ2h0ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkNTU1Nv
dXJjZVN5bnRheEhpZ2hsaWdoZXIodGFibGUsIHRoaXMpOworICAgICAgICB2YXIgY3NzU3ludGF4
SGlnaGxpZ2h0ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkNTU1NvdXJjZVN5bnRheEhpZ2hsaWdodGVy
KHRhYmxlLCB0aGlzKTsKICAgICAgICAgY3NzU3ludGF4SGlnaGxpZ2h0ZXIucHJvY2VzcygpOwog
ICAgIH0KIH0KIAogV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS5fX3Byb3RvX18g
PSBXZWJJbnNwZWN0b3IuT2JqZWN0LnByb3RvdHlwZTsKIAotV2ViSW5zcGVjdG9yLlNvdXJjZVN5
bnRheEhpZ2hsaWdoZXIgPSBmdW5jdGlvbih0YWJsZSwgc291cmNlRnJhbWUpCitXZWJJbnNwZWN0
b3IuU291cmNlU3ludGF4SGlnaGxpZ2h0ZXIgPSBmdW5jdGlvbih0YWJsZSwgc291cmNlRnJhbWUp
CiB7CiAgICAgdGhpcy50YWJsZSA9IHRhYmxlOwogICAgIHRoaXMuc291cmNlRnJhbWUgPSBzb3Vy
Y2VGcmFtZTsKIH0KIAotV2ViSW5zcGVjdG9yLlNvdXJjZVN5bnRheEhpZ2hsaWdoZXIucHJvdG90
eXBlID0geworV2ViSW5zcGVjdG9yLlNvdXJjZVN5bnRheEhpZ2hsaWdodGVyLnByb3RvdHlwZSA9
IHsKICAgICBjcmVhdGVTcGFuOiBmdW5jdGlvbihjb250ZW50LCBjbGFzc05hbWUpCiAgICAgewog
ICAgICAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKQEAgLTc1
MywyMzQgKzc1Myw1ODkgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZVN5bnRheEhpZ2hsaWdoZXIucHJv
dAogICAgICAgICByZXR1cm4gc3BhbjsKICAgICB9LAogCi0gICAgZ2VuZXJhdGVGaW5kZXI6IGZ1
bmN0aW9uKHJlZ2V4LCBtYXRjaE51bWJlciwgY2xhc3NOYW1lKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIGZ1bmN0aW9uKHN0cikgewotICAgICAgICAgICAgdmFyIG1hdGNoID0gcmVnZXguZXhlYyhz
dHIpOwotICAgICAgICAgICAgaWYgKCFtYXRjaCkKLSAgICAgICAgICAgICAgICByZXR1cm4gbnVs
bDsKLSAgICAgICAgICAgIHRoaXMucHJldmlvdXNNYXRjaExlbmd0aCA9IG1hdGNoW21hdGNoTnVt
YmVyXS5sZW5ndGg7Ci0gICAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVTcGFuKG1hdGNoW21h
dGNoTnVtYmVyXSwgY2xhc3NOYW1lKTsKLSAgICAgICAgfTsKLSAgICB9LAotCiAgICAgcHJvY2Vz
czogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgLy8gU3BsaXQgdXAgdGhlIHdvcmsgaW50byBj
aHVua3Mgc28gd2UgZG9uJ3QgYmxvY2sgdGhlCiAgICAgICAgIC8vIFVJIHRocmVhZCB3aGlsZSBw
cm9jZXNzaW5nLgogCi0gICAgICAgIHZhciBpID0gMDsKICAgICAgICAgdmFyIHJvd3MgPSB0aGlz
LnRhYmxlLnJvd3M7CiAgICAgICAgIHZhciByb3dzTGVuZ3RoID0gcm93cy5sZW5ndGg7Ci0gICAg
ICAgIHZhciBwcmV2aW91c0NlbGwgPSBudWxsOwotICAgICAgICBjb25zdCBsaW5lc1BlckNodW5r
ID0gMTA7Ci0KKyAgICAgICAgY29uc3QgdG9rZW5zUGVyQ2h1bmsgPSAxMDA7CisgICAgICAgIGNv
bnN0IGxpbmVMZW5ndGhMaW1pdCA9IDIwMDAwOworICAgICAgICAKKyAgICAgICAgdmFyIGJvdW5k
UHJvY2Vzc0NodW5rID0gcHJvY2Vzc0NodW5rLmJpbmQodGhpcyk7CisgICAgICAgIHZhciBwcm9j
ZXNzQ2h1bmtJbnRlcnZhbCA9IHNldEludGVydmFsKGJvdW5kUHJvY2Vzc0NodW5rLCAyNSk7Cisg
ICAgICAgIGJvdW5kUHJvY2Vzc0NodW5rKCk7CisgICAgICAgIAogICAgICAgICBmdW5jdGlvbiBw
cm9jZXNzQ2h1bmsoKQogICAgICAgICB7Ci0gICAgICAgICAgICBmb3IgKHZhciBlbmQgPSBNYXRo
Lm1pbihpICsgbGluZXNQZXJDaHVuaywgcm93c0xlbmd0aCk7IGkgPCBlbmQ7ICsraSkgewotICAg
ICAgICAgICAgICAgIHZhciByb3cgPSByb3dzW2ldOwotICAgICAgICAgICAgICAgIGlmICghcm93
KQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICB2YXIgY2Vs
bCA9IHJvdy5jZWxsc1sxXTsKLSAgICAgICAgICAgICAgICBpZiAoIWNlbGwpCi0gICAgICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIHRoaXMuc3ludGF4SGlnaGxpZ2h0
TGluZShjZWxsLCBwcmV2aW91c0NlbGwpOwotICAgICAgICAgICAgICAgIGlmIChpIDwgKGVuZCAt
IDEpKQotICAgICAgICAgICAgICAgICAgICB0aGlzLmRlbGV0ZUNvbnRpbnVlRmxhZ3MocHJldmlv
dXNDZWxsKTsKLSAgICAgICAgICAgICAgICBwcmV2aW91c0NlbGwgPSBjZWxsOwotICAgICAgICAg
ICAgfQorICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0b2tlbnNQZXJDaHVuazsgaSsr
KSB7CisgICAgICAgICAgICAgICAgaWYgKHRoaXMuY3Vyc29yID49IHRoaXMubGluZUNvZGUubGVu
Z3RoKQorICAgICAgICAgICAgICAgICAgICBtb3ZlVG9OZXh0TGluZS5jYWxsKHRoaXMpOworICAg
ICAgICAgICAgICAgIGlmICh0aGlzLmxpbmVJbmRleCA+PSByb3dzTGVuZ3RoKSB7CisgICAgICAg
ICAgICAgICAgICAgIHRoaXMuc291cmNlRnJhbWUuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKCJz
eW50YXggaGlnaGxpZ2h0aW5nIGNvbXBsZXRlIik7CisgICAgICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHRoaXMuY3Vyc29yID4g
bGluZUxlbmd0aExpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIHZhciBjb2RlRnJhZ21lbnQg
PSB0aGlzLmxpbmVDb2RlLnN1YnN0cmluZyh0aGlzLmN1cnNvcik7CisgICAgICAgICAgICAgICAg
ICAgIHRoaXMubm9uVG9rZW4gKz0gY29kZUZyYWdtZW50OworICAgICAgICAgICAgICAgICAgICB0
aGlzLmN1cnNvciArPSBjb2RlRnJhZ21lbnQubGVuZ3RoOworICAgICAgICAgICAgICAgIH0KIAot
ICAgICAgICAgICAgaWYgKGkgPj0gcm93c0xlbmd0aCAmJiBwcm9jZXNzQ2h1bmtJbnRlcnZhbCkg
ewotICAgICAgICAgICAgICAgIHRoaXMuZGVsZXRlQ29udGludWVGbGFncyhwcmV2aW91c0NlbGwp
OwotICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnByZXZpb3VzTWF0Y2hMZW5ndGg7CisgICAg
ICAgICAgICAgICAgdGhpcy5sZXgoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAg
ICAKKyAgICAgICAgZnVuY3Rpb24gbW92ZVRvTmV4dExpbmUoKQorICAgICAgICB7CisgICAgICAg
ICAgICB0aGlzLmFwcGVuZE5vblRva2VuKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHZh
ciByb3cgPSByb3dzW3RoaXMubGluZUluZGV4XTsKKyAgICAgICAgICAgIHZhciBsaW5lID0gcm93
ID8gcm93LmNlbGxzWzFdIDogbnVsbDsKKyAgICAgICAgICAgIGlmIChsaW5lICYmIHRoaXMubGlu
ZUZyYWdtZW50KSB7CisgICAgICAgICAgICAgICAgRWxlbWVudC5wcm90b3R5cGUucmVtb3ZlQ2hp
bGRyZW4uY2FsbChsaW5lKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBsaW5l
LmFwcGVuZENoaWxkKHRoaXMubGluZUZyYWdtZW50KTsKKyAgICAgICAgICAgICAgICBpZiAodGhp
cy5tZXNzYWdlQnViYmxlKQorICAgICAgICAgICAgICAgICAgICBsaW5lLmFwcGVuZENoaWxkKHRo
aXMubWVzc2FnZUJ1YmJsZSk7CisgICAgICAgICAgICAgICAgdGhpcy5saW5lRnJhZ21lbnQgPSBu
dWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhpcy5saW5lSW5kZXgrKzsKKyAgICAg
ICAgICAgIGlmICh0aGlzLmxpbmVJbmRleCA+PSByb3dzTGVuZ3RoICYmIHByb2Nlc3NDaHVua0lu
dGVydmFsKSB7CiAgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChwcm9jZXNzQ2h1bmtJbnRl
cnZhbCk7Ci0KICAgICAgICAgICAgICAgICB0aGlzLnNvdXJjZUZyYW1lLmRpc3BhdGNoRXZlbnRU
b0xpc3RlbmVycygic3ludGF4IGhpZ2hsaWdodGluZyBjb21wbGV0ZSIpOworICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJvdyA9IHJvd3NbdGhpcy5s
aW5lSW5kZXhdOworICAgICAgICAgICAgbGluZSA9IHJvdyA/IHJvdy5jZWxsc1sxXSA6IG51bGw7
CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHRoaXMubWVzc2FnZUJ1YmJsZSA9IG51bGw7Cisg
ICAgICAgICAgICBpZiAobGluZS5sYXN0Q2hpbGQgJiYgbGluZS5sYXN0Q2hpbGQubm9kZVR5cGUg
PT09IE5vZGUuRUxFTUVOVF9OT0RFICYmIGxpbmUubGFzdENoaWxkLmhhc1N0eWxlQ2xhc3MoIndl
YmtpdC1odG1sLW1lc3NhZ2UtYnViYmxlIikpIHsKKyAgICAgICAgICAgICAgICB0aGlzLm1lc3Nh
Z2VCdWJibGUgPSBsaW5lLmxhc3RDaGlsZDsKKyAgICAgICAgICAgICAgICBsaW5lLnJlbW92ZUNo
aWxkKHRoaXMubWVzc2FnZUJ1YmJsZSk7CiAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRo
aXMubGluZUNvZGUgPSBsaW5lLnRleHRDb250ZW50OworICAgICAgICAgICAgdGhpcy5saW5lRnJh
Z21lbnQgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7CisgICAgICAgICAgICB0
aGlzLmN1cnNvciA9IDA7CisgICAgICAgICAgICBpZiAoIWxpbmUpCisgICAgICAgICAgICAgICAg
bW92ZVRvTmV4dExpbmUoKTsKICAgICAgICAgfQorICAgIH0sCisgICAgCisgICAgbGV4OiBmdW5j
dGlvbigpCisgICAgeworICAgICAgICB2YXIgdG9rZW4gPSBudWxsOworICAgICAgICB2YXIgY29k
ZUZyYWdtZW50ID0gdGhpcy5saW5lQ29kZS5zdWJzdHJpbmcodGhpcy5jdXJzb3IpOworICAgICAg
ICAKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnJ1bGVzLmxlbmd0aDsgaSsrKSB7
CisgICAgICAgICAgICB2YXIgcnVsZSA9IHRoaXMucnVsZXNbaV07CisgICAgICAgICAgICB2YXIg
cnVsZUNvbnRpbnVlU3RhdGVDb25kaXRpb24gPSB0eXBlb2YgcnVsZS5jb250aW51ZVN0YXRlQ29u
ZGl0aW9uID09PSAidW5kZWZpbmVkIiA/IHRoaXMuQ29udGludWVTdGF0ZS5Ob25lIDogcnVsZS5j
b250aW51ZVN0YXRlQ29uZGl0aW9uOworICAgICAgICAgICAgaWYgKHRoaXMuY29udGludWVTdGF0
ZSA9PT0gcnVsZUNvbnRpbnVlU3RhdGVDb25kaXRpb24pIHsKKyAgICAgICAgICAgICAgICBpZiAo
dHlwZW9mIHJ1bGUubGV4U3RhdGVDb25kaXRpb24gIT09ICJ1bmRlZmluZWQiICYmIHRoaXMubGV4
U3RhdGUgIT09IHJ1bGUubGV4U3RhdGVDb25kaXRpb24pCisgICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICAgICAgICAgIHZhciBtYXRjaCA9IHJ1bGUucGF0dGVybi5leGVjKGNv
ZGVGcmFnbWVudCk7CisgICAgICAgICAgICAgICAgaWYgKG1hdGNoKSB7CisgICAgICAgICAgICAg
ICAgICAgIHRva2VuID0gbWF0Y2hbMF07CisgICAgICAgICAgICAgICAgICAgIGlmICh0b2tlbikg
eworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFydWxlLmRvbnRBcHBlbmROb25Ub2tlbikK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGVuZE5vblRva2VuKCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gcnVsZS5hY3Rpb24uY2FsbCh0aGlzLCB0b2tlbik7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5ub25Ub2tlbiArPSBjb2RlRnJhZ21lbnRbMF07Cisg
ICAgICAgIHRoaXMuY3Vyc29yKys7CisgICAgfSwKKyAgICAKKyAgICBhcHBlbmROb25Ub2tlbjog
ZnVuY3Rpb24gKCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLm5vblRva2VuLmxlbmd0aCA+IDAp
IHsKKyAgICAgICAgICAgIHRoaXMubGluZUZyYWdtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKHRoaXMubm9uVG9rZW4pKTsKKyAgICAgICAgICAgIHRoaXMubm9uVG9rZW4g
PSAiIjsKKyAgICAgICAgfQorICAgIH0sCisgICAgCisgICAgc3ludGF4SGlnaGxpZ2h0Tm9kZTog
ZnVuY3Rpb24obm9kZSkKKyAgICB7CisgICAgICAgIHRoaXMubGluZUNvZGUgPSBub2RlLnRleHRD
b250ZW50OworICAgICAgICB0aGlzLmxpbmVGcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3Vt
ZW50RnJhZ21lbnQoKTsKKyAgICAgICAgdGhpcy5jdXJzb3IgPSAwOworICAgICAgICB3aGlsZSAo
dHJ1ZSkgeworICAgICAgICAgICAgaWYgKHRoaXMuY3Vyc29yID49IHRoaXMubGluZUNvZGUubGVu
Z3RoKSB7CisgICAgICAgICAgICAgICAgdmFyIGNvZGVGcmFnbWVudCA9IHRoaXMubGluZUNvZGUu
c3Vic3RyaW5nKHRoaXMuY3Vyc29yKTsKKyAgICAgICAgICAgICAgICB0aGlzLm5vblRva2VuICs9
IGNvZGVGcmFnbWVudDsKKyAgICAgICAgICAgICAgICB0aGlzLmN1cnNvciArPSBjb2RlRnJhZ21l
bnQubGVuZ3RoOworICAgICAgICAgICAgICAgIHRoaXMuYXBwZW5kTm9uVG9rZW4oKTsKKyAgICAg
ICAgICAgICAgICB3aGlsZSAobm9kZS5maXJzdENoaWxkKQorICAgICAgICAgICAgICAgICAgICBu
b2RlLnJlbW92ZUNoaWxkKG5vZGUuZmlyc3RDaGlsZCk7CisgICAgICAgICAgICAgICAgbm9kZS5h
cHBlbmRDaGlsZCh0aGlzLmxpbmVGcmFnbWVudCk7CisgICAgICAgICAgICAgICAgdGhpcy5saW5l
RnJhZ21lbnQgPW51bGw7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQog
Ci0gICAgICAgIHZhciBib3VuZFByb2Nlc3NDaHVuayA9IHByb2Nlc3NDaHVuay5iaW5kKHRoaXMp
OwotICAgICAgICB2YXIgcHJvY2Vzc0NodW5rSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChib3VuZFBy
b2Nlc3NDaHVuaywgMjUpOwotICAgICAgICBib3VuZFByb2Nlc3NDaHVuaygpOworICAgICAgICAg
ICAgdGhpcy5sZXgoKTsKKyAgICAgICAgfQogICAgIH0KIH0KIAotV2ViSW5zcGVjdG9yLkNTU1Nv
dXJjZVN5bnRheEhpZ2hsaWdoZXIgPSBmdW5jdGlvbih0YWJsZSwgc291cmNlRnJhbWUpIHsKLSAg
ICBXZWJJbnNwZWN0b3IuU291cmNlU3ludGF4SGlnaGxpZ2hlci5jYWxsKHRoaXMsIHRhYmxlLCBz
b3VyY2VGcmFtZSk7Ci0KLSAgICB0aGlzLmZpbmROdW1iZXIgPSB0aGlzLmdlbmVyYXRlRmluZGVy
KC9eKCgtPyhcZCt8XGQqXC5cZCspKXxeKCNbYS1mQS1GMC05XXszLDZ9KSkoPzpcRHwkKS8sIDEs
ICJ3ZWJraXQtY3NzLW51bWJlciIpOwotICAgIHRoaXMuZmluZFVuaXRzID0gdGhpcy5nZW5lcmF0
ZUZpbmRlcigvXihweHxlbXxwdHxpbnxjbXxtbXxwY3xleCkoPzpcV3wkKS8sIDEsICJ3ZWJraXQt
Y3NzLXVuaXQiKTsKLSAgICB0aGlzLmZpbmRLZXl3b3JkID0gdGhpcy5nZW5lcmF0ZUZpbmRlcigv
XihyZ2JhP3xoc2xhP3x2YXIpKD86XFd8JCkvLCAxLCAid2Via2l0LWNzcy1rZXl3b3JkIik7Ci0g
ICAgdGhpcy5maW5kU2luZ2xlTGluZVN0cmluZyA9IHRoaXMuZ2VuZXJhdGVGaW5kZXIoL14iKD86
W14iXFxdfFxcLikqInxeJyhbXidcXF18XFwuKSonLywgMCwgIndlYmtpdC1jc3Mtc3RyaW5nIik7
IC8vICIgdGhpcyBxdW90ZSBrZWVwcyBYY29kZSBoYXBweQotICAgIHRoaXMuZmluZFNpbmdsZUxp
bmVDb21tZW50ID0gdGhpcy5nZW5lcmF0ZUZpbmRlcigvXlwvXCouKj9cKlwvLywgMCwgIndlYmtp
dC1jc3MtY29tbWVudCIpOwotICAgIHRoaXMuZmluZE11bHRpbGluZUNvbW1lbnRTdGFydCA9IHRo
aXMuZ2VuZXJhdGVGaW5kZXIoL15cL1wqLiokLywgMCwgIndlYmtpdC1jc3MtY29tbWVudCIpOwot
ICAgIHRoaXMuZmluZE11bHRpbGluZUNvbW1lbnRFbmQgPSB0aGlzLmdlbmVyYXRlRmluZGVyKC9e
Lio/XCpcLy8sIDAsICJ3ZWJraXQtY3NzLWNvbW1lbnQiKTsKLSAgICB0aGlzLmZpbmRTZWxlY3Rv
ciA9IHRoaXMuZ2VuZXJhdGVGaW5kZXIoL14oWyNcLl0/W19hLXpBLVpdLio/KSg/OlxXfCQpLywg
MSwgIndlYmtpdC1jc3Mtc2VsZWN0b3IiKTsKLSAgICB0aGlzLmZpbmRQcm9wZXJ0eSA9IHRoaXMu
Z2VuZXJhdGVGaW5kZXIoL14oLT9bX2EtejAtOV1bX2EtejAtOS1dKlxzKikoPzpcOikvLCAxLCAi
d2Via2l0LWNzcy1wcm9wZXJ0eSIpOwotICAgIHRoaXMuZmluZEdlbmVyaWNJZGVudCA9IHRoaXMu
Z2VuZXJhdGVGaW5kZXIoL14oW0AtXT9bX2EtejAtOV1bX2EtejAtOS1dKikoPzpcV3wkKS8sIDEs
ICJ3ZWJraXQtY3NzLXN0cmluZyIpOwotfQorV2ViSW5zcGVjdG9yLkNTU1NvdXJjZVN5bnRheEhp
Z2hsaWdodGVyID0gZnVuY3Rpb24odGFibGUsIHNvdXJjZUZyYW1lKSB7CisgICAgV2ViSW5zcGVj
dG9yLlNvdXJjZVN5bnRheEhpZ2hsaWdodGVyLmNhbGwodGhpcywgdGFibGUsIHNvdXJjZUZyYW1l
KTsKIAotV2ViSW5zcGVjdG9yLkNTU1NvdXJjZVN5bnRheEhpZ2hsaWdoZXIucHJvdG90eXBlID0g
ewotICAgIGRlbGV0ZUNvbnRpbnVlRmxhZ3M6IGZ1bmN0aW9uKGNlbGwpCisgICAgdGhpcy5MZXhT
dGF0ZSA9IHsKKyAgICAgICAgSW5pdGlhbDogMSwKKyAgICAgICAgRGVjbGFyYXRpb25Qcm9wZXJ0
eTogMiwKKyAgICAgICAgRGVjbGFyYXRpb25WYWx1ZTogMywKKyAgICAgICAgQXRNZWRpYTogNCwK
KyAgICAgICAgQXRSdWxlOiA1LAorICAgICAgICBBdEtleWZyYW1lczogNgorICAgIH07CisgICAg
dGhpcy5Db250aW51ZVN0YXRlID0geworICAgICAgICBOb25lOiAwLAorICAgICAgICBDb21tZW50
OiAxCisgICAgfTsKKyAgICAKKyAgICB0aGlzLm5vblRva2VuID0gIiI7CisgICAgdGhpcy5jdXJz
b3IgPSAwOworICAgIHRoaXMubGluZUluZGV4ID0gLTE7CisgICAgdGhpcy5saW5lQ29kZSA9ICIi
OworICAgIHRoaXMubGluZUZyYWdtZW50ID0gbnVsbDsKKyAgICB0aGlzLmxleFN0YXRlID0gdGhp
cy5MZXhTdGF0ZS5Jbml0aWFsOworICAgIHRoaXMuY29udGludWVTdGF0ZSA9IHRoaXMuQ29udGlu
dWVTdGF0ZS5Ob25lOworICAgIAorICAgIGNvbnN0IHVybFBhdHRlcm4gPSAvXnVybFwoXHMqKD86
KD86Iig/OlteXFxcIl18KD86XFxbXGRhLWZdezEsNn1ccz98XC4pKSoifCcoPzpbXlxcXCddfCg/
OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqJyl8KD86WyEjJCUmKi1+XHddfCg/OlxcW1xkYS1mXXsx
LDZ9XHM/fFwuKSkqKVxzKlwpL2k7CisgICAgY29uc3Qgc3RyaW5nUGF0dGVybiA9IC9eKD86Iig/
OlteXFxcIl18KD86XFxbXGRhLWZdezEsNn1ccz98XC4pKSoifCcoPzpbXlxcXCddfCg/OlxcW1xk
YS1mXXsxLDZ9XHM/fFwuKSkqJykvaTsKKyAgICBjb25zdCBpZGVudFBhdHRlcm4gPSAvXi0/KD86
XHd8KD86XFxbXGRhLWZdezEsNn1ccz98XC4pKSg/OlstXHddfCg/OlxcW1xkYS1mXXsxLDZ9XHM/
fFwuKSkqL2k7CisgICAgY29uc3Qgc3RhcnRCbG9ja1BhdHRlcm4gPSAvXnsvaTsKKyAgICBjb25z
dCBlbmRCbG9ja1BhdHRlcm4gPSAvXn0vaTsKKyAgICB0aGlzLnJ1bGVzID0gW3sKKyAgICAgICAg
cGF0dGVybjogL15cL1wqW15cKl0qXCorKFteXC8qXVteKl0qXCorKSpcLy9pLAorICAgICAgICBh
Y3Rpb246IGNvbW1lbnRBY3Rpb24KKyAgICB9LCB7CisgICAgICAgIHBhdHRlcm46IC9eKD86XC9c
Kig/OlteXCpdfFwqW15cL10pKikvaSwKKyAgICAgICAgYWN0aW9uOiBjb21tZW50U3RhcnRBY3Rp
b24KKyAgICB9LCB7CisgICAgICAgIHBhdHRlcm46IC9eKD86KD86W15cKl18XCpbXlwvXSkqXCor
XC8pL2ksCisgICAgICAgIGFjdGlvbjogY29tbWVudEVuZEFjdGlvbiwKKyAgICAgICAgY29udGlu
dWVTdGF0ZUNvbmRpdGlvbjogdGhpcy5Db250aW51ZVN0YXRlLkNvbW1lbnQKKyAgICB9LCB7Cisg
ICAgICAgIHBhdHRlcm46IC9eLiovaSwKKyAgICAgICAgYWN0aW9uOiBjb21tZW50TWlkZGxlQWN0
aW9uLAorICAgICAgICBjb250aW51ZVN0YXRlQ29uZGl0aW9uOiB0aGlzLkNvbnRpbnVlU3RhdGUu
Q29tbWVudAorICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjogL14oPzooPzotPyg/Olx3fCg/Olxc
W1xkYS1mXXsxLDZ9XHM/fFwuKSkoPzpbLVx3XXwoPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKnxc
KikoPzojLT8oPzpcd3woPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKD86Wy1cd118KD86XFxbXGRh
LWZdezEsNn1ccz98XC4pKSp8XC4tPyg/Olx3fCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkoPzpb
LVx3XXwoPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKnxcW1xzKi0/KD86XHd8KD86XFxbXGRhLWZd
ezEsNn1ccz98XC4pKSg/OlstXHddfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqXHMqKD86KD86
PXx+PXxcfD0pXHMqKD86LT8oPzpcd3woPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKD86Wy1cd118
KD86XFxbXGRhLWZdezEsNn1ccz98XC4pKSp8KD86Iig/OlteXFxcIl18KD86XFxbXGRhLWZdezEs
Nn1ccz98XC4pKSoifCcoPzpbXlxcXCddfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqJykpXHMq
KT9cXXw6KD86LT8oPzpcd3woPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKD86Wy1cd118KD86XFxb
XGRhLWZdezEsNn1ccz98XC4pKSp8LT8oPzpcd3woPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKD86
Wy1cd118KD86XFxbXGRhLWZdezEsNn1ccz98XC4pKSpcKFxzKig/Oi0/KD86XHd8KD86XFxbXGRh
LWZdezEsNn1ccz98XC4pKSg/OlstXHddfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqXHMqKT9c
KSkpKnwoPzojLT8oPzpcd3woPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKD86Wy1cd118KD86XFxb
XGRhLWZdezEsNn1ccz98XC4pKSp8XC4tPyg/Olx3fCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSko
PzpbLVx3XXwoPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKnxcW1xzKi0/KD86XHd8KD86XFxbXGRh
LWZdezEsNn1ccz98XC4pKSg/OlstXHddfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqXHMqKD86
KD86PXx+PXxcfD0pXHMqKD86LT8oPzpcd3woPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKD86Wy1c
d118KD86XFxbXGRhLWZdezEsNn1ccz98XC4pKSp8KD86Iig/OlteXFxcIl18KD86XFxbXGRhLWZd
ezEsNn1ccz98XC4pKSoifCcoPzpbXlxcXCddfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqJykp
XHMqKT9cXXw6KD86LT8oPzpcd3woPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKD86Wy1cd118KD86
XFxbXGRhLWZdezEsNn1ccz98XC4pKSp8LT8oPzpcd3woPzpcXFtcZGEtZl17MSw2fVxzP3xcLikp
KD86Wy1cd118KD86XFxbXGRhLWZdezEsNn1ccz98XC4pKSpcKFxzKig/Oi0/KD86XHd8KD86XFxb
XGRhLWZdezEsNn1ccz98XC4pKSg/OlstXHddfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqXHMq
KT9cKSkpKykvaSwKKyAgICAgICAgYWN0aW9uOiBzZWxlY3RvckFjdGlvbiwKKyAgICAgICAgbGV4
U3RhdGVDb25kaXRpb246IHRoaXMuTGV4U3RhdGUuSW5pdGlhbAorICAgIH0sIHsKKyAgICAgICAg
cGF0dGVybjogc3RhcnRCbG9ja1BhdHRlcm4sCisgICAgICAgIGFjdGlvbjogc3RhcnRSdWxlc2V0
QmxvY2tBY3Rpb24sCisgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0aGlzLkxleFN0YXRlLklu
aXRpYWwsCisgICAgICAgIGRvbnRBcHBlbmROb25Ub2tlbjogdHJ1ZQorICAgIH0sIHsKKyAgICAg
ICAgcGF0dGVybjogaWRlbnRQYXR0ZXJuLAorICAgICAgICBhY3Rpb246IHByb3BlcnR5QWN0aW9u
LAorICAgICAgICBsZXhTdGF0ZUNvbmRpdGlvbjogdGhpcy5MZXhTdGF0ZS5EZWNsYXJhdGlvblBy
b3BlcnR5LAorICAgICAgICBkb250QXBwZW5kTm9uVG9rZW46IHRydWUKKyAgICB9LCB7CisgICAg
ICAgIHBhdHRlcm46IC9eOi9pLAorICAgICAgICBhY3Rpb246IGRlY2xhcmF0aW9uQ29sb25BY3Rp
b24sCisgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0aGlzLkxleFN0YXRlLkRlY2xhcmF0aW9u
UHJvcGVydHksCisgICAgICAgIGRvbnRBcHBlbmROb25Ub2tlbjogdHJ1ZQorICAgIH0sIHsKKyAg
ICAgICAgcGF0dGVybjogL14oPzojKD86W1xkYS1mXXs2fXxbXGRhLWZdezN9KXxyZ2JhXChccyoo
PzpcZCt8XGQqXC5cZCspJT9ccyosXHMqKD86XGQrfFxkKlwuXGQrKSU/XHMqLFxzKig/OlxkK3xc
ZCpcLlxkKyklP1xzKixccyooPzpcZCt8XGQqXC5cZCspJT9ccypcKXxoc2xhXChccyooPzpcZCt8
XGQqXC5cZCspJT9ccyosXHMqKD86XGQrfFxkKlwuXGQrKSU/XHMqLFxzKig/OlxkK3xcZCpcLlxk
KyklP1xzKixccyooPzpcZCt8XGQqXC5cZCspJT9ccypcKXxyZ2JcKFxzKig/OlxkK3xcZCpcLlxk
KyklP1xzKixccyooPzpcZCt8XGQqXC5cZCspJT9ccyosXHMqKD86XGQrfFxkKlwuXGQrKSU/XHMq
XCl8aHNsXChccyooPzpcZCt8XGQqXC5cZCspJT9ccyosXHMqKD86XGQrfFxkKlwuXGQrKSU/XHMq
LFxzKig/OlxkK3xcZCpcLlxkKyklP1xzKlwpKS9pLAorICAgICAgICBhY3Rpb246IGNvbG9yQWN0
aW9uLAorICAgICAgICBsZXhTdGF0ZUNvbmRpdGlvbjogdGhpcy5MZXhTdGF0ZS5EZWNsYXJhdGlv
blZhbHVlCisgICAgfSwgeworICAgICAgICBwYXR0ZXJuOiAvXig/Oig/OlxkK3xcZCpcLlxkKyko
PzplbXxyZW18X19xZW18ZXh8cHh8Y218bW18aW58cHR8cGN8ZGVnfHJhZHxncmFkfHR1cm58bXN8
c3xIenxrSHp8JSk/KS9pLAorICAgICAgICBhY3Rpb246IG51bXZhbHVlQWN0aW9uLAorICAgICAg
ICBsZXhTdGF0ZUNvbmRpdGlvbjogdGhpcy5MZXhTdGF0ZS5EZWNsYXJhdGlvblZhbHVlCisgICAg
fSwgeworICAgICAgICBwYXR0ZXJuOiB1cmxQYXR0ZXJuLAorICAgICAgICBhY3Rpb246IHVybEFj
dGlvbiwKKyAgICAgICAgbGV4U3RhdGVDb25kaXRpb246IHRoaXMuTGV4U3RhdGUuRGVjbGFyYXRp
b25WYWx1ZQorICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjogc3RyaW5nUGF0dGVybiwKKyAgICAg
ICAgYWN0aW9uOiBzdHJpbmdBY3Rpb24sCisgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0aGlz
LkxleFN0YXRlLkRlY2xhcmF0aW9uVmFsdWUKKyAgICB9LCB7CisgICAgICAgIHBhdHRlcm46IC9e
IVxzKmltcG9ydGFudC9pLAorICAgICAgICBhY3Rpb246IGltcG9ydGFudEFjdGlvbiwKKyAgICAg
ICAgbGV4U3RhdGVDb25kaXRpb246IHRoaXMuTGV4U3RhdGUuRGVjbGFyYXRpb25WYWx1ZQorICAg
IH0sIHsKKyAgICAgICAgcGF0dGVybjogaWRlbnRQYXR0ZXJuLAorICAgICAgICBhY3Rpb246IHZh
bHVlSWRlbnRBY3Rpb24sCisgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0aGlzLkxleFN0YXRl
LkRlY2xhcmF0aW9uVmFsdWUsCisgICAgICAgIGRvbnRBcHBlbmROb25Ub2tlbjogdHJ1ZQorICAg
IH0sIHsKKyAgICAgICAgcGF0dGVybjogL147L2ksCisgICAgICAgIGFjdGlvbjogZGVjbGFyYXRp
b25TZW1pY29sb25BY3Rpb24sCisgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0aGlzLkxleFN0
YXRlLkRlY2xhcmF0aW9uVmFsdWUsCisgICAgICAgIGRvbnRBcHBlbmROb25Ub2tlbjogdHJ1ZQor
ICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjogZW5kQmxvY2tQYXR0ZXJuLAorICAgICAgICBhY3Rp
b246IGVuZFJ1bGVzZXRCbG9ja0FjdGlvbiwKKyAgICAgICAgbGV4U3RhdGVDb25kaXRpb246IHRo
aXMuTGV4U3RhdGUuRGVjbGFyYXRpb25Qcm9wZXJ0eSwKKyAgICAgICAgZG9udEFwcGVuZE5vblRv
a2VuOiB0cnVlCisgICAgfSwgeworICAgICAgICBwYXR0ZXJuOiBlbmRCbG9ja1BhdHRlcm4sCisg
ICAgICAgIGFjdGlvbjogZW5kUnVsZXNldEJsb2NrQWN0aW9uLAorICAgICAgICBsZXhTdGF0ZUNv
bmRpdGlvbjogdGhpcy5MZXhTdGF0ZS5EZWNsYXJhdGlvblZhbHVlLAorICAgICAgICBkb250QXBw
ZW5kTm9uVG9rZW46IHRydWUKKyAgICB9LCB7CisgICAgICAgIHBhdHRlcm46IC9eQG1lZGlhL2ks
CisgICAgICAgIGFjdGlvbjogYXRNZWRpYUFjdGlvbiwKKyAgICAgICAgbGV4U3RhdGVDb25kaXRp
b246IHRoaXMuTGV4U3RhdGUuSW5pdGlhbAorICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjogc3Rh
cnRCbG9ja1BhdHRlcm4sCisgICAgICAgIGFjdGlvbjogc3RhcnRBdE1lZGlhQmxvY2tBY3Rpb24s
CisgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0aGlzLkxleFN0YXRlLkF0TWVkaWEsCisgICAg
ICAgIGRvbnRBcHBlbmROb25Ub2tlbjogdHJ1ZQorICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjog
L15ALXdlYmtpdC1rZXlmcmFtZXMvaSwKKyAgICAgICAgYWN0aW9uOiBhdEtleWZyYW1lc0FjdGlv
biwKKyAgICAgICAgbGV4U3RhdGVDb25kaXRpb246IHRoaXMuTGV4U3RhdGUuSW5pdGlhbAorICAg
IH0sIHsKKyAgICAgICAgcGF0dGVybjogc3RhcnRCbG9ja1BhdHRlcm4sCisgICAgICAgIGFjdGlv
bjogc3RhcnRBdE1lZGlhQmxvY2tBY3Rpb24sCisgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0
aGlzLkxleFN0YXRlLkF0S2V5ZnJhbWVzLAorICAgICAgICBkb250QXBwZW5kTm9uVG9rZW46IHRy
dWUKKyAgICB9LCB7CisgICAgICAgIHBhdHRlcm46IC9eQC0/KD86XHd8KD86XFxbXGRhLWZdezEs
Nn1ccz98XC4pKSg/OlstXHddfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqL2ksCisgICAgICAg
IGFjdGlvbjogYXRSdWxlQWN0aW9uLAorICAgICAgICBsZXhTdGF0ZUNvbmRpdGlvbjogdGhpcy5M
ZXhTdGF0ZS5Jbml0aWFsCisgICAgfSwgeworICAgICAgICBwYXR0ZXJuOiAvXjsvaSwKKyAgICAg
ICAgYWN0aW9uOiBlbmRBdFJ1bGVBY3Rpb24sCisgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0
aGlzLkxleFN0YXRlLkF0UnVsZQorICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjogdXJsUGF0dGVy
biwKKyAgICAgICAgYWN0aW9uOiB1cmxBY3Rpb24sCisgICAgICAgIGxleFN0YXRlQ29uZGl0aW9u
OiB0aGlzLkxleFN0YXRlLkF0UnVsZQorICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjogc3RyaW5n
UGF0dGVybiwKKyAgICAgICAgYWN0aW9uOiBzdHJpbmdBY3Rpb24sCisgICAgICAgIGxleFN0YXRl
Q29uZGl0aW9uOiB0aGlzLkxleFN0YXRlLkF0UnVsZQorICAgIH0sIHsKKyAgICAgICAgcGF0dGVy
bjogc3RyaW5nUGF0dGVybiwKKyAgICAgICAgYWN0aW9uOiBzdHJpbmdBY3Rpb24sCisgICAgICAg
IGxleFN0YXRlQ29uZGl0aW9uOiB0aGlzLkxleFN0YXRlLkF0S2V5ZnJhbWVzCisgICAgfSwgewor
ICAgICAgICBwYXR0ZXJuOiBpZGVudFBhdHRlcm4sCisgICAgICAgIGFjdGlvbjogYXRSdWxlSWRl
bnRBY3Rpb24sCisgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0aGlzLkxleFN0YXRlLkF0UnVs
ZSwKKyAgICAgICAgZG9udEFwcGVuZE5vblRva2VuOiB0cnVlCisgICAgfSwgeworICAgICAgICBw
YXR0ZXJuOiBpZGVudFBhdHRlcm4sCisgICAgICAgIGFjdGlvbjogYXRSdWxlSWRlbnRBY3Rpb24s
CisgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0aGlzLkxleFN0YXRlLkF0TWVkaWEsCisgICAg
ICAgIGRvbnRBcHBlbmROb25Ub2tlbjogdHJ1ZQorICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjog
c3RhcnRCbG9ja1BhdHRlcm4sCisgICAgICAgIGFjdGlvbjogc3RhcnRBdFJ1bGVCbG9ja0FjdGlv
biwKKyAgICAgICAgbGV4U3RhdGVDb25kaXRpb246IHRoaXMuTGV4U3RhdGUuQXRSdWxlLAorICAg
ICAgICBkb250QXBwZW5kTm9uVG9rZW46IHRydWUKKyAgICB9XTsKKyAgICAKKyAgICBmdW5jdGlv
biBjb21tZW50QWN0aW9uKHRva2VuKQogICAgIHsKLSAgICAgICAgaWYgKCFjZWxsKQotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICBkZWxldGUgY2VsbC5fY29tbWVudENvbnRpbnVlczsKLSAg
ICAgICAgZGVsZXRlIGNlbGwuX2luU2VsZWN0b3I7Ci0gICAgfSwKLQotICAgIGZpbmRQc2V1ZG9D
bGFzczogZnVuY3Rpb24oc3RyKQorICAgICAgICB0aGlzLmN1cnNvciArPSB0b2tlbi5sZW5ndGg7
CisgICAgICAgIHRoaXMubGluZUZyYWdtZW50LmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlU3Bhbih0
b2tlbiwgIndlYmtpdC1jc3MtY29tbWVudCIpKTsKKyAgICB9CisgICAgCisgICAgZnVuY3Rpb24g
Y29tbWVudFN0YXJ0QWN0aW9uKHRva2VuKQogICAgIHsKLSAgICAgICAgdmFyIG1hdGNoID0gL14o
Ojo/KShbX2EtejAtOV1bX2EtejAtOS1dKikvLmV4ZWMoc3RyKTsKLSAgICAgICAgaWYgKCFtYXRj
aCkKLSAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICB0aGlzLnByZXZpb3VzTWF0Y2hM
ZW5ndGggPSBtYXRjaFswXS5sZW5ndGg7Ci0gICAgICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgic3BhbiIpOwotICAgICAgICBzcGFuLmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKG1hdGNoWzFdKSk7Ci0gICAgICAgIHNwYW4uYXBwZW5kQ2hpbGQodGhpcy5j
cmVhdGVTcGFuKG1hdGNoWzJdLCAid2Via2l0LWNzcy1wc2V1ZG8tY2xhc3MiKSk7Ci0gICAgICAg
IHJldHVybiBzcGFuOwotICAgIH0sCi0KLSAgICBmaW5kVVJMOiBmdW5jdGlvbihzdHIpCisgICAg
ICAgIHRoaXMuY3Vyc29yICs9IHRva2VuLmxlbmd0aDsKKyAgICAgICAgdGhpcy5saW5lRnJhZ21l
bnQuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVTcGFuKHRva2VuLCAid2Via2l0LWNzcy1jb21tZW50
IikpOworICAgICAgICB0aGlzLmNvbnRpbnVlU3RhdGUgPSB0aGlzLkNvbnRpbnVlU3RhdGUuQ29t
bWVudDsKKyAgICB9CisgICAgCisgICAgZnVuY3Rpb24gY29tbWVudEVuZEFjdGlvbih0b2tlbikK
ICAgICB7Ci0gICAgICAgIHZhciBtYXRjaCA9IC9eKD86bG9jYWx8dXJsKVwoKFteXCldKj8pXCkv
LmV4ZWMoc3RyKTsKLSAgICAgICAgaWYgKCFtYXRjaCkKLSAgICAgICAgICAgIHJldHVybiBudWxs
OwotICAgICAgICB0aGlzLnByZXZpb3VzTWF0Y2hMZW5ndGggPSBtYXRjaFswXS5sZW5ndGg7Ci0g
ICAgICAgIHZhciBpbm5lclVybFNwYW4gPSB0aGlzLmNyZWF0ZVNwYW4obWF0Y2hbMV0sICJ3ZWJr
aXQtY3NzLXVybCIpOwotICAgICAgICB2YXIgb3V0ZXJTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgic3BhbiIpOwotICAgICAgICBvdXRlclNwYW4uYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVT
cGFuKCJ1cmwiLCAid2Via2l0LWNzcy1rZXl3b3JkIikpOwotICAgICAgICBvdXRlclNwYW4uYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIigiKSk7Ci0gICAgICAgIG91dGVyU3Bh
bi5hcHBlbmRDaGlsZChpbm5lclVybFNwYW4pOwotICAgICAgICBvdXRlclNwYW4uYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIikiKSk7Ci0gICAgICAgIHJldHVybiBvdXRlclNw
YW47Ci0gICAgfSwKKyAgICAgICAgdGhpcy5jdXJzb3IgKz0gdG9rZW4ubGVuZ3RoOworICAgICAg
ICB0aGlzLmxpbmVGcmFnbWVudC5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVNwYW4odG9rZW4sICJ3
ZWJraXQtY3NzLWNvbW1lbnQiKSk7CisgICAgICAgIHRoaXMuY29udGludWVTdGF0ZSA9IHRoaXMu
Q29udGludWVTdGF0ZS5Ob25lOworICAgIH0KIAotICAgIGZpbmRBdFJ1bGU6IGZ1bmN0aW9uKHN0
cikKKyAgICBmdW5jdGlvbiBjb21tZW50TWlkZGxlQWN0aW9uKHRva2VuKQogICAgIHsKLSAgICAg
ICAgdmFyIG1hdGNoID0gL15AW19hLXowLTldW19hLXowLTktXSooPzpcV3wkKS8uZXhlYyhzdHIp
OwotICAgICAgICBpZiAoIW1hdGNoKQotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAg
IHRoaXMucHJldmlvdXNNYXRjaExlbmd0aCA9IG1hdGNoWzBdLmxlbmd0aDsKLSAgICAgICAgcmV0
dXJuIHRoaXMuY3JlYXRlU3BhbihtYXRjaFswXSwgIndlYmtpdC1jc3MtYXQtcnVsZSIpOwotICAg
IH0sCi0KLSAgICBzeW50YXhIaWdobGlnaHRMaW5lOiBmdW5jdGlvbihsaW5lLCBwcmV2TGluZSkK
KyAgICAgICAgdGhpcy5jdXJzb3IgKz0gdG9rZW4ubGVuZ3RoOworICAgICAgICB0aGlzLmxpbmVG
cmFnbWVudC5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVNwYW4odG9rZW4sICJ3ZWJraXQtY3NzLWNv
bW1lbnQiKSk7CisgICAgfQorICAgIAorICAgIGZ1bmN0aW9uIHNlbGVjdG9yQWN0aW9uKHRva2Vu
KQogICAgIHsKLSAgICAgICAgdmFyIGNvZGUgPSBsaW5lLnRleHRDb250ZW50OwotICAgICAgICB3
aGlsZSAobGluZS5maXJzdENoaWxkKQotICAgICAgICAgICAgbGluZS5yZW1vdmVDaGlsZChsaW5l
LmZpcnN0Q2hpbGQpOwotCi0gICAgICAgIHZhciB0b2tlbjsKLSAgICAgICAgdmFyIHRtcCA9IDA7
Ci0gICAgICAgIHZhciBpID0gMDsKLSAgICAgICAgdGhpcy5wcmV2aW91c01hdGNoTGVuZ3RoID0g
MDsKLQotICAgICAgICBpZiAocHJldkxpbmUpIHsKLSAgICAgICAgICAgIGlmIChwcmV2TGluZS5f
Y29tbWVudENvbnRpbnVlcykgewotICAgICAgICAgICAgICAgIGlmICghKHRva2VuID0gdGhpcy5m
aW5kTXVsdGlsaW5lQ29tbWVudEVuZChjb2RlKSkpIHsKLSAgICAgICAgICAgICAgICAgICAgdG9r
ZW4gPSB0aGlzLmNyZWF0ZVNwYW4oY29kZSwgIndlYmtpdC1qYXZhc2NyaXB0LWNvbW1lbnQiKTsK
LSAgICAgICAgICAgICAgICAgICAgbGluZS5fY29tbWVudENvbnRpbnVlcyA9IHRydWU7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHRva2VuKSB7Ci0g
ICAgICAgICAgICAgICAgaSArPSB0aGlzLnByZXZpb3VzTWF0Y2hMZW5ndGggPyB0aGlzLnByZXZp
b3VzTWF0Y2hMZW5ndGggOiBjb2RlLmxlbmd0aDsKLSAgICAgICAgICAgICAgICB0bXAgPSBpOwot
ICAgICAgICAgICAgICAgIGxpbmUuYXBwZW5kQ2hpbGQodG9rZW4pOwotICAgICAgICAgICAgfQor
ICAgICAgICB0aGlzLmN1cnNvciArPSB0b2tlbi5sZW5ndGg7CisgICAgICAgIHRoaXMubGluZUZy
YWdtZW50LmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlU3Bhbih0b2tlbiwgIndlYmtpdC1jc3Mtc2Vs
ZWN0b3IiKSk7CisgICAgfQorICAgIAorICAgIGZ1bmN0aW9uIHN0YXJ0UnVsZXNldEJsb2NrQWN0
aW9uKHRva2VuKQorICAgIHsKKyAgICAgICAgdGhpcy5jdXJzb3IgKz0gdG9rZW4ubGVuZ3RoOwor
ICAgICAgICB0aGlzLm5vblRva2VuICs9IHRva2VuOworICAgICAgICB0aGlzLmxleFN0YXRlID0g
dGhpcy5MZXhTdGF0ZS5EZWNsYXJhdGlvblByb3BlcnR5OworICAgIH0KKyAgICAKKyAgICBmdW5j
dGlvbiBlbmRSdWxlc2V0QmxvY2tBY3Rpb24odG9rZW4pCisgICAgeworICAgICAgICB0aGlzLmN1
cnNvciArPSB0b2tlbi5sZW5ndGg7CisgICAgICAgIHRoaXMubm9uVG9rZW4gKz0gdG9rZW47Cisg
ICAgICAgIHRoaXMubGV4U3RhdGUgPSB0aGlzLkxleFN0YXRlLkluaXRpYWw7CisgICAgfQorICAg
IAorICAgIGNvbnN0IHByb3BlcnR5S2V5d29yZHMgPSBbIi13ZWJraXQtbWF0Y2gtbmVhcmVzdC1t
YWlsLWJsb2NrcXVvdGUtY29sb3IiLCAKKyAgICAiLXdlYmtpdC12YXJpYWJsZS1kZWNsYXJhdGlv
bi1ibG9jayIsICItd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uIiwgCisgICAgIi13
ZWJraXQtdGV4dC1kZWNvcmF0aW9ucy1pbi1lZmZlY3QiLCAiLXdlYmtpdC1ib3JkZXItaG9yaXpv
bnRhbC1zcGFjaW5nIiwgCisgICAgIi13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiIs
ICItd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQiLCAKKyAgICAiLXdlYmtpdC1ib3Jk
ZXItdmVydGljYWwtc3BhY2luZyIsICItd2Via2l0LW1hcmdpbi1ib3R0b20tY29sbGFwc2UiLCAK
KyAgICAiLXdlYmtpdC1wZXJzcGVjdGl2ZS1vcmlnaW4teSIsICItd2Via2l0LXBlcnNwZWN0aXZl
LW9yaWdpbi14IiwgCisgICAgIi13ZWJraXQtYmFja2dyb3VuZC1jb21wb3NpdGUiLCAiLXdlYmtp
dC1hbmltYXRpb24tcGxheS1zdGF0ZSIsIAorICAgICItd2Via2l0LXRyYW5zaXRpb24tcHJvcGVy
dHkiLCAiLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uIiwgCisgICAgIi13ZWJraXQtbWFyZ2lu
LXRvcC1jb2xsYXBzZSIsICItd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGUiLCAKKyAgICAiLXdl
YmtpdC1jb2x1bW4tYnJlYWstYmVmb3JlIiwgIi13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eSIs
IAorICAgICItd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb24iLCAiYm9yZGVyLWJvdHRvbS1yaWdo
dC1yYWRpdXMiLCAKKyAgICAiLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luLXoiLCAiLXdlYmtpdC10
cmFuc2Zvcm0tb3JpZ2luLXkiLCAKKyAgICAiLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luLXgiLCAi
LXdlYmtpdC1wZXJzcGVjdGl2ZS1vcmlnaW4iLCAKKyAgICAiLXdlYmtpdC1tYXJxdWVlLXJlcGV0
aXRpb24iLCAiLXdlYmtpdC1jb2x1bW4tYnJlYWstYWZ0ZXIiLCAKKyAgICAiLXdlYmtpdC1hbmlt
YXRpb24tZHVyYXRpb24iLCAiYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cyIsICItd2Via2l0LXRl
eHQtc3Ryb2tlLXdpZHRoIiwgCisgICAgIi13ZWJraXQtdGV4dC1zdHJva2UtY29sb3IiLCAiLXdl
YmtpdC1tYXJxdWVlLWluY3JlbWVudCIsICItd2Via2l0LW1hcnF1ZWUtZGlyZWN0aW9uIiwgCisg
ICAgIi13ZWJraXQtY29sdW1uLXJ1bGUtd2lkdGgiLCAiLXdlYmtpdC1jb2x1bW4tcnVsZS1zdHls
ZSIsICItd2Via2l0LWNvbHVtbi1ydWxlLWNvbG9yIiwgCisgICAgIi13ZWJraXQtYm94LW9yZGlu
YWwtZ3JvdXAiLCAiLXdlYmtpdC1iYWNrZ3JvdW5kLW9yaWdpbiIsICItd2Via2l0LXRyYW5zaXRp
b24tZGVsYXkiLCAKKyAgICAiLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luIiwgIi13ZWJraXQtdGV4
dC1zaXplLWFkanVzdCIsICJ0ZXh0LWxpbmUtdGhyb3VnaC13aWR0aCIsIAorICAgICJ0ZXh0LWxp
bmUtdGhyb3VnaC1zdHlsZSIsICJ0ZXh0LWxpbmUtdGhyb3VnaC1jb2xvciIsICJib3JkZXItdG9w
LXJpZ2h0LXJhZGl1cyIsIAorICAgICItd2Via2l0LXRyYW5zZm9ybS1zdHlsZSIsICItd2Via2l0
LXRleHQtZmlsbC1jb2xvciIsICItd2Via2l0LW1hc2stcG9zaXRpb24teSIsIAorICAgICItd2Vi
a2l0LW1hc2stcG9zaXRpb24teCIsICItd2Via2l0LW1hc2stYXR0YWNobWVudCIsICItd2Via2l0
LW1hcmdpbi1jb2xsYXBzZSIsIAorICAgICItd2Via2l0LWZvbnQtc2l6ZS1kZWx0YSIsICItd2Vi
a2l0LWJhY2tncm91bmQtc2l6ZSIsICItd2Via2l0LWJhY2tncm91bmQtY2xpcCIsIAorICAgICIt
d2Via2l0LWFuaW1hdGlvbi1kZWxheSIsICJ0ZXh0LWxpbmUtdGhyb3VnaC1tb2RlIiwgImJvcmRl
ci10b3AtbGVmdC1yYWRpdXMiLCAKKyAgICAiLXdlYmtpdC1tYXNrLWNvbXBvc2l0ZSIsICItd2Vi
a2l0LW1hc2stYm94LWltYWdlIiwgIi13ZWJraXQtZm9udC1zbW9vdGhpbmciLCAKKyAgICAiLXdl
YmtpdC1ib3gtZmxleC1ncm91cCIsICItd2Via2l0LWFuaW1hdGlvbi1uYW1lIiwgImJhY2tncm91
bmQtcG9zaXRpb24teSIsIAorICAgICJiYWNrZ3JvdW5kLXBvc2l0aW9uLXgiLCAiYmFja2dyb3Vu
ZC1hdHRhY2htZW50IiwgIi13ZWJraXQtdGV4dC1zZWN1cml0eSIsIAorICAgICItd2Via2l0LXBh
ZGRpbmctc3RhcnQiLCAiLXdlYmtpdC1tYXNrLXJlcGVhdC15IiwgIi13ZWJraXQtbWFzay1yZXBl
YXQteCIsIAorICAgICItd2Via2l0LW1hc2stcG9zaXRpb24iLCAiLXdlYmtpdC1tYXJxdWVlLXN0
eWxlIiwgIi13ZWJraXQtbWFycXVlZS1zcGVlZCIsIAorICAgICItd2Via2l0LWJveC1kaXJlY3Rp
b24iLCAiLXdlYmtpdC1ib3JkZXItcmFkaXVzIiwgInRleHQtdW5kZXJsaW5lLXdpZHRoIiwgCisg
ICAgInRleHQtdW5kZXJsaW5lLXN0eWxlIiwgInRleHQtdW5kZXJsaW5lLWNvbG9yIiwgIi13ZWJr
aXQtcnRsLW9yZGVyaW5nIiwgCisgICAgIi13ZWJraXQtbWFyZ2luLXN0YXJ0IiwgIi13ZWJraXQt
Y29sdW1uLXdpZHRoIiwgIi13ZWJraXQtY29sdW1uLWNvdW50IiwgCisgICAgIi13ZWJraXQtYm9y
ZGVyLWltYWdlIiwgInRleHQtdW5kZXJsaW5lLW1vZGUiLCAidGV4dC1vdmVybGluZS13aWR0aCIs
IAorICAgICJ0ZXh0LW92ZXJsaW5lLXN0eWxlIiwgInRleHQtb3ZlcmxpbmUtY29sb3IiLCAibGlz
dC1zdHlsZS1wb3NpdGlvbiIsIAorICAgICJib3JkZXItYm90dG9tLXdpZHRoIiwgImJvcmRlci1i
b3R0b20tc3R5bGUiLCAiYm9yZGVyLWJvdHRvbS1jb2xvciIsIAorICAgICJiYWNrZ3JvdW5kLXJl
cGVhdC15IiwgImJhY2tncm91bmQtcmVwZWF0LXgiLCAiYmFja2dyb3VuZC1wb3NpdGlvbiIsIAor
ICAgICItd2Via2l0LXVzZXItc2VsZWN0IiwgIi13ZWJraXQtdXNlci1tb2RpZnkiLCAiLXdlYmtp
dC10ZXh0LXN0cm9rZSIsIAorICAgICItd2Via2l0LXBlcnNwZWN0aXZlIiwgIi13ZWJraXQtbWFz
ay1yZXBlYXQiLCAiLXdlYmtpdC1tYXNrLW9yaWdpbiIsIAorICAgICItd2Via2l0LWNvbHVtbi1y
dWxlIiwgIi13ZWJraXQtYm94LXJlZmxlY3QiLCAidGV4dC1vdmVybGluZS1tb2RlIiwgImJvcmRl
ci1yaWdodC13aWR0aCIsIAorICAgICJib3JkZXItcmlnaHQtc3R5bGUiLCAiYm9yZGVyLXJpZ2h0
LWNvbG9yIiwgIi13ZWJraXQtdHJhbnNpdGlvbiIsICItd2Via2l0LW1hc2staW1hZ2UiLCAKKyAg
ICAiLXdlYmtpdC1saW5lLWNsYW1wIiwgIi13ZWJraXQtbGluZS1icmVhayIsICItd2Via2l0LWNv
bHVtbi1nYXAiLCAiLXdlYmtpdC1ib3gtc2l6aW5nIiwgCisgICAgIi13ZWJraXQtYm94LXNoYWRv
dyIsICItd2Via2l0LWJveC1vcmllbnQiLCAiLXdlYmtpdC1ib3JkZXItZml0IiwgIi13ZWJraXQt
YXBwZWFyYW5jZSIsIAorICAgICJ0ZXh0LWxpbmUtdGhyb3VnaCIsICJwYWdlLWJyZWFrLWluc2lk
ZSIsICJwYWdlLWJyZWFrLWJlZm9yZSIsICJjb3VudGVyLWluY3JlbWVudCIsIAorICAgICJib3Jk
ZXItbGVmdC13aWR0aCIsICJib3JkZXItbGVmdC1zdHlsZSIsICJib3JkZXItbGVmdC1jb2xvciIs
ICJiYWNrZ3JvdW5kLXJlcGVhdCIsIAorICAgICJiYWNrZ3JvdW5kLW9yaWdpbiIsICItd2Via2l0
LXVzZXItZHJhZyIsICItd2Via2l0LXRyYW5zZm9ybSIsICItd2Via2l0LW5ic3AtbW9kZSIsIAor
ICAgICItd2Via2l0LW1hc2stc2l6ZSIsICItd2Via2l0LW1hc2stY2xpcCIsICItd2Via2l0LWhp
Z2hsaWdodCIsICItd2Via2l0LWJveC1saW5lcyIsIAorICAgICItd2Via2l0LWJveC1hbGlnbiIs
ICItd2Via2l0LWFuaW1hdGlvbiIsICJwYWdlLWJyZWFrLWFmdGVyIiwgImxpc3Qtc3R5bGUtaW1h
Z2UiLCAKKyAgICAiYm9yZGVyLXRvcC13aWR0aCIsICJib3JkZXItdG9wLXN0eWxlIiwgImJvcmRl
ci10b3AtY29sb3IiLCAiYmFja2dyb3VuZC1pbWFnZSIsIAorICAgICJiYWNrZ3JvdW5kLWNvbG9y
IiwgIi13ZWJraXQtYm94LXBhY2siLCAiLXdlYmtpdC1ib3gtZmxleCIsICJ0ZXh0LWRlY29yYXRp
b24iLCAKKyAgICAibGlzdC1zdHlsZS10eXBlIiwgImJvcmRlci1jb2xsYXBzZSIsICJiYWNrZ3Jv
dW5kLXNpemUiLCAiYmFja2dyb3VuZC1jbGlwIiwgCisgICAgIi13ZWJraXQtbWFycXVlZSIsICIt
d2Via2l0LWNvbHVtbnMiLCAiLXdlYmtpdC1iaW5kaW5nIiwgInZlcnRpY2FsLWFsaWduIiwgCisg
ICAgInRleHQtdW5kZXJsaW5lIiwgInRleHQtdHJhbnNmb3JtIiwgInRleHQtcmVuZGVyaW5nIiwg
InBvaW50ZXItZXZlbnRzIiwgInBhZGRpbmctYm90dG9tIiwgCisgICAgIm91dGxpbmUtb2Zmc2V0
IiwgImxldHRlci1zcGFjaW5nIiwgImJvcmRlci1zcGFjaW5nIiwgInVuaWNvZGUtcmFuZ2UiLCAi
dGV4dC1vdmVybGluZSIsIAorICAgICJ0ZXh0LW92ZXJmbG93IiwgInBhZGRpbmctcmlnaHQiLCAi
b3V0bGluZS13aWR0aCIsICJvdXRsaW5lLXN0eWxlIiwgIm91dGxpbmUtY29sb3IiLCAKKyAgICAi
bWFyZ2luLWJvdHRvbSIsICJjb3VudGVyLXJlc2V0IiwgImJvcmRlci1yYWRpdXMiLCAiYm9yZGVy
LWJvdHRvbSIsICJ3b3JkLXNwYWNpbmciLCAKKyAgICAidW5pY29kZS1iaWRpIiwgInRhYmxlLWxh
eW91dCIsICJwYWRkaW5nLWxlZnQiLCAibWFyZ2luLXJpZ2h0IiwgImZvbnQtdmFyaWFudCIsIAor
ICAgICJmb250LXN0cmV0Y2giLCAiY2FwdGlvbi1zaWRlIiwgImJvcmRlci13aWR0aCIsICJib3Jk
ZXItc3R5bGUiLCAiYm9yZGVyLXJpZ2h0IiwgCisgICAgImJvcmRlci1jb2xvciIsICItd2Via2l0
LW1hc2siLCAid2hpdGUtc3BhY2UiLCAidGV4dC1zaGFkb3ciLCAidGV4dC1pbmRlbnQiLCAKKyAg
ICAicGFkZGluZy10b3AiLCAibWFyZ2luLWxlZnQiLCAibGluZS1oZWlnaHQiLCAiZm9udC13ZWln
aHQiLCAiZm9udC1mYW1pbHkiLCAKKyAgICAiZW1wdHktY2VsbHMiLCAiYm9yZGVyLWxlZnQiLCAi
d29yZC1icmVhayIsICJ2aXNpYmlsaXR5IiwgInRleHQtYWxpZ24iLCAKKyAgICAib3ZlcmZsb3ct
eSIsICJvdmVyZmxvdy14IiwgIm1pbi1oZWlnaHQiLCAibWF4LWhlaWdodCIsICJtYXJnaW4tdG9w
IiwgCisgICAgImxpc3Qtc3R5bGUiLCAiZm9udC1zdHlsZSIsICJib3JkZXItdG9wIiwgImJhY2tn
cm91bmQiLCAid29yZC13cmFwIiwgCisgICAgIm1pbi13aWR0aCIsICJtYXgtd2lkdGgiLCAiZm9u
dC1zaXplIiwgImRpcmVjdGlvbiIsICJwb3NpdGlvbiIsICJvdmVyZmxvdyIsICJ6LWluZGV4Iiwg
CisgICAgInBhZGRpbmciLCAib3V0bGluZSIsICJvcnBoYW5zIiwgIm9wYWNpdHkiLCAiZGlzcGxh
eSIsICJjb250ZW50IiwgIndpZG93cyIsICJyZXNpemUiLCAKKyAgICAicXVvdGVzIiwgIm1hcmdp
biIsICJoZWlnaHQiLCAiY3Vyc29yIiwgImJvdHRvbSIsICJib3JkZXIiLCAid2lkdGgiLCAicmln
aHQiLCAiZmxvYXQiLCAKKyAgICAiY29sb3IiLCAiY2xlYXIiLCAiem9vbSIsICJzaXplIiwgInBh
Z2UiLCAibGVmdCIsICJmb250IiwgImNsaXAiLCAidG9wIiwgInNyYyJdOworICAgIGZ1bmN0aW9u
IHByb3BlcnR5QWN0aW9uKHRva2VuKQorICAgIHsKKyAgICAgICAgdGhpcy5jdXJzb3IgKz0gdG9r
ZW4ubGVuZ3RoOworICAgICAgICBpZiAocHJvcGVydHlLZXl3b3Jkcy5pbmRleE9mKHRva2VuKSA9
PT0gLTEpCisgICAgICAgICAgICB0aGlzLm5vblRva2VuICs9IHRva2VuOworICAgICAgICBlbHNl
IHsKKyAgICAgICAgICAgIHRoaXMuYXBwZW5kTm9uVG9rZW4uY2FsbCh0aGlzKTsKKyAgICAgICAg
ICAgIHRoaXMubGluZUZyYWdtZW50LmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlU3Bhbih0b2tlbiwg
IndlYmtpdC1jc3MtcHJvcGVydHkiKSk7CiAgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgZnVu
Y3Rpb24gZGVjbGFyYXRpb25Db2xvbkFjdGlvbih0b2tlbikKKyAgICB7CisgICAgICAgIHRoaXMu
Y3Vyc29yICs9IHRva2VuLmxlbmd0aDsKKyAgICAgICAgdGhpcy5ub25Ub2tlbiArPSB0b2tlbjsK
KyAgICAgICAgdGhpcy5sZXhTdGF0ZSA9IHRoaXMuTGV4U3RhdGUuRGVjbGFyYXRpb25WYWx1ZTsK
KyAgICB9CiAKLSAgICAgICAgdmFyIGluU2VsZWN0b3IgPSAocHJldkxpbmUgJiYgcHJldkxpbmUu
X2luU2VsZWN0b3IpOyAvLyBpbnNpZGUgYSBzZWxlY3Rvciwgd2UgY2FuIG5vdyBwYXJzZSBwcm9w
ZXJ0aWVzIGFuZCB2YWx1ZXMKLSAgICAgICAgdmFyIGluQXRSdWxlQmxvY2sgPSAocHJldkxpbmUg
JiYgcHJldkxpbmUuX2luQXRSdWxlQmxvY2spOyAvLyBpbnNpZGUgYW4gQHJ1bGUgYmxvY2ssIGJ1
dCBub3QgbmVjZXNzYXJpbHkgaW5zaWRlIGEgc2VsZWN0b3IgeWV0Ci0gICAgICAgIHZhciBhdFJ1
bGVTdGFydGVkID0gKHByZXZMaW5lICYmIHByZXZMaW5lLl9hdFJ1bGVTdGFydGVkKTsgLy8gd2Ug
cmVjZWl2ZWQgYW4gQHJ1bGUsIHdlIG1heSBzdG9wIHRoZSBAcnVsZSBhdCBhIHNlbWljb2xvbiBv
ciBvcGVuIGEgYmxvY2sgYW5kIGJlY29tZSBpbkF0UnVsZUJsb2NrCi0gICAgICAgIHZhciBhdFJ1
bGVJc1NlbGVjdG9yID0gKHByZXZMaW5lICYmIHByZXZMaW5lLl9hdFJ1bGVJc1NlbGVjdG9yKTsg
Ly8gd2hlbiB0aGlzIEBydWxlIG9wZW5zIGEgYmxvY2sgaXQgaW1tZWRpYXRlbHkgZ29lcyBpbnRv
IHBhcnNpbmcgcHJvcGVydGllcyBhbmQgdmFsdWVzIGluc3RlYWQgb2Ygc2VsZWN0b3JzCi0KLSAg
ICAgICAgZm9yICggOyBpIDwgY29kZS5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIGNv
ZGVGcmFnbWVudCA9IGNvZGUuc3Vic3RyKGkpOwotICAgICAgICAgICAgdmFyIHByZXZDaGFyID0g
Y29kZVtpIC0gMV07Ci0gICAgICAgICAgICB2YXIgY3VyckNoYXIgPSBjb2RlRnJhZ21lbnRbMF07
Ci0gICAgICAgICAgICB0b2tlbiA9IHRoaXMuZmluZFNpbmdsZUxpbmVDb21tZW50KGNvZGVGcmFn
bWVudCk7Ci0gICAgICAgICAgICBpZiAoIXRva2VuKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCh0
b2tlbiA9IHRoaXMuZmluZE11bHRpbGluZUNvbW1lbnRTdGFydChjb2RlRnJhZ21lbnQpKSkKLSAg
ICAgICAgICAgICAgICAgICAgbGluZS5fY29tbWVudENvbnRpbnVlcyA9IHRydWU7Ci0gICAgICAg
ICAgICAgICAgZWxzZSBpZiAoY3VyckNoYXIgPT09ICI7IiAmJiAhaW5BdFJ1bGVCbG9jaykKLSAg
ICAgICAgICAgICAgICAgICAgYXRSdWxlU3RhcnRlZCA9IGZhbHNlOwotICAgICAgICAgICAgICAg
IGVsc2UgaWYgKGN1cnJDaGFyID09PSAifSIpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGlu
U2VsZWN0b3IgJiYgaW5BdFJ1bGVCbG9jayAmJiBhdFJ1bGVJc1NlbGVjdG9yKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBpblNlbGVjdG9yID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBpbkF0UnVsZUJsb2NrID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhdFJ1
bGVTdGFydGVkID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5TZWxl
Y3RvcikgewotICAgICAgICAgICAgICAgICAgICAgICAgaW5TZWxlY3RvciA9IGZhbHNlOwotICAg
ICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGluQXRSdWxlQmxvY2spIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGluQXRSdWxlQmxvY2sgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGF0UnVsZVN0YXJ0ZWQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIH0gZWxzZSBpZiAoY3VyckNoYXIgPT09ICJ7IikgewotICAgICAgICAgICAgICAg
ICAgICBpZiAoIWF0UnVsZVN0YXJ0ZWQgfHwgaW5BdFJ1bGVCbG9jaykgewotICAgICAgICAgICAg
ICAgICAgICAgICAgaW5TZWxlY3RvciA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxz
ZSBpZiAoIWluQXRSdWxlQmxvY2sgJiYgYXRSdWxlSXNTZWxlY3RvcikgewotICAgICAgICAgICAg
ICAgICAgICAgICAgaW5BdFJ1bGVCbG9jayA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBpblNlbGVjdG9yID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghaW5B
dFJ1bGVCbG9jaykgewotICAgICAgICAgICAgICAgICAgICAgICAgaW5BdFJ1bGVCbG9jayA9IHRy
dWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpblNlbGVjdG9yID0gZmFsc2U7Ci0gICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGluU2VsZWN0b3IpIHsK
LSAgICAgICAgICAgICAgICAgICAgaWYgKCFwcmV2Q2hhciB8fCAvXlxkLy50ZXN0KHByZXZDaGFy
KSkgewotICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4gPSB0aGlzLmZpbmRVbml0cyhjb2Rl
RnJhZ21lbnQpOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFwcmV2Q2hhciB8fCAv
XlxXLy50ZXN0KHByZXZDaGFyKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4gPSB0
aGlzLmZpbmROdW1iZXIoY29kZUZyYWdtZW50KSB8fAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0aGlzLmZpbmRLZXl3b3JkKGNvZGVGcmFnbWVudCkgfHwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGhpcy5maW5kVVJMKGNvZGVGcmFnbWVudCkgfHwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maW5kUHJvcGVydHkoY29kZUZyYWdtZW50KSB8
fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbmRBdFJ1bGUoY29kZUZy
YWdtZW50KSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbmRHZW5l
cmljSWRlbnQoY29kZUZyYWdtZW50KSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0aGlzLmZpbmRTaW5nbGVMaW5lU3RyaW5nKGNvZGVGcmFnbWVudCk7Ci0gICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFpblNlbGVjdG9yKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIGlmIChhdFJ1bGVTdGFydGVkICYmICFpbkF0UnVsZUJsb2NrKQotICAg
ICAgICAgICAgICAgICAgICAgICAgdG9rZW4gPSB0aGlzLmZpbmRVUkwoY29kZUZyYWdtZW50KTsg
Ly8gZm9yIEBpbXBvcnQKLSAgICAgICAgICAgICAgICAgICAgaWYgKCF0b2tlbikgewotICAgICAg
ICAgICAgICAgICAgICAgICAgdG9rZW4gPSB0aGlzLmZpbmRTZWxlY3Rvcihjb2RlRnJhZ21lbnQp
IHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmluZFBzZXVkb0NsYXNz
KGNvZGVGcmFnbWVudCkgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5m
aW5kQXRSdWxlKGNvZGVGcmFnbWVudCk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmICh0b2tlbikgewotICAg
ICAgICAgICAgICAgIGlmIChjdXJyQ2hhciA9PT0gIkAiKSB7Ci0gICAgICAgICAgICAgICAgICAg
IGF0UnVsZVN0YXJ0ZWQgPSB0cnVlOwotCi0gICAgICAgICAgICAgICAgICAgIC8vIFRoZSBAZm9u
dC1mYWNlLCBAcGFnZSwgYW5kIEB2YXJpYWJsZXMgYXQtcnVsZXMgZG8gbm90IGNvbnRhaW4gc2Vs
ZWN0b3JzIGxpa2Ugb3RoZXIgYXQtcnVsZXMKLSAgICAgICAgICAgICAgICAgICAgLy8gaW5zdGVh
ZCBpdCBhY3RzIGFzIGEgc2VsZWN0b3IgYW5kIGNvbnRhaW5zIHByb3BlcnRpZXMgYW5kIHZhbHVl
cy4KLSAgICAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSB0b2tlbi50ZXh0Q29udGVudDsKLSAg
ICAgICAgICAgICAgICAgICAgYXRSdWxlSXNTZWxlY3RvciA9IC9mb250LWZhY2UvLnRlc3QodGV4
dCkgfHwgL3BhZ2UvLnRlc3QodGV4dCkgfHwgL3ZhcmlhYmxlcy8udGVzdCh0ZXh0KTsKLSAgICAg
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBpZiAodG1wICE9PSBpKQotICAgICAgICAg
ICAgICAgICAgICBsaW5lLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNvZGUu
c3Vic3RyaW5nKHRtcCwgaSkpKTsKLSAgICAgICAgICAgICAgICBsaW5lLmFwcGVuZENoaWxkKHRv
a2VuKTsKLSAgICAgICAgICAgICAgICBpICs9IHRoaXMucHJldmlvdXNNYXRjaExlbmd0aCAtIDE7
Ci0gICAgICAgICAgICAgICAgdG1wID0gaSArIDE7Ci0gICAgICAgICAgICB9CisgICAgY29uc3Qg
dmFsdWVLZXl3b3JkcyA9IFsibWVkaWEtcmV0dXJuLXRvLXJlYWx0aW1lLWJ1dHRvbiIsICJzZWFy
Y2hmaWVsZC1yZXN1bHRzLWRlY29yYXRpb24iLCAKKyAgICAibWVkaWEtdm9sdW1lLXNsaWRlci1j
b250YWluZXIiLCAibWVkaWEtdGltZS1yZW1haW5pbmctZGlzcGxheSIsICJzZWFyY2hmaWVsZC1y
ZXN1bHRzLWJ1dHRvbiIsIAorICAgICJtZWRpYS1jdXJyZW50LXRpbWUtZGlzcGxheSIsICJzZWFy
Y2hmaWVsZC1jYW5jZWwtYnV0dG9uIiwgInJlYWQtd3JpdGUtcGxhaW50ZXh0LW9ubHkiLCAKKyAg
ICAibWVkaWEtc2Vlay1mb3J3YXJkLWJ1dHRvbiIsICJtZWRpYS1jb250cm9scy1iYWNrZ3JvdW5k
IiwgIm1lZGlhLXZvbHVtZS1zbGlkZXJ0aHVtYiIsIAorICAgICItd2Via2l0LWZvY3VzLXJpbmct
Y29sb3IiLCAibWVkaWEtZnVsbHNjcmVlbi1idXR0b24iLCAiLXdlYmtpdC1iYXNlbGluZS1taWRk
bGUiLCAKKyAgICAic2xpZGVydGh1bWItaG9yaXpvbnRhbCIsICJzZWFyY2hmaWVsZC1kZWNvcmF0
aW9uIiwgIm1lZGlhLXNlZWstYmFjay1idXR0b24iLCAKKyAgICAiLXdlYmtpdC1zbWFsbC1jb250
cm9sIiwgInN1YnBpeGVsLWFudGlhbGlhc2VkIiwgInNsaWRlcnRodW1iLXZlcnRpY2FsIiwgImRl
Y2ltYWwtbGVhZGluZy16ZXJvIiwgCisgICAgIi13ZWJraXQtbWluaS1jb250cm9sIiwgIm1lZGlh
LXZvbHVtZS1zbGlkZXIiLCAibWVkaWEtcmV3aW5kLWJ1dHRvbiIsICJpbmFjdGl2ZWNhcHRpb250
ZXh0IiwgCisgICAgImNhcHMtbG9jay1pbmRpY2F0b3IiLCAidGFibGUtaGVhZGVyLWdyb3VwIiwg
InRhYmxlLWZvb3Rlci1ncm91cCIsICJ0YWJsZS1jb2x1bW4tZ3JvdXAiLCAKKyAgICAib3B0aW1p
emVMZWdpYmlsaXR5IiwgIm1lbnVsaXN0LXRleHRmaWVsZCIsICJnZW9tZXRyaWNQcmVjaXNpb24i
LCAiLXdlYmtpdC1pbmxpbmUtYm94IiwgCisgICAgIi13ZWJraXQtYWN0aXZlbGluayIsICJ0aHJl
ZWRsaWdodHNoYWRvdyIsICJzbGlkZXItaG9yaXpvbnRhbCIsICJtZWRpYS1zbGlkZXJ0aHVtYiIs
IAorICAgICJtZWRpYS1wbGF5LWJ1dHRvbiIsICJtZWRpYS1tdXRlLWJ1dHRvbiIsICJhZnRlci13
aGl0ZS1zcGFjZSIsICItd2Via2l0LXh4eC1sYXJnZSIsIAorICAgICJ0aHJlZWRkYXJrc2hhZG93
IiwgInNraXAtd2hpdGUtc3BhY2UiLCAiZGVzdGluYXRpb24tb3ZlciIsICJkZXN0aW5hdGlvbi1h
dG9wIiwgCisgICAgIi13ZWJraXQtem9vbS1vdXQiLCAiLXdlYmtpdC1ncmFiYmluZyIsICJ1bHRy
YS1jb25kZW5zZWQiLCAidGhyZWVkaGlnaGxpZ2h0IiwgInRhYmxlLXJvdy1ncm91cCIsIAorICAg
ICJzbGlkZXItdmVydGljYWwiLCAibWVudWxpc3QtYnV0dG9uIiwgImluYWN0aXZlY2FwdGlvbiIs
ICJleHRyYS1jb25kZW5zZWQiLCAiZGVzdGluYXRpb24tb3V0IiwgCisgICAgImNqay1pZGVvZ3Jh
cGhpYyIsICJidXR0b25oaWdobGlnaHQiLCAiLXdlYmtpdC16b29tLWluIiwgIi13ZWJraXQtbWFy
cXVlZSIsICItd2Via2l0LWNvbnRyb2wiLCAKKyAgICAidmlzaWJsZVBhaW50ZWQiLCAidWx0cmEt
ZXhwYW5kZWQiLCAic2VtaS1jb25kZW5zZWQiLCAibm8tY2xvc2UtcXVvdGUiLCAia2F0YWthbmEt
aXJvaGEiLCAKKyAgICAiaW5mb2JhY2tncm91bmQiLCAiaW5hY3RpdmVib3JkZXIiLCAiaGlyYWdh
bmEtaXJvaGEiLCAiZXh0cmEtZXhwYW5kZWQiLCAiZGVzdGluYXRpb24taW4iLCAKKyAgICAiZGVm
YXVsdC1idXR0b24iLCAiLXdlYmtpdC1ub3dyYXAiLCAiLXdlYmtpdC1jZW50ZXIiLCAidmlzaWJs
ZVN0cm9rZSIsICJ2ZXJ0aWNhbC10ZXh0IiwgCisgICAgInRhYmxlLWNhcHRpb24iLCAic3F1YXJl
LWJ1dHRvbiIsICJzbWFsbC1jYXB0aW9uIiwgInNlbWktZXhwYW5kZWQiLCAib3B0aW1pemVTcGVl
ZCIsIAorICAgICJuby1vcGVuLXF1b3RlIiwgIm1pbi1pbnRyaW5zaWMiLCAibWVudWxpc3QtdGV4
dCIsICJoaWdobGlnaHR0ZXh0IiwgImJpZGktb3ZlcnJpZGUiLCAKKyAgICAiYWN0aXZlY2FwdGlv
biIsICItd2Via2l0LXJpZ2h0IiwgInRocmVlZHNoYWRvdyIsICJ0YWJsZS1jb2x1bW4iLCAicGx1
cy1saWdodGVyIiwgIm1lZGlhLXNsaWRlciIsIAorICAgICJsaW5lLXRocm91Z2giLCAiaW5saW5l
LXRhYmxlIiwgImlubGluZS1ibG9jayIsICJkb3QtZG90LWRhc2giLCAiY3VycmVudGNvbG9yIiwg
ImNvbnRleHQtbWVudSIsIAorICAgICJidXR0b25zaGFkb3ciLCAiYnV0dG9uLWJldmVsIiwgImFw
cHdvcmtzcGFjZSIsICJhY3RpdmVib3JkZXIiLCAiLXdlYmtpdC10ZXh0IiwgIi13ZWJraXQtbGlu
ayIsIAorICAgICItd2Via2l0LWxlZnQiLCAiLXdlYmtpdC1ncmFiIiwgIi13ZWJraXQtYm9keSIs
ICItd2Via2l0LWF1dG8iLCAiLXdhcC1tYXJxdWVlIiwgIndpbmRvd2ZyYW1lIiwgCisgICAgInZp
c2libGVGaWxsIiwgInVwcGVyLXJvbWFuIiwgInVwcGVyLWxhdGluIiwgInVwcGVyLWFscGhhIiwg
InRyYW5zcGFyZW50IiwgInRleHQtYm90dG9tIiwgCisgICAgInNvdXJjZS1vdmVyIiwgInNvdXJj
ZS1hdG9wIiwgInNlYXJjaGZpZWxkIiwgInB1c2gtYnV0dG9uIiwgInByZXNlcnZlLTNkIiwgInBs
dXMtZGFya2VyIiwgCisgICAgInBhZGRpbmctYm94IiwgIm53c2UtcmVzaXplIiwgIm5vdC1hbGxv
d2VkIiwgIm5lc3ctcmVzaXplIiwgIm1lc3NhZ2UtYm94IiwgImxvd2VyLXJvbWFuIiwgCisgICAg
Imxvd2VyLWxhdGluIiwgImxvd2VyLWdyZWVrIiwgImxvd2VyLWFscGhhIiwgImxpc3QtYnV0dG9u
IiwgImlubGluZS1heGlzIiwgImVhc2UtaW4tb3V0IiwgCisgICAgImNvbnRlbnQtYm94IiwgImNs
b3NlLXF1b3RlIiwgImNhcHRpb250ZXh0IiwgImFudGlhbGlhc2VkIiwgIi13ZWJraXQtYm94Iiwg
IndpbmRvd3RleHQiLCAKKyAgICAidGhyZWVkZmFjZSIsICJ0YWJsZS1jZWxsIiwgInN0YXR1cy1i
YXIiLCAic291cmNlLW91dCIsICJzbWFsbC1jYXBzIiwgInNhbnMtc2VyaWYiLCAKKyAgICAicm93
LXJlc2l6ZSIsICJyZWFkLXdyaXRlIiwgIm9wZW4tcXVvdGUiLCAiaG9yaXpvbnRhbCIsICJjb250
aW51b3VzIiwgImNvbC1yZXNpemUiLCAKKyAgICAiY2FwaXRhbGl6ZSIsICJidXR0b250ZXh0Iiwg
ImJ1dHRvbmZhY2UiLCAiYnJlYWstd29yZCIsICJib3JkZXItYm94IiwgImJsb2NrLWF4aXMiLCAK
KyAgICAiYmFja2dyb3VuZCIsICJhbGwtc2Nyb2xsIiwgInVwcGVyY2FzZSIsICJ1bmRlcmxpbmUi
LCAidGV4dGZpZWxkIiwgInRhYmxlLXJvdyIsICJzdy1yZXNpemUiLCAKKyAgICAic291cmNlLWlu
IiwgInNlLXJlc2l6ZSIsICJzY3JvbGxiYXIiLCAicmVhZC1vbmx5IiwgIm53LXJlc2l6ZSIsICJu
cy1yZXNpemUiLCAibm8tcmVwZWF0IiwgCisgICAgIm5lLXJlc2l6ZSIsICJtb25vc3BhY2UiLCAi
bG93ZXJjYXNlIiwgImxpc3QtaXRlbSIsICJsYW5kc2NhcGUiLCAiaW50cmluc2ljIiwgImhpZ2hs
aWdodCIsIAorICAgICJldy1yZXNpemUiLCAiY3Jvc3NoYWlyIiwgImNvbmRlbnNlZCIsICJicmVh
ay1hbGwiLCAiYmFja3dhcmRzIiwgImFsdGVybmF0ZSIsICJ4eC1zbWFsbCIsIAorICAgICJ4eC1s
YXJnZSIsICJ3LXJlc2l6ZSIsICJ2ZXJ0aWNhbCIsICJ0ZXh0YXJlYSIsICJ0ZXh0LXRvcCIsICJz
ZXBhcmF0ZSIsICJzLXJlc2l6ZSIsIAorICAgICJyZXBlYXQteSIsICJyZXBlYXQteCIsICJyZWxh
dGl2ZSIsICJwcm9ncmVzcyIsICJwcmUtd3JhcCIsICJwcmUtbGluZSIsICJwb3J0cmFpdCIsIAor
ICAgICJvdmVybGluZSIsICJuYXJyb3dlciIsICJuLXJlc2l6ZSIsICJtdWx0aXBsZSIsICJtZW51
dGV4dCIsICJtZW51bGlzdCIsICJsaXN0aXRlbSIsIAorICAgICJrYXRha2FuYSIsICJpbmZvdGV4
dCIsICJpbmZpbml0ZSIsICJoaXJhZ2FuYSIsICJncmF5dGV4dCIsICJnZW9yZ2lhbiIsICJmb3J3
YXJkcyIsIAorICAgICJleHBhbmRlZCIsICJlbGxpcHNpcyIsICJlYXNlLW91dCIsICJlLXJlc2l6
ZSIsICJkb3QtZGFzaCIsICJkb2N1bWVudCIsICJjb2xsYXBzZSIsIAorICAgICJjaGVja2JveCIs
ICJiYXNlbGluZSIsICJhcm1lbmlhbiIsICJhYnNvbHV0ZSIsICJ4LXNtYWxsIiwgIngtbGFyZ2Ui
LCAidmlzaWJsZSIsICJzdHJldGNoIiwgCisgICAgInNtYWxsZXIiLCAicnVubmluZyIsICJyZXZl
cnNlIiwgInBvaW50ZXIiLCAicGFpbnRlZCIsICJwYWRkaW5nIiwgIm92ZXJsYXkiLCAib3V0c2lk
ZSIsIAorICAgICJvYmxpcXVlIiwgIm5vLWRyb3AiLCAibG9naWNhbCIsICJsaXN0Ym94IiwgImxp
Z2h0ZXIiLCAianVzdGlmeSIsICJpbml0aWFsIiwgImluaGVyaXQiLCAKKyAgICAiZnVjaHNpYSIs
ICJmYW50YXN5IiwgImVsZW1lbnQiLCAiZWFzZS1pbiIsICJkaXNjYXJkIiwgImRlZmF1bHQiLCAi
ZGVjaW1hbCIsICJjdXJzaXZlIiwgCisgICAgImNvbnRlbnQiLCAiY29udGFpbiIsICJjb21wYWN0
IiwgImNhcHRpb24iLCAieWVsbG93IiwgIndpbmRvdyIsICJ2aXN1YWwiLCAic3Ryb2tlIiwgCisg
ICAgInN0YXRpYyIsICJzcXVhcmUiLCAic2luZ2xlIiwgInNpbHZlciIsICJzY3JvbGwiLCAicnVu
LWluIiwgInJlcGVhdCIsICJwdXJwbGUiLCAicGF1c2VkIiwgCisgICAgIm91dHNldCIsICJvcmFu
Z2UiLCAibm93cmFwIiwgIm5vcm1hbCIsICJtaWRkbGUiLCAibWVkaXVtIiwgIm1hcm9vbiIsICJs
aW5lYXIiLCAibGFyZ2VyIiwgCisgICAgIml0YWxpYyIsICJpbnZlcnQiLCAiaW5zaWRlIiwgImlu
bGluZSIsICJpZ25vcmUiLCAiaGlnaGVyIiwgImhpZGRlbiIsICJoZWJyZXciLCAiZ3Jvb3ZlIiwg
CisgICAgImRvdWJsZSIsICJkb3R0ZWQiLCAiZGFzaGVkIiwgImNpcmNsZSIsICJjZW50ZXIiLCAi
YnV0dG9uIiwgImJvdHRvbSIsICJib3JkZXIiLCAiYm9sZGVyIiwgCisgICAgImFsd2F5cyIsICJ3
aWRlciIsICJ3aGl0ZSIsICJ0aGljayIsICJ0YWJsZSIsICJzdXBlciIsICJzdGFydCIsICJzcGFj
ZSIsICJzb2xpZCIsICJzbWFsbCIsIAorICAgICJzbGlkZSIsICJzZXJpZiIsICJyb3VuZCIsICJy
aWdodCIsICJyaWRnZSIsICJyZXNldCIsICJyYWRpbyIsICJvbGl2ZSIsICJtYXRjaCIsICJsb3dl
ciIsIAorICAgICJsb2NhbCIsICJsaW5lcyIsICJsZXZlbCIsICJsYXJnZSIsICJpbnNldCIsICJn
cmVlbiIsICJmaXhlZCIsICJlbWJlZCIsICJjcm9zcyIsICJjb3ZlciIsIAorICAgICJjbGVhciIs
ICJjYXJldCIsICJibG9jayIsICJibGluayIsICJibGFjayIsICJiZWxvdyIsICJhdm9pZCIsICJh
bGlhcyIsICJhaGVhZCIsICJhYm92ZSIsIAorICAgICJ3YXZlIiwgIndhaXQiLCAidGhpbiIsICJ0
ZXh0IiwgInRlYWwiLCAic2xvdyIsICJzaG93IiwgIm5vbmUiLCAibmF2eSIsICJtb3ZlIiwgIm1l
bnUiLCAKKyAgICAibG91ZCIsICJsaW1lIiwgImxlZnQiLCAiaWNvbiIsICJoaWRlIiwgImhlbHAi
LCAiaGFuZCIsICJncmV5IiwgImdyYXkiLCAiZmxhdCIsICJmaWxsIiwgCisgICAgImZhc3QiLCAi
ZWFzZSIsICJkb3duIiwgImRpc2MiLCAiY3JvcCIsICJjb3B5IiwgImNsaXAiLCAiY2VsbCIsICJi
b3RoIiwgImJvbGQiLCAiYmx1ZSIsIAorICAgICJhdXRvIiwgImFxdWEiLCAieG9yIiwgInRvcCIs
ICJzdWIiLCAicnRsIiwgInJlZCIsICJwcmUiLCAibWl4IiwgImx0ciIsICJlbmQiLCAiYWxsIiwg
InVwIl07CisgICAgZnVuY3Rpb24gdmFsdWVJZGVudEFjdGlvbih0b2tlbikgeworICAgICAgICB0
aGlzLmN1cnNvciArPSB0b2tlbi5sZW5ndGg7CisgICAgICAgIGlmICh2YWx1ZUtleXdvcmRzLmlu
ZGV4T2YodG9rZW4pID09PSAtMSkKKyAgICAgICAgICAgIHRoaXMubm9uVG9rZW4gKz0gdG9rZW47
CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdGhpcy5hcHBlbmROb25Ub2tlbi5jYWxsKHRo
aXMpOworICAgICAgICAgICAgdGhpcy5saW5lRnJhZ21lbnQuYXBwZW5kQ2hpbGQodGhpcy5jcmVh
dGVTcGFuKHRva2VuLCAid2Via2l0LWNzcy1rZXl3b3JkIikpOwogICAgICAgICB9CisgICAgfQog
Ci0gICAgICAgIGxpbmUuX2luU2VsZWN0b3IgPSBpblNlbGVjdG9yOwotICAgICAgICBsaW5lLl9p
bkF0UnVsZUJsb2NrID0gaW5BdFJ1bGVCbG9jazsKLSAgICAgICAgbGluZS5fYXRSdWxlU3RhcnRl
ZCA9IGF0UnVsZVN0YXJ0ZWQ7Ci0gICAgICAgIGxpbmUuX2F0UnVsZUlzU2VsZWN0b3IgPSBhdFJ1
bGVJc1NlbGVjdG9yOwotCi0gICAgICAgIGlmICh0bXAgPCBjb2RlLmxlbmd0aCkKLSAgICAgICAg
ICAgIGxpbmUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY29kZS5zdWJzdHJp
bmcodG1wLCBpKSkpOworICAgIGZ1bmN0aW9uIG51bXZhbHVlQWN0aW9uKHRva2VuKQorICAgIHsK
KyAgICAgICAgdGhpcy5jdXJzb3IgKz0gdG9rZW4ubGVuZ3RoOworICAgICAgICB0aGlzLmxpbmVG
cmFnbWVudC5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVNwYW4odG9rZW4sICJ3ZWJraXQtY3NzLW51
bWJlciIpKTsKKyAgICB9CisgICAgCisgICAgZnVuY3Rpb24gZGVjbGFyYXRpb25TZW1pY29sb25B
Y3Rpb24odG9rZW4pCisgICAgeworICAgICAgICB0aGlzLmN1cnNvciArPSB0b2tlbi5sZW5ndGg7
CisgICAgICAgIHRoaXMubm9uVG9rZW4gKz0gdG9rZW47CisgICAgICAgIHRoaXMubGV4U3RhdGUg
PSB0aGlzLkxleFN0YXRlLkRlY2xhcmF0aW9uUHJvcGVydHk7CisgICAgfQorICAgIAorICAgIGZ1
bmN0aW9uIHVybEFjdGlvbih0b2tlbikKKyAgICB7CisgICAgICAgIHRoaXMuY3Vyc29yICs9IHRv
a2VuLmxlbmd0aDsKKyAgICAgICAgdGhpcy5saW5lRnJhZ21lbnQuYXBwZW5kQ2hpbGQodGhpcy5j
cmVhdGVTcGFuKHRva2VuLCAid2Via2l0LWNzcy11cmwiKSk7CisgICAgfQorICAgIAorICAgIGZ1
bmN0aW9uIHN0cmluZ0FjdGlvbih0b2tlbikKKyAgICB7CisgICAgICAgIHRoaXMuY3Vyc29yICs9
IHRva2VuLmxlbmd0aDsKKyAgICAgICAgdGhpcy5saW5lRnJhZ21lbnQuYXBwZW5kQ2hpbGQodGhp
cy5jcmVhdGVTcGFuKHRva2VuLCAid2Via2l0LWNzcy1zdHJpbmciKSk7CisgICAgfQorICAgIAor
ICAgIGZ1bmN0aW9uIGNvbG9yQWN0aW9uKHRva2VuKQorICAgIHsKKyAgICAgICAgdGhpcy5jdXJz
b3IgKz0gdG9rZW4ubGVuZ3RoOworICAgICAgICB0aGlzLmxpbmVGcmFnbWVudC5hcHBlbmRDaGls
ZCh0aGlzLmNyZWF0ZVNwYW4odG9rZW4sICJ3ZWJraXQtY3NzLWNvbG9yIikpOworICAgIH0KKyAg
ICAKKyAgICBmdW5jdGlvbiBpbXBvcnRhbnRBY3Rpb24odG9rZW4pCisgICAgeworICAgICAgICB0
aGlzLmN1cnNvciArPSB0b2tlbi5sZW5ndGg7CisgICAgICAgIHRoaXMubGluZUZyYWdtZW50LmFw
cGVuZENoaWxkKHRoaXMuY3JlYXRlU3Bhbih0b2tlbiwgIndlYmtpdC1jc3MtaW1wb3J0YW50Iikp
OworICAgIH0KKyAgICAKKyAgICBmdW5jdGlvbiBhdE1lZGlhQWN0aW9uKHRva2VuKQorICAgIHsK
KyAgICAgICAgdGhpcy5jdXJzb3IgKz0gdG9rZW4ubGVuZ3RoOworICAgICAgICB0aGlzLmxpbmVG
cmFnbWVudC5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVNwYW4odG9rZW4sICJ3ZWJraXQtY3NzLWF0
LXJ1bGUiKSk7CisgICAgICAgIHRoaXMubGV4U3RhdGUgPSB0aGlzLkxleFN0YXRlLkF0TWVkaWE7
CisgICAgfQorICAgIAorICAgIGZ1bmN0aW9uIHN0YXJ0QXRNZWRpYUJsb2NrQWN0aW9uKHRva2Vu
KQorICAgIHsKKyAgICAgICAgdGhpcy5jdXJzb3IgKz0gdG9rZW4ubGVuZ3RoOworICAgICAgICB0
aGlzLm5vblRva2VuICs9IHRva2VuOworICAgICAgICB0aGlzLmxleFN0YXRlID0gdGhpcy5MZXhT
dGF0ZS5Jbml0aWFsOworICAgIH0KKyAgICAKKyAgICBmdW5jdGlvbiBhdEtleWZyYW1lc0FjdGlv
bih0b2tlbikKKyAgICB7CisgICAgICAgIHRoaXMuY3Vyc29yICs9IHRva2VuLmxlbmd0aDsKKyAg
ICAgICAgdGhpcy5saW5lRnJhZ21lbnQuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVTcGFuKHRva2Vu
LCAid2Via2l0LWNzcy1hdC1ydWxlIikpOworICAgICAgICB0aGlzLmxleFN0YXRlID0gdGhpcy5M
ZXhTdGF0ZS5BdEtleWZyYW1lczsKKyAgICB9CisgICAgCisgICAgZnVuY3Rpb24gc3RhcnRBdEtl
eWZyYW1lc0Jsb2NrQWN0aW9uKHRva2VuKQorICAgIHsKKyAgICAgICAgdGhpcy5jdXJzb3IgKz0g
dG9rZW4ubGVuZ3RoOworICAgICAgICB0aGlzLm5vblRva2VuICs9IHRva2VuOworICAgICAgICB0
aGlzLmxleFN0YXRlID0gdGhpcy5MZXhTdGF0ZS5Jbml0aWFsOworICAgIH0KKyAgICAKKyAgICBm
dW5jdGlvbiBhdFJ1bGVBY3Rpb24odG9rZW4pIHsKKyAgICAgICAgdGhpcy5jdXJzb3IgKz0gdG9r
ZW4ubGVuZ3RoOworICAgICAgICB0aGlzLmxpbmVGcmFnbWVudC5hcHBlbmRDaGlsZCh0aGlzLmNy
ZWF0ZVNwYW4odG9rZW4sICJ3ZWJraXQtY3NzLWF0LXJ1bGUiKSk7CisgICAgICAgIHRoaXMubGV4
U3RhdGUgPSB0aGlzLkxleFN0YXRlLkF0UnVsZTsKKyAgICB9CisgICAgCisgICAgZnVuY3Rpb24g
ZW5kQXRSdWxlQWN0aW9uKHRva2VuKSB7CisgICAgICAgIHRoaXMuY3Vyc29yICs9IHRva2VuLmxl
bmd0aDsKKyAgICAgICAgdGhpcy5ub25Ub2tlbiArPSB0b2tlbjsKKyAgICAgICAgdGhpcy5sZXhT
dGF0ZSA9IHRoaXMuTGV4U3RhdGUuSW5pdGlhbDsKKyAgICB9CisgICAgCisgICAgZnVuY3Rpb24g
c3RhcnRBdFJ1bGVCbG9ja0FjdGlvbih0b2tlbikKKyAgICB7CisgICAgICAgIHRoaXMuY3Vyc29y
ICs9IHRva2VuLmxlbmd0aDsKKyAgICAgICAgdGhpcy5ub25Ub2tlbiArPSB0b2tlbjsKKyAgICAg
ICAgdGhpcy5sZXhTdGF0ZSA9IHRoaXMuTGV4U3RhdGUuRGVjbGFyYXRpb25Qcm9wZXJ0eTsKKyAg
ICB9CisgICAgCisgICAgY29uc3QgbWVkaWFUeXBlcyA9IFsiYWxsIiwgImF1cmFsIiwgImJyYWls
bGUiLCAiZW1ib3NzZWQiLCAiaGFuZGhlbGQiLCAicHJpbnQiLCAicHJvamVjdGlvbiIsICJzY3Jl
ZW4iLCAidHR5IiwgInR2Il07CisgICAgZnVuY3Rpb24gYXRSdWxlSWRlbnRBY3Rpb24odG9rZW4p
IHsKKyAgICAgICAgdGhpcy5jdXJzb3IgKz0gdG9rZW4ubGVuZ3RoOworICAgICAgICBpZiAobWVk
aWFUeXBlcy5pbmRleE9mKHRva2VuKSA9PT0gLTEpCisgICAgICAgICAgICB0aGlzLm5vblRva2Vu
ICs9IHRva2VuOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRoaXMuYXBwZW5kTm9uVG9r
ZW4uY2FsbCh0aGlzKTsKKyAgICAgICAgICAgIHRoaXMubGluZUZyYWdtZW50LmFwcGVuZENoaWxk
KHRoaXMuY3JlYXRlU3Bhbih0b2tlbiwgIndlYmtpdC1jc3Mta2V5d29yZCIpKTsKKyAgICAgICAg
fQogICAgIH0KIH0KIAotV2ViSW5zcGVjdG9yLkNTU1NvdXJjZVN5bnRheEhpZ2hsaWdoZXIucHJv
dG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5Tb3VyY2VTeW50YXhIaWdobGlnaGVyLnBy
b3RvdHlwZTsKK1dlYkluc3BlY3Rvci5DU1NTb3VyY2VTeW50YXhIaWdobGlnaHRlci5wcm90b3R5
cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlNvdXJjZVN5bnRheEhpZ2hsaWdodGVyLnByb3Rv
dHlwZTsKIAogV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VTeW50YXhIaWdobGlnaHRlciA9
IGZ1bmN0aW9uKHRhYmxlLCBzb3VyY2VGcmFtZSkgewotICAgIFdlYkluc3BlY3Rvci5Tb3VyY2VT
eW50YXhIaWdobGlnaGVyLmNhbGwodGhpcywgdGFibGUsIHNvdXJjZUZyYW1lKTsKKyAgICBXZWJJ
bnNwZWN0b3IuU291cmNlU3ludGF4SGlnaGxpZ2h0ZXIuY2FsbCh0aGlzLCB0YWJsZSwgc291cmNl
RnJhbWUpOwogCiAgICAgdGhpcy5MZXhTdGF0ZSA9IHsKICAgICAgICAgSW5pdGlhbDogMSwKQEAg
LTEwMDMsODIgKzEzNTgsODIgQEAgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VTeW50YXhI
aWdobAogICAgIHRoaXMuY29udGludWVTdGF0ZSA9IHRoaXMuQ29udGludWVTdGF0ZS5Ob25lOwog
ICAgIAogICAgIHRoaXMucnVsZXMgPSBbewotICAgICAgICAgICAgcGF0dGVybjogL14oPzpcL1wv
LiopLywKLSAgICAgICAgICAgIGFjdGlvbjogc2luZ2xlTGluZUNvbW1lbnRBY3Rpb24KLSAgICAg
ICAgfSwgewotICAgICAgICAgICAgcGF0dGVybjogL14oPzpcL1wqKD86W15cKl18XCpbXlwvXSkq
XCorXC8pLywKLSAgICAgICAgICAgIGFjdGlvbjogbXVsdGlMaW5lU2luZ2xlTGluZUNvbW1lbnRB
Y3Rpb24KLSAgICAgICAgfSwgewotICAgICAgICAgICAgcGF0dGVybjogL14oPzpcL1wqKD86W15c
Kl18XCpbXlwvXSkqKS8sCi0gICAgICAgICAgICBhY3Rpb246IG11bHRpTGluZUNvbW1lbnRTdGFy
dEFjdGlvbgotICAgICAgICB9LCB7Ci0gICAgICAgICAgICBwYXR0ZXJuOiAvXig/Oig/OlteXCpd
fFwqW15cL10pKlwqK1wvKS8sCi0gICAgICAgICAgICBhY3Rpb246IG11bHRpTGluZUNvbW1lbnRF
bmRBY3Rpb24sCi0gICAgICAgICAgICBjb250aW51ZVN0YXRlQ29uZGl0aW9uOiB0aGlzLkNvbnRp
bnVlU3RhdGUuQ29tbWVudAotICAgICAgICB9LCB7Ci0gICAgICAgICAgICBwYXR0ZXJuOiAvXi4q
LywKLSAgICAgICAgICAgIGFjdGlvbjogbXVsdGlMaW5lQ29tbWVudE1pZGRsZUFjdGlvbiwKLSAg
ICAgICAgICAgIGNvbnRpbnVlU3RhdGVDb25kaXRpb246IHRoaXMuQ29udGludWVTdGF0ZS5Db21t
ZW50Ci0gICAgICAgIH0sIHsKLSAgICAgICAgICAgIHBhdHRlcm46IC9eKD86KD86MHxbMS05XVxk
KilcLlxkKz8oPzpbZUVdKD86XGQrfFwrXGQrfC1cZCspKT98XC5cZCsoPzpbZUVdKD86XGQrfFwr
XGQrfC1cZCspKT98KD86MHxbMS05XVxkKikoPzpbZUVdKD86XGQrfFwrXGQrfC1cZCspKT98MHhb
MC05YS1mQS1GXSt8MFhbMC05YS1mQS1GXSspLywKLSAgICAgICAgICAgIGFjdGlvbjogbnVtZXJp
Y0xpdGVyYWxBY3Rpb24KLSAgICAgICAgfSwgewotICAgICAgICAgICAgcGF0dGVybjogL14oPzoi
KD86W14iXFxdfFxcKD86WyciXGJmbnJ0dl18W14nIlxiZm5ydHYwLTl4dV18MHx4WzAtOWEtZkEt
Rl1bMC05YS1mQS1GXXwoPzp1WzAtOWEtZkEtRl1bMC05YS1mQS1GXVswLTlhLWZBLUZdWzAtOWEt
ZkEtRl0pKSkqInwnKD86W14nXFxdfFxcKD86WyciXGJmbnJ0dl18W14nIlxiZm5ydHYwLTl4dV18
MHx4WzAtOWEtZkEtRl1bMC05YS1mQS1GXXwoPzp1WzAtOWEtZkEtRl1bMC05YS1mQS1GXVswLTlh
LWZBLUZdWzAtOWEtZkEtRl0pKSkqJykvLAotICAgICAgICAgICAgYWN0aW9uOiBzdHJpbmdMaXRl
cmFsQWN0aW9uCi0gICAgICAgIH0sIHsKLSAgICAgICAgICAgIHBhdHRlcm46IC9eKD86Jyg/Olte
J1xcXXxcXCg/OlsnIlxiZm5ydHZdfFteJyJcYmZucnR2MC05eHVdfDB8eFswLTlhLWZBLUZdWzAt
OWEtZkEtRl18KD86dVswLTlhLWZBLUZdWzAtOWEtZkEtRl1bMC05YS1mQS1GXVswLTlhLWZBLUZd
KSkpKilcXCQvLAotICAgICAgICAgICAgYWN0aW9uOiBzaW5nbGVRdW90ZVN0cmluZ1N0YXJ0QWN0
aW9uCi0gICAgICAgIH0sIHsKLSAgICAgICAgICAgIHBhdHRlcm46IC9eKD86KD86W14nXFxdfFxc
KD86WyciXGJmbnJ0dl18W14nIlxiZm5ydHYwLTl4dV18MHx4WzAtOWEtZkEtRl1bMC05YS1mQS1G
XXwoPzp1WzAtOWEtZkEtRl1bMC05YS1mQS1GXVswLTlhLWZBLUZdWzAtOWEtZkEtRl0pKSkqJykv
LAotICAgICAgICAgICAgYWN0aW9uOiBzaW5nbGVRdW90ZVN0cmluZ0VuZEFjdGlvbiwKLSAgICAg
ICAgICAgIGNvbnRpbnVlU3RhdGVDb25kaXRpb246IHRoaXMuQ29udGludWVTdGF0ZS5TaW5nbGVR
dW90ZVN0cmluZwotICAgICAgICB9LCB7Ci0gICAgICAgICAgICBwYXR0ZXJuOiAvXig/Oig/Olte
J1xcXXxcXCg/OlsnIlxiZm5ydHZdfFteJyJcYmZucnR2MC05eHVdfDB8eFswLTlhLWZBLUZdWzAt
OWEtZkEtRl18KD86dVswLTlhLWZBLUZdWzAtOWEtZkEtRl1bMC05YS1mQS1GXVswLTlhLWZBLUZd
KSkpKilcXCQvLAotICAgICAgICAgICAgYWN0aW9uOiBzaW5nbGVRdW90ZVN0cmluZ01pZGRsZUFj
dGlvbiwKLSAgICAgICAgICAgIGNvbnRpbnVlU3RhdGVDb25kaXRpb246IHRoaXMuQ29udGludWVT
dGF0ZS5TaW5nbGVRdW90ZVN0cmluZwotICAgICAgICB9LCB7Ci0gICAgICAgICAgICBwYXR0ZXJu
OiAvXig/OiIoPzpbXiJcXF18XFwoPzpbJyJcYmZucnR2XXxbXiciXGJmbnJ0djAtOXh1XXwwfHhb
MC05YS1mQS1GXVswLTlhLWZBLUZdfCg/OnVbMC05YS1mQS1GXVswLTlhLWZBLUZdWzAtOWEtZkEt
Rl1bMC05YS1mQS1GXSkpKSopXFwkLywKLSAgICAgICAgICAgIGFjdGlvbjogZG91YmxlUXVvdGVT
dHJpbmdTdGFydEFjdGlvbgotICAgICAgICB9LCB7Ci0gICAgICAgICAgICBwYXR0ZXJuOiAvXig/
Oig/OlteIlxcXXxcXCg/OlsnIlxiZm5ydHZdfFteJyJcYmZucnR2MC05eHVdfDB8eFswLTlhLWZB
LUZdWzAtOWEtZkEtRl18KD86dVswLTlhLWZBLUZdWzAtOWEtZkEtRl1bMC05YS1mQS1GXVswLTlh
LWZBLUZdKSkpKiIpLywKLSAgICAgICAgICAgIGFjdGlvbjogZG91YmxlUXVvdGVTdHJpbmdFbmRB
Y3Rpb24sCi0gICAgICAgICAgICBjb250aW51ZVN0YXRlQ29uZGl0aW9uOiB0aGlzLkNvbnRpbnVl
U3RhdGUuRG91YmxlUXVvdGVTdHJpbmcKLSAgICAgICAgfSwgewotICAgICAgICAgICAgcGF0dGVy
bjogL14oPzooPzpbXiJcXF18XFwoPzpbJyJcYmZucnR2XXxbXiciXGJmbnJ0djAtOXh1XXwwfHhb
MC05YS1mQS1GXVswLTlhLWZBLUZdfCg/OnVbMC05YS1mQS1GXVswLTlhLWZBLUZdWzAtOWEtZkEt
Rl1bMC05YS1mQS1GXSkpKSopXFwkLywKLSAgICAgICAgICAgIGFjdGlvbjogZG91YmxlUXVvdGVT
dHJpbmdNaWRkbGVBY3Rpb24sCi0gICAgICAgICAgICBjb250aW51ZVN0YXRlQ29uZGl0aW9uOiB0
aGlzLkNvbnRpbnVlU3RhdGUuRG91YmxlUXVvdGVTdHJpbmcKLSAgICAgICAgfSwgewotICAgICAg
ICAgICAgcGF0dGVybjogL14oPzooPzpbYS16QS1aXXxbJF9dfFxcKD86dVswLTlhLWZBLUZdWzAt
OWEtZkEtRl1bMC05YS1mQS1GXVswLTlhLWZBLUZdKSkoPzooPzpbYS16QS1aXXxbJF9dfFxcKD86
dVswLTlhLWZBLUZdWzAtOWEtZkEtRl1bMC05YS1mQS1GXVswLTlhLWZBLUZdKSl8WzAtOV0pKikv
LAotICAgICAgICAgICAgYWN0aW9uOiBpZGVudE9yS2V5d29yZEFjdGlvbiwKLSAgICAgICAgICAg
IGRvbnRBcHBlbmROb25Ub2tlbjogdHJ1ZQotICAgICAgICB9LCB7Ci0gICAgICAgICAgICBwYXR0
ZXJuOiAvXlwpLywKLSAgICAgICAgICAgIGFjdGlvbjogcmlnaHRQYXJlbkFjdGlvbiwKLSAgICAg
ICAgICAgIGRvbnRBcHBlbmROb25Ub2tlbjogdHJ1ZQotICAgICAgICB9LCB7Ci0gICAgICAgICAg
ICBwYXR0ZXJuOiAvXig/Ojw9fD49fD09PXw9PXwhPXwhPT18XCtcK3xcLVwtfDw8fD4+fD4+Pnwm
JnxcfFx8fFwrPXxcLT18XCo9fCU9fDw8PXw+Pj18Pj4+PXwmPXxcfD18Xj18W3t9XChcW1xdXC47
LDw+XCtcLVwqJSZcfFxeIX5cPzo9XSkvLAotICAgICAgICAgICAgYWN0aW9uOiBwdW5jdHVhdG9y
QWN0aW9uLAotICAgICAgICAgICAgZG9udEFwcGVuZE5vblRva2VuOiB0cnVlCi0gICAgICAgIH0s
IHsKLSAgICAgICAgICAgIHBhdHRlcm46IC9eKD86XC89PykvLAotICAgICAgICAgICAgYWN0aW9u
OiBkaXZQdW5jdHVhdG9yQWN0aW9uLAotICAgICAgICAgICAgc3RhdGVDb25kaXRpb246IHRoaXMu
TGV4U3RhdGUuRGl2aXNpb25BbGxvd2VkLAotICAgICAgICAgICAgZG9udEFwcGVuZE5vblRva2Vu
OiB0cnVlCi0gICAgICAgIH0sIHsKLSAgICAgICAgICAgIHBhdHRlcm46IC9eKD86XC8oPzooPzpc
XC4pfFteXFwqXC9dKSg/Oig/OlxcLil8W15cXC9dKSpcLyg/Oig/OlthLXpBLVpdfFskX118XFwo
Pzp1WzAtOWEtZkEtRl1bMC05YS1mQS1GXVswLTlhLWZBLUZdWzAtOWEtZkEtRl0pKXxbMC05XSkq
KS8sCi0gICAgICAgICAgICBhY3Rpb246IHJlZ0V4cExpdGVyYWxBY3Rpb24KLSAgICAgICAgfSwg
ewotICAgICAgICAgICAgcGF0dGVybjogL14oPzpcLyg/Oig/OlxcLil8W15cXCpcL10pKD86KD86
XFwuKXxbXlxcL10pKilcXCQvLAotICAgICAgICAgICAgYWN0aW9uOiByZWdFeHBTdGFydEFjdGlv
bgotICAgICAgICB9LCB7Ci0gICAgICAgICAgICBwYXR0ZXJuOiAvXig/Oig/Oig/OlxcLil8W15c
XC9dKSpcLyg/Oig/OlthLXpBLVpdfFskX118XFwoPzp1WzAtOWEtZkEtRl1bMC05YS1mQS1GXVsw
LTlhLWZBLUZdWzAtOWEtZkEtRl0pKXxbMC05XSkqKS8sCi0gICAgICAgICAgICBhY3Rpb246IHJl
Z0V4cEVuZEFjdGlvbiwKLSAgICAgICAgICAgIGNvbnRpbnVlU3RhdGVDb25kaXRpb246IHRoaXMu
Q29udGludWVTdGF0ZS5SZWdFeHAKLSAgICAgICAgfSwgewotICAgICAgICAgICAgcGF0dGVybjog
L14oPzooPzooPzpcXC4pfFteXFwvXSkqKVxcJC8sCi0gICAgICAgICAgICBhY3Rpb246IHJlZ0V4
cE1pZGRsZUFjdGlvbiwKLSAgICAgICAgICAgIGNvbnRpbnVlU3RhdGVDb25kaXRpb246IHRoaXMu
Q29udGludWVTdGF0ZS5SZWdFeHAKLSAgICAgICAgfV07CisgICAgICAgIHBhdHRlcm46IC9eKD86
XC9cLy4qKS8sCisgICAgICAgIGFjdGlvbjogc2luZ2xlTGluZUNvbW1lbnRBY3Rpb24KKyAgICB9
LCB7CisgICAgICAgIHBhdHRlcm46IC9eKD86XC9cKig/OlteXCpdfFwqW15cL10pKlwqK1wvKS8s
CisgICAgICAgIGFjdGlvbjogbXVsdGlMaW5lU2luZ2xlTGluZUNvbW1lbnRBY3Rpb24KKyAgICB9
LCB7CisgICAgICAgIHBhdHRlcm46IC9eKD86XC9cKig/OlteXCpdfFwqW15cL10pKikvLAorICAg
ICAgICBhY3Rpb246IG11bHRpTGluZUNvbW1lbnRTdGFydEFjdGlvbgorICAgIH0sIHsKKyAgICAg
ICAgcGF0dGVybjogL14oPzooPzpbXlwqXXxcKlteXC9dKSpcKitcLykvLAorICAgICAgICBhY3Rp
b246IG11bHRpTGluZUNvbW1lbnRFbmRBY3Rpb24sCisgICAgICAgIGNvbnRpbnVlU3RhdGVDb25k
aXRpb246IHRoaXMuQ29udGludWVTdGF0ZS5Db21tZW50CisgICAgfSwgeworICAgICAgICBwYXR0
ZXJuOiAvXi4qLywKKyAgICAgICAgYWN0aW9uOiBtdWx0aUxpbmVDb21tZW50TWlkZGxlQWN0aW9u
LAorICAgICAgICBjb250aW51ZVN0YXRlQ29uZGl0aW9uOiB0aGlzLkNvbnRpbnVlU3RhdGUuQ29t
bWVudAorICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjogL14oPzooPzowfFsxLTldXGQqKVwuXGQr
Pyg/OltlRV0oPzpcZCt8XCtcZCt8LVxkKykpP3xcLlxkKyg/OltlRV0oPzpcZCt8XCtcZCt8LVxk
KykpP3woPzowfFsxLTldXGQqKSg/OltlRV0oPzpcZCt8XCtcZCt8LVxkKykpP3wweFswLTlhLWZB
LUZdK3wwWFswLTlhLWZBLUZdKykvLAorICAgICAgICBhY3Rpb246IG51bWVyaWNMaXRlcmFsQWN0
aW9uCisgICAgfSwgeworICAgICAgICBwYXR0ZXJuOiAvXig/OiIoPzpbXiJcXF18XFwoPzpbJyJc
YmZucnR2XXxbXiciXGJmbnJ0djAtOXh1XXwwfHhbMC05YS1mQS1GXVswLTlhLWZBLUZdfCg/OnVb
MC05YS1mQS1GXVswLTlhLWZBLUZdWzAtOWEtZkEtRl1bMC05YS1mQS1GXSkpKSoifCcoPzpbXidc
XF18XFwoPzpbJyJcYmZucnR2XXxbXiciXGJmbnJ0djAtOXh1XXwwfHhbMC05YS1mQS1GXVswLTlh
LWZBLUZdfCg/OnVbMC05YS1mQS1GXVswLTlhLWZBLUZdWzAtOWEtZkEtRl1bMC05YS1mQS1GXSkp
KSonKS8sCisgICAgICAgIGFjdGlvbjogc3RyaW5nTGl0ZXJhbEFjdGlvbgorICAgIH0sIHsKKyAg
ICAgICAgcGF0dGVybjogL14oPzonKD86W14nXFxdfFxcKD86WyciXGJmbnJ0dl18W14nIlxiZm5y
dHYwLTl4dV18MHx4WzAtOWEtZkEtRl1bMC05YS1mQS1GXXwoPzp1WzAtOWEtZkEtRl1bMC05YS1m
QS1GXVswLTlhLWZBLUZdWzAtOWEtZkEtRl0pKSkqKVxcJC8sCisgICAgICAgIGFjdGlvbjogc2lu
Z2xlUXVvdGVTdHJpbmdTdGFydEFjdGlvbgorICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjogL14o
PzooPzpbXidcXF18XFwoPzpbJyJcYmZucnR2XXxbXiciXGJmbnJ0djAtOXh1XXwwfHhbMC05YS1m
QS1GXVswLTlhLWZBLUZdfCg/OnVbMC05YS1mQS1GXVswLTlhLWZBLUZdWzAtOWEtZkEtRl1bMC05
YS1mQS1GXSkpKSonKS8sCisgICAgICAgIGFjdGlvbjogc2luZ2xlUXVvdGVTdHJpbmdFbmRBY3Rp
b24sCisgICAgICAgIGNvbnRpbnVlU3RhdGVDb25kaXRpb246IHRoaXMuQ29udGludWVTdGF0ZS5T
aW5nbGVRdW90ZVN0cmluZworICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjogL14oPzooPzpbXidc
XF18XFwoPzpbJyJcYmZucnR2XXxbXiciXGJmbnJ0djAtOXh1XXwwfHhbMC05YS1mQS1GXVswLTlh
LWZBLUZdfCg/OnVbMC05YS1mQS1GXVswLTlhLWZBLUZdWzAtOWEtZkEtRl1bMC05YS1mQS1GXSkp
KSopXFwkLywKKyAgICAgICAgYWN0aW9uOiBzaW5nbGVRdW90ZVN0cmluZ01pZGRsZUFjdGlvbiwK
KyAgICAgICAgY29udGludWVTdGF0ZUNvbmRpdGlvbjogdGhpcy5Db250aW51ZVN0YXRlLlNpbmds
ZVF1b3RlU3RyaW5nCisgICAgfSwgeworICAgICAgICBwYXR0ZXJuOiAvXig/OiIoPzpbXiJcXF18
XFwoPzpbJyJcYmZucnR2XXxbXiciXGJmbnJ0djAtOXh1XXwwfHhbMC05YS1mQS1GXVswLTlhLWZB
LUZdfCg/OnVbMC05YS1mQS1GXVswLTlhLWZBLUZdWzAtOWEtZkEtRl1bMC05YS1mQS1GXSkpKSop
XFwkLywKKyAgICAgICAgYWN0aW9uOiBkb3VibGVRdW90ZVN0cmluZ1N0YXJ0QWN0aW9uCisgICAg
fSwgeworICAgICAgICBwYXR0ZXJuOiAvXig/Oig/OlteIlxcXXxcXCg/OlsnIlxiZm5ydHZdfFte
JyJcYmZucnR2MC05eHVdfDB8eFswLTlhLWZBLUZdWzAtOWEtZkEtRl18KD86dVswLTlhLWZBLUZd
WzAtOWEtZkEtRl1bMC05YS1mQS1GXVswLTlhLWZBLUZdKSkpKiIpLywKKyAgICAgICAgYWN0aW9u
OiBkb3VibGVRdW90ZVN0cmluZ0VuZEFjdGlvbiwKKyAgICAgICAgY29udGludWVTdGF0ZUNvbmRp
dGlvbjogdGhpcy5Db250aW51ZVN0YXRlLkRvdWJsZVF1b3RlU3RyaW5nCisgICAgfSwgeworICAg
ICAgICBwYXR0ZXJuOiAvXig/Oig/OlteIlxcXXxcXCg/OlsnIlxiZm5ydHZdfFteJyJcYmZucnR2
MC05eHVdfDB8eFswLTlhLWZBLUZdWzAtOWEtZkEtRl18KD86dVswLTlhLWZBLUZdWzAtOWEtZkEt
Rl1bMC05YS1mQS1GXVswLTlhLWZBLUZdKSkpKilcXCQvLAorICAgICAgICBhY3Rpb246IGRvdWJs
ZVF1b3RlU3RyaW5nTWlkZGxlQWN0aW9uLAorICAgICAgICBjb250aW51ZVN0YXRlQ29uZGl0aW9u
OiB0aGlzLkNvbnRpbnVlU3RhdGUuRG91YmxlUXVvdGVTdHJpbmcKKyAgICB9LCB7CisgICAgICAg
IHBhdHRlcm46IC9eKD86KD86W2EtekEtWl18WyRfXXxcXCg/OnVbMC05YS1mQS1GXVswLTlhLWZB
LUZdWzAtOWEtZkEtRl1bMC05YS1mQS1GXSkpKD86KD86W2EtekEtWl18WyRfXXxcXCg/OnVbMC05
YS1mQS1GXVswLTlhLWZBLUZdWzAtOWEtZkEtRl1bMC05YS1mQS1GXSkpfFswLTldKSopLywKKyAg
ICAgICAgYWN0aW9uOiBpZGVudE9yS2V5d29yZEFjdGlvbiwKKyAgICAgICAgZG9udEFwcGVuZE5v
blRva2VuOiB0cnVlCisgICAgfSwgeworICAgICAgICBwYXR0ZXJuOiAvXlwpLywKKyAgICAgICAg
YWN0aW9uOiByaWdodFBhcmVuQWN0aW9uLAorICAgICAgICBkb250QXBwZW5kTm9uVG9rZW46IHRy
dWUKKyAgICB9LCB7CisgICAgICAgIHBhdHRlcm46IC9eKD86PD18Pj18PT09fD09fCE9fCE9PXxc
K1wrfFwtXC18PDx8Pj58Pj4+fCYmfFx8XHx8XCs9fFwtPXxcKj18JT18PDw9fD4+PXw+Pj49fCY9
fFx8PXxePXxbe31cKFxbXF1cLjssPD5cK1wtXColJlx8XF4hflw/Oj1dKS8sCisgICAgICAgIGFj
dGlvbjogcHVuY3R1YXRvckFjdGlvbiwKKyAgICAgICAgZG9udEFwcGVuZE5vblRva2VuOiB0cnVl
CisgICAgfSwgeworICAgICAgICBwYXR0ZXJuOiAvXig/OlwvPT8pLywKKyAgICAgICAgYWN0aW9u
OiBkaXZQdW5jdHVhdG9yQWN0aW9uLAorICAgICAgICBsZXhTdGF0ZUNvbmRpdGlvbjogdGhpcy5M
ZXhTdGF0ZS5EaXZpc2lvbkFsbG93ZWQsCisgICAgICAgIGRvbnRBcHBlbmROb25Ub2tlbjogdHJ1
ZQorICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjogL14oPzpcLyg/Oig/OlxcLil8W15cXCpcL10p
KD86KD86XFwuKXxbXlxcL10pKlwvKD86KD86W2EtekEtWl18WyRfXXxcXCg/OnVbMC05YS1mQS1G
XVswLTlhLWZBLUZdWzAtOWEtZkEtRl1bMC05YS1mQS1GXSkpfFswLTldKSopLywKKyAgICAgICAg
YWN0aW9uOiByZWdFeHBMaXRlcmFsQWN0aW9uCisgICAgfSwgeworICAgICAgICBwYXR0ZXJuOiAv
Xig/OlwvKD86KD86XFwuKXxbXlxcKlwvXSkoPzooPzpcXC4pfFteXFwvXSkqKVxcJC8sCisgICAg
ICAgIGFjdGlvbjogcmVnRXhwU3RhcnRBY3Rpb24KKyAgICB9LCB7CisgICAgICAgIHBhdHRlcm46
IC9eKD86KD86KD86XFwuKXxbXlxcL10pKlwvKD86KD86W2EtekEtWl18WyRfXXxcXCg/OnVbMC05
YS1mQS1GXVswLTlhLWZBLUZdWzAtOWEtZkEtRl1bMC05YS1mQS1GXSkpfFswLTldKSopLywKKyAg
ICAgICAgYWN0aW9uOiByZWdFeHBFbmRBY3Rpb24sCisgICAgICAgIGNvbnRpbnVlU3RhdGVDb25k
aXRpb246IHRoaXMuQ29udGludWVTdGF0ZS5SZWdFeHAKKyAgICB9LCB7CisgICAgICAgIHBhdHRl
cm46IC9eKD86KD86KD86XFwuKXxbXlxcL10pKilcXCQvLAorICAgICAgICBhY3Rpb246IHJlZ0V4
cE1pZGRsZUFjdGlvbiwKKyAgICAgICAgY29udGludWVTdGF0ZUNvbmRpdGlvbjogdGhpcy5Db250
aW51ZVN0YXRlLlJlZ0V4cAorICAgIH1dOwogICAgIAogICAgIGZ1bmN0aW9uIHNpbmdsZUxpbmVD
b21tZW50QWN0aW9uKHRva2VuKQogICAgIHsKQEAgLTExOTgsNyArMTU1Myw4IEBAIFdlYkluc3Bl
Y3Rvci5KYXZhU2NyaXB0U291cmNlU3ludGF4SGlnaGwKICAgICAgICAgY29uc3Qga2V5d29yZHMg
PSBbIm51bGwiLCAidHJ1ZSIsICJmYWxzZSIsICJicmVhayIsICJjYXNlIiwgImNhdGNoIiwgImNv
bnN0IiwgImRlZmF1bHQiLCAiZmluYWxseSIsICJmb3IiLCAiaW5zdGFuY2VvZiIsICJuZXciLCAi
dmFyIiwgImNvbnRpbnVlIiwgImZ1bmN0aW9uIiwgInJldHVybiIsICJ2b2lkIiwgImRlbGV0ZSIs
ICJpZiIsICJ0aGlzIiwgImRvIiwgIndoaWxlIiwgImVsc2UiLCAiaW4iLCAic3dpdGNoIiwgInRo
cm93IiwgInRyeSIsICJ0eXBlb2YiLCAid2l0aCIsICJkZWJ1Z2dlciIsICJjbGFzcyIsICJlbnVt
IiwgImV4cG9ydCIsICJleHRlbmRzIiwgImltcG9ydCIsICJzdXBlciIsICJnZXQiLCAic2V0Il07
CiAgICAgICAgIHRoaXMuY3Vyc29yICs9IHRva2VuLmxlbmd0aDsKICAgICAgICAgaWYgKGtleXdv
cmRzLmluZGV4T2YodG9rZW4pID09PSAtMSkgewotICAgICAgICAgICAgdGhpcy5ub25Ub2tlbiAr
PSB0b2tlbjsKKyAgICAgICAgICAgIHRoaXMuYXBwZW5kTm9uVG9rZW4oKTsKKyAgICAgICAgICAg
IHRoaXMubGluZUZyYWdtZW50LmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlU3Bhbih0b2tlbiwgIndl
YmtpdC1qYXZhc2NyaXB0LWlkZW50IikpOwogICAgICAgICAgICAgdGhpcy5sZXhTdGF0ZSA9IHRo
aXMuTGV4U3RhdGUuRGl2aXNpb25BbGxvd2VkOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgdGhpcy5hcHBlbmROb25Ub2tlbigpOwpAQCAtMTIyOSwxMzIgKzE1ODUsNCBAQCBXZWJJbnNw
ZWN0b3IuSmF2YVNjcmlwdFNvdXJjZVN5bnRheEhpZ2hsCiAgICAgfQogfQogCi1XZWJJbnNwZWN0
b3IuSmF2YVNjcmlwdFNvdXJjZVN5bnRheEhpZ2hsaWdodGVyLnByb3RvdHlwZSA9IHsKLSAgICBw
cm9jZXNzOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICAvLyBTcGxpdCB1cCB0aGUgd29yayBp
bnRvIGNodW5rcyBzbyB3ZSBkb24ndCBibG9jayB0aGUKLSAgICAgICAgLy8gVUkgdGhyZWFkIHdo
aWxlIHByb2Nlc3NpbmcuCi0KLSAgICAgICAgdmFyIHJvd3MgPSB0aGlzLnRhYmxlLnJvd3M7Ci0g
ICAgICAgIHZhciByb3dzTGVuZ3RoID0gcm93cy5sZW5ndGg7Ci0gICAgICAgIGNvbnN0IHRva2Vu
c1BlckNodW5rID0gMTAwOwotICAgICAgICBjb25zdCBsaW5lTGVuZ3RoTGltaXQgPSAyMDAwMDsK
LSAgICAgICAgCi0gICAgICAgIHZhciBib3VuZFByb2Nlc3NDaHVuayA9IHByb2Nlc3NDaHVuay5i
aW5kKHRoaXMpOwotICAgICAgICB2YXIgcHJvY2Vzc0NodW5rSW50ZXJ2YWwgPSBzZXRJbnRlcnZh
bChib3VuZFByb2Nlc3NDaHVuaywgMjUpOwotICAgICAgICBib3VuZFByb2Nlc3NDaHVuaygpOwot
ICAgICAgICAKLSAgICAgICAgZnVuY3Rpb24gcHJvY2Vzc0NodW5rKCkKLSAgICAgICAgewotICAg
ICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0b2tlbnNQZXJDaHVuazsgaSsrKSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKHRoaXMuY3Vyc29yID49IHRoaXMubGluZUNvZGUubGVuZ3RoKQotICAg
ICAgICAgICAgICAgICAgICBtb3ZlVG9OZXh0TGluZS5jYWxsKHRoaXMpOwotICAgICAgICAgICAg
ICAgIGlmICh0aGlzLmxpbmVJbmRleCA+PSByb3dzTGVuZ3RoKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIHRoaXMuc291cmNlRnJhbWUuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKCJzeW50YXggaGln
aGxpZ2h0aW5nIGNvbXBsZXRlIik7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKHRoaXMuY3Vyc29yID4gbGluZUxlbmd0
aExpbWl0KSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBjb2RlRnJhZ21lbnQgPSB0aGlzLmxp
bmVDb2RlLnN1YnN0cmluZyh0aGlzLmN1cnNvcik7Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMu
bm9uVG9rZW4gKz0gY29kZUZyYWdtZW50OwotICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnNv
ciArPSBjb2RlRnJhZ21lbnQubGVuZ3RoOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAg
ICAgICAgIHRoaXMubGV4KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgCi0g
ICAgICAgIGZ1bmN0aW9uIG1vdmVUb05leHRMaW5lKCkKLSAgICAgICAgewotICAgICAgICAgICAg
dGhpcy5hcHBlbmROb25Ub2tlbigpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICB2YXIgcm93
ID0gcm93c1t0aGlzLmxpbmVJbmRleF07Ci0gICAgICAgICAgICB2YXIgbGluZSA9IHJvdyA/IHJv
dy5jZWxsc1sxXSA6IG51bGw7Ci0gICAgICAgICAgICBpZiAobGluZSAmJiB0aGlzLmxpbmVGcmFn
bWVudCkgewotICAgICAgICAgICAgICAgIEVsZW1lbnQucHJvdG90eXBlLnJlbW92ZUNoaWxkcmVu
LmNhbGwobGluZSk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgbGluZS5hcHBl
bmRDaGlsZCh0aGlzLmxpbmVGcmFnbWVudCk7Ci0gICAgICAgICAgICAgICAgaWYgKHRoaXMubWVz
c2FnZUJ1YmJsZSkKLSAgICAgICAgICAgICAgICAgICAgbGluZS5hcHBlbmRDaGlsZCh0aGlzLm1l
c3NhZ2VCdWJibGUpOwotICAgICAgICAgICAgICAgIHRoaXMubGluZUZyYWdtZW50ID0gbnVsbDsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRoaXMubGluZUluZGV4Kys7Ci0gICAgICAgICAg
ICBpZiAodGhpcy5saW5lSW5kZXggPj0gcm93c0xlbmd0aCAmJiBwcm9jZXNzQ2h1bmtJbnRlcnZh
bCkgewotICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwocHJvY2Vzc0NodW5rSW50ZXJ2YWwp
OwotICAgICAgICAgICAgICAgIHRoaXMuc291cmNlRnJhbWUuZGlzcGF0Y2hFdmVudFRvTGlzdGVu
ZXJzKCJzeW50YXggaGlnaGxpZ2h0aW5nIGNvbXBsZXRlIik7Ci0gICAgICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcm93ID0gcm93c1t0aGlzLmxpbmVJbmRl
eF07Ci0gICAgICAgICAgICBsaW5lID0gcm93ID8gcm93LmNlbGxzWzFdIDogbnVsbDsKLSAgICAg
ICAgICAgIAotICAgICAgICAgICAgdGhpcy5tZXNzYWdlQnViYmxlID0gbnVsbDsKLSAgICAgICAg
ICAgIGlmIChsaW5lLmxhc3RDaGlsZCAmJiBsaW5lLmxhc3RDaGlsZC5ub2RlVHlwZSA9PT0gTm9k
ZS5FTEVNRU5UX05PREUgJiYgbGluZS5sYXN0Q2hpbGQuaGFzU3R5bGVDbGFzcygid2Via2l0LWh0
bWwtbWVzc2FnZS1idWJibGUiKSkgewotICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZUJ1YmJs
ZSA9IGxpbmUubGFzdENoaWxkOwotICAgICAgICAgICAgICAgIGxpbmUucmVtb3ZlQ2hpbGQodGhp
cy5tZXNzYWdlQnViYmxlKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdGhpcy5saW5l
Q29kZSA9IGxpbmUudGV4dENvbnRlbnQ7Ci0gICAgICAgICAgICB0aGlzLmxpbmVGcmFnbWVudCA9
IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAgICAgICAgICAgIHRoaXMuY3Vy
c29yID0gMDsKLSAgICAgICAgICAgIGlmICghbGluZSkKLSAgICAgICAgICAgICAgICBtb3ZlVG9O
ZXh0TGluZSgpOwotICAgICAgICB9Ci0gICAgfSwKLSAgICAKLSAgICBsZXg6IGZ1bmN0aW9uKCkK
LSAgICB7Ci0gICAgICAgIHZhciB0b2tlbiA9IG51bGw7Ci0gICAgICAgIHZhciBjb2RlRnJhZ21l
bnQgPSB0aGlzLmxpbmVDb2RlLnN1YnN0cmluZyh0aGlzLmN1cnNvcik7Ci0gICAgICAgIAotICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMucnVsZXMubGVuZ3RoOyBpKyspIHsKLSAgICAg
ICAgICAgIHZhciBydWxlID0gdGhpcy5ydWxlc1tpXTsKLSAgICAgICAgICAgIHZhciBydWxlQ29u
dGludWVTdGF0ZUNvbmRpdGlvbiA9IHR5cGVvZiBydWxlLmNvbnRpbnVlU3RhdGVDb25kaXRpb24g
PT09ICJ1bmRlZmluZWQiID8gdGhpcy5Db250aW51ZVN0YXRlLk5vbmUgOiBydWxlLmNvbnRpbnVl
U3RhdGVDb25kaXRpb247Ci0gICAgICAgICAgICBpZiAodGhpcy5jb250aW51ZVN0YXRlID09PSBy
dWxlQ29udGludWVTdGF0ZUNvbmRpdGlvbikgewotICAgICAgICAgICAgICAgIGlmICh0eXBlb2Yg
cnVsZS5zdGF0ZUNvbmRpdGlvbiAhPT0gInVuZGVmaW5lZCIgJiYgdGhpcy5sZXhTdGF0ZSAhPT0g
cnVsZS5zdGF0ZUNvbmRpdGlvbikKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAg
ICAgICAgICAgICAgdmFyIG1hdGNoID0gcnVsZS5wYXR0ZXJuLmV4ZWMoY29kZUZyYWdtZW50KTsK
LSAgICAgICAgICAgICAgICBpZiAobWF0Y2gpIHsKLSAgICAgICAgICAgICAgICAgICAgdG9rZW4g
PSBtYXRjaFswXTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHRva2VuKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoIXJ1bGUuZG9udEFwcGVuZE5vblRva2VuKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRoaXMuYXBwZW5kTm9uVG9rZW4oKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBydWxlLmFjdGlvbi5jYWxsKHRoaXMsIHRva2VuKTsKLSAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQot
ICAgICAgICB0aGlzLm5vblRva2VuICs9IGNvZGVGcmFnbWVudFswXTsKLSAgICAgICAgdGhpcy5j
dXJzb3IrKzsKLSAgICB9LAotICAgIAotICAgIGFwcGVuZE5vblRva2VuOiBmdW5jdGlvbiAoKQot
ICAgIHsKLSAgICAgICAgaWYgKHRoaXMubm9uVG9rZW4ubGVuZ3RoID4gMCkgewotICAgICAgICAg
ICAgdGhpcy5saW5lRnJhZ21lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
dGhpcy5ub25Ub2tlbikpOwotICAgICAgICAgICAgdGhpcy5ub25Ub2tlbiA9ICIiOwotICAgICAg
ICB9Ci0gICAgfSwKLSAgICAKLSAgICBzeW50YXhIaWdobGlnaHROb2RlOiBmdW5jdGlvbihub2Rl
KQotICAgIHsKLSAgICAgICAgdGhpcy5saW5lQ29kZSA9IG5vZGUudGV4dENvbnRlbnQ7Ci0gICAg
ICAgIHRoaXMubGluZUZyYWdtZW50ID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgp
OwotICAgICAgICB0aGlzLmN1cnNvciA9IDA7Ci0gICAgICAgIHdoaWxlICh0cnVlKSB7Ci0gICAg
ICAgICAgICBpZiAodGhpcy5jdXJzb3IgPj0gdGhpcy5saW5lQ29kZS5sZW5ndGgpIHsKLSAgICAg
ICAgICAgICAgICB2YXIgY29kZUZyYWdtZW50ID0gdGhpcy5saW5lQ29kZS5zdWJzdHJpbmcodGhp
cy5jdXJzb3IpOwotICAgICAgICAgICAgICAgIHRoaXMubm9uVG9rZW4gKz0gY29kZUZyYWdtZW50
OwotICAgICAgICAgICAgICAgIHRoaXMuY3Vyc29yICs9IGNvZGVGcmFnbWVudC5sZW5ndGg7Ci0g
ICAgICAgICAgICAgICAgdGhpcy5hcHBlbmROb25Ub2tlbigpOwotICAgICAgICAgICAgICAgIHdo
aWxlIChub2RlLmZpcnN0Q2hpbGQpCi0gICAgICAgICAgICAgICAgICAgIG5vZGUucmVtb3ZlQ2hp
bGQobm9kZS5maXJzdENoaWxkKTsKLSAgICAgICAgICAgICAgICBub2RlLmFwcGVuZENoaWxkKHRo
aXMubGluZUZyYWdtZW50KTsKLSAgICAgICAgICAgICAgICB0aGlzLmxpbmVGcmFnbWVudCA9bnVs
bDsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
IHRoaXMubGV4KCk7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KLVdlYkluc3BlY3Rvci5KYXZhU2Ny
aXB0U291cmNlU3ludGF4SGlnaGxpZ2h0ZXIucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3Bl
Y3Rvci5Tb3VyY2VTeW50YXhIaWdobGlnaGVyLnByb3RvdHlwZTsKK1dlYkluc3BlY3Rvci5KYXZh
U2NyaXB0U291cmNlU3ludGF4SGlnaGxpZ2h0ZXIucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYklu
c3BlY3Rvci5Tb3VyY2VTeW50YXhIaWdobGlnaHRlci5wcm90b3R5cGU7CkluZGV4OiBXZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yU3ludGF4SGlnaGxpZ2h0LmNzcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yU3ludGF4SGlnaGxp
Z2h0LmNzcwkocmV2aXNpb24gNTAzOTYpCisrKyBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
aW5zcGVjdG9yU3ludGF4SGlnaGxpZ2h0LmNzcwkod29ya2luZyBjb3B5KQpAQCAtMjYsMzMgKzI2
LDI5IEBACiAgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLS53ZWJraXQtY3NzLWNvbW1lbnQgeyAKLSAgICBj
b2xvcjogcmdiKDAsIDExNiwgMCk7Ci19Ci0KLS53ZWJraXQtY3NzLXN0cmluZywgLndlYmtpdC1j
c3Mta2V5d29yZCwgLndlYmtpdC1jc3MtdW5pdCB7Ci0gICAgY29sb3I6IHJnYig3LCAxNDQsIDE1
NCk7Ci19Ci0KLS53ZWJraXQtY3NzLW51bWJlciB7Ci0gICAgY29sb3I6IHJnYig1MCwgMCwgMjU1
KTsKLX0KLQotLndlYmtpdC1jc3MtcHJvcGVydHksIC53ZWJraXQtY3NzLWF0LXJ1bGUgewotICAg
IGNvbG9yOiByZ2IoMjAwLCAwLCAwKTsKLX0KLQotLndlYmtpdC1jc3MtdXJsIHsKLSAgICBjb2xv
cjogcmdiKDAsIDAsIDApOwotfQotCi0ud2Via2l0LWNzcy1zZWxlY3RvciB7Ci0gICAgY29sb3I6
IHJnYigwLCAwLCAwKTsKLX0KLQotLndlYmtpdC1jc3MtcHNldWRvLWNsYXNzIHsKLSAgICBjb2xv
cjogcmdiKDEyOCwgMTI4LCAxMjgpOwotfQorIC53ZWJraXQtY3NzLWNvbW1lbnQgeyAKKyAgICAg
Y29sb3I6IHJnYigwLCAxMTYsIDApOworIH0KKworIC53ZWJraXQtY3NzLXVybCwgLndlYmtpdC1j
c3MtY29sb3IsIC53ZWJraXQtY3NzLXN0cmluZywgLndlYmtpdC1jc3Mta2V5d29yZCB7CisgICAg
IGNvbG9yOiByZ2IoNywgMTQ0LCAxNTQpOworIH0KKworIC53ZWJraXQtY3NzLW51bWJlciB7Cisg
ICAgIGNvbG9yOiByZ2IoNTAsIDAsIDI1NSk7CisgfQorCisgLndlYmtpdC1jc3MtcHJvcGVydHks
IC53ZWJraXQtY3NzLWF0LXJ1bGUgeworICAgICBjb2xvcjogcmdiKDIwMCwgMCwgMCk7CisgfQor
CisgLndlYmtpdC1jc3Mtc2VsZWN0b3IgeworICAgICByZ2IoMCwgMCwgMCk7CisgfQorCisgLndl
YmtpdC1jc3MtaW1wb3J0YW50IHsKKyAgICAgY29sb3I6IHJnYigyMDAsIDAsIDE4MCk7CisgfQog
CiAud2Via2l0LWphdmFzY3JpcHQtY29tbWVudCB7CiAgICAgY29sb3I6IHJnYigwLCAxMTYsIDAp
OwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gNTAzOTcpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAwOS0xMS0wMSAgS2Vpc2hpIEhhdHRvcmkg
IDxjYXNleS5oYXR0b3JpQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZXdyaXRlIENTU1NvdXJjZVN5bnRh
eEhpZ2hsaWdodGVyIHNvIGl0IHNoYXJlcyBtb3JlIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwOTA3CisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
Y3NzLXN5bnRheC1oaWdobGlnaHQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvY3NzLXN5bnRheC1oaWdobGlnaHQuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVj
dG9yL2phdmFzY3JpcHQtc3ludGF4LWhpZ2hsaWdodC1leHBlY3RlZC50eHQ6CisKIDIwMDktMTEt
MDIgIFJvbGFuZCBTdGVpbmVyICA8cm9sYW5kc3RlaW5lckBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRGF2ZSBIeWF0dC4KSW5kZXg6IExheW91dFRlc3RzL2luc3BlY3Rvci9j
c3Mtc3ludGF4LWhpZ2hsaWdodC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2Nzcy1zeW50YXgtaGlnaGxpZ2h0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2luc3BlY3Rvci9jc3Mtc3ludGF4LWhpZ2hsaWdodC1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3RzIHRoYXQgQ1NTU291cmNl
U3ludGF4SGlnaGxpZ2h0ZXIgZGV0ZWN0cyB0aGUgdG9rZW5zLgorCit3ZWJraXQtY3NzLXNlbGVj
dG9yCit3ZWJraXQtY3NzLXNlbGVjdG9yLCosd2Via2l0LWNzcy1zZWxlY3Rvcgord2Via2l0LWNz
cy1hdC1ydWxlLCosd2Via2l0LWNzcy11cmwsKgord2Via2l0LWNzcy1hdC1ydWxlLCosd2Via2l0
LWNzcy11cmwsKix3ZWJraXQtY3NzLWtleXdvcmQsKix3ZWJraXQtY3NzLWtleXdvcmQsKgord2Vi
a2l0LWNzcy1hdC1ydWxlLCosd2Via2l0LWNzcy1rZXl3b3JkLCosd2Via2l0LWNzcy1zZWxlY3Rv
ciwqLHdlYmtpdC1jc3MtcHJvcGVydHksKix3ZWJraXQtY3NzLWtleXdvcmQsKgord2Via2l0LWNz
cy1hdC1ydWxlLCosd2Via2l0LWNzcy1wcm9wZXJ0eSwqCit3ZWJraXQtY3NzLXNlbGVjdG9yLCos
d2Via2l0LWNzcy1wcm9wZXJ0eSwqLHdlYmtpdC1jc3Mta2V5d29yZCwqCit3ZWJraXQtY3NzLXNl
bGVjdG9yLCosd2Via2l0LWNzcy1wcm9wZXJ0eSwqLHdlYmtpdC1jc3Mta2V5d29yZCwqLHdlYmtp
dC1jc3MtaW1wb3J0YW50LCoKKwpJbmRleDogTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy1zeW50
YXgtaGlnaGxpZ2h0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nz
cy1zeW50YXgtaGlnaGxpZ2h0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY3NzLXN5bnRheC1oaWdobGlnaHQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2
NSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJldmFsdWF0ZS1pbi1mcm9udGVuZC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitmdW5jdGlvbiBkb2l0KCkKK3sKKyAgICBmdW5jdGlv
biBjYWxsYmFjayhyZXN1bHQpCisgICAgeworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJl
c3VsdC5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIG91dHB1dChyZXN1bHRbaV0pOworICAgICAg
ICBub3RpZnlEb25lKCk7CisgICAgfQorICAgIGV2YWx1YXRlSW5XZWJJbnNwZWN0b3IoImRvaXRB
bmREdW1wIiwgY2FsbGJhY2spOworfQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25s
b2FkPSJvbmxvYWQoKSI+Cis8cD4KK1Rlc3RzIHRoYXQgQ1NTU291cmNlU3ludGF4SGlnaGxpZ2h0
ZXIgZGV0ZWN0cyB0aGUgdG9rZW5zLgorPC9wPgorCis8ZGl2IGlkPSJmcm9udGVuZC1zY3JpcHQi
IHN0eWxlPSJkaXNwbGF5Om5vbmUiPgorZnVuY3Rpb24gZG9pdEFuZER1bXAodGVzdENvbnRyb2xs
ZXIpIHsKKyAgICB0ZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgc2V0VGltZW91
dChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IFtdOworICAgICAgICAKKyAgICAg
ICAgcmVzdWx0LnB1c2goZHVtcFN5bnRheEhpZ2hsaWdodCgiYVtocmVmPScvJ10iKSk7CisgICAg
ICAgIHJlc3VsdC5wdXNoKGR1bXBTeW50YXhIaWdobGlnaHQoIiNjb250ZW50ID4gYTpob3ZlciIp
KTsKKyAgICAgICAgcmVzdWx0LnB1c2goZHVtcFN5bnRheEhpZ2hsaWdodCgiQGltcG9ydCB1cmwo
c3R5bGUuY3NzKTsiKSk7CisgICAgICAgIHJlc3VsdC5wdXNoKGR1bXBTeW50YXhIaWdobGlnaHQo
IkBpbXBvcnQgdXJsKFwic3R5bGUuY3NzXCIpIHByb2plY3Rpb24sIHR2OyIpKTsKKyAgICAgICAg
cmVzdWx0LnB1c2goZHVtcFN5bnRheEhpZ2hsaWdodCgiQG1lZGlhIHNjcmVlbiB7IGJvZHkgeyBj
b2xvcjogcmVkOyB9IH0iKSk7CisgICAgICAgIHJlc3VsdC5wdXNoKGR1bXBTeW50YXhIaWdobGln
aHQoIkBmb250LWZhY2UgeyBmb250LWZhbWlseTogTXlIZWx2ZXRpY2E7IH0iKSk7CisgICAgICAg
IHJlc3VsdC5wdXNoKGR1bXBTeW50YXhIaWdobGlnaHQoInAgeyBjb2xvcjogY29sb3I7IHJlZDog
cmVkOyB9IikpOworICAgICAgICByZXN1bHQucHVzaChkdW1wU3ludGF4SGlnaGxpZ2h0KCJwIHsg
Y29sb3I6IHJlZCAhaW1wb3J0YW50OyB9IikpOworICAgICAgICAKKyAgICAgICAgdGVzdENvbnRy
b2xsZXIubm90aWZ5RG9uZShyZXN1bHQpOworICAgICAgICAKKyAgICB9LCAwKTsKK30KK2Z1bmN0
aW9uIGR1bXBTeW50YXhIaWdobGlnaHQoc3RyKSB7CisgICAgdmFyIG5vZGUgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgbm9kZS50ZXh0Q29udGVudCA9IHN0cjsKKyAgICB2
YXIgamF2YXNjcmlwdFN5bnRheEhpZ2hsaWdodGVyID0gbmV3IFdlYkluc3BlY3Rvci5DU1NTb3Vy
Y2VTeW50YXhIaWdobGlnaHRlcihudWxsLCBudWxsKTsKKyAgICBqYXZhc2NyaXB0U3ludGF4SGln
aGxpZ2h0ZXIuc3ludGF4SGlnaGxpZ2h0Tm9kZShub2RlKTsKKyAgICB2YXIgbm9kZV9wYXJ0cyA9
IFtdOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZS5jaGlsZE5vZGVzLmxlbmd0aDsgaSsr
KSB7CisgICAgICAgIGlmIChub2RlLmNoaWxkTm9kZXNbaV0uZ2V0QXR0cmlidXRlKSB7CisgICAg
ICAgICAgICBub2RlX3BhcnRzLnB1c2gobm9kZS5jaGlsZE5vZGVzW2ldLmdldEF0dHJpYnV0ZSgi
Y2xhc3MiKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBub2RlX3BhcnRzLnB1c2go
IioiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gbm9kZV9wYXJ0cy5qb2luKCIsIik7
Cit9Cis8L2Rpdj4KKworPGRpdiBpZD0ib3V0cHV0Ij4KKzwvZGl2PgorCis8L2JvZHk+Cis8L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvamF2YXNjcmlwdC1zeW50YXgtaGlnaGxp
Z2h0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvamF2
YXNjcmlwdC1zeW50YXgtaGlnaGxpZ2h0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNTAzOTYpCisr
KyBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvamF2YXNjcmlwdC1zeW50YXgtaGlnaGxpZ2h0LWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMywxMiArMywxMiBAQCBUZXN0cyB0aGF0IEphdmFT
Y3JpcHRTb3VyY2VTeW50YXhIaWdobGlnCiB3ZWJraXQtamF2YXNjcmlwdC1rZXl3b3JkLHdlYmtp
dC1qYXZhc2NyaXB0LXN0cmluZywqCiB3ZWJraXQtamF2YXNjcmlwdC1yZWdleHAKIHdlYmtpdC1q
YXZhc2NyaXB0LWNvbW1lbnQKLXdlYmtpdC1qYXZhc2NyaXB0LW51bWJlciwqLHdlYmtpdC1qYXZh
c2NyaXB0LW51bWJlciwqLHdlYmtpdC1qYXZhc2NyaXB0LXJlZ2V4cCwqLHdlYmtpdC1qYXZhc2Ny
aXB0LXN0cmluZywqCi13ZWJraXQtamF2YXNjcmlwdC1zdHJpbmcsKix3ZWJraXQtamF2YXNjcmlw
dC1udW1iZXIKLXdlYmtpdC1qYXZhc2NyaXB0LWtleXdvcmQsKix3ZWJraXQtamF2YXNjcmlwdC1u
dW1iZXIsd2Via2l0LWphdmFzY3JpcHQtY29tbWVudCwqLHdlYmtpdC1qYXZhc2NyaXB0LW51bWJl
cgotd2Via2l0LWphdmFzY3JpcHQtY29tbWVudCx3ZWJraXQtamF2YXNjcmlwdC1yZWdleHAsKix3
ZWJraXQtamF2YXNjcmlwdC1zdHJpbmcsKgord2Via2l0LWphdmFzY3JpcHQtbnVtYmVyLCosd2Vi
a2l0LWphdmFzY3JpcHQtbnVtYmVyLCosd2Via2l0LWphdmFzY3JpcHQtcmVnZXhwLCosd2Via2l0
LWphdmFzY3JpcHQtaWRlbnQsKix3ZWJraXQtamF2YXNjcmlwdC1zdHJpbmcsKgord2Via2l0LWph
dmFzY3JpcHQtc3RyaW5nLCosd2Via2l0LWphdmFzY3JpcHQtaWRlbnQsKix3ZWJraXQtamF2YXNj
cmlwdC1udW1iZXIKK3dlYmtpdC1qYXZhc2NyaXB0LWtleXdvcmQsKix3ZWJraXQtamF2YXNjcmlw
dC1pZGVudCwqLHdlYmtpdC1qYXZhc2NyaXB0LW51bWJlcix3ZWJraXQtamF2YXNjcmlwdC1jb21t
ZW50LCosd2Via2l0LWphdmFzY3JpcHQtbnVtYmVyCit3ZWJraXQtamF2YXNjcmlwdC1jb21tZW50
LHdlYmtpdC1qYXZhc2NyaXB0LXJlZ2V4cCwqLHdlYmtpdC1qYXZhc2NyaXB0LWlkZW50LCosd2Vi
a2l0LWphdmFzY3JpcHQtc3RyaW5nLCoKIHdlYmtpdC1qYXZhc2NyaXB0LXN0cmluZywqCiB3ZWJr
aXQtamF2YXNjcmlwdC1zdHJpbmcsKgogd2Via2l0LWphdmFzY3JpcHQtc3RyaW5nLCoKLSosd2Vi
a2l0LWphdmFzY3JpcHQtY29tbWVudCwqCit3ZWJraXQtamF2YXNjcmlwdC1pZGVudCx3ZWJraXQt
amF2YXNjcmlwdC1jb21tZW50LHdlYmtpdC1qYXZhc2NyaXB0LWlkZW50CiAK
</data>
<flag name="review"
          id="23805"
          type_id="1"
          status="-"
          setter="timothy"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42298</attachid>
            <date>2009-11-01 21:17:48 -0800</date>
            <delta_ts>2009-11-01 23:00:58 -0800</delta_ts>
            <desc>proposed patch 4</desc>
            <filename>css.diff</filename>
            <type>text/plain</type>
            <size>62802</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MDM5NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMDktMTEtMDEgIEtlaXNoaSBIYXR0b3JpICA8Y2FzZXkuaGF0dG9y
aUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgV2ViIEluc3BlY3RvcjogUmV3cml0ZSBDU1NTb3VyY2VTeW50YXhIaWdobGlnaHRlciBz
byBpdCBzaGFyZXMgbW9yZSBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zMDkwNworCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9jc3Mtc3ludGF4
LWhpZ2hsaWdodC5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRz
VHJlZU91dGxpbmUuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFt
ZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuc3ludGF4
SGlnaGxpZ2h0Q1NTKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VTeW50YXhIaWdobGln
aHRlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlU3ludGF4SGlnaGxpZ2h0ZXIucHJv
dG90eXBlLnByb2Nlc3MucHJvY2Vzc0NodW5rKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3Vy
Y2VTeW50YXhIaWdobGlnaHRlci5wcm90b3R5cGUucHJvY2Vzcy5tb3ZlVG9OZXh0TGluZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlU3ludGF4SGlnaGxpZ2h0ZXIucHJvdG90eXBlLnBy
b2Nlc3MpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZVN5bnRheEhpZ2hsaWdodGVyLnBy
b3RvdHlwZS5sZXgpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZVN5bnRheEhpZ2hsaWdo
dGVyLnByb3RvdHlwZS5hcHBlbmROb25Ub2tlbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291
cmNlU3ludGF4SGlnaGxpZ2h0ZXIucHJvdG90eXBlLnN5bnRheEhpZ2hsaWdodE5vZGUpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkNTU1NvdXJjZVN5bnRheEhpZ2hsaWdodGVyKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3RvclN5bnRheEhpZ2hsaWdodC5jc3M6CisKIDIw
MDktMTEtMDIgIFJvbGFuZCBTdGVpbmVyICA8cm9sYW5kc3RlaW5lckBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2ZSBIeWF0dC4KSW5kZXg6IFdlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzCShyZXZpc2lvbiA1MDM5
NikKKysrIFdlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC04NTAsOCArODUwLDggQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRz
VHJlZUVsZW1lbnQucHJvdG90eQogICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG5ld05vZGUg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBuZXdOb2RlLnRleHRDb250ZW50ID0gbm9kZS50ZXh0Q29udGVudDsKICAgICAgICAgICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNzc1N5bnRheEhpZ2hsaWdo
dGVyID0gbmV3IFdlYkluc3BlY3Rvci5DU1NTb3VyY2VTeW50YXhIaWdobGlnaGVyKG51bGwsIG51
bGwpOwotICAgICAgICAgICAgICAgICAgICAgICAgY3NzU3ludGF4SGlnaGxpZ2h0ZXIuc3ludGF4
SGlnaGxpZ2h0TGluZShuZXdOb2RlLCBudWxsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZh
ciBjc3NTeW50YXhIaWdobGlnaHRlciA9IG5ldyBXZWJJbnNwZWN0b3IuQ1NTU291cmNlU3ludGF4
SGlnaGxpZ2h0ZXIobnVsbCwgbnVsbCk7CisgICAgICAgICAgICAgICAgICAgICAgICBjc3NTeW50
YXhIaWdobGlnaHRlci5zeW50YXhIaWdobGlnaHROb2RlKG5ld05vZGUpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICBpbmZvLnRpdGxlID0gIjxzcGFu
IGNsYXNzPVwid2Via2l0LWh0bWwtdGV4dC1ub2RlIHdlYmtpdC1odG1sLWNzcy1ub2RlXCI+IiAr
IG5ld05vZGUuaW5uZXJIVE1MLnJlcGxhY2UoL15bXG5ccl0qLywgIiIpLnJlcGxhY2UoL1xzKiQv
LCAiIikgKyAiPC9zcGFuPiI7CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CkluZGV4OiBX
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzCShyZXZpc2lvbiA1MDM5
NikKKysrIFdlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtNzMxLDIwICs3MzEsMjAgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgaWYgKCF0YWJsZSkKICAgICAgICAgICAgIHJldHVybjsKIAot
ICAgICAgICB2YXIgY3NzU3ludGF4SGlnaGxpZ2h0ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkNTU1Nv
dXJjZVN5bnRheEhpZ2hsaWdoZXIodGFibGUsIHRoaXMpOworICAgICAgICB2YXIgY3NzU3ludGF4
SGlnaGxpZ2h0ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkNTU1NvdXJjZVN5bnRheEhpZ2hsaWdodGVy
KHRhYmxlLCB0aGlzKTsKICAgICAgICAgY3NzU3ludGF4SGlnaGxpZ2h0ZXIucHJvY2VzcygpOwog
ICAgIH0KIH0KIAogV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS5fX3Byb3RvX18g
PSBXZWJJbnNwZWN0b3IuT2JqZWN0LnByb3RvdHlwZTsKIAotV2ViSW5zcGVjdG9yLlNvdXJjZVN5
bnRheEhpZ2hsaWdoZXIgPSBmdW5jdGlvbih0YWJsZSwgc291cmNlRnJhbWUpCitXZWJJbnNwZWN0
b3IuU291cmNlU3ludGF4SGlnaGxpZ2h0ZXIgPSBmdW5jdGlvbih0YWJsZSwgc291cmNlRnJhbWUp
CiB7CiAgICAgdGhpcy50YWJsZSA9IHRhYmxlOwogICAgIHRoaXMuc291cmNlRnJhbWUgPSBzb3Vy
Y2VGcmFtZTsKIH0KIAotV2ViSW5zcGVjdG9yLlNvdXJjZVN5bnRheEhpZ2hsaWdoZXIucHJvdG90
eXBlID0geworV2ViSW5zcGVjdG9yLlNvdXJjZVN5bnRheEhpZ2hsaWdodGVyLnByb3RvdHlwZSA9
IHsKICAgICBjcmVhdGVTcGFuOiBmdW5jdGlvbihjb250ZW50LCBjbGFzc05hbWUpCiAgICAgewog
ICAgICAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKQEAgLTc1
MywyMzQgKzc1Myw1ODkgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZVN5bnRheEhpZ2hsaWdoZXIucHJv
dAogICAgICAgICByZXR1cm4gc3BhbjsKICAgICB9LAogCi0gICAgZ2VuZXJhdGVGaW5kZXI6IGZ1
bmN0aW9uKHJlZ2V4LCBtYXRjaE51bWJlciwgY2xhc3NOYW1lKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIGZ1bmN0aW9uKHN0cikgewotICAgICAgICAgICAgdmFyIG1hdGNoID0gcmVnZXguZXhlYyhz
dHIpOwotICAgICAgICAgICAgaWYgKCFtYXRjaCkKLSAgICAgICAgICAgICAgICByZXR1cm4gbnVs
bDsKLSAgICAgICAgICAgIHRoaXMucHJldmlvdXNNYXRjaExlbmd0aCA9IG1hdGNoW21hdGNoTnVt
YmVyXS5sZW5ndGg7Ci0gICAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVTcGFuKG1hdGNoW21h
dGNoTnVtYmVyXSwgY2xhc3NOYW1lKTsKLSAgICAgICAgfTsKLSAgICB9LAotCiAgICAgcHJvY2Vz
czogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgLy8gU3BsaXQgdXAgdGhlIHdvcmsgaW50byBj
aHVua3Mgc28gd2UgZG9uJ3QgYmxvY2sgdGhlCiAgICAgICAgIC8vIFVJIHRocmVhZCB3aGlsZSBw
cm9jZXNzaW5nLgogCi0gICAgICAgIHZhciBpID0gMDsKICAgICAgICAgdmFyIHJvd3MgPSB0aGlz
LnRhYmxlLnJvd3M7CiAgICAgICAgIHZhciByb3dzTGVuZ3RoID0gcm93cy5sZW5ndGg7Ci0gICAg
ICAgIHZhciBwcmV2aW91c0NlbGwgPSBudWxsOwotICAgICAgICBjb25zdCBsaW5lc1BlckNodW5r
ID0gMTA7Ci0KKyAgICAgICAgY29uc3QgdG9rZW5zUGVyQ2h1bmsgPSAxMDA7CisgICAgICAgIGNv
bnN0IGxpbmVMZW5ndGhMaW1pdCA9IDIwMDAwOworICAgICAgICAKKyAgICAgICAgdmFyIGJvdW5k
UHJvY2Vzc0NodW5rID0gcHJvY2Vzc0NodW5rLmJpbmQodGhpcyk7CisgICAgICAgIHZhciBwcm9j
ZXNzQ2h1bmtJbnRlcnZhbCA9IHNldEludGVydmFsKGJvdW5kUHJvY2Vzc0NodW5rLCAyNSk7Cisg
ICAgICAgIGJvdW5kUHJvY2Vzc0NodW5rKCk7CisgICAgICAgIAogICAgICAgICBmdW5jdGlvbiBw
cm9jZXNzQ2h1bmsoKQogICAgICAgICB7Ci0gICAgICAgICAgICBmb3IgKHZhciBlbmQgPSBNYXRo
Lm1pbihpICsgbGluZXNQZXJDaHVuaywgcm93c0xlbmd0aCk7IGkgPCBlbmQ7ICsraSkgewotICAg
ICAgICAgICAgICAgIHZhciByb3cgPSByb3dzW2ldOwotICAgICAgICAgICAgICAgIGlmICghcm93
KQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICB2YXIgY2Vs
bCA9IHJvdy5jZWxsc1sxXTsKLSAgICAgICAgICAgICAgICBpZiAoIWNlbGwpCi0gICAgICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIHRoaXMuc3ludGF4SGlnaGxpZ2h0
TGluZShjZWxsLCBwcmV2aW91c0NlbGwpOwotICAgICAgICAgICAgICAgIGlmIChpIDwgKGVuZCAt
IDEpKQotICAgICAgICAgICAgICAgICAgICB0aGlzLmRlbGV0ZUNvbnRpbnVlRmxhZ3MocHJldmlv
dXNDZWxsKTsKLSAgICAgICAgICAgICAgICBwcmV2aW91c0NlbGwgPSBjZWxsOwotICAgICAgICAg
ICAgfQorICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0b2tlbnNQZXJDaHVuazsgaSsr
KSB7CisgICAgICAgICAgICAgICAgaWYgKHRoaXMuY3Vyc29yID49IHRoaXMubGluZUNvZGUubGVu
Z3RoKQorICAgICAgICAgICAgICAgICAgICBtb3ZlVG9OZXh0TGluZS5jYWxsKHRoaXMpOworICAg
ICAgICAgICAgICAgIGlmICh0aGlzLmxpbmVJbmRleCA+PSByb3dzTGVuZ3RoKSB7CisgICAgICAg
ICAgICAgICAgICAgIHRoaXMuc291cmNlRnJhbWUuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKCJz
eW50YXggaGlnaGxpZ2h0aW5nIGNvbXBsZXRlIik7CisgICAgICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHRoaXMuY3Vyc29yID4g
bGluZUxlbmd0aExpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIHZhciBjb2RlRnJhZ21lbnQg
PSB0aGlzLmxpbmVDb2RlLnN1YnN0cmluZyh0aGlzLmN1cnNvcik7CisgICAgICAgICAgICAgICAg
ICAgIHRoaXMubm9uVG9rZW4gKz0gY29kZUZyYWdtZW50OworICAgICAgICAgICAgICAgICAgICB0
aGlzLmN1cnNvciArPSBjb2RlRnJhZ21lbnQubGVuZ3RoOworICAgICAgICAgICAgICAgIH0KIAot
ICAgICAgICAgICAgaWYgKGkgPj0gcm93c0xlbmd0aCAmJiBwcm9jZXNzQ2h1bmtJbnRlcnZhbCkg
ewotICAgICAgICAgICAgICAgIHRoaXMuZGVsZXRlQ29udGludWVGbGFncyhwcmV2aW91c0NlbGwp
OwotICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnByZXZpb3VzTWF0Y2hMZW5ndGg7CisgICAg
ICAgICAgICAgICAgdGhpcy5sZXgoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAg
ICAKKyAgICAgICAgZnVuY3Rpb24gbW92ZVRvTmV4dExpbmUoKQorICAgICAgICB7CisgICAgICAg
ICAgICB0aGlzLmFwcGVuZE5vblRva2VuKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHZh
ciByb3cgPSByb3dzW3RoaXMubGluZUluZGV4XTsKKyAgICAgICAgICAgIHZhciBsaW5lID0gcm93
ID8gcm93LmNlbGxzWzFdIDogbnVsbDsKKyAgICAgICAgICAgIGlmIChsaW5lICYmIHRoaXMubGlu
ZUZyYWdtZW50KSB7CisgICAgICAgICAgICAgICAgRWxlbWVudC5wcm90b3R5cGUucmVtb3ZlQ2hp
bGRyZW4uY2FsbChsaW5lKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBsaW5l
LmFwcGVuZENoaWxkKHRoaXMubGluZUZyYWdtZW50KTsKKyAgICAgICAgICAgICAgICBpZiAodGhp
cy5tZXNzYWdlQnViYmxlKQorICAgICAgICAgICAgICAgICAgICBsaW5lLmFwcGVuZENoaWxkKHRo
aXMubWVzc2FnZUJ1YmJsZSk7CisgICAgICAgICAgICAgICAgdGhpcy5saW5lRnJhZ21lbnQgPSBu
dWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhpcy5saW5lSW5kZXgrKzsKKyAgICAg
ICAgICAgIGlmICh0aGlzLmxpbmVJbmRleCA+PSByb3dzTGVuZ3RoICYmIHByb2Nlc3NDaHVua0lu
dGVydmFsKSB7CiAgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChwcm9jZXNzQ2h1bmtJbnRl
cnZhbCk7Ci0KICAgICAgICAgICAgICAgICB0aGlzLnNvdXJjZUZyYW1lLmRpc3BhdGNoRXZlbnRU
b0xpc3RlbmVycygic3ludGF4IGhpZ2hsaWdodGluZyBjb21wbGV0ZSIpOworICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJvdyA9IHJvd3NbdGhpcy5s
aW5lSW5kZXhdOworICAgICAgICAgICAgbGluZSA9IHJvdyA/IHJvdy5jZWxsc1sxXSA6IG51bGw7
CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHRoaXMubWVzc2FnZUJ1YmJsZSA9IG51bGw7Cisg
ICAgICAgICAgICBpZiAobGluZS5sYXN0Q2hpbGQgJiYgbGluZS5sYXN0Q2hpbGQubm9kZVR5cGUg
PT09IE5vZGUuRUxFTUVOVF9OT0RFICYmIGxpbmUubGFzdENoaWxkLmhhc1N0eWxlQ2xhc3MoIndl
YmtpdC1odG1sLW1lc3NhZ2UtYnViYmxlIikpIHsKKyAgICAgICAgICAgICAgICB0aGlzLm1lc3Nh
Z2VCdWJibGUgPSBsaW5lLmxhc3RDaGlsZDsKKyAgICAgICAgICAgICAgICBsaW5lLnJlbW92ZUNo
aWxkKHRoaXMubWVzc2FnZUJ1YmJsZSk7CiAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRo
aXMubGluZUNvZGUgPSBsaW5lLnRleHRDb250ZW50OworICAgICAgICAgICAgdGhpcy5saW5lRnJh
Z21lbnQgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7CisgICAgICAgICAgICB0
aGlzLmN1cnNvciA9IDA7CisgICAgICAgICAgICBpZiAoIWxpbmUpCisgICAgICAgICAgICAgICAg
bW92ZVRvTmV4dExpbmUoKTsKICAgICAgICAgfQorICAgIH0sCisgICAgCisgICAgbGV4OiBmdW5j
dGlvbigpCisgICAgeworICAgICAgICB2YXIgdG9rZW4gPSBudWxsOworICAgICAgICB2YXIgY29k
ZUZyYWdtZW50ID0gdGhpcy5saW5lQ29kZS5zdWJzdHJpbmcodGhpcy5jdXJzb3IpOworICAgICAg
ICAKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnJ1bGVzLmxlbmd0aDsgaSsrKSB7
CisgICAgICAgICAgICB2YXIgcnVsZSA9IHRoaXMucnVsZXNbaV07CisgICAgICAgICAgICB2YXIg
cnVsZUNvbnRpbnVlU3RhdGVDb25kaXRpb24gPSB0eXBlb2YgcnVsZS5jb250aW51ZVN0YXRlQ29u
ZGl0aW9uID09PSAidW5kZWZpbmVkIiA/IHRoaXMuQ29udGludWVTdGF0ZS5Ob25lIDogcnVsZS5j
b250aW51ZVN0YXRlQ29uZGl0aW9uOworICAgICAgICAgICAgaWYgKHRoaXMuY29udGludWVTdGF0
ZSA9PT0gcnVsZUNvbnRpbnVlU3RhdGVDb25kaXRpb24pIHsKKyAgICAgICAgICAgICAgICBpZiAo
dHlwZW9mIHJ1bGUubGV4U3RhdGVDb25kaXRpb24gIT09ICJ1bmRlZmluZWQiICYmIHRoaXMubGV4
U3RhdGUgIT09IHJ1bGUubGV4U3RhdGVDb25kaXRpb24pCisgICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICAgICAgICAgIHZhciBtYXRjaCA9IHJ1bGUucGF0dGVybi5leGVjKGNv
ZGVGcmFnbWVudCk7CisgICAgICAgICAgICAgICAgaWYgKG1hdGNoKSB7CisgICAgICAgICAgICAg
ICAgICAgIHRva2VuID0gbWF0Y2hbMF07CisgICAgICAgICAgICAgICAgICAgIGlmICh0b2tlbikg
eworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFydWxlLmRvbnRBcHBlbmROb25Ub2tlbikK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGVuZE5vblRva2VuKCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gcnVsZS5hY3Rpb24uY2FsbCh0aGlzLCB0b2tlbik7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5ub25Ub2tlbiArPSBjb2RlRnJhZ21lbnRbMF07Cisg
ICAgICAgIHRoaXMuY3Vyc29yKys7CisgICAgfSwKKyAgICAKKyAgICBhcHBlbmROb25Ub2tlbjog
ZnVuY3Rpb24gKCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLm5vblRva2VuLmxlbmd0aCA+IDAp
IHsKKyAgICAgICAgICAgIHRoaXMubGluZUZyYWdtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKHRoaXMubm9uVG9rZW4pKTsKKyAgICAgICAgICAgIHRoaXMubm9uVG9rZW4g
PSAiIjsKKyAgICAgICAgfQorICAgIH0sCisgICAgCisgICAgc3ludGF4SGlnaGxpZ2h0Tm9kZTog
ZnVuY3Rpb24obm9kZSkKKyAgICB7CisgICAgICAgIHRoaXMubGluZUNvZGUgPSBub2RlLnRleHRD
b250ZW50OworICAgICAgICB0aGlzLmxpbmVGcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3Vt
ZW50RnJhZ21lbnQoKTsKKyAgICAgICAgdGhpcy5jdXJzb3IgPSAwOworICAgICAgICB3aGlsZSAo
dHJ1ZSkgeworICAgICAgICAgICAgaWYgKHRoaXMuY3Vyc29yID49IHRoaXMubGluZUNvZGUubGVu
Z3RoKSB7CisgICAgICAgICAgICAgICAgdmFyIGNvZGVGcmFnbWVudCA9IHRoaXMubGluZUNvZGUu
c3Vic3RyaW5nKHRoaXMuY3Vyc29yKTsKKyAgICAgICAgICAgICAgICB0aGlzLm5vblRva2VuICs9
IGNvZGVGcmFnbWVudDsKKyAgICAgICAgICAgICAgICB0aGlzLmN1cnNvciArPSBjb2RlRnJhZ21l
bnQubGVuZ3RoOworICAgICAgICAgICAgICAgIHRoaXMuYXBwZW5kTm9uVG9rZW4oKTsKKyAgICAg
ICAgICAgICAgICB3aGlsZSAobm9kZS5maXJzdENoaWxkKQorICAgICAgICAgICAgICAgICAgICBu
b2RlLnJlbW92ZUNoaWxkKG5vZGUuZmlyc3RDaGlsZCk7CisgICAgICAgICAgICAgICAgbm9kZS5h
cHBlbmRDaGlsZCh0aGlzLmxpbmVGcmFnbWVudCk7CisgICAgICAgICAgICAgICAgdGhpcy5saW5l
RnJhZ21lbnQgPW51bGw7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQog
Ci0gICAgICAgIHZhciBib3VuZFByb2Nlc3NDaHVuayA9IHByb2Nlc3NDaHVuay5iaW5kKHRoaXMp
OwotICAgICAgICB2YXIgcHJvY2Vzc0NodW5rSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChib3VuZFBy
b2Nlc3NDaHVuaywgMjUpOwotICAgICAgICBib3VuZFByb2Nlc3NDaHVuaygpOworICAgICAgICAg
ICAgdGhpcy5sZXgoKTsKKyAgICAgICAgfQogICAgIH0KIH0KIAotV2ViSW5zcGVjdG9yLkNTU1Nv
dXJjZVN5bnRheEhpZ2hsaWdoZXIgPSBmdW5jdGlvbih0YWJsZSwgc291cmNlRnJhbWUpIHsKLSAg
ICBXZWJJbnNwZWN0b3IuU291cmNlU3ludGF4SGlnaGxpZ2hlci5jYWxsKHRoaXMsIHRhYmxlLCBz
b3VyY2VGcmFtZSk7Ci0KLSAgICB0aGlzLmZpbmROdW1iZXIgPSB0aGlzLmdlbmVyYXRlRmluZGVy
KC9eKCgtPyhcZCt8XGQqXC5cZCspKXxeKCNbYS1mQS1GMC05XXszLDZ9KSkoPzpcRHwkKS8sIDEs
ICJ3ZWJraXQtY3NzLW51bWJlciIpOwotICAgIHRoaXMuZmluZFVuaXRzID0gdGhpcy5nZW5lcmF0
ZUZpbmRlcigvXihweHxlbXxwdHxpbnxjbXxtbXxwY3xleCkoPzpcV3wkKS8sIDEsICJ3ZWJraXQt
Y3NzLXVuaXQiKTsKLSAgICB0aGlzLmZpbmRLZXl3b3JkID0gdGhpcy5nZW5lcmF0ZUZpbmRlcigv
XihyZ2JhP3xoc2xhP3x2YXIpKD86XFd8JCkvLCAxLCAid2Via2l0LWNzcy1rZXl3b3JkIik7Ci0g
ICAgdGhpcy5maW5kU2luZ2xlTGluZVN0cmluZyA9IHRoaXMuZ2VuZXJhdGVGaW5kZXIoL14iKD86
W14iXFxdfFxcLikqInxeJyhbXidcXF18XFwuKSonLywgMCwgIndlYmtpdC1jc3Mtc3RyaW5nIik7
IC8vICIgdGhpcyBxdW90ZSBrZWVwcyBYY29kZSBoYXBweQotICAgIHRoaXMuZmluZFNpbmdsZUxp
bmVDb21tZW50ID0gdGhpcy5nZW5lcmF0ZUZpbmRlcigvXlwvXCouKj9cKlwvLywgMCwgIndlYmtp
dC1jc3MtY29tbWVudCIpOwotICAgIHRoaXMuZmluZE11bHRpbGluZUNvbW1lbnRTdGFydCA9IHRo
aXMuZ2VuZXJhdGVGaW5kZXIoL15cL1wqLiokLywgMCwgIndlYmtpdC1jc3MtY29tbWVudCIpOwot
ICAgIHRoaXMuZmluZE11bHRpbGluZUNvbW1lbnRFbmQgPSB0aGlzLmdlbmVyYXRlRmluZGVyKC9e
Lio/XCpcLy8sIDAsICJ3ZWJraXQtY3NzLWNvbW1lbnQiKTsKLSAgICB0aGlzLmZpbmRTZWxlY3Rv
ciA9IHRoaXMuZ2VuZXJhdGVGaW5kZXIoL14oWyNcLl0/W19hLXpBLVpdLio/KSg/OlxXfCQpLywg
MSwgIndlYmtpdC1jc3Mtc2VsZWN0b3IiKTsKLSAgICB0aGlzLmZpbmRQcm9wZXJ0eSA9IHRoaXMu
Z2VuZXJhdGVGaW5kZXIoL14oLT9bX2EtejAtOV1bX2EtejAtOS1dKlxzKikoPzpcOikvLCAxLCAi
d2Via2l0LWNzcy1wcm9wZXJ0eSIpOwotICAgIHRoaXMuZmluZEdlbmVyaWNJZGVudCA9IHRoaXMu
Z2VuZXJhdGVGaW5kZXIoL14oW0AtXT9bX2EtejAtOV1bX2EtejAtOS1dKikoPzpcV3wkKS8sIDEs
ICJ3ZWJraXQtY3NzLXN0cmluZyIpOwotfQorV2ViSW5zcGVjdG9yLkNTU1NvdXJjZVN5bnRheEhp
Z2hsaWdodGVyID0gZnVuY3Rpb24odGFibGUsIHNvdXJjZUZyYW1lKSB7CisgICAgV2ViSW5zcGVj
dG9yLlNvdXJjZVN5bnRheEhpZ2hsaWdodGVyLmNhbGwodGhpcywgdGFibGUsIHNvdXJjZUZyYW1l
KTsKIAotV2ViSW5zcGVjdG9yLkNTU1NvdXJjZVN5bnRheEhpZ2hsaWdoZXIucHJvdG90eXBlID0g
ewotICAgIGRlbGV0ZUNvbnRpbnVlRmxhZ3M6IGZ1bmN0aW9uKGNlbGwpCisgICAgdGhpcy5MZXhT
dGF0ZSA9IHsKKyAgICAgICAgSW5pdGlhbDogMSwKKyAgICAgICAgRGVjbGFyYXRpb25Qcm9wZXJ0
eTogMiwKKyAgICAgICAgRGVjbGFyYXRpb25WYWx1ZTogMywKKyAgICAgICAgQXRNZWRpYTogNCwK
KyAgICAgICAgQXRSdWxlOiA1LAorICAgICAgICBBdEtleWZyYW1lczogNgorICAgIH07CisgICAg
dGhpcy5Db250aW51ZVN0YXRlID0geworICAgICAgICBOb25lOiAwLAorICAgICAgICBDb21tZW50
OiAxCisgICAgfTsKKyAgICAKKyAgICB0aGlzLm5vblRva2VuID0gIiI7CisgICAgdGhpcy5jdXJz
b3IgPSAwOworICAgIHRoaXMubGluZUluZGV4ID0gLTE7CisgICAgdGhpcy5saW5lQ29kZSA9ICIi
OworICAgIHRoaXMubGluZUZyYWdtZW50ID0gbnVsbDsKKyAgICB0aGlzLmxleFN0YXRlID0gdGhp
cy5MZXhTdGF0ZS5Jbml0aWFsOworICAgIHRoaXMuY29udGludWVTdGF0ZSA9IHRoaXMuQ29udGlu
dWVTdGF0ZS5Ob25lOworICAgIAorICAgIGNvbnN0IHVybFBhdHRlcm4gPSAvXnVybFwoXHMqKD86
KD86Iig/OlteXFxcIl18KD86XFxbXGRhLWZdezEsNn1ccz98XC4pKSoifCcoPzpbXlxcXCddfCg/
OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqJyl8KD86WyEjJCUmKi1+XHddfCg/OlxcW1xkYS1mXXsx
LDZ9XHM/fFwuKSkqKVxzKlwpL2k7CisgICAgY29uc3Qgc3RyaW5nUGF0dGVybiA9IC9eKD86Iig/
OlteXFxcIl18KD86XFxbXGRhLWZdezEsNn1ccz98XC4pKSoifCcoPzpbXlxcXCddfCg/OlxcW1xk
YS1mXXsxLDZ9XHM/fFwuKSkqJykvaTsKKyAgICBjb25zdCBpZGVudFBhdHRlcm4gPSAvXi0/KD86
XHd8KD86XFxbXGRhLWZdezEsNn1ccz98XC4pKSg/OlstXHddfCg/OlxcW1xkYS1mXXsxLDZ9XHM/
fFwuKSkqL2k7CisgICAgY29uc3Qgc3RhcnRCbG9ja1BhdHRlcm4gPSAvXnsvaTsKKyAgICBjb25z
dCBlbmRCbG9ja1BhdHRlcm4gPSAvXn0vaTsKKyAgICB0aGlzLnJ1bGVzID0gW3sKKyAgICAgICAg
cGF0dGVybjogL15cL1wqW15cKl0qXCorKFteXC8qXVteKl0qXCorKSpcLy9pLAorICAgICAgICBh
Y3Rpb246IGNvbW1lbnRBY3Rpb24KKyAgICB9LCB7CisgICAgICAgIHBhdHRlcm46IC9eKD86XC9c
Kig/OlteXCpdfFwqW15cL10pKikvaSwKKyAgICAgICAgYWN0aW9uOiBjb21tZW50U3RhcnRBY3Rp
b24KKyAgICB9LCB7CisgICAgICAgIHBhdHRlcm46IC9eKD86KD86W15cKl18XCpbXlwvXSkqXCor
XC8pL2ksCisgICAgICAgIGFjdGlvbjogY29tbWVudEVuZEFjdGlvbiwKKyAgICAgICAgY29udGlu
dWVTdGF0ZUNvbmRpdGlvbjogdGhpcy5Db250aW51ZVN0YXRlLkNvbW1lbnQKKyAgICB9LCB7Cisg
ICAgICAgIHBhdHRlcm46IC9eLiovaSwKKyAgICAgICAgYWN0aW9uOiBjb21tZW50TWlkZGxlQWN0
aW9uLAorICAgICAgICBjb250aW51ZVN0YXRlQ29uZGl0aW9uOiB0aGlzLkNvbnRpbnVlU3RhdGUu
Q29tbWVudAorICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjogL14oPzooPzotPyg/Olx3fCg/Olxc
W1xkYS1mXXsxLDZ9XHM/fFwuKSkoPzpbLVx3XXwoPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKnxc
KikoPzojLT8oPzpcd3woPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKD86Wy1cd118KD86XFxbXGRh
LWZdezEsNn1ccz98XC4pKSp8XC4tPyg/Olx3fCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkoPzpb
LVx3XXwoPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKnxcW1xzKi0/KD86XHd8KD86XFxbXGRhLWZd
ezEsNn1ccz98XC4pKSg/OlstXHddfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqXHMqKD86KD86
PXx+PXxcfD0pXHMqKD86LT8oPzpcd3woPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKD86Wy1cd118
KD86XFxbXGRhLWZdezEsNn1ccz98XC4pKSp8KD86Iig/OlteXFxcIl18KD86XFxbXGRhLWZdezEs
Nn1ccz98XC4pKSoifCcoPzpbXlxcXCddfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqJykpXHMq
KT9cXXw6KD86LT8oPzpcd3woPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKD86Wy1cd118KD86XFxb
XGRhLWZdezEsNn1ccz98XC4pKSp8LT8oPzpcd3woPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKD86
Wy1cd118KD86XFxbXGRhLWZdezEsNn1ccz98XC4pKSpcKFxzKig/Oi0/KD86XHd8KD86XFxbXGRh
LWZdezEsNn1ccz98XC4pKSg/OlstXHddfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqXHMqKT9c
KSkpKnwoPzojLT8oPzpcd3woPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKD86Wy1cd118KD86XFxb
XGRhLWZdezEsNn1ccz98XC4pKSp8XC4tPyg/Olx3fCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSko
PzpbLVx3XXwoPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKnxcW1xzKi0/KD86XHd8KD86XFxbXGRh
LWZdezEsNn1ccz98XC4pKSg/OlstXHddfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqXHMqKD86
KD86PXx+PXxcfD0pXHMqKD86LT8oPzpcd3woPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKD86Wy1c
d118KD86XFxbXGRhLWZdezEsNn1ccz98XC4pKSp8KD86Iig/OlteXFxcIl18KD86XFxbXGRhLWZd
ezEsNn1ccz98XC4pKSoifCcoPzpbXlxcXCddfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqJykp
XHMqKT9cXXw6KD86LT8oPzpcd3woPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKD86Wy1cd118KD86
XFxbXGRhLWZdezEsNn1ccz98XC4pKSp8LT8oPzpcd3woPzpcXFtcZGEtZl17MSw2fVxzP3xcLikp
KD86Wy1cd118KD86XFxbXGRhLWZdezEsNn1ccz98XC4pKSpcKFxzKig/Oi0/KD86XHd8KD86XFxb
XGRhLWZdezEsNn1ccz98XC4pKSg/OlstXHddfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqXHMq
KT9cKSkpKykvaSwKKyAgICAgICAgYWN0aW9uOiBzZWxlY3RvckFjdGlvbiwKKyAgICAgICAgbGV4
U3RhdGVDb25kaXRpb246IHRoaXMuTGV4U3RhdGUuSW5pdGlhbAorICAgIH0sIHsKKyAgICAgICAg
cGF0dGVybjogc3RhcnRCbG9ja1BhdHRlcm4sCisgICAgICAgIGFjdGlvbjogc3RhcnRSdWxlc2V0
QmxvY2tBY3Rpb24sCisgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0aGlzLkxleFN0YXRlLklu
aXRpYWwsCisgICAgICAgIGRvbnRBcHBlbmROb25Ub2tlbjogdHJ1ZQorICAgIH0sIHsKKyAgICAg
ICAgcGF0dGVybjogaWRlbnRQYXR0ZXJuLAorICAgICAgICBhY3Rpb246IHByb3BlcnR5QWN0aW9u
LAorICAgICAgICBsZXhTdGF0ZUNvbmRpdGlvbjogdGhpcy5MZXhTdGF0ZS5EZWNsYXJhdGlvblBy
b3BlcnR5LAorICAgICAgICBkb250QXBwZW5kTm9uVG9rZW46IHRydWUKKyAgICB9LCB7CisgICAg
ICAgIHBhdHRlcm46IC9eOi9pLAorICAgICAgICBhY3Rpb246IGRlY2xhcmF0aW9uQ29sb25BY3Rp
b24sCisgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0aGlzLkxleFN0YXRlLkRlY2xhcmF0aW9u
UHJvcGVydHksCisgICAgICAgIGRvbnRBcHBlbmROb25Ub2tlbjogdHJ1ZQorICAgIH0sIHsKKyAg
ICAgICAgcGF0dGVybjogL14oPzojKD86W1xkYS1mXXs2fXxbXGRhLWZdezN9KXxyZ2JhXChccyoo
PzpcZCt8XGQqXC5cZCspJT9ccyosXHMqKD86XGQrfFxkKlwuXGQrKSU/XHMqLFxzKig/OlxkK3xc
ZCpcLlxkKyklP1xzKixccyooPzpcZCt8XGQqXC5cZCspJT9ccypcKXxoc2xhXChccyooPzpcZCt8
XGQqXC5cZCspJT9ccyosXHMqKD86XGQrfFxkKlwuXGQrKSU/XHMqLFxzKig/OlxkK3xcZCpcLlxk
KyklP1xzKixccyooPzpcZCt8XGQqXC5cZCspJT9ccypcKXxyZ2JcKFxzKig/OlxkK3xcZCpcLlxk
KyklP1xzKixccyooPzpcZCt8XGQqXC5cZCspJT9ccyosXHMqKD86XGQrfFxkKlwuXGQrKSU/XHMq
XCl8aHNsXChccyooPzpcZCt8XGQqXC5cZCspJT9ccyosXHMqKD86XGQrfFxkKlwuXGQrKSU/XHMq
LFxzKig/OlxkK3xcZCpcLlxkKyklP1xzKlwpKS9pLAorICAgICAgICBhY3Rpb246IGNvbG9yQWN0
aW9uLAorICAgICAgICBsZXhTdGF0ZUNvbmRpdGlvbjogdGhpcy5MZXhTdGF0ZS5EZWNsYXJhdGlv
blZhbHVlCisgICAgfSwgeworICAgICAgICBwYXR0ZXJuOiAvXig/Oig/OlxkK3xcZCpcLlxkKyko
PzplbXxyZW18X19xZW18ZXh8cHh8Y218bW18aW58cHR8cGN8ZGVnfHJhZHxncmFkfHR1cm58bXN8
c3xIenxrSHp8JSk/KS9pLAorICAgICAgICBhY3Rpb246IG51bXZhbHVlQWN0aW9uLAorICAgICAg
ICBsZXhTdGF0ZUNvbmRpdGlvbjogdGhpcy5MZXhTdGF0ZS5EZWNsYXJhdGlvblZhbHVlCisgICAg
fSwgeworICAgICAgICBwYXR0ZXJuOiB1cmxQYXR0ZXJuLAorICAgICAgICBhY3Rpb246IHVybEFj
dGlvbiwKKyAgICAgICAgbGV4U3RhdGVDb25kaXRpb246IHRoaXMuTGV4U3RhdGUuRGVjbGFyYXRp
b25WYWx1ZQorICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjogc3RyaW5nUGF0dGVybiwKKyAgICAg
ICAgYWN0aW9uOiBzdHJpbmdBY3Rpb24sCisgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0aGlz
LkxleFN0YXRlLkRlY2xhcmF0aW9uVmFsdWUKKyAgICB9LCB7CisgICAgICAgIHBhdHRlcm46IC9e
IVxzKmltcG9ydGFudC9pLAorICAgICAgICBhY3Rpb246IGltcG9ydGFudEFjdGlvbiwKKyAgICAg
ICAgbGV4U3RhdGVDb25kaXRpb246IHRoaXMuTGV4U3RhdGUuRGVjbGFyYXRpb25WYWx1ZQorICAg
IH0sIHsKKyAgICAgICAgcGF0dGVybjogaWRlbnRQYXR0ZXJuLAorICAgICAgICBhY3Rpb246IHZh
bHVlSWRlbnRBY3Rpb24sCisgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0aGlzLkxleFN0YXRl
LkRlY2xhcmF0aW9uVmFsdWUsCisgICAgICAgIGRvbnRBcHBlbmROb25Ub2tlbjogdHJ1ZQorICAg
IH0sIHsKKyAgICAgICAgcGF0dGVybjogL147L2ksCisgICAgICAgIGFjdGlvbjogZGVjbGFyYXRp
b25TZW1pY29sb25BY3Rpb24sCisgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0aGlzLkxleFN0
YXRlLkRlY2xhcmF0aW9uVmFsdWUsCisgICAgICAgIGRvbnRBcHBlbmROb25Ub2tlbjogdHJ1ZQor
ICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjogZW5kQmxvY2tQYXR0ZXJuLAorICAgICAgICBhY3Rp
b246IGVuZFJ1bGVzZXRCbG9ja0FjdGlvbiwKKyAgICAgICAgbGV4U3RhdGVDb25kaXRpb246IHRo
aXMuTGV4U3RhdGUuRGVjbGFyYXRpb25Qcm9wZXJ0eSwKKyAgICAgICAgZG9udEFwcGVuZE5vblRv
a2VuOiB0cnVlCisgICAgfSwgeworICAgICAgICBwYXR0ZXJuOiBlbmRCbG9ja1BhdHRlcm4sCisg
ICAgICAgIGFjdGlvbjogZW5kUnVsZXNldEJsb2NrQWN0aW9uLAorICAgICAgICBsZXhTdGF0ZUNv
bmRpdGlvbjogdGhpcy5MZXhTdGF0ZS5EZWNsYXJhdGlvblZhbHVlLAorICAgICAgICBkb250QXBw
ZW5kTm9uVG9rZW46IHRydWUKKyAgICB9LCB7CisgICAgICAgIHBhdHRlcm46IC9eQG1lZGlhL2ks
CisgICAgICAgIGFjdGlvbjogYXRNZWRpYUFjdGlvbiwKKyAgICAgICAgbGV4U3RhdGVDb25kaXRp
b246IHRoaXMuTGV4U3RhdGUuSW5pdGlhbAorICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjogc3Rh
cnRCbG9ja1BhdHRlcm4sCisgICAgICAgIGFjdGlvbjogc3RhcnRBdE1lZGlhQmxvY2tBY3Rpb24s
CisgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0aGlzLkxleFN0YXRlLkF0TWVkaWEsCisgICAg
ICAgIGRvbnRBcHBlbmROb25Ub2tlbjogdHJ1ZQorICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjog
L15ALXdlYmtpdC1rZXlmcmFtZXMvaSwKKyAgICAgICAgYWN0aW9uOiBhdEtleWZyYW1lc0FjdGlv
biwKKyAgICAgICAgbGV4U3RhdGVDb25kaXRpb246IHRoaXMuTGV4U3RhdGUuSW5pdGlhbAorICAg
IH0sIHsKKyAgICAgICAgcGF0dGVybjogc3RhcnRCbG9ja1BhdHRlcm4sCisgICAgICAgIGFjdGlv
bjogc3RhcnRBdE1lZGlhQmxvY2tBY3Rpb24sCisgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0
aGlzLkxleFN0YXRlLkF0S2V5ZnJhbWVzLAorICAgICAgICBkb250QXBwZW5kTm9uVG9rZW46IHRy
dWUKKyAgICB9LCB7CisgICAgICAgIHBhdHRlcm46IC9eQC0/KD86XHd8KD86XFxbXGRhLWZdezEs
Nn1ccz98XC4pKSg/OlstXHddfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqL2ksCisgICAgICAg
IGFjdGlvbjogYXRSdWxlQWN0aW9uLAorICAgICAgICBsZXhTdGF0ZUNvbmRpdGlvbjogdGhpcy5M
ZXhTdGF0ZS5Jbml0aWFsCisgICAgfSwgeworICAgICAgICBwYXR0ZXJuOiAvXjsvaSwKKyAgICAg
ICAgYWN0aW9uOiBlbmRBdFJ1bGVBY3Rpb24sCisgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0
aGlzLkxleFN0YXRlLkF0UnVsZQorICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjogdXJsUGF0dGVy
biwKKyAgICAgICAgYWN0aW9uOiB1cmxBY3Rpb24sCisgICAgICAgIGxleFN0YXRlQ29uZGl0aW9u
OiB0aGlzLkxleFN0YXRlLkF0UnVsZQorICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjogc3RyaW5n
UGF0dGVybiwKKyAgICAgICAgYWN0aW9uOiBzdHJpbmdBY3Rpb24sCisgICAgICAgIGxleFN0YXRl
Q29uZGl0aW9uOiB0aGlzLkxleFN0YXRlLkF0UnVsZQorICAgIH0sIHsKKyAgICAgICAgcGF0dGVy
bjogc3RyaW5nUGF0dGVybiwKKyAgICAgICAgYWN0aW9uOiBzdHJpbmdBY3Rpb24sCisgICAgICAg
IGxleFN0YXRlQ29uZGl0aW9uOiB0aGlzLkxleFN0YXRlLkF0S2V5ZnJhbWVzCisgICAgfSwgewor
ICAgICAgICBwYXR0ZXJuOiBpZGVudFBhdHRlcm4sCisgICAgICAgIGFjdGlvbjogYXRSdWxlSWRl
bnRBY3Rpb24sCisgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0aGlzLkxleFN0YXRlLkF0UnVs
ZSwKKyAgICAgICAgZG9udEFwcGVuZE5vblRva2VuOiB0cnVlCisgICAgfSwgeworICAgICAgICBw
YXR0ZXJuOiBpZGVudFBhdHRlcm4sCisgICAgICAgIGFjdGlvbjogYXRSdWxlSWRlbnRBY3Rpb24s
CisgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0aGlzLkxleFN0YXRlLkF0TWVkaWEsCisgICAg
ICAgIGRvbnRBcHBlbmROb25Ub2tlbjogdHJ1ZQorICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjog
c3RhcnRCbG9ja1BhdHRlcm4sCisgICAgICAgIGFjdGlvbjogc3RhcnRBdFJ1bGVCbG9ja0FjdGlv
biwKKyAgICAgICAgbGV4U3RhdGVDb25kaXRpb246IHRoaXMuTGV4U3RhdGUuQXRSdWxlLAorICAg
ICAgICBkb250QXBwZW5kTm9uVG9rZW46IHRydWUKKyAgICB9XTsKKyAgICAKKyAgICBmdW5jdGlv
biBjb21tZW50QWN0aW9uKHRva2VuKQogICAgIHsKLSAgICAgICAgaWYgKCFjZWxsKQotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICBkZWxldGUgY2VsbC5fY29tbWVudENvbnRpbnVlczsKLSAg
ICAgICAgZGVsZXRlIGNlbGwuX2luU2VsZWN0b3I7Ci0gICAgfSwKLQotICAgIGZpbmRQc2V1ZG9D
bGFzczogZnVuY3Rpb24oc3RyKQorICAgICAgICB0aGlzLmN1cnNvciArPSB0b2tlbi5sZW5ndGg7
CisgICAgICAgIHRoaXMubGluZUZyYWdtZW50LmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlU3Bhbih0
b2tlbiwgIndlYmtpdC1jc3MtY29tbWVudCIpKTsKKyAgICB9CisgICAgCisgICAgZnVuY3Rpb24g
Y29tbWVudFN0YXJ0QWN0aW9uKHRva2VuKQogICAgIHsKLSAgICAgICAgdmFyIG1hdGNoID0gL14o
Ojo/KShbX2EtejAtOV1bX2EtejAtOS1dKikvLmV4ZWMoc3RyKTsKLSAgICAgICAgaWYgKCFtYXRj
aCkKLSAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICB0aGlzLnByZXZpb3VzTWF0Y2hM
ZW5ndGggPSBtYXRjaFswXS5sZW5ndGg7Ci0gICAgICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgic3BhbiIpOwotICAgICAgICBzcGFuLmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKG1hdGNoWzFdKSk7Ci0gICAgICAgIHNwYW4uYXBwZW5kQ2hpbGQodGhpcy5j
cmVhdGVTcGFuKG1hdGNoWzJdLCAid2Via2l0LWNzcy1wc2V1ZG8tY2xhc3MiKSk7Ci0gICAgICAg
IHJldHVybiBzcGFuOwotICAgIH0sCi0KLSAgICBmaW5kVVJMOiBmdW5jdGlvbihzdHIpCisgICAg
ICAgIHRoaXMuY3Vyc29yICs9IHRva2VuLmxlbmd0aDsKKyAgICAgICAgdGhpcy5saW5lRnJhZ21l
bnQuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVTcGFuKHRva2VuLCAid2Via2l0LWNzcy1jb21tZW50
IikpOworICAgICAgICB0aGlzLmNvbnRpbnVlU3RhdGUgPSB0aGlzLkNvbnRpbnVlU3RhdGUuQ29t
bWVudDsKKyAgICB9CisgICAgCisgICAgZnVuY3Rpb24gY29tbWVudEVuZEFjdGlvbih0b2tlbikK
ICAgICB7Ci0gICAgICAgIHZhciBtYXRjaCA9IC9eKD86bG9jYWx8dXJsKVwoKFteXCldKj8pXCkv
LmV4ZWMoc3RyKTsKLSAgICAgICAgaWYgKCFtYXRjaCkKLSAgICAgICAgICAgIHJldHVybiBudWxs
OwotICAgICAgICB0aGlzLnByZXZpb3VzTWF0Y2hMZW5ndGggPSBtYXRjaFswXS5sZW5ndGg7Ci0g
ICAgICAgIHZhciBpbm5lclVybFNwYW4gPSB0aGlzLmNyZWF0ZVNwYW4obWF0Y2hbMV0sICJ3ZWJr
aXQtY3NzLXVybCIpOwotICAgICAgICB2YXIgb3V0ZXJTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgic3BhbiIpOwotICAgICAgICBvdXRlclNwYW4uYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVT
cGFuKCJ1cmwiLCAid2Via2l0LWNzcy1rZXl3b3JkIikpOwotICAgICAgICBvdXRlclNwYW4uYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIigiKSk7Ci0gICAgICAgIG91dGVyU3Bh
bi5hcHBlbmRDaGlsZChpbm5lclVybFNwYW4pOwotICAgICAgICBvdXRlclNwYW4uYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIikiKSk7Ci0gICAgICAgIHJldHVybiBvdXRlclNw
YW47Ci0gICAgfSwKKyAgICAgICAgdGhpcy5jdXJzb3IgKz0gdG9rZW4ubGVuZ3RoOworICAgICAg
ICB0aGlzLmxpbmVGcmFnbWVudC5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVNwYW4odG9rZW4sICJ3
ZWJraXQtY3NzLWNvbW1lbnQiKSk7CisgICAgICAgIHRoaXMuY29udGludWVTdGF0ZSA9IHRoaXMu
Q29udGludWVTdGF0ZS5Ob25lOworICAgIH0KIAotICAgIGZpbmRBdFJ1bGU6IGZ1bmN0aW9uKHN0
cikKKyAgICBmdW5jdGlvbiBjb21tZW50TWlkZGxlQWN0aW9uKHRva2VuKQogICAgIHsKLSAgICAg
ICAgdmFyIG1hdGNoID0gL15AW19hLXowLTldW19hLXowLTktXSooPzpcV3wkKS8uZXhlYyhzdHIp
OwotICAgICAgICBpZiAoIW1hdGNoKQotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAg
IHRoaXMucHJldmlvdXNNYXRjaExlbmd0aCA9IG1hdGNoWzBdLmxlbmd0aDsKLSAgICAgICAgcmV0
dXJuIHRoaXMuY3JlYXRlU3BhbihtYXRjaFswXSwgIndlYmtpdC1jc3MtYXQtcnVsZSIpOwotICAg
IH0sCi0KLSAgICBzeW50YXhIaWdobGlnaHRMaW5lOiBmdW5jdGlvbihsaW5lLCBwcmV2TGluZSkK
KyAgICAgICAgdGhpcy5jdXJzb3IgKz0gdG9rZW4ubGVuZ3RoOworICAgICAgICB0aGlzLmxpbmVG
cmFnbWVudC5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVNwYW4odG9rZW4sICJ3ZWJraXQtY3NzLWNv
bW1lbnQiKSk7CisgICAgfQorICAgIAorICAgIGZ1bmN0aW9uIHNlbGVjdG9yQWN0aW9uKHRva2Vu
KQogICAgIHsKLSAgICAgICAgdmFyIGNvZGUgPSBsaW5lLnRleHRDb250ZW50OwotICAgICAgICB3
aGlsZSAobGluZS5maXJzdENoaWxkKQotICAgICAgICAgICAgbGluZS5yZW1vdmVDaGlsZChsaW5l
LmZpcnN0Q2hpbGQpOwotCi0gICAgICAgIHZhciB0b2tlbjsKLSAgICAgICAgdmFyIHRtcCA9IDA7
Ci0gICAgICAgIHZhciBpID0gMDsKLSAgICAgICAgdGhpcy5wcmV2aW91c01hdGNoTGVuZ3RoID0g
MDsKLQotICAgICAgICBpZiAocHJldkxpbmUpIHsKLSAgICAgICAgICAgIGlmIChwcmV2TGluZS5f
Y29tbWVudENvbnRpbnVlcykgewotICAgICAgICAgICAgICAgIGlmICghKHRva2VuID0gdGhpcy5m
aW5kTXVsdGlsaW5lQ29tbWVudEVuZChjb2RlKSkpIHsKLSAgICAgICAgICAgICAgICAgICAgdG9r
ZW4gPSB0aGlzLmNyZWF0ZVNwYW4oY29kZSwgIndlYmtpdC1qYXZhc2NyaXB0LWNvbW1lbnQiKTsK
LSAgICAgICAgICAgICAgICAgICAgbGluZS5fY29tbWVudENvbnRpbnVlcyA9IHRydWU7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHRva2VuKSB7Ci0g
ICAgICAgICAgICAgICAgaSArPSB0aGlzLnByZXZpb3VzTWF0Y2hMZW5ndGggPyB0aGlzLnByZXZp
b3VzTWF0Y2hMZW5ndGggOiBjb2RlLmxlbmd0aDsKLSAgICAgICAgICAgICAgICB0bXAgPSBpOwot
ICAgICAgICAgICAgICAgIGxpbmUuYXBwZW5kQ2hpbGQodG9rZW4pOwotICAgICAgICAgICAgfQor
ICAgICAgICB0aGlzLmN1cnNvciArPSB0b2tlbi5sZW5ndGg7CisgICAgICAgIHRoaXMubGluZUZy
YWdtZW50LmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlU3Bhbih0b2tlbiwgIndlYmtpdC1jc3Mtc2Vs
ZWN0b3IiKSk7CisgICAgfQorICAgIAorICAgIGZ1bmN0aW9uIHN0YXJ0UnVsZXNldEJsb2NrQWN0
aW9uKHRva2VuKQorICAgIHsKKyAgICAgICAgdGhpcy5jdXJzb3IgKz0gdG9rZW4ubGVuZ3RoOwor
ICAgICAgICB0aGlzLm5vblRva2VuICs9IHRva2VuOworICAgICAgICB0aGlzLmxleFN0YXRlID0g
dGhpcy5MZXhTdGF0ZS5EZWNsYXJhdGlvblByb3BlcnR5OworICAgIH0KKyAgICAKKyAgICBmdW5j
dGlvbiBlbmRSdWxlc2V0QmxvY2tBY3Rpb24odG9rZW4pCisgICAgeworICAgICAgICB0aGlzLmN1
cnNvciArPSB0b2tlbi5sZW5ndGg7CisgICAgICAgIHRoaXMubm9uVG9rZW4gKz0gdG9rZW47Cisg
ICAgICAgIHRoaXMubGV4U3RhdGUgPSB0aGlzLkxleFN0YXRlLkluaXRpYWw7CisgICAgfQorICAg
IAorICAgIGNvbnN0IHByb3BlcnR5S2V5d29yZHMgPSBbIi13ZWJraXQtbWF0Y2gtbmVhcmVzdC1t
YWlsLWJsb2NrcXVvdGUtY29sb3IiLCAKKyAgICAiLXdlYmtpdC12YXJpYWJsZS1kZWNsYXJhdGlv
bi1ibG9jayIsICItd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uIiwgCisgICAgIi13
ZWJraXQtdGV4dC1kZWNvcmF0aW9ucy1pbi1lZmZlY3QiLCAiLXdlYmtpdC1ib3JkZXItaG9yaXpv
bnRhbC1zcGFjaW5nIiwgCisgICAgIi13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiIs
ICItd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQiLCAKKyAgICAiLXdlYmtpdC1ib3Jk
ZXItdmVydGljYWwtc3BhY2luZyIsICItd2Via2l0LW1hcmdpbi1ib3R0b20tY29sbGFwc2UiLCAK
KyAgICAiLXdlYmtpdC1wZXJzcGVjdGl2ZS1vcmlnaW4teSIsICItd2Via2l0LXBlcnNwZWN0aXZl
LW9yaWdpbi14IiwgCisgICAgIi13ZWJraXQtYmFja2dyb3VuZC1jb21wb3NpdGUiLCAiLXdlYmtp
dC1hbmltYXRpb24tcGxheS1zdGF0ZSIsIAorICAgICItd2Via2l0LXRyYW5zaXRpb24tcHJvcGVy
dHkiLCAiLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uIiwgCisgICAgIi13ZWJraXQtbWFyZ2lu
LXRvcC1jb2xsYXBzZSIsICItd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGUiLCAKKyAgICAiLXdl
YmtpdC1jb2x1bW4tYnJlYWstYmVmb3JlIiwgIi13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eSIs
IAorICAgICItd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb24iLCAiYm9yZGVyLWJvdHRvbS1yaWdo
dC1yYWRpdXMiLCAKKyAgICAiLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luLXoiLCAiLXdlYmtpdC10
cmFuc2Zvcm0tb3JpZ2luLXkiLCAKKyAgICAiLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luLXgiLCAi
LXdlYmtpdC1wZXJzcGVjdGl2ZS1vcmlnaW4iLCAKKyAgICAiLXdlYmtpdC1tYXJxdWVlLXJlcGV0
aXRpb24iLCAiLXdlYmtpdC1jb2x1bW4tYnJlYWstYWZ0ZXIiLCAKKyAgICAiLXdlYmtpdC1hbmlt
YXRpb24tZHVyYXRpb24iLCAiYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cyIsICItd2Via2l0LXRl
eHQtc3Ryb2tlLXdpZHRoIiwgCisgICAgIi13ZWJraXQtdGV4dC1zdHJva2UtY29sb3IiLCAiLXdl
YmtpdC1tYXJxdWVlLWluY3JlbWVudCIsICItd2Via2l0LW1hcnF1ZWUtZGlyZWN0aW9uIiwgCisg
ICAgIi13ZWJraXQtY29sdW1uLXJ1bGUtd2lkdGgiLCAiLXdlYmtpdC1jb2x1bW4tcnVsZS1zdHls
ZSIsICItd2Via2l0LWNvbHVtbi1ydWxlLWNvbG9yIiwgCisgICAgIi13ZWJraXQtYm94LW9yZGlu
YWwtZ3JvdXAiLCAiLXdlYmtpdC1iYWNrZ3JvdW5kLW9yaWdpbiIsICItd2Via2l0LXRyYW5zaXRp
b24tZGVsYXkiLCAKKyAgICAiLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luIiwgIi13ZWJraXQtdGV4
dC1zaXplLWFkanVzdCIsICJ0ZXh0LWxpbmUtdGhyb3VnaC13aWR0aCIsIAorICAgICJ0ZXh0LWxp
bmUtdGhyb3VnaC1zdHlsZSIsICJ0ZXh0LWxpbmUtdGhyb3VnaC1jb2xvciIsICJib3JkZXItdG9w
LXJpZ2h0LXJhZGl1cyIsIAorICAgICItd2Via2l0LXRyYW5zZm9ybS1zdHlsZSIsICItd2Via2l0
LXRleHQtZmlsbC1jb2xvciIsICItd2Via2l0LW1hc2stcG9zaXRpb24teSIsIAorICAgICItd2Vi
a2l0LW1hc2stcG9zaXRpb24teCIsICItd2Via2l0LW1hc2stYXR0YWNobWVudCIsICItd2Via2l0
LW1hcmdpbi1jb2xsYXBzZSIsIAorICAgICItd2Via2l0LWZvbnQtc2l6ZS1kZWx0YSIsICItd2Vi
a2l0LWJhY2tncm91bmQtc2l6ZSIsICItd2Via2l0LWJhY2tncm91bmQtY2xpcCIsIAorICAgICIt
d2Via2l0LWFuaW1hdGlvbi1kZWxheSIsICJ0ZXh0LWxpbmUtdGhyb3VnaC1tb2RlIiwgImJvcmRl
ci10b3AtbGVmdC1yYWRpdXMiLCAKKyAgICAiLXdlYmtpdC1tYXNrLWNvbXBvc2l0ZSIsICItd2Vi
a2l0LW1hc2stYm94LWltYWdlIiwgIi13ZWJraXQtZm9udC1zbW9vdGhpbmciLCAKKyAgICAiLXdl
YmtpdC1ib3gtZmxleC1ncm91cCIsICItd2Via2l0LWFuaW1hdGlvbi1uYW1lIiwgImJhY2tncm91
bmQtcG9zaXRpb24teSIsIAorICAgICJiYWNrZ3JvdW5kLXBvc2l0aW9uLXgiLCAiYmFja2dyb3Vu
ZC1hdHRhY2htZW50IiwgIi13ZWJraXQtdGV4dC1zZWN1cml0eSIsIAorICAgICItd2Via2l0LXBh
ZGRpbmctc3RhcnQiLCAiLXdlYmtpdC1tYXNrLXJlcGVhdC15IiwgIi13ZWJraXQtbWFzay1yZXBl
YXQteCIsIAorICAgICItd2Via2l0LW1hc2stcG9zaXRpb24iLCAiLXdlYmtpdC1tYXJxdWVlLXN0
eWxlIiwgIi13ZWJraXQtbWFycXVlZS1zcGVlZCIsIAorICAgICItd2Via2l0LWJveC1kaXJlY3Rp
b24iLCAiLXdlYmtpdC1ib3JkZXItcmFkaXVzIiwgInRleHQtdW5kZXJsaW5lLXdpZHRoIiwgCisg
ICAgInRleHQtdW5kZXJsaW5lLXN0eWxlIiwgInRleHQtdW5kZXJsaW5lLWNvbG9yIiwgIi13ZWJr
aXQtcnRsLW9yZGVyaW5nIiwgCisgICAgIi13ZWJraXQtbWFyZ2luLXN0YXJ0IiwgIi13ZWJraXQt
Y29sdW1uLXdpZHRoIiwgIi13ZWJraXQtY29sdW1uLWNvdW50IiwgCisgICAgIi13ZWJraXQtYm9y
ZGVyLWltYWdlIiwgInRleHQtdW5kZXJsaW5lLW1vZGUiLCAidGV4dC1vdmVybGluZS13aWR0aCIs
IAorICAgICJ0ZXh0LW92ZXJsaW5lLXN0eWxlIiwgInRleHQtb3ZlcmxpbmUtY29sb3IiLCAibGlz
dC1zdHlsZS1wb3NpdGlvbiIsIAorICAgICJib3JkZXItYm90dG9tLXdpZHRoIiwgImJvcmRlci1i
b3R0b20tc3R5bGUiLCAiYm9yZGVyLWJvdHRvbS1jb2xvciIsIAorICAgICJiYWNrZ3JvdW5kLXJl
cGVhdC15IiwgImJhY2tncm91bmQtcmVwZWF0LXgiLCAiYmFja2dyb3VuZC1wb3NpdGlvbiIsIAor
ICAgICItd2Via2l0LXVzZXItc2VsZWN0IiwgIi13ZWJraXQtdXNlci1tb2RpZnkiLCAiLXdlYmtp
dC10ZXh0LXN0cm9rZSIsIAorICAgICItd2Via2l0LXBlcnNwZWN0aXZlIiwgIi13ZWJraXQtbWFz
ay1yZXBlYXQiLCAiLXdlYmtpdC1tYXNrLW9yaWdpbiIsIAorICAgICItd2Via2l0LWNvbHVtbi1y
dWxlIiwgIi13ZWJraXQtYm94LXJlZmxlY3QiLCAidGV4dC1vdmVybGluZS1tb2RlIiwgImJvcmRl
ci1yaWdodC13aWR0aCIsIAorICAgICJib3JkZXItcmlnaHQtc3R5bGUiLCAiYm9yZGVyLXJpZ2h0
LWNvbG9yIiwgIi13ZWJraXQtdHJhbnNpdGlvbiIsICItd2Via2l0LW1hc2staW1hZ2UiLCAKKyAg
ICAiLXdlYmtpdC1saW5lLWNsYW1wIiwgIi13ZWJraXQtbGluZS1icmVhayIsICItd2Via2l0LWNv
bHVtbi1nYXAiLCAiLXdlYmtpdC1ib3gtc2l6aW5nIiwgCisgICAgIi13ZWJraXQtYm94LXNoYWRv
dyIsICItd2Via2l0LWJveC1vcmllbnQiLCAiLXdlYmtpdC1ib3JkZXItZml0IiwgIi13ZWJraXQt
YXBwZWFyYW5jZSIsIAorICAgICJ0ZXh0LWxpbmUtdGhyb3VnaCIsICJwYWdlLWJyZWFrLWluc2lk
ZSIsICJwYWdlLWJyZWFrLWJlZm9yZSIsICJjb3VudGVyLWluY3JlbWVudCIsIAorICAgICJib3Jk
ZXItbGVmdC13aWR0aCIsICJib3JkZXItbGVmdC1zdHlsZSIsICJib3JkZXItbGVmdC1jb2xvciIs
ICJiYWNrZ3JvdW5kLXJlcGVhdCIsIAorICAgICJiYWNrZ3JvdW5kLW9yaWdpbiIsICItd2Via2l0
LXVzZXItZHJhZyIsICItd2Via2l0LXRyYW5zZm9ybSIsICItd2Via2l0LW5ic3AtbW9kZSIsIAor
ICAgICItd2Via2l0LW1hc2stc2l6ZSIsICItd2Via2l0LW1hc2stY2xpcCIsICItd2Via2l0LWhp
Z2hsaWdodCIsICItd2Via2l0LWJveC1saW5lcyIsIAorICAgICItd2Via2l0LWJveC1hbGlnbiIs
ICItd2Via2l0LWFuaW1hdGlvbiIsICJwYWdlLWJyZWFrLWFmdGVyIiwgImxpc3Qtc3R5bGUtaW1h
Z2UiLCAKKyAgICAiYm9yZGVyLXRvcC13aWR0aCIsICJib3JkZXItdG9wLXN0eWxlIiwgImJvcmRl
ci10b3AtY29sb3IiLCAiYmFja2dyb3VuZC1pbWFnZSIsIAorICAgICJiYWNrZ3JvdW5kLWNvbG9y
IiwgIi13ZWJraXQtYm94LXBhY2siLCAiLXdlYmtpdC1ib3gtZmxleCIsICJ0ZXh0LWRlY29yYXRp
b24iLCAKKyAgICAibGlzdC1zdHlsZS10eXBlIiwgImJvcmRlci1jb2xsYXBzZSIsICJiYWNrZ3Jv
dW5kLXNpemUiLCAiYmFja2dyb3VuZC1jbGlwIiwgCisgICAgIi13ZWJraXQtbWFycXVlZSIsICIt
d2Via2l0LWNvbHVtbnMiLCAiLXdlYmtpdC1iaW5kaW5nIiwgInZlcnRpY2FsLWFsaWduIiwgCisg
ICAgInRleHQtdW5kZXJsaW5lIiwgInRleHQtdHJhbnNmb3JtIiwgInRleHQtcmVuZGVyaW5nIiwg
InBvaW50ZXItZXZlbnRzIiwgInBhZGRpbmctYm90dG9tIiwgCisgICAgIm91dGxpbmUtb2Zmc2V0
IiwgImxldHRlci1zcGFjaW5nIiwgImJvcmRlci1zcGFjaW5nIiwgInVuaWNvZGUtcmFuZ2UiLCAi
dGV4dC1vdmVybGluZSIsIAorICAgICJ0ZXh0LW92ZXJmbG93IiwgInBhZGRpbmctcmlnaHQiLCAi
b3V0bGluZS13aWR0aCIsICJvdXRsaW5lLXN0eWxlIiwgIm91dGxpbmUtY29sb3IiLCAKKyAgICAi
bWFyZ2luLWJvdHRvbSIsICJjb3VudGVyLXJlc2V0IiwgImJvcmRlci1yYWRpdXMiLCAiYm9yZGVy
LWJvdHRvbSIsICJ3b3JkLXNwYWNpbmciLCAKKyAgICAidW5pY29kZS1iaWRpIiwgInRhYmxlLWxh
eW91dCIsICJwYWRkaW5nLWxlZnQiLCAibWFyZ2luLXJpZ2h0IiwgImZvbnQtdmFyaWFudCIsIAor
ICAgICJmb250LXN0cmV0Y2giLCAiY2FwdGlvbi1zaWRlIiwgImJvcmRlci13aWR0aCIsICJib3Jk
ZXItc3R5bGUiLCAiYm9yZGVyLXJpZ2h0IiwgCisgICAgImJvcmRlci1jb2xvciIsICItd2Via2l0
LW1hc2siLCAid2hpdGUtc3BhY2UiLCAidGV4dC1zaGFkb3ciLCAidGV4dC1pbmRlbnQiLCAKKyAg
ICAicGFkZGluZy10b3AiLCAibWFyZ2luLWxlZnQiLCAibGluZS1oZWlnaHQiLCAiZm9udC13ZWln
aHQiLCAiZm9udC1mYW1pbHkiLCAKKyAgICAiZW1wdHktY2VsbHMiLCAiYm9yZGVyLWxlZnQiLCAi
d29yZC1icmVhayIsICJ2aXNpYmlsaXR5IiwgInRleHQtYWxpZ24iLCAKKyAgICAib3ZlcmZsb3ct
eSIsICJvdmVyZmxvdy14IiwgIm1pbi1oZWlnaHQiLCAibWF4LWhlaWdodCIsICJtYXJnaW4tdG9w
IiwgCisgICAgImxpc3Qtc3R5bGUiLCAiZm9udC1zdHlsZSIsICJib3JkZXItdG9wIiwgImJhY2tn
cm91bmQiLCAid29yZC13cmFwIiwgCisgICAgIm1pbi13aWR0aCIsICJtYXgtd2lkdGgiLCAiZm9u
dC1zaXplIiwgImRpcmVjdGlvbiIsICJwb3NpdGlvbiIsICJvdmVyZmxvdyIsICJ6LWluZGV4Iiwg
CisgICAgInBhZGRpbmciLCAib3V0bGluZSIsICJvcnBoYW5zIiwgIm9wYWNpdHkiLCAiZGlzcGxh
eSIsICJjb250ZW50IiwgIndpZG93cyIsICJyZXNpemUiLCAKKyAgICAicXVvdGVzIiwgIm1hcmdp
biIsICJoZWlnaHQiLCAiY3Vyc29yIiwgImJvdHRvbSIsICJib3JkZXIiLCAid2lkdGgiLCAicmln
aHQiLCAiZmxvYXQiLCAKKyAgICAiY29sb3IiLCAiY2xlYXIiLCAiem9vbSIsICJzaXplIiwgInBh
Z2UiLCAibGVmdCIsICJmb250IiwgImNsaXAiLCAidG9wIiwgInNyYyJdOworICAgIGZ1bmN0aW9u
IHByb3BlcnR5QWN0aW9uKHRva2VuKQorICAgIHsKKyAgICAgICAgdGhpcy5jdXJzb3IgKz0gdG9r
ZW4ubGVuZ3RoOworICAgICAgICBpZiAocHJvcGVydHlLZXl3b3Jkcy5pbmRleE9mKHRva2VuKSA9
PT0gLTEpCisgICAgICAgICAgICB0aGlzLm5vblRva2VuICs9IHRva2VuOworICAgICAgICBlbHNl
IHsKKyAgICAgICAgICAgIHRoaXMuYXBwZW5kTm9uVG9rZW4uY2FsbCh0aGlzKTsKKyAgICAgICAg
ICAgIHRoaXMubGluZUZyYWdtZW50LmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlU3Bhbih0b2tlbiwg
IndlYmtpdC1jc3MtcHJvcGVydHkiKSk7CiAgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgZnVu
Y3Rpb24gZGVjbGFyYXRpb25Db2xvbkFjdGlvbih0b2tlbikKKyAgICB7CisgICAgICAgIHRoaXMu
Y3Vyc29yICs9IHRva2VuLmxlbmd0aDsKKyAgICAgICAgdGhpcy5ub25Ub2tlbiArPSB0b2tlbjsK
KyAgICAgICAgdGhpcy5sZXhTdGF0ZSA9IHRoaXMuTGV4U3RhdGUuRGVjbGFyYXRpb25WYWx1ZTsK
KyAgICB9CiAKLSAgICAgICAgdmFyIGluU2VsZWN0b3IgPSAocHJldkxpbmUgJiYgcHJldkxpbmUu
X2luU2VsZWN0b3IpOyAvLyBpbnNpZGUgYSBzZWxlY3Rvciwgd2UgY2FuIG5vdyBwYXJzZSBwcm9w
ZXJ0aWVzIGFuZCB2YWx1ZXMKLSAgICAgICAgdmFyIGluQXRSdWxlQmxvY2sgPSAocHJldkxpbmUg
JiYgcHJldkxpbmUuX2luQXRSdWxlQmxvY2spOyAvLyBpbnNpZGUgYW4gQHJ1bGUgYmxvY2ssIGJ1
dCBub3QgbmVjZXNzYXJpbHkgaW5zaWRlIGEgc2VsZWN0b3IgeWV0Ci0gICAgICAgIHZhciBhdFJ1
bGVTdGFydGVkID0gKHByZXZMaW5lICYmIHByZXZMaW5lLl9hdFJ1bGVTdGFydGVkKTsgLy8gd2Ug
cmVjZWl2ZWQgYW4gQHJ1bGUsIHdlIG1heSBzdG9wIHRoZSBAcnVsZSBhdCBhIHNlbWljb2xvbiBv
ciBvcGVuIGEgYmxvY2sgYW5kIGJlY29tZSBpbkF0UnVsZUJsb2NrCi0gICAgICAgIHZhciBhdFJ1
bGVJc1NlbGVjdG9yID0gKHByZXZMaW5lICYmIHByZXZMaW5lLl9hdFJ1bGVJc1NlbGVjdG9yKTsg
Ly8gd2hlbiB0aGlzIEBydWxlIG9wZW5zIGEgYmxvY2sgaXQgaW1tZWRpYXRlbHkgZ29lcyBpbnRv
IHBhcnNpbmcgcHJvcGVydGllcyBhbmQgdmFsdWVzIGluc3RlYWQgb2Ygc2VsZWN0b3JzCi0KLSAg
ICAgICAgZm9yICggOyBpIDwgY29kZS5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIGNv
ZGVGcmFnbWVudCA9IGNvZGUuc3Vic3RyKGkpOwotICAgICAgICAgICAgdmFyIHByZXZDaGFyID0g
Y29kZVtpIC0gMV07Ci0gICAgICAgICAgICB2YXIgY3VyckNoYXIgPSBjb2RlRnJhZ21lbnRbMF07
Ci0gICAgICAgICAgICB0b2tlbiA9IHRoaXMuZmluZFNpbmdsZUxpbmVDb21tZW50KGNvZGVGcmFn
bWVudCk7Ci0gICAgICAgICAgICBpZiAoIXRva2VuKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCh0
b2tlbiA9IHRoaXMuZmluZE11bHRpbGluZUNvbW1lbnRTdGFydChjb2RlRnJhZ21lbnQpKSkKLSAg
ICAgICAgICAgICAgICAgICAgbGluZS5fY29tbWVudENvbnRpbnVlcyA9IHRydWU7Ci0gICAgICAg
ICAgICAgICAgZWxzZSBpZiAoY3VyckNoYXIgPT09ICI7IiAmJiAhaW5BdFJ1bGVCbG9jaykKLSAg
ICAgICAgICAgICAgICAgICAgYXRSdWxlU3RhcnRlZCA9IGZhbHNlOwotICAgICAgICAgICAgICAg
IGVsc2UgaWYgKGN1cnJDaGFyID09PSAifSIpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGlu
U2VsZWN0b3IgJiYgaW5BdFJ1bGVCbG9jayAmJiBhdFJ1bGVJc1NlbGVjdG9yKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBpblNlbGVjdG9yID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBpbkF0UnVsZUJsb2NrID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhdFJ1
bGVTdGFydGVkID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5TZWxl
Y3RvcikgewotICAgICAgICAgICAgICAgICAgICAgICAgaW5TZWxlY3RvciA9IGZhbHNlOwotICAg
ICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGluQXRSdWxlQmxvY2spIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGluQXRSdWxlQmxvY2sgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGF0UnVsZVN0YXJ0ZWQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIH0gZWxzZSBpZiAoY3VyckNoYXIgPT09ICJ7IikgewotICAgICAgICAgICAgICAg
ICAgICBpZiAoIWF0UnVsZVN0YXJ0ZWQgfHwgaW5BdFJ1bGVCbG9jaykgewotICAgICAgICAgICAg
ICAgICAgICAgICAgaW5TZWxlY3RvciA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxz
ZSBpZiAoIWluQXRSdWxlQmxvY2sgJiYgYXRSdWxlSXNTZWxlY3RvcikgewotICAgICAgICAgICAg
ICAgICAgICAgICAgaW5BdFJ1bGVCbG9jayA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBpblNlbGVjdG9yID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghaW5B
dFJ1bGVCbG9jaykgewotICAgICAgICAgICAgICAgICAgICAgICAgaW5BdFJ1bGVCbG9jayA9IHRy
dWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpblNlbGVjdG9yID0gZmFsc2U7Ci0gICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGluU2VsZWN0b3IpIHsK
LSAgICAgICAgICAgICAgICAgICAgaWYgKCFwcmV2Q2hhciB8fCAvXlxkLy50ZXN0KHByZXZDaGFy
KSkgewotICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4gPSB0aGlzLmZpbmRVbml0cyhjb2Rl
RnJhZ21lbnQpOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFwcmV2Q2hhciB8fCAv
XlxXLy50ZXN0KHByZXZDaGFyKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4gPSB0
aGlzLmZpbmROdW1iZXIoY29kZUZyYWdtZW50KSB8fAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0aGlzLmZpbmRLZXl3b3JkKGNvZGVGcmFnbWVudCkgfHwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGhpcy5maW5kVVJMKGNvZGVGcmFnbWVudCkgfHwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maW5kUHJvcGVydHkoY29kZUZyYWdtZW50KSB8
fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbmRBdFJ1bGUoY29kZUZy
YWdtZW50KSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbmRHZW5l
cmljSWRlbnQoY29kZUZyYWdtZW50KSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0aGlzLmZpbmRTaW5nbGVMaW5lU3RyaW5nKGNvZGVGcmFnbWVudCk7Ci0gICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFpblNlbGVjdG9yKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIGlmIChhdFJ1bGVTdGFydGVkICYmICFpbkF0UnVsZUJsb2NrKQotICAg
ICAgICAgICAgICAgICAgICAgICAgdG9rZW4gPSB0aGlzLmZpbmRVUkwoY29kZUZyYWdtZW50KTsg
Ly8gZm9yIEBpbXBvcnQKLSAgICAgICAgICAgICAgICAgICAgaWYgKCF0b2tlbikgewotICAgICAg
ICAgICAgICAgICAgICAgICAgdG9rZW4gPSB0aGlzLmZpbmRTZWxlY3Rvcihjb2RlRnJhZ21lbnQp
IHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmluZFBzZXVkb0NsYXNz
KGNvZGVGcmFnbWVudCkgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5m
aW5kQXRSdWxlKGNvZGVGcmFnbWVudCk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmICh0b2tlbikgewotICAg
ICAgICAgICAgICAgIGlmIChjdXJyQ2hhciA9PT0gIkAiKSB7Ci0gICAgICAgICAgICAgICAgICAg
IGF0UnVsZVN0YXJ0ZWQgPSB0cnVlOwotCi0gICAgICAgICAgICAgICAgICAgIC8vIFRoZSBAZm9u
dC1mYWNlLCBAcGFnZSwgYW5kIEB2YXJpYWJsZXMgYXQtcnVsZXMgZG8gbm90IGNvbnRhaW4gc2Vs
ZWN0b3JzIGxpa2Ugb3RoZXIgYXQtcnVsZXMKLSAgICAgICAgICAgICAgICAgICAgLy8gaW5zdGVh
ZCBpdCBhY3RzIGFzIGEgc2VsZWN0b3IgYW5kIGNvbnRhaW5zIHByb3BlcnRpZXMgYW5kIHZhbHVl
cy4KLSAgICAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSB0b2tlbi50ZXh0Q29udGVudDsKLSAg
ICAgICAgICAgICAgICAgICAgYXRSdWxlSXNTZWxlY3RvciA9IC9mb250LWZhY2UvLnRlc3QodGV4
dCkgfHwgL3BhZ2UvLnRlc3QodGV4dCkgfHwgL3ZhcmlhYmxlcy8udGVzdCh0ZXh0KTsKLSAgICAg
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBpZiAodG1wICE9PSBpKQotICAgICAgICAg
ICAgICAgICAgICBsaW5lLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNvZGUu
c3Vic3RyaW5nKHRtcCwgaSkpKTsKLSAgICAgICAgICAgICAgICBsaW5lLmFwcGVuZENoaWxkKHRv
a2VuKTsKLSAgICAgICAgICAgICAgICBpICs9IHRoaXMucHJldmlvdXNNYXRjaExlbmd0aCAtIDE7
Ci0gICAgICAgICAgICAgICAgdG1wID0gaSArIDE7Ci0gICAgICAgICAgICB9CisgICAgY29uc3Qg
dmFsdWVLZXl3b3JkcyA9IFsibWVkaWEtcmV0dXJuLXRvLXJlYWx0aW1lLWJ1dHRvbiIsICJzZWFy
Y2hmaWVsZC1yZXN1bHRzLWRlY29yYXRpb24iLCAKKyAgICAibWVkaWEtdm9sdW1lLXNsaWRlci1j
b250YWluZXIiLCAibWVkaWEtdGltZS1yZW1haW5pbmctZGlzcGxheSIsICJzZWFyY2hmaWVsZC1y
ZXN1bHRzLWJ1dHRvbiIsIAorICAgICJtZWRpYS1jdXJyZW50LXRpbWUtZGlzcGxheSIsICJzZWFy
Y2hmaWVsZC1jYW5jZWwtYnV0dG9uIiwgInJlYWQtd3JpdGUtcGxhaW50ZXh0LW9ubHkiLCAKKyAg
ICAibWVkaWEtc2Vlay1mb3J3YXJkLWJ1dHRvbiIsICJtZWRpYS1jb250cm9scy1iYWNrZ3JvdW5k
IiwgIm1lZGlhLXZvbHVtZS1zbGlkZXJ0aHVtYiIsIAorICAgICItd2Via2l0LWZvY3VzLXJpbmct
Y29sb3IiLCAibWVkaWEtZnVsbHNjcmVlbi1idXR0b24iLCAiLXdlYmtpdC1iYXNlbGluZS1taWRk
bGUiLCAKKyAgICAic2xpZGVydGh1bWItaG9yaXpvbnRhbCIsICJzZWFyY2hmaWVsZC1kZWNvcmF0
aW9uIiwgIm1lZGlhLXNlZWstYmFjay1idXR0b24iLCAKKyAgICAiLXdlYmtpdC1zbWFsbC1jb250
cm9sIiwgInN1YnBpeGVsLWFudGlhbGlhc2VkIiwgInNsaWRlcnRodW1iLXZlcnRpY2FsIiwgImRl
Y2ltYWwtbGVhZGluZy16ZXJvIiwgCisgICAgIi13ZWJraXQtbWluaS1jb250cm9sIiwgIm1lZGlh
LXZvbHVtZS1zbGlkZXIiLCAibWVkaWEtcmV3aW5kLWJ1dHRvbiIsICJpbmFjdGl2ZWNhcHRpb250
ZXh0IiwgCisgICAgImNhcHMtbG9jay1pbmRpY2F0b3IiLCAidGFibGUtaGVhZGVyLWdyb3VwIiwg
InRhYmxlLWZvb3Rlci1ncm91cCIsICJ0YWJsZS1jb2x1bW4tZ3JvdXAiLCAKKyAgICAib3B0aW1p
emVMZWdpYmlsaXR5IiwgIm1lbnVsaXN0LXRleHRmaWVsZCIsICJnZW9tZXRyaWNQcmVjaXNpb24i
LCAiLXdlYmtpdC1pbmxpbmUtYm94IiwgCisgICAgIi13ZWJraXQtYWN0aXZlbGluayIsICJ0aHJl
ZWRsaWdodHNoYWRvdyIsICJzbGlkZXItaG9yaXpvbnRhbCIsICJtZWRpYS1zbGlkZXJ0aHVtYiIs
IAorICAgICJtZWRpYS1wbGF5LWJ1dHRvbiIsICJtZWRpYS1tdXRlLWJ1dHRvbiIsICJhZnRlci13
aGl0ZS1zcGFjZSIsICItd2Via2l0LXh4eC1sYXJnZSIsIAorICAgICJ0aHJlZWRkYXJrc2hhZG93
IiwgInNraXAtd2hpdGUtc3BhY2UiLCAiZGVzdGluYXRpb24tb3ZlciIsICJkZXN0aW5hdGlvbi1h
dG9wIiwgCisgICAgIi13ZWJraXQtem9vbS1vdXQiLCAiLXdlYmtpdC1ncmFiYmluZyIsICJ1bHRy
YS1jb25kZW5zZWQiLCAidGhyZWVkaGlnaGxpZ2h0IiwgInRhYmxlLXJvdy1ncm91cCIsIAorICAg
ICJzbGlkZXItdmVydGljYWwiLCAibWVudWxpc3QtYnV0dG9uIiwgImluYWN0aXZlY2FwdGlvbiIs
ICJleHRyYS1jb25kZW5zZWQiLCAiZGVzdGluYXRpb24tb3V0IiwgCisgICAgImNqay1pZGVvZ3Jh
cGhpYyIsICJidXR0b25oaWdobGlnaHQiLCAiLXdlYmtpdC16b29tLWluIiwgIi13ZWJraXQtbWFy
cXVlZSIsICItd2Via2l0LWNvbnRyb2wiLCAKKyAgICAidmlzaWJsZVBhaW50ZWQiLCAidWx0cmEt
ZXhwYW5kZWQiLCAic2VtaS1jb25kZW5zZWQiLCAibm8tY2xvc2UtcXVvdGUiLCAia2F0YWthbmEt
aXJvaGEiLCAKKyAgICAiaW5mb2JhY2tncm91bmQiLCAiaW5hY3RpdmVib3JkZXIiLCAiaGlyYWdh
bmEtaXJvaGEiLCAiZXh0cmEtZXhwYW5kZWQiLCAiZGVzdGluYXRpb24taW4iLCAKKyAgICAiZGVm
YXVsdC1idXR0b24iLCAiLXdlYmtpdC1ub3dyYXAiLCAiLXdlYmtpdC1jZW50ZXIiLCAidmlzaWJs
ZVN0cm9rZSIsICJ2ZXJ0aWNhbC10ZXh0IiwgCisgICAgInRhYmxlLWNhcHRpb24iLCAic3F1YXJl
LWJ1dHRvbiIsICJzbWFsbC1jYXB0aW9uIiwgInNlbWktZXhwYW5kZWQiLCAib3B0aW1pemVTcGVl
ZCIsIAorICAgICJuby1vcGVuLXF1b3RlIiwgIm1pbi1pbnRyaW5zaWMiLCAibWVudWxpc3QtdGV4
dCIsICJoaWdobGlnaHR0ZXh0IiwgImJpZGktb3ZlcnJpZGUiLCAKKyAgICAiYWN0aXZlY2FwdGlv
biIsICItd2Via2l0LXJpZ2h0IiwgInRocmVlZHNoYWRvdyIsICJ0YWJsZS1jb2x1bW4iLCAicGx1
cy1saWdodGVyIiwgIm1lZGlhLXNsaWRlciIsIAorICAgICJsaW5lLXRocm91Z2giLCAiaW5saW5l
LXRhYmxlIiwgImlubGluZS1ibG9jayIsICJkb3QtZG90LWRhc2giLCAiY3VycmVudGNvbG9yIiwg
ImNvbnRleHQtbWVudSIsIAorICAgICJidXR0b25zaGFkb3ciLCAiYnV0dG9uLWJldmVsIiwgImFw
cHdvcmtzcGFjZSIsICJhY3RpdmVib3JkZXIiLCAiLXdlYmtpdC10ZXh0IiwgIi13ZWJraXQtbGlu
ayIsIAorICAgICItd2Via2l0LWxlZnQiLCAiLXdlYmtpdC1ncmFiIiwgIi13ZWJraXQtYm9keSIs
ICItd2Via2l0LWF1dG8iLCAiLXdhcC1tYXJxdWVlIiwgIndpbmRvd2ZyYW1lIiwgCisgICAgInZp
c2libGVGaWxsIiwgInVwcGVyLXJvbWFuIiwgInVwcGVyLWxhdGluIiwgInVwcGVyLWFscGhhIiwg
InRyYW5zcGFyZW50IiwgInRleHQtYm90dG9tIiwgCisgICAgInNvdXJjZS1vdmVyIiwgInNvdXJj
ZS1hdG9wIiwgInNlYXJjaGZpZWxkIiwgInB1c2gtYnV0dG9uIiwgInByZXNlcnZlLTNkIiwgInBs
dXMtZGFya2VyIiwgCisgICAgInBhZGRpbmctYm94IiwgIm53c2UtcmVzaXplIiwgIm5vdC1hbGxv
d2VkIiwgIm5lc3ctcmVzaXplIiwgIm1lc3NhZ2UtYm94IiwgImxvd2VyLXJvbWFuIiwgCisgICAg
Imxvd2VyLWxhdGluIiwgImxvd2VyLWdyZWVrIiwgImxvd2VyLWFscGhhIiwgImxpc3QtYnV0dG9u
IiwgImlubGluZS1heGlzIiwgImVhc2UtaW4tb3V0IiwgCisgICAgImNvbnRlbnQtYm94IiwgImNs
b3NlLXF1b3RlIiwgImNhcHRpb250ZXh0IiwgImFudGlhbGlhc2VkIiwgIi13ZWJraXQtYm94Iiwg
IndpbmRvd3RleHQiLCAKKyAgICAidGhyZWVkZmFjZSIsICJ0YWJsZS1jZWxsIiwgInN0YXR1cy1i
YXIiLCAic291cmNlLW91dCIsICJzbWFsbC1jYXBzIiwgInNhbnMtc2VyaWYiLCAKKyAgICAicm93
LXJlc2l6ZSIsICJyZWFkLXdyaXRlIiwgIm9wZW4tcXVvdGUiLCAiaG9yaXpvbnRhbCIsICJjb250
aW51b3VzIiwgImNvbC1yZXNpemUiLCAKKyAgICAiY2FwaXRhbGl6ZSIsICJidXR0b250ZXh0Iiwg
ImJ1dHRvbmZhY2UiLCAiYnJlYWstd29yZCIsICJib3JkZXItYm94IiwgImJsb2NrLWF4aXMiLCAK
KyAgICAiYmFja2dyb3VuZCIsICJhbGwtc2Nyb2xsIiwgInVwcGVyY2FzZSIsICJ1bmRlcmxpbmUi
LCAidGV4dGZpZWxkIiwgInRhYmxlLXJvdyIsICJzdy1yZXNpemUiLCAKKyAgICAic291cmNlLWlu
IiwgInNlLXJlc2l6ZSIsICJzY3JvbGxiYXIiLCAicmVhZC1vbmx5IiwgIm53LXJlc2l6ZSIsICJu
cy1yZXNpemUiLCAibm8tcmVwZWF0IiwgCisgICAgIm5lLXJlc2l6ZSIsICJtb25vc3BhY2UiLCAi
bG93ZXJjYXNlIiwgImxpc3QtaXRlbSIsICJsYW5kc2NhcGUiLCAiaW50cmluc2ljIiwgImhpZ2hs
aWdodCIsIAorICAgICJldy1yZXNpemUiLCAiY3Jvc3NoYWlyIiwgImNvbmRlbnNlZCIsICJicmVh
ay1hbGwiLCAiYmFja3dhcmRzIiwgImFsdGVybmF0ZSIsICJ4eC1zbWFsbCIsIAorICAgICJ4eC1s
YXJnZSIsICJ3LXJlc2l6ZSIsICJ2ZXJ0aWNhbCIsICJ0ZXh0YXJlYSIsICJ0ZXh0LXRvcCIsICJz
ZXBhcmF0ZSIsICJzLXJlc2l6ZSIsIAorICAgICJyZXBlYXQteSIsICJyZXBlYXQteCIsICJyZWxh
dGl2ZSIsICJwcm9ncmVzcyIsICJwcmUtd3JhcCIsICJwcmUtbGluZSIsICJwb3J0cmFpdCIsIAor
ICAgICJvdmVybGluZSIsICJuYXJyb3dlciIsICJuLXJlc2l6ZSIsICJtdWx0aXBsZSIsICJtZW51
dGV4dCIsICJtZW51bGlzdCIsICJsaXN0aXRlbSIsIAorICAgICJrYXRha2FuYSIsICJpbmZvdGV4
dCIsICJpbmZpbml0ZSIsICJoaXJhZ2FuYSIsICJncmF5dGV4dCIsICJnZW9yZ2lhbiIsICJmb3J3
YXJkcyIsIAorICAgICJleHBhbmRlZCIsICJlbGxpcHNpcyIsICJlYXNlLW91dCIsICJlLXJlc2l6
ZSIsICJkb3QtZGFzaCIsICJkb2N1bWVudCIsICJjb2xsYXBzZSIsIAorICAgICJjaGVja2JveCIs
ICJiYXNlbGluZSIsICJhcm1lbmlhbiIsICJhYnNvbHV0ZSIsICJ4LXNtYWxsIiwgIngtbGFyZ2Ui
LCAidmlzaWJsZSIsICJzdHJldGNoIiwgCisgICAgInNtYWxsZXIiLCAicnVubmluZyIsICJyZXZl
cnNlIiwgInBvaW50ZXIiLCAicGFpbnRlZCIsICJwYWRkaW5nIiwgIm92ZXJsYXkiLCAib3V0c2lk
ZSIsIAorICAgICJvYmxpcXVlIiwgIm5vLWRyb3AiLCAibG9naWNhbCIsICJsaXN0Ym94IiwgImxp
Z2h0ZXIiLCAianVzdGlmeSIsICJpbml0aWFsIiwgImluaGVyaXQiLCAKKyAgICAiZnVjaHNpYSIs
ICJmYW50YXN5IiwgImVsZW1lbnQiLCAiZWFzZS1pbiIsICJkaXNjYXJkIiwgImRlZmF1bHQiLCAi
ZGVjaW1hbCIsICJjdXJzaXZlIiwgCisgICAgImNvbnRlbnQiLCAiY29udGFpbiIsICJjb21wYWN0
IiwgImNhcHRpb24iLCAieWVsbG93IiwgIndpbmRvdyIsICJ2aXN1YWwiLCAic3Ryb2tlIiwgCisg
ICAgInN0YXRpYyIsICJzcXVhcmUiLCAic2luZ2xlIiwgInNpbHZlciIsICJzY3JvbGwiLCAicnVu
LWluIiwgInJlcGVhdCIsICJwdXJwbGUiLCAicGF1c2VkIiwgCisgICAgIm91dHNldCIsICJvcmFu
Z2UiLCAibm93cmFwIiwgIm5vcm1hbCIsICJtaWRkbGUiLCAibWVkaXVtIiwgIm1hcm9vbiIsICJs
aW5lYXIiLCAibGFyZ2VyIiwgCisgICAgIml0YWxpYyIsICJpbnZlcnQiLCAiaW5zaWRlIiwgImlu
bGluZSIsICJpZ25vcmUiLCAiaGlnaGVyIiwgImhpZGRlbiIsICJoZWJyZXciLCAiZ3Jvb3ZlIiwg
CisgICAgImRvdWJsZSIsICJkb3R0ZWQiLCAiZGFzaGVkIiwgImNpcmNsZSIsICJjZW50ZXIiLCAi
YnV0dG9uIiwgImJvdHRvbSIsICJib3JkZXIiLCAiYm9sZGVyIiwgCisgICAgImFsd2F5cyIsICJ3
aWRlciIsICJ3aGl0ZSIsICJ0aGljayIsICJ0YWJsZSIsICJzdXBlciIsICJzdGFydCIsICJzcGFj
ZSIsICJzb2xpZCIsICJzbWFsbCIsIAorICAgICJzbGlkZSIsICJzZXJpZiIsICJyb3VuZCIsICJy
aWdodCIsICJyaWRnZSIsICJyZXNldCIsICJyYWRpbyIsICJvbGl2ZSIsICJtYXRjaCIsICJsb3dl
ciIsIAorICAgICJsb2NhbCIsICJsaW5lcyIsICJsZXZlbCIsICJsYXJnZSIsICJpbnNldCIsICJn
cmVlbiIsICJmaXhlZCIsICJlbWJlZCIsICJjcm9zcyIsICJjb3ZlciIsIAorICAgICJjbGVhciIs
ICJjYXJldCIsICJibG9jayIsICJibGluayIsICJibGFjayIsICJiZWxvdyIsICJhdm9pZCIsICJh
bGlhcyIsICJhaGVhZCIsICJhYm92ZSIsIAorICAgICJ3YXZlIiwgIndhaXQiLCAidGhpbiIsICJ0
ZXh0IiwgInRlYWwiLCAic2xvdyIsICJzaG93IiwgIm5vbmUiLCAibmF2eSIsICJtb3ZlIiwgIm1l
bnUiLCAKKyAgICAibG91ZCIsICJsaW1lIiwgImxlZnQiLCAiaWNvbiIsICJoaWRlIiwgImhlbHAi
LCAiaGFuZCIsICJncmV5IiwgImdyYXkiLCAiZmxhdCIsICJmaWxsIiwgCisgICAgImZhc3QiLCAi
ZWFzZSIsICJkb3duIiwgImRpc2MiLCAiY3JvcCIsICJjb3B5IiwgImNsaXAiLCAiY2VsbCIsICJi
b3RoIiwgImJvbGQiLCAiYmx1ZSIsIAorICAgICJhdXRvIiwgImFxdWEiLCAieG9yIiwgInRvcCIs
ICJzdWIiLCAicnRsIiwgInJlZCIsICJwcmUiLCAibWl4IiwgImx0ciIsICJlbmQiLCAiYWxsIiwg
InVwIl07CisgICAgZnVuY3Rpb24gdmFsdWVJZGVudEFjdGlvbih0b2tlbikgeworICAgICAgICB0
aGlzLmN1cnNvciArPSB0b2tlbi5sZW5ndGg7CisgICAgICAgIGlmICh2YWx1ZUtleXdvcmRzLmlu
ZGV4T2YodG9rZW4pID09PSAtMSkKKyAgICAgICAgICAgIHRoaXMubm9uVG9rZW4gKz0gdG9rZW47
CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdGhpcy5hcHBlbmROb25Ub2tlbi5jYWxsKHRo
aXMpOworICAgICAgICAgICAgdGhpcy5saW5lRnJhZ21lbnQuYXBwZW5kQ2hpbGQodGhpcy5jcmVh
dGVTcGFuKHRva2VuLCAid2Via2l0LWNzcy1rZXl3b3JkIikpOwogICAgICAgICB9CisgICAgfQog
Ci0gICAgICAgIGxpbmUuX2luU2VsZWN0b3IgPSBpblNlbGVjdG9yOwotICAgICAgICBsaW5lLl9p
bkF0UnVsZUJsb2NrID0gaW5BdFJ1bGVCbG9jazsKLSAgICAgICAgbGluZS5fYXRSdWxlU3RhcnRl
ZCA9IGF0UnVsZVN0YXJ0ZWQ7Ci0gICAgICAgIGxpbmUuX2F0UnVsZUlzU2VsZWN0b3IgPSBhdFJ1
bGVJc1NlbGVjdG9yOwotCi0gICAgICAgIGlmICh0bXAgPCBjb2RlLmxlbmd0aCkKLSAgICAgICAg
ICAgIGxpbmUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY29kZS5zdWJzdHJp
bmcodG1wLCBpKSkpOworICAgIGZ1bmN0aW9uIG51bXZhbHVlQWN0aW9uKHRva2VuKQorICAgIHsK
KyAgICAgICAgdGhpcy5jdXJzb3IgKz0gdG9rZW4ubGVuZ3RoOworICAgICAgICB0aGlzLmxpbmVG
cmFnbWVudC5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVNwYW4odG9rZW4sICJ3ZWJraXQtY3NzLW51
bWJlciIpKTsKKyAgICB9CisgICAgCisgICAgZnVuY3Rpb24gZGVjbGFyYXRpb25TZW1pY29sb25B
Y3Rpb24odG9rZW4pCisgICAgeworICAgICAgICB0aGlzLmN1cnNvciArPSB0b2tlbi5sZW5ndGg7
CisgICAgICAgIHRoaXMubm9uVG9rZW4gKz0gdG9rZW47CisgICAgICAgIHRoaXMubGV4U3RhdGUg
PSB0aGlzLkxleFN0YXRlLkRlY2xhcmF0aW9uUHJvcGVydHk7CisgICAgfQorICAgIAorICAgIGZ1
bmN0aW9uIHVybEFjdGlvbih0b2tlbikKKyAgICB7CisgICAgICAgIHRoaXMuY3Vyc29yICs9IHRv
a2VuLmxlbmd0aDsKKyAgICAgICAgdGhpcy5saW5lRnJhZ21lbnQuYXBwZW5kQ2hpbGQodGhpcy5j
cmVhdGVTcGFuKHRva2VuLCAid2Via2l0LWNzcy11cmwiKSk7CisgICAgfQorICAgIAorICAgIGZ1
bmN0aW9uIHN0cmluZ0FjdGlvbih0b2tlbikKKyAgICB7CisgICAgICAgIHRoaXMuY3Vyc29yICs9
IHRva2VuLmxlbmd0aDsKKyAgICAgICAgdGhpcy5saW5lRnJhZ21lbnQuYXBwZW5kQ2hpbGQodGhp
cy5jcmVhdGVTcGFuKHRva2VuLCAid2Via2l0LWNzcy1zdHJpbmciKSk7CisgICAgfQorICAgIAor
ICAgIGZ1bmN0aW9uIGNvbG9yQWN0aW9uKHRva2VuKQorICAgIHsKKyAgICAgICAgdGhpcy5jdXJz
b3IgKz0gdG9rZW4ubGVuZ3RoOworICAgICAgICB0aGlzLmxpbmVGcmFnbWVudC5hcHBlbmRDaGls
ZCh0aGlzLmNyZWF0ZVNwYW4odG9rZW4sICJ3ZWJraXQtY3NzLWNvbG9yIikpOworICAgIH0KKyAg
ICAKKyAgICBmdW5jdGlvbiBpbXBvcnRhbnRBY3Rpb24odG9rZW4pCisgICAgeworICAgICAgICB0
aGlzLmN1cnNvciArPSB0b2tlbi5sZW5ndGg7CisgICAgICAgIHRoaXMubGluZUZyYWdtZW50LmFw
cGVuZENoaWxkKHRoaXMuY3JlYXRlU3Bhbih0b2tlbiwgIndlYmtpdC1jc3MtaW1wb3J0YW50Iikp
OworICAgIH0KKyAgICAKKyAgICBmdW5jdGlvbiBhdE1lZGlhQWN0aW9uKHRva2VuKQorICAgIHsK
KyAgICAgICAgdGhpcy5jdXJzb3IgKz0gdG9rZW4ubGVuZ3RoOworICAgICAgICB0aGlzLmxpbmVG
cmFnbWVudC5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVNwYW4odG9rZW4sICJ3ZWJraXQtY3NzLWF0
LXJ1bGUiKSk7CisgICAgICAgIHRoaXMubGV4U3RhdGUgPSB0aGlzLkxleFN0YXRlLkF0TWVkaWE7
CisgICAgfQorICAgIAorICAgIGZ1bmN0aW9uIHN0YXJ0QXRNZWRpYUJsb2NrQWN0aW9uKHRva2Vu
KQorICAgIHsKKyAgICAgICAgdGhpcy5jdXJzb3IgKz0gdG9rZW4ubGVuZ3RoOworICAgICAgICB0
aGlzLm5vblRva2VuICs9IHRva2VuOworICAgICAgICB0aGlzLmxleFN0YXRlID0gdGhpcy5MZXhT
dGF0ZS5Jbml0aWFsOworICAgIH0KKyAgICAKKyAgICBmdW5jdGlvbiBhdEtleWZyYW1lc0FjdGlv
bih0b2tlbikKKyAgICB7CisgICAgICAgIHRoaXMuY3Vyc29yICs9IHRva2VuLmxlbmd0aDsKKyAg
ICAgICAgdGhpcy5saW5lRnJhZ21lbnQuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVTcGFuKHRva2Vu
LCAid2Via2l0LWNzcy1hdC1ydWxlIikpOworICAgICAgICB0aGlzLmxleFN0YXRlID0gdGhpcy5M
ZXhTdGF0ZS5BdEtleWZyYW1lczsKKyAgICB9CisgICAgCisgICAgZnVuY3Rpb24gc3RhcnRBdEtl
eWZyYW1lc0Jsb2NrQWN0aW9uKHRva2VuKQorICAgIHsKKyAgICAgICAgdGhpcy5jdXJzb3IgKz0g
dG9rZW4ubGVuZ3RoOworICAgICAgICB0aGlzLm5vblRva2VuICs9IHRva2VuOworICAgICAgICB0
aGlzLmxleFN0YXRlID0gdGhpcy5MZXhTdGF0ZS5Jbml0aWFsOworICAgIH0KKyAgICAKKyAgICBm
dW5jdGlvbiBhdFJ1bGVBY3Rpb24odG9rZW4pIHsKKyAgICAgICAgdGhpcy5jdXJzb3IgKz0gdG9r
ZW4ubGVuZ3RoOworICAgICAgICB0aGlzLmxpbmVGcmFnbWVudC5hcHBlbmRDaGlsZCh0aGlzLmNy
ZWF0ZVNwYW4odG9rZW4sICJ3ZWJraXQtY3NzLWF0LXJ1bGUiKSk7CisgICAgICAgIHRoaXMubGV4
U3RhdGUgPSB0aGlzLkxleFN0YXRlLkF0UnVsZTsKKyAgICB9CisgICAgCisgICAgZnVuY3Rpb24g
ZW5kQXRSdWxlQWN0aW9uKHRva2VuKSB7CisgICAgICAgIHRoaXMuY3Vyc29yICs9IHRva2VuLmxl
bmd0aDsKKyAgICAgICAgdGhpcy5ub25Ub2tlbiArPSB0b2tlbjsKKyAgICAgICAgdGhpcy5sZXhT
dGF0ZSA9IHRoaXMuTGV4U3RhdGUuSW5pdGlhbDsKKyAgICB9CisgICAgCisgICAgZnVuY3Rpb24g
c3RhcnRBdFJ1bGVCbG9ja0FjdGlvbih0b2tlbikKKyAgICB7CisgICAgICAgIHRoaXMuY3Vyc29y
ICs9IHRva2VuLmxlbmd0aDsKKyAgICAgICAgdGhpcy5ub25Ub2tlbiArPSB0b2tlbjsKKyAgICAg
ICAgdGhpcy5sZXhTdGF0ZSA9IHRoaXMuTGV4U3RhdGUuRGVjbGFyYXRpb25Qcm9wZXJ0eTsKKyAg
ICB9CisgICAgCisgICAgY29uc3QgbWVkaWFUeXBlcyA9IFsiYWxsIiwgImF1cmFsIiwgImJyYWls
bGUiLCAiZW1ib3NzZWQiLCAiaGFuZGhlbGQiLCAicHJpbnQiLCAicHJvamVjdGlvbiIsICJzY3Jl
ZW4iLCAidHR5IiwgInR2Il07CisgICAgZnVuY3Rpb24gYXRSdWxlSWRlbnRBY3Rpb24odG9rZW4p
IHsKKyAgICAgICAgdGhpcy5jdXJzb3IgKz0gdG9rZW4ubGVuZ3RoOworICAgICAgICBpZiAobWVk
aWFUeXBlcy5pbmRleE9mKHRva2VuKSA9PT0gLTEpCisgICAgICAgICAgICB0aGlzLm5vblRva2Vu
ICs9IHRva2VuOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRoaXMuYXBwZW5kTm9uVG9r
ZW4uY2FsbCh0aGlzKTsKKyAgICAgICAgICAgIHRoaXMubGluZUZyYWdtZW50LmFwcGVuZENoaWxk
KHRoaXMuY3JlYXRlU3Bhbih0b2tlbiwgIndlYmtpdC1jc3Mta2V5d29yZCIpKTsKKyAgICAgICAg
fQogICAgIH0KIH0KIAotV2ViSW5zcGVjdG9yLkNTU1NvdXJjZVN5bnRheEhpZ2hsaWdoZXIucHJv
dG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5Tb3VyY2VTeW50YXhIaWdobGlnaGVyLnBy
b3RvdHlwZTsKK1dlYkluc3BlY3Rvci5DU1NTb3VyY2VTeW50YXhIaWdobGlnaHRlci5wcm90b3R5
cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlNvdXJjZVN5bnRheEhpZ2hsaWdodGVyLnByb3Rv
dHlwZTsKIAogV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VTeW50YXhIaWdobGlnaHRlciA9
IGZ1bmN0aW9uKHRhYmxlLCBzb3VyY2VGcmFtZSkgewotICAgIFdlYkluc3BlY3Rvci5Tb3VyY2VT
eW50YXhIaWdobGlnaGVyLmNhbGwodGhpcywgdGFibGUsIHNvdXJjZUZyYW1lKTsKKyAgICBXZWJJ
bnNwZWN0b3IuU291cmNlU3ludGF4SGlnaGxpZ2h0ZXIuY2FsbCh0aGlzLCB0YWJsZSwgc291cmNl
RnJhbWUpOwogCiAgICAgdGhpcy5MZXhTdGF0ZSA9IHsKICAgICAgICAgSW5pdGlhbDogMSwKQEAg
LTEwMDMsODIgKzEzNTgsODIgQEAgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VTeW50YXhI
aWdobAogICAgIHRoaXMuY29udGludWVTdGF0ZSA9IHRoaXMuQ29udGludWVTdGF0ZS5Ob25lOwog
ICAgIAogICAgIHRoaXMucnVsZXMgPSBbewotICAgICAgICAgICAgcGF0dGVybjogL14oPzpcL1wv
LiopLywKLSAgICAgICAgICAgIGFjdGlvbjogc2luZ2xlTGluZUNvbW1lbnRBY3Rpb24KLSAgICAg
ICAgfSwgewotICAgICAgICAgICAgcGF0dGVybjogL14oPzpcL1wqKD86W15cKl18XCpbXlwvXSkq
XCorXC8pLywKLSAgICAgICAgICAgIGFjdGlvbjogbXVsdGlMaW5lU2luZ2xlTGluZUNvbW1lbnRB
Y3Rpb24KLSAgICAgICAgfSwgewotICAgICAgICAgICAgcGF0dGVybjogL14oPzpcL1wqKD86W15c
Kl18XCpbXlwvXSkqKS8sCi0gICAgICAgICAgICBhY3Rpb246IG11bHRpTGluZUNvbW1lbnRTdGFy
dEFjdGlvbgotICAgICAgICB9LCB7Ci0gICAgICAgICAgICBwYXR0ZXJuOiAvXig/Oig/OlteXCpd
fFwqW15cL10pKlwqK1wvKS8sCi0gICAgICAgICAgICBhY3Rpb246IG11bHRpTGluZUNvbW1lbnRF
bmRBY3Rpb24sCi0gICAgICAgICAgICBjb250aW51ZVN0YXRlQ29uZGl0aW9uOiB0aGlzLkNvbnRp
bnVlU3RhdGUuQ29tbWVudAotICAgICAgICB9LCB7Ci0gICAgICAgICAgICBwYXR0ZXJuOiAvXi4q
LywKLSAgICAgICAgICAgIGFjdGlvbjogbXVsdGlMaW5lQ29tbWVudE1pZGRsZUFjdGlvbiwKLSAg
ICAgICAgICAgIGNvbnRpbnVlU3RhdGVDb25kaXRpb246IHRoaXMuQ29udGludWVTdGF0ZS5Db21t
ZW50Ci0gICAgICAgIH0sIHsKLSAgICAgICAgICAgIHBhdHRlcm46IC9eKD86KD86MHxbMS05XVxk
KilcLlxkKz8oPzpbZUVdKD86XGQrfFwrXGQrfC1cZCspKT98XC5cZCsoPzpbZUVdKD86XGQrfFwr
XGQrfC1cZCspKT98KD86MHxbMS05XVxkKikoPzpbZUVdKD86XGQrfFwrXGQrfC1cZCspKT98MHhb
MC05YS1mQS1GXSt8MFhbMC05YS1mQS1GXSspLywKLSAgICAgICAgICAgIGFjdGlvbjogbnVtZXJp
Y0xpdGVyYWxBY3Rpb24KLSAgICAgICAgfSwgewotICAgICAgICAgICAgcGF0dGVybjogL14oPzoi
KD86W14iXFxdfFxcKD86WyciXGJmbnJ0dl18W14nIlxiZm5ydHYwLTl4dV18MHx4WzAtOWEtZkEt
Rl1bMC05YS1mQS1GXXwoPzp1WzAtOWEtZkEtRl1bMC05YS1mQS1GXVswLTlhLWZBLUZdWzAtOWEt
ZkEtRl0pKSkqInwnKD86W14nXFxdfFxcKD86WyciXGJmbnJ0dl18W14nIlxiZm5ydHYwLTl4dV18
MHx4WzAtOWEtZkEtRl1bMC05YS1mQS1GXXwoPzp1WzAtOWEtZkEtRl1bMC05YS1mQS1GXVswLTlh
LWZBLUZdWzAtOWEtZkEtRl0pKSkqJykvLAotICAgICAgICAgICAgYWN0aW9uOiBzdHJpbmdMaXRl
cmFsQWN0aW9uCi0gICAgICAgIH0sIHsKLSAgICAgICAgICAgIHBhdHRlcm46IC9eKD86Jyg/Olte
J1xcXXxcXCg/OlsnIlxiZm5ydHZdfFteJyJcYmZucnR2MC05eHVdfDB8eFswLTlhLWZBLUZdWzAt
OWEtZkEtRl18KD86dVswLTlhLWZBLUZdWzAtOWEtZkEtRl1bMC05YS1mQS1GXVswLTlhLWZBLUZd
KSkpKilcXCQvLAotICAgICAgICAgICAgYWN0aW9uOiBzaW5nbGVRdW90ZVN0cmluZ1N0YXJ0QWN0
aW9uCi0gICAgICAgIH0sIHsKLSAgICAgICAgICAgIHBhdHRlcm46IC9eKD86KD86W14nXFxdfFxc
KD86WyciXGJmbnJ0dl18W14nIlxiZm5ydHYwLTl4dV18MHx4WzAtOWEtZkEtRl1bMC05YS1mQS1G
XXwoPzp1WzAtOWEtZkEtRl1bMC05YS1mQS1GXVswLTlhLWZBLUZdWzAtOWEtZkEtRl0pKSkqJykv
LAotICAgICAgICAgICAgYWN0aW9uOiBzaW5nbGVRdW90ZVN0cmluZ0VuZEFjdGlvbiwKLSAgICAg
ICAgICAgIGNvbnRpbnVlU3RhdGVDb25kaXRpb246IHRoaXMuQ29udGludWVTdGF0ZS5TaW5nbGVR
dW90ZVN0cmluZwotICAgICAgICB9LCB7Ci0gICAgICAgICAgICBwYXR0ZXJuOiAvXig/Oig/Olte
J1xcXXxcXCg/OlsnIlxiZm5ydHZdfFteJyJcYmZucnR2MC05eHVdfDB8eFswLTlhLWZBLUZdWzAt
OWEtZkEtRl18KD86dVswLTlhLWZBLUZdWzAtOWEtZkEtRl1bMC05YS1mQS1GXVswLTlhLWZBLUZd
KSkpKilcXCQvLAotICAgICAgICAgICAgYWN0aW9uOiBzaW5nbGVRdW90ZVN0cmluZ01pZGRsZUFj
dGlvbiwKLSAgICAgICAgICAgIGNvbnRpbnVlU3RhdGVDb25kaXRpb246IHRoaXMuQ29udGludWVT
dGF0ZS5TaW5nbGVRdW90ZVN0cmluZwotICAgICAgICB9LCB7Ci0gICAgICAgICAgICBwYXR0ZXJu
OiAvXig/OiIoPzpbXiJcXF18XFwoPzpbJyJcYmZucnR2XXxbXiciXGJmbnJ0djAtOXh1XXwwfHhb
MC05YS1mQS1GXVswLTlhLWZBLUZdfCg/OnVbMC05YS1mQS1GXVswLTlhLWZBLUZdWzAtOWEtZkEt
Rl1bMC05YS1mQS1GXSkpKSopXFwkLywKLSAgICAgICAgICAgIGFjdGlvbjogZG91YmxlUXVvdGVT
dHJpbmdTdGFydEFjdGlvbgotICAgICAgICB9LCB7Ci0gICAgICAgICAgICBwYXR0ZXJuOiAvXig/
Oig/OlteIlxcXXxcXCg/OlsnIlxiZm5ydHZdfFteJyJcYmZucnR2MC05eHVdfDB8eFswLTlhLWZB
LUZdWzAtOWEtZkEtRl18KD86dVswLTlhLWZBLUZdWzAtOWEtZkEtRl1bMC05YS1mQS1GXVswLTlh
LWZBLUZdKSkpKiIpLywKLSAgICAgICAgICAgIGFjdGlvbjogZG91YmxlUXVvdGVTdHJpbmdFbmRB
Y3Rpb24sCi0gICAgICAgICAgICBjb250aW51ZVN0YXRlQ29uZGl0aW9uOiB0aGlzLkNvbnRpbnVl
U3RhdGUuRG91YmxlUXVvdGVTdHJpbmcKLSAgICAgICAgfSwgewotICAgICAgICAgICAgcGF0dGVy
bjogL14oPzooPzpbXiJcXF18XFwoPzpbJyJcYmZucnR2XXxbXiciXGJmbnJ0djAtOXh1XXwwfHhb
MC05YS1mQS1GXVswLTlhLWZBLUZdfCg/OnVbMC05YS1mQS1GXVswLTlhLWZBLUZdWzAtOWEtZkEt
Rl1bMC05YS1mQS1GXSkpKSopXFwkLywKLSAgICAgICAgICAgIGFjdGlvbjogZG91YmxlUXVvdGVT
dHJpbmdNaWRkbGVBY3Rpb24sCi0gICAgICAgICAgICBjb250aW51ZVN0YXRlQ29uZGl0aW9uOiB0
aGlzLkNvbnRpbnVlU3RhdGUuRG91YmxlUXVvdGVTdHJpbmcKLSAgICAgICAgfSwgewotICAgICAg
ICAgICAgcGF0dGVybjogL14oPzooPzpbYS16QS1aXXxbJF9dfFxcKD86dVswLTlhLWZBLUZdWzAt
OWEtZkEtRl1bMC05YS1mQS1GXVswLTlhLWZBLUZdKSkoPzooPzpbYS16QS1aXXxbJF9dfFxcKD86
dVswLTlhLWZBLUZdWzAtOWEtZkEtRl1bMC05YS1mQS1GXVswLTlhLWZBLUZdKSl8WzAtOV0pKikv
LAotICAgICAgICAgICAgYWN0aW9uOiBpZGVudE9yS2V5d29yZEFjdGlvbiwKLSAgICAgICAgICAg
IGRvbnRBcHBlbmROb25Ub2tlbjogdHJ1ZQotICAgICAgICB9LCB7Ci0gICAgICAgICAgICBwYXR0
ZXJuOiAvXlwpLywKLSAgICAgICAgICAgIGFjdGlvbjogcmlnaHRQYXJlbkFjdGlvbiwKLSAgICAg
ICAgICAgIGRvbnRBcHBlbmROb25Ub2tlbjogdHJ1ZQotICAgICAgICB9LCB7Ci0gICAgICAgICAg
ICBwYXR0ZXJuOiAvXig/Ojw9fD49fD09PXw9PXwhPXwhPT18XCtcK3xcLVwtfDw8fD4+fD4+Pnwm
JnxcfFx8fFwrPXxcLT18XCo9fCU9fDw8PXw+Pj18Pj4+PXwmPXxcfD18Xj18W3t9XChcW1xdXC47
LDw+XCtcLVwqJSZcfFxeIX5cPzo9XSkvLAotICAgICAgICAgICAgYWN0aW9uOiBwdW5jdHVhdG9y
QWN0aW9uLAotICAgICAgICAgICAgZG9udEFwcGVuZE5vblRva2VuOiB0cnVlCi0gICAgICAgIH0s
IHsKLSAgICAgICAgICAgIHBhdHRlcm46IC9eKD86XC89PykvLAotICAgICAgICAgICAgYWN0aW9u
OiBkaXZQdW5jdHVhdG9yQWN0aW9uLAotICAgICAgICAgICAgc3RhdGVDb25kaXRpb246IHRoaXMu
TGV4U3RhdGUuRGl2aXNpb25BbGxvd2VkLAotICAgICAgICAgICAgZG9udEFwcGVuZE5vblRva2Vu
OiB0cnVlCi0gICAgICAgIH0sIHsKLSAgICAgICAgICAgIHBhdHRlcm46IC9eKD86XC8oPzooPzpc
XC4pfFteXFwqXC9dKSg/Oig/OlxcLil8W15cXC9dKSpcLyg/Oig/OlthLXpBLVpdfFskX118XFwo
Pzp1WzAtOWEtZkEtRl1bMC05YS1mQS1GXVswLTlhLWZBLUZdWzAtOWEtZkEtRl0pKXxbMC05XSkq
KS8sCi0gICAgICAgICAgICBhY3Rpb246IHJlZ0V4cExpdGVyYWxBY3Rpb24KLSAgICAgICAgfSwg
ewotICAgICAgICAgICAgcGF0dGVybjogL14oPzpcLyg/Oig/OlxcLil8W15cXCpcL10pKD86KD86
XFwuKXxbXlxcL10pKilcXCQvLAotICAgICAgICAgICAgYWN0aW9uOiByZWdFeHBTdGFydEFjdGlv
bgotICAgICAgICB9LCB7Ci0gICAgICAgICAgICBwYXR0ZXJuOiAvXig/Oig/Oig/OlxcLil8W15c
XC9dKSpcLyg/Oig/OlthLXpBLVpdfFskX118XFwoPzp1WzAtOWEtZkEtRl1bMC05YS1mQS1GXVsw
LTlhLWZBLUZdWzAtOWEtZkEtRl0pKXxbMC05XSkqKS8sCi0gICAgICAgICAgICBhY3Rpb246IHJl
Z0V4cEVuZEFjdGlvbiwKLSAgICAgICAgICAgIGNvbnRpbnVlU3RhdGVDb25kaXRpb246IHRoaXMu
Q29udGludWVTdGF0ZS5SZWdFeHAKLSAgICAgICAgfSwgewotICAgICAgICAgICAgcGF0dGVybjog
L14oPzooPzooPzpcXC4pfFteXFwvXSkqKVxcJC8sCi0gICAgICAgICAgICBhY3Rpb246IHJlZ0V4
cE1pZGRsZUFjdGlvbiwKLSAgICAgICAgICAgIGNvbnRpbnVlU3RhdGVDb25kaXRpb246IHRoaXMu
Q29udGludWVTdGF0ZS5SZWdFeHAKLSAgICAgICAgfV07CisgICAgICAgIHBhdHRlcm46IC9eKD86
XC9cLy4qKS8sCisgICAgICAgIGFjdGlvbjogc2luZ2xlTGluZUNvbW1lbnRBY3Rpb24KKyAgICB9
LCB7CisgICAgICAgIHBhdHRlcm46IC9eKD86XC9cKig/OlteXCpdfFwqW15cL10pKlwqK1wvKS8s
CisgICAgICAgIGFjdGlvbjogbXVsdGlMaW5lU2luZ2xlTGluZUNvbW1lbnRBY3Rpb24KKyAgICB9
LCB7CisgICAgICAgIHBhdHRlcm46IC9eKD86XC9cKig/OlteXCpdfFwqW15cL10pKikvLAorICAg
ICAgICBhY3Rpb246IG11bHRpTGluZUNvbW1lbnRTdGFydEFjdGlvbgorICAgIH0sIHsKKyAgICAg
ICAgcGF0dGVybjogL14oPzooPzpbXlwqXXxcKlteXC9dKSpcKitcLykvLAorICAgICAgICBhY3Rp
b246IG11bHRpTGluZUNvbW1lbnRFbmRBY3Rpb24sCisgICAgICAgIGNvbnRpbnVlU3RhdGVDb25k
aXRpb246IHRoaXMuQ29udGludWVTdGF0ZS5Db21tZW50CisgICAgfSwgeworICAgICAgICBwYXR0
ZXJuOiAvXi4qLywKKyAgICAgICAgYWN0aW9uOiBtdWx0aUxpbmVDb21tZW50TWlkZGxlQWN0aW9u
LAorICAgICAgICBjb250aW51ZVN0YXRlQ29uZGl0aW9uOiB0aGlzLkNvbnRpbnVlU3RhdGUuQ29t
bWVudAorICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjogL14oPzooPzowfFsxLTldXGQqKVwuXGQr
Pyg/OltlRV0oPzpcZCt8XCtcZCt8LVxkKykpP3xcLlxkKyg/OltlRV0oPzpcZCt8XCtcZCt8LVxk
KykpP3woPzowfFsxLTldXGQqKSg/OltlRV0oPzpcZCt8XCtcZCt8LVxkKykpP3wweFswLTlhLWZB
LUZdK3wwWFswLTlhLWZBLUZdKykvLAorICAgICAgICBhY3Rpb246IG51bWVyaWNMaXRlcmFsQWN0
aW9uCisgICAgfSwgeworICAgICAgICBwYXR0ZXJuOiAvXig/OiIoPzpbXiJcXF18XFwoPzpbJyJc
YmZucnR2XXxbXiciXGJmbnJ0djAtOXh1XXwwfHhbMC05YS1mQS1GXVswLTlhLWZBLUZdfCg/OnVb
MC05YS1mQS1GXVswLTlhLWZBLUZdWzAtOWEtZkEtRl1bMC05YS1mQS1GXSkpKSoifCcoPzpbXidc
XF18XFwoPzpbJyJcYmZucnR2XXxbXiciXGJmbnJ0djAtOXh1XXwwfHhbMC05YS1mQS1GXVswLTlh
LWZBLUZdfCg/OnVbMC05YS1mQS1GXVswLTlhLWZBLUZdWzAtOWEtZkEtRl1bMC05YS1mQS1GXSkp
KSonKS8sCisgICAgICAgIGFjdGlvbjogc3RyaW5nTGl0ZXJhbEFjdGlvbgorICAgIH0sIHsKKyAg
ICAgICAgcGF0dGVybjogL14oPzonKD86W14nXFxdfFxcKD86WyciXGJmbnJ0dl18W14nIlxiZm5y
dHYwLTl4dV18MHx4WzAtOWEtZkEtRl1bMC05YS1mQS1GXXwoPzp1WzAtOWEtZkEtRl1bMC05YS1m
QS1GXVswLTlhLWZBLUZdWzAtOWEtZkEtRl0pKSkqKVxcJC8sCisgICAgICAgIGFjdGlvbjogc2lu
Z2xlUXVvdGVTdHJpbmdTdGFydEFjdGlvbgorICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjogL14o
PzooPzpbXidcXF18XFwoPzpbJyJcYmZucnR2XXxbXiciXGJmbnJ0djAtOXh1XXwwfHhbMC05YS1m
QS1GXVswLTlhLWZBLUZdfCg/OnVbMC05YS1mQS1GXVswLTlhLWZBLUZdWzAtOWEtZkEtRl1bMC05
YS1mQS1GXSkpKSonKS8sCisgICAgICAgIGFjdGlvbjogc2luZ2xlUXVvdGVTdHJpbmdFbmRBY3Rp
b24sCisgICAgICAgIGNvbnRpbnVlU3RhdGVDb25kaXRpb246IHRoaXMuQ29udGludWVTdGF0ZS5T
aW5nbGVRdW90ZVN0cmluZworICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjogL14oPzooPzpbXidc
XF18XFwoPzpbJyJcYmZucnR2XXxbXiciXGJmbnJ0djAtOXh1XXwwfHhbMC05YS1mQS1GXVswLTlh
LWZBLUZdfCg/OnVbMC05YS1mQS1GXVswLTlhLWZBLUZdWzAtOWEtZkEtRl1bMC05YS1mQS1GXSkp
KSopXFwkLywKKyAgICAgICAgYWN0aW9uOiBzaW5nbGVRdW90ZVN0cmluZ01pZGRsZUFjdGlvbiwK
KyAgICAgICAgY29udGludWVTdGF0ZUNvbmRpdGlvbjogdGhpcy5Db250aW51ZVN0YXRlLlNpbmds
ZVF1b3RlU3RyaW5nCisgICAgfSwgeworICAgICAgICBwYXR0ZXJuOiAvXig/OiIoPzpbXiJcXF18
XFwoPzpbJyJcYmZucnR2XXxbXiciXGJmbnJ0djAtOXh1XXwwfHhbMC05YS1mQS1GXVswLTlhLWZB
LUZdfCg/OnVbMC05YS1mQS1GXVswLTlhLWZBLUZdWzAtOWEtZkEtRl1bMC05YS1mQS1GXSkpKSop
XFwkLywKKyAgICAgICAgYWN0aW9uOiBkb3VibGVRdW90ZVN0cmluZ1N0YXJ0QWN0aW9uCisgICAg
fSwgeworICAgICAgICBwYXR0ZXJuOiAvXig/Oig/OlteIlxcXXxcXCg/OlsnIlxiZm5ydHZdfFte
JyJcYmZucnR2MC05eHVdfDB8eFswLTlhLWZBLUZdWzAtOWEtZkEtRl18KD86dVswLTlhLWZBLUZd
WzAtOWEtZkEtRl1bMC05YS1mQS1GXVswLTlhLWZBLUZdKSkpKiIpLywKKyAgICAgICAgYWN0aW9u
OiBkb3VibGVRdW90ZVN0cmluZ0VuZEFjdGlvbiwKKyAgICAgICAgY29udGludWVTdGF0ZUNvbmRp
dGlvbjogdGhpcy5Db250aW51ZVN0YXRlLkRvdWJsZVF1b3RlU3RyaW5nCisgICAgfSwgeworICAg
ICAgICBwYXR0ZXJuOiAvXig/Oig/OlteIlxcXXxcXCg/OlsnIlxiZm5ydHZdfFteJyJcYmZucnR2
MC05eHVdfDB8eFswLTlhLWZBLUZdWzAtOWEtZkEtRl18KD86dVswLTlhLWZBLUZdWzAtOWEtZkEt
Rl1bMC05YS1mQS1GXVswLTlhLWZBLUZdKSkpKilcXCQvLAorICAgICAgICBhY3Rpb246IGRvdWJs
ZVF1b3RlU3RyaW5nTWlkZGxlQWN0aW9uLAorICAgICAgICBjb250aW51ZVN0YXRlQ29uZGl0aW9u
OiB0aGlzLkNvbnRpbnVlU3RhdGUuRG91YmxlUXVvdGVTdHJpbmcKKyAgICB9LCB7CisgICAgICAg
IHBhdHRlcm46IC9eKD86KD86W2EtekEtWl18WyRfXXxcXCg/OnVbMC05YS1mQS1GXVswLTlhLWZB
LUZdWzAtOWEtZkEtRl1bMC05YS1mQS1GXSkpKD86KD86W2EtekEtWl18WyRfXXxcXCg/OnVbMC05
YS1mQS1GXVswLTlhLWZBLUZdWzAtOWEtZkEtRl1bMC05YS1mQS1GXSkpfFswLTldKSopLywKKyAg
ICAgICAgYWN0aW9uOiBpZGVudE9yS2V5d29yZEFjdGlvbiwKKyAgICAgICAgZG9udEFwcGVuZE5v
blRva2VuOiB0cnVlCisgICAgfSwgeworICAgICAgICBwYXR0ZXJuOiAvXlwpLywKKyAgICAgICAg
YWN0aW9uOiByaWdodFBhcmVuQWN0aW9uLAorICAgICAgICBkb250QXBwZW5kTm9uVG9rZW46IHRy
dWUKKyAgICB9LCB7CisgICAgICAgIHBhdHRlcm46IC9eKD86PD18Pj18PT09fD09fCE9fCE9PXxc
K1wrfFwtXC18PDx8Pj58Pj4+fCYmfFx8XHx8XCs9fFwtPXxcKj18JT18PDw9fD4+PXw+Pj49fCY9
fFx8PXxePXxbe31cKFxbXF1cLjssPD5cK1wtXColJlx8XF4hflw/Oj1dKS8sCisgICAgICAgIGFj
dGlvbjogcHVuY3R1YXRvckFjdGlvbiwKKyAgICAgICAgZG9udEFwcGVuZE5vblRva2VuOiB0cnVl
CisgICAgfSwgeworICAgICAgICBwYXR0ZXJuOiAvXig/OlwvPT8pLywKKyAgICAgICAgYWN0aW9u
OiBkaXZQdW5jdHVhdG9yQWN0aW9uLAorICAgICAgICBsZXhTdGF0ZUNvbmRpdGlvbjogdGhpcy5M
ZXhTdGF0ZS5EaXZpc2lvbkFsbG93ZWQsCisgICAgICAgIGRvbnRBcHBlbmROb25Ub2tlbjogdHJ1
ZQorICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjogL14oPzpcLyg/Oig/OlxcLil8W15cXCpcL10p
KD86KD86XFwuKXxbXlxcL10pKlwvKD86KD86W2EtekEtWl18WyRfXXxcXCg/OnVbMC05YS1mQS1G
XVswLTlhLWZBLUZdWzAtOWEtZkEtRl1bMC05YS1mQS1GXSkpfFswLTldKSopLywKKyAgICAgICAg
YWN0aW9uOiByZWdFeHBMaXRlcmFsQWN0aW9uCisgICAgfSwgeworICAgICAgICBwYXR0ZXJuOiAv
Xig/OlwvKD86KD86XFwuKXxbXlxcKlwvXSkoPzooPzpcXC4pfFteXFwvXSkqKVxcJC8sCisgICAg
ICAgIGFjdGlvbjogcmVnRXhwU3RhcnRBY3Rpb24KKyAgICB9LCB7CisgICAgICAgIHBhdHRlcm46
IC9eKD86KD86KD86XFwuKXxbXlxcL10pKlwvKD86KD86W2EtekEtWl18WyRfXXxcXCg/OnVbMC05
YS1mQS1GXVswLTlhLWZBLUZdWzAtOWEtZkEtRl1bMC05YS1mQS1GXSkpfFswLTldKSopLywKKyAg
ICAgICAgYWN0aW9uOiByZWdFeHBFbmRBY3Rpb24sCisgICAgICAgIGNvbnRpbnVlU3RhdGVDb25k
aXRpb246IHRoaXMuQ29udGludWVTdGF0ZS5SZWdFeHAKKyAgICB9LCB7CisgICAgICAgIHBhdHRl
cm46IC9eKD86KD86KD86XFwuKXxbXlxcL10pKilcXCQvLAorICAgICAgICBhY3Rpb246IHJlZ0V4
cE1pZGRsZUFjdGlvbiwKKyAgICAgICAgY29udGludWVTdGF0ZUNvbmRpdGlvbjogdGhpcy5Db250
aW51ZVN0YXRlLlJlZ0V4cAorICAgIH1dOwogICAgIAogICAgIGZ1bmN0aW9uIHNpbmdsZUxpbmVD
b21tZW50QWN0aW9uKHRva2VuKQogICAgIHsKQEAgLTExOTgsNyArMTU1Myw4IEBAIFdlYkluc3Bl
Y3Rvci5KYXZhU2NyaXB0U291cmNlU3ludGF4SGlnaGwKICAgICAgICAgY29uc3Qga2V5d29yZHMg
PSBbIm51bGwiLCAidHJ1ZSIsICJmYWxzZSIsICJicmVhayIsICJjYXNlIiwgImNhdGNoIiwgImNv
bnN0IiwgImRlZmF1bHQiLCAiZmluYWxseSIsICJmb3IiLCAiaW5zdGFuY2VvZiIsICJuZXciLCAi
dmFyIiwgImNvbnRpbnVlIiwgImZ1bmN0aW9uIiwgInJldHVybiIsICJ2b2lkIiwgImRlbGV0ZSIs
ICJpZiIsICJ0aGlzIiwgImRvIiwgIndoaWxlIiwgImVsc2UiLCAiaW4iLCAic3dpdGNoIiwgInRo
cm93IiwgInRyeSIsICJ0eXBlb2YiLCAid2l0aCIsICJkZWJ1Z2dlciIsICJjbGFzcyIsICJlbnVt
IiwgImV4cG9ydCIsICJleHRlbmRzIiwgImltcG9ydCIsICJzdXBlciIsICJnZXQiLCAic2V0Il07
CiAgICAgICAgIHRoaXMuY3Vyc29yICs9IHRva2VuLmxlbmd0aDsKICAgICAgICAgaWYgKGtleXdv
cmRzLmluZGV4T2YodG9rZW4pID09PSAtMSkgewotICAgICAgICAgICAgdGhpcy5ub25Ub2tlbiAr
PSB0b2tlbjsKKyAgICAgICAgICAgIHRoaXMuYXBwZW5kTm9uVG9rZW4oKTsKKyAgICAgICAgICAg
IHRoaXMubGluZUZyYWdtZW50LmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlU3Bhbih0b2tlbiwgIndl
YmtpdC1qYXZhc2NyaXB0LWlkZW50IikpOwogICAgICAgICAgICAgdGhpcy5sZXhTdGF0ZSA9IHRo
aXMuTGV4U3RhdGUuRGl2aXNpb25BbGxvd2VkOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgdGhpcy5hcHBlbmROb25Ub2tlbigpOwpAQCAtMTIyOSwxMzIgKzE1ODUsNCBAQCBXZWJJbnNw
ZWN0b3IuSmF2YVNjcmlwdFNvdXJjZVN5bnRheEhpZ2hsCiAgICAgfQogfQogCi1XZWJJbnNwZWN0
b3IuSmF2YVNjcmlwdFNvdXJjZVN5bnRheEhpZ2hsaWdodGVyLnByb3RvdHlwZSA9IHsKLSAgICBw
cm9jZXNzOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICAvLyBTcGxpdCB1cCB0aGUgd29yayBp
bnRvIGNodW5rcyBzbyB3ZSBkb24ndCBibG9jayB0aGUKLSAgICAgICAgLy8gVUkgdGhyZWFkIHdo
aWxlIHByb2Nlc3NpbmcuCi0KLSAgICAgICAgdmFyIHJvd3MgPSB0aGlzLnRhYmxlLnJvd3M7Ci0g
ICAgICAgIHZhciByb3dzTGVuZ3RoID0gcm93cy5sZW5ndGg7Ci0gICAgICAgIGNvbnN0IHRva2Vu
c1BlckNodW5rID0gMTAwOwotICAgICAgICBjb25zdCBsaW5lTGVuZ3RoTGltaXQgPSAyMDAwMDsK
LSAgICAgICAgCi0gICAgICAgIHZhciBib3VuZFByb2Nlc3NDaHVuayA9IHByb2Nlc3NDaHVuay5i
aW5kKHRoaXMpOwotICAgICAgICB2YXIgcHJvY2Vzc0NodW5rSW50ZXJ2YWwgPSBzZXRJbnRlcnZh
bChib3VuZFByb2Nlc3NDaHVuaywgMjUpOwotICAgICAgICBib3VuZFByb2Nlc3NDaHVuaygpOwot
ICAgICAgICAKLSAgICAgICAgZnVuY3Rpb24gcHJvY2Vzc0NodW5rKCkKLSAgICAgICAgewotICAg
ICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0b2tlbnNQZXJDaHVuazsgaSsrKSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKHRoaXMuY3Vyc29yID49IHRoaXMubGluZUNvZGUubGVuZ3RoKQotICAg
ICAgICAgICAgICAgICAgICBtb3ZlVG9OZXh0TGluZS5jYWxsKHRoaXMpOwotICAgICAgICAgICAg
ICAgIGlmICh0aGlzLmxpbmVJbmRleCA+PSByb3dzTGVuZ3RoKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIHRoaXMuc291cmNlRnJhbWUuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKCJzeW50YXggaGln
aGxpZ2h0aW5nIGNvbXBsZXRlIik7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKHRoaXMuY3Vyc29yID4gbGluZUxlbmd0
aExpbWl0KSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBjb2RlRnJhZ21lbnQgPSB0aGlzLmxp
bmVDb2RlLnN1YnN0cmluZyh0aGlzLmN1cnNvcik7Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMu
bm9uVG9rZW4gKz0gY29kZUZyYWdtZW50OwotICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnNv
ciArPSBjb2RlRnJhZ21lbnQubGVuZ3RoOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAg
ICAgICAgIHRoaXMubGV4KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgCi0g
ICAgICAgIGZ1bmN0aW9uIG1vdmVUb05leHRMaW5lKCkKLSAgICAgICAgewotICAgICAgICAgICAg
dGhpcy5hcHBlbmROb25Ub2tlbigpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICB2YXIgcm93
ID0gcm93c1t0aGlzLmxpbmVJbmRleF07Ci0gICAgICAgICAgICB2YXIgbGluZSA9IHJvdyA/IHJv
dy5jZWxsc1sxXSA6IG51bGw7Ci0gICAgICAgICAgICBpZiAobGluZSAmJiB0aGlzLmxpbmVGcmFn
bWVudCkgewotICAgICAgICAgICAgICAgIEVsZW1lbnQucHJvdG90eXBlLnJlbW92ZUNoaWxkcmVu
LmNhbGwobGluZSk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgbGluZS5hcHBl
bmRDaGlsZCh0aGlzLmxpbmVGcmFnbWVudCk7Ci0gICAgICAgICAgICAgICAgaWYgKHRoaXMubWVz
c2FnZUJ1YmJsZSkKLSAgICAgICAgICAgICAgICAgICAgbGluZS5hcHBlbmRDaGlsZCh0aGlzLm1l
c3NhZ2VCdWJibGUpOwotICAgICAgICAgICAgICAgIHRoaXMubGluZUZyYWdtZW50ID0gbnVsbDsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRoaXMubGluZUluZGV4Kys7Ci0gICAgICAgICAg
ICBpZiAodGhpcy5saW5lSW5kZXggPj0gcm93c0xlbmd0aCAmJiBwcm9jZXNzQ2h1bmtJbnRlcnZh
bCkgewotICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwocHJvY2Vzc0NodW5rSW50ZXJ2YWwp
OwotICAgICAgICAgICAgICAgIHRoaXMuc291cmNlRnJhbWUuZGlzcGF0Y2hFdmVudFRvTGlzdGVu
ZXJzKCJzeW50YXggaGlnaGxpZ2h0aW5nIGNvbXBsZXRlIik7Ci0gICAgICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcm93ID0gcm93c1t0aGlzLmxpbmVJbmRl
eF07Ci0gICAgICAgICAgICBsaW5lID0gcm93ID8gcm93LmNlbGxzWzFdIDogbnVsbDsKLSAgICAg
ICAgICAgIAotICAgICAgICAgICAgdGhpcy5tZXNzYWdlQnViYmxlID0gbnVsbDsKLSAgICAgICAg
ICAgIGlmIChsaW5lLmxhc3RDaGlsZCAmJiBsaW5lLmxhc3RDaGlsZC5ub2RlVHlwZSA9PT0gTm9k
ZS5FTEVNRU5UX05PREUgJiYgbGluZS5sYXN0Q2hpbGQuaGFzU3R5bGVDbGFzcygid2Via2l0LWh0
bWwtbWVzc2FnZS1idWJibGUiKSkgewotICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZUJ1YmJs
ZSA9IGxpbmUubGFzdENoaWxkOwotICAgICAgICAgICAgICAgIGxpbmUucmVtb3ZlQ2hpbGQodGhp
cy5tZXNzYWdlQnViYmxlKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdGhpcy5saW5l
Q29kZSA9IGxpbmUudGV4dENvbnRlbnQ7Ci0gICAgICAgICAgICB0aGlzLmxpbmVGcmFnbWVudCA9
IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAgICAgICAgICAgIHRoaXMuY3Vy
c29yID0gMDsKLSAgICAgICAgICAgIGlmICghbGluZSkKLSAgICAgICAgICAgICAgICBtb3ZlVG9O
ZXh0TGluZSgpOwotICAgICAgICB9Ci0gICAgfSwKLSAgICAKLSAgICBsZXg6IGZ1bmN0aW9uKCkK
LSAgICB7Ci0gICAgICAgIHZhciB0b2tlbiA9IG51bGw7Ci0gICAgICAgIHZhciBjb2RlRnJhZ21l
bnQgPSB0aGlzLmxpbmVDb2RlLnN1YnN0cmluZyh0aGlzLmN1cnNvcik7Ci0gICAgICAgIAotICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMucnVsZXMubGVuZ3RoOyBpKyspIHsKLSAgICAg
ICAgICAgIHZhciBydWxlID0gdGhpcy5ydWxlc1tpXTsKLSAgICAgICAgICAgIHZhciBydWxlQ29u
dGludWVTdGF0ZUNvbmRpdGlvbiA9IHR5cGVvZiBydWxlLmNvbnRpbnVlU3RhdGVDb25kaXRpb24g
PT09ICJ1bmRlZmluZWQiID8gdGhpcy5Db250aW51ZVN0YXRlLk5vbmUgOiBydWxlLmNvbnRpbnVl
U3RhdGVDb25kaXRpb247Ci0gICAgICAgICAgICBpZiAodGhpcy5jb250aW51ZVN0YXRlID09PSBy
dWxlQ29udGludWVTdGF0ZUNvbmRpdGlvbikgewotICAgICAgICAgICAgICAgIGlmICh0eXBlb2Yg
cnVsZS5zdGF0ZUNvbmRpdGlvbiAhPT0gInVuZGVmaW5lZCIgJiYgdGhpcy5sZXhTdGF0ZSAhPT0g
cnVsZS5zdGF0ZUNvbmRpdGlvbikKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAg
ICAgICAgICAgICAgdmFyIG1hdGNoID0gcnVsZS5wYXR0ZXJuLmV4ZWMoY29kZUZyYWdtZW50KTsK
LSAgICAgICAgICAgICAgICBpZiAobWF0Y2gpIHsKLSAgICAgICAgICAgICAgICAgICAgdG9rZW4g
PSBtYXRjaFswXTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHRva2VuKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoIXJ1bGUuZG9udEFwcGVuZE5vblRva2VuKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRoaXMuYXBwZW5kTm9uVG9rZW4oKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBydWxlLmFjdGlvbi5jYWxsKHRoaXMsIHRva2VuKTsKLSAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQot
ICAgICAgICB0aGlzLm5vblRva2VuICs9IGNvZGVGcmFnbWVudFswXTsKLSAgICAgICAgdGhpcy5j
dXJzb3IrKzsKLSAgICB9LAotICAgIAotICAgIGFwcGVuZE5vblRva2VuOiBmdW5jdGlvbiAoKQot
ICAgIHsKLSAgICAgICAgaWYgKHRoaXMubm9uVG9rZW4ubGVuZ3RoID4gMCkgewotICAgICAgICAg
ICAgdGhpcy5saW5lRnJhZ21lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
dGhpcy5ub25Ub2tlbikpOwotICAgICAgICAgICAgdGhpcy5ub25Ub2tlbiA9ICIiOwotICAgICAg
ICB9Ci0gICAgfSwKLSAgICAKLSAgICBzeW50YXhIaWdobGlnaHROb2RlOiBmdW5jdGlvbihub2Rl
KQotICAgIHsKLSAgICAgICAgdGhpcy5saW5lQ29kZSA9IG5vZGUudGV4dENvbnRlbnQ7Ci0gICAg
ICAgIHRoaXMubGluZUZyYWdtZW50ID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgp
OwotICAgICAgICB0aGlzLmN1cnNvciA9IDA7Ci0gICAgICAgIHdoaWxlICh0cnVlKSB7Ci0gICAg
ICAgICAgICBpZiAodGhpcy5jdXJzb3IgPj0gdGhpcy5saW5lQ29kZS5sZW5ndGgpIHsKLSAgICAg
ICAgICAgICAgICB2YXIgY29kZUZyYWdtZW50ID0gdGhpcy5saW5lQ29kZS5zdWJzdHJpbmcodGhp
cy5jdXJzb3IpOwotICAgICAgICAgICAgICAgIHRoaXMubm9uVG9rZW4gKz0gY29kZUZyYWdtZW50
OwotICAgICAgICAgICAgICAgIHRoaXMuY3Vyc29yICs9IGNvZGVGcmFnbWVudC5sZW5ndGg7Ci0g
ICAgICAgICAgICAgICAgdGhpcy5hcHBlbmROb25Ub2tlbigpOwotICAgICAgICAgICAgICAgIHdo
aWxlIChub2RlLmZpcnN0Q2hpbGQpCi0gICAgICAgICAgICAgICAgICAgIG5vZGUucmVtb3ZlQ2hp
bGQobm9kZS5maXJzdENoaWxkKTsKLSAgICAgICAgICAgICAgICBub2RlLmFwcGVuZENoaWxkKHRo
aXMubGluZUZyYWdtZW50KTsKLSAgICAgICAgICAgICAgICB0aGlzLmxpbmVGcmFnbWVudCA9bnVs
bDsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
IHRoaXMubGV4KCk7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KLVdlYkluc3BlY3Rvci5KYXZhU2Ny
aXB0U291cmNlU3ludGF4SGlnaGxpZ2h0ZXIucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3Bl
Y3Rvci5Tb3VyY2VTeW50YXhIaWdobGlnaGVyLnByb3RvdHlwZTsKK1dlYkluc3BlY3Rvci5KYXZh
U2NyaXB0U291cmNlU3ludGF4SGlnaGxpZ2h0ZXIucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYklu
c3BlY3Rvci5Tb3VyY2VTeW50YXhIaWdobGlnaHRlci5wcm90b3R5cGU7CkluZGV4OiBXZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yU3ludGF4SGlnaGxpZ2h0LmNzcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yU3ludGF4SGlnaGxp
Z2h0LmNzcwkocmV2aXNpb24gNTAzOTYpCisrKyBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
aW5zcGVjdG9yU3ludGF4SGlnaGxpZ2h0LmNzcwkod29ya2luZyBjb3B5KQpAQCAtMjYsMzMgKzI2
LDI5IEBACiAgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLS53ZWJraXQtY3NzLWNvbW1lbnQgeyAKLSAgICBj
b2xvcjogcmdiKDAsIDExNiwgMCk7Ci19Ci0KLS53ZWJraXQtY3NzLXN0cmluZywgLndlYmtpdC1j
c3Mta2V5d29yZCwgLndlYmtpdC1jc3MtdW5pdCB7Ci0gICAgY29sb3I6IHJnYig3LCAxNDQsIDE1
NCk7Ci19Ci0KLS53ZWJraXQtY3NzLW51bWJlciB7Ci0gICAgY29sb3I6IHJnYig1MCwgMCwgMjU1
KTsKLX0KLQotLndlYmtpdC1jc3MtcHJvcGVydHksIC53ZWJraXQtY3NzLWF0LXJ1bGUgewotICAg
IGNvbG9yOiByZ2IoMjAwLCAwLCAwKTsKLX0KLQotLndlYmtpdC1jc3MtdXJsIHsKLSAgICBjb2xv
cjogcmdiKDAsIDAsIDApOwotfQotCi0ud2Via2l0LWNzcy1zZWxlY3RvciB7Ci0gICAgY29sb3I6
IHJnYigwLCAwLCAwKTsKLX0KLQotLndlYmtpdC1jc3MtcHNldWRvLWNsYXNzIHsKLSAgICBjb2xv
cjogcmdiKDEyOCwgMTI4LCAxMjgpOwotfQorIC53ZWJraXQtY3NzLWNvbW1lbnQgeyAKKyAgICAg
Y29sb3I6IHJnYigwLCAxMTYsIDApOworIH0KKworIC53ZWJraXQtY3NzLXVybCwgLndlYmtpdC1j
c3MtY29sb3IsIC53ZWJraXQtY3NzLXN0cmluZywgLndlYmtpdC1jc3Mta2V5d29yZCB7CisgICAg
IGNvbG9yOiByZ2IoNywgMTQ0LCAxNTQpOworIH0KKworIC53ZWJraXQtY3NzLW51bWJlciB7Cisg
ICAgIGNvbG9yOiByZ2IoNTAsIDAsIDI1NSk7CisgfQorCisgLndlYmtpdC1jc3MtcHJvcGVydHks
IC53ZWJraXQtY3NzLWF0LXJ1bGUgeworICAgICBjb2xvcjogcmdiKDIwMCwgMCwgMCk7CisgfQor
CisgLndlYmtpdC1jc3Mtc2VsZWN0b3IgeworICAgICByZ2IoMCwgMCwgMCk7CisgfQorCisgLndl
YmtpdC1jc3MtaW1wb3J0YW50IHsKKyAgICAgY29sb3I6IHJnYigyMDAsIDAsIDE4MCk7CisgfQog
CiAud2Via2l0LWphdmFzY3JpcHQtY29tbWVudCB7CiAgICAgY29sb3I6IHJnYigwLCAxMTYsIDAp
OwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gNTAzOTcpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAwOS0xMS0wMSAgS2Vpc2hpIEhhdHRvcmkg
IDxjYXNleS5oYXR0b3JpQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZXdyaXRlIENTU1NvdXJjZVN5bnRh
eEhpZ2hsaWdodGVyIHNvIGl0IHNoYXJlcyBtb3JlIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwOTA3CisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
Y3NzLXN5bnRheC1oaWdobGlnaHQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvY3NzLXN5bnRheC1oaWdobGlnaHQuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVj
dG9yL2phdmFzY3JpcHQtc3ludGF4LWhpZ2hsaWdodC1leHBlY3RlZC50eHQ6CisKIDIwMDktMTEt
MDIgIFJvbGFuZCBTdGVpbmVyICA8cm9sYW5kc3RlaW5lckBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRGF2ZSBIeWF0dC4KSW5kZXg6IExheW91dFRlc3RzL2luc3BlY3Rvci9j
c3Mtc3ludGF4LWhpZ2hsaWdodC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2Nzcy1zeW50YXgtaGlnaGxpZ2h0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2luc3BlY3Rvci9jc3Mtc3ludGF4LWhpZ2hsaWdodC1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3RzIHRoYXQgQ1NTU291cmNl
U3ludGF4SGlnaGxpZ2h0ZXIgZGV0ZWN0cyB0aGUgdG9rZW5zLgorCit3ZWJraXQtY3NzLXNlbGVj
dG9yCit3ZWJraXQtY3NzLXNlbGVjdG9yLCosd2Via2l0LWNzcy1zZWxlY3Rvcgord2Via2l0LWNz
cy1hdC1ydWxlLCosd2Via2l0LWNzcy11cmwsKgord2Via2l0LWNzcy1hdC1ydWxlLCosd2Via2l0
LWNzcy11cmwsKix3ZWJraXQtY3NzLWtleXdvcmQsKix3ZWJraXQtY3NzLWtleXdvcmQsKgord2Vi
a2l0LWNzcy1hdC1ydWxlLCosd2Via2l0LWNzcy1rZXl3b3JkLCosd2Via2l0LWNzcy1zZWxlY3Rv
ciwqLHdlYmtpdC1jc3MtcHJvcGVydHksKix3ZWJraXQtY3NzLWtleXdvcmQsKgord2Via2l0LWNz
cy1hdC1ydWxlLCosd2Via2l0LWNzcy1wcm9wZXJ0eSwqCit3ZWJraXQtY3NzLXNlbGVjdG9yLCos
d2Via2l0LWNzcy1wcm9wZXJ0eSwqLHdlYmtpdC1jc3Mta2V5d29yZCwqCit3ZWJraXQtY3NzLXNl
bGVjdG9yLCosd2Via2l0LWNzcy1wcm9wZXJ0eSwqLHdlYmtpdC1jc3Mta2V5d29yZCwqLHdlYmtp
dC1jc3MtaW1wb3J0YW50LCoKKwpJbmRleDogTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy1zeW50
YXgtaGlnaGxpZ2h0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nz
cy1zeW50YXgtaGlnaGxpZ2h0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY3NzLXN5bnRheC1oaWdobGlnaHQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2
NSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJldmFsdWF0ZS1pbi1mcm9udGVuZC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitmdW5jdGlvbiBkb2l0KCkKK3sKKyAgICBmdW5jdGlv
biBjYWxsYmFjayhyZXN1bHQpCisgICAgeworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJl
c3VsdC5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIG91dHB1dChyZXN1bHRbaV0pOworICAgICAg
ICBub3RpZnlEb25lKCk7CisgICAgfQorICAgIGV2YWx1YXRlSW5XZWJJbnNwZWN0b3IoImRvaXRB
bmREdW1wIiwgY2FsbGJhY2spOworfQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25s
b2FkPSJvbmxvYWQoKSI+Cis8cD4KK1Rlc3RzIHRoYXQgQ1NTU291cmNlU3ludGF4SGlnaGxpZ2h0
ZXIgZGV0ZWN0cyB0aGUgdG9rZW5zLgorPC9wPgorCis8ZGl2IGlkPSJmcm9udGVuZC1zY3JpcHQi
IHN0eWxlPSJkaXNwbGF5Om5vbmUiPgorZnVuY3Rpb24gZG9pdEFuZER1bXAodGVzdENvbnRyb2xs
ZXIpIHsKKyAgICB0ZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgc2V0VGltZW91
dChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IFtdOworICAgICAgICAKKyAgICAg
ICAgcmVzdWx0LnB1c2goZHVtcFN5bnRheEhpZ2hsaWdodCgiYVtocmVmPScvJ10iKSk7CisgICAg
ICAgIHJlc3VsdC5wdXNoKGR1bXBTeW50YXhIaWdobGlnaHQoIiNjb250ZW50ID4gYTpob3ZlciIp
KTsKKyAgICAgICAgcmVzdWx0LnB1c2goZHVtcFN5bnRheEhpZ2hsaWdodCgiQGltcG9ydCB1cmwo
c3R5bGUuY3NzKTsiKSk7CisgICAgICAgIHJlc3VsdC5wdXNoKGR1bXBTeW50YXhIaWdobGlnaHQo
IkBpbXBvcnQgdXJsKFwic3R5bGUuY3NzXCIpIHByb2plY3Rpb24sIHR2OyIpKTsKKyAgICAgICAg
cmVzdWx0LnB1c2goZHVtcFN5bnRheEhpZ2hsaWdodCgiQG1lZGlhIHNjcmVlbiB7IGJvZHkgeyBj
b2xvcjogcmVkOyB9IH0iKSk7CisgICAgICAgIHJlc3VsdC5wdXNoKGR1bXBTeW50YXhIaWdobGln
aHQoIkBmb250LWZhY2UgeyBmb250LWZhbWlseTogTXlIZWx2ZXRpY2E7IH0iKSk7CisgICAgICAg
IHJlc3VsdC5wdXNoKGR1bXBTeW50YXhIaWdobGlnaHQoInAgeyBjb2xvcjogY29sb3I7IHJlZDog
cmVkOyB9IikpOworICAgICAgICByZXN1bHQucHVzaChkdW1wU3ludGF4SGlnaGxpZ2h0KCJwIHsg
Y29sb3I6IHJlZCAhaW1wb3J0YW50OyB9IikpOworICAgICAgICAKKyAgICAgICAgdGVzdENvbnRy
b2xsZXIubm90aWZ5RG9uZShyZXN1bHQpOworICAgICAgICAKKyAgICB9LCAwKTsKK30KK2Z1bmN0
aW9uIGR1bXBTeW50YXhIaWdobGlnaHQoc3RyKSB7CisgICAgdmFyIG5vZGUgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgbm9kZS50ZXh0Q29udGVudCA9IHN0cjsKKyAgICB2
YXIgamF2YXNjcmlwdFN5bnRheEhpZ2hsaWdodGVyID0gbmV3IFdlYkluc3BlY3Rvci5DU1NTb3Vy
Y2VTeW50YXhIaWdobGlnaHRlcihudWxsLCBudWxsKTsKKyAgICBqYXZhc2NyaXB0U3ludGF4SGln
aGxpZ2h0ZXIuc3ludGF4SGlnaGxpZ2h0Tm9kZShub2RlKTsKKyAgICB2YXIgbm9kZV9wYXJ0cyA9
IFtdOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZS5jaGlsZE5vZGVzLmxlbmd0aDsgaSsr
KSB7CisgICAgICAgIGlmIChub2RlLmNoaWxkTm9kZXNbaV0uZ2V0QXR0cmlidXRlKSB7CisgICAg
ICAgICAgICBub2RlX3BhcnRzLnB1c2gobm9kZS5jaGlsZE5vZGVzW2ldLmdldEF0dHJpYnV0ZSgi
Y2xhc3MiKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBub2RlX3BhcnRzLnB1c2go
IioiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gbm9kZV9wYXJ0cy5qb2luKCIsIik7
Cit9Cis8L2Rpdj4KKworPGRpdiBpZD0ib3V0cHV0Ij4KKzwvZGl2PgorCis8L2JvZHk+Cis8L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvamF2YXNjcmlwdC1zeW50YXgtaGlnaGxp
Z2h0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvamF2
YXNjcmlwdC1zeW50YXgtaGlnaGxpZ2h0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNTAzOTYpCisr
KyBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvamF2YXNjcmlwdC1zeW50YXgtaGlnaGxpZ2h0LWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMywxMiArMywxMiBAQCBUZXN0cyB0aGF0IEphdmFT
Y3JpcHRTb3VyY2VTeW50YXhIaWdobGlnCiB3ZWJraXQtamF2YXNjcmlwdC1rZXl3b3JkLHdlYmtp
dC1qYXZhc2NyaXB0LXN0cmluZywqCiB3ZWJraXQtamF2YXNjcmlwdC1yZWdleHAKIHdlYmtpdC1q
YXZhc2NyaXB0LWNvbW1lbnQKLXdlYmtpdC1qYXZhc2NyaXB0LW51bWJlciwqLHdlYmtpdC1qYXZh
c2NyaXB0LW51bWJlciwqLHdlYmtpdC1qYXZhc2NyaXB0LXJlZ2V4cCwqLHdlYmtpdC1qYXZhc2Ny
aXB0LXN0cmluZywqCi13ZWJraXQtamF2YXNjcmlwdC1zdHJpbmcsKix3ZWJraXQtamF2YXNjcmlw
dC1udW1iZXIKLXdlYmtpdC1qYXZhc2NyaXB0LWtleXdvcmQsKix3ZWJraXQtamF2YXNjcmlwdC1u
dW1iZXIsd2Via2l0LWphdmFzY3JpcHQtY29tbWVudCwqLHdlYmtpdC1qYXZhc2NyaXB0LW51bWJl
cgotd2Via2l0LWphdmFzY3JpcHQtY29tbWVudCx3ZWJraXQtamF2YXNjcmlwdC1yZWdleHAsKix3
ZWJraXQtamF2YXNjcmlwdC1zdHJpbmcsKgord2Via2l0LWphdmFzY3JpcHQtbnVtYmVyLCosd2Vi
a2l0LWphdmFzY3JpcHQtbnVtYmVyLCosd2Via2l0LWphdmFzY3JpcHQtcmVnZXhwLCosd2Via2l0
LWphdmFzY3JpcHQtaWRlbnQsKix3ZWJraXQtamF2YXNjcmlwdC1zdHJpbmcsKgord2Via2l0LWph
dmFzY3JpcHQtc3RyaW5nLCosd2Via2l0LWphdmFzY3JpcHQtaWRlbnQsKix3ZWJraXQtamF2YXNj
cmlwdC1udW1iZXIKK3dlYmtpdC1qYXZhc2NyaXB0LWtleXdvcmQsKix3ZWJraXQtamF2YXNjcmlw
dC1pZGVudCwqLHdlYmtpdC1qYXZhc2NyaXB0LW51bWJlcix3ZWJraXQtamF2YXNjcmlwdC1jb21t
ZW50LCosd2Via2l0LWphdmFzY3JpcHQtbnVtYmVyCit3ZWJraXQtamF2YXNjcmlwdC1jb21tZW50
LHdlYmtpdC1qYXZhc2NyaXB0LXJlZ2V4cCwqLHdlYmtpdC1qYXZhc2NyaXB0LWlkZW50LCosd2Vi
a2l0LWphdmFzY3JpcHQtc3RyaW5nLCoKIHdlYmtpdC1qYXZhc2NyaXB0LXN0cmluZywqCiB3ZWJr
aXQtamF2YXNjcmlwdC1zdHJpbmcsKgogd2Via2l0LWphdmFzY3JpcHQtc3RyaW5nLCoKLSosd2Vi
a2l0LWphdmFzY3JpcHQtY29tbWVudCwqCit3ZWJraXQtamF2YXNjcmlwdC1pZGVudCx3ZWJraXQt
amF2YXNjcmlwdC1jb21tZW50LHdlYmtpdC1qYXZhc2NyaXB0LWlkZW50CiAK
</data>
<flag name="review"
          id="23809"
          type_id="1"
          status="-"
          setter="timothy"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42303</attachid>
            <date>2009-11-01 23:00:58 -0800</date>
            <delta_ts>2009-11-02 09:27:59 -0800</delta_ts>
            <desc>Sorry, I was editing the wrong file</desc>
            <filename>css.diff</filename>
            <type>text/plain</type>
            <size>71376</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MDM5NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMDktMTEtMDEgIEtlaXNoaSBIYXR0b3JpICA8Y2FzZXkuaGF0dG9y
aUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgV2ViIEluc3BlY3RvcjogUmV3cml0ZSBDU1NTb3VyY2VTeW50YXhIaWdobGlnaHRlciBz
byBpdCBzaGFyZXMgbW9yZSBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zMDkwNworCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9jc3Mtc3ludGF4
LWhpZ2hsaWdodC5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRz
VHJlZU91dGxpbmUuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFt
ZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuc3ludGF4
SGlnaGxpZ2h0Q1NTKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VTeW50YXhIaWdobGln
aHRlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlU3ludGF4SGlnaGxpZ2h0ZXIucHJv
dG90eXBlLnByb2Nlc3MucHJvY2Vzc0NodW5rKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3Vy
Y2VTeW50YXhIaWdobGlnaHRlci5wcm90b3R5cGUucHJvY2Vzcy5tb3ZlVG9OZXh0TGluZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlU3ludGF4SGlnaGxpZ2h0ZXIucHJvdG90eXBlLnBy
b2Nlc3MpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZVN5bnRheEhpZ2hsaWdodGVyLnBy
b3RvdHlwZS5sZXgpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZVN5bnRheEhpZ2hsaWdo
dGVyLnByb3RvdHlwZS5hcHBlbmROb25Ub2tlbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291
cmNlU3ludGF4SGlnaGxpZ2h0ZXIucHJvdG90eXBlLnN5bnRheEhpZ2hsaWdodE5vZGUpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkNTU1NvdXJjZVN5bnRheEhpZ2hsaWdodGVyKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3RvclN5bnRheEhpZ2hsaWdodC5jc3M6CisKIDIw
MDktMTEtMDIgIFJvbGFuZCBTdGVpbmVyICA8cm9sYW5kc3RlaW5lckBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2ZSBIeWF0dC4KSW5kZXg6IFdlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzCShyZXZpc2lvbiA1MDM5
NikKKysrIFdlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC04NTAsOCArODUwLDggQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRz
VHJlZUVsZW1lbnQucHJvdG90eQogICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG5ld05vZGUg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBuZXdOb2RlLnRleHRDb250ZW50ID0gbm9kZS50ZXh0Q29udGVudDsKICAgICAgICAgICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNzc1N5bnRheEhpZ2hsaWdo
dGVyID0gbmV3IFdlYkluc3BlY3Rvci5DU1NTb3VyY2VTeW50YXhIaWdobGlnaGVyKG51bGwsIG51
bGwpOwotICAgICAgICAgICAgICAgICAgICAgICAgY3NzU3ludGF4SGlnaGxpZ2h0ZXIuc3ludGF4
SGlnaGxpZ2h0TGluZShuZXdOb2RlLCBudWxsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZh
ciBjc3NTeW50YXhIaWdobGlnaHRlciA9IG5ldyBXZWJJbnNwZWN0b3IuQ1NTU291cmNlU3ludGF4
SGlnaGxpZ2h0ZXIobnVsbCwgbnVsbCk7CisgICAgICAgICAgICAgICAgICAgICAgICBjc3NTeW50
YXhIaWdobGlnaHRlci5zeW50YXhIaWdobGlnaHROb2RlKG5ld05vZGUpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICBpbmZvLnRpdGxlID0gIjxzcGFu
IGNsYXNzPVwid2Via2l0LWh0bWwtdGV4dC1ub2RlIHdlYmtpdC1odG1sLWNzcy1ub2RlXCI+IiAr
IG5ld05vZGUuaW5uZXJIVE1MLnJlcGxhY2UoL15bXG5ccl0qLywgIiIpLnJlcGxhY2UoL1xzKiQv
LCAiIikgKyAiPC9zcGFuPiI7CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CkluZGV4OiBX
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzCShyZXZpc2lvbiA1MDM5
NikKKysrIFdlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtNzMxLDIwICs3MzEsMjAgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgaWYgKCF0YWJsZSkKICAgICAgICAgICAgIHJldHVybjsKIAot
ICAgICAgICB2YXIgY3NzU3ludGF4SGlnaGxpZ2h0ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkNTU1Nv
dXJjZVN5bnRheEhpZ2hsaWdoZXIodGFibGUsIHRoaXMpOworICAgICAgICB2YXIgY3NzU3ludGF4
SGlnaGxpZ2h0ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkNTU1NvdXJjZVN5bnRheEhpZ2hsaWdodGVy
KHRhYmxlLCB0aGlzKTsKICAgICAgICAgY3NzU3ludGF4SGlnaGxpZ2h0ZXIucHJvY2VzcygpOwog
ICAgIH0KIH0KIAogV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS5fX3Byb3RvX18g
PSBXZWJJbnNwZWN0b3IuT2JqZWN0LnByb3RvdHlwZTsKIAotV2ViSW5zcGVjdG9yLlNvdXJjZVN5
bnRheEhpZ2hsaWdoZXIgPSBmdW5jdGlvbih0YWJsZSwgc291cmNlRnJhbWUpCitXZWJJbnNwZWN0
b3IuU291cmNlU3ludGF4SGlnaGxpZ2h0ZXIgPSBmdW5jdGlvbih0YWJsZSwgc291cmNlRnJhbWUp
CiB7CiAgICAgdGhpcy50YWJsZSA9IHRhYmxlOwogICAgIHRoaXMuc291cmNlRnJhbWUgPSBzb3Vy
Y2VGcmFtZTsKIH0KIAotV2ViSW5zcGVjdG9yLlNvdXJjZVN5bnRheEhpZ2hsaWdoZXIucHJvdG90
eXBlID0geworV2ViSW5zcGVjdG9yLlNvdXJjZVN5bnRheEhpZ2hsaWdodGVyLnByb3RvdHlwZSA9
IHsKICAgICBjcmVhdGVTcGFuOiBmdW5jdGlvbihjb250ZW50LCBjbGFzc05hbWUpCiAgICAgewog
ICAgICAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKQEAgLTc1
MywyMzQgKzc1MywxMDg4IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VTeW50YXhIaWdobGlnaGVyLnBy
b3QKICAgICAgICAgcmV0dXJuIHNwYW47CiAgICAgfSwKIAotICAgIGdlbmVyYXRlRmluZGVyOiBm
dW5jdGlvbihyZWdleCwgbWF0Y2hOdW1iZXIsIGNsYXNzTmFtZSkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBmdW5jdGlvbihzdHIpIHsKLSAgICAgICAgICAgIHZhciBtYXRjaCA9IHJlZ2V4LmV4ZWMo
c3RyKTsKLSAgICAgICAgICAgIGlmICghbWF0Y2gpCi0gICAgICAgICAgICAgICAgcmV0dXJuIG51
bGw7Ci0gICAgICAgICAgICB0aGlzLnByZXZpb3VzTWF0Y2hMZW5ndGggPSBtYXRjaFttYXRjaE51
bWJlcl0ubGVuZ3RoOwotICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlU3BhbihtYXRjaFtt
YXRjaE51bWJlcl0sIGNsYXNzTmFtZSk7Ci0gICAgICAgIH07Ci0gICAgfSwKLQogICAgIHByb2Nl
c3M6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIC8vIFNwbGl0IHVwIHRoZSB3b3JrIGludG8g
Y2h1bmtzIHNvIHdlIGRvbid0IGJsb2NrIHRoZQogICAgICAgICAvLyBVSSB0aHJlYWQgd2hpbGUg
cHJvY2Vzc2luZy4KIAotICAgICAgICB2YXIgaSA9IDA7CiAgICAgICAgIHZhciByb3dzID0gdGhp
cy50YWJsZS5yb3dzOwogICAgICAgICB2YXIgcm93c0xlbmd0aCA9IHJvd3MubGVuZ3RoOwotICAg
ICAgICB2YXIgcHJldmlvdXNDZWxsID0gbnVsbDsKLSAgICAgICAgY29uc3QgbGluZXNQZXJDaHVu
ayA9IDEwOwotCisgICAgICAgIGNvbnN0IHRva2Vuc1BlckNodW5rID0gMTAwOworICAgICAgICBj
b25zdCBsaW5lTGVuZ3RoTGltaXQgPSAyMDAwMDsKKyAgICAgICAgCisgICAgICAgIHZhciBib3Vu
ZFByb2Nlc3NDaHVuayA9IHByb2Nlc3NDaHVuay5iaW5kKHRoaXMpOworICAgICAgICB2YXIgcHJv
Y2Vzc0NodW5rSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChib3VuZFByb2Nlc3NDaHVuaywgMjUpOwor
ICAgICAgICBib3VuZFByb2Nlc3NDaHVuaygpOworICAgICAgICAKICAgICAgICAgZnVuY3Rpb24g
cHJvY2Vzc0NodW5rKCkKICAgICAgICAgewotICAgICAgICAgICAgZm9yICh2YXIgZW5kID0gTWF0
aC5taW4oaSArIGxpbmVzUGVyQ2h1bmssIHJvd3NMZW5ndGgpOyBpIDwgZW5kOyArK2kpIHsKLSAg
ICAgICAgICAgICAgICB2YXIgcm93ID0gcm93c1tpXTsKLSAgICAgICAgICAgICAgICBpZiAoIXJv
dykKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgdmFyIGNl
bGwgPSByb3cuY2VsbHNbMV07Ci0gICAgICAgICAgICAgICAgaWYgKCFjZWxsKQotICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICB0aGlzLnN5bnRheEhpZ2hsaWdo
dExpbmUoY2VsbCwgcHJldmlvdXNDZWxsKTsKLSAgICAgICAgICAgICAgICBpZiAoaSA8IChlbmQg
LSAxKSkKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWxldGVDb250aW51ZUZsYWdzKHByZXZp
b3VzQ2VsbCk7Ci0gICAgICAgICAgICAgICAgcHJldmlvdXNDZWxsID0gY2VsbDsKLSAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdG9rZW5zUGVyQ2h1bms7IGkr
KykgeworICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1cnNvciA+PSB0aGlzLmxpbmVDb2RlLmxl
bmd0aCkKKyAgICAgICAgICAgICAgICAgICAgbW92ZVRvTmV4dExpbmUuY2FsbCh0aGlzKTsKKyAg
ICAgICAgICAgICAgICBpZiAodGhpcy5saW5lSW5kZXggPj0gcm93c0xlbmd0aCkgeworICAgICAg
ICAgICAgICAgICAgICB0aGlzLnNvdXJjZUZyYW1lLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycygi
c3ludGF4IGhpZ2hsaWdodGluZyBjb21wbGV0ZSIpOworICAgICAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1cnNvciA+
IGxpbmVMZW5ndGhMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICB2YXIgY29kZUZyYWdtZW50
ID0gdGhpcy5saW5lQ29kZS5zdWJzdHJpbmcodGhpcy5jdXJzb3IpOworICAgICAgICAgICAgICAg
ICAgICB0aGlzLm5vblRva2VuICs9IGNvZGVGcmFnbWVudDsKKyAgICAgICAgICAgICAgICAgICAg
dGhpcy5jdXJzb3IgKz0gY29kZUZyYWdtZW50Lmxlbmd0aDsKKyAgICAgICAgICAgICAgICB9CiAK
LSAgICAgICAgICAgIGlmIChpID49IHJvd3NMZW5ndGggJiYgcHJvY2Vzc0NodW5rSW50ZXJ2YWwp
IHsKLSAgICAgICAgICAgICAgICB0aGlzLmRlbGV0ZUNvbnRpbnVlRmxhZ3MocHJldmlvdXNDZWxs
KTsKLSAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5wcmV2aW91c01hdGNoTGVuZ3RoOworICAg
ICAgICAgICAgICAgIHRoaXMubGV4KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAg
ICAgCisgICAgICAgIGZ1bmN0aW9uIG1vdmVUb05leHRMaW5lKCkKKyAgICAgICAgeworICAgICAg
ICAgICAgdGhpcy5hcHBlbmROb25Ub2tlbigpOworICAgICAgICAgICAgCisgICAgICAgICAgICB2
YXIgcm93ID0gcm93c1t0aGlzLmxpbmVJbmRleF07CisgICAgICAgICAgICB2YXIgbGluZSA9IHJv
dyA/IHJvdy5jZWxsc1sxXSA6IG51bGw7CisgICAgICAgICAgICBpZiAobGluZSAmJiB0aGlzLmxp
bmVGcmFnbWVudCkgeworICAgICAgICAgICAgICAgIEVsZW1lbnQucHJvdG90eXBlLnJlbW92ZUNo
aWxkcmVuLmNhbGwobGluZSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbGlu
ZS5hcHBlbmRDaGlsZCh0aGlzLmxpbmVGcmFnbWVudCk7CisgICAgICAgICAgICAgICAgaWYgKHRo
aXMubWVzc2FnZUJ1YmJsZSkKKyAgICAgICAgICAgICAgICAgICAgbGluZS5hcHBlbmRDaGlsZCh0
aGlzLm1lc3NhZ2VCdWJibGUpOworICAgICAgICAgICAgICAgIHRoaXMubGluZUZyYWdtZW50ID0g
bnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRoaXMubGluZUluZGV4Kys7CisgICAg
ICAgICAgICBpZiAodGhpcy5saW5lSW5kZXggPj0gcm93c0xlbmd0aCAmJiBwcm9jZXNzQ2h1bmtJ
bnRlcnZhbCkgewogICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwocHJvY2Vzc0NodW5rSW50
ZXJ2YWwpOwotCiAgICAgICAgICAgICAgICAgdGhpcy5zb3VyY2VGcmFtZS5kaXNwYXRjaEV2ZW50
VG9MaXN0ZW5lcnMoInN5bnRheCBoaWdobGlnaHRpbmcgY29tcGxldGUiKTsKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICByb3cgPSByb3dzW3RoaXMu
bGluZUluZGV4XTsKKyAgICAgICAgICAgIGxpbmUgPSByb3cgPyByb3cuY2VsbHNbMV0gOiBudWxs
OworICAgICAgICAgICAgCisgICAgICAgICAgICB0aGlzLm1lc3NhZ2VCdWJibGUgPSBudWxsOwor
ICAgICAgICAgICAgaWYgKGxpbmUubGFzdENoaWxkICYmIGxpbmUubGFzdENoaWxkLm5vZGVUeXBl
ID09PSBOb2RlLkVMRU1FTlRfTk9ERSAmJiBsaW5lLmxhc3RDaGlsZC5oYXNTdHlsZUNsYXNzKCJ3
ZWJraXQtaHRtbC1tZXNzYWdlLWJ1YmJsZSIpKSB7CisgICAgICAgICAgICAgICAgdGhpcy5tZXNz
YWdlQnViYmxlID0gbGluZS5sYXN0Q2hpbGQ7CisgICAgICAgICAgICAgICAgbGluZS5yZW1vdmVD
aGlsZCh0aGlzLm1lc3NhZ2VCdWJibGUpOwogICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0
aGlzLmxpbmVDb2RlID0gbGluZS50ZXh0Q29udGVudDsKKyAgICAgICAgICAgIHRoaXMubGluZUZy
YWdtZW50ID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOworICAgICAgICAgICAg
dGhpcy5jdXJzb3IgPSAwOworICAgICAgICAgICAgaWYgKCFsaW5lKQorICAgICAgICAgICAgICAg
IG1vdmVUb05leHRMaW5lKCk7CiAgICAgICAgIH0KKyAgICB9LAorICAgIAorICAgIGxleDogZnVu
Y3Rpb24oKQorICAgIHsKKyAgICAgICAgdmFyIHRva2VuID0gbnVsbDsKKyAgICAgICAgdmFyIGNv
ZGVGcmFnbWVudCA9IHRoaXMubGluZUNvZGUuc3Vic3RyaW5nKHRoaXMuY3Vyc29yKTsKKyAgICAg
ICAgCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5ydWxlcy5sZW5ndGg7IGkrKykg
eworICAgICAgICAgICAgdmFyIHJ1bGUgPSB0aGlzLnJ1bGVzW2ldOworICAgICAgICAgICAgdmFy
IHJ1bGVDb250aW51ZVN0YXRlQ29uZGl0aW9uID0gdHlwZW9mIHJ1bGUuY29udGludWVTdGF0ZUNv
bmRpdGlvbiA9PT0gInVuZGVmaW5lZCIgPyB0aGlzLkNvbnRpbnVlU3RhdGUuTm9uZSA6IHJ1bGUu
Y29udGludWVTdGF0ZUNvbmRpdGlvbjsKKyAgICAgICAgICAgIGlmICh0aGlzLmNvbnRpbnVlU3Rh
dGUgPT09IHJ1bGVDb250aW51ZVN0YXRlQ29uZGl0aW9uKSB7CisgICAgICAgICAgICAgICAgaWYg
KHR5cGVvZiBydWxlLmxleFN0YXRlQ29uZGl0aW9uICE9PSAidW5kZWZpbmVkIiAmJiB0aGlzLmxl
eFN0YXRlICE9PSBydWxlLmxleFN0YXRlQ29uZGl0aW9uKQorICAgICAgICAgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgICAgICAgICB2YXIgbWF0Y2ggPSBydWxlLnBhdHRlcm4uZXhlYyhj
b2RlRnJhZ21lbnQpOworICAgICAgICAgICAgICAgIGlmIChtYXRjaCkgeworICAgICAgICAgICAg
ICAgICAgICB0b2tlbiA9IG1hdGNoWzBdOworICAgICAgICAgICAgICAgICAgICBpZiAodG9rZW4p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcnVsZS5kb250QXBwZW5kTm9uVG9rZW4p
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBlbmROb25Ub2tlbigpOworICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJ1bGUuYWN0aW9uLmNhbGwodGhpcywgdG9rZW4p
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fQorICAgICAgICB9CisgICAgICAgIHRoaXMubm9uVG9rZW4gKz0gY29kZUZyYWdtZW50WzBdOwor
ICAgICAgICB0aGlzLmN1cnNvcisrOworICAgIH0sCisgICAgCisgICAgYXBwZW5kTm9uVG9rZW46
IGZ1bmN0aW9uICgpCisgICAgeworICAgICAgICBpZiAodGhpcy5ub25Ub2tlbi5sZW5ndGggPiAw
KSB7CisgICAgICAgICAgICB0aGlzLmxpbmVGcmFnbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZSh0aGlzLm5vblRva2VuKSk7CisgICAgICAgICAgICB0aGlzLm5vblRva2Vu
ID0gIiI7CisgICAgICAgIH0KKyAgICB9LAorICAgIAorICAgIHN5bnRheEhpZ2hsaWdodE5vZGU6
IGZ1bmN0aW9uKG5vZGUpCisgICAgeworICAgICAgICB0aGlzLmxpbmVDb2RlID0gbm9kZS50ZXh0
Q29udGVudDsKKyAgICAgICAgdGhpcy5saW5lRnJhZ21lbnQgPSBkb2N1bWVudC5jcmVhdGVEb2N1
bWVudEZyYWdtZW50KCk7CisgICAgICAgIHRoaXMuY3Vyc29yID0gMDsKKyAgICAgICAgd2hpbGUg
KHRydWUpIHsKKyAgICAgICAgICAgIGlmICh0aGlzLmN1cnNvciA+PSB0aGlzLmxpbmVDb2RlLmxl
bmd0aCkgeworICAgICAgICAgICAgICAgIHZhciBjb2RlRnJhZ21lbnQgPSB0aGlzLmxpbmVDb2Rl
LnN1YnN0cmluZyh0aGlzLmN1cnNvcik7CisgICAgICAgICAgICAgICAgdGhpcy5ub25Ub2tlbiAr
PSBjb2RlRnJhZ21lbnQ7CisgICAgICAgICAgICAgICAgdGhpcy5jdXJzb3IgKz0gY29kZUZyYWdt
ZW50Lmxlbmd0aDsKKyAgICAgICAgICAgICAgICB0aGlzLmFwcGVuZE5vblRva2VuKCk7CisgICAg
ICAgICAgICAgICAgd2hpbGUgKG5vZGUuZmlyc3RDaGlsZCkKKyAgICAgICAgICAgICAgICAgICAg
bm9kZS5yZW1vdmVDaGlsZChub2RlLmZpcnN0Q2hpbGQpOworICAgICAgICAgICAgICAgIG5vZGUu
YXBwZW5kQ2hpbGQodGhpcy5saW5lRnJhZ21lbnQpOworICAgICAgICAgICAgICAgIHRoaXMubGlu
ZUZyYWdtZW50ID1udWxsOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0K
IAotICAgICAgICB2YXIgYm91bmRQcm9jZXNzQ2h1bmsgPSBwcm9jZXNzQ2h1bmsuYmluZCh0aGlz
KTsKLSAgICAgICAgdmFyIHByb2Nlc3NDaHVua0ludGVydmFsID0gc2V0SW50ZXJ2YWwoYm91bmRQ
cm9jZXNzQ2h1bmssIDI1KTsKLSAgICAgICAgYm91bmRQcm9jZXNzQ2h1bmsoKTsKKyAgICAgICAg
ICAgIHRoaXMubGV4KCk7CisgICAgICAgIH0KICAgICB9CiB9CiAKLVdlYkluc3BlY3Rvci5DU1NT
b3VyY2VTeW50YXhIaWdobGlnaGVyID0gZnVuY3Rpb24odGFibGUsIHNvdXJjZUZyYW1lKSB7Ci0g
ICAgV2ViSW5zcGVjdG9yLlNvdXJjZVN5bnRheEhpZ2hsaWdoZXIuY2FsbCh0aGlzLCB0YWJsZSwg
c291cmNlRnJhbWUpOwotCi0gICAgdGhpcy5maW5kTnVtYmVyID0gdGhpcy5nZW5lcmF0ZUZpbmRl
cigvXigoLT8oXGQrfFxkKlwuXGQrKSl8XigjW2EtZkEtRjAtOV17Myw2fSkpKD86XER8JCkvLCAx
LCAid2Via2l0LWNzcy1udW1iZXIiKTsKLSAgICB0aGlzLmZpbmRVbml0cyA9IHRoaXMuZ2VuZXJh
dGVGaW5kZXIoL14ocHh8ZW18cHR8aW58Y218bW18cGN8ZXgpKD86XFd8JCkvLCAxLCAid2Via2l0
LWNzcy11bml0Iik7Ci0gICAgdGhpcy5maW5kS2V5d29yZCA9IHRoaXMuZ2VuZXJhdGVGaW5kZXIo
L14ocmdiYT98aHNsYT98dmFyKSg/OlxXfCQpLywgMSwgIndlYmtpdC1jc3Mta2V5d29yZCIpOwot
ICAgIHRoaXMuZmluZFNpbmdsZUxpbmVTdHJpbmcgPSB0aGlzLmdlbmVyYXRlRmluZGVyKC9eIig/
OlteIlxcXXxcXC4pKiJ8XicoW14nXFxdfFxcLikqJy8sIDAsICJ3ZWJraXQtY3NzLXN0cmluZyIp
OyAvLyAiIHRoaXMgcXVvdGUga2VlcHMgWGNvZGUgaGFwcHkKLSAgICB0aGlzLmZpbmRTaW5nbGVM
aW5lQ29tbWVudCA9IHRoaXMuZ2VuZXJhdGVGaW5kZXIoL15cL1wqLio/XCpcLy8sIDAsICJ3ZWJr
aXQtY3NzLWNvbW1lbnQiKTsKLSAgICB0aGlzLmZpbmRNdWx0aWxpbmVDb21tZW50U3RhcnQgPSB0
aGlzLmdlbmVyYXRlRmluZGVyKC9eXC9cKi4qJC8sIDAsICJ3ZWJraXQtY3NzLWNvbW1lbnQiKTsK
LSAgICB0aGlzLmZpbmRNdWx0aWxpbmVDb21tZW50RW5kID0gdGhpcy5nZW5lcmF0ZUZpbmRlcigv
Xi4qP1wqXC8vLCAwLCAid2Via2l0LWNzcy1jb21tZW50Iik7Ci0gICAgdGhpcy5maW5kU2VsZWN0
b3IgPSB0aGlzLmdlbmVyYXRlRmluZGVyKC9eKFsjXC5dP1tfYS16QS1aXS4qPykoPzpcV3wkKS8s
IDEsICJ3ZWJraXQtY3NzLXNlbGVjdG9yIik7Ci0gICAgdGhpcy5maW5kUHJvcGVydHkgPSB0aGlz
LmdlbmVyYXRlRmluZGVyKC9eKC0/W19hLXowLTldW19hLXowLTktXSpccyopKD86XDopLywgMSwg
IndlYmtpdC1jc3MtcHJvcGVydHkiKTsKLSAgICB0aGlzLmZpbmRHZW5lcmljSWRlbnQgPSB0aGlz
LmdlbmVyYXRlRmluZGVyKC9eKFtALV0/W19hLXowLTldW19hLXowLTktXSopKD86XFd8JCkvLCAx
LCAid2Via2l0LWNzcy1zdHJpbmciKTsKLX0KK1dlYkluc3BlY3Rvci5DU1NTb3VyY2VTeW50YXhI
aWdobGlnaHRlciA9IGZ1bmN0aW9uKHRhYmxlLCBzb3VyY2VGcmFtZSkgeworICAgIFdlYkluc3Bl
Y3Rvci5Tb3VyY2VTeW50YXhIaWdobGlnaHRlci5jYWxsKHRoaXMsIHRhYmxlLCBzb3VyY2VGcmFt
ZSk7CiAKLVdlYkluc3BlY3Rvci5DU1NTb3VyY2VTeW50YXhIaWdobGlnaGVyLnByb3RvdHlwZSA9
IHsKLSAgICBkZWxldGVDb250aW51ZUZsYWdzOiBmdW5jdGlvbihjZWxsKQorICAgIHRoaXMuTGV4
U3RhdGUgPSB7CisgICAgICAgIEluaXRpYWw6IDEsCisgICAgICAgIERlY2xhcmF0aW9uUHJvcGVy
dHk6IDIsCisgICAgICAgIERlY2xhcmF0aW9uVmFsdWU6IDMsCisgICAgICAgIEF0TWVkaWE6IDQs
CisgICAgICAgIEF0UnVsZTogNSwKKyAgICAgICAgQXRLZXlmcmFtZXM6IDYKKyAgICB9OworICAg
IHRoaXMuQ29udGludWVTdGF0ZSA9IHsKKyAgICAgICAgTm9uZTogMCwKKyAgICAgICAgQ29tbWVu
dDogMQorICAgIH07CisgICAgCisgICAgdGhpcy5ub25Ub2tlbiA9ICIiOworICAgIHRoaXMuY3Vy
c29yID0gMDsKKyAgICB0aGlzLmxpbmVJbmRleCA9IC0xOworICAgIHRoaXMubGluZUNvZGUgPSAi
IjsKKyAgICB0aGlzLmxpbmVGcmFnbWVudCA9IG51bGw7CisgICAgdGhpcy5sZXhTdGF0ZSA9IHRo
aXMuTGV4U3RhdGUuSW5pdGlhbDsKKyAgICB0aGlzLmNvbnRpbnVlU3RhdGUgPSB0aGlzLkNvbnRp
bnVlU3RhdGUuTm9uZTsKKyAgICAKKyAgICBjb25zdCB1cmxQYXR0ZXJuID0gL151cmxcKFxzKig/
Oig/OiIoPzpbXlxcXCJdfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqInwnKD86W15cXFwnXXwo
PzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKicpfCg/OlshIyQlJiotflx3XXwoPzpcXFtcZGEtZl17
MSw2fVxzP3xcLikpKilccypcKS9pOworICAgIGNvbnN0IHN0cmluZ1BhdHRlcm4gPSAvXig/OiIo
PzpbXlxcXCJdfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqInwnKD86W15cXFwnXXwoPzpcXFtc
ZGEtZl17MSw2fVxzP3xcLikpKicpL2k7CisgICAgY29uc3QgaWRlbnRQYXR0ZXJuID0gL14tPyg/
Olx3fCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkoPzpbLVx3XXwoPzpcXFtcZGEtZl17MSw2fVxz
P3xcLikpKi9pOworICAgIGNvbnN0IHN0YXJ0QmxvY2tQYXR0ZXJuID0gL157L2k7CisgICAgY29u
c3QgZW5kQmxvY2tQYXR0ZXJuID0gL159L2k7CisgICAgdGhpcy5ydWxlcyA9IFt7CisgICAgICAg
IHBhdHRlcm46IC9eXC9cKlteXCpdKlwqKyhbXlwvKl1bXipdKlwqKykqXC8vaSwKKyAgICAgICAg
YWN0aW9uOiBjb21tZW50QWN0aW9uCisgICAgfSwgeworICAgICAgICBwYXR0ZXJuOiAvXig/Olwv
XCooPzpbXlwqXXxcKlteXC9dKSopL2ksCisgICAgICAgIGFjdGlvbjogY29tbWVudFN0YXJ0QWN0
aW9uCisgICAgfSwgeworICAgICAgICBwYXR0ZXJuOiAvXig/Oig/OlteXCpdfFwqW15cL10pKlwq
K1wvKS9pLAorICAgICAgICBhY3Rpb246IGNvbW1lbnRFbmRBY3Rpb24sCisgICAgICAgIGNvbnRp
bnVlU3RhdGVDb25kaXRpb246IHRoaXMuQ29udGludWVTdGF0ZS5Db21tZW50CisgICAgfSwgewor
ICAgICAgICBwYXR0ZXJuOiAvXi4qL2ksCisgICAgICAgIGFjdGlvbjogY29tbWVudE1pZGRsZUFj
dGlvbiwKKyAgICAgICAgY29udGludWVTdGF0ZUNvbmRpdGlvbjogdGhpcy5Db250aW51ZVN0YXRl
LkNvbW1lbnQKKyAgICB9LCB7CisgICAgICAgIHBhdHRlcm46IC9eKD86KD86LT8oPzpcd3woPzpc
XFtcZGEtZl17MSw2fVxzP3xcLikpKD86Wy1cd118KD86XFxbXGRhLWZdezEsNn1ccz98XC4pKSp8
XCopKD86Iy0/KD86XHd8KD86XFxbXGRhLWZdezEsNn1ccz98XC4pKSg/OlstXHddfCg/OlxcW1xk
YS1mXXsxLDZ9XHM/fFwuKSkqfFwuLT8oPzpcd3woPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKD86
Wy1cd118KD86XFxbXGRhLWZdezEsNn1ccz98XC4pKSp8XFtccyotPyg/Olx3fCg/OlxcW1xkYS1m
XXsxLDZ9XHM/fFwuKSkoPzpbLVx3XXwoPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKlxzKig/Oig/
Oj18fj18XHw9KVxzKig/Oi0/KD86XHd8KD86XFxbXGRhLWZdezEsNn1ccz98XC4pKSg/OlstXHdd
fCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqfCg/OiIoPzpbXlxcXCJdfCg/OlxcW1xkYS1mXXsx
LDZ9XHM/fFwuKSkqInwnKD86W15cXFwnXXwoPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKicpKVxz
Kik/XF18Oig/Oi0/KD86XHd8KD86XFxbXGRhLWZdezEsNn1ccz98XC4pKSg/OlstXHddfCg/Olxc
W1xkYS1mXXsxLDZ9XHM/fFwuKSkqfC0/KD86XHd8KD86XFxbXGRhLWZdezEsNn1ccz98XC4pKSg/
OlstXHddfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqXChccyooPzotPyg/Olx3fCg/OlxcW1xk
YS1mXXsxLDZ9XHM/fFwuKSkoPzpbLVx3XXwoPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKlxzKik/
XCkpKSp8KD86Iy0/KD86XHd8KD86XFxbXGRhLWZdezEsNn1ccz98XC4pKSg/OlstXHddfCg/Olxc
W1xkYS1mXXsxLDZ9XHM/fFwuKSkqfFwuLT8oPzpcd3woPzpcXFtcZGEtZl17MSw2fVxzP3xcLikp
KD86Wy1cd118KD86XFxbXGRhLWZdezEsNn1ccz98XC4pKSp8XFtccyotPyg/Olx3fCg/OlxcW1xk
YS1mXXsxLDZ9XHM/fFwuKSkoPzpbLVx3XXwoPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKlxzKig/
Oig/Oj18fj18XHw9KVxzKig/Oi0/KD86XHd8KD86XFxbXGRhLWZdezEsNn1ccz98XC4pKSg/Olst
XHddfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqfCg/OiIoPzpbXlxcXCJdfCg/OlxcW1xkYS1m
XXsxLDZ9XHM/fFwuKSkqInwnKD86W15cXFwnXXwoPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKicp
KVxzKik/XF18Oig/Oi0/KD86XHd8KD86XFxbXGRhLWZdezEsNn1ccz98XC4pKSg/OlstXHddfCg/
OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqfC0/KD86XHd8KD86XFxbXGRhLWZdezEsNn1ccz98XC4p
KSg/OlstXHddfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqXChccyooPzotPyg/Olx3fCg/Olxc
W1xkYS1mXXsxLDZ9XHM/fFwuKSkoPzpbLVx3XXwoPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKlxz
Kik/XCkpKSspL2ksCisgICAgICAgIGFjdGlvbjogc2VsZWN0b3JBY3Rpb24sCisgICAgICAgIGxl
eFN0YXRlQ29uZGl0aW9uOiB0aGlzLkxleFN0YXRlLkluaXRpYWwKKyAgICB9LCB7CisgICAgICAg
IHBhdHRlcm46IHN0YXJ0QmxvY2tQYXR0ZXJuLAorICAgICAgICBhY3Rpb246IHN0YXJ0UnVsZXNl
dEJsb2NrQWN0aW9uLAorICAgICAgICBsZXhTdGF0ZUNvbmRpdGlvbjogdGhpcy5MZXhTdGF0ZS5J
bml0aWFsLAorICAgICAgICBkb250QXBwZW5kTm9uVG9rZW46IHRydWUKKyAgICB9LCB7CisgICAg
ICAgIHBhdHRlcm46IGlkZW50UGF0dGVybiwKKyAgICAgICAgYWN0aW9uOiBwcm9wZXJ0eUFjdGlv
biwKKyAgICAgICAgbGV4U3RhdGVDb25kaXRpb246IHRoaXMuTGV4U3RhdGUuRGVjbGFyYXRpb25Q
cm9wZXJ0eSwKKyAgICAgICAgZG9udEFwcGVuZE5vblRva2VuOiB0cnVlCisgICAgfSwgeworICAg
ICAgICBwYXR0ZXJuOiAvXjovaSwKKyAgICAgICAgYWN0aW9uOiBkZWNsYXJhdGlvbkNvbG9uQWN0
aW9uLAorICAgICAgICBsZXhTdGF0ZUNvbmRpdGlvbjogdGhpcy5MZXhTdGF0ZS5EZWNsYXJhdGlv
blByb3BlcnR5LAorICAgICAgICBkb250QXBwZW5kTm9uVG9rZW46IHRydWUKKyAgICB9LCB7Cisg
ICAgICAgIHBhdHRlcm46IC9eKD86Iyg/OltcZGEtZl17Nn18W1xkYS1mXXszfSl8cmdiYVwoXHMq
KD86XGQrfFxkKlwuXGQrKSU/XHMqLFxzKig/OlxkK3xcZCpcLlxkKyklP1xzKixccyooPzpcZCt8
XGQqXC5cZCspJT9ccyosXHMqKD86XGQrfFxkKlwuXGQrKSU/XHMqXCl8aHNsYVwoXHMqKD86XGQr
fFxkKlwuXGQrKSU/XHMqLFxzKig/OlxkK3xcZCpcLlxkKyklP1xzKixccyooPzpcZCt8XGQqXC5c
ZCspJT9ccyosXHMqKD86XGQrfFxkKlwuXGQrKSU/XHMqXCl8cmdiXChccyooPzpcZCt8XGQqXC5c
ZCspJT9ccyosXHMqKD86XGQrfFxkKlwuXGQrKSU/XHMqLFxzKig/OlxkK3xcZCpcLlxkKyklP1xz
KlwpfGhzbFwoXHMqKD86XGQrfFxkKlwuXGQrKSU/XHMqLFxzKig/OlxkK3xcZCpcLlxkKyklP1xz
KixccyooPzpcZCt8XGQqXC5cZCspJT9ccypcKSkvaSwKKyAgICAgICAgYWN0aW9uOiBjb2xvckFj
dGlvbiwKKyAgICAgICAgbGV4U3RhdGVDb25kaXRpb246IHRoaXMuTGV4U3RhdGUuRGVjbGFyYXRp
b25WYWx1ZQorICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjogL14oPzooPzpcZCt8XGQqXC5cZCsp
KD86ZW18cmVtfF9fcWVtfGV4fHB4fGNtfG1tfGlufHB0fHBjfGRlZ3xyYWR8Z3JhZHx0dXJufG1z
fHN8SHp8a0h6fCUpPykvaSwKKyAgICAgICAgYWN0aW9uOiBudW12YWx1ZUFjdGlvbiwKKyAgICAg
ICAgbGV4U3RhdGVDb25kaXRpb246IHRoaXMuTGV4U3RhdGUuRGVjbGFyYXRpb25WYWx1ZQorICAg
IH0sIHsKKyAgICAgICAgcGF0dGVybjogdXJsUGF0dGVybiwKKyAgICAgICAgYWN0aW9uOiB1cmxB
Y3Rpb24sCisgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0aGlzLkxleFN0YXRlLkRlY2xhcmF0
aW9uVmFsdWUKKyAgICB9LCB7CisgICAgICAgIHBhdHRlcm46IHN0cmluZ1BhdHRlcm4sCisgICAg
ICAgIGFjdGlvbjogc3RyaW5nQWN0aW9uLAorICAgICAgICBsZXhTdGF0ZUNvbmRpdGlvbjogdGhp
cy5MZXhTdGF0ZS5EZWNsYXJhdGlvblZhbHVlCisgICAgfSwgeworICAgICAgICBwYXR0ZXJuOiAv
XiFccyppbXBvcnRhbnQvaSwKKyAgICAgICAgYWN0aW9uOiBpbXBvcnRhbnRBY3Rpb24sCisgICAg
ICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0aGlzLkxleFN0YXRlLkRlY2xhcmF0aW9uVmFsdWUKKyAg
ICB9LCB7CisgICAgICAgIHBhdHRlcm46IGlkZW50UGF0dGVybiwKKyAgICAgICAgYWN0aW9uOiB2
YWx1ZUlkZW50QWN0aW9uLAorICAgICAgICBsZXhTdGF0ZUNvbmRpdGlvbjogdGhpcy5MZXhTdGF0
ZS5EZWNsYXJhdGlvblZhbHVlLAorICAgICAgICBkb250QXBwZW5kTm9uVG9rZW46IHRydWUKKyAg
ICB9LCB7CisgICAgICAgIHBhdHRlcm46IC9eOy9pLAorICAgICAgICBhY3Rpb246IGRlY2xhcmF0
aW9uU2VtaWNvbG9uQWN0aW9uLAorICAgICAgICBsZXhTdGF0ZUNvbmRpdGlvbjogdGhpcy5MZXhT
dGF0ZS5EZWNsYXJhdGlvblZhbHVlLAorICAgICAgICBkb250QXBwZW5kTm9uVG9rZW46IHRydWUK
KyAgICB9LCB7CisgICAgICAgIHBhdHRlcm46IGVuZEJsb2NrUGF0dGVybiwKKyAgICAgICAgYWN0
aW9uOiBlbmRSdWxlc2V0QmxvY2tBY3Rpb24sCisgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0
aGlzLkxleFN0YXRlLkRlY2xhcmF0aW9uUHJvcGVydHksCisgICAgICAgIGRvbnRBcHBlbmROb25U
b2tlbjogdHJ1ZQorICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjogZW5kQmxvY2tQYXR0ZXJuLAor
ICAgICAgICBhY3Rpb246IGVuZFJ1bGVzZXRCbG9ja0FjdGlvbiwKKyAgICAgICAgbGV4U3RhdGVD
b25kaXRpb246IHRoaXMuTGV4U3RhdGUuRGVjbGFyYXRpb25WYWx1ZSwKKyAgICAgICAgZG9udEFw
cGVuZE5vblRva2VuOiB0cnVlCisgICAgfSwgeworICAgICAgICBwYXR0ZXJuOiAvXkBtZWRpYS9p
LAorICAgICAgICBhY3Rpb246IGF0TWVkaWFBY3Rpb24sCisgICAgICAgIGxleFN0YXRlQ29uZGl0
aW9uOiB0aGlzLkxleFN0YXRlLkluaXRpYWwKKyAgICB9LCB7CisgICAgICAgIHBhdHRlcm46IHN0
YXJ0QmxvY2tQYXR0ZXJuLAorICAgICAgICBhY3Rpb246IHN0YXJ0QXRNZWRpYUJsb2NrQWN0aW9u
LAorICAgICAgICBsZXhTdGF0ZUNvbmRpdGlvbjogdGhpcy5MZXhTdGF0ZS5BdE1lZGlhLAorICAg
ICAgICBkb250QXBwZW5kTm9uVG9rZW46IHRydWUKKyAgICB9LCB7CisgICAgICAgIHBhdHRlcm46
IC9eQC13ZWJraXQta2V5ZnJhbWVzL2ksCisgICAgICAgIGFjdGlvbjogYXRLZXlmcmFtZXNBY3Rp
b24sCisgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0aGlzLkxleFN0YXRlLkluaXRpYWwKKyAg
ICB9LCB7CisgICAgICAgIHBhdHRlcm46IHN0YXJ0QmxvY2tQYXR0ZXJuLAorICAgICAgICBhY3Rp
b246IHN0YXJ0QXRNZWRpYUJsb2NrQWN0aW9uLAorICAgICAgICBsZXhTdGF0ZUNvbmRpdGlvbjog
dGhpcy5MZXhTdGF0ZS5BdEtleWZyYW1lcywKKyAgICAgICAgZG9udEFwcGVuZE5vblRva2VuOiB0
cnVlCisgICAgfSwgeworICAgICAgICBwYXR0ZXJuOiAvXkAtPyg/Olx3fCg/OlxcW1xkYS1mXXsx
LDZ9XHM/fFwuKSkoPzpbLVx3XXwoPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKi9pLAorICAgICAg
ICBhY3Rpb246IGF0UnVsZUFjdGlvbiwKKyAgICAgICAgbGV4U3RhdGVDb25kaXRpb246IHRoaXMu
TGV4U3RhdGUuSW5pdGlhbAorICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjogL147L2ksCisgICAg
ICAgIGFjdGlvbjogZW5kQXRSdWxlQWN0aW9uLAorICAgICAgICBsZXhTdGF0ZUNvbmRpdGlvbjog
dGhpcy5MZXhTdGF0ZS5BdFJ1bGUKKyAgICB9LCB7CisgICAgICAgIHBhdHRlcm46IHVybFBhdHRl
cm4sCisgICAgICAgIGFjdGlvbjogdXJsQWN0aW9uLAorICAgICAgICBsZXhTdGF0ZUNvbmRpdGlv
bjogdGhpcy5MZXhTdGF0ZS5BdFJ1bGUKKyAgICB9LCB7CisgICAgICAgIHBhdHRlcm46IHN0cmlu
Z1BhdHRlcm4sCisgICAgICAgIGFjdGlvbjogc3RyaW5nQWN0aW9uLAorICAgICAgICBsZXhTdGF0
ZUNvbmRpdGlvbjogdGhpcy5MZXhTdGF0ZS5BdFJ1bGUKKyAgICB9LCB7CisgICAgICAgIHBhdHRl
cm46IHN0cmluZ1BhdHRlcm4sCisgICAgICAgIGFjdGlvbjogc3RyaW5nQWN0aW9uLAorICAgICAg
ICBsZXhTdGF0ZUNvbmRpdGlvbjogdGhpcy5MZXhTdGF0ZS5BdEtleWZyYW1lcworICAgIH0sIHsK
KyAgICAgICAgcGF0dGVybjogaWRlbnRQYXR0ZXJuLAorICAgICAgICBhY3Rpb246IGF0UnVsZUlk
ZW50QWN0aW9uLAorICAgICAgICBsZXhTdGF0ZUNvbmRpdGlvbjogdGhpcy5MZXhTdGF0ZS5BdFJ1
bGUsCisgICAgICAgIGRvbnRBcHBlbmROb25Ub2tlbjogdHJ1ZQorICAgIH0sIHsKKyAgICAgICAg
cGF0dGVybjogaWRlbnRQYXR0ZXJuLAorICAgICAgICBhY3Rpb246IGF0UnVsZUlkZW50QWN0aW9u
LAorICAgICAgICBsZXhTdGF0ZUNvbmRpdGlvbjogdGhpcy5MZXhTdGF0ZS5BdE1lZGlhLAorICAg
ICAgICBkb250QXBwZW5kTm9uVG9rZW46IHRydWUKKyAgICB9LCB7CisgICAgICAgIHBhdHRlcm46
IHN0YXJ0QmxvY2tQYXR0ZXJuLAorICAgICAgICBhY3Rpb246IHN0YXJ0QXRSdWxlQmxvY2tBY3Rp
b24sCisgICAgICAgIGxleFN0YXRlQ29uZGl0aW9uOiB0aGlzLkxleFN0YXRlLkF0UnVsZSwKKyAg
ICAgICAgZG9udEFwcGVuZE5vblRva2VuOiB0cnVlCisgICAgfV07CisgICAgCisgICAgZnVuY3Rp
b24gY29tbWVudEFjdGlvbih0b2tlbikKICAgICB7Ci0gICAgICAgIGlmICghY2VsbCkKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgZGVsZXRlIGNlbGwuX2NvbW1lbnRDb250aW51ZXM7Ci0g
ICAgICAgIGRlbGV0ZSBjZWxsLl9pblNlbGVjdG9yOwotICAgIH0sCi0KLSAgICBmaW5kUHNldWRv
Q2xhc3M6IGZ1bmN0aW9uKHN0cikKKyAgICAgICAgdGhpcy5jdXJzb3IgKz0gdG9rZW4ubGVuZ3Ro
OworICAgICAgICB0aGlzLmxpbmVGcmFnbWVudC5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVNwYW4o
dG9rZW4sICJ3ZWJraXQtY3NzLWNvbW1lbnQiKSk7CisgICAgfQorICAgIAorICAgIGZ1bmN0aW9u
IGNvbW1lbnRTdGFydEFjdGlvbih0b2tlbikKICAgICB7Ci0gICAgICAgIHZhciBtYXRjaCA9IC9e
KDo6PykoW19hLXowLTldW19hLXowLTktXSopLy5leGVjKHN0cik7Ci0gICAgICAgIGlmICghbWF0
Y2gpCi0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgdGhpcy5wcmV2aW91c01hdGNo
TGVuZ3RoID0gbWF0Y2hbMF0ubGVuZ3RoOwotICAgICAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoInNwYW4iKTsKLSAgICAgICAgc3Bhbi5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZShtYXRjaFsxXSkpOwotICAgICAgICBzcGFuLmFwcGVuZENoaWxkKHRoaXMu
Y3JlYXRlU3BhbihtYXRjaFsyXSwgIndlYmtpdC1jc3MtcHNldWRvLWNsYXNzIikpOwotICAgICAg
ICByZXR1cm4gc3BhbjsKLSAgICB9LAotCi0gICAgZmluZFVSTDogZnVuY3Rpb24oc3RyKQorICAg
ICAgICB0aGlzLmN1cnNvciArPSB0b2tlbi5sZW5ndGg7CisgICAgICAgIHRoaXMubGluZUZyYWdt
ZW50LmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlU3Bhbih0b2tlbiwgIndlYmtpdC1jc3MtY29tbWVu
dCIpKTsKKyAgICAgICAgdGhpcy5jb250aW51ZVN0YXRlID0gdGhpcy5Db250aW51ZVN0YXRlLkNv
bW1lbnQ7CisgICAgfQorICAgIAorICAgIGZ1bmN0aW9uIGNvbW1lbnRFbmRBY3Rpb24odG9rZW4p
CiAgICAgewotICAgICAgICB2YXIgbWF0Y2ggPSAvXig/OmxvY2FsfHVybClcKChbXlwpXSo/KVwp
Ly5leGVjKHN0cik7Ci0gICAgICAgIGlmICghbWF0Y2gpCi0gICAgICAgICAgICByZXR1cm4gbnVs
bDsKLSAgICAgICAgdGhpcy5wcmV2aW91c01hdGNoTGVuZ3RoID0gbWF0Y2hbMF0ubGVuZ3RoOwot
ICAgICAgICB2YXIgaW5uZXJVcmxTcGFuID0gdGhpcy5jcmVhdGVTcGFuKG1hdGNoWzFdLCAid2Vi
a2l0LWNzcy11cmwiKTsKLSAgICAgICAgdmFyIG91dGVyU3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoInNwYW4iKTsKLSAgICAgICAgb3V0ZXJTcGFuLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRl
U3BhbigidXJsIiwgIndlYmtpdC1jc3Mta2V5d29yZCIpKTsKLSAgICAgICAgb3V0ZXJTcGFuLmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIoIikpOwotICAgICAgICBvdXRlclNw
YW4uYXBwZW5kQ2hpbGQoaW5uZXJVcmxTcGFuKTsKLSAgICAgICAgb3V0ZXJTcGFuLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIpIikpOwotICAgICAgICByZXR1cm4gb3V0ZXJT
cGFuOwotICAgIH0sCisgICAgICAgIHRoaXMuY3Vyc29yICs9IHRva2VuLmxlbmd0aDsKKyAgICAg
ICAgdGhpcy5saW5lRnJhZ21lbnQuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVTcGFuKHRva2VuLCAi
d2Via2l0LWNzcy1jb21tZW50IikpOworICAgICAgICB0aGlzLmNvbnRpbnVlU3RhdGUgPSB0aGlz
LkNvbnRpbnVlU3RhdGUuTm9uZTsKKyAgICB9CiAKLSAgICBmaW5kQXRSdWxlOiBmdW5jdGlvbihz
dHIpCisgICAgZnVuY3Rpb24gY29tbWVudE1pZGRsZUFjdGlvbih0b2tlbikKICAgICB7Ci0gICAg
ICAgIHZhciBtYXRjaCA9IC9eQFtfYS16MC05XVtfYS16MC05LV0qKD86XFd8JCkvLmV4ZWMoc3Ry
KTsKLSAgICAgICAgaWYgKCFtYXRjaCkKLSAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAg
ICB0aGlzLnByZXZpb3VzTWF0Y2hMZW5ndGggPSBtYXRjaFswXS5sZW5ndGg7Ci0gICAgICAgIHJl
dHVybiB0aGlzLmNyZWF0ZVNwYW4obWF0Y2hbMF0sICJ3ZWJraXQtY3NzLWF0LXJ1bGUiKTsKLSAg
ICB9LAotCi0gICAgc3ludGF4SGlnaGxpZ2h0TGluZTogZnVuY3Rpb24obGluZSwgcHJldkxpbmUp
CisgICAgICAgIHRoaXMuY3Vyc29yICs9IHRva2VuLmxlbmd0aDsKKyAgICAgICAgdGhpcy5saW5l
RnJhZ21lbnQuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVTcGFuKHRva2VuLCAid2Via2l0LWNzcy1j
b21tZW50IikpOworICAgIH0KKyAgICAKKyAgICBmdW5jdGlvbiBzZWxlY3RvckFjdGlvbih0b2tl
bikKICAgICB7Ci0gICAgICAgIHZhciBjb2RlID0gbGluZS50ZXh0Q29udGVudDsKLSAgICAgICAg
d2hpbGUgKGxpbmUuZmlyc3RDaGlsZCkKLSAgICAgICAgICAgIGxpbmUucmVtb3ZlQ2hpbGQobGlu
ZS5maXJzdENoaWxkKTsKLQotICAgICAgICB2YXIgdG9rZW47Ci0gICAgICAgIHZhciB0bXAgPSAw
OwotICAgICAgICB2YXIgaSA9IDA7Ci0gICAgICAgIHRoaXMucHJldmlvdXNNYXRjaExlbmd0aCA9
IDA7Ci0KLSAgICAgICAgaWYgKHByZXZMaW5lKSB7Ci0gICAgICAgICAgICBpZiAocHJldkxpbmUu
X2NvbW1lbnRDb250aW51ZXMpIHsKLSAgICAgICAgICAgICAgICBpZiAoISh0b2tlbiA9IHRoaXMu
ZmluZE11bHRpbGluZUNvbW1lbnRFbmQoY29kZSkpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRv
a2VuID0gdGhpcy5jcmVhdGVTcGFuKGNvZGUsICJ3ZWJraXQtamF2YXNjcmlwdC1jb21tZW50Iik7
Ci0gICAgICAgICAgICAgICAgICAgIGxpbmUuX2NvbW1lbnRDb250aW51ZXMgPSB0cnVlOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICh0b2tlbikgewot
ICAgICAgICAgICAgICAgIGkgKz0gdGhpcy5wcmV2aW91c01hdGNoTGVuZ3RoID8gdGhpcy5wcmV2
aW91c01hdGNoTGVuZ3RoIDogY29kZS5sZW5ndGg7Ci0gICAgICAgICAgICAgICAgdG1wID0gaTsK
LSAgICAgICAgICAgICAgICBsaW5lLmFwcGVuZENoaWxkKHRva2VuKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgfQotCi0gICAgICAgIHZhciBpblNlbGVjdG9yID0gKHByZXZMaW5lICYmIHByZXZM
aW5lLl9pblNlbGVjdG9yKTsgLy8gaW5zaWRlIGEgc2VsZWN0b3IsIHdlIGNhbiBub3cgcGFyc2Ug
cHJvcGVydGllcyBhbmQgdmFsdWVzCi0gICAgICAgIHZhciBpbkF0UnVsZUJsb2NrID0gKHByZXZM
aW5lICYmIHByZXZMaW5lLl9pbkF0UnVsZUJsb2NrKTsgLy8gaW5zaWRlIGFuIEBydWxlIGJsb2Nr
LCBidXQgbm90IG5lY2Vzc2FyaWx5IGluc2lkZSBhIHNlbGVjdG9yIHlldAotICAgICAgICB2YXIg
YXRSdWxlU3RhcnRlZCA9IChwcmV2TGluZSAmJiBwcmV2TGluZS5fYXRSdWxlU3RhcnRlZCk7IC8v
IHdlIHJlY2VpdmVkIGFuIEBydWxlLCB3ZSBtYXkgc3RvcCB0aGUgQHJ1bGUgYXQgYSBzZW1pY29s
b24gb3Igb3BlbiBhIGJsb2NrIGFuZCBiZWNvbWUgaW5BdFJ1bGVCbG9jawotICAgICAgICB2YXIg
YXRSdWxlSXNTZWxlY3RvciA9IChwcmV2TGluZSAmJiBwcmV2TGluZS5fYXRSdWxlSXNTZWxlY3Rv
cik7IC8vIHdoZW4gdGhpcyBAcnVsZSBvcGVucyBhIGJsb2NrIGl0IGltbWVkaWF0ZWx5IGdvZXMg
aW50byBwYXJzaW5nIHByb3BlcnRpZXMgYW5kIHZhbHVlcyBpbnN0ZWFkIG9mIHNlbGVjdG9ycwot
Ci0gICAgICAgIGZvciAoIDsgaSA8IGNvZGUubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIHZh
ciBjb2RlRnJhZ21lbnQgPSBjb2RlLnN1YnN0cihpKTsKLSAgICAgICAgICAgIHZhciBwcmV2Q2hh
ciA9IGNvZGVbaSAtIDFdOwotICAgICAgICAgICAgdmFyIGN1cnJDaGFyID0gY29kZUZyYWdtZW50
WzBdOwotICAgICAgICAgICAgdG9rZW4gPSB0aGlzLmZpbmRTaW5nbGVMaW5lQ29tbWVudChjb2Rl
RnJhZ21lbnQpOwotICAgICAgICAgICAgaWYgKCF0b2tlbikgewotICAgICAgICAgICAgICAgIGlm
ICgodG9rZW4gPSB0aGlzLmZpbmRNdWx0aWxpbmVDb21tZW50U3RhcnQoY29kZUZyYWdtZW50KSkp
Ci0gICAgICAgICAgICAgICAgICAgIGxpbmUuX2NvbW1lbnRDb250aW51ZXMgPSB0cnVlOwotICAg
ICAgICAgICAgICAgIGVsc2UgaWYgKGN1cnJDaGFyID09PSAiOyIgJiYgIWluQXRSdWxlQmxvY2sp
Ci0gICAgICAgICAgICAgICAgICAgIGF0UnVsZVN0YXJ0ZWQgPSBmYWxzZTsKLSAgICAgICAgICAg
ICAgICBlbHNlIGlmIChjdXJyQ2hhciA9PT0gIn0iKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlm
IChpblNlbGVjdG9yICYmIGluQXRSdWxlQmxvY2sgJiYgYXRSdWxlSXNTZWxlY3RvcikgewotICAg
ICAgICAgICAgICAgICAgICAgICAgaW5TZWxlY3RvciA9IGZhbHNlOwotICAgICAgICAgICAgICAg
ICAgICAgICAgaW5BdFJ1bGVCbG9jayA9IGZhbHNlOwotICAgICAgICAgICAgICAgICAgICAgICAg
YXRSdWxlU3RhcnRlZCA9IGZhbHNlOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlu
U2VsZWN0b3IpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGluU2VsZWN0b3IgPSBmYWxzZTsK
LSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbkF0UnVsZUJsb2NrKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBpbkF0UnVsZUJsb2NrID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBhdFJ1bGVTdGFydGVkID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICB9IGVsc2UgaWYgKGN1cnJDaGFyID09PSAieyIpIHsKLSAgICAgICAgICAg
ICAgICAgICAgaWYgKCFhdFJ1bGVTdGFydGVkIHx8IGluQXRSdWxlQmxvY2spIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGluU2VsZWN0b3IgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICB9
IGVsc2UgaWYgKCFpbkF0UnVsZUJsb2NrICYmIGF0UnVsZUlzU2VsZWN0b3IpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGluQXRSdWxlQmxvY2sgPSB0cnVlOwotICAgICAgICAgICAgICAgICAg
ICAgICAgaW5TZWxlY3RvciA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAo
IWluQXRSdWxlQmxvY2spIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGluQXRSdWxlQmxvY2sg
PSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgaW5TZWxlY3RvciA9IGZhbHNlOwotICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpblNlbGVjdG9y
KSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghcHJldkNoYXIgfHwgL15cZC8udGVzdChwcmV2
Q2hhcikpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuID0gdGhpcy5maW5kVW5pdHMo
Y29kZUZyYWdtZW50KTsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghcHJldkNoYXIg
fHwgL15cVy8udGVzdChwcmV2Q2hhcikpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRva2Vu
ID0gdGhpcy5maW5kTnVtYmVyKGNvZGVGcmFnbWVudCkgfHwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGhpcy5maW5kS2V5d29yZChjb2RlRnJhZ21lbnQpIHx8Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmluZFVSTChjb2RlRnJhZ21lbnQpIHx8Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmluZFByb3BlcnR5KGNvZGVGcmFnbWVu
dCkgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maW5kQXRSdWxlKGNv
ZGVGcmFnbWVudCkgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maW5k
R2VuZXJpY0lkZW50KGNvZGVGcmFnbWVudCkgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGhpcy5maW5kU2luZ2xlTGluZVN0cmluZyhjb2RlRnJhZ21lbnQpOwotICAgICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmICghaW5TZWxlY3Rvcikgewot
ICAgICAgICAgICAgICAgICAgICBpZiAoYXRSdWxlU3RhcnRlZCAmJiAhaW5BdFJ1bGVCbG9jaykK
LSAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuID0gdGhpcy5maW5kVVJMKGNvZGVGcmFnbWVu
dCk7IC8vIGZvciBAaW1wb3J0Ci0gICAgICAgICAgICAgICAgICAgIGlmICghdG9rZW4pIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHRva2VuID0gdGhpcy5maW5kU2VsZWN0b3IoY29kZUZyYWdt
ZW50KSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbmRQc2V1ZG9D
bGFzcyhjb2RlRnJhZ21lbnQpIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRo
aXMuZmluZEF0UnVsZShjb2RlRnJhZ21lbnQpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgfQorICAgICAgICB0aGlzLmN1cnNvciArPSB0b2tl
bi5sZW5ndGg7CisgICAgICAgIHRoaXMubGluZUZyYWdtZW50LmFwcGVuZENoaWxkKHRoaXMuY3Jl
YXRlU3Bhbih0b2tlbiwgIndlYmtpdC1jc3Mtc2VsZWN0b3IiKSk7CisgICAgfQorICAgIAorICAg
IGZ1bmN0aW9uIHN0YXJ0UnVsZXNldEJsb2NrQWN0aW9uKHRva2VuKQorICAgIHsKKyAgICAgICAg
dGhpcy5jdXJzb3IgKz0gdG9rZW4ubGVuZ3RoOworICAgICAgICB0aGlzLm5vblRva2VuICs9IHRv
a2VuOworICAgICAgICB0aGlzLmxleFN0YXRlID0gdGhpcy5MZXhTdGF0ZS5EZWNsYXJhdGlvblBy
b3BlcnR5OworICAgIH0KKyAgICAKKyAgICBmdW5jdGlvbiBlbmRSdWxlc2V0QmxvY2tBY3Rpb24o
dG9rZW4pCisgICAgeworICAgICAgICB0aGlzLmN1cnNvciArPSB0b2tlbi5sZW5ndGg7CisgICAg
ICAgIHRoaXMubm9uVG9rZW4gKz0gdG9rZW47CisgICAgICAgIHRoaXMubGV4U3RhdGUgPSB0aGlz
LkxleFN0YXRlLkluaXRpYWw7CisgICAgfQorICAgIAorICAgIGNvbnN0IHByb3BlcnR5S2V5d29y
ZHMgPSB7CisgICAgICAgICJiYWNrZ3JvdW5kIjogdHJ1ZSwKKyAgICAgICAgImJhY2tncm91bmQt
YXR0YWNobWVudCI6IHRydWUsCisgICAgICAgICJiYWNrZ3JvdW5kLWNsaXAiOiB0cnVlLAorICAg
ICAgICAiYmFja2dyb3VuZC1jb2xvciI6IHRydWUsCisgICAgICAgICJiYWNrZ3JvdW5kLWltYWdl
IjogdHJ1ZSwKKyAgICAgICAgImJhY2tncm91bmQtb3JpZ2luIjogdHJ1ZSwKKyAgICAgICAgImJh
Y2tncm91bmQtcG9zaXRpb24iOiB0cnVlLAorICAgICAgICAiYmFja2dyb3VuZC1wb3NpdGlvbi14
IjogdHJ1ZSwKKyAgICAgICAgImJhY2tncm91bmQtcG9zaXRpb24teSI6IHRydWUsCisgICAgICAg
ICJiYWNrZ3JvdW5kLXJlcGVhdCI6IHRydWUsCisgICAgICAgICJiYWNrZ3JvdW5kLXJlcGVhdC14
IjogdHJ1ZSwKKyAgICAgICAgImJhY2tncm91bmQtcmVwZWF0LXkiOiB0cnVlLAorICAgICAgICAi
YmFja2dyb3VuZC1zaXplIjogdHJ1ZSwKKyAgICAgICAgImJvcmRlciI6IHRydWUsCisgICAgICAg
ICJib3JkZXItYm90dG9tIjogdHJ1ZSwKKyAgICAgICAgImJvcmRlci1ib3R0b20tY29sb3IiOiB0
cnVlLAorICAgICAgICAiYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cyI6IHRydWUsCisgICAgICAg
ICJib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cyI6IHRydWUsCisgICAgICAgICJib3JkZXItYm90
dG9tLXN0eWxlIjogdHJ1ZSwKKyAgICAgICAgImJvcmRlci1ib3R0b20td2lkdGgiOiB0cnVlLAor
ICAgICAgICAiYm9yZGVyLWNvbGxhcHNlIjogdHJ1ZSwKKyAgICAgICAgImJvcmRlci1jb2xvciI6
IHRydWUsCisgICAgICAgICJib3JkZXItbGVmdCI6IHRydWUsCisgICAgICAgICJib3JkZXItbGVm
dC1jb2xvciI6IHRydWUsCisgICAgICAgICJib3JkZXItbGVmdC1zdHlsZSI6IHRydWUsCisgICAg
ICAgICJib3JkZXItbGVmdC13aWR0aCI6IHRydWUsCisgICAgICAgICJib3JkZXItcmFkaXVzIjog
dHJ1ZSwKKyAgICAgICAgImJvcmRlci1yaWdodCI6IHRydWUsCisgICAgICAgICJib3JkZXItcmln
aHQtY29sb3IiOiB0cnVlLAorICAgICAgICAiYm9yZGVyLXJpZ2h0LXN0eWxlIjogdHJ1ZSwKKyAg
ICAgICAgImJvcmRlci1yaWdodC13aWR0aCI6IHRydWUsCisgICAgICAgICJib3JkZXItc3BhY2lu
ZyI6IHRydWUsCisgICAgICAgICJib3JkZXItc3R5bGUiOiB0cnVlLAorICAgICAgICAiYm9yZGVy
LXRvcCI6IHRydWUsCisgICAgICAgICJib3JkZXItdG9wLWNvbG9yIjogdHJ1ZSwKKyAgICAgICAg
ImJvcmRlci10b3AtbGVmdC1yYWRpdXMiOiB0cnVlLAorICAgICAgICAiYm9yZGVyLXRvcC1yaWdo
dC1yYWRpdXMiOiB0cnVlLAorICAgICAgICAiYm9yZGVyLXRvcC1zdHlsZSI6IHRydWUsCisgICAg
ICAgICJib3JkZXItdG9wLXdpZHRoIjogdHJ1ZSwKKyAgICAgICAgImJvcmRlci13aWR0aCI6IHRy
dWUsCisgICAgICAgICJib3R0b20iOiB0cnVlLAorICAgICAgICAiY2FwdGlvbi1zaWRlIjogdHJ1
ZSwKKyAgICAgICAgImNsZWFyIjogdHJ1ZSwKKyAgICAgICAgImNsaXAiOiB0cnVlLAorICAgICAg
ICAiY29sb3IiOiB0cnVlLAorICAgICAgICAiY29udGVudCI6IHRydWUsCisgICAgICAgICJjb3Vu
dGVyLWluY3JlbWVudCI6IHRydWUsCisgICAgICAgICJjb3VudGVyLXJlc2V0IjogdHJ1ZSwKKyAg
ICAgICAgImN1cnNvciI6IHRydWUsCisgICAgICAgICJkaXJlY3Rpb24iOiB0cnVlLAorICAgICAg
ICAiZGlzcGxheSI6IHRydWUsCisgICAgICAgICJlbXB0eS1jZWxscyI6IHRydWUsCisgICAgICAg
ICJmbG9hdCI6IHRydWUsCisgICAgICAgICJmb250IjogdHJ1ZSwKKyAgICAgICAgImZvbnQtZmFt
aWx5IjogdHJ1ZSwKKyAgICAgICAgImZvbnQtc2l6ZSI6IHRydWUsCisgICAgICAgICJmb250LXN0
cmV0Y2giOiB0cnVlLAorICAgICAgICAiZm9udC1zdHlsZSI6IHRydWUsCisgICAgICAgICJmb250
LXZhcmlhbnQiOiB0cnVlLAorICAgICAgICAiZm9udC13ZWlnaHQiOiB0cnVlLAorICAgICAgICAi
aGVpZ2h0IjogdHJ1ZSwKKyAgICAgICAgImxlZnQiOiB0cnVlLAorICAgICAgICAibGV0dGVyLXNw
YWNpbmciOiB0cnVlLAorICAgICAgICAibGluZS1oZWlnaHQiOiB0cnVlLAorICAgICAgICAibGlz
dC1zdHlsZSI6IHRydWUsCisgICAgICAgICJsaXN0LXN0eWxlLWltYWdlIjogdHJ1ZSwKKyAgICAg
ICAgImxpc3Qtc3R5bGUtcG9zaXRpb24iOiB0cnVlLAorICAgICAgICAibGlzdC1zdHlsZS10eXBl
IjogdHJ1ZSwKKyAgICAgICAgIm1hcmdpbiI6IHRydWUsCisgICAgICAgICJtYXJnaW4tYm90dG9t
IjogdHJ1ZSwKKyAgICAgICAgIm1hcmdpbi1sZWZ0IjogdHJ1ZSwKKyAgICAgICAgIm1hcmdpbi1y
aWdodCI6IHRydWUsCisgICAgICAgICJtYXJnaW4tdG9wIjogdHJ1ZSwKKyAgICAgICAgIm1heC1o
ZWlnaHQiOiB0cnVlLAorICAgICAgICAibWF4LXdpZHRoIjogdHJ1ZSwKKyAgICAgICAgIm1pbi1o
ZWlnaHQiOiB0cnVlLAorICAgICAgICAibWluLXdpZHRoIjogdHJ1ZSwKKyAgICAgICAgIm9wYWNp
dHkiOiB0cnVlLAorICAgICAgICAib3JwaGFucyI6IHRydWUsCisgICAgICAgICJvdXRsaW5lIjog
dHJ1ZSwKKyAgICAgICAgIm91dGxpbmUtY29sb3IiOiB0cnVlLAorICAgICAgICAib3V0bGluZS1v
ZmZzZXQiOiB0cnVlLAorICAgICAgICAib3V0bGluZS1zdHlsZSI6IHRydWUsCisgICAgICAgICJv
dXRsaW5lLXdpZHRoIjogdHJ1ZSwKKyAgICAgICAgIm92ZXJmbG93IjogdHJ1ZSwKKyAgICAgICAg
Im92ZXJmbG93LXgiOiB0cnVlLAorICAgICAgICAib3ZlcmZsb3cteSI6IHRydWUsCisgICAgICAg
ICJwYWRkaW5nIjogdHJ1ZSwKKyAgICAgICAgInBhZGRpbmctYm90dG9tIjogdHJ1ZSwKKyAgICAg
ICAgInBhZGRpbmctbGVmdCI6IHRydWUsCisgICAgICAgICJwYWRkaW5nLXJpZ2h0IjogdHJ1ZSwK
KyAgICAgICAgInBhZGRpbmctdG9wIjogdHJ1ZSwKKyAgICAgICAgInBhZ2UiOiB0cnVlLAorICAg
ICAgICAicGFnZS1icmVhay1hZnRlciI6IHRydWUsCisgICAgICAgICJwYWdlLWJyZWFrLWJlZm9y
ZSI6IHRydWUsCisgICAgICAgICJwYWdlLWJyZWFrLWluc2lkZSI6IHRydWUsCisgICAgICAgICJw
b2ludGVyLWV2ZW50cyI6IHRydWUsCisgICAgICAgICJwb3NpdGlvbiI6IHRydWUsCisgICAgICAg
ICJxdW90ZXMiOiB0cnVlLAorICAgICAgICAicmVzaXplIjogdHJ1ZSwKKyAgICAgICAgInJpZ2h0
IjogdHJ1ZSwKKyAgICAgICAgInNpemUiOiB0cnVlLAorICAgICAgICAic3JjIjogdHJ1ZSwKKyAg
ICAgICAgInRhYmxlLWxheW91dCI6IHRydWUsCisgICAgICAgICJ0ZXh0LWFsaWduIjogdHJ1ZSwK
KyAgICAgICAgInRleHQtZGVjb3JhdGlvbiI6IHRydWUsCisgICAgICAgICJ0ZXh0LWluZGVudCI6
IHRydWUsCisgICAgICAgICJ0ZXh0LWxpbmUtdGhyb3VnaCI6IHRydWUsCisgICAgICAgICJ0ZXh0
LWxpbmUtdGhyb3VnaC1jb2xvciI6IHRydWUsCisgICAgICAgICJ0ZXh0LWxpbmUtdGhyb3VnaC1t
b2RlIjogdHJ1ZSwKKyAgICAgICAgInRleHQtbGluZS10aHJvdWdoLXN0eWxlIjogdHJ1ZSwKKyAg
ICAgICAgInRleHQtbGluZS10aHJvdWdoLXdpZHRoIjogdHJ1ZSwKKyAgICAgICAgInRleHQtb3Zl
cmZsb3ciOiB0cnVlLAorICAgICAgICAidGV4dC1vdmVybGluZSI6IHRydWUsCisgICAgICAgICJ0
ZXh0LW92ZXJsaW5lLWNvbG9yIjogdHJ1ZSwKKyAgICAgICAgInRleHQtb3ZlcmxpbmUtbW9kZSI6
IHRydWUsCisgICAgICAgICJ0ZXh0LW92ZXJsaW5lLXN0eWxlIjogdHJ1ZSwKKyAgICAgICAgInRl
eHQtb3ZlcmxpbmUtd2lkdGgiOiB0cnVlLAorICAgICAgICAidGV4dC1yZW5kZXJpbmciOiB0cnVl
LAorICAgICAgICAidGV4dC1zaGFkb3ciOiB0cnVlLAorICAgICAgICAidGV4dC10cmFuc2Zvcm0i
OiB0cnVlLAorICAgICAgICAidGV4dC11bmRlcmxpbmUiOiB0cnVlLAorICAgICAgICAidGV4dC11
bmRlcmxpbmUtY29sb3IiOiB0cnVlLAorICAgICAgICAidGV4dC11bmRlcmxpbmUtbW9kZSI6IHRy
dWUsCisgICAgICAgICJ0ZXh0LXVuZGVybGluZS1zdHlsZSI6IHRydWUsCisgICAgICAgICJ0ZXh0
LXVuZGVybGluZS13aWR0aCI6IHRydWUsCisgICAgICAgICJ0b3AiOiB0cnVlLAorICAgICAgICAi
dW5pY29kZS1iaWRpIjogdHJ1ZSwKKyAgICAgICAgInVuaWNvZGUtcmFuZ2UiOiB0cnVlLAorICAg
ICAgICAidmVydGljYWwtYWxpZ24iOiB0cnVlLAorICAgICAgICAidmlzaWJpbGl0eSI6IHRydWUs
CisgICAgICAgICJ3aGl0ZS1zcGFjZSI6IHRydWUsCisgICAgICAgICJ3aWRvd3MiOiB0cnVlLAor
ICAgICAgICAid2lkdGgiOiB0cnVlLAorICAgICAgICAid29yZC1icmVhayI6IHRydWUsCisgICAg
ICAgICJ3b3JkLXNwYWNpbmciOiB0cnVlLAorICAgICAgICAid29yZC13cmFwIjogdHJ1ZSwKKyAg
ICAgICAgInotaW5kZXgiOiB0cnVlLAorICAgICAgICAiem9vbSI6IHRydWUsCisgICAgICAgICIt
d2Via2l0LWFuaW1hdGlvbiI6IHRydWUsCisgICAgICAgICItd2Via2l0LWFuaW1hdGlvbi1kZWxh
eSI6IHRydWUsCisgICAgICAgICItd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb24iOiB0cnVlLAor
ICAgICAgICAiLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb24iOiB0cnVlLAorICAgICAgICAiLXdl
YmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50IjogdHJ1ZSwKKyAgICAgICAgIi13ZWJraXQt
YW5pbWF0aW9uLW5hbWUiOiB0cnVlLAorICAgICAgICAiLXdlYmtpdC1hbmltYXRpb24tcGxheS1z
dGF0ZSI6IHRydWUsCisgICAgICAgICItd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24i
OiB0cnVlLAorICAgICAgICAiLXdlYmtpdC1hcHBlYXJhbmNlIjogdHJ1ZSwKKyAgICAgICAgIi13
ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eSI6IHRydWUsCisgICAgICAgICItd2Via2l0LWJhY2tn
cm91bmQtY2xpcCI6IHRydWUsCisgICAgICAgICItd2Via2l0LWJhY2tncm91bmQtY29tcG9zaXRl
IjogdHJ1ZSwKKyAgICAgICAgIi13ZWJraXQtYmFja2dyb3VuZC1vcmlnaW4iOiB0cnVlLAorICAg
ICAgICAiLXdlYmtpdC1iYWNrZ3JvdW5kLXNpemUiOiB0cnVlLAorICAgICAgICAiLXdlYmtpdC1i
aW5kaW5nIjogdHJ1ZSwKKyAgICAgICAgIi13ZWJraXQtYm9yZGVyLWZpdCI6IHRydWUsCisgICAg
ICAgICItd2Via2l0LWJvcmRlci1ob3Jpem9udGFsLXNwYWNpbmciOiB0cnVlLAorICAgICAgICAi
LXdlYmtpdC1ib3JkZXItaW1hZ2UiOiB0cnVlLAorICAgICAgICAiLXdlYmtpdC1ib3JkZXItcmFk
aXVzIjogdHJ1ZSwKKyAgICAgICAgIi13ZWJraXQtYm9yZGVyLXZlcnRpY2FsLXNwYWNpbmciOiB0
cnVlLAorICAgICAgICAiLXdlYmtpdC1ib3gtYWxpZ24iOiB0cnVlLAorICAgICAgICAiLXdlYmtp
dC1ib3gtZGlyZWN0aW9uIjogdHJ1ZSwKKyAgICAgICAgIi13ZWJraXQtYm94LWZsZXgiOiB0cnVl
LAorICAgICAgICAiLXdlYmtpdC1ib3gtZmxleC1ncm91cCI6IHRydWUsCisgICAgICAgICItd2Vi
a2l0LWJveC1saW5lcyI6IHRydWUsCisgICAgICAgICItd2Via2l0LWJveC1vcmRpbmFsLWdyb3Vw
IjogdHJ1ZSwKKyAgICAgICAgIi13ZWJraXQtYm94LW9yaWVudCI6IHRydWUsCisgICAgICAgICIt
d2Via2l0LWJveC1wYWNrIjogdHJ1ZSwKKyAgICAgICAgIi13ZWJraXQtYm94LXJlZmxlY3QiOiB0
cnVlLAorICAgICAgICAiLXdlYmtpdC1ib3gtc2hhZG93IjogdHJ1ZSwKKyAgICAgICAgIi13ZWJr
aXQtYm94LXNpemluZyI6IHRydWUsCisgICAgICAgICItd2Via2l0LWNvbHVtbi1icmVhay1hZnRl
ciI6IHRydWUsCisgICAgICAgICItd2Via2l0LWNvbHVtbi1icmVhay1iZWZvcmUiOiB0cnVlLAor
ICAgICAgICAiLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlIjogdHJ1ZSwKKyAgICAgICAgIi13
ZWJraXQtY29sdW1uLWNvdW50IjogdHJ1ZSwKKyAgICAgICAgIi13ZWJraXQtY29sdW1uLWdhcCI6
IHRydWUsCisgICAgICAgICItd2Via2l0LWNvbHVtbi1ydWxlIjogdHJ1ZSwKKyAgICAgICAgIi13
ZWJraXQtY29sdW1uLXJ1bGUtY29sb3IiOiB0cnVlLAorICAgICAgICAiLXdlYmtpdC1jb2x1bW4t
cnVsZS1zdHlsZSI6IHRydWUsCisgICAgICAgICItd2Via2l0LWNvbHVtbi1ydWxlLXdpZHRoIjog
dHJ1ZSwKKyAgICAgICAgIi13ZWJraXQtY29sdW1uLXdpZHRoIjogdHJ1ZSwKKyAgICAgICAgIi13
ZWJraXQtY29sdW1ucyI6IHRydWUsCisgICAgICAgICItd2Via2l0LWZvbnQtc2l6ZS1kZWx0YSI6
IHRydWUsCisgICAgICAgICItd2Via2l0LWZvbnQtc21vb3RoaW5nIjogdHJ1ZSwKKyAgICAgICAg
Ii13ZWJraXQtaGlnaGxpZ2h0IjogdHJ1ZSwKKyAgICAgICAgIi13ZWJraXQtbGluZS1icmVhayI6
IHRydWUsCisgICAgICAgICItd2Via2l0LWxpbmUtY2xhbXAiOiB0cnVlLAorICAgICAgICAiLXdl
YmtpdC1tYXJnaW4tYm90dG9tLWNvbGxhcHNlIjogdHJ1ZSwKKyAgICAgICAgIi13ZWJraXQtbWFy
Z2luLWNvbGxhcHNlIjogdHJ1ZSwKKyAgICAgICAgIi13ZWJraXQtbWFyZ2luLXN0YXJ0IjogdHJ1
ZSwKKyAgICAgICAgIi13ZWJraXQtbWFyZ2luLXRvcC1jb2xsYXBzZSI6IHRydWUsCisgICAgICAg
ICItd2Via2l0LW1hcnF1ZWUiOiB0cnVlLAorICAgICAgICAiLXdlYmtpdC1tYXJxdWVlLWRpcmVj
dGlvbiI6IHRydWUsCisgICAgICAgICItd2Via2l0LW1hcnF1ZWUtaW5jcmVtZW50IjogdHJ1ZSwK
KyAgICAgICAgIi13ZWJraXQtbWFycXVlZS1yZXBldGl0aW9uIjogdHJ1ZSwKKyAgICAgICAgIi13
ZWJraXQtbWFycXVlZS1zcGVlZCI6IHRydWUsCisgICAgICAgICItd2Via2l0LW1hcnF1ZWUtc3R5
bGUiOiB0cnVlLAorICAgICAgICAiLXdlYmtpdC1tYXNrIjogdHJ1ZSwKKyAgICAgICAgIi13ZWJr
aXQtbWFzay1hdHRhY2htZW50IjogdHJ1ZSwKKyAgICAgICAgIi13ZWJraXQtbWFzay1ib3gtaW1h
Z2UiOiB0cnVlLAorICAgICAgICAiLXdlYmtpdC1tYXNrLWNsaXAiOiB0cnVlLAorICAgICAgICAi
LXdlYmtpdC1tYXNrLWNvbXBvc2l0ZSI6IHRydWUsCisgICAgICAgICItd2Via2l0LW1hc2staW1h
Z2UiOiB0cnVlLAorICAgICAgICAiLXdlYmtpdC1tYXNrLW9yaWdpbiI6IHRydWUsCisgICAgICAg
ICItd2Via2l0LW1hc2stcG9zaXRpb24iOiB0cnVlLAorICAgICAgICAiLXdlYmtpdC1tYXNrLXBv
c2l0aW9uLXgiOiB0cnVlLAorICAgICAgICAiLXdlYmtpdC1tYXNrLXBvc2l0aW9uLXkiOiB0cnVl
LAorICAgICAgICAiLXdlYmtpdC1tYXNrLXJlcGVhdCI6IHRydWUsCisgICAgICAgICItd2Via2l0
LW1hc2stcmVwZWF0LXgiOiB0cnVlLAorICAgICAgICAiLXdlYmtpdC1tYXNrLXJlcGVhdC15Ijog
dHJ1ZSwKKyAgICAgICAgIi13ZWJraXQtbWFzay1zaXplIjogdHJ1ZSwKKyAgICAgICAgIi13ZWJr
aXQtbWF0Y2gtbmVhcmVzdC1tYWlsLWJsb2NrcXVvdGUtY29sb3IiOiB0cnVlLAorICAgICAgICAi
LXdlYmtpdC1uYnNwLW1vZGUiOiB0cnVlLAorICAgICAgICAiLXdlYmtpdC1wYWRkaW5nLXN0YXJ0
IjogdHJ1ZSwKKyAgICAgICAgIi13ZWJraXQtcGVyc3BlY3RpdmUiOiB0cnVlLAorICAgICAgICAi
LXdlYmtpdC1wZXJzcGVjdGl2ZS1vcmlnaW4iOiB0cnVlLAorICAgICAgICAiLXdlYmtpdC1wZXJz
cGVjdGl2ZS1vcmlnaW4teCI6IHRydWUsCisgICAgICAgICItd2Via2l0LXBlcnNwZWN0aXZlLW9y
aWdpbi15IjogdHJ1ZSwKKyAgICAgICAgIi13ZWJraXQtcnRsLW9yZGVyaW5nIjogdHJ1ZSwKKyAg
ICAgICAgIi13ZWJraXQtdGV4dC1kZWNvcmF0aW9ucy1pbi1lZmZlY3QiOiB0cnVlLAorICAgICAg
ICAiLXdlYmtpdC10ZXh0LWZpbGwtY29sb3IiOiB0cnVlLAorICAgICAgICAiLXdlYmtpdC10ZXh0
LXNlY3VyaXR5IjogdHJ1ZSwKKyAgICAgICAgIi13ZWJraXQtdGV4dC1zaXplLWFkanVzdCI6IHRy
dWUsCisgICAgICAgICItd2Via2l0LXRleHQtc3Ryb2tlIjogdHJ1ZSwKKyAgICAgICAgIi13ZWJr
aXQtdGV4dC1zdHJva2UtY29sb3IiOiB0cnVlLAorICAgICAgICAiLXdlYmtpdC10ZXh0LXN0cm9r
ZS13aWR0aCI6IHRydWUsCisgICAgICAgICItd2Via2l0LXRyYW5zZm9ybSI6IHRydWUsCisgICAg
ICAgICItd2Via2l0LXRyYW5zZm9ybS1vcmlnaW4iOiB0cnVlLAorICAgICAgICAiLXdlYmtpdC10
cmFuc2Zvcm0tb3JpZ2luLXgiOiB0cnVlLAorICAgICAgICAiLXdlYmtpdC10cmFuc2Zvcm0tb3Jp
Z2luLXkiOiB0cnVlLAorICAgICAgICAiLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luLXoiOiB0cnVl
LAorICAgICAgICAiLXdlYmtpdC10cmFuc2Zvcm0tc3R5bGUiOiB0cnVlLAorICAgICAgICAiLXdl
YmtpdC10cmFuc2l0aW9uIjogdHJ1ZSwKKyAgICAgICAgIi13ZWJraXQtdHJhbnNpdGlvbi1kZWxh
eSI6IHRydWUsCisgICAgICAgICItd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb24iOiB0cnVlLAor
ICAgICAgICAiLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5IjogdHJ1ZSwKKyAgICAgICAgIi13
ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24iOiB0cnVlLAorICAgICAgICAiLXdlYmtp
dC11c2VyLWRyYWciOiB0cnVlLAorICAgICAgICAiLXdlYmtpdC11c2VyLW1vZGlmeSI6IHRydWUs
CisgICAgICAgICItd2Via2l0LXVzZXItc2VsZWN0IjogdHJ1ZSwKKyAgICAgICAgIi13ZWJraXQt
dmFyaWFibGUtZGVjbGFyYXRpb24tYmxvY2siOiB0cnVlCisgICAgfTsKKyAgICBmdW5jdGlvbiBw
cm9wZXJ0eUFjdGlvbih0b2tlbikKKyAgICB7CisgICAgICAgIHRoaXMuY3Vyc29yICs9IHRva2Vu
Lmxlbmd0aDsKKyAgICAgICAgaWYgKHRva2VuIGluIHByb3BlcnR5S2V5d29yZHMpIHsKKyAgICAg
ICAgICAgIHRoaXMuYXBwZW5kTm9uVG9rZW4uY2FsbCh0aGlzKTsKKyAgICAgICAgICAgIHRoaXMu
bGluZUZyYWdtZW50LmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlU3Bhbih0b2tlbiwgIndlYmtpdC1j
c3MtcHJvcGVydHkiKSk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGhpcy5ub25Ub2tl
biArPSB0b2tlbjsKKyAgICB9CisgICAgCisgICAgZnVuY3Rpb24gZGVjbGFyYXRpb25Db2xvbkFj
dGlvbih0b2tlbikKKyAgICB7CisgICAgICAgIHRoaXMuY3Vyc29yICs9IHRva2VuLmxlbmd0aDsK
KyAgICAgICAgdGhpcy5ub25Ub2tlbiArPSB0b2tlbjsKKyAgICAgICAgdGhpcy5sZXhTdGF0ZSA9
IHRoaXMuTGV4U3RhdGUuRGVjbGFyYXRpb25WYWx1ZTsKKyAgICB9CiAKLSAgICAgICAgICAgIGlm
ICh0b2tlbikgewotICAgICAgICAgICAgICAgIGlmIChjdXJyQ2hhciA9PT0gIkAiKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIGF0UnVsZVN0YXJ0ZWQgPSB0cnVlOwotCi0gICAgICAgICAgICAgICAg
ICAgIC8vIFRoZSBAZm9udC1mYWNlLCBAcGFnZSwgYW5kIEB2YXJpYWJsZXMgYXQtcnVsZXMgZG8g
bm90IGNvbnRhaW4gc2VsZWN0b3JzIGxpa2Ugb3RoZXIgYXQtcnVsZXMKLSAgICAgICAgICAgICAg
ICAgICAgLy8gaW5zdGVhZCBpdCBhY3RzIGFzIGEgc2VsZWN0b3IgYW5kIGNvbnRhaW5zIHByb3Bl
cnRpZXMgYW5kIHZhbHVlcy4KLSAgICAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSB0b2tlbi50
ZXh0Q29udGVudDsKLSAgICAgICAgICAgICAgICAgICAgYXRSdWxlSXNTZWxlY3RvciA9IC9mb250
LWZhY2UvLnRlc3QodGV4dCkgfHwgL3BhZ2UvLnRlc3QodGV4dCkgfHwgL3ZhcmlhYmxlcy8udGVz
dCh0ZXh0KTsKLSAgICAgICAgICAgICAgICB9CisgICAgY29uc3QgdmFsdWVLZXl3b3JkcyA9IHsK
KyAgICAgICAgImluaGVyaXQiOiB0cnVlLAorICAgICAgICAiaW5pdGlhbCI6IHRydWUsCisgICAg
ICAgICJub25lIjogdHJ1ZSwKKyAgICAgICAgImhpZGRlbiI6IHRydWUsCisgICAgICAgICJpbnNl
dCI6IHRydWUsCisgICAgICAgICJncm9vdmUiOiB0cnVlLAorICAgICAgICAicmlkZ2UiOiB0cnVl
LAorICAgICAgICAib3V0c2V0IjogdHJ1ZSwKKyAgICAgICAgImRvdHRlZCI6IHRydWUsCisgICAg
ICAgICJkYXNoZWQiOiB0cnVlLAorICAgICAgICAic29saWQiOiB0cnVlLAorICAgICAgICAiZG91
YmxlIjogdHJ1ZSwKKyAgICAgICAgImNhcHRpb24iOiB0cnVlLAorICAgICAgICAiaWNvbiI6IHRy
dWUsCisgICAgICAgICJtZW51IjogdHJ1ZSwKKyAgICAgICAgIm1lc3NhZ2UtYm94IjogdHJ1ZSwK
KyAgICAgICAgInNtYWxsLWNhcHRpb24iOiB0cnVlLAorICAgICAgICAiLXdlYmtpdC1taW5pLWNv
bnRyb2wiOiB0cnVlLAorICAgICAgICAiLXdlYmtpdC1zbWFsbC1jb250cm9sIjogdHJ1ZSwKKyAg
ICAgICAgIi13ZWJraXQtY29udHJvbCI6IHRydWUsCisgICAgICAgICJzdGF0dXMtYmFyIjogdHJ1
ZSwKKyAgICAgICAgIml0YWxpYyI6IHRydWUsCisgICAgICAgICJvYmxpcXVlIjogdHJ1ZSwKKyAg
ICAgICAgImFsbCI6IHRydWUsCisgICAgICAgICJzbWFsbC1jYXBzIjogdHJ1ZSwKKyAgICAgICAg
Im5vcm1hbCI6IHRydWUsCisgICAgICAgICJib2xkIjogdHJ1ZSwKKyAgICAgICAgImJvbGRlciI6
IHRydWUsCisgICAgICAgICJsaWdodGVyIjogdHJ1ZSwKKyAgICAgICAgInh4LXNtYWxsIjogdHJ1
ZSwKKyAgICAgICAgIngtc21hbGwiOiB0cnVlLAorICAgICAgICAic21hbGwiOiB0cnVlLAorICAg
ICAgICAibWVkaXVtIjogdHJ1ZSwKKyAgICAgICAgImxhcmdlIjogdHJ1ZSwKKyAgICAgICAgIngt
bGFyZ2UiOiB0cnVlLAorICAgICAgICAieHgtbGFyZ2UiOiB0cnVlLAorICAgICAgICAiLXdlYmtp
dC14eHgtbGFyZ2UiOiB0cnVlLAorICAgICAgICAic21hbGxlciI6IHRydWUsCisgICAgICAgICJs
YXJnZXIiOiB0cnVlLAorICAgICAgICAid2lkZXIiOiB0cnVlLAorICAgICAgICAibmFycm93ZXIi
OiB0cnVlLAorICAgICAgICAidWx0cmEtY29uZGVuc2VkIjogdHJ1ZSwKKyAgICAgICAgImV4dHJh
LWNvbmRlbnNlZCI6IHRydWUsCisgICAgICAgICJjb25kZW5zZWQiOiB0cnVlLAorICAgICAgICAi
c2VtaS1jb25kZW5zZWQiOiB0cnVlLAorICAgICAgICAic2VtaS1leHBhbmRlZCI6IHRydWUsCisg
ICAgICAgICJleHBhbmRlZCI6IHRydWUsCisgICAgICAgICJleHRyYS1leHBhbmRlZCI6IHRydWUs
CisgICAgICAgICJ1bHRyYS1leHBhbmRlZCI6IHRydWUsCisgICAgICAgICJzZXJpZiI6IHRydWUs
CisgICAgICAgICJzYW5zLXNlcmlmIjogdHJ1ZSwKKyAgICAgICAgImN1cnNpdmUiOiB0cnVlLAor
ICAgICAgICAiZmFudGFzeSI6IHRydWUsCisgICAgICAgICJtb25vc3BhY2UiOiB0cnVlLAorICAg
ICAgICAiLXdlYmtpdC1ib2R5IjogdHJ1ZSwKKyAgICAgICAgImFxdWEiOiB0cnVlLAorICAgICAg
ICAiYmxhY2siOiB0cnVlLAorICAgICAgICAiYmx1ZSI6IHRydWUsCisgICAgICAgICJmdWNoc2lh
IjogdHJ1ZSwKKyAgICAgICAgImdyYXkiOiB0cnVlLAorICAgICAgICAiZ3JlZW4iOiB0cnVlLAor
ICAgICAgICAibGltZSI6IHRydWUsCisgICAgICAgICJtYXJvb24iOiB0cnVlLAorICAgICAgICAi
bmF2eSI6IHRydWUsCisgICAgICAgICJvbGl2ZSI6IHRydWUsCisgICAgICAgICJvcmFuZ2UiOiB0
cnVlLAorICAgICAgICAicHVycGxlIjogdHJ1ZSwKKyAgICAgICAgInJlZCI6IHRydWUsCisgICAg
ICAgICJzaWx2ZXIiOiB0cnVlLAorICAgICAgICAidGVhbCI6IHRydWUsCisgICAgICAgICJ3aGl0
ZSI6IHRydWUsCisgICAgICAgICJ5ZWxsb3ciOiB0cnVlLAorICAgICAgICAidHJhbnNwYXJlbnQi
OiB0cnVlLAorICAgICAgICAiLXdlYmtpdC1saW5rIjogdHJ1ZSwKKyAgICAgICAgIi13ZWJraXQt
YWN0aXZlbGluayI6IHRydWUsCisgICAgICAgICJhY3RpdmVib3JkZXIiOiB0cnVlLAorICAgICAg
ICAiYWN0aXZlY2FwdGlvbiI6IHRydWUsCisgICAgICAgICJhcHB3b3Jrc3BhY2UiOiB0cnVlLAor
ICAgICAgICAiYmFja2dyb3VuZCI6IHRydWUsCisgICAgICAgICJidXR0b25mYWNlIjogdHJ1ZSwK
KyAgICAgICAgImJ1dHRvbmhpZ2hsaWdodCI6IHRydWUsCisgICAgICAgICJidXR0b25zaGFkb3ci
OiB0cnVlLAorICAgICAgICAiYnV0dG9udGV4dCI6IHRydWUsCisgICAgICAgICJjYXB0aW9udGV4
dCI6IHRydWUsCisgICAgICAgICJncmF5dGV4dCI6IHRydWUsCisgICAgICAgICJoaWdobGlnaHQi
OiB0cnVlLAorICAgICAgICAiaGlnaGxpZ2h0dGV4dCI6IHRydWUsCisgICAgICAgICJpbmFjdGl2
ZWJvcmRlciI6IHRydWUsCisgICAgICAgICJpbmFjdGl2ZWNhcHRpb24iOiB0cnVlLAorICAgICAg
ICAiaW5hY3RpdmVjYXB0aW9udGV4dCI6IHRydWUsCisgICAgICAgICJpbmZvYmFja2dyb3VuZCI6
IHRydWUsCisgICAgICAgICJpbmZvdGV4dCI6IHRydWUsCisgICAgICAgICJtYXRjaCI6IHRydWUs
CisgICAgICAgICJtZW51dGV4dCI6IHRydWUsCisgICAgICAgICJzY3JvbGxiYXIiOiB0cnVlLAor
ICAgICAgICAidGhyZWVkZGFya3NoYWRvdyI6IHRydWUsCisgICAgICAgICJ0aHJlZWRmYWNlIjog
dHJ1ZSwKKyAgICAgICAgInRocmVlZGhpZ2hsaWdodCI6IHRydWUsCisgICAgICAgICJ0aHJlZWRs
aWdodHNoYWRvdyI6IHRydWUsCisgICAgICAgICJ0aHJlZWRzaGFkb3ciOiB0cnVlLAorICAgICAg
ICAid2luZG93IjogdHJ1ZSwKKyAgICAgICAgIndpbmRvd2ZyYW1lIjogdHJ1ZSwKKyAgICAgICAg
IndpbmRvd3RleHQiOiB0cnVlLAorICAgICAgICAiLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yIjog
dHJ1ZSwKKyAgICAgICAgImN1cnJlbnRjb2xvciI6IHRydWUsCisgICAgICAgICJncmV5IjogdHJ1
ZSwKKyAgICAgICAgIi13ZWJraXQtdGV4dCI6IHRydWUsCisgICAgICAgICJyZXBlYXQiOiB0cnVl
LAorICAgICAgICAicmVwZWF0LXgiOiB0cnVlLAorICAgICAgICAicmVwZWF0LXkiOiB0cnVlLAor
ICAgICAgICAibm8tcmVwZWF0IjogdHJ1ZSwKKyAgICAgICAgImNsZWFyIjogdHJ1ZSwKKyAgICAg
ICAgImNvcHkiOiB0cnVlLAorICAgICAgICAic291cmNlLW92ZXIiOiB0cnVlLAorICAgICAgICAi
c291cmNlLWluIjogdHJ1ZSwKKyAgICAgICAgInNvdXJjZS1vdXQiOiB0cnVlLAorICAgICAgICAi
c291cmNlLWF0b3AiOiB0cnVlLAorICAgICAgICAiZGVzdGluYXRpb24tb3ZlciI6IHRydWUsCisg
ICAgICAgICJkZXN0aW5hdGlvbi1pbiI6IHRydWUsCisgICAgICAgICJkZXN0aW5hdGlvbi1vdXQi
OiB0cnVlLAorICAgICAgICAiZGVzdGluYXRpb24tYXRvcCI6IHRydWUsCisgICAgICAgICJ4b3Ii
OiB0cnVlLAorICAgICAgICAicGx1cy1kYXJrZXIiOiB0cnVlLAorICAgICAgICAicGx1cy1saWdo
dGVyIjogdHJ1ZSwKKyAgICAgICAgImJhc2VsaW5lIjogdHJ1ZSwKKyAgICAgICAgIm1pZGRsZSI6
IHRydWUsCisgICAgICAgICJzdWIiOiB0cnVlLAorICAgICAgICAic3VwZXIiOiB0cnVlLAorICAg
ICAgICAidGV4dC10b3AiOiB0cnVlLAorICAgICAgICAidGV4dC1ib3R0b20iOiB0cnVlLAorICAg
ICAgICAidG9wIjogdHJ1ZSwKKyAgICAgICAgImJvdHRvbSI6IHRydWUsCisgICAgICAgICItd2Vi
a2l0LWJhc2VsaW5lLW1pZGRsZSI6IHRydWUsCisgICAgICAgICItd2Via2l0LWF1dG8iOiB0cnVl
LAorICAgICAgICAibGVmdCI6IHRydWUsCisgICAgICAgICJyaWdodCI6IHRydWUsCisgICAgICAg
ICJjZW50ZXIiOiB0cnVlLAorICAgICAgICAianVzdGlmeSI6IHRydWUsCisgICAgICAgICItd2Vi
a2l0LWxlZnQiOiB0cnVlLAorICAgICAgICAiLXdlYmtpdC1yaWdodCI6IHRydWUsCisgICAgICAg
ICItd2Via2l0LWNlbnRlciI6IHRydWUsCisgICAgICAgICJvdXRzaWRlIjogdHJ1ZSwKKyAgICAg
ICAgImluc2lkZSI6IHRydWUsCisgICAgICAgICJkaXNjIjogdHJ1ZSwKKyAgICAgICAgImNpcmNs
ZSI6IHRydWUsCisgICAgICAgICJzcXVhcmUiOiB0cnVlLAorICAgICAgICAiZGVjaW1hbCI6IHRy
dWUsCisgICAgICAgICJkZWNpbWFsLWxlYWRpbmctemVybyI6IHRydWUsCisgICAgICAgICJsb3dl
ci1yb21hbiI6IHRydWUsCisgICAgICAgICJ1cHBlci1yb21hbiI6IHRydWUsCisgICAgICAgICJs
b3dlci1ncmVlayI6IHRydWUsCisgICAgICAgICJsb3dlci1hbHBoYSI6IHRydWUsCisgICAgICAg
ICJsb3dlci1sYXRpbiI6IHRydWUsCisgICAgICAgICJ1cHBlci1hbHBoYSI6IHRydWUsCisgICAg
ICAgICJ1cHBlci1sYXRpbiI6IHRydWUsCisgICAgICAgICJoZWJyZXciOiB0cnVlLAorICAgICAg
ICAiYXJtZW5pYW4iOiB0cnVlLAorICAgICAgICAiZ2VvcmdpYW4iOiB0cnVlLAorICAgICAgICAi
Y2prLWlkZW9ncmFwaGljIjogdHJ1ZSwKKyAgICAgICAgImhpcmFnYW5hIjogdHJ1ZSwKKyAgICAg
ICAgImthdGFrYW5hIjogdHJ1ZSwKKyAgICAgICAgImhpcmFnYW5hLWlyb2hhIjogdHJ1ZSwKKyAg
ICAgICAgImthdGFrYW5hLWlyb2hhIjogdHJ1ZSwKKyAgICAgICAgImlubGluZSI6IHRydWUsCisg
ICAgICAgICJibG9jayI6IHRydWUsCisgICAgICAgICJsaXN0LWl0ZW0iOiB0cnVlLAorICAgICAg
ICAicnVuLWluIjogdHJ1ZSwKKyAgICAgICAgImNvbXBhY3QiOiB0cnVlLAorICAgICAgICAiaW5s
aW5lLWJsb2NrIjogdHJ1ZSwKKyAgICAgICAgInRhYmxlIjogdHJ1ZSwKKyAgICAgICAgImlubGlu
ZS10YWJsZSI6IHRydWUsCisgICAgICAgICJ0YWJsZS1yb3ctZ3JvdXAiOiB0cnVlLAorICAgICAg
ICAidGFibGUtaGVhZGVyLWdyb3VwIjogdHJ1ZSwKKyAgICAgICAgInRhYmxlLWZvb3Rlci1ncm91
cCI6IHRydWUsCisgICAgICAgICJ0YWJsZS1yb3ciOiB0cnVlLAorICAgICAgICAidGFibGUtY29s
dW1uLWdyb3VwIjogdHJ1ZSwKKyAgICAgICAgInRhYmxlLWNvbHVtbiI6IHRydWUsCisgICAgICAg
ICJ0YWJsZS1jZWxsIjogdHJ1ZSwKKyAgICAgICAgInRhYmxlLWNhcHRpb24iOiB0cnVlLAorICAg
ICAgICAiLXdlYmtpdC1ib3giOiB0cnVlLAorICAgICAgICAiLXdlYmtpdC1pbmxpbmUtYm94Ijog
dHJ1ZSwKKyAgICAgICAgIi13YXAtbWFycXVlZSI6IHRydWUsCisgICAgICAgICJhdXRvIjogdHJ1
ZSwKKyAgICAgICAgImNyb3NzaGFpciI6IHRydWUsCisgICAgICAgICJkZWZhdWx0IjogdHJ1ZSwK
KyAgICAgICAgInBvaW50ZXIiOiB0cnVlLAorICAgICAgICAibW92ZSI6IHRydWUsCisgICAgICAg
ICJ2ZXJ0aWNhbC10ZXh0IjogdHJ1ZSwKKyAgICAgICAgImNlbGwiOiB0cnVlLAorICAgICAgICAi
Y29udGV4dC1tZW51IjogdHJ1ZSwKKyAgICAgICAgImFsaWFzIjogdHJ1ZSwKKyAgICAgICAgInBy
b2dyZXNzIjogdHJ1ZSwKKyAgICAgICAgIm5vLWRyb3AiOiB0cnVlLAorICAgICAgICAibm90LWFs
bG93ZWQiOiB0cnVlLAorICAgICAgICAiLXdlYmtpdC16b29tLWluIjogdHJ1ZSwKKyAgICAgICAg
Ii13ZWJraXQtem9vbS1vdXQiOiB0cnVlLAorICAgICAgICAiZS1yZXNpemUiOiB0cnVlLAorICAg
ICAgICAibmUtcmVzaXplIjogdHJ1ZSwKKyAgICAgICAgIm53LXJlc2l6ZSI6IHRydWUsCisgICAg
ICAgICJuLXJlc2l6ZSI6IHRydWUsCisgICAgICAgICJzZS1yZXNpemUiOiB0cnVlLAorICAgICAg
ICAic3ctcmVzaXplIjogdHJ1ZSwKKyAgICAgICAgInMtcmVzaXplIjogdHJ1ZSwKKyAgICAgICAg
InctcmVzaXplIjogdHJ1ZSwKKyAgICAgICAgImV3LXJlc2l6ZSI6IHRydWUsCisgICAgICAgICJu
cy1yZXNpemUiOiB0cnVlLAorICAgICAgICAibmVzdy1yZXNpemUiOiB0cnVlLAorICAgICAgICAi
bndzZS1yZXNpemUiOiB0cnVlLAorICAgICAgICAiY29sLXJlc2l6ZSI6IHRydWUsCisgICAgICAg
ICJyb3ctcmVzaXplIjogdHJ1ZSwKKyAgICAgICAgInRleHQiOiB0cnVlLAorICAgICAgICAid2Fp
dCI6IHRydWUsCisgICAgICAgICJoZWxwIjogdHJ1ZSwKKyAgICAgICAgImFsbC1zY3JvbGwiOiB0
cnVlLAorICAgICAgICAiLXdlYmtpdC1ncmFiIjogdHJ1ZSwKKyAgICAgICAgIi13ZWJraXQtZ3Jh
YmJpbmciOiB0cnVlLAorICAgICAgICAibHRyIjogdHJ1ZSwKKyAgICAgICAgInJ0bCI6IHRydWUs
CisgICAgICAgICJjYXBpdGFsaXplIjogdHJ1ZSwKKyAgICAgICAgInVwcGVyY2FzZSI6IHRydWUs
CisgICAgICAgICJsb3dlcmNhc2UiOiB0cnVlLAorICAgICAgICAidmlzaWJsZSI6IHRydWUsCisg
ICAgICAgICJjb2xsYXBzZSI6IHRydWUsCisgICAgICAgICJhYm92ZSI6IHRydWUsCisgICAgICAg
ICJhYnNvbHV0ZSI6IHRydWUsCisgICAgICAgICJhbHdheXMiOiB0cnVlLAorICAgICAgICAiYXZv
aWQiOiB0cnVlLAorICAgICAgICAiYmVsb3ciOiB0cnVlLAorICAgICAgICAiYmlkaS1vdmVycmlk
ZSI6IHRydWUsCisgICAgICAgICJibGluayI6IHRydWUsCisgICAgICAgICJib3RoIjogdHJ1ZSwK
KyAgICAgICAgImNsb3NlLXF1b3RlIjogdHJ1ZSwKKyAgICAgICAgImNyb3AiOiB0cnVlLAorICAg
ICAgICAiY3Jvc3MiOiB0cnVlLAorICAgICAgICAiZW1iZWQiOiB0cnVlLAorICAgICAgICAiZml4
ZWQiOiB0cnVlLAorICAgICAgICAiaGFuZCI6IHRydWUsCisgICAgICAgICJoaWRlIjogdHJ1ZSwK
KyAgICAgICAgImhpZ2hlciI6IHRydWUsCisgICAgICAgICJpbnZlcnQiOiB0cnVlLAorICAgICAg
ICAibGFuZHNjYXBlIjogdHJ1ZSwKKyAgICAgICAgImxldmVsIjogdHJ1ZSwKKyAgICAgICAgImxp
bmUtdGhyb3VnaCI6IHRydWUsCisgICAgICAgICJsb2NhbCI6IHRydWUsCisgICAgICAgICJsb3Vk
IjogdHJ1ZSwKKyAgICAgICAgImxvd2VyIjogdHJ1ZSwKKyAgICAgICAgIi13ZWJraXQtbWFycXVl
ZSI6IHRydWUsCisgICAgICAgICJtaXgiOiB0cnVlLAorICAgICAgICAibm8tY2xvc2UtcXVvdGUi
OiB0cnVlLAorICAgICAgICAibm8tb3Blbi1xdW90ZSI6IHRydWUsCisgICAgICAgICJub3dyYXAi
OiB0cnVlLAorICAgICAgICAib3Blbi1xdW90ZSI6IHRydWUsCisgICAgICAgICJvdmVybGF5Ijog
dHJ1ZSwKKyAgICAgICAgIm92ZXJsaW5lIjogdHJ1ZSwKKyAgICAgICAgInBvcnRyYWl0IjogdHJ1
ZSwKKyAgICAgICAgInByZSI6IHRydWUsCisgICAgICAgICJwcmUtbGluZSI6IHRydWUsCisgICAg
ICAgICJwcmUtd3JhcCI6IHRydWUsCisgICAgICAgICJyZWxhdGl2ZSI6IHRydWUsCisgICAgICAg
ICJzY3JvbGwiOiB0cnVlLAorICAgICAgICAic2VwYXJhdGUiOiB0cnVlLAorICAgICAgICAic2hv
dyI6IHRydWUsCisgICAgICAgICJzdGF0aWMiOiB0cnVlLAorICAgICAgICAidGhpY2siOiB0cnVl
LAorICAgICAgICAidGhpbiI6IHRydWUsCisgICAgICAgICJ1bmRlcmxpbmUiOiB0cnVlLAorICAg
ICAgICAiLXdlYmtpdC1ub3dyYXAiOiB0cnVlLAorICAgICAgICAic3RyZXRjaCI6IHRydWUsCisg
ICAgICAgICJzdGFydCI6IHRydWUsCisgICAgICAgICJlbmQiOiB0cnVlLAorICAgICAgICAicmV2
ZXJzZSI6IHRydWUsCisgICAgICAgICJob3Jpem9udGFsIjogdHJ1ZSwKKyAgICAgICAgInZlcnRp
Y2FsIjogdHJ1ZSwKKyAgICAgICAgImlubGluZS1heGlzIjogdHJ1ZSwKKyAgICAgICAgImJsb2Nr
LWF4aXMiOiB0cnVlLAorICAgICAgICAic2luZ2xlIjogdHJ1ZSwKKyAgICAgICAgIm11bHRpcGxl
IjogdHJ1ZSwKKyAgICAgICAgImZvcndhcmRzIjogdHJ1ZSwKKyAgICAgICAgImJhY2t3YXJkcyI6
IHRydWUsCisgICAgICAgICJhaGVhZCI6IHRydWUsCisgICAgICAgICJ1cCI6IHRydWUsCisgICAg
ICAgICJkb3duIjogdHJ1ZSwKKyAgICAgICAgInNsb3ciOiB0cnVlLAorICAgICAgICAiZmFzdCI6
IHRydWUsCisgICAgICAgICJpbmZpbml0ZSI6IHRydWUsCisgICAgICAgICJzbGlkZSI6IHRydWUs
CisgICAgICAgICJhbHRlcm5hdGUiOiB0cnVlLAorICAgICAgICAicmVhZC1vbmx5IjogdHJ1ZSwK
KyAgICAgICAgInJlYWQtd3JpdGUiOiB0cnVlLAorICAgICAgICAicmVhZC13cml0ZS1wbGFpbnRl
eHQtb25seSI6IHRydWUsCisgICAgICAgICJlbGVtZW50IjogdHJ1ZSwKKyAgICAgICAgImlnbm9y
ZSI6IHRydWUsCisgICAgICAgICJpbnRyaW5zaWMiOiB0cnVlLAorICAgICAgICAibWluLWludHJp
bnNpYyI6IHRydWUsCisgICAgICAgICJjbGlwIjogdHJ1ZSwKKyAgICAgICAgImVsbGlwc2lzIjog
dHJ1ZSwKKyAgICAgICAgImRpc2NhcmQiOiB0cnVlLAorICAgICAgICAiZG90LWRhc2giOiB0cnVl
LAorICAgICAgICAiZG90LWRvdC1kYXNoIjogdHJ1ZSwKKyAgICAgICAgIndhdmUiOiB0cnVlLAor
ICAgICAgICAiY29udGludW91cyI6IHRydWUsCisgICAgICAgICJza2lwLXdoaXRlLXNwYWNlIjog
dHJ1ZSwKKyAgICAgICAgImJyZWFrLWFsbCI6IHRydWUsCisgICAgICAgICJicmVhay13b3JkIjog
dHJ1ZSwKKyAgICAgICAgInNwYWNlIjogdHJ1ZSwKKyAgICAgICAgImFmdGVyLXdoaXRlLXNwYWNl
IjogdHJ1ZSwKKyAgICAgICAgImNoZWNrYm94IjogdHJ1ZSwKKyAgICAgICAgInJhZGlvIjogdHJ1
ZSwKKyAgICAgICAgInB1c2gtYnV0dG9uIjogdHJ1ZSwKKyAgICAgICAgInNxdWFyZS1idXR0b24i
OiB0cnVlLAorICAgICAgICAiYnV0dG9uIjogdHJ1ZSwKKyAgICAgICAgImJ1dHRvbi1iZXZlbCI6
IHRydWUsCisgICAgICAgICJkZWZhdWx0LWJ1dHRvbiI6IHRydWUsCisgICAgICAgICJsaXN0LWJ1
dHRvbiI6IHRydWUsCisgICAgICAgICJsaXN0Ym94IjogdHJ1ZSwKKyAgICAgICAgImxpc3RpdGVt
IjogdHJ1ZSwKKyAgICAgICAgIm1lZGlhLWZ1bGxzY3JlZW4tYnV0dG9uIjogdHJ1ZSwKKyAgICAg
ICAgIm1lZGlhLW11dGUtYnV0dG9uIjogdHJ1ZSwKKyAgICAgICAgIm1lZGlhLXBsYXktYnV0dG9u
IjogdHJ1ZSwKKyAgICAgICAgIm1lZGlhLXNlZWstYmFjay1idXR0b24iOiB0cnVlLAorICAgICAg
ICAibWVkaWEtc2Vlay1mb3J3YXJkLWJ1dHRvbiI6IHRydWUsCisgICAgICAgICJtZWRpYS1yZXdp
bmQtYnV0dG9uIjogdHJ1ZSwKKyAgICAgICAgIm1lZGlhLXJldHVybi10by1yZWFsdGltZS1idXR0
b24iOiB0cnVlLAorICAgICAgICAibWVkaWEtc2xpZGVyIjogdHJ1ZSwKKyAgICAgICAgIm1lZGlh
LXNsaWRlcnRodW1iIjogdHJ1ZSwKKyAgICAgICAgIm1lZGlhLXZvbHVtZS1zbGlkZXItY29udGFp
bmVyIjogdHJ1ZSwKKyAgICAgICAgIm1lZGlhLXZvbHVtZS1zbGlkZXIiOiB0cnVlLAorICAgICAg
ICAibWVkaWEtdm9sdW1lLXNsaWRlcnRodW1iIjogdHJ1ZSwKKyAgICAgICAgIm1lZGlhLWNvbnRy
b2xzLWJhY2tncm91bmQiOiB0cnVlLAorICAgICAgICAibWVkaWEtY3VycmVudC10aW1lLWRpc3Bs
YXkiOiB0cnVlLAorICAgICAgICAibWVkaWEtdGltZS1yZW1haW5pbmctZGlzcGxheSI6IHRydWUs
CisgICAgICAgICJtZW51bGlzdCI6IHRydWUsCisgICAgICAgICJtZW51bGlzdC1idXR0b24iOiB0
cnVlLAorICAgICAgICAibWVudWxpc3QtdGV4dCI6IHRydWUsCisgICAgICAgICJtZW51bGlzdC10
ZXh0ZmllbGQiOiB0cnVlLAorICAgICAgICAic2xpZGVyLWhvcml6b250YWwiOiB0cnVlLAorICAg
ICAgICAic2xpZGVyLXZlcnRpY2FsIjogdHJ1ZSwKKyAgICAgICAgInNsaWRlcnRodW1iLWhvcml6
b250YWwiOiB0cnVlLAorICAgICAgICAic2xpZGVydGh1bWItdmVydGljYWwiOiB0cnVlLAorICAg
ICAgICAiY2FyZXQiOiB0cnVlLAorICAgICAgICAic2VhcmNoZmllbGQiOiB0cnVlLAorICAgICAg
ICAic2VhcmNoZmllbGQtZGVjb3JhdGlvbiI6IHRydWUsCisgICAgICAgICJzZWFyY2hmaWVsZC1y
ZXN1bHRzLWRlY29yYXRpb24iOiB0cnVlLAorICAgICAgICAic2VhcmNoZmllbGQtcmVzdWx0cy1i
dXR0b24iOiB0cnVlLAorICAgICAgICAic2VhcmNoZmllbGQtY2FuY2VsLWJ1dHRvbiI6IHRydWUs
CisgICAgICAgICJ0ZXh0ZmllbGQiOiB0cnVlLAorICAgICAgICAidGV4dGFyZWEiOiB0cnVlLAor
ICAgICAgICAiY2Fwcy1sb2NrLWluZGljYXRvciI6IHRydWUsCisgICAgICAgICJyb3VuZCI6IHRy
dWUsCisgICAgICAgICJib3JkZXIiOiB0cnVlLAorICAgICAgICAiYm9yZGVyLWJveCI6IHRydWUs
CisgICAgICAgICJjb250ZW50IjogdHJ1ZSwKKyAgICAgICAgImNvbnRlbnQtYm94IjogdHJ1ZSwK
KyAgICAgICAgInBhZGRpbmciOiB0cnVlLAorICAgICAgICAicGFkZGluZy1ib3giOiB0cnVlLAor
ICAgICAgICAiY29udGFpbiI6IHRydWUsCisgICAgICAgICJjb3ZlciI6IHRydWUsCisgICAgICAg
ICJsb2dpY2FsIjogdHJ1ZSwKKyAgICAgICAgInZpc3VhbCI6IHRydWUsCisgICAgICAgICJsaW5l
cyI6IHRydWUsCisgICAgICAgICJydW5uaW5nIjogdHJ1ZSwKKyAgICAgICAgInBhdXNlZCI6IHRy
dWUsCisgICAgICAgICJmbGF0IjogdHJ1ZSwKKyAgICAgICAgInByZXNlcnZlLTNkIjogdHJ1ZSwK
KyAgICAgICAgImVhc2UiOiB0cnVlLAorICAgICAgICAibGluZWFyIjogdHJ1ZSwKKyAgICAgICAg
ImVhc2UtaW4iOiB0cnVlLAorICAgICAgICAiZWFzZS1vdXQiOiB0cnVlLAorICAgICAgICAiZWFz
ZS1pbi1vdXQiOiB0cnVlLAorICAgICAgICAiZG9jdW1lbnQiOiB0cnVlLAorICAgICAgICAicmVz
ZXQiOiB0cnVlLAorICAgICAgICAidmlzaWJsZVBhaW50ZWQiOiB0cnVlLAorICAgICAgICAidmlz
aWJsZUZpbGwiOiB0cnVlLAorICAgICAgICAidmlzaWJsZVN0cm9rZSI6IHRydWUsCisgICAgICAg
ICJwYWludGVkIjogdHJ1ZSwKKyAgICAgICAgImZpbGwiOiB0cnVlLAorICAgICAgICAic3Ryb2tl
IjogdHJ1ZSwKKyAgICAgICAgImFudGlhbGlhc2VkIjogdHJ1ZSwKKyAgICAgICAgInN1YnBpeGVs
LWFudGlhbGlhc2VkIjogdHJ1ZSwKKyAgICAgICAgIm9wdGltaXplU3BlZWQiOiB0cnVlLAorICAg
ICAgICAib3B0aW1pemVMZWdpYmlsaXR5IjogdHJ1ZSwKKyAgICAgICAgImdlb21ldHJpY1ByZWNp
c2lvbiI6IHRydWUKKyAgICB9OworICAgIGZ1bmN0aW9uIHZhbHVlSWRlbnRBY3Rpb24odG9rZW4p
IHsKKyAgICAgICAgdGhpcy5jdXJzb3IgKz0gdG9rZW4ubGVuZ3RoOworICAgICAgICBpZiAodG9r
ZW4gaW4gdmFsdWVLZXl3b3JkcykgeworICAgICAgICAgICAgdGhpcy5hcHBlbmROb25Ub2tlbi5j
YWxsKHRoaXMpOworICAgICAgICAgICAgdGhpcy5saW5lRnJhZ21lbnQuYXBwZW5kQ2hpbGQodGhp
cy5jcmVhdGVTcGFuKHRva2VuLCAid2Via2l0LWNzcy1rZXl3b3JkIikpOworICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgIHRoaXMubm9uVG9rZW4gKz0gdG9rZW47CisgICAgfQogCi0gICAgICAg
ICAgICAgICAgaWYgKHRtcCAhPT0gaSkKLSAgICAgICAgICAgICAgICAgICAgbGluZS5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjb2RlLnN1YnN0cmluZyh0bXAsIGkpKSk7Ci0g
ICAgICAgICAgICAgICAgbGluZS5hcHBlbmRDaGlsZCh0b2tlbik7Ci0gICAgICAgICAgICAgICAg
aSArPSB0aGlzLnByZXZpb3VzTWF0Y2hMZW5ndGggLSAxOwotICAgICAgICAgICAgICAgIHRtcCA9
IGkgKyAxOwotICAgICAgICAgICAgfQorICAgIGZ1bmN0aW9uIG51bXZhbHVlQWN0aW9uKHRva2Vu
KQorICAgIHsKKyAgICAgICAgdGhpcy5jdXJzb3IgKz0gdG9rZW4ubGVuZ3RoOworICAgICAgICB0
aGlzLmxpbmVGcmFnbWVudC5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVNwYW4odG9rZW4sICJ3ZWJr
aXQtY3NzLW51bWJlciIpKTsKKyAgICB9CisgICAgCisgICAgZnVuY3Rpb24gZGVjbGFyYXRpb25T
ZW1pY29sb25BY3Rpb24odG9rZW4pCisgICAgeworICAgICAgICB0aGlzLmN1cnNvciArPSB0b2tl
bi5sZW5ndGg7CisgICAgICAgIHRoaXMubm9uVG9rZW4gKz0gdG9rZW47CisgICAgICAgIHRoaXMu
bGV4U3RhdGUgPSB0aGlzLkxleFN0YXRlLkRlY2xhcmF0aW9uUHJvcGVydHk7CisgICAgfQorICAg
IAorICAgIGZ1bmN0aW9uIHVybEFjdGlvbih0b2tlbikKKyAgICB7CisgICAgICAgIHRoaXMuY3Vy
c29yICs9IHRva2VuLmxlbmd0aDsKKyAgICAgICAgdGhpcy5saW5lRnJhZ21lbnQuYXBwZW5kQ2hp
bGQodGhpcy5jcmVhdGVTcGFuKHRva2VuLCAid2Via2l0LWNzcy11cmwiKSk7CisgICAgfQorICAg
IAorICAgIGZ1bmN0aW9uIHN0cmluZ0FjdGlvbih0b2tlbikKKyAgICB7CisgICAgICAgIHRoaXMu
Y3Vyc29yICs9IHRva2VuLmxlbmd0aDsKKyAgICAgICAgdGhpcy5saW5lRnJhZ21lbnQuYXBwZW5k
Q2hpbGQodGhpcy5jcmVhdGVTcGFuKHRva2VuLCAid2Via2l0LWNzcy1zdHJpbmciKSk7CisgICAg
fQorICAgIAorICAgIGZ1bmN0aW9uIGNvbG9yQWN0aW9uKHRva2VuKQorICAgIHsKKyAgICAgICAg
dGhpcy5jdXJzb3IgKz0gdG9rZW4ubGVuZ3RoOworICAgICAgICB0aGlzLmxpbmVGcmFnbWVudC5h
cHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVNwYW4odG9rZW4sICJ3ZWJraXQtY3NzLWNvbG9yIikpOwor
ICAgIH0KKyAgICAKKyAgICBmdW5jdGlvbiBpbXBvcnRhbnRBY3Rpb24odG9rZW4pCisgICAgewor
ICAgICAgICB0aGlzLmN1cnNvciArPSB0b2tlbi5sZW5ndGg7CisgICAgICAgIHRoaXMubGluZUZy
YWdtZW50LmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlU3Bhbih0b2tlbiwgIndlYmtpdC1jc3MtaW1w
b3J0YW50IikpOworICAgIH0KKyAgICAKKyAgICBmdW5jdGlvbiBhdE1lZGlhQWN0aW9uKHRva2Vu
KQorICAgIHsKKyAgICAgICAgdGhpcy5jdXJzb3IgKz0gdG9rZW4ubGVuZ3RoOworICAgICAgICB0
aGlzLmxpbmVGcmFnbWVudC5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVNwYW4odG9rZW4sICJ3ZWJr
aXQtY3NzLWF0LXJ1bGUiKSk7CisgICAgICAgIHRoaXMubGV4U3RhdGUgPSB0aGlzLkxleFN0YXRl
LkF0TWVkaWE7CisgICAgfQorICAgIAorICAgIGZ1bmN0aW9uIHN0YXJ0QXRNZWRpYUJsb2NrQWN0
aW9uKHRva2VuKQorICAgIHsKKyAgICAgICAgdGhpcy5jdXJzb3IgKz0gdG9rZW4ubGVuZ3RoOwor
ICAgICAgICB0aGlzLm5vblRva2VuICs9IHRva2VuOworICAgICAgICB0aGlzLmxleFN0YXRlID0g
dGhpcy5MZXhTdGF0ZS5Jbml0aWFsOworICAgIH0KKyAgICAKKyAgICBmdW5jdGlvbiBhdEtleWZy
YW1lc0FjdGlvbih0b2tlbikKKyAgICB7CisgICAgICAgIHRoaXMuY3Vyc29yICs9IHRva2VuLmxl
bmd0aDsKKyAgICAgICAgdGhpcy5saW5lRnJhZ21lbnQuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVT
cGFuKHRva2VuLCAid2Via2l0LWNzcy1hdC1ydWxlIikpOworICAgICAgICB0aGlzLmxleFN0YXRl
ID0gdGhpcy5MZXhTdGF0ZS5BdEtleWZyYW1lczsKKyAgICB9CisgICAgCisgICAgZnVuY3Rpb24g
c3RhcnRBdEtleWZyYW1lc0Jsb2NrQWN0aW9uKHRva2VuKQorICAgIHsKKyAgICAgICAgdGhpcy5j
dXJzb3IgKz0gdG9rZW4ubGVuZ3RoOworICAgICAgICB0aGlzLm5vblRva2VuICs9IHRva2VuOwor
ICAgICAgICB0aGlzLmxleFN0YXRlID0gdGhpcy5MZXhTdGF0ZS5Jbml0aWFsOworICAgIH0KKyAg
ICAKKyAgICBmdW5jdGlvbiBhdFJ1bGVBY3Rpb24odG9rZW4pIHsKKyAgICAgICAgdGhpcy5jdXJz
b3IgKz0gdG9rZW4ubGVuZ3RoOworICAgICAgICB0aGlzLmxpbmVGcmFnbWVudC5hcHBlbmRDaGls
ZCh0aGlzLmNyZWF0ZVNwYW4odG9rZW4sICJ3ZWJraXQtY3NzLWF0LXJ1bGUiKSk7CisgICAgICAg
IHRoaXMubGV4U3RhdGUgPSB0aGlzLkxleFN0YXRlLkF0UnVsZTsKKyAgICB9CisgICAgCisgICAg
ZnVuY3Rpb24gZW5kQXRSdWxlQWN0aW9uKHRva2VuKSB7CisgICAgICAgIHRoaXMuY3Vyc29yICs9
IHRva2VuLmxlbmd0aDsKKyAgICAgICAgdGhpcy5ub25Ub2tlbiArPSB0b2tlbjsKKyAgICAgICAg
dGhpcy5sZXhTdGF0ZSA9IHRoaXMuTGV4U3RhdGUuSW5pdGlhbDsKKyAgICB9CisgICAgCisgICAg
ZnVuY3Rpb24gc3RhcnRBdFJ1bGVCbG9ja0FjdGlvbih0b2tlbikKKyAgICB7CisgICAgICAgIHRo
aXMuY3Vyc29yICs9IHRva2VuLmxlbmd0aDsKKyAgICAgICAgdGhpcy5ub25Ub2tlbiArPSB0b2tl
bjsKKyAgICAgICAgdGhpcy5sZXhTdGF0ZSA9IHRoaXMuTGV4U3RhdGUuRGVjbGFyYXRpb25Qcm9w
ZXJ0eTsKKyAgICB9CisgICAgCisgICAgY29uc3QgbWVkaWFUeXBlcyA9IFsiYWxsIiwgImF1cmFs
IiwgImJyYWlsbGUiLCAiZW1ib3NzZWQiLCAiaGFuZGhlbGQiLCAicHJpbnQiLCAicHJvamVjdGlv
biIsICJzY3JlZW4iLCAidHR5IiwgInR2Il07CisgICAgZnVuY3Rpb24gYXRSdWxlSWRlbnRBY3Rp
b24odG9rZW4pIHsKKyAgICAgICAgdGhpcy5jdXJzb3IgKz0gdG9rZW4ubGVuZ3RoOworICAgICAg
ICBpZiAobWVkaWFUeXBlcy5pbmRleE9mKHRva2VuKSA9PT0gLTEpCisgICAgICAgICAgICB0aGlz
Lm5vblRva2VuICs9IHRva2VuOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRoaXMuYXBw
ZW5kTm9uVG9rZW4uY2FsbCh0aGlzKTsKKyAgICAgICAgICAgIHRoaXMubGluZUZyYWdtZW50LmFw
cGVuZENoaWxkKHRoaXMuY3JlYXRlU3Bhbih0b2tlbiwgIndlYmtpdC1jc3Mta2V5d29yZCIpKTsK
ICAgICAgICAgfQotCi0gICAgICAgIGxpbmUuX2luU2VsZWN0b3IgPSBpblNlbGVjdG9yOwotICAg
ICAgICBsaW5lLl9pbkF0UnVsZUJsb2NrID0gaW5BdFJ1bGVCbG9jazsKLSAgICAgICAgbGluZS5f
YXRSdWxlU3RhcnRlZCA9IGF0UnVsZVN0YXJ0ZWQ7Ci0gICAgICAgIGxpbmUuX2F0UnVsZUlzU2Vs
ZWN0b3IgPSBhdFJ1bGVJc1NlbGVjdG9yOwotCi0gICAgICAgIGlmICh0bXAgPCBjb2RlLmxlbmd0
aCkKLSAgICAgICAgICAgIGxpbmUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
Y29kZS5zdWJzdHJpbmcodG1wLCBpKSkpOwogICAgIH0KIH0KIAotV2ViSW5zcGVjdG9yLkNTU1Nv
dXJjZVN5bnRheEhpZ2hsaWdoZXIucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5T
b3VyY2VTeW50YXhIaWdobGlnaGVyLnByb3RvdHlwZTsKK1dlYkluc3BlY3Rvci5DU1NTb3VyY2VT
eW50YXhIaWdobGlnaHRlci5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlNvdXJj
ZVN5bnRheEhpZ2hsaWdodGVyLnByb3RvdHlwZTsKIAogV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRT
b3VyY2VTeW50YXhIaWdobGlnaHRlciA9IGZ1bmN0aW9uKHRhYmxlLCBzb3VyY2VGcmFtZSkgewot
ICAgIFdlYkluc3BlY3Rvci5Tb3VyY2VTeW50YXhIaWdobGlnaGVyLmNhbGwodGhpcywgdGFibGUs
IHNvdXJjZUZyYW1lKTsKKyAgICBXZWJJbnNwZWN0b3IuU291cmNlU3ludGF4SGlnaGxpZ2h0ZXIu
Y2FsbCh0aGlzLCB0YWJsZSwgc291cmNlRnJhbWUpOwogCiAgICAgdGhpcy5MZXhTdGF0ZSA9IHsK
ICAgICAgICAgSW5pdGlhbDogMSwKQEAgLTEwMDMsODIgKzE4NTcsODIgQEAgV2ViSW5zcGVjdG9y
LkphdmFTY3JpcHRTb3VyY2VTeW50YXhIaWdobAogICAgIHRoaXMuY29udGludWVTdGF0ZSA9IHRo
aXMuQ29udGludWVTdGF0ZS5Ob25lOwogICAgIAogICAgIHRoaXMucnVsZXMgPSBbewotICAgICAg
ICAgICAgcGF0dGVybjogL14oPzpcL1wvLiopLywKLSAgICAgICAgICAgIGFjdGlvbjogc2luZ2xl
TGluZUNvbW1lbnRBY3Rpb24KLSAgICAgICAgfSwgewotICAgICAgICAgICAgcGF0dGVybjogL14o
PzpcL1wqKD86W15cKl18XCpbXlwvXSkqXCorXC8pLywKLSAgICAgICAgICAgIGFjdGlvbjogbXVs
dGlMaW5lU2luZ2xlTGluZUNvbW1lbnRBY3Rpb24KLSAgICAgICAgfSwgewotICAgICAgICAgICAg
cGF0dGVybjogL14oPzpcL1wqKD86W15cKl18XCpbXlwvXSkqKS8sCi0gICAgICAgICAgICBhY3Rp
b246IG11bHRpTGluZUNvbW1lbnRTdGFydEFjdGlvbgotICAgICAgICB9LCB7Ci0gICAgICAgICAg
ICBwYXR0ZXJuOiAvXig/Oig/OlteXCpdfFwqW15cL10pKlwqK1wvKS8sCi0gICAgICAgICAgICBh
Y3Rpb246IG11bHRpTGluZUNvbW1lbnRFbmRBY3Rpb24sCi0gICAgICAgICAgICBjb250aW51ZVN0
YXRlQ29uZGl0aW9uOiB0aGlzLkNvbnRpbnVlU3RhdGUuQ29tbWVudAotICAgICAgICB9LCB7Ci0g
ICAgICAgICAgICBwYXR0ZXJuOiAvXi4qLywKLSAgICAgICAgICAgIGFjdGlvbjogbXVsdGlMaW5l
Q29tbWVudE1pZGRsZUFjdGlvbiwKLSAgICAgICAgICAgIGNvbnRpbnVlU3RhdGVDb25kaXRpb246
IHRoaXMuQ29udGludWVTdGF0ZS5Db21tZW50Ci0gICAgICAgIH0sIHsKLSAgICAgICAgICAgIHBh
dHRlcm46IC9eKD86KD86MHxbMS05XVxkKilcLlxkKz8oPzpbZUVdKD86XGQrfFwrXGQrfC1cZCsp
KT98XC5cZCsoPzpbZUVdKD86XGQrfFwrXGQrfC1cZCspKT98KD86MHxbMS05XVxkKikoPzpbZUVd
KD86XGQrfFwrXGQrfC1cZCspKT98MHhbMC05YS1mQS1GXSt8MFhbMC05YS1mQS1GXSspLywKLSAg
ICAgICAgICAgIGFjdGlvbjogbnVtZXJpY0xpdGVyYWxBY3Rpb24KLSAgICAgICAgfSwgewotICAg
ICAgICAgICAgcGF0dGVybjogL14oPzoiKD86W14iXFxdfFxcKD86WyciXGJmbnJ0dl18W14nIlxi
Zm5ydHYwLTl4dV18MHx4WzAtOWEtZkEtRl1bMC05YS1mQS1GXXwoPzp1WzAtOWEtZkEtRl1bMC05
YS1mQS1GXVswLTlhLWZBLUZdWzAtOWEtZkEtRl0pKSkqInwnKD86W14nXFxdfFxcKD86WyciXGJm
bnJ0dl18W14nIlxiZm5ydHYwLTl4dV18MHx4WzAtOWEtZkEtRl1bMC05YS1mQS1GXXwoPzp1WzAt
OWEtZkEtRl1bMC05YS1mQS1GXVswLTlhLWZBLUZdWzAtOWEtZkEtRl0pKSkqJykvLAotICAgICAg
ICAgICAgYWN0aW9uOiBzdHJpbmdMaXRlcmFsQWN0aW9uCi0gICAgICAgIH0sIHsKLSAgICAgICAg
ICAgIHBhdHRlcm46IC9eKD86Jyg/OlteJ1xcXXxcXCg/OlsnIlxiZm5ydHZdfFteJyJcYmZucnR2
MC05eHVdfDB8eFswLTlhLWZBLUZdWzAtOWEtZkEtRl18KD86dVswLTlhLWZBLUZdWzAtOWEtZkEt
Rl1bMC05YS1mQS1GXVswLTlhLWZBLUZdKSkpKilcXCQvLAotICAgICAgICAgICAgYWN0aW9uOiBz
aW5nbGVRdW90ZVN0cmluZ1N0YXJ0QWN0aW9uCi0gICAgICAgIH0sIHsKLSAgICAgICAgICAgIHBh
dHRlcm46IC9eKD86KD86W14nXFxdfFxcKD86WyciXGJmbnJ0dl18W14nIlxiZm5ydHYwLTl4dV18
MHx4WzAtOWEtZkEtRl1bMC05YS1mQS1GXXwoPzp1WzAtOWEtZkEtRl1bMC05YS1mQS1GXVswLTlh
LWZBLUZdWzAtOWEtZkEtRl0pKSkqJykvLAotICAgICAgICAgICAgYWN0aW9uOiBzaW5nbGVRdW90
ZVN0cmluZ0VuZEFjdGlvbiwKLSAgICAgICAgICAgIGNvbnRpbnVlU3RhdGVDb25kaXRpb246IHRo
aXMuQ29udGludWVTdGF0ZS5TaW5nbGVRdW90ZVN0cmluZwotICAgICAgICB9LCB7Ci0gICAgICAg
ICAgICBwYXR0ZXJuOiAvXig/Oig/OlteJ1xcXXxcXCg/OlsnIlxiZm5ydHZdfFteJyJcYmZucnR2
MC05eHVdfDB8eFswLTlhLWZBLUZdWzAtOWEtZkEtRl18KD86dVswLTlhLWZBLUZdWzAtOWEtZkEt
Rl1bMC05YS1mQS1GXVswLTlhLWZBLUZdKSkpKilcXCQvLAotICAgICAgICAgICAgYWN0aW9uOiBz
aW5nbGVRdW90ZVN0cmluZ01pZGRsZUFjdGlvbiwKLSAgICAgICAgICAgIGNvbnRpbnVlU3RhdGVD
b25kaXRpb246IHRoaXMuQ29udGludWVTdGF0ZS5TaW5nbGVRdW90ZVN0cmluZwotICAgICAgICB9
LCB7Ci0gICAgICAgICAgICBwYXR0ZXJuOiAvXig/OiIoPzpbXiJcXF18XFwoPzpbJyJcYmZucnR2
XXxbXiciXGJmbnJ0djAtOXh1XXwwfHhbMC05YS1mQS1GXVswLTlhLWZBLUZdfCg/OnVbMC05YS1m
QS1GXVswLTlhLWZBLUZdWzAtOWEtZkEtRl1bMC05YS1mQS1GXSkpKSopXFwkLywKLSAgICAgICAg
ICAgIGFjdGlvbjogZG91YmxlUXVvdGVTdHJpbmdTdGFydEFjdGlvbgotICAgICAgICB9LCB7Ci0g
ICAgICAgICAgICBwYXR0ZXJuOiAvXig/Oig/OlteIlxcXXxcXCg/OlsnIlxiZm5ydHZdfFteJyJc
YmZucnR2MC05eHVdfDB8eFswLTlhLWZBLUZdWzAtOWEtZkEtRl18KD86dVswLTlhLWZBLUZdWzAt
OWEtZkEtRl1bMC05YS1mQS1GXVswLTlhLWZBLUZdKSkpKiIpLywKLSAgICAgICAgICAgIGFjdGlv
bjogZG91YmxlUXVvdGVTdHJpbmdFbmRBY3Rpb24sCi0gICAgICAgICAgICBjb250aW51ZVN0YXRl
Q29uZGl0aW9uOiB0aGlzLkNvbnRpbnVlU3RhdGUuRG91YmxlUXVvdGVTdHJpbmcKLSAgICAgICAg
fSwgewotICAgICAgICAgICAgcGF0dGVybjogL14oPzooPzpbXiJcXF18XFwoPzpbJyJcYmZucnR2
XXxbXiciXGJmbnJ0djAtOXh1XXwwfHhbMC05YS1mQS1GXVswLTlhLWZBLUZdfCg/OnVbMC05YS1m
QS1GXVswLTlhLWZBLUZdWzAtOWEtZkEtRl1bMC05YS1mQS1GXSkpKSopXFwkLywKLSAgICAgICAg
ICAgIGFjdGlvbjogZG91YmxlUXVvdGVTdHJpbmdNaWRkbGVBY3Rpb24sCi0gICAgICAgICAgICBj
b250aW51ZVN0YXRlQ29uZGl0aW9uOiB0aGlzLkNvbnRpbnVlU3RhdGUuRG91YmxlUXVvdGVTdHJp
bmcKLSAgICAgICAgfSwgewotICAgICAgICAgICAgcGF0dGVybjogL14oPzooPzpbYS16QS1aXXxb
JF9dfFxcKD86dVswLTlhLWZBLUZdWzAtOWEtZkEtRl1bMC05YS1mQS1GXVswLTlhLWZBLUZdKSko
PzooPzpbYS16QS1aXXxbJF9dfFxcKD86dVswLTlhLWZBLUZdWzAtOWEtZkEtRl1bMC05YS1mQS1G
XVswLTlhLWZBLUZdKSl8WzAtOV0pKikvLAotICAgICAgICAgICAgYWN0aW9uOiBpZGVudE9yS2V5
d29yZEFjdGlvbiwKLSAgICAgICAgICAgIGRvbnRBcHBlbmROb25Ub2tlbjogdHJ1ZQotICAgICAg
ICB9LCB7Ci0gICAgICAgICAgICBwYXR0ZXJuOiAvXlwpLywKLSAgICAgICAgICAgIGFjdGlvbjog
cmlnaHRQYXJlbkFjdGlvbiwKLSAgICAgICAgICAgIGRvbnRBcHBlbmROb25Ub2tlbjogdHJ1ZQot
ICAgICAgICB9LCB7Ci0gICAgICAgICAgICBwYXR0ZXJuOiAvXig/Ojw9fD49fD09PXw9PXwhPXwh
PT18XCtcK3xcLVwtfDw8fD4+fD4+PnwmJnxcfFx8fFwrPXxcLT18XCo9fCU9fDw8PXw+Pj18Pj4+
PXwmPXxcfD18Xj18W3t9XChcW1xdXC47LDw+XCtcLVwqJSZcfFxeIX5cPzo9XSkvLAotICAgICAg
ICAgICAgYWN0aW9uOiBwdW5jdHVhdG9yQWN0aW9uLAotICAgICAgICAgICAgZG9udEFwcGVuZE5v
blRva2VuOiB0cnVlCi0gICAgICAgIH0sIHsKLSAgICAgICAgICAgIHBhdHRlcm46IC9eKD86XC89
PykvLAotICAgICAgICAgICAgYWN0aW9uOiBkaXZQdW5jdHVhdG9yQWN0aW9uLAotICAgICAgICAg
ICAgc3RhdGVDb25kaXRpb246IHRoaXMuTGV4U3RhdGUuRGl2aXNpb25BbGxvd2VkLAotICAgICAg
ICAgICAgZG9udEFwcGVuZE5vblRva2VuOiB0cnVlCi0gICAgICAgIH0sIHsKLSAgICAgICAgICAg
IHBhdHRlcm46IC9eKD86XC8oPzooPzpcXC4pfFteXFwqXC9dKSg/Oig/OlxcLil8W15cXC9dKSpc
Lyg/Oig/OlthLXpBLVpdfFskX118XFwoPzp1WzAtOWEtZkEtRl1bMC05YS1mQS1GXVswLTlhLWZB
LUZdWzAtOWEtZkEtRl0pKXxbMC05XSkqKS8sCi0gICAgICAgICAgICBhY3Rpb246IHJlZ0V4cExp
dGVyYWxBY3Rpb24KLSAgICAgICAgfSwgewotICAgICAgICAgICAgcGF0dGVybjogL14oPzpcLyg/
Oig/OlxcLil8W15cXCpcL10pKD86KD86XFwuKXxbXlxcL10pKilcXCQvLAotICAgICAgICAgICAg
YWN0aW9uOiByZWdFeHBTdGFydEFjdGlvbgotICAgICAgICB9LCB7Ci0gICAgICAgICAgICBwYXR0
ZXJuOiAvXig/Oig/Oig/OlxcLil8W15cXC9dKSpcLyg/Oig/OlthLXpBLVpdfFskX118XFwoPzp1
WzAtOWEtZkEtRl1bMC05YS1mQS1GXVswLTlhLWZBLUZdWzAtOWEtZkEtRl0pKXxbMC05XSkqKS8s
Ci0gICAgICAgICAgICBhY3Rpb246IHJlZ0V4cEVuZEFjdGlvbiwKLSAgICAgICAgICAgIGNvbnRp
bnVlU3RhdGVDb25kaXRpb246IHRoaXMuQ29udGludWVTdGF0ZS5SZWdFeHAKLSAgICAgICAgfSwg
ewotICAgICAgICAgICAgcGF0dGVybjogL14oPzooPzooPzpcXC4pfFteXFwvXSkqKVxcJC8sCi0g
ICAgICAgICAgICBhY3Rpb246IHJlZ0V4cE1pZGRsZUFjdGlvbiwKLSAgICAgICAgICAgIGNvbnRp
bnVlU3RhdGVDb25kaXRpb246IHRoaXMuQ29udGludWVTdGF0ZS5SZWdFeHAKLSAgICAgICAgfV07
CisgICAgICAgIHBhdHRlcm46IC9eKD86XC9cLy4qKS8sCisgICAgICAgIGFjdGlvbjogc2luZ2xl
TGluZUNvbW1lbnRBY3Rpb24KKyAgICB9LCB7CisgICAgICAgIHBhdHRlcm46IC9eKD86XC9cKig/
OlteXCpdfFwqW15cL10pKlwqK1wvKS8sCisgICAgICAgIGFjdGlvbjogbXVsdGlMaW5lU2luZ2xl
TGluZUNvbW1lbnRBY3Rpb24KKyAgICB9LCB7CisgICAgICAgIHBhdHRlcm46IC9eKD86XC9cKig/
OlteXCpdfFwqW15cL10pKikvLAorICAgICAgICBhY3Rpb246IG11bHRpTGluZUNvbW1lbnRTdGFy
dEFjdGlvbgorICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjogL14oPzooPzpbXlwqXXxcKlteXC9d
KSpcKitcLykvLAorICAgICAgICBhY3Rpb246IG11bHRpTGluZUNvbW1lbnRFbmRBY3Rpb24sCisg
ICAgICAgIGNvbnRpbnVlU3RhdGVDb25kaXRpb246IHRoaXMuQ29udGludWVTdGF0ZS5Db21tZW50
CisgICAgfSwgeworICAgICAgICBwYXR0ZXJuOiAvXi4qLywKKyAgICAgICAgYWN0aW9uOiBtdWx0
aUxpbmVDb21tZW50TWlkZGxlQWN0aW9uLAorICAgICAgICBjb250aW51ZVN0YXRlQ29uZGl0aW9u
OiB0aGlzLkNvbnRpbnVlU3RhdGUuQ29tbWVudAorICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjog
L14oPzooPzowfFsxLTldXGQqKVwuXGQrPyg/OltlRV0oPzpcZCt8XCtcZCt8LVxkKykpP3xcLlxk
Kyg/OltlRV0oPzpcZCt8XCtcZCt8LVxkKykpP3woPzowfFsxLTldXGQqKSg/OltlRV0oPzpcZCt8
XCtcZCt8LVxkKykpP3wweFswLTlhLWZBLUZdK3wwWFswLTlhLWZBLUZdKykvLAorICAgICAgICBh
Y3Rpb246IG51bWVyaWNMaXRlcmFsQWN0aW9uCisgICAgfSwgeworICAgICAgICBwYXR0ZXJuOiAv
Xig/OiIoPzpbXiJcXF18XFwoPzpbJyJcYmZucnR2XXxbXiciXGJmbnJ0djAtOXh1XXwwfHhbMC05
YS1mQS1GXVswLTlhLWZBLUZdfCg/OnVbMC05YS1mQS1GXVswLTlhLWZBLUZdWzAtOWEtZkEtRl1b
MC05YS1mQS1GXSkpKSoifCcoPzpbXidcXF18XFwoPzpbJyJcYmZucnR2XXxbXiciXGJmbnJ0djAt
OXh1XXwwfHhbMC05YS1mQS1GXVswLTlhLWZBLUZdfCg/OnVbMC05YS1mQS1GXVswLTlhLWZBLUZd
WzAtOWEtZkEtRl1bMC05YS1mQS1GXSkpKSonKS8sCisgICAgICAgIGFjdGlvbjogc3RyaW5nTGl0
ZXJhbEFjdGlvbgorICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjogL14oPzonKD86W14nXFxdfFxc
KD86WyciXGJmbnJ0dl18W14nIlxiZm5ydHYwLTl4dV18MHx4WzAtOWEtZkEtRl1bMC05YS1mQS1G
XXwoPzp1WzAtOWEtZkEtRl1bMC05YS1mQS1GXVswLTlhLWZBLUZdWzAtOWEtZkEtRl0pKSkqKVxc
JC8sCisgICAgICAgIGFjdGlvbjogc2luZ2xlUXVvdGVTdHJpbmdTdGFydEFjdGlvbgorICAgIH0s
IHsKKyAgICAgICAgcGF0dGVybjogL14oPzooPzpbXidcXF18XFwoPzpbJyJcYmZucnR2XXxbXici
XGJmbnJ0djAtOXh1XXwwfHhbMC05YS1mQS1GXVswLTlhLWZBLUZdfCg/OnVbMC05YS1mQS1GXVsw
LTlhLWZBLUZdWzAtOWEtZkEtRl1bMC05YS1mQS1GXSkpKSonKS8sCisgICAgICAgIGFjdGlvbjog
c2luZ2xlUXVvdGVTdHJpbmdFbmRBY3Rpb24sCisgICAgICAgIGNvbnRpbnVlU3RhdGVDb25kaXRp
b246IHRoaXMuQ29udGludWVTdGF0ZS5TaW5nbGVRdW90ZVN0cmluZworICAgIH0sIHsKKyAgICAg
ICAgcGF0dGVybjogL14oPzooPzpbXidcXF18XFwoPzpbJyJcYmZucnR2XXxbXiciXGJmbnJ0djAt
OXh1XXwwfHhbMC05YS1mQS1GXVswLTlhLWZBLUZdfCg/OnVbMC05YS1mQS1GXVswLTlhLWZBLUZd
WzAtOWEtZkEtRl1bMC05YS1mQS1GXSkpKSopXFwkLywKKyAgICAgICAgYWN0aW9uOiBzaW5nbGVR
dW90ZVN0cmluZ01pZGRsZUFjdGlvbiwKKyAgICAgICAgY29udGludWVTdGF0ZUNvbmRpdGlvbjog
dGhpcy5Db250aW51ZVN0YXRlLlNpbmdsZVF1b3RlU3RyaW5nCisgICAgfSwgeworICAgICAgICBw
YXR0ZXJuOiAvXig/OiIoPzpbXiJcXF18XFwoPzpbJyJcYmZucnR2XXxbXiciXGJmbnJ0djAtOXh1
XXwwfHhbMC05YS1mQS1GXVswLTlhLWZBLUZdfCg/OnVbMC05YS1mQS1GXVswLTlhLWZBLUZdWzAt
OWEtZkEtRl1bMC05YS1mQS1GXSkpKSopXFwkLywKKyAgICAgICAgYWN0aW9uOiBkb3VibGVRdW90
ZVN0cmluZ1N0YXJ0QWN0aW9uCisgICAgfSwgeworICAgICAgICBwYXR0ZXJuOiAvXig/Oig/Olte
IlxcXXxcXCg/OlsnIlxiZm5ydHZdfFteJyJcYmZucnR2MC05eHVdfDB8eFswLTlhLWZBLUZdWzAt
OWEtZkEtRl18KD86dVswLTlhLWZBLUZdWzAtOWEtZkEtRl1bMC05YS1mQS1GXVswLTlhLWZBLUZd
KSkpKiIpLywKKyAgICAgICAgYWN0aW9uOiBkb3VibGVRdW90ZVN0cmluZ0VuZEFjdGlvbiwKKyAg
ICAgICAgY29udGludWVTdGF0ZUNvbmRpdGlvbjogdGhpcy5Db250aW51ZVN0YXRlLkRvdWJsZVF1
b3RlU3RyaW5nCisgICAgfSwgeworICAgICAgICBwYXR0ZXJuOiAvXig/Oig/OlteIlxcXXxcXCg/
OlsnIlxiZm5ydHZdfFteJyJcYmZucnR2MC05eHVdfDB8eFswLTlhLWZBLUZdWzAtOWEtZkEtRl18
KD86dVswLTlhLWZBLUZdWzAtOWEtZkEtRl1bMC05YS1mQS1GXVswLTlhLWZBLUZdKSkpKilcXCQv
LAorICAgICAgICBhY3Rpb246IGRvdWJsZVF1b3RlU3RyaW5nTWlkZGxlQWN0aW9uLAorICAgICAg
ICBjb250aW51ZVN0YXRlQ29uZGl0aW9uOiB0aGlzLkNvbnRpbnVlU3RhdGUuRG91YmxlUXVvdGVT
dHJpbmcKKyAgICB9LCB7CisgICAgICAgIHBhdHRlcm46IC9eKD86KD86W2EtekEtWl18WyRfXXxc
XCg/OnVbMC05YS1mQS1GXVswLTlhLWZBLUZdWzAtOWEtZkEtRl1bMC05YS1mQS1GXSkpKD86KD86
W2EtekEtWl18WyRfXXxcXCg/OnVbMC05YS1mQS1GXVswLTlhLWZBLUZdWzAtOWEtZkEtRl1bMC05
YS1mQS1GXSkpfFswLTldKSopLywKKyAgICAgICAgYWN0aW9uOiBpZGVudE9yS2V5d29yZEFjdGlv
biwKKyAgICAgICAgZG9udEFwcGVuZE5vblRva2VuOiB0cnVlCisgICAgfSwgeworICAgICAgICBw
YXR0ZXJuOiAvXlwpLywKKyAgICAgICAgYWN0aW9uOiByaWdodFBhcmVuQWN0aW9uLAorICAgICAg
ICBkb250QXBwZW5kTm9uVG9rZW46IHRydWUKKyAgICB9LCB7CisgICAgICAgIHBhdHRlcm46IC9e
KD86PD18Pj18PT09fD09fCE9fCE9PXxcK1wrfFwtXC18PDx8Pj58Pj4+fCYmfFx8XHx8XCs9fFwt
PXxcKj18JT18PDw9fD4+PXw+Pj49fCY9fFx8PXxePXxbe31cKFxbXF1cLjssPD5cK1wtXColJlx8
XF4hflw/Oj1dKS8sCisgICAgICAgIGFjdGlvbjogcHVuY3R1YXRvckFjdGlvbiwKKyAgICAgICAg
ZG9udEFwcGVuZE5vblRva2VuOiB0cnVlCisgICAgfSwgeworICAgICAgICBwYXR0ZXJuOiAvXig/
OlwvPT8pLywKKyAgICAgICAgYWN0aW9uOiBkaXZQdW5jdHVhdG9yQWN0aW9uLAorICAgICAgICBs
ZXhTdGF0ZUNvbmRpdGlvbjogdGhpcy5MZXhTdGF0ZS5EaXZpc2lvbkFsbG93ZWQsCisgICAgICAg
IGRvbnRBcHBlbmROb25Ub2tlbjogdHJ1ZQorICAgIH0sIHsKKyAgICAgICAgcGF0dGVybjogL14o
PzpcLyg/Oig/OlxcLil8W15cXCpcL10pKD86KD86XFwuKXxbXlxcL10pKlwvKD86KD86W2EtekEt
Wl18WyRfXXxcXCg/OnVbMC05YS1mQS1GXVswLTlhLWZBLUZdWzAtOWEtZkEtRl1bMC05YS1mQS1G
XSkpfFswLTldKSopLywKKyAgICAgICAgYWN0aW9uOiByZWdFeHBMaXRlcmFsQWN0aW9uCisgICAg
fSwgeworICAgICAgICBwYXR0ZXJuOiAvXig/OlwvKD86KD86XFwuKXxbXlxcKlwvXSkoPzooPzpc
XC4pfFteXFwvXSkqKVxcJC8sCisgICAgICAgIGFjdGlvbjogcmVnRXhwU3RhcnRBY3Rpb24KKyAg
ICB9LCB7CisgICAgICAgIHBhdHRlcm46IC9eKD86KD86KD86XFwuKXxbXlxcL10pKlwvKD86KD86
W2EtekEtWl18WyRfXXxcXCg/OnVbMC05YS1mQS1GXVswLTlhLWZBLUZdWzAtOWEtZkEtRl1bMC05
YS1mQS1GXSkpfFswLTldKSopLywKKyAgICAgICAgYWN0aW9uOiByZWdFeHBFbmRBY3Rpb24sCisg
ICAgICAgIGNvbnRpbnVlU3RhdGVDb25kaXRpb246IHRoaXMuQ29udGludWVTdGF0ZS5SZWdFeHAK
KyAgICB9LCB7CisgICAgICAgIHBhdHRlcm46IC9eKD86KD86KD86XFwuKXxbXlxcL10pKilcXCQv
LAorICAgICAgICBhY3Rpb246IHJlZ0V4cE1pZGRsZUFjdGlvbiwKKyAgICAgICAgY29udGludWVT
dGF0ZUNvbmRpdGlvbjogdGhpcy5Db250aW51ZVN0YXRlLlJlZ0V4cAorICAgIH1dOwogICAgIAog
ICAgIGZ1bmN0aW9uIHNpbmdsZUxpbmVDb21tZW50QWN0aW9uKHRva2VuKQogICAgIHsKQEAgLTEx
OTgsNyArMjA1Miw4IEBAIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlU3ludGF4SGlnaGwK
ICAgICAgICAgY29uc3Qga2V5d29yZHMgPSBbIm51bGwiLCAidHJ1ZSIsICJmYWxzZSIsICJicmVh
ayIsICJjYXNlIiwgImNhdGNoIiwgImNvbnN0IiwgImRlZmF1bHQiLCAiZmluYWxseSIsICJmb3Ii
LCAiaW5zdGFuY2VvZiIsICJuZXciLCAidmFyIiwgImNvbnRpbnVlIiwgImZ1bmN0aW9uIiwgInJl
dHVybiIsICJ2b2lkIiwgImRlbGV0ZSIsICJpZiIsICJ0aGlzIiwgImRvIiwgIndoaWxlIiwgImVs
c2UiLCAiaW4iLCAic3dpdGNoIiwgInRocm93IiwgInRyeSIsICJ0eXBlb2YiLCAid2l0aCIsICJk
ZWJ1Z2dlciIsICJjbGFzcyIsICJlbnVtIiwgImV4cG9ydCIsICJleHRlbmRzIiwgImltcG9ydCIs
ICJzdXBlciIsICJnZXQiLCAic2V0Il07CiAgICAgICAgIHRoaXMuY3Vyc29yICs9IHRva2VuLmxl
bmd0aDsKICAgICAgICAgaWYgKGtleXdvcmRzLmluZGV4T2YodG9rZW4pID09PSAtMSkgewotICAg
ICAgICAgICAgdGhpcy5ub25Ub2tlbiArPSB0b2tlbjsKKyAgICAgICAgICAgIHRoaXMuYXBwZW5k
Tm9uVG9rZW4oKTsKKyAgICAgICAgICAgIHRoaXMubGluZUZyYWdtZW50LmFwcGVuZENoaWxkKHRo
aXMuY3JlYXRlU3Bhbih0b2tlbiwgIndlYmtpdC1qYXZhc2NyaXB0LWlkZW50IikpOwogICAgICAg
ICAgICAgdGhpcy5sZXhTdGF0ZSA9IHRoaXMuTGV4U3RhdGUuRGl2aXNpb25BbGxvd2VkOwogICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgdGhpcy5hcHBlbmROb25Ub2tlbigpOwpAQCAtMTIy
OSwxMzIgKzIwODQsNCBAQCBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZVN5bnRheEhpZ2hs
CiAgICAgfQogfQogCi1XZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZVN5bnRheEhpZ2hsaWdo
dGVyLnByb3RvdHlwZSA9IHsKLSAgICBwcm9jZXNzOiBmdW5jdGlvbigpCi0gICAgewotICAgICAg
ICAvLyBTcGxpdCB1cCB0aGUgd29yayBpbnRvIGNodW5rcyBzbyB3ZSBkb24ndCBibG9jayB0aGUK
LSAgICAgICAgLy8gVUkgdGhyZWFkIHdoaWxlIHByb2Nlc3NpbmcuCi0KLSAgICAgICAgdmFyIHJv
d3MgPSB0aGlzLnRhYmxlLnJvd3M7Ci0gICAgICAgIHZhciByb3dzTGVuZ3RoID0gcm93cy5sZW5n
dGg7Ci0gICAgICAgIGNvbnN0IHRva2Vuc1BlckNodW5rID0gMTAwOwotICAgICAgICBjb25zdCBs
aW5lTGVuZ3RoTGltaXQgPSAyMDAwMDsKLSAgICAgICAgCi0gICAgICAgIHZhciBib3VuZFByb2Nl
c3NDaHVuayA9IHByb2Nlc3NDaHVuay5iaW5kKHRoaXMpOwotICAgICAgICB2YXIgcHJvY2Vzc0No
dW5rSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChib3VuZFByb2Nlc3NDaHVuaywgMjUpOwotICAgICAg
ICBib3VuZFByb2Nlc3NDaHVuaygpOwotICAgICAgICAKLSAgICAgICAgZnVuY3Rpb24gcHJvY2Vz
c0NodW5rKCkKLSAgICAgICAgewotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0b2tl
bnNQZXJDaHVuazsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHRoaXMuY3Vyc29yID49IHRo
aXMubGluZUNvZGUubGVuZ3RoKQotICAgICAgICAgICAgICAgICAgICBtb3ZlVG9OZXh0TGluZS5j
YWxsKHRoaXMpOwotICAgICAgICAgICAgICAgIGlmICh0aGlzLmxpbmVJbmRleCA+PSByb3dzTGVu
Z3RoKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMuc291cmNlRnJhbWUuZGlzcGF0Y2hFdmVu
dFRvTGlzdGVuZXJzKCJzeW50YXggaGlnaGxpZ2h0aW5nIGNvbXBsZXRlIik7Ci0gICAgICAgICAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYg
KHRoaXMuY3Vyc29yID4gbGluZUxlbmd0aExpbWl0KSB7Ci0gICAgICAgICAgICAgICAgICAgIHZh
ciBjb2RlRnJhZ21lbnQgPSB0aGlzLmxpbmVDb2RlLnN1YnN0cmluZyh0aGlzLmN1cnNvcik7Ci0g
ICAgICAgICAgICAgICAgICAgIHRoaXMubm9uVG9rZW4gKz0gY29kZUZyYWdtZW50OwotICAgICAg
ICAgICAgICAgICAgICB0aGlzLmN1cnNvciArPSBjb2RlRnJhZ21lbnQubGVuZ3RoOwotICAgICAg
ICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIHRoaXMubGV4KCk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGZ1bmN0aW9uIG1vdmVUb05leHRMaW5lKCkK
LSAgICAgICAgewotICAgICAgICAgICAgdGhpcy5hcHBlbmROb25Ub2tlbigpOwotICAgICAgICAg
ICAgCi0gICAgICAgICAgICB2YXIgcm93ID0gcm93c1t0aGlzLmxpbmVJbmRleF07Ci0gICAgICAg
ICAgICB2YXIgbGluZSA9IHJvdyA/IHJvdy5jZWxsc1sxXSA6IG51bGw7Ci0gICAgICAgICAgICBp
ZiAobGluZSAmJiB0aGlzLmxpbmVGcmFnbWVudCkgewotICAgICAgICAgICAgICAgIEVsZW1lbnQu
cHJvdG90eXBlLnJlbW92ZUNoaWxkcmVuLmNhbGwobGluZSk7Ci0gICAgICAgICAgICAgICAgCi0g
ICAgICAgICAgICAgICAgbGluZS5hcHBlbmRDaGlsZCh0aGlzLmxpbmVGcmFnbWVudCk7Ci0gICAg
ICAgICAgICAgICAgaWYgKHRoaXMubWVzc2FnZUJ1YmJsZSkKLSAgICAgICAgICAgICAgICAgICAg
bGluZS5hcHBlbmRDaGlsZCh0aGlzLm1lc3NhZ2VCdWJibGUpOwotICAgICAgICAgICAgICAgIHRo
aXMubGluZUZyYWdtZW50ID0gbnVsbDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRoaXMu
bGluZUluZGV4Kys7Ci0gICAgICAgICAgICBpZiAodGhpcy5saW5lSW5kZXggPj0gcm93c0xlbmd0
aCAmJiBwcm9jZXNzQ2h1bmtJbnRlcnZhbCkgewotICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2
YWwocHJvY2Vzc0NodW5rSW50ZXJ2YWwpOwotICAgICAgICAgICAgICAgIHRoaXMuc291cmNlRnJh
bWUuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKCJzeW50YXggaGlnaGxpZ2h0aW5nIGNvbXBsZXRl
Iik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
cm93ID0gcm93c1t0aGlzLmxpbmVJbmRleF07Ci0gICAgICAgICAgICBsaW5lID0gcm93ID8gcm93
LmNlbGxzWzFdIDogbnVsbDsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgdGhpcy5tZXNzYWdl
QnViYmxlID0gbnVsbDsKLSAgICAgICAgICAgIGlmIChsaW5lLmxhc3RDaGlsZCAmJiBsaW5lLmxh
c3RDaGlsZC5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREUgJiYgbGluZS5sYXN0Q2hpbGQu
aGFzU3R5bGVDbGFzcygid2Via2l0LWh0bWwtbWVzc2FnZS1idWJibGUiKSkgewotICAgICAgICAg
ICAgICAgIHRoaXMubWVzc2FnZUJ1YmJsZSA9IGxpbmUubGFzdENoaWxkOwotICAgICAgICAgICAg
ICAgIGxpbmUucmVtb3ZlQ2hpbGQodGhpcy5tZXNzYWdlQnViYmxlKTsKLSAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgdGhpcy5saW5lQ29kZSA9IGxpbmUudGV4dENvbnRlbnQ7Ci0gICAgICAg
ICAgICB0aGlzLmxpbmVGcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQo
KTsKLSAgICAgICAgICAgIHRoaXMuY3Vyc29yID0gMDsKLSAgICAgICAgICAgIGlmICghbGluZSkK
LSAgICAgICAgICAgICAgICBtb3ZlVG9OZXh0TGluZSgpOwotICAgICAgICB9Ci0gICAgfSwKLSAg
ICAKLSAgICBsZXg6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHZhciB0b2tlbiA9IG51bGw7
Ci0gICAgICAgIHZhciBjb2RlRnJhZ21lbnQgPSB0aGlzLmxpbmVDb2RlLnN1YnN0cmluZyh0aGlz
LmN1cnNvcik7Ci0gICAgICAgIAotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMucnVs
ZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIHZhciBydWxlID0gdGhpcy5ydWxlc1tpXTsK
LSAgICAgICAgICAgIHZhciBydWxlQ29udGludWVTdGF0ZUNvbmRpdGlvbiA9IHR5cGVvZiBydWxl
LmNvbnRpbnVlU3RhdGVDb25kaXRpb24gPT09ICJ1bmRlZmluZWQiID8gdGhpcy5Db250aW51ZVN0
YXRlLk5vbmUgOiBydWxlLmNvbnRpbnVlU3RhdGVDb25kaXRpb247Ci0gICAgICAgICAgICBpZiAo
dGhpcy5jb250aW51ZVN0YXRlID09PSBydWxlQ29udGludWVTdGF0ZUNvbmRpdGlvbikgewotICAg
ICAgICAgICAgICAgIGlmICh0eXBlb2YgcnVsZS5zdGF0ZUNvbmRpdGlvbiAhPT0gInVuZGVmaW5l
ZCIgJiYgdGhpcy5sZXhTdGF0ZSAhPT0gcnVsZS5zdGF0ZUNvbmRpdGlvbikKLSAgICAgICAgICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgdmFyIG1hdGNoID0gcnVsZS5wYXR0
ZXJuLmV4ZWMoY29kZUZyYWdtZW50KTsKLSAgICAgICAgICAgICAgICBpZiAobWF0Y2gpIHsKLSAg
ICAgICAgICAgICAgICAgICAgdG9rZW4gPSBtYXRjaFswXTsKLSAgICAgICAgICAgICAgICAgICAg
aWYgKHRva2VuKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJ1bGUuZG9udEFwcGVu
ZE5vblRva2VuKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXBwZW5kTm9uVG9r
ZW4oKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBydWxlLmFjdGlvbi5jYWxsKHRo
aXMsIHRva2VuKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICB0aGlzLm5vblRva2VuICs9IGNvZGVGcmFn
bWVudFswXTsKLSAgICAgICAgdGhpcy5jdXJzb3IrKzsKLSAgICB9LAotICAgIAotICAgIGFwcGVu
ZE5vblRva2VuOiBmdW5jdGlvbiAoKQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMubm9uVG9rZW4u
bGVuZ3RoID4gMCkgewotICAgICAgICAgICAgdGhpcy5saW5lRnJhZ21lbnQuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGhpcy5ub25Ub2tlbikpOwotICAgICAgICAgICAgdGhp
cy5ub25Ub2tlbiA9ICIiOwotICAgICAgICB9Ci0gICAgfSwKLSAgICAKLSAgICBzeW50YXhIaWdo
bGlnaHROb2RlOiBmdW5jdGlvbihub2RlKQotICAgIHsKLSAgICAgICAgdGhpcy5saW5lQ29kZSA9
IG5vZGUudGV4dENvbnRlbnQ7Ci0gICAgICAgIHRoaXMubGluZUZyYWdtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwotICAgICAgICB0aGlzLmN1cnNvciA9IDA7Ci0gICAg
ICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgICAgICBpZiAodGhpcy5jdXJzb3IgPj0gdGhpcy5s
aW5lQ29kZS5sZW5ndGgpIHsKLSAgICAgICAgICAgICAgICB2YXIgY29kZUZyYWdtZW50ID0gdGhp
cy5saW5lQ29kZS5zdWJzdHJpbmcodGhpcy5jdXJzb3IpOwotICAgICAgICAgICAgICAgIHRoaXMu
bm9uVG9rZW4gKz0gY29kZUZyYWdtZW50OwotICAgICAgICAgICAgICAgIHRoaXMuY3Vyc29yICs9
IGNvZGVGcmFnbWVudC5sZW5ndGg7Ci0gICAgICAgICAgICAgICAgdGhpcy5hcHBlbmROb25Ub2tl
bigpOwotICAgICAgICAgICAgICAgIHdoaWxlIChub2RlLmZpcnN0Q2hpbGQpCi0gICAgICAgICAg
ICAgICAgICAgIG5vZGUucmVtb3ZlQ2hpbGQobm9kZS5maXJzdENoaWxkKTsKLSAgICAgICAgICAg
ICAgICBub2RlLmFwcGVuZENoaWxkKHRoaXMubGluZUZyYWdtZW50KTsKLSAgICAgICAgICAgICAg
ICB0aGlzLmxpbmVGcmFnbWVudCA9bnVsbDsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgICAgICB9Ci0KLSAgICAgICAgICAgIHRoaXMubGV4KCk7Ci0gICAgICAgIH0KLSAgICB9Ci19
Ci0KLVdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlU3ludGF4SGlnaGxpZ2h0ZXIucHJvdG90
eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5Tb3VyY2VTeW50YXhIaWdobGlnaGVyLnByb3Rv
dHlwZTsKK1dlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlU3ludGF4SGlnaGxpZ2h0ZXIucHJv
dG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5Tb3VyY2VTeW50YXhIaWdobGlnaHRlci5w
cm90b3R5cGU7CkluZGV4OiBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yU3lu
dGF4SGlnaGxpZ2h0LmNzcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvaW5zcGVjdG9yU3ludGF4SGlnaGxpZ2h0LmNzcwkocmV2aXNpb24gNTAzOTYpCisrKyBXZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yU3ludGF4SGlnaGxpZ2h0LmNzcwkod29y
a2luZyBjb3B5KQpAQCAtMjYsMzMgKzI2LDI5IEBACiAgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLS53ZWJr
aXQtY3NzLWNvbW1lbnQgeyAKLSAgICBjb2xvcjogcmdiKDAsIDExNiwgMCk7Ci19Ci0KLS53ZWJr
aXQtY3NzLXN0cmluZywgLndlYmtpdC1jc3Mta2V5d29yZCwgLndlYmtpdC1jc3MtdW5pdCB7Ci0g
ICAgY29sb3I6IHJnYig3LCAxNDQsIDE1NCk7Ci19Ci0KLS53ZWJraXQtY3NzLW51bWJlciB7Ci0g
ICAgY29sb3I6IHJnYig1MCwgMCwgMjU1KTsKLX0KLQotLndlYmtpdC1jc3MtcHJvcGVydHksIC53
ZWJraXQtY3NzLWF0LXJ1bGUgewotICAgIGNvbG9yOiByZ2IoMjAwLCAwLCAwKTsKLX0KLQotLndl
YmtpdC1jc3MtdXJsIHsKLSAgICBjb2xvcjogcmdiKDAsIDAsIDApOwotfQotCi0ud2Via2l0LWNz
cy1zZWxlY3RvciB7Ci0gICAgY29sb3I6IHJnYigwLCAwLCAwKTsKLX0KLQotLndlYmtpdC1jc3Mt
cHNldWRvLWNsYXNzIHsKLSAgICBjb2xvcjogcmdiKDEyOCwgMTI4LCAxMjgpOwotfQorIC53ZWJr
aXQtY3NzLWNvbW1lbnQgeyAKKyAgICAgY29sb3I6IHJnYigwLCAxMTYsIDApOworIH0KKworIC53
ZWJraXQtY3NzLXVybCwgLndlYmtpdC1jc3MtY29sb3IsIC53ZWJraXQtY3NzLXN0cmluZywgLndl
YmtpdC1jc3Mta2V5d29yZCB7CisgICAgIGNvbG9yOiByZ2IoNywgMTQ0LCAxNTQpOworIH0KKwor
IC53ZWJraXQtY3NzLW51bWJlciB7CisgICAgIGNvbG9yOiByZ2IoNTAsIDAsIDI1NSk7CisgfQor
CisgLndlYmtpdC1jc3MtcHJvcGVydHksIC53ZWJraXQtY3NzLWF0LXJ1bGUgeworICAgICBjb2xv
cjogcmdiKDIwMCwgMCwgMCk7CisgfQorCisgLndlYmtpdC1jc3Mtc2VsZWN0b3IgeworICAgICBy
Z2IoMCwgMCwgMCk7CisgfQorCisgLndlYmtpdC1jc3MtaW1wb3J0YW50IHsKKyAgICAgY29sb3I6
IHJnYigyMDAsIDAsIDE4MCk7CisgfQogCiAud2Via2l0LWphdmFzY3JpcHQtY29tbWVudCB7CiAg
ICAgY29sb3I6IHJnYigwLCAxMTYsIDApOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNTAzOTcpCisrKyBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAw
OS0xMS0wMSAgS2Vpc2hpIEhhdHRvcmkgIDxjYXNleS5oYXR0b3JpQGdtYWlsLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBSZXdyaXRlIENTU1NvdXJjZVN5bnRheEhpZ2hsaWdodGVyIHNvIGl0IHNoYXJlcyBtb3JlIGNv
ZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwOTA3
CisKKyAgICAgICAgKiBpbnNwZWN0b3IvY3NzLXN5bnRheC1oaWdobGlnaHQtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY3NzLXN5bnRheC1oaWdobGlnaHQuaHRtbDog
QWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2phdmFzY3JpcHQtc3ludGF4LWhpZ2hsaWdodC1l
eHBlY3RlZC50eHQ6CisKIDIwMDktMTEtMDIgIFJvbGFuZCBTdGVpbmVyICA8cm9sYW5kc3RlaW5l
ckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2ZSBIeWF0dC4KSW5kZXg6
IExheW91dFRlc3RzL2luc3BlY3Rvci9jc3Mtc3ludGF4LWhpZ2hsaWdodC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy1zeW50YXgtaGlnaGxpZ2h0
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2luc3BlY3Rvci9jc3Mt
c3ludGF4LWhpZ2hsaWdodC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTEg
QEAKK1Rlc3RzIHRoYXQgQ1NTU291cmNlU3ludGF4SGlnaGxpZ2h0ZXIgZGV0ZWN0cyB0aGUgdG9r
ZW5zLgorCit3ZWJraXQtY3NzLXNlbGVjdG9yCit3ZWJraXQtY3NzLXNlbGVjdG9yLCosd2Via2l0
LWNzcy1zZWxlY3Rvcgord2Via2l0LWNzcy1hdC1ydWxlLCosd2Via2l0LWNzcy11cmwsKgord2Vi
a2l0LWNzcy1hdC1ydWxlLCosd2Via2l0LWNzcy11cmwsKix3ZWJraXQtY3NzLWtleXdvcmQsKix3
ZWJraXQtY3NzLWtleXdvcmQsKgord2Via2l0LWNzcy1hdC1ydWxlLCosd2Via2l0LWNzcy1rZXl3
b3JkLCosd2Via2l0LWNzcy1zZWxlY3RvciwqLHdlYmtpdC1jc3MtcHJvcGVydHksKix3ZWJraXQt
Y3NzLWtleXdvcmQsKgord2Via2l0LWNzcy1hdC1ydWxlLCosd2Via2l0LWNzcy1wcm9wZXJ0eSwq
Cit3ZWJraXQtY3NzLXNlbGVjdG9yLCosd2Via2l0LWNzcy1wcm9wZXJ0eSwqLHdlYmtpdC1jc3Mt
a2V5d29yZCwqCit3ZWJraXQtY3NzLXNlbGVjdG9yLCosd2Via2l0LWNzcy1wcm9wZXJ0eSwqLHdl
YmtpdC1jc3Mta2V5d29yZCwqLHdlYmtpdC1jc3MtaW1wb3J0YW50LCoKKwpJbmRleDogTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2Nzcy1zeW50YXgtaGlnaGxpZ2h0Lmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy1zeW50YXgtaGlnaGxpZ2h0Lmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzLXN5bnRheC1oaWdobGlnaHQuaHRtbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw2NSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSJldmFsdWF0ZS1pbi1mcm9udGVuZC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitmdW5jdGlv
biBkb2l0KCkKK3sKKyAgICBmdW5jdGlvbiBjYWxsYmFjayhyZXN1bHQpCisgICAgeworICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3VsdC5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIG91
dHB1dChyZXN1bHRbaV0pOworICAgICAgICBub3RpZnlEb25lKCk7CisgICAgfQorICAgIGV2YWx1
YXRlSW5XZWJJbnNwZWN0b3IoImRvaXRBbmREdW1wIiwgY2FsbGJhY2spOworfQorCis8L3Njcmlw
dD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJvbmxvYWQoKSI+Cis8cD4KK1Rlc3RzIHRoYXQg
Q1NTU291cmNlU3ludGF4SGlnaGxpZ2h0ZXIgZGV0ZWN0cyB0aGUgdG9rZW5zLgorPC9wPgorCis8
ZGl2IGlkPSJmcm9udGVuZC1zY3JpcHQiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgorZnVuY3Rpb24g
ZG9pdEFuZER1bXAodGVzdENvbnRyb2xsZXIpIHsKKyAgICB0ZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7CisgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIHJlc3Vs
dCA9IFtdOworICAgICAgICAKKyAgICAgICAgcmVzdWx0LnB1c2goZHVtcFN5bnRheEhpZ2hsaWdo
dCgiYVtocmVmPScvJ10iKSk7CisgICAgICAgIHJlc3VsdC5wdXNoKGR1bXBTeW50YXhIaWdobGln
aHQoIiNjb250ZW50ID4gYTpob3ZlciIpKTsKKyAgICAgICAgcmVzdWx0LnB1c2goZHVtcFN5bnRh
eEhpZ2hsaWdodCgiQGltcG9ydCB1cmwoc3R5bGUuY3NzKTsiKSk7CisgICAgICAgIHJlc3VsdC5w
dXNoKGR1bXBTeW50YXhIaWdobGlnaHQoIkBpbXBvcnQgdXJsKFwic3R5bGUuY3NzXCIpIHByb2pl
Y3Rpb24sIHR2OyIpKTsKKyAgICAgICAgcmVzdWx0LnB1c2goZHVtcFN5bnRheEhpZ2hsaWdodCgi
QG1lZGlhIHNjcmVlbiB7IGJvZHkgeyBjb2xvcjogcmVkOyB9IH0iKSk7CisgICAgICAgIHJlc3Vs
dC5wdXNoKGR1bXBTeW50YXhIaWdobGlnaHQoIkBmb250LWZhY2UgeyBmb250LWZhbWlseTogTXlI
ZWx2ZXRpY2E7IH0iKSk7CisgICAgICAgIHJlc3VsdC5wdXNoKGR1bXBTeW50YXhIaWdobGlnaHQo
InAgeyBjb2xvcjogY29sb3I7IHJlZDogcmVkOyB9IikpOworICAgICAgICByZXN1bHQucHVzaChk
dW1wU3ludGF4SGlnaGxpZ2h0KCJwIHsgY29sb3I6IHJlZCAhaW1wb3J0YW50OyB9IikpOworICAg
ICAgICAKKyAgICAgICAgdGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZShyZXN1bHQpOworICAgICAg
ICAKKyAgICB9LCAwKTsKK30KK2Z1bmN0aW9uIGR1bXBTeW50YXhIaWdobGlnaHQoc3RyKSB7Cisg
ICAgdmFyIG5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgbm9kZS50
ZXh0Q29udGVudCA9IHN0cjsKKyAgICB2YXIgamF2YXNjcmlwdFN5bnRheEhpZ2hsaWdodGVyID0g
bmV3IFdlYkluc3BlY3Rvci5DU1NTb3VyY2VTeW50YXhIaWdobGlnaHRlcihudWxsLCBudWxsKTsK
KyAgICBqYXZhc2NyaXB0U3ludGF4SGlnaGxpZ2h0ZXIuc3ludGF4SGlnaGxpZ2h0Tm9kZShub2Rl
KTsKKyAgICB2YXIgbm9kZV9wYXJ0cyA9IFtdOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9k
ZS5jaGlsZE5vZGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIGlmIChub2RlLmNoaWxkTm9kZXNb
aV0uZ2V0QXR0cmlidXRlKSB7CisgICAgICAgICAgICBub2RlX3BhcnRzLnB1c2gobm9kZS5jaGls
ZE5vZGVzW2ldLmdldEF0dHJpYnV0ZSgiY2xhc3MiKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICBub2RlX3BhcnRzLnB1c2goIioiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1
cm4gbm9kZV9wYXJ0cy5qb2luKCIsIik7Cit9Cis8L2Rpdj4KKworPGRpdiBpZD0ib3V0cHV0Ij4K
KzwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
amF2YXNjcmlwdC1zeW50YXgtaGlnaGxpZ2h0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9pbnNwZWN0b3IvamF2YXNjcmlwdC1zeW50YXgtaGlnaGxpZ2h0LWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gNTAzOTYpCisrKyBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvamF2YXNjcmlw
dC1zeW50YXgtaGlnaGxpZ2h0LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMywxMiAr
MywxMiBAQCBUZXN0cyB0aGF0IEphdmFTY3JpcHRTb3VyY2VTeW50YXhIaWdobGlnCiB3ZWJraXQt
amF2YXNjcmlwdC1rZXl3b3JkLHdlYmtpdC1qYXZhc2NyaXB0LXN0cmluZywqCiB3ZWJraXQtamF2
YXNjcmlwdC1yZWdleHAKIHdlYmtpdC1qYXZhc2NyaXB0LWNvbW1lbnQKLXdlYmtpdC1qYXZhc2Ny
aXB0LW51bWJlciwqLHdlYmtpdC1qYXZhc2NyaXB0LW51bWJlciwqLHdlYmtpdC1qYXZhc2NyaXB0
LXJlZ2V4cCwqLHdlYmtpdC1qYXZhc2NyaXB0LXN0cmluZywqCi13ZWJraXQtamF2YXNjcmlwdC1z
dHJpbmcsKix3ZWJraXQtamF2YXNjcmlwdC1udW1iZXIKLXdlYmtpdC1qYXZhc2NyaXB0LWtleXdv
cmQsKix3ZWJraXQtamF2YXNjcmlwdC1udW1iZXIsd2Via2l0LWphdmFzY3JpcHQtY29tbWVudCwq
LHdlYmtpdC1qYXZhc2NyaXB0LW51bWJlcgotd2Via2l0LWphdmFzY3JpcHQtY29tbWVudCx3ZWJr
aXQtamF2YXNjcmlwdC1yZWdleHAsKix3ZWJraXQtamF2YXNjcmlwdC1zdHJpbmcsKgord2Via2l0
LWphdmFzY3JpcHQtbnVtYmVyLCosd2Via2l0LWphdmFzY3JpcHQtbnVtYmVyLCosd2Via2l0LWph
dmFzY3JpcHQtcmVnZXhwLCosd2Via2l0LWphdmFzY3JpcHQtaWRlbnQsKix3ZWJraXQtamF2YXNj
cmlwdC1zdHJpbmcsKgord2Via2l0LWphdmFzY3JpcHQtc3RyaW5nLCosd2Via2l0LWphdmFzY3Jp
cHQtaWRlbnQsKix3ZWJraXQtamF2YXNjcmlwdC1udW1iZXIKK3dlYmtpdC1qYXZhc2NyaXB0LWtl
eXdvcmQsKix3ZWJraXQtamF2YXNjcmlwdC1pZGVudCwqLHdlYmtpdC1qYXZhc2NyaXB0LW51bWJl
cix3ZWJraXQtamF2YXNjcmlwdC1jb21tZW50LCosd2Via2l0LWphdmFzY3JpcHQtbnVtYmVyCit3
ZWJraXQtamF2YXNjcmlwdC1jb21tZW50LHdlYmtpdC1qYXZhc2NyaXB0LXJlZ2V4cCwqLHdlYmtp
dC1qYXZhc2NyaXB0LWlkZW50LCosd2Via2l0LWphdmFzY3JpcHQtc3RyaW5nLCoKIHdlYmtpdC1q
YXZhc2NyaXB0LXN0cmluZywqCiB3ZWJraXQtamF2YXNjcmlwdC1zdHJpbmcsKgogd2Via2l0LWph
dmFzY3JpcHQtc3RyaW5nLCoKLSosd2Via2l0LWphdmFzY3JpcHQtY29tbWVudCwqCit3ZWJraXQt
amF2YXNjcmlwdC1pZGVudCx3ZWJraXQtamF2YXNjcmlwdC1jb21tZW50LHdlYmtpdC1qYXZhc2Ny
aXB0LWlkZW50CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>