<?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>36233</bug_id>
          
          <creation_ts>2010-03-17 11:37:35 -0700</creation_ts>
          <short_desc>Revert WebGL context attributes changes 33416 / r56074 and 36200 / r56093</short_desc>
          <delta_ts>2010-03-17 14:11:59 -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>P1</priority>
          <bug_severity>Major</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>eric</cc>
    
    <cc>fishd</cc>
    
    <cc>oliver</cc>
    
    <cc>zmo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>200885</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-03-17 11:37:35 -0700</bug_when>
    <thetext>After discussion, rather than try to work around the OpenGL driver bugs exposed by the fix for https://bugs.webkit.org/show_bug.cgi?id=33416 on the fly, we are going to revert it and re-apply it later via the commit queue. A large refactoring of some of the affected code is imminent and it will be much easier to track the history if the changes are made after that refactoring rather than before. At the same time we are also going to re-enable the failing WebGL tests on the bots which were skipped in https://bugs.webkit.org/show_bug.cgi?id=36200 .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>200910</commentid>
    <comment_count>1</comment_count>
      <attachid>50939</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-03-17 12:52:46 -0700</bug_when>
    <thetext>Created attachment 50939
Patch

Patch reverting 33416, build fix 36189, and skipping of affected tests from 36200</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>200945</commentid>
    <comment_count>2</comment_count>
      <attachid>50939</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-03-17 13:39:19 -0700</bug_when>
    <thetext>Comment on attachment 50939
Patch

There&apos;s no need to seek review when reverting code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>200960</commentid>
    <comment_count>3</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-03-17 14:11:59 -0700</bug_when>
    <thetext>Committed r56127: &lt;http://trac.webkit.org/changeset/56127&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50939</attachid>
            <date>2010-03-17 12:52:46 -0700</date>
            <delta_ts>2010-03-17 13:39:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>revert.patch</filename>
            <type>text/plain</type>
            <size>55547</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NjEyNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzQgQEAKKzIwMTAtMDMtMTcgIEtlbm5ldGggUnVzc2VsbCAgPGtickBnb29nbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
dmVydCBXZWJHTCBjb250ZXh0IGF0dHJpYnV0ZXMgY2hhbmdlcyAzMzQxNiAvIHI1NjA3NCBhbmQg
MzYyMDAgLyByNTYwOTMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTM2MjMzCisKKyAgICAgICAgVGhlIHBhdGNoIGZvciBidWcgMzM0MTYsIHdoaWNoIGFk
ZGVkIG11bHRpc2FtcGxpbmcgc3VwcG9ydCB0byB0aGUKKyAgICAgICAgV2ViR0wgYmFjayBidWZm
ZXIsIHVuY292ZXJlZCBzb21lIE9wZW5HTCBkcml2ZXIgYnVncyBvbiB0aGUgYnVpbGQKKyAgICAg
ICAgYm90cyB3aGljaCBuZWVkIGZ1cnRoZXIgaW52ZXN0aWdhdGlvbiB0byBkZXRlcm1pbmUgdGhl
IGFwcHJvcHJpYXRlCisgICAgICAgIHdvcmthcm91bmQuIFJldmVydGluZyB0aGlzIGNoYW5nZSwg
dGhlIG1pbm9yIGJ1aWxkIGZpeCBpbiAzNjE4OSwKKyAgICAgICAgYW5kIHRoZSBza2lwcGluZyBv
ZiB0aGUgYWZmZWN0ZWQgdGVzdHMgaW4gYnVnIDM2MjAwLgorCisgICAgICAgIEJ1aWx0IGFuZCB0
ZXN0ZWQgV2ViS2l0IGFuZCBDaHJvbWl1bSBhbmQgcmFuIGFsbCBXZWJHTCBsYXlvdXQKKyAgICAg
ICAgdGVzdHMgaW4gYm90aC4KKworICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxD
YW52YXNFbGVtZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4SFRNTENhbnZhc0Vs
ZW1lbnQ6OmdldENvbnRleHRDYWxsYmFjayk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0M0QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ2Fu
dmFzM0RMYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9DYW52YXMzRExh
eWVyLm1tOgorICAgICAgICAoLVtDYW52YXMzRExheWVyIGRyYXdJbkNHTENvbnRleHQ6cGl4ZWxG
b3JtYXQ6Zm9yTGF5ZXJUaW1lOmRpc3BsYXlUaW1lOl0pOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL21hYy9HcmFwaGljc0NvbnRleHQzRE1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QpOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0M0Q6On5HcmFwaGljc0NvbnRleHQzRCk6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFwZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQzRDo6YmluZEZyYW1lYnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDNEOjpyZWFkUGl4ZWxzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
R3JhcGhpY3NMYXllckNBLm1tOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpz
ZXRDb250ZW50c1RvR3JhcGhpY3NDb250ZXh0M0QpOgorCiAyMDEwLTAzLTE3ICBBbnRvbmlvIEdv
bWVzICA8dG9uaWtpdG9vQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTWFjIEJ1aWxkZml4OiBVc2lu
ZyBBU1NFUlRfVU5VU0VEIGluc3RlYWQgb2YgQVNTRVJULgpJbmRleDogV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhIVE1MQ2FudmFzRWxlbWVudEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MQ2FudmFzRWxlbWVudEN1c3RvbS5jcHAJ
KHJldmlzaW9uIDU2MTI0KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MQ2Fu
dmFzRWxlbWVudEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2LDcgKzU2LDcgQEAgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IFY4SFRNTENhbnZhc0VsZW1lbgogICAgIGlmIChjb250ZXh0SWQg
PT0gImV4cGVyaW1lbnRhbC13ZWJnbCIgfHwgY29udGV4dElkID09ICJ3ZWJraXQtM2QiKSB7CiAg
ICAgICAgIGF0dHJzID0gV2ViR0xDb250ZXh0QXR0cmlidXRlczo6Y3JlYXRlKCk7CiAgICAgICAg
IFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMqIHdlYkdMQXR0cnMgPSBzdGF0aWNfY2FzdDxXZWJHTENv
bnRleHRBdHRyaWJ1dGVzKj4oYXR0cnMuZ2V0KCkpOwotICAgICAgICBpZiAoYXJncy5MZW5ndGgo
KSA+IDEgJiYgYXJnc1sxXS0+SXNPYmplY3QoKSkgeworICAgICAgICBpZiAoYXJncy5MZW5ndGgo
KSA+IDEgJiYgYXJnc1swXS0+SXNPYmplY3QoKSkgewogICAgICAgICAgICAgdjg6OkhhbmRsZTx2
ODo6T2JqZWN0PiBqc0F0dHJzID0gYXJnc1sxXS0+VG9PYmplY3QoKTsKICAgICAgICAgICAgIHY4
OjpIYW5kbGU8djg6OlN0cmluZz4gYWxwaGEgPSB2ODo6U3RyaW5nOjpOZXcoImFscGhhIik7CiAg
ICAgICAgICAgICBpZiAoanNBdHRycy0+SGFzKGFscGhhKSkKSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgJKHJldmlzaW9uIDU2MTI0KQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCSh3b3JraW5nIGNv
cHkpCkBAIC00MjUsMTIgKzQyNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgUGxh
dGZvcm0zRE9iamVjdCBwbGF0Zm9ybVRleHR1cmUoKSBjb25zdCB7IHJldHVybiBOdWxsUGxhdGZv
cm0zRE9iamVjdDsgfQogI2VuZGlmCiAgICAgICAgIHZvaWQgbWFrZUNvbnRleHRDdXJyZW50KCk7
Ci0KLSNpZiBQTEFURk9STShNQUMpCi0gICAgICAgIC8vIFdpdGggbXVsdGlzYW1wbGluZyBvbiwg
YmxpdCBmcm9tIG11bHRpc2FtcGxlRkJPIHRvIHJlZ3VsYXIgRkJPLgotICAgICAgICB2b2lkIHBy
ZXBhcmVUZXh0dXJlKCk7Ci0jZW5kaWYKLQorICAgICAgICAKICAgICAgICAgLy8gSGVscGVyIHRv
IHJldHVybiB0aGUgc2l6ZSBpbiBieXRlcyBvZiBPcGVuR0wgZGF0YSB0eXBlcwogICAgICAgICAv
LyBsaWtlIEdMX0ZMT0FULCBHTF9JTlQsIGV0Yy4KICAgICAgICAgaW50IHNpemVJbkJ5dGVzKGlu
dCB0eXBlKTsKQEAgLTcyMiwxNiArNzE3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICBDR0xDb250ZXh0T2JqIG1fY29udGV4dE9iajsKICAgICAgICAgR0x1aW50IG1fdGV4dHVyZTsK
ICAgICAgICAgR0x1aW50IG1fZmJvOwotICAgICAgICBHTHVpbnQgbV9kZXB0aFN0ZW5jaWxCdWZm
ZXI7Ci0KLSAgICAgICAgLy8gRm9yIHRyYWNraW5nIHdoaWNoIEZCTyBpcyBib3VuZAotICAgICAg
ICBHTHVpbnQgbV9ib3VuZEZCTzsKLQotICAgICAgICAvLyBGb3IgbXVsdGlzYW1wbGluZwotICAg
ICAgICBHTHVpbnQgbV9tdWx0aXNhbXBsZUZCTzsKLSAgICAgICAgR0x1aW50IG1fbXVsdGlzYW1w
bGVEZXB0aFN0ZW5jaWxCdWZmZXI7Ci0gICAgICAgIEdMdWludCBtX211bHRpc2FtcGxlQ29sb3JC
dWZmZXI7Ci0KKyAgICAgICAgR0x1aW50IG1fZGVwdGhCdWZmZXI7CiAgICAgICAgIC8vIEVycm9y
cyByYWlzZWQgYnkgc3ludGhlc2l6ZUdMRXJyb3IoKS4KICAgICAgICAgTGlzdEhhc2hTZXQ8dW5z
aWduZWQgbG9uZz4gbV9zeW50aGV0aWNFcnJvcnM7CiAjZW5kaWYgICAgICAgIApJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ2FudmFzM0RMYXllci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NhbnZhczNETGF5ZXIuaAkocmV2aXNpb24g
NTYxMjQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9DYW52YXMzRExheWVyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMyLDE4ICszMiwxNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgY2xhc3MgR3JhcGhpY3NMYXllcjsKLSAgICBjbGFzcyBHcmFwaGljc0NvbnRleHQzRDsK
IH0KIAogQGludGVyZmFjZSBDYW52YXMzRExheWVyIDogQ0FPcGVuR0xMYXllciAKIHsKICAgICBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKiBtX2xheWVyT3duZXI7Ci0gICAgV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0M0QqIG1fY29udGV4dDsKICAgICBDR0xDb250ZXh0T2JqIG1fY29udGV4dE9iajsK
ICAgICBHTHVpbnQgbV90ZXh0dXJlOwogfQogCi0tIChpZClpbml0V2l0aENvbnRleHQ6KFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDNEKiljb250ZXh0OworLSAoaWQpaW5pdFdpdGhDb250ZXh0OihD
R0xDb250ZXh0T2JqKWNvbnRleHQgdGV4dHVyZTooR0x1aW50KXRleHR1cmU7CiAKIC0gKENHSW1h
Z2VSZWYpY29weUltYWdlU25hcHNob3RXaXRoQ29sb3JTcGFjZTooQ0dDb2xvclNwYWNlUmVmKWNv
bG9yU3BhY2U7CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NhbnZhczNE
TGF5ZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ2Fu
dmFzM0RMYXllci5tbQkocmV2aXNpb24gNTYxMjQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL21hYy9DYW52YXMzRExheWVyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MSwxMSArNDEsMTAg
QEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIEBpbXBsZW1lbnRhdGlvbiBDYW52YXMzRExh
eWVyCiAKLS0oaWQpaW5pdFdpdGhDb250ZXh0OihHcmFwaGljc0NvbnRleHQzRCopY29udGV4dAor
LShpZClpbml0V2l0aENvbnRleHQ6KENHTENvbnRleHRPYmopY29udGV4dCB0ZXh0dXJlOihHTHVp
bnQpdGV4dHVyZQogewotICAgIG1fY29udGV4dCA9IGNvbnRleHQ7Ci0gICAgbV9jb250ZXh0T2Jq
ID0gc3RhdGljX2Nhc3Q8Q0dMQ29udGV4dE9iaj4oY29udGV4dC0+cGxhdGZvcm1HcmFwaGljc0Nv
bnRleHQzRCgpKTsKLSAgICBtX3RleHR1cmUgPSBzdGF0aWNfY2FzdDxHTHVpbnQ+KGNvbnRleHQt
PnBsYXRmb3JtVGV4dHVyZSgpKTsKKyAgICBtX2NvbnRleHRPYmogPSBjb250ZXh0OworICAgIG1f
dGV4dHVyZSA9IHRleHR1cmU7CiAgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKICAgICByZXR1cm4g
c2VsZjsKIH0KQEAgLTcxLDggKzcwLDggQEAgLShDR0xDb250ZXh0T2JqKWNvcHlDR0xDb250ZXh0
Rm9yUGl4ZWxGbwogCiAtKHZvaWQpZHJhd0luQ0dMQ29udGV4dDooQ0dMQ29udGV4dE9iailnbENv
bnRleHQgcGl4ZWxGb3JtYXQ6KENHTFBpeGVsRm9ybWF0T2JqKXBpeGVsRm9ybWF0IGZvckxheWVy
VGltZTooQ0ZUaW1lSW50ZXJ2YWwpdGltZUludGVydmFsIGRpc3BsYXlUaW1lOihjb25zdCBDVlRp
bWVTdGFtcCAqKXRpbWVTdGFtcAogewotICAgIG1fY29udGV4dC0+cHJlcGFyZVRleHR1cmUoKTsK
LQorICAgIENHTFNldEN1cnJlbnRDb250ZXh0KG1fY29udGV4dE9iaik7CisgICAgZ2xGaW5pc2go
KTsKICAgICBDR0xTZXRDdXJyZW50Q29udGV4dChnbENvbnRleHQpOwogCiAgICAgQ0dSZWN0IGZy
YW1lID0gW3NlbGYgZnJhbWVdOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
R3JhcGhpY3NDb250ZXh0M0RNYWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0dyYXBoaWNzQ29udGV4dDNETWFjLmNwcAkocmV2aXNpb24gNTYxMjQpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0NvbnRleHQzRE1hYy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTg2LDE5ICs4NiwxNiBAQCBHcmFwaGljc0NvbnRleHQzRDo6R3Jh
cGhpY3NDb250ZXh0M0QoR3JhCiAgICAgLCBtX2NvbnRleHRPYmooMCkKICAgICAsIG1fdGV4dHVy
ZSgwKQogICAgICwgbV9mYm8oMCkKLSAgICAsIG1fZGVwdGhTdGVuY2lsQnVmZmVyKDApCi0gICAg
LCBtX2JvdW5kRkJPKDApCi0gICAgLCBtX211bHRpc2FtcGxlRkJPKDApCi0gICAgLCBtX211bHRp
c2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVyKDApCi0gICAgLCBtX211bHRpc2FtcGxlQ29sb3JCdWZm
ZXIoMCkKLXsKLSAgICAvLyBUYWtlIGludG8gYWNjb3VudCB0aGUgdXNlcidzIHJlcXVlc3RlZCBj
b250ZXh0IGNyZWF0aW9uIGF0dHJpYnV0ZXMsIGluCi0gICAgLy8gcGFydGljdWxhciBzdGVuY2ls
IGFuZCBhbnRpYWxpYXMsIGFuZCBkZXRlcm1pbmUgd2hpY2ggY291bGQgYW5kIGNvdWxkCi0gICAg
Ly8gbm90IGJlIGhvbm9yZWQgYmFzZWQgb24gdGhlIGNhcGFiaWxpdGllcyBvZiB0aGUgT3BlbkdM
IGltcGxlbWVudGF0aW9uLgotICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwgJiYgIW1fYXR0cnMuZGVw
dGgpCi0gICAgICAgIG1fYXR0cnMuZGVwdGggPSB0cnVlOwotICAgIC8vIEZJWE1FOiBpbnN0ZWFk
IG9mIGVuZm9yY2luZyBwcmVtdWx0aXBsaWVkQWxwaGEgPSB0cnVlLCBpbXBsZW1lbnQgdGhlCi0g
ICAgLy8gY29ycmVjdCBiZWhhdmlvciB3aGVuIHByZW11bHRpcGxpZWRBbHBoYSA9IGZhbHNlIGlz
IHJlcXVlc3RlZC4KKyAgICAsIG1fZGVwdGhCdWZmZXIoMCkKK3sKKyAgICAvLyBGSVhNRTogd2Ug
bmVlZCB0byB0YWtlIGludG8gYWNjb3VudCB0aGUgdXNlcidzIHJlcXVlc3RlZAorICAgIC8vIGNv
bnRleHQgY3JlYXRpb24gYXR0cmlidXRlcywgaW4gcGFydGljdWxhciBzdGVuY2lsIGFuZAorICAg
IC8vIGFudGlhbGlhcywgYW5kIGRldGVybWluZSB3aGljaCBjb3VsZCBhbmQgY291bGQgbm90IGJl
IGhvbm9yZWQKKyAgICAvLyBiYXNlZCBvbiB0aGUgY2FwYWJpbGl0aWVzIG9mIHRoZSBPcGVuR0wg
aW1wbGVtZW50YXRpb24uCisgICAgbV9hdHRycy5hbHBoYSA9IHRydWU7CisgICAgbV9hdHRycy5k
ZXB0aCA9IHRydWU7CisgICAgbV9hdHRycy5zdGVuY2lsID0gZmFsc2U7CisgICAgbV9hdHRycy5h
bnRpYWxpYXMgPSBmYWxzZTsKICAgICBtX2F0dHJzLnByZW11bHRpcGxpZWRBbHBoYSA9IHRydWU7
CiAKICAgICBWZWN0b3I8Q0dMUGl4ZWxGb3JtYXRBdHRyaWJ1dGU+IGF0dHJpYnM7CkBAIC0xNTUs
MjUgKzE1MiwyMSBAQCBHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhCiAg
ICAgOjpnbFRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9NSU5fRklMVEVS
LCBHTF9MSU5FQVIpOwogICAgIDo6Z2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RF
WFRVUkVfV1JBUF9TLCBHTF9DTEFNUCk7CiAgICAgOjpnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVS
RV8yRCwgR0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QKTsKKyAgICA6OmdsVGV4SW1hZ2UyRChH
TF9URVhUVVJFXzJELCAwLCBHTF9SR0JBOCwgMSwgMSwgMCwgR0xfUkdCQSwgR0xfVU5TSUdORURf
QllURSwgMCk7CiAgICAgOjpnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIDApOwotCisgICAg
CiAgICAgLy8gY3JlYXRlIGFuIEZCTwogICAgIDo6Z2xHZW5GcmFtZWJ1ZmZlcnNFWFQoMSwgJm1f
ZmJvKTsKICAgICA6OmdsQmluZEZyYW1lYnVmZmVyRVhUKEdMX0ZSQU1FQlVGRkVSX0VYVCwgbV9m
Ym8pOwotICAgIG1fYm91bmRGQk8gPSBtX2ZibzsKLSAgICBpZiAoIW1fYXR0cnMuYW50aWFsaWFz
ICYmIChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkpCi0gICAgICAgIDo6Z2xHZW5S
ZW5kZXJidWZmZXJzRVhUKDEsICZtX2RlcHRoU3RlbmNpbEJ1ZmZlcik7Ci0KLSAgICAvLyBjcmVh
dGUgYW4gbXVsdGlzYW1wbGUgRkJPCi0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzKSB7Ci0gICAg
ICAgIDo6Z2xHZW5GcmFtZWJ1ZmZlcnNFWFQoMSwgJm1fbXVsdGlzYW1wbGVGQk8pOwotICAgICAg
ICA6OmdsQmluZEZyYW1lYnVmZmVyRVhUKEdMX0ZSQU1FQlVGRkVSX0VYVCwgbV9tdWx0aXNhbXBs
ZUZCTyk7Ci0gICAgICAgIG1fYm91bmRGQk8gPSBtX211bHRpc2FtcGxlRkJPOwotICAgICAgICA6
OmdsR2VuUmVuZGVyYnVmZmVyc0VYVCgxLCAmbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKTsKLSAg
ICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKQotICAgICAgICAgICAg
OjpnbEdlblJlbmRlcmJ1ZmZlcnNFWFQoMSwgJm1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZm
ZXIpOwotICAgIH0KLQorICAgIAorICAgIDo6Z2xHZW5SZW5kZXJidWZmZXJzRVhUKDEsICZtX2Rl
cHRoQnVmZmVyKTsKKyAgICA6OmdsQmluZFJlbmRlcmJ1ZmZlckVYVChHTF9SRU5ERVJCVUZGRVJf
RVhULCBtX2RlcHRoQnVmZmVyKTsKKyAgICA6OmdsUmVuZGVyYnVmZmVyU3RvcmFnZUVYVChHTF9S
RU5ERVJCVUZGRVJfRVhULCBHTF9ERVBUSF9DT01QT05FTlQsIDEsIDEpOworICAgIDo6Z2xCaW5k
UmVuZGVyYnVmZmVyRVhUKEdMX1JFTkRFUkJVRkZFUl9FWFQsIDApOworICAgIAorICAgIDo6Z2xG
cmFtZWJ1ZmZlclRleHR1cmUyREVYVChHTF9GUkFNRUJVRkZFUl9FWFQsIEdMX0NPTE9SX0FUVEFD
SE1FTlQwX0VYVCwgR0xfVEVYVFVSRV8yRCwgbV90ZXh0dXJlLCAwKTsKKyAgICA6OmdsRnJhbWVi
dWZmZXJSZW5kZXJidWZmZXJFWFQoR0xfRlJBTUVCVUZGRVJfRVhULCBHTF9ERVBUSF9BVFRBQ0hN
RU5UX0VYVCwgR0xfUkVOREVSQlVGRkVSX0VYVCwgbV9kZXB0aEJ1ZmZlcik7CisgICAgCiAgICAg
OjpnbENsZWFyQ29sb3IoMCwgMCwgMCwgMCk7CiB9CiAKQEAgLTE4MSwxNiArMTc0LDggQEAgR3Jh
cGhpY3NDb250ZXh0M0Q6On5HcmFwaGljc0NvbnRleHQzRCgpCiB7CiAgICAgaWYgKG1fY29udGV4
dE9iaikgewogICAgICAgICBDR0xTZXRDdXJyZW50Q29udGV4dChtX2NvbnRleHRPYmopOworICAg
ICAgICA6OmdsRGVsZXRlUmVuZGVyYnVmZmVyc0VYVCgxLCAmIG1fZGVwdGhCdWZmZXIpOwogICAg
ICAgICA6OmdsRGVsZXRlVGV4dHVyZXMoMSwgJm1fdGV4dHVyZSk7Ci0gICAgICAgIGlmIChtX2F0
dHJzLmFudGlhbGlhcykgewotICAgICAgICAgICAgOjpnbERlbGV0ZVJlbmRlcmJ1ZmZlcnNFWFQo
MSwgJm1fbXVsdGlzYW1wbGVDb2xvckJ1ZmZlcik7Ci0gICAgICAgICAgICBpZiAobV9hdHRycy5z
dGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpCi0gICAgICAgICAgICAgICAgOjpnbERlbGV0ZVJlbmRl
cmJ1ZmZlcnNFWFQoMSwgJm1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwotICAgICAg
ICAgICAgOjpnbERlbGV0ZUZyYW1lYnVmZmVyc0VYVCgxLCAmbV9tdWx0aXNhbXBsZUZCTyk7Ci0g
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0
cnMuZGVwdGgpCi0gICAgICAgICAgICAgICAgOjpnbERlbGV0ZVJlbmRlcmJ1ZmZlcnNFWFQoMSwg
Jm1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKLSAgICAgICAgfQogICAgICAgICA6OmdsRGVsZXRlRnJh
bWVidWZmZXJzRVhUKDEsICZtX2Zibyk7CiAgICAgICAgIENHTFNldEN1cnJlbnRDb250ZXh0KDAp
OwogICAgICAgICBDR0xEZXN0cm95Q29udGV4dChtX2NvbnRleHRPYmopOwpAQCAtMjIwLDg3ICsy
MDUsMjUgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFwZShpbnQgd2lkdAogICAgIG1f
Y3VycmVudEhlaWdodCA9IGhlaWdodDsKICAgICAKICAgICBDR0xTZXRDdXJyZW50Q29udGV4dCht
X2NvbnRleHRPYmopOwotCi0gICAgR0x1aW50IGludGVybmFsQ29sb3JGb3JtYXQsIGNvbG9yRm9y
bWF0LCBpbnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCA9IDA7Ci0gICAgaWYgKG1fYXR0cnMuYWxw
aGEpIHsKLSAgICAgICAgaW50ZXJuYWxDb2xvckZvcm1hdCA9IEdMX1JHQkE4OwotICAgICAgICBj
b2xvckZvcm1hdCA9IEdMX1JHQkE7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaW50ZXJuYWxDb2xv
ckZvcm1hdCA9IEdMX1JHQjg7Ci0gICAgICAgIGNvbG9yRm9ybWF0ID0gR0xfUkdCOwotICAgIH0K
LSAgICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpIHsKLSAgICAgICAgLy8g
V2UgZG9uJ3QgYWxsb3cgdGhlIGxvZ2ljIHdoZXJlIHN0ZW5jaWwgaXMgcmVxdWlyZWQgYW5kIGRl
cHRoIGlzIG5vdC4KLSAgICAgICAgLy8gU2VlIEdyYXBoaWNzQ29udGV4dDNEIGNvbnN0cnVjdG9y
LgotICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsICYmIG1fYXR0cnMuZGVwdGgpCi0gICAgICAg
ICAgICBpbnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCA9IEdMX0RFUFRIMjRfU1RFTkNJTDhfRVhU
OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBpbnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCA9
IEdMX0RFUFRIX0NPTVBPTkVOVDsKLSAgICB9Ci0KLSAgICBib29sIG11c3RSZXN0b3JlRkJPID0g
ZmFsc2U7Ci0KLSAgICAvLyByZXNpemUgbXVsdGlzYW1wbGUgRkJPCi0gICAgaWYgKG1fYXR0cnMu
YW50aWFsaWFzKSB7Ci0gICAgICAgIEdMaW50IG1heFNhbXBsZUNvdW50OwotICAgICAgICA6Omds
R2V0SW50ZWdlcnYoR0xfTUFYX1NBTVBMRVNfRVhULCAmbWF4U2FtcGxlQ291bnQpOwotICAgICAg
ICBHTGludCBzYW1wbGVDb3VudCA9IHN0ZDo6bWluKDgsIG1heFNhbXBsZUNvdW50KTsKLSAgICAg
ICAgaWYgKHNhbXBsZUNvdW50ID4gbWF4U2FtcGxlQ291bnQpCi0gICAgICAgICAgICBzYW1wbGVD
b3VudCA9IG1heFNhbXBsZUNvdW50OwotICAgICAgICBpZiAobV9ib3VuZEZCTyAhPSBtX211bHRp
c2FtcGxlRkJPKSB7Ci0gICAgICAgICAgICA6OmdsQmluZEZyYW1lYnVmZmVyRVhUKEdMX0ZSQU1F
QlVGRkVSX0VYVCwgbV9tdWx0aXNhbXBsZUZCTyk7Ci0gICAgICAgICAgICBtdXN0UmVzdG9yZUZC
TyA9IHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgOjpnbEJpbmRSZW5kZXJidWZmZXJFWFQoR0xf
UkVOREVSQlVGRkVSX0VYVCwgbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKTsKLSAgICAgICAgOjpn
bFJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZUVYVChHTF9SRU5ERVJCVUZGRVJfRVhULCBz
YW1wbGVDb3VudCwgaW50ZXJuYWxDb2xvckZvcm1hdCwgd2lkdGgsIGhlaWdodCk7Ci0gICAgICAg
IDo6Z2xGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlckVYVChHTF9GUkFNRUJVRkZFUl9FWFQsIEdMX0NP
TE9SX0FUVEFDSE1FTlQwX0VYVCwgR0xfUkVOREVSQlVGRkVSX0VYVCwgbV9tdWx0aXNhbXBsZUNv
bG9yQnVmZmVyKTsKLSAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRo
KSB7Ci0gICAgICAgICAgICA6OmdsQmluZFJlbmRlcmJ1ZmZlckVYVChHTF9SRU5ERVJCVUZGRVJf
RVhULCBtX211bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVyKTsKLSAgICAgICAgICAgIDo6Z2xS
ZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGVFWFQoR0xfUkVOREVSQlVGRkVSX0VYVCwgc2Ft
cGxlQ291bnQsIGludGVybmFsRGVwdGhTdGVuY2lsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0KTsKLSAg
ICAgICAgICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwpCi0gICAgICAgICAgICAgICAgOjpnbEZyYW1l
YnVmZmVyUmVuZGVyYnVmZmVyRVhUKEdMX0ZSQU1FQlVGRkVSX0VYVCwgR0xfU1RFTkNJTF9BVFRB
Q0hNRU5UX0VYVCwgR0xfUkVOREVSQlVGRkVSX0VYVCwgbV9tdWx0aXNhbXBsZURlcHRoU3RlbmNp
bEJ1ZmZlcik7Ci0gICAgICAgICAgICBpZiAobV9hdHRycy5kZXB0aCkKLSAgICAgICAgICAgICAg
ICA6OmdsRnJhbWVidWZmZXJSZW5kZXJidWZmZXJFWFQoR0xfRlJBTUVCVUZGRVJfRVhULCBHTF9E
RVBUSF9BVFRBQ0hNRU5UX0VYVCwgR0xfUkVOREVSQlVGRkVSX0VYVCwgbV9tdWx0aXNhbXBsZURl
cHRoU3RlbmNpbEJ1ZmZlcik7Ci0gICAgICAgIH0KLSAgICAgICAgOjpnbEJpbmRSZW5kZXJidWZm
ZXJFWFQoR0xfUkVOREVSQlVGRkVSX0VYVCwgMCk7Ci0gICAgICAgIGlmIChnbENoZWNrRnJhbWVi
dWZmZXJTdGF0dXNFWFQoR0xfRlJBTUVCVUZGRVJfRVhUKSAhPSBHTF9GUkFNRUJVRkZFUl9DT01Q
TEVURV9FWFQpIHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBjbGVhbnVwLgotICAgICAgICAgICAg
bm90SW1wbGVtZW50ZWQoKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIHJlc2l6ZSByZWd1
bGFyIEZCTwotICAgIGlmIChtX2JvdW5kRkJPICE9IG1fZmJvKSB7Ci0gICAgICAgIG11c3RSZXN0
b3JlRkJPID0gdHJ1ZTsKLSAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlckVYVChHTF9GUkFNRUJV
RkZFUl9FWFQsIG1fZmJvKTsKLSAgICB9CisgICAgCiAgICAgOjpnbEJpbmRUZXh0dXJlKEdMX1RF
WFRVUkVfMkQsIG1fdGV4dHVyZSk7Ci0gICAgOjpnbFRleEltYWdlMkQoR0xfVEVYVFVSRV8yRCwg
MCwgaW50ZXJuYWxDb2xvckZvcm1hdCwgd2lkdGgsIGhlaWdodCwgMCwgY29sb3JGb3JtYXQsIEdM
X1VOU0lHTkVEX0JZVEUsIDApOwotICAgIDo6Z2xGcmFtZWJ1ZmZlclRleHR1cmUyREVYVChHTF9G
UkFNRUJVRkZFUl9FWFQsIEdMX0NPTE9SX0FUVEFDSE1FTlQwX0VYVCwgR0xfVEVYVFVSRV8yRCwg
bV90ZXh0dXJlLCAwKTsKKyAgICA6OmdsVGV4SW1hZ2UyRChHTF9URVhUVVJFXzJELCAwLCBHTF9S
R0JBOCwgd2lkdGgsIGhlaWdodCwgMCwgR0xfUkdCQSwgR0xfVU5TSUdORURfQllURSwgMCk7CiAg
ICAgOjpnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIDApOwotICAgIGlmICghbV9hdHRycy5h
bnRpYWxpYXMgJiYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKSkgewotICAgICAg
ICA6OmdsQmluZFJlbmRlcmJ1ZmZlckVYVChHTF9SRU5ERVJCVUZGRVJfRVhULCBtX2RlcHRoU3Rl
bmNpbEJ1ZmZlcik7Ci0gICAgICAgIDo6Z2xSZW5kZXJidWZmZXJTdG9yYWdlRVhUKEdMX1JFTkRF
UkJVRkZFUl9FWFQsIGludGVybmFsRGVwdGhTdGVuY2lsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0KTsK
LSAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCkKLSAgICAgICAgICAgIDo6Z2xGcmFtZWJ1ZmZl
clJlbmRlcmJ1ZmZlckVYVChHTF9GUkFNRUJVRkZFUl9FWFQsIEdMX1NURU5DSUxfQVRUQUNITUVO
VF9FWFQsIEdMX1JFTkRFUkJVRkZFUl9FWFQsIG1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKLSAgICAg
ICAgaWYgKG1fYXR0cnMuZGVwdGgpCi0gICAgICAgICAgICA6OmdsRnJhbWVidWZmZXJSZW5kZXJi
dWZmZXJFWFQoR0xfRlJBTUVCVUZGRVJfRVhULCBHTF9ERVBUSF9BVFRBQ0hNRU5UX0VYVCwgR0xf
UkVOREVSQlVGRkVSX0VYVCwgbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwotICAgICAgICA6OmdsQmlu
ZFJlbmRlcmJ1ZmZlckVYVChHTF9SRU5ERVJCVUZGRVJfRVhULCAwKTsKLSAgICB9Ci0gICAgaWYg
KGdsQ2hlY2tGcmFtZWJ1ZmZlclN0YXR1c0VYVChHTF9GUkFNRUJVRkZFUl9FWFQpICE9IEdMX0ZS
QU1FQlVGRkVSX0NPTVBMRVRFX0VYVCkgewotICAgICAgICAvLyBGSVhNRTogY2xlYW51cC4KKyAg
ICAKKyAgICA6OmdsQmluZEZyYW1lYnVmZmVyRVhUKEdMX0ZSQU1FQlVGRkVSX0VYVCwgbV9mYm8p
OworICAgIDo6Z2xCaW5kUmVuZGVyYnVmZmVyRVhUKEdMX1JFTkRFUkJVRkZFUl9FWFQsIG1fZGVw
dGhCdWZmZXIpOworICAgIDo6Z2xSZW5kZXJidWZmZXJTdG9yYWdlRVhUKEdMX1JFTkRFUkJVRkZF
Ul9FWFQsIEdMX0RFUFRIX0NPTVBPTkVOVCwgd2lkdGgsIGhlaWdodCk7CisgICAgOjpnbEJpbmRS
ZW5kZXJidWZmZXJFWFQoR0xfUkVOREVSQlVGRkVSX0VYVCwgMCk7CisgICAgCisgICAgOjpnbEZy
YW1lYnVmZmVyVGV4dHVyZTJERVhUKEdMX0ZSQU1FQlVGRkVSX0VYVCwgR0xfQ09MT1JfQVRUQUNI
TUVOVDBfRVhULCBHTF9URVhUVVJFXzJELCBtX3RleHR1cmUsIDApOworICAgIDo6Z2xGcmFtZWJ1
ZmZlclJlbmRlcmJ1ZmZlckVYVChHTF9GUkFNRUJVRkZFUl9FWFQsIEdMX0RFUFRIX0FUVEFDSE1F
TlRfRVhULCBHTF9SRU5ERVJCVUZGRVJfRVhULCBtX2RlcHRoQnVmZmVyKTsKKyAgICBHTGVudW0g
c3RhdHVzID0gOjpnbENoZWNrRnJhbWVidWZmZXJTdGF0dXNFWFQoR0xfRlJBTUVCVUZGRVJfRVhU
KTsKKyAgICBpZiAoc3RhdHVzICE9IEdMX0ZSQU1FQlVGRkVSX0NPTVBMRVRFX0VYVCkgeworICAg
ICAgICAvLyBGSVhNRTogY2xlYW51cAogICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIH0K
IAotICAgIGlmIChtdXN0UmVzdG9yZUZCTykKLSAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlckVY
VChHTF9GUkFNRUJVRkZFUl9FWFQsIG1fYm91bmRGQk8pOwotCi0gICAgR0xlbnVtIGNsZWFyTWFz
ayA9IEdMX0NPTE9SX0JVRkZFUl9CSVQ7Ci0gICAgaWYgKG1fYXR0cnMuZGVwdGgpCi0gICAgICAg
IGNsZWFyTWFzayB8PSBHTF9ERVBUSF9CVUZGRVJfQklUOwotICAgIGlmIChtX2F0dHJzLnN0ZW5j
aWwpCi0gICAgICAgIGNsZWFyTWFzayB8PSBHTF9TVEVOQ0lMX0JVRkZFUl9CSVQ7Ci0gICAgOjpn
bENsZWFyKGNsZWFyTWFzayk7CisgICAgOjpnbENsZWFyKEdMX0NPTE9SX0JVRkZFUl9CSVQpOwog
ICAgIDo6Z2xGbHVzaCgpOwogfQogCkBAIC0zMjAsMTggKzI0Myw2IEBAIHZvaWQgR3JhcGhpY3ND
b250ZXh0M0Q6OmFjdGl2ZVRleHR1cmUodW4KICAgICA6OmdsQWN0aXZlVGV4dHVyZSh0ZXh0dXJl
KTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cHJlcGFyZVRleHR1cmUoKQotewotICAg
IGlmIChtX2F0dHJzLmFudGlhbGlhcykgewotICAgICAgICBlbnN1cmVDb250ZXh0KG1fY29udGV4
dE9iaik7Ci0gICAgICAgIDo6Z2xCaW5kRnJhbWVidWZmZXJFWFQoR0xfUkVBRF9GUkFNRUJVRkZF
Ul9FWFQsIG1fbXVsdGlzYW1wbGVGQk8pOwotICAgICAgICA6OmdsQmluZEZyYW1lYnVmZmVyRVhU
KEdMX0RSQVdfRlJBTUVCVUZGRVJfRVhULCBtX2Zibyk7Ci0gICAgICAgIDo6Z2xCbGl0RnJhbWVi
dWZmZXJFWFQoMCwgMCwgbV9jdXJyZW50V2lkdGgsIG1fY3VycmVudEhlaWdodCwgMCwgMCwgbV9j
dXJyZW50V2lkdGgsIG1fY3VycmVudEhlaWdodCwgR0xfQ09MT1JfQlVGRkVSX0JJVCwgR0xfTElO
RUFSKTsKLSAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlckVYVChHTF9GUkFNRUJVRkZFUl9FWFQs
IG1fYm91bmRGQk8pOwotICAgICAgICA6OmdsRmluaXNoKCk7Ci0gICAgfQotfQotCiB2b2lkIEdy
YXBoaWNzQ29udGV4dDNEOjphdHRhY2hTaGFkZXIoV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBXZWJH
TFNoYWRlciogc2hhZGVyKQogewogICAgIEFTU0VSVChwcm9ncmFtKTsKQEAgLTM1NywxNSArMjY4
LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6YmluZEJ1ZmZlcih1bnNpZwogdm9pZCBHcmFw
aGljc0NvbnRleHQzRDo6YmluZEZyYW1lYnVmZmVyKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBXZWJH
TEZyYW1lYnVmZmVyKiBidWZmZXIpCiB7CiAgICAgZW5zdXJlQ29udGV4dChtX2NvbnRleHRPYmop
OwotICAgIEdMdWludCBmYm87Ci0gICAgaWYgKGJ1ZmZlciAmJiBidWZmZXItPm9iamVjdCgpKQot
ICAgICAgICBmYm8gPSAoR0x1aW50KWJ1ZmZlci0+b2JqZWN0KCk7Ci0gICAgZWxzZQotICAgICAg
ICBmYm8gPSAobV9hdHRycy5hbnRpYWxpYXMgPyBtX211bHRpc2FtcGxlRkJPIDogbV9mYm8pOwot
ICAgIGlmIChmYm8gIT0gbV9ib3VuZEZCTykgewotICAgICAgICA6OmdsQmluZEZyYW1lYnVmZmVy
RVhUKHRhcmdldCwgZmJvKTsKLSAgICAgICAgbV9ib3VuZEZCTyA9IGZibzsKLSAgICB9CisgICAg
OjpnbEJpbmRGcmFtZWJ1ZmZlckVYVCh0YXJnZXQsIChidWZmZXIgJiYgYnVmZmVyLT5vYmplY3Qo
KSkgPyAoR0x1aW50KSBidWZmZXItPm9iamVjdCgpIDogbV9mYm8pOwogfQogCiB2b2lkIEdyYXBo
aWNzQ29udGV4dDNEOjpiaW5kUmVuZGVyYnVmZmVyKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBXZWJH
TFJlbmRlcmJ1ZmZlciogcmVuZGVyYnVmZmVyKQpAQCAtNzcyLDI1ICs2NzUsOSBAQCBQYXNzUmVm
UHRyPFdlYkdMQXJyYXk+IEdyYXBoaWNzQ29udGV4dDNECiAgICAgLy8gRklYTUU6IEFsc28sIHdl
IHNob3VsZCB0aHJvdyB3aGVuIGFuIHVuYWNjZXB0YWJsZSB2YWx1ZSBpcyBwYXNzZWQKICAgICBp
ZiAodHlwZSAhPSBHTF9VTlNJR05FRF9CWVRFIHx8IGZvcm1hdCAhPSBHTF9SR0JBKQogICAgICAg
ICByZXR1cm4gMDsKLQotICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcyAmJiBtX2JvdW5kRkJPID09
IG1fbXVsdGlzYW1wbGVGQk8pIHsKLSAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlckVYVChHTF9S
RUFEX0ZSQU1FQlVGRkVSX0VYVCwgbV9tdWx0aXNhbXBsZUZCTyk7Ci0gICAgICAgIDo6Z2xCaW5k
RnJhbWVidWZmZXJFWFQoR0xfRFJBV19GUkFNRUJVRkZFUl9FWFQsIG1fZmJvKTsKLSAgICAgICAg
OjpnbEJsaXRGcmFtZWJ1ZmZlckVYVCh4LCB5LCB4ICsgd2lkdGgsIHkgKyBoZWlnaHQsIHgsIHks
IHggKyB3aWR0aCwgeSArIGhlaWdodCwgR0xfQ09MT1JfQlVGRkVSX0JJVCwgR0xfTElORUFSKTsK
LSAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlckVYVChHTF9GUkFNRUJVRkZFUl9FWFQsIG1fZmJv
KTsKLSAgICB9CisgICAgICAgIAogICAgIFJlZlB0cjxXZWJHTFVuc2lnbmVkQnl0ZUFycmF5PiBh
cnJheSA9IFdlYkdMVW5zaWduZWRCeXRlQXJyYXk6OmNyZWF0ZSh3aWR0aCAqIGhlaWdodCAqIDQp
OwogICAgIDo6Z2xSZWFkUGl4ZWxzKHgsIHksIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwg
KEdMdm9pZCopIGFycmF5LT5kYXRhKCkpOwotICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcyAmJiBt
X2JvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCi0gICAgICAgIDo6Z2xCaW5kRnJhbWVidWZm
ZXJFWFQoR0xfRlJBTUVCVUZGRVJfRVhULCBtX211bHRpc2FtcGxlRkJPKTsKLSAgICBpZiAoIW1f
YXR0cnMuYWxwaGEpIHsKLSAgICAgICAgLy8gSWYgYWxwaGEgaXMgb2ZmLCBieSBkZWZhdWx0IGds
UmVhZFBpeGVscyBzaG91bGQgc2V0IHRoZSBhbHBoYSB0byAyNTUgaW5zdGVhZCBvZiAwLgotICAg
ICAgICAvLyBUaGlzIGlzIGEgaGFjayB1bnRpbCA6OmdsUmVhZFBpeGVscyBmaXhlcyBpdHMgYmVo
YXZpb3IuCi0gICAgICAgIEdMdWJ5dGUqIGRhdGEgPSByZWludGVycHJldF9jYXN0PEdMdWJ5dGUq
PihhcnJheS0+ZGF0YSgpKTsKLSAgICAgICAgdW5zaWduZWQgYnl0ZUxlbmd0aCA9IGFycmF5LT5i
eXRlTGVuZ3RoKCk7Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IDM7IGkgPCBieXRlTGVuZ3Ro
OyBpICs9IDQpCi0gICAgICAgICAgICBkYXRhW2ldID0gMjU1OwotICAgIH0KICAgICByZXR1cm4g
YXJyYXk7ICAgIAogfQogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFw
aGljc0xheWVyQ0EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvR3JhcGhpY3NMYXllckNBLm1tCShyZXZpc2lvbiA1NjEyNCkKKysrIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzTGF5ZXJDQS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTcx
Niw3ICsxNzE2LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzVG9HcmFwaAog
CiAgICAgaWYgKG1fcGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCAhPSBOdWxsUGxhdGZvcm1HcmFw
aGljc0NvbnRleHQzRCAmJiBtX3BsYXRmb3JtVGV4dHVyZSAhPSBOdWxsUGxhdGZvcm0zRE9iamVj
dCkgewogICAgICAgICAvLyBjcmVhdGUgdGhlIGlubmVyIDNkIGxheWVyCi0gICAgICAgIG1fY29u
dGVudHNMYXllci5hZG9wdE5TKFtbQ2FudmFzM0RMYXllciBhbGxvY10gaW5pdFdpdGhDb250ZXh0
OmNvbnN0X2Nhc3Q8R3JhcGhpY3NDb250ZXh0M0QqPihncmFwaGljc0NvbnRleHQzRCldKTsKKyAg
ICAgICAgbV9jb250ZW50c0xheWVyLmFkb3B0TlMoW1tDYW52YXMzRExheWVyIGFsbG9jXSBpbml0
V2l0aENvbnRleHQ6c3RhdGljX2Nhc3Q8Q0dMQ29udGV4dE9iaj4obV9wbGF0Zm9ybUdyYXBoaWNz
Q29udGV4dDNEKSB0ZXh0dXJlOnN0YXRpY19jYXN0PEdMdWludD4obV9wbGF0Zm9ybVRleHR1cmUp
XSk7CiAjaWZuZGVmIE5ERUJVRwogICAgICAgICBbbV9jb250ZW50c0xheWVyLmdldCgpIHNldE5h
bWU6QCIzRCBMYXllciJdOwogI2VuZGlmCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU2MTI0
KQorKysgV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDI3IEBACisyMDEwLTAzLTE3ICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXZlcnQgV2Vi
R0wgY29udGV4dCBhdHRyaWJ1dGVzIGNoYW5nZXMgMzM0MTYgLyByNTYwNzQgYW5kIDM2MjAwIC8g
cjU2MDkzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
NjIzMworCisgICAgICAgIFRoZSBwYXRjaCBmb3IgYnVnIDMzNDE2LCB3aGljaCBhZGRlZCBtdWx0
aXNhbXBsaW5nIHN1cHBvcnQgdG8gdGhlCisgICAgICAgIFdlYkdMIGJhY2sgYnVmZmVyLCB1bmNv
dmVyZWQgc29tZSBPcGVuR0wgZHJpdmVyIGJ1Z3Mgb24gdGhlIGJ1aWxkCisgICAgICAgIGJvdHMg
d2hpY2ggbmVlZCBmdXJ0aGVyIGludmVzdGlnYXRpb24gdG8gZGV0ZXJtaW5lIHRoZSBhcHByb3By
aWF0ZQorICAgICAgICB3b3JrYXJvdW5kLiBSZXZlcnRpbmcgdGhpcyBjaGFuZ2UsIHRoZSBtaW5v
ciBidWlsZCBmaXggaW4gMzYxODksCisgICAgICAgIGFuZCB0aGUgc2tpcHBpbmcgb2YgdGhlIGFm
ZmVjdGVkIHRlc3RzIGluIGJ1ZyAzNjIwMC4KKworICAgICAgICBCdWlsdCBhbmQgdGVzdGVkIFdl
YktpdCBhbmQgQ2hyb21pdW0gYW5kIHJhbiBhbGwgV2ViR0wgbGF5b3V0CisgICAgICAgIHRlc3Rz
IGluIGJvdGguCisKKyAgICAgICAgKiBzcmMvR3JhcGhpY3NDb250ZXh0M0QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0RJbnRlcm5hbDo6R3JhcGhpY3NDb250ZXh0M0RJ
bnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzREludGVybmFsOjp+
R3JhcGhpY3NDb250ZXh0M0RJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQzREludGVybmFsOjpyZXNoYXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNESW50ZXJuYWw6OmJlZ2luUGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0M0RJbnRlcm5hbDo6YmluZEZyYW1lYnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDNEOjpyZWFkUGl4ZWxzKToKKwogMjAxMC0wMy0xNiAgSmFtZXMgSGF3a2lu
cyAgPGpoYXdraW5zQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBM
ZXZpbi4KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0M0QuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0M0QuY3BwCShy
ZXZpc2lvbiA1NjEyNCkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0M0Qu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjQsMjMgKzEyNCwxNiBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc3RyaWRlLCB1bnNpZ25lZCBsb25n
IG9mZnNldCk7CiAgICAgdm9pZCB2aWV3cG9ydEltcGwobG9uZyB4LCBsb25nIHksIHVuc2lnbmVk
IGxvbmcgd2lkdGgsIHVuc2lnbmVkIGxvbmcgaGVpZ2h0KTsKIAotICAgIHZvaWQgcmVhZFBpeGVs
cyhsb25nIHgsIGxvbmcgeSwgdW5zaWduZWQgbG9uZyB3aWR0aCwgdW5zaWduZWQgbG9uZyBoZWln
aHQsIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCB1bnNpZ25lZCBsb25nIHR5cGUsIHZvaWQqIGJ1ZmZl
cik7Ci0KICAgICB2b2lkIHN5bnRoZXNpemVHTEVycm9yKHVuc2lnbmVkIGxvbmcgZXJyb3IpOwog
CiBwcml2YXRlOgogICAgIEdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVzIG1fYXR0cnM7Ci0g
ICAgCisKICAgICB1bnNpZ25lZCBpbnQgbV90ZXh0dXJlOwogICAgIHVuc2lnbmVkIGludCBtX2Zi
bzsKLSAgICB1bnNpZ25lZCBpbnQgbV9kZXB0aFN0ZW5jaWxCdWZmZXI7CisgICAgdW5zaWduZWQg
aW50IG1fZGVwdGhCdWZmZXI7CiAgICAgdW5zaWduZWQgaW50IG1fY2FjaGVkV2lkdGgsIG1fY2Fj
aGVkSGVpZ2h0OwogCi0gICAgLy8gRm9yIG11bHRpc2FtcGxpbmcKLSAgICB1bnNpZ25lZCBpbnQg
bV9tdWx0aXNhbXBsZUZCTzsKLSAgICB1bnNpZ25lZCBpbnQgbV9tdWx0aXNhbXBsZURlcHRoU3Rl
bmNpbEJ1ZmZlcjsKLSAgICB1bnNpZ25lZCBpbnQgbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyOwot
CiAgICAgLy8gRm9yIHRyYWNraW5nIHdoaWNoIEZCTyBpcyBib3VuZAogICAgIHVuc2lnbmVkIGlu
dCBtX2JvdW5kRkJPOwogCkBAIC0zNTgsMTAgKzM1MSw3IEBAIEdyYXBoaWNzQ29udGV4dDNESW50
ZXJuYWw6OkdyYXBoaWNzQ29udGUKICAgICA6IG1fYXR0cnMoYXR0cnMpCiAgICAgLCBtX3RleHR1
cmUoMCkKICAgICAsIG1fZmJvKDApCi0gICAgLCBtX2RlcHRoU3RlbmNpbEJ1ZmZlcigwKQotICAg
ICwgbV9tdWx0aXNhbXBsZUZCTygwKQotICAgICwgbV9tdWx0aXNhbXBsZURlcHRoU3RlbmNpbEJ1
ZmZlcigwKQotICAgICwgbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKDApCisgICAgLCBtX2RlcHRo
QnVmZmVyKDApCiAgICAgLCBtX2JvdW5kRkJPKDApCiAjaWZkZWYgRkxJUF9GUkFNRUJVRkZFUl9W
RVJUSUNBTExZCiAgICAgLCBtX3NjYW5saW5lKDApCkBAIC0zODUsMjEgKzM3NSwxNCBAQCBHcmFw
aGljc0NvbnRleHQzREludGVybmFsOjpHcmFwaGljc0NvbnRlCiAjZXJyb3IgTXVzdCBwb3J0IHRv
IHlvdXIgcGxhdGZvcm0KICNlbmRpZgogewotICAgIC8vIFRha2UgaW50byBhY2NvdW50IHRoZSB1
c2VyJ3MgcmVxdWVzdGVkIGNvbnRleHQgY3JlYXRpb24gYXR0cmlidXRlcywgaW4KLSAgICAvLyBw
YXJ0aWN1bGFyIHN0ZW5jaWwgYW5kIGFudGlhbGlhcywgYW5kIGRldGVybWluZSB3aGljaCBjb3Vs
ZCBhbmQgY291bGQKLSAgICAvLyBub3QgYmUgaG9ub3JlZCBiYXNlZCBvbiB0aGUgY2FwYWJpbGl0
aWVzIG9mIHRoZSBPcGVuR0wgaW1wbGVtZW50YXRpb24uCi0gICAgaWYgKG1fYXR0cnMuc3RlbmNp
bCkgewotICAgICAgICBpZiAoR0xFV19FWFRfcGFja2VkX2RlcHRoX3N0ZW5jaWwpIHsKLSAgICAg
ICAgICAgIGlmICghbV9hdHRycy5kZXB0aCkKLSAgICAgICAgICAgICAgICBtX2F0dHJzLmRlcHRo
ID0gdHJ1ZTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG1fYXR0cnMuc3RlbmNpbCA9
IGZhbHNlOwotICAgICAgICB9Ci0gICAgfQotICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcyAmJiAh
R0xFV19FWFRfZnJhbWVidWZmZXJfbXVsdGlzYW1wbGUpCi0gICAgICAgIG1fYXR0cnMuYW50aWFs
aWFzID0gZmFsc2U7Ci0gICAgLy8gRklYTUU6IGluc3RlYWQgb2YgZW5mb3JjaW5nIHByZW11bHRp
cGxpZWRBbHBoYSA9IHRydWUsIGltcGxlbWVudCB0aGUKLSAgICAvLyBjb3JyZWN0IGJlaGF2aW9y
IHdoZW4gcHJlbXVsdGlwbGllZEFscGhhID0gZmFsc2UgaXMgcmVxdWVzdGVkLgorICAgIC8vIEZJ
WE1FOiB3ZSBuZWVkIHRvIHRha2UgaW50byBhY2NvdW50IHRoZSB1c2VyJ3MgcmVxdWVzdGVkCisg
ICAgLy8gY29udGV4dCBjcmVhdGlvbiBhdHRyaWJ1dGVzLCBpbiBwYXJ0aWN1bGFyIHN0ZW5jaWwg
YW5kCisgICAgLy8gYW50aWFsaWFzLCBhbmQgZGV0ZXJtaW5lIHdoaWNoIGNvdWxkIGFuZCBjb3Vs
ZCBub3QgYmUgaG9ub3JlZAorICAgIC8vIGJhc2VkIG9uIHRoZSBjYXBhYmlsaXRpZXMgb2YgdGhl
IE9wZW5HTCBpbXBsZW1lbnRhdGlvbi4KKyAgICBtX2F0dHJzLmFscGhhID0gdHJ1ZTsKKyAgICBt
X2F0dHJzLmRlcHRoID0gdHJ1ZTsKKyAgICBtX2F0dHJzLnN0ZW5jaWwgPSBmYWxzZTsKKyAgICBt
X2F0dHJzLmFudGlhbGlhcyA9IGZhbHNlOwogICAgIG1fYXR0cnMucHJlbXVsdGlwbGllZEFscGhh
ID0gdHJ1ZTsKIAogI2lmIE9TKFdJTkRPV1MpCkBAIC01ODksMTUgKzU3Miw3IEBAIEdyYXBoaWNz
Q29udGV4dDNESW50ZXJuYWw6On5HcmFwaGljc0NvbnQKIHsKICAgICBtYWtlQ29udGV4dEN1cnJl
bnQoKTsKICNpZm5kZWYgUkVOREVSX1RPX0RFQlVHR0lOR19XSU5ET1cKLSAgICBpZiAobV9hdHRy
cy5hbnRpYWxpYXMpIHsKLSAgICAgICAgZ2xEZWxldGVSZW5kZXJidWZmZXJzRVhUKDEsICZtX211
bHRpc2FtcGxlQ29sb3JCdWZmZXIpOwotICAgICAgICBpZiAobV9hdHRycy5kZXB0aCB8fCBtX2F0
dHJzLnN0ZW5jaWwpCi0gICAgICAgICAgICBnbERlbGV0ZVJlbmRlcmJ1ZmZlcnNFWFQoMSwgJm1f
bXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwotICAgICAgICBnbERlbGV0ZUZyYW1lYnVm
ZmVyc0VYVCgxLCAmbV9tdWx0aXNhbXBsZUZCTyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYg
KG1fYXR0cnMuZGVwdGggfHwgbV9hdHRycy5zdGVuY2lsKQotICAgICAgICAgICAgZ2xEZWxldGVS
ZW5kZXJidWZmZXJzRVhUKDEsICZtX2RlcHRoU3RlbmNpbEJ1ZmZlcik7Ci0gICAgfQorICAgIGds
RGVsZXRlUmVuZGVyYnVmZmVyc0VYVCgxLCAmbV9kZXB0aEJ1ZmZlcik7CiAgICAgZ2xEZWxldGVU
ZXh0dXJlcygxLCAmbV90ZXh0dXJlKTsKICNpZmRlZiBGTElQX0ZSQU1FQlVGRkVSX1ZFUlRJQ0FM
TFkKICAgICBpZiAobV9zY2FubGluZSkKQEAgLTY5NCw4OCArNjY5LDIzIEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0M0RJbnRlcm5hbDo6cmVzaGFwZSgKICAgICAgICAgbV90ZXh0dXJlID0gY3JlYXRl
VGV4dHVyZU9iamVjdCh0YXJnZXQpOwogICAgICAgICAvLyBHZW5lcmF0ZSB0aGUgZnJhbWVidWZm
ZXIgb2JqZWN0CiAgICAgICAgIGdsR2VuRnJhbWVidWZmZXJzRVhUKDEsICZtX2Zibyk7Ci0gICAg
ICAgIGdsQmluZEZyYW1lYnVmZmVyRVhUKEdMX0ZSQU1FQlVGRkVSX0VYVCwgbV9mYm8pOwotICAg
ICAgICBtX2JvdW5kRkJPID0gbV9mYm87Ci0gICAgICAgIGlmIChtX2F0dHJzLmRlcHRoIHx8IG1f
YXR0cnMuc3RlbmNpbCkKLSAgICAgICAgICAgIGdsR2VuUmVuZGVyYnVmZmVyc0VYVCgxLCAmbV9k
ZXB0aFN0ZW5jaWxCdWZmZXIpOwotICAgICAgICAvLyBHZW5lcmF0ZSB0aGUgbXVsdGlzYW1wbGUg
ZnJhbWVidWZmZXIgb2JqZWN0Ci0gICAgICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcykgewotICAg
ICAgICAgICAgZ2xHZW5GcmFtZWJ1ZmZlcnNFWFQoMSwgJm1fbXVsdGlzYW1wbGVGQk8pOwotICAg
ICAgICAgICAgZ2xCaW5kRnJhbWVidWZmZXJFWFQoR0xfRlJBTUVCVUZGRVJfRVhULCBtX211bHRp
c2FtcGxlRkJPKTsKLSAgICAgICAgICAgIG1fYm91bmRGQk8gPSBtX211bHRpc2FtcGxlRkJPOwot
ICAgICAgICAgICAgZ2xHZW5SZW5kZXJidWZmZXJzRVhUKDEsICZtX211bHRpc2FtcGxlQ29sb3JC
dWZmZXIpOwotICAgICAgICAgICAgaWYgKG1fYXR0cnMuZGVwdGggfHwgbV9hdHRycy5zdGVuY2ls
KQotICAgICAgICAgICAgICAgIGdsR2VuUmVuZGVyYnVmZmVyc0VYVCgxLCAmbV9tdWx0aXNhbXBs
ZURlcHRoU3RlbmNpbEJ1ZmZlcik7Ci0gICAgICAgIH0KKyAgICAgICAgLy8gR2VuZXJhdGUgdGhl
IGRlcHRoIGJ1ZmZlcgorICAgICAgICBnbEdlblJlbmRlcmJ1ZmZlcnNFWFQoMSwgJm1fZGVwdGhC
dWZmZXIpOwogICAgIH0KIAotICAgIEdMaW50IGludGVybmFsQ29sb3JGb3JtYXQsIGNvbG9yRm9y
bWF0LCBpbnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCA9IDA7Ci0gICAgaWYgKG1fYXR0cnMuYWxw
aGEpIHsKLSAgICAgICAgaW50ZXJuYWxDb2xvckZvcm1hdCA9IEdMX1JHQkE4OwotICAgICAgICBj
b2xvckZvcm1hdCA9IEdMX1JHQkE7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaW50ZXJuYWxDb2xv
ckZvcm1hdCA9IEdMX1JHQjg7Ci0gICAgICAgIGNvbG9yRm9ybWF0ID0gR0xfUkdCOwotICAgIH0K
LSAgICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpIHsKLSAgICAgICAgLy8g
V2UgZG9uJ3QgYWxsb3cgdGhlIGxvZ2ljIHdoZXJlIHN0ZW5jaWwgaXMgcmVxdWlyZWQgYW5kIGRl
cHRoIGlzIG5vdC4KLSAgICAgICAgLy8gU2VlIEdyYXBoaWNzQ29udGV4dDNESW50ZXJuYWwgY29u
c3RydWN0b3IuCi0gICAgICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwgJiYgbV9hdHRycy5kZXB0aCkK
LSAgICAgICAgICAgIGludGVybmFsRGVwdGhTdGVuY2lsRm9ybWF0ID0gR0xfREVQVEgyNF9TVEVO
Q0lMOF9FWFQ7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGludGVybmFsRGVwdGhTdGVuY2ls
Rm9ybWF0ID0gR0xfREVQVEhfQ09NUE9ORU5UOwotICAgIH0KLQotICAgIGJvb2wgbXVzdFJlc3Rv
cmVGQk8gPSBmYWxzZTsKLQotICAgIC8vIFJlc2l6ZSBtdWx0aXNhbXBsaW5nIEZCTwotICAgIGlm
IChtX2F0dHJzLmFudGlhbGlhcykgewotICAgICAgICBHTGludCBtYXhTYW1wbGVDb3VudDsKLSAg
ICAgICAgZ2xHZXRJbnRlZ2VydihHTF9NQVhfU0FNUExFU19FWFQsICZtYXhTYW1wbGVDb3VudCk7
Ci0gICAgICAgIEdMaW50IHNhbXBsZUNvdW50ID0gc3RkOjptaW4oOCwgbWF4U2FtcGxlQ291bnQp
OwotICAgICAgICBpZiAobV9ib3VuZEZCTyAhPSBtX211bHRpc2FtcGxlRkJPKSB7Ci0gICAgICAg
ICAgICBtdXN0UmVzdG9yZUZCTyA9IHRydWU7Ci0gICAgICAgICAgICBnbEJpbmRGcmFtZWJ1ZmZl
ckVYVChHTF9GUkFNRUJVRkZFUl9FWFQsIG1fbXVsdGlzYW1wbGVGQk8pOwotICAgICAgICB9Ci0g
ICAgICAgIGdsQmluZFJlbmRlcmJ1ZmZlckVYVChHTF9SRU5ERVJCVUZGRVJfRVhULCBtX211bHRp
c2FtcGxlQ29sb3JCdWZmZXIpOwotICAgICAgICBnbFJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNh
bXBsZUVYVChHTF9SRU5ERVJCVUZGRVJfRVhULCBzYW1wbGVDb3VudCwgaW50ZXJuYWxDb2xvckZv
cm1hdCwgd2lkdGgsIGhlaWdodCk7Ci0gICAgICAgIGdsRnJhbWVidWZmZXJSZW5kZXJidWZmZXJF
WFQoR0xfRlJBTUVCVUZGRVJfRVhULCBHTF9DT0xPUl9BVFRBQ0hNRU5UMF9FWFQsIEdMX1JFTkRF
UkJVRkZFUl9FWFQsIG1fbXVsdGlzYW1wbGVDb2xvckJ1ZmZlcik7Ci0gICAgICAgIGlmIChtX2F0
dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkgewotICAgICAgICAgICAgZ2xCaW5kUmVuZGVy
YnVmZmVyRVhUKEdMX1JFTkRFUkJVRkZFUl9FWFQsIG1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxC
dWZmZXIpOwotICAgICAgICAgICAgZ2xSZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGVFWFQo
R0xfUkVOREVSQlVGRkVSX0VYVCwgc2FtcGxlQ291bnQsIGludGVybmFsRGVwdGhTdGVuY2lsRm9y
bWF0LCB3aWR0aCwgaGVpZ2h0KTsKLSAgICAgICAgICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwpCi0g
ICAgICAgICAgICAgICAgZ2xGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlckVYVChHTF9GUkFNRUJVRkZF
Ul9FWFQsIEdMX1NURU5DSUxfQVRUQUNITUVOVF9FWFQsIEdMX1JFTkRFUkJVRkZFUl9FWFQsIG1f
bXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwotICAgICAgICAgICAgaWYgKG1fYXR0cnMu
ZGVwdGgpCi0gICAgICAgICAgICAgICAgZ2xGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlckVYVChHTF9G
UkFNRUJVRkZFUl9FWFQsIEdMX0RFUFRIX0FUVEFDSE1FTlRfRVhULCBHTF9SRU5ERVJCVUZGRVJf
RVhULCBtX211bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVyKTsKLSAgICAgICAgfQotICAgICAg
ICBnbEJpbmRSZW5kZXJidWZmZXJFWFQoR0xfUkVOREVSQlVGRkVSX0VYVCwgMCk7Ci0gICAgICAg
IEdMZW51bSBzdGF0dXMgPSBnbENoZWNrRnJhbWVidWZmZXJTdGF0dXNFWFQoR0xfRlJBTUVCVUZG
RVJfRVhUKTsKLSAgICAgICAgaWYgKHN0YXR1cyAhPSBHTF9GUkFNRUJVRkZFUl9DT01QTEVURV9F
WFQpIHsKLSAgICAgICAgICAgIHByaW50ZigiR3JhcGhpY3NDb250ZXh0M0Q6IG11bHRpc2FtcGxp
bmcgZnJhbWVidWZmZXIgd2FzIGluY29tcGxldGVcbiIpOworICAgIC8vIFJlYWxsb2NhdGUgdGhl
IGNvbG9yIGFuZCBkZXB0aCBidWZmZXJzCisgICAgZ2xCaW5kVGV4dHVyZSh0YXJnZXQsIG1fdGV4
dHVyZSk7CisgICAgZ2xUZXhJbWFnZTJEKHRhcmdldCwgMCwgR0xfUkdCQTgsIHdpZHRoLCBoZWln
aHQsIDAsIEdMX1JHQkEsIEdMX1VOU0lHTkVEX0JZVEUsIDApOworICAgIGdsQmluZFRleHR1cmUo
dGFyZ2V0LCAwKTsKIAotICAgICAgICAgICAgLy8gRklYTUU6IGNsZWFudXAuCi0gICAgICAgICAg
ICBub3RJbXBsZW1lbnRlZCgpOwotICAgICAgICB9Ci0gICAgfQorICAgIGdsQmluZEZyYW1lYnVm
ZmVyRVhUKEdMX0ZSQU1FQlVGRkVSX0VYVCwgbV9mYm8pOworICAgIG1fYm91bmRGQk8gPSBtX2Zi
bzsKKyAgICBnbEJpbmRSZW5kZXJidWZmZXJFWFQoR0xfUkVOREVSQlVGRkVSX0VYVCwgbV9kZXB0
aEJ1ZmZlcik7CisgICAgZ2xSZW5kZXJidWZmZXJTdG9yYWdlRVhUKEdMX1JFTkRFUkJVRkZFUl9F
WFQsIEdMX0RFUFRIX0NPTVBPTkVOVCwgd2lkdGgsIGhlaWdodCk7CisgICAgZ2xCaW5kUmVuZGVy
YnVmZmVyRVhUKEdMX1JFTkRFUkJVRkZFUl9FWFQsIDApOwogCi0gICAgLy8gUmVzaXplIHJlZ3Vs
YXIgRkJPCi0gICAgaWYgKG1fYm91bmRGQk8gIT0gbV9mYm8pIHsKLSAgICAgICAgZ2xCaW5kRnJh
bWVidWZmZXJFWFQoR0xfRlJBTUVCVUZGRVJfRVhULCBtX2Zibyk7Ci0gICAgICAgIG11c3RSZXN0
b3JlRkJPID0gdHJ1ZTsKLSAgICB9Ci0gICAgZ2xCaW5kVGV4dHVyZSh0YXJnZXQsIG1fdGV4dHVy
ZSk7Ci0gICAgZ2xUZXhJbWFnZTJEKHRhcmdldCwgMCwgaW50ZXJuYWxDb2xvckZvcm1hdCwgd2lk
dGgsIGhlaWdodCwgMCwgY29sb3JGb3JtYXQsIEdMX1VOU0lHTkVEX0JZVEUsIDApOwogICAgIGds
RnJhbWVidWZmZXJUZXh0dXJlMkRFWFQoR0xfRlJBTUVCVUZGRVJfRVhULCBHTF9DT0xPUl9BVFRB
Q0hNRU5UMF9FWFQsIHRhcmdldCwgbV90ZXh0dXJlLCAwKTsKLSAgICBnbEJpbmRUZXh0dXJlKHRh
cmdldCwgMCk7Ci0gICAgaWYgKCFtX2F0dHJzLmFudGlhbGlhcyAmJiAobV9hdHRycy5zdGVuY2ls
IHx8IG1fYXR0cnMuZGVwdGgpKSB7Ci0gICAgICAgIGdsQmluZFJlbmRlcmJ1ZmZlckVYVChHTF9S
RU5ERVJCVUZGRVJfRVhULCBtX2RlcHRoU3RlbmNpbEJ1ZmZlcik7Ci0gICAgICAgIGdsUmVuZGVy
YnVmZmVyU3RvcmFnZUVYVChHTF9SRU5ERVJCVUZGRVJfRVhULCBpbnRlcm5hbERlcHRoU3RlbmNp
bEZvcm1hdCwgd2lkdGgsIGhlaWdodCk7Ci0gICAgICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwpCi0g
ICAgICAgICAgICBnbEZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyRVhUKEdMX0ZSQU1FQlVGRkVSX0VY
VCwgR0xfU1RFTkNJTF9BVFRBQ0hNRU5UX0VYVCwgR0xfUkVOREVSQlVGRkVSX0VYVCwgbV9kZXB0
aFN0ZW5jaWxCdWZmZXIpOwotICAgICAgICBpZiAobV9hdHRycy5kZXB0aCkKLSAgICAgICAgICAg
IGdsRnJhbWVidWZmZXJSZW5kZXJidWZmZXJFWFQoR0xfRlJBTUVCVUZGRVJfRVhULCBHTF9ERVBU
SF9BVFRBQ0hNRU5UX0VYVCwgR0xfUkVOREVSQlVGRkVSX0VYVCwgbV9kZXB0aFN0ZW5jaWxCdWZm
ZXIpOwotICAgICAgICBnbEJpbmRSZW5kZXJidWZmZXJFWFQoR0xfUkVOREVSQlVGRkVSX0VYVCwg
MCk7Ci0gICAgfQorICAgIGdsRnJhbWVidWZmZXJSZW5kZXJidWZmZXJFWFQoR0xfRlJBTUVCVUZG
RVJfRVhULCBHTF9ERVBUSF9BVFRBQ0hNRU5UX0VYVCwgR0xfUkVOREVSQlVGRkVSX0VYVCwgbV9k
ZXB0aEJ1ZmZlcik7CiAgICAgR0xlbnVtIHN0YXR1cyA9IGdsQ2hlY2tGcmFtZWJ1ZmZlclN0YXR1
c0VYVChHTF9GUkFNRUJVRkZFUl9FWFQpOwogICAgIGlmIChzdGF0dXMgIT0gR0xfRlJBTUVCVUZG
RVJfQ09NUExFVEVfRVhUKSB7CiAgICAgICAgIHByaW50ZigiR3JhcGhpY3NDb250ZXh0M0Q6IGZy
YW1lYnVmZmVyIHdhcyBpbmNvbXBsZXRlXG4iKTsKQEAgLTc4Myw5ICs2OTMsNiBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dDNESW50ZXJuYWw6OnJlc2hhcGUoCiAgICAgICAgIC8vIEZJWE1FOiBjbGVh
bnVwLgogICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIH0KLQotICAgIGlmIChtdXN0UmVz
dG9yZUZCTykKLSAgICAgICAgZ2xCaW5kRnJhbWVidWZmZXJFWFQoR0xfRlJBTUVCVUZGRVJfRVhU
LCBtX2JvdW5kRkJPKTsKICNlbmRpZiAgLy8gUkVOREVSX1RPX0RFQlVHR0lOR19XSU5ET1cKIAog
I2lmZGVmIEZMSVBfRlJBTUVCVUZGRVJfVkVSVElDQUxMWQpAQCAtNzk2LDEyICs3MDMsNyBAQCB2
b2lkIEdyYXBoaWNzQ29udGV4dDNESW50ZXJuYWw6OnJlc2hhcGUoCiAgICAgbV9zY2FubGluZSA9
IG5ldyB1bnNpZ25lZCBjaGFyW3dpZHRoICogNF07CiAjZW5kaWYgIC8vIEZMSVBfRlJBTUVCVUZG
RVJfVkVSVElDQUxMWQogCi0gICAgR0xiaXRmaWVsZCBjbGVhck1hc2sgPSBHTF9DT0xPUl9CVUZG
RVJfQklUOwotICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwpCi0gICAgICAgIGNsZWFyTWFzayB8PSBH
TF9TVEVOQ0lMX0JVRkZFUl9CSVQ7Ci0gICAgaWYgKG1fYXR0cnMuZGVwdGgpCi0gICAgICAgIGNs
ZWFyTWFzayB8PSBHTF9ERVBUSF9CVUZGRVJfQklUOwotICAgIGdsQ2xlYXIoY2xlYXJNYXNrKTsK
KyAgICBnbENsZWFyKEdMX0NPTE9SX0JVRkZFUl9CSVQpOwogCiAjaWYgUExBVEZPUk0oQ0cpCiAg
ICAgLy8gTmVlZCB0byByZWFsbG9jYXRlIHRoZSBjbGllbnQtc2lkZSBiYWNraW5nIHN0b3JlLgpA
QCAtODU2LDE5ICs3NTgsOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNESW50ZXJuYWw6OmJlZ2lu
UGFpCiAgICAgSFRNTENhbnZhc0VsZW1lbnQqIGNhbnZhcyA9IGNvbnRleHQtPmNhbnZhcygpOwog
ICAgIEltYWdlQnVmZmVyKiBpbWFnZUJ1ZmZlciA9IGNhbnZhcy0+YnVmZmVyKCk7CiAgICAgdW5z
aWduZWQgY2hhciogcGl4ZWxzID0gMDsKLSAgICBib29sIG11c3RSZXN0b3JlRkJPOwotICAgIGlm
IChtX2F0dHJzLmFudGlhbGlhcykgewotICAgICAgICBnbEJpbmRGcmFtZWJ1ZmZlckVYVChHTF9S
RUFEX0ZSQU1FQlVGRkVSX0VYVCwgbV9tdWx0aXNhbXBsZUZCTyk7Ci0gICAgICAgIGdsQmluZEZy
YW1lYnVmZmVyRVhUKEdMX0RSQVdfRlJBTUVCVUZGRVJfRVhULCBtX2Zibyk7Ci0gICAgICAgIGds
QmxpdEZyYW1lYnVmZmVyRVhUKDAsIDAsIG1fY2FjaGVkV2lkdGgsIG1fY2FjaGVkSGVpZ2h0LCAw
LCAwLCBtX2NhY2hlZFdpZHRoLCBtX2NhY2hlZEhlaWdodCwgR0xfQ09MT1JfQlVGRkVSX0JJVCwg
R0xfTElORUFSKTsKKyAgICBib29sIG11c3RSZXN0b3JlRkJPID0gKG1fYm91bmRGQk8gIT0gbV9m
Ym8pOworICAgIGlmIChtdXN0UmVzdG9yZUZCTykKICAgICAgICAgZ2xCaW5kRnJhbWVidWZmZXJF
WFQoR0xfRlJBTUVCVUZGRVJfRVhULCBtX2Zibyk7Ci0gICAgICAgIG11c3RSZXN0b3JlRkJPID0g
dHJ1ZTsKLSAgICB9IGVsc2UgewotICAgICAgICBpZiAobV9ib3VuZEZCTyAhPSBtX2Zibykgewot
ICAgICAgICAgICAgbXVzdFJlc3RvcmVGQk8gPSB0cnVlOwotICAgICAgICAgICAgZ2xCaW5kRnJh
bWVidWZmZXJFWFQoR0xfRlJBTUVCVUZGRVJfRVhULCBtX2Zibyk7Ci0gICAgICAgIH0KLSAgICB9
CiAjaWYgUExBVEZPUk0oU0tJQSkKICAgICBjb25zdCBTa0JpdG1hcCogY2FudmFzQml0bWFwID0g
aW1hZ2VCdWZmZXItPmNvbnRleHQoKS0+cGxhdGZvcm1Db250ZXh0KCktPmJpdG1hcCgpOwogICAg
IGNvbnN0IFNrQml0bWFwKiByZWFkYmFja0JpdG1hcCA9IDA7CkBAIC05NzMsMjMgKzg2NSw2IEBA
IHZvaWQgR3JhcGhpY3NDb250ZXh0M0RJbnRlcm5hbDo6YmVnaW5QYWkKICNlbmRpZiAgLy8gUkVO
REVSX1RPX0RFQlVHR0lOR19XSU5ET1cKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQzREludGVy
bmFsOjpyZWFkUGl4ZWxzKGxvbmcgeCwgbG9uZyB5LCB1bnNpZ25lZCBsb25nIHdpZHRoLCB1bnNp
Z25lZCBsb25nIGhlaWdodCwgdW5zaWduZWQgbG9uZyBmb3JtYXQsIHVuc2lnbmVkIGxvbmcgdHlw
ZSwgdm9pZCogYnVmZmVyKQotewotI2lmbmRlZiBSRU5ERVJfVE9fREVCVUdHSU5HX1dJTkRPVwot
ICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcyAmJiBtX2JvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVG
Qk8pIHsKLSAgICAgICAgZ2xCaW5kRnJhbWVidWZmZXJFWFQoR0xfUkVBRF9GUkFNRUJVRkZFUl9F
WFQsIG1fbXVsdGlzYW1wbGVGQk8pOwotICAgICAgICBnbEJpbmRGcmFtZWJ1ZmZlckVYVChHTF9E
UkFXX0ZSQU1FQlVGRkVSX0VYVCwgbV9mYm8pOwotICAgICAgICBnbEJsaXRGcmFtZWJ1ZmZlckVY
VCh4LCB5LCB4ICsgd2lkdGgsIHkgKyBoZWlnaHQsIHgsIHksIHggKyB3aWR0aCwgeSArIGhlaWdo
dCwgR0xfQ09MT1JfQlVGRkVSX0JJVCwgR0xfTElORUFSKTsKLSAgICAgICAgZ2xCaW5kRnJhbWVi
dWZmZXJFWFQoR0xfRlJBTUVCVUZGRVJfRVhULCBtX2Zibyk7Ci0gICAgfQotI2VuZGlmCi0gICAg
Z2xSZWFkUGl4ZWxzKHgsIHksIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgYnVmZmVyKTsK
LSNpZm5kZWYgUkVOREVSX1RPX0RFQlVHR0lOR19XSU5ET1cKLSAgICBpZiAobV9hdHRycy5hbnRp
YWxpYXMgJiYgbV9ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJPKQotICAgICAgICBnbEJpbmRG
cmFtZWJ1ZmZlckVYVChHTF9GUkFNRUJVRkZFUl9FWFQsIG1fYm91bmRGQk8pOwotI2VuZGlmCi19
Ci0KIHZvaWQgR3JhcGhpY3NDb250ZXh0M0RJbnRlcm5hbDo6YWN0aXZlVGV4dHVyZSh1bnNpZ25l
ZCBsb25nIHRleHR1cmUpCiB7CiAgICAgLy8gRklYTUU6IHF1ZXJ5IG51bWJlciBvZiB0ZXh0dXJl
cyBhdmFpbGFibGUuCkBAIC0xMDE3LDExICs4OTIsOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNE
SW50ZXJuYWw6OmJpbmRGcmFtCiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAgICAgR0x1aW50
IGlkID0gRVhUUkFDVChmcmFtZWJ1ZmZlcik7CiAgICAgaWYgKCFpZCkKLSAgICAgICAgaWQgPSAo
bV9hdHRycy5hbnRpYWxpYXMgPyBtX211bHRpc2FtcGxlRkJPIDogbV9mYm8pOwotICAgIGlmIChp
ZCAhPSBtX2JvdW5kRkJPKSB7Ci0gICAgICAgIGdsQmluZEZyYW1lYnVmZmVyRVhUKHRhcmdldCwg
aWQpOwotICAgICAgICBtX2JvdW5kRkJPID0gaWQ7Ci0gICAgfQorICAgICAgICBpZCA9IG1fZmJv
OworICAgIGdsQmluZEZyYW1lYnVmZmVyRVhUKHRhcmdldCwgaWQpOworICAgIG1fYm91bmRGQk8g
PSBpZDsKIH0KIAogLy8gSWYgd2UgZGlkbid0IGhhdmUgdG8gaGFjayBHTF9URVhUVVJFX1dSQVBf
UiBmb3IgY3ViZSBtYXBzLApAQCAtMTkzNiwxOCArMTgwOSw3IEBAIFBhc3NSZWZQdHI8V2ViR0xB
cnJheT4gR3JhcGhpY3NDb250ZXh0M0QKIAogICAgIC8vIEZJWE1FOiB0YWtlIGludG8gYWNjb3Vu
dCBwYWNrIGFsaWdubWVudC4KICAgICBSZWZQdHI8V2ViR0xVbnNpZ25lZEJ5dGVBcnJheT4gYXJy
YXkgPSBXZWJHTFVuc2lnbmVkQnl0ZUFycmF5OjpjcmVhdGUod2lkdGggKiBoZWlnaHQgKiA0KTsK
LSAgICBtX2ludGVybmFsLT5yZWFkUGl4ZWxzKHgsIHksIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwg
dHlwZSwgYXJyYXktPmJhc2VBZGRyZXNzKCkpOwotI2lmIE9TKERBUldJTikKLSAgICBHcmFwaGlj
c0NvbnRleHQzRDo6QXR0cmlidXRlcyBhdHRycyA9IG1faW50ZXJuYWwtPmdldENvbnRleHRBdHRy
aWJ1dGVzKCk7Ci0gICAgaWYgKCFhdHRycy5hbHBoYSkgewotICAgICAgICAvLyBJZiBhbHBoYSBp
cyBvZmYsIGJ5IGRlZmF1bHQgZ2xSZWFkUGl4ZWxzIHNob3VsZCBzZXQgdGhlIGFscGhhIHRvIDI1
NSBpbnN0ZWFkIG9mIDAuCi0gICAgICAgIC8vIFRoaXMgaXMgYSBoYWNrIHVudGlsIDo6Z2xSZWFk
UGl4ZWxzIGZpeGVzIGl0cyBiZWhhdmlvci4KLSAgICAgICAgR0x1Ynl0ZSogZGF0YSA9IHJlaW50
ZXJwcmV0X2Nhc3Q8R0x1Ynl0ZSo+KGFycmF5LT5iYXNlQWRkcmVzcygpKTsKLSAgICAgICAgdW5z
aWduZWQgYnl0ZUxlbmd0aCA9IGFycmF5LT5ieXRlTGVuZ3RoKCk7Ci0gICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDM7IGkgPCBieXRlTGVuZ3RoOyBpICs9IDQpCi0gICAgICAgICAgICBkYXRhW2ld
ID0gMjU1OwotICAgIH0KLSNlbmRpZgorICAgIGdsUmVhZFBpeGVscyh4LCB5LCB3aWR0aCwgaGVp
Z2h0LCBmb3JtYXQsIHR5cGUsIGFycmF5LT5iYXNlQWRkcmVzcygpKTsKICAgICByZXR1cm4gYXJy
YXk7CiB9CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDU2MTI0KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTAtMDMtMTcgIEtlbm5ldGgg
UnVzc2VsbCAgPGtickBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJldmVydCBXZWJHTCBjb250ZXh0IGF0dHJpYnV0ZXMgY2hhbmdl
cyAzMzQxNiAvIHI1NjA3NCBhbmQgMzYyMDAgLyByNTYwOTMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2MjMzCisKKyAgICAgICAgVGhlIHBhdGNoIGZv
ciBidWcgMzM0MTYsIHdoaWNoIGFkZGVkIG11bHRpc2FtcGxpbmcgc3VwcG9ydCB0byB0aGUKKyAg
ICAgICAgV2ViR0wgYmFjayBidWZmZXIsIHVuY292ZXJlZCBzb21lIE9wZW5HTCBkcml2ZXIgYnVn
cyBvbiB0aGUgYnVpbGQKKyAgICAgICAgYm90cyB3aGljaCBuZWVkIGZ1cnRoZXIgaW52ZXN0aWdh
dGlvbiB0byBkZXRlcm1pbmUgdGhlIGFwcHJvcHJpYXRlCisgICAgICAgIHdvcmthcm91bmQuIFJl
dmVydGluZyB0aGlzIGNoYW5nZSwgdGhlIG1pbm9yIGJ1aWxkIGZpeCBpbiAzNjE4OSwKKyAgICAg
ICAgYW5kIHRoZSBza2lwcGluZyBvZiB0aGUgYWZmZWN0ZWQgdGVzdHMgaW4gYnVnIDM2MjAwLgor
CisgICAgICAgIEJ1aWx0IGFuZCB0ZXN0ZWQgV2ViS2l0IGFuZCBDaHJvbWl1bSBhbmQgcmFuIGFs
bCBXZWJHTCBsYXlvdXQKKyAgICAgICAgdGVzdHMgaW4gYm90aC4KKworICAgICAgICAqIGZhc3Qv
Y2FudmFzL3dlYmdsL2NvbnRleHQtYXR0cmlidXRlcy1hbHBoYS1kZXB0aC1zdGVuY2lsLWFudGlh
bGlhcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wv
Y29udGV4dC1hdHRyaWJ1dGVzLWFscGhhLWRlcHRoLXN0ZW5jaWwtYW50aWFsaWFzLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvY29udGV4dC1hdHRyaWJ1dGVzLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9jb250ZXh0LWF0dHJpYnV0
ZXMuaHRtbDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9nbC1nZXQtY2FsbHMtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2dsLWdldC1jYWxscy5odG1sOgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOgorCiAyMDEwLTAzLTE3ICBBbGV4ZXkgUHJv
c2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBw
ZWQ6IEFsc28sIHJlc2l6ZS1mcm9tLXBsdWdpbi5odG1sIGdvdCBza2lwcGVkIHR3aWNlIHRvbmln
aHQsIHJlbW92aW5nCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9jb250ZXh0
LWF0dHJpYnV0ZXMtYWxwaGEtZGVwdGgtc3RlbmNpbC1hbnRpYWxpYXMtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2NvbnRleHQtYXR0cmli
dXRlcy1hbHBoYS1kZXB0aC1zdGVuY2lsLWFudGlhbGlhcy1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDU2MTI0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY29udGV4dC1hdHRyaWJ1
dGVzLWFscGhhLWRlcHRoLXN0ZW5jaWwtYW50aWFsaWFzLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMSw4MiArMCwwIEBACi0gICAgICAgCi1WZXJpZnkgV2ViR0xDb250ZXh0QXR0cmli
dXRlcyBhcmUgd29ya2luZyBhcyBzcGVjaWZpZWQsIGluY2x1ZGluZyBhbHBoYSwgZGVwdGgsIHN0
ZW5jaWwsIGFudGlhbGlhcywgYnV0IG5vdCBwcmVtdWx0aXBsaWVkQWxwaGEKLQotT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgotCi1SZWdyZXNzaW9uIHRlc3QgZm9yIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMzQxNiA6IEhvb2sgdXAgV2ViR0xDb250ZXh0QXR0cmli
dXRlcyB0byBPcGVuR0wgY29udGV4dCBjcmVhdGlvbiBjb2RlCi1UZXN0aW5nIGFscGhhID0gdHJ1
ZQotUEFTUyB3ZWJHTCA9IGdldFdlYkdMKCdhbHBoYU9uJywgeyBhbHBoYTogdHJ1ZSwgZGVwdGg6
IGZhbHNlLCBzdGVuY2lsOiBmYWxzZSwgYW50aWFsaWFzOiBmYWxzZSB9LCBbIDAsIDAsIDAsIDAg
XSwgMSwgMCkgaXMgbm9uLW51bGwuCi1QQVNTIGNvbnRleHRBdHRyaWJzID0gd2ViR0wuZ2V0Q29u
dGV4dEF0dHJpYnV0ZXMoKSBpcyBub24tbnVsbC4KLVBBU1MgY29udGV4dEF0dHJpYnMuYWxwaGEg
aXMgdHJ1ZQotUEFTUyBjb250ZXh0QXR0cmlicy5kZXB0aCBpcyBmYWxzZQotUEFTUyBjb250ZXh0
QXR0cmlicy5zdGVuY2lsIGlzIGZhbHNlCi1QQVNTIGNvbnRleHRBdHRyaWJzLmFudGlhbGlhcyBp
cyBmYWxzZQotUEFTUyBjb250ZXh0QXR0cmlicy5wcmVtdWx0aXBsaWVkQWxwaGEgaXMgdHJ1ZQot
UEFTUyBwaXhlbCBpcyBjb3JyZWN0Q29sb3IKLVRlc3RpbmcgYWxwaGEgPSBmYWxzZQotUEFTUyB3
ZWJHTCA9IGdldFdlYkdMKCdhbHBoYU9mZicsIHsgYWxwaGE6IGZhbHNlLCBkZXB0aDogZmFsc2Us
IHN0ZW5jaWw6IGZhbHNlLCBhbnRpYWxpYXM6IGZhbHNlIH0sIFsgMCwgMCwgMCwgMCBdLCAxLCAw
KSBpcyBub24tbnVsbC4KLVBBU1MgY29udGV4dEF0dHJpYnMgPSB3ZWJHTC5nZXRDb250ZXh0QXR0
cmlidXRlcygpIGlzIG5vbi1udWxsLgotUEFTUyBjb250ZXh0QXR0cmlicy5hbHBoYSBpcyBmYWxz
ZQotUEFTUyBjb250ZXh0QXR0cmlicy5kZXB0aCBpcyBmYWxzZQotUEFTUyBjb250ZXh0QXR0cmli
cy5zdGVuY2lsIGlzIGZhbHNlCi1QQVNTIGNvbnRleHRBdHRyaWJzLmFudGlhbGlhcyBpcyBmYWxz
ZQotUEFTUyBjb250ZXh0QXR0cmlicy5wcmVtdWx0aXBsaWVkQWxwaGEgaXMgdHJ1ZQotUEFTUyBw
aXhlbCBpcyBjb3JyZWN0Q29sb3IKLVRlc3RpbmcgZGVwdGggPSB0cnVlCi1QQVNTIHdlYkdMID0g
Z2V0V2ViR0woJ2RlcHRoT24nLCB7IHN0ZW5jaWw6IGZhbHNlLCBhbnRpYWxpYXM6IGZhbHNlIH0s
IFsgMCwgMCwgMCwgMSBdLCAxLCAwKSBpcyBub24tbnVsbC4KLVBBU1MgY29udGV4dEF0dHJpYnMg
PSB3ZWJHTC5nZXRDb250ZXh0QXR0cmlidXRlcygpIGlzIG5vbi1udWxsLgotUEFTUyBjb250ZXh0
QXR0cmlicy5kZXB0aCBpcyB0cnVlCi1QQVNTIGNvbnRleHRBdHRyaWJzLmFscGhhIGlzIHRydWUK
LVBBU1MgY29udGV4dEF0dHJpYnMuc3RlbmNpbCBpcyBmYWxzZQotUEFTUyBjb250ZXh0QXR0cmli
cy5hbnRpYWxpYXMgaXMgZmFsc2UKLVBBU1MgY29udGV4dEF0dHJpYnMucHJlbXVsdGlwbGllZEFs
cGhhIGlzIHRydWUKLVBBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCi1UZXN0aW5nIGRlcHRoID0g
ZmFsc2UKLVBBU1Mgd2ViR0wgPSBnZXRXZWJHTCgnZGVwdGhPZmYnLCB7IGRlcHRoOiBmYWxzZSwg
c3RlbmNpbDogZmFsc2UsIGFudGlhbGlhczogZmFsc2UgfSwgWyAwLCAwLCAwLCAxIF0sIDEsIDAp
IGlzIG5vbi1udWxsLgotUEFTUyBjb250ZXh0QXR0cmlicyA9IHdlYkdMLmdldENvbnRleHRBdHRy
aWJ1dGVzKCkgaXMgbm9uLW51bGwuCi1QQVNTIGNvbnRleHRBdHRyaWJzLmRlcHRoIGlzIGZhbHNl
Ci1QQVNTIGNvbnRleHRBdHRyaWJzLmFscGhhIGlzIHRydWUKLVBBU1MgY29udGV4dEF0dHJpYnMu
c3RlbmNpbCBpcyBmYWxzZQotUEFTUyBjb250ZXh0QXR0cmlicy5hbnRpYWxpYXMgaXMgZmFsc2UK
LVBBU1MgY29udGV4dEF0dHJpYnMucHJlbXVsdGlwbGllZEFscGhhIGlzIHRydWUKLVBBU1MgcGl4
ZWwgaXMgY29ycmVjdENvbG9yCi1UZXN0aW5nIHN0ZW5jaWwgPSB0cnVlCi1QQVNTIHdlYkdMID0g
Z2V0V2ViR0woJ3N0ZW5jaWxPbicsIHsgZGVwdGg6IGZhbHNlLCBzdGVuY2lsOiB0cnVlLCBhbnRp
YWxpYXM6IGZhbHNlIH0sIFsgMCwgMCwgMCwgMSBdLCAxLCAwKSBpcyBub24tbnVsbC4KLVBBU1Mg
Y29udGV4dEF0dHJpYnMgPSB3ZWJHTC5nZXRDb250ZXh0QXR0cmlidXRlcygpIGlzIG5vbi1udWxs
LgotUEFTUyBjb250ZXh0QXR0cmlicy5kZXB0aCBpcyB0cnVlCi1QQVNTIGNvbnRleHRBdHRyaWJz
LnN0ZW5jaWwgaXMgdHJ1ZQotUEFTUyBjb250ZXh0QXR0cmlicy5hbHBoYSBpcyB0cnVlCi1QQVNT
IGNvbnRleHRBdHRyaWJzLmFudGlhbGlhcyBpcyBmYWxzZQotUEFTUyBjb250ZXh0QXR0cmlicy5w
cmVtdWx0aXBsaWVkQWxwaGEgaXMgdHJ1ZQotUEFTUyBwaXhlbCBpcyBjb3JyZWN0Q29sb3IKLVRl
c3Rpbmcgc3RlbmNpbCA9IGZhbHNlCi1QQVNTIHdlYkdMID0gZ2V0V2ViR0woJ3N0ZW5jaWxPZmYn
LCB7IGRlcHRoOiBmYWxzZSwgc3RlbmNpbDogZmFsc2UsIGFudGlhbGlhczogZmFsc2UgfSwgWyAw
LCAwLCAwLCAxIF0sIDEsIDApIGlzIG5vbi1udWxsLgotUEFTUyBjb250ZXh0QXR0cmlicyA9IHdl
YkdMLmdldENvbnRleHRBdHRyaWJ1dGVzKCkgaXMgbm9uLW51bGwuCi1QQVNTIGNvbnRleHRBdHRy
aWJzLmRlcHRoIGlzIGZhbHNlCi1QQVNTIGNvbnRleHRBdHRyaWJzLnN0ZW5jaWwgaXMgZmFsc2UK
LVBBU1MgY29udGV4dEF0dHJpYnMuYWxwaGEgaXMgdHJ1ZQotUEFTUyBjb250ZXh0QXR0cmlicy5h
bnRpYWxpYXMgaXMgZmFsc2UKLVBBU1MgY29udGV4dEF0dHJpYnMucHJlbXVsdGlwbGllZEFscGhh
IGlzIHRydWUKLVBBU1MgcGl4ZWwgaXMgY29ycmVjdENvbG9yCi1UZXN0aW5nIGFudGlhbGlhcyA9
IHRydWUKLVBBU1Mgd2ViR0wgPSBnZXRXZWJHTCgnYW50aWFsaWFzT24nLCB7IGRlcHRoOiBmYWxz
ZSwgc3RlbmNpbDogZmFsc2UsIGFscGhhOiBmYWxzZSwgYW50aWFsaWFzOiB0cnVlIH0sIFsgMCwg
MCwgMCwgMSBdLCAxLCAwKSBpcyBub24tbnVsbC4KLVBBU1MgY29udGV4dEF0dHJpYnMgPSB3ZWJH
TC5nZXRDb250ZXh0QXR0cmlidXRlcygpIGlzIG5vbi1udWxsLgotUEFTUyBjb250ZXh0QXR0cmli
cy5kZXB0aCBpcyBmYWxzZQotUEFTUyBjb250ZXh0QXR0cmlicy5zdGVuY2lsIGlzIGZhbHNlCi1Q
QVNTIGNvbnRleHRBdHRyaWJzLmFscGhhIGlzIGZhbHNlCi1QQVNTIGNvbnRleHRBdHRyaWJzLmFu
dGlhbGlhcyBpcyB0cnVlCi1QQVNTIGNvbnRleHRBdHRyaWJzLnByZW11bHRpcGxpZWRBbHBoYSBp
cyB0cnVlCi1QQVNTIHBpeGVsWzBdID09IDI1NSB8fCBwaXhlbFswXSA9PSAwIGlzIGZhbHNlCi1U
ZXN0aW5nIGFudGlhbGlhcyA9IGZhbHNlCi1QQVNTIHdlYkdMID0gZ2V0V2ViR0woJ2FudGlhbGlh
c09mZicsIHsgZGVwdGg6IGZhbHNlLCBzdGVuY2lsOiBmYWxzZSwgYWxwaGE6IGZhbHNlLCBhbnRp
YWxpYXM6IGZhbHNlIH0sIFsgMCwgMCwgMCwgMSBdLCAxLCAwKSBpcyBub24tbnVsbC4KLVBBU1Mg
Y29udGV4dEF0dHJpYnMgPSB3ZWJHTC5nZXRDb250ZXh0QXR0cmlidXRlcygpIGlzIG5vbi1udWxs
LgotUEFTUyBjb250ZXh0QXR0cmlicy5kZXB0aCBpcyBmYWxzZQotUEFTUyBjb250ZXh0QXR0cmli
cy5zdGVuY2lsIGlzIGZhbHNlCi1QQVNTIGNvbnRleHRBdHRyaWJzLmFscGhhIGlzIGZhbHNlCi1Q
QVNTIGNvbnRleHRBdHRyaWJzLmFudGlhbGlhcyBpcyBmYWxzZQotUEFTUyBjb250ZXh0QXR0cmli
cy5wcmVtdWx0aXBsaWVkQWxwaGEgaXMgdHJ1ZQotUEFTUyBwaXhlbFswXSA9PSAyNTUgfHwgcGl4
ZWxbMF0gPT0gMCBpcyB0cnVlCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRF
U1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY29udGV4
dC1hdHRyaWJ1dGVzLWFscGhhLWRlcHRoLXN0ZW5jaWwtYW50aWFsaWFzLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY29udGV4dC1hdHRyaWJ1dGVzLWFs
cGhhLWRlcHRoLXN0ZW5jaWwtYW50aWFsaWFzLmh0bWwJKHJldmlzaW9uIDU2MTI0KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY29udGV4dC1hdHRyaWJ1dGVzLWFscGhhLWRlcHRo
LXN0ZW5jaWwtYW50aWFsaWFzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMzA3ICswLDAgQEAK
LTxodG1sPgotPGhlYWQ+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dl
YmdsLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsczNkLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgaWQ9InZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4
Ij4KLWF0dHJpYnV0ZSB2ZWMzIHBvczsKLWF0dHJpYnV0ZSB2ZWM0IGNvbG9ySW47Ci12YXJ5aW5n
IHZlYzQgY29sb3I7Ci0KLXZvaWQgbWFpbigpCi17Ci0gICAgY29sb3IgPSBjb2xvckluOwotICAg
IGdsX1Bvc2l0aW9uID0gdmVjNChwb3MueHl6LCAxLjApOwotfQotPC9zY3JpcHQ+Ci0KLTxzY3Jp
cHQgaWQ9ImZzaGFkZXIiIHR5cGU9Ingtc2hhZGVyL3gtZnJhZ21lbnQiPgotdmFyeWluZyB2ZWM0
IGNvbG9yOwotCi12b2lkIG1haW4oKQotewotICAgIGdsX0ZyYWdDb2xvciA9IGNvbG9yOwotfQot
PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gZmFsc2U7Ci0K
LS8vIFRoZXNlIGZvdXIgZGVjbGFyYXRpb25zIG5lZWQgdG8gYmUgZ2xvYmFsIGZvciAic2hvdWxk
QmUiIHRvIHNlZSB0aGVtCi12YXIgd2ViR0wgPSBudWxsOwotdmFyIGNvbnRleHRBdHRyaWJzID0g
bnVsbDsKLXZhciBwaXhlbCA9IFswLCAwLCAwLCAxXTsKLXZhciBjb3JyZWN0Q29sb3IgPSBudWxs
OwotCi1mdW5jdGlvbiBpbml0KCkKLXsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgi
V2ViS2l0V2ViR0xFbmFibGVkIiwgIjEiKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7Ci0gICAgfQotCi0gICAgZGVzY3JpcHRpb24oJ1ZlcmlmeSBXZWJHTENvbnRleHRBdHRyaWJ1
dGVzIGFyZSB3b3JraW5nIGFzIHNwZWNpZmllZCwgaW5jbHVkaW5nIGFscGhhLCBkZXB0aCwgc3Rl
bmNpbCwgYW50aWFsaWFzLCBidXQgbm90IHByZW11bHRpcGxpZWRBbHBoYScpOwotCi0gICAgZGVi
dWcoJ1JlZ3Jlc3Npb24gdGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTMzNDE2Ij5odHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzM0MTY8L2E+IDogPGNvZGU+SG9vayB1cCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzIHRv
IE9wZW5HTCBjb250ZXh0IGNyZWF0aW9uIGNvZGU8L2NvZGU+Jyk7Ci0gICAgCi0gICAgcnVuVGVz
dCgpOwotfQotCi1mdW5jdGlvbiBnZXRXZWJHTChjYW52YXNOYW1lLCBjb250ZXh0QXR0cmlicywg
Y2xlYXJDb2xvciwgY2xlYXJEZXB0aCwgY2xlYXJTdGVuY2lsKQotewotICAgIHZhciBjYW52YXMg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChjYW52YXNOYW1lKTsKLSAgICB2YXIgZ2wgPSBjYW52
YXMuZ2V0Q29udGV4dCgiZXhwZXJpbWVudGFsLXdlYmdsIiwgY29udGV4dEF0dHJpYnMpOwotICAg
IGlmICghZ2wpIHsKLSAgICAgICAgYWxlcnQoIk5vIFdlYkdMIGNvbnRleHQgZm91bmQiKTsKLSAg
ICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotICAgIHZhciBhY3R1YWxDb250ZXh0QXR0cmlicyA9
IGdsLmdldENvbnRleHRBdHRyaWJ1dGVzKCk7Ci0gICAgCi0gICAgLy8gQWRkIGEgY29uc29sZQot
ICAgIGdsLmNvbnNvbGUgPSAoImNvbnNvbGUiIGluIHdpbmRvdykgPyB3aW5kb3cuY29uc29sZSA6
IHsgbG9nOiBmdW5jdGlvbigpIHsgfSB9OwotCi0gICAgLy8gY3JlYXRlIG91ciBzaGFkZXJzCi0g
ICAgdmFyIHZlcnRleFNoYWRlciA9IGxvYWRTaGFkZXIoZ2wsICJ2c2hhZGVyIik7Ci0gICAgdmFy
IGZyYWdtZW50U2hhZGVyID0gbG9hZFNoYWRlcihnbCwgImZzaGFkZXIiKTsKLQotICAgIGlmICgh
dmVydGV4U2hhZGVyIHx8ICFmcmFnbWVudFNoYWRlcikKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0K
LSAgICAvLyBDcmVhdGUgdGhlIHByb2dyYW0gb2JqZWN0Ci0gICAgZ2wucHJvZ3JhbSA9IGdsLmNy
ZWF0ZVByb2dyYW0oKTsKLQotICAgIGlmICghZ2wucHJvZ3JhbSkKLSAgICAgICAgcmV0dXJuIG51
bGw7Ci0KLSAgICAvLyBBdHRhY2ggb3VyIHR3byBzaGFkZXJzIHRvIHRoZSBwcm9ncmFtCi0gICAg
Z2wuYXR0YWNoU2hhZGVyKGdsLnByb2dyYW0sIHZlcnRleFNoYWRlcik7Ci0gICAgZ2wuYXR0YWNo
U2hhZGVyKGdsLnByb2dyYW0sIGZyYWdtZW50U2hhZGVyKTsKLQotICAgIC8vIEJpbmQgYXR0cmli
dXRlcwotICAgIHZhciBhdHRyaWJzID0gWyAicG9zIiwgImNvbG9ySW4iIF07Ci0gICAgZm9yICh2
YXIgaSBpbiBhdHRyaWJzKQotICAgICAgICBnbC5iaW5kQXR0cmliTG9jYXRpb24oZ2wucHJvZ3Jh
bSwgaSwgYXR0cmlic1tpXSk7Ci0KLSAgICAvLyBMaW5rIHRoZSBwcm9ncmFtCi0gICAgZ2wubGlu
a1Byb2dyYW0oZ2wucHJvZ3JhbSk7Ci0KLSAgICAvLyBDaGVjayB0aGUgbGluayBzdGF0dXMKLSAg
ICB2YXIgbGlua2VkID0gZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihnbC5wcm9ncmFtLCBnbC5MSU5L
X1NUQVRVUyk7Ci0gICAgaWYgKCFsaW5rZWQpIHsKLSAgICAgICAgLy8gc29tZXRoaW5nIHdlbnQg
d3Jvbmcgd2l0aCB0aGUgbGluawotICAgICAgICB2YXIgZXJyb3IgPSBnbC5nZXRQcm9ncmFtSW5m
b0xvZyAoZ2wucHJvZ3JhbSk7Ci0gICAgICAgIGdsLmNvbnNvbGUubG9nKCJFcnJvciBpbiBwcm9n
cmFtIGxpbmtpbmc6IitlcnJvcik7Ci0KLSAgICAgICAgZ2wuZGVsZXRlUHJvZ3JhbShnbC5wcm9n
cmFtKTsKLSAgICAgICAgZ2wuZGVsZXRlUHJvZ3JhbShmcmFnbWVudFNoYWRlcik7Ci0gICAgICAg
IGdsLmRlbGV0ZVByb2dyYW0odmVydGV4U2hhZGVyKTsKLQotICAgICAgICByZXR1cm4gbnVsbDsK
LSAgICB9Ci0KLSAgICBnbC51c2VQcm9ncmFtKGdsLnByb2dyYW0pOwotCi0gICAgZ2wuY2xlYXJD
b2xvcihjbGVhckNvbG9yWzBdLCBjbGVhckNvbG9yWzFdLCBjbGVhckNvbG9yWzJdLCBjbGVhckNv
bG9yWzNdKTsKLSAgICBnbC5jbGVhckRlcHRoKGNsZWFyRGVwdGgpOwotICAgIGdsLmNsZWFyU3Rl
bmNpbChjbGVhclN0ZW5jaWwpOwotICAgIGdsLmVuYWJsZShnbC5ERVBUSF9URVNUKTsKLSAgICBn
bC5lbmFibGUoZ2wuU1RFTkNJTF9URVNUKTsKLSAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJf
QklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCB8IGdsLlNURU5DSUxfQlVGRkVSX0JJVCk7Ci0KLSAg
ICByZXR1cm4gZ2w7Ci19Ci0KLWZ1bmN0aW9uIGRyYXdBbmRSZWFkUGl4ZWwoZ2wsIHZlcnRpY2Vz
LCBjb2xvcnMsIHgsIHkpCi17Ci0gICAgdmFyIGNvbG9yT2Zmc2V0ID0gdmVydGljZXMuYnl0ZUxl
bmd0aDsKLQotICAgIHZhciB2Ym8gPSBnbC5jcmVhdGVCdWZmZXIoKTsKLSAgICBnbC5iaW5kQnVm
ZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmJvKTsKLSAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JV
RkZFUiwgY29sb3JPZmZzZXQgKyBjb2xvcnMuYnl0ZUxlbmd0aCwgZ2wuU1RBVElDX0RSQVcpOwot
ICAgIGdsLmJ1ZmZlclN1YkRhdGEoZ2wuQVJSQVlfQlVGRkVSLCAwLCB2ZXJ0aWNlcyk7Ci0gICAg
Z2wuYnVmZmVyU3ViRGF0YShnbC5BUlJBWV9CVUZGRVIsIGNvbG9yT2Zmc2V0LCBjb2xvcnMpOwot
Ci0gICAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigwLCAzLCBnbC5GTE9BVCwgZmFsc2UsIDAsIDAp
OwotICAgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KDApOwotICAgIGdsLnZlcnRleEF0dHJp
YlBvaW50ZXIoMSwgNCwgZ2wuVU5TSUdORURfQllURSwgdHJ1ZSwgMCwgY29sb3JPZmZzZXQpOwot
ICAgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KDEpOwotCi0gICAgZ2wuZHJhd0FycmF5cyhn
bC5UUklBTkdMRVMsIDAsIHZlcnRpY2VzLmxlbmd0aCAvIDMpOwotCi0gICAgcmV0dXJuIGdsLnJl
YWRQaXhlbHMoeCwgeSwgMSwgMSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSk7Ci19Ci0KLWZ1
bmN0aW9uIHRlc3RBbHBoYShhbHBoYSkKLXsKLSAgICBkZWJ1ZygiVGVzdGluZyBhbHBoYSA9ICIg
KyBhbHBoYSk7Ci0gICAgaWYgKGFscGhhKQotICAgICAgICBzaG91bGRCZU5vbk51bGwoIndlYkdM
ID0gZ2V0V2ViR0woJ2FscGhhT24nLCB7IGFscGhhOiB0cnVlLCBkZXB0aDogZmFsc2UsIHN0ZW5j
aWw6IGZhbHNlLCBhbnRpYWxpYXM6IGZhbHNlIH0sIFsgMCwgMCwgMCwgMCBdLCAxLCAwKSIpOwot
ICAgIGVsc2UKLSAgICAgICAgc2hvdWxkQmVOb25OdWxsKCJ3ZWJHTCA9IGdldFdlYkdMKCdhbHBo
YU9mZicsIHsgYWxwaGE6IGZhbHNlLCBkZXB0aDogZmFsc2UsIHN0ZW5jaWw6IGZhbHNlLCBhbnRp
YWxpYXM6IGZhbHNlIH0sIFsgMCwgMCwgMCwgMCBdLCAxLCAwKSIpOwotICAgIHNob3VsZEJlTm9u
TnVsbCgiY29udGV4dEF0dHJpYnMgPSB3ZWJHTC5nZXRDb250ZXh0QXR0cmlidXRlcygpIik7Ci0g
ICAgc2hvdWxkQmUoImNvbnRleHRBdHRyaWJzLmFscGhhIiwgKGFscGhhID8gInRydWUiIDogImZh
bHNlIikpOwotICAgIHNob3VsZEJlKCJjb250ZXh0QXR0cmlicy5kZXB0aCIsICJmYWxzZSIpOwot
ICAgIHNob3VsZEJlKCJjb250ZXh0QXR0cmlicy5zdGVuY2lsIiwgImZhbHNlIik7Ci0gICAgc2hv
dWxkQmUoImNvbnRleHRBdHRyaWJzLmFudGlhbGlhcyIsICJmYWxzZSIpOwotICAgIHNob3VsZEJl
KCJjb250ZXh0QXR0cmlicy5wcmVtdWx0aXBsaWVkQWxwaGEiLCAidHJ1ZSIpOwotCi0gICAgdmFy
IGJ1ZiA9IHdlYkdMLnJlYWRQaXhlbHMoMCwgMCwgMSwgMSwgd2ViR0wuUkdCQSwgd2ViR0wuVU5T
SUdORURfQllURSk7Ci0gICAgcGl4ZWxbMF0gPSBidWZbMF07Ci0gICAgcGl4ZWxbMV0gPSBidWZb
MV07Ci0gICAgcGl4ZWxbMl0gPSBidWZbMl07Ci0gICAgcGl4ZWxbM10gPSBidWZbM107Ci0gICAg
Y29ycmVjdENvbG9yID0gKGFscGhhID8gWzAsIDAsIDAsIDBdIDogWzAsIDAsIDAsIDI1NV0pOwot
ICAgIHNob3VsZEJlKCJwaXhlbCIsICJjb3JyZWN0Q29sb3IiKTsKLX0KLQotZnVuY3Rpb24gdGVz
dERlcHRoKGRlcHRoKQotewotICAgIGRlYnVnKCJUZXN0aW5nIGRlcHRoID0gIiArIGRlcHRoKTsK
LSAgICBpZiAoZGVwdGgpCi0gICAgICAgIHNob3VsZEJlTm9uTnVsbCgid2ViR0wgPSBnZXRXZWJH
TCgnZGVwdGhPbicsIHsgc3RlbmNpbDogZmFsc2UsIGFudGlhbGlhczogZmFsc2UgfSwgWyAwLCAw
LCAwLCAxIF0sIDEsIDApIik7Ci0gICAgZWxzZQotICAgICAgICBzaG91bGRCZU5vbk51bGwoIndl
YkdMID0gZ2V0V2ViR0woJ2RlcHRoT2ZmJywgeyBkZXB0aDogZmFsc2UsIHN0ZW5jaWw6IGZhbHNl
LCBhbnRpYWxpYXM6IGZhbHNlIH0sIFsgMCwgMCwgMCwgMSBdLCAxLCAwKSIpOwotICAgIHNob3Vs
ZEJlTm9uTnVsbCgiY29udGV4dEF0dHJpYnMgPSB3ZWJHTC5nZXRDb250ZXh0QXR0cmlidXRlcygp
Iik7Ci0gICAgc2hvdWxkQmUoImNvbnRleHRBdHRyaWJzLmRlcHRoIiwgKGRlcHRoID8gInRydWUi
IDogImZhbHNlIikpOwotICAgIHNob3VsZEJlKCJjb250ZXh0QXR0cmlicy5hbHBoYSIsICJ0cnVl
Iik7Ci0gICAgc2hvdWxkQmUoImNvbnRleHRBdHRyaWJzLnN0ZW5jaWwiLCAiZmFsc2UiKTsKLSAg
ICBzaG91bGRCZSgiY29udGV4dEF0dHJpYnMuYW50aWFsaWFzIiwgImZhbHNlIik7Ci0gICAgc2hv
dWxkQmUoImNvbnRleHRBdHRyaWJzLnByZW11bHRpcGxpZWRBbHBoYSIsICJ0cnVlIik7Ci0KLSAg
ICB3ZWJHTC5kZXB0aEZ1bmMod2ViR0wuTkVWRVIpOwotCi0gICAgdmFyIHZlcnRpY2VzID0gbmV3
IFdlYkdMRmxvYXRBcnJheShbCi0gICAgICAgICAxLjAsICAxLjAsIDAuMCwKLSAgICAgICAgLTEu
MCwgIDEuMCwgMC4wLAotICAgICAgICAtMS4wLCAtMS4wLCAwLjAsCi0gICAgICAgICAxLjAsICAx
LjAsIDAuMCwKLSAgICAgICAgLTEuMCwgLTEuMCwgMC4wLAotICAgICAgICAgMS4wLCAtMS4wLCAw
LjBdKTsKLSAgICB2YXIgY29sb3JzID0gbmV3IFdlYkdMVW5zaWduZWRCeXRlQXJyYXkoWwotICAg
ICAgICAyNTUsIDAsIDAsIDI1NSwKLSAgICAgICAgMjU1LCAwLCAwLCAyNTUsCi0gICAgICAgIDI1
NSwgMCwgMCwgMjU1LAotICAgICAgICAyNTUsIDAsIDAsIDI1NSwKLSAgICAgICAgMjU1LCAwLCAw
LCAyNTUsCi0gICAgICAgIDI1NSwgMCwgMCwgMjU1XSk7Ci0KLSAgICB2YXIgYnVmID0gZHJhd0Fu
ZFJlYWRQaXhlbCh3ZWJHTCwgdmVydGljZXMsIGNvbG9ycywgMCwgMCk7Ci0gICAgcGl4ZWxbMF0g
PSBidWZbMF07Ci0gICAgcGl4ZWxbMV0gPSBidWZbMV07Ci0gICAgcGl4ZWxbMl0gPSBidWZbMl07
Ci0gICAgcGl4ZWxbM10gPSBidWZbM107Ci0gICAgY29ycmVjdENvbG9yID0gKGRlcHRoID8gWzAs
IDAsIDAsIDI1NV0gOiBbMjU1LCAwLCAwLCAyNTVdKTsKLSAgICBzaG91bGRCZSgicGl4ZWwiLCAi
Y29ycmVjdENvbG9yIik7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RTdGVuY2lsKHN0ZW5jaWwpCi17Ci0g
ICAgZGVidWcoIlRlc3Rpbmcgc3RlbmNpbCA9ICIgKyBzdGVuY2lsKTsKLSAgICBpZiAoc3RlbmNp
bCkKLSAgICAgICAgc2hvdWxkQmVOb25OdWxsKCJ3ZWJHTCA9IGdldFdlYkdMKCdzdGVuY2lsT24n
LCB7IGRlcHRoOiBmYWxzZSwgc3RlbmNpbDogdHJ1ZSwgYW50aWFsaWFzOiBmYWxzZSB9LCBbIDAs
IDAsIDAsIDEgXSwgMSwgMCkiKTsKLSAgICBlbHNlCi0gICAgICAgIHNob3VsZEJlTm9uTnVsbCgi
d2ViR0wgPSBnZXRXZWJHTCgnc3RlbmNpbE9mZicsIHsgZGVwdGg6IGZhbHNlLCBzdGVuY2lsOiBm
YWxzZSwgYW50aWFsaWFzOiBmYWxzZSB9LCBbIDAsIDAsIDAsIDEgXSwgMSwgMCkiKTsKLSAgICBz
aG91bGRCZU5vbk51bGwoImNvbnRleHRBdHRyaWJzID0gd2ViR0wuZ2V0Q29udGV4dEF0dHJpYnV0
ZXMoKSIpOwotICAgIHNob3VsZEJlKCJjb250ZXh0QXR0cmlicy5kZXB0aCIsIChzdGVuY2lsID8g
InRydWUiIDogImZhbHNlIikpOwotICAgIHNob3VsZEJlKCJjb250ZXh0QXR0cmlicy5zdGVuY2ls
IiwgKHN0ZW5jaWwgPyAidHJ1ZSIgOiAiZmFsc2UiKSk7Ci0gICAgc2hvdWxkQmUoImNvbnRleHRB
dHRyaWJzLmFscGhhIiwgInRydWUiKTsKLSAgICBzaG91bGRCZSgiY29udGV4dEF0dHJpYnMuYW50
aWFsaWFzIiwgImZhbHNlIik7Ci0gICAgc2hvdWxkQmUoImNvbnRleHRBdHRyaWJzLnByZW11bHRp
cGxpZWRBbHBoYSIsICJ0cnVlIik7Ci0KLSAgICB3ZWJHTC5kZXB0aEZ1bmMod2ViR0wuQUxXQVlT
KTsKLQotICAgIHdlYkdMLnN0ZW5jaWxGdW5jKHdlYkdMLk5FVkVSLCAxLCAxKTsKLSAgICB3ZWJH
TC5zdGVuY2lsT3Aod2ViR0wuS0VFUCwgd2ViR0wuS0VFUCwgd2ViR0wuS0VFUCk7Ci0KLSAgICB2
YXIgdmVydGljZXMgPSBuZXcgV2ViR0xGbG9hdEFycmF5KFsKLSAgICAgICAgIDEuMCwgMS4wLCAw
LjAsCi0gICAgICAgIC0xLjAsIDEuMCwgMC4wLAotICAgICAgICAtMS4wLCAtMS4wLCAwLjAsCi0g
ICAgICAgICAxLjAsIDEuMCwgMC4wLAotICAgICAgICAtMS4wLCAtMS4wLCAwLjAsCi0gICAgICAg
ICAxLjAsIC0xLjAsIDAuMF0pOwotICAgIHZhciBjb2xvcnMgPSBuZXcgV2ViR0xVbnNpZ25lZEJ5
dGVBcnJheShbCi0gICAgICAgIDI1NSwgMCwgMCwgMjU1LAotICAgICAgICAyNTUsIDAsIDAsIDI1
NSwKLSAgICAgICAgMjU1LCAwLCAwLCAyNTUsCi0gICAgICAgIDI1NSwgMCwgMCwgMjU1LAotICAg
ICAgICAyNTUsIDAsIDAsIDI1NSwKLSAgICAgICAgMjU1LCAwLCAwLCAyNTVdKTsKLQotICAgIHZh
ciBidWYgPSBkcmF3QW5kUmVhZFBpeGVsKHdlYkdMLCB2ZXJ0aWNlcywgY29sb3JzLCAwLCAwKTsK
LSAgICBwaXhlbFswXSA9IGJ1ZlswXTsKLSAgICBwaXhlbFsxXSA9IGJ1ZlsxXTsKLSAgICBwaXhl
bFsyXSA9IGJ1ZlsyXTsKLSAgICBwaXhlbFszXSA9IGJ1ZlszXTsKLSAgICBjb3JyZWN0Q29sb3Ig
PSAoc3RlbmNpbCA/IFswLCAwLCAwLCAyNTVdIDogWzI1NSwgMCwgMCwgMjU1XSk7Ci0gICAgc2hv
dWxkQmUoInBpeGVsIiwgImNvcnJlY3RDb2xvciIpOwotfQotCi1mdW5jdGlvbiB0ZXN0QW50aWFs
aWFzKGFudGlhbGlhcykKLXsKLSAgICBkZWJ1ZygiVGVzdGluZyBhbnRpYWxpYXMgPSAiICsgYW50
aWFsaWFzKTsKLSAgICBpZiAoYW50aWFsaWFzKQotICAgICAgICBzaG91bGRCZU5vbk51bGwoIndl
YkdMID0gZ2V0V2ViR0woJ2FudGlhbGlhc09uJywgeyBkZXB0aDogZmFsc2UsIHN0ZW5jaWw6IGZh
bHNlLCBhbHBoYTogZmFsc2UsIGFudGlhbGlhczogdHJ1ZSB9LCBbIDAsIDAsIDAsIDEgXSwgMSwg
MCkiKTsKLSAgICBlbHNlCi0gICAgICAgIHNob3VsZEJlTm9uTnVsbCgid2ViR0wgPSBnZXRXZWJH
TCgnYW50aWFsaWFzT2ZmJywgeyBkZXB0aDogZmFsc2UsIHN0ZW5jaWw6IGZhbHNlLCBhbHBoYTog
ZmFsc2UsIGFudGlhbGlhczogZmFsc2UgfSwgWyAwLCAwLCAwLCAxIF0sIDEsIDApIik7Ci0gICAg
c2hvdWxkQmVOb25OdWxsKCJjb250ZXh0QXR0cmlicyA9IHdlYkdMLmdldENvbnRleHRBdHRyaWJ1
dGVzKCkiKTsKLSAgICBzaG91bGRCZSgiY29udGV4dEF0dHJpYnMuZGVwdGgiLCAiZmFsc2UiKTsK
LSAgICBzaG91bGRCZSgiY29udGV4dEF0dHJpYnMuc3RlbmNpbCIsICJmYWxzZSIpOwotICAgIHNo
b3VsZEJlKCJjb250ZXh0QXR0cmlicy5hbHBoYSIsICJmYWxzZSIpOwotICAgIHNob3VsZEJlKCJj
b250ZXh0QXR0cmlicy5hbnRpYWxpYXMiLCAoYW50aWFsaWFzID8gInRydWUiIDogImZhbHNlIikp
OwotICAgIHNob3VsZEJlKCJjb250ZXh0QXR0cmlicy5wcmVtdWx0aXBsaWVkQWxwaGEiLCAidHJ1
ZSIpOwotCi0gICAgdmFyIHZlcnRpY2VzID0gbmV3IFdlYkdMRmxvYXRBcnJheShbCi0gICAgICAg
ICAxLjAsIDEuMCwgMC4wLAotICAgICAgICAtMS4wLCAxLjAsIDAuMCwKLSAgICAgICAgLTEuMCwg
LTEuMCwgMC4wXSk7Ci0gICAgdmFyIGNvbG9ycyA9IG5ldyBXZWJHTFVuc2lnbmVkQnl0ZUFycmF5
KFsKLSAgICAgICAgMjU1LCAwLCAwLCAyNTUsCi0gICAgICAgIDI1NSwgMCwgMCwgMjU1LAotICAg
ICAgICAyNTUsIDAsIDAsIDI1NV0pOwotICAgIHZhciBidWYgPSBkcmF3QW5kUmVhZFBpeGVsKHdl
YkdMLCB2ZXJ0aWNlcywgY29sb3JzLCAwLCAwKTsKLSAgICBwaXhlbFswXSA9IGJ1ZlswXTsKLSAg
ICBzaG91bGRCZSgicGl4ZWxbMF0gPT0gMjU1IHx8IHBpeGVsWzBdID09IDAiLCAoYW50aWFsaWFz
ID8gImZhbHNlIiA6ICJ0cnVlIikpOwotfQotCi1mdW5jdGlvbiBydW5UZXN0KCkKLXsKLQotICAg
IHRlc3RBbHBoYSh0cnVlKTsKLSAgICB0ZXN0QWxwaGEoZmFsc2UpOwotICAgIHRlc3REZXB0aCh0
cnVlKTsKLSAgICB0ZXN0RGVwdGgoZmFsc2UpOwotICAgIHRlc3RTdGVuY2lsKHRydWUpOwotICAg
IHRlc3RTdGVuY2lsKGZhbHNlKTsKLSAgICB0ZXN0QW50aWFsaWFzKHRydWUpOwotICAgIHRlc3RB
bnRpYWxpYXMoZmFsc2UpOwotCi0gICAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLSAgICB2
YXIgZXBpbG9ndWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKLSAgICBlcGls
b2d1ZS5vbmxvYWQgPSBmaW5pc2g7Ci0gICAgZXBpbG9ndWUuc3JjID0gIi4uLy4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiOwotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZXBp
bG9ndWUpOwotfQotCi1mdW5jdGlvbiBmaW5pc2goKSB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25l
KCk7Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9ImluaXQoKSI+
Ci08Y2FudmFzIGlkPSJhbHBoYU9uIiB3aWR0aD0iMXB4IiBoZWlnaHQ9IjFweCI+PC9jYW52YXM+
Ci08Y2FudmFzIGlkPSJhbHBoYU9mZiIgd2lkdGg9IjFweCIgaGVpZ2h0PSIxcHgiPjwvY2FudmFz
PgotPGNhbnZhcyBpZD0iZGVwdGhPbiIgd2lkdGg9IjFweCIgaGVpZ2h0PSIxcHgiPjwvY2FudmFz
PgotPGNhbnZhcyBpZD0iZGVwdGhPZmYiIHdpZHRoPSIxcHgiIGhlaWdodD0iMXB4Ij48L2NhbnZh
cz4KLTxjYW52YXMgaWQ9InN0ZW5jaWxPbiIgd2lkdGg9IjFweCIgaGVpZ2h0PSIxcHgiPjwvY2Fu
dmFzPgotPGNhbnZhcyBpZD0ic3RlbmNpbE9mZiIgd2lkdGg9IjFweCIgaGVpZ2h0PSIxcHgiPjwv
Y2FudmFzPgotPGNhbnZhcyBpZD0iYW50aWFsaWFzT24iIHdpZHRoPSIycHgiIGhlaWdodD0iMnB4
Ij48L2NhbnZhcz4KLTxjYW52YXMgaWQ9ImFudGlhbGlhc09mZiIgd2lkdGg9IjJweCIgaGVpZ2h0
PSIycHgiPjwvY2FudmFzPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy93ZWJnbC9jb250ZXh0LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2NvbnRleHQtYXR0cmlidXRlcy1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDU2MTI0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvY29udGV4dC1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNyw4
ICs3LDggQEAgUEFTUyBjb250ZXh0ID0gY3JlYXRlM0RDb250ZXh0KCkgaXMgbm9uLQogUEFTUyBh
dHRyaWJzID0gY29udGV4dC5nZXRDb250ZXh0QXR0cmlidXRlcygpIGlzIG5vbi1udWxsLgogUEFT
UyBhdHRyaWJzLmRlcHRoIGlzIHRydWUKIFBBU1MgYXR0cmlicy5hbHBoYSBpcyB0cnVlCi1QQVNT
IGF0dHJpYnMuc3RlbmNpbCBpcyB0cnVlCi1QQVNTIGF0dHJpYnMuYW50aWFsaWFzIGlzIHRydWUK
K1BBU1MgKGF0dHJpYnMuc3RlbmNpbCA9PSB0cnVlIHx8IGF0dHJpYnMuc3RlbmNpbCA9PSBmYWxz
ZSkgaXMgdHJ1ZQorUEFTUyAoYXR0cmlicy5hbnRpYWxpYXMgPT0gdHJ1ZSB8fCBhdHRyaWJzLmFu
dGlhbGlhcyA9PSBmYWxzZSkgaXMgdHJ1ZQogUEFTUyBhdHRyaWJzLnByZW11bHRpcGxpZWRBbHBo
YSBpcyB0cnVlCiBUZXN0IGN1c3RvbWl6ZWQgdmFsdWVzCiBQQVNTIGNvbnRleHQgPSBjcmVhdGUz
RENvbnRleHQoeyBzdGVuY2lsOiBmYWxzZSwgYW50aWFsaWFzOiBmYWxzZSB9KSBpcyBub24tbnVs
bC4KQEAgLTE4LDIyICsxOCw2IEBAIFBBU1MgYXR0cmlicy5hbHBoYSBpcyB0cnVlCiBQQVNTIGF0
dHJpYnMuc3RlbmNpbCBpcyBmYWxzZQogUEFTUyBhdHRyaWJzLmFudGlhbGlhcyBpcyBmYWxzZQog
UEFTUyBhdHRyaWJzLnByZW11bHRpcGxpZWRBbHBoYSBpcyB0cnVlCi1UZXN0IGN1c3RvbWl6ZWQg
dmFsdWVzCi1QQVNTIGNvbnRleHQgPSBjcmVhdGUzRENvbnRleHQoeyBkZXB0aDogZmFsc2UsIHN0
ZW5jaWw6IHRydWUgfSkgaXMgbm9uLW51bGwuCi1QQVNTIGF0dHJpYnMgPSBjb250ZXh0LmdldENv
bnRleHRBdHRyaWJ1dGVzKCkgaXMgbm9uLW51bGwuCi1QQVNTIGF0dHJpYnMuZGVwdGggaXMgdHJ1
ZQotUEFTUyBhdHRyaWJzLmFscGhhIGlzIHRydWUKLVBBU1MgYXR0cmlicy5zdGVuY2lsIGlzIHRy
dWUKLVBBU1MgYXR0cmlicy5hbnRpYWxpYXMgaXMgdHJ1ZQotUEFTUyBhdHRyaWJzLnByZW11bHRp
cGxpZWRBbHBoYSBpcyB0cnVlCi1UZXN0IGN1c3RvbWl6ZWQgdmFsdWVzCi1QQVNTIGNvbnRleHQg
PSBjcmVhdGUzRENvbnRleHQoeyBwcmVtdWx0aXBsaWVkQWxwaGE6IGZhbHNlIH0pIGlzIG5vbi1u
dWxsLgotUEFTUyBhdHRyaWJzID0gY29udGV4dC5nZXRDb250ZXh0QXR0cmlidXRlcygpIGlzIG5v
bi1udWxsLgotUEFTUyBhdHRyaWJzLmRlcHRoIGlzIHRydWUKLVBBU1MgYXR0cmlicy5hbHBoYSBp
cyB0cnVlCi1QQVNTIGF0dHJpYnMuc3RlbmNpbCBpcyB0cnVlCi1QQVNTIGF0dHJpYnMuYW50aWFs
aWFzIGlzIHRydWUKLVBBU1MgYXR0cmlicy5wcmVtdWx0aXBsaWVkQWxwaGEgaXMgdHJ1ZQogUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9jb250ZXh0LWF0dHJpYnV0ZXMuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9jb250ZXh0LWF0dHJpYnV0ZXMu
aHRtbAkocmV2aXNpb24gNTYxMjQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9j
b250ZXh0LWF0dHJpYnV0ZXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTgsOCArMTgsOSBAQCBz
aG91bGRCZU5vbk51bGwoImNvbnRleHQgPSBjcmVhdGUzRENvbnRlCiBzaG91bGRCZU5vbk51bGwo
ImF0dHJpYnMgPSBjb250ZXh0LmdldENvbnRleHRBdHRyaWJ1dGVzKCkiKTsKIHNob3VsZEJlKCJh
dHRyaWJzLmRlcHRoIiwgInRydWUiKTsKIHNob3VsZEJlKCJhdHRyaWJzLmFscGhhIiwgInRydWUi
KTsKLXNob3VsZEJlKCJhdHRyaWJzLnN0ZW5jaWwiLCAidHJ1ZSIpOwotc2hvdWxkQmUoImF0dHJp
YnMuYW50aWFsaWFzIiwgInRydWUiKTsKKy8vIFRoZSBmb2xsb3dpbmcgdHdvIGRlcGVuZCBvbiB3
aGV0aGVyIHRoZSBpbXBsZW1lbnRhdGlvbiBhY3R1YWxseSBzdXBwb3J0cyB0aGVtCitzaG91bGRC
ZSgiKGF0dHJpYnMuc3RlbmNpbCA9PSB0cnVlIHx8IGF0dHJpYnMuc3RlbmNpbCA9PSBmYWxzZSki
LCAidHJ1ZSIpOworc2hvdWxkQmUoIihhdHRyaWJzLmFudGlhbGlhcyA9PSB0cnVlIHx8IGF0dHJp
YnMuYW50aWFsaWFzID09IGZhbHNlKSIsICJ0cnVlIik7CiBzaG91bGRCZSgiYXR0cmlicy5wcmVt
dWx0aXBsaWVkQWxwaGEiLCAidHJ1ZSIpOwogCiBkZWJ1ZyAoIlRlc3QgY3VzdG9taXplZCB2YWx1
ZXMiKTsKQEAgLTMxLDI2ICszMiw2IEBAIHNob3VsZEJlKCJhdHRyaWJzLnN0ZW5jaWwiLCAiZmFs
c2UiKTsKIHNob3VsZEJlKCJhdHRyaWJzLmFudGlhbGlhcyIsICJmYWxzZSIpOwogc2hvdWxkQmUo
ImF0dHJpYnMucHJlbXVsdGlwbGllZEFscGhhIiwgInRydWUiKTsKIAotZGVidWcoIlRlc3QgY3Vz
dG9taXplZCB2YWx1ZXMiKTsKLS8vIChzdGVuY2lsID09IHRydWUgJiYgZGVwdGggPT0gZmFsc2Up
IGlzIG5vdCBzdXBwb3J0ZWQsIGRlZmF1bHQgZGVwdGggdG8gdHJ1ZQotc2hvdWxkQmVOb25OdWxs
KCJjb250ZXh0ID0gY3JlYXRlM0RDb250ZXh0KHsgZGVwdGg6IGZhbHNlLCBzdGVuY2lsOiB0cnVl
IH0pIik7Ci1zaG91bGRCZU5vbk51bGwoImF0dHJpYnMgPSBjb250ZXh0LmdldENvbnRleHRBdHRy
aWJ1dGVzKCkiKTsKLXNob3VsZEJlKCJhdHRyaWJzLmRlcHRoIiwgInRydWUiKTsKLXNob3VsZEJl
KCJhdHRyaWJzLmFscGhhIiwgInRydWUiKTsKLXNob3VsZEJlKCJhdHRyaWJzLnN0ZW5jaWwiLCAi
dHJ1ZSIpOwotc2hvdWxkQmUoImF0dHJpYnMuYW50aWFsaWFzIiwgInRydWUiKTsKLXNob3VsZEJl
KCJhdHRyaWJzLnByZW11bHRpcGxpZWRBbHBoYSIsICJ0cnVlIik7Ci0KLWRlYnVnKCJUZXN0IGN1
c3RvbWl6ZWQgdmFsdWVzIik7Ci0vLyAocHJlbXVsdGlwbGllZEFscGhhID09IGZhbHNlKSBpcyBu
b3Qgc3VwcG9ydGVkLCBkZWZhdWx0IHRvIHRydWUKLXNob3VsZEJlTm9uTnVsbCgiY29udGV4dCA9
IGNyZWF0ZTNEQ29udGV4dCh7IHByZW11bHRpcGxpZWRBbHBoYTogZmFsc2UgfSkiKTsKLXNob3Vs
ZEJlTm9uTnVsbCgiYXR0cmlicyA9IGNvbnRleHQuZ2V0Q29udGV4dEF0dHJpYnV0ZXMoKSIpOwot
c2hvdWxkQmUoImF0dHJpYnMuZGVwdGgiLCAidHJ1ZSIpOwotc2hvdWxkQmUoImF0dHJpYnMuYWxw
aGEiLCAidHJ1ZSIpOwotc2hvdWxkQmUoImF0dHJpYnMuc3RlbmNpbCIsICJ0cnVlIik7Ci1zaG91
bGRCZSgiYXR0cmlicy5hbnRpYWxpYXMiLCAidHJ1ZSIpOwotc2hvdWxkQmUoImF0dHJpYnMucHJl
bXVsdGlwbGllZEFscGhhIiwgInRydWUiKTsKLQogc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
IDwvc2NyaXB0PgogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9nbC1nZXQt
Y2FsbHMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFz
L3dlYmdsL2dsLWdldC1jYWxscy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDU2MTI0KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZ2wtZ2V0LWNhbGxzLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtNTMsNyArNTMsNyBAQCBQQVNTIGNvbnRleHQuZ2V0UGFyYW1ldGVyKGNv
bnRleHQuU1RFTkNJCiBQQVNTIGNvbnRleHQuZ2V0UGFyYW1ldGVyKGNvbnRleHQuU1RFTkNJTF9C
QUNLX1BBU1NfREVQVEhfRkFJTCkgaXMgY29udGV4dC5LRUVQCiBQQVNTIGNvbnRleHQuZ2V0UGFy
YW1ldGVyKGNvbnRleHQuU1RFTkNJTF9CQUNLX1BBU1NfREVQVEhfUEFTUykgaXMgY29udGV4dC5L
RUVQCiBQQVNTIGNvbnRleHQuZ2V0UGFyYW1ldGVyKGNvbnRleHQuU1RFTkNJTF9CQUNLX1JFRikg
aXMgMAotUEFTUyBjb250ZXh0LmdldFBhcmFtZXRlcihjb250ZXh0LlNURU5DSUxfQklUUykgPiAw
IGlzIHRydWUKK1BBU1MgY29udGV4dC5nZXRQYXJhbWV0ZXIoY29udGV4dC5TVEVOQ0lMX0JJVFMp
IGlzIDAKIFBBU1MgY29udGV4dC5nZXRQYXJhbWV0ZXIoY29udGV4dC5TVEVOQ0lMX0NMRUFSX1ZB
TFVFKSBpcyAwCiBQQVNTIGNvbnRleHQuZ2V0UGFyYW1ldGVyKGNvbnRleHQuU1RFTkNJTF9GQUlM
KSBpcyBjb250ZXh0LktFRVAKIFBBU1MgY29udGV4dC5nZXRQYXJhbWV0ZXIoY29udGV4dC5TVEVO
Q0lMX0ZVTkMpIGlzIGNvbnRleHQuQUxXQVlTCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy93ZWJnbC9nbC1nZXQtY2FsbHMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy93ZWJnbC9nbC1nZXQtY2FsbHMuaHRtbAkocmV2aXNpb24gNTYxMjQpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9nbC1nZXQtY2FsbHMuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtODIsNyArODIsNyBAQCBlbHNlIHsKICAgICAvLyBGSVhNRTogQ3VycmVudCBXZWJLaXQg
aW1wbGVtZW50YXRpb24gcmV0dXJucyB0aGUgd3JvbmcgdmFsdWUgKGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTg0MikKICAgICAvL3Nob3VsZEJlKCdjb250ZXh0Lmdl
dFBhcmFtZXRlcihjb250ZXh0LlNURU5DSUxfQkFDS19WQUxVRV9NQVNLKScsICcweEZGRkZGRkZG
Jyk7CiAgICAgLy9zaG91bGRCZSgnY29udGV4dC5nZXRQYXJhbWV0ZXIoY29udGV4dC5TVEVOQ0lM
X0JBQ0tfV1JJVEVNQVNLKScsICcweEZGRkZGRkZGJyk7Ci0gICAgc2hvdWxkQmUoJ2NvbnRleHQu
Z2V0UGFyYW1ldGVyKGNvbnRleHQuU1RFTkNJTF9CSVRTKSA+IDAnLCAndHJ1ZScpOworICAgIHNo
b3VsZEJlKCdjb250ZXh0LmdldFBhcmFtZXRlcihjb250ZXh0LlNURU5DSUxfQklUUyknLCAnMCcp
OwogICAgIHNob3VsZEJlKCdjb250ZXh0LmdldFBhcmFtZXRlcihjb250ZXh0LlNURU5DSUxfQ0xF
QVJfVkFMVUUpJywgJzAnKTsKICAgICBzaG91bGRCZSgnY29udGV4dC5nZXRQYXJhbWV0ZXIoY29u
dGV4dC5TVEVOQ0lMX0ZBSUwpJywgJ2NvbnRleHQuS0VFUCcpOwogICAgIHNob3VsZEJlKCdjb250
ZXh0LmdldFBhcmFtZXRlcihjb250ZXh0LlNURU5DSUxfRlVOQyknLCAnY29udGV4dC5BTFdBWVMn
KTsKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCShyZXZpc2lvbiA1NjEyNCkKKysrIExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC0xMzcsMTMg
KzEzNyw1IEBAIGZhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvc2V0LXByb2dyZXMKICMgZXZl
bnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQvdXJpLWxpc3QnKSBub3QgY29ycmVjdGx5IGlt
cGxlbWVudGVkIG9uIE1hYwogZWRpdGluZy9wYXN0ZWJvYXJkL2RhdGFUcmFuc2Zlci1zZXREYXRh
LWdldERhdGEuaHRtbAogCi0jIFRlbXBvcmFyaWx5IGNvbW1lbnRpbmcgb3V0IGEgZmV3IFdlYkdM
IGxheW91dCB0ZXN0cyBmYWlsaW5nIG9uIHNvbWUgb2YgdGhlIGJvdHMuCi0jIFNlZSBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzYxOTQgLgotZmFzdC9jYW52YXMvd2Vi
Z2wvY29udGV4dC1hdHRyaWJ1dGVzLWFscGhhLWRlcHRoLXN0ZW5jaWwtYW50aWFsaWFzLmh0bWwK
LWZhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtaW1hZ2Ut
ZGF0YS5odG1sCi1mYXN0L2NhbnZhcy93ZWJnbC90ZXgtc3ViLWltYWdlLTJkLmh0bWwKLWZhc3Qv
Y2FudmFzL3dlYmdsL3RyaWFuZ2xlLmh0bWwKLWZhc3QvY2FudmFzL3dlYmdsL3ZpZXdwb3J0LXVu
Y2hhbmdlZC11cG9uLXJlc2l6ZS5odG1sCi0KICMgZXZlbnRTZW5kZXIgbmVlZHMgdG8gcHJvcGFn
YXRlIHRoZSBldmVudCB0byB0aGUgY2FsbGluZyB3aW5kb3csIG5vdCB0aGUgbWFpbiBmcmFtZSBh
bHdheXMuCiBodHRwL3Rlc3RzL3BsdWdpbnMvcGx1Z2luLWRvY3VtZW50LWhhcy1mb2N1cy5odG1s
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>
<flag name="review"
          id="34113"
          type_id="1"
          status="+"
          setter="fishd"
    />
          </attachment>
      

    </bug>

</bugzilla>