<?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>154982</bug_id>
          
          <creation_ts>2016-03-03 14:20:54 -0800</creation_ts>
          <short_desc>JSArrayBuffers should be collected less aggressively</short_desc>
          <delta_ts>2016-03-03 19:19:06 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit 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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Miller">keith_miller</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1170326</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-03-03 14:20:54 -0800</bug_when>
    <thetext>JSArrayBuffers should be collected less aggressively</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170327</commentid>
    <comment_count>1</comment_count>
      <attachid>272777</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-03-03 14:34:37 -0800</bug_when>
    <thetext>Created attachment 272777
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170349</commentid>
    <comment_count>2</comment_count>
      <attachid>272777</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-03-03 15:48:20 -0800</bug_when>
    <thetext>Comment on attachment 272777
Patch

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

&gt; Source/JavaScriptCore/runtime/JSArrayBuffer.h:43
&gt; +    enum class WrapperMode {
&gt; +        Wrap,
&gt; +        DontWrap
&gt; +    };

Let&apos;s not do these modes just to avoid one virtual function call -- unless you have some benchmark data that says we need to. We&apos;re already on the slow path, so the goal is to be reliable, understandable, and correct.

&gt; Source/JavaScriptCore/runtime/JSGenericTypedArrayViewInlines.h:-439
&gt; -        RELEASE_ASSERT(thisObject-&gt;existingBufferInButterfly());

Why isn&apos;t this ASSERT valid? This is the kind of thing you should explain in the ChangeLog.

&gt; Source/JavaScriptCore/runtime/SimpleTypedArrayController.h:52
&gt; +    virtual void registerWrapper(JSGlobalObject*, ArrayBuffer*, JSArrayBuffer*) override;

Please update the comment above about &quot;and it didn&apos;t die&quot; -- that&apos;s not really how this works anymore.

&gt; Source/WebCore/bindings/js/JSDOMBinding.h:-412
&gt; -    buffer-&gt;ref();

You should explain in the ChangeLog that this ref() was balanced by a deref() in finalize(), but both were unnecessary because...

What is the other mechanism that manages this lifetime?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170391</commentid>
    <comment_count>3</comment_count>
      <attachid>272795</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-03-03 16:33:17 -0800</bug_when>
    <thetext>Created attachment 272795
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170398</commentid>
    <comment_count>4</comment_count>
      <attachid>272795</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-03-03 16:46:37 -0800</bug_when>
    <thetext>Comment on attachment 272795
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170460</commentid>
    <comment_count>5</comment_count>
      <attachid>272795</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-03 19:19:03 -0800</bug_when>
    <thetext>Comment on attachment 272795
Patch

Clearing flags on attachment: 272795

Committed r197543: &lt;http://trac.webkit.org/changeset/197543&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170461</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-03 19:19:06 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272777</attachid>
            <date>2016-03-03 14:34:37 -0800</date>
            <delta_ts>2016-03-03 16:33:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154982-20160303143422.patch</filename>
            <type>text/plain</type>
            <size>19519</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3NDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
OGMxZjg1NDdhODMxYjVlNjE0YzBhNzA4NDI5NTlhMDM5ODNlN2JlLi44MGMzMmY1Mzc3MTQ4NGVh
ODMwOWJkYjE3NTA1ZmZhZWRmODE3NzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAxNi0wMy0wMyAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBKU0FycmF5QnVmZmVycyBzaG91bGQgYmUgY29sbGVjdGVkIGxlc3Mg
YWdncmVzc2l2ZWx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTQ5ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBXZSBhcmUgY3VycmVudGx5IHRvbyBhZ2dyZXNzaXZlIGluIG91ciBjb2xsZWN0aW9uIG9m
IEFycmF5QnVmZmVyIHdyYXBwZXJzLgorICAgICAgICBUaGVyZSBhcmUgdGhyZWUgY2FzZXMgd2hl
cmUgd2UgbmVlZCB0byBhdm9pZCBjb2xsZWN0aW5nIEFycmF5QnVmZmVyIHdyYXBwZXJzLgorICAg
ICAgICAxLiBJZiB0aGUgd3JhcHBlciBoYXMgY3VzdG9tIHByb3BlcnRpZXMuCisgICAgICAgIDIu
IElmIHRoZSB3cmFwcGVyIGlzIGEgc3ViY2xhc3Mgb2YgQXJyYXlCdWZmZXIuCisgICAgICAgIDMu
IElmIHRoZSB3cmFwcGVyIGlzIGluIGEgV2Vha01hcC9XZWFrU2V0LgorCisgICAgICAgIEN1cnJl
bnRseSwgd2Ugb25seSBwYXNzIHRoZSBmaXJzdCBjYXNlIGluIFdlYkNvcmUgYW5kIG5vbmUgaW4g
dGhlIGpzYyBDTEkuCisgICAgICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBzb21lIG9wdGltaXphdGlv
bnMgdGhhdCBjYXVzZSB1cyB0byBjb2xsZWN0IHdoZW4gd2UKKyAgICAgICAgc2hvdWxkIG5vdC4g
TmFtZWx5LCBhbHdheXMgc2tpcHBpbmcgdGhlIG9iamVjdCB1bmxlc3MgaXQgaGFzIGN1c3RvbQor
ICAgICAgICBwcm9wZXJ0aWVzLiBBZGRpdGlvbmFsbHksIGluIHRoZSBjYXNlIG9mIHN1YmNsYXNz
aW5nLCB3ZSBhbHNvIG5lZWQgYSB3YXkKKyAgICAgICAgZm9yIGN1c3RvbSBKU0FycmF5QnVmZmVy
IG9iamVjdHMgdG8gcmVnaXN0ZXIgdGhlbXNlbHZlcyBhcyB0aGUgd3JhcHBlciBmb3IKKyAgICAg
ICAgYW4gQXJyYXlCdWZmZXIgY2xhc3MuCisKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXlCdWZm
ZXIuY3BwOgorICAgICAgICAoSlNDOjpKU0FycmF5QnVmZmVyOjpmaW5pc2hDcmVhdGlvbik6Cisg
ICAgICAgIChKU0M6OkpTQXJyYXlCdWZmZXI6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkpTQXJy
YXlCdWZmZXI6OmNyZWF0ZVdpdGhvdXRXcmFwcGluZyk6CisgICAgICAgICogcnVudGltZS9KU0Fy
cmF5QnVmZmVyLmg6CisgICAgICAgICogcnVudGltZS9KU0FycmF5QnVmZmVyVmlldy5jcHA6Cisg
ICAgICAgIChKU0M6OkpTQXJyYXlCdWZmZXJWaWV3Ojp2aXNpdENoaWxkcmVuKToKKyAgICAgICAg
KiBydW50aW1lL0pTQXJyYXlCdWZmZXJWaWV3Lmg6CisgICAgICAgICogcnVudGltZS9KU0dlbmVy
aWNUeXBlZEFycmF5Vmlld0lubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SlNHZW5lcmljVHlwZWRB
cnJheVZpZXc8QWRhcHRvcj46OnZpc2l0Q2hpbGRyZW4pOiBEZWxldGVkLgorICAgICAgICAqIHJ1
bnRpbWUvU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoSlNDOjpTaW1w
bGVUeXBlZEFycmF5Q29udHJvbGxlcjo6dG9KUyk6CisgICAgICAgIChKU0M6OlNpbXBsZVR5cGVk
QXJyYXlDb250cm9sbGVyOjpyZWdpc3RlcldyYXBwZXIpOgorICAgICAgICAoSlNDOjpTaW1wbGVU
eXBlZEFycmF5Q29udHJvbGxlcjo6SlNBcnJheUJ1ZmZlck93bmVyOjppc1JlYWNoYWJsZUZyb21P
cGFxdWVSb290cyk6CisgICAgICAgIChKU0M6OlNpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyOjpK
U0FycmF5QnVmZmVyT3duZXI6OmZpbmFsaXplKToKKyAgICAgICAgKiBydW50aW1lL1NpbXBsZVR5
cGVkQXJyYXlDb250cm9sbGVyLmg6CisgICAgICAgICogcnVudGltZS9UeXBlZEFycmF5Q29udHJv
bGxlci5oOgorCiAyMDE2LTAzLTAyICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgog
CiAgICAgICAgIFNJR1NFR1YgaW4gUHJveHkgW1tHZXRdXSBhbmQgW1tTZXRdXSByZWN1cnNpb24K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlYjYxZjE5OTFhMWE1OGJmNDgzZGI3ZmIyMTEzZjI3ZjVjZDE2NTlmLi5m
NGY2NmQ3N2Y4YmM1NzMwOTJjZTRjZjE5NzM5ZTZiZDFlNjQ2ODI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzMgQEAKKzIwMTYtMDMtMDMgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgSlNBcnJheUJ1ZmZlcnMgc2hvdWxkIGJlIGNvbGxlY3RlZCBsZXNz
IGFnZ3Jlc3NpdmVseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTU0OTgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgV2UgYXJlIGN1cnJlbnRseSB0b28gYWdncmVzc2l2ZSBpbiBvdXIgY29sbGVjdGlvbiBv
ZiBBcnJheUJ1ZmZlciB3cmFwcGVycy4KKyAgICAgICAgVGhlcmUgYXJlIHRocmVlIGNhc2VzIHdo
ZXJlIHdlIG5lZWQgdG8gYXZvaWQgY29sbGVjdGluZyBBcnJheUJ1ZmZlciB3cmFwcGVycy4KKyAg
ICAgICAgMS4gSWYgdGhlIHdyYXBwZXIgaGFzIGN1c3RvbSBwcm9wZXJ0aWVzLgorICAgICAgICAy
LiBJZiB0aGUgd3JhcHBlciBpcyBhIHN1YmNsYXNzIG9mIEFycmF5QnVmZmVyLgorICAgICAgICAz
LiBJZiB0aGUgd3JhcHBlciBpcyBpbiBhIFdlYWtNYXAvV2Vha1NldC4KKworICAgICAgICBDdXJy
ZW50bHksIHdlIG9ubHkgcGFzcyB0aGUgZmlyc3QgY2FzZSBpbiBXZWJDb3JlIGFuZCBub25lIGlu
IHRoZSBqc2MgQ0xJLgorICAgICAgICBUaGlzIHBhdGNoIHJlbW92ZXMgc29tZSBvcHRpbWl6YXRp
b25zIHRoYXQgY2F1c2UgdXMgdG8gY29sbGVjdCB3aGVuIHdlCisgICAgICAgIHNob3VsZCBub3Qu
IE5hbWVseSwgYWx3YXlzIHNraXBwaW5nIHRoZSBvYmplY3QgdW5sZXNzIGl0IGhhcyBjdXN0b20K
KyAgICAgICAgcHJvcGVydGllcy4gQWRkaXRpb25hbGx5LCBpbiB0aGUgY2FzZSBvZiBzdWJjbGFz
c2luZywgd2UgYWxzbyBuZWVkIGEgd2F5CisgICAgICAgIGZvciBjdXN0b20gSlNBcnJheUJ1ZmZl
ciBvYmplY3RzIHRvIHJlZ2lzdGVyIHRoZW1zZWx2ZXMgYXMgdGhlIHdyYXBwZXIgZm9yCisgICAg
ICAgIGFuIEFycmF5QnVmZmVyIGNsYXNzLgorCisgICAgICAgIFRlc3Q6IGpzL2FycmF5YnVmZmVy
LXdyYXBwZXJzLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oOgor
ICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZVR5
cGVkQXJyYXlDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVUeXBlZEFy
cmF5Q29udHJvbGxlcjo6cmVnaXN0ZXJXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNv
cmVUeXBlZEFycmF5Q29udHJvbGxlcjo6SlNBcnJheUJ1ZmZlck93bmVyOjpmaW5hbGl6ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXI6OkpTQXJyYXlCdWZm
ZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOiBEZWxldGVkLgorICAgICAgICAq
IGJpbmRpbmdzL2pzL1dlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5oOgorCiAyMDE2LTAzLTAx
ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIE1ha2UgSFRNTCBw
YXJzZXIgY29uc3RydWN0IGN1c3RvbSBlbGVtZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FycmF5QnVmZmVyLmNwcAppbmRleCA2MmFiODlhM2RlMjRiNGEzN2U1NGM5
NGJlYzIyYzNiNmQ0MjRlYmYwLi5jZjVlOTUzNWU2MWE5ZGE2YzE4ZTAyYWE3MzdmY2I0ZmQwMjI0
NjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVm
ZmVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVy
LmNwcApAQCAtNDAsMTAgKzQwLDEyIEBAIEpTQXJyYXlCdWZmZXI6OkpTQXJyYXlCdWZmZXIoVk0m
IHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUGFzc1JlZlB0cjxBcnJheUJ1ZmZlCiB7CiB9CiAK
LXZvaWQgSlNBcnJheUJ1ZmZlcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQordm9pZCBKU0FycmF5
QnVmZmVyOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFdyYXBwZXJNb2RlIG1vZGUpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwog
ICAgIHZtLmhlYXAuYWRkUmVmZXJlbmNlKHRoaXMsIG1faW1wbCk7CisgICAgaWYgKG1vZGUgPT0g
V3JhcHBlck1vZGU6OldyYXApCisgICAgICAgIHZtLm1fdHlwZWRBcnJheUNvbnRyb2xsZXItPnJl
Z2lzdGVyV3JhcHBlcihnbG9iYWxPYmplY3QsIG1faW1wbCwgdGhpcyk7CiB9CiAKIEpTQXJyYXlC
dWZmZXIqIEpTQXJyYXlCdWZmZXI6OmNyZWF0ZSgKQEAgLTUzLDcgKzU1LDE4IEBAIEpTQXJyYXlC
dWZmZXIqIEpTQXJyYXlCdWZmZXI6OmNyZWF0ZSgKICAgICBKU0FycmF5QnVmZmVyKiByZXN1bHQg
PQogICAgICAgICBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxKU0FycmF5QnVmZmVyPih2bS5o
ZWFwKSkKICAgICAgICAgSlNBcnJheUJ1ZmZlcih2bSwgc3RydWN0dXJlLCBidWZmZXIpOwotICAg
IHJlc3VsdC0+ZmluaXNoQ3JlYXRpb24odm0pOworICAgIHJlc3VsdC0+ZmluaXNoQ3JlYXRpb24o
dm0sIHN0cnVjdHVyZS0+Z2xvYmFsT2JqZWN0KCksIFdyYXBwZXJNb2RlOjpXcmFwKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorCitKU0FycmF5QnVmZmVyKiBKU0FycmF5QnVmZmVyOjpjcmVhdGVX
aXRob3V0V3JhcHBpbmcoCisgICAgVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUGFzc1Jl
ZlB0cjxBcnJheUJ1ZmZlcj4gcGFzc2VkQnVmZmVyKQoreworICAgIFJlZlB0cjxBcnJheUJ1ZmZl
cj4gYnVmZmVyID0gcGFzc2VkQnVmZmVyOworICAgIEpTQXJyYXlCdWZmZXIqIHJlc3VsdCA9Cisg
ICAgbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8SlNBcnJheUJ1ZmZlcj4odm0uaGVhcCkpCisg
ICAgSlNBcnJheUJ1ZmZlcih2bSwgc3RydWN0dXJlLCBidWZmZXIpOworICAgIHJlc3VsdC0+Zmlu
aXNoQ3JlYXRpb24odm0sIHN0cnVjdHVyZS0+Z2xvYmFsT2JqZWN0KCksIFdyYXBwZXJNb2RlOjpE
b250V3JhcCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlci5oCmluZGV4IDc1MjllMzYzNGQ0ZDNhNTcxZGJhZDMy
ZTkwYjI4NzZhNDhhYmY4NzEuLmYyYTg4NGRmZWFjMTg0MTExNmQzZTk1ODIwODQzMmE1N2Q5MDQ1
NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZm
ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyLmgK
QEAgLTM3LDExICszNywxNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRQcm9wZXJ0
eU5hbWVzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90OwogICAgIAogcHJvdGVjdGVkOgor
ICAgIGVudW0gY2xhc3MgV3JhcHBlck1vZGUgeworICAgICAgICBXcmFwLAorICAgICAgICBEb250
V3JhcAorICAgIH07CiAgICAgSlNBcnJheUJ1ZmZlcihWTSYsIFN0cnVjdHVyZSosIFBhc3NSZWZQ
dHI8QXJyYXlCdWZmZXI+KTsKLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJik7CisgICAgdm9p
ZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0KiwgV3JhcHBlck1vZGUpOwogICAg
IAogcHVibGljOgogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBKU0FycmF5QnVmZmVyKiBj
cmVhdGUoVk0mLCBTdHJ1Y3R1cmUqLCBQYXNzUmVmUHRyPEFycmF5QnVmZmVyPik7CisgICAgSlNf
RVhQT1JUX1BSSVZBVEUgc3RhdGljIEpTQXJyYXlCdWZmZXIqIGNyZWF0ZVdpdGhvdXRXcmFwcGlu
ZyhWTSYsIFN0cnVjdHVyZSosIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+KTsKICAgICAKICAgICBB
cnJheUJ1ZmZlciogaW1wbCgpIGNvbnN0IHsgcmV0dXJuIG1faW1wbDsgfQogICAgIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlclZpZXcuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlclZpZXcuY3BwCmlu
ZGV4IGI1MTRmYTBmOTk3ZTRiZDIyZWRiNjU3ZmJhMmU1ZGFjNzMxOWM5MjIuLmU2ODI3NjM2YzM0
MDEwOTRkMDgwNjM1ODA0OGM1ZDZiMzgyMDgzNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyVmlldy5jcHAKQEAgLTE1MSw2ICsxNTEsMTYg
QEAgYm9vbCBKU0FycmF5QnVmZmVyVmlldzo6Z2V0T3duUHJvcGVydHlTbG90KAogICAgIHJldHVy
biBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1l
LCBzbG90KTsKIH0KIAordm9pZCBKU0FycmF5QnVmZmVyVmlldzo6dmlzaXRDaGlsZHJlbihKU0Nl
bGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIEpTQXJyYXlCdWZmZXJWaWV3
KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTQXJyYXlCdWZmZXJWaWV3Kj4oY2VsbCk7CisKKyAgICBp
ZiAodGhpc09iamVjdC0+aGFzQXJyYXlCdWZmZXIoKSkKKyAgICAgICAgdmlzaXRvci5hZGRPcGFx
dWVSb290KHRoaXNPYmplY3QtPmJ1ZmZlcigpKTsKKyAgICAKKyAgICBCYXNlOjp2aXNpdENoaWxk
cmVuKHRoaXNPYmplY3QsIHZpc2l0b3IpOworfQorCiB2b2lkIEpTQXJyYXlCdWZmZXJWaWV3Ojpw
dXQoCiAgICAgSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsCiAgICAgUHV0UHJvcGVydHlTbG90JiBzbG90KQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlclZpZXcu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJWaWV3LmgKaW5k
ZXggNzY5MTUwYjM2OTRmNzcxMTdlMWY5NDg5MzRmNGQ3MmZlNmRhYTZkZC4uNTIzYTIwMGZiYTJk
NzcyYzJiNzNmMmQ0YzVmYzY1YzcxMmY2YjliZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlclZpZXcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyVmlldy5oCkBAIC0xNTAsNiArMTUwLDggQEAgcHJv
dGVjdGVkOgogICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0
eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyBib29sIGRlZmlu
ZU93blByb3BlcnR5KEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBjb25zdCBQ
cm9wZXJ0eURlc2NyaXB0b3ImLCBib29sIHNob3VsZFRocm93KTsKICAgICBzdGF0aWMgYm9vbCBk
ZWxldGVQcm9wZXJ0eShKU0NlbGwqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUpOworCisgICAg
c3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogICAgIAog
ICAgIHN0YXRpYyB2b2lkIGdldE93bk5vbkluZGV4UHJvcGVydHlOYW1lcyhKU09iamVjdCosIEV4
ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlKTsKICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJy
YXlWaWV3SW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmlj
VHlwZWRBcnJheVZpZXdJbmxpbmVzLmgKaW5kZXggOTQ4MjhhMzhjMGU2MjYwZTlkYTE4N2Y1MWUw
OGYxOTMzMTg4M2E3YS4uYjZjNmFlZDg4MTRhOWFiMmRjY2QyMGU2MTFlNjdjNGY5ZDljYmE5MSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRB
cnJheVZpZXdJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
ZW5lcmljVHlwZWRBcnJheVZpZXdJbmxpbmVzLmgKQEAgLTQzNiw3ICs0MzYsNiBAQCB2b2lkIEpT
R2VuZXJpY1R5cGVkQXJyYXlWaWV3PEFkYXB0b3I+Ojp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2Vs
bCwgU2xvdFZpc2l0b3ImCiAgICAgfQogICAgICAgICAKICAgICBjYXNlIFdhc3RlZnVsVHlwZWRB
cnJheToKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQodGhpc09iamVjdC0+ZXhpc3RpbmdCdWZmZXJJ
bkJ1dHRlcmZseSgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgICAgIAogICAgIGNhc2UgRGF0YVZp
ZXdNb2RlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2ltcGxl
VHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwCmluZGV4IDkyNDVjMmM1ZDkxYWM5YTc0Mzgw
MDE3NDFkYTVjMmNlODYyNDM5ZjAuLjc2MTZkMTA3YTQ1ZDQwNzFkNjA0ZWUyOWFkZTY3NWFlZDdl
MzY4NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NpbXBsZVR5
cGVkQXJyYXlDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlci5jcHAKQEAgLTQxLDExICs0MSwyNSBAQCBKU0Fy
cmF5QnVmZmVyKiBTaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlcjo6dG9KUygKICAgICBpZiAoSlNB
cnJheUJ1ZmZlciogYnVmZmVyID0gbmF0aXZlLT5tX3dyYXBwZXIuZ2V0KCkpCiAgICAgICAgIHJl
dHVybiBidWZmZXI7CiAgICAgCi0gICAgSlNBcnJheUJ1ZmZlciogcmVzdWx0ID0gSlNBcnJheUJ1
ZmZlcjo6Y3JlYXRlKAorICAgIEpTQXJyYXlCdWZmZXIqIHJlc3VsdCA9IEpTQXJyYXlCdWZmZXI6
OmNyZWF0ZVdpdGhvdXRXcmFwcGluZygKICAgICAgICAgZXhlYy0+dm0oKSwgZ2xvYmFsT2JqZWN0
LT5hcnJheUJ1ZmZlclN0cnVjdHVyZSgpLCBuYXRpdmUpOwotICAgIG5hdGl2ZS0+bV93cmFwcGVy
ID0gV2VhazxKU0FycmF5QnVmZmVyPihyZXN1bHQpOworICAgIG5hdGl2ZS0+bV93cmFwcGVyID0g
V2VhazxKU0FycmF5QnVmZmVyPihyZXN1bHQsICZtX293bmVyKTsKICAgICByZXR1cm4gcmVzdWx0
OwogfQogCit2b2lkIFNpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyOjpyZWdpc3RlcldyYXBwZXIo
SlNHbG9iYWxPYmplY3QqLCBBcnJheUJ1ZmZlciogbmF0aXZlLCBKU0FycmF5QnVmZmVyKiB3cmFw
cGVyKQoreworICAgIEFTU0VSVCghbmF0aXZlLT5tX3dyYXBwZXIpOworICAgIG5hdGl2ZS0+bV93
cmFwcGVyID0gV2VhazxKU0FycmF5QnVmZmVyPih3cmFwcGVyLCAmbV9vd25lcik7Cit9CisKK2Jv
b2wgU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXI6OkpTQXJyYXlCdWZmZXJPd25lcjo6aXNSZWFj
aGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZv
aWQqLCBKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIGF1dG8mIHdyYXBwZXIgPSAq
SlNDOjpqc0Nhc3Q8SlNDOjpKU0FycmF5QnVmZmVyKj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkp
OworICAgIHJldHVybiB2aXNpdG9yLmNvbnRhaW5zT3BhcXVlUm9vdCh3cmFwcGVyLmltcGwoKSk7
Cit9CisKK3ZvaWQgU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXI6OkpTQXJyYXlCdWZmZXJPd25l
cjo6ZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCopIHsgfQorCiB9IC8v
IG5hbWVzcGFjZSBKU0MKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1NpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyLmgKaW5kZXggM2Q1NWI4OTMwMjBlNjFi
MzhiN2JjOWJmNjkzNTAxMmYxMjhiZmZiZC4uNmQxMDJkNTA0ZTgzMjc5ZTA2OTc2NjQxNGJjNDlh
MDUyMzRjZDk3NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2lt
cGxlVHlwZWRBcnJheUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlci5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNp
bmNsdWRlICJIYW5kbGUuaCIKICNpbmNsdWRlICJUeXBlZEFycmF5Q29udHJvbGxlci5oIgorI2lu
Y2x1ZGUgIldlYWtIYW5kbGVPd25lci5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtNDgsNiAr
NDksMTYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflNpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVy
KCk7CiAgICAgCiAgICAgdmlydHVhbCBKU0FycmF5QnVmZmVyKiB0b0pTKEV4ZWNTdGF0ZSosIEpT
R2xvYmFsT2JqZWN0KiwgQXJyYXlCdWZmZXIqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
cmVnaXN0ZXJXcmFwcGVyKEpTR2xvYmFsT2JqZWN0KiwgQXJyYXlCdWZmZXIqLCBKU0FycmF5QnVm
ZmVyKikgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgY2xhc3MgSlNBcnJheUJ1ZmZlck93bmVy
IDogcHVibGljIFdlYWtIYW5kbGVPd25lciB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFs
IGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3du
Piwgdm9pZCogY29udGV4dCwgU2xvdFZpc2l0b3ImKSBvdmVycmlkZTsKKyAgICAgICAgdmlydHVh
bCB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQp
IG92ZXJyaWRlOworICAgIH07CisKKyAgICBKU0FycmF5QnVmZmVyT3duZXIgbV9vd25lcjsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvVHlwZWRBcnJheUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1R5cGVkQXJyYXlDb250cm9sbGVyLmgKaW5kZXggYzhmZGUxYzk2YjQxMjhjOGU0ODA1
MTM0YzQ1YjQyYzg1N2MzZDRmMy4uMWViNjg4YmI4NjI1YjcwMDIyNmY4OTM5MTA2YzkxZTg3MTAz
YzFjOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZWRBcnJh
eUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlZEFy
cmF5Q29udHJvbGxlci5oCkBAIC00MSw2ICs0MSw3IEBAIHB1YmxpYzoKICAgICBKU19FWFBPUlRf
UFJJVkFURSB2aXJ0dWFsIH5UeXBlZEFycmF5Q29udHJvbGxlcigpOwogICAgIAogICAgIHZpcnR1
YWwgSlNBcnJheUJ1ZmZlciogdG9KUyhFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIEFycmF5
QnVmZmVyKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlcldyYXBwZXIoSlNHbG9iYWxP
YmplY3QqLCBBcnJheUJ1ZmZlciosIEpTQXJyYXlCdWZmZXIqKSA9IDA7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
QmluZGluZy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKaW5k
ZXggNDVlNGM4NTg0MGFlMjE5M2FhNTkxM2U5ZDA2YzAyZThiYjA2ZDk3MC4uYWUzNTlmNmJkZTAy
OTAxYzg1YzY0MTlkNmVlNmFmNmM2NzRhOWYzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmgKQEAgLTQwOSw4ICs0MDksNyBAQCBpbmxpbmUgSlNDOjpKU1ZhbHVl
IHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsCiAgICAgICAgIHJldHVybiBKU0M6OmpzTnVsbCgpOwogICAgIGlmIChKU0M6OkpTVmFsdWUg
cmVzdWx0ID0gZ2V0RXhpc3RpbmdXcmFwcGVyPEpTQzo6SlNBcnJheUJ1ZmZlcj4oZ2xvYmFsT2Jq
ZWN0LCBidWZmZXIpKQogICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIGJ1ZmZlci0+cmVmKCk7
Ci0gICAgSlNDOjpKU0FycmF5QnVmZmVyKiB3cmFwcGVyID0gSlNDOjpKU0FycmF5QnVmZmVyOjpj
cmVhdGUoZXhlYy0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5hcnJheUJ1ZmZlclN0cnVjdHVyZSgpLCBi
dWZmZXIpOworICAgIEpTQzo6SlNBcnJheUJ1ZmZlciogd3JhcHBlciA9IEpTQzo6SlNBcnJheUJ1
ZmZlcjo6Y3JlYXRlV2l0aG91dFdyYXBwaW5nKGV4ZWMtPnZtKCksIGdsb2JhbE9iamVjdC0+YXJy
YXlCdWZmZXJTdHJ1Y3R1cmUoKSwgYnVmZmVyKTsKICAgICBjYWNoZVdyYXBwZXIoZ2xvYmFsT2Jq
ZWN0LT53b3JsZCgpLCBidWZmZXIsIHdyYXBwZXIpOwogICAgIHJldHVybiB3cmFwcGVyOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZVR5cGVkQXJyYXlD
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVUeXBlZEFy
cmF5Q29udHJvbGxlci5jcHAKaW5kZXggMTEwNjkyOThkYzg5MzMwNzU5NjQ5NWJkZTVmMGZmZmZi
YzEyYjBmNS4uODM4ZTRiZmEwYjI1OTNlMDMwODM4NWI4MDc0NmNlOThhOTJjMTA3OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZVR5cGVkQXJyYXlDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlVHlwZWRBcnJh
eUNvbnRyb2xsZXIuY3BwCkBAIC00NywyMCArNDcsMjEgQEAgSlNDOjpKU0FycmF5QnVmZmVyKiBX
ZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXI6OnRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBK
U0MKICAgICByZXR1cm4gSlNDOjpqc0Nhc3Q8SlNDOjpKU0FycmF5QnVmZmVyKj4oV2ViQ29yZTo6
dG9KUyhzdGF0ZSwgSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3Qp
LCBidWZmZXIpKTsKIH0KIAordm9pZCBXZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXI6OnJlZ2lz
dGVyV3JhcHBlcihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6QXJyYXlC
dWZmZXIqIG5hdGl2ZSwgSlNDOjpKU0FycmF5QnVmZmVyKiB3cmFwcGVyKQoreworICAgIGNhY2hl
V3JhcHBlcihKU0M6OmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCktPndv
cmxkKCksIG5hdGl2ZSwgd3JhcHBlcik7Cit9CisKIGJvb2wgV2ViQ29yZVR5cGVkQXJyYXlDb250
cm9sbGVyOjpKU0FycmF5QnVmZmVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpT
Qzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgSlNDOjpTbG90VmlzaXRvciYg
dmlzaXRvcikKIHsKICAgICBhdXRvJiB3cmFwcGVyID0gKkpTQzo6anNDYXN0PEpTQzo6SlNBcnJh
eUJ1ZmZlcio+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTsKLSAgICBpZiAoIXdyYXBwZXIuaGFz
Q3VzdG9tUHJvcGVydGllcygpKQotICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmV0dXJuIHZp
c2l0b3IuY29udGFpbnNPcGFxdWVSb290KHdyYXBwZXIuaW1wbCgpKTsKIH0KIAogdm9pZCBXZWJD
b3JlVHlwZWRBcnJheUNvbnRyb2xsZXI6OkpTQXJyYXlCdWZmZXJPd25lcjo6ZmluYWxpemUoSlND
OjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqIGNvbnRleHQpCiB7CiAgICAgYXV0
byYgd3JhcHBlciA9ICpzdGF0aWNfY2FzdDxKU0M6OkpTQXJyYXlCdWZmZXIqPihoYW5kbGUuc2xv
dCgpLT5hc0NlbGwoKSk7Ci0gICAgYXV0byYgYnVmZmVyID0gKndyYXBwZXIuaW1wbCgpOwotICAg
IHVuY2FjaGVXcmFwcGVyKCpzdGF0aWNfY2FzdDxET01XcmFwcGVyV29ybGQqPihjb250ZXh0KSwg
JmJ1ZmZlciwgJndyYXBwZXIpOwotICAgIGJ1ZmZlci5kZXJlZigpOworICAgIHVuY2FjaGVXcmFw
cGVyKCpzdGF0aWNfY2FzdDxET01XcmFwcGVyV29ybGQqPihjb250ZXh0KSwgd3JhcHBlci5pbXBs
KCksICZ3cmFwcGVyKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIu
aAppbmRleCA3ZTA0NGM0ZjBkMWI4Y2IzNDYzY2RkYzRiYzdjM2M1ZGY2YzgwZTU1Li5jZTlmMGE0
NjIzOTAyNDEwM2M2NzQyN2IxMDdiMGI2YWQ1MDgyZTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuaApAQCAt
NDEsNyArNDEsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2ViQ29yZVR5cGVkQXJyYXlDb250
cm9sbGVyKCk7CiAgICAgCiAgICAgdmlydHVhbCBKU0M6OkpTQXJyYXlCdWZmZXIqIHRvSlMoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpBcnJheUJ1ZmZlciopIG92
ZXJyaWRlOwotICAgIAorICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlcldyYXBwZXIoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEFycmF5QnVmZmVyKiwgSlNDOjpKU0FycmF5QnVmZmVyKikgb3ZlcnJpZGU7
CisKICAgICBKU0M6OldlYWtIYW5kbGVPd25lciogd3JhcHBlck93bmVyKCkgeyByZXR1cm4gJm1f
b3duZXI7IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2N2EzYWU2MTcyNzE0ZWJmNTQ4N2VmOTU1MDFi
NDVhOTExNzhlNjM5Li5jN2I2MmFkZDQ4ZTczM2IyYTg2ZmY2NGFkY2VlMGM0MTdkYWE3MzRjIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTYtMDMtMDMgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21p
bGxlckBhcHBsZS5jb20+CisKKyAgICAgICAgSlNBcnJheUJ1ZmZlcnMgc2hvdWxkIGJlIGNvbGxl
Y3RlZCBsZXNzIGFnZ3Jlc3NpdmVseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU0OTgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBqcy9hcnJheWJ1ZmZlci13cmFwcGVycy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGpzL2FycmF5YnVmZmVyLXdyYXBwZXJzLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGpzL3NjcmlwdC10ZXN0cy9hcnJheWJ1ZmZlci13cmFwcGVycy5qczogQWRkZWQuCisg
ICAgICAgIChwcm90b3R5cGUudHlwZXMuZm9yRWFjaCk6CisKIDIwMTYtMDMtMDEgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTWFrZSBIVE1MIHBhcnNlciBjb25z
dHJ1Y3QgY3VzdG9tIGVsZW1lbnRzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9hcnJheWJ1
ZmZlci13cmFwcGVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9hcnJheWJ1ZmZlci13
cmFwcGVycy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWNhZDM3N2RkMmMzYjdjZTg0MjQzNGRh
YjhjYjYzMWZmZTY3Y2NmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2FycmF5
YnVmZmVyLXdyYXBwZXJzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQ0IEBACitUZXN0cyB3cmFw
cGVycyBmb3IgQXJyYXlCdWZmZXIgb2JqZWN0cyBhcmUgbm90IEdDZWQgd2hlbiB0aGV5IHNob3Vs
ZG4ndCBiZQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVGVzdCBzdWJjbGFzc2lu
ZworUEFTUyBmb28uYnVmZmVyIGluc3RhbmNlb2YgQyBpcyB0cnVlCitQQVNTIGZvby5idWZmZXIg
aW5zdGFuY2VvZiBDIGlzIHRydWUKK1BBU1MgZm9vLmJ1ZmZlciBpbnN0YW5jZW9mIEMgaXMgdHJ1
ZQorUEFTUyBmb28uYnVmZmVyIGluc3RhbmNlb2YgQyBpcyB0cnVlCitQQVNTIGZvby5idWZmZXIg
aW5zdGFuY2VvZiBDIGlzIHRydWUKK1BBU1MgZm9vLmJ1ZmZlciBpbnN0YW5jZW9mIEMgaXMgdHJ1
ZQorUEFTUyBmb28uYnVmZmVyIGluc3RhbmNlb2YgQyBpcyB0cnVlCitQQVNTIGZvby5idWZmZXIg
aW5zdGFuY2VvZiBDIGlzIHRydWUKK1BBU1MgZm9vLmJ1ZmZlciBpbnN0YW5jZW9mIEMgaXMgdHJ1
ZQorUEFTUyBmb28uYnVmZmVyIGluc3RhbmNlb2YgQyBpcyB0cnVlCisKK1Rlc3QgcHJvcGVydGll
cworUEFTUyBmb28uYnVmZmVyLmJhciBpcyAxCitQQVNTIGZvby5idWZmZXIuYmFyIGlzIDEKK1BB
U1MgZm9vLmJ1ZmZlci5iYXIgaXMgMQorUEFTUyBmb28uYnVmZmVyLmJhciBpcyAxCitQQVNTIGZv
by5idWZmZXIuYmFyIGlzIDEKK1BBU1MgZm9vLmJ1ZmZlci5iYXIgaXMgMQorUEFTUyBmb28uYnVm
ZmVyLmJhciBpcyAxCitQQVNTIGZvby5idWZmZXIuYmFyIGlzIDEKK1BBU1MgZm9vLmJ1ZmZlci5i
YXIgaXMgMQorUEFTUyBmb28uYnVmZmVyLmJhciBpcyAxCisKK1Rlc3QgV2Vha01hcAorUEFTUyB3
cy5oYXMoZm9vLmJ1ZmZlcikgaXMgdHJ1ZQorUEFTUyB3cy5oYXMoZm9vLmJ1ZmZlcikgaXMgdHJ1
ZQorUEFTUyB3cy5oYXMoZm9vLmJ1ZmZlcikgaXMgdHJ1ZQorUEFTUyB3cy5oYXMoZm9vLmJ1ZmZl
cikgaXMgdHJ1ZQorUEFTUyB3cy5oYXMoZm9vLmJ1ZmZlcikgaXMgdHJ1ZQorUEFTUyB3cy5oYXMo
Zm9vLmJ1ZmZlcikgaXMgdHJ1ZQorUEFTUyB3cy5oYXMoZm9vLmJ1ZmZlcikgaXMgdHJ1ZQorUEFT
UyB3cy5oYXMoZm9vLmJ1ZmZlcikgaXMgdHJ1ZQorUEFTUyB3cy5oYXMoZm9vLmJ1ZmZlcikgaXMg
dHJ1ZQorUEFTUyB3cy5oYXMoZm9vLmJ1ZmZlcikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL2FycmF5YnVmZmVyLXdyYXBwZXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9hcnJheWJ1ZmZl
ci13cmFwcGVycy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlMzdmOTU0OTcxMTJlM2U0NWFkODA5ZGQ1N2Jm
YzAyNzFmODNhZjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9hcnJheWJ1ZmZl
ci13cmFwcGVycy5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNj
cmlwdCBzcmM9InNjcmlwdC10ZXN0cy9hcnJheWJ1ZmZlci13cmFwcGVycy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMv
YXJyYXlidWZmZXItd3JhcHBlcnMuanMgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvYXJy
YXlidWZmZXItd3JhcHBlcnMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzU0MGQ3Y2RhMTU5YWMzNzdhNWI4MGQ1
NGNkMzljZWIzYzI3NGVmMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3Njcmlw
dC10ZXN0cy9hcnJheWJ1ZmZlci13cmFwcGVycy5qcwpAQCAtMCwwICsxLDQ3IEBACitkZXNjcmlw
dGlvbigiVGVzdHMgd3JhcHBlcnMgZm9yIEFycmF5QnVmZmVyIG9iamVjdHMgYXJlIG5vdCBHQ2Vk
IHdoZW4gdGhleSBzaG91bGRuJ3QgYmUiKTsKKworbGV0IHR5cGVzID0gW0ludDhBcnJheSwgVWlu
dDhBcnJheSwgVWludDhDbGFtcGVkQXJyYXksIEludDE2QXJyYXksIFVpbnQxNkFycmF5LCBJbnQz
MkFycmF5LCBVaW50MzJBcnJheSwgRmxvYXQzMkFycmF5LCBGbG9hdDY0QXJyYXksIERhdGFWaWV3
XTsKKworZGVidWcoIlRlc3Qgc3ViY2xhc3NpbmciKTsKKwordHlwZXMuZm9yRWFjaChmdW5jdGlv
bih0eXBlKSB7CisgICAgQyA9IGNsYXNzIGV4dGVuZHMgQXJyYXlCdWZmZXIgeyB9CisKKyAgICBs
ZXQgYiA9IG5ldyBDKDgpOworICAgIGZvbyA9IG5ldyB0eXBlKGIpOworCisgICAgYiA9IG51bGw7
CisgICAgZ2MoKTsKKworICAgIHNob3VsZEJlVHJ1ZSgiZm9vLmJ1ZmZlciBpbnN0YW5jZW9mIEMi
KTsKK30pOworCitkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCBwcm9wZXJ0aWVzIik7CisKK3R5cGVz
LmZvckVhY2goZnVuY3Rpb24odHlwZSkgeworICAgIGIgPSBuZXcgQXJyYXlCdWZmZXIoOCk7Cisg
ICAgYi5iYXIgPSAxOworCisgICAgZm9vID0gbmV3IEludDMyQXJyYXkoYik7CisgICAgYiA9IG51
bGw7CisgICAgZ2MoKTsKKworICAgIHNob3VsZEJlKCJmb28uYnVmZmVyLmJhciIsICIxIik7Cit9
KTsKKworZGVidWcoIiIpOworZGVidWcoIlRlc3QgV2Vha01hcCIpOworCit0eXBlcy5mb3JFYWNo
KGZ1bmN0aW9uKHR5cGUpIHsKKyAgICB3cyA9IG5ldyBXZWFrU2V0KCk7CisgICAgYiA9IG5ldyBB
cnJheUJ1ZmZlcig4KTsKKworICAgIHdzLmFkZChiKTsKKyAgICBmb28gPSBuZXcgSW50MzJBcnJh
eShiKTsKKyAgICBiID0gbnVsbDsKKworICAgIGdjKCk7CisKKyAgICBzaG91bGRCZVRydWUoIndz
Lmhhcyhmb28uYnVmZmVyKSIpOworfSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272795</attachid>
            <date>2016-03-03 16:33:17 -0800</date>
            <delta_ts>2016-03-03 19:19:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154982-20160303163302.patch</filename>
            <type>text/plain</type>
            <size>20191</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3NDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
OGMxZjg1NDdhODMxYjVlNjE0YzBhNzA4NDI5NTlhMDM5ODNlN2JlLi4zOTQ0ODYyNmQyNjRkZGU2
ZmYxMzA4NThiNTgwMjViNDUzYmRmNmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NiBAQAorMjAxNi0wMy0wMyAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBKU0FycmF5QnVmZmVycyBzaG91bGQgYmUgY29sbGVjdGVkIGxlc3Mg
YWdncmVzc2l2ZWx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTQ5ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBXZSBhcmUgY3VycmVudGx5IHRvbyBhZ2dyZXNzaXZlIGluIG91ciBjb2xsZWN0aW9uIG9m
IEFycmF5QnVmZmVyIHdyYXBwZXJzLgorICAgICAgICBUaGVyZSBhcmUgdGhyZWUgY2FzZXMgd2hl
cmUgd2UgbmVlZCB0byBhdm9pZCBjb2xsZWN0aW5nIEFycmF5QnVmZmVyIHdyYXBwZXJzLgorICAg
ICAgICAxLiBJZiB0aGUgd3JhcHBlciBoYXMgY3VzdG9tIHByb3BlcnRpZXMuCisgICAgICAgIDIu
IElmIHRoZSB3cmFwcGVyIGlzIGEgc3ViY2xhc3Mgb2YgQXJyYXlCdWZmZXIuCisgICAgICAgIDMu
IElmIHRoZSB3cmFwcGVyIGlzIGluIGEgV2Vha01hcC9XZWFrU2V0LgorCisgICAgICAgIEN1cnJl
bnRseSwgd2Ugb25seSBwYXNzIHRoZSBmaXJzdCBjYXNlIGluIFdlYkNvcmUgYW5kIG5vbmUgaW4g
dGhlIGpzYyBDTEkuCisgICAgICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBzb21lIG9wdGltaXphdGlv
bnMgdGhhdCBjYXVzZSB1cyB0byBjb2xsZWN0IHdoZW4gd2UKKyAgICAgICAgc2hvdWxkIG5vdC4g
TmFtZWx5LCBhbHdheXMgc2tpcHBpbmcgdGhlIG9iamVjdCB1bmxlc3MgaXQgaGFzIGN1c3RvbQor
ICAgICAgICBwcm9wZXJ0aWVzLiBBZGRpdGlvbmFsbHksIGluIHRoZSBjYXNlIG9mIHN1YmNsYXNz
aW5nLCB3ZSBhbHNvIG5lZWQgYSB3YXkKKyAgICAgICAgZm9yIGN1c3RvbSBKU0FycmF5QnVmZmVy
IG9iamVjdHMgdG8gcmVnaXN0ZXIgdGhlbXNlbHZlcyBhcyB0aGUgd3JhcHBlciBmb3IKKyAgICAg
ICAgYW4gQXJyYXlCdWZmZXIgY2xhc3MuCisKKyAgICAgICAgRmluYWxseSwgdGhpcyBwYXRjaCBm
aXhlcyBhbiBpc3N1ZSB3aGVyZSB2aWV3cyB3b3VsZCBub3QgbWFyayB0aGVpciBBcnJheUJ1ZmZl
cgorICAgICAgICBhcyBhbiBvcGFxdWUgcm9vdC4gVGhpcyBwYXRjaCBhbHNvIG1vdmVzIGFuIGFz
c29jaWF0ZWQgQVNTRVJUIHRoYXQgdGhlCisgICAgICAgIEFycmF5QnVmZmVyIGhlbGQgYnkgYSB2
aWV3IGlzIG5vdCBudWxsIGluIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Ojp2aXNpdENoaWxkcmVu
CisgICAgICAgIGludG8gSlNBcnJheUJ1ZmZlclZpZXc6OnZpc2l0Q2hpbGRyZW4sIHdoZXJlIHdl
IGFkZCB0aGUgb3BhcXVlIHJvb3QuCisKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXlCdWZmZXIu
Y3BwOgorICAgICAgICAoSlNDOjpKU0FycmF5QnVmZmVyOjpmaW5pc2hDcmVhdGlvbik6CisgICAg
ICAgIChKU0M6OkpTQXJyYXlCdWZmZXI6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkpTQXJyYXlC
dWZmZXI6OmNyZWF0ZVdpdGhvdXRXcmFwcGluZyk6CisgICAgICAgICogcnVudGltZS9KU0FycmF5
QnVmZmVyLmg6CisgICAgICAgICogcnVudGltZS9KU0FycmF5QnVmZmVyVmlldy5jcHA6CisgICAg
ICAgIChKU0M6OkpTQXJyYXlCdWZmZXJWaWV3Ojp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgKiBy
dW50aW1lL0pTQXJyYXlCdWZmZXJWaWV3Lmg6CisgICAgICAgICogcnVudGltZS9KU0dlbmVyaWNU
eXBlZEFycmF5Vmlld0lubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SlNHZW5lcmljVHlwZWRBcnJh
eVZpZXc8QWRhcHRvcj46OnZpc2l0Q2hpbGRyZW4pOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRp
bWUvU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoSlNDOjpTaW1wbGVU
eXBlZEFycmF5Q29udHJvbGxlcjo6dG9KUyk6CisgICAgICAgIChKU0M6OlNpbXBsZVR5cGVkQXJy
YXlDb250cm9sbGVyOjpyZWdpc3RlcldyYXBwZXIpOgorICAgICAgICAoSlNDOjpTaW1wbGVUeXBl
ZEFycmF5Q29udHJvbGxlcjo6SlNBcnJheUJ1ZmZlck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFx
dWVSb290cyk6CisgICAgICAgIChKU0M6OlNpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyOjpKU0Fy
cmF5QnVmZmVyT3duZXI6OmZpbmFsaXplKToKKyAgICAgICAgKiBydW50aW1lL1NpbXBsZVR5cGVk
QXJyYXlDb250cm9sbGVyLmg6CisgICAgICAgICogcnVudGltZS9UeXBlZEFycmF5Q29udHJvbGxl
ci5oOgorCiAyMDE2LTAzLTAyICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAg
ICAgICAgIFNJR1NFR1YgaW4gUHJveHkgW1tHZXRdXSBhbmQgW1tTZXRdXSByZWN1cnNpb24KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCBlYjYxZjE5OTFhMWE1OGJmNDgzZGI3ZmIyMTEzZjI3ZjVjZDE2NTlmLi5kMDIy
OGJlNjcyNzQ5M2RlYTJjMmU2NTU3ZGY3OThlMzVmY2Y2Y2FlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNDIgQEAKKzIwMTYtMDMtMDMgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5j
b20+CisKKyAgICAgICAgSlNBcnJheUJ1ZmZlcnMgc2hvdWxkIGJlIGNvbGxlY3RlZCBsZXNzIGFn
Z3Jlc3NpdmVseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTU0OTgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgV2UgYXJlIGN1cnJlbnRseSB0b28gYWdncmVzc2l2ZSBpbiBvdXIgY29sbGVjdGlvbiBvZiBB
cnJheUJ1ZmZlciB3cmFwcGVycy4KKyAgICAgICAgVGhlcmUgYXJlIHRocmVlIGNhc2VzIHdoZXJl
IHdlIG5lZWQgdG8gYXZvaWQgY29sbGVjdGluZyBBcnJheUJ1ZmZlciB3cmFwcGVycy4KKyAgICAg
ICAgMS4gSWYgdGhlIHdyYXBwZXIgaGFzIGN1c3RvbSBwcm9wZXJ0aWVzLgorICAgICAgICAyLiBJ
ZiB0aGUgd3JhcHBlciBpcyBhIHN1YmNsYXNzIG9mIEFycmF5QnVmZmVyLgorICAgICAgICAzLiBJ
ZiB0aGUgd3JhcHBlciBpcyBpbiBhIFdlYWtNYXAvV2Vha1NldC4KKworICAgICAgICBDdXJyZW50
bHksIHdlIG9ubHkgcGFzcyB0aGUgZmlyc3QgY2FzZSBpbiBXZWJDb3JlIGFuZCBub25lIGluIHRo
ZSBqc2MgQ0xJLgorICAgICAgICBUaGlzIHBhdGNoIHJlbW92ZXMgc29tZSBvcHRpbWl6YXRpb25z
IHRoYXQgY2F1c2UgdXMgdG8gY29sbGVjdCB3aGVuIHdlCisgICAgICAgIHNob3VsZCBub3QuIE5h
bWVseSwgYWx3YXlzIHNraXBwaW5nIHRoZSBvYmplY3QgdW5sZXNzIGl0IGhhcyBjdXN0b20KKyAg
ICAgICAgcHJvcGVydGllcy4gQWRkaXRpb25hbGx5LCBpbiB0aGUgY2FzZSBvZiBzdWJjbGFzc2lu
Zywgd2UgYWxzbyBuZWVkIGEgd2F5CisgICAgICAgIGZvciBjdXN0b20gSlNBcnJheUJ1ZmZlciBv
YmplY3RzIHRvIHJlZ2lzdGVyIHRoZW1zZWx2ZXMgYXMgdGhlIHdyYXBwZXIgZm9yCisgICAgICAg
IGFuIEFycmF5QnVmZmVyIGNsYXNzLgorCisgICAgICAgIEZpbmFsbHksIHRoaXMgcGF0Y2ggcmVt
b3ZlcyBhbiB1bm5lY2Vzc2FyeSByZWYoKSBhbmQgZGVyZWYoKSBvZgorICAgICAgICBBcnJheUJ1
ZmZlciBvYmplY3RzIGR1cmluZyB0aGUgY3JlYXRpb24vZGVzdHJ1Y3Rpb24gb2YgdGhlIHdyYXBw
ZXIuCisgICAgICAgIFNpbmNlIGFuIEFycmF5QnVmZmVyIG9iamVjdCdzIEdDIGxpZmV0aW1lIHdp
bGwgYmUgYXQgbGVhc3QgYXMgbG9uZworICAgICAgICBhcyB0aGUgbGlmZXRpbWUgb2YgdGhlIHdy
YXBwZXIgd2UgYXJlIGNyZWF0aW5nIGZvciBpdCB3ZSBkb24ndCBuZWVkCisgICAgICAgIHRvIHJl
ZigpIGFuZCBkZXJlZigpIHRoZSBBcnJheUJ1ZmZlciBvYmplY3QuIFRoaXMgbGlmZXRpbWUgaXMK
KyAgICAgICAgZ3VhcmFudGVlZCBiZWNhdXNlIEFycmF5QnVmZmVyIG9iamVjdHMgYXJlIGJvdGgg
R0NlZCBhbmQgcmVmY291bnRlZAorICAgICAgICBhbmQgYW55IG5ldyB3cmFwcGVyIHdpbGwgdmlz
aXQgdGhlIEFycmF5QnVmZmVyIG9iamVjdCBhcyBsb25nIGFzIHRoZQorICAgICAgICB3cmFwcGVy
IGlzIHN0aWxsIGFsaXZlLgorCisgICAgICAgIFRlc3Q6IGpzL2FycmF5YnVmZmVyLXdyYXBwZXJz
Lmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oOgorICAgICAgICAo
V2ViQ29yZTo6dG9KUyk6CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZVR5cGVkQXJyYXlD
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVUeXBlZEFycmF5Q29udHJv
bGxlcjo6cmVnaXN0ZXJXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVUeXBlZEFy
cmF5Q29udHJvbGxlcjo6SlNBcnJheUJ1ZmZlck93bmVyOjpmaW5hbGl6ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXI6OkpTQXJyYXlCdWZmZXJPd25lcjo6
aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdz
L2pzL1dlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5oOgorCiAyMDE2LTAzLTAxICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIE1ha2UgSFRNTCBwYXJzZXIgY29u
c3RydWN0IGN1c3RvbSBlbGVtZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBcnJheUJ1ZmZlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FycmF5QnVmZmVyLmNwcAppbmRleCA2MmFiODlhM2RlMjRiNGEzN2U1NGM5NGJlYzIyYzNi
NmQ0MjRlYmYwLi4zNTlhZTQ3YTUwYmU3ZWMyODAyODcwYzk2Nzc0ODQ2NDMwZTM0NGIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyLmNwcApAQCAt
NDAsMTAgKzQwLDExIEBAIEpTQXJyYXlCdWZmZXI6OkpTQXJyYXlCdWZmZXIoVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgUGFzc1JlZlB0cjxBcnJheUJ1ZmZlCiB7CiB9CiAKLXZvaWQgSlNB
cnJheUJ1ZmZlcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQordm9pZCBKU0FycmF5QnVmZmVyOjpm
aW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CiAg
ICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIHZtLmhlYXAuYWRkUmVmZXJlbmNlKHRo
aXMsIG1faW1wbCk7CisgICAgdm0ubV90eXBlZEFycmF5Q29udHJvbGxlci0+cmVnaXN0ZXJXcmFw
cGVyKGdsb2JhbE9iamVjdCwgbV9pbXBsLCB0aGlzKTsKIH0KIAogSlNBcnJheUJ1ZmZlciogSlNB
cnJheUJ1ZmZlcjo6Y3JlYXRlKApAQCAtNTMsNyArNTQsNyBAQCBKU0FycmF5QnVmZmVyKiBKU0Fy
cmF5QnVmZmVyOjpjcmVhdGUoCiAgICAgSlNBcnJheUJ1ZmZlciogcmVzdWx0ID0KICAgICAgICAg
bmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8SlNBcnJheUJ1ZmZlcj4odm0uaGVhcCkpCiAgICAg
ICAgIEpTQXJyYXlCdWZmZXIodm0sIHN0cnVjdHVyZSwgYnVmZmVyKTsKLSAgICByZXN1bHQtPmZp
bmlzaENyZWF0aW9uKHZtKTsKKyAgICByZXN1bHQtPmZpbmlzaENyZWF0aW9uKHZtLCBzdHJ1Y3R1
cmUtPmdsb2JhbE9iamVjdCgpKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyLmgKaW5kZXggNzUyOWUzNjM0ZDRk
M2E1NzFkYmFkMzJlOTBiMjg3NmE0OGFiZjg3MS4uZDYzNGQ3MzYzZmU0YTUwOGI4YWI5ODBjZmIw
NjVmMzExYTdhYTZlOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNBcnJheUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJy
YXlCdWZmZXIuaApAQCAtMzgsMTEgKzM4LDEyIEBAIHB1YmxpYzoKICAgICAKIHByb3RlY3RlZDoK
ICAgICBKU0FycmF5QnVmZmVyKFZNJiwgU3RydWN0dXJlKiwgUGFzc1JlZlB0cjxBcnJheUJ1ZmZl
cj4pOwotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0
aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqKTsKICAgICAKIHB1YmxpYzoKKyAgICAvLyBUaGlzIGZ1
bmN0aW9uIHdpbGwgcmVnaXN0ZXIgdGhlIG5ldyB3cmFwcGVyIHdpdGggdGhlIHZtJ3MgVHlwZWRB
cnJheUNvbnRyb2xsZXIuCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIEpTQXJyYXlCdWZm
ZXIqIGNyZWF0ZShWTSYsIFN0cnVjdHVyZSosIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+KTsKLSAg
ICAKKwogICAgIEFycmF5QnVmZmVyKiBpbXBsKCkgY29uc3QgeyByZXR1cm4gbV9pbXBsOyB9CiAg
ICAgCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiwgSlNHbG9iYWxP
YmplY3QqLCBKU1ZhbHVlIHByb3RvdHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyVmlldy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FycmF5QnVmZmVyVmlldy5jcHAKaW5kZXggYjUxNGZhMGY5OTdlNGJkMjJl
ZGI2NTdmYmEyZTVkYWM3MzE5YzkyMi4uM2JmY2FmMTUyMTk5MjViOTNlZDc4N2Y0MTUwMWM5Yjc3
YmI1NWIxMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJh
eUJ1ZmZlclZpZXcuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJy
YXlCdWZmZXJWaWV3LmNwcApAQCAtMTUxLDYgKzE1MSwxOSBAQCBib29sIEpTQXJyYXlCdWZmZXJW
aWV3OjpnZXRPd25Qcm9wZXJ0eVNsb3QoCiAgICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5
U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCit2b2lkIEpT
QXJyYXlCdWZmZXJWaWV3Ojp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3Im
IHZpc2l0b3IpCit7CisgICAgSlNBcnJheUJ1ZmZlclZpZXcqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8
SlNBcnJheUJ1ZmZlclZpZXcqPihjZWxsKTsKKworICAgIGlmICh0aGlzT2JqZWN0LT5oYXNBcnJh
eUJ1ZmZlcigpKSB7CisgICAgICAgIEFycmF5QnVmZmVyKiBidWZmZXIgPSB0aGlzT2JqZWN0LT5i
dWZmZXIoKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoYnVmZmVyKTsKKyAgICAgICAgdmlzaXRv
ci5hZGRPcGFxdWVSb290KGJ1ZmZlcik7CisgICAgfQorICAgIAorICAgIEJhc2U6OnZpc2l0Q2hp
bGRyZW4odGhpc09iamVjdCwgdmlzaXRvcik7Cit9CisKIHZvaWQgSlNBcnJheUJ1ZmZlclZpZXc6
OnB1dCgKICAgICBKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwKICAgICBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyVmll
dy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlclZpZXcuaApp
bmRleCA3NjkxNTBiMzY5NGY3NzExN2UxZjk0ODkzNGY0ZDcyZmU2ZGFhNmRkLi41MjNhMjAwZmJh
MmQ3NzJjMmI3M2YyZDRjNWZjNjVjNzEyZjZiOWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyVmlldy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJWaWV3LmgKQEAgLTE1MCw2ICsxNTAsOCBAQCBw
cm90ZWN0ZWQ6CiAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIFByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZGVm
aW5lT3duUHJvcGVydHkoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIGNvbnN0
IFByb3BlcnR5RGVzY3JpcHRvciYsIGJvb2wgc2hvdWxkVGhyb3cpOwogICAgIHN0YXRpYyBib29s
IGRlbGV0ZVByb3BlcnR5KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSk7CisKKyAg
ICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CiAgICAg
CiAgICAgc3RhdGljIHZvaWQgZ2V0T3duTm9uSW5kZXhQcm9wZXJ0eU5hbWVzKEpTT2JqZWN0Kiwg
RXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUpOwogICAgIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRB
cnJheVZpZXdJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVy
aWNUeXBlZEFycmF5Vmlld0lubGluZXMuaAppbmRleCA5NDgyOGEzOGMwZTYyNjBlOWRhMTg3ZjUx
ZTA4ZjE5MzMxODgzYTdhLi5iNmM2YWVkODgxNGE5YWIyZGNjZDIwZTYxMWU2N2M0ZjlkOWNiYTkx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBl
ZEFycmF5Vmlld0lubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMuaApAQCAtNDM2LDcgKzQzNiw2IEBAIHZvaWQg
SlNHZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj46OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBj
ZWxsLCBTbG90VmlzaXRvciYKICAgICB9CiAgICAgICAgIAogICAgIGNhc2UgV2FzdGVmdWxUeXBl
ZEFycmF5OgotICAgICAgICBSRUxFQVNFX0FTU0VSVCh0aGlzT2JqZWN0LT5leGlzdGluZ0J1ZmZl
ckluQnV0dGVyZmx5KCkpOwogICAgICAgICBicmVhazsKICAgICAgICAgCiAgICAgY2FzZSBEYXRh
Vmlld01vZGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaW1w
bGVUeXBlZEFycmF5Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlci5jcHAKaW5kZXggOTI0NWMyYzVkOTFhYzlhNzQz
ODAwMTc0MWRhNWMyY2U4NjI0MzlmMC4uY2Q4MjY2ODc5NmNiZTkwZTM2NWFhMTg1MThjNzc2Nzg5
MWYwMmUzZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2ltcGxl
VHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1NpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyLmNwcApAQCAtNDAsMTIgKzQwLDI2IEBAIEpT
QXJyYXlCdWZmZXIqIFNpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyOjp0b0pTKAogewogICAgIGlm
IChKU0FycmF5QnVmZmVyKiBidWZmZXIgPSBuYXRpdmUtPm1fd3JhcHBlci5nZXQoKSkKICAgICAg
ICAgcmV0dXJuIGJ1ZmZlcjsKLSAgICAKKworICAgIC8vIFRoZSBKU0FycmF5QnVmZmVyOjpjcmVh
dGUgZnVuY3Rpb24gd2lsbCByZWdpc3RlciB0aGUgd3JhcHBlciBpbiBmaW5pc2hDcmVhdGlvbi4K
ICAgICBKU0FycmF5QnVmZmVyKiByZXN1bHQgPSBKU0FycmF5QnVmZmVyOjpjcmVhdGUoCiAgICAg
ICAgIGV4ZWMtPnZtKCksIGdsb2JhbE9iamVjdC0+YXJyYXlCdWZmZXJTdHJ1Y3R1cmUoKSwgbmF0
aXZlKTsKLSAgICBuYXRpdmUtPm1fd3JhcHBlciA9IFdlYWs8SlNBcnJheUJ1ZmZlcj4ocmVzdWx0
KTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCit2b2lkIFNpbXBsZVR5cGVkQXJyYXlDb250cm9s
bGVyOjpyZWdpc3RlcldyYXBwZXIoSlNHbG9iYWxPYmplY3QqLCBBcnJheUJ1ZmZlciogbmF0aXZl
LCBKU0FycmF5QnVmZmVyKiB3cmFwcGVyKQoreworICAgIEFTU0VSVCghbmF0aXZlLT5tX3dyYXBw
ZXIpOworICAgIG5hdGl2ZS0+bV93cmFwcGVyID0gV2VhazxKU0FycmF5QnVmZmVyPih3cmFwcGVy
LCAmbV9vd25lcik7Cit9CisKK2Jvb2wgU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXI6OkpTQXJy
YXlCdWZmZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9yKQorewor
ICAgIGF1dG8mIHdyYXBwZXIgPSAqSlNDOjpqc0Nhc3Q8SlNDOjpKU0FycmF5QnVmZmVyKj4oaGFu
ZGxlLnNsb3QoKS0+YXNDZWxsKCkpOworICAgIHJldHVybiB2aXNpdG9yLmNvbnRhaW5zT3BhcXVl
Um9vdCh3cmFwcGVyLmltcGwoKSk7Cit9CisKK3ZvaWQgU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xs
ZXI6OkpTQXJyYXlCdWZmZXJPd25lcjo6ZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3du
Piwgdm9pZCopIHsgfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyLmgK
aW5kZXggM2Q1NWI4OTMwMjBlNjFiMzhiN2JjOWJmNjkzNTAxMmYxMjhiZmZiZC4uOTBhZTQ0Y2Q4
N2VmMDhlNWEzYjc4MWY4OGIxYzY3OGRlOTBhNGI5YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlci5oCkBA
IC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJIYW5kbGUuaCIKICNpbmNsdWRlICJUeXBlZEFy
cmF5Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIldlYWtIYW5kbGVPd25lci5oIgogCiBuYW1lc3Bh
Y2UgSlNDIHsKIApAQCAtMzgsNiArMzksMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAvLwogLy8gLSBJ
ZiB0aGUgSlNBcnJheUJ1ZmZlciBpcyBsaXZlLCB0aGVuIHRoZSBBcnJheUJ1ZmZlciBzdGF5cyBh
bGl2ZS4KIC8vCisvLyAtIElmIHRoZXJlIGlzIGEgSlNBcnJheUJ1ZmZlclZpZXcgdGhhdCBpcyBo
b2xkaW5nIGFuIEFycmF5QnVmZmVyCisvLyAgIHRoZW4gYW55IGV4aXN0aW5nIHdyYXBwZXIgZm9y
IHRoYXQgQXJyYXlCdWZmZXIgd2lsbCBiZSBrZXB0CisvLyAgIGFsaXZlLgorLy8KIC8vIC0gSWYg
eW91IGFzayBhbiBBcnJheUJ1ZmZlciBmb3IgYSBKU0FycmF5QnVmZmVyIGFmdGVyIG9uZSBoYWQK
IC8vICAgYWxyZWFkeSBiZWVuIGNyZWF0ZWQgYW5kIGl0IGRpZG4ndCBkaWUsIHRoZW4geW91IGdl
dCB0aGUgc2FtZQogLy8gICBvbmUuCkBAIC00OCw2ICs1MywxNiBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB+U2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIoKTsKICAgICAKICAgICB2aXJ0dWFsIEpT
QXJyYXlCdWZmZXIqIHRvSlMoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBBcnJheUJ1ZmZl
ciopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlcldyYXBwZXIoSlNHbG9iYWxP
YmplY3QqLCBBcnJheUJ1ZmZlciosIEpTQXJyYXlCdWZmZXIqKSBvdmVycmlkZTsKKworcHJpdmF0
ZToKKyAgICBjbGFzcyBKU0FycmF5QnVmZmVyT3duZXIgOiBwdWJsaWMgV2Vha0hhbmRsZU93bmVy
IHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFx
dWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBTbG90Vmlz
aXRvciYpIG92ZXJyaWRlOworICAgICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5k
bGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCkgb3ZlcnJpZGU7CisgICAgfTsKKworICAg
IEpTQXJyYXlCdWZmZXJPd25lciBtX293bmVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlZEFycmF5Q29udHJv
bGxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZWRBcnJheUNvbnRyb2xs
ZXIuaAppbmRleCBjOGZkZTFjOTZiNDEyOGM4ZTQ4MDUxMzRjNDViNDJjODU3YzNkNGYzLi4xZWI2
ODhiYjg2MjViNzAwMjI2Zjg5MzkxMDZjOTFlODcxMDNjMWM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlZEFycmF5Q29udHJvbGxlci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVkQXJyYXlDb250cm9sbGVyLmgKQEAgLTQxLDYg
KzQxLDcgQEAgcHVibGljOgogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgflR5cGVkQXJy
YXlDb250cm9sbGVyKCk7CiAgICAgCiAgICAgdmlydHVhbCBKU0FycmF5QnVmZmVyKiB0b0pTKEV4
ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgQXJyYXlCdWZmZXIqKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHJlZ2lzdGVyV3JhcHBlcihKU0dsb2JhbE9iamVjdCosIEFycmF5QnVmZmVyKiwgSlNB
cnJheUJ1ZmZlciopID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAppbmRleCA0NWU0Yzg1ODQwYWUyMTkzYWE1OTEz
ZTlkMDZjMDJlOGJiMDZkOTcwLi44YTM0MTY3MTYzMTFmZjZmZmI2OWViODkxODNlYjYyNTAxOWQy
MThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaApAQCAtNDA5
LDkgKzQwOSw5IEBAIGlubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhl
YywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICAgICAgcmV0dXJuIEpTQzo6
anNOdWxsKCk7CiAgICAgaWYgKEpTQzo6SlNWYWx1ZSByZXN1bHQgPSBnZXRFeGlzdGluZ1dyYXBw
ZXI8SlNDOjpKU0FycmF5QnVmZmVyPihnbG9iYWxPYmplY3QsIGJ1ZmZlcikpCiAgICAgICAgIHJl
dHVybiByZXN1bHQ7Ci0gICAgYnVmZmVyLT5yZWYoKTsKKworICAgIC8vIFRoZSBKU0FycmF5QnVm
ZmVyOjpjcmVhdGUgZnVuY3Rpb24gd2lsbCByZWdpc3RlciB0aGUgd3JhcHBlciBpbiBmaW5pc2hD
cmVhdGlvbi4KICAgICBKU0M6OkpTQXJyYXlCdWZmZXIqIHdyYXBwZXIgPSBKU0M6OkpTQXJyYXlC
dWZmZXI6OmNyZWF0ZShleGVjLT52bSgpLCBnbG9iYWxPYmplY3QtPmFycmF5QnVmZmVyU3RydWN0
dXJlKCksIGJ1ZmZlcik7Ci0gICAgY2FjaGVXcmFwcGVyKGdsb2JhbE9iamVjdC0+d29ybGQoKSwg
YnVmZmVyLCB3cmFwcGVyKTsKICAgICByZXR1cm4gd3JhcHBlcjsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxl
ci5jcHAKaW5kZXggMTEwNjkyOThkYzg5MzMwNzU5NjQ5NWJkZTVmMGZmZmZiYzEyYjBmNS4uODM4
ZTRiZmEwYjI1OTNlMDMwODM4NWI4MDc0NmNlOThhOTJjMTA3OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIu
Y3BwCkBAIC00NywyMCArNDcsMjEgQEAgSlNDOjpKU0FycmF5QnVmZmVyKiBXZWJDb3JlVHlwZWRB
cnJheUNvbnRyb2xsZXI6OnRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0MKICAgICByZXR1
cm4gSlNDOjpqc0Nhc3Q8SlNDOjpKU0FycmF5QnVmZmVyKj4oV2ViQ29yZTo6dG9KUyhzdGF0ZSwg
SlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpLCBidWZmZXIpKTsK
IH0KIAordm9pZCBXZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXI6OnJlZ2lzdGVyV3JhcHBlcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6QXJyYXlCdWZmZXIqIG5hdGl2
ZSwgSlNDOjpKU0FycmF5QnVmZmVyKiB3cmFwcGVyKQoreworICAgIGNhY2hlV3JhcHBlcihKU0M6
OmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCktPndvcmxkKCksIG5hdGl2
ZSwgd3JhcHBlcik7Cit9CisKIGJvb2wgV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyOjpKU0Fy
cmF5QnVmZmVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpT
Qzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgSlNDOjpTbG90VmlzaXRvciYgdmlzaXRvcikKIHsK
ICAgICBhdXRvJiB3cmFwcGVyID0gKkpTQzo6anNDYXN0PEpTQzo6SlNBcnJheUJ1ZmZlcio+KGhh
bmRsZS5zbG90KCktPmFzQ2VsbCgpKTsKLSAgICBpZiAoIXdyYXBwZXIuaGFzQ3VzdG9tUHJvcGVy
dGllcygpKQotICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmV0dXJuIHZpc2l0b3IuY29udGFp
bnNPcGFxdWVSb290KHdyYXBwZXIuaW1wbCgpKTsKIH0KIAogdm9pZCBXZWJDb3JlVHlwZWRBcnJh
eUNvbnRyb2xsZXI6OkpTQXJyYXlCdWZmZXJPd25lcjo6ZmluYWxpemUoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiBoYW5kbGUsIHZvaWQqIGNvbnRleHQpCiB7CiAgICAgYXV0byYgd3JhcHBlciA9
ICpzdGF0aWNfY2FzdDxKU0M6OkpTQXJyYXlCdWZmZXIqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwo
KSk7Ci0gICAgYXV0byYgYnVmZmVyID0gKndyYXBwZXIuaW1wbCgpOwotICAgIHVuY2FjaGVXcmFw
cGVyKCpzdGF0aWNfY2FzdDxET01XcmFwcGVyV29ybGQqPihjb250ZXh0KSwgJmJ1ZmZlciwgJndy
YXBwZXIpOwotICAgIGJ1ZmZlci5kZXJlZigpOworICAgIHVuY2FjaGVXcmFwcGVyKCpzdGF0aWNf
Y2FzdDxET01XcmFwcGVyV29ybGQqPihjb250ZXh0KSwgd3JhcHBlci5pbXBsKCksICZ3cmFwcGVy
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuaAppbmRleCA3ZTA0
NGM0ZjBkMWI4Y2IzNDYzY2RkYzRiYzdjM2M1ZGY2YzgwZTU1Li5jZTlmMGE0NjIzOTAyNDEwM2M2
NzQyN2IxMDdiMGI2YWQ1MDgyZTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9XZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9XZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuaApAQCAtNDEsNyArNDEsOCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyKCk7CiAg
ICAgCiAgICAgdmlydHVhbCBKU0M6OkpTQXJyYXlCdWZmZXIqIHRvSlMoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpBcnJheUJ1ZmZlciopIG92ZXJyaWRlOwotICAg
IAorICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlcldyYXBwZXIoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEFycmF5QnVmZmVyKiwgSlNDOjpKU0FycmF5QnVmZmVyKikgb3ZlcnJpZGU7CisKICAgICBKU0M6
OldlYWtIYW5kbGVPd25lciogd3JhcHBlck93bmVyKCkgeyByZXR1cm4gJm1fb3duZXI7IH0KIAog
cHJpdmF0ZToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA2N2EzYWU2MTcyNzE0ZWJmNTQ4N2VmOTU1MDFiNDVhOTExNzhlNjM5
Li5jN2I2MmFkZDQ4ZTczM2IyYTg2ZmY2NGFkY2VlMGM0MTdkYWE3MzRjIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMTYtMDMtMDMgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5j
b20+CisKKyAgICAgICAgSlNBcnJheUJ1ZmZlcnMgc2hvdWxkIGJlIGNvbGxlY3RlZCBsZXNzIGFn
Z3Jlc3NpdmVseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTU0OTgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBqcy9hcnJheWJ1ZmZlci13cmFwcGVycy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGpzL2FycmF5YnVmZmVyLXdyYXBwZXJzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3Nj
cmlwdC10ZXN0cy9hcnJheWJ1ZmZlci13cmFwcGVycy5qczogQWRkZWQuCisgICAgICAgIChwcm90
b3R5cGUudHlwZXMuZm9yRWFjaCk6CisKIDIwMTYtMDMtMDEgIFJ5b3N1a2UgTml3YSAgPHJuaXdh
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgTWFrZSBIVE1MIHBhcnNlciBjb25zdHJ1Y3QgY3VzdG9t
IGVsZW1lbnRzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9hcnJheWJ1ZmZlci13cmFwcGVy
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9hcnJheWJ1ZmZlci13cmFwcGVycy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZWNhZDM3N2RkMmMzYjdjZTg0MjQzNGRhYjhjYjYzMWZmZTY3
Y2NmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2FycmF5YnVmZmVyLXdyYXBw
ZXJzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQ0IEBACitUZXN0cyB3cmFwcGVycyBmb3IgQXJy
YXlCdWZmZXIgb2JqZWN0cyBhcmUgbm90IEdDZWQgd2hlbiB0aGV5IHNob3VsZG4ndCBiZQorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVGVzdCBzdWJjbGFzc2luZworUEFTUyBmb28u
YnVmZmVyIGluc3RhbmNlb2YgQyBpcyB0cnVlCitQQVNTIGZvby5idWZmZXIgaW5zdGFuY2VvZiBD
IGlzIHRydWUKK1BBU1MgZm9vLmJ1ZmZlciBpbnN0YW5jZW9mIEMgaXMgdHJ1ZQorUEFTUyBmb28u
YnVmZmVyIGluc3RhbmNlb2YgQyBpcyB0cnVlCitQQVNTIGZvby5idWZmZXIgaW5zdGFuY2VvZiBD
IGlzIHRydWUKK1BBU1MgZm9vLmJ1ZmZlciBpbnN0YW5jZW9mIEMgaXMgdHJ1ZQorUEFTUyBmb28u
YnVmZmVyIGluc3RhbmNlb2YgQyBpcyB0cnVlCitQQVNTIGZvby5idWZmZXIgaW5zdGFuY2VvZiBD
IGlzIHRydWUKK1BBU1MgZm9vLmJ1ZmZlciBpbnN0YW5jZW9mIEMgaXMgdHJ1ZQorUEFTUyBmb28u
YnVmZmVyIGluc3RhbmNlb2YgQyBpcyB0cnVlCisKK1Rlc3QgcHJvcGVydGllcworUEFTUyBmb28u
YnVmZmVyLmJhciBpcyAxCitQQVNTIGZvby5idWZmZXIuYmFyIGlzIDEKK1BBU1MgZm9vLmJ1ZmZl
ci5iYXIgaXMgMQorUEFTUyBmb28uYnVmZmVyLmJhciBpcyAxCitQQVNTIGZvby5idWZmZXIuYmFy
IGlzIDEKK1BBU1MgZm9vLmJ1ZmZlci5iYXIgaXMgMQorUEFTUyBmb28uYnVmZmVyLmJhciBpcyAx
CitQQVNTIGZvby5idWZmZXIuYmFyIGlzIDEKK1BBU1MgZm9vLmJ1ZmZlci5iYXIgaXMgMQorUEFT
UyBmb28uYnVmZmVyLmJhciBpcyAxCisKK1Rlc3QgV2Vha01hcAorUEFTUyB3cy5oYXMoZm9vLmJ1
ZmZlcikgaXMgdHJ1ZQorUEFTUyB3cy5oYXMoZm9vLmJ1ZmZlcikgaXMgdHJ1ZQorUEFTUyB3cy5o
YXMoZm9vLmJ1ZmZlcikgaXMgdHJ1ZQorUEFTUyB3cy5oYXMoZm9vLmJ1ZmZlcikgaXMgdHJ1ZQor
UEFTUyB3cy5oYXMoZm9vLmJ1ZmZlcikgaXMgdHJ1ZQorUEFTUyB3cy5oYXMoZm9vLmJ1ZmZlcikg
aXMgdHJ1ZQorUEFTUyB3cy5oYXMoZm9vLmJ1ZmZlcikgaXMgdHJ1ZQorUEFTUyB3cy5oYXMoZm9v
LmJ1ZmZlcikgaXMgdHJ1ZQorUEFTUyB3cy5oYXMoZm9vLmJ1ZmZlcikgaXMgdHJ1ZQorUEFTUyB3
cy5oYXMoZm9vLmJ1ZmZlcikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2FycmF5YnVm
ZmVyLXdyYXBwZXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9hcnJheWJ1ZmZlci13cmFwcGVycy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmVlMzdmOTU0OTcxMTJlM2U0NWFkODA5ZGQ1N2JmYzAyNzFmODNhZjAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9hcnJheWJ1ZmZlci13cmFwcGVycy5o
dG1sCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InNj
cmlwdC10ZXN0cy9hcnJheWJ1ZmZlci13cmFwcGVycy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvYXJyYXlidWZmZXIt
d3JhcHBlcnMuanMgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvYXJyYXlidWZmZXItd3Jh
cHBlcnMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYzU0MGQ3Y2RhMTU5YWMzNzdhNWI4MGQ1NGNkMzljZWIzYzI3
NGVmMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9hcnJh
eWJ1ZmZlci13cmFwcGVycy5qcwpAQCAtMCwwICsxLDQ3IEBACitkZXNjcmlwdGlvbigiVGVzdHMg
d3JhcHBlcnMgZm9yIEFycmF5QnVmZmVyIG9iamVjdHMgYXJlIG5vdCBHQ2VkIHdoZW4gdGhleSBz
aG91bGRuJ3QgYmUiKTsKKworbGV0IHR5cGVzID0gW0ludDhBcnJheSwgVWludDhBcnJheSwgVWlu
dDhDbGFtcGVkQXJyYXksIEludDE2QXJyYXksIFVpbnQxNkFycmF5LCBJbnQzMkFycmF5LCBVaW50
MzJBcnJheSwgRmxvYXQzMkFycmF5LCBGbG9hdDY0QXJyYXksIERhdGFWaWV3XTsKKworZGVidWco
IlRlc3Qgc3ViY2xhc3NpbmciKTsKKwordHlwZXMuZm9yRWFjaChmdW5jdGlvbih0eXBlKSB7Cisg
ICAgQyA9IGNsYXNzIGV4dGVuZHMgQXJyYXlCdWZmZXIgeyB9CisKKyAgICBsZXQgYiA9IG5ldyBD
KDgpOworICAgIGZvbyA9IG5ldyB0eXBlKGIpOworCisgICAgYiA9IG51bGw7CisgICAgZ2MoKTsK
KworICAgIHNob3VsZEJlVHJ1ZSgiZm9vLmJ1ZmZlciBpbnN0YW5jZW9mIEMiKTsKK30pOworCitk
ZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCBwcm9wZXJ0aWVzIik7CisKK3R5cGVzLmZvckVhY2goZnVu
Y3Rpb24odHlwZSkgeworICAgIGIgPSBuZXcgQXJyYXlCdWZmZXIoOCk7CisgICAgYi5iYXIgPSAx
OworCisgICAgZm9vID0gbmV3IEludDMyQXJyYXkoYik7CisgICAgYiA9IG51bGw7CisgICAgZ2Mo
KTsKKworICAgIHNob3VsZEJlKCJmb28uYnVmZmVyLmJhciIsICIxIik7Cit9KTsKKworZGVidWco
IiIpOworZGVidWcoIlRlc3QgV2Vha01hcCIpOworCit0eXBlcy5mb3JFYWNoKGZ1bmN0aW9uKHR5
cGUpIHsKKyAgICB3cyA9IG5ldyBXZWFrU2V0KCk7CisgICAgYiA9IG5ldyBBcnJheUJ1ZmZlcig4
KTsKKworICAgIHdzLmFkZChiKTsKKyAgICBmb28gPSBuZXcgSW50MzJBcnJheShiKTsKKyAgICBi
ID0gbnVsbDsKKworICAgIGdjKCk7CisKKyAgICBzaG91bGRCZVRydWUoIndzLmhhcyhmb28uYnVm
ZmVyKSIpOworfSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>