<?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>209611</bug_id>
          
          <creation_ts>2020-03-26 11:39:44 -0700</creation_ts>
          <short_desc>TypedArrays should more gracefully handle OOM during slowDownAndWasteMemory</short_desc>
          <delta_ts>2020-03-27 10:23:51 -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>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>InRadar</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>aakash_jain</cc>
    
    <cc>ap</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>dpino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>guijemont</cc>
    
    <cc>lmoura</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>pmatos</cc>
    
    <cc>saam</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1634457</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-03-26 11:39:44 -0700</bug_when>
    <thetext>TypedArrays should more gracefully handle OOM during slowDownAndWasteMemory</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634463</commentid>
    <comment_count>1</comment_count>
      <attachid>394635</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-03-26 11:45:36 -0700</bug_when>
    <thetext>Created attachment 394635
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634467</commentid>
    <comment_count>2</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-03-26 11:46:57 -0700</bug_when>
    <thetext>rdar://problem/60139974</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634470</commentid>
    <comment_count>3</comment_count>
      <attachid>394635</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2020-03-26 11:52:25 -0700</bug_when>
    <thetext>Comment on attachment 394635
Patch

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

r=me

&gt; Source/JavaScriptCore/API/JSTypedArray.cpp:255
&gt; +            return nullptr;

remove this?

&gt; JSTests/stress/typed-array-oom-in-buffer-accessor.js:1
&gt; +let z = new Float64Array(1000);

How slow is this test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634499</commentid>
    <comment_count>4</comment_count>
      <attachid>394635</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-03-26 12:45:49 -0700</bug_when>
    <thetext>Comment on attachment 394635
Patch

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

&gt;&gt; Source/JavaScriptCore/API/JSTypedArray.cpp:255
&gt;&gt; +            return nullptr;
&gt; 
&gt; remove this?

Removed.

&gt;&gt; JSTests/stress/typed-array-oom-in-buffer-accessor.js:1
&gt;&gt; +let z = new Float64Array(1000);
&gt; 
&gt; How slow is this test?

1-2s in Debug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634501</commentid>
    <comment_count>5</comment_count>
      <attachid>394644</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-03-26 12:51:46 -0700</bug_when>
    <thetext>Created attachment 394644
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634534</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-03-26 13:27:08 -0700</bug_when>
    <thetext>Committed r259069: &lt;https://trac.webkit.org/changeset/259069&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 394644.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634791</commentid>
    <comment_count>7</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-03-27 04:55:08 -0700</bug_when>
    <thetext>(In reply to EWS from comment #6)
&gt; Committed r259069: &lt;https://trac.webkit.org/changeset/259069&gt;
The newly added test stress/typed-array-oom-in-buffer-accessor.js seems to be consistently failing on jsc-armv7 and jsc-mips.

History: https://results.webkit.org/?suite=javascriptcore-tests&amp;suite=javascriptcore-tests&amp;suite=javascriptcore-tests&amp;test=stress%2Ftyped-array-oom-in-buffer-accessor.js.eager-jettison-no-cjit&amp;test=stress%2Ftyped-array-oom-in-buffer-accessor.js.no-llint&amp;test=stress%2Ftyped-array-oom-in-buffer-accessor.js.no-cjit-validate-phases

EWS: https://ews-build.webkit.org/#/builders/26/builds/12663, https://ews-build.webkit.org/#/builders/25/builds/12587

Log: 
stress/typed-array-oom-in-buffer-accessor.js.dfg-eager: Aborted
stress/typed-array-oom-in-buffer-accessor.js.dfg-eager: ERROR: Unexpected exit code: 134
FAIL: stress/typed-array-oom-in-buffer-accessor.js.dfg-eager</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634795</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2020-03-27 05:40:49 -0700</bug_when>
    <thetext>(In reply to Aakash Jain from comment #7)
&gt; (In reply to EWS from comment #6)
&gt; &gt; Committed r259069: &lt;https://trac.webkit.org/changeset/259069&gt;
&gt; The newly added test stress/typed-array-oom-in-buffer-accessor.js seems to
&gt; be consistently failing on jsc-armv7 and jsc-mips.
&gt; 
&gt; History:
&gt; https://results.webkit.org/?suite=javascriptcore-tests&amp;suite=javascriptcore-
&gt; tests&amp;suite=javascriptcore-tests&amp;test=stress%2Ftyped-array-oom-in-buffer-
&gt; accessor.js.eager-jettison-no-cjit&amp;test=stress%2Ftyped-array-oom-in-buffer-
&gt; accessor.js.no-llint&amp;test=stress%2Ftyped-array-oom-in-buffer-accessor.js.no-
&gt; cjit-validate-phases
&gt; 
&gt; EWS: https://ews-build.webkit.org/#/builders/26/builds/12663,
&gt; https://ews-build.webkit.org/#/builders/25/builds/12587
&gt; 
&gt; Log: 
&gt; stress/typed-array-oom-in-buffer-accessor.js.dfg-eager: Aborted
&gt; stress/typed-array-oom-in-buffer-accessor.js.dfg-eager: ERROR: Unexpected
&gt; exit code: 134
&gt; FAIL: stress/typed-array-oom-in-buffer-accessor.js.dfg-eager

If this tests require to allocate more than 512MB of RAM then they need to have this at the top:
//@ skip if $memoryLimited

And then the ARMv7 and MIPS JSC testers should skip this tests. We run the testers on boards with only 2GB of RAM, also Linux doesn&apos;t handle OOM situations as good as Mac/iOS, so this testers run with $memoryLimited config option enabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634861</commentid>
    <comment_count>9</comment_count>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2020-03-27 10:23:51 -0700</bug_when>
    <thetext>(In reply to Carlos Alberto Lopez Perez from comment #8)
&gt; (In reply to Aakash Jain from comment #7)
&gt; &gt; (In reply to EWS from comment #6)
&gt; &gt; &gt; Committed r259069: &lt;https://trac.webkit.org/changeset/259069&gt;
&gt; &gt; The newly added test stress/typed-array-oom-in-buffer-accessor.js seems to
&gt; &gt; be consistently failing on jsc-armv7 and jsc-mips.
&gt; &gt; 
&gt; &gt; History:
&gt; &gt; https://results.webkit.org/?suite=javascriptcore-tests&amp;suite=javascriptcore-
&gt; &gt; tests&amp;suite=javascriptcore-tests&amp;test=stress%2Ftyped-array-oom-in-buffer-
&gt; &gt; accessor.js.eager-jettison-no-cjit&amp;test=stress%2Ftyped-array-oom-in-buffer-
&gt; &gt; accessor.js.no-llint&amp;test=stress%2Ftyped-array-oom-in-buffer-accessor.js.no-
&gt; &gt; cjit-validate-phases
&gt; &gt; 
&gt; &gt; EWS: https://ews-build.webkit.org/#/builders/26/builds/12663,
&gt; &gt; https://ews-build.webkit.org/#/builders/25/builds/12587
&gt; &gt; 
&gt; &gt; Log: 
&gt; &gt; stress/typed-array-oom-in-buffer-accessor.js.dfg-eager: Aborted
&gt; &gt; stress/typed-array-oom-in-buffer-accessor.js.dfg-eager: ERROR: Unexpected
&gt; &gt; exit code: 134
&gt; &gt; FAIL: stress/typed-array-oom-in-buffer-accessor.js.dfg-eager
&gt; 
&gt; If this tests require to allocate more than 512MB of RAM then they need to
&gt; have this at the top:
&gt; //@ skip if $memoryLimited
&gt; 
&gt; And then the ARMv7 and MIPS JSC testers should skip this tests. We run the
&gt; testers on boards with only 2GB of RAM, also Linux doesn&apos;t handle OOM
&gt; situations as good as Mac/iOS, so this testers run with $memoryLimited
&gt; config option enabled.

Added bug 209661</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394635</attachid>
            <date>2020-03-26 11:45:36 -0700</date>
            <delta_ts>2020-03-26 12:51:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209611-20200326114535.patch</filename>
            <type>text/plain</type>
            <size>12890</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
OGYyNGRjOWI1Zjk3Y2ZiMzI5MDFkYWQxNDhlYjBhMjAzZjg2OGU1Li43OTgzNGJjM2YwYmNlYTE4
ZTM2YWE0NjJiOGQ0ODcyYjU5Y2UwNzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MCBAQAorMjAyMC0wMy0yNiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBUeXBlZEFycmF5cyBzaG91bGQgbW9yZSBncmFjZWZ1bGx5IGhhbmRs
ZSBPT00gZHVyaW5nIHNsb3dEb3duQW5kV2FzdGVNZW1vcnkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTYxMQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJpZ2h0IG5vdyBpZiB3ZSBjYW5ub3QgYWxsb2Nh
dGUgYW4gQXJyYXlCdWZmZXIgZm9yIGEgVHlwZWRBcnJheSB3ZQorICAgICAgICBjcmFzaC4gSG93
ZXZlciwgc2luY2Ugd2UgdXNlIHRoZSBwcmltaXRpdmUgZ2lnYWNhZ2UgZm9yCisgICAgICAgIEFy
cmF5QnVmZmVyIGFsbG9jYXRpb25zIHdlIGNhbiBsaWtlbHkgc3RpbGwgYWxsb2NhdGUgYW4gT09N
IGVycm9yCisgICAgICAgIG9iamVjdC4gSW4gb3JkZXIgdG8gZG8gdGhpcyBzb21lIGNoYW5nZXMg
d2VyZSBuZWVkZWQgaW4KKyAgICAgICAgc2xvd0Rvd25BbmRXYXN0ZU1lbW9yeS4gTmFtZWx5LCB3
ZSBzaG91bGQgbm90IGFsbG9jYXRlIHRoZQorICAgICAgICBidXR0ZXJmbHkgdW50aWwgd2Uga25v
dyB3ZSBoYXZlIGFuIEFycmF5QnVmZmVyLiBJIGFsc28gY2hlY2sgdGhhdAorICAgICAgICBhbGwg
dGhlIHRyYW5zaXRpdmUgY2FsbGVycyBvZiBzbG93RG93bkFuZFdhc3RlTWVtb3J5IGNhbiBoYW5k
bGUKKyAgICAgICAgZmFpbHVyZS4KKworICAgICAgICBMYXN0bHksIHRoaXMgcGF0Y2ggbWFrZXMg
aXQgc28gZmFpbHVyZSB0byBhbGxvY2F0ZSBhbiBBcnJheUJ1ZmZlcgorICAgICAgICBmb3IgYSBU
eXBlQXJyYXkgZHVyaW5nIERGRyB3YXRjaHBvaW50IGFkZGl0aW9uIGNhdXNlcyB0aGUgY29kZQor
ICAgICAgICBibG9jayB0byBiZSB0aHJvd24gYXdheSwgcmF0aGVyIHRoYW4gY3Jhc2ggdGhlIHBy
b2Nlc3MuCisKKyAgICAgICAgKiBBUEkvSlNUeXBlZEFycmF5LmNwcDoKKyAgICAgICAgKEpTT2Jq
ZWN0R2V0VHlwZWRBcnJheUJ5dGVzUHRyKToKKyAgICAgICAgKEpTT2JqZWN0R2V0VHlwZWRBcnJh
eUJ1ZmZlcik6CisgICAgICAgICogYnl0ZWNvZGUvV2F0Y2hwb2ludC5oOgorICAgICAgICAqIGRm
Zy9ERkdEZXNpcmVkV2F0Y2hwb2ludHMuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkFycmF5QnVm
ZmVyVmlld1dhdGNocG9pbnRBZGFwdG9yOjphZGQpOgorICAgICAgICAqIHJ1bnRpbWUvR2VuZXJp
Y1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oOgorICAgICAgICAoSlNDOjpHZW5lcmljVHlwZWRBcnJh
eVZpZXc8QWRhcHRvcj46OnRyeUNyZWF0ZSk6CisgICAgICAgICogcnVudGltZS9KU0FycmF5QnVm
ZmVyVmlldy5jcHA6CisgICAgICAgIChKU0M6OkpTQXJyYXlCdWZmZXJWaWV3Ojp1bnNoYXJlZEJ1
ZmZlcik6CisgICAgICAgIChKU0M6OkpTQXJyYXlCdWZmZXJWaWV3Ojp1bnNoYXJlZEpTQnVmZmVy
KToKKyAgICAgICAgKEpTQzo6SlNBcnJheUJ1ZmZlclZpZXc6OnBvc3NpYmx5U2hhcmVkSlNCdWZm
ZXIpOgorICAgICAgICAoSlNDOjpKU0FycmF5QnVmZmVyVmlldzo6c2xvd0Rvd25BbmRXYXN0ZU1l
bW9yeSk6CisgICAgICAgIChKU0M6OkpTQXJyYXlCdWZmZXJWaWV3Ojpwb3NzaWJseVNoYXJlZElt
cGwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheUJ1ZmZlclZpZXdJbmxpbmVzLmg6CisgICAg
ICAgIChKU0M6OkpTQXJyYXlCdWZmZXJWaWV3OjpieXRlT2Zmc2V0SW1wbCk6CisKIDIwMjAtMDMt
MTYgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBK
U01hcEl0ZXJhdG9yIGFuZCBKU1NldEl0ZXJhdG9yIGFyZSBDZWxsVHlwZQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1R5cGVkQXJyYXkuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU1R5cGVkQXJyYXkuY3BwCmluZGV4IDQ2MDM1YTlkMTZiZDllMzU1OTVh
Y2FkOGJlNzIzM2FmY2UzMzEwMzEuLjFkMDY3Y2I3OGFmMjIzZmY5ODE4NDM4NjBiY2JjZTA2ODAz
ZGIyNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNUeXBlZEFycmF5
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVHlwZWRBcnJheS5jcHAKQEAg
LTI0MSw3ICsyNDEsNyBAQCBKU09iamVjdFJlZiBKU09iamVjdE1ha2VUeXBlZEFycmF5V2l0aEFy
cmF5QnVmZmVyQW5kT2Zmc2V0KEpTQ29udGV4dFJlZiBjdHgsIEpTVAogICAgIHJldHVybiB0b1Jl
ZihyZXN1bHQpOwogfQogCi12b2lkKiBKU09iamVjdEdldFR5cGVkQXJyYXlCeXRlc1B0cihKU0Nv
bnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3RSZWYsIEpTVmFsdWVSZWYqKQordm9pZCog
SlNPYmplY3RHZXRUeXBlZEFycmF5Qnl0ZXNQdHIoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RS
ZWYgb2JqZWN0UmVmLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCA9IHRvSlMoY3R4KTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CkBAIC0yNDksOSArMjQ5LDEzIEBAIHZvaWQqIEpTT2JqZWN0R2V0VHlwZWRBcnJheUJ5
dGVzUHRyKEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdFJlZiwgSlNWCiAgICAg
SlNPYmplY3QqIG9iamVjdCA9IHRvSlMob2JqZWN0UmVmKTsKIAogICAgIGlmIChKU0FycmF5QnVm
ZmVyVmlldyogdHlwZWRBcnJheSA9IGpzRHluYW1pY0Nhc3Q8SlNBcnJheUJ1ZmZlclZpZXcqPih2
bSwgb2JqZWN0KSkgewotICAgICAgICBBcnJheUJ1ZmZlciogYnVmZmVyID0gdHlwZWRBcnJheS0+
cG9zc2libHlTaGFyZWRCdWZmZXIoKTsKLSAgICAgICAgYnVmZmVyLT5waW5BbmRMb2NrKCk7Ci0g
ICAgICAgIHJldHVybiBidWZmZXItPmRhdGEoKTsKKyAgICAgICAgaWYgKEFycmF5QnVmZmVyKiBi
dWZmZXIgPSB0eXBlZEFycmF5LT5wb3NzaWJseVNoYXJlZEJ1ZmZlcigpKSB7CisgICAgICAgICAg
ICBidWZmZXItPnBpbkFuZExvY2soKTsKKyAgICAgICAgICAgIHJldHVybiBidWZmZXItPmRhdGEo
KTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9CisKKyAgICAgICAgc2V0
RXhjZXB0aW9uKGN0eCwgZXhjZXB0aW9uLCBjcmVhdGVPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9i
amVjdCkpOwogICAgIH0KICAgICByZXR1cm4gbnVsbHB0cjsKIH0KQEAgLTI5MiwxNSArMjk2LDIw
IEBAIHNpemVfdCBKU09iamVjdEdldFR5cGVkQXJyYXlCeXRlT2Zmc2V0KEpTQ29udGV4dFJlZiBj
dHgsIEpTT2JqZWN0UmVmIG9iamVjdFJlZiwKICAgICByZXR1cm4gMDsKIH0KIAotSlNPYmplY3RS
ZWYgSlNPYmplY3RHZXRUeXBlZEFycmF5QnVmZmVyKEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0
UmVmIG9iamVjdFJlZiwgSlNWYWx1ZVJlZiopCitKU09iamVjdFJlZiBKU09iamVjdEdldFR5cGVk
QXJyYXlCdWZmZXIoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0UmVmLCBKU1Zh
bHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9
IHRvSlMoY3R4KTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgSlNMb2Nr
SG9sZGVyIGxvY2tlcih2bSk7CiAgICAgSlNPYmplY3QqIG9iamVjdCA9IHRvSlMob2JqZWN0UmVm
KTsKIAotICAgIGlmIChKU0FycmF5QnVmZmVyVmlldyogdHlwZWRBcnJheSA9IGpzRHluYW1pY0Nh
c3Q8SlNBcnJheUJ1ZmZlclZpZXcqPih2bSwgb2JqZWN0KSkKLSAgICAgICAgcmV0dXJuIHRvUmVm
KHZtLm1fdHlwZWRBcnJheUNvbnRyb2xsZXItPnRvSlMoZ2xvYmFsT2JqZWN0LCB0eXBlZEFycmF5
LT5nbG9iYWxPYmplY3Qodm0pLCB0eXBlZEFycmF5LT5wb3NzaWJseVNoYXJlZEJ1ZmZlcigpKSk7
CisKKyAgICBpZiAoSlNBcnJheUJ1ZmZlclZpZXcqIHR5cGVkQXJyYXkgPSBqc0R5bmFtaWNDYXN0
PEpTQXJyYXlCdWZmZXJWaWV3Kj4odm0sIG9iamVjdCkpIHsKKyAgICAgICAgaWYgKEFycmF5QnVm
ZmVyKiBidWZmZXIgPSB0eXBlZEFycmF5LT5wb3NzaWJseVNoYXJlZEJ1ZmZlcigpKQorICAgICAg
ICAgICAgcmV0dXJuIHRvUmVmKHZtLm1fdHlwZWRBcnJheUNvbnRyb2xsZXItPnRvSlMoZ2xvYmFs
T2JqZWN0LCB0eXBlZEFycmF5LT5nbG9iYWxPYmplY3Qodm0pLCBidWZmZXIpKTsKKworICAgICAg
ICBzZXRFeGNlcHRpb24oY3R4LCBleGNlcHRpb24sIGNyZWF0ZU91dE9mTWVtb3J5RXJyb3IoZ2xv
YmFsT2JqZWN0KSk7CisgICAgfQogCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvV2F0Y2hwb2ludC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1dhdGNocG9pbnQuaAppbmRleCBjZWY5YzBjODExZDFiZjJj
OWE4ZTVkYTI1M2RhOTBkNTg2N2VjODE2Li40YjI0YTUwZTIzOWZmOGY2MTE3ZTJiMDAxZDRhNDI0
Njc2MDAwNTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvV2F0
Y2hwb2ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9XYXRjaHBvaW50
LmgKQEAgLTM2LDYgKzM2LDEwIEBACiAKIG5hbWVzcGFjZSBKU0MgewogCituYW1lc3BhY2UgREZH
IHsKK3N0cnVjdCBBcnJheUJ1ZmZlclZpZXdXYXRjaHBvaW50QWRhcHRvcjsKK30KKwogY2xhc3Mg
Vk07CiAKIGNsYXNzIEZpcmVEZXRhaWwgewpAQCAtMTU3LDYgKzE2MSw4IEBAIHByb3RlY3RlZDoK
IAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgV2F0Y2hwb2ludFNldDsKKyAgICAvLyBBcnJh
eUJ1ZmZlclZpZXdXYXRjaHBvaW50QWRhcHRvciBjYW4gZmlyZSB3YXRjaHBvaW50cyBpZiBpdCB0
cmllcyB0byBhdHRhY2ggYSB3YXRjaHBvaW50IHRvIGEgdmlldyBidXQgY2FuJ3QgYWxsb2NhdGUg
dGhlIEFycmF5QnVmZmVyLgorICAgIGZyaWVuZCBzdHJ1Y3QgREZHOjpBcnJheUJ1ZmZlclZpZXdX
YXRjaHBvaW50QWRhcHRvcjsKICAgICB2b2lkIGZpcmUoVk0mLCBjb25zdCBGaXJlRGV0YWlsJik7
CiAKICAgICBUeXBlIG1fdHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHRGVzaXJlZFdhdGNocG9pbnRzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRGVzaXJlZFdhdGNocG9pbnRzLmNwcAppbmRleCAwN2JhYmU3M2I0ZGU5NWY2ODZmY2QwYzJi
OTBmYzI1M2I5N2Q1YmI5Li5kZmI4MTU4N2IyMTRkMzA4Mjg5ZjAxNmUzMGQ2YzUwMjdhZGY1ZmMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Rlc2lyZWRXYXRjaHBv
aW50cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEZXNpcmVkV2F0Y2hw
b2ludHMuY3BwCkBAIC00NCw3ICs0NCwxMSBAQCB2b2lkIEFycmF5QnVmZmVyVmlld1dhdGNocG9p
bnRBZGFwdG9yOjphZGQoCiAgICAgICAgIHdhdGNocG9pbnQgPSBjb21tb24ud2F0Y2hwb2ludHMu
YWRkKGNvZGVCbG9jayk7CiAgICAgfQogICAgIEFycmF5QnVmZmVyKiBhcnJheUJ1ZmZlciA9IHZp
ZXctPnBvc3NpYmx5U2hhcmVkQnVmZmVyKCk7Ci0gICAgUkVMRUFTRV9BU1NFUlQoYXJyYXlCdWZm
ZXIpOworICAgIGlmICghYXJyYXlCdWZmZXIpIHsKKyAgICAgICAgd2F0Y2hwb2ludC0+ZmlyZShj
b2RlQmxvY2stPnZtKCksIFN0cmluZ0ZpcmVEZXRhaWwoIkFycmF5QnVmZmVyIGNvdWxkIG5vdCBi
ZSBhbGxvY2F0ZWQsIHByb2JhYmx5IGJlY2F1c2Ugb2YgT09NLiIpKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKwogICAgIC8vIEZJWE1FOiBXZSBkb24ndCBuZWVkIHRvIHNldCB0aGlzIHdhdGNo
cG9pbnQgYXQgYWxsIGZvciBzaGFyZWQgYnVmZmVycy4KICAgICAvLyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0MTA4CiAgICAgYXJyYXlCdWZmZXItPm5ldXRlcmlu
Z1dhdGNocG9pbnRTZXQoKS5hZGQoV1RGTW92ZSh3YXRjaHBvaW50KSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZW5lcmljVHlwZWRBcnJheVZpZXdJbmxpbmVz
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZW5lcmljVHlwZWRBcnJheVZpZXdJ
bmxpbmVzLmgKaW5kZXggM2ViMjQxY2NmYmY5MWJkZTY2MjY2NjhkNTUxNjg1ZDg5N2MxODRiOC4u
YWU1YmRkOGM2YTMxNzM5ZDAwYzljYTE3Y2RiZGZmMDk5NTJiZTdhNiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dlbmVyaWNUeXBlZEFycmF5Vmll
d0lubGluZXMuaApAQCAtODcsNyArODcsOSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBBZGFwdG9yPgog
UmVmUHRyPEdlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9yPj4gR2VuZXJpY1R5cGVkQXJyYXlW
aWV3PEFkYXB0b3I+Ojp0cnlDcmVhdGUoCiAgICAgUmVmUHRyPEFycmF5QnVmZmVyPiYmIGJ1ZmZl
ciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQogewotICAgIEFTU0VSVChi
dWZmZXIpOworICAgIGlmICghYnVmZmVyKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAK
ICAgICBpZiAoIUFycmF5QnVmZmVyVmlldzo6dmVyaWZ5U3ViUmFuZ2VMZW5ndGgoKmJ1ZmZlciwg
Ynl0ZU9mZnNldCwgbGVuZ3RoLCBzaXplb2YodHlwZW5hbWUgQWRhcHRvcjo6VHlwZSkpCiAgICAg
ICAgIHx8ICF2ZXJpZnlCeXRlT2Zmc2V0QWxpZ25tZW50KGJ5dGVPZmZzZXQsIHNpemVvZih0eXBl
bmFtZSBBZGFwdG9yOjpUeXBlKSkpIHsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyVmlldy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyVmlldy5jcHAKaW5k
ZXggOTc3YTc1YmYxN2YzZGJjYzk5NTMwMDExYjAxMTZmZjlmY2JlOTI2OC4uMzhlZDYwZGIwMTAx
YmMyOTU2NTI5OGFhMTNlNDc1MzFmM2ZkNjhmYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlclZpZXcuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJWaWV3LmNwcApAQCAtMTkwLDcgKzE5MCw3IEBA
IGJvb2wgSlNBcnJheUJ1ZmZlclZpZXc6OnB1dCgKIEFycmF5QnVmZmVyKiBKU0FycmF5QnVmZmVy
Vmlldzo6dW5zaGFyZWRCdWZmZXIoKQogewogICAgIEFycmF5QnVmZmVyKiByZXN1bHQgPSBwb3Nz
aWJseVNoYXJlZEJ1ZmZlcigpOwotICAgIFJFTEVBU0VfQVNTRVJUKCFyZXN1bHQtPmlzU2hhcmVk
KCkpOworICAgIFJFTEVBU0VfQVNTRVJUKCFyZXN1bHQgfHwgIXJlc3VsdC0+aXNTaGFyZWQoKSk7
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KICAgICAKQEAgLTIwNSwxMyArMjA1LDIxIEBAIHZvaWQg
SlNBcnJheUJ1ZmZlclZpZXc6OmZpbmFsaXplKEpTQ2VsbCogY2VsbCkKIEpTQXJyYXlCdWZmZXIq
IEpTQXJyYXlCdWZmZXJWaWV3Ojp1bnNoYXJlZEpTQnVmZmVyKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgIHJldHVy
biB2bS5tX3R5cGVkQXJyYXlDb250cm9sbGVyLT50b0pTKGdsb2JhbE9iamVjdCwgdGhpcy0+Z2xv
YmFsT2JqZWN0KHZtKSwgdW5zaGFyZWRCdWZmZXIoKSk7CisgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOworICAgIGlmIChBcnJheUJ1ZmZlciogYnVmZmVyID0gdW5zaGFy
ZWRCdWZmZXIoKSkKKyAgICAgICAgcmV0dXJuIHZtLm1fdHlwZWRBcnJheUNvbnRyb2xsZXItPnRv
SlMoZ2xvYmFsT2JqZWN0LCB0aGlzLT5nbG9iYWxPYmplY3Qodm0pLCBidWZmZXIpOworICAgIHNj
b3BlLnRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgY3JlYXRlT3V0T2ZNZW1vcnlFcnJvcihn
bG9iYWxPYmplY3QpKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogSlNBcnJheUJ1ZmZlciog
SlNBcnJheUJ1ZmZlclZpZXc6OnBvc3NpYmx5U2hhcmVkSlNCdWZmZXIoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAg
cmV0dXJuIHZtLm1fdHlwZWRBcnJheUNvbnRyb2xsZXItPnRvSlMoZ2xvYmFsT2JqZWN0LCB0aGlz
LT5nbG9iYWxPYmplY3Qodm0pLCBwb3NzaWJseVNoYXJlZEJ1ZmZlcigpKTsKKyAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgaWYgKEFycmF5QnVmZmVyKiBidWZm
ZXIgPSBwb3NzaWJseVNoYXJlZEJ1ZmZlcigpKQorICAgICAgICByZXR1cm4gdm0ubV90eXBlZEFy
cmF5Q29udHJvbGxlci0+dG9KUyhnbG9iYWxPYmplY3QsIHRoaXMtPmdsb2JhbE9iamVjdCh2bSks
IGJ1ZmZlcik7CisgICAgc2NvcGUudGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBjcmVhdGVP
dXRPZk1lbW9yeUVycm9yKGdsb2JhbE9iamVjdCkpOworICAgIHJldHVybiBudWxscHRyOwogfQog
CiB2b2lkIEpTQXJyYXlCdWZmZXJWaWV3OjpuZXV0ZXIoKQpAQCAtMjYxLDMwICsyNjksMzcgQEAg
QXJyYXlCdWZmZXIqIEpTQXJyYXlCdWZmZXJWaWV3OjpzbG93RG93bkFuZFdhc3RlTWVtb3J5KCkK
IAogICAgIFJFTEVBU0VfQVNTRVJUKCFoYXNJbmRleGluZ0hlYWRlcih2bSkpOwogICAgIFN0cnVj
dHVyZSogc3RydWN0dXJlID0gdGhpcy0+c3RydWN0dXJlKHZtKTsKLSAgICBzZXRCdXR0ZXJmbHko
dm0sIEJ1dHRlcmZseTo6Y3JlYXRlT3JHcm93QXJyYXlSaWdodCgKLSAgICAgICAgYnV0dGVyZmx5
KCksIHZtLCB0aGlzLCBzdHJ1Y3R1cmUsCi0gICAgICAgIHN0cnVjdHVyZS0+b3V0T2ZMaW5lQ2Fw
YWNpdHkoKSwgZmFsc2UsIDAsIDApKTsKIAogICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVy
OwogICAgIHVuc2lnbmVkIGJ5dGVMZW5ndGggPSBtX2xlbmd0aCAqIGVsZW1lbnRTaXplKHR5cGUo
KSk7CiAKICAgICBzd2l0Y2ggKG1fbW9kZSkgewotICAgIGNhc2UgRmFzdFR5cGVkQXJyYXk6Ci0g
ICAgICAgIGJ1ZmZlciA9IEFycmF5QnVmZmVyOjpjcmVhdGUodmVjdG9yKCksIGJ5dGVMZW5ndGgp
OworICAgIGNhc2UgRmFzdFR5cGVkQXJyYXk6IHsKKyAgICAgICAgYnVmZmVyID0gQXJyYXlCdWZm
ZXI6OnRyeUNyZWF0ZSh2ZWN0b3IoKSwgYnl0ZUxlbmd0aCk7CisgICAgICAgIGlmICghYnVmZmVy
KQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIGJyZWFrOworICAgIH0KIAot
ICAgIGNhc2UgT3ZlcnNpemVUeXBlZEFycmF5OgorICAgIGNhc2UgT3ZlcnNpemVUeXBlZEFycmF5
OiB7CiAgICAgICAgIC8vIEZJWE1FOiBjb25zaWRlciBkb2luZyBzb21ldGhpbmcgbGlrZSAic3Vi
dHJhY3RpbmciIGZyb20gZXh0cmEgbWVtb3J5CiAgICAgICAgIC8vIGNvc3QsIHNpbmNlIHJpZ2h0
IG5vdyB0aGlzIGNhc2Ugd2lsbCBjYXVzZSB0aGUgR0MgdG8gdGhpbmsgdGhhdCB3ZSByZWFsbG9j
YXRlZAogICAgICAgICAvLyB0aGUgd2hvbGUgYnVmZmVyLgogICAgICAgICBidWZmZXIgPSBBcnJh
eUJ1ZmZlcjo6Y3JlYXRlQWRvcHRlZCh2ZWN0b3IoKSwgYnl0ZUxlbmd0aCk7CiAgICAgICAgIGJy
ZWFrOworICAgIH0KIAogICAgIGRlZmF1bHQ6CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorICAgIFJFTEVBU0VfQVNTRVJUKGJ1
ZmZlcik7CisgICAgLy8gRG9uJ3QgY3JlYXRlIGJ1ZmZlcmZseSB1bnRpbCB3ZSBrbm93IHdlIGhh
dmUgYW4gQXJyYXlCdWZmZXIuCisgICAgc2V0QnV0dGVyZmx5KHZtLCBCdXR0ZXJmbHk6OmNyZWF0
ZU9yR3Jvd0FycmF5UmlnaHQoCisgICAgICAgIGJ1dHRlcmZseSgpLCB2bSwgdGhpcywgc3RydWN0
dXJlLAorICAgICAgICBzdHJ1Y3R1cmUtPm91dE9mTGluZUNhcGFjaXR5KCksIGZhbHNlLCAwLCAw
KSk7CisKICAgICB7CiAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soY2VsbExvY2soKSk7
CiAgICAgICAgIGJ1dHRlcmZseSgpLT5pbmRleGluZ0hlYWRlcigpLT5zZXRBcnJheUJ1ZmZlcihi
dWZmZXIuZ2V0KCkpOwpAQCAtMzAyLDYgKzMxNyw4IEBAIEFycmF5QnVmZmVyKiBKU0FycmF5QnVm
ZmVyVmlldzo6c2xvd0Rvd25BbmRXYXN0ZU1lbW9yeSgpCiBSZWZQdHI8QXJyYXlCdWZmZXJWaWV3
PiBKU0FycmF5QnVmZmVyVmlldzo6cG9zc2libHlTaGFyZWRJbXBsKCkKIHsKICAgICBBcnJheUJ1
ZmZlciogYnVmZmVyID0gcG9zc2libHlTaGFyZWRCdWZmZXIoKTsKKyAgICBpZiAoIWJ1ZmZlcikK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCA9IHRoaXMt
PmJ5dGVPZmZzZXQoKTsKICAgICB1bnNpZ25lZCBsZW5ndGggPSB0aGlzLT5sZW5ndGgoKTsKICAg
ICBzd2l0Y2ggKHR5cGUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBcnJheUJ1ZmZlclZpZXdJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0FycmF5QnVmZmVyVmlld0lubGluZXMuaAppbmRleCBmMjljYWIzZmQ2NGIxZGE3
YmIwMzIwN2QyNzZlY2U2MWU3M2NjZjA1Li40ZmQ3ZWVmNjZiZGMyODIwYjQwZWY1NGZkZTY4OWE2
ZjY1NDYwZDE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Fy
cmF5QnVmZmVyVmlld0lubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FycmF5QnVmZmVyVmlld0lubGluZXMuaApAQCAtOTAsNiArOTAsNyBAQCBpbmxpbmUgUmVz
dWx0VHlwZSBKU0FycmF5QnVmZmVyVmlldzo6Ynl0ZU9mZnNldEltcGwoKQogICAgICAgICBXVEY6
OmxvYWRMb2FkRmVuY2UoKTsKIAogICAgIEFycmF5QnVmZmVyKiBidWZmZXIgPSBwb3NzaWJseVNo
YXJlZEJ1ZmZlckltcGw8cmVxdWVzdGVyPigpOworICAgIEFTU0VSVChidWZmZXIpOwogICAgIGlm
IChyZXF1ZXN0ZXIgPT0gTXV0YXRvcikgewogICAgICAgICBBU1NFUlQoIWlzQ29tcGlsYXRpb25U
aHJlYWQoKSk7CiAgICAgICAgIEFTU0VSVCghdmVjdG9yKCkgPT0gIWJ1ZmZlci0+ZGF0YSgpKTsK
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
YWYyNTE0YmZmZGIxMDc0Y2IyY2RlNGU3YjY0OTJlNTQ5MmY0ODBkYi4uYmNkY2YwZTg4MjE5YzBk
MTNjZWRkMDljNDYyOTNkMTdhM2RmNjAxMCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0wMy0yNiAgS2Vp
dGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAgICBUeXBlZEFycmF5
cyBzaG91bGQgbW9yZSBncmFjZWZ1bGx5IGhhbmRsZSBPT00gZHVyaW5nIHNsb3dEb3duQW5kV2Fz
dGVNZW1vcnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwOTYxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogc3RyZXNzL3R5cGVkLWFycmF5LW9vbS1pbi1idWZmZXItYWNjZXNzb3IuanM6IEFkZGVkLgor
ICAgICAgICAodHJ5LmZvbyk6CisKIDIwMjAtMDMtMTYgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21p
bGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgSmF2YVNjcmlwdCBpZGVudGlmaWVyIGdyYW1tYXIg
c3VwcG9ydHMgdW5lc2NhcGVkIGFzdHJhbCBzeW1ib2xzLCBidXQgSlNDIGRvZXNu4oCZdApkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWQtYXJyYXktb29tLWluLWJ1ZmZlci1hY2Nlc3Nv
ci5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkLWFycmF5LW9vbS1pbi1idWZmZXItYWNjZXNzb3Iu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTgwYjY4NDExYmZiOWUxNjBiNjY5OGRjZTI3ZTFjYjI1YjQ3NDMxOAot
LS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkLWFycmF5LW9vbS1pbi1idWZm
ZXItYWNjZXNzb3IuanMKQEAgLTAsMCArMSwyNSBAQAorbGV0IHogPSBuZXcgRmxvYXQ2NEFycmF5
KDEwMDApOworCitjb25zdCBhID0gW107CitsZXQgcmVhbExlbmd0aCA9IDA7Cit0cnkgeworICAg
IGEuX19wcm90b19fID0gbnVsbDsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwgMCwgeyBn
ZXQ6IGZvbyB9KTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwgMioqMjksIHt9KTsKKyAg
ICBmdW5jdGlvbiBmb28oKSB7CisgICAgICAgIGFbKytyZWFsTGVuZ3RoXSA9IG5ldyBVaW50OEFy
cmF5KGEpOworICAgIH0KKworICAgIGZvbygpOworfSBjYXRjaCB7IH0KKworbGV0IGk7Cit0cnkg
eworICBmb3IgKGkgPSAwOyBpIDwgMTAwMDAwMDAwOyBpKyspIHsKKyAgICBuZXcgQXJyYXlCdWZm
ZXIoMTAwMCk7CisgIH0KK30gY2F0Y2ggeyB9CisKK3RyeSB7CisgICAgei5idWZmZXI7Cit9IGNh
dGNoIHsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394644</attachid>
            <date>2020-03-26 12:51:46 -0700</date>
            <delta_ts>2020-03-26 13:27:09 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-209611-20200326125146.patch</filename>
            <type>text/plain</type>
            <size>12892</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
OGYyNGRjOWI1Zjk3Y2ZiMzI5MDFkYWQxNDhlYjBhMjAzZjg2OGU1Li5hMmIxMTg4ZjM4ZmI4ZTFm
NTQ1ZDIwM2M5YjVkMmU0M2IxNzJlNjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MCBAQAorMjAyMC0wMy0yNiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBUeXBlZEFycmF5cyBzaG91bGQgbW9yZSBncmFjZWZ1bGx5IGhhbmRs
ZSBPT00gZHVyaW5nIHNsb3dEb3duQW5kV2FzdGVNZW1vcnkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTYxMQorCisgICAgICAgIFJldmlld2VkIGJ5
IFRhZGV1IFphZ2FsbG8uCisKKyAgICAgICAgUmlnaHQgbm93IGlmIHdlIGNhbm5vdCBhbGxvY2F0
ZSBhbiBBcnJheUJ1ZmZlciBmb3IgYSBUeXBlZEFycmF5IHdlCisgICAgICAgIGNyYXNoLiBIb3dl
dmVyLCBzaW5jZSB3ZSB1c2UgdGhlIHByaW1pdGl2ZSBnaWdhY2FnZSBmb3IKKyAgICAgICAgQXJy
YXlCdWZmZXIgYWxsb2NhdGlvbnMgd2UgY2FuIGxpa2VseSBzdGlsbCBhbGxvY2F0ZSBhbiBPT00g
ZXJyb3IKKyAgICAgICAgb2JqZWN0LiBJbiBvcmRlciB0byBkbyB0aGlzIHNvbWUgY2hhbmdlcyB3
ZXJlIG5lZWRlZCBpbgorICAgICAgICBzbG93RG93bkFuZFdhc3RlTWVtb3J5LiBOYW1lbHksIHdl
IHNob3VsZCBub3QgYWxsb2NhdGUgdGhlCisgICAgICAgIGJ1dHRlcmZseSB1bnRpbCB3ZSBrbm93
IHdlIGhhdmUgYW4gQXJyYXlCdWZmZXIuIEkgYWxzbyBjaGVjayB0aGF0CisgICAgICAgIGFsbCB0
aGUgdHJhbnNpdGl2ZSBjYWxsZXJzIG9mIHNsb3dEb3duQW5kV2FzdGVNZW1vcnkgY2FuIGhhbmRs
ZQorICAgICAgICBmYWlsdXJlLgorCisgICAgICAgIExhc3RseSwgdGhpcyBwYXRjaCBtYWtlcyBp
dCBzbyBmYWlsdXJlIHRvIGFsbG9jYXRlIGFuIEFycmF5QnVmZmVyCisgICAgICAgIGZvciBhIFR5
cGVBcnJheSBkdXJpbmcgREZHIHdhdGNocG9pbnQgYWRkaXRpb24gY2F1c2VzIHRoZSBjb2RlCisg
ICAgICAgIGJsb2NrIHRvIGJlIHRocm93biBhd2F5LCByYXRoZXIgdGhhbiBjcmFzaCB0aGUgcHJv
Y2Vzcy4KKworICAgICAgICAqIEFQSS9KU1R5cGVkQXJyYXkuY3BwOgorICAgICAgICAoSlNPYmpl
Y3RHZXRUeXBlZEFycmF5Qnl0ZXNQdHIpOgorICAgICAgICAoSlNPYmplY3RHZXRUeXBlZEFycmF5
QnVmZmVyKToKKyAgICAgICAgKiBieXRlY29kZS9XYXRjaHBvaW50Lmg6CisgICAgICAgICogZGZn
L0RGR0Rlc2lyZWRXYXRjaHBvaW50cy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6QXJyYXlCdWZm
ZXJWaWV3V2F0Y2hwb2ludEFkYXB0b3I6OmFkZCk6CisgICAgICAgICogcnVudGltZS9HZW5lcmlj
VHlwZWRBcnJheVZpZXdJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkdlbmVyaWNUeXBlZEFycmF5
VmlldzxBZGFwdG9yPjo6dHJ5Q3JlYXRlKToKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXlCdWZm
ZXJWaWV3LmNwcDoKKyAgICAgICAgKEpTQzo6SlNBcnJheUJ1ZmZlclZpZXc6OnVuc2hhcmVkQnVm
ZmVyKToKKyAgICAgICAgKEpTQzo6SlNBcnJheUJ1ZmZlclZpZXc6OnVuc2hhcmVkSlNCdWZmZXIp
OgorICAgICAgICAoSlNDOjpKU0FycmF5QnVmZmVyVmlldzo6cG9zc2libHlTaGFyZWRKU0J1ZmZl
cik6CisgICAgICAgIChKU0M6OkpTQXJyYXlCdWZmZXJWaWV3OjpzbG93RG93bkFuZFdhc3RlTWVt
b3J5KToKKyAgICAgICAgKEpTQzo6SlNBcnJheUJ1ZmZlclZpZXc6OnBvc3NpYmx5U2hhcmVkSW1w
bCk6CisgICAgICAgICogcnVudGltZS9KU0FycmF5QnVmZmVyVmlld0lubGluZXMuaDoKKyAgICAg
ICAgKEpTQzo6SlNBcnJheUJ1ZmZlclZpZXc6OmJ5dGVPZmZzZXRJbXBsKToKKwogMjAyMC0wMy0x
NiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIEpT
TWFwSXRlcmF0b3IgYW5kIEpTU2V0SXRlcmF0b3IgYXJlIENlbGxUeXBlCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVHlwZWRBcnJheS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTVHlwZWRBcnJheS5jcHAKaW5kZXggNDYwMzVhOWQxNmJkOWUzNTU5NWFj
YWQ4YmU3MjMzYWZjZTMzMTAzMS4uM2IxY2VkN2JlZjdiNDgxNmY1MjQxMTQ2MGU5NmQ3MGQ0M2Iy
MDhmYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1R5cGVkQXJyYXku
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNUeXBlZEFycmF5LmNwcApAQCAt
MjQxLDcgKzI0MSw3IEBAIEpTT2JqZWN0UmVmIEpTT2JqZWN0TWFrZVR5cGVkQXJyYXlXaXRoQXJy
YXlCdWZmZXJBbmRPZmZzZXQoSlNDb250ZXh0UmVmIGN0eCwgSlNUCiAgICAgcmV0dXJuIHRvUmVm
KHJlc3VsdCk7CiB9CiAKLXZvaWQqIEpTT2JqZWN0R2V0VHlwZWRBcnJheUJ5dGVzUHRyKEpTQ29u
dGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdFJlZiwgSlNWYWx1ZVJlZiopCit2b2lkKiBK
U09iamVjdEdldFR5cGVkQXJyYXlCeXRlc1B0cihKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJl
ZiBvYmplY3RSZWYsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKICAgICBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0ID0gdG9KUyhjdHgpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKQEAgLTI0OSw5ICsyNDksMTIgQEAgdm9pZCogSlNPYmplY3RHZXRUeXBlZEFycmF5Qnl0
ZXNQdHIoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0UmVmLCBKU1YKICAgICBK
U09iamVjdCogb2JqZWN0ID0gdG9KUyhvYmplY3RSZWYpOwogCiAgICAgaWYgKEpTQXJyYXlCdWZm
ZXJWaWV3KiB0eXBlZEFycmF5ID0ganNEeW5hbWljQ2FzdDxKU0FycmF5QnVmZmVyVmlldyo+KHZt
LCBvYmplY3QpKSB7Ci0gICAgICAgIEFycmF5QnVmZmVyKiBidWZmZXIgPSB0eXBlZEFycmF5LT5w
b3NzaWJseVNoYXJlZEJ1ZmZlcigpOwotICAgICAgICBidWZmZXItPnBpbkFuZExvY2soKTsKLSAg
ICAgICAgcmV0dXJuIGJ1ZmZlci0+ZGF0YSgpOworICAgICAgICBpZiAoQXJyYXlCdWZmZXIqIGJ1
ZmZlciA9IHR5cGVkQXJyYXktPnBvc3NpYmx5U2hhcmVkQnVmZmVyKCkpIHsKKyAgICAgICAgICAg
IGJ1ZmZlci0+cGluQW5kTG9jaygpOworICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlci0+ZGF0YSgp
OworICAgICAgICB9CisKKyAgICAgICAgc2V0RXhjZXB0aW9uKGN0eCwgZXhjZXB0aW9uLCBjcmVh
dGVPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9iamVjdCkpOwogICAgIH0KICAgICByZXR1cm4gbnVs
bHB0cjsKIH0KQEAgLTI5MiwxNSArMjk1LDIwIEBAIHNpemVfdCBKU09iamVjdEdldFR5cGVkQXJy
YXlCeXRlT2Zmc2V0KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdFJlZiwKICAg
ICByZXR1cm4gMDsKIH0KIAotSlNPYmplY3RSZWYgSlNPYmplY3RHZXRUeXBlZEFycmF5QnVmZmVy
KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdFJlZiwgSlNWYWx1ZVJlZiopCitK
U09iamVjdFJlZiBKU09iamVjdEdldFR5cGVkQXJyYXlCdWZmZXIoSlNDb250ZXh0UmVmIGN0eCwg
SlNPYmplY3RSZWYgb2JqZWN0UmVmLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHRvSlMoY3R4KTsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2tlcih2bSk7CiAgICAgSlNPYmpl
Y3QqIG9iamVjdCA9IHRvSlMob2JqZWN0UmVmKTsKIAotICAgIGlmIChKU0FycmF5QnVmZmVyVmll
dyogdHlwZWRBcnJheSA9IGpzRHluYW1pY0Nhc3Q8SlNBcnJheUJ1ZmZlclZpZXcqPih2bSwgb2Jq
ZWN0KSkKLSAgICAgICAgcmV0dXJuIHRvUmVmKHZtLm1fdHlwZWRBcnJheUNvbnRyb2xsZXItPnRv
SlMoZ2xvYmFsT2JqZWN0LCB0eXBlZEFycmF5LT5nbG9iYWxPYmplY3Qodm0pLCB0eXBlZEFycmF5
LT5wb3NzaWJseVNoYXJlZEJ1ZmZlcigpKSk7CisKKyAgICBpZiAoSlNBcnJheUJ1ZmZlclZpZXcq
IHR5cGVkQXJyYXkgPSBqc0R5bmFtaWNDYXN0PEpTQXJyYXlCdWZmZXJWaWV3Kj4odm0sIG9iamVj
dCkpIHsKKyAgICAgICAgaWYgKEFycmF5QnVmZmVyKiBidWZmZXIgPSB0eXBlZEFycmF5LT5wb3Nz
aWJseVNoYXJlZEJ1ZmZlcigpKQorICAgICAgICAgICAgcmV0dXJuIHRvUmVmKHZtLm1fdHlwZWRB
cnJheUNvbnRyb2xsZXItPnRvSlMoZ2xvYmFsT2JqZWN0LCB0eXBlZEFycmF5LT5nbG9iYWxPYmpl
Y3Qodm0pLCBidWZmZXIpKTsKKworICAgICAgICBzZXRFeGNlcHRpb24oY3R4LCBleGNlcHRpb24s
IGNyZWF0ZU91dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0KSk7CisgICAgfQogCiAgICAgcmV0
dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvV2F0Y2hwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1dhdGNocG9p
bnQuaAppbmRleCBjZWY5YzBjODExZDFiZjJjOWE4ZTVkYTI1M2RhOTBkNTg2N2VjODE2Li40YjI0
YTUwZTIzOWZmOGY2MTE3ZTJiMDAxZDRhNDI0Njc2MDAwNTNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvV2F0Y2hwb2ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9XYXRjaHBvaW50LmgKQEAgLTM2LDYgKzM2LDEwIEBACiAKIG5hbWVz
cGFjZSBKU0MgewogCituYW1lc3BhY2UgREZHIHsKK3N0cnVjdCBBcnJheUJ1ZmZlclZpZXdXYXRj
aHBvaW50QWRhcHRvcjsKK30KKwogY2xhc3MgVk07CiAKIGNsYXNzIEZpcmVEZXRhaWwgewpAQCAt
MTU3LDYgKzE2MSw4IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3Mg
V2F0Y2hwb2ludFNldDsKKyAgICAvLyBBcnJheUJ1ZmZlclZpZXdXYXRjaHBvaW50QWRhcHRvciBj
YW4gZmlyZSB3YXRjaHBvaW50cyBpZiBpdCB0cmllcyB0byBhdHRhY2ggYSB3YXRjaHBvaW50IHRv
IGEgdmlldyBidXQgY2FuJ3QgYWxsb2NhdGUgdGhlIEFycmF5QnVmZmVyLgorICAgIGZyaWVuZCBz
dHJ1Y3QgREZHOjpBcnJheUJ1ZmZlclZpZXdXYXRjaHBvaW50QWRhcHRvcjsKICAgICB2b2lkIGZp
cmUoVk0mLCBjb25zdCBGaXJlRGV0YWlsJik7CiAKICAgICBUeXBlIG1fdHlwZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRGVzaXJlZFdhdGNocG9pbnRzLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRGVzaXJlZFdhdGNocG9pbnRzLmNwcAppbmRl
eCAwN2JhYmU3M2I0ZGU5NWY2ODZmY2QwYzJiOTBmYzI1M2I5N2Q1YmI5Li5kZmI4MTU4N2IyMTRk
MzA4Mjg5ZjAxNmUzMGQ2YzUwMjdhZGY1ZmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Rlc2lyZWRXYXRjaHBvaW50cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdEZXNpcmVkV2F0Y2hwb2ludHMuY3BwCkBAIC00NCw3ICs0NCwxMSBAQCB2
b2lkIEFycmF5QnVmZmVyVmlld1dhdGNocG9pbnRBZGFwdG9yOjphZGQoCiAgICAgICAgIHdhdGNo
cG9pbnQgPSBjb21tb24ud2F0Y2hwb2ludHMuYWRkKGNvZGVCbG9jayk7CiAgICAgfQogICAgIEFy
cmF5QnVmZmVyKiBhcnJheUJ1ZmZlciA9IHZpZXctPnBvc3NpYmx5U2hhcmVkQnVmZmVyKCk7Ci0g
ICAgUkVMRUFTRV9BU1NFUlQoYXJyYXlCdWZmZXIpOworICAgIGlmICghYXJyYXlCdWZmZXIpIHsK
KyAgICAgICAgd2F0Y2hwb2ludC0+ZmlyZShjb2RlQmxvY2stPnZtKCksIFN0cmluZ0ZpcmVEZXRh
aWwoIkFycmF5QnVmZmVyIGNvdWxkIG5vdCBiZSBhbGxvY2F0ZWQsIHByb2JhYmx5IGJlY2F1c2Ug
b2YgT09NLiIpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIC8vIEZJWE1FOiBXZSBk
b24ndCBuZWVkIHRvIHNldCB0aGlzIHdhdGNocG9pbnQgYXQgYWxsIGZvciBzaGFyZWQgYnVmZmVy
cy4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0MTA4
CiAgICAgYXJyYXlCdWZmZXItPm5ldXRlcmluZ1dhdGNocG9pbnRTZXQoKS5hZGQoV1RGTW92ZSh3
YXRjaHBvaW50KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9H
ZW5lcmljVHlwZWRBcnJheVZpZXdJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9HZW5lcmljVHlwZWRBcnJheVZpZXdJbmxpbmVzLmgKaW5kZXggM2ViMjQxY2NmYmY5MWJk
ZTY2MjY2NjhkNTUxNjg1ZDg5N2MxODRiOC4uYWU1YmRkOGM2YTMxNzM5ZDAwYzljYTE3Y2RiZGZm
MDk5NTJiZTdhNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2Vu
ZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMuaApAQCAtODcsNyArODcsOSBAQCB0
ZW1wbGF0ZTx0eXBlbmFtZSBBZGFwdG9yPgogUmVmUHRyPEdlbmVyaWNUeXBlZEFycmF5VmlldzxB
ZGFwdG9yPj4gR2VuZXJpY1R5cGVkQXJyYXlWaWV3PEFkYXB0b3I+Ojp0cnlDcmVhdGUoCiAgICAg
UmVmUHRyPEFycmF5QnVmZmVyPiYmIGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWdu
ZWQgbGVuZ3RoKQogewotICAgIEFTU0VSVChidWZmZXIpOworICAgIGlmICghYnVmZmVyKQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAKICAgICBpZiAoIUFycmF5QnVmZmVyVmlldzo6dmVy
aWZ5U3ViUmFuZ2VMZW5ndGgoKmJ1ZmZlciwgYnl0ZU9mZnNldCwgbGVuZ3RoLCBzaXplb2YodHlw
ZW5hbWUgQWRhcHRvcjo6VHlwZSkpCiAgICAgICAgIHx8ICF2ZXJpZnlCeXRlT2Zmc2V0QWxpZ25t
ZW50KGJ5dGVPZmZzZXQsIHNpemVvZih0eXBlbmFtZSBBZGFwdG9yOjpUeXBlKSkpIHsKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0FycmF5QnVmZmVyVmlldy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FycmF5QnVmZmVyVmlldy5jcHAKaW5kZXggOTc3YTc1YmYxN2YzZGJjYzk5NTMwMDExYjAx
MTZmZjlmY2JlOTI2OC4uMzhlZDYwZGIwMTAxYmMyOTU2NTI5OGFhMTNlNDc1MzFmM2ZkNjhmYSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlclZp
ZXcuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJW
aWV3LmNwcApAQCAtMTkwLDcgKzE5MCw3IEBAIGJvb2wgSlNBcnJheUJ1ZmZlclZpZXc6OnB1dCgK
IEFycmF5QnVmZmVyKiBKU0FycmF5QnVmZmVyVmlldzo6dW5zaGFyZWRCdWZmZXIoKQogewogICAg
IEFycmF5QnVmZmVyKiByZXN1bHQgPSBwb3NzaWJseVNoYXJlZEJ1ZmZlcigpOwotICAgIFJFTEVB
U0VfQVNTRVJUKCFyZXN1bHQtPmlzU2hhcmVkKCkpOworICAgIFJFTEVBU0VfQVNTRVJUKCFyZXN1
bHQgfHwgIXJlc3VsdC0+aXNTaGFyZWQoKSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KICAgICAK
QEAgLTIwNSwxMyArMjA1LDIxIEBAIHZvaWQgSlNBcnJheUJ1ZmZlclZpZXc6OmZpbmFsaXplKEpT
Q2VsbCogY2VsbCkKIEpTQXJyYXlCdWZmZXIqIEpTQXJyYXlCdWZmZXJWaWV3Ojp1bnNoYXJlZEpT
QnVmZmVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwotICAgIHJldHVybiB2bS5tX3R5cGVkQXJyYXlDb250cm9sbGVyLT50
b0pTKGdsb2JhbE9iamVjdCwgdGhpcy0+Z2xvYmFsT2JqZWN0KHZtKSwgdW5zaGFyZWRCdWZmZXIo
KSk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIGlmIChB
cnJheUJ1ZmZlciogYnVmZmVyID0gdW5zaGFyZWRCdWZmZXIoKSkKKyAgICAgICAgcmV0dXJuIHZt
Lm1fdHlwZWRBcnJheUNvbnRyb2xsZXItPnRvSlMoZ2xvYmFsT2JqZWN0LCB0aGlzLT5nbG9iYWxP
YmplY3Qodm0pLCBidWZmZXIpOworICAgIHNjb3BlLnRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVj
dCwgY3JlYXRlT3V0T2ZNZW1vcnlFcnJvcihnbG9iYWxPYmplY3QpKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKIH0KIAogSlNBcnJheUJ1ZmZlciogSlNBcnJheUJ1ZmZlclZpZXc6OnBvc3NpYmx5U2hh
cmVkSlNCdWZmZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgcmV0dXJuIHZtLm1fdHlwZWRBcnJheUNvbnRyb2xs
ZXItPnRvSlMoZ2xvYmFsT2JqZWN0LCB0aGlzLT5nbG9iYWxPYmplY3Qodm0pLCBwb3NzaWJseVNo
YXJlZEJ1ZmZlcigpKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CisgICAgaWYgKEFycmF5QnVmZmVyKiBidWZmZXIgPSBwb3NzaWJseVNoYXJlZEJ1ZmZlcigpKQor
ICAgICAgICByZXR1cm4gdm0ubV90eXBlZEFycmF5Q29udHJvbGxlci0+dG9KUyhnbG9iYWxPYmpl
Y3QsIHRoaXMtPmdsb2JhbE9iamVjdCh2bSksIGJ1ZmZlcik7CisgICAgc2NvcGUudGhyb3dFeGNl
cHRpb24oZ2xvYmFsT2JqZWN0LCBjcmVhdGVPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9iamVjdCkp
OworICAgIHJldHVybiBudWxscHRyOwogfQogCiB2b2lkIEpTQXJyYXlCdWZmZXJWaWV3OjpuZXV0
ZXIoKQpAQCAtMjYxLDMwICsyNjksMzcgQEAgQXJyYXlCdWZmZXIqIEpTQXJyYXlCdWZmZXJWaWV3
OjpzbG93RG93bkFuZFdhc3RlTWVtb3J5KCkKIAogICAgIFJFTEVBU0VfQVNTRVJUKCFoYXNJbmRl
eGluZ0hlYWRlcih2bSkpOwogICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gdGhpcy0+c3RydWN0
dXJlKHZtKTsKLSAgICBzZXRCdXR0ZXJmbHkodm0sIEJ1dHRlcmZseTo6Y3JlYXRlT3JHcm93QXJy
YXlSaWdodCgKLSAgICAgICAgYnV0dGVyZmx5KCksIHZtLCB0aGlzLCBzdHJ1Y3R1cmUsCi0gICAg
ICAgIHN0cnVjdHVyZS0+b3V0T2ZMaW5lQ2FwYWNpdHkoKSwgZmFsc2UsIDAsIDApKTsKIAogICAg
IFJlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyOwogICAgIHVuc2lnbmVkIGJ5dGVMZW5ndGggPSBt
X2xlbmd0aCAqIGVsZW1lbnRTaXplKHR5cGUoKSk7CiAKICAgICBzd2l0Y2ggKG1fbW9kZSkgewot
ICAgIGNhc2UgRmFzdFR5cGVkQXJyYXk6Ci0gICAgICAgIGJ1ZmZlciA9IEFycmF5QnVmZmVyOjpj
cmVhdGUodmVjdG9yKCksIGJ5dGVMZW5ndGgpOworICAgIGNhc2UgRmFzdFR5cGVkQXJyYXk6IHsK
KyAgICAgICAgYnVmZmVyID0gQXJyYXlCdWZmZXI6OnRyeUNyZWF0ZSh2ZWN0b3IoKSwgYnl0ZUxl
bmd0aCk7CisgICAgICAgIGlmICghYnVmZmVyKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgICAgIGJyZWFrOworICAgIH0KIAotICAgIGNhc2UgT3ZlcnNpemVUeXBlZEFycmF5Ogor
ICAgIGNhc2UgT3ZlcnNpemVUeXBlZEFycmF5OiB7CiAgICAgICAgIC8vIEZJWE1FOiBjb25zaWRl
ciBkb2luZyBzb21ldGhpbmcgbGlrZSAic3VidHJhY3RpbmciIGZyb20gZXh0cmEgbWVtb3J5CiAg
ICAgICAgIC8vIGNvc3QsIHNpbmNlIHJpZ2h0IG5vdyB0aGlzIGNhc2Ugd2lsbCBjYXVzZSB0aGUg
R0MgdG8gdGhpbmsgdGhhdCB3ZSByZWFsbG9jYXRlZAogICAgICAgICAvLyB0aGUgd2hvbGUgYnVm
ZmVyLgogICAgICAgICBidWZmZXIgPSBBcnJheUJ1ZmZlcjo6Y3JlYXRlQWRvcHRlZCh2ZWN0b3Io
KSwgYnl0ZUxlbmd0aCk7CiAgICAgICAgIGJyZWFrOworICAgIH0KIAogICAgIGRlZmF1bHQ6CiAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KIAorICAgIFJFTEVBU0VfQVNTRVJUKGJ1ZmZlcik7CisgICAgLy8gRG9uJ3QgY3JlYXRlIGJ1
ZmZlcmZseSB1bnRpbCB3ZSBrbm93IHdlIGhhdmUgYW4gQXJyYXlCdWZmZXIuCisgICAgc2V0QnV0
dGVyZmx5KHZtLCBCdXR0ZXJmbHk6OmNyZWF0ZU9yR3Jvd0FycmF5UmlnaHQoCisgICAgICAgIGJ1
dHRlcmZseSgpLCB2bSwgdGhpcywgc3RydWN0dXJlLAorICAgICAgICBzdHJ1Y3R1cmUtPm91dE9m
TGluZUNhcGFjaXR5KCksIGZhbHNlLCAwLCAwKSk7CisKICAgICB7CiAgICAgICAgIGF1dG8gbG9j
a2VyID0gaG9sZExvY2soY2VsbExvY2soKSk7CiAgICAgICAgIGJ1dHRlcmZseSgpLT5pbmRleGlu
Z0hlYWRlcigpLT5zZXRBcnJheUJ1ZmZlcihidWZmZXIuZ2V0KCkpOwpAQCAtMzAyLDYgKzMxNyw4
IEBAIEFycmF5QnVmZmVyKiBKU0FycmF5QnVmZmVyVmlldzo6c2xvd0Rvd25BbmRXYXN0ZU1lbW9y
eSgpCiBSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiBKU0FycmF5QnVmZmVyVmlldzo6cG9zc2libHlT
aGFyZWRJbXBsKCkKIHsKICAgICBBcnJheUJ1ZmZlciogYnVmZmVyID0gcG9zc2libHlTaGFyZWRC
dWZmZXIoKTsKKyAgICBpZiAoIWJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
dW5zaWduZWQgYnl0ZU9mZnNldCA9IHRoaXMtPmJ5dGVPZmZzZXQoKTsKICAgICB1bnNpZ25lZCBs
ZW5ndGggPSB0aGlzLT5sZW5ndGgoKTsKICAgICBzd2l0Y2ggKHR5cGUoKSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlclZpZXdJbmxpbmVz
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyVmlld0lubGlu
ZXMuaAppbmRleCBmMjljYWIzZmQ2NGIxZGE3YmIwMzIwN2QyNzZlY2U2MWU3M2NjZjA1Li40ZmQ3
ZWVmNjZiZGMyODIwYjQwZWY1NGZkZTY4OWE2ZjY1NDYwZDE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyVmlld0lubGluZXMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyVmlld0lubGluZXMuaApA
QCAtOTAsNiArOTAsNyBAQCBpbmxpbmUgUmVzdWx0VHlwZSBKU0FycmF5QnVmZmVyVmlldzo6Ynl0
ZU9mZnNldEltcGwoKQogICAgICAgICBXVEY6OmxvYWRMb2FkRmVuY2UoKTsKIAogICAgIEFycmF5
QnVmZmVyKiBidWZmZXIgPSBwb3NzaWJseVNoYXJlZEJ1ZmZlckltcGw8cmVxdWVzdGVyPigpOwor
ICAgIEFTU0VSVChidWZmZXIpOwogICAgIGlmIChyZXF1ZXN0ZXIgPT0gTXV0YXRvcikgewogICAg
ICAgICBBU1NFUlQoIWlzQ29tcGlsYXRpb25UaHJlYWQoKSk7CiAgICAgICAgIEFTU0VSVCghdmVj
dG9yKCkgPT0gIWJ1ZmZlci0+ZGF0YSgpKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9n
IGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYWYyNTE0YmZmZGIxMDc0Y2IyY2RlNGU3YjY0OTJl
NTQ5MmY0ODBkYi4uMjEyYTJjZDZjYzI4YTA5Njk0OWM5NjU1YTlkNjM3NmM5MGYzYmYyMiAxMDA2
NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAyMC0wMy0yNiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBUeXBlZEFycmF5cyBzaG91bGQgbW9yZSBncmFjZWZ1bGx5IGhhbmRs
ZSBPT00gZHVyaW5nIHNsb3dEb3duQW5kV2FzdGVNZW1vcnkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTYxMQorCisgICAgICAgIFJldmlld2VkIGJ5
IFRhZGV1IFphZ2FsbG8uCisKKyAgICAgICAgKiBzdHJlc3MvdHlwZWQtYXJyYXktb29tLWluLWJ1
ZmZlci1hY2Nlc3Nvci5qczogQWRkZWQuCisgICAgICAgICh0cnkuZm9vKToKKwogMjAyMC0wMy0x
NiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBKYXZh
U2NyaXB0IGlkZW50aWZpZXIgZ3JhbW1hciBzdXBwb3J0cyB1bmVzY2FwZWQgYXN0cmFsIHN5bWJv
bHMsIGJ1dCBKU0MgZG9lc27igJl0CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90eXBlZC1h
cnJheS1vb20taW4tYnVmZmVyLWFjY2Vzc29yLmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWQtYXJy
YXktb29tLWluLWJ1ZmZlci1hY2Nlc3Nvci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZjgwNjQxNTI1NmZlMmQ0
ZThkZDg2NWQ0MDk3OTMyNDIyODNlOWFjCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJl
c3MvdHlwZWQtYXJyYXktb29tLWluLWJ1ZmZlci1hY2Nlc3Nvci5qcwpAQCAtMCwwICsxLDI2IEBA
CisvL0AgcmVxdWlyZU9wdGlvbnMoIi0tdXNlR0M9MCIpCitsZXQgeiA9IG5ldyBGbG9hdDY0QXJy
YXkoMTAwMCk7CisKK2NvbnN0IGEgPSBbXTsKK2xldCByZWFsTGVuZ3RoID0gMDsKK3RyeSB7Cisg
ICAgYS5fX3Byb3RvX18gPSBudWxsOworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCAwLCB7
IGdldDogZm9vIH0pOworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCAyKioyOSwge30pOwor
ICAgIGZ1bmN0aW9uIGZvbygpIHsKKyAgICAgICAgYVsrK3JlYWxMZW5ndGhdID0gbmV3IFVpbnQ4
QXJyYXkoYSk7CisgICAgfQorCisgICAgZm9vKCk7Cit9IGNhdGNoIHsgfQorCitsZXQgaTsKK3Ry
eSB7CisgIGZvciAoaSA9IDA7IGkgPCAxMDAwMDAwMDA7IGkrKykgeworICAgIG5ldyBBcnJheUJ1
ZmZlcigxMDAwKTsKKyAgfQorfSBjYXRjaCB7IH0KKwordHJ5IHsKKyAgICB6LmJ1ZmZlcjsKK30g
Y2F0Y2ggeyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>