<?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>144281</bug_id>
          
          <creation_ts>2015-04-27 15:13:13 -0700</creation_ts>
          <short_desc>keywords (&quot;super&quot;, &quot;delete&quot;, etc) should be valid method names</short_desc>
          <delta_ts>2016-01-20 21:32:14 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          
          <blocked>140491</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Erik Arvidsson">arv</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rniwa</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1089221</commentid>
    <comment_count>0</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2015-04-27 15:13:13 -0700</bug_when>
    <thetext>http://trac.webkit.org/browser/trunk/LayoutTests/js/script-tests/class-syntax-super.js#L40

shouldThrow(&apos;x = class extends Base { constructor() { super(); } super() {} }&apos;, &apos;&quot;SyntaxError: \&apos;super\&apos; keyword unexpected here&quot;&apos;);

If you reformat this:

x = class extends Base {
  constructor() {
    super();
  }
  super() {
  }
}

It should be clear that all this does is define a method named super. There is on restriction on method names like that. Method names can be any keyword.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089229</commentid>
    <comment_count>1</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-04-27 15:28:50 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 144282 ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1091027</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-05-01 18:48:44 -0700</bug_when>
    <thetext>Oh wait, this is a separate bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154428</commentid>
    <comment_count>3</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-01-11 11:40:10 -0800</bug_when>
    <thetext>I&apos;ll take this. I have a simple fix and we ran into this in the inspector recently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154496</commentid>
    <comment_count>4</comment_count>
      <attachid>268714</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-01-11 14:35:25 -0800</bug_when>
    <thetext>Created attachment 268714
[PATCH] Proposed Fix

This catches another bug (bug 152985) and fixes a few issues with keyword method names.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154569</commentid>
    <comment_count>5</comment_count>
      <attachid>268714</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-01-11 17:24:29 -0800</bug_when>
    <thetext>Comment on attachment 268714
[PATCH] Proposed Fix

View in context: https://bugs.webkit.org/attachment.cgi?id=268714&amp;action=review

&gt; Source/JavaScriptCore/parser/Parser.cpp:2158
&gt; +                restoreSavePoint(savePoint);
&gt; +                isStaticMethod = false;

Instead of setting a boolean flag back, can we move the condition above into the if condition,
initialize isStaticMethod to false, and then set it true when we don&apos;t match open paren?

That would make this code easier to read without the comment.

&gt; Source/JavaScriptCore/parser/Parser.cpp:2184
&gt; +            if (!isGenerator &amp;&amp; (match(IDENT) || match(STRING) || match(DOUBLE) || match(INTEGER) || match(OPENBRACKET) || m_token.m_type &amp; KeywordTokenFlag)) {

Why don&apos;t we use isIdentifierOrKeyword instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154586</commentid>
    <comment_count>6</comment_count>
      <attachid>268714</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-01-11 17:41:10 -0800</bug_when>
    <thetext>Comment on attachment 268714
[PATCH] Proposed Fix

View in context: https://bugs.webkit.org/attachment.cgi?id=268714&amp;action=review

&gt;&gt; Source/JavaScriptCore/parser/Parser.cpp:2184
&gt;&gt; +            if (!isGenerator &amp;&amp; (match(IDENT) || match(STRING) || match(DOUBLE) || match(INTEGER) || match(OPENBRACKET) || m_token.m_type &amp; KeywordTokenFlag)) {
&gt; 
&gt; Why don&apos;t we use isIdentifierOrKeyword instead?

Awesome! I didn&apos;t see this existed. Here we can use matchIdentifierOrKeyword()!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154587</commentid>
    <comment_count>7</comment_count>
      <attachid>268734</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-01-11 17:42:35 -0800</bug_when>
    <thetext>Created attachment 268734
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154594</commentid>
    <comment_count>8</comment_count>
      <attachid>268734</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-01-11 18:13:32 -0800</bug_when>
    <thetext>Comment on attachment 268734
[PATCH] Proposed Fix

View in context: https://bugs.webkit.org/attachment.cgi?id=268734&amp;action=review

&gt; Source/JavaScriptCore/parser/Parser.cpp:2203
&gt; +            if (m_token.m_type &amp; KeywordTokenFlag)
&gt; +                goto namedKeyword;

It&apos;s annoying that we have to use goto here but I can&apos;t think of a better way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154604</commentid>
    <comment_count>9</comment_count>
      <attachid>268734</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-01-11 18:57:59 -0800</bug_when>
    <thetext>Comment on attachment 268734
[PATCH] Proposed Fix

View in context: https://bugs.webkit.org/attachment.cgi?id=268734&amp;action=review

&gt;&gt; Source/JavaScriptCore/parser/Parser.cpp:2203
&gt;&gt; +                goto namedKeyword;
&gt; 
&gt; It&apos;s annoying that we have to use goto here but I can&apos;t think of a better way.

Yeah. `goto` matched the parseProperty handling of keywords in object literals, so I just matched that and used a goto here. We could convert to a bunch of if/else statements, but I&apos;m not sure that would be any clearer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154605</commentid>
    <comment_count>10</comment_count>
      <attachid>268734</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-11 19:02:23 -0800</bug_when>
    <thetext>Comment on attachment 268734
[PATCH] Proposed Fix

Clearing flags on attachment: 268734

Committed r194881: &lt;http://trac.webkit.org/changeset/194881&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154606</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-11 19:02:27 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1157210</commentid>
    <comment_count>12</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-01-20 21:32:14 -0800</bug_when>
    <thetext>*** Bug 153296 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268714</attachid>
            <date>2016-01-11 14:35:25 -0800</date>
            <delta_ts>2016-01-11 17:42:35 -0800</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>keywords-1.patch</filename>
            <type>text/plain</type>
            <size>19185</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwZjBjYjZmLi4xOTgxNzA5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTYtMDEt
MTEgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBrZXl3
b3JkcyAoInN1cGVyIiwgImRlbGV0ZSIsIGV0Yykgc2hvdWxkIGJlIHZhbGlkIG1ldGhvZCBuYW1l
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0Mjgx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBqcy9j
bGFzcy1zeW50YXgtc3VwZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpzL3NjcmlwdC10ZXN0
cy9jbGFzcy1zeW50YXgtc3VwZXIuanM6CisgICAgICAgIFVwZGF0ZSB0aGUgdGVzdCBmb3IgdGhl
IGNvcnJlY3QgZXhwZWN0ZWQgcmVzdWx0LgorCisgICAgICAgICoganMva2V5d29yZC1tZXRob2Qt
bmFtZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9rZXl3b3JkLW1ldGhvZC1u
YW1lcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9zY3JpcHQtdGVzdHMva2V5d29yZC1tZXRo
b2QtbmFtZXMuanM6IEFkZGVkLgorICAgICAgICBBZGQgdGVzdHMgdG8gY292ZXIgcGFyc2luZyBh
bGxvd3Mga2V5d29yZHMgaW4gbWV0aG9kIG5hbWUgc3ludGF4LgorCiAyMDE2LTAxLTA2ICBKb3Nl
cGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogTWlncmF0ZSBQYWdlIFRpbWVsaW5lIHJlY29yZGluZyB0byBTY3JpcHRQcm9maWxlcgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvY2xhc3Mtc3ludGF4LXN1cGVyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2pzL2NsYXNzLXN5bnRheC1zdXBlci1leHBlY3RlZC50eHQKaW5kZXggZjI4
YzliYS4uYTljNTU0ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvY2xhc3Mtc3ludGF4LXN1
cGVyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9qcy9jbGFzcy1zeW50YXgtc3VwZXIt
ZXhwZWN0ZWQudHh0CkBAIC0xMyw3ICsxMyw3IEBAIFBBU1MgKG5ldyBEZXJpdmVkKS5iYXNlTWV0
aG9kSW5HZXR0ZXJTZXR0ZXI6OjoobmV3IEJhc2UpLmJhc2VNZXRob2QKIFBBU1MgKG5ldyBEZXJp
dmVkKS5iYXNlTWV0aG9kSW5HZXR0ZXJTZXR0ZXIgPSAxOyB2YWx1ZUluU2V0dGVyOjo6KG5ldyBC
YXNlKS5iYXNlTWV0aG9kCiBQQVNTIERlcml2ZWQuc3RhdGljTWV0aG9kKCk6OjoiYmFzZTMiCiBQ
QVNTIChuZXcgU2Vjb25kRGVyaXZlZCkuY2hhaW5NZXRob2QoKS50b1N0cmluZygpOjo6WyJiYXNl
IiwgImRlcml2ZWQiLCAic2Vjb25kRGVyaXZlZCJdLnRvU3RyaW5nKCkKLVBBU1MgeCA9IGNsYXNz
IGV4dGVuZHMgQmFzZSB7IGNvbnN0cnVjdG9yKCkgeyBzdXBlcigpOyB9IHN1cGVyKCkge30gfTo6
OlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIGtleXdvcmQgJ3N1cGVyJworUEFTUyB4ID0gY2xhc3Mg
ZXh0ZW5kcyBCYXNlIHsgY29uc3RydWN0b3IoKSB7IHN1cGVyKCk7IH0gc3VwZXIoKSB7fSB9CiBQ
QVNTIHggPSBjbGFzcyBleHRlbmRzIEJhc2UgeyBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoKTsgfSBt
ZXRob2QoKSB7IHN1cGVyKCkgfSB9Ojo6U3ludGF4RXJyb3I6IENhbm5vdCBjYWxsIHN1cGVyKCkg
b3V0c2lkZSBvZiBhIGNsYXNzIGNvbnN0cnVjdG9yLgogUEFTUyB4ID0gY2xhc3MgZXh0ZW5kcyBC
YXNlIHsgY29uc3RydWN0b3IoKSB7IHN1cGVyKCk7IH0gbWV0aG9kKCkgeyBzdXBlciB9IH06OjpT
eW50YXhFcnJvcjogQ2Fubm90IHJlZmVyZW5jZSBzdXBlci4KIFBBU1MgeCA9IGNsYXNzIGV4dGVu
ZHMgQmFzZSB7IGNvbnN0cnVjdG9yKCkgeyBzdXBlcigpOyB9IG1ldGhvZCgpIHsgcmV0dXJuIG5l
dyBzdXBlciB9IH06OjpTeW50YXhFcnJvcjogQ2Fubm90IHVzZSBuZXcgd2l0aCBzdXBlci4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2tleXdvcmQtbWV0aG9kLW5hbWVzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2pzL2tleXdvcmQtbWV0aG9kLW5hbWVzLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OTkzYThkCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvanMva2V5d29yZC1tZXRob2QtbmFtZXMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsOSBAQAorVGVzdHMgZm9yIEVTNiBtZXRob2Qgc3ludGF4IGluIGNsYXNzZXMgYW5kIG9i
amVjdCBsaXRlcmFscyB3aXRoIGtleXdvcmQgbmFtZXMKKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9rZXl3b3JkLW1ldGhvZC1uYW1lcy5odG1s
IGIvTGF5b3V0VGVzdHMvanMva2V5d29yZC1tZXRob2QtbmFtZXMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMzkwOTZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvanMva2V5d29yZC1tZXRob2QtbmFtZXMuaHRtbApAQCAtMCwwICsxLDggQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9rZXl3b3Jk
LW1ldGhvZC1uYW1lcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvY2xhc3Mtc3ludGF4LXN1cGVyLmpzIGIvTGF5b3V0
VGVzdHMvanMvc2NyaXB0LXRlc3RzL2NsYXNzLXN5bnRheC1zdXBlci5qcwppbmRleCAwODgyM2Y2
Li5mODYzN2MzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvY2xhc3Mt
c3ludGF4LXN1cGVyLmpzCisrKyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9jbGFzcy1z
eW50YXgtc3VwZXIuanMKQEAgLTg2LDcgKzg2LDcgQEAgc2hvdWxkQmUoJyhuZXcgRGVyaXZlZCku
YmFzZU1ldGhvZEluR2V0dGVyU2V0dGVyJywgJyhuZXcgQmFzZSkuYmFzZU1ldGhvZCcpOwogc2hv
dWxkQmUoJyhuZXcgRGVyaXZlZCkuYmFzZU1ldGhvZEluR2V0dGVyU2V0dGVyID0gMTsgdmFsdWVJ
blNldHRlcicsICcobmV3IEJhc2UpLmJhc2VNZXRob2QnKTsKIHNob3VsZEJlKCdEZXJpdmVkLnN0
YXRpY01ldGhvZCgpJywgJyJiYXNlMyInKTsKIHNob3VsZEJlKCcobmV3IFNlY29uZERlcml2ZWQp
LmNoYWluTWV0aG9kKCkudG9TdHJpbmcoKScsICdbImJhc2UiLCAiZGVyaXZlZCIsICJzZWNvbmRE
ZXJpdmVkIl0udG9TdHJpbmcoKScpOwotc2hvdWxkVGhyb3coJ3ggPSBjbGFzcyBleHRlbmRzIEJh
c2UgeyBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoKTsgfSBzdXBlcigpIHt9IH0nLCAnIlN5bnRheEVy
cm9yOiBVbmV4cGVjdGVkIGtleXdvcmQgXCdzdXBlclwnIicpOworc2hvdWxkTm90VGhyb3coJ3gg
PSBjbGFzcyBleHRlbmRzIEJhc2UgeyBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoKTsgfSBzdXBlcigp
IHt9IH0nKTsKIHNob3VsZFRocm93KCd4ID0gY2xhc3MgZXh0ZW5kcyBCYXNlIHsgY29uc3RydWN0
b3IoKSB7IHN1cGVyKCk7IH0gbWV0aG9kKCkgeyBzdXBlcigpIH0gfScsCiAgICAgJyJTeW50YXhF
cnJvcjogQ2Fubm90IGNhbGwgc3VwZXIoKSBvdXRzaWRlIG9mIGEgY2xhc3MgY29uc3RydWN0b3Iu
IicpOwogc2hvdWxkVGhyb3coJ3ggPSBjbGFzcyBleHRlbmRzIEJhc2UgeyBjb25zdHJ1Y3Rvcigp
IHsgc3VwZXIoKTsgfSBtZXRob2QoKSB7IHN1cGVyIH0gfScsICciU3ludGF4RXJyb3I6IENhbm5v
dCByZWZlcmVuY2Ugc3VwZXIuIicpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0
LXRlc3RzL2tleXdvcmQtbWV0aG9kLW5hbWVzLmpzIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRl
c3RzL2tleXdvcmQtbWV0aG9kLW5hbWVzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmMwMjEzY2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQt
dGVzdHMva2V5d29yZC1tZXRob2QtbmFtZXMuanMKQEAgLTAsMCArMSw0OTYgQEAKK2Rlc2NyaXB0
aW9uKCdUZXN0cyBmb3IgRVM2IG1ldGhvZCBzeW50YXggaW4gY2xhc3NlcyBhbmQgb2JqZWN0IGxp
dGVyYWxzIHdpdGgga2V5d29yZCBuYW1lcycpOworCisvLyBUZXN0cyBrZXl3b3JkcyAvIHJlc2Vy
dmVkIHdvcmRzLCBhbmQgYWxzbyBzb21lIG5vbi1yZXNlcnZlZCB3b3JkcyB3aXRoIHNwZWNpYWwg
bWVhbmluZyAoaW4sIG9mLCBnZXQsIHNldCkuCisKK2NsYXNzIENsYXNzV2l0aEtleXdvcmRNZXRo
b2ROYW1lcyB7CisgICAgY29uc3RydWN0b3IoKSB7IH0gLy8gTk9URTogVGhpcyBoYXMgc2VtYW50
aWMgbWVhbmluZyBoZXJlLCBidXQgaXMgYWxsb3dlZC4KKyAgICBhYnN0cmFjdCgpIHsgfQorICAg
IGFyZ3VtZW50cygpIHsgfQorICAgIGJvb2xlYW4oKSB7IH0KKyAgICBicmVhaygpIHsgfQorICAg
IGJ5dGUoKSB7IH0KKyAgICBjYXNlKCkgeyB9CisgICAgY2F0Y2goKSB7IH0KKyAgICBjaGFyKCkg
eyB9CisgICAgY2xhc3MoKSB7IH0KKyAgICBjb25zdCgpIHsgfQorICAgIGNvbnRpbnVlKCkgeyB9
CisgICAgZGVidWdnZXIoKSB7IH0KKyAgICBkZWZhdWx0KCkgeyB9CisgICAgZGVsZXRlKCkgeyB9
CisgICAgZG8oKSB7IH0KKyAgICBkb3VibGUoKSB7IH0KKyAgICBlbHNlKCkgeyB9CisgICAgZW51
bSgpIHsgfQorICAgIGV2YWwoKSB7IH0KKyAgICBleHBvcnQoKSB7IH0KKyAgICBleHRlbmRzKCkg
eyB9CisgICAgZmFsc2UoKSB7IH0KKyAgICBmaW5hbCgpIHsgfQorICAgIGZpbmFsbHkoKSB7IH0K
KyAgICBmbG9hdCgpIHsgfQorICAgIGZvcigpIHsgfQorICAgIGZ1bmN0aW9uKCkgeyB9CisgICAg
Z2V0KCkgeyB9CisgICAgZ290bygpIHsgfQorICAgIGlmKCkgeyB9CisgICAgaW1wbGVtZW50cygp
IHsgfQorICAgIGltcG9ydCgpIHsgfQorICAgIGluKCkgeyB9CisgICAgaW5zdGFuY2VvZigpIHsg
fQorICAgIGludCgpIHsgfQorICAgIGludGVyZmFjZSgpIHsgfQorICAgIGxldCgpIHsgfQorICAg
IGxvbmcoKSB7IH0KKyAgICBuYXRpdmUoKSB7IH0KKyAgICBuZXcoKSB7IH0KKyAgICBudWxsKCkg
eyB9CisgICAgcGFja2FnZSgpIHsgfQorICAgIHByaXZhdGUoKSB7IH0KKyAgICBwcm90ZWN0ZWQo
KSB7IH0KKyAgICBwdWJsaWMoKSB7IH0KKyAgICBvZigpIHsgfQorICAgIHJldHVybigpIHsgfQor
ICAgIHNldCgpIHsgfQorICAgIHNob3J0KCkgeyB9CisgICAgc3RhdGljKCkgeyB9CisgICAgc3Vw
ZXIoKSB7IH0KKyAgICBzd2l0Y2goKSB7IH0KKyAgICBzeW5jaHJvbml6ZWQoKSB7IH0KKyAgICB0
aGlzKCkgeyB9CisgICAgdGhyb3coKSB7IH0KKyAgICB0aHJvd3MoKSB7IH0KKyAgICB0cmFuc2ll
bnQoKSB7IH0KKyAgICB0cnVlKCkgeyB9CisgICAgdHJ5KCkgeyB9CisgICAgdHlwZW9mKCkgeyB9
CisgICAgdmFyKCkgeyB9CisgICAgdm9pZCgpIHsgfQorICAgIHZvbGF0aWxlKCkgeyB9CisgICAg
d2hpbGUoKSB7IH0KKyAgICB3aXRoKCkgeyB9CisgICAgeWllbGQoKSB7IH0KK307CisKK2NsYXNz
IENsYXNzV2l0aEtleXdvcmRTdGF0aWNNZXRob2ROYW1lcyB7CisgICAgc3RhdGljIGNvbnN0cnVj
dG9yKCkgeyB9CisgICAgc3RhdGljIGFic3RyYWN0KCkgeyB9CisgICAgLy8gRklYTUU6IDxodHRw
czovL3dlYmtpdC5vcmcvYi8xNTI5ODU+IEVTNjogQ2xhc3NlczogU2hvdWxkIGJlIGFsbG93ZWQg
dG8gY3JlYXRlIGEgc3RhdGljIG1ldGhvZCB3aXRoIG5hbWUgImFyZ3VtZW50cyIKKyAgICAvLyBz
dGF0aWMgYXJndW1lbnRzKCkgeyB9CisgICAgc3RhdGljIGJvb2xlYW4oKSB7IH0KKyAgICBzdGF0
aWMgYnJlYWsoKSB7IH0KKyAgICBzdGF0aWMgYnl0ZSgpIHsgfQorICAgIHN0YXRpYyBjYXNlKCkg
eyB9CisgICAgc3RhdGljIGNhdGNoKCkgeyB9CisgICAgc3RhdGljIGNoYXIoKSB7IH0KKyAgICBz
dGF0aWMgY2xhc3MoKSB7IH0KKyAgICBzdGF0aWMgY29uc3QoKSB7IH0KKyAgICBzdGF0aWMgY29u
dGludWUoKSB7IH0KKyAgICBzdGF0aWMgZGVidWdnZXIoKSB7IH0KKyAgICBzdGF0aWMgZGVmYXVs
dCgpIHsgfQorICAgIHN0YXRpYyBkZWxldGUoKSB7IH0KKyAgICBzdGF0aWMgZG8oKSB7IH0KKyAg
ICBzdGF0aWMgZG91YmxlKCkgeyB9CisgICAgc3RhdGljIGVsc2UoKSB7IH0KKyAgICBzdGF0aWMg
ZW51bSgpIHsgfQorICAgIHN0YXRpYyBldmFsKCkgeyB9CisgICAgc3RhdGljIGV4cG9ydCgpIHsg
fQorICAgIHN0YXRpYyBleHRlbmRzKCkgeyB9CisgICAgc3RhdGljIGZhbHNlKCkgeyB9CisgICAg
c3RhdGljIGZpbmFsKCkgeyB9CisgICAgc3RhdGljIGZpbmFsbHkoKSB7IH0KKyAgICBzdGF0aWMg
ZmxvYXQoKSB7IH0KKyAgICBzdGF0aWMgZm9yKCkgeyB9CisgICAgc3RhdGljIGZ1bmN0aW9uKCkg
eyB9CisgICAgc3RhdGljIGdldCgpIHsgfQorICAgIHN0YXRpYyBnb3RvKCkgeyB9CisgICAgc3Rh
dGljIGlmKCkgeyB9CisgICAgc3RhdGljIGltcGxlbWVudHMoKSB7IH0KKyAgICBzdGF0aWMgaW1w
b3J0KCkgeyB9CisgICAgc3RhdGljIGluKCkgeyB9CisgICAgc3RhdGljIGluc3RhbmNlb2YoKSB7
IH0KKyAgICBzdGF0aWMgaW50KCkgeyB9CisgICAgc3RhdGljIGludGVyZmFjZSgpIHsgfQorICAg
IHN0YXRpYyBsZXQoKSB7IH0KKyAgICBzdGF0aWMgbG9uZygpIHsgfQorICAgIHN0YXRpYyBuYXRp
dmUoKSB7IH0KKyAgICBzdGF0aWMgbmV3KCkgeyB9CisgICAgc3RhdGljIG51bGwoKSB7IH0KKyAg
ICBzdGF0aWMgcGFja2FnZSgpIHsgfQorICAgIHN0YXRpYyBwcml2YXRlKCkgeyB9CisgICAgc3Rh
dGljIHByb3RlY3RlZCgpIHsgfQorICAgIHN0YXRpYyBwdWJsaWMoKSB7IH0KKyAgICBzdGF0aWMg
b2YoKSB7IH0KKyAgICBzdGF0aWMgcmV0dXJuKCkgeyB9CisgICAgc3RhdGljIHNldCgpIHsgfQor
ICAgIHN0YXRpYyBzaG9ydCgpIHsgfQorICAgIHN0YXRpYyBzdGF0aWMoKSB7IH0KKyAgICBzdGF0
aWMgc3VwZXIoKSB7IH0KKyAgICBzdGF0aWMgc3dpdGNoKCkgeyB9CisgICAgc3RhdGljIHN5bmNo
cm9uaXplZCgpIHsgfQorICAgIHN0YXRpYyB0aGlzKCkgeyB9CisgICAgc3RhdGljIHRocm93KCkg
eyB9CisgICAgc3RhdGljIHRocm93cygpIHsgfQorICAgIHN0YXRpYyB0cmFuc2llbnQoKSB7IH0K
KyAgICBzdGF0aWMgdHJ1ZSgpIHsgfQorICAgIHN0YXRpYyB0cnkoKSB7IH0KKyAgICBzdGF0aWMg
dHlwZW9mKCkgeyB9CisgICAgc3RhdGljIHZhcigpIHsgfQorICAgIHN0YXRpYyB2b2lkKCkgeyB9
CisgICAgc3RhdGljIHZvbGF0aWxlKCkgeyB9CisgICAgc3RhdGljIHdoaWxlKCkgeyB9CisgICAg
c3RhdGljIHdpdGgoKSB7IH0KKyAgICBzdGF0aWMgeWllbGQoKSB7IH0KK307CisKK2NsYXNzIENs
YXNzV2l0aEtleXdvcmRHZXR0ZXJNZXRob2ROYW1lcyB7CisgICAgLy8gZ2V0IGNvbnN0cnVjdG9y
KCkgeyB9IChnZXR0ZXIgYGNvbnN0cnVjdG9yYCBub3QgYWxsb3dlZCkKKyAgICBnZXQgYWJzdHJh
Y3QoKSB7IH0KKyAgICBnZXQgYXJndW1lbnRzKCkgeyB9CisgICAgZ2V0IGJvb2xlYW4oKSB7IH0K
KyAgICBnZXQgYnJlYWsoKSB7IH0KKyAgICBnZXQgYnl0ZSgpIHsgfQorICAgIGdldCBjYXNlKCkg
eyB9CisgICAgZ2V0IGNhdGNoKCkgeyB9CisgICAgZ2V0IGNoYXIoKSB7IH0KKyAgICBnZXQgY2xh
c3MoKSB7IH0KKyAgICBnZXQgY29uc3QoKSB7IH0KKyAgICBnZXQgY29udGludWUoKSB7IH0KKyAg
ICBnZXQgZGVidWdnZXIoKSB7IH0KKyAgICBnZXQgZGVmYXVsdCgpIHsgfQorICAgIGdldCBkZWxl
dGUoKSB7IH0KKyAgICBnZXQgZG8oKSB7IH0KKyAgICBnZXQgZG91YmxlKCkgeyB9CisgICAgZ2V0
IGVsc2UoKSB7IH0KKyAgICBnZXQgZW51bSgpIHsgfQorICAgIGdldCBldmFsKCkgeyB9CisgICAg
Z2V0IGV4cG9ydCgpIHsgfQorICAgIGdldCBleHRlbmRzKCkgeyB9CisgICAgZ2V0IGZhbHNlKCkg
eyB9CisgICAgZ2V0IGZpbmFsKCkgeyB9CisgICAgZ2V0IGZpbmFsbHkoKSB7IH0KKyAgICBnZXQg
ZmxvYXQoKSB7IH0KKyAgICBnZXQgZm9yKCkgeyB9CisgICAgZ2V0IGZ1bmN0aW9uKCkgeyB9Cisg
ICAgZ2V0IGdldCgpIHsgfQorICAgIGdldCBnb3RvKCkgeyB9CisgICAgZ2V0IGlmKCkgeyB9Cisg
ICAgZ2V0IGltcGxlbWVudHMoKSB7IH0KKyAgICBnZXQgaW1wb3J0KCkgeyB9CisgICAgZ2V0IGlu
KCkgeyB9CisgICAgZ2V0IGluc3RhbmNlb2YoKSB7IH0KKyAgICBnZXQgaW50KCkgeyB9CisgICAg
Z2V0IGludGVyZmFjZSgpIHsgfQorICAgIGdldCBsZXQoKSB7IH0KKyAgICBnZXQgbG9uZygpIHsg
fQorICAgIGdldCBuYXRpdmUoKSB7IH0KKyAgICBnZXQgbmV3KCkgeyB9CisgICAgZ2V0IG51bGwo
KSB7IH0KKyAgICBnZXQgcGFja2FnZSgpIHsgfQorICAgIGdldCBwcml2YXRlKCkgeyB9CisgICAg
Z2V0IHByb3RlY3RlZCgpIHsgfQorICAgIGdldCBwdWJsaWMoKSB7IH0KKyAgICBnZXQgb2YoKSB7
IH0KKyAgICBnZXQgcmV0dXJuKCkgeyB9CisgICAgZ2V0IHNldCgpIHsgfQorICAgIGdldCBzaG9y
dCgpIHsgfQorICAgIGdldCBzdGF0aWMoKSB7IH0KKyAgICBnZXQgc3VwZXIoKSB7IH0KKyAgICBn
ZXQgc3dpdGNoKCkgeyB9CisgICAgZ2V0IHN5bmNocm9uaXplZCgpIHsgfQorICAgIGdldCB0aGlz
KCkgeyB9CisgICAgZ2V0IHRocm93KCkgeyB9CisgICAgZ2V0IHRocm93cygpIHsgfQorICAgIGdl
dCB0cmFuc2llbnQoKSB7IH0KKyAgICBnZXQgdHJ1ZSgpIHsgfQorICAgIGdldCB0cnkoKSB7IH0K
KyAgICBnZXQgdHlwZW9mKCkgeyB9CisgICAgZ2V0IHZhcigpIHsgfQorICAgIGdldCB2b2lkKCkg
eyB9CisgICAgZ2V0IHZvbGF0aWxlKCkgeyB9CisgICAgZ2V0IHdoaWxlKCkgeyB9CisgICAgZ2V0
IHdpdGgoKSB7IH0KKyAgICBnZXQgeWllbGQoKSB7IH0KK307CisKK2NsYXNzIENsYXNzV2l0aEtl
eXdvcmRTZXR0ZXJNZXRob2ROYW1lcyB7CisgICAgLy8gc2V0IGNvbnN0cnVjdG9yKCkgeyB9IChz
ZXR0ZXIgYGNvbnN0cnVjdG9yYCBub3QgYWxsb3dlZCkKKyAgICBzZXQgYWJzdHJhY3QoeCkgeyB9
CisgICAgc2V0IGFyZ3VtZW50cyh4KSB7IH0KKyAgICBzZXQgYm9vbGVhbih4KSB7IH0KKyAgICBz
ZXQgYnJlYWsoeCkgeyB9CisgICAgc2V0IGJ5dGUoeCkgeyB9CisgICAgc2V0IGNhc2UoeCkgeyB9
CisgICAgc2V0IGNhdGNoKHgpIHsgfQorICAgIHNldCBjaGFyKHgpIHsgfQorICAgIHNldCBjbGFz
cyh4KSB7IH0KKyAgICBzZXQgY29uc3QoeCkgeyB9CisgICAgc2V0IGNvbnRpbnVlKHgpIHsgfQor
ICAgIHNldCBkZWJ1Z2dlcih4KSB7IH0KKyAgICBzZXQgZGVmYXVsdCh4KSB7IH0KKyAgICBzZXQg
ZGVsZXRlKHgpIHsgfQorICAgIHNldCBkbyh4KSB7IH0KKyAgICBzZXQgZG91YmxlKHgpIHsgfQor
ICAgIHNldCBlbHNlKHgpIHsgfQorICAgIHNldCBlbnVtKHgpIHsgfQorICAgIHNldCBldmFsKHgp
IHsgfQorICAgIHNldCBleHBvcnQoeCkgeyB9CisgICAgc2V0IGV4dGVuZHMoeCkgeyB9CisgICAg
c2V0IGZhbHNlKHgpIHsgfQorICAgIHNldCBmaW5hbCh4KSB7IH0KKyAgICBzZXQgZmluYWxseSh4
KSB7IH0KKyAgICBzZXQgZmxvYXQoeCkgeyB9CisgICAgc2V0IGZvcih4KSB7IH0KKyAgICBzZXQg
ZnVuY3Rpb24oeCkgeyB9CisgICAgc2V0IGdldCh4KSB7IH0KKyAgICBzZXQgZ290byh4KSB7IH0K
KyAgICBzZXQgaWYoeCkgeyB9CisgICAgc2V0IGltcGxlbWVudHMoeCkgeyB9CisgICAgc2V0IGlt
cG9ydCh4KSB7IH0KKyAgICBzZXQgaW4oeCkgeyB9CisgICAgc2V0IGluc3RhbmNlb2YoeCkgeyB9
CisgICAgc2V0IGludCh4KSB7IH0KKyAgICBzZXQgaW50ZXJmYWNlKHgpIHsgfQorICAgIHNldCBs
ZXQoeCkgeyB9CisgICAgc2V0IGxvbmcoeCkgeyB9CisgICAgc2V0IG5hdGl2ZSh4KSB7IH0KKyAg
ICBzZXQgbmV3KHgpIHsgfQorICAgIHNldCBudWxsKHgpIHsgfQorICAgIHNldCBwYWNrYWdlKHgp
IHsgfQorICAgIHNldCBwcml2YXRlKHgpIHsgfQorICAgIHNldCBwcm90ZWN0ZWQoeCkgeyB9Cisg
ICAgc2V0IHB1YmxpYyh4KSB7IH0KKyAgICBzZXQgb2YoeCkgeyB9CisgICAgc2V0IHJldHVybih4
KSB7IH0KKyAgICBzZXQgc2V0KHgpIHsgfQorICAgIHNldCBzaG9ydCh4KSB7IH0KKyAgICBzZXQg
c3RhdGljKHgpIHsgfQorICAgIHNldCBzdXBlcih4KSB7IH0KKyAgICBzZXQgc3dpdGNoKHgpIHsg
fQorICAgIHNldCBzeW5jaHJvbml6ZWQoeCkgeyB9CisgICAgc2V0IHRoaXMoeCkgeyB9CisgICAg
c2V0IHRocm93KHgpIHsgfQorICAgIHNldCB0aHJvd3MoeCkgeyB9CisgICAgc2V0IHRyYW5zaWVu
dCh4KSB7IH0KKyAgICBzZXQgdHJ1ZSh4KSB7IH0KKyAgICBzZXQgdHJ5KHgpIHsgfQorICAgIHNl
dCB0eXBlb2YoeCkgeyB9CisgICAgc2V0IHZhcih4KSB7IH0KKyAgICBzZXQgdm9pZCh4KSB7IH0K
KyAgICBzZXQgdm9sYXRpbGUoeCkgeyB9CisgICAgc2V0IHdoaWxlKHgpIHsgfQorICAgIHNldCB3
aXRoKHgpIHsgfQorICAgIHNldCB5aWVsZCh4KSB7IH0KK307CisKK3ZhciBvYmplY3RMaXRlcmFs
V2l0aEtleXdvcmRNZXRob2ROYW1lcyA9IHsKKyAgICBjb25zdHJ1Y3RvcigpIHsgfSwKKyAgICBh
YnN0cmFjdCgpIHsgfSwKKyAgICBhcmd1bWVudHMoKSB7IH0sCisgICAgYm9vbGVhbigpIHsgfSwK
KyAgICBicmVhaygpIHsgfSwKKyAgICBieXRlKCkgeyB9LAorICAgIGNhc2UoKSB7IH0sCisgICAg
Y2F0Y2goKSB7IH0sCisgICAgY2hhcigpIHsgfSwKKyAgICBjbGFzcygpIHsgfSwKKyAgICBjb25z
dCgpIHsgfSwKKyAgICBjb250aW51ZSgpIHsgfSwKKyAgICBkZWJ1Z2dlcigpIHsgfSwKKyAgICBk
ZWZhdWx0KCkgeyB9LAorICAgIGRlbGV0ZSgpIHsgfSwKKyAgICBkbygpIHsgfSwKKyAgICBkb3Vi
bGUoKSB7IH0sCisgICAgZWxzZSgpIHsgfSwKKyAgICBlbnVtKCkgeyB9LAorICAgIGV2YWwoKSB7
IH0sCisgICAgZXhwb3J0KCkgeyB9LAorICAgIGV4dGVuZHMoKSB7IH0sCisgICAgZmFsc2UoKSB7
IH0sCisgICAgZmluYWwoKSB7IH0sCisgICAgZmluYWxseSgpIHsgfSwKKyAgICBmbG9hdCgpIHsg
fSwKKyAgICBmb3IoKSB7IH0sCisgICAgZnVuY3Rpb24oKSB7IH0sCisgICAgZ2V0KCkgeyB9LAor
ICAgIGdvdG8oKSB7IH0sCisgICAgaWYoKSB7IH0sCisgICAgaW1wbGVtZW50cygpIHsgfSwKKyAg
ICBpbXBvcnQoKSB7IH0sCisgICAgaW4oKSB7IH0sCisgICAgaW5zdGFuY2VvZigpIHsgfSwKKyAg
ICBpbnQoKSB7IH0sCisgICAgaW50ZXJmYWNlKCkgeyB9LAorICAgIGxldCgpIHsgfSwKKyAgICBs
b25nKCkgeyB9LAorICAgIG5hdGl2ZSgpIHsgfSwKKyAgICBuZXcoKSB7IH0sCisgICAgbnVsbCgp
IHsgfSwKKyAgICBwYWNrYWdlKCkgeyB9LAorICAgIHByaXZhdGUoKSB7IH0sCisgICAgcHJvdGVj
dGVkKCkgeyB9LAorICAgIHB1YmxpYygpIHsgfSwKKyAgICBvZigpIHsgfSwKKyAgICByZXR1cm4o
KSB7IH0sCisgICAgc2V0KCkgeyB9LAorICAgIHNob3J0KCkgeyB9LAorICAgIHN0YXRpYygpIHsg
fSwKKyAgICBzdXBlcigpIHsgfSwKKyAgICBzd2l0Y2goKSB7IH0sCisgICAgc3luY2hyb25pemVk
KCkgeyB9LAorICAgIHRoaXMoKSB7IH0sCisgICAgdGhyb3coKSB7IH0sCisgICAgdGhyb3dzKCkg
eyB9LAorICAgIHRyYW5zaWVudCgpIHsgfSwKKyAgICB0cnVlKCkgeyB9LAorICAgIHRyeSgpIHsg
fSwKKyAgICB0eXBlb2YoKSB7IH0sCisgICAgdmFyKCkgeyB9LAorICAgIHZvaWQoKSB7IH0sCisg
ICAgdm9sYXRpbGUoKSB7IH0sCisgICAgd2hpbGUoKSB7IH0sCisgICAgd2l0aCgpIHsgfSwKKyAg
ICB5aWVsZCgpIHsgfSwKK307CisKK3ZhciBvYmplY3RMaXRlcmFsV2l0aEtleXdvcmRHZXR0ZXJO
YW1lcyA9IHsKKyAgICBnZXQgY29uc3RydWN0b3IoKSB7IH0sCisgICAgZ2V0IGFic3RyYWN0KCkg
eyB9LAorICAgIGdldCBhcmd1bWVudHMoKSB7IH0sCisgICAgZ2V0IGJvb2xlYW4oKSB7IH0sCisg
ICAgZ2V0IGJyZWFrKCkgeyB9LAorICAgIGdldCBieXRlKCkgeyB9LAorICAgIGdldCBjYXNlKCkg
eyB9LAorICAgIGdldCBjYXRjaCgpIHsgfSwKKyAgICBnZXQgY2hhcigpIHsgfSwKKyAgICBnZXQg
Y2xhc3MoKSB7IH0sCisgICAgZ2V0IGNvbnN0KCkgeyB9LAorICAgIGdldCBjb250aW51ZSgpIHsg
fSwKKyAgICBnZXQgZGVidWdnZXIoKSB7IH0sCisgICAgZ2V0IGRlZmF1bHQoKSB7IH0sCisgICAg
Z2V0IGRlbGV0ZSgpIHsgfSwKKyAgICBnZXQgZG8oKSB7IH0sCisgICAgZ2V0IGRvdWJsZSgpIHsg
fSwKKyAgICBnZXQgZWxzZSgpIHsgfSwKKyAgICBnZXQgZW51bSgpIHsgfSwKKyAgICBnZXQgZXZh
bCgpIHsgfSwKKyAgICBnZXQgZXhwb3J0KCkgeyB9LAorICAgIGdldCBleHRlbmRzKCkgeyB9LAor
ICAgIGdldCBmYWxzZSgpIHsgfSwKKyAgICBnZXQgZmluYWwoKSB7IH0sCisgICAgZ2V0IGZpbmFs
bHkoKSB7IH0sCisgICAgZ2V0IGZsb2F0KCkgeyB9LAorICAgIGdldCBmb3IoKSB7IH0sCisgICAg
Z2V0IGZ1bmN0aW9uKCkgeyB9LAorICAgIGdldCBnZXQoKSB7IH0sCisgICAgZ2V0IGdvdG8oKSB7
IH0sCisgICAgZ2V0IGlmKCkgeyB9LAorICAgIGdldCBpbXBsZW1lbnRzKCkgeyB9LAorICAgIGdl
dCBpbXBvcnQoKSB7IH0sCisgICAgZ2V0IGluKCkgeyB9LAorICAgIGdldCBpbnN0YW5jZW9mKCkg
eyB9LAorICAgIGdldCBpbnQoKSB7IH0sCisgICAgZ2V0IGludGVyZmFjZSgpIHsgfSwKKyAgICBn
ZXQgbGV0KCkgeyB9LAorICAgIGdldCBsb25nKCkgeyB9LAorICAgIGdldCBuYXRpdmUoKSB7IH0s
CisgICAgZ2V0IG5ldygpIHsgfSwKKyAgICBnZXQgbnVsbCgpIHsgfSwKKyAgICBnZXQgcGFja2Fn
ZSgpIHsgfSwKKyAgICBnZXQgcHJpdmF0ZSgpIHsgfSwKKyAgICBnZXQgcHJvdGVjdGVkKCkgeyB9
LAorICAgIGdldCBwdWJsaWMoKSB7IH0sCisgICAgZ2V0IG9mKCkgeyB9LAorICAgIGdldCByZXR1
cm4oKSB7IH0sCisgICAgZ2V0IHNldCgpIHsgfSwKKyAgICBnZXQgc2hvcnQoKSB7IH0sCisgICAg
Z2V0IHN0YXRpYygpIHsgfSwKKyAgICBnZXQgc3VwZXIoKSB7IH0sCisgICAgZ2V0IHN3aXRjaCgp
IHsgfSwKKyAgICBnZXQgc3luY2hyb25pemVkKCkgeyB9LAorICAgIGdldCB0aGlzKCkgeyB9LAor
ICAgIGdldCB0aHJvdygpIHsgfSwKKyAgICBnZXQgdGhyb3dzKCkgeyB9LAorICAgIGdldCB0cmFu
c2llbnQoKSB7IH0sCisgICAgZ2V0IHRydWUoKSB7IH0sCisgICAgZ2V0IHRyeSgpIHsgfSwKKyAg
ICBnZXQgdHlwZW9mKCkgeyB9LAorICAgIGdldCB2YXIoKSB7IH0sCisgICAgZ2V0IHZvaWQoKSB7
IH0sCisgICAgZ2V0IHZvbGF0aWxlKCkgeyB9LAorICAgIGdldCB3aGlsZSgpIHsgfSwKKyAgICBn
ZXQgd2l0aCgpIHsgfSwKKyAgICBnZXQgeWllbGQoKSB7IH0sCit9OworCit2YXIgb2JqZWN0TGl0
ZXJhbFdpdGhLZXl3b3JkU2V0dGVyTmFtZXMgPSB7CisgICAgc2V0IGNvbnN0cnVjdG9yKHgpIHsg
fSwKKyAgICBzZXQgYWJzdHJhY3QoeCkgeyB9LAorICAgIHNldCBhcmd1bWVudHMoeCkgeyB9LAor
ICAgIHNldCBib29sZWFuKHgpIHsgfSwKKyAgICBzZXQgYnJlYWsoeCkgeyB9LAorICAgIHNldCBi
eXRlKHgpIHsgfSwKKyAgICBzZXQgY2FzZSh4KSB7IH0sCisgICAgc2V0IGNhdGNoKHgpIHsgfSwK
KyAgICBzZXQgY2hhcih4KSB7IH0sCisgICAgc2V0IGNsYXNzKHgpIHsgfSwKKyAgICBzZXQgY29u
c3QoeCkgeyB9LAorICAgIHNldCBjb250aW51ZSh4KSB7IH0sCisgICAgc2V0IGRlYnVnZ2VyKHgp
IHsgfSwKKyAgICBzZXQgZGVmYXVsdCh4KSB7IH0sCisgICAgc2V0IGRlbGV0ZSh4KSB7IH0sCisg
ICAgc2V0IGRvKHgpIHsgfSwKKyAgICBzZXQgZG91YmxlKHgpIHsgfSwKKyAgICBzZXQgZWxzZSh4
KSB7IH0sCisgICAgc2V0IGVudW0oeCkgeyB9LAorICAgIHNldCBldmFsKHgpIHsgfSwKKyAgICBz
ZXQgZXhwb3J0KHgpIHsgfSwKKyAgICBzZXQgZXh0ZW5kcyh4KSB7IH0sCisgICAgc2V0IGZhbHNl
KHgpIHsgfSwKKyAgICBzZXQgZmluYWwoeCkgeyB9LAorICAgIHNldCBmaW5hbGx5KHgpIHsgfSwK
KyAgICBzZXQgZmxvYXQoeCkgeyB9LAorICAgIHNldCBmb3IoeCkgeyB9LAorICAgIHNldCBmdW5j
dGlvbih4KSB7IH0sCisgICAgc2V0IGdldCh4KSB7IH0sCisgICAgc2V0IGdvdG8oeCkgeyB9LAor
ICAgIHNldCBpZih4KSB7IH0sCisgICAgc2V0IGltcGxlbWVudHMoeCkgeyB9LAorICAgIHNldCBp
bXBvcnQoeCkgeyB9LAorICAgIHNldCBpbih4KSB7IH0sCisgICAgc2V0IGluc3RhbmNlb2YoeCkg
eyB9LAorICAgIHNldCBpbnQoeCkgeyB9LAorICAgIHNldCBpbnRlcmZhY2UoeCkgeyB9LAorICAg
IHNldCBsZXQoeCkgeyB9LAorICAgIHNldCBsb25nKHgpIHsgfSwKKyAgICBzZXQgbmF0aXZlKHgp
IHsgfSwKKyAgICBzZXQgbmV3KHgpIHsgfSwKKyAgICBzZXQgbnVsbCh4KSB7IH0sCisgICAgc2V0
IHBhY2thZ2UoeCkgeyB9LAorICAgIHNldCBwcml2YXRlKHgpIHsgfSwKKyAgICBzZXQgcHJvdGVj
dGVkKHgpIHsgfSwKKyAgICBzZXQgcHVibGljKHgpIHsgfSwKKyAgICBzZXQgb2YoeCkgeyB9LAor
ICAgIHNldCByZXR1cm4oeCkgeyB9LAorICAgIHNldCBzZXQoeCkgeyB9LAorICAgIHNldCBzaG9y
dCh4KSB7IH0sCisgICAgc2V0IHN0YXRpYyh4KSB7IH0sCisgICAgc2V0IHN1cGVyKHgpIHsgfSwK
KyAgICBzZXQgc3dpdGNoKHgpIHsgfSwKKyAgICBzZXQgc3luY2hyb25pemVkKHgpIHsgfSwKKyAg
ICBzZXQgdGhpcyh4KSB7IH0sCisgICAgc2V0IHRocm93KHgpIHsgfSwKKyAgICBzZXQgdGhyb3dz
KHgpIHsgfSwKKyAgICBzZXQgdHJhbnNpZW50KHgpIHsgfSwKKyAgICBzZXQgdHJ1ZSh4KSB7IH0s
CisgICAgc2V0IHRyeSh4KSB7IH0sCisgICAgc2V0IHR5cGVvZih4KSB7IH0sCisgICAgc2V0IHZh
cih4KSB7IH0sCisgICAgc2V0IHZvaWQoeCkgeyB9LAorICAgIHNldCB2b2xhdGlsZSh4KSB7IH0s
CisgICAgc2V0IHdoaWxlKHgpIHsgfSwKKyAgICBzZXQgd2l0aCh4KSB7IH0sCisgICAgc2V0IHlp
ZWxkKHgpIHsgfSwKK307CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cKaW5kZXggMmQ5YjQwYS4uZGE1ZTkxNiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTYtMDEtMTEgIEpvc2VwaCBQZWNvcmFybyAgPHBl
Y29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBrZXl3b3JkcyAoInN1cGVyIiwgImRlbGV0ZSIs
IGV0Yykgc2hvdWxkIGJlIHZhbGlkIG1ldGhvZCBuYW1lcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0MjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmNwcDoKKyAgICAgICAg
KEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNlQ2xhc3MpOgorICAgICAgICAtIFdoZW4gcGFy
c2luZyAic3RhdGljKCIgdHJlYXQgaXQgYXMgYSBtZXRob2QgbmFtZWQgInN0YXRpYyIgYW5kIG5v
dCBhIHN0YXRpYyBtZXRob2QuCisgICAgICAgIC0gV2hlbiBwYXJzaW5nIGEga2V5d29yZCB0cmVh
dCBpdCBsaWtlIGEgc3RyaW5nIG1ldGhvZCBuYW1lIChnZXQgYW5kIHNldCBhcmUgbm90IGtleXdv
cmRzKQorICAgICAgICAtIFdoZW4gcGFyc2luZyBhIGdldHRlciAvIHNldHRlciBtZXRob2QgbmFt
ZSBpZGVudGlmaWVyLCBhbGxvdyBsb29rYWhlYWQgdG8gYmUgYSBrZXl3b3JkCisKKyAgICAgICAg
KEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNlR2V0dGVyU2V0dGVyKToKKyAgICAgICAgLSBX
aGVuIHBhcnNpbmcgdGhlIGdldHRlciAvIHNldHRlcidzIG5hbWUsIGFsbG93IGl0IHRvIGJlIGEg
a2V5d29yZC4KKwogMjAxNi0wMS0wNiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUu
Y29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IENSQVNIIEF0dGVtcHRpbmcgdG8gcGF1c2Ug
b24gQ1NQIHZpb2xhdGlvbiBub3QgaW5zaWRlIG9mIHNjcmlwdApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9QYXJzZXIuY3BwCmluZGV4IGUyODAwN2QuLmZkNzNiNTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKQEAgLTIxNDksOCArMjE0OSwxNSBAQCB0ZW1wbGF0
ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVDbGFzc0V4cHJlc3Npb24gUGFyc2VyPExleGVyVHlw
ZT46OnBhcnNlQ2xhc3MoVAogCiAgICAgICAgIC8vIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0
eSwgInN0YXRpYyIgaXMgYSBub24tcmVzZXJ2ZWQga2V5d29yZCBpbiBub24tc3RyaWN0IG1vZGUu
CiAgICAgICAgIGJvb2wgaXNTdGF0aWNNZXRob2QgPSBtYXRjaChSRVNFUlZFRF9JRl9TVFJJQ1Qp
ICYmICptX3Rva2VuLm1fZGF0YS5pZGVudCA9PSBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5zdGF0aWNL
ZXl3b3JkOwotICAgICAgICBpZiAoaXNTdGF0aWNNZXRob2QpCisgICAgICAgIGlmIChpc1N0YXRp
Y01ldGhvZCkgeworICAgICAgICAgICAgYXV0byBzYXZlUG9pbnQgPSBjcmVhdGVTYXZlUG9pbnQo
KTsKICAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgICAgIC8vIFJlcGFyc2UgInN0YXRpYygp
IiBhcyBhIG1ldGhvZCBuYW1lZCAic3RhdGljIi4KKyAgICAgICAgICAgIGlmIChtYXRjaChPUEVO
UEFSRU4pKSB7CisgICAgICAgICAgICAgICAgcmVzdG9yZVNhdmVQb2ludChzYXZlUG9pbnQpOwor
ICAgICAgICAgICAgICAgIGlzU3RhdGljTWV0aG9kID0gZmFsc2U7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KIAogICAgICAgICAvLyBGSVhNRTogRmlndXJlIG91dCBhIHdheSB0byBzaGFyZSBt
b3JlIGNvZGUgd2l0aCBwYXJzZVByb3BlcnR5LgogICAgICAgICBjb25zdCBDb21tb25JZGVudGlm
aWVycyYgcHJvcGVydHlOYW1lcyA9ICptX3ZtLT5wcm9wZXJ0eU5hbWVzOwpAQCAtMjE2NCw2ICsy
MTcxLDcgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlQ2xhc3NFeHByZXNzaW9u
IFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUNsYXNzKFQKICAgICAgICAgICAgIGlzR2VuZXJhdG9y
ID0gdHJ1ZTsKICNlbmRpZgogICAgICAgICBzd2l0Y2ggKG1fdG9rZW4ubV90eXBlKSB7CisgICAg
ICAgIG5hbWVkS2V5d29yZDoKICAgICAgICAgY2FzZSBTVFJJTkc6CiAgICAgICAgICAgICBpZGVu
dCA9IG1fdG9rZW4ubV9kYXRhLmlkZW50OwogICAgICAgICAgICAgQVNTRVJUKGlkZW50KTsKQEAg
LTIxNzMsNyArMjE4MSw3IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUNsYXNz
RXhwcmVzc2lvbiBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VDbGFzcyhUCiAgICAgICAgICAgICBp
ZGVudCA9IG1fdG9rZW4ubV9kYXRhLmlkZW50OwogICAgICAgICAgICAgQVNTRVJUKGlkZW50KTsK
ICAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgICAgIGlmICghaXNHZW5lcmF0b3IgJiYgKG1h
dGNoKElERU5UKSB8fCBtYXRjaChTVFJJTkcpIHx8IG1hdGNoKERPVUJMRSkgfHwgbWF0Y2goSU5U
RUdFUikgfHwgbWF0Y2goT1BFTkJSQUNLRVQpKSkgeworICAgICAgICAgICAgaWYgKCFpc0dlbmVy
YXRvciAmJiAobWF0Y2goSURFTlQpIHx8IG1hdGNoKFNUUklORykgfHwgbWF0Y2goRE9VQkxFKSB8
fCBtYXRjaChJTlRFR0VSKSB8fCBtYXRjaChPUEVOQlJBQ0tFVCkgfHwgbV90b2tlbi5tX3R5cGUg
JiBLZXl3b3JkVG9rZW5GbGFnKSkgewogICAgICAgICAgICAgICAgIGlzR2V0dGVyID0gKmlkZW50
ID09IHByb3BlcnR5TmFtZXMuZ2V0OwogICAgICAgICAgICAgICAgIGlzU2V0dGVyID0gKmlkZW50
ID09IHByb3BlcnR5TmFtZXMuc2V0OwogICAgICAgICAgICAgfQpAQCAtMjE5MSw2ICsyMTk5LDgg
QEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlQ2xhc3NFeHByZXNzaW9uIFBhcnNl
cjxMZXhlclR5cGU+OjpwYXJzZUNsYXNzKFQKICAgICAgICAgICAgIGhhbmRsZVByb2R1Y3Rpb25P
ckZhaWwoQ0xPU0VCUkFDS0VULCAiXSIsICJlbmQiLCAiY29tcHV0ZWQgcHJvcGVydHkgbmFtZSIp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBpZiAo
bV90b2tlbi5tX3R5cGUgJiBLZXl3b3JkVG9rZW5GbGFnKQorICAgICAgICAgICAgICAgIGdvdG8g
bmFtZWRLZXl3b3JkOwogICAgICAgICAgICAgZmFpbER1ZVRvVW5leHBlY3RlZFRva2VuKCk7CiAg
ICAgICAgIH0KIApAQCAtMzIwMCw3ICszMjEwLDcgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWls
ZGVyPiBUcmVlUHJvcGVydHkgUGFyc2VyPExleGVyVHlwZT46OnBhcnNlR2V0dGVyU2V0dGVyKFQK
IAogICAgIEpTVG9rZW5Mb2NhdGlvbiBsb2NhdGlvbih0b2tlbkxvY2F0aW9uKCkpOwogCi0gICAg
aWYgKG1hdGNoU3BlY0lkZW50aWZpZXIoKSB8fCBtYXRjaChTVFJJTkcpKSB7CisgICAgaWYgKG1h
dGNoU3BlY0lkZW50aWZpZXIoKSB8fCBtYXRjaChTVFJJTkcpIHx8IG1fdG9rZW4ubV90eXBlICYg
S2V5d29yZFRva2VuRmxhZykgewogICAgICAgICBzdHJpbmdQcm9wZXJ0eU5hbWUgPSBtX3Rva2Vu
Lm1fZGF0YS5pZGVudDsKICAgICAgICAgc2VtYW50aWNGYWlsSWZUcnVlKHN1cGVyQmluZGluZyA9
PSBTdXBlckJpbmRpbmc6Ok5lZWRlZCAmJiAqc3RyaW5nUHJvcGVydHlOYW1lID09IG1fdm0tPnBy
b3BlcnR5TmFtZXMtPnByb3RvdHlwZSwKICAgICAgICAgICAgICJDYW5ub3QgZGVjbGFyZSBhIHN0
YXRpYyBtZXRob2QgbmFtZWQgJ3Byb3RvdHlwZSciKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268734</attachid>
            <date>2016-01-11 17:42:35 -0800</date>
            <delta_ts>2016-01-11 19:02:23 -0800</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>keywords-v2.patch</filename>
            <type>text/plain</type>
            <size>19328</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwZjBjYjZmLi4xOTgxNzA5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTYtMDEt
MTEgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBrZXl3
b3JkcyAoInN1cGVyIiwgImRlbGV0ZSIsIGV0Yykgc2hvdWxkIGJlIHZhbGlkIG1ldGhvZCBuYW1l
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0Mjgx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBqcy9j
bGFzcy1zeW50YXgtc3VwZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpzL3NjcmlwdC10ZXN0
cy9jbGFzcy1zeW50YXgtc3VwZXIuanM6CisgICAgICAgIFVwZGF0ZSB0aGUgdGVzdCBmb3IgdGhl
IGNvcnJlY3QgZXhwZWN0ZWQgcmVzdWx0LgorCisgICAgICAgICoganMva2V5d29yZC1tZXRob2Qt
bmFtZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9rZXl3b3JkLW1ldGhvZC1u
YW1lcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9zY3JpcHQtdGVzdHMva2V5d29yZC1tZXRo
b2QtbmFtZXMuanM6IEFkZGVkLgorICAgICAgICBBZGQgdGVzdHMgdG8gY292ZXIgcGFyc2luZyBh
bGxvd3Mga2V5d29yZHMgaW4gbWV0aG9kIG5hbWUgc3ludGF4LgorCiAyMDE2LTAxLTA2ICBKb3Nl
cGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogTWlncmF0ZSBQYWdlIFRpbWVsaW5lIHJlY29yZGluZyB0byBTY3JpcHRQcm9maWxlcgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvY2xhc3Mtc3ludGF4LXN1cGVyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2pzL2NsYXNzLXN5bnRheC1zdXBlci1leHBlY3RlZC50eHQKaW5kZXggZjI4
YzliYS4uYTljNTU0ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvY2xhc3Mtc3ludGF4LXN1
cGVyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9qcy9jbGFzcy1zeW50YXgtc3VwZXIt
ZXhwZWN0ZWQudHh0CkBAIC0xMyw3ICsxMyw3IEBAIFBBU1MgKG5ldyBEZXJpdmVkKS5iYXNlTWV0
aG9kSW5HZXR0ZXJTZXR0ZXI6OjoobmV3IEJhc2UpLmJhc2VNZXRob2QKIFBBU1MgKG5ldyBEZXJp
dmVkKS5iYXNlTWV0aG9kSW5HZXR0ZXJTZXR0ZXIgPSAxOyB2YWx1ZUluU2V0dGVyOjo6KG5ldyBC
YXNlKS5iYXNlTWV0aG9kCiBQQVNTIERlcml2ZWQuc3RhdGljTWV0aG9kKCk6OjoiYmFzZTMiCiBQ
QVNTIChuZXcgU2Vjb25kRGVyaXZlZCkuY2hhaW5NZXRob2QoKS50b1N0cmluZygpOjo6WyJiYXNl
IiwgImRlcml2ZWQiLCAic2Vjb25kRGVyaXZlZCJdLnRvU3RyaW5nKCkKLVBBU1MgeCA9IGNsYXNz
IGV4dGVuZHMgQmFzZSB7IGNvbnN0cnVjdG9yKCkgeyBzdXBlcigpOyB9IHN1cGVyKCkge30gfTo6
OlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIGtleXdvcmQgJ3N1cGVyJworUEFTUyB4ID0gY2xhc3Mg
ZXh0ZW5kcyBCYXNlIHsgY29uc3RydWN0b3IoKSB7IHN1cGVyKCk7IH0gc3VwZXIoKSB7fSB9CiBQ
QVNTIHggPSBjbGFzcyBleHRlbmRzIEJhc2UgeyBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoKTsgfSBt
ZXRob2QoKSB7IHN1cGVyKCkgfSB9Ojo6U3ludGF4RXJyb3I6IENhbm5vdCBjYWxsIHN1cGVyKCkg
b3V0c2lkZSBvZiBhIGNsYXNzIGNvbnN0cnVjdG9yLgogUEFTUyB4ID0gY2xhc3MgZXh0ZW5kcyBC
YXNlIHsgY29uc3RydWN0b3IoKSB7IHN1cGVyKCk7IH0gbWV0aG9kKCkgeyBzdXBlciB9IH06OjpT
eW50YXhFcnJvcjogQ2Fubm90IHJlZmVyZW5jZSBzdXBlci4KIFBBU1MgeCA9IGNsYXNzIGV4dGVu
ZHMgQmFzZSB7IGNvbnN0cnVjdG9yKCkgeyBzdXBlcigpOyB9IG1ldGhvZCgpIHsgcmV0dXJuIG5l
dyBzdXBlciB9IH06OjpTeW50YXhFcnJvcjogQ2Fubm90IHVzZSBuZXcgd2l0aCBzdXBlci4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2tleXdvcmQtbWV0aG9kLW5hbWVzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2pzL2tleXdvcmQtbWV0aG9kLW5hbWVzLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OTkzYThkCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvanMva2V5d29yZC1tZXRob2QtbmFtZXMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsOSBAQAorVGVzdHMgZm9yIEVTNiBtZXRob2Qgc3ludGF4IGluIGNsYXNzZXMgYW5kIG9i
amVjdCBsaXRlcmFscyB3aXRoIGtleXdvcmQgbmFtZXMKKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9rZXl3b3JkLW1ldGhvZC1uYW1lcy5odG1s
IGIvTGF5b3V0VGVzdHMvanMva2V5d29yZC1tZXRob2QtbmFtZXMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMzkwOTZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvanMva2V5d29yZC1tZXRob2QtbmFtZXMuaHRtbApAQCAtMCwwICsxLDggQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9rZXl3b3Jk
LW1ldGhvZC1uYW1lcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvY2xhc3Mtc3ludGF4LXN1cGVyLmpzIGIvTGF5b3V0
VGVzdHMvanMvc2NyaXB0LXRlc3RzL2NsYXNzLXN5bnRheC1zdXBlci5qcwppbmRleCAwODgyM2Y2
Li5mODYzN2MzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvY2xhc3Mt
c3ludGF4LXN1cGVyLmpzCisrKyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9jbGFzcy1z
eW50YXgtc3VwZXIuanMKQEAgLTg2LDcgKzg2LDcgQEAgc2hvdWxkQmUoJyhuZXcgRGVyaXZlZCku
YmFzZU1ldGhvZEluR2V0dGVyU2V0dGVyJywgJyhuZXcgQmFzZSkuYmFzZU1ldGhvZCcpOwogc2hv
dWxkQmUoJyhuZXcgRGVyaXZlZCkuYmFzZU1ldGhvZEluR2V0dGVyU2V0dGVyID0gMTsgdmFsdWVJ
blNldHRlcicsICcobmV3IEJhc2UpLmJhc2VNZXRob2QnKTsKIHNob3VsZEJlKCdEZXJpdmVkLnN0
YXRpY01ldGhvZCgpJywgJyJiYXNlMyInKTsKIHNob3VsZEJlKCcobmV3IFNlY29uZERlcml2ZWQp
LmNoYWluTWV0aG9kKCkudG9TdHJpbmcoKScsICdbImJhc2UiLCAiZGVyaXZlZCIsICJzZWNvbmRE
ZXJpdmVkIl0udG9TdHJpbmcoKScpOwotc2hvdWxkVGhyb3coJ3ggPSBjbGFzcyBleHRlbmRzIEJh
c2UgeyBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoKTsgfSBzdXBlcigpIHt9IH0nLCAnIlN5bnRheEVy
cm9yOiBVbmV4cGVjdGVkIGtleXdvcmQgXCdzdXBlclwnIicpOworc2hvdWxkTm90VGhyb3coJ3gg
PSBjbGFzcyBleHRlbmRzIEJhc2UgeyBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoKTsgfSBzdXBlcigp
IHt9IH0nKTsKIHNob3VsZFRocm93KCd4ID0gY2xhc3MgZXh0ZW5kcyBCYXNlIHsgY29uc3RydWN0
b3IoKSB7IHN1cGVyKCk7IH0gbWV0aG9kKCkgeyBzdXBlcigpIH0gfScsCiAgICAgJyJTeW50YXhF
cnJvcjogQ2Fubm90IGNhbGwgc3VwZXIoKSBvdXRzaWRlIG9mIGEgY2xhc3MgY29uc3RydWN0b3Iu
IicpOwogc2hvdWxkVGhyb3coJ3ggPSBjbGFzcyBleHRlbmRzIEJhc2UgeyBjb25zdHJ1Y3Rvcigp
IHsgc3VwZXIoKTsgfSBtZXRob2QoKSB7IHN1cGVyIH0gfScsICciU3ludGF4RXJyb3I6IENhbm5v
dCByZWZlcmVuY2Ugc3VwZXIuIicpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0
LXRlc3RzL2tleXdvcmQtbWV0aG9kLW5hbWVzLmpzIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRl
c3RzL2tleXdvcmQtbWV0aG9kLW5hbWVzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmMwMjEzY2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQt
dGVzdHMva2V5d29yZC1tZXRob2QtbmFtZXMuanMKQEAgLTAsMCArMSw0OTYgQEAKK2Rlc2NyaXB0
aW9uKCdUZXN0cyBmb3IgRVM2IG1ldGhvZCBzeW50YXggaW4gY2xhc3NlcyBhbmQgb2JqZWN0IGxp
dGVyYWxzIHdpdGgga2V5d29yZCBuYW1lcycpOworCisvLyBUZXN0cyBrZXl3b3JkcyAvIHJlc2Vy
dmVkIHdvcmRzLCBhbmQgYWxzbyBzb21lIG5vbi1yZXNlcnZlZCB3b3JkcyB3aXRoIHNwZWNpYWwg
bWVhbmluZyAoaW4sIG9mLCBnZXQsIHNldCkuCisKK2NsYXNzIENsYXNzV2l0aEtleXdvcmRNZXRo
b2ROYW1lcyB7CisgICAgY29uc3RydWN0b3IoKSB7IH0gLy8gTk9URTogVGhpcyBoYXMgc2VtYW50
aWMgbWVhbmluZyBoZXJlLCBidXQgaXMgYWxsb3dlZC4KKyAgICBhYnN0cmFjdCgpIHsgfQorICAg
IGFyZ3VtZW50cygpIHsgfQorICAgIGJvb2xlYW4oKSB7IH0KKyAgICBicmVhaygpIHsgfQorICAg
IGJ5dGUoKSB7IH0KKyAgICBjYXNlKCkgeyB9CisgICAgY2F0Y2goKSB7IH0KKyAgICBjaGFyKCkg
eyB9CisgICAgY2xhc3MoKSB7IH0KKyAgICBjb25zdCgpIHsgfQorICAgIGNvbnRpbnVlKCkgeyB9
CisgICAgZGVidWdnZXIoKSB7IH0KKyAgICBkZWZhdWx0KCkgeyB9CisgICAgZGVsZXRlKCkgeyB9
CisgICAgZG8oKSB7IH0KKyAgICBkb3VibGUoKSB7IH0KKyAgICBlbHNlKCkgeyB9CisgICAgZW51
bSgpIHsgfQorICAgIGV2YWwoKSB7IH0KKyAgICBleHBvcnQoKSB7IH0KKyAgICBleHRlbmRzKCkg
eyB9CisgICAgZmFsc2UoKSB7IH0KKyAgICBmaW5hbCgpIHsgfQorICAgIGZpbmFsbHkoKSB7IH0K
KyAgICBmbG9hdCgpIHsgfQorICAgIGZvcigpIHsgfQorICAgIGZ1bmN0aW9uKCkgeyB9CisgICAg
Z2V0KCkgeyB9CisgICAgZ290bygpIHsgfQorICAgIGlmKCkgeyB9CisgICAgaW1wbGVtZW50cygp
IHsgfQorICAgIGltcG9ydCgpIHsgfQorICAgIGluKCkgeyB9CisgICAgaW5zdGFuY2VvZigpIHsg
fQorICAgIGludCgpIHsgfQorICAgIGludGVyZmFjZSgpIHsgfQorICAgIGxldCgpIHsgfQorICAg
IGxvbmcoKSB7IH0KKyAgICBuYXRpdmUoKSB7IH0KKyAgICBuZXcoKSB7IH0KKyAgICBudWxsKCkg
eyB9CisgICAgcGFja2FnZSgpIHsgfQorICAgIHByaXZhdGUoKSB7IH0KKyAgICBwcm90ZWN0ZWQo
KSB7IH0KKyAgICBwdWJsaWMoKSB7IH0KKyAgICBvZigpIHsgfQorICAgIHJldHVybigpIHsgfQor
ICAgIHNldCgpIHsgfQorICAgIHNob3J0KCkgeyB9CisgICAgc3RhdGljKCkgeyB9CisgICAgc3Vw
ZXIoKSB7IH0KKyAgICBzd2l0Y2goKSB7IH0KKyAgICBzeW5jaHJvbml6ZWQoKSB7IH0KKyAgICB0
aGlzKCkgeyB9CisgICAgdGhyb3coKSB7IH0KKyAgICB0aHJvd3MoKSB7IH0KKyAgICB0cmFuc2ll
bnQoKSB7IH0KKyAgICB0cnVlKCkgeyB9CisgICAgdHJ5KCkgeyB9CisgICAgdHlwZW9mKCkgeyB9
CisgICAgdmFyKCkgeyB9CisgICAgdm9pZCgpIHsgfQorICAgIHZvbGF0aWxlKCkgeyB9CisgICAg
d2hpbGUoKSB7IH0KKyAgICB3aXRoKCkgeyB9CisgICAgeWllbGQoKSB7IH0KK307CisKK2NsYXNz
IENsYXNzV2l0aEtleXdvcmRTdGF0aWNNZXRob2ROYW1lcyB7CisgICAgc3RhdGljIGNvbnN0cnVj
dG9yKCkgeyB9CisgICAgc3RhdGljIGFic3RyYWN0KCkgeyB9CisgICAgLy8gRklYTUU6IDxodHRw
czovL3dlYmtpdC5vcmcvYi8xNTI5ODU+IEVTNjogQ2xhc3NlczogU2hvdWxkIGJlIGFsbG93ZWQg
dG8gY3JlYXRlIGEgc3RhdGljIG1ldGhvZCB3aXRoIG5hbWUgImFyZ3VtZW50cyIKKyAgICAvLyBz
dGF0aWMgYXJndW1lbnRzKCkgeyB9CisgICAgc3RhdGljIGJvb2xlYW4oKSB7IH0KKyAgICBzdGF0
aWMgYnJlYWsoKSB7IH0KKyAgICBzdGF0aWMgYnl0ZSgpIHsgfQorICAgIHN0YXRpYyBjYXNlKCkg
eyB9CisgICAgc3RhdGljIGNhdGNoKCkgeyB9CisgICAgc3RhdGljIGNoYXIoKSB7IH0KKyAgICBz
dGF0aWMgY2xhc3MoKSB7IH0KKyAgICBzdGF0aWMgY29uc3QoKSB7IH0KKyAgICBzdGF0aWMgY29u
dGludWUoKSB7IH0KKyAgICBzdGF0aWMgZGVidWdnZXIoKSB7IH0KKyAgICBzdGF0aWMgZGVmYXVs
dCgpIHsgfQorICAgIHN0YXRpYyBkZWxldGUoKSB7IH0KKyAgICBzdGF0aWMgZG8oKSB7IH0KKyAg
ICBzdGF0aWMgZG91YmxlKCkgeyB9CisgICAgc3RhdGljIGVsc2UoKSB7IH0KKyAgICBzdGF0aWMg
ZW51bSgpIHsgfQorICAgIHN0YXRpYyBldmFsKCkgeyB9CisgICAgc3RhdGljIGV4cG9ydCgpIHsg
fQorICAgIHN0YXRpYyBleHRlbmRzKCkgeyB9CisgICAgc3RhdGljIGZhbHNlKCkgeyB9CisgICAg
c3RhdGljIGZpbmFsKCkgeyB9CisgICAgc3RhdGljIGZpbmFsbHkoKSB7IH0KKyAgICBzdGF0aWMg
ZmxvYXQoKSB7IH0KKyAgICBzdGF0aWMgZm9yKCkgeyB9CisgICAgc3RhdGljIGZ1bmN0aW9uKCkg
eyB9CisgICAgc3RhdGljIGdldCgpIHsgfQorICAgIHN0YXRpYyBnb3RvKCkgeyB9CisgICAgc3Rh
dGljIGlmKCkgeyB9CisgICAgc3RhdGljIGltcGxlbWVudHMoKSB7IH0KKyAgICBzdGF0aWMgaW1w
b3J0KCkgeyB9CisgICAgc3RhdGljIGluKCkgeyB9CisgICAgc3RhdGljIGluc3RhbmNlb2YoKSB7
IH0KKyAgICBzdGF0aWMgaW50KCkgeyB9CisgICAgc3RhdGljIGludGVyZmFjZSgpIHsgfQorICAg
IHN0YXRpYyBsZXQoKSB7IH0KKyAgICBzdGF0aWMgbG9uZygpIHsgfQorICAgIHN0YXRpYyBuYXRp
dmUoKSB7IH0KKyAgICBzdGF0aWMgbmV3KCkgeyB9CisgICAgc3RhdGljIG51bGwoKSB7IH0KKyAg
ICBzdGF0aWMgcGFja2FnZSgpIHsgfQorICAgIHN0YXRpYyBwcml2YXRlKCkgeyB9CisgICAgc3Rh
dGljIHByb3RlY3RlZCgpIHsgfQorICAgIHN0YXRpYyBwdWJsaWMoKSB7IH0KKyAgICBzdGF0aWMg
b2YoKSB7IH0KKyAgICBzdGF0aWMgcmV0dXJuKCkgeyB9CisgICAgc3RhdGljIHNldCgpIHsgfQor
ICAgIHN0YXRpYyBzaG9ydCgpIHsgfQorICAgIHN0YXRpYyBzdGF0aWMoKSB7IH0KKyAgICBzdGF0
aWMgc3VwZXIoKSB7IH0KKyAgICBzdGF0aWMgc3dpdGNoKCkgeyB9CisgICAgc3RhdGljIHN5bmNo
cm9uaXplZCgpIHsgfQorICAgIHN0YXRpYyB0aGlzKCkgeyB9CisgICAgc3RhdGljIHRocm93KCkg
eyB9CisgICAgc3RhdGljIHRocm93cygpIHsgfQorICAgIHN0YXRpYyB0cmFuc2llbnQoKSB7IH0K
KyAgICBzdGF0aWMgdHJ1ZSgpIHsgfQorICAgIHN0YXRpYyB0cnkoKSB7IH0KKyAgICBzdGF0aWMg
dHlwZW9mKCkgeyB9CisgICAgc3RhdGljIHZhcigpIHsgfQorICAgIHN0YXRpYyB2b2lkKCkgeyB9
CisgICAgc3RhdGljIHZvbGF0aWxlKCkgeyB9CisgICAgc3RhdGljIHdoaWxlKCkgeyB9CisgICAg
c3RhdGljIHdpdGgoKSB7IH0KKyAgICBzdGF0aWMgeWllbGQoKSB7IH0KK307CisKK2NsYXNzIENs
YXNzV2l0aEtleXdvcmRHZXR0ZXJNZXRob2ROYW1lcyB7CisgICAgLy8gZ2V0IGNvbnN0cnVjdG9y
KCkgeyB9IChnZXR0ZXIgYGNvbnN0cnVjdG9yYCBub3QgYWxsb3dlZCkKKyAgICBnZXQgYWJzdHJh
Y3QoKSB7IH0KKyAgICBnZXQgYXJndW1lbnRzKCkgeyB9CisgICAgZ2V0IGJvb2xlYW4oKSB7IH0K
KyAgICBnZXQgYnJlYWsoKSB7IH0KKyAgICBnZXQgYnl0ZSgpIHsgfQorICAgIGdldCBjYXNlKCkg
eyB9CisgICAgZ2V0IGNhdGNoKCkgeyB9CisgICAgZ2V0IGNoYXIoKSB7IH0KKyAgICBnZXQgY2xh
c3MoKSB7IH0KKyAgICBnZXQgY29uc3QoKSB7IH0KKyAgICBnZXQgY29udGludWUoKSB7IH0KKyAg
ICBnZXQgZGVidWdnZXIoKSB7IH0KKyAgICBnZXQgZGVmYXVsdCgpIHsgfQorICAgIGdldCBkZWxl
dGUoKSB7IH0KKyAgICBnZXQgZG8oKSB7IH0KKyAgICBnZXQgZG91YmxlKCkgeyB9CisgICAgZ2V0
IGVsc2UoKSB7IH0KKyAgICBnZXQgZW51bSgpIHsgfQorICAgIGdldCBldmFsKCkgeyB9CisgICAg
Z2V0IGV4cG9ydCgpIHsgfQorICAgIGdldCBleHRlbmRzKCkgeyB9CisgICAgZ2V0IGZhbHNlKCkg
eyB9CisgICAgZ2V0IGZpbmFsKCkgeyB9CisgICAgZ2V0IGZpbmFsbHkoKSB7IH0KKyAgICBnZXQg
ZmxvYXQoKSB7IH0KKyAgICBnZXQgZm9yKCkgeyB9CisgICAgZ2V0IGZ1bmN0aW9uKCkgeyB9Cisg
ICAgZ2V0IGdldCgpIHsgfQorICAgIGdldCBnb3RvKCkgeyB9CisgICAgZ2V0IGlmKCkgeyB9Cisg
ICAgZ2V0IGltcGxlbWVudHMoKSB7IH0KKyAgICBnZXQgaW1wb3J0KCkgeyB9CisgICAgZ2V0IGlu
KCkgeyB9CisgICAgZ2V0IGluc3RhbmNlb2YoKSB7IH0KKyAgICBnZXQgaW50KCkgeyB9CisgICAg
Z2V0IGludGVyZmFjZSgpIHsgfQorICAgIGdldCBsZXQoKSB7IH0KKyAgICBnZXQgbG9uZygpIHsg
fQorICAgIGdldCBuYXRpdmUoKSB7IH0KKyAgICBnZXQgbmV3KCkgeyB9CisgICAgZ2V0IG51bGwo
KSB7IH0KKyAgICBnZXQgcGFja2FnZSgpIHsgfQorICAgIGdldCBwcml2YXRlKCkgeyB9CisgICAg
Z2V0IHByb3RlY3RlZCgpIHsgfQorICAgIGdldCBwdWJsaWMoKSB7IH0KKyAgICBnZXQgb2YoKSB7
IH0KKyAgICBnZXQgcmV0dXJuKCkgeyB9CisgICAgZ2V0IHNldCgpIHsgfQorICAgIGdldCBzaG9y
dCgpIHsgfQorICAgIGdldCBzdGF0aWMoKSB7IH0KKyAgICBnZXQgc3VwZXIoKSB7IH0KKyAgICBn
ZXQgc3dpdGNoKCkgeyB9CisgICAgZ2V0IHN5bmNocm9uaXplZCgpIHsgfQorICAgIGdldCB0aGlz
KCkgeyB9CisgICAgZ2V0IHRocm93KCkgeyB9CisgICAgZ2V0IHRocm93cygpIHsgfQorICAgIGdl
dCB0cmFuc2llbnQoKSB7IH0KKyAgICBnZXQgdHJ1ZSgpIHsgfQorICAgIGdldCB0cnkoKSB7IH0K
KyAgICBnZXQgdHlwZW9mKCkgeyB9CisgICAgZ2V0IHZhcigpIHsgfQorICAgIGdldCB2b2lkKCkg
eyB9CisgICAgZ2V0IHZvbGF0aWxlKCkgeyB9CisgICAgZ2V0IHdoaWxlKCkgeyB9CisgICAgZ2V0
IHdpdGgoKSB7IH0KKyAgICBnZXQgeWllbGQoKSB7IH0KK307CisKK2NsYXNzIENsYXNzV2l0aEtl
eXdvcmRTZXR0ZXJNZXRob2ROYW1lcyB7CisgICAgLy8gc2V0IGNvbnN0cnVjdG9yKCkgeyB9IChz
ZXR0ZXIgYGNvbnN0cnVjdG9yYCBub3QgYWxsb3dlZCkKKyAgICBzZXQgYWJzdHJhY3QoeCkgeyB9
CisgICAgc2V0IGFyZ3VtZW50cyh4KSB7IH0KKyAgICBzZXQgYm9vbGVhbih4KSB7IH0KKyAgICBz
ZXQgYnJlYWsoeCkgeyB9CisgICAgc2V0IGJ5dGUoeCkgeyB9CisgICAgc2V0IGNhc2UoeCkgeyB9
CisgICAgc2V0IGNhdGNoKHgpIHsgfQorICAgIHNldCBjaGFyKHgpIHsgfQorICAgIHNldCBjbGFz
cyh4KSB7IH0KKyAgICBzZXQgY29uc3QoeCkgeyB9CisgICAgc2V0IGNvbnRpbnVlKHgpIHsgfQor
ICAgIHNldCBkZWJ1Z2dlcih4KSB7IH0KKyAgICBzZXQgZGVmYXVsdCh4KSB7IH0KKyAgICBzZXQg
ZGVsZXRlKHgpIHsgfQorICAgIHNldCBkbyh4KSB7IH0KKyAgICBzZXQgZG91YmxlKHgpIHsgfQor
ICAgIHNldCBlbHNlKHgpIHsgfQorICAgIHNldCBlbnVtKHgpIHsgfQorICAgIHNldCBldmFsKHgp
IHsgfQorICAgIHNldCBleHBvcnQoeCkgeyB9CisgICAgc2V0IGV4dGVuZHMoeCkgeyB9CisgICAg
c2V0IGZhbHNlKHgpIHsgfQorICAgIHNldCBmaW5hbCh4KSB7IH0KKyAgICBzZXQgZmluYWxseSh4
KSB7IH0KKyAgICBzZXQgZmxvYXQoeCkgeyB9CisgICAgc2V0IGZvcih4KSB7IH0KKyAgICBzZXQg
ZnVuY3Rpb24oeCkgeyB9CisgICAgc2V0IGdldCh4KSB7IH0KKyAgICBzZXQgZ290byh4KSB7IH0K
KyAgICBzZXQgaWYoeCkgeyB9CisgICAgc2V0IGltcGxlbWVudHMoeCkgeyB9CisgICAgc2V0IGlt
cG9ydCh4KSB7IH0KKyAgICBzZXQgaW4oeCkgeyB9CisgICAgc2V0IGluc3RhbmNlb2YoeCkgeyB9
CisgICAgc2V0IGludCh4KSB7IH0KKyAgICBzZXQgaW50ZXJmYWNlKHgpIHsgfQorICAgIHNldCBs
ZXQoeCkgeyB9CisgICAgc2V0IGxvbmcoeCkgeyB9CisgICAgc2V0IG5hdGl2ZSh4KSB7IH0KKyAg
ICBzZXQgbmV3KHgpIHsgfQorICAgIHNldCBudWxsKHgpIHsgfQorICAgIHNldCBwYWNrYWdlKHgp
IHsgfQorICAgIHNldCBwcml2YXRlKHgpIHsgfQorICAgIHNldCBwcm90ZWN0ZWQoeCkgeyB9Cisg
ICAgc2V0IHB1YmxpYyh4KSB7IH0KKyAgICBzZXQgb2YoeCkgeyB9CisgICAgc2V0IHJldHVybih4
KSB7IH0KKyAgICBzZXQgc2V0KHgpIHsgfQorICAgIHNldCBzaG9ydCh4KSB7IH0KKyAgICBzZXQg
c3RhdGljKHgpIHsgfQorICAgIHNldCBzdXBlcih4KSB7IH0KKyAgICBzZXQgc3dpdGNoKHgpIHsg
fQorICAgIHNldCBzeW5jaHJvbml6ZWQoeCkgeyB9CisgICAgc2V0IHRoaXMoeCkgeyB9CisgICAg
c2V0IHRocm93KHgpIHsgfQorICAgIHNldCB0aHJvd3MoeCkgeyB9CisgICAgc2V0IHRyYW5zaWVu
dCh4KSB7IH0KKyAgICBzZXQgdHJ1ZSh4KSB7IH0KKyAgICBzZXQgdHJ5KHgpIHsgfQorICAgIHNl
dCB0eXBlb2YoeCkgeyB9CisgICAgc2V0IHZhcih4KSB7IH0KKyAgICBzZXQgdm9pZCh4KSB7IH0K
KyAgICBzZXQgdm9sYXRpbGUoeCkgeyB9CisgICAgc2V0IHdoaWxlKHgpIHsgfQorICAgIHNldCB3
aXRoKHgpIHsgfQorICAgIHNldCB5aWVsZCh4KSB7IH0KK307CisKK3ZhciBvYmplY3RMaXRlcmFs
V2l0aEtleXdvcmRNZXRob2ROYW1lcyA9IHsKKyAgICBjb25zdHJ1Y3RvcigpIHsgfSwKKyAgICBh
YnN0cmFjdCgpIHsgfSwKKyAgICBhcmd1bWVudHMoKSB7IH0sCisgICAgYm9vbGVhbigpIHsgfSwK
KyAgICBicmVhaygpIHsgfSwKKyAgICBieXRlKCkgeyB9LAorICAgIGNhc2UoKSB7IH0sCisgICAg
Y2F0Y2goKSB7IH0sCisgICAgY2hhcigpIHsgfSwKKyAgICBjbGFzcygpIHsgfSwKKyAgICBjb25z
dCgpIHsgfSwKKyAgICBjb250aW51ZSgpIHsgfSwKKyAgICBkZWJ1Z2dlcigpIHsgfSwKKyAgICBk
ZWZhdWx0KCkgeyB9LAorICAgIGRlbGV0ZSgpIHsgfSwKKyAgICBkbygpIHsgfSwKKyAgICBkb3Vi
bGUoKSB7IH0sCisgICAgZWxzZSgpIHsgfSwKKyAgICBlbnVtKCkgeyB9LAorICAgIGV2YWwoKSB7
IH0sCisgICAgZXhwb3J0KCkgeyB9LAorICAgIGV4dGVuZHMoKSB7IH0sCisgICAgZmFsc2UoKSB7
IH0sCisgICAgZmluYWwoKSB7IH0sCisgICAgZmluYWxseSgpIHsgfSwKKyAgICBmbG9hdCgpIHsg
fSwKKyAgICBmb3IoKSB7IH0sCisgICAgZnVuY3Rpb24oKSB7IH0sCisgICAgZ2V0KCkgeyB9LAor
ICAgIGdvdG8oKSB7IH0sCisgICAgaWYoKSB7IH0sCisgICAgaW1wbGVtZW50cygpIHsgfSwKKyAg
ICBpbXBvcnQoKSB7IH0sCisgICAgaW4oKSB7IH0sCisgICAgaW5zdGFuY2VvZigpIHsgfSwKKyAg
ICBpbnQoKSB7IH0sCisgICAgaW50ZXJmYWNlKCkgeyB9LAorICAgIGxldCgpIHsgfSwKKyAgICBs
b25nKCkgeyB9LAorICAgIG5hdGl2ZSgpIHsgfSwKKyAgICBuZXcoKSB7IH0sCisgICAgbnVsbCgp
IHsgfSwKKyAgICBwYWNrYWdlKCkgeyB9LAorICAgIHByaXZhdGUoKSB7IH0sCisgICAgcHJvdGVj
dGVkKCkgeyB9LAorICAgIHB1YmxpYygpIHsgfSwKKyAgICBvZigpIHsgfSwKKyAgICByZXR1cm4o
KSB7IH0sCisgICAgc2V0KCkgeyB9LAorICAgIHNob3J0KCkgeyB9LAorICAgIHN0YXRpYygpIHsg
fSwKKyAgICBzdXBlcigpIHsgfSwKKyAgICBzd2l0Y2goKSB7IH0sCisgICAgc3luY2hyb25pemVk
KCkgeyB9LAorICAgIHRoaXMoKSB7IH0sCisgICAgdGhyb3coKSB7IH0sCisgICAgdGhyb3dzKCkg
eyB9LAorICAgIHRyYW5zaWVudCgpIHsgfSwKKyAgICB0cnVlKCkgeyB9LAorICAgIHRyeSgpIHsg
fSwKKyAgICB0eXBlb2YoKSB7IH0sCisgICAgdmFyKCkgeyB9LAorICAgIHZvaWQoKSB7IH0sCisg
ICAgdm9sYXRpbGUoKSB7IH0sCisgICAgd2hpbGUoKSB7IH0sCisgICAgd2l0aCgpIHsgfSwKKyAg
ICB5aWVsZCgpIHsgfSwKK307CisKK3ZhciBvYmplY3RMaXRlcmFsV2l0aEtleXdvcmRHZXR0ZXJO
YW1lcyA9IHsKKyAgICBnZXQgY29uc3RydWN0b3IoKSB7IH0sCisgICAgZ2V0IGFic3RyYWN0KCkg
eyB9LAorICAgIGdldCBhcmd1bWVudHMoKSB7IH0sCisgICAgZ2V0IGJvb2xlYW4oKSB7IH0sCisg
ICAgZ2V0IGJyZWFrKCkgeyB9LAorICAgIGdldCBieXRlKCkgeyB9LAorICAgIGdldCBjYXNlKCkg
eyB9LAorICAgIGdldCBjYXRjaCgpIHsgfSwKKyAgICBnZXQgY2hhcigpIHsgfSwKKyAgICBnZXQg
Y2xhc3MoKSB7IH0sCisgICAgZ2V0IGNvbnN0KCkgeyB9LAorICAgIGdldCBjb250aW51ZSgpIHsg
fSwKKyAgICBnZXQgZGVidWdnZXIoKSB7IH0sCisgICAgZ2V0IGRlZmF1bHQoKSB7IH0sCisgICAg
Z2V0IGRlbGV0ZSgpIHsgfSwKKyAgICBnZXQgZG8oKSB7IH0sCisgICAgZ2V0IGRvdWJsZSgpIHsg
fSwKKyAgICBnZXQgZWxzZSgpIHsgfSwKKyAgICBnZXQgZW51bSgpIHsgfSwKKyAgICBnZXQgZXZh
bCgpIHsgfSwKKyAgICBnZXQgZXhwb3J0KCkgeyB9LAorICAgIGdldCBleHRlbmRzKCkgeyB9LAor
ICAgIGdldCBmYWxzZSgpIHsgfSwKKyAgICBnZXQgZmluYWwoKSB7IH0sCisgICAgZ2V0IGZpbmFs
bHkoKSB7IH0sCisgICAgZ2V0IGZsb2F0KCkgeyB9LAorICAgIGdldCBmb3IoKSB7IH0sCisgICAg
Z2V0IGZ1bmN0aW9uKCkgeyB9LAorICAgIGdldCBnZXQoKSB7IH0sCisgICAgZ2V0IGdvdG8oKSB7
IH0sCisgICAgZ2V0IGlmKCkgeyB9LAorICAgIGdldCBpbXBsZW1lbnRzKCkgeyB9LAorICAgIGdl
dCBpbXBvcnQoKSB7IH0sCisgICAgZ2V0IGluKCkgeyB9LAorICAgIGdldCBpbnN0YW5jZW9mKCkg
eyB9LAorICAgIGdldCBpbnQoKSB7IH0sCisgICAgZ2V0IGludGVyZmFjZSgpIHsgfSwKKyAgICBn
ZXQgbGV0KCkgeyB9LAorICAgIGdldCBsb25nKCkgeyB9LAorICAgIGdldCBuYXRpdmUoKSB7IH0s
CisgICAgZ2V0IG5ldygpIHsgfSwKKyAgICBnZXQgbnVsbCgpIHsgfSwKKyAgICBnZXQgcGFja2Fn
ZSgpIHsgfSwKKyAgICBnZXQgcHJpdmF0ZSgpIHsgfSwKKyAgICBnZXQgcHJvdGVjdGVkKCkgeyB9
LAorICAgIGdldCBwdWJsaWMoKSB7IH0sCisgICAgZ2V0IG9mKCkgeyB9LAorICAgIGdldCByZXR1
cm4oKSB7IH0sCisgICAgZ2V0IHNldCgpIHsgfSwKKyAgICBnZXQgc2hvcnQoKSB7IH0sCisgICAg
Z2V0IHN0YXRpYygpIHsgfSwKKyAgICBnZXQgc3VwZXIoKSB7IH0sCisgICAgZ2V0IHN3aXRjaCgp
IHsgfSwKKyAgICBnZXQgc3luY2hyb25pemVkKCkgeyB9LAorICAgIGdldCB0aGlzKCkgeyB9LAor
ICAgIGdldCB0aHJvdygpIHsgfSwKKyAgICBnZXQgdGhyb3dzKCkgeyB9LAorICAgIGdldCB0cmFu
c2llbnQoKSB7IH0sCisgICAgZ2V0IHRydWUoKSB7IH0sCisgICAgZ2V0IHRyeSgpIHsgfSwKKyAg
ICBnZXQgdHlwZW9mKCkgeyB9LAorICAgIGdldCB2YXIoKSB7IH0sCisgICAgZ2V0IHZvaWQoKSB7
IH0sCisgICAgZ2V0IHZvbGF0aWxlKCkgeyB9LAorICAgIGdldCB3aGlsZSgpIHsgfSwKKyAgICBn
ZXQgd2l0aCgpIHsgfSwKKyAgICBnZXQgeWllbGQoKSB7IH0sCit9OworCit2YXIgb2JqZWN0TGl0
ZXJhbFdpdGhLZXl3b3JkU2V0dGVyTmFtZXMgPSB7CisgICAgc2V0IGNvbnN0cnVjdG9yKHgpIHsg
fSwKKyAgICBzZXQgYWJzdHJhY3QoeCkgeyB9LAorICAgIHNldCBhcmd1bWVudHMoeCkgeyB9LAor
ICAgIHNldCBib29sZWFuKHgpIHsgfSwKKyAgICBzZXQgYnJlYWsoeCkgeyB9LAorICAgIHNldCBi
eXRlKHgpIHsgfSwKKyAgICBzZXQgY2FzZSh4KSB7IH0sCisgICAgc2V0IGNhdGNoKHgpIHsgfSwK
KyAgICBzZXQgY2hhcih4KSB7IH0sCisgICAgc2V0IGNsYXNzKHgpIHsgfSwKKyAgICBzZXQgY29u
c3QoeCkgeyB9LAorICAgIHNldCBjb250aW51ZSh4KSB7IH0sCisgICAgc2V0IGRlYnVnZ2VyKHgp
IHsgfSwKKyAgICBzZXQgZGVmYXVsdCh4KSB7IH0sCisgICAgc2V0IGRlbGV0ZSh4KSB7IH0sCisg
ICAgc2V0IGRvKHgpIHsgfSwKKyAgICBzZXQgZG91YmxlKHgpIHsgfSwKKyAgICBzZXQgZWxzZSh4
KSB7IH0sCisgICAgc2V0IGVudW0oeCkgeyB9LAorICAgIHNldCBldmFsKHgpIHsgfSwKKyAgICBz
ZXQgZXhwb3J0KHgpIHsgfSwKKyAgICBzZXQgZXh0ZW5kcyh4KSB7IH0sCisgICAgc2V0IGZhbHNl
KHgpIHsgfSwKKyAgICBzZXQgZmluYWwoeCkgeyB9LAorICAgIHNldCBmaW5hbGx5KHgpIHsgfSwK
KyAgICBzZXQgZmxvYXQoeCkgeyB9LAorICAgIHNldCBmb3IoeCkgeyB9LAorICAgIHNldCBmdW5j
dGlvbih4KSB7IH0sCisgICAgc2V0IGdldCh4KSB7IH0sCisgICAgc2V0IGdvdG8oeCkgeyB9LAor
ICAgIHNldCBpZih4KSB7IH0sCisgICAgc2V0IGltcGxlbWVudHMoeCkgeyB9LAorICAgIHNldCBp
bXBvcnQoeCkgeyB9LAorICAgIHNldCBpbih4KSB7IH0sCisgICAgc2V0IGluc3RhbmNlb2YoeCkg
eyB9LAorICAgIHNldCBpbnQoeCkgeyB9LAorICAgIHNldCBpbnRlcmZhY2UoeCkgeyB9LAorICAg
IHNldCBsZXQoeCkgeyB9LAorICAgIHNldCBsb25nKHgpIHsgfSwKKyAgICBzZXQgbmF0aXZlKHgp
IHsgfSwKKyAgICBzZXQgbmV3KHgpIHsgfSwKKyAgICBzZXQgbnVsbCh4KSB7IH0sCisgICAgc2V0
IHBhY2thZ2UoeCkgeyB9LAorICAgIHNldCBwcml2YXRlKHgpIHsgfSwKKyAgICBzZXQgcHJvdGVj
dGVkKHgpIHsgfSwKKyAgICBzZXQgcHVibGljKHgpIHsgfSwKKyAgICBzZXQgb2YoeCkgeyB9LAor
ICAgIHNldCByZXR1cm4oeCkgeyB9LAorICAgIHNldCBzZXQoeCkgeyB9LAorICAgIHNldCBzaG9y
dCh4KSB7IH0sCisgICAgc2V0IHN0YXRpYyh4KSB7IH0sCisgICAgc2V0IHN1cGVyKHgpIHsgfSwK
KyAgICBzZXQgc3dpdGNoKHgpIHsgfSwKKyAgICBzZXQgc3luY2hyb25pemVkKHgpIHsgfSwKKyAg
ICBzZXQgdGhpcyh4KSB7IH0sCisgICAgc2V0IHRocm93KHgpIHsgfSwKKyAgICBzZXQgdGhyb3dz
KHgpIHsgfSwKKyAgICBzZXQgdHJhbnNpZW50KHgpIHsgfSwKKyAgICBzZXQgdHJ1ZSh4KSB7IH0s
CisgICAgc2V0IHRyeSh4KSB7IH0sCisgICAgc2V0IHR5cGVvZih4KSB7IH0sCisgICAgc2V0IHZh
cih4KSB7IH0sCisgICAgc2V0IHZvaWQoeCkgeyB9LAorICAgIHNldCB2b2xhdGlsZSh4KSB7IH0s
CisgICAgc2V0IHdoaWxlKHgpIHsgfSwKKyAgICBzZXQgd2l0aCh4KSB7IH0sCisgICAgc2V0IHlp
ZWxkKHgpIHsgfSwKK307CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cKaW5kZXggMmQ5YjQwYS4uZGE1ZTkxNiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTYtMDEtMTEgIEpvc2VwaCBQZWNvcmFybyAgPHBl
Y29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBrZXl3b3JkcyAoInN1cGVyIiwgImRlbGV0ZSIs
IGV0Yykgc2hvdWxkIGJlIHZhbGlkIG1ldGhvZCBuYW1lcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0MjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmNwcDoKKyAgICAgICAg
KEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNlQ2xhc3MpOgorICAgICAgICAtIFdoZW4gcGFy
c2luZyAic3RhdGljKCIgdHJlYXQgaXQgYXMgYSBtZXRob2QgbmFtZWQgInN0YXRpYyIgYW5kIG5v
dCBhIHN0YXRpYyBtZXRob2QuCisgICAgICAgIC0gV2hlbiBwYXJzaW5nIGEga2V5d29yZCB0cmVh
dCBpdCBsaWtlIGEgc3RyaW5nIG1ldGhvZCBuYW1lIChnZXQgYW5kIHNldCBhcmUgbm90IGtleXdv
cmRzKQorICAgICAgICAtIFdoZW4gcGFyc2luZyBhIGdldHRlciAvIHNldHRlciBtZXRob2QgbmFt
ZSBpZGVudGlmaWVyLCBhbGxvdyBsb29rYWhlYWQgdG8gYmUgYSBrZXl3b3JkCisKKyAgICAgICAg
KEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNlR2V0dGVyU2V0dGVyKToKKyAgICAgICAgLSBX
aGVuIHBhcnNpbmcgdGhlIGdldHRlciAvIHNldHRlcidzIG5hbWUsIGFsbG93IGl0IHRvIGJlIGEg
a2V5d29yZC4KKwogMjAxNi0wMS0wNiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUu
Y29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IENSQVNIIEF0dGVtcHRpbmcgdG8gcGF1c2Ug
b24gQ1NQIHZpb2xhdGlvbiBub3QgaW5zaWRlIG9mIHNjcmlwdApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9QYXJzZXIuY3BwCmluZGV4IGUyODAwN2QuLjhkMzcwNjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKQEAgLTIxNDgsOSArMjE0OCwxNiBAQCB0ZW1wbGF0
ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVDbGFzc0V4cHJlc3Npb24gUGFyc2VyPExleGVyVHlw
ZT46OnBhcnNlQ2xhc3MoVAogICAgICAgICB1bnNpZ25lZCBtZXRob2RTdGFydCA9IHRva2VuU3Rh
cnQoKTsKIAogICAgICAgICAvLyBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksICJzdGF0aWMi
IGlzIGEgbm9uLXJlc2VydmVkIGtleXdvcmQgaW4gbm9uLXN0cmljdCBtb2RlLgotICAgICAgICBi
b29sIGlzU3RhdGljTWV0aG9kID0gbWF0Y2goUkVTRVJWRURfSUZfU1RSSUNUKSAmJiAqbV90b2tl
bi5tX2RhdGEuaWRlbnQgPT0gbV92bS0+cHJvcGVydHlOYW1lcy0+c3RhdGljS2V5d29yZDsKLSAg
ICAgICAgaWYgKGlzU3RhdGljTWV0aG9kKQorICAgICAgICBib29sIGlzU3RhdGljTWV0aG9kID0g
ZmFsc2U7CisgICAgICAgIGlmIChtYXRjaChSRVNFUlZFRF9JRl9TVFJJQ1QpICYmICptX3Rva2Vu
Lm1fZGF0YS5pZGVudCA9PSBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5zdGF0aWNLZXl3b3JkKSB7Cisg
ICAgICAgICAgICBhdXRvIHNhdmVQb2ludCA9IGNyZWF0ZVNhdmVQb2ludCgpOwogICAgICAgICAg
ICAgbmV4dCgpOworICAgICAgICAgICAgaWYgKG1hdGNoKE9QRU5QQVJFTikpIHsKKyAgICAgICAg
ICAgICAgICAvLyBSZXBhcnNlICJzdGF0aWMoKSIgYXMgYSBtZXRob2QgbmFtZWQgInN0YXRpYyIu
CisgICAgICAgICAgICAgICAgcmVzdG9yZVNhdmVQb2ludChzYXZlUG9pbnQpOworICAgICAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICAgICAgaXNTdGF0aWNNZXRob2QgPSB0cnVlOworICAgICAg
ICB9CiAKICAgICAgICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgYSB3YXkgdG8gc2hhcmUgbW9yZSBj
b2RlIHdpdGggcGFyc2VQcm9wZXJ0eS4KICAgICAgICAgY29uc3QgQ29tbW9uSWRlbnRpZmllcnMm
IHByb3BlcnR5TmFtZXMgPSAqbV92bS0+cHJvcGVydHlOYW1lczsKQEAgLTIxNjQsNiArMjE3MSw3
IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUNsYXNzRXhwcmVzc2lvbiBQYXJz
ZXI8TGV4ZXJUeXBlPjo6cGFyc2VDbGFzcyhUCiAgICAgICAgICAgICBpc0dlbmVyYXRvciA9IHRy
dWU7CiAjZW5kaWYKICAgICAgICAgc3dpdGNoIChtX3Rva2VuLm1fdHlwZSkgeworICAgICAgICBu
YW1lZEtleXdvcmQ6CiAgICAgICAgIGNhc2UgU1RSSU5HOgogICAgICAgICAgICAgaWRlbnQgPSBt
X3Rva2VuLm1fZGF0YS5pZGVudDsKICAgICAgICAgICAgIEFTU0VSVChpZGVudCk7CkBAIC0yMTcz
LDcgKzIxODEsNyBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVDbGFzc0V4cHJl
c3Npb24gUGFyc2VyPExleGVyVHlwZT46OnBhcnNlQ2xhc3MoVAogICAgICAgICAgICAgaWRlbnQg
PSBtX3Rva2VuLm1fZGF0YS5pZGVudDsKICAgICAgICAgICAgIEFTU0VSVChpZGVudCk7CiAgICAg
ICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICBpZiAoIWlzR2VuZXJhdG9yICYmIChtYXRjaChJ
REVOVCkgfHwgbWF0Y2goU1RSSU5HKSB8fCBtYXRjaChET1VCTEUpIHx8IG1hdGNoKElOVEVHRVIp
IHx8IG1hdGNoKE9QRU5CUkFDS0VUKSkpIHsKKyAgICAgICAgICAgIGlmICghaXNHZW5lcmF0b3Ig
JiYgKG1hdGNoSWRlbnRpZmllck9yS2V5d29yZCgpIHx8IG1hdGNoKFNUUklORykgfHwgbWF0Y2go
RE9VQkxFKSB8fCBtYXRjaChJTlRFR0VSKSB8fCBtYXRjaChPUEVOQlJBQ0tFVCkpKSB7CiAgICAg
ICAgICAgICAgICAgaXNHZXR0ZXIgPSAqaWRlbnQgPT0gcHJvcGVydHlOYW1lcy5nZXQ7CiAgICAg
ICAgICAgICAgICAgaXNTZXR0ZXIgPSAqaWRlbnQgPT0gcHJvcGVydHlOYW1lcy5zZXQ7CiAgICAg
ICAgICAgICB9CkBAIC0yMTkxLDYgKzIxOTksOCBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxk
ZXI+IFRyZWVDbGFzc0V4cHJlc3Npb24gUGFyc2VyPExleGVyVHlwZT46OnBhcnNlQ2xhc3MoVAog
ICAgICAgICAgICAgaGFuZGxlUHJvZHVjdGlvbk9yRmFpbChDTE9TRUJSQUNLRVQsICJdIiwgImVu
ZCIsICJjb21wdXRlZCBwcm9wZXJ0eSBuYW1lIik7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGlmIChtX3Rva2VuLm1fdHlwZSAmIEtleXdvcmRUb2tl
bkZsYWcpCisgICAgICAgICAgICAgICAgZ290byBuYW1lZEtleXdvcmQ7CiAgICAgICAgICAgICBm
YWlsRHVlVG9VbmV4cGVjdGVkVG9rZW4oKTsKICAgICAgICAgfQogCkBAIC0zMjAwLDcgKzMyMTAs
NyBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVQcm9wZXJ0eSBQYXJzZXI8TGV4
ZXJUeXBlPjo6cGFyc2VHZXR0ZXJTZXR0ZXIoVAogCiAgICAgSlNUb2tlbkxvY2F0aW9uIGxvY2F0
aW9uKHRva2VuTG9jYXRpb24oKSk7CiAKLSAgICBpZiAobWF0Y2hTcGVjSWRlbnRpZmllcigpIHx8
IG1hdGNoKFNUUklORykpIHsKKyAgICBpZiAobWF0Y2hTcGVjSWRlbnRpZmllcigpIHx8IG1hdGNo
KFNUUklORykgfHwgbV90b2tlbi5tX3R5cGUgJiBLZXl3b3JkVG9rZW5GbGFnKSB7CiAgICAgICAg
IHN0cmluZ1Byb3BlcnR5TmFtZSA9IG1fdG9rZW4ubV9kYXRhLmlkZW50OwogICAgICAgICBzZW1h
bnRpY0ZhaWxJZlRydWUoc3VwZXJCaW5kaW5nID09IFN1cGVyQmluZGluZzo6TmVlZGVkICYmICpz
dHJpbmdQcm9wZXJ0eU5hbWUgPT0gbV92bS0+cHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLAogICAg
ICAgICAgICAgIkNhbm5vdCBkZWNsYXJlIGEgc3RhdGljIG1ldGhvZCBuYW1lZCAncHJvdG90eXBl
JyIpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>