<?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>36574</bug_id>
          
          <creation_ts>2010-03-24 20:17:45 -0700</creation_ts>
          <short_desc>Inconsistent failure modes from uniform[Matrix]* with null WebGLUniformLocation</short_desc>
          <delta_ts>2010-04-03 00:49:32 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenneth Russell">kbr</reporter>
          <assigned_to name="Kenneth Russell">kbr</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>oliver</cc>
    
    <cc>zmo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>203754</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-03-24 20:17:45 -0700</bug_when>
    <thetext>The JSC and V8 custom bindings produce different failure modes when uniformMatrix4fv (and, likely, other uniform calls) are made with a null WebGLUniformLocation. V8 synthesizes a DOM SYNTAX_ERR. JSC allows the null value to go through to the WebGLRenderingContext, which synthesizes an INVALID_VALUE OpenGL error. The latter behavior is desired, and the V8 custom bindings should be changed to match it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208129</commentid>
    <comment_count>1</comment_count>
      <attachid>52462</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-04-02 16:13:24 -0700</bug_when>
    <thetext>Created attachment 52462
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208214</commentid>
    <comment_count>2</comment_count>
      <attachid>52462</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-04-02 21:41:14 -0700</bug_when>
    <thetext>Comment on attachment 52462
Patch

&gt; Index: WebCore/html/canvas/WebGLRenderingContext.cpp

&gt; +    if (!location) {
&gt; +        m_context-&gt;synthesizeGLError(GraphicsContext3D::INVALID_VALUE);
&gt; +        return;
&gt; +    }
&gt; +
&gt; +    if (location-&gt;program() != m_currentProgram) {
&gt;          m_context-&gt;synthesizeGLError(GraphicsContext3D::INVALID_OPERATION);
&gt;          return;
&gt;      }

R=me, but perhaps we should have a helper method for this replicated code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208247</commentid>
    <comment_count>3</comment_count>
      <attachid>52462</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-03 00:29:51 -0700</bug_when>
    <thetext>Comment on attachment 52462
Patch

Rejecting patch 52462 from commit-queue.

Failed to run &quot;[&apos;WebKitTools/Scripts/run-webkit-tests&apos;, &apos;--no-launch-safari&apos;, &apos;--exit-after-n-failures=1&apos;, &apos;--quiet&apos;]&quot; exit_code: 1
Running build-dumprendertree
Compiling Java tests
make: Nothing to be done for `default&apos;.
Running tests from /Users/eseidel/Projects/CommitQueue/LayoutTests
Testing 12621 test cases.
transitions/transition-end-event-transform.html -&gt; failed

Exiting early after 1 failures. 11643 tests run.
287.40s total testing time

11642 test cases (99%) succeeded
1 test case (&lt;1%) had incorrect layout
10 test cases (&lt;1%) had stderr output

Full output: http://webkit-commit-queue.appspot.com/results/1653117</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208250</commentid>
    <comment_count>4</comment_count>
      <attachid>52462</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-04-03 00:33:51 -0700</bug_when>
    <thetext>Comment on attachment 52462
Patch

Let&apos;s try again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208253</commentid>
    <comment_count>5</comment_count>
      <attachid>52462</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-03 00:49:27 -0700</bug_when>
    <thetext>Comment on attachment 52462
Patch

Clearing flags on attachment: 52462

Committed r57049: &lt;http://trac.webkit.org/changeset/57049&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208254</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-03 00:49:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52462</attachid>
            <date>2010-04-02 16:13:24 -0700</date>
            <delta_ts>2010-04-03 00:49:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>uniform.patch</filename>
            <type>text/plain</type>
            <size>28780</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NzAyOSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDUgQEAKKzIwMTAtMDQtMDIgIEtlbm5ldGggUnVzc2VsbCAgPGtickBnb29nbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElu
Y29uc2lzdGVudCBmYWlsdXJlIG1vZGVzIGZyb20gdW5pZm9ybVtNYXRyaXhdKiB3aXRoIG51bGwg
V2ViR0xVbmlmb3JtTG9jYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM2NTc0CisKKyAgICAgICAgRml4ZWQgYnVncyBpbiBKYXZhU2NyaXB0IGJp
bmRpbmdzIGZvciB1bmlmb3JtW01hdHJpeF0qIGVudHJ5CisgICAgICAgIHBvaW50cyBjYXVzaW5n
IHRoZW0gdG8gdGhyb3cgZXhjZXB0aW9ucyByYXRoZXIgdGhhbiBzeW50aGVzaXplIEdMCisgICAg
ICAgIGVycm9ycy4gRml4ZWQgdGhlIGltcGxlbWVudGF0aW9ucyB0byBzeW50aGVzaXplIElOVkFM
SURfVkFMVUUKKyAgICAgICAgcmF0aGVyIHRoYW4gSU5WQUxJRF9PUEVSQVRJT04gdG8gY29tcGx5
IHRvIHRoZSBXZWJHTCBzcGVjLiBVcGRhdGVkCisgICAgICAgIHVuaWZvcm0tbG9jYXRpb24tZXhw
ZWN0ZWQudHh0IHRvIGluY29ycG9yYXRlIHRoZSBjb3JyZWN0IGVycm9yLgorICAgICAgICBUZXN0
ZWQgaW4gU2FmYXJpIGFuZCBDaHJvbWl1bS4KKworICAgICAgICBUZXN0OiBmYXN0L2NhbnZhcy93
ZWJnbC9udWxsLXVuaWZvcm0tbG9jYXRpb24uaHRtbAorCisgICAgICAgICogYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlY4V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRVbmlmb3JtQ2FsbGJhY2spOgorICAgICAg
ICAoV2ViQ29yZTo6dmVydGV4QXR0cmliQW5kVW5pZm9ybUhlbHBlcmYpOgorICAgICAgICAoV2Vi
Q29yZTo6dW5pZm9ybUhlbHBlcmkpOgorICAgICAgICAoV2ViQ29yZTo6dW5pZm9ybU1hdHJpeEhl
bHBlcik6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTFmKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTFmdik6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm0xaSk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm0xaXYpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtMmYpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtMmZ2KToKKyAgICAgICAgKFdlYkNv
cmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTJpKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTJpdik6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm0zZik6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm0zZnYpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xS
ZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtM2kpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5k
ZXJpbmdDb250ZXh0Ojp1bmlmb3JtM2l2KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVy
aW5nQ29udGV4dDo6dW5pZm9ybTRmKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5n
Q29udGV4dDo6dW5pZm9ybTRmdik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0Nv
bnRleHQ6OnVuaWZvcm00aSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ6OnVuaWZvcm00aXYpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
Ojp1bmlmb3JtTWF0cml4MmZ2KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6dW5pZm9ybU1hdHJpeDNmdik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OnVuaWZvcm1NYXRyaXg0ZnYpOgorCiAyMDEwLTA0LTAyICBFdmFuIFN0YWRlICA8
ZXN0YWRlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4K
SW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0
Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdl
YkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAJKHJldmlzaW9uIDU3MDI3KQorKysgV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00MjksMTAgKzQyOSw2IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBW
OFdlYkdMUmVuZGVyaW5nQ28KICAgICBib29sIG9rID0gZmFsc2U7CiAgICAgV2ViR0xVbmlmb3Jt
TG9jYXRpb24qIGxvY2F0aW9uID0gdG9XZWJHTFVuaWZvcm1Mb2NhdGlvbihhcmdzWzFdLCBvayk7
CiAKLSAgICBpZiAoIW9rKSB7Ci0gICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihTWU5U
QVhfRVJSKTsKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7Ci0gICAg
fQogICAgIFdlYkdMR2V0SW5mbyBpbmZvID0gY29udGV4dC0+Z2V0VW5pZm9ybShwcm9ncmFtLCBs
b2NhdGlvbiwgZWMpOwogICAgIGlmIChlYykgewogICAgICAgICBWOFByb3h5OjpzZXRET01FeGNl
cHRpb24oZWMpOwpAQCAtNzg2LDEwICs3ODIsNiBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IHZlcnRleEF0dHJpCiAKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQgPSBW
OFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAKLSAgICBp
ZiAoIW9rKSB7Ci0gICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihTWU5UQVhfRVJSKTsK
LSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7Ci0gICAgfQogICAgIGlm
IChWOFdlYkdMRmxvYXRBcnJheTo6SGFzSW5zdGFuY2UoYXJnc1sxXSkpIHsKICAgICAgICAgV2Vi
R0xGbG9hdEFycmF5KiBhcnJheSA9IFY4V2ViR0xGbG9hdEFycmF5Ojp0b05hdGl2ZShhcmdzWzFd
LT5Ub09iamVjdCgpKTsKICAgICAgICAgQVNTRVJUKGFycmF5ICE9IE5VTEwpOwpAQCAtODYyLDEw
ICs4NTQsNiBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHVuaWZvcm1IZWxwCiAgICAg
Ym9vbCBvayA9IGZhbHNlOwogICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IHRv
V2ViR0xVbmlmb3JtTG9jYXRpb24oYXJnc1swXSwgb2spOwogCi0gICAgaWYgKCFvaykgewotICAg
ICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oU1lOVEFYX0VSUik7Ci0gICAgICAgIHJldHVy
biBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwotICAgIH0KICAgICBpZiAoVjhXZWJHTEludEFy
cmF5OjpIYXNJbnN0YW5jZShhcmdzWzFdKSkgewogICAgICAgICBXZWJHTEludEFycmF5KiBhcnJh
eSA9IFY4V2ViR0xJbnRBcnJheTo6dG9OYXRpdmUoYXJnc1sxXS0+VG9PYmplY3QoKSk7CiAgICAg
ICAgIEFTU0VSVChhcnJheSAhPSBOVUxMKTsKQEAgLTk3OSwxMCArOTY3LDYgQEAgc3RhdGljIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiB1bmlmb3JtTWF0cgogICAgIGJvb2wgb2sgPSBmYWxzZTsKICAg
ICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSB0b1dlYkdMVW5pZm9ybUxvY2F0aW9u
KGFyZ3NbMF0sIG9rKTsKICAgICAKLSAgICBpZiAoIW9rKSB7Ci0gICAgICAgIFY4UHJveHk6OnNl
dERPTUV4Y2VwdGlvbihTWU5UQVhfRVJSKTsKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUlu
dGVyY2VwdG9yKCk7Ci0gICAgfQogICAgIGJvb2wgdHJhbnNwb3NlID0gYXJnc1sxXS0+Qm9vbGVh
blZhbHVlKCk7CiAgICAgaWYgKFY4V2ViR0xGbG9hdEFycmF5OjpIYXNJbnN0YW5jZShhcmdzWzJd
KSkgewogICAgICAgICBXZWJHTEZsb2F0QXJyYXkqIGFycmF5ID0gVjhXZWJHTEZsb2F0QXJyYXk6
OnRvTmF0aXZlKGFyZ3NbMl0tPlRvT2JqZWN0KCkpOwpJbmRleDogV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAkocmV2aXNpb24gNTcwMjcpCisrKyBXZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE4NDMsNyArMTg0MywxMiBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dGV4U3Vi
SW1hZ2UyCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTFmKGNvbnN0IFdlYkdM
VW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiwgZmxvYXQgeCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
CiAgICAgVU5VU0VEX1BBUkFNKGVjKTsKLSAgICBpZiAoIWxvY2F0aW9uIHx8IGxvY2F0aW9uLT5w
cm9ncmFtKCkgIT0gbV9jdXJyZW50UHJvZ3JhbSkgeworICAgIGlmICghbG9jYXRpb24pIHsKKyAg
ICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5W
QUxJRF9WQUxVRSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobG9jYXRpb24t
PnByb2dyYW0oKSAhPSBtX2N1cnJlbnRQcm9ncmFtKSB7CiAgICAgICAgIG1fY29udGV4dC0+c3lu
dGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE4NTUsNyArMTg2MCwxMiBAQCB2b2lkIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6dW5pZm9ybTFmKGNvCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6
dW5pZm9ybTFmdihjb25zdCBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24sIFdlYkdMRmxv
YXRBcnJheSogdiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGVjKTsK
LSAgICBpZiAoIWxvY2F0aW9uIHx8IGxvY2F0aW9uLT5wcm9ncmFtKCkgIT0gbV9jdXJyZW50UHJv
Z3JhbSkgeworICAgIGlmICghbG9jYXRpb24pIHsKKyAgICAgICAgbV9jb250ZXh0LT5zeW50aGVz
aXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9WQUxVRSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBpZiAobG9jYXRpb24tPnByb2dyYW0oKSAhPSBtX2N1cnJlbnRQ
cm9ncmFtKSB7CiAgICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3ND
b250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAg
LTE4NzEsNyArMTg4MSwxMiBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTFm
dihjCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTFmdihjb25zdCBXZWJHTFVu
aWZvcm1Mb2NhdGlvbiogbG9jYXRpb24sIGZsb2F0KiB2LCBpbnQgc2l6ZSwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGVjKTsKLSAgICBpZiAoIWxvY2F0aW9uIHx8IGxv
Y2F0aW9uLT5wcm9ncmFtKCkgIT0gbV9jdXJyZW50UHJvZ3JhbSkgeworICAgIGlmICghbG9jYXRp
b24pIHsKKyAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRl
eHQzRDo6SU5WQUxJRF9WQUxVRSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAo
bG9jYXRpb24tPnByb2dyYW0oKSAhPSBtX2N1cnJlbnRQcm9ncmFtKSB7CiAgICAgICAgIG1fY29u
dGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfT1BFUkFU
SU9OKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE4ODcsNyArMTkwMiwxMiBAQCB2b2lk
IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTFmdihjCiB2b2lkIFdlYkdMUmVuZGVyaW5n
Q29udGV4dDo6dW5pZm9ybTFpKGNvbnN0IFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiwg
aW50IHgsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIFVOVVNFRF9QQVJBTShlYyk7Ci0gICAg
aWYgKCFsb2NhdGlvbiB8fCBsb2NhdGlvbi0+cHJvZ3JhbSgpICE9IG1fY3VycmVudFByb2dyYW0p
IHsKKyAgICBpZiAoIWxvY2F0aW9uKSB7CisgICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdM
RXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfVkFMVUUpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgaWYgKGxvY2F0aW9uLT5wcm9ncmFtKCkgIT0gbV9jdXJyZW50UHJvZ3Jh
bSkgewogICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4
dDNEOjpJTlZBTElEX09QRVJBVElPTik7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xODk5
LDcgKzE5MTksMTIgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm0xaShjbwog
dm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm0xaXYoY29uc3QgV2ViR0xVbmlmb3Jt
TG9jYXRpb24qIGxvY2F0aW9uLCBXZWJHTEludEFycmF5KiB2LCBFeGNlcHRpb25Db2RlJiBlYykK
IHsKICAgICBVTlVTRURfUEFSQU0oZWMpOwotICAgIGlmICghbG9jYXRpb24gfHwgbG9jYXRpb24t
PnByb2dyYW0oKSAhPSBtX2N1cnJlbnRQcm9ncmFtKSB7CisgICAgaWYgKCFsb2NhdGlvbikgewor
ICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJ
TlZBTElEX1ZBTFVFKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChsb2NhdGlv
bi0+cHJvZ3JhbSgpICE9IG1fY3VycmVudFByb2dyYW0pIHsKICAgICAgICAgbV9jb250ZXh0LT5z
eW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJT04pOwog
ICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTkxNSw3ICsxOTQwLDEyIEBAIHZvaWQgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtMWl2KGMKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0
Ojp1bmlmb3JtMWl2KGNvbnN0IFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiwgaW50KiB2
LCBpbnQgc2l6ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGVjKTsK
LSAgICBpZiAoIWxvY2F0aW9uIHx8IGxvY2F0aW9uLT5wcm9ncmFtKCkgIT0gbV9jdXJyZW50UHJv
Z3JhbSkgeworICAgIGlmICghbG9jYXRpb24pIHsKKyAgICAgICAgbV9jb250ZXh0LT5zeW50aGVz
aXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9WQUxVRSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBpZiAobG9jYXRpb24tPnByb2dyYW0oKSAhPSBtX2N1cnJlbnRQ
cm9ncmFtKSB7CiAgICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3ND
b250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAg
LTE5MzEsNyArMTk2MSwxMiBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTFp
dihjCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTJmKGNvbnN0IFdlYkdMVW5p
Zm9ybUxvY2F0aW9uKiBsb2NhdGlvbiwgZmxvYXQgeCwgZmxvYXQgeSwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGVjKTsKLSAgICBpZiAoIWxvY2F0aW9uIHx8IGxvY2F0
aW9uLT5wcm9ncmFtKCkgIT0gbV9jdXJyZW50UHJvZ3JhbSkgeworICAgIGlmICghbG9jYXRpb24p
IHsKKyAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQz
RDo6SU5WQUxJRF9WQUxVRSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobG9j
YXRpb24tPnByb2dyYW0oKSAhPSBtX2N1cnJlbnRQcm9ncmFtKSB7CiAgICAgICAgIG1fY29udGV4
dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9O
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE5NDMsNyArMTk3OCwxMiBAQCB2b2lkIFdl
YkdMUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTJmKGNvCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6dW5pZm9ybTJmdihjb25zdCBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24sIFdl
YkdMRmxvYXRBcnJheSogdiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgVU5VU0VEX1BBUkFN
KGVjKTsKLSAgICBpZiAoIWxvY2F0aW9uIHx8IGxvY2F0aW9uLT5wcm9ncmFtKCkgIT0gbV9jdXJy
ZW50UHJvZ3JhbSkgeworICAgIGlmICghbG9jYXRpb24pIHsKKyAgICAgICAgbV9jb250ZXh0LT5z
eW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9WQUxVRSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobG9jYXRpb24tPnByb2dyYW0oKSAhPSBtX2N1
cnJlbnRQcm9ncmFtKSB7CiAgICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3Jh
cGhpY3NDb250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KQEAgLTE5NjAsNyArMjAwMCwxMiBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dW5p
Zm9ybTJmdihjCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTJmdihjb25zdCBX
ZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24sIGZsb2F0KiB2LCBpbnQgc2l6ZSwgRXhjZXB0
aW9uQ29kZSYgZWMpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGVjKTsKLSAgICBpZiAoIWxvY2F0aW9u
IHx8IGxvY2F0aW9uLT5wcm9ncmFtKCkgIT0gbV9jdXJyZW50UHJvZ3JhbSkgeworICAgIGlmICgh
bG9jYXRpb24pIHsKKyAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGlj
c0NvbnRleHQzRDo6SU5WQUxJRF9WQUxVRSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBpZiAobG9jYXRpb24tPnByb2dyYW0oKSAhPSBtX2N1cnJlbnRQcm9ncmFtKSB7CiAgICAgICAg
IG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURf
T1BFUkFUSU9OKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE5NzcsNyArMjAyMiwxMiBA
QCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTJmdihjCiB2b2lkIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6dW5pZm9ybTJpKGNvbnN0IFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2Nh
dGlvbiwgaW50IHgsIGludCB5LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBVTlVTRURfUEFS
QU0oZWMpOwotICAgIGlmICghbG9jYXRpb24gfHwgbG9jYXRpb24tPnByb2dyYW0oKSAhPSBtX2N1
cnJlbnRQcm9ncmFtKSB7CisgICAgaWYgKCFsb2NhdGlvbikgeworICAgICAgICBtX2NvbnRleHQt
PnN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX1ZBTFVFKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChsb2NhdGlvbi0+cHJvZ3JhbSgpICE9IG1f
Y3VycmVudFByb2dyYW0pIHsKICAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihH
cmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJT04pOwogICAgICAgICByZXR1cm47CiAg
ICAgfQpAQCAtMTk4OSw3ICsyMDM5LDEyIEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp1
bmlmb3JtMmkoY28KIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtMml2KGNvbnN0
IFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiwgV2ViR0xJbnRBcnJheSogdiwgRXhjZXB0
aW9uQ29kZSYgZWMpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGVjKTsKLSAgICBpZiAoIWxvY2F0aW9u
IHx8IGxvY2F0aW9uLT5wcm9ncmFtKCkgIT0gbV9jdXJyZW50UHJvZ3JhbSkgeworICAgIGlmICgh
bG9jYXRpb24pIHsKKyAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGlj
c0NvbnRleHQzRDo6SU5WQUxJRF9WQUxVRSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBpZiAobG9jYXRpb24tPnByb2dyYW0oKSAhPSBtX2N1cnJlbnRQcm9ncmFtKSB7CiAgICAgICAg
IG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURf
T1BFUkFUSU9OKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTIwMDYsNyArMjA2MSwxMiBA
QCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTJpdihjCiB2b2lkIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6dW5pZm9ybTJpdihjb25zdCBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9j
YXRpb24sIGludCogdiwgaW50IHNpemUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIFVOVVNF
RF9QQVJBTShlYyk7Ci0gICAgaWYgKCFsb2NhdGlvbiB8fCBsb2NhdGlvbi0+cHJvZ3JhbSgpICE9
IG1fY3VycmVudFByb2dyYW0pIHsKKyAgICBpZiAoIWxvY2F0aW9uKSB7CisgICAgICAgIG1fY29u
dGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfVkFMVUUp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGxvY2F0aW9uLT5wcm9ncmFtKCkg
IT0gbV9jdXJyZW50UHJvZ3JhbSkgewogICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVy
cm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTik7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CkBAIC0yMDIzLDcgKzIwODMsMTIgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ6OnVuaWZvcm0yaXYoYwogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm0zZihj
b25zdCBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24sIGZsb2F0IHgsIGZsb2F0IHksIGZs
b2F0IHosIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIFVOVVNFRF9QQVJBTShlYyk7Ci0gICAg
aWYgKCFsb2NhdGlvbiB8fCBsb2NhdGlvbi0+cHJvZ3JhbSgpICE9IG1fY3VycmVudFByb2dyYW0p
IHsKKyAgICBpZiAoIWxvY2F0aW9uKSB7CisgICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdM
RXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfVkFMVUUpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgaWYgKGxvY2F0aW9uLT5wcm9ncmFtKCkgIT0gbV9jdXJyZW50UHJvZ3Jh
bSkgewogICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4
dDNEOjpJTlZBTElEX09QRVJBVElPTik7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yMDM1
LDcgKzIxMDAsMTIgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm0zZihjbwog
dm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm0zZnYoY29uc3QgV2ViR0xVbmlmb3Jt
TG9jYXRpb24qIGxvY2F0aW9uLCBXZWJHTEZsb2F0QXJyYXkqIHYsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogewogICAgIFVOVVNFRF9QQVJBTShlYyk7Ci0gICAgaWYgKCFsb2NhdGlvbiB8fCBsb2NhdGlv
bi0+cHJvZ3JhbSgpICE9IG1fY3VycmVudFByb2dyYW0pIHsKKyAgICBpZiAoIWxvY2F0aW9uKSB7
CisgICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6
OklOVkFMSURfVkFMVUUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGxvY2F0
aW9uLT5wcm9ncmFtKCkgIT0gbV9jdXJyZW50UHJvZ3JhbSkgewogICAgICAgICBtX2NvbnRleHQt
PnN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTik7
CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yMDUyLDcgKzIxMjIsMTIgQEAgdm9pZCBXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm0zZnYoYwogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ6OnVuaWZvcm0zZnYoY29uc3QgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uLCBmbG9h
dCogdiwgaW50IHNpemUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIFVOVVNFRF9QQVJBTShl
Yyk7Ci0gICAgaWYgKCFsb2NhdGlvbiB8fCBsb2NhdGlvbi0+cHJvZ3JhbSgpICE9IG1fY3VycmVu
dFByb2dyYW0pIHsKKyAgICBpZiAoIWxvY2F0aW9uKSB7CisgICAgICAgIG1fY29udGV4dC0+c3lu
dGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfVkFMVUUpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGxvY2F0aW9uLT5wcm9ncmFtKCkgIT0gbV9jdXJy
ZW50UHJvZ3JhbSkgewogICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdyYXBo
aWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTik7CiAgICAgICAgIHJldHVybjsKICAgICB9
CkBAIC0yMDY5LDcgKzIxNDQsMTIgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnVuaWZv
cm0zZnYoYwogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm0zaShjb25zdCBXZWJH
TFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24sIGludCB4LCBpbnQgeSwgaW50IHosIEV4Y2VwdGlv
bkNvZGUmIGVjKQogewogICAgIFVOVVNFRF9QQVJBTShlYyk7Ci0gICAgaWYgKCFsb2NhdGlvbiB8
fCBsb2NhdGlvbi0+cHJvZ3JhbSgpICE9IG1fY3VycmVudFByb2dyYW0pIHsKKyAgICBpZiAoIWxv
Y2F0aW9uKSB7CisgICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3ND
b250ZXh0M0Q6OklOVkFMSURfVkFMVUUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
aWYgKGxvY2F0aW9uLT5wcm9ncmFtKCkgIT0gbV9jdXJyZW50UHJvZ3JhbSkgewogICAgICAgICBt
X2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX09Q
RVJBVElPTik7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yMDgxLDcgKzIxNjEsMTIgQEAg
dm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm0zaShjbwogdm9pZCBXZWJHTFJlbmRl
cmluZ0NvbnRleHQ6OnVuaWZvcm0zaXYoY29uc3QgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0
aW9uLCBXZWJHTEludEFycmF5KiB2LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBVTlVTRURf
UEFSQU0oZWMpOwotICAgIGlmICghbG9jYXRpb24gfHwgbG9jYXRpb24tPnByb2dyYW0oKSAhPSBt
X2N1cnJlbnRQcm9ncmFtKSB7CisgICAgaWYgKCFsb2NhdGlvbikgeworICAgICAgICBtX2NvbnRl
eHQtPnN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX1ZBTFVFKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChsb2NhdGlvbi0+cHJvZ3JhbSgpICE9
IG1fY3VycmVudFByb2dyYW0pIHsKICAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJv
cihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJT04pOwogICAgICAgICByZXR1cm47
CiAgICAgfQpAQCAtMjA5OCw3ICsyMTgzLDEyIEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0
Ojp1bmlmb3JtM2l2KGMKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtM2l2KGNv
bnN0IFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiwgaW50KiB2LCBpbnQgc2l6ZSwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGVjKTsKLSAgICBpZiAoIWxvY2F0
aW9uIHx8IGxvY2F0aW9uLT5wcm9ncmFtKCkgIT0gbV9jdXJyZW50UHJvZ3JhbSkgeworICAgIGlm
ICghbG9jYXRpb24pIHsKKyAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFw
aGljc0NvbnRleHQzRDo6SU5WQUxJRF9WQUxVRSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBpZiAobG9jYXRpb24tPnByb2dyYW0oKSAhPSBtX2N1cnJlbnRQcm9ncmFtKSB7CiAgICAg
ICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFM
SURfT1BFUkFUSU9OKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTIxMTUsNyArMjIwNSwx
MiBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTNpdihjCiB2b2lkIFdlYkdM
UmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTRmKGNvbnN0IFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBs
b2NhdGlvbiwgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeiwgZmxvYXQgdywgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGVjKTsKLSAgICBpZiAoIWxvY2F0aW9uIHx8IGxv
Y2F0aW9uLT5wcm9ncmFtKCkgIT0gbV9jdXJyZW50UHJvZ3JhbSkgeworICAgIGlmICghbG9jYXRp
b24pIHsKKyAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRl
eHQzRDo6SU5WQUxJRF9WQUxVRSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAo
bG9jYXRpb24tPnByb2dyYW0oKSAhPSBtX2N1cnJlbnRQcm9ncmFtKSB7CiAgICAgICAgIG1fY29u
dGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfT1BFUkFU
SU9OKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTIxMjcsNyArMjIyMiwxMiBAQCB2b2lk
IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTRmKGNvCiB2b2lkIFdlYkdMUmVuZGVyaW5n
Q29udGV4dDo6dW5pZm9ybTRmdihjb25zdCBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24s
IFdlYkdMRmxvYXRBcnJheSogdiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgVU5VU0VEX1BB
UkFNKGVjKTsKLSAgICBpZiAoIWxvY2F0aW9uIHx8IGxvY2F0aW9uLT5wcm9ncmFtKCkgIT0gbV9j
dXJyZW50UHJvZ3JhbSkgeworICAgIGlmICghbG9jYXRpb24pIHsKKyAgICAgICAgbV9jb250ZXh0
LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9WQUxVRSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobG9jYXRpb24tPnByb2dyYW0oKSAhPSBt
X2N1cnJlbnRQcm9ncmFtKSB7CiAgICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3Io
R3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KQEAgLTIxNDQsNyArMjI0NCwxMiBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6
dW5pZm9ybTRmdihjCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTRmdihjb25z
dCBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24sIGZsb2F0KiB2LCBpbnQgc2l6ZSwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGVjKTsKLSAgICBpZiAoIWxvY2F0
aW9uIHx8IGxvY2F0aW9uLT5wcm9ncmFtKCkgIT0gbV9jdXJyZW50UHJvZ3JhbSkgeworICAgIGlm
ICghbG9jYXRpb24pIHsKKyAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFw
aGljc0NvbnRleHQzRDo6SU5WQUxJRF9WQUxVRSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBpZiAobG9jYXRpb24tPnByb2dyYW0oKSAhPSBtX2N1cnJlbnRQcm9ncmFtKSB7CiAgICAg
ICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFM
SURfT1BFUkFUSU9OKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTIxNjEsNyArMjI2Niwx
MiBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTRmdihjCiB2b2lkIFdlYkdM
UmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTRpKGNvbnN0IFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBs
b2NhdGlvbiwgaW50IHgsIGludCB5LCBpbnQgeiwgaW50IHcsIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ewogICAgIFVOVVNFRF9QQVJBTShlYyk7Ci0gICAgaWYgKCFsb2NhdGlvbiB8fCBsb2NhdGlvbi0+
cHJvZ3JhbSgpICE9IG1fY3VycmVudFByb2dyYW0pIHsKKyAgICBpZiAoIWxvY2F0aW9uKSB7Cisg
ICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklO
VkFMSURfVkFMVUUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGxvY2F0aW9u
LT5wcm9ncmFtKCkgIT0gbV9jdXJyZW50UHJvZ3JhbSkgewogICAgICAgICBtX2NvbnRleHQtPnN5
bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTik7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yMTczLDcgKzIyODMsMTIgQEAgdm9pZCBXZWJHTFJl
bmRlcmluZ0NvbnRleHQ6OnVuaWZvcm00aShjbwogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OnVuaWZvcm00aXYoY29uc3QgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uLCBXZWJHTElu
dEFycmF5KiB2LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBVTlVTRURfUEFSQU0oZWMpOwot
ICAgIGlmICghbG9jYXRpb24gfHwgbG9jYXRpb24tPnByb2dyYW0oKSAhPSBtX2N1cnJlbnRQcm9n
cmFtKSB7CisgICAgaWYgKCFsb2NhdGlvbikgeworICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNp
emVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX1ZBTFVFKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGlmIChsb2NhdGlvbi0+cHJvZ3JhbSgpICE9IG1fY3VycmVudFBy
b2dyYW0pIHsKICAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0Nv
bnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJT04pOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAt
MjE5MCw3ICsyMzA1LDEyIEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtNGl2
KGMKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtNGl2KGNvbnN0IFdlYkdMVW5p
Zm9ybUxvY2F0aW9uKiBsb2NhdGlvbiwgaW50KiB2LCBpbnQgc2l6ZSwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGVjKTsKLSAgICBpZiAoIWxvY2F0aW9uIHx8IGxvY2F0
aW9uLT5wcm9ncmFtKCkgIT0gbV9jdXJyZW50UHJvZ3JhbSkgeworICAgIGlmICghbG9jYXRpb24p
IHsKKyAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQz
RDo6SU5WQUxJRF9WQUxVRSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobG9j
YXRpb24tPnByb2dyYW0oKSAhPSBtX2N1cnJlbnRQcm9ncmFtKSB7CiAgICAgICAgIG1fY29udGV4
dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9O
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTIyMDcsNyArMjMyNywxMiBAQCB2b2lkIFdl
YkdMUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybTRpdihjCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6dW5pZm9ybU1hdHJpeDJmdihjb25zdCBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRp
b24sIGJvb2wgdHJhbnNwb3NlLCBXZWJHTEZsb2F0QXJyYXkqIHYsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogewogICAgIFVOVVNFRF9QQVJBTShlYyk7Ci0gICAgaWYgKCFsb2NhdGlvbiB8fCBsb2NhdGlv
bi0+cHJvZ3JhbSgpICE9IG1fY3VycmVudFByb2dyYW0pIHsKKyAgICBpZiAoIWxvY2F0aW9uKSB7
CisgICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6
OklOVkFMSURfVkFMVUUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGxvY2F0
aW9uLT5wcm9ncmFtKCkgIT0gbV9jdXJyZW50UHJvZ3JhbSkgewogICAgICAgICBtX2NvbnRleHQt
PnN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTik7
CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yMjI0LDcgKzIzNDksMTIgQEAgdm9pZCBXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm1NYXRyaQogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ6OnVuaWZvcm1NYXRyaXgyZnYoY29uc3QgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9u
LCBib29sIHRyYW5zcG9zZSwgZmxvYXQqIHYsIGludCBzaXplLCBFeGNlcHRpb25Db2RlJiBlYykK
IHsKICAgICBVTlVTRURfUEFSQU0oZWMpOwotICAgIGlmICghbG9jYXRpb24gfHwgbG9jYXRpb24t
PnByb2dyYW0oKSAhPSBtX2N1cnJlbnRQcm9ncmFtKSB7CisgICAgaWYgKCFsb2NhdGlvbikgewor
ICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJ
TlZBTElEX1ZBTFVFKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChsb2NhdGlv
bi0+cHJvZ3JhbSgpICE9IG1fY3VycmVudFByb2dyYW0pIHsKICAgICAgICAgbV9jb250ZXh0LT5z
eW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJT04pOwog
ICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjI0MSw3ICsyMzcxLDEyIEBAIHZvaWQgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtTWF0cmkKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0
Ojp1bmlmb3JtTWF0cml4M2Z2KGNvbnN0IFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiwg
Ym9vbCB0cmFuc3Bvc2UsIFdlYkdMRmxvYXRBcnJheSogdiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
CiAgICAgVU5VU0VEX1BBUkFNKGVjKTsKLSAgICBpZiAoIWxvY2F0aW9uIHx8IGxvY2F0aW9uLT5w
cm9ncmFtKCkgIT0gbV9jdXJyZW50UHJvZ3JhbSkgeworICAgIGlmICghbG9jYXRpb24pIHsKKyAg
ICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5W
QUxJRF9WQUxVRSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobG9jYXRpb24t
PnByb2dyYW0oKSAhPSBtX2N1cnJlbnRQcm9ncmFtKSB7CiAgICAgICAgIG1fY29udGV4dC0+c3lu
dGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTIyNTgsNyArMjM5MywxMiBAQCB2b2lkIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6dW5pZm9ybU1hdHJpCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6
dW5pZm9ybU1hdHJpeDNmdihjb25zdCBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24sIGJv
b2wgdHJhbnNwb3NlLCBmbG9hdCogdiwgaW50IHNpemUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewog
ICAgIFVOVVNFRF9QQVJBTShlYyk7Ci0gICAgaWYgKCFsb2NhdGlvbiB8fCBsb2NhdGlvbi0+cHJv
Z3JhbSgpICE9IG1fY3VycmVudFByb2dyYW0pIHsKKyAgICBpZiAoIWxvY2F0aW9uKSB7CisgICAg
ICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFM
SURfVkFMVUUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGxvY2F0aW9uLT5w
cm9ncmFtKCkgIT0gbV9jdXJyZW50UHJvZ3JhbSkgewogICAgICAgICBtX2NvbnRleHQtPnN5bnRo
ZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTik7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CkBAIC0yMjc1LDcgKzI0MTUsMTIgQEAgdm9pZCBXZWJHTFJlbmRl
cmluZ0NvbnRleHQ6OnVuaWZvcm1NYXRyaQogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnVu
aWZvcm1NYXRyaXg0ZnYoY29uc3QgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uLCBib29s
IHRyYW5zcG9zZSwgV2ViR0xGbG9hdEFycmF5KiB2LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAg
ICBVTlVTRURfUEFSQU0oZWMpOwotICAgIGlmICghbG9jYXRpb24gfHwgbG9jYXRpb24tPnByb2dy
YW0oKSAhPSBtX2N1cnJlbnRQcm9ncmFtKSB7CisgICAgaWYgKCFsb2NhdGlvbikgeworICAgICAg
ICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElE
X1ZBTFVFKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChsb2NhdGlvbi0+cHJv
Z3JhbSgpICE9IG1fY3VycmVudFByb2dyYW0pIHsKICAgICAgICAgbV9jb250ZXh0LT5zeW50aGVz
aXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJT04pOwogICAgICAg
ICByZXR1cm47CiAgICAgfQpAQCAtMjI5Miw3ICsyNDM3LDEyIEBAIHZvaWQgV2ViR0xSZW5kZXJp
bmdDb250ZXh0Ojp1bmlmb3JtTWF0cmkKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp1bmlm
b3JtTWF0cml4NGZ2KGNvbnN0IFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiwgYm9vbCB0
cmFuc3Bvc2UsIGZsb2F0KiB2LCBpbnQgc2l6ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAg
VU5VU0VEX1BBUkFNKGVjKTsKLSAgICBpZiAoIWxvY2F0aW9uIHx8IGxvY2F0aW9uLT5wcm9ncmFt
KCkgIT0gbV9jdXJyZW50UHJvZ3JhbSkgeworICAgIGlmICghbG9jYXRpb24pIHsKKyAgICAgICAg
bV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9W
QUxVRSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobG9jYXRpb24tPnByb2dy
YW0oKSAhPSBtX2N1cnJlbnRQcm9ncmFtKSB7CiAgICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6
ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDU3MDI5KQorKysgTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMDQtMDIgIEtl
bm5ldGggUnVzc2VsbCAgPGtickBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEluY29uc2lzdGVudCBmYWlsdXJlIG1vZGVzIGZyb20g
dW5pZm9ybVtNYXRyaXhdKiB3aXRoIG51bGwgV2ViR0xVbmlmb3JtTG9jYXRpb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2NTc0CisKKyAgICAgICAg
Rml4ZWQgYnVncyBpbiBKYXZhU2NyaXB0IGJpbmRpbmdzIGZvciB1bmlmb3JtW01hdHJpeF0qIGVu
dHJ5CisgICAgICAgIHBvaW50cyBjYXVzaW5nIHRoZW0gdG8gdGhyb3cgZXhjZXB0aW9ucyByYXRo
ZXIgdGhhbiBzeW50aGVzaXplIEdMCisgICAgICAgIGVycm9ycy4gRml4ZWQgdGhlIGltcGxlbWVu
dGF0aW9ucyB0byBzeW50aGVzaXplIElOVkFMSURfVkFMVUUKKyAgICAgICAgcmF0aGVyIHRoYW4g
SU5WQUxJRF9PUEVSQVRJT04gdG8gY29tcGx5IHRvIHRoZSBXZWJHTCBzcGVjLiBVcGRhdGVkCisg
ICAgICAgIHVuaWZvcm0tbG9jYXRpb24tZXhwZWN0ZWQudHh0IHRvIGluY29ycG9yYXRlIHRoZSBj
b3JyZWN0IGVycm9yLgorICAgICAgICBUZXN0ZWQgaW4gU2FmYXJpIGFuZCBDaHJvbWl1bS4KKwor
ICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL251bGwtdW5pZm9ybS1sb2NhdGlvbi1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL251bGwtdW5pZm9ybS1s
b2NhdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9zY3JpcHQt
dGVzdHMvbnVsbC11bmlmb3JtLWxvY2F0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKGNhbGxVbmlm
b3JtRnVuY3Rpb24pOgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL3VuaWZvcm0tbG9jYXRp
b24tZXhwZWN0ZWQudHh0OgorCiAyMDEwLTA0LTAyICBBbmRyZXcgU2NoZXJrdXMgIDxzY2hlcmt1
c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uIGFuZCBF
cmljIFNlaWRlbC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL251bGwtdW5p
Zm9ybS1sb2NhdGlvbi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9jYW52YXMvd2ViZ2wvbnVsbC11bmlmb3JtLWxvY2F0aW9uLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL251bGwtdW5pZm9ybS1sb2Nh
dGlvbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDggQEAKK1Rlc3RzIGNh
bGxpbmcgdGhlIHZhcmlvdXMgdW5pZm9ybVtNYXRyaXhdKiBBUElzIHdpdGggYSBudWxsIHVuaWZv
cm0gbG9jYXRpb24KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitQQVNTIGdsLmdldEVy
cm9yKCkgaXMgZ2wuTk9fRVJST1IKK1BBU1MgZ2wudXNlUHJvZ3JhbShwcm9ncmFtKSBpcyB1bmRl
ZmluZWQuCitQQVNTIGNhbGxVbmlmb3JtRnVuY3Rpb24oJ3VuaWZvcm0xZicpIGlzIHVuZGVmaW5l
ZC4KK1BBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5JTlZBTElEX1ZBTFVFCitQQVNTIGNhbGxVbmlm
b3JtRnVuY3Rpb24oJ3VuaWZvcm0xZnYnKSBpcyB1bmRlZmluZWQuCitQQVNTIGdsLmdldEVycm9y
KCkgaXMgZ2wuSU5WQUxJRF9WQUxVRQorUEFTUyBjYWxsVW5pZm9ybUZ1bmN0aW9uKCd1bmlmb3Jt
MWknKSBpcyB1bmRlZmluZWQuCitQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuSU5WQUxJRF9WQUxV
RQorUEFTUyBjYWxsVW5pZm9ybUZ1bmN0aW9uKCd1bmlmb3JtMWl2JykgaXMgdW5kZWZpbmVkLgor
UEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLklOVkFMSURfVkFMVUUKK1BBU1MgY2FsbFVuaWZvcm1G
dW5jdGlvbigndW5pZm9ybTJmJykgaXMgdW5kZWZpbmVkLgorUEFTUyBnbC5nZXRFcnJvcigpIGlz
IGdsLklOVkFMSURfVkFMVUUKK1BBU1MgY2FsbFVuaWZvcm1GdW5jdGlvbigndW5pZm9ybTJmdicp
IGlzIHVuZGVmaW5lZC4KK1BBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5JTlZBTElEX1ZBTFVFCitQ
QVNTIGNhbGxVbmlmb3JtRnVuY3Rpb24oJ3VuaWZvcm0yaScpIGlzIHVuZGVmaW5lZC4KK1BBU1Mg
Z2wuZ2V0RXJyb3IoKSBpcyBnbC5JTlZBTElEX1ZBTFVFCitQQVNTIGNhbGxVbmlmb3JtRnVuY3Rp
b24oJ3VuaWZvcm0yaXYnKSBpcyB1bmRlZmluZWQuCitQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wu
SU5WQUxJRF9WQUxVRQorUEFTUyBjYWxsVW5pZm9ybUZ1bmN0aW9uKCd1bmlmb3JtM2YnKSBpcyB1
bmRlZmluZWQuCitQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuSU5WQUxJRF9WQUxVRQorUEFTUyBj
YWxsVW5pZm9ybUZ1bmN0aW9uKCd1bmlmb3JtM2Z2JykgaXMgdW5kZWZpbmVkLgorUEFTUyBnbC5n
ZXRFcnJvcigpIGlzIGdsLklOVkFMSURfVkFMVUUKK1BBU1MgY2FsbFVuaWZvcm1GdW5jdGlvbign
dW5pZm9ybTNpJykgaXMgdW5kZWZpbmVkLgorUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLklOVkFM
SURfVkFMVUUKK1BBU1MgY2FsbFVuaWZvcm1GdW5jdGlvbigndW5pZm9ybTNpdicpIGlzIHVuZGVm
aW5lZC4KK1BBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5JTlZBTElEX1ZBTFVFCitQQVNTIGNhbGxV
bmlmb3JtRnVuY3Rpb24oJ3VuaWZvcm00ZicpIGlzIHVuZGVmaW5lZC4KK1BBU1MgZ2wuZ2V0RXJy
b3IoKSBpcyBnbC5JTlZBTElEX1ZBTFVFCitQQVNTIGNhbGxVbmlmb3JtRnVuY3Rpb24oJ3VuaWZv
cm00ZnYnKSBpcyB1bmRlZmluZWQuCitQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuSU5WQUxJRF9W
QUxVRQorUEFTUyBjYWxsVW5pZm9ybUZ1bmN0aW9uKCd1bmlmb3JtNGknKSBpcyB1bmRlZmluZWQu
CitQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuSU5WQUxJRF9WQUxVRQorUEFTUyBjYWxsVW5pZm9y
bUZ1bmN0aW9uKCd1bmlmb3JtNGl2JykgaXMgdW5kZWZpbmVkLgorUEFTUyBnbC5nZXRFcnJvcigp
IGlzIGdsLklOVkFMSURfVkFMVUUKK1BBU1MgY2FsbFVuaWZvcm1GdW5jdGlvbigndW5pZm9ybU1h
dHJpeDJmdicpIGlzIHVuZGVmaW5lZC4KK1BBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5JTlZBTElE
X1ZBTFVFCitQQVNTIGNhbGxVbmlmb3JtRnVuY3Rpb24oJ3VuaWZvcm1NYXRyaXgzZnYnKSBpcyB1
bmRlZmluZWQuCitQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuSU5WQUxJRF9WQUxVRQorUEFTUyBj
YWxsVW5pZm9ybUZ1bmN0aW9uKCd1bmlmb3JtTWF0cml4NGZ2JykgaXMgdW5kZWZpbmVkLgorUEFT
UyBnbC5nZXRFcnJvcigpIGlzIGdsLklOVkFMSURfVkFMVUUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy93ZWJnbC9udWxsLXVuaWZvcm0tbG9jYXRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9udWxsLXVuaWZvcm0tbG9jYXRpb24uaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL251bGwtdW5pZm9ybS1s
b2NhdGlvbi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8aHRtbD4KKzxoZWFk
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2Pgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvbnVs
bC11bmlmb3JtLWxvY2F0aW9uLmpzIj48L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvdW5pZm9ybS1sb2NhdGlvbi1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvdW5p
Zm9ybS1sb2NhdGlvbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDU3MDI3KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvd2ViZ2wvdW5pZm9ybS1sb2NhdGlvbi1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTYsNyArNiw3IEBAIFBBU1MgY29udGV4dEEudXNlUHJvZ3JhbShwcm9ncmFt
QTIpIGlzIHUKIFBBU1MgY29udGV4dEEudW5pZm9ybU1hdHJpeDRmdihsb2NhdGlvbkEsIGZhbHNl
LCBtYXQpIHRocmV3IGV4Y2VwdGlvbiBHTCBlcnJvciAxMjgyIGluIHVuaWZvcm1NYXRyaXg0ZnYu
CiBQQVNTIGNvbnRleHRBLnVzZVByb2dyYW0ocHJvZ3JhbUExKSBpcyB1bmRlZmluZWQuCiBQQVNT
IGNvbnRleHRBLnVuaWZvcm1NYXRyaXg0ZnYobG9jYXRpb25BLCBmYWxzZSwgbWF0KSBpcyB1bmRl
ZmluZWQuCi1QQVNTIGNvbnRleHRBLnVuaWZvcm1NYXRyaXg0ZnYoMCwgZmFsc2UsIG1hdCkgdGhy
ZXcgZXhjZXB0aW9uIEdMIGVycm9yIDEyODIgaW4gdW5pZm9ybU1hdHJpeDRmdi4KK1BBU1MgY29u
dGV4dEEudW5pZm9ybU1hdHJpeDRmdigwLCBmYWxzZSwgbWF0KSB0aHJldyBleGNlcHRpb24gR0wg
ZXJyb3IgMTI4MSBpbiB1bmlmb3JtTWF0cml4NGZ2LgogUEFTUyBjb250ZXh0QS51c2VQcm9ncmFt
KHByb2dyYW1TKSBpcyB1bmRlZmluZWQuCiBQQVNTIGNvbnRleHRBLnVuaWZvcm0xaShsb2NhdGlv
blN4LCAzKSBpcyB1bmRlZmluZWQuCiBQQVNTIGNvbnRleHRBLnVuaWZvcm0xZihsb2NhdGlvbkFy
cmF5MCwgNC4wKSBpcyB1bmRlZmluZWQuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93
ZWJnbC9zY3JpcHQtdGVzdHMvbnVsbC11bmlmb3JtLWxvY2F0aW9uLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3NjcmlwdC10ZXN0cy9udWxsLXVuaWZvcm0t
bG9jYXRpb24uanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJn
bC9zY3JpcHQtdGVzdHMvbnVsbC11bmlmb3JtLWxvY2F0aW9uLmpzCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDUzIEBACitkZXNjcmlwdGlvbigiVGVzdHMgY2FsbGluZyB0aGUgdmFyaW91cyB1bmlm
b3JtW01hdHJpeF0qIEFQSXMgd2l0aCBhIG51bGwgdW5pZm9ybSBsb2NhdGlvbiIpOworCit2YXIg
Z2wgPSBjcmVhdGUzRENvbnRleHQoKTsKK3ZhciBwcm9ncmFtID0gbG9hZFN0YW5kYXJkUHJvZ3Jh
bShnbCk7CisKK3Nob3VsZEJlKCJnbC5nZXRFcnJvcigpIiwgImdsLk5PX0VSUk9SIik7CitzaG91
bGRCZVVuZGVmaW5lZCgiZ2wudXNlUHJvZ3JhbShwcm9ncmFtKSIpOwordmFyIGZsb2F0QXJyYXkg
PSBuZXcgV2ViR0xGbG9hdEFycmF5KFsxLCAyLCAzLCA0XSk7Cit2YXIgaW50QXJyYXkgPSBuZXcg
V2ViR0xJbnRBcnJheShbMSwgMiwgMywgNF0pOworCitmdW5jdGlvbiBjYWxsVW5pZm9ybUZ1bmN0
aW9uKG5hbWUpIHsKKyAgICB2YXIgaXNBcnJheVZhcmlhbnQgPSAobmFtZS5jaGFyQXQobmFtZS5s
ZW5ndGggLSAxKSA9PSAndicpOworICAgIHZhciBpc01hdHJpeCA9IChuYW1lLmluZGV4T2YoIk1h
dHJpeCIpICE9IC0xKTsKKyAgICB2YXIgaXNGbG9hdCA9CisgICAgICAgIChuYW1lLmNoYXJBdChu
YW1lLmxlbmd0aCAtIDEpID09ICdmJyB8fAorICAgICAgICAgbmFtZS5jaGFyQXQobmFtZS5sZW5n
dGggLSAyKSA9PSAnZicpOworICAgIHZhciBzaXplSW5kZXggPSAoaXNBcnJheVZhcmlhbnQgPyBu
YW1lLmxlbmd0aCAtIDMgOiBuYW1lLmxlbmd0aCAtIDIpOworICAgIHZhciBzaXplID0gcGFyc2VJ
bnQobmFtZS5zdWJzdHJpbmcoc2l6ZUluZGV4LCBzaXplSW5kZXggKyAxKSk7CisgICAgLy8gSW5p
dGlhbGl6ZSBhcmd1bWVudCBsaXN0IHdpdGggbnVsbCB1bmlmb3JtIGxvY2F0aW9uCisgICAgdmFy
IGFyZ3MgPSBbIG51bGwgXTsKKyAgICBpZiAoaXNBcnJheVZhcmlhbnQpIHsKKyAgICAgICAgLy8g
Q2FsbCB2YXJpYW50IHdoaWNoIHRha2VzIHZhbHVlcyBhcyBhcnJheQorICAgICAgICBpZiAoaXNN
YXRyaXgpIHsKKyAgICAgICAgICAgIHNpemUgPSBzaXplICogc2l6ZTsKKyAgICAgICAgICAgIGFy
Z3MucHVzaChmYWxzZSk7CisgICAgICAgIH0KKyAgICAgICAgdmFyIGFycmF5ID0gKGlzRmxvYXQg
PyBuZXcgV2ViR0xGbG9hdEFycmF5KHNpemUpIDogbmV3IFdlYkdMSW50QXJyYXkoc2l6ZSkpOwor
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKykgeworICAgICAgICAgICAgYXJy
YXlbaV0gPSBpOworICAgICAgICB9CisgICAgICAgIGFyZ3MucHVzaChhcnJheSk7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgLy8gQ2FsbCB2YXJpYW50IHdoaWNoIHRha2VzIHZhbHVlcyBhcyBwYXJh
bWV0ZXJzCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAg
ICAgICBhcmdzLnB1c2goaSk7CisgICAgICAgIH0KKyAgICB9CisgICAgdmFyIGZ1bmMgPSBnbFtu
YW1lXTsKKyAgICByZXR1cm4gZnVuYy5hcHBseShnbCwgYXJncyk7Cit9CisKK3ZhciBmdW5jcyA9
IFsgInVuaWZvcm0xZiIsICJ1bmlmb3JtMWZ2IiwgInVuaWZvcm0xaSIsICJ1bmlmb3JtMWl2IiwK
KyAgICAgICAgICAgICAgInVuaWZvcm0yZiIsICJ1bmlmb3JtMmZ2IiwgInVuaWZvcm0yaSIsICJ1
bmlmb3JtMml2IiwKKyAgICAgICAgICAgICAgInVuaWZvcm0zZiIsICJ1bmlmb3JtM2Z2IiwgInVu
aWZvcm0zaSIsICJ1bmlmb3JtM2l2IiwKKyAgICAgICAgICAgICAgInVuaWZvcm00ZiIsICJ1bmlm
b3JtNGZ2IiwgInVuaWZvcm00aSIsICJ1bmlmb3JtNGl2IiwKKyAgICAgICAgICAgICAgInVuaWZv
cm1NYXRyaXgyZnYiLCAidW5pZm9ybU1hdHJpeDNmdiIsICJ1bmlmb3JtTWF0cml4NGZ2IiBdOwor
Zm9yICh2YXIgaSA9IDA7IGkgPCBmdW5jcy5sZW5ndGg7IGkrKykgeworICAgIGNhbGxTdHJpbmcg
PSAiY2FsbFVuaWZvcm1GdW5jdGlvbignIiArIGZ1bmNzW2ldICsgIicpIjsKKyAgICBzaG91bGRC
ZVVuZGVmaW5lZChjYWxsU3RyaW5nKTsKKyAgICBzaG91bGRCZSgiZ2wuZ2V0RXJyb3IoKSIsICJn
bC5JTlZBTElEX1ZBTFVFIik7Cit9CisKK3N1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>