<?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>227449</bug_id>
          
          <creation_ts>2021-06-28 07:46:48 -0700</creation_ts>
          <short_desc>ANGLE Metal primitive restart range computation could index with size_t</short_desc>
          <delta_ts>2021-06-29 06:54:15 -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>ANGLE</component>
          <version>WebKit Local 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="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kbr</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>kpiddington</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1773060</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-06-28 07:46:48 -0700</bug_when>
    <thetext>ANGLE Metal primitive restart range computation could index with size_t

It&apos;d be simpler to understand that the index does not overflow. The index limit is size_t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773063</commentid>
    <comment_count>1</comment_count>
      <attachid>432393</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-06-28 07:57:17 -0700</bug_when>
    <thetext>Created attachment 432393
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773064</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-06-28 07:58:11 -0700</bug_when>
    <thetext>Note that there are important steps to take when updating ANGLE. See https://trac.webkit.org/wiki/UpdatingANGLE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773069</commentid>
    <comment_count>3</comment_count>
      <attachid>432394</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-06-28 08:03:32 -0700</bug_when>
    <thetext>Created attachment 432394
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773206</commentid>
    <comment_count>4</comment_count>
      <attachid>432394</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2021-06-28 14:46:33 -0700</bug_when>
    <thetext>Comment on attachment 432394
Patch

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

This is certainly easier to understand. r+ with a couple of small questions.

I defer to kpiddington&apos;s review if there&apos;s any further feedback.

&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/BufferMtl.mm:421
&gt; +    for (size_t i = 0; i &lt; numIndices; i++)

Would it be better to use &quot;++i&quot; here for consistency with the inner loop?

&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/BufferMtl.mm:430
&gt; +        } while (i &lt; numIndices &amp;&amp; bufferData[i] == restartMarker);

Out of curiosity do you want to leave the restart indices in these ranges or elide them?

&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/BufferMtl.mm:445
&gt; +                mRestartIndices = calculateRestartRanges&lt;uint8_t&gt;(ctx, getCurrentBuffer());

How hot is this routine? If it&apos;s called very often then maybe there is an advantage to continuing to pass mRestartIndices as an argument to reduce copying (or is return value optimization expected to handle this)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773343</commentid>
    <comment_count>5</comment_count>
      <attachid>432457</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-06-29 00:58:04 -0700</bug_when>
    <thetext>Created attachment 432457
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773396</commentid>
    <comment_count>6</comment_count>
      <attachid>432394</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-06-29 06:50:35 -0700</bug_when>
    <thetext>Comment on attachment 432394
Patch

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

&gt;&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/BufferMtl.mm:430
&gt;&gt; +        } while (i &lt; numIndices &amp;&amp; bufferData[i] == restartMarker);
&gt; 
&gt; Out of curiosity do you want to leave the restart indices in these ranges or elide them?

restart indices should be in the ranges.

&gt;&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/BufferMtl.mm:445
&gt;&gt; +                mRestartIndices = calculateRestartRanges&lt;uint8_t&gt;(ctx, getCurrentBuffer());
&gt; 
&gt; How hot is this routine? If it&apos;s called very often then maybe there is an advantage to continuing to pass mRestartIndices as an argument to reduce copying (or is return value optimization expected to handle this)?

RVO is expected.
It&apos;s not hot, it&apos;s called during draw, but only once after the buffer is modified.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773399</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-29 06:53:51 -0700</bug_when>
    <thetext>Committed r279373 (239239@main): &lt;https://commits.webkit.org/239239@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 432457.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773400</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-29 06:54:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/79913301&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432393</attachid>
            <date>2021-06-28 07:57:17 -0700</date>
            <delta_ts>2021-06-28 08:03:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227449-20210628175715.patch</filename>
            <type>text/plain</type>
            <size>5720</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MzI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5k
ZXggYjQ3Y2U5ZWIxZmZmM2Y0YTUzYjk3MDE0ZmVhNmU3YTUyODdjZjEzMi4uNDM5M2M1ZDBiNzIw
ZTcwNzI0OTIyMTBlNmU2YzhiMTliMTA3NjYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDM0IEBACisyMDIxLTA2LTI4ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5l
bkBhcHBsZS5jb20+CisKKyAgICAgICAgQU5HTEUgTWV0YWwgcHJpbWl0aXZlIHJlc3RhcnQgcmFu
Z2UgY29tcHV0YXRpb24gY291bGQgaW5kZXggd2l0aCBzaXplX3QKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzQ0OQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgdGhlIGBjYWxjdWxhdGVSZXN0YXJ0
UmFuZ2VzKClgIGEgYml0IHNpbXBsZXIgaW4gb3JkZXIKKyAgICAgICAgZm9yIGl0IHRvIGJlIGVh
c2llciB0byB1bmRlcnN0YW5kLgorCisgICAgICAgICogc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21l
dGFsL0J1ZmZlck10bC5oOgorICAgICAgICAocng6OkluZGV4UmFuZ2U6OkluZGV4UmFuZ2UpOgor
ICAgICAgICBBZGQgZG9jdW1lbnRhdGlvbiB3aGF0IHRoZSBtdGw6OkluZGV4UmFuZ2UgaXMuCisg
ICAgICAgIEFkZCBjb25zdHJ1Y3RvciBzbyB0aGF0IGBzdGQ6OnZlY3Rvcjo6ZW1wbGFjZV9iYWNr
KClgIHdvcmtzLgorCisgICAgICAgICogc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL0J1ZmZl
ck10bC5tbToKKyAgICAgICAgKHJ4OjpjYWxjdWxhdGVSZXN0YXJ0UmFuZ2VzKToKKyAgICAgICAg
SW5kZXggd2l0aCBzaXplX3QgdG8gbWFrZSBpdCBzaW1wbGVyIHRvIHVuZGVyc3RhbmQgaWYgdGhl
IGluZGV4CisgICAgICAgIG92ZXJmbG93cyBvciBub3QuCisgICAgICAgIFVzZSByZWludGVycHJl
dF9jYXN0IGluIG9yZGVyIHRvIG5vdCBhY2NpZGVudGFsbHkgY2FzdCBhd2F5CisgICAgICAgIGNv
bnN0IGZyb20gYG10bDo6QnVmZmVyUmVmOjptYXBSZWFkT25seSgpYC4KKyAgICAgICAgU2tpcCB0
aGUgbm9uLW1hcmtlciBlbGVtZW50cyB3aXRoIGBjb250aW51ZWAgdG8gYXZvaWQgZGVlcCBuZXN0
aW5nLgorICAgICAgICBHaXZlIGEgbmFtZSB0byB0aGUgcmVzdGFydCByYW5nZSBtYXJrZXIgdmFs
dWUuCisgICAgICAgIFJlbW92ZSBpbnRlcm1lZGlhdGUgdmFyaWFibGUgYHZhbHVlID0gYnVmZmVy
RGF0YVtpXWAgYXMgaXQgaXMgbmV2ZXIKKyAgICAgICAgdXNlZCBtb3JlIHRoYW4gb25jZS4gVGhp
cyBzaW1wbGlmaWVzIHRoZSBjb2RlIGFzIHRoZSBkby13aGlsZSBsb29wCisgICAgICAgIGRvZXMg
bm90IG5lZWQgdG8gY2hlY2sgdGhlIGlmIGNvbmRpdGlvbiBhcyB0aGUgbG9vcCBlbmRpbmcgY29u
ZGl0aW9uCisgICAgICAgIGFscmVhZHkgY2hlY2tzLgorICAgICAgICBNYWtlIHRoZSBhcnJheSBh
IHJldHVybmVkIHJlc3VsdCBpbnN0ZWFkIG9mIG91dCB2YXJpYWJsZS4KKworICAgICAgICAocng6
OkJ1ZmZlck10bDo6Z2V0UmVzdGFydEluZGljZXMpOgorCiAyMDIxLTA2LTI0ICBLaW1tbyBLaW5u
dW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CiAKICAgICAgICAgQU5HTEUgTWV0YWwgaW5kZXgg
YnVmZmVyIGxlZnQgbWFwcGVkIHdoZW4gYnVpbGRpbmcgcHJpbWl0aXZlIHJlc3RhcnQgcmFuZ2Vz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVy
ZXIvbWV0YWwvQnVmZmVyTXRsLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5H
TEUvcmVuZGVyZXIvbWV0YWwvQnVmZmVyTXRsLmgKaW5kZXggY2ZmODFlMDIzYzMxOGVmZmJiNmMy
YjY2YjViYzA3NWU0MzJkZGNlNS4uZTdlZWJjOTM5NDUwNWRlMzMyZmUwMTUxNzk5MTNkZjI4NTFm
ZjQyNyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3Jl
bmRlcmVyL21ldGFsL0J1ZmZlck10bC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9CdWZmZXJNdGwuaApAQCAtMzAsOCArMzAsMTEgQEAg
c3RydWN0IERyYXdDb21tYW5kUmFuZ2UKICAgICB1aW50MzJfdCBjb3VudDsKICAgICBzaXplX3Qg
b2Zmc2V0OwogfTsKKworLy8gSW5jbHVzaXZlIHJhbmdlIG9mIGNvbnNlY3V0aXZlIHByaW1pdGl2
ZSByZXN0YXJ0IHZhbHVlIGluZGV4ZXMuCiBzdHJ1Y3QgSW5kZXhSYW5nZQogeworICAgIEluZGV4
UmFuZ2Uoc2l6ZV90IGJlZ2luLCBzaXplX3QgZW5kKSA6IHJlc3RhcnRCZWdpbihiZWdpbiksIHJl
c3RhcnRFbmQoZW5kKSB7fQogICAgIHNpemVfdCByZXN0YXJ0QmVnaW47CiAgICAgc2l6ZV90IHJl
c3RhcnRFbmQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xp
YkFOR0xFL3JlbmRlcmVyL21ldGFsL0J1ZmZlck10bC5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9CdWZmZXJNdGwubW0KaW5kZXggZmIwMzQz
MjU4ZDkxYWM0Y2Y4MjUwNmQ5ODUyODFlMTQwZjg5NjkzNS4uN2EzMjY4NWI5ODY2NmVkYTkyNGZk
OWZlMzY2M2YxZmFmZTQyMTgxYSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
c3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL0J1ZmZlck10bC5tbQorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvQnVmZmVyTXRsLm1tCkBA
IC00MTIsNTAgKzQxMiw0NiBAQCB2b2lkIEJ1ZmZlck10bDo6Y2xlYXJDb252ZXJzaW9uQnVmZmVy
cygpCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1zdGF0aWMgdm9pZCBjYWxjdWxhdGVSZXN0
YXJ0UmFuZ2VzKENvbnRleHRNdGwqIGN0eCwgbXRsOjpCdWZmZXJSZWYgaWR4QnVmZmVyLCBzdGQ6
OnZlY3RvcjxJbmRleFJhbmdlPiAqIHJhbmdlcykKK3N0YXRpYyBzdGQ6OnZlY3RvcjxJbmRleFJh
bmdlPiBjYWxjdWxhdGVSZXN0YXJ0UmFuZ2VzKENvbnRleHRNdGwgKmN0eCwgbXRsOjpCdWZmZXJS
ZWYgaWR4QnVmZmVyKQogewotICAgIHJhbmdlcy0+Y2xlYXIoKTsKLSAgICBUICpidWZmZXJEYXRh
ID0gKFQqKShpZHhCdWZmZXItPm1hcFJlYWRPbmx5KGN0eCkpOwotICAgIGNvbnN0IHNpemVfdCBu
dW1JbmRpY2VzID0gaWR4QnVmZmVyLT5zaXplKCkvc2l6ZW9mKFQpOwotICAgIGZvcihpbnQgaSA9
IDA7IGkgPCBudW1JbmRpY2VzOyBpKyspCisgICAgc3RkOjp2ZWN0b3I8SW5kZXhSYW5nZT4gcmVz
dWx0OworICAgIGNvbnN0IFQgKmJ1ZmZlckRhdGEgPSByZWludGVycHJldF9jYXN0PGNvbnN0IFQg
Kj4oaWR4QnVmZmVyLT5tYXBSZWFkT25seShjdHgpKTsKKyAgICBjb25zdCBzaXplX3QgbnVtSW5k
aWNlcyA9IGlkeEJ1ZmZlci0+c2l6ZSgpIC8gc2l6ZW9mKFQpOworICAgIGNvbnN0ZXhwciBUIHJl
c3RhcnRNYXJrZXIgPSBzdGQ6Om51bWVyaWNfbGltaXRzPFQ+OjptYXgoKTsKKyAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IG51bUluZGljZXM7IGkrKykKICAgICB7Ci0gICAgICAgIFQgdmFsdWUg
PSBidWZmZXJEYXRhW2ldOwotICAgICAgICBpZih2YWx1ZSA9PSBzdGQ6Om51bWVyaWNfbGltaXRz
PFQ+OjptYXgoKSkKKyAgICAgICAgaWYgKGJ1ZmZlckRhdGFbaV0gIT0gcmVzdGFydE1hcmtlcikK
KyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBzaXplX3QgcmVzdGFydEJlZ2luID0gaTsK
KyAgICAgICAgLy8gRmluZCB0aGUgZW5kIG9mIHRoZSByZXN0YXJ0IHJhbmdlLgorICAgICAgICBk
bwogICAgICAgICB7Ci0gICAgICAgICAgICBJbmRleFJhbmdlIG5ld1JhbmdlOwotICAgICAgICAg
ICAgbmV3UmFuZ2UucmVzdGFydEJlZ2luID0gaTsKLSAgICAgICAgICAgIC8vRmluZCB0aGUgZW5k
IG9mIHRoZSByZXN0YXJ0IHJhbmdlLgotICAgICAgICAgICAgZG8KLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICArK2k7Ci0gICAgICAgICAgICAgICAgaWYoaSA8IG51bUluZGljZXMpCi0g
ICAgICAgICAgICAgICAgICAgIHZhbHVlID0gYnVmZmVyRGF0YVtpXTsKLSAgICAgICAgICAgIH13
aGlsZSAoaSA8IG51bUluZGljZXMgJiYgdmFsdWUgPT0gc3RkOjpudW1lcmljX2xpbWl0czxUPjo6
bWF4KCkpOwotICAgICAgICAgICAgbmV3UmFuZ2UucmVzdGFydEVuZCA9IGktMTsKLSAgICAgICAg
ICAgIHJhbmdlcy0+cHVzaF9iYWNrKG5ld1JhbmdlKTsKLSAgICAgICAgfQorICAgICAgICAgICAg
KytpOworICAgICAgICB9IHdoaWxlIChpIDwgbnVtSW5kaWNlcyAmJiBidWZmZXJEYXRhW2ldID09
IHJlc3RhcnRNYXJrZXIpOworICAgICAgICByZXN1bHQuZW1wbGFjZV9iYWNrKHJlc3RhcnRCZWdp
biwgaSAtIDEpOwogICAgIH0KICAgICBpZHhCdWZmZXItPnVubWFwKGN0eCk7CisgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAogY29uc3Qgc3RkOjp2ZWN0b3I8SW5kZXhSYW5nZT4gJiBCdWZmZXJNdGw6
OmdldFJlc3RhcnRJbmRpY2VzKENvbnRleHRNdGwgKiBjdHgsIGdsOjpEcmF3RWxlbWVudHNUeXBl
IGluZGV4VHlwZSkKIHsKICAgICBpZihtUmVzdGFydEluZGljZXNEaXJ0eSkKICAgICB7CisgICAg
ICAgIG1SZXN0YXJ0SW5kaWNlcy5jbGVhcigpOwogICAgICAgICBzd2l0Y2goaW5kZXhUeXBlKQog
ICAgICAgICB7CiAgICAgICAgICAgICBjYXNlIGdsOjpEcmF3RWxlbWVudHNUeXBlOjpVbnNpZ25l
ZEJ5dGU6Ci0gICAgICAgICAgICAgICAgY2FsY3VsYXRlUmVzdGFydFJhbmdlczx1aW50OF90Pihj
dHgsIGdldEN1cnJlbnRCdWZmZXIoKSwmbVJlc3RhcnRJbmRpY2VzKTsKKyAgICAgICAgICAgICAg
ICBtUmVzdGFydEluZGljZXMgPSBjYWxjdWxhdGVSZXN0YXJ0UmFuZ2VzPHVpbnQ4X3Q+KGN0eCwg
Z2V0Q3VycmVudEJ1ZmZlcigpKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
IGNhc2UgZ2w6OkRyYXdFbGVtZW50c1R5cGU6OlVuc2lnbmVkU2hvcnQ6Ci0gICAgICAgICAgICAg
ICAgY2FsY3VsYXRlUmVzdGFydFJhbmdlczx1aW50MTZfdD4oY3R4LCBnZXRDdXJyZW50QnVmZmVy
KCksJm1SZXN0YXJ0SW5kaWNlcyk7CisgICAgICAgICAgICAgICAgbVJlc3RhcnRJbmRpY2VzID0g
Y2FsY3VsYXRlUmVzdGFydFJhbmdlczx1aW50MTZfdD4oY3R4LCBnZXRDdXJyZW50QnVmZmVyKCkp
OwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBnbDo6RHJhd0VsZW1l
bnRzVHlwZTo6VW5zaWduZWRJbnQ6Ci0gICAgICAgICAgICAgICAgY2FsY3VsYXRlUmVzdGFydFJh
bmdlczx1aW50MzJfdD4oY3R4LCBnZXRDdXJyZW50QnVmZmVyKCksJm1SZXN0YXJ0SW5kaWNlcyk7
CisgICAgICAgICAgICAgICAgbVJlc3RhcnRJbmRpY2VzID0gY2FsY3VsYXRlUmVzdGFydFJhbmdl
czx1aW50MzJfdD4oY3R4LCBnZXRDdXJyZW50QnVmZmVyKCkpOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICBBU1NFUlQoZmFsc2Up
OwotICAgICAgICAgICAgICAgIAogICAgICAgICB9CiAgICAgICAgIG1SZXN0YXJ0SW5kaWNlc0Rp
cnR5ID0gZmFsc2U7CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432394</attachid>
            <date>2021-06-28 08:03:32 -0700</date>
            <delta_ts>2021-06-29 00:57:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227449-20210628180330.patch</filename>
            <type>text/plain</type>
            <size>5744</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MzI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5k
ZXggYjQ3Y2U5ZWIxZmZmM2Y0YTUzYjk3MDE0ZmVhNmU3YTUyODdjZjEzMi4uNDM5M2M1ZDBiNzIw
ZTcwNzI0OTIyMTBlNmU2YzhiMTliMTA3NjYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDM0IEBACisyMDIxLTA2LTI4ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5l
bkBhcHBsZS5jb20+CisKKyAgICAgICAgQU5HTEUgTWV0YWwgcHJpbWl0aXZlIHJlc3RhcnQgcmFu
Z2UgY29tcHV0YXRpb24gY291bGQgaW5kZXggd2l0aCBzaXplX3QKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzQ0OQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgdGhlIGBjYWxjdWxhdGVSZXN0YXJ0
UmFuZ2VzKClgIGEgYml0IHNpbXBsZXIgaW4gb3JkZXIKKyAgICAgICAgZm9yIGl0IHRvIGJlIGVh
c2llciB0byB1bmRlcnN0YW5kLgorCisgICAgICAgICogc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21l
dGFsL0J1ZmZlck10bC5oOgorICAgICAgICAocng6OkluZGV4UmFuZ2U6OkluZGV4UmFuZ2UpOgor
ICAgICAgICBBZGQgZG9jdW1lbnRhdGlvbiB3aGF0IHRoZSBtdGw6OkluZGV4UmFuZ2UgaXMuCisg
ICAgICAgIEFkZCBjb25zdHJ1Y3RvciBzbyB0aGF0IGBzdGQ6OnZlY3Rvcjo6ZW1wbGFjZV9iYWNr
KClgIHdvcmtzLgorCisgICAgICAgICogc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL0J1ZmZl
ck10bC5tbToKKyAgICAgICAgKHJ4OjpjYWxjdWxhdGVSZXN0YXJ0UmFuZ2VzKToKKyAgICAgICAg
SW5kZXggd2l0aCBzaXplX3QgdG8gbWFrZSBpdCBzaW1wbGVyIHRvIHVuZGVyc3RhbmQgaWYgdGhl
IGluZGV4CisgICAgICAgIG92ZXJmbG93cyBvciBub3QuCisgICAgICAgIFVzZSByZWludGVycHJl
dF9jYXN0IGluIG9yZGVyIHRvIG5vdCBhY2NpZGVudGFsbHkgY2FzdCBhd2F5CisgICAgICAgIGNv
bnN0IGZyb20gYG10bDo6QnVmZmVyUmVmOjptYXBSZWFkT25seSgpYC4KKyAgICAgICAgU2tpcCB0
aGUgbm9uLW1hcmtlciBlbGVtZW50cyB3aXRoIGBjb250aW51ZWAgdG8gYXZvaWQgZGVlcCBuZXN0
aW5nLgorICAgICAgICBHaXZlIGEgbmFtZSB0byB0aGUgcmVzdGFydCByYW5nZSBtYXJrZXIgdmFs
dWUuCisgICAgICAgIFJlbW92ZSBpbnRlcm1lZGlhdGUgdmFyaWFibGUgYHZhbHVlID0gYnVmZmVy
RGF0YVtpXWAgYXMgaXQgaXMgbmV2ZXIKKyAgICAgICAgdXNlZCBtb3JlIHRoYW4gb25jZS4gVGhp
cyBzaW1wbGlmaWVzIHRoZSBjb2RlIGFzIHRoZSBkby13aGlsZSBsb29wCisgICAgICAgIGRvZXMg
bm90IG5lZWQgdG8gY2hlY2sgdGhlIGlmIGNvbmRpdGlvbiBhcyB0aGUgbG9vcCBlbmRpbmcgY29u
ZGl0aW9uCisgICAgICAgIGFscmVhZHkgY2hlY2tzLgorICAgICAgICBNYWtlIHRoZSBhcnJheSBh
IHJldHVybmVkIHJlc3VsdCBpbnN0ZWFkIG9mIG91dCB2YXJpYWJsZS4KKworICAgICAgICAocng6
OkJ1ZmZlck10bDo6Z2V0UmVzdGFydEluZGljZXMpOgorCiAyMDIxLTA2LTI0ICBLaW1tbyBLaW5u
dW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CiAKICAgICAgICAgQU5HTEUgTWV0YWwgaW5kZXgg
YnVmZmVyIGxlZnQgbWFwcGVkIHdoZW4gYnVpbGRpbmcgcHJpbWl0aXZlIHJlc3RhcnQgcmFuZ2Vz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVy
ZXIvbWV0YWwvQnVmZmVyTXRsLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5H
TEUvcmVuZGVyZXIvbWV0YWwvQnVmZmVyTXRsLmgKaW5kZXggY2ZmODFlMDIzYzMxOGVmZmJiNmMy
YjY2YjViYzA3NWU0MzJkZGNlNS4uZTdlZWJjOTM5NDUwNWRlMzMyZmUwMTUxNzk5MTNkZjI4NTFm
ZjQyNyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3Jl
bmRlcmVyL21ldGFsL0J1ZmZlck10bC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9CdWZmZXJNdGwuaApAQCAtMzAsOCArMzAsMTEgQEAg
c3RydWN0IERyYXdDb21tYW5kUmFuZ2UKICAgICB1aW50MzJfdCBjb3VudDsKICAgICBzaXplX3Qg
b2Zmc2V0OwogfTsKKworLy8gSW5jbHVzaXZlIHJhbmdlIG9mIGNvbnNlY3V0aXZlIHByaW1pdGl2
ZSByZXN0YXJ0IHZhbHVlIGluZGV4ZXMuCiBzdHJ1Y3QgSW5kZXhSYW5nZQogeworICAgIEluZGV4
UmFuZ2Uoc2l6ZV90IGJlZ2luLCBzaXplX3QgZW5kKSA6IHJlc3RhcnRCZWdpbihiZWdpbiksIHJl
c3RhcnRFbmQoZW5kKSB7fQogICAgIHNpemVfdCByZXN0YXJ0QmVnaW47CiAgICAgc2l6ZV90IHJl
c3RhcnRFbmQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xp
YkFOR0xFL3JlbmRlcmVyL21ldGFsL0J1ZmZlck10bC5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9CdWZmZXJNdGwubW0KaW5kZXggZmIwMzQz
MjU4ZDkxYWM0Y2Y4MjUwNmQ5ODUyODFlMTQwZjg5NjkzNS4uM2IzMTI3NjM0ZDUzZjJhMjBjYWZl
YmI4NTkzZTIzNjczOGU5NjRiZSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
c3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL0J1ZmZlck10bC5tbQorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvQnVmZmVyTXRsLm1tCkBA
IC00MTIsNTAgKzQxMiw0NiBAQCB2b2lkIEJ1ZmZlck10bDo6Y2xlYXJDb252ZXJzaW9uQnVmZmVy
cygpCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1zdGF0aWMgdm9pZCBjYWxjdWxhdGVSZXN0
YXJ0UmFuZ2VzKENvbnRleHRNdGwqIGN0eCwgbXRsOjpCdWZmZXJSZWYgaWR4QnVmZmVyLCBzdGQ6
OnZlY3RvcjxJbmRleFJhbmdlPiAqIHJhbmdlcykKK3N0YXRpYyBzdGQ6OnZlY3RvcjxJbmRleFJh
bmdlPiBjYWxjdWxhdGVSZXN0YXJ0UmFuZ2VzKENvbnRleHRNdGwgKmN0eCwgbXRsOjpCdWZmZXJS
ZWYgaWR4QnVmZmVyKQogewotICAgIHJhbmdlcy0+Y2xlYXIoKTsKLSAgICBUICpidWZmZXJEYXRh
ID0gKFQqKShpZHhCdWZmZXItPm1hcFJlYWRPbmx5KGN0eCkpOwotICAgIGNvbnN0IHNpemVfdCBu
dW1JbmRpY2VzID0gaWR4QnVmZmVyLT5zaXplKCkvc2l6ZW9mKFQpOwotICAgIGZvcihpbnQgaSA9
IDA7IGkgPCBudW1JbmRpY2VzOyBpKyspCisgICAgc3RkOjp2ZWN0b3I8SW5kZXhSYW5nZT4gcmVz
dWx0OworICAgIGNvbnN0IFQgKmJ1ZmZlckRhdGEgPSByZWludGVycHJldF9jYXN0PGNvbnN0IFQg
Kj4oaWR4QnVmZmVyLT5tYXBSZWFkT25seShjdHgpKTsKKyAgICBjb25zdCBzaXplX3QgbnVtSW5k
aWNlcyA9IGlkeEJ1ZmZlci0+c2l6ZSgpIC8gc2l6ZW9mKFQpOworICAgIGNvbnN0ZXhwciBUIHJl
c3RhcnRNYXJrZXIgPSBzdGQ6Om51bWVyaWNfbGltaXRzPFQ+OjptYXgoKTsKKyAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IG51bUluZGljZXM7IGkrKykKICAgICB7Ci0gICAgICAgIFQgdmFsdWUg
PSBidWZmZXJEYXRhW2ldOwotICAgICAgICBpZih2YWx1ZSA9PSBzdGQ6Om51bWVyaWNfbGltaXRz
PFQ+OjptYXgoKSkKKyAgICAgICAgaWYgKGJ1ZmZlckRhdGFbaV0gIT0gcmVzdGFydE1hcmtlcikK
KyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBzaXplX3QgcmVzdGFydEJlZ2luID0gaTsK
KyAgICAgICAgLy8gRmluZCB0aGUgZW5kIG9mIHRoZSByZXN0YXJ0IHJhbmdlLgorICAgICAgICBk
bwogICAgICAgICB7Ci0gICAgICAgICAgICBJbmRleFJhbmdlIG5ld1JhbmdlOwotICAgICAgICAg
ICAgbmV3UmFuZ2UucmVzdGFydEJlZ2luID0gaTsKLSAgICAgICAgICAgIC8vRmluZCB0aGUgZW5k
IG9mIHRoZSByZXN0YXJ0IHJhbmdlLgotICAgICAgICAgICAgZG8KLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICArK2k7Ci0gICAgICAgICAgICAgICAgaWYoaSA8IG51bUluZGljZXMpCi0g
ICAgICAgICAgICAgICAgICAgIHZhbHVlID0gYnVmZmVyRGF0YVtpXTsKLSAgICAgICAgICAgIH13
aGlsZSAoaSA8IG51bUluZGljZXMgJiYgdmFsdWUgPT0gc3RkOjpudW1lcmljX2xpbWl0czxUPjo6
bWF4KCkpOwotICAgICAgICAgICAgbmV3UmFuZ2UucmVzdGFydEVuZCA9IGktMTsKLSAgICAgICAg
ICAgIHJhbmdlcy0+cHVzaF9iYWNrKG5ld1JhbmdlKTsKLSAgICAgICAgfQorICAgICAgICAgICAg
KytpOworICAgICAgICB9IHdoaWxlIChpIDwgbnVtSW5kaWNlcyAmJiBidWZmZXJEYXRhW2ldID09
IHJlc3RhcnRNYXJrZXIpOworICAgICAgICByZXN1bHQuZW1wbGFjZV9iYWNrKHJlc3RhcnRCZWdp
biwgaSAtIDEpOwogICAgIH0KICAgICBpZHhCdWZmZXItPnVubWFwKGN0eCk7CisgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAogY29uc3Qgc3RkOjp2ZWN0b3I8SW5kZXhSYW5nZT4gJiBCdWZmZXJNdGw6
OmdldFJlc3RhcnRJbmRpY2VzKENvbnRleHRNdGwgKiBjdHgsIGdsOjpEcmF3RWxlbWVudHNUeXBl
IGluZGV4VHlwZSkKIHsKICAgICBpZihtUmVzdGFydEluZGljZXNEaXJ0eSkKICAgICB7CisgICAg
ICAgIHN0ZDo6dmVjdG9yPEluZGV4UmFuZ2U+KCkuc3dhcChtUmVzdGFydEluZGljZXMpOwogICAg
ICAgICBzd2l0Y2goaW5kZXhUeXBlKQogICAgICAgICB7CiAgICAgICAgICAgICBjYXNlIGdsOjpE
cmF3RWxlbWVudHNUeXBlOjpVbnNpZ25lZEJ5dGU6Ci0gICAgICAgICAgICAgICAgY2FsY3VsYXRl
UmVzdGFydFJhbmdlczx1aW50OF90PihjdHgsIGdldEN1cnJlbnRCdWZmZXIoKSwmbVJlc3RhcnRJ
bmRpY2VzKTsKKyAgICAgICAgICAgICAgICBtUmVzdGFydEluZGljZXMgPSBjYWxjdWxhdGVSZXN0
YXJ0UmFuZ2VzPHVpbnQ4X3Q+KGN0eCwgZ2V0Q3VycmVudEJ1ZmZlcigpKTsKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgZ2w6OkRyYXdFbGVtZW50c1R5cGU6OlVuc2ln
bmVkU2hvcnQ6Ci0gICAgICAgICAgICAgICAgY2FsY3VsYXRlUmVzdGFydFJhbmdlczx1aW50MTZf
dD4oY3R4LCBnZXRDdXJyZW50QnVmZmVyKCksJm1SZXN0YXJ0SW5kaWNlcyk7CisgICAgICAgICAg
ICAgICAgbVJlc3RhcnRJbmRpY2VzID0gY2FsY3VsYXRlUmVzdGFydFJhbmdlczx1aW50MTZfdD4o
Y3R4LCBnZXRDdXJyZW50QnVmZmVyKCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgY2FzZSBnbDo6RHJhd0VsZW1lbnRzVHlwZTo6VW5zaWduZWRJbnQ6Ci0gICAgICAgICAg
ICAgICAgY2FsY3VsYXRlUmVzdGFydFJhbmdlczx1aW50MzJfdD4oY3R4LCBnZXRDdXJyZW50QnVm
ZmVyKCksJm1SZXN0YXJ0SW5kaWNlcyk7CisgICAgICAgICAgICAgICAgbVJlc3RhcnRJbmRpY2Vz
ID0gY2FsY3VsYXRlUmVzdGFydFJhbmdlczx1aW50MzJfdD4oY3R4LCBnZXRDdXJyZW50QnVmZmVy
KCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgZGVmYXVsdDoKICAgICAg
ICAgICAgICAgICBBU1NFUlQoZmFsc2UpOwotICAgICAgICAgICAgICAgIAogICAgICAgICB9CiAg
ICAgICAgIG1SZXN0YXJ0SW5kaWNlc0RpcnR5ID0gZmFsc2U7CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432457</attachid>
            <date>2021-06-29 00:58:04 -0700</date>
            <delta_ts>2021-06-29 06:53:51 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-227449-20210629105803.patch</filename>
            <type>text/plain</type>
            <size>5887</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MzI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5k
ZXggYjQ3Y2U5ZWIxZmZmM2Y0YTUzYjk3MDE0ZmVhNmU3YTUyODdjZjEzMi4uZWEwNWRkZTk5MTEz
NmY2ZTFiZGE5MzkxNTNjOWZlN2FkOTA2MGM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDM0IEBACisyMDIxLTA2LTI4ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5l
bkBhcHBsZS5jb20+CisKKyAgICAgICAgQU5HTEUgTWV0YWwgcHJpbWl0aXZlIHJlc3RhcnQgcmFu
Z2UgY29tcHV0YXRpb24gY291bGQgaW5kZXggd2l0aCBzaXplX3QKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzQ0OQorCisgICAgICAgIFJldmlld2Vk
IGJ5IEtlbm5ldGggUnVzc2VsbC4KKworICAgICAgICBNYWtlIHRoZSBgY2FsY3VsYXRlUmVzdGFy
dFJhbmdlcygpYCBhIGJpdCBzaW1wbGVyIGluIG9yZGVyCisgICAgICAgIGZvciBpdCB0byBiZSBl
YXNpZXIgdG8gdW5kZXJzdGFuZC4KKworICAgICAgICAqIHNyYy9saWJBTkdMRS9yZW5kZXJlci9t
ZXRhbC9CdWZmZXJNdGwuaDoKKyAgICAgICAgKHJ4OjpJbmRleFJhbmdlOjpJbmRleFJhbmdlKToK
KyAgICAgICAgQWRkIGRvY3VtZW50YXRpb24gd2hhdCB0aGUgbXRsOjpJbmRleFJhbmdlIGlzLgor
ICAgICAgICBBZGQgY29uc3RydWN0b3Igc28gdGhhdCBgc3RkOjp2ZWN0b3I6OmVtcGxhY2VfYmFj
aygpYCB3b3Jrcy4KKworICAgICAgICAqIHNyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9CdWZm
ZXJNdGwubW06CisgICAgICAgIChyeDo6Y2FsY3VsYXRlUmVzdGFydFJhbmdlcyk6CisgICAgICAg
IEluZGV4IHdpdGggc2l6ZV90IHRvIG1ha2UgaXQgc2ltcGxlciB0byB1bmRlcnN0YW5kIGlmIHRo
ZSBpbmRleAorICAgICAgICBvdmVyZmxvd3Mgb3Igbm90LgorICAgICAgICBVc2UgcmVpbnRlcnBy
ZXRfY2FzdCBpbiBvcmRlciB0byBub3QgYWNjaWRlbnRhbGx5IGNhc3QgYXdheQorICAgICAgICBj
b25zdCBmcm9tIGBtdGw6OkJ1ZmZlclJlZjo6bWFwUmVhZE9ubHkoKWAuCisgICAgICAgIFNraXAg
dGhlIG5vbi1tYXJrZXIgZWxlbWVudHMgd2l0aCBgY29udGludWVgIHRvIGF2b2lkIGRlZXAgbmVz
dGluZy4KKyAgICAgICAgR2l2ZSBhIG5hbWUgdG8gdGhlIHJlc3RhcnQgcmFuZ2UgbWFya2VyIHZh
bHVlLgorICAgICAgICBSZW1vdmUgaW50ZXJtZWRpYXRlIHZhcmlhYmxlIGB2YWx1ZSA9IGJ1ZmZl
ckRhdGFbaV1gIGFzIGl0IGlzIG5ldmVyCisgICAgICAgIHVzZWQgbW9yZSB0aGFuIG9uY2UuIFRo
aXMgc2ltcGxpZmllcyB0aGUgY29kZSBhcyB0aGUgZG8td2hpbGUgbG9vcAorICAgICAgICBkb2Vz
IG5vdCBuZWVkIHRvIGNoZWNrIHRoZSBpZiBjb25kaXRpb24gYXMgdGhlIGxvb3AgZW5kaW5nIGNv
bmRpdGlvbgorICAgICAgICBhbHJlYWR5IGNoZWNrcy4KKyAgICAgICAgTWFrZSB0aGUgYXJyYXkg
YSByZXR1cm5lZCByZXN1bHQgaW5zdGVhZCBvZiBvdXQgdmFyaWFibGUuCisKKyAgICAgICAgKHJ4
OjpCdWZmZXJNdGw6OmdldFJlc3RhcnRJbmRpY2VzKToKKwogMjAyMS0wNi0yNCAgS2ltbW8gS2lu
bnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgogCiAgICAgICAgIEFOR0xFIE1ldGFsIGluZGV4
IGJ1ZmZlciBsZWZ0IG1hcHBlZCB3aGVuIGJ1aWxkaW5nIHByaW1pdGl2ZSByZXN0YXJ0IHJhbmdl
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRl
cmVyL21ldGFsL0J1ZmZlck10bC5oIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFO
R0xFL3JlbmRlcmVyL21ldGFsL0J1ZmZlck10bC5oCmluZGV4IGNmZjgxZTAyM2MzMThlZmZiYjZj
MmI2NmI1YmMwNzVlNDMyZGRjZTUuLmU3ZWViYzkzOTQ1MDVkZTMzMmZlMDE1MTc5OTEzZGYyODUx
ZmY0MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9y
ZW5kZXJlci9tZXRhbC9CdWZmZXJNdGwuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9z
cmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvQnVmZmVyTXRsLmgKQEAgLTMwLDggKzMwLDExIEBA
IHN0cnVjdCBEcmF3Q29tbWFuZFJhbmdlCiAgICAgdWludDMyX3QgY291bnQ7CiAgICAgc2l6ZV90
IG9mZnNldDsKIH07CisKKy8vIEluY2x1c2l2ZSByYW5nZSBvZiBjb25zZWN1dGl2ZSBwcmltaXRp
dmUgcmVzdGFydCB2YWx1ZSBpbmRleGVzLgogc3RydWN0IEluZGV4UmFuZ2UKIHsKKyAgICBJbmRl
eFJhbmdlKHNpemVfdCBiZWdpbiwgc2l6ZV90IGVuZCkgOiByZXN0YXJ0QmVnaW4oYmVnaW4pLCBy
ZXN0YXJ0RW5kKGVuZCkge30KICAgICBzaXplX3QgcmVzdGFydEJlZ2luOwogICAgIHNpemVfdCBy
ZXN0YXJ0RW5kOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9s
aWJBTkdMRS9yZW5kZXJlci9tZXRhbC9CdWZmZXJNdGwubW0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvQnVmZmVyTXRsLm1tCmluZGV4IGZiMDM0
MzI1OGQ5MWFjNGNmODI1MDZkOTg1MjgxZTE0MGY4OTY5MzUuLjViNWE4NzYwMDFmNDliYmFkMzZi
ODk1NmRlM2ViNjg5MjRmZTI2ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9CdWZmZXJNdGwubW0KKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL0J1ZmZlck10bC5tbQpA
QCAtNDEyLDUwICs0MTIsNDcgQEAgdm9pZCBCdWZmZXJNdGw6OmNsZWFyQ29udmVyc2lvbkJ1ZmZl
cnMoKQogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgotc3RhdGljIHZvaWQgY2FsY3VsYXRlUmVz
dGFydFJhbmdlcyhDb250ZXh0TXRsKiBjdHgsIG10bDo6QnVmZmVyUmVmIGlkeEJ1ZmZlciwgc3Rk
Ojp2ZWN0b3I8SW5kZXhSYW5nZT4gKiByYW5nZXMpCitzdGF0aWMgc3RkOjp2ZWN0b3I8SW5kZXhS
YW5nZT4gY2FsY3VsYXRlUmVzdGFydFJhbmdlcyhDb250ZXh0TXRsICpjdHgsIG10bDo6QnVmZmVy
UmVmIGlkeEJ1ZmZlcikKIHsKLSAgICByYW5nZXMtPmNsZWFyKCk7Ci0gICAgVCAqYnVmZmVyRGF0
YSA9IChUKikoaWR4QnVmZmVyLT5tYXBSZWFkT25seShjdHgpKTsKLSAgICBjb25zdCBzaXplX3Qg
bnVtSW5kaWNlcyA9IGlkeEJ1ZmZlci0+c2l6ZSgpL3NpemVvZihUKTsKLSAgICBmb3IoaW50IGkg
PSAwOyBpIDwgbnVtSW5kaWNlczsgaSsrKQorICAgIHN0ZDo6dmVjdG9yPEluZGV4UmFuZ2U+IHJl
c3VsdDsKKyAgICBjb25zdCBUICpidWZmZXJEYXRhID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBU
ICo+KGlkeEJ1ZmZlci0+bWFwUmVhZE9ubHkoY3R4KSk7CisgICAgY29uc3Qgc2l6ZV90IG51bUlu
ZGljZXMgPSBpZHhCdWZmZXItPnNpemUoKSAvIHNpemVvZihUKTsKKyAgICBjb25zdGV4cHIgVCBy
ZXN0YXJ0TWFya2VyID0gc3RkOjpudW1lcmljX2xpbWl0czxUPjo6bWF4KCk7CisgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBudW1JbmRpY2VzOyArK2kpCiAgICAgewotICAgICAgICBUIHZhbHVl
ID0gYnVmZmVyRGF0YVtpXTsKLSAgICAgICAgaWYodmFsdWUgPT0gc3RkOjpudW1lcmljX2xpbWl0
czxUPjo6bWF4KCkpCisgICAgICAgIC8vIEZpbmQgdGhlIHN0YXJ0IG9mIHRoZSByZXN0YXJ0IHJh
bmdlLCBpLmUuIGZpcnN0IGluZGV4IHdpdGggdmFsdWUgb2YgcmVzdGFydCBtYXJrZXIuCisgICAg
ICAgIGlmIChidWZmZXJEYXRhW2ldICE9IHJlc3RhcnRNYXJrZXIpCisgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgc2l6ZV90IHJlc3RhcnRCZWdpbiA9IGk7CisgICAgICAgIC8vIEZpbmQg
dGhlIGVuZCBvZiB0aGUgcmVzdGFydCByYW5nZSwgaS5lLiBsYXN0IGluZGV4IHdpdGggdmFsdWUg
b2YgcmVzdGFydCBtYXJrZXIuCisgICAgICAgIGRvCiAgICAgICAgIHsKLSAgICAgICAgICAgIElu
ZGV4UmFuZ2UgbmV3UmFuZ2U7Ci0gICAgICAgICAgICBuZXdSYW5nZS5yZXN0YXJ0QmVnaW4gPSBp
OwotICAgICAgICAgICAgLy9GaW5kIHRoZSBlbmQgb2YgdGhlIHJlc3RhcnQgcmFuZ2UuCi0gICAg
ICAgICAgICBkbwotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICsraTsKLSAgICAgICAg
ICAgICAgICBpZihpIDwgbnVtSW5kaWNlcykKLSAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBi
dWZmZXJEYXRhW2ldOwotICAgICAgICAgICAgfXdoaWxlIChpIDwgbnVtSW5kaWNlcyAmJiB2YWx1
ZSA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPFQ+OjptYXgoKSk7Ci0gICAgICAgICAgICBuZXdSYW5n
ZS5yZXN0YXJ0RW5kID0gaS0xOwotICAgICAgICAgICAgcmFuZ2VzLT5wdXNoX2JhY2sobmV3UmFu
Z2UpOwotICAgICAgICB9CisgICAgICAgICAgICArK2k7CisgICAgICAgIH0gd2hpbGUgKGkgPCBu
dW1JbmRpY2VzICYmIGJ1ZmZlckRhdGFbaV0gPT0gcmVzdGFydE1hcmtlcik7CisgICAgICAgIHJl
c3VsdC5lbXBsYWNlX2JhY2socmVzdGFydEJlZ2luLCBpIC0gMSk7CiAgICAgfQogICAgIGlkeEJ1
ZmZlci0+dW5tYXAoY3R4KTsKKyAgICByZXR1cm4gcmVzdWx0OwogfQogCiBjb25zdCBzdGQ6OnZl
Y3RvcjxJbmRleFJhbmdlPiAmIEJ1ZmZlck10bDo6Z2V0UmVzdGFydEluZGljZXMoQ29udGV4dE10
bCAqIGN0eCwgZ2w6OkRyYXdFbGVtZW50c1R5cGUgaW5kZXhUeXBlKQogewogICAgIGlmKG1SZXN0
YXJ0SW5kaWNlc0RpcnR5KQogICAgIHsKKyAgICAgICAgc3RkOjp2ZWN0b3I8SW5kZXhSYW5nZT4o
KS5zd2FwKG1SZXN0YXJ0SW5kaWNlcyk7CiAgICAgICAgIHN3aXRjaChpbmRleFR5cGUpCiAgICAg
ICAgIHsKICAgICAgICAgICAgIGNhc2UgZ2w6OkRyYXdFbGVtZW50c1R5cGU6OlVuc2lnbmVkQnl0
ZToKLSAgICAgICAgICAgICAgICBjYWxjdWxhdGVSZXN0YXJ0UmFuZ2VzPHVpbnQ4X3Q+KGN0eCwg
Z2V0Q3VycmVudEJ1ZmZlcigpLCZtUmVzdGFydEluZGljZXMpOworICAgICAgICAgICAgICAgIG1S
ZXN0YXJ0SW5kaWNlcyA9IGNhbGN1bGF0ZVJlc3RhcnRSYW5nZXM8dWludDhfdD4oY3R4LCBnZXRD
dXJyZW50QnVmZmVyKCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2Fz
ZSBnbDo6RHJhd0VsZW1lbnRzVHlwZTo6VW5zaWduZWRTaG9ydDoKLSAgICAgICAgICAgICAgICBj
YWxjdWxhdGVSZXN0YXJ0UmFuZ2VzPHVpbnQxNl90PihjdHgsIGdldEN1cnJlbnRCdWZmZXIoKSwm
bVJlc3RhcnRJbmRpY2VzKTsKKyAgICAgICAgICAgICAgICBtUmVzdGFydEluZGljZXMgPSBjYWxj
dWxhdGVSZXN0YXJ0UmFuZ2VzPHVpbnQxNl90PihjdHgsIGdldEN1cnJlbnRCdWZmZXIoKSk7CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIGdsOjpEcmF3RWxlbWVudHNU
eXBlOjpVbnNpZ25lZEludDoKLSAgICAgICAgICAgICAgICBjYWxjdWxhdGVSZXN0YXJ0UmFuZ2Vz
PHVpbnQzMl90PihjdHgsIGdldEN1cnJlbnRCdWZmZXIoKSwmbVJlc3RhcnRJbmRpY2VzKTsKKyAg
ICAgICAgICAgICAgICBtUmVzdGFydEluZGljZXMgPSBjYWxjdWxhdGVSZXN0YXJ0UmFuZ2VzPHVp
bnQzMl90PihjdHgsIGdldEN1cnJlbnRCdWZmZXIoKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgIEFTU0VSVChmYWxzZSk7Ci0g
ICAgICAgICAgICAgICAgCiAgICAgICAgIH0KICAgICAgICAgbVJlc3RhcnRJbmRpY2VzRGlydHkg
PSBmYWxzZTsKICAgICB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>