<?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>132431</bug_id>
          
          <creation_ts>2014-05-01 10:23:56 -0700</creation_ts>
          <short_desc>REGRESSION(r167964): Memory improvements should not regress memory usage (Requested by olliej on #webkit).</short_desc>
          <delta_ts>2014-05-01 10:26:54 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>132360</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>ggaren</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1005765</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-01 10:23:56 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/167964 broke the build:
Memory improvements should not regress memory usage (Requested by olliej on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005767</commentid>
    <comment_count>1</comment_count>
      <attachid>230589</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-01 10:24:09 -0700</bug_when>
    <thetext>Created attachment 230589
ROLLOUT of r167964

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005768</commentid>
    <comment_count>2</comment_count>
      <attachid>230589</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-01 10:26:52 -0700</bug_when>
    <thetext>Comment on attachment 230589
ROLLOUT of r167964

Clearing flags on attachment: 230589

Committed r168107: &lt;http://trac.webkit.org/changeset/168107&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005769</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-01 10:26:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230589</attachid>
            <date>2014-05-01 10:24:09 -0700</date>
            <delta_ts>2014-05-01 10:26:52 -0700</delta_ts>
            <desc>ROLLOUT of r167964</desc>
            <filename>bug-132431-20140501102347.patch</filename>
            <type>text/plain</type>
            <size>23397</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4MTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
YzM0Yjg4YmJmYzgzNWIzYzc1NzUwNjQwNmM2N2E2ZjBhMjFiZWJmLi5kMGUzYjZiZjBkODBkYmE4
NzhjOWZmMDYyNWU0YzE3Y2Y4OTFmMjg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxNC0wNS0wMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE2Nzk2NC4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjQzMQorCisgICAg
ICAgIE1lbW9yeSBpbXByb3ZlbWVudHMgc2hvdWxkIG5vdCByZWdyZXNzIG1lbW9yeSB1c2FnZSAo
UmVxdWVzdGVkCisgICAgICAgIGJ5IG9sbGllaiBvbiAjd2Via2l0KS4KKworICAgICAgICBSZXZl
cnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAgIkRvbid0IGhvbGQgb24gdG8gcGFyYW1ldGVyIEJp
bmRpbmdOb2RlcyBmb3JldmVyIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTMyMzYwCisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdl
c2V0LzE2Nzk2NAorCiAyMDE0LTA1LTAxICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+
CiAKICAgICAgICAgRml4IHRyaXZpYWwgZGVidWctb25seSByYWNlLXRoYXQtY3Jhc2hlcyBpbiBD
YWxsTGlua1N0YXR1cyBhbmQgZXhwbGFpbiB3aHkgdGhlIHJlbWFpbmluZyByYWNlcyBhcmUgdG90
YWxseSBhd2Vzb21lCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
VW5saW5rZWRDb2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Vu
bGlua2VkQ29kZUJsb2NrLmNwcAppbmRleCA0ODA4NzE5MGRmOGVkZjBjZDdlODE2ZTM4NDU0MjY0
NmQwYjMxYWY3Li5iYjY0MDE4MzViMWU2NDU4OGIyMDgwMzRlMWYxZmU4MDJlN2NkZDFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2su
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9j
ay5jcHAKQEAgLTUxLDE0ICs1MSw3IEBAIGNvbnN0IENsYXNzSW5mbyBVbmxpbmtlZEZ1bmN0aW9u
Q29kZUJsb2NrOjpzX2luZm8gPSB7ICJVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrCiAKIHN0YXRp
YyBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrKiBnZW5lcmF0ZUZ1bmN0aW9uQ29kZUJsb2NrKFZN
JiB2bSwgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIGNvbnN0IFNvdXJj
ZUNvZGUmIHNvdXJjZSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBEZWJ1Z2dlck1vZGUg
ZGVidWdnZXJNb2RlLCBQcm9maWxlck1vZGUgcHJvZmlsZXJNb2RlLCBVbmxpbmtlZEZ1bmN0aW9u
S2luZCBmdW5jdGlvbktpbmQsIFBhcnNlckVycm9yJiBlcnJvcikKIHsKLSAgICBSZWZQdHI8RnVu
Y3Rpb25QYXJhbWV0ZXJzPiBwYXJhbWV0ZXJzID0gZXhlY3V0YWJsZS0+cGFyYW1ldGVycygmdm0p
OwotICAgIGlmICghcGFyYW1ldGVycykgewotICAgICAgICBlcnJvciA9IFBhcnNlckVycm9yKFBh
cnNlckVycm9yOjpTdGFja092ZXJmbG93KTsKLSAgICAgICAgZXJyb3IubV9saW5lID0gc291cmNl
LmZpcnN0TGluZSgpOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBSZWZQdHI8RnVu
Y3Rpb25Cb2R5Tm9kZT4gYm9keSA9IHBhcnNlPEZ1bmN0aW9uQm9keU5vZGU+KCZ2bSwgc291cmNl
LCBwYXJhbWV0ZXJzLmdldCgpLCBleGVjdXRhYmxlLT5uYW1lKCksIGV4ZWN1dGFibGUtPnRvU3Ry
aWN0bmVzcygpLCBKU1BhcnNlRnVuY3Rpb25Db2RlLCBlcnJvcik7CisgICAgUmVmUHRyPEZ1bmN0
aW9uQm9keU5vZGU+IGJvZHkgPSBwYXJzZTxGdW5jdGlvbkJvZHlOb2RlPigmdm0sIHNvdXJjZSwg
ZXhlY3V0YWJsZS0+cGFyYW1ldGVycygpLCBleGVjdXRhYmxlLT5uYW1lKCksIGV4ZWN1dGFibGUt
PnRvU3RyaWN0bmVzcygpLCBKU1BhcnNlRnVuY3Rpb25Db2RlLCBlcnJvcik7CiAKICAgICBpZiAo
IWJvZHkpIHsKICAgICAgICAgQVNTRVJUKGVycm9yLm1fdHlwZSAhPSBQYXJzZXJFcnJvcjo6RXJy
b3JOb25lKTsKQEAgLTY3LDcgKzYwLDcgQEAgc3RhdGljIFVubGlua2VkRnVuY3Rpb25Db2RlQmxv
Y2sqIGdlbmVyYXRlRnVuY3Rpb25Db2RlQmxvY2soVk0mIHZtLCBVbmxpbmtlZEZ1bmMKIAogICAg
IGlmIChleGVjdXRhYmxlLT5mb3JjZVVzZXNBcmd1bWVudHMoKSkKICAgICAgICAgYm9keS0+c2V0
VXNlc0FyZ3VtZW50cygpOwotICAgIGJvZHktPmZpbmlzaFBhcnNpbmcocGFyYW1ldGVycy5nZXQo
KSwgZXhlY3V0YWJsZS0+bmFtZSgpLCBleGVjdXRhYmxlLT5mdW5jdGlvbk1vZGUoKSk7CisgICAg
Ym9keS0+ZmluaXNoUGFyc2luZyhleGVjdXRhYmxlLT5wYXJhbWV0ZXJzKCksIGV4ZWN1dGFibGUt
Pm5hbWUoKSwgZXhlY3V0YWJsZS0+ZnVuY3Rpb25Nb2RlKCkpOwogICAgIGV4ZWN1dGFibGUtPnJl
Y29yZFBhcnNlKGJvZHktPmZlYXR1cmVzKCksIGJvZHktPmhhc0NhcHR1cmVkVmFyaWFibGVzKCkp
OwogICAgIAogICAgIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2sqIHJlc3VsdCA9IFVubGlua2Vk
RnVuY3Rpb25Db2RlQmxvY2s6OmNyZWF0ZSgmdm0sIEZ1bmN0aW9uQ29kZSwgRXhlY3V0YWJsZUlu
Zm8oYm9keS0+bmVlZHNBY3RpdmF0aW9uKCksIGJvZHktPnVzZXNFdmFsKCksIGJvZHktPmlzU3Ry
aWN0TW9kZSgpLCBraW5kID09IENvZGVGb3JDb25zdHJ1Y3QsIGZ1bmN0aW9uS2luZCA9PSBVbmxp
bmtlZEJ1aWx0aW5GdW5jdGlvbikpOwpAQCAtOTksNyArOTIsNyBAQCBVbmxpbmtlZEZ1bmN0aW9u
RXhlY3V0YWJsZTo6VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUoVk0qIHZtLCBTdHJ1Y3R1cmUq
IHN0cnVjdAogICAgICwgbV9pc0J1aWx0aW5GdW5jdGlvbihraW5kID09IFVubGlua2VkQnVpbHRp
bkZ1bmN0aW9uKQogICAgICwgbV9uYW1lKG5vZGUtPmlkZW50KCkpCiAgICAgLCBtX2luZmVycmVk
TmFtZShub2RlLT5pbmZlcnJlZE5hbWUoKSkKLSAgICAsIG1fcGFyYW1ldGVyQ291bnQobm9kZS0+
cGFyYW1ldGVyQ291bnQoKSkKKyAgICAsIG1fcGFyYW1ldGVycyhub2RlLT5wYXJhbWV0ZXJzKCkp
CiAgICAgLCBtX2ZpcnN0TGluZU9mZnNldChub2RlLT5maXJzdExpbmUoKSAtIHNvdXJjZS5maXJz
dExpbmUoKSkKICAgICAsIG1fbGluZUNvdW50KG5vZGUtPmxhc3RMaW5lKCkgLSBub2RlLT5maXJz
dExpbmUoKSkKICAgICAsIG1fdW5saW5rZWRGdW5jdGlvbk5hbWVTdGFydChub2RlLT5mdW5jdGlv
bk5hbWVTdGFydCgpIC0gc291cmNlLnN0YXJ0T2Zmc2V0KCkpCkBAIC0xMTIsNiArMTA1LDExIEBA
IFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlOjpVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZShW
TSogdm0sIFN0cnVjdHVyZSogc3RydWN0CiB7CiB9CiAKK3NpemVfdCBVbmxpbmtlZEZ1bmN0aW9u
RXhlY3V0YWJsZTo6cGFyYW1ldGVyQ291bnQoKSBjb25zdAoreworICAgIHJldHVybiBtX3BhcmFt
ZXRlcnMtPnNpemUoKTsKK30KKwogdm9pZCBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZTo6dmlz
aXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIFVu
bGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiB0aGlzT2JqZWN0ID0ganNDYXN0PFVubGlua2VkRnVu
Y3Rpb25FeGVjdXRhYmxlKj4oY2VsbCk7CkBAIC0xMjQsNyArMTIyLDYgQEAgdm9pZCBVbmxpbmtl
ZEZ1bmN0aW9uRXhlY3V0YWJsZTo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNp
dG9yJiB2aXNpdG8KICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9uYW1lVmFsdWUp
OwogICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX3N5bWJvbFRhYmxlRm9yQ2FsbCk7
CiAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fc3ltYm9sVGFibGVGb3JDb25zdHJ1
Y3QpOwotICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX3BhcmFtZXRlclN0cmluZyk7
CiB9CiAKIEZ1bmN0aW9uRXhlY3V0YWJsZSogVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU6Omxp
bmsoVk0mIHZtLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIHNpemVfdCBsaW5lT2Zmc2V0KQpA
QCAtMTg3LDMwICsxODQsMTYgQEAgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jayogVW5saW5rZWRG
dW5jdGlvbkV4ZWN1dGFibGU6OmNvZGVCbG9ja0ZvcihWTSYgdm0sIGNvbnMKICAgICByZXR1cm4g
cmVzdWx0OwogfQogCi12b2lkIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlOjpmaW5pc2hDcmVh
dGlvbihWTSYgdm0sIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgRnVuY3Rpb25Cb2R5Tm9kZSog
bm9kZSkKLXsKLSAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgbV9uYW1lVmFsdWUu
c2V0KHZtLCB0aGlzLCBqc1N0cmluZygmdm0sIG5hbWUoKS5zdHJpbmcoKSkpOwotICAgIC8vIFdl
IG1ha2UgYW4gaXNvbGF0ZWQgY29weSBvZiB0aGUgcGFyYW1ldGVyIHN0cmluZyBhcyB3ZSBkb24n
dCB3YW50IHRvIGtlZXAgdGhlCi0gICAgLy8gZnVsbCBzb3VyY2Ugc3RyaW5nIGFsaXZlLgotICAg
IFN0cmluZyBwYXJhbWV0ZXJTdHJpbmcgPSBzb3VyY2UucHJvdmlkZXIoKS0+Z2V0UmFuZ2Uobm9k
ZS0+cGFyYW1ldGVyc1N0YXJ0T2Zmc2V0KCksIG5vZGUtPnBhcmFtZXRlcnNFbmRPZmZzZXQoKSku
aXNvbGF0ZWRDb3B5KCk7Ci0gICAgbV9wYXJhbWV0ZXJTdHJpbmcuc2V0KHZtLCB0aGlzLCBqc1N0
cmluZygmdm0sIHBhcmFtZXRlclN0cmluZykpOwotfQotCiBTdHJpbmcgVW5saW5rZWRGdW5jdGlv
bkV4ZWN1dGFibGU6OnBhcmFtU3RyaW5nKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9wYXJhbWV0
ZXJTdHJpbmctPnRyeUdldFZhbHVlKCk7Ci19Ci0KLVJlZlB0cjxGdW5jdGlvblBhcmFtZXRlcnM+
IFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlOjpwYXJhbWV0ZXJzKFZNKiB2bSkKLXsKLSAgICBp
ZiAoIW1fcGFyYW1ldGVyQ291bnQpCi0gICAgICAgIHJldHVybiBGdW5jdGlvblBhcmFtZXRlcnM6
OmNyZWF0ZShudWxscHRyKTsKLQotICAgIFNvdXJjZUNvZGUgcGFyYW1ldGVyU291cmNlID0gbWFr
ZVNvdXJjZShtX3BhcmFtZXRlclN0cmluZy0+dHJ5R2V0VmFsdWUoKSk7Ci0gICAgUmVmUHRyPEZ1
bmN0aW9uUGFyYW1ldGVycz4gcGFyYW1ldGVycyA9IHBhcnNlUGFyYW1ldGVycyh2bSwgcGFyYW1l
dGVyU291cmNlLCB0b1N0cmljdG5lc3MoKSk7Ci0gICAgQVNTRVJUKCFwYXJhbWV0ZXJzIHx8IHBh
cmFtZXRlcnMtPnNpemUoKSA9PSBtX3BhcmFtZXRlckNvdW50KTsKLSAgICByZXR1cm4gcGFyYW1l
dGVyczsKKyAgICBGdW5jdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMgPSAqbV9wYXJhbWV0ZXJz
OworICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICBmb3IgKHNpemVfdCBwb3MgPSAwOyBw
b3MgPCBwYXJhbWV0ZXJzLnNpemUoKTsgKytwb3MpIHsKKyAgICAgICAgaWYgKCFidWlsZGVyLmlz
RW1wdHkoKSkKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKKyAgICAg
ICAgcGFyYW1ldGVycy5hdChwb3MpLT50b1N0cmluZyhidWlsZGVyKTsKKyAgICB9CisgICAgcmV0
dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKIH0KIAogVW5saW5rZWRDb2RlQmxvY2s6OlVubGlua2Vk
Q29kZUJsb2NrKFZNKiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIENvZGVUeXBlIGNvZGVUeXBl
LCBjb25zdCBFeGVjdXRhYmxlSW5mbyYgaW5mbykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmgKaW5kZXggYTBmY2IzNmFjZTE3NWM3NjM1
OTM4MDg0ZWNiMTM4ZGQyNTRhZWQ4My4uMTkxNzczYmViNjczNTRlYmFjOTVlZGY1MDBlNTc4YmVm
ZWFiNzBhMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlu
a2VkQ29kZUJsb2NrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlu
a2VkQ29kZUJsb2NrLmgKQEAgLTk1LDcgKzk1LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBVbmxp
bmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogY3JlYXRlKFZNKiB2bSwgY29uc3QgU291cmNlQ29kZSYg
c291cmNlLCBGdW5jdGlvbkJvZHlOb2RlKiBub2RlLCBib29sIGlzRnJvbUdsb2JhbENvZGUsIFVu
bGlua2VkRnVuY3Rpb25LaW5kIHVubGlua2VkRnVuY3Rpb25LaW5kKQogICAgIHsKICAgICAgICAg
VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGluc3RhbmNlID0gbmV3IChOb3ROdWxsLCBhbGxv
Y2F0ZUNlbGw8VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU+KHZtLT5oZWFwKSkgVW5saW5rZWRG
dW5jdGlvbkV4ZWN1dGFibGUodm0sIHZtLT51bmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZVN0cnVj
dHVyZS5nZXQoKSwgc291cmNlLCBub2RlLCBpc0Zyb21HbG9iYWxDb2RlLCB1bmxpbmtlZEZ1bmN0
aW9uS2luZCk7Ci0gICAgICAgIGluc3RhbmNlLT5maW5pc2hDcmVhdGlvbigqdm0sIHNvdXJjZSwg
bm9kZSk7CisgICAgICAgIGluc3RhbmNlLT5maW5pc2hDcmVhdGlvbigqdm0pOwogICAgICAgICBy
ZXR1cm4gaW5zdGFuY2U7CiAgICAgfQogCkBAIC0xMDYsNyArMTA2LDcgQEAgcHVibGljOgogICAg
IHsKICAgICAgICAgcmV0dXJuIChraW5kID09IENvZGVGb3JDYWxsKSA/IG1fc3ltYm9sVGFibGVG
b3JDYWxsLmdldCgpIDogbV9zeW1ib2xUYWJsZUZvckNvbnN0cnVjdC5nZXQoKTsKICAgICB9Ci0g
ICAgc2l6ZV90IHBhcmFtZXRlckNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJDb3Vu
dDsgfQorICAgIHNpemVfdCBwYXJhbWV0ZXJDb3VudCgpIGNvbnN0OwogICAgIGJvb2wgaXNJblN0
cmljdENvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX2lzSW5TdHJpY3RDb250ZXh0OyB9CiAgICAg
RnVuY3Rpb25Nb2RlIGZ1bmN0aW9uTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fZnVuY3Rpb25Nb2Rl
OyB9CiAgICAgSlNQYXJzZXJTdHJpY3RuZXNzIHRvU3RyaWN0bmVzcygpIGNvbnN0CkBAIC0xNDIs
NyArMTQyLDcgQEAgcHVibGljOgogICAgICAgICBtX2NvZGVCbG9ja0ZvckNvbnN0cnVjdC5jbGVh
cigpOwogICAgIH0KIAotICAgIFJlZlB0cjxGdW5jdGlvblBhcmFtZXRlcnM+IHBhcmFtZXRlcnMo
Vk0qKTsKKyAgICBGdW5jdGlvblBhcmFtZXRlcnMqIHBhcmFtZXRlcnMoKSB7IHJldHVybiBtX3Bh
cmFtZXRlcnMuZ2V0KCk7IH0KIAogICAgIHZvaWQgcmVjb3JkUGFyc2UoQ29kZUZlYXR1cmVzIGZl
YXR1cmVzLCBib29sIGhhc0NhcHR1cmVkVmFyaWFibGVzKQogICAgIHsKQEAgLTE2Myw3ICsxNjMs
NiBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUo
Vk0qLCBTdHJ1Y3R1cmUqLCBjb25zdCBTb3VyY2VDb2RlJiwgRnVuY3Rpb25Cb2R5Tm9kZSosIGJv
b2wgaXNGcm9tR2xvYmFsQ29kZSwgVW5saW5rZWRGdW5jdGlvbktpbmQpOwotCiAgICAgV3JpdGVC
YXJyaWVyPFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2s+IG1fY29kZUJsb2NrRm9yQ2FsbDsKICAg
ICBXcml0ZUJhcnJpZXI8VW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jaz4gbV9jb2RlQmxvY2tGb3JD
b25zdHJ1Y3Q7CiAKQEAgLTE3NywxMCArMTc2LDkgQEAgcHJpdmF0ZToKICAgICBJZGVudGlmaWVy
IG1fbmFtZTsKICAgICBJZGVudGlmaWVyIG1faW5mZXJyZWROYW1lOwogICAgIFdyaXRlQmFycmll
cjxKU1N0cmluZz4gbV9uYW1lVmFsdWU7Ci0gICAgV3JpdGVCYXJyaWVyPEpTU3RyaW5nPiBtX3Bh
cmFtZXRlclN0cmluZzsKICAgICBXcml0ZUJhcnJpZXI8U3ltYm9sVGFibGU+IG1fc3ltYm9sVGFi
bGVGb3JDYWxsOwogICAgIFdyaXRlQmFycmllcjxTeW1ib2xUYWJsZT4gbV9zeW1ib2xUYWJsZUZv
ckNvbnN0cnVjdDsKLSAgICB1bnNpZ25lZCBtX3BhcmFtZXRlckNvdW50OworICAgIFJlZlB0cjxG
dW5jdGlvblBhcmFtZXRlcnM+IG1fcGFyYW1ldGVyczsKICAgICB1bnNpZ25lZCBtX2ZpcnN0TGlu
ZU9mZnNldDsKICAgICB1bnNpZ25lZCBtX2xpbmVDb3VudDsKICAgICB1bnNpZ25lZCBtX3VubGlu
a2VkRnVuY3Rpb25OYW1lU3RhcnQ7CkBAIC0xOTQsNyArMTkyLDExIEBAIHByaXZhdGU6CiAgICAg
RnVuY3Rpb25Nb2RlIG1fZnVuY3Rpb25Nb2RlOwogCiBwcm90ZWN0ZWQ6Ci0gICAgdm9pZCBmaW5p
c2hDcmVhdGlvbihWTSYsIGNvbnN0IFNvdXJjZUNvZGUmLCBGdW5jdGlvbkJvZHlOb2RlKik7Cisg
ICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYgdm0pCisgICAgeworICAgICAgICBCYXNlOjpmaW5p
c2hDcmVhdGlvbih2bSk7CisgICAgICAgIG1fbmFtZVZhbHVlLnNldCh2bSwgdGhpcywganNTdHJp
bmcoJnZtLCBuYW1lKCkuc3RyaW5nKCkpKTsKKyAgICB9CiAKICAgICBzdGF0aWMgdm9pZCB2aXNp
dENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9BU1RCdWlsZGVyLmgKaW5kZXggNzQwZmQwYzhhYzU4NjUzZjBjYzE2NTg3YjBjZmVl
ZDZmOWJjOGNiYi4uNmUwOTliYTAwZmQyMjU1OGVjNDc3NzI3Nzc4ODJkNmQyYWNlMTdiMCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKQEAgLTc2LDcgKzc2LDcg
QEAgY2xhc3MgQVNUQnVpbGRlciB7CiAgICAgICAgIE9wZXJhdG9yIG1fb3A7CiAgICAgfTsKIHB1
YmxpYzoKLSAgICBBU1RCdWlsZGVyKFZNKiB2bSwgY29uc3QgU291cmNlQ29kZSogc291cmNlQ29k
ZSkKKyAgICBBU1RCdWlsZGVyKFZNKiB2bSwgU291cmNlQ29kZSogc291cmNlQ29kZSkKICAgICAg
ICAgOiBtX3ZtKHZtKQogICAgICAgICAsIG1fc291cmNlQ29kZShzb3VyY2VDb2RlKQogICAgICAg
ICAsIG1fc2NvcGUodm0pCkBAIC0yODksMTEgKzI4OSw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIEZ1bmN0aW9uQm9keU5vZGU6OmNyZWF0ZShtX3ZtLCBzdGFydExvY2F0aW9uLCBlbmRMb2Nh
dGlvbiwgc3RhcnRDb2x1bW4sIGVuZENvbHVtbiwgaW5TdHJpY3RDb250ZXh0KTsKICAgICB9CiAK
LSAgICB2b2lkIHNldEZ1bmN0aW9uQm9keVBhcmFtZXRlcnMoRnVuY3Rpb25Cb2R5Tm9kZSogYm9k
eSwgY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBvcGVuUGFyZW4sIGNvbnN0IEpTVG9rZW5Mb2NhdGlv
biYgY2xvc2VQYXJlbikKLSAgICB7Ci0gICAgICAgIGJvZHktPnNldFBhcmFtZXRlckxvY2F0aW9u
KG9wZW5QYXJlbiwgY2xvc2VQYXJlbik7Ci0gICAgfQotCiAgICAgdm9pZCBzZXRGdW5jdGlvbk5h
bWVTdGFydChGdW5jdGlvbkJvZHlOb2RlKiBib2R5LCBpbnQgZnVuY3Rpb25OYW1lU3RhcnQpCiAg
ICAgewogICAgICAgICBib2R5LT5zZXRGdW5jdGlvbk5hbWVTdGFydChmdW5jdGlvbk5hbWVTdGFy
dCk7CkBAIC03MjcsNyArNzIyLDcgQEAgcHJpdmF0ZToKICAgICB9CiAgICAgCiAgICAgVk0qIG1f
dm07Ci0gICAgY29uc3QgU291cmNlQ29kZSogbV9zb3VyY2VDb2RlOworICAgIFNvdXJjZUNvZGUq
IG1fc291cmNlQ29kZTsKICAgICBTY29wZSBtX3Njb3BlOwogICAgIFZlY3RvcjxCaW5hcnlPcGVy
YW5kLCAxMCwgVW5zYWZlVmVjdG9yT3ZlcmZsb3c+IG1fYmluYXJ5T3BlcmFuZFN0YWNrOwogICAg
IFZlY3RvcjxBc3NpZ25tZW50SW5mbywgMTAsIFVuc2FmZVZlY3Rvck92ZXJmbG93PiBtX2Fzc2ln
bm1lbnRJbmZvU3RhY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L05vZGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKaW5kZXggZTFi
YTQyMjgwNzg3YWE0MGE5MGIwZTk0MWU3MWYwYjFhYWQ5ZDA0My4uMjUwMGZiM2M3NTFmMTNlM2Jh
N2FhZDg1NDUzOTNmYTc1NWMzOTFhMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9Ob2Rlcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMu
aApAQCAtMTUzNSw4ICsxNTM1LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgRnVuY3Rp
b25QYXJhbWV0ZXJzKiBwYXJhbWV0ZXJzKCkgY29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLmdl
dCgpOyB9CiAgICAgICAgIHNpemVfdCBwYXJhbWV0ZXJDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1f
cGFyYW1ldGVycy0+c2l6ZSgpOyB9Ci0gICAgICAgIGludCBwYXJhbWV0ZXJzU3RhcnRPZmZzZXQo
KSBjb25zdCB7IHJldHVybiBtX3BhcmFtZXRlcnNTdGFydC5lbmRPZmZzZXQ7IH0KLSAgICAgICAg
aW50IHBhcmFtZXRlcnNFbmRPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX3BhcmFtZXRlcnNFbmQu
c3RhcnRPZmZzZXQ7IH0KIAogICAgICAgICB2aXJ0dWFsIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVj
b2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBvdmVycmlkZTsKIApAQCAtMTU1OSwxMSAr
MTU1Nyw2IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBjb25zdCBib29sIHNj
b3BlSXNGdW5jdGlvbiA9IHRydWU7CiAKLSAgICAgICAgdm9pZCBzZXRQYXJhbWV0ZXJMb2NhdGlv
bihjb25zdCBKU1Rva2VuTG9jYXRpb24mIG9wZW5QYXJlbiwgY29uc3QgSlNUb2tlbkxvY2F0aW9u
JiBjbG9zZVBhcmVuKQotICAgICAgICB7Ci0gICAgICAgICAgICBtX3BhcmFtZXRlcnNTdGFydCA9
IG9wZW5QYXJlbjsKLSAgICAgICAgICAgIG1fcGFyYW1ldGVyc0VuZCA9IGNsb3NlUGFyZW47Ci0g
ICAgICAgIH0KICAgICBwcml2YXRlOgogICAgICAgICBGdW5jdGlvbkJvZHlOb2RlKFZNKiwgY29u
c3QgSlNUb2tlbkxvY2F0aW9uJiBzdGFydCwgY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBlbmQsIHVu
c2lnbmVkIHN0YXJ0Q29sdW1uLCB1bnNpZ25lZCBlbmRDb2x1bW4sIGJvb2wgaW5TdHJpY3RDb250
ZXh0KTsKICAgICAgICAgRnVuY3Rpb25Cb2R5Tm9kZShWTSosIGNvbnN0IEpTVG9rZW5Mb2NhdGlv
biYgc3RhcnQsIGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgZW5kLCB1bnNpZ25lZCBzdGFydENvbHVt
biwgdW5zaWduZWQgZW5kQ29sdW1uLCBTb3VyY2VFbGVtZW50cyosIFZhclN0YWNrKiwgRnVuY3Rp
b25TdGFjayosIElkZW50aWZpZXJTZXQmLCBjb25zdCBTb3VyY2VDb2RlJiwgQ29kZUZlYXR1cmVz
LCBpbnQgbnVtQ29uc3RhbnRzKTsKQEAgLTE1NzIsOCArMTU2NSw2IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBJZGVudGlmaWVyIG1faW5mZXJyZWROYW1lOwogICAgICAgICBGdW5jdGlvbk1v
ZGUgbV9mdW5jdGlvbk1vZGU7CiAgICAgICAgIFJlZlB0cjxGdW5jdGlvblBhcmFtZXRlcnM+IG1f
cGFyYW1ldGVyczsKLSAgICAgICAgSlNUb2tlbkxvY2F0aW9uIG1fcGFyYW1ldGVyc1N0YXJ0Owot
ICAgICAgICBKU1Rva2VuTG9jYXRpb24gbV9wYXJhbWV0ZXJzRW5kOwogICAgICAgICBpbnQgbV9m
dW5jdGlvbk5hbWVTdGFydDsKICAgICAgICAgdW5zaWduZWQgbV9zdGFydENvbHVtbjsKICAgICAg
ICAgdW5zaWduZWQgbV9lbmRDb2x1bW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL1BhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNl
ci5jcHAKaW5kZXggNDlmOTNmYTRhNTU4MzAxNjQ4NGY2OTc4Yzk2NDRlN2Q5NDkxNWQyNC4uN2Rl
YzliZmE5Zjc5NmZkZWQwYTk1NjFjNmE5YjM3MjUzYWIxNTM3NyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvUGFyc2VyLmNwcApAQCAtMTI0OCw3ICsxMjQ4LDYgQEAgdGVtcGxhdGUgPGNs
YXNzIFRyZWVCdWlsZGVyPiBib29sIFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUZ1bmN0aW9uSW5m
byhUcmVlQnVpbGQKICAgICAgICAgZmFpbER1ZVRvVW5leHBlY3RlZFRva2VuKCk7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgSlNUb2tlbkxvY2F0aW9uIG9wZW5QYXJlbiA9IHRv
a2VuTG9jYXRpb24oKTsKICAgICBpZiAoIWNvbnN1bWUoT1BFTlBBUkVOKSkgewogICAgICAgICBz
ZW1hbnRpY0ZhaWx1cmVEdWVUb0tleXdvcmQoc3RyaW5nRm9yRnVuY3Rpb25Nb2RlKG1vZGUpLCAi
IG5hbWUiKTsKICAgICAgICAgZmFpbFdpdGhNZXNzYWdlKCJFeHBlY3RlZCBhbiBvcGVuaW5nICco
JyBiZWZvcmUgYSAiLCBzdHJpbmdGb3JGdW5jdGlvbk1vZGUobW9kZSksICIncyBwYXJhbWV0ZXIg
bGlzdCIpOwpAQCAtMTI1Nyw3ICsxMjU2LDYgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVy
PiBib29sIFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUZ1bmN0aW9uSW5mbyhUcmVlQnVpbGQKICAg
ICAgICAgcGFyYW1ldGVycyA9IHBhcnNlRm9ybWFsUGFyYW1ldGVycyhjb250ZXh0KTsKICAgICAg
ICAgZmFpbElmRmFsc2UocGFyYW1ldGVycywgIkNhbm5vdCBwYXJzZSBwYXJhbWV0ZXJzIGZvciB0
aGlzICIsIHN0cmluZ0ZvckZ1bmN0aW9uTW9kZShtb2RlKSk7CiAgICAgfQotICAgIEpTVG9rZW5M
b2NhdGlvbiBlbmRQYXJlbiA9IG1fdG9rZW4ubV9sb2NhdGlvbjsKICAgICBjb25zdW1lT3JGYWls
KENMT1NFUEFSRU4sICJFeHBlY3RlZCBhICcpJyBvciBhICcsJyBhZnRlciBhIHBhcmFtZXRlciBk
ZWNsYXJhdGlvbiIpOwogICAgIG1hdGNoT3JGYWlsKE9QRU5CUkFDRSwgIkV4cGVjdGVkIGFuIG9w
ZW5pbmcgJ3snIGF0IHRoZSBzdGFydCBvZiBhICIsIHN0cmluZ0ZvckZ1bmN0aW9uTW9kZShtb2Rl
KSwgIiBib2R5Iik7CiAgICAgCkBAIC0xMjgzLDcgKzEyODEsNyBAQCB0ZW1wbGF0ZSA8Y2xhc3Mg
VHJlZUJ1aWxkZXI+IGJvb2wgUGFyc2VyPExleGVyVHlwZT46OnBhcnNlRnVuY3Rpb25JbmZvKFRy
ZWVCdWlsZAogICAgICAgICAgICAgZW5kTG9jYXRpb24uc3RhcnRPZmZzZXQgLSBlbmRMb2NhdGlv
bi5saW5lU3RhcnRPZmZzZXQ7CiAKICAgICAgICAgYm9keSA9IGNvbnRleHQuY3JlYXRlRnVuY3Rp
b25Cb2R5KHN0YXJ0TG9jYXRpb24sIGVuZExvY2F0aW9uLCBib2R5U3RhcnRDb2x1bW4sIGJvZHlF
bmRDb2x1bW4sIGNhY2hlZEluZm8tPnN0cmljdE1vZGUpOwotICAgICAgICBjb250ZXh0LnNldEZ1
bmN0aW9uQm9keVBhcmFtZXRlcnMoYm9keSwgb3BlblBhcmVuLCBlbmRQYXJlbik7CisgICAgICAg
IAogICAgICAgICBmdW5jdGlvblNjb3BlLT5yZXN0b3JlRnJvbVNvdXJjZVByb3ZpZGVyQ2FjaGUo
Y2FjaGVkSW5mbyk7CiAgICAgICAgIGZhaWxJZkZhbHNlKHBvcFNjb3BlKGZ1bmN0aW9uU2NvcGUs
IFRyZWVCdWlsZGVyOjpOZWVkc0ZyZWVWYXJpYWJsZUluZm8pLCAiUGFyc2VyIGVycm9yIik7CiAg
ICAgICAgIApAQCAtMTMwMyw3ICsxMzAxLDYgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVy
PiBib29sIFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUZ1bmN0aW9uSW5mbyhUcmVlQnVpbGQKICAg
ICBib2R5ID0gcGFyc2VGdW5jdGlvbkJvZHkoY29udGV4dCk7CiAgICAgcmVzdG9yZVN0YXRlKG9s
ZFN0YXRlKTsKICAgICBmYWlsSWZGYWxzZShib2R5LCAiQ2Fubm90IHBhcnNlIHRoZSBib2R5IG9m
IHRoaXMgIiwgc3RyaW5nRm9yRnVuY3Rpb25Nb2RlKG1vZGUpKTsKLSAgICBjb250ZXh0LnNldEZ1
bmN0aW9uQm9keVBhcmFtZXRlcnMoYm9keSwgb3BlblBhcmVuLCBlbmRQYXJlbik7CiAgICAgaWYg
KGZ1bmN0aW9uU2NvcGUtPnN0cmljdE1vZGUoKSAmJiBuYW1lKSB7CiAgICAgICAgIFJFTEVBU0Vf
QVNTRVJUKG1vZGUgPT0gRnVuY3Rpb25Nb2RlKTsKICAgICAgICAgc2VtYW50aWNGYWlsSWZUcnVl
KG1fdm0tPnByb3BlcnR5TmFtZXMtPmFyZ3VtZW50cyA9PSAqbmFtZSwgIiciLCBuYW1lLT5pbXBs
KCksICInIGlzIG5vdCBhIHZhbGlkIGZ1bmN0aW9uIG5hbWUgaW4gc3RyaWN0IG1vZGUiKTsKQEAg
LTI0MDcsMjUgKzI0MDQsNiBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgTGV4ZXJUeXBlPiB2b2lkIFBh
cnNlcjxMZXhlclR5cGU+OjpwcmludFVuZXhwZWN0ZWRUb2tlblRleHQoVwogICAgIG91dC5wcmlu
dCgiVW5leHBlY3RlZCB0b2tlbiAnIiwgZ2V0VG9rZW4oKSwgIiciKTsKIH0KIAotUGFzc1JlZlB0
cjxGdW5jdGlvblBhcmFtZXRlcnM+IHBhcnNlUGFyYW1ldGVycyhWTSogdm0sIGNvbnN0IFNvdXJj
ZUNvZGUmIHNvdXJjZSwgSlNQYXJzZXJTdHJpY3RuZXNzIHN0cmljdG5lc3MpCi17Ci0gICAgU2Ft
cGxpbmdSZWdpb24gc2FtcGxpbmdSZWdpb24oIlBhcnNpbmcgcGFyYW1ldGVycyIpOwotICAgIFBh
cmFtZXRlck5vZGUqIHBhcmFtZXRlcnMgPSAwOwotICAgIEFTU0VSVCghc291cmNlLnByb3ZpZGVy
KCktPnNvdXJjZSgpLmlzTnVsbCgpKTsKLSAgICBpZiAoc291cmNlLnByb3ZpZGVyKCktPnNvdXJj
ZSgpLmlzOEJpdCgpKSB7Ci0gICAgICAgIFBhcnNlcjxMZXhlcjxMQ2hhcj4+IHBhcnNlcih2bSwg
c291cmNlLCAwLCBJZGVudGlmaWVyKCksIHN0cmljdG5lc3MsIEpTUGFyc2VGdW5jdGlvbkNvZGUp
OwotICAgICAgICBBU1RCdWlsZGVyIGJ1aWxkZXIodm0sICZzb3VyY2UpOwotICAgICAgICBwYXJh
bWV0ZXJzID0gcGFyc2VyLnBhcnNlRm9ybWFsUGFyYW1ldGVycyhidWlsZGVyKTsKLSAgICB9IGVs
c2UgewotICAgICAgICBQYXJzZXI8TGV4ZXI8VUNoYXI+PiBwYXJzZXIodm0sIHNvdXJjZSwgMCwg
SWRlbnRpZmllcigpLCBzdHJpY3RuZXNzLCBKU1BhcnNlRnVuY3Rpb25Db2RlKTsKLSAgICAgICAg
QVNUQnVpbGRlciBidWlsZGVyKHZtLCAmc291cmNlKTsKLSAgICAgICAgcGFyYW1ldGVycyA9IHBh
cnNlci5wYXJzZUZvcm1hbFBhcmFtZXRlcnMoYnVpbGRlcik7Ci0gICAgfQotICAgIGlmICghcGFy
YW1ldGVycykKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIEZ1bmN0aW9uUGFy
YW1ldGVyczo6Y3JlYXRlKHBhcmFtZXRlcnMpOwotfQotCiAvLyBJbnN0YW50aWF0ZSB0aGUgdHdv
IGZsYXZvcnMgb2YgUGFyc2VyIHdlIG5lZWQgaW5zdGVhZCBvZiBwdXR0aW5nIG1vc3Qgb2YgdGhp
cyBmaWxlIGluIFBhcnNlci5oCiB0ZW1wbGF0ZSBjbGFzcyBQYXJzZXI8TGV4ZXI8TENoYXI+PjsK
IHRlbXBsYXRlIGNsYXNzIFBhcnNlcjxMZXhlcjxVQ2hhcj4+OwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvUGFyc2VyLmgKaW5kZXggMjJhYTMyM2U0ZWU0ZjBkNGQxMTQyMWYxNWViMjYyMDI3YWE1
NDRjYS4uZDY5ODhlN2VhNjM3MDI3NzI1NWMwODM5MDBjOTFmYjY5MWJjYjhkNyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5oCkBAIC00MDksNyArNDA5LDYgQEAgdGVtcGxhdGUg
PHR5cGVuYW1lIExleGVyVHlwZT4KIGNsYXNzIFBhcnNlciB7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoUGFyc2VyKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLSAgICBmcmllbmQg
UGFzc1JlZlB0cjxGdW5jdGlvblBhcmFtZXRlcnM+IHBhcnNlUGFyYW1ldGVycyhWTSosIGNvbnN0
IFNvdXJjZUNvZGUmLCBKU1BhcnNlclN0cmljdG5lc3MpOwogCiBwdWJsaWM6CiAgICAgUGFyc2Vy
KFZNKiwgY29uc3QgU291cmNlQ29kZSYsIEZ1bmN0aW9uUGFyYW1ldGVycyosIGNvbnN0IElkZW50
aWZpZXImLCBKU1BhcnNlclN0cmljdG5lc3MsIEpTUGFyc2VyTW9kZSk7CkBAIC05NzMsNyArOTcy
LDYgQEAgUGFzc1JlZlB0cjxQYXJzZWROb2RlPiBwYXJzZShWTSogdm0sIGNvbnN0IFNvdXJjZUNv
ZGUmIHNvdXJjZSwgRnVuY3Rpb25QYXJhbWV0ZXIKICAgICAgICAgfQogICAgICAgICByZXR1cm4g
cmVzdWx0LnJlbGVhc2UoKTsKICAgICB9Ci0gICAgUkVMRUFTRV9BU1NFUlQoc3RyaWN0bmVzcyAh
PSBKU1BhcnNlQnVpbHRpbik7CiAgICAgUGFyc2VyPExleGVyPFVDaGFyPj4gcGFyc2VyKHZtLCBz
b3VyY2UsIHBhcmFtZXRlcnMsIG5hbWUsIHN0cmljdG5lc3MsIHBhcnNlck1vZGUpOwogICAgIFJl
ZlB0cjxQYXJzZWROb2RlPiByZXN1bHQgPSBwYXJzZXIucGFyc2U8UGFyc2VkTm9kZT4oZXJyb3Ip
OwogICAgIGlmIChwb3NpdGlvbkJlZm9yZUxhc3ROZXdsaW5lKQpAQCAtOTgxLDcgKzk3OSw1IEBA
IFBhc3NSZWZQdHI8UGFyc2VkTm9kZT4gcGFyc2UoVk0qIHZtLCBjb25zdCBTb3VyY2VDb2RlJiBz
b3VyY2UsIEZ1bmN0aW9uUGFyYW1ldGVyCiAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlKCk7CiB9
CiAKLVBhc3NSZWZQdHI8RnVuY3Rpb25QYXJhbWV0ZXJzPiBwYXJzZVBhcmFtZXRlcnMoVk0qLCBj
b25zdCBTb3VyY2VDb2RlJiwgSlNQYXJzZXJTdHJpY3RuZXNzKTsKLQogfSAvLyBuYW1lc3BhY2UK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VD
b2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZUNvZGUuaAppbmRleCA4
MDhlODVmMjUzNWIzYTJlNTU4NTJiMThjYzAwZDFiYTkxN2UwYzdmLi43M2QyM2RiODJhZjI1ZWE0
NmMwZjg5Nzg1Y2U0MjRiYjYwZWI2MWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL1NvdXJjZUNvZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L1NvdXJjZUNvZGUuaApAQCAtMTAzLDcgKzEwMyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICBpbnQgZW5kT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9lbmRDaGFyOyB9CiAgICAgICAgIGlu
dCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2VuZENoYXIgLSBtX3N0YXJ0Q2hhcjsgfQogICAg
ICAgICAKLSAgICAgICAgU291cmNlQ29kZSBzdWJFeHByZXNzaW9uKHVuc2lnbmVkIG9wZW5CcmFj
ZSwgdW5zaWduZWQgY2xvc2VCcmFjZSwgaW50IGZpcnN0TGluZSwgaW50IHN0YXJ0Q29sdW1uKSBj
b25zdDsKKyAgICAgICAgU291cmNlQ29kZSBzdWJFeHByZXNzaW9uKHVuc2lnbmVkIG9wZW5CcmFj
ZSwgdW5zaWduZWQgY2xvc2VCcmFjZSwgaW50IGZpcnN0TGluZSwgaW50IHN0YXJ0Q29sdW1uKTsK
IAogICAgIHByaXZhdGU6CiAgICAgICAgIFJlZlB0cjxTb3VyY2VQcm92aWRlcj4gbV9wcm92aWRl
cjsKQEAgLTExOCw3ICsxMTgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgcmV0dXJuIFNv
dXJjZUNvZGUoU3RyaW5nU291cmNlUHJvdmlkZXI6OmNyZWF0ZShzb3VyY2UsIHVybCwgc3RhcnRQ
b3NpdGlvbiksIHN0YXJ0UG9zaXRpb24ubV9saW5lLm9uZUJhc2VkSW50KCksIHN0YXJ0UG9zaXRp
b24ubV9jb2x1bW4ub25lQmFzZWRJbnQoKSk7CiAgICAgfQogCi0gICAgaW5saW5lIFNvdXJjZUNv
ZGUgU291cmNlQ29kZTo6c3ViRXhwcmVzc2lvbih1bnNpZ25lZCBvcGVuQnJhY2UsIHVuc2lnbmVk
IGNsb3NlQnJhY2UsIGludCBmaXJzdExpbmUsIGludCBzdGFydENvbHVtbikgY29uc3QKKyAgICBp
bmxpbmUgU291cmNlQ29kZSBTb3VyY2VDb2RlOjpzdWJFeHByZXNzaW9uKHVuc2lnbmVkIG9wZW5C
cmFjZSwgdW5zaWduZWQgY2xvc2VCcmFjZSwgaW50IGZpcnN0TGluZSwgaW50IHN0YXJ0Q29sdW1u
KQogICAgIHsKICAgICAgICAgQVNTRVJUKHByb3ZpZGVyKCktPnNvdXJjZSgpW29wZW5CcmFjZV0g
PT0gJ3snKTsKICAgICAgICAgQVNTRVJUKHByb3ZpZGVyKCktPnNvdXJjZSgpW2Nsb3NlQnJhY2Vd
ID09ICd9Jyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRh
eENoZWNrZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU3ludGF4Q2hlY2tlci5o
CmluZGV4IDQ0MTAyOWJiOTJhYTIxYzM3OTljMTk3MDZhYTgyNmE2MGVjMDZlZTguLjg5MTJkOGI4
OGI4MzlkMGY5NTc3YmUxMDY0OWZiZGRhOGY3YWJmZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvU3ludGF4Q2hlY2tlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvU3ludGF4Q2hlY2tlci5oCkBAIC0xNjAsNyArMTYwLDYgQEAgcHVibGljOgog
ICAgIEV4cHJlc3Npb25UeXBlIGNyZWF0ZUFzc2lnblJlc29sdmUoY29uc3QgSlNUb2tlbkxvY2F0
aW9uJiwgY29uc3QgSWRlbnRpZmllciYsIEV4cHJlc3Npb25UeXBlLCBpbnQsIGludCwgaW50KSB7
IHJldHVybiBBc3NpZ25tZW50RXhwcjsgfQogICAgIEV4cHJlc3Npb25UeXBlIGNyZWF0ZUZ1bmN0
aW9uRXhwcihjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVudGlmaWVyKiwgaW50LCBp
bnQsIGludCwgaW50LCBpbnQsIGludCwgaW50KSB7IHJldHVybiBGdW5jdGlvbkV4cHI7IH0KICAg
ICBpbnQgY3JlYXRlRnVuY3Rpb25Cb2R5KGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGNvbnN0IEpT
VG9rZW5Mb2NhdGlvbiYsIGludCwgaW50LCBib29sKSB7IHJldHVybiBGdW5jdGlvbkJvZHlSZXN1
bHQ7IH0KLSAgICB2b2lkIHNldEZ1bmN0aW9uQm9keVBhcmFtZXRlcnMoaW50LCBjb25zdCBKU1Rv
a2VuTG9jYXRpb24mLCBjb25zdCBKU1Rva2VuTG9jYXRpb24mKSB7IH0KICAgICB2b2lkIHNldEZ1
bmN0aW9uTmFtZVN0YXJ0KGludCwgaW50KSB7IH0KICAgICBpbnQgY3JlYXRlQXJndW1lbnRzKCkg
eyByZXR1cm4gQXJndW1lbnRzUmVzdWx0OyB9CiAgICAgaW50IGNyZWF0ZUFyZ3VtZW50cyhpbnQp
IHsgcmV0dXJuIEFyZ3VtZW50c1Jlc3VsdDsgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDg4Y2RiNTYxMTA0NTEwZWQxMDQ4
YWFmYWE2YWY5YWFjMzA4YWYwZjcuLjExODQxYWI3NTUxY2UwNTdkYmNmMGU1NzQ5YjkyMDdlNjZk
OWViYTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNC0wNS0wMSAgQ29tbWl0IFF1ZXVlICA8
Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBv
dXQgcjE2Nzk2NC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzMjQzMQorCisgICAgICAgIE1lbW9yeSBpbXByb3ZlbWVudHMgc2hvdWxkIG5vdCByZWdy
ZXNzIG1lbW9yeSB1c2FnZSAoUmVxdWVzdGVkCisgICAgICAgIGJ5IG9sbGllaiBvbiAjd2Via2l0
KS4KKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAgIkRvbid0IGhvbGQg
b24gdG8gcGFyYW1ldGVyIEJpbmRpbmdOb2RlcyBmb3JldmVyIgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyMzYwCisgICAgICAgIGh0dHA6Ly90cmFj
LndlYmtpdC5vcmcvY2hhbmdlc2V0LzE2Nzk2NAorCiAyMDE0LTA1LTAxICBBbGV4ZXkgUHJvc2t1
cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIGZhc3QvbXVsdGljb2wvZml4ZWQtc3Rh
Y2suaHRtbCBmYWlsaW5nIHNpbmNlIGludHJvZHVjdGlvbi4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2pzL2Rlc3RydWN0dXJpbmctYXNzaWdubWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9qcy9kZXN0cnVjdHVyaW5nLWFzc2lnbm1lbnQtZXhwZWN0ZWQudHh0CmluZGV4IDBiNTQzNGZj
NWFmOWIzZjdmM2EzYTgwN2FmNWI1OTI3Mzg3ODNjYTEuLmI1NDA1ZDllMzBlMTNjMzk0ODgyN2Jl
Mzc5YmM1NWQ2MjAzNGM4YmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL2Rlc3RydWN0dXJp
bmctYXNzaWdubWVudC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvanMvZGVzdHJ1Y3R1
cmluZy1hc3NpZ25tZW50LWV4cGVjdGVkLnR4dApAQCAtMTIsNyArMTIsNyBAQCBQQVNTIFthLGJd
PVsnMScsJzInXTsgdmFyIHI9YStiOyByIGlzICcxMicKIFBBU1MgdmFyIHthLGJ9PXthOicxJyxi
OicyJ307IHZhciByPWErYjsgciBpcyAnMTInCiBGdW5jdGlvbiBhcyBTdHJpbmc6IChmdW5jdGlv
bih7YSxifSkgeyByZXR1cm4gYStiO30pCiBQQVNTIChmdW5jdGlvbih7YSxifSkgeyByZXR1cm4g
YStiO30pKHthOicxJyxiOicyJ30pIGlzICcxMicKLVBBU1MgKGZ1bmN0aW9uICh7YSxifSkgeyBy
ZXR1cm4gYStiO30pKHthOicxJyxiOicyJ30pIGlzICcxMicKK1BBU1MgKGZ1bmN0aW9uICh7YTph
LGI6Yn0pIHsgcmV0dXJuIGErYjt9KSh7YTonMScsYjonMid9KSBpcyAnMTInCiBQQVNTICh7YSxi
fT17YTonMScsYjonMid9KTsgdmFyIHI9YStiOyByIGlzICcxMicKIFBBU1MgdmFyIHtjOmEsZDpi
fT17YzonMScsZDonMid9OyB2YXIgcj1hK2I7IHIgaXMgJzEyJwogRnVuY3Rpb24gYXMgU3RyaW5n
OiAoZnVuY3Rpb24oe2M6YSxkOmJ9KSB7IHJldHVybiBhK2I7fSkKQEAgLTI3LDcgKzI3LDcgQEAg
UEFTUyAoe2M6YixkOmF9PXtjOicxJyxkOicyJ30pOyB2YXIgcj1hK2I7IHIgaXMgJzIxJwogUEFT
UyB2YXIge3RydWU6YSxmYWxzZTpiLHVuZGVmaW5lZDpjLG51bGw6ZCxpbjplLGZvcjpmLDEuNTpn
LCdmb28gYmFyJzpofT17dHJ1ZTonYScsZmFsc2U6J2InLHVuZGVmaW5lZDonYycsbnVsbDonZCcs
aW46J2UnLGZvcjonZicsMS41OidnJywnZm9vIGJhcic6J2gnfTsgdmFyIHI9YStiK2MrZCtlK2Yr
ZytoOyByIGlzICdhYmNkZWZnaCcKIEZ1bmN0aW9uIGFzIFN0cmluZzogKGZ1bmN0aW9uKHt0cnVl
OmEsZmFsc2U6Yix1bmRlZmluZWQ6YyxudWxsOmQsaW46ZSxmb3I6ZiwxLjU6ZywnZm9vIGJhcic6
aH0pIHsgcmV0dXJuIGErYitjK2QrZStmK2craDt9KQogUEFTUyAoZnVuY3Rpb24oe3RydWU6YSxm
YWxzZTpiLHVuZGVmaW5lZDpjLG51bGw6ZCxpbjplLGZvcjpmLDEuNTpnLCdmb28gYmFyJzpofSkg
eyByZXR1cm4gYStiK2MrZCtlK2YrZytoO30pKHt0cnVlOidhJyxmYWxzZTonYicsdW5kZWZpbmVk
OidjJyxudWxsOidkJyxpbjonZScsZm9yOidmJywxLjU6J2cnLCdmb28gYmFyJzonaCd9KSBpcyAn
YWJjZGVmZ2gnCi1QQVNTIChmdW5jdGlvbiAoe3RydWU6YSxmYWxzZTpiLHVuZGVmaW5lZDpjLG51
bGw6ZCxpbjplLGZvcjpmLDEuNTpnLCdmb28gYmFyJzpofSkgeyByZXR1cm4gYStiK2MrZCtlK2Yr
ZytoO30pKHt0cnVlOidhJyxmYWxzZTonYicsdW5kZWZpbmVkOidjJyxudWxsOidkJyxpbjonZScs
Zm9yOidmJywxLjU6J2cnLCdmb28gYmFyJzonaCd9KSBpcyAnYWJjZGVmZ2gnCitQQVNTIChmdW5j
dGlvbiAoe3RydWU6YSxmYWxzZTpiLHVuZGVmaW5lZDpjLG51bGw6ZCxpbjplLGZvcjpmLDEuNTpn
LCJmb28gYmFyIjpofSkgeyByZXR1cm4gYStiK2MrZCtlK2YrZytoO30pKHt0cnVlOidhJyxmYWxz
ZTonYicsdW5kZWZpbmVkOidjJyxudWxsOidkJyxpbjonZScsZm9yOidmJywxLjU6J2cnLCdmb28g
YmFyJzonaCd9KSBpcyAnYWJjZGVmZ2gnCiBQQVNTICh7dHJ1ZTphLGZhbHNlOmIsdW5kZWZpbmVk
OmMsbnVsbDpkLGluOmUsZm9yOmYsMS41OmcsJ2ZvbyBiYXInOmh9PXt0cnVlOidhJyxmYWxzZTon
YicsdW5kZWZpbmVkOidjJyxudWxsOidkJyxpbjonZScsZm9yOidmJywxLjU6J2cnLCdmb28gYmFy
JzonaCd9KTsgdmFyIHI9YStiK2MrZCtlK2YrZytoOyByIGlzICdhYmNkZWZnaCcKIFBBU1MgdmFy
IFt7YzphLGQ6Yn1dPVt7YzonMScsZDonMid9XTsgdmFyIHI9YStiOyByIGlzICcxMicKIEZ1bmN0
aW9uIGFzIFN0cmluZzogKGZ1bmN0aW9uKFt7YzphLGQ6Yn1dKSB7IHJldHVybiBhK2I7fSkKQEAg
LTQ5LDcgKzQ5LDcgQEAgUEFTUyBbYSxiXT1hbkFycmF5OyB2YXIgcj1hK2I7IHIgaXMgJzEyJwog
UEFTUyB2YXIge2EsYn09YW5BcnJheTsgdmFyIHI9YStiOyByIGlzICczNCcKIEZ1bmN0aW9uIGFz
IFN0cmluZzogKGZ1bmN0aW9uKHthLGJ9KSB7IHJldHVybiBhK2I7fSkKIFBBU1MgKGZ1bmN0aW9u
KHthLGJ9KSB7IHJldHVybiBhK2I7fSkoYW5BcnJheSkgaXMgJzM0JwotUEFTUyAoZnVuY3Rpb24g
KHthLGJ9KSB7IHJldHVybiBhK2I7fSkoYW5BcnJheSkgaXMgJzM0JworUEFTUyAoZnVuY3Rpb24g
KHthOmEsYjpifSkgeyByZXR1cm4gYStiO30pKGFuQXJyYXkpIGlzICczNCcKIFBBU1MgKHthLGJ9
PWFuQXJyYXkpOyB2YXIgcj1hK2I7IHIgaXMgJzM0JwogUEFTUyB2YXIge2E6YSxiOmJ9PWFuQXJy
YXk7IHZhciByPWErYjsgciBpcyAnMzQnCiBGdW5jdGlvbiBhcyBTdHJpbmc6IChmdW5jdGlvbih7
YTphLGI6Yn0pIHsgcmV0dXJuIGErYjt9KQpAQCAtNTksNyArNTksNyBAQCBQQVNTICh7YTphLGI6
Yn09YW5BcnJheSk7IHZhciByPWErYjsgciBpcyAnMzQnCiBQQVNTIHZhciB7YSxifT1hbk9iamVj
dDsgdmFyIHI9YStiOyByIGlzICcxMicKIEZ1bmN0aW9uIGFzIFN0cmluZzogKGZ1bmN0aW9uKHth
LGJ9KSB7IHJldHVybiBhK2I7fSkKIFBBU1MgKGZ1bmN0aW9uKHthLGJ9KSB7IHJldHVybiBhK2I7
fSkoYW5PYmplY3QpIGlzICcxMicKLVBBU1MgKGZ1bmN0aW9uICh7YSxifSkgeyByZXR1cm4gYSti
O30pKGFuT2JqZWN0KSBpcyAnMTInCitQQVNTIChmdW5jdGlvbiAoe2E6YSxiOmJ9KSB7IHJldHVy
biBhK2I7fSkoYW5PYmplY3QpIGlzICcxMicKIFBBU1MgKHthLGJ9PWFuT2JqZWN0KTsgdmFyIHI9
YStiOyByIGlzICcxMicKIFBBU1MgdmFyIHthOmEsYjpifT1hbk9iamVjdDsgdmFyIHI9YStiOyBy
IGlzICcxMicKIEZ1bmN0aW9uIGFzIFN0cmluZzogKGZ1bmN0aW9uKHthOmEsYjpifSkgeyByZXR1
cm4gYStiO30pCkBAIC03NCw3ICs3NCw3IEBAIFBBU1MgKHswOmEsMTpifT1hbk9iamVjdCk7IHZh
ciByPWErYjsgciBpcyAnMzQnCiBQQVNTIHZhciB7J2EnOmEsJ2InOmJ9PWFuT2JqZWN0OyB2YXIg
cj1hK2I7IHIgaXMgJzEyJwogRnVuY3Rpb24gYXMgU3RyaW5nOiAoZnVuY3Rpb24oeydhJzphLCdi
JzpifSkgeyByZXR1cm4gYStiO30pCiBQQVNTIChmdW5jdGlvbih7J2EnOmEsJ2InOmJ9KSB7IHJl
dHVybiBhK2I7fSkoYW5PYmplY3QpIGlzICcxMicKLVBBU1MgKGZ1bmN0aW9uICh7J2EnOmEsJ2In
OmJ9KSB7IHJldHVybiBhK2I7fSkoYW5PYmplY3QpIGlzICcxMicKK1BBU1MgKGZ1bmN0aW9uICh7
ImEiOmEsImIiOmJ9KSB7IHJldHVybiBhK2I7fSkoYW5PYmplY3QpIGlzICcxMicKIFBBU1MgKHsn
YSc6YSwnYic6Yn09YW5PYmplY3QpOyB2YXIgcj1hK2I7IHIgaXMgJzEyJwogUEFTUyBhK2IgaXMg
JzExMjInCiBQQVNTIGErYiBpcyAnMjIxMScK
</data>

          </attachment>
      

    </bug>

</bugzilla>