<?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>227614</bug_id>
          
          <creation_ts>2021-07-02 02:39:14 -0700</creation_ts>
          <short_desc>[CG] REGRESSION(r278863): The destination rectangle is truncated when the sub-image is used</short_desc>
          <delta_ts>2021-07-13 12:38:42 -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>Images</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=226916</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=225377</see_also>
          <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="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1774396</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-07-02 02:39:14 -0700</bug_when>
    <thetext>This was overlooked when GraphicsContextCG::drawNativeImage() was re-factored in r278863.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774397</commentid>
    <comment_count>1</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-07-02 02:40:38 -0700</bug_when>
    <thetext>&lt;rdar://79840643&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774398</commentid>
    <comment_count>2</comment_count>
      <attachid>432773</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-07-02 02:41:06 -0700</bug_when>
    <thetext>Created attachment 432773
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774595</commentid>
    <comment_count>3</comment_count>
      <attachid>432827</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-07-02 15:06:37 -0700</bug_when>
    <thetext>Created attachment 432827
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774639</commentid>
    <comment_count>4</comment_count>
      <attachid>432827</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-07-02 19:09:01 -0700</bug_when>
    <thetext>Comment on attachment 432827
Patch

If we are drawing the whole image why do we hit the subimage codepath?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774640</commentid>
    <comment_count>5</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-07-02 20:02:43 -0700</bug_when>
    <thetext>Consider the case of drawing the whole ImageBuffer through ImageBuffer::draw(). Assume this ImageBuffer has the following parameters:
    logicalSize = { 392, 44 }
    resolutionScale = 1.91326535

ImageBufferBackend::calculateBackendSize() gets the enclosing rectangle for the backend size:
    backendSize = ceil(logicalSize * resolutionScale) = ceil({ 392 * 1.91326535, 44 * 1.91326535 }) = ceil({ 750, 84.1836754 }) = { 750, 85 }

The caller will pass the following arguments to ImageBuffer::draw():
    destRect = { 0,  0, 392, 44 }
    srcRect = { 0, 0, 392, 44 }

But ImageBufferCGBackend::draw() will pass the following arguments to GraphicsContextCG::drawNativeImage()
    imageSize = { 750, 85 } // = backendSize
    destRect = { 0,  0, 392, 44 }
    srcRect = { 0, 0, 750, 84.1836754 } // = logicalSize * resolutionScale

The condition to use the subimage codepath is the following:

    if (normalizedSrcRect != imageRect) // normalizedSrcRect is equal to srcRect in this case.

And this condition is true in this case because { 0, 0, 750, 84.1836754 } != { 0, 0, 750, 85 }

So yes in this case, we should not hit the subimage codepath. But I was trying to fix the regression and to put the calculation code back as it was before r278863.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774972</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-07-06 09:36:23 -0700</bug_when>
    <thetext>Yes, my point was let&apos;s fix the rounding issues so we don&apos;t hit the subimage code path  for every back buffer -&gt; front buffer copy which will never benefit from the cache.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775105</commentid>
    <comment_count>7</comment_count>
      <attachid>432978</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-07-06 15:01:12 -0700</bug_when>
    <thetext>Created attachment 432978
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775112</commentid>
    <comment_count>8</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-07-06 15:10:27 -0700</bug_when>
    <thetext>I fixed the issue of drawing the back ImageBuffer to the front ImageBuffer in RemoteLayerBackingStore::display(). Drawing the whole ImageBuffer should not go through the sub-image code path. But I had to adjust the calculation of the imageSize to match the logicalSize and the destRect to match the backendSize correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775114</commentid>
    <comment_count>9</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-07-06 15:13:55 -0700</bug_when>
    <thetext>I think this bug is related to bug 225377</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775458</commentid>
    <comment_count>10</comment_count>
      <attachid>433074</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-07-07 14:14:41 -0700</bug_when>
    <thetext>Created attachment 433074
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776574</commentid>
    <comment_count>11</comment_count>
      <attachid>433394</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-07-13 00:37:45 -0700</bug_when>
    <thetext>Created attachment 433394
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776691</commentid>
    <comment_count>12</comment_count>
      <attachid>433394</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-07-13 11:21:15 -0700</bug_when>
    <thetext>Comment on attachment 433394
Patch

Since this restores the behavior to shipping, r=me. However, we need to figure out how to avoid the sub image code path here (bug 227912).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776723</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-13 12:38:41 -0700</bug_when>
    <thetext>Committed r279885 (239637@main): &lt;https://commits.webkit.org/239637@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 433394.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432773</attachid>
            <date>2021-07-02 02:41:06 -0700</date>
            <delta_ts>2021-07-02 15:06:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227614-20210702024106.patch</filename>
            <type>text/plain</type>
            <size>1871</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzJmYjc1OTYwZTg2OGVj
NjVmZDIzMDEwMTJkYTMzNDZiOTAwZDI0Ny4uZjkyOTgzYzU3Y2E0ZjYxM2I4NWYxNTNmZDc0MWFk
NWUwMzNlMjlkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTA3LTAyICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtDR10gUkVHUkVTU0lP
TihyMjc4ODYzKTogRGVzdGluYXRpb24gcmVjdGFuZ2xlIGlzIG5vdCBhZGp1c3RlZCBmb3Igc3Vi
LXBpeGVsIHdoZW4gYSBzdWItaW1hZ2UgaXMgdXNlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NjE0CisgICAgICAgIDxyZGFyOi8vNzk4NDA2NDM+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRDRzo6ZHJhd05hdGl2ZUltYWdlKToKKwogMjAyMS0wNi0zMCAgUnlv
c3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBVc2UgV2Vha0hhc2hNYXAg
YW5kIFdlYWtQdHIgd2l0aCBOb2RlIGluIG1vcmUgcGxhY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKaW5k
ZXggNjJmNzZmNTFiNGM1MzQ4NjFjYmVkZWYwY2ZhMTBmY2Q3ZjZhMmFhNy4uYWQ1N2NkM2Q4YWJh
OGI1MDdlZDA0ZGUyYzM4OTE5Y2UyNzc5ZDM0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcApAQCAtMjk3
LDcgKzI5Nyw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0Q0c6OmRyYXdOYXRpdmVJbWFnZShOYXRp
dmVJbWFnZSYgbmF0aXZlSW1hZ2UsIGNvbnN0IEZsb2F0U2l6CiAgICAgICAgICAgICAvLyBpbnRl
cnBvbGF0aW9uIHNtb290aGVzIHNoYXJwIGVkZ2VzLCBjYXVzaW5nIHBpeGVscyBmcm9tIG91dHNp
ZGUgdGhlIHNvdXJjZSByZWN0IHRvIGJsZWVkCiAgICAgICAgICAgICAvLyBpbnRvIHRoZSBkZXN0
aW5hdGlvbiByZWN0LiBTZWUgPHJkYXI6Ly9wcm9ibGVtLzYxMTI5MDk+LgogICAgICAgICAgICAg
c3ViSW1hZ2UgPSBnZXRTdWJpbWFnZShzdWJJbWFnZS5nZXQoKSwgaW1hZ2VTaXplLCBzdWJpbWFn
ZVJlY3QsIG9wdGlvbnMpOwotICAgICAgICAgICAgYWRqdXN0ZWREZXN0UmVjdCA9IGVuY2xvc2lu
Z0ludFJlY3QoYWRqdXN0ZWREZXN0UmVjdCk7CisgICAgICAgICAgICBhZGp1c3RlZERlc3RSZWN0
ID0geyBhZGp1c3RlZERlc3RSZWN0LmxvY2F0aW9uKCkgKyAoc3ViaW1hZ2VSZWN0LmxvY2F0aW9u
KCkgLSBub3JtYWxpemVkU3JjUmVjdC5sb2NhdGlvbigpKSAqIHNjYWxlLCBzdWJpbWFnZVJlY3Qu
c2l6ZSgpICogc2NhbGUgfTsKIAogICAgICAgICAgICAgLy8gSWYgdGhlIGltYWdlIGlzIG9ubHkg
cGFydGlhbGx5IGxvYWRlZCwgdGhlbiBzaHJpbmsgdGhlIGRlc3RpbmF0aW9uIHJlY3QgdGhhdCB3
ZSdyZSBkcmF3aW5nCiAgICAgICAgICAgICAvLyBpbnRvIGFjY29yZGluZ2x5Lgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432827</attachid>
            <date>2021-07-02 15:06:37 -0700</date>
            <delta_ts>2021-07-06 15:01:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227614-20210702150637.patch</filename>
            <type>text/plain</type>
            <size>2168</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzJmYjc1OTYwZTg2OGVj
NjVmZDIzMDEwMTJkYTMzNDZiOTAwZDI0Ny4uNDAxZGE4YWIwNjY2ZjQwZTFmMzc4NjA4MWVjN2Fl
Njg3MThmZDk2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTA3LTAyICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtDR10gUkVHUkVTU0lP
TihyMjc4ODYzKTogVGhlIGRlc3RpbmF0aW9uIHJlY3RhbmdsZSBpcyB0cnVuY2F0ZWQgd2hlbiB0
aGUgc3ViLWltYWdlIGlzIHVzZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNzYxNAorICAgICAgICA8cmRhcjovLzc5ODQwNjQzPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERyYXdpbmcgYSBzdWItaW1h
Z2VzIHJlbGllcyBvbiBhZGp1c3RpbmcgdGhlIGRlc3RSZWN0IGFzIGlmIHdlIHdlcmUgZ29pbmcK
KyAgICAgICAgdG8gZHJhdyB0aGUgd2hvbGUgaW1hZ2UuIEFuZCB0byBkcmF3IHRoZSB3aG9sZSBp
bWFnZSB3aXRob3V0IHRydW5jYXRpb246CisKKyAgICAgICAgYWRqdXN0ZWREZXN0UmVjdC5zaXpl
KCkgPSBlbmNsb3NpbmdJbnRSZWN0KHNyY1JlY3QpLnNpemUoKSAvIHJlc29sdXRpb25TY2FsZQor
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Q0c6OmRyYXdOYXRpdmVJbWFnZSk6CisK
IDIwMjEtMDYtMzAgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
VXNlIFdlYWtIYXNoTWFwIGFuZCBXZWFrUHRyIHdpdGggTm9kZSBpbiBtb3JlIHBsYWNlcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250
ZXh0Q0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3ND
b250ZXh0Q0cuY3BwCmluZGV4IDYyZjc2ZjUxYjRjNTM0ODYxY2JlZGVmMGNmYTEwZmNkN2Y2YTJh
YTcuLjllMjY5N2EyMDcwYmY5MmM1Yzg0MzVkNDdjNGNiNzM0NTJkNmJjMzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRl
eHRDRy5jcHAKQEAgLTI5Nyw3ICsyOTcsOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dENHOjpkcmF3
TmF0aXZlSW1hZ2UoTmF0aXZlSW1hZ2UmIG5hdGl2ZUltYWdlLCBjb25zdCBGbG9hdFNpegogICAg
ICAgICAgICAgLy8gaW50ZXJwb2xhdGlvbiBzbW9vdGhlcyBzaGFycCBlZGdlcywgY2F1c2luZyBw
aXhlbHMgZnJvbSBvdXRzaWRlIHRoZSBzb3VyY2UgcmVjdCB0byBibGVlZAogICAgICAgICAgICAg
Ly8gaW50byB0aGUgZGVzdGluYXRpb24gcmVjdC4gU2VlIDxyZGFyOi8vcHJvYmxlbS82MTEyOTA5
Pi4KICAgICAgICAgICAgIHN1YkltYWdlID0gZ2V0U3ViaW1hZ2Uoc3ViSW1hZ2UuZ2V0KCksIGlt
YWdlU2l6ZSwgc3ViaW1hZ2VSZWN0LCBvcHRpb25zKTsKLSAgICAgICAgICAgIGFkanVzdGVkRGVz
dFJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KGFkanVzdGVkRGVzdFJlY3QpOworCisgICAgICAgICAg
ICBhdXRvIHN1YlBpeGVsUGFkZGluZyA9IG5vcm1hbGl6ZWRTcmNSZWN0LmxvY2F0aW9uKCkgLSBz
dWJpbWFnZVJlY3QubG9jYXRpb24oKTsKKyAgICAgICAgICAgIGFkanVzdGVkRGVzdFJlY3QgPSB7
IGFkanVzdGVkRGVzdFJlY3QubG9jYXRpb24oKSAtIHN1YlBpeGVsUGFkZGluZyAqIHNjYWxlLCBz
dWJpbWFnZVJlY3Quc2l6ZSgpICogc2NhbGUgfTsKIAogICAgICAgICAgICAgLy8gSWYgdGhlIGlt
YWdlIGlzIG9ubHkgcGFydGlhbGx5IGxvYWRlZCwgdGhlbiBzaHJpbmsgdGhlIGRlc3RpbmF0aW9u
IHJlY3QgdGhhdCB3ZSdyZSBkcmF3aW5nCiAgICAgICAgICAgICAvLyBpbnRvIGFjY29yZGluZ2x5
Lgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432978</attachid>
            <date>2021-07-06 15:01:12 -0700</date>
            <delta_ts>2021-07-07 14:14:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227614-20210706150111.patch</filename>
            <type>text/plain</type>
            <size>6737</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2E3MGJhZTVmYzA5ZGZh
ZmVkYTEyZmI4Yjk1ZDdiM2RhNDdlNDIwMi4uYWQzMGJmMjc3MDFjZDY4N2UwN2E5MmQ2ODczOTdh
YmMyZTI0NmM5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTA3LTA2ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtDR10gUkVHUkVTU0lP
TihyMjc4ODYzKTogVGhlIGRlc3RpbmF0aW9uIHJlY3RhbmdsZSBpcyB0cnVuY2F0ZWQgd2hlbiB0
aGUgc3ViLWltYWdlIGlzIHVzZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNzYxNAorICAgICAgICA8cmRhcjovLzc5ODQwNjQzPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdldCB0aGUgY2FsY3VsYXRp
b24gb2YgdGhlIGRlc3RSZWN0IGluIHRoZSBjYXNlIG9mIHRoZSBzdWItaW1hZ2UgYXMgaXQgCisg
ICAgICAgIHdhcyBiZWZvcmUgcjI3ODg2My4KKworICAgICAgICBJbWFnZUJ1ZmZlckJhY2tlbmQ6
OmltYWdlU2l6ZSgpIGlzIHRoZSBsb2dpY2FsU2l6ZSgpIGJ1dCBpbiBiYWNrZW5kCisgICAgICAg
IGNvb3JkaW5hdGVzIHdoaWNoIG11c3QgYmUgZW5jbG9zZWQgaW4gYmFja2VuZFNpemUoKS4gQ2Fs
bGVycyBoYXZlIHRvCisgICAgICAgIGhhdmUgc3JjUmVjdCBtYXRjaCBpbWFnZVNpemUoKSBhbmQg
ZGVzdFJlY3QgbWF0Y2ggdGhlIGJhY2tlbmRTaXplKCkKKyAgICAgICAgd2hlbiBkcmF3aW5nIHRo
ZSB3aG9sZSBJbWFnZUJ1ZmZlci4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
QnVmZmVyQmFja2VuZC5oOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJCYWNrZW5kOjpp
bWFnZVNpemUgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNz
Q29udGV4dENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dENHOjpkcmF3
TmF0aXZlSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVy
Q0dCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyQ0dCYWNrZW5kOjpk
cmF3KToKKwogMjAyMS0wNy0wNSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgW2Nzcy1zY3JvbGwtc25hcF0gVHJpZ2dlcmluZyBhIGxheW91dCBkdXJp
bmcgc2Nyb2xsIGNhdXNlcyBqaXR0ZXJ5IHNjcm9sbGluZyBvbiBNYWMgd2hlbiBkcmFnZ2luZyB0
aGUgc2Nyb2xsYmFyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDlmNDQ4NTRkNmM4ODRkOWRlODc2MWZiNzM5NjNlZjY4
ZWUyZjFhN2QuLjAyN2MzMzM3OTc4MTlhNDBiNDQxMGQyM2ZlZDJmMThjNTc1NTA0MjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDctMDYgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fp
ZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NHXSBSRUdSRVNTSU9OKHIyNzg4NjMpOiBUaGUgZGVz
dGluYXRpb24gcmVjdGFuZ2xlIGlzIHRydW5jYXRlZCB3aGVuIHRoZSBzdWItaW1hZ2UgaXMgdXNl
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NjE0
CisgICAgICAgIDxyZGFyOi8vNzk4NDA2NDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQmVjYXVzZSB0aGUgd2hvbGUgSW1hZ2VCdWZmZXIgaXMgZHJh
d24sIHNyY1JlY3QgbXVzdCBtYXRjaCBpbWFnZVNpemUoKQorICAgICAgICBpbiBsb2dpY2FsIGNv
b3JkaW5hdGVzIGFuZCBkZXN0UmVjdCBtdXN0IG1hdGNoIGJhY2tlbmRTaXplKCkgaW4gbG9naWNh
bAorICAgICAgICBjb29yZGluYXRlcy4KKworICAgICAgICAqIFNoYXJlZC9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxh
eWVyQmFja2luZ1N0b3JlOjpkaXNwbGF5KToKKwogMjAyMS0wNy0wNCAgV2Vuc29uIEhzaWVoICA8
d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBBdWdtZW50IC1fd2ViVmll
dzpkaWROb3RIYW5kbGVUYXBBc01lYW5pbmdmdWxDbGlja0F0UG9pbnQ6IHRvIGluY2x1ZGUgbWVh
bmluZ2Z1bCB0YXBzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZUJ1ZmZlckJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlQnVmZmVyQmFja2VuZC5oCmluZGV4IDE0M2JhMDNhY2ZmOWM2YTZmYzU3OTExNTc4Y2Mz
YjgxOWMyM2JkZGQuLmRlODlmYmE1YmQ0MTU2MWU4ZTc5ZmIwM2Y5NDUzYjM0ZjAyYmJiNDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFj
a2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVy
QmFja2VuZC5oCkBAIC0xNDMsNiArMTQzLDggQEAgcHJvdGVjdGVkOgogICAgIGNvbnN0IERlc3Rp
bmF0aW9uQ29sb3JTcGFjZSYgY29sb3JTcGFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVy
cy5jb2xvclNwYWNlOyB9CiAgICAgUGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQoKSBjb25zdCB7IHJl
dHVybiBtX3BhcmFtZXRlcnMucGl4ZWxGb3JtYXQ7IH0KIAorICAgIEZsb2F0U2l6ZSBpbWFnZVNp
emUoKSBjb25zdCB7IHJldHVybiBtX3BhcmFtZXRlcnMubG9naWNhbFNpemUgKiBtX3BhcmFtZXRl
cnMucmVzb2x1dGlvblNjYWxlOyB9OworCiAgICAgSW50UmVjdCBsb2dpY2FsUmVjdCgpIGNvbnN0
IHsgcmV0dXJuIEludFJlY3QoSW50UG9pbnQ6Onplcm8oKSwgbG9naWNhbFNpemUoKSk7IH07CiAg
ICAgSW50UmVjdCBiYWNrZW5kUmVjdCgpIGNvbnN0IHsgcmV0dXJuIEludFJlY3QoSW50UG9pbnQ6
Onplcm8oKSwgYmFja2VuZFNpemUoKSk7IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAppbmRleCA2MmY3
NmY1MWI0YzUzNDg2MWNiZWRlZjBjZmExMGZjZDdmNmEyYWE3Li45ZTI2OTdhMjA3MGJmOTJjNWM4
NDM1ZDQ3YzRjYjczNDUyZDZiYzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCkBAIC0yOTcsNyArMjk3
LDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHRDRzo6ZHJhd05hdGl2ZUltYWdlKE5hdGl2ZUltYWdl
JiBuYXRpdmVJbWFnZSwgY29uc3QgRmxvYXRTaXoKICAgICAgICAgICAgIC8vIGludGVycG9sYXRp
b24gc21vb3RoZXMgc2hhcnAgZWRnZXMsIGNhdXNpbmcgcGl4ZWxzIGZyb20gb3V0c2lkZSB0aGUg
c291cmNlIHJlY3QgdG8gYmxlZWQKICAgICAgICAgICAgIC8vIGludG8gdGhlIGRlc3RpbmF0aW9u
IHJlY3QuIFNlZSA8cmRhcjovL3Byb2JsZW0vNjExMjkwOT4uCiAgICAgICAgICAgICBzdWJJbWFn
ZSA9IGdldFN1YmltYWdlKHN1YkltYWdlLmdldCgpLCBpbWFnZVNpemUsIHN1YmltYWdlUmVjdCwg
b3B0aW9ucyk7Ci0gICAgICAgICAgICBhZGp1c3RlZERlc3RSZWN0ID0gZW5jbG9zaW5nSW50UmVj
dChhZGp1c3RlZERlc3RSZWN0KTsKKworICAgICAgICAgICAgYXV0byBzdWJQaXhlbFBhZGRpbmcg
PSBub3JtYWxpemVkU3JjUmVjdC5sb2NhdGlvbigpIC0gc3ViaW1hZ2VSZWN0LmxvY2F0aW9uKCk7
CisgICAgICAgICAgICBhZGp1c3RlZERlc3RSZWN0ID0geyBhZGp1c3RlZERlc3RSZWN0LmxvY2F0
aW9uKCkgLSBzdWJQaXhlbFBhZGRpbmcgKiBzY2FsZSwgc3ViaW1hZ2VSZWN0LnNpemUoKSAqIHNj
YWxlIH07CiAKICAgICAgICAgICAgIC8vIElmIHRoZSBpbWFnZSBpcyBvbmx5IHBhcnRpYWxseSBs
b2FkZWQsIHRoZW4gc2hyaW5rIHRoZSBkZXN0aW5hdGlvbiByZWN0IHRoYXQgd2UncmUgZHJhd2lu
ZwogICAgICAgICAgICAgLy8gaW50byBhY2NvcmRpbmdseS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCYWNrZW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCYWNrZW5kLmNw
cAppbmRleCBlNGQ5YjdjMmZmZTk2MDJlZWE2ZWI3Mjg2MGNkYzdmNTM0YjgxMjE1Li4xY2Y0YmM0
ZWFiOTViZTA3NzVmYzIwOGU5OGFlYTMyMDFlMjllZTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQmFja2VuZC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JhY2tlbmQu
Y3BwCkBAIC0xMzgsNyArMTM4LDcgQEAgdm9pZCBJbWFnZUJ1ZmZlckNHQmFja2VuZDo6ZHJhdyhH
cmFwaGljc0NvbnRleHQmIGRlc3RDb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGQKICAgICBzcmNS
ZWN0U2NhbGVkLnNjYWxlKHJlc29sdXRpb25TY2FsZSgpKTsKIAogICAgIGlmIChhdXRvIGltYWdl
ID0gY29weU5hdGl2ZUltYWdlKCZkZXN0Q29udGV4dCA9PSAmY29udGV4dCgpID8gQ29weUJhY2tp
bmdTdG9yZSA6IERvbnRDb3B5QmFja2luZ1N0b3JlKSkKLSAgICAgICAgZGVzdENvbnRleHQuZHJh
d05hdGl2ZUltYWdlKCppbWFnZSwgYmFja2VuZFNpemUoKSwgZGVzdFJlY3QsIHNyY1JlY3RTY2Fs
ZWQsIG9wdGlvbnMpOworICAgICAgICBkZXN0Q29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoKmltYWdl
LCBpbWFnZVNpemUoKSwgZGVzdFJlY3QsIHNyY1JlY3RTY2FsZWQsIG9wdGlvbnMpOwogfQogCiB2
b2lkIEltYWdlQnVmZmVyQ0dCYWNrZW5kOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmIGRl
c3RDb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxv
YXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWlu
dGluZ09wdGlvbnMmIG9wdGlvbnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KaW5kZXgg
ZDBkYWRjNzIyNmIxYTI0ZWU2Mzc5ZDIxNThhOTc4Mzc3ZDI5MjQ0MC4uYmVjMzkwOTRmYzk1NmY4
MjlhZDFiODMwN2FiZjAzYzQ2OGM5NWYzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5t
bQpAQCAtMjk5LDcgKzI5OSwxMiBAQCBib29sIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpkaXNw
bGF5KCkKIAogICAgIGlmICghbV9kaXJ0eVJlZ2lvbi5jb250YWlucyhsYXllckJvdW5kcykpIHsK
ICAgICAgICAgQVNTRVJUKG1fYmFja0J1ZmZlci5pbWFnZUJ1ZmZlcik7Ci0gICAgICAgIGNvbnRl
eHQuZHJhd0ltYWdlQnVmZmVyKCptX2JhY2tCdWZmZXIuaW1hZ2VCdWZmZXIsIHsgezAsIDB9LCBt
X3NpemUgfSwgeyB7MCwgMH0sIG1fc2l6ZSB9LCB7IFdlYkNvcmU6OkNvbXBvc2l0ZU9wZXJhdG9y
OjpDb3B5IH0pOworICAgICAgICBhdXRvJiBpbWFnZUJ1ZmZlciA9ICptX2JhY2tCdWZmZXIuaW1h
Z2VCdWZmZXI7CisgICAgICAgIC8vIHNyY1JlY3QgaGFzIHRvIG1hdGNoIEltYWdlQnVmZmVyOjpp
bWFnZVNpemUoKSBpbiBsb2dpY2FsIGNvb3JkaW5hdGVzIHdoaWNoIG11c3QgYmUgZW5jbG9zZWQg
aW4KKyAgICAgICAgLy8gSW1hZ2VCdWZmZXI6OmJhY2tlbmRTaXplKCkuIGRlc3RSZWN0IGhhcyB0
byBtYXRjaCBJbWFnZUJ1ZmZlcjo6YmFja2VuZFNpemUoKSBpbiBsb2dpY2FsIGNvb3JkaW5hdGVz
LgorICAgICAgICBhdXRvIHNyY1JlY3QgPSBXZWJDb3JlOjpGbG9hdFJlY3QgeyB7MCwgMH0sIG1f
c2l6ZSB9OworICAgICAgICBhdXRvIGRlc3RSZWN0ID0gV2ViQ29yZTo6RmxvYXRSZWN0IHsgeyAw
LCAwIH0sIFdlYkNvcmU6OkZsb2F0U2l6ZShpbWFnZUJ1ZmZlci5iYWNrZW5kU2l6ZSgpKSAvIGlt
YWdlQnVmZmVyLnJlc29sdXRpb25TY2FsZSgpIH07CisgICAgICAgIGNvbnRleHQuZHJhd0ltYWdl
QnVmZmVyKGltYWdlQnVmZmVyLCBkZXN0UmVjdCwgc3JjUmVjdCwgeyBXZWJDb3JlOjpDb21wb3Np
dGVPcGVyYXRvcjo6Q29weSB9KTsKICAgICB9CiAKICAgICBpZiAobV9wYWludGluZ1JlY3RzLnNp
emUoKSA9PSAxKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433074</attachid>
            <date>2021-07-07 14:14:41 -0700</date>
            <delta_ts>2021-07-13 00:37:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227614-20210707141440.patch</filename>
            <type>text/plain</type>
            <size>11085</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjkyOTAzM2Q1NzcyZGMy
M2IyZTM5MmU3NDdkYjAwNWQyYWE0OGI0OS4uZGZmNjE1ZTYyODQyMjcwNjFiNTAyMzk4YjMwMDUw
OTQwODI3NTdhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIxLTA3LTA3ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtDR10gUkVHUkVTU0lP
TihyMjc4ODYzKTogVGhlIGRlc3RpbmF0aW9uIHJlY3RhbmdsZSBpcyB0cnVuY2F0ZWQgd2hlbiB0
aGUgc3ViLWltYWdlIGlzIHVzZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNzYxNAorICAgICAgICA8cmRhcjovLzc5ODQwNjQzPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElmIHRoZSByZXN1bHQgb2Yg
ImxvZ2ljYWxTaXplIHggcmVzb2x1dGlvblNjYWxlIiBpbmNsdWRlcyBzdWItcGl4ZWxzLAorICAg
ICAgICBJbWFnZUJ1ZmZlckJhY2tlbmQ6OmNhbGN1bGF0ZUJhY2tlbmRTaXplKCkgd2lsbCByZXR1
cm4gdGhlIGVuY2xvc2luZyAKKyAgICAgICAgSW50U2l6ZS4gVGhpcyBtYXkgbGVhZCB0byBlcnJv
cnMgaWYgd2UgZHJhdyB0aGUgd2hvbGUgSW1hZ2VCdWZmZXIgYW5kCisgICAgICAgIGRvIG5vdCBw
YXNzIHRoZSBjb3JyZWN0IHNvdXJjZSBhbmQgZGVzdGluYXRpb24gcmVjdGFuZ2xlcy4gVGhlIHBy
b2JsZW0KKyAgICAgICAgaXMgdGhlICJiYWNrZW5kU2l6ZSgpIiBpcyBsYXJnZXIgdGhhbiB0aGUg
ImxvZ2ljYWxTaXplKCkiIGluIHRoaXMgY2FzZS4KKworICAgICAgICBCZWNhdXNlIHRoZSBoZWln
aHQgb2YgdGhlIGRlc3RpbmF0aW9uIHJlY3RhbmdsZSBpcyB1c2VkIHRvIGZsaXAgdGhlIENHCisg
ICAgICAgIGNvb3JkaW5hdGVzIHN5c3RlbSwgcGFzc2luZyB0aGUgbG9naWNhbFNpemUgYXMgdGhl
IGRlc3RpbmF0aW9uIHJlY3RhbmdsZQorICAgICAgICB3aWxsIG1ha2UgdXMgbG9zZSB0aGUgc3Vi
LXBpeGVsLiAgV2hlbiBkcmF3aW5nIHRoZSB3aG9sZSBJbWFnZUJ1ZmZlciwgCisgICAgICAgIGNh
bGxlcnMgaGF2ZSB0byBwYXNzIHNyY1JlY3QgZXF1YWwgdG8gbG9naWNhbFNpemUoKSBvZiB0aGUg
c291cmNlIGJ1ZmZlcgorICAgICAgICBhbmQgZGVzdFJlY3QgZXF1YWwgdG8gdGhlIGJhY2tlbmRT
aXplKCkgb2YgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlci4KKworICAgICAgICBUaGlzIHBhdGNoIGdl
dHMgdGhlIGNhbGN1bGF0aW9uIG9mIHRoZSBkZXN0UmVjdCBpbiB0aGUgY2FzZSBvZiB0aGUgc3Vi
LQorICAgICAgICBpbWFnZSBhcyBpdCB3YXMgYmVmb3JlIHIyNzg4NjMuCisKKyAgICAgICAgSXQg
YWxzbyBhZGRzIEltYWdlQnVmZmVyQmFja2VuZDo6aW1hZ2VTaXplKCkgd2hpY2ggaXMgdGhlIGxv
Z2ljYWxTaXplKCkKKyAgICAgICAgb2YgdGhlIEltYWdlQnVmZmVyIGJ1dCBpbiBiYWNrZW5kIGNv
b3JkaW5hdGVzIGFuZCBpdCBtdXN0IGJlIGVuY2xvc2VkIGluCisgICAgICAgIGJhY2tlbmRTaXpl
KCkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyQmFja2VuZDo6aW1hZ2VTaXplIGNvbnN0KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRDRzo6ZHJhd05hdGl2ZUltYWdlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQmFja2VuZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckNHQmFja2VuZDo6ZHJhdyk6CisKIDIwMjEtMDct
MDcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBVc2UgbW9yZSBTcGFuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE5NmE4YmE0OTdkZmIwYWYwZjQxZmYyNDExYWZk
NmM1OTc3MDBjMjcuLjllMTY3ODc5OTNkY2ZjYmYzYjY3MzZmYzY1OWRiMDZmNmJkY2U3MWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDctMDcgIFNhaWQgQWJvdS1IYWxsYXdhICA8
c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NHXSBSRUdSRVNTSU9OKHIyNzg4NjMpOiBUaGUg
ZGVzdGluYXRpb24gcmVjdGFuZ2xlIGlzIHRydW5jYXRlZCB3aGVuIHRoZSBzdWItaW1hZ2UgaXMg
dXNlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3
NjE0CisgICAgICAgIDxyZGFyOi8vNzk4NDA2NDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQmVjYXVzZSB0aGUgd2hvbGUgSW1hZ2VCdWZmZXIgaXMg
ZHJhd24sIHNyY1JlY3QgbXVzdCBiZSBlcXVhbCB0byBpbWFnZVNpemUoKQorICAgICAgICBvZiB0
aGUgc291cmNlIEltYWdlQnVmZmVyLiBBbmQgZGVzdFJlY3QgbXVzdCBiZSBlcXVhbCB0byBiYWNr
ZW5kU2l6ZSgpIG9mCisgICAgICAgIHRoZSBkZXN0aW5hdGlvbiBJbWFnZUJ1ZmZlcgorCisgICAg
ICAgICogU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmRpc3BsYXkpOgorCiAy
MDIxLTA3LTA3ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgVXNlIG1vcmUgU3BhbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuaAppbmRleCAxNDNiYTAzYWNmZjljNmE2ZmM1
NzkxMTU3OGNjM2I4MTljMjNiZGRkLi5kZTg5ZmJhNWJkNDE1NjFlOGU3OWZiMDNmOTQ1M2IzNGYw
MmJiYjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZUJ1ZmZlckJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZUJ1ZmZlckJhY2tlbmQuaApAQCAtMTQzLDYgKzE0Myw4IEBAIHByb3RlY3RlZDoKICAgICBj
b25zdCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UmIGNvbG9yU3BhY2UoKSBjb25zdCB7IHJldHVybiBt
X3BhcmFtZXRlcnMuY29sb3JTcGFjZTsgfQogICAgIFBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0KCkg
Y29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLnBpeGVsRm9ybWF0OyB9CiAKKyAgICBGbG9hdFNp
emUgaW1hZ2VTaXplKCkgY29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLmxvZ2ljYWxTaXplICog
bV9wYXJhbWV0ZXJzLnJlc29sdXRpb25TY2FsZTsgfTsKKwogICAgIEludFJlY3QgbG9naWNhbFJl
Y3QoKSBjb25zdCB7IHJldHVybiBJbnRSZWN0KEludFBvaW50Ojp6ZXJvKCksIGxvZ2ljYWxTaXpl
KCkpOyB9OwogICAgIEludFJlY3QgYmFja2VuZFJlY3QoKSBjb25zdCB7IHJldHVybiBJbnRSZWN0
KEludFBvaW50Ojp6ZXJvKCksIGJhY2tlbmRTaXplKCkpOyB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAK
aW5kZXggNjJmNzZmNTFiNGM1MzQ4NjFjYmVkZWYwY2ZhMTBmY2Q3ZjZhMmFhNy4uOWUyNjk3YTIw
NzBiZjkyYzVjODQzNWQ0N2M0Y2I3MzQ1MmQ2YmMzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcApAQCAt
Mjk3LDcgKzI5Nyw5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0Q0c6OmRyYXdOYXRpdmVJbWFnZShO
YXRpdmVJbWFnZSYgbmF0aXZlSW1hZ2UsIGNvbnN0IEZsb2F0U2l6CiAgICAgICAgICAgICAvLyBp
bnRlcnBvbGF0aW9uIHNtb290aGVzIHNoYXJwIGVkZ2VzLCBjYXVzaW5nIHBpeGVscyBmcm9tIG91
dHNpZGUgdGhlIHNvdXJjZSByZWN0IHRvIGJsZWVkCiAgICAgICAgICAgICAvLyBpbnRvIHRoZSBk
ZXN0aW5hdGlvbiByZWN0LiBTZWUgPHJkYXI6Ly9wcm9ibGVtLzYxMTI5MDk+LgogICAgICAgICAg
ICAgc3ViSW1hZ2UgPSBnZXRTdWJpbWFnZShzdWJJbWFnZS5nZXQoKSwgaW1hZ2VTaXplLCBzdWJp
bWFnZVJlY3QsIG9wdGlvbnMpOwotICAgICAgICAgICAgYWRqdXN0ZWREZXN0UmVjdCA9IGVuY2xv
c2luZ0ludFJlY3QoYWRqdXN0ZWREZXN0UmVjdCk7CisKKyAgICAgICAgICAgIGF1dG8gc3ViUGl4
ZWxQYWRkaW5nID0gbm9ybWFsaXplZFNyY1JlY3QubG9jYXRpb24oKSAtIHN1YmltYWdlUmVjdC5s
b2NhdGlvbigpOworICAgICAgICAgICAgYWRqdXN0ZWREZXN0UmVjdCA9IHsgYWRqdXN0ZWREZXN0
UmVjdC5sb2NhdGlvbigpIC0gc3ViUGl4ZWxQYWRkaW5nICogc2NhbGUsIHN1YmltYWdlUmVjdC5z
aXplKCkgKiBzY2FsZSB9OwogCiAgICAgICAgICAgICAvLyBJZiB0aGUgaW1hZ2UgaXMgb25seSBw
YXJ0aWFsbHkgbG9hZGVkLCB0aGVuIHNocmluayB0aGUgZGVzdGluYXRpb24gcmVjdCB0aGF0IHdl
J3JlIGRyYXdpbmcKICAgICAgICAgICAgIC8vIGludG8gYWNjb3JkaW5nbHkuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQmFja2Vu
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNH
QmFja2VuZC5jcHAKaW5kZXggZTRkOWI3YzJmZmU5NjAyZWVhNmViNzI4NjBjZGM3ZjUzNGI4MTIx
NS4uMWNmNGJjNGVhYjk1YmUwNzc1ZmMyMDhlOThhZWEzMjAxZTI5ZWU3YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JhY2tlbmQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVy
Q0dCYWNrZW5kLmNwcApAQCAtMTM4LDcgKzEzOCw3IEBAIHZvaWQgSW1hZ2VCdWZmZXJDR0JhY2tl
bmQ6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBkZXN0Q29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBk
CiAgICAgc3JjUmVjdFNjYWxlZC5zY2FsZShyZXNvbHV0aW9uU2NhbGUoKSk7CiAKICAgICBpZiAo
YXV0byBpbWFnZSA9IGNvcHlOYXRpdmVJbWFnZSgmZGVzdENvbnRleHQgPT0gJmNvbnRleHQoKSA/
IENvcHlCYWNraW5nU3RvcmUgOiBEb250Q29weUJhY2tpbmdTdG9yZSkpCi0gICAgICAgIGRlc3RD
b250ZXh0LmRyYXdOYXRpdmVJbWFnZSgqaW1hZ2UsIGJhY2tlbmRTaXplKCksIGRlc3RSZWN0LCBz
cmNSZWN0U2NhbGVkLCBvcHRpb25zKTsKKyAgICAgICAgZGVzdENvbnRleHQuZHJhd05hdGl2ZUlt
YWdlKCppbWFnZSwgaW1hZ2VTaXplKCksIGRlc3RSZWN0LCBzcmNSZWN0U2NhbGVkLCBvcHRpb25z
KTsKIH0KIAogdm9pZCBJbWFnZUJ1ZmZlckNHQmFja2VuZDo6ZHJhd1BhdHRlcm4oR3JhcGhpY3ND
b250ZXh0JiBkZXN0Q29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0s
IGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3Jl
Lm1tCmluZGV4IGQwZGFkYzcyMjZiMWEyNGVlNjM3OWQyMTU4YTk3ODM3N2QyOTI0NDAuLjI0MjE1
MzY3MGY5Y2ZlNDQzNzM1MzZkOTcwMGM5MjI3MWY0MjBkZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmUubW0KQEAgLTI5OSw3ICsyOTksMTQgQEAgYm9vbCBSZW1vdGVMYXllckJhY2tpbmdT
dG9yZTo6ZGlzcGxheSgpCiAKICAgICBpZiAoIW1fZGlydHlSZWdpb24uY29udGFpbnMobGF5ZXJC
b3VuZHMpKSB7CiAgICAgICAgIEFTU0VSVChtX2JhY2tCdWZmZXIuaW1hZ2VCdWZmZXIpOwotICAg
ICAgICBjb250ZXh0LmRyYXdJbWFnZUJ1ZmZlcigqbV9iYWNrQnVmZmVyLmltYWdlQnVmZmVyLCB7
IHswLCAwfSwgbV9zaXplIH0sIHsgezAsIDB9LCBtX3NpemUgfSwgeyBXZWJDb3JlOjpDb21wb3Np
dGVPcGVyYXRvcjo6Q29weSB9KTsKKyAgICAgICAgYXV0byYgYmFja0J1ZmZlciA9ICptX2JhY2tC
dWZmZXIuaW1hZ2VCdWZmZXI7CisgICAgICAgIGF1dG8mIGZyb250QnVmZmVyID0gKm1fZnJvbnRC
dWZmZXIuaW1hZ2VCdWZmZXI7CisKKyAgICAgICAgLy8gc3JjUmVjdCBpcyB0aGUgaW1hZ2VTaXpl
KCkgb2YgbV9iYWNrQnVmZmVyIGluIGxvZ2ljYWwgY29vcmRpbmF0ZXMuCisgICAgICAgIC8vIGRl
c3RSZWN0IGlzIHRoZSBiYWNrZW5kU2l6ZSgpIG1fZnJvbnRCdWZmZXIgaW4gbG9naWNhbCBjb29y
ZGluYXRlcy4KKyAgICAgICAgYXV0byBzcmNSZWN0ID0gV2ViQ29yZTo6RmxvYXRSZWN0IHsgezAs
IDB9LCBtX3NpemUgfTsKKyAgICAgICAgYXV0byBkZXN0UmVjdCA9IFdlYkNvcmU6OkZsb2F0UmVj
dCB7IHsgMCwgMCB9LCBXZWJDb3JlOjpGbG9hdFNpemUoZnJvbnRCdWZmZXIuYmFja2VuZFNpemUo
KSkgLyBmcm9udEJ1ZmZlci5yZXNvbHV0aW9uU2NhbGUoKSB9OworICAgICAgICBjb250ZXh0LmRy
YXdJbWFnZUJ1ZmZlcihiYWNrQnVmZmVyLCBkZXN0UmVjdCwgc3JjUmVjdCwgeyBXZWJDb3JlOjpD
b21wb3NpdGVPcGVyYXRvcjo6Q29weSB9KTsKICAgICB9CiAKICAgICBpZiAobV9wYWludGluZ1Jl
Y3RzLnNpemUoKSA9PSAxKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IGZlMDQyYjU1MTQ4OTcyNTIxMzY0NjczNzlkMzJlYzk4YTdjNTU0MWQuLjJj
NmZmY2UyYWM2MGRkN2Q0ZjZiOGM1NmNjZjk4MjQ3MDEzN2ZhMGYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0w
Ny0wNyAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbQ0dd
IFJFR1JFU1NJT04ocjI3ODg2Myk6IFRoZSBkZXN0aW5hdGlvbiByZWN0YW5nbGUgaXMgdHJ1bmNh
dGVkIHdoZW4gdGhlIHN1Yi1pbWFnZSBpcyB1c2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc2MTQKKyAgICAgICAgPHJkYXI6Ly83OTg0MDY0Mz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW4g
QVBJIHRlc3QgdG8gdGVzdCBkcmF3aW5nIGFuIEltYWdlQnVmZmVyIGludG8gYW5vdGhlciBhbmQg
Ym90aAorICAgICAgICBoYXZlIGltYWdlU2l6ZSgpIHdpdGggc3ViLXBpeGVscy4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9JbWFnZUJ1ZmZlclRlc3RzLmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIxLTA3LTA2ICBIYXJzaGlsIFJhdG51
ICA8aHJhdG51QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgbXlzZWxmIChIYXJzaGlsIFJhdG51
KSB0byBjb250cmlidXRvcnMuanNvbgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0ltYWdlQnVmZmVyVGVzdHMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0ltYWdlQnVmZmVyVGVzdHMuY3BwCmluZGV4IDA0NjQwYWE2YTQ5OTE5NzE0
ZTdlODNjNmFiNDZkZDQ0ZGRhZDc5ZjUuLjFjNjQ1NjMyYjQ4ZmNmNjkyMjQxYzZjZGVhZWE4Yzc2
ZjEwNWJlODMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9J
bWFnZUJ1ZmZlclRlc3RzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvSW1hZ2VCdWZmZXJUZXN0cy5jcHAKQEAgLTQ5LDQgKzQ5LDU4IEBAIFRFU1QoSW1hZ2VCdWZm
ZXJUZXN0cywgSW1hZ2VCdWZmZXJTdWJUeXBlQ3JlYXRlQ3JlYXRlc1N1YnR5cGVzKQogICAgIEVY
UEVDVF9ORShudWxscHRyLCBkaXNwbGF5TGlzdFVuYWNjZWxlcmF0ZWQpOwogfQogCitURVNUKElt
YWdlQnVmZmVyVGVzdHMsIEltYWdlQnVmZmVyU3ViUGl4ZWxEcmF3aW5nKQoreworICAgIGF1dG8g
Y29sb3JTcGFjZSA9IERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQigpOworICAgIGF1dG8gcGl4
ZWxGb3JtYXQgPSBQaXhlbEZvcm1hdDo6QkdSQTg7CisgICAgRmxvYXRTaXplIGxvZ2ljYWxTaXpl
IHsgMTAwLCAxMDAgfTsKKyAgICBmbG9hdCBzY2FsZSA9IDEuMDA1OworICAgIGF1dG8gZnJvbnRJ
bWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUobG9naWNhbFNpemUsIFJlbmRlcmluZ01v
ZGU6OkFjY2VsZXJhdGVkLCBzY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIG51bGxwdHIp
OworICAgIGF1dG8gYmFja0ltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShsb2dpY2Fs
U2l6ZSwgUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQsIHNjYWxlLCBjb2xvclNwYWNlLCBwaXhl
bEZvcm1hdCwgbnVsbHB0cik7CisgICAgCisgICAgYXV0byBzdHJva2VSZWN0ID0gRmxvYXRSZWN0
IHsgeyB9LCBsb2dpY2FsU2l6ZSB9OworICAgIGF1dG8gZmlsbFJlY3QgPSBzdHJva2VSZWN0Owor
ICAgIGZpbGxSZWN0LmluZmxhdGUoLTEpOworICAgIAorICAgIGF1dG8gYmFja2VuZFNpemUgPSBm
cm9udEltYWdlQnVmZmVyLT5iYWNrZW5kU2l6ZSgpIC8gZnJvbnRJbWFnZUJ1ZmZlci0+cmVzb2x1
dGlvblNjYWxlKCk7CisgICAgYXV0byBiYWNrZW5kUmVjdCA9IEZsb2F0UmVjdCB7IHsgfSwgYmFj
a2VuZFNpemUgfTsKKworICAgIGF1dG8mIGZyb250Q29udGV4dCA9IGZyb250SW1hZ2VCdWZmZXIt
PmNvbnRleHQoKTsKKyAgICBhdXRvJiBiYWNrQ29udGV4dCA9IGJhY2tJbWFnZUJ1ZmZlci0+Y29u
dGV4dCgpOworCisgICAgZnJvbnRDb250ZXh0LnNldFNob3VsZEFudGlhbGlhcyhmYWxzZSk7Cisg
ICAgYmFja0NvbnRleHQuc2V0U2hvdWxkQW50aWFsaWFzKGZhbHNlKTsKKworICAgIGZyb250Q29u
dGV4dC5zZXRTdHJva2VDb2xvcihDb2xvcjo6cmVkKTsKKyAgICBmcm9udENvbnRleHQuc3Ryb2tl
UmVjdChzdHJva2VSZWN0LCAxKTsKKyAgICAKKyAgICBmcm9udENvbnRleHQuZmlsbFJlY3QoZmls
bFJlY3QsIENvbG9yOjpncmVlbik7CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwMDA7ICsr
aSkgeworICAgICAgICBiYWNrQ29udGV4dC5kcmF3SW1hZ2VCdWZmZXIoKmZyb250SW1hZ2VCdWZm
ZXIsIGJhY2tlbmRSZWN0LCBzdHJva2VSZWN0LCB7IFdlYkNvcmU6OkNvbXBvc2l0ZU9wZXJhdG9y
OjpDb3B5IH0pOworICAgICAgICBmcm9udENvbnRleHQuZHJhd0ltYWdlQnVmZmVyKCpiYWNrSW1h
Z2VCdWZmZXIsIGJhY2tlbmRSZWN0LCBzdHJva2VSZWN0LCB7IFdlYkNvcmU6OkNvbXBvc2l0ZU9w
ZXJhdG9yOjpDb3B5IH0pOworICAgIH0KKworICAgIGF1dG8gY2hlY2tHcmVlblBpeGVsID0gWyZd
KEltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlciwgaW50IHgsIGludCB5KSB7CisgICAgICAgIFBpeGVs
QnVmZmVyRm9ybWF0IGZvcm1hdCB7IEFscGhhUHJlbXVsdGlwbGljYXRpb246OlVucHJlbXVsdGlw
bGllZCwgUGl4ZWxGb3JtYXQ6OlJHQkE4LCBjb2xvclNwYWNlIH07CisgICAgICAgIGF1dG8gZnJv
bnRQaXhlbEJ1ZmZlciA9IGltYWdlQnVmZmVyLmdldFBpeGVsQnVmZmVyKGZvcm1hdCwgeyB4LCB5
LCAxLCAxIH0pOworICAgICAgICBhdXRvJiBkYXRhID0gZnJvbnRQaXhlbEJ1ZmZlci0+ZGF0YSgp
OworCisgICAgICAgIEVYUEVDVF9FUShkYXRhLml0ZW0oMCksIDB4MDApOworICAgICAgICBFWFBF
Q1RfRVEoZGF0YS5pdGVtKDEpLCAweGZmKTsKKyAgICAgICAgRVhQRUNUX0VRKGRhdGEuaXRlbSgy
KSwgMHgwMCk7CisgICAgICAgIEVYUEVDVF9FUShkYXRhLml0ZW0oMyksIDB4ZmYpOworICAgIH07
CisKKyAgICBjaGVja0dyZWVuUGl4ZWwoKmZyb250SW1hZ2VCdWZmZXIsIGZpbGxSZWN0LngoKSwg
ICAgZmlsbFJlY3QueSgpKTsKKyAgICBjaGVja0dyZWVuUGl4ZWwoKmZyb250SW1hZ2VCdWZmZXIs
IGZpbGxSZWN0Lm1heFgoKSwgZmlsbFJlY3QueSgpKTsKKyAgICBjaGVja0dyZWVuUGl4ZWwoKmZy
b250SW1hZ2VCdWZmZXIsIGZpbGxSZWN0LngoKSwgICAgZmlsbFJlY3QubWF4WSgpKTsKKyAgICBj
aGVja0dyZWVuUGl4ZWwoKmZyb250SW1hZ2VCdWZmZXIsIGZpbGxSZWN0Lm1heFgoKSwgZmlsbFJl
Y3QubWF4WSgpKTsKKworICAgIGNoZWNrR3JlZW5QaXhlbCgqYmFja0ltYWdlQnVmZmVyLCBmaWxs
UmVjdC54KCksICAgIGZpbGxSZWN0LnkoKSk7CisgICAgY2hlY2tHcmVlblBpeGVsKCpiYWNrSW1h
Z2VCdWZmZXIsIGZpbGxSZWN0Lm1heFgoKSwgZmlsbFJlY3QueSgpKTsKKyAgICBjaGVja0dyZWVu
UGl4ZWwoKmJhY2tJbWFnZUJ1ZmZlciwgZmlsbFJlY3QueCgpLCAgICBmaWxsUmVjdC5tYXhZKCkp
OworICAgIGNoZWNrR3JlZW5QaXhlbCgqYmFja0ltYWdlQnVmZmVyLCBmaWxsUmVjdC5tYXhYKCks
IGZpbGxSZWN0Lm1heFkoKSk7Cit9CisKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433394</attachid>
            <date>2021-07-13 00:37:45 -0700</date>
            <delta_ts>2021-07-13 12:38:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227614-20210713003744.patch</filename>
            <type>text/plain</type>
            <size>5903</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5ODU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmQ1ZGU3M2RkZDIzMzUx
MmQ3ZmU0NzIxZTMzNWU4YTgyYWE5MmVhZC4uMTY5MDMxMTA0YTQ1NTA2ZWQ1YTVmZjQ2NzE2ZjEx
YTE0NWZkODA4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTA3LTEzICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtDR10gUkVHUkVTU0lP
TihyMjc4ODYzKTogVGhlIGRlc3RpbmF0aW9uIHJlY3RhbmdsZSBpcyB0cnVuY2F0ZWQgd2hlbiB0
aGUgc3ViLWltYWdlIGlzIHVzZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNzYxNAorICAgICAgICA8cmRhcjovLzc5ODQwNjQzPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggZ2V0cyB0
aGUgY2FsY3VsYXRpb24gb2YgdGhlIGRlc3RSZWN0IGluIHRoZSBjYXNlIG9mIHRoZSBzdWItCisg
ICAgICAgIGltYWdlIGFzIGl0IHdhcyBiZWZvcmUgcjI3ODg2My4KKworICAgICAgICBUaGUgc2l6
ZSBvZiB0aGUgZGVzdFJlY3QgaGFzIHRvIGJlIGVxdWFsIHRvIHRoZSBiYWNrZW5kIHNpemUgb2Yg
dGhlCisgICAgICAgIEltYWdlQnVmZmVyIGluIGxvZ2ljYWwgY29vcmRpbmF0ZXMuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRDRzo6ZHJhd05hdGl2ZUltYWdlKToKKwogMjAyMS0w
Ny0xMiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBC
aWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0IGNhbid0IGRyYXcgdGV4dApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3Bw
CmluZGV4IDYyZjc2ZjUxYjRjNTM0ODYxY2JlZGVmMGNmYTEwZmNkN2Y2YTJhYTcuLjllMjY5N2Ey
MDcwYmY5MmM1Yzg0MzVkNDdjNGNiNzM0NTJkNmJjMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKQEAg
LTI5Nyw3ICsyOTcsOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dENHOjpkcmF3TmF0aXZlSW1hZ2Uo
TmF0aXZlSW1hZ2UmIG5hdGl2ZUltYWdlLCBjb25zdCBGbG9hdFNpegogICAgICAgICAgICAgLy8g
aW50ZXJwb2xhdGlvbiBzbW9vdGhlcyBzaGFycCBlZGdlcywgY2F1c2luZyBwaXhlbHMgZnJvbSBv
dXRzaWRlIHRoZSBzb3VyY2UgcmVjdCB0byBibGVlZAogICAgICAgICAgICAgLy8gaW50byB0aGUg
ZGVzdGluYXRpb24gcmVjdC4gU2VlIDxyZGFyOi8vcHJvYmxlbS82MTEyOTA5Pi4KICAgICAgICAg
ICAgIHN1YkltYWdlID0gZ2V0U3ViaW1hZ2Uoc3ViSW1hZ2UuZ2V0KCksIGltYWdlU2l6ZSwgc3Vi
aW1hZ2VSZWN0LCBvcHRpb25zKTsKLSAgICAgICAgICAgIGFkanVzdGVkRGVzdFJlY3QgPSBlbmNs
b3NpbmdJbnRSZWN0KGFkanVzdGVkRGVzdFJlY3QpOworCisgICAgICAgICAgICBhdXRvIHN1YlBp
eGVsUGFkZGluZyA9IG5vcm1hbGl6ZWRTcmNSZWN0LmxvY2F0aW9uKCkgLSBzdWJpbWFnZVJlY3Qu
bG9jYXRpb24oKTsKKyAgICAgICAgICAgIGFkanVzdGVkRGVzdFJlY3QgPSB7IGFkanVzdGVkRGVz
dFJlY3QubG9jYXRpb24oKSAtIHN1YlBpeGVsUGFkZGluZyAqIHNjYWxlLCBzdWJpbWFnZVJlY3Qu
c2l6ZSgpICogc2NhbGUgfTsKIAogICAgICAgICAgICAgLy8gSWYgdGhlIGltYWdlIGlzIG9ubHkg
cGFydGlhbGx5IGxvYWRlZCwgdGhlbiBzaHJpbmsgdGhlIGRlc3RpbmF0aW9uIHJlY3QgdGhhdCB3
ZSdyZSBkcmF3aW5nCiAgICAgICAgICAgICAvLyBpbnRvIGFjY29yZGluZ2x5LgpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGRkNDlkMzA2ZjVjNjE2
MDFiYjkxZjY5NmY5YWJhZTMxMWRmYTkwODAuLjZjMzk5ZTE1MjBkNTAyNGJmNWRhNWU2ZjZiMmUx
MGNjODlmOTVkY2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wNy0xMyAgU2FpZCBBYm91LUhhbGxhd2EgIDxz
YWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbQ0ddIFJFR1JFU1NJT04ocjI3ODg2Myk6IFRoZSBk
ZXN0aW5hdGlvbiByZWN0YW5nbGUgaXMgdHJ1bmNhdGVkIHdoZW4gdGhlIHN1Yi1pbWFnZSBpcyB1
c2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc2
MTQKKyAgICAgICAgPHJkYXI6Ly83OTg0MDY0Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW4gQVBJIHRlc3QgdG8gdGVzdCBkcmF3aW5nIGFu
IEltYWdlQnVmZmVyIGludG8gYW5vdGhlciBhbmQgYm90aAorICAgICAgICBoYXZlIHRoZSBsb2dp
Y2FsU2l6ZSBzY2FsZWQgc3VjaCB0aGF0IHRoZXkgaGF2ZSBwaXhlbHMuCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSW1hZ2VCdWZmZXJUZXN0cy5jcHA6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAyMS0wNy0xMiAgVGltIEhvcnRvbiAgPHRpbW90
aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0
IGNhbid0IGRyYXcgdGV4dApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL0ltYWdlQnVmZmVyVGVzdHMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL0ltYWdlQnVmZmVyVGVzdHMuY3BwCmluZGV4IDA0NjQwYWE2YTQ5OTE5NzE0ZTdlODNj
NmFiNDZkZDQ0ZGRhZDc5ZjUuLmI2MjNiZWVlY2MwMjNhOTdhYTAzYmY5YmUzMmU5ZDVjMWQyMDdj
OGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9JbWFnZUJ1
ZmZlclRlc3RzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSW1h
Z2VCdWZmZXJUZXN0cy5jcHAKQEAgLTQ5LDQgKzQ5LDU2IEBAIFRFU1QoSW1hZ2VCdWZmZXJUZXN0
cywgSW1hZ2VCdWZmZXJTdWJUeXBlQ3JlYXRlQ3JlYXRlc1N1YnR5cGVzKQogICAgIEVYUEVDVF9O
RShudWxscHRyLCBkaXNwbGF5TGlzdFVuYWNjZWxlcmF0ZWQpOwogfQogCitURVNUKEltYWdlQnVm
ZmVyVGVzdHMsIEltYWdlQnVmZmVyU3ViUGl4ZWxEcmF3aW5nKQoreworICAgIGF1dG8gY29sb3JT
cGFjZSA9IERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQigpOworICAgIGF1dG8gcGl4ZWxGb3Jt
YXQgPSBQaXhlbEZvcm1hdDo6QkdSQTg7CisgICAgRmxvYXRTaXplIGxvZ2ljYWxTaXplIHsgMzky
LCA0NCB9OworICAgIGZsb2F0IHNjYWxlID0gMS45MTMyNjUzNTsKKyAgICBhdXRvIGZyb250SW1h
Z2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGxvZ2ljYWxTaXplLCBSZW5kZXJpbmdNb2Rl
OjpBY2NlbGVyYXRlZCwgc2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCBudWxscHRyKTsK
KyAgICBhdXRvIGJhY2tJbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUobG9naWNhbFNp
emUsIFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkLCBzY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxG
b3JtYXQsIG51bGxwdHIpOworICAgIAorICAgIGF1dG8gc3Ryb2tlUmVjdCA9IEZsb2F0UmVjdCB7
IHsgfSwgbG9naWNhbFNpemUgfTsKKyAgICBzdHJva2VSZWN0LmluZmxhdGUoLTAuNSk7CisgICAg
YXV0byBmaWxsUmVjdCA9IHN0cm9rZVJlY3Q7CisgICAgZmlsbFJlY3QuaW5mbGF0ZSgtMSk7CisK
KyAgICBhdXRvJiBmcm9udENvbnRleHQgPSBmcm9udEltYWdlQnVmZmVyLT5jb250ZXh0KCk7Cisg
ICAgYXV0byYgYmFja0NvbnRleHQgPSBiYWNrSW1hZ2VCdWZmZXItPmNvbnRleHQoKTsKKworICAg
IGZyb250Q29udGV4dC5zZXRTaG91bGRBbnRpYWxpYXMoZmFsc2UpOworICAgIGJhY2tDb250ZXh0
LnNldFNob3VsZEFudGlhbGlhcyhmYWxzZSk7CisKKyAgICBmcm9udENvbnRleHQuc2V0U3Ryb2tl
Q29sb3IoQ29sb3I6OnJlZCk7CisgICAgZnJvbnRDb250ZXh0LnN0cm9rZVJlY3Qoc3Ryb2tlUmVj
dCwgMSk7CisgICAgCisgICAgZnJvbnRDb250ZXh0LmZpbGxSZWN0KGZpbGxSZWN0LCBDb2xvcjo6
Z3JlZW4pOworCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAxMDAwOyArK2kpIHsKKyAgICAgICAg
YmFja0NvbnRleHQuZHJhd0ltYWdlQnVmZmVyKCpmcm9udEltYWdlQnVmZmVyLCBXZWJDb3JlOjpG
bG9hdFBvaW50IHsgfSwgeyBXZWJDb3JlOjpDb21wb3NpdGVPcGVyYXRvcjo6Q29weSB9KTsKKyAg
ICAgICAgZnJvbnRDb250ZXh0LmRyYXdJbWFnZUJ1ZmZlcigqYmFja0ltYWdlQnVmZmVyLCBXZWJD
b3JlOjpGbG9hdFBvaW50IHsgfSwgeyBXZWJDb3JlOjpDb21wb3NpdGVPcGVyYXRvcjo6Q29weSB9
KTsKKyAgICB9CisKKyAgICBhdXRvIGNoZWNrR3JlZW5QaXhlbCA9IFsmXShJbWFnZUJ1ZmZlciYg
aW1hZ2VCdWZmZXIsIGludCB4LCBpbnQgeSkgeworICAgICAgICBQaXhlbEJ1ZmZlckZvcm1hdCBm
b3JtYXQgeyBBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpVbnByZW11bHRpcGxpZWQsIFBpeGVsRm9y
bWF0OjpSR0JBOCwgY29sb3JTcGFjZSB9OworICAgICAgICBhdXRvIGZyb250UGl4ZWxCdWZmZXIg
PSBpbWFnZUJ1ZmZlci5nZXRQaXhlbEJ1ZmZlcihmb3JtYXQsIHsgeCwgeSwgMSwgMSB9KTsKKyAg
ICAgICAgYXV0byYgZGF0YSA9IGZyb250UGl4ZWxCdWZmZXItPmRhdGEoKTsKKworICAgICAgICBF
WFBFQ1RfRVEoZGF0YS5pdGVtKDApLCAweDAwKTsKKyAgICAgICAgRVhQRUNUX0VRKGRhdGEuaXRl
bSgxKSwgMHhmZik7CisgICAgICAgIEVYUEVDVF9FUShkYXRhLml0ZW0oMiksIDB4MDApOworICAg
ICAgICBFWFBFQ1RfRVEoZGF0YS5pdGVtKDMpLCAweGZmKTsKKyAgICB9OworCisgICAgY2hlY2tH
cmVlblBpeGVsKCpmcm9udEltYWdlQnVmZmVyLCBmaWxsUmVjdC54KCkgICAgKyAxLCBmaWxsUmVj
dC55KCkgICAgKyAxKTsKKyAgICBjaGVja0dyZWVuUGl4ZWwoKmZyb250SW1hZ2VCdWZmZXIsIGZp
bGxSZWN0Lm1heFgoKSAtIDEsIGZpbGxSZWN0LnkoKSAgICArIDEpOworICAgIGNoZWNrR3JlZW5Q
aXhlbCgqZnJvbnRJbWFnZUJ1ZmZlciwgZmlsbFJlY3QueCgpICAgICsgMSwgZmlsbFJlY3QubWF4
WSgpIC0gMSk7CisgICAgY2hlY2tHcmVlblBpeGVsKCpmcm9udEltYWdlQnVmZmVyLCBmaWxsUmVj
dC5tYXhYKCkgLSAxLCBmaWxsUmVjdC5tYXhZKCkgLSAxKTsKKworICAgIGNoZWNrR3JlZW5QaXhl
bCgqYmFja0ltYWdlQnVmZmVyLCBmaWxsUmVjdC54KCkgICAgKyAxLCBmaWxsUmVjdC55KCkgICAg
KyAxKTsKKyAgICBjaGVja0dyZWVuUGl4ZWwoKmJhY2tJbWFnZUJ1ZmZlciwgZmlsbFJlY3QubWF4
WCgpIC0gMSwgZmlsbFJlY3QueSgpICAgICsgMSk7CisgICAgY2hlY2tHcmVlblBpeGVsKCpiYWNr
SW1hZ2VCdWZmZXIsIGZpbGxSZWN0LngoKSAgICArIDEsIGZpbGxSZWN0Lm1heFkoKSAtIDEpOwor
ICAgIGNoZWNrR3JlZW5QaXhlbCgqYmFja0ltYWdlQnVmZmVyLCBmaWxsUmVjdC5tYXhYKCkgLSAx
LCBmaWxsUmVjdC5tYXhZKCkgLSAxKTsKK30KKwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>