<?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>134701</bug_id>
          
          <creation_ts>2014-07-07 16:22:41 -0700</creation_ts>
          <short_desc>[UI-side compositing] Support reflections on custom layers like video</short_desc>
          <delta_ts>2014-07-07 16:46:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>dino</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1020955</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-07-07 16:22:41 -0700</bug_when>
    <thetext>[UI-side compositing] Support reflections on custom layers like video</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020958</commentid>
    <comment_count>1</comment_count>
      <attachid>234525</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-07-07 16:31:07 -0700</bug_when>
    <thetext>Created attachment 234525
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020961</commentid>
    <comment_count>2</comment_count>
      <attachid>234525</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-07-07 16:38:44 -0700</bug_when>
    <thetext>Comment on attachment 234525
Patch

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

&gt; Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm:183
&gt; +    if ([layer isKindOfClass:[NSClassFromString(@&quot;WebGLLayer&quot;) class]])

we talked about this

&gt; Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm:221
&gt; +        // We don&apos;t create PlatformCALayerMac&apos;s wrapped around WebGLLayers.

weird apostrophe

&gt; Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.h:50
&gt; +    PlatformCALayerRemoteCustom(WebCore::PlatformCALayer::LayerType, PlatformLayer*, WebCore::PlatformCALayerClient* owner, RemoteLayerTreeContext&amp;);

star&apos;s on the wrong side</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020967</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-07-07 16:46:09 -0700</bug_when>
    <thetext>https://trac.webkit.org/r170864</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234525</attachid>
            <date>2014-07-07 16:31:07 -0700</date>
            <delta_ts>2014-07-07 16:38:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-134701-20140707163046.patch</filename>
            <type>text/plain</type>
            <size>28180</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcwODQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDI2ZWU2NmQwMWE1MTIw
ZmViZmNiMmU1MzlhZjE2YjY4NTg1N2JlZi4uMzUzMDFjMTY3MjhhOWZjODVhMWRkNmFiODRkOTRk
MGE3YzczNWZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIzIEBACiAyMDE0LTA3LTA3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIFtVSS1zaWRlIGNv
bXBvc2l0aW5nXSBTdXBwb3J0IHJlZmxlY3Rpb25zIG9uIGN1c3RvbSBsYXllcnMgbGlrZSB2aWRl
bworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0NzAx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEg
TGF5ZXJUeXBlV2ViR0xMYXllciBsYXllciB0eXBlLCBhbmQgc3VwcG9ydCBjYXN0aW5nIHRvIFBs
YXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBF
eHBvcnQgUGxhdGZvcm1DQUxheWVyTWFjOjpsYXllclR5cGVGb3JQbGF0Zm9ybUxheWVyKENBTGF5
ZXIqKSwgYW5kIHNvcnQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1D
QUxheWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OmlzUGxhdGZvcm1D
QUxheWVyUmVtb3RlQ3VzdG9tKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMv
UGxhdGZvcm1DQUxheWVyTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFj
L1BsYXRmb3JtQ0FMYXllck1hYy5tbToKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllck1hYzo6bGF5
ZXJUeXBlRm9yUGxhdGZvcm1MYXllcik6CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJNYWM6OlBs
YXRmb3JtQ0FMYXllck1hYyk6CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJNYWM6OmNvbW1vbklu
aXQpOgorCisyMDE0LTA3LTA3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29t
PgorCiAgICAgICAgIFtVSS1zaWRlIGNvbXBvc2l0aW5nXSBDcmFzaCB3aGVuIHN0YXJ0aW5nIGEg
ZmlsdGVyIHRyYW5zaXRpb24gb24gYSByZWZsZWN0ZWQgbGF5ZXIKICAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDY5NAogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOTg5
OTQwNTNmNmQ1NDUxNGMxZDBhZmY0NzBkMmQxN2Y2Mjk2ZDdhMS4uODlmMWIxZTM0ZTVjNTE1ODdl
NTg4NTVkMDBiZjEzMmI5ZDkzM2UyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUxIEBACiAyMDE0
LTA3LTA3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAg
IFtVSS1zaWRlIGNvbXBvc2l0aW5nXSBTdXBwb3J0IHJlZmxlY3Rpb25zIG9uIGN1c3RvbSBsYXll
cnMgbGlrZSB2aWRlbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTM0NzAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAg
ICAgIAorICAgICAgICBGb3IgdmlkZW8gcmVmbGVjdGlvbnMsIHdlIGhhdmUgdG8gc3VwcG9ydCBj
bG9uaW5nIG9mIFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbQorICAgICAgICBpbiB0aGUgd2Vi
IHByb2Nlc3MuIERvIHNvIGJ5IGltcGxlbWVudGluZyBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0
b206OmNsb25lKCksCisgICAgICAgIHdoaWNoIGRvZXMgdGhlIHJpZ2h0IGd5cmF0aW9ucyB0byBn
ZXQgQVZQbGF5ZXJMYXllcnMgY2xvbmVkLCB0aGVuIG1ha2VzIGEKKyAgICAgICAgbmV3IFBsYXRm
b3JtQ0FMYXllclJlbW90ZUN1c3RvbSB0byB3cmFwIHRoZSBuZXcgbGF5ZXIuIFRoaXMgZW5kcyB1
cCBnZXR0aW5nCisgICAgICAgIGl0cyBvd24gY29udGV4dCBob3N0aW5nIElELCBhbGxvd2luZyB0
aGUgY2xvbmUgdG8gc2hvdyBpbiB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgCisgICAgICAgIEF0
dGVtcHQgdG8gZG8gdGhlIHNhbWUgZm9yIFdlYkdMLCBidXQgdHVybiBpdCBvZmYgYmVjYXVzZSBp
dCBicmVha3MuCisKKyAgICAgICAgKiBTaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3Jl
Lm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6ZHJhd0luQ29u
dGV4dCk6CisgICAgICAgICogU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5t
bToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyQ3Jl
YXRpb25Qcm9wZXJ0aWVzOjplbmNvZGUpOiBVbmNvbmRpdGlvbmFsbHkgZW5jb2RlL2RlY29kZQor
ICAgICAgICB0aGUgaG9zdGluZ0NvbnRleHRJRC4gSXQgd2lsbCBiZSAwIGZvciBtb3N0IGxheWVy
cy4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyQ3Jl
YXRpb25Qcm9wZXJ0aWVzOjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRy
ZWVUcmFuc2FjdGlvbjo6ZGVzY3JpcHRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUmVt
b3RlTGF5ZXJUcmVlSG9zdElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVl
SG9zdDo6Y3JlYXRlTGF5ZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJU
cmVlSG9zdC5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlSG9zdDo6Y3JlYXRl
TGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVy
UmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1DQUxheWVyUmVtb3RlOjpjcmVh
dGUpOiBDcmVhdGlvbiB3aXRoIGEgY3VzdG9tIFBsYXRmb3JtTGF5ZXIqIGFsd2F5cworICAgICAg
ICBjcmVhdGVzIGEgUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLgorICAgICAgICAoV2ViS2l0
OjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmNsb25lKTogRmFjdG9yIHNvbWUgY29kZS4KKyAgICAg
ICAgKFdlYktpdDo6UGxhdGZvcm1DQUxheWVyUmVtb3RlOjp1cGRhdGVDbG9uZWRMYXllclByb3Bl
cnRpZXMpOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnJlY3Vyc2l2
ZUJ1aWxkVHJhbnNhY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxh
dGZvcm1DQUxheWVyUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9Q
bGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5tbToKKyAgICAgICAgKFdlYktpdDo6
UGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b206OlBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbSk6
CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbTo6Y2xvbmUpOiBD
bG9uZSBieSBtYWtpbmcgYW4gaW5zdGFuY2Ugb2YgdGhlIAorICAgICAgICBjb3JyZWN0IHR5cGUg
b2YgcGxhdGZvcm0gbGF5ZXIgd2hlbiBwb3NzaWJsZSwgdGhlbiB3cmFwcGluZyBhIFBsYXRmb3Jt
Q0FMYXllclJlbW90ZUN1c3RvbQorICAgICAgICBhcm91bmQgaXQuCisgICAgICAgIChXZWJLaXQ6
OlBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbTo6Y29udGVudHMpOgorICAgICAgICAoV2ViS2l0
OjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b206OnNldENvbnRlbnRzKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW06CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUNvbnRleHQ6OmxheWVyV2FzQ3JlYXRlZCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUNvbnRleHQ6OmxheWVyV2lsbEJlRGVzdHJveWVk
KToKKworMjAxNC0wNy0wNyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
KwogICAgICAgICBbVUktc2lkZSBjb21wb3NpdGluZ10gQ3Jhc2ggd2hlbiBzdGFydGluZyBhIGZp
bHRlciB0cmFuc2l0aW9uIG9uIGEgcmVmbGVjdGVkIGxheWVyCiAgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ2OTQKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpp
bmRleCA5MWIwNDI0NTdmMDQ1NTE5MDkxYWE3YWUxNGE5MjdkNmJiMGMwOGM3Li5jNmE5ZmU3OTE4
ZTlmNTQ2OGVkM2EyNWUxOGJiMmU2NTc3ZDM1MmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAt
MTU4LDE0ICsxNTgsMTggQEAgX19aTjdXZWJDb3JlMTFIaXN0b3J5SXRlbTEyc2V0VVJMU3RyaW5n
RVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTFIaXN0b3J5SXRlbTEyc2V0Vmlld1N0YXRl
RVAxMW9iamNfb2JqZWN0CiBfX1pON1dlYkNvcmUxMUhpc3RvcnlJdGVtMTRhZGRSZWRpcmVjdFVS
TEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTExSGlzdG9yeUl0ZW0xNHNldFNjcm9sbFBv
aW50RVJLTlNfOEludFBvaW50RQorX19aTjdXZWJDb3JlMTFIaXN0b3J5SXRlbTE0c2V0U3RhdGVP
YmplY3RFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMjFTZXJpYWxpemVkU2NyaXB0VmFsdWVFRUUKIF9f
Wk43V2ViQ29yZTExSGlzdG9yeUl0ZW0xNXNldElzVGFyZ2V0SXRlbUViCiBfX1pON1dlYkNvcmUx
MUhpc3RvcnlJdGVtMTVzZXRSZWRpcmVjdFVSTHNFTlN0M19fMTEwdW5pcXVlX3B0cklOM1dURjZW
ZWN0b3JJTlMzXzZTdHJpbmdFTG0wRU5TM18xNUNyYXNoT25PdmVyZmxvd0VFRU5TMV8xNGRlZmF1
bHRfZGVsZXRlSVM3X0VFRUUKIF9fWk43V2ViQ29yZTExSGlzdG9yeUl0ZW0xNnNldERvY3VtZW50
U3RhdGVFUktOM1dURjZWZWN0b3JJTlMxXzZTdHJpbmdFTG0wRU5TMV8xNUNyYXNoT25PdmVyZmxv
d0VFRQogX19aTjdXZWJDb3JlMTFIaXN0b3J5SXRlbTE3c2V0QWx0ZXJuYXRlVGl0bGVFUktOM1dU
RjZTdHJpbmdFCitfX1pON1dlYkNvcmUxMUhpc3RvcnlJdGVtMThzZXRGb3JtQ29udGVudFR5cGVF
UktOM1dURjZTdHJpbmdFCitfX1pON1dlYkNvcmUxMUhpc3RvcnlJdGVtMThzZXRQYWdlU2NhbGVG
YWN0b3JFZgogX19aTjdXZWJDb3JlMTFIaXN0b3J5SXRlbTIwc2V0T3JpZ2luYWxVUkxTdHJpbmdF
UktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxMUhpc3RvcnlJdGVtMjBzZXRUcmFuc2llbnRQ
cm9wZXJ0eUVSS04zV1RGNlN0cmluZ0VQMTFvYmpjX29iamVjdAogX19aTjdXZWJDb3JlMTFIaXN0
b3J5SXRlbThmb3JtRGF0YUV2CiBfX1pON1dlYkNvcmUxMUhpc3RvcnlJdGVtOHNldFRpdGxlRVJL
TjNXVEY2U3RyaW5nRQorX19aTjdXZWJDb3JlMTFIaXN0b3J5SXRlbTlzZXRUYXJnZXRFUktOM1dU
RjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxMUhpc3RvcnlJdGVtQzFFUktOM1dURjZTdHJpbmdFUzRf
CiBfX1pON1dlYkNvcmUxMUhpc3RvcnlJdGVtQzFFUktOM1dURjZTdHJpbmdFUzRfUzRfCiBfX1pO
N1dlYkNvcmUxMUhpc3RvcnlJdGVtQzFFUktOU18zVVJMRVJLTjNXVEY2U3RyaW5nRVM3X1M3XwpA
QCAtNTk1LDEwICs1OTksNiBAQCBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTdzZXRTaXpl
RVJLTlNfOUZsb2F0U2l6ZUUKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBOGFkZENoaWxk
RVBOU18xM0dyYXBoaWNzTGF5ZXJFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQUMyRVJO
U18xOUdyYXBoaWNzTGF5ZXJDbGllbnRFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQUQy
RXYKLV9fWk43V2ViQ29yZTExSGlzdG9yeUl0ZW0xNHNldFN0YXRlT2JqZWN0RU4zV1RGMTBQYXNz
UmVmUHRySU5TXzIxU2VyaWFsaXplZFNjcmlwdFZhbHVlRUVFCi1fX1pON1dlYkNvcmUxMUhpc3Rv
cnlJdGVtMThzZXRGb3JtQ29udGVudFR5cGVFUktOM1dURjZTdHJpbmdFCi1fX1pON1dlYkNvcmUx
MUhpc3RvcnlJdGVtMThzZXRQYWdlU2NhbGVGYWN0b3JFZgotX19aTjdXZWJDb3JlMTFIaXN0b3J5
SXRlbTlzZXRUYXJnZXRFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNUhpdFRlc3RMb2Nh
dGlvbjEycmVjdEZvclBvaW50RVJLTlNfMTFMYXlvdXRQb2ludEVqampqCiBfX1pON1dlYkNvcmUx
NUhpdFRlc3RMb2NhdGlvbkMxRVJLTlNfMTBGbG9hdFBvaW50RQogX19aTjdXZWJDb3JlMTVIaXRU
ZXN0TG9jYXRpb25EMUV2CkBAIC03NzQsNiArNzc0LDcgQEAgX19aTjdXZWJDb3JlMTd1c2VyVmlz
aWJsZVN0cmluZ0VQNU5TVVJMCiBfX1pON1dlYkNvcmUxOERPTVdpbmRvd0V4dGVuc2lvbkMxRVBO
U181RnJhbWVFUk5TXzE1RE9NV3JhcHBlcldvcmxkRQogX19aTjdXZWJDb3JlMThQbGF0Zm9ybUNB
TGF5ZXJNYWMxOHNldEdlb21ldHJ5RmxpcHBlZEViCiBfX1pON1dlYkNvcmUxOFBsYXRmb3JtQ0FM
YXllck1hYzIyZmlsdGVyc0NhbkJlQ29tcG9zaXRlZEVSS05TXzE2RmlsdGVyT3BlcmF0aW9uc0UK
K19fWk43V2ViQ29yZTE4UGxhdGZvcm1DQUxheWVyTWFjMjVsYXllclR5cGVGb3JQbGF0Zm9ybUxh
eWVyRVA3Q0FMYXllcgogX19aTjdXZWJDb3JlMThQbGF0Zm9ybVBhc3RlYm9hcmQxMHVuaXF1ZU5h
bWVFdgogX19aTjdXZWJDb3JlMThQbGF0Zm9ybVBhc3RlYm9hcmQxM2J1ZmZlckZvclR5cGVFUktO
M1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxOFBsYXRmb3JtUGFzdGVib2FyZDEzc3RyaW5nRm9y
VHlwZUVSS04zV1RGNlN0cmluZ0UKQEAgLTEzMDAsOCArMTMwMSw4IEBAIF9fWk43V2ViQ29yZThE
b2N1bWVudDhpY29uVVJMc0VpCiBfX1pON1dlYkNvcmU4Rm9ybURhdGExMGFwcGVuZEJsb2JFUktO
U18zVVJMRQogX19aTjdXZWJDb3JlOEZvcm1EYXRhMTBhcHBlbmREYXRhRVBLdm0KIF9fWk43V2Vi
Q29yZThGb3JtRGF0YTE1YXBwZW5kRmlsZVJhbmdlRVJLTjNXVEY2U3RyaW5nRXh4ZGIKLV9fWk43
V2ViQ29yZThGb3JtRGF0YTZjcmVhdGVFdgogX19aTjdXZWJDb3JlOEZvcm1EYXRhNmNyZWF0ZUVQ
S3ZtCitfX1pON1dlYkNvcmU4Rm9ybURhdGE2Y3JlYXRlRXYKIF9fWk43V2ViQ29yZThGb3JtRGF0
YUQxRXYKIF9fWk43V2ViQ29yZThHcmFkaWVudDEyYWRkQ29sb3JTdG9wRWZSS05TXzVDb2xvckUK
IF9fWk43V2ViQ29yZThHcmFkaWVudEMxRVJLTlNfMTBGbG9hdFBvaW50RVMzXwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaApp
bmRleCA4ZTg3NGUxYTllMjQxZDQzNjY2ZTFiZDg2MmEyYjE2ZjBhOTM3MWM2Li5kYmZiZjgzYjE1
NWY3ZDU2YjczODYyYmE3ODg5ZTRiYjEyMjQxNTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaApAQCAtNzUsNiArNzUs
NyBAQCBwdWJsaWM6CiAgICAgICAgIExheWVyVHlwZVRpbGVkQmFja2luZ1RpbGVMYXllciwKICAg
ICAgICAgTGF5ZXJUeXBlUm9vdExheWVyLAogICAgICAgICBMYXllclR5cGVBVlBsYXllckxheWVy
LAorICAgICAgICBMYXllclR5cGVXZWJHTExheWVyLAogICAgICAgICBMYXllclR5cGVDdXN0b20K
ICAgICB9OwogICAgIGVudW0gRmlsdGVyVHlwZSB7IExpbmVhciwgTmVhcmVzdCwgVHJpbGluZWFy
IH07CkBAIC04Nyw2ICs4OCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBpc1BsYXRm
b3JtQ0FMYXllck1hYygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29s
IGlzUGxhdGZvcm1DQUxheWVyUmVtb3RlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgaXNQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20oKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogCiAgICAgLy8gVGhpcyBmdW5jdGlvbiBwYXNzZXMgdGhlIGxheWVyIGFzIGEg
dm9pZCogcmF0aGVyIHRoYW4gYSBQbGF0Zm9ybUxheWVyIGJlY2F1c2UgUGxhdGZvcm1MYXllcgog
ICAgIC8vIGlzIGRlZmluZWQgZGlmZmVyZW50bHkgZm9yIE9iaiBDIGFuZCBDKysuIFRoaXMgYWxs
b3dzIGNhbGxlcnMgZnJvbSBib3RoIGxhbmd1YWdlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMuaApp
bmRleCBmYTI5MzFjYzRmNTE4YzllNDJmYjM4MTY2MDYxYzZmOGQxZDczM2FmLi5iYWIxZjIzZGNm
ZjdlMTg5M2RlYzY2NDg4ZGVjMzc3MWY3ODhmZTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5o
CkBAIC00MCw2ICs0MCw4IEBAIHB1YmxpYzoKICAgICAvLyBpcyBkZWZpbmVkIGRpZmZlcmVudGx5
IGZvciBPYmogQyBhbmQgQysrLiBUaGlzIGFsbG93cyBjYWxsZXJzIGZyb20gYm90aCBsYW5ndWFn
ZXMuCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBjcmVhdGUodm9pZCog
cGxhdGZvcm1MYXllciwgUGxhdGZvcm1DQUxheWVyQ2xpZW50Kik7CiAKKyAgICBzdGF0aWMgTGF5
ZXJUeXBlIGxheWVyVHlwZUZvclBsYXRmb3JtTGF5ZXIoUGxhdGZvcm1MYXllciopOworCiAgICAg
flBsYXRmb3JtQ0FMYXllck1hYygpOwogCiAgICAgdmlydHVhbCB2b2lkIHNldE93bmVyKFBsYXRm
b3JtQ0FMYXllckNsaWVudCopIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW0KaW5k
ZXggMjEyMTNhYjdmNmZhY2I2ODVlOGZkYTE1ZTQ1NGRhZDMyNGNkZDg5My4uZWI0NDg4OWJlNGQy
ZmQxYjIxMjUzNmFjOTFlZmRiMWQ0ZjU2Njg0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1t
CkBAIC0xNzUsNiArMTc1LDE3IEBAIHN0YXRpYyBOU1N0cmluZyAqdG9DQUZpbHRlclR5cGUoUGxh
dGZvcm1DQUxheWVyOjpGaWx0ZXJUeXBlIHR5cGUpCiAgICAgfQogfQogCitQbGF0Zm9ybUNBTGF5
ZXI6OkxheWVyVHlwZSBQbGF0Zm9ybUNBTGF5ZXJNYWM6OmxheWVyVHlwZUZvclBsYXRmb3JtTGF5
ZXIoUGxhdGZvcm1MYXllciogbGF5ZXIpCit7CisgICAgaWYgKFtsYXllciBpc0tpbmRPZkNsYXNz
OmdldEFWUGxheWVyTGF5ZXJDbGFzcygpXSkKKyAgICAgICAgcmV0dXJuIExheWVyVHlwZUFWUGxh
eWVyTGF5ZXI7CisKKyAgICBpZiAoW2xheWVyIGlzS2luZE9mQ2xhc3M6W05TQ2xhc3NGcm9tU3Ry
aW5nKEAiV2ViR0xMYXllciIpIGNsYXNzXV0pCisgICAgICAgIHJldHVybiBMYXllclR5cGVXZWJH
TExheWVyOworCisgICAgcmV0dXJuIExheWVyVHlwZUN1c3RvbTsKK30KKwogUGxhdGZvcm1DQUxh
eWVyTWFjOjpQbGF0Zm9ybUNBTGF5ZXJNYWMoTGF5ZXJUeXBlIGxheWVyVHlwZSwgUGxhdGZvcm1D
QUxheWVyQ2xpZW50KiBvd25lcikKICAgICA6IFBsYXRmb3JtQ0FMYXllcihsYXllclR5cGUsIG93
bmVyKQogICAgICwgbV9jdXN0b21BcHBlYXJhbmNlKEdyYXBoaWNzTGF5ZXI6Ok5vQ3VzdG9tQXBw
ZWFyYW5jZSkKQEAgLTIwNiw2ICsyMTcsMTAgQEAgUGxhdGZvcm1DQUxheWVyTWFjOjpQbGF0Zm9y
bUNBTGF5ZXJNYWMoTGF5ZXJUeXBlIGxheWVyVHlwZSwgUGxhdGZvcm1DQUxheWVyQ2xpZW4KICAg
ICBjYXNlIExheWVyVHlwZUFWUGxheWVyTGF5ZXI6CiAgICAgICAgIGxheWVyQ2xhc3MgPSBnZXRB
VlBsYXllckxheWVyQ2xhc3MoKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMYXllclR5cGVX
ZWJHTExheWVyOgorICAgICAgICAvLyBXZSBkb24ndCBjcmVhdGUgUGxhdGZvcm1DQUxheWVyTWFj
J3Mgd3JhcHBlZCBhcm91bmQgV2ViR0xMYXllcnMuCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICBicmVhazsKICAgICBjYXNlIExheWVyVHlwZUN1c3RvbToKICAgICAgICAg
YnJlYWs7CiAgICAgfQpAQCAtMjE3LDcgKzIzMiw3IEBAIFBsYXRmb3JtQ0FMYXllck1hYzo6UGxh
dGZvcm1DQUxheWVyTWFjKExheWVyVHlwZSBsYXllclR5cGUsIFBsYXRmb3JtQ0FMYXllckNsaWVu
CiB9CiAKIFBsYXRmb3JtQ0FMYXllck1hYzo6UGxhdGZvcm1DQUxheWVyTWFjKFBsYXRmb3JtTGF5
ZXIqIGxheWVyLCBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqIG93bmVyKQotICAgIDogUGxhdGZvcm1D
QUxheWVyKFtsYXllciBpc0tpbmRPZkNsYXNzOmdldEFWUGxheWVyTGF5ZXJDbGFzcygpXSA/IExh
eWVyVHlwZUFWUGxheWVyTGF5ZXIgOiBMYXllclR5cGVDdXN0b20sIG93bmVyKQorICAgIDogUGxh
dGZvcm1DQUxheWVyKGxheWVyVHlwZUZvclBsYXRmb3JtTGF5ZXIobGF5ZXIpLCBvd25lcikKICAg
ICAsIG1fY3VzdG9tQXBwZWFyYW5jZShHcmFwaGljc0xheWVyOjpOb0N1c3RvbUFwcGVhcmFuY2Up
CiAgICAgLCBtX2N1c3RvbUJlaGF2aW9yKEdyYXBoaWNzTGF5ZXI6Ok5vQ3VzdG9tQmVoYXZpb3Ip
CiB7CkBAIC0yMzIsNyArMjQ3LDcgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OmNvbW1vbklu
aXQoKQogICAgIFttX2xheWVyIHNldFZhbHVlOltOU1ZhbHVlIHZhbHVlV2l0aFBvaW50ZXI6dGhp
c10gZm9yS2V5OnBsYXRmb3JtQ0FMYXllclBvaW50ZXJdOwogICAgIAogICAgIC8vIENsZWFyIGFs
bCB0aGUgaW1wbGljaXQgYW5pbWF0aW9ucyBvbiB0aGUgQ0FMYXllcgotICAgIGlmIChtX2xheWVy
VHlwZSA9PSBMYXllclR5cGVBVlBsYXllckxheWVyIHx8IG1fbGF5ZXJUeXBlID09IExheWVyVHlw
ZUN1c3RvbSkKKyAgICBpZiAobV9sYXllclR5cGUgPT0gTGF5ZXJUeXBlQVZQbGF5ZXJMYXllciB8
fCBtX2xheWVyVHlwZSA9PSBMYXllclR5cGVXZWJHTExheWVyIHx8IG1fbGF5ZXJUeXBlID09IExh
eWVyVHlwZUN1c3RvbSkKICAgICAgICAgW21fbGF5ZXIgd2ViX2Rpc2FibGVBbGxBY3Rpb25zXTsK
ICAgICBlbHNlCiAgICAgICAgIFttX2xheWVyIHNldERlbGVnYXRlOltXZWJBY3Rpb25EaXNhYmxp
bmdDQUxheWVyRGVsZWdhdGUgc2hhcmVkXV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbQppbmRleCAwZjBmNzY2ZjhjMzU3MjVj
NzMxYWM3NWJkM2MxMjlhN2YzOTYxYmQ4Li41ZmFhMGZkOTU5NmFjYzA2MGUzMGRhMGVkMWExNDQ4
OTgxNGIwNGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxh
eWVyQmFja2luZ1N0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3Rl
TGF5ZXJCYWNraW5nU3RvcmUubW0KQEAgLTMzNyw2ICszMzcsNyBAQCB2b2lkIFJlbW90ZUxheWVy
QmFja2luZ1N0b3JlOjpkcmF3SW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgQ0dJ
bWFnZVJlZgogICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVQYWdlVGlsZWRCYWNr
aW5nTGF5ZXI6CiAgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVJvb3RMYXllcjoK
ICAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlQVZQbGF5ZXJMYXllcjoKKyAgICBj
YXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlV2ViR0xMYXllcjoKICAgICBjYXNlIFBsYXRm
b3JtQ0FMYXllcjo6TGF5ZXJUeXBlQ3VzdG9tOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFj
L1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21h
Yy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbQppbmRleCAzZjlkYThmOTU0ZTUyMzg1ZjM4
NGM0OTUyZDMzNGNkN2Q4NDM1NjVkLi5kNGE3NjRlYTVlODY2ZmY5MGQ0OWVlMWUyOTkxNWMyZjVm
OTY2YmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVy
VHJlZVRyYW5zYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3Rl
TGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0KQEAgLTU0LDkgKzU0LDcgQEAgdm9pZCBSZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJDcmVhdGlvblByb3BlcnRpZXM6OmVuY29kZShJUEM6OkFy
Z3VtZW50RW4KIHsKICAgICBlbmNvZGVyIDw8IGxheWVySUQ7CiAgICAgZW5jb2Rlci5lbmNvZGVF
bnVtKHR5cGUpOwotCi0gICAgaWYgKHR5cGUgPT0gUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVD
dXN0b20pCi0gICAgICAgIGVuY29kZXIgPDwgaG9zdGluZ0NvbnRleHRJRDsKKyAgICBlbmNvZGVy
IDw8IGhvc3RpbmdDb250ZXh0SUQ7CiB9CiAKIGJvb2wgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rp
b246OkxheWVyQ3JlYXRpb25Qcm9wZXJ0aWVzOjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXIm
IGRlY29kZXIsIExheWVyQ3JlYXRpb25Qcm9wZXJ0aWVzJiByZXN1bHQpCkBAIC02NywxMCArNjUs
OCBAQCBib29sIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllckNyZWF0aW9uUHJvcGVy
dGllczo6ZGVjb2RlKElQQzo6QXJndW1lbnREZQogICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVt
KHJlc3VsdC50eXBlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKHJlc3VsdC50
eXBlID09IFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlQ3VzdG9tKSB7Ci0gICAgICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocmVzdWx0Lmhvc3RpbmdDb250ZXh0SUQpKQotICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIH0KKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5ob3N0aW5n
Q29udGV4dElEKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CiB9
CkBAIC0xMTgwLDcgKzExNzYsMTAgQEAgQ1N0cmluZyBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlv
bjo6ZGVzY3JpcHRpb24oKSBjb25zdAogICAgICAgICAgICAgICAgIHRzIDw8ICJyb290LWxheWVy
IjsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgUGxhdGZvcm1DQUxh
eWVyOjpMYXllclR5cGVBVlBsYXllckxheWVyOgotICAgICAgICAgICAgICAgIHRzIDw8ICJhdi1w
bGF5ZXItbGF5ZXIiOworICAgICAgICAgICAgICAgIHRzIDw8ICJhdi1wbGF5ZXItbGF5ZXIgKGNv
bnRleHQtaWQgIiA8PCBjcmVhdGVkTGF5ZXIuaG9zdGluZ0NvbnRleHRJRCA8PCAiKSI7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5
ZXJUeXBlV2ViR0xMYXllcjoKKyAgICAgICAgICAgICAgICB0cyA8PCAid2ViLWdsLWxheWVyIChj
b250ZXh0LWlkICIgPDwgY3JlYXRlZExheWVyLmhvc3RpbmdDb250ZXh0SUQgPDwgIikiOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6Okxh
eWVyVHlwZUN1c3RvbToKICAgICAgICAgICAgICAgICB0cyA8PCAiY3VzdG9tLWxheWVyIChjb250
ZXh0LWlkICIgPDwgY3JlYXRlZExheWVyLmhvc3RpbmdDb250ZXh0SUQgPDwgIikiOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9SZW1vdGVMYXllclRyZWVIb3N0SU9T
Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9SZW1vdGVMYXllclRyZWVIb3N0SU9T
Lm1tCmluZGV4IDk4MWU0NWZkZmMwNTg0MGE5MTlhZjA4NjQ1ZTEyNWI1YmM1YjhhMmQuLjVmNGE0
MTEwMTJiZTg5OGU3ZTRmYjljZTRlN2E4ZGNiNmFhMWE2ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUmVtb3RlTGF5ZXJUcmVlSG9zdElPUy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1JlbW90ZUxheWVyVHJlZUhvc3RJT1MubW0KQEAgLTE1
Miw2ICsxNTIsOCBAQCBMYXllck9yVmlldyAqUmVtb3RlTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlTGF5
ZXIoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OgogICAgICAgICB2aWV3ID0gYWRv
cHROUyhbW1dLVHJhbnNmb3JtVmlldyBhbGxvY10gaW5pdF0pOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlQ3VzdG9tOgorICAgIGNhc2UgUGxhdGZv
cm1DQUxheWVyOjpMYXllclR5cGVBVlBsYXllckxheWVyOgorICAgIGNhc2UgUGxhdGZvcm1DQUxh
eWVyOjpMYXllclR5cGVXZWJHTExheWVyOgogICAgICAgICBpZiAoIW1faXNEZWJ1Z0xheWVyVHJl
ZUhvc3QpCiAgICAgICAgICAgICB2aWV3ID0gYWRvcHROUyhbW1dLUmVtb3RlVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpDR1JlY3RaZXJvIGNvbnRleHRJRDpwcm9wZXJ0aWVzLmhvc3RpbmdDb250
ZXh0SURdKTsKICAgICAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9SZW1vdGVMYXllclRyZWVIb3N0Lm1tCmluZGV4IDMwNjI1ZmU4MDE3YWFhODZhYjg2YjU2
NWM1MTczMzFmMmNmOTYzYTIuLmRiYTZhM2ZjZTUxMjZkNWFiM2NhOWM4ODA0MTk4ZmVhNWViZGQx
ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJU
cmVlSG9zdC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVy
VHJlZUhvc3QubW0KQEAgLTIwMiw2ICsyMDIsOCBAQCBMYXllck9yVmlldyAqUmVtb3RlTGF5ZXJU
cmVlSG9zdDo6Y3JlYXRlTGF5ZXIoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246Ogog
ICAgICAgICBsYXllciA9IGFkb3B0TlMoW1tDQVRyYW5zZm9ybUxheWVyIGFsbG9jXSBpbml0XSk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVDdXN0
b206CisgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZUFWUGxheWVyTGF5ZXI6Cisg
ICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVdlYkdMTGF5ZXI6CiAgICAgICAgIGlm
ICghbV9pc0RlYnVnTGF5ZXJUcmVlSG9zdCkKICAgICAgICAgICAgIGxheWVyID0gV0tNYWtlUmVu
ZGVyTGF5ZXIocHJvcGVydGllcy5ob3N0aW5nQ29udGV4dElEKTsKICAgICAgICAgZWxzZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNB
TGF5ZXJSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9Q
bGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwCmluZGV4IDYyYzI1MjhhMmEyZjBlZDc1YmJmYjc2YTQz
ZWI2Y2VmNDU2MGFkODcuLjMwNGMxOTE1YmEzYzAxOTNkOTBkYzVlNGUwN2Q4MjQzMDk2ZDAwZmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZv
cm1DQUxheWVyUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAKQEAgLTYxLDExICs2MSw3IEBAIFBhc3NS
ZWZQdHI8UGxhdGZvcm1DQUxheWVyUmVtb3RlPiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmNyZWF0
ZShMYXllclR5cGUgbGF5ZXJUCiAKIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUxheWVyUmVtb3RlPiBQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmNyZWF0ZShQbGF0Zm9ybUxheWVyICpwbGF0Zm9ybUxheWVy
LCBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqIG93bmVyLCBSZW1vdGVMYXllclRyZWVDb250ZXh0JiBj
b250ZXh0KQogewotICAgIFJlZlB0cjxQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU+IGxheWVyID0gYWRv
cHRSZWYobmV3IFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbShzdGF0aWNfY2FzdDxQbGF0Zm9y
bUxheWVyKj4ocGxhdGZvcm1MYXllciksIG93bmVyLCBjb250ZXh0KSk7Ci0KLSAgICBjb250ZXh0
LmxheWVyV2FzQ3JlYXRlZCgqbGF5ZXIsIExheWVyVHlwZUN1c3RvbSk7Ci0KLSAgICByZXR1cm4g
bGF5ZXIucmVsZWFzZSgpOworICAgIHJldHVybiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b206
OmNyZWF0ZShwbGF0Zm9ybUxheWVyLCBvd25lciwgY29udGV4dCk7CiB9CiAKIFBhc3NSZWZQdHI8
UGxhdGZvcm1DQUxheWVyUmVtb3RlPiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmNyZWF0ZShjb25z
dCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUmIG90aGVyLCBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJD
bGllbnQqIG93bmVyLCBSZW1vdGVMYXllclRyZWVDb250ZXh0JiBjb250ZXh0KQpAQCAtOTcsMzEg
KzkzLDExIEBAIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6UGxhdGZvcm1DQUxheWVyUmVtb3RlKGNv
bnN0IFBsYXRmb3JtQ0FMYXllclJlbW90ZSYgb3RoZXIsCiB7CiB9CiAKLVBhc3NSZWZQdHI8UGxh
dGZvcm1DQUxheWVyPiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmNsb25lKFBsYXRmb3JtQ0FMYXll
ckNsaWVudCogY2xpZW50KSBjb25zdAorUGFzc1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IFBsYXRm
b3JtQ0FMYXllclJlbW90ZTo6Y2xvbmUoUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lcikgY29u
c3QKIHsKLSAgICBSZWZQdHI8UGxhdGZvcm1DQUxheWVyUmVtb3RlPiBjbG9uZSA9IFBsYXRmb3Jt
Q0FMYXllclJlbW90ZTo6Y3JlYXRlKCp0aGlzLCBjbGllbnQsICptX2NvbnRleHQpOworICAgIFJl
ZlB0cjxQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU+IGNsb25lID0gUGxhdGZvcm1DQUxheWVyUmVtb3Rl
OjpjcmVhdGUoKnRoaXMsIG93bmVyLCAqbV9jb250ZXh0KTsKIAotICAgIGNsb25lLT5zZXRQb3Np
dGlvbihwb3NpdGlvbigpKTsKLSAgICBjbG9uZS0+c2V0Qm91bmRzKGJvdW5kcygpKTsKLSAgICBj
bG9uZS0+c2V0QW5jaG9yUG9pbnQoYW5jaG9yUG9pbnQoKSk7Ci0KLSAgICBpZiAobV9wcm9wZXJ0
aWVzLnRyYW5zZm9ybSkKLSAgICAgICAgY2xvbmUtPnNldFRyYW5zZm9ybSgqbV9wcm9wZXJ0aWVz
LnRyYW5zZm9ybSk7Ci0KLSAgICBpZiAobV9wcm9wZXJ0aWVzLnN1YmxheWVyVHJhbnNmb3JtKQot
ICAgICAgICBjbG9uZS0+c2V0U3VibGF5ZXJUcmFuc2Zvcm0oKm1fcHJvcGVydGllcy5zdWJsYXll
clRyYW5zZm9ybSk7Ci0KLSAgICBjbG9uZS0+c2V0Q29udGVudHMoY29udGVudHMoKSk7Ci0gICAg
Y2xvbmUtPnNldE1hc2tzVG9Cb3VuZHMobWFza3NUb0JvdW5kcygpKTsKLSAgICBjbG9uZS0+c2V0
RG91YmxlU2lkZWQoaXNEb3VibGVTaWRlZCgpKTsKLSAgICBjbG9uZS0+c2V0T3BhcXVlKGlzT3Bh
cXVlKCkpOwotICAgIGNsb25lLT5zZXRCYWNrZ3JvdW5kQ29sb3IoYmFja2dyb3VuZENvbG9yKCkp
OwotICAgIGNsb25lLT5zZXRDb250ZW50c1NjYWxlKGNvbnRlbnRzU2NhbGUoKSk7Ci0jaWYgRU5B
QkxFKENTU19GSUxURVJTKQotICAgIGlmIChtX3Byb3BlcnRpZXMuZmlsdGVycykKLSAgICAgICAg
Y2xvbmUtPmNvcHlGaWx0ZXJzRnJvbSh0aGlzKTsKLSNlbmRpZgotICAgIGNsb25lLT51cGRhdGVD
dXN0b21BcHBlYXJhbmNlKGN1c3RvbUFwcGVhcmFuY2UoKSk7CisgICAgdXBkYXRlQ2xvbmVkTGF5
ZXJQcm9wZXJ0aWVzKCpjbG9uZSk7CiAKICAgICBjbG9uZS0+c2V0Q2xvbmVkTGF5ZXIodGhpcyk7
CiAgICAgcmV0dXJuIGNsb25lLnJlbGVhc2UoKTsKQEAgLTEzNiw2ICsxMTIsMzMgQEAgUGxhdGZv
cm1DQUxheWVyUmVtb3RlOjp+UGxhdGZvcm1DQUxheWVyUmVtb3RlKCkKICAgICAgICAgbV9jb250
ZXh0LT5sYXllcldpbGxCZURlc3Ryb3llZCgqdGhpcyk7CiB9CiAKK3ZvaWQgUGxhdGZvcm1DQUxh
eWVyUmVtb3RlOjp1cGRhdGVDbG9uZWRMYXllclByb3BlcnRpZXMoUGxhdGZvcm1DQUxheWVyUmVt
b3RlJiBjbG9uZSwgYm9vbCBjb3B5Q29udGVudHMpIGNvbnN0Cit7CisgICAgY2xvbmUuc2V0UG9z
aXRpb24ocG9zaXRpb24oKSk7CisgICAgY2xvbmUuc2V0Qm91bmRzKGJvdW5kcygpKTsKKyAgICBj
bG9uZS5zZXRBbmNob3JQb2ludChhbmNob3JQb2ludCgpKTsKKworICAgIGlmIChtX3Byb3BlcnRp
ZXMudHJhbnNmb3JtKQorICAgICAgICBjbG9uZS5zZXRUcmFuc2Zvcm0oKm1fcHJvcGVydGllcy50
cmFuc2Zvcm0pOworCisgICAgaWYgKG1fcHJvcGVydGllcy5zdWJsYXllclRyYW5zZm9ybSkKKyAg
ICAgICAgY2xvbmUuc2V0U3VibGF5ZXJUcmFuc2Zvcm0oKm1fcHJvcGVydGllcy5zdWJsYXllclRy
YW5zZm9ybSk7CisKKyAgICBpZiAoY29weUNvbnRlbnRzKQorICAgICAgICBjbG9uZS5zZXRDb250
ZW50cyhjb250ZW50cygpKTsKKworICAgIGNsb25lLnNldE1hc2tzVG9Cb3VuZHMobWFza3NUb0Jv
dW5kcygpKTsKKyAgICBjbG9uZS5zZXREb3VibGVTaWRlZChpc0RvdWJsZVNpZGVkKCkpOworICAg
IGNsb25lLnNldE9wYXF1ZShpc09wYXF1ZSgpKTsKKyAgICBjbG9uZS5zZXRCYWNrZ3JvdW5kQ29s
b3IoYmFja2dyb3VuZENvbG9yKCkpOworICAgIGNsb25lLnNldENvbnRlbnRzU2NhbGUoY29udGVu
dHNTY2FsZSgpKTsKKyNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisgICAgaWYgKG1fcHJvcGVydGll
cy5maWx0ZXJzKQorICAgICAgICBjbG9uZS5jb3B5RmlsdGVyc0Zyb20odGhpcyk7CisjZW5kaWYK
KyAgICBjbG9uZS51cGRhdGVDdXN0b21BcHBlYXJhbmNlKGN1c3RvbUFwcGVhcmFuY2UoKSk7Cit9
CisKIHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpyZWN1cnNpdmVCdWlsZFRyYW5zYWN0aW9u
KFJlbW90ZUxheWVyVHJlZUNvbnRleHQmIGNvbnRleHQsIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0
aW9uJiB0cmFuc2FjdGlvbikKIHsKICAgICBBU1NFUlQoIW1fcHJvcGVydGllcy5iYWNraW5nU3Rv
cmUgfHwgb3duZXIoKSk7CkBAIC0xNTYsNyArMTU5LDcgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGU6OnJlY3Vyc2l2ZUJ1aWxkVHJhbnNhY3Rpb24oUmVtb3RlTGF5ZXJUcmVlQ29udGV4dCYg
Y28KICAgICAgICAgICAgICAgICBtX3Byb3BlcnRpZXMuY2hpbGRyZW4uYXBwZW5kKGxheWVyLT5s
YXllcklEKCkpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKG1fbGF5ZXJUeXBlID09IExheWVy
VHlwZUN1c3RvbSkgeworICAgICAgICBpZiAoaXNQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20o
KSkgewogICAgICAgICAgICAgUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyOjphcHBseVBy
b3BlcnRpZXMocGxhdGZvcm1MYXllcigpLCBudWxscHRyLCBtX3Byb3BlcnRpZXMsIFJlbW90ZUxh
eWVyVHJlZVByb3BlcnR5QXBwbGllcjo6UmVsYXRlZExheWVyTWFwKCkpOwogICAgICAgICAgICAg
ZGlkQ29tbWl0KCk7CiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUu
aAppbmRleCBhZWRmYWQxYTJmMGZiN2EyMTFiMDUyNmZlMWQ4ZjM2M2E4MmQwYjc4Li44NmY2ZmNi
YmYyN2Y5MTYzNmY3ZGRhMGUzM2NkNTY1YzJkMzUyOGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVt
b3RlLmgKQEAgLTE3MSw2ICsxNzEsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgUGxhdGZvcm1DQUxheWVy
UmVtb3RlKFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlLCBXZWJDb3JlOjpQbGF0
Zm9ybUNBTGF5ZXJDbGllbnQqIG93bmVyLCBSZW1vdGVMYXllclRyZWVDb250ZXh0JiBjb250ZXh0
KTsKICAgICBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUoY29uc3QgUGxhdGZvcm1DQUxheWVyUmVtb3Rl
JiwgV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyQ2xpZW50KiwgUmVtb3RlTGF5ZXJUcmVlQ29udGV4
dCYpOwogCisgICAgdm9pZCB1cGRhdGVDbG9uZWRMYXllclByb3BlcnRpZXMoUGxhdGZvcm1DQUxh
eWVyUmVtb3RlJiBjbG9uZSwgYm9vbCBjb3B5Q29udGVudHMgPSB0cnVlKSBjb25zdDsKKwogcHJp
dmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAgICAgdm9pZCBlbnN1cmVCYWNraW5nU3RvcmUoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZv
cm1DQUxheWVyUmVtb3RlQ3VzdG9tLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5oCmluZGV4IGQ3MDYwOTdhMDY5YjYx
ZTVlZjg3MTRmYTVkOTAxMGFmZThmYzJlZDAuLjY1MGQwYzk4MDM0ODliZWNmNGY4NzFkYWVjMjBk
NjAwYWMxNGUwZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20uaApAQCAt
MzIsOSArMzIsMTIgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIExheWVySG9zdGluZ0Nv
bnRleHQ7CiAKKy8vIFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbSBpcyB1c2VkIGZvciBDQUxh
eWVycyB0aGF0IGxpdmUgaW4gdGhlIHdlYiBwcm9jZXNzIGFuZCBhcmUgaG9zdGVkIGludG8gdGhl
IFVJIHByb2Nlc3MgdmlhIHJlbW90ZSBjb250ZXh0LgogY2xhc3MgUGxhdGZvcm1DQUxheWVyUmVt
b3RlQ3VzdG9tIGZpbmFsIDogcHVibGljIFBsYXRmb3JtQ0FMYXllclJlbW90ZSB7CiAgICAgZnJp
ZW5kIGNsYXNzIFBsYXRmb3JtQ0FMYXllclJlbW90ZTsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU+IGNyZWF0ZShQbGF0Zm9ybUxheWVyICosIFdl
YkNvcmU6OlBsYXRmb3JtQ0FMYXllckNsaWVudCosIFJlbW90ZUxheWVyVHJlZUNvbnRleHQmKTsK
KwogICAgIHZpcnR1YWwgflBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbSgpOwogCiAgICAgdmly
dHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gbV9wbGF0Zm9ybUxheWVyLmdldCgpOyB9CkBAIC00NCwxMyArNDcsMjIgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
KiBkaXJ0eVJlY3QgPSAwKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSAgICBQbGF0Zm9ybUNBTGF5
ZXJSZW1vdGVDdXN0b20oUGxhdGZvcm1MYXllciosIFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllckNs
aWVudCogb3duZXIsIFJlbW90ZUxheWVyVHJlZUNvbnRleHQmKTsKKyAgICBQbGF0Zm9ybUNBTGF5
ZXJSZW1vdGVDdXN0b20oV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGUsIFBsYXRm
b3JtTGF5ZXIqLCBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqIG93bmVyLCBSZW1vdGVM
YXllclRyZWVDb250ZXh0Jik7CisKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6UGxh
dGZvcm1DQUxheWVyPiBjbG9uZShXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqIG93bmVy
KSBjb25zdCBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgYm9vbCBpc1BsYXRmb3JtQ0FMYXllclJl
bW90ZUN1c3RvbSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKworICAgIHZpcnR1YWwgQ0ZUeXBl
UmVmIGNvbnRlbnRzKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldENvbnRl
bnRzKENGVHlwZVJlZikgb3ZlcnJpZGU7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF5ZXJIb3N0
aW5nQ29udGV4dD4gbV9sYXllckhvc3RpbmdDb250ZXh0OwogICAgIFJldGFpblB0cjxQbGF0Zm9y
bUxheWVyPiBtX3BsYXRmb3JtTGF5ZXI7CiAgICAgYm9vbCBtX3Byb3ZpZGVzQ29udGVudHM7CiB9
OwogCitQTEFURk9STV9DQUxBWUVSX1RZUEVfQ0FTVFMoUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3Vz
dG9tLCBpc1BsYXRmb3JtQ0FMYXllclJlbW90ZSgpKQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
IAogI2VuZGlmIC8vIFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbV9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90
ZUN1c3RvbS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZv
cm1DQUxheWVyUmVtb3RlQ3VzdG9tLm1tCmluZGV4IDgwYjNlMzI1ZjcxYTdmODYzYzQ1YTM3ZmRi
ZDVkNGIxZDg0MGIyNmEuLjI4MjcxZTVmMmQxY2Q2NGYzZGU2NzM1ZDAwNGYzMGYwZmIxOTE5ZTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZv
cm1DQUxheWVyUmVtb3RlQ3VzdG9tLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLm1tCkBAIC0zMCwxOSArMzAs
MzIgQEAKICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZUNvbnRleHQuaCIKICNpbXBvcnQgIlJlbW90
ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzcy5oIgorI2lt
cG9ydCA8QVZGb3VuZGF0aW9uL0FWRm91bmRhdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9HcmFw
aGljc0xheWVyQ0EuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1DQUxheWVyTWFjLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1NvZnRMaW5raW5nLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVD
QUxheWVyRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKK1NPRlRfTElOS19G
UkFNRVdPUktfT1BUSU9OQUwoQVZGb3VuZGF0aW9uKQorU09GVF9MSU5LX0NMQVNTKEFWRm91bmRh
dGlvbiwgQVZQbGF5ZXJMYXllcikKKwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBwbGF0Zm9ybUNBTGF5ZXJQ
b2ludGVyID0gQCJXS1BsYXRmb3JtQ0FMYXllciI7Ci1QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0
b206OlBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbShQbGF0Zm9ybUxheWVyKiBjdXN0b21MYXll
ciwgUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lciwgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dCYg
Y29udGV4dCkKLSAgICA6IFBsYXRmb3JtQ0FMYXllclJlbW90ZShMYXllclR5cGVDdXN0b20sIG93
bmVyLCBjb250ZXh0KQorCitQYXNzUmVmUHRyPFBsYXRmb3JtQ0FMYXllclJlbW90ZT4gUGxhdGZv
cm1DQUxheWVyUmVtb3RlQ3VzdG9tOjpjcmVhdGUoUGxhdGZvcm1MYXllciAqcGxhdGZvcm1MYXll
ciwgUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lciwgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dCYg
Y29udGV4dCkKK3sKKyAgICBSZWZQdHI8UGxhdGZvcm1DQUxheWVyUmVtb3RlPiBsYXllciA9IGFk
b3B0UmVmKG5ldyBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20oUGxhdGZvcm1DQUxheWVyTWFj
OjpsYXllclR5cGVGb3JQbGF0Zm9ybUxheWVyKHBsYXRmb3JtTGF5ZXIpLCBwbGF0Zm9ybUxheWVy
LCBvd25lciwgY29udGV4dCkpOworICAgIGNvbnRleHQubGF5ZXJXYXNDcmVhdGVkKCpsYXllciwg
bGF5ZXItPmxheWVyVHlwZSgpKTsKKworICAgIHJldHVybiBsYXllci5yZWxlYXNlKCk7Cit9CisK
K1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbTo6UGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9t
KExheWVyVHlwZSBsYXllclR5cGUsIFBsYXRmb3JtTGF5ZXIqIGN1c3RvbUxheWVyLCBQbGF0Zm9y
bUNBTGF5ZXJDbGllbnQqIG93bmVyLCBSZW1vdGVMYXllclRyZWVDb250ZXh0JiBjb250ZXh0KQor
ICAgIDogUGxhdGZvcm1DQUxheWVyUmVtb3RlKGxheWVyVHlwZSwgb3duZXIsIGNvbnRleHQpCiB7
CiAgICAgc3dpdGNoIChjb250ZXh0LmxheWVySG9zdGluZ01vZGUoKSkgewogICAgIGNhc2UgTGF5
ZXJIb3N0aW5nTW9kZTo6SW5Qcm9jZXNzOgpAQCAtNjEsNyArNzQsNyBAQCBQbGF0Zm9ybUNBTGF5
ZXJSZW1vdGVDdXN0b206OlBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbShQbGF0Zm9ybUxheWVy
KiBjdXN0b21MYQogICAgIG1fcGxhdGZvcm1MYXllciA9IGN1c3RvbUxheWVyOwogICAgIFtjdXN0
b21MYXllciB3ZWJfZGlzYWJsZUFsbEFjdGlvbnNdOwogCi0gICAgbV9wcm92aWRlc0NvbnRlbnRz
ID0gW2N1c3RvbUxheWVyIGlzS2luZE9mQ2xhc3M6TlNDbGFzc0Zyb21TdHJpbmcoQCJXZWJHTExh
eWVyIildOworICAgIG1fcHJvdmlkZXNDb250ZW50cyA9IGxheWVyVHlwZSA9PSBMYXllclR5cGVX
ZWJHTExheWVyOwogCiAgICAgcHJvcGVydGllcygpLnBvc2l0aW9uID0gRmxvYXRQb2ludDNEKGN1
c3RvbUxheWVyLnBvc2l0aW9uLngsIGN1c3RvbUxheWVyLnBvc2l0aW9uLnksIGN1c3RvbUxheWVy
LnpQb3NpdGlvbik7CiAgICAgcHJvcGVydGllcygpLmFuY2hvclBvaW50ID0gRmxvYXRQb2ludDNE
KGN1c3RvbUxheWVyLmFuY2hvclBvaW50LngsIGN1c3RvbUxheWVyLmFuY2hvclBvaW50LnksIGN1
c3RvbUxheWVyLmFuY2hvclBvaW50Wik7CkBAIC03OSw2ICs5Miw0NSBAQCB1aW50MzJfdCBQbGF0
Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b206Omhvc3RpbmdDb250ZXh0SUQoKQogICAgIHJldHVybiBt
X2xheWVySG9zdGluZ0NvbnRleHQtPmNvbnRleHRJRCgpOwogfQogCitQYXNzUmVmUHRyPFdlYkNv
cmU6OlBsYXRmb3JtQ0FMYXllcj4gUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tOjpjbG9uZShQ
bGF0Zm9ybUNBTGF5ZXJDbGllbnQqIG93bmVyKSBjb25zdAoreworICAgIFJldGFpblB0cjxDQUxh
eWVyICo+IGNsb25lZExheWVyOworICAgIGJvb2wgY29weUNvbnRlbnRzID0gdHJ1ZTsKKworICAg
IGlmIChsYXllclR5cGUoKSA9PSBMYXllclR5cGVBVlBsYXllckxheWVyKSB7CisgICAgICAgIGNs
b25lZExheWVyID0gYWRvcHROUyhbW2dldEFWUGxheWVyTGF5ZXJDbGFzcygpIGFsbG9jXSBpbml0
XSk7CisKKyAgICAgICAgQVZQbGF5ZXJMYXllciogZGVzdGluYXRpb25QbGF5ZXJMYXllciA9IHN0
YXRpY19jYXN0PEFWUGxheWVyTGF5ZXIgKj4oY2xvbmVkTGF5ZXIuZ2V0KCkpOworICAgICAgICBB
VlBsYXllckxheWVyKiBzb3VyY2VQbGF5ZXJMYXllciA9IHN0YXRpY19jYXN0PEFWUGxheWVyTGF5
ZXIgKj4ocGxhdGZvcm1MYXllcigpKTsKKyAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hf
Z2V0X21haW5fcXVldWUoKSwgXnsKKyAgICAgICAgICAgIFtkZXN0aW5hdGlvblBsYXllckxheWVy
IHNldFBsYXllcjpbc291cmNlUGxheWVyTGF5ZXIgcGxheWVyXV07CisgICAgICAgIH0pOworICAg
ICAgICBjb3B5Q29udGVudHMgPSBmYWxzZTsKKyAgICB9IGVsc2UgaWYgKGxheWVyVHlwZSgpID09
IExheWVyVHlwZVdlYkdMTGF5ZXIpIHsKKyAgICAgICAgY2xvbmVkTGF5ZXIgPSBhZG9wdE5TKFtb
Q0FMYXllciBhbGxvY10gaW5pdF0pOworICAgICAgICAvLyBGSVhNRTogY3VycmVudGx5IGNvcHlp
bmcgV2ViR0wgY29udGVudHMgYnJlYWtzIHRoZSBvcmlnaW5hbCBsYXllci4KKyAgICAgICAgY29w
eUNvbnRlbnRzID0gZmFsc2U7CisgICAgfQorCisgICAgUmVmUHRyPFBsYXRmb3JtQ0FMYXllclJl
bW90ZT4gY2xvbmUgPSBhZG9wdFJlZihuZXcgUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tKGxh
eWVyVHlwZSgpLCBjbG9uZWRMYXllci5nZXQoKSwgb3duZXIsICpjb250ZXh0KCkpKTsKKyAgICBj
b250ZXh0KCktPmxheWVyV2FzQ3JlYXRlZCgqY2xvbmUsIGNsb25lLT5sYXllclR5cGUoKSk7CisK
KyAgICB1cGRhdGVDbG9uZWRMYXllclByb3BlcnRpZXMoKmNsb25lLCBjb3B5Q29udGVudHMpOwor
CisgICAgY2xvbmUtPnNldENsb25lZExheWVyKHRoaXMpOworICAgIHJldHVybiBjbG9uZS5yZWxl
YXNlKCk7Cit9CisKK0NGVHlwZVJlZiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b206OmNvbnRl
bnRzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gW21fcGxhdGZvcm1MYXllciBjb250ZW50c107Cit9
CisKK3ZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tOjpzZXRDb250ZW50cyhDRlR5cGVS
ZWYgY29udGVudHMpCit7CisgICAgW21fcGxhdGZvcm1MYXllciBzZXRDb250ZW50czooaWQpY29u
dGVudHNdOworfQorCiB2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbTo6c2V0TmVlZHNE
aXNwbGF5KGNvbnN0IEZsb2F0UmVjdCogcmVjdCkKIHsKICAgICBpZiAobV9wcm92aWRlc0NvbnRl
bnRzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0KaW5kZXggOTg4ZmMzYWExMjQ3NmU1
NzkyNTYyNDJmYzk4NWYyYjk4ODc0MDdmMS4uZWJkM2ZmMjRmMGI3ZjljMWM0NWQzNWRkOGEwMWVh
MTQ4ZmVjMTJkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbQpAQCAtNjEsNyArNjEs
NyBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZUNvbnRleHQ6OmxheWVyV2FzQ3JlYXRlZChQbGF0Zm9y
bUNBTGF5ZXJSZW1vdGUmIGxheWVyLCBQbGF0ZgogICAgIGNyZWF0aW9uUHJvcGVydGllcy5sYXll
cklEID0gbGF5ZXJJRDsKICAgICBjcmVhdGlvblByb3BlcnRpZXMudHlwZSA9IHR5cGU7CiAKLSAg
ICBpZiAodHlwZSA9PSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZUN1c3RvbSkKKyAgICBpZiAo
bGF5ZXIuaXNQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20oKSkKICAgICAgICAgY3JlYXRpb25Q
cm9wZXJ0aWVzLmhvc3RpbmdDb250ZXh0SUQgPSBsYXllci5ob3N0aW5nQ29udGV4dElEKCk7CiAK
ICAgICBtX2NyZWF0ZWRMYXllcnMuYXBwZW5kKGNyZWF0aW9uUHJvcGVydGllcyk7CkBAIC03MCw2
ICs3MCw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6bGF5ZXJXYXNDcmVhdGVkKFBs
YXRmb3JtQ0FMYXllclJlbW90ZSYgbGF5ZXIsIFBsYXRmCiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVl
Q29udGV4dDo6bGF5ZXJXaWxsQmVEZXN0cm95ZWQoUGxhdGZvcm1DQUxheWVyUmVtb3RlJiBsYXll
cikKIHsKKyAgICBBU1NFUlQobGF5ZXIubGF5ZXJJRCgpKTsKICAgICBHcmFwaGljc0xheWVyOjpQ
bGF0Zm9ybUxheWVySUQgbGF5ZXJJRCA9IGxheWVyLmxheWVySUQoKTsKIAogICAgIG1fbGl2ZUxh
eWVycy5yZW1vdmUobGF5ZXJJRCk7Cg==
</data>
<flag name="review"
          id="259058"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>