<?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>213624</bug_id>
          
          <creation_ts>2020-06-25 15:43:06 -0700</creation_ts>
          <short_desc>Convert the PaintLayerFlag enum to an enum class</short_desc>
          <delta_ts>2020-06-25 17:21:58 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1666256</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-06-25 15:43:06 -0700</bug_when>
    <thetext>Convert the PaintLayerFlag enum to an enum class</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666258</commentid>
    <comment_count>1</comment_count>
      <attachid>402821</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-06-25 15:43:39 -0700</bug_when>
    <thetext>Created attachment 402821
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666271</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-25 16:30:50 -0700</bug_when>
    <thetext>Committed r263544: &lt;https://trac.webkit.org/changeset/263544&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 402821.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666311</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-25 17:21:58 -0700</bug_when>
    <thetext>&lt;rdar://problem/64781935&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402821</attachid>
            <date>2020-06-25 15:43:39 -0700</date>
            <delta_ts>2020-06-25 16:30:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213624-20200625154338.patch</filename>
            <type>text/plain</type>
            <size>29484</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGE4YmZlMTUzMGE0NWU4
NjQ4MTgwMDhhNjcxMTU5MjViZTMzNmIxYS4uNWQ1MzM4OTFmYTk5NzFhYTBhMGQ4OWUzN2Q3YjI1
MzA5YWEyM2Q5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIwLTA2LTI1ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIENvbnZlcnQgdGhl
IFBhaW50TGF5ZXJGbGFnIGVudW0gdG8gYW4gZW51bSBjbGFzcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNjI0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29udmVydCBlbnVtIFBhaW50TGF5ZXJGbGFn
IHRvIGFuIGVudW0gY2xhc3MuCisKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xU
ZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29u
dHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZVRleHRUcmFja1JlcHJlc2VudGF0
aW9uSW1hZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OnBhaW50T3ZlcmxheVNjcm9sbGJhcnMpOgorICAgICAgICAoV2ViQ29yZTo6cGFpbnRG
b3JGaXhlZFJvb3RCYWNrZ3JvdW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpw
YWludExheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpwYWludExheWVyV2l0
aEVmZmVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXJDb250
ZW50c0FuZFJlZmxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmZpbHRl
cnNGb3JQYWludGluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cGFp
bnRMYXllckNvbnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVQ
YWludGluZ0luZm9Gb3JGcmFnbWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6
OnBhaW50VHJhbnNmb3JtZWRMYXllckludG9GcmFnbWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZUNsaXBSZWN0cyBjb25zdCk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckxheWVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50SW50b0xh
eWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6cGFpbnRGbGFnc0Zv
ckxheWVyIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJSZXBsaWNhOjpwYWludCk6CisKIDIwMjAtMDYtMjUgIFdl
bnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgZml4IHRoZSBtYWNPUyAxMSBidWlsZCBhZnRlciByMjYzNTE5CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFRleHRUcmFj
a0NvbnRhaW5lckVsZW1lbnQuY3BwCmluZGV4IGRhMDUyZTBlMGJmMzNiNjUxZGUwNjllYmE3YzMw
NDA4ZmQ2MDZkOGYuLjJiNDEyZTdlMDNiNTFhMzZkY2JjMGI5OWE5YjM5YTllZWQyOGY5MzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFRleHRUcmFj
a0NvbnRhaW5lckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
ZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuY3BwCkBAIC00MjIsNyArNDIyLDcg
QEAgUmVmUHRyPEltYWdlPiBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojpj
cmVhdGVUZXh0VHJhY2tSZXByZXNlbnRhdGkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAg
ICBhdXRvIHBhaW50RmxhZ3MgPSBSZW5kZXJMYXllcjo6cGFpbnRMYXllclBhaW50aW5nQ29tcG9z
aXRpbmdBbGxQaGFzZXNGbGFncygpOwotICAgIHBhaW50RmxhZ3MuYWRkKFJlbmRlckxheWVyOjpQ
YWludExheWVyVGVtcG9yYXJ5Q2xpcFJlY3RzKTsKKyAgICBwYWludEZsYWdzLmFkZChSZW5kZXJM
YXllcjo6UGFpbnRMYXllckZsYWc6OlRlbXBvcmFyeUNsaXBSZWN0cyk7CiAgICAgbGF5ZXItPnBh
aW50KGJ1ZmZlci0+Y29udGV4dCgpLCBwYWludGluZ1JlY3QsIExheW91dFNpemUoKSwgeyBQYWlu
dEJlaGF2aW9yOjpGbGF0dGVuQ29tcG9zaXRpbmdMYXllcnMsIFBhaW50QmVoYXZpb3I6OlNuYXBz
aG90dGluZyB9LCBudWxscHRyLCBwYWludEZsYWdzKTsKIAogICAgIHJldHVybiBJbWFnZUJ1ZmZl
cjo6c2lua0ludG9JbWFnZShXVEZNb3ZlKGJ1ZmZlcikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHAKaW5kZXggNmIxOWJjMzg3ZWE4ZDg4ZmExMDNlODNiZWYzNTA5MDc1
ZGY5NTc5ZS4uZWZiYzI0M2ViNTIxYTZmNTVmMmY5YjE1NWI4MTc2NGRhMDgzZTUyMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC00MTUxLDcgKzQxNTEsNyBA
QCB2b2lkIFJlbmRlckxheWVyOjpwYWludChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IExheW91dFJlY3QmIGRhbWFnZVJlY3QsCiAgICAgTGF5ZXJQYWludGluZ0luZm8gcGFpbnRpbmdJ
bmZvKHRoaXMsIGVuY2xvc2luZ0ludFJlY3QoZGFtYWdlUmVjdCksIHBhaW50QmVoYXZpb3IsIHN1
YnBpeGVsT2Zmc2V0LCBzdWJ0cmVlUGFpbnRSb290LCAmb3ZlcmxhcFRlc3RSZXF1ZXN0cywgcGFp
bnRQb2xpY3kgPT0gU2VjdXJpdHlPcmlnaW5QYWludFBvbGljeTo6QWNjZXNzaWJsZU9yaWdpbk9u
bHkpOwogICAgIGlmIChldmVudFJlZ2lvbkNvbnRleHQpIHsKICAgICAgICAgcGFpbnRpbmdJbmZv
LmV2ZW50UmVnaW9uQ29udGV4dCA9IGV2ZW50UmVnaW9uQ29udGV4dDsKLSAgICAgICAgcGFpbnRG
bGFncy5hZGQoUmVuZGVyTGF5ZXI6OlBhaW50TGF5ZXJDb2xsZWN0aW5nRXZlbnRSZWdpb24pOwor
ICAgICAgICBwYWludEZsYWdzLmFkZChSZW5kZXJMYXllcjo6UGFpbnRMYXllckZsYWc6OkNvbGxl
Y3RpbmdFdmVudFJlZ2lvbik7CiAgICAgfQogICAgIHBhaW50TGF5ZXIoY29udGV4dCwgcGFpbnRp
bmdJbmZvLCBwYWludEZsYWdzKTsKIApAQCAtNDE2NSw3ICs0MTY1LDcgQEAgdm9pZCBSZW5kZXJM
YXllcjo6cGFpbnRPdmVybGF5U2Nyb2xsYmFycyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNv
bnN0IExheW91dFIKICAgICAgICAgcmV0dXJuOwogCiAgICAgTGF5ZXJQYWludGluZ0luZm8gcGFp
bnRpbmdJbmZvKHRoaXMsIGVuY2xvc2luZ0ludFJlY3QoZGFtYWdlUmVjdCksIHBhaW50QmVoYXZp
b3IsIExheW91dFNpemUoKSwgc3VidHJlZVBhaW50Um9vdCk7Ci0gICAgcGFpbnRMYXllcihjb250
ZXh0LCBwYWludGluZ0luZm8sIFBhaW50TGF5ZXJQYWludGluZ092ZXJsYXlTY3JvbGxiYXJzKTsK
KyAgICBwYWludExheWVyKGNvbnRleHQsIHBhaW50aW5nSW5mbywgUGFpbnRMYXllckZsYWc6OlBh
aW50aW5nT3ZlcmxheVNjcm9sbGJhcnMpOwogCiAgICAgbV9jb250YWluc0RpcnR5T3ZlcmxheVNj
cm9sbGJhcnMgPSBmYWxzZTsKIH0KQEAgLTQyNTYsNyArNDI1Niw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzaG91bGRTdXBwcmVzc1BhaW50aW5nTGF5ZXIoUmVuZGVyTGF5ZXIqIGxheWVyKQogCiBz
dGF0aWMgaW5saW5lIGJvb2wgcGFpbnRGb3JGaXhlZFJvb3RCYWNrZ3JvdW5kKGNvbnN0IFJlbmRl
ckxheWVyKiBsYXllciwgT3B0aW9uU2V0PFJlbmRlckxheWVyOjpQYWludExheWVyRmxhZz4gcGFp
bnRGbGFncykKIHsKLSAgICByZXR1cm4gbGF5ZXItPnJlbmRlcmVyKCkuaXNEb2N1bWVudEVsZW1l
bnRSZW5kZXJlcigpICYmIChwYWludEZsYWdzICYgUmVuZGVyTGF5ZXI6OlBhaW50TGF5ZXJQYWlu
dGluZ1Jvb3RCYWNrZ3JvdW5kT25seSk7CisgICAgcmV0dXJuIGxheWVyLT5yZW5kZXJlcigpLmlz
RG9jdW1lbnRFbGVtZW50UmVuZGVyZXIoKSAmJiAocGFpbnRGbGFncyAmIFJlbmRlckxheWVyOjpQ
YWludExheWVyRmxhZzo6UGFpbnRpbmdSb290QmFja2dyb3VuZE9ubHkpOwogfQogCiB2b2lkIFJl
bmRlckxheWVyOjpwYWludExheWVyKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgTGF5
ZXJQYWludGluZ0luZm8mIHBhaW50aW5nSW5mbywgT3B0aW9uU2V0PFBhaW50TGF5ZXJGbGFnPiBw
YWludEZsYWdzKQpAQCAtNDI2NCw3ICs0MjY0LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRM
YXllcihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IExheWVyUGFpbnRpbmdJbmZvJgog
ICAgIGF1dG8gc2hvdWxkQ29udGludWVQYWludCA9IFsmXSAoKSB7CiAgICAgICAgIHJldHVybiBi
YWNraW5nKCktPnBhaW50c0ludG9XaW5kb3coKQogICAgICAgICAgICAgfHwgYmFja2luZygpLT5w
YWludHNJbnRvQ29tcG9zaXRlZEFuY2VzdG9yKCkKLSAgICAgICAgICAgIHx8IHNob3VsZERvU29m
dHdhcmVQYWludCh0aGlzLCBwYWludEZsYWdzLmNvbnRhaW5zKFBhaW50TGF5ZXJQYWludGluZ1Jl
ZmxlY3Rpb24pKQorICAgICAgICAgICAgfHwgc2hvdWxkRG9Tb2Z0d2FyZVBhaW50KHRoaXMsIHBh
aW50RmxhZ3MuY29udGFpbnMoUGFpbnRMYXllckZsYWc6OlBhaW50aW5nUmVmbGVjdGlvbikpCiAg
ICAgICAgICAgICB8fCBwYWludEZvckZpeGVkUm9vdEJhY2tncm91bmQodGhpcywgcGFpbnRGbGFn
cyk7CiAgICAgfTsKIApAQCAtNDI4Miw3ICs0MjgyLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6cGFp
bnRMYXllcihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IExheWVyUGFpbnRpbmdJbmZv
JgogICAgICAgICBpZiAoIWNvbnRleHQucGVyZm9ybWluZ1BhaW50SW52YWxpZGF0aW9uKCkgJiYg
IShwYWludGluZ0luZm8ucGFpbnRCZWhhdmlvciAmIFBhaW50QmVoYXZpb3I6OkZsYXR0ZW5Db21w
b3NpdGluZ0xheWVycykpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgcGFpbnRGbGFn
cy5hZGQoUGFpbnRMYXllclRlbXBvcmFyeUNsaXBSZWN0cyk7CisgICAgICAgIHBhaW50RmxhZ3Mu
YWRkKFBhaW50TGF5ZXJGbGFnOjpUZW1wb3JhcnlDbGlwUmVjdHMpOwogICAgIH0KIAogICAgIGlm
ICh2aWV3cG9ydENvbnN0cmFpbmVkTm90Q29tcG9zaXRlZFJlYXNvbigpID09IE5vdENvbXBvc2l0
ZWRGb3JCb3VuZHNPdXRPZlZpZXcpIHsKQEAgLTQzMDksMTAgKzQzMDksMTAgQEAgdm9pZCBSZW5k
ZXJMYXllcjo6cGFpbnRMYXllcldpdGhFZmZlY3RzKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwg
Y29uc3QgTGF5ZXJQYWkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKHBhaW50c1dpdGhUcmFu
c3BhcmVuY3kocGFpbnRpbmdJbmZvLnBhaW50QmVoYXZpb3IpKQotICAgICAgICBwYWludEZsYWdz
LmFkZChQYWludExheWVySGF2ZVRyYW5zcGFyZW5jeSk7CisgICAgICAgIHBhaW50RmxhZ3MuYWRk
KFBhaW50TGF5ZXJGbGFnOjpIYXZlVHJhbnNwYXJlbmN5KTsKIAotICAgIC8vIFBhaW50TGF5ZXJB
cHBsaWVkVHJhbnNmb3JtIGlzIHVzZWQgaW4gUmVuZGVyUmVwbGljYSwgdG8gYXZvaWQgYXBwbHlp
bmcgdGhlIHRyYW5zZm9ybSB0d2ljZS4KLSAgICBpZiAocGFpbnRzV2l0aFRyYW5zZm9ybShwYWlu
dGluZ0luZm8ucGFpbnRCZWhhdmlvcikgJiYgIShwYWludEZsYWdzICYgUGFpbnRMYXllckFwcGxp
ZWRUcmFuc2Zvcm0pKSB7CisgICAgLy8gUGFpbnRMYXllckZsYWc6OkFwcGxpZWRUcmFuc2Zvcm0g
aXMgdXNlZCBpbiBSZW5kZXJSZXBsaWNhLCB0byBhdm9pZCBhcHBseWluZyB0aGUgdHJhbnNmb3Jt
IHR3aWNlLgorICAgIGlmIChwYWludHNXaXRoVHJhbnNmb3JtKHBhaW50aW5nSW5mby5wYWludEJl
aGF2aW9yKSAmJiAhKHBhaW50RmxhZ3MgJiBQYWludExheWVyRmxhZzo6QXBwbGllZFRyYW5zZm9y
bSkpIHsKICAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbGF5ZXJUcmFuc2Zvcm0gPSByZW5k
ZXJhYmxlVHJhbnNmb3JtKHBhaW50aW5nSW5mby5wYWludEJlaGF2aW9yKTsKICAgICAgICAgLy8g
SWYgdGhlIHRyYW5zZm9ybSBjYW4ndCBiZSBpbnZlcnRlZCwgdGhlbiBkb24ndCBwYWludCBhbnl0
aGluZy4KICAgICAgICAgaWYgKCFsYXllclRyYW5zZm9ybS5pc0ludmVydGlibGUoKSkKQEAgLTQz
MjAsNyArNDMyMCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXJXaXRoRWZmZWN0cyhH
cmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IExheWVyUGFpCiAKICAgICAgICAgLy8gSWYg
d2UgaGF2ZSBhIHRyYW5zcGFyZW5jeSBsYXllciBlbmNsb3NpbmcgdXMgYW5kIHdlIGFyZSB0aGUg
cm9vdCBvZiBhIHRyYW5zZm9ybSwgdGhlbiB3ZSBuZWVkIHRvIGVzdGFibGlzaCB0aGUgdHJhbnNw
YXJlbmN5CiAgICAgICAgIC8vIGxheWVyIGZyb20gdGhlIHBhcmVudCBub3csIGFzc3VtaW5nIHRo
ZXJlIGlzIGEgcGFyZW50Ci0gICAgICAgIGlmIChwYWludEZsYWdzICYgUGFpbnRMYXllckhhdmVU
cmFuc3BhcmVuY3kpIHsKKyAgICAgICAgaWYgKHBhaW50RmxhZ3MgJiBQYWludExheWVyRmxhZzo6
SGF2ZVRyYW5zcGFyZW5jeSkgewogICAgICAgICAgICAgaWYgKHBhcmVudCgpKQogICAgICAgICAg
ICAgICAgIHBhcmVudCgpLT5iZWdpblRyYW5zcGFyZW5jeUxheWVycyhjb250ZXh0LCBwYWludGlu
Z0luZm8sIHBhaW50aW5nSW5mby5wYWludERpcnR5UmVjdCk7CiAgICAgICAgICAgICBlbHNlCkBA
IC00MzM1LDggKzQzMzUsOCBAQCB2b2lkIFJlbmRlckxheWVyOjpwYWludExheWVyV2l0aEVmZmVj
dHMoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBMYXllclBhaQogICAgICAgICAvLyBN
YWtlIHN1cmUgdGhlIHBhcmVudCdzIGNsaXAgcmVjdHMgaGF2ZSBiZWVuIGNhbGN1bGF0ZWQuCiAg
ICAgICAgIENsaXBSZWN0IGNsaXBSZWN0ID0gcGFpbnRpbmdJbmZvLnBhaW50RGlydHlSZWN0Owog
ICAgICAgICBpZiAocGFyZW50KCkpIHsKLSAgICAgICAgICAgIENsaXBSZWN0c0NvbnRleHQgY2xp
cFJlY3RzQ29udGV4dChwYWludGluZ0luZm8ucm9vdExheWVyLCAocGFpbnRGbGFncyAmIFBhaW50
TGF5ZXJUZW1wb3JhcnlDbGlwUmVjdHMpID8gVGVtcG9yYXJ5Q2xpcFJlY3RzIDogUGFpbnRpbmdD
bGlwUmVjdHMsCi0gICAgICAgICAgICAgICAgSWdub3JlT3ZlcmxheVNjcm9sbGJhclNpemUsIChw
YWludEZsYWdzICYgUGFpbnRMYXllclBhaW50aW5nT3ZlcmZsb3dDb250ZW50cykgPyBJZ25vcmVP
dmVyZmxvd0NsaXAgOiBSZXNwZWN0T3ZlcmZsb3dDbGlwKTsKKyAgICAgICAgICAgIENsaXBSZWN0
c0NvbnRleHQgY2xpcFJlY3RzQ29udGV4dChwYWludGluZ0luZm8ucm9vdExheWVyLCAocGFpbnRG
bGFncyAmIFBhaW50TGF5ZXJGbGFnOjpUZW1wb3JhcnlDbGlwUmVjdHMpID8gVGVtcG9yYXJ5Q2xp
cFJlY3RzIDogUGFpbnRpbmdDbGlwUmVjdHMsCisgICAgICAgICAgICAgICAgSWdub3JlT3Zlcmxh
eVNjcm9sbGJhclNpemUsIChwYWludEZsYWdzICYgUGFpbnRMYXllckZsYWc6OlBhaW50aW5nT3Zl
cmZsb3dDb250ZW50cykgPyBJZ25vcmVPdmVyZmxvd0NsaXAgOiBSZXNwZWN0T3ZlcmZsb3dDbGlw
KTsKICAgICAgICAgICAgIGNsaXBSZWN0ID0gYmFja2dyb3VuZENsaXBSZWN0KGNsaXBSZWN0c0Nv
bnRleHQpOwogICAgICAgICAgICAgY2xpcFJlY3QuaW50ZXJzZWN0KHBhaW50aW5nSW5mby5wYWlu
dERpcnR5UmVjdCk7CiAgICAgICAgIApAQCAtNDM2MCwxMyArNDM2MCwxMyBAQCB2b2lkIFJlbmRl
ckxheWVyOjpwYWludExheWVyQ29udGVudHNBbmRSZWZsZWN0aW9uKEdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCwgY29ucwogewogICAgIEFTU0VSVChpc1NlbGZQYWludGluZ0xheWVyKCkgfHwgaGFz
U2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5kYW50KCkpOwogCi0gICAgYXV0byBsb2NhbFBhaW50Rmxh
Z3MgPSBwYWludEZsYWdzIC0gUGFpbnRMYXllckFwcGxpZWRUcmFuc2Zvcm07CisgICAgYXV0byBs
b2NhbFBhaW50RmxhZ3MgPSBwYWludEZsYWdzIC0gUGFpbnRMYXllckZsYWc6OkFwcGxpZWRUcmFu
c2Zvcm07CiAKICAgICAvLyBQYWludCB0aGUgcmVmbGVjdGlvbiBmaXJzdCBpZiB3ZSBoYXZlIG9u
ZS4KICAgICBpZiAobV9yZWZsZWN0aW9uICYmICFtX3BhaW50aW5nSW5zaWRlUmVmbGVjdGlvbikg
ewogICAgICAgICAvLyBNYXJrIHRoYXQgd2UgYXJlIG5vdyBpbnNpZGUgcmVwbGljYSBwYWludGlu
Zy4KICAgICAgICAgbV9wYWludGluZ0luc2lkZVJlZmxlY3Rpb24gPSB0cnVlOwotICAgICAgICBy
ZWZsZWN0aW9uTGF5ZXIoKS0+cGFpbnRMYXllcihjb250ZXh0LCBwYWludGluZ0luZm8sIGxvY2Fs
UGFpbnRGbGFncyB8IFBhaW50TGF5ZXJQYWludGluZ1JlZmxlY3Rpb24pOworICAgICAgICByZWZs
ZWN0aW9uTGF5ZXIoKS0+cGFpbnRMYXllcihjb250ZXh0LCBwYWludGluZ0luZm8sIGxvY2FsUGFp
bnRGbGFncyB8IFBhaW50TGF5ZXJGbGFnOjpQYWludGluZ1JlZmxlY3Rpb24pOwogICAgICAgICBt
X3BhaW50aW5nSW5zaWRlUmVmbGVjdGlvbiA9IGZhbHNlOwogICAgIH0KIApAQCAtNDQ3Nyw3ICs0
NDc3LDcgQEAgUmVuZGVyTGF5ZXJGaWx0ZXJzKiBSZW5kZXJMYXllcjo6ZmlsdGVyc0ZvclBhaW50
aW5nKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgT3AKICAgICBpZiAoY29udGV4dC5wYWludGlu
Z0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgaWYgKHBhaW50Rmxh
Z3MgJiBQYWludExheWVyUGFpbnRpbmdPdmVybGF5U2Nyb2xsYmFycykKKyAgICBpZiAocGFpbnRG
bGFncyAmIFBhaW50TGF5ZXJGbGFnOjpQYWludGluZ092ZXJsYXlTY3JvbGxiYXJzKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGlmICghcGFpbnRzV2l0aEZpbHRlcnMoKSkKQEAgLTQ1
MzMsMTUgKzQ1MzMsMTUgQEAgdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRMYXllckNvbnRlbnRzKEdy
YXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgTGF5ZXJQYWludGkKICAgICBpZiAoY29udGV4
dC5kZXRlY3RpbmdDb250ZW50ZnVsUGFpbnQoKSAmJiBjb250ZXh0LmNvbnRlbmZ1bFBhaW50RGV0
ZWN0ZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBsb2NhbFBhaW50RmxhZ3MgPSBw
YWludEZsYWdzIC0gUGFpbnRMYXllckFwcGxpZWRUcmFuc2Zvcm07Ci0gICAgYm9vbCBoYXZlVHJh
bnNwYXJlbmN5ID0gbG9jYWxQYWludEZsYWdzLmNvbnRhaW5zKFBhaW50TGF5ZXJIYXZlVHJhbnNw
YXJlbmN5KTsKKyAgICBhdXRvIGxvY2FsUGFpbnRGbGFncyA9IHBhaW50RmxhZ3MgLSBQYWludExh
eWVyRmxhZzo6QXBwbGllZFRyYW5zZm9ybTsKKyAgICBib29sIGhhdmVUcmFuc3BhcmVuY3kgPSBs
b2NhbFBhaW50RmxhZ3MuY29udGFpbnMoUGFpbnRMYXllckZsYWc6OkhhdmVUcmFuc3BhcmVuY3kp
OwogICAgIGJvb2wgaXNTZWxmUGFpbnRpbmdMYXllciA9IHRoaXMtPmlzU2VsZlBhaW50aW5nTGF5
ZXIoKTsKLSAgICBib29sIGlzUGFpbnRpbmdPdmVybGF5U2Nyb2xsYmFycyA9IHBhaW50RmxhZ3Mu
Y29udGFpbnMoUGFpbnRMYXllclBhaW50aW5nT3ZlcmxheVNjcm9sbGJhcnMpOwotICAgIGJvb2wg
aXNQYWludGluZ1Njcm9sbGluZ0NvbnRlbnQgPSBwYWludEZsYWdzLmNvbnRhaW5zKFBhaW50TGF5
ZXJQYWludGluZ0NvbXBvc2l0aW5nU2Nyb2xsaW5nUGhhc2UpOwotICAgIGJvb2wgaXNQYWludGlu
Z0NvbXBvc2l0ZWRGb3JlZ3JvdW5kID0gcGFpbnRGbGFncy5jb250YWlucyhQYWludExheWVyUGFp
bnRpbmdDb21wb3NpdGluZ0ZvcmVncm91bmRQaGFzZSk7Ci0gICAgYm9vbCBpc1BhaW50aW5nQ29t
cG9zaXRlZEJhY2tncm91bmQgPSBwYWludEZsYWdzLmNvbnRhaW5zKFBhaW50TGF5ZXJQYWludGlu
Z0NvbXBvc2l0aW5nQmFja2dyb3VuZFBoYXNlKTsKLSAgICBib29sIGlzUGFpbnRpbmdPdmVyZmxv
d0NvbnRlbnRzID0gcGFpbnRGbGFncy5jb250YWlucyhQYWludExheWVyUGFpbnRpbmdPdmVyZmxv
d0NvbnRlbnRzKTsKLSAgICBib29sIGlzQ29sbGVjdGluZ0V2ZW50UmVnaW9uID0gcGFpbnRGbGFn
cy5jb250YWlucyhQYWludExheWVyQ29sbGVjdGluZ0V2ZW50UmVnaW9uKTsKKyAgICBib29sIGlz
UGFpbnRpbmdPdmVybGF5U2Nyb2xsYmFycyA9IHBhaW50RmxhZ3MuY29udGFpbnMoUGFpbnRMYXll
ckZsYWc6OlBhaW50aW5nT3ZlcmxheVNjcm9sbGJhcnMpOworICAgIGJvb2wgaXNQYWludGluZ1Nj
cm9sbGluZ0NvbnRlbnQgPSBwYWludEZsYWdzLmNvbnRhaW5zKFBhaW50TGF5ZXJGbGFnOjpQYWlu
dGluZ0NvbXBvc2l0aW5nU2Nyb2xsaW5nUGhhc2UpOworICAgIGJvb2wgaXNQYWludGluZ0NvbXBv
c2l0ZWRGb3JlZ3JvdW5kID0gcGFpbnRGbGFncy5jb250YWlucyhQYWludExheWVyRmxhZzo6UGFp
bnRpbmdDb21wb3NpdGluZ0ZvcmVncm91bmRQaGFzZSk7CisgICAgYm9vbCBpc1BhaW50aW5nQ29t
cG9zaXRlZEJhY2tncm91bmQgPSBwYWludEZsYWdzLmNvbnRhaW5zKFBhaW50TGF5ZXJGbGFnOjpQ
YWludGluZ0NvbXBvc2l0aW5nQmFja2dyb3VuZFBoYXNlKTsKKyAgICBib29sIGlzUGFpbnRpbmdP
dmVyZmxvd0NvbnRlbnRzID0gcGFpbnRGbGFncy5jb250YWlucyhQYWludExheWVyRmxhZzo6UGFp
bnRpbmdPdmVyZmxvd0NvbnRlbnRzKTsKKyAgICBib29sIGlzQ29sbGVjdGluZ0V2ZW50UmVnaW9u
ID0gcGFpbnRGbGFncy5jb250YWlucyhQYWludExheWVyRmxhZzo6Q29sbGVjdGluZ0V2ZW50UmVn
aW9uKTsKICAgICAvLyBPdXRsaW5lIGFsd2F5cyBuZWVkcyB0byBiZSBwYWludGVkIGV2ZW4gaWYg
d2UgaGF2ZSBubyB2aXNpYmxlIGNvbnRlbnQuIEFsc28sCiAgICAgLy8gdGhlIG91dGxpbmUgaXMg
cGFpbnRlZCBpbiB0aGUgYmFja2dyb3VuZCBwaGFzZSBkdXJpbmcgY29tcG9zaXRlZCBzY3JvbGxp
bmcuCiAgICAgLy8gSWYgaXQgd2VyZSBwYWludGVkIGluIHRoZSBmb3JlZ3JvdW5kIHBoYXNlLCBp
dCB3b3VsZCBtb3ZlIHdpdGggdGhlIHNjcm9sbGVkCkBAIC00NTU0LDcgKzQ1NTQsNyBAQCB2b2lk
IFJlbmRlckxheWVyOjpwYWludExheWVyQ29udGVudHMoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0
LCBjb25zdCBMYXllclBhaW50aQogICAgICAgICB8fCAoIWlzUGFpbnRpbmdTY3JvbGxpbmdDb250
ZW50ICYmIGlzUGFpbnRpbmdDb21wb3NpdGVkRm9yZWdyb3VuZCkpOwogICAgIGJvb2wgc2hvdWxk
UGFpbnRDb250ZW50ID0gbV9oYXNWaXNpYmxlQ29udGVudCAmJiBpc1NlbGZQYWludGluZ0xheWVy
ICYmICFpc1BhaW50aW5nT3ZlcmxheVNjcm9sbGJhcnMgJiYgIWlzQ29sbGVjdGluZ0V2ZW50UmVn
aW9uOwogCi0gICAgaWYgKGxvY2FsUGFpbnRGbGFncyAmIFBhaW50TGF5ZXJQYWludGluZ1Jvb3RC
YWNrZ3JvdW5kT25seSAmJiAhcmVuZGVyZXIoKS5pc1JlbmRlclZpZXcoKSAmJiAhcmVuZGVyZXIo
KS5pc0RvY3VtZW50RWxlbWVudFJlbmRlcmVyKCkpIHsKKyAgICBpZiAobG9jYWxQYWludEZsYWdz
ICYgUGFpbnRMYXllckZsYWc6OlBhaW50aW5nUm9vdEJhY2tncm91bmRPbmx5ICYmICFyZW5kZXJl
cigpLmlzUmVuZGVyVmlldygpICYmICFyZW5kZXJlcigpLmlzRG9jdW1lbnRFbGVtZW50UmVuZGVy
ZXIoKSkgewogICAgICAgICAvLyBJZiBiZWdpblRyYW5zcGFyZW5jeUxheWVycyB3YXMgY2FsbGVk
IHByaW9yIHRvIHRoaXMsIGVuc3VyZSB0aGUgdHJhbnNwYXJlbmN5IHN0YXRlIGlzIGNsZWFuZWQg
dXAgYmVmb3JlIHJldHVybmluZy4KICAgICAgICAgaWYgKGhhdmVUcmFuc3BhcmVuY3kgJiYgbV91
c2VkVHJhbnNwYXJlbmN5ICYmICFtX3BhaW50aW5nSW5zaWRlUmVmbGVjdGlvbikgewogICAgICAg
ICAgICAgY29udGV4dC5lbmRUcmFuc3BhcmVuY3lMYXllcigpOwpAQCAtNDYxMiw5ICs0NjEyLDkg
QEAgdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRMYXllckNvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCwgY29uc3QgTGF5ZXJQYWludGkKICAgICAgICAgICAgIHBlcmZvcm1PdmVybGFwVGVz
dHMoKmxvY2FsUGFpbnRpbmdJbmZvLm92ZXJsYXBUZXN0UmVxdWVzdHMsIGxvY2FsUGFpbnRpbmdJ
bmZvLnJvb3RMYXllciwgdGhpcyk7CiAKICAgICAgICAgT3B0aW9uU2V0PFBhaW50QmVoYXZpb3I+
IHBhaW50QmVoYXZpb3IgPSBQYWludEJlaGF2aW9yOjpOb3JtYWw7Ci0gICAgICAgIGlmIChsb2Nh
bFBhaW50RmxhZ3MgJiBQYWludExheWVyUGFpbnRpbmdTa2lwUm9vdEJhY2tncm91bmQpCisgICAg
ICAgIGlmIChsb2NhbFBhaW50RmxhZ3MgJiBQYWludExheWVyRmxhZzo6UGFpbnRpbmdTa2lwUm9v
dEJhY2tncm91bmQpCiAgICAgICAgICAgICBwYWludEJlaGF2aW9yLmFkZChQYWludEJlaGF2aW9y
OjpTa2lwUm9vdEJhY2tncm91bmQpOwotICAgICAgICBlbHNlIGlmIChsb2NhbFBhaW50RmxhZ3Mg
JiBQYWludExheWVyUGFpbnRpbmdSb290QmFja2dyb3VuZE9ubHkpCisgICAgICAgIGVsc2UgaWYg
KGxvY2FsUGFpbnRGbGFncyAmIFBhaW50TGF5ZXJGbGFnOjpQYWludGluZ1Jvb3RCYWNrZ3JvdW5k
T25seSkKICAgICAgICAgICAgIHBhaW50QmVoYXZpb3IuYWRkKFBhaW50QmVoYXZpb3I6OlJvb3RC
YWNrZ3JvdW5kT25seSk7CiAKICAgICAgICAgaWYgKHBhaW50aW5nSW5mby5wYWludEJlaGF2aW9y
ICYgUGFpbnRCZWhhdmlvcjo6RmxhdHRlbkNvbXBvc2l0aW5nTGF5ZXJzKQpAQCAtNDY0Myw3ICs0
NjQzLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRMYXllckNvbnRlbnRzKEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgTGF5ZXJQYWludGkKICAgICAgICAgICAgICAgICBwYWludERp
cnR5UmVjdCA9IGNsaXBSZWN0UmVsYXRpdmVUb0FuY2VzdG9yKGxvY2FsUGFpbnRpbmdJbmZvLnJv
b3RMYXllciwgb2Zmc2V0RnJvbVJvb3QsIExheW91dFJlY3Q6OmluZmluaXRlUmVjdCgpKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIGNvbGxlY3RGcmFnbWVudHMobGF5ZXJGcmFnbWVudHMs
IGxvY2FsUGFpbnRpbmdJbmZvLnJvb3RMYXllciwgcGFpbnREaXJ0eVJlY3QsIEV4Y2x1ZGVDb21w
b3NpdGVkUGFnaW5hdGVkTGF5ZXJzLAotICAgICAgICAgICAgICAgIChsb2NhbFBhaW50RmxhZ3Mg
JiBQYWludExheWVyVGVtcG9yYXJ5Q2xpcFJlY3RzKSA/IFRlbXBvcmFyeUNsaXBSZWN0cyA6IFBh
aW50aW5nQ2xpcFJlY3RzLCBJZ25vcmVPdmVybGF5U2Nyb2xsYmFyU2l6ZSwKKyAgICAgICAgICAg
ICAgICAobG9jYWxQYWludEZsYWdzICYgUGFpbnRMYXllckZsYWc6OlRlbXBvcmFyeUNsaXBSZWN0
cykgPyBUZW1wb3JhcnlDbGlwUmVjdHMgOiBQYWludGluZ0NsaXBSZWN0cywgSWdub3JlT3Zlcmxh
eVNjcm9sbGJhclNpemUsCiAgICAgICAgICAgICAgICAgKGlzUGFpbnRpbmdPdmVyZmxvd0NvbnRl
bnRzKSA/IElnbm9yZU92ZXJmbG93Q2xpcCA6IFJlc3BlY3RPdmVyZmxvd0NsaXAsIG9mZnNldEZy
b21Sb290KTsKICAgICAgICAgICAgIHVwZGF0ZVBhaW50aW5nSW5mb0ZvckZyYWdtZW50cyhsYXll
ckZyYWdtZW50cywgbG9jYWxQYWludGluZ0luZm8sIGxvY2FsUGFpbnRGbGFncywgc2hvdWxkUGFp
bnRDb250ZW50LCBvZmZzZXRGcm9tUm9vdCk7CiAgICAgICAgIH0KQEAgLTQ2OTAsNyArNDY5MCw3
IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXJDb250ZW50cyhHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQsIGNvbnN0IExheWVyUGFpbnRpCiAgICAgICAgICAgICAvLyBOb3RlIHRoYXQgd2Ug
YWxzbyB1c2UgcGFpbnRpbmdJbmZvIGhlcmUsIG5vdCBsb2NhbFBhaW50aW5nSW5mbyB3aGljaCBm
aWx0ZXJzIGFsc28gY29udGFtaW5hdGVkLgogICAgICAgICAgICAgTGF5ZXJGcmFnbWVudHMgbGF5
ZXJGcmFnbWVudHM7CiAgICAgICAgICAgICBjb2xsZWN0RnJhZ21lbnRzKGxheWVyRnJhZ21lbnRz
LCBwYWludGluZ0luZm8ucm9vdExheWVyLCBwYWludGluZ0luZm8ucGFpbnREaXJ0eVJlY3QsIEV4
Y2x1ZGVDb21wb3NpdGVkUGFnaW5hdGVkTGF5ZXJzLAotICAgICAgICAgICAgICAgIChsb2NhbFBh
aW50RmxhZ3MgJiBQYWludExheWVyVGVtcG9yYXJ5Q2xpcFJlY3RzKSA/IFRlbXBvcmFyeUNsaXBS
ZWN0cyA6IFBhaW50aW5nQ2xpcFJlY3RzLCBJZ25vcmVPdmVybGF5U2Nyb2xsYmFyU2l6ZSwKKyAg
ICAgICAgICAgICAgICAobG9jYWxQYWludEZsYWdzICYgUGFpbnRMYXllckZsYWc6OlRlbXBvcmFy
eUNsaXBSZWN0cykgPyBUZW1wb3JhcnlDbGlwUmVjdHMgOiBQYWludGluZ0NsaXBSZWN0cywgSWdu
b3JlT3ZlcmxheVNjcm9sbGJhclNpemUsCiAgICAgICAgICAgICAgICAgKGlzUGFpbnRpbmdPdmVy
Zmxvd0NvbnRlbnRzKSA/IElnbm9yZU92ZXJmbG93Q2xpcCA6IFJlc3BlY3RPdmVyZmxvd0NsaXAs
IG9mZnNldEZyb21Sb290KTsKICAgICAgICAgICAgIHVwZGF0ZVBhaW50aW5nSW5mb0ZvckZyYWdt
ZW50cyhsYXllckZyYWdtZW50cywgcGFpbnRpbmdJbmZvLCBsb2NhbFBhaW50RmxhZ3MsIHNob3Vs
ZFBhaW50Q29udGVudCwgb2Zmc2V0RnJvbVJvb3QpOwogCkBAIC00NzE3LDEyICs0NzE3LDEyIEBA
IHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXJDb250ZW50cyhHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQsIGNvbnN0IExheWVyUGFpbnRpCiAgICAgICAgICAgICBwYWludE1hc2tGb3JGcmFnbWVu
dHMobGF5ZXJGcmFnbWVudHMsIGNvbnRleHQsIHBhaW50aW5nSW5mbywgcGFpbnRCZWhhdmlvciwg
c3VidHJlZVBhaW50Um9vdEZvclJlbmRlcmVyKTsKICAgICAgICAgfQogCi0gICAgICAgIGlmICgh
KHBhaW50RmxhZ3MgJiBQYWludExheWVyUGFpbnRpbmdDb21wb3NpdGluZ01hc2tQaGFzZSkgJiYg
KHBhaW50RmxhZ3MgJiBQYWludExheWVyUGFpbnRpbmdDb21wb3NpdGluZ0NsaXBQYXRoUGhhc2Up
KSB7CisgICAgICAgIGlmICghKHBhaW50RmxhZ3MgJiBQYWludExheWVyRmxhZzo6UGFpbnRpbmdD
b21wb3NpdGluZ01hc2tQaGFzZSkgJiYgKHBhaW50RmxhZ3MgJiBQYWludExheWVyRmxhZzo6UGFp
bnRpbmdDb21wb3NpdGluZ0NsaXBQYXRoUGhhc2UpKSB7CiAgICAgICAgICAgICAvLyBSZS11c2Ug
cGFpbnRDaGlsZENsaXBwaW5nTWFza0ZvckZyYWdtZW50cyB0byBwYWludCBibGFjayBmb3IgdGhl
IGNvbXBvc2l0aW5nIGNsaXBwaW5nIG1hc2suCiAgICAgICAgICAgICBwYWludENoaWxkQ2xpcHBp
bmdNYXNrRm9yRnJhZ21lbnRzKGxheWVyRnJhZ21lbnRzLCBjb250ZXh0LCBwYWludGluZ0luZm8s
IHBhaW50QmVoYXZpb3IsIHN1YnRyZWVQYWludFJvb3RGb3JSZW5kZXJlcik7CiAgICAgICAgIH0K
ICAgICAgICAgCi0gICAgICAgIGlmIChsb2NhbFBhaW50RmxhZ3MgJiBQYWludExheWVyUGFpbnRp
bmdDaGlsZENsaXBwaW5nTWFza1BoYXNlKSB7CisgICAgICAgIGlmIChsb2NhbFBhaW50RmxhZ3Mg
JiBQYWludExheWVyRmxhZzo6UGFpbnRpbmdDaGlsZENsaXBwaW5nTWFza1BoYXNlKSB7CiAgICAg
ICAgICAgICAvLyBQYWludCB0aGUgYm9yZGVyIHJhZGl1cyBtYXNrIGZvciB0aGUgZnJhZ21lbnRz
LgogICAgICAgICAgICAgcGFpbnRDaGlsZENsaXBwaW5nTWFza0ZvckZyYWdtZW50cyhsYXllckZy
YWdtZW50cywgY29udGV4dCwgcGFpbnRpbmdJbmZvLCBwYWludEJlaGF2aW9yLCBzdWJ0cmVlUGFp
bnRSb290Rm9yUmVuZGVyZXIpOwogICAgICAgICB9CkBAIC00OTU0LDcgKzQ5NTQsNyBAQCB2b2lk
IFJlbmRlckxheWVyOjp1cGRhdGVQYWludGluZ0luZm9Gb3JGcmFnbWVudHMoTGF5ZXJGcmFnbWVu
dHMmIGZyYWdtZW50cywgY29ucwogewogICAgIGZvciAoYXV0byYgZnJhZ21lbnQgOiBmcmFnbWVu
dHMpIHsKICAgICAgICAgZnJhZ21lbnQuc2hvdWxkUGFpbnRDb250ZW50ID0gc2hvdWxkUGFpbnRD
b250ZW50OwotICAgICAgICBpZiAodGhpcyAhPSBsb2NhbFBhaW50aW5nSW5mby5yb290TGF5ZXIg
fHwgIShsb2NhbFBhaW50RmxhZ3MgJiBQYWludExheWVyUGFpbnRpbmdPdmVyZmxvd0NvbnRlbnRz
KSkgeworICAgICAgICBpZiAodGhpcyAhPSBsb2NhbFBhaW50aW5nSW5mby5yb290TGF5ZXIgfHwg
IShsb2NhbFBhaW50RmxhZ3MgJiBQYWludExheWVyRmxhZzo6UGFpbnRpbmdPdmVyZmxvd0NvbnRl
bnRzKSkgewogICAgICAgICAgICAgTGF5b3V0U2l6ZSBuZXdPZmZzZXRGcm9tUm9vdCA9IG9mZnNl
dEZyb21Sb290ICsgZnJhZ21lbnQucGFnaW5hdGlvbk9mZnNldDsKICAgICAgICAgICAgIGZyYWdt
ZW50LnNob3VsZFBhaW50Q29udGVudCAmPSBpbnRlcnNlY3RzRGFtYWdlUmVjdChmcmFnbWVudC5s
YXllckJvdW5kcywgZnJhZ21lbnQuYmFja2dyb3VuZFJlY3QucmVjdCgpLCBsb2NhbFBhaW50aW5n
SW5mby5yb290TGF5ZXIsIG5ld09mZnNldEZyb21Sb290LCBmcmFnbWVudC5ib3VuZGluZ0JveCk7
CiAgICAgICAgIH0KQEAgLTQ5NjgsOCArNDk2OCw4IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50
VHJhbnNmb3JtZWRMYXllckludG9GcmFnbWVudHMoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBj
CiAgICAgUmVuZGVyTGF5ZXIqIHBhZ2luYXRlZExheWVyID0gZW5jbG9zaW5nUGFnaW5hdGlvbkxh
eWVyKEV4Y2x1ZGVDb21wb3NpdGVkUGFnaW5hdGVkTGF5ZXJzKTsKICAgICBMYXlvdXRSZWN0IHRy
YW5zZm9ybWVkRXh0ZW50ID0gdHJhbnNwYXJlbmN5Q2xpcEJveCgqdGhpcywgcGFnaW5hdGVkTGF5
ZXIsIFBhaW50aW5nVHJhbnNwYXJlbmN5Q2xpcEJveCwgUm9vdE9mVHJhbnNwYXJlbmN5Q2xpcEJv
eCwgcGFpbnRpbmdJbmZvLnBhaW50QmVoYXZpb3IpOwogICAgIHBhZ2luYXRlZExheWVyLT5jb2xs
ZWN0RnJhZ21lbnRzKGVuY2xvc2luZ1BhZ2luYXRpb25GcmFnbWVudHMsIHBhaW50aW5nSW5mby5y
b290TGF5ZXIsIHBhaW50aW5nSW5mby5wYWludERpcnR5UmVjdCwgRXhjbHVkZUNvbXBvc2l0ZWRQ
YWdpbmF0ZWRMYXllcnMsCi0gICAgICAgIChwYWludEZsYWdzICYgUGFpbnRMYXllclRlbXBvcmFy
eUNsaXBSZWN0cykgPyBUZW1wb3JhcnlDbGlwUmVjdHMgOiBQYWludGluZ0NsaXBSZWN0cywgSWdu
b3JlT3ZlcmxheVNjcm9sbGJhclNpemUsCi0gICAgICAgIChwYWludEZsYWdzICYgUGFpbnRMYXll
clBhaW50aW5nT3ZlcmZsb3dDb250ZW50cykgPyBJZ25vcmVPdmVyZmxvd0NsaXAgOiBSZXNwZWN0
T3ZlcmZsb3dDbGlwLCBvZmZzZXRPZlBhZ2luYXRpb25MYXllckZyb21Sb290LCAmdHJhbnNmb3Jt
ZWRFeHRlbnQpOworICAgICAgICAocGFpbnRGbGFncyAmIFBhaW50TGF5ZXJGbGFnOjpUZW1wb3Jh
cnlDbGlwUmVjdHMpID8gVGVtcG9yYXJ5Q2xpcFJlY3RzIDogUGFpbnRpbmdDbGlwUmVjdHMsIEln
bm9yZU92ZXJsYXlTY3JvbGxiYXJTaXplLAorICAgICAgICAocGFpbnRGbGFncyAmIFBhaW50TGF5
ZXJGbGFnOjpQYWludGluZ092ZXJmbG93Q29udGVudHMpID8gSWdub3JlT3ZlcmZsb3dDbGlwIDog
UmVzcGVjdE92ZXJmbG93Q2xpcCwgb2Zmc2V0T2ZQYWdpbmF0aW9uTGF5ZXJGcm9tUm9vdCwgJnRy
YW5zZm9ybWVkRXh0ZW50KTsKICAgICAKICAgICBmb3IgKGNvbnN0IGF1dG8mIGZyYWdtZW50IDog
ZW5jbG9zaW5nUGFnaW5hdGlvbkZyYWdtZW50cykgewogICAgICAgICAvLyBBcHBseSB0aGUgcGFn
ZS9jb2x1bW4gY2xpcCBmb3IgdGhpcyBmcmFnbWVudCwgYXMgd2VsbCBhcyBhbnkgY2xpcHMgZXN0
YWJsaXNoZWQgYnkgbGF5ZXJzIGluIGJldHdlZW4gdXMgYW5kCkBAIC00OTgwLDggKzQ5ODAsOCBA
QCB2b2lkIFJlbmRlckxheWVyOjpwYWludFRyYW5zZm9ybWVkTGF5ZXJJbnRvRnJhZ21lbnRzKEdy
YXBoaWNzQ29udGV4dCYgY29udGV4dCwgYwogICAgICAgICBpZiAocGFyZW50KCkgIT0gcGFnaW5h
dGVkTGF5ZXIpIHsKICAgICAgICAgICAgIG9mZnNldE9mUGFnaW5hdGlvbkxheWVyRnJvbVJvb3Qg
PSB0b0xheW91dFNpemUocGFnaW5hdGVkTGF5ZXItPmNvbnZlcnRUb0xheWVyQ29vcmRzKHBhaW50
aW5nSW5mby5yb290TGF5ZXIsIHRvTGF5b3V0UG9pbnQob2Zmc2V0T2ZQYWdpbmF0aW9uTGF5ZXJG
cm9tUm9vdCkpKTsKICAgICAKLSAgICAgICAgICAgIENsaXBSZWN0c0NvbnRleHQgY2xpcFJlY3Rz
Q29udGV4dChwYWdpbmF0ZWRMYXllciwgKHBhaW50RmxhZ3MgJiBQYWludExheWVyVGVtcG9yYXJ5
Q2xpcFJlY3RzKSA/IFRlbXBvcmFyeUNsaXBSZWN0cyA6IFBhaW50aW5nQ2xpcFJlY3RzLAotICAg
ICAgICAgICAgICAgIElnbm9yZU92ZXJsYXlTY3JvbGxiYXJTaXplLCAocGFpbnRGbGFncyAmIFBh
aW50TGF5ZXJQYWludGluZ092ZXJmbG93Q29udGVudHMpID8gSWdub3JlT3ZlcmZsb3dDbGlwIDog
UmVzcGVjdE92ZXJmbG93Q2xpcCk7CisgICAgICAgICAgICBDbGlwUmVjdHNDb250ZXh0IGNsaXBS
ZWN0c0NvbnRleHQocGFnaW5hdGVkTGF5ZXIsIChwYWludEZsYWdzICYgUGFpbnRMYXllckZsYWc6
OlRlbXBvcmFyeUNsaXBSZWN0cykgPyBUZW1wb3JhcnlDbGlwUmVjdHMgOiBQYWludGluZ0NsaXBS
ZWN0cywKKyAgICAgICAgICAgICAgICBJZ25vcmVPdmVybGF5U2Nyb2xsYmFyU2l6ZSwgKHBhaW50
RmxhZ3MgJiBQYWludExheWVyRmxhZzo6UGFpbnRpbmdPdmVyZmxvd0NvbnRlbnRzKSA/IElnbm9y
ZU92ZXJmbG93Q2xpcCA6IFJlc3BlY3RPdmVyZmxvd0NsaXApOwogICAgICAgICAgICAgTGF5b3V0
UmVjdCBwYXJlbnRDbGlwUmVjdCA9IGJhY2tncm91bmRDbGlwUmVjdChjbGlwUmVjdHNDb250ZXh0
KS5yZWN0KCk7CiAgICAgICAgICAgICBwYXJlbnRDbGlwUmVjdC5tb3ZlKGZyYWdtZW50LnBhZ2lu
YXRpb25PZmZzZXQgKyBvZmZzZXRPZlBhZ2luYXRpb25MYXllckZyb21Sb290KTsKICAgICAgICAg
ICAgIGNsaXBSZWN0LmludGVyc2VjdChwYXJlbnRDbGlwUmVjdCk7CkBAIC02MzM1LDcgKzYzMzUs
NyBAQCBib29sIFJlbmRlckxheWVyOjpzaG91bGRQYWludE1hc2soT3B0aW9uU2V0PFBhaW50QmVo
YXZpb3I+IHBhaW50QmVoYXZpb3IsIE9wdGlvbgogICAgIGlmIChwYWludHNUb1dpbmRvdyB8fCAo
cGFpbnRCZWhhdmlvciAmIFBhaW50QmVoYXZpb3I6OkZsYXR0ZW5Db21wb3NpdGluZ0xheWVycykp
CiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgcmV0dXJuIHBhaW50RmxhZ3MuY29udGFpbnMo
UGFpbnRMYXllclBhaW50aW5nQ29tcG9zaXRpbmdNYXNrUGhhc2UpOworICAgIHJldHVybiBwYWlu
dEZsYWdzLmNvbnRhaW5zKFBhaW50TGF5ZXJGbGFnOjpQYWludGluZ0NvbXBvc2l0aW5nTWFza1Bo
YXNlKTsKIH0KIAogYm9vbCBSZW5kZXJMYXllcjo6c2hvdWxkQXBwbHlDbGlwUGF0aChPcHRpb25T
ZXQ8UGFpbnRCZWhhdmlvcj4gcGFpbnRCZWhhdmlvciwgT3B0aW9uU2V0PFBhaW50TGF5ZXJGbGFn
PiBwYWludEZsYWdzKSBjb25zdApAQCAtNjM0Nyw3ICs2MzQ3LDcgQEAgYm9vbCBSZW5kZXJMYXll
cjo6c2hvdWxkQXBwbHlDbGlwUGF0aChPcHRpb25TZXQ8UGFpbnRCZWhhdmlvcj4gcGFpbnRCZWhh
dmlvciwgT3AKICAgICBpZiAocGFpbnRzVG9XaW5kb3cgfHwgKHBhaW50QmVoYXZpb3IgJiBQYWlu
dEJlaGF2aW9yOjpGbGF0dGVuQ29tcG9zaXRpbmdMYXllcnMpKQogICAgICAgICByZXR1cm4gdHJ1
ZTsKIAotICAgIHJldHVybiBwYWludEZsYWdzLmNvbnRhaW5zKFBhaW50TGF5ZXJQYWludGluZ0Nv
bXBvc2l0aW5nQ2xpcFBhdGhQaGFzZSk7CisgICAgcmV0dXJuIHBhaW50RmxhZ3MuY29udGFpbnMo
UGFpbnRMYXllckZsYWc6OlBhaW50aW5nQ29tcG9zaXRpbmdDbGlwUGF0aFBoYXNlKTsKIH0KIAog
Ym9vbCBSZW5kZXJMYXllcjo6c2Nyb2xsaW5nTWF5UmV2ZWFsQmFja2dyb3VuZCgpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IDMzNzE2MjMzMzg4ZGU5YzM2
ZTFhZjViOWFkNWI5ZWQwMTdiNTMzZmUuLmViOWZhY2U3MTI0ZThlZTljYjhhNzQyNjhlYzAyOTFh
ZWQwNGIyODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC02Njks
MjQgKzY2OSwyNCBAQCBwdWJsaWM6CiAKICAgICBpbnQgekluZGV4KCkgY29uc3QgeyByZXR1cm4g
cmVuZGVyZXIoKS5zdHlsZSgpLnVzZWRaSW5kZXgoKTsgfQogCi0gICAgZW51bSBQYWludExheWVy
RmxhZyB7Ci0gICAgICAgIFBhaW50TGF5ZXJIYXZlVHJhbnNwYXJlbmN5ICAgICAgICAgICAgICAg
ICAgICAgID0gMSA8PCAwLAotICAgICAgICBQYWludExheWVyQXBwbGllZFRyYW5zZm9ybSAgICAg
ICAgICAgICAgICAgICAgICA9IDEgPDwgMSwKLSAgICAgICAgUGFpbnRMYXllclRlbXBvcmFyeUNs
aXBSZWN0cyAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDIsCi0gICAgICAgIFBhaW50TGF5ZXJQ
YWludGluZ1JlZmxlY3Rpb24gICAgICAgICAgICAgICAgICAgID0gMSA8PCAzLAotICAgICAgICBQ
YWludExheWVyUGFpbnRpbmdPdmVybGF5U2Nyb2xsYmFycyAgICAgICAgICAgICA9IDEgPDwgNCwK
LSAgICAgICAgUGFpbnRMYXllclBhaW50aW5nQ29tcG9zaXRpbmdCYWNrZ3JvdW5kUGhhc2UgICAg
PSAxIDw8IDUsCi0gICAgICAgIFBhaW50TGF5ZXJQYWludGluZ0NvbXBvc2l0aW5nRm9yZWdyb3Vu
ZFBoYXNlICAgID0gMSA8PCA2LAotICAgICAgICBQYWludExheWVyUGFpbnRpbmdDb21wb3NpdGlu
Z01hc2tQaGFzZSAgICAgICAgICA9IDEgPDwgNywKLSAgICAgICAgUGFpbnRMYXllclBhaW50aW5n
Q29tcG9zaXRpbmdDbGlwUGF0aFBoYXNlICAgICAgPSAxIDw8IDgsCi0gICAgICAgIFBhaW50TGF5
ZXJQYWludGluZ0NvbXBvc2l0aW5nU2Nyb2xsaW5nUGhhc2UgICAgID0gMSA8PCA5LAotICAgICAg
ICBQYWludExheWVyUGFpbnRpbmdPdmVyZmxvd0NvbnRlbnRzICAgICAgICAgICAgICA9IDEgPDwg
MTAsCi0gICAgICAgIFBhaW50TGF5ZXJQYWludGluZ1Jvb3RCYWNrZ3JvdW5kT25seSAgICAgICAg
ICAgID0gMSA8PCAxMSwKLSAgICAgICAgUGFpbnRMYXllclBhaW50aW5nU2tpcFJvb3RCYWNrZ3Jv
dW5kICAgICAgICAgICAgPSAxIDw8IDEyLAotICAgICAgICBQYWludExheWVyUGFpbnRpbmdDaGls
ZENsaXBwaW5nTWFza1BoYXNlICAgICAgICA9IDEgPDwgMTMsCi0gICAgICAgIFBhaW50TGF5ZXJD
b2xsZWN0aW5nRXZlbnRSZWdpb24gICAgICAgICAgICAgICAgID0gMSA8PCAxNCwKKyAgICBlbnVt
IGNsYXNzIFBhaW50TGF5ZXJGbGFnIDogdWludDE2X3QgeworICAgICAgICBIYXZlVHJhbnNwYXJl
bmN5ICAgICAgICAgICAgICAgICAgICAgID0gMSA8PCAwLAorICAgICAgICBBcHBsaWVkVHJhbnNm
b3JtICAgICAgICAgICAgICAgICAgICAgID0gMSA8PCAxLAorICAgICAgICBUZW1wb3JhcnlDbGlw
UmVjdHMgICAgICAgICAgICAgICAgICAgID0gMSA8PCAyLAorICAgICAgICBQYWludGluZ1JlZmxl
Y3Rpb24gICAgICAgICAgICAgICAgICAgID0gMSA8PCAzLAorICAgICAgICBQYWludGluZ092ZXJs
YXlTY3JvbGxiYXJzICAgICAgICAgICAgID0gMSA8PCA0LAorICAgICAgICBQYWludGluZ0NvbXBv
c2l0aW5nQmFja2dyb3VuZFBoYXNlICAgID0gMSA8PCA1LAorICAgICAgICBQYWludGluZ0NvbXBv
c2l0aW5nRm9yZWdyb3VuZFBoYXNlICAgID0gMSA8PCA2LAorICAgICAgICBQYWludGluZ0NvbXBv
c2l0aW5nTWFza1BoYXNlICAgICAgICAgID0gMSA8PCA3LAorICAgICAgICBQYWludGluZ0NvbXBv
c2l0aW5nQ2xpcFBhdGhQaGFzZSAgICAgID0gMSA8PCA4LAorICAgICAgICBQYWludGluZ0NvbXBv
c2l0aW5nU2Nyb2xsaW5nUGhhc2UgICAgID0gMSA8PCA5LAorICAgICAgICBQYWludGluZ092ZXJm
bG93Q29udGVudHMgICAgICAgICAgICAgID0gMSA8PCAxMCwKKyAgICAgICAgUGFpbnRpbmdSb290
QmFja2dyb3VuZE9ubHkgICAgICAgICAgICA9IDEgPDwgMTEsCisgICAgICAgIFBhaW50aW5nU2tp
cFJvb3RCYWNrZ3JvdW5kICAgICAgICAgICAgPSAxIDw8IDEyLAorICAgICAgICBQYWludGluZ0No
aWxkQ2xpcHBpbmdNYXNrUGhhc2UgICAgICAgID0gMSA8PCAxMywKKyAgICAgICAgQ29sbGVjdGlu
Z0V2ZW50UmVnaW9uICAgICAgICAgICAgICAgICA9IDEgPDwgMTQsCiAgICAgfTsKLSAgICBzdGF0
aWMgY29uc3RleHByIE9wdGlvblNldDxQYWludExheWVyRmxhZz4gcGFpbnRMYXllclBhaW50aW5n
Q29tcG9zaXRpbmdBbGxQaGFzZXNGbGFncygpIHsgcmV0dXJuIHsgUGFpbnRMYXllclBhaW50aW5n
Q29tcG9zaXRpbmdCYWNrZ3JvdW5kUGhhc2UsIFBhaW50TGF5ZXJQYWludGluZ0NvbXBvc2l0aW5n
Rm9yZWdyb3VuZFBoYXNlIH07IH0KKyAgICBzdGF0aWMgY29uc3RleHByIE9wdGlvblNldDxQYWlu
dExheWVyRmxhZz4gcGFpbnRMYXllclBhaW50aW5nQ29tcG9zaXRpbmdBbGxQaGFzZXNGbGFncygp
IHsgcmV0dXJuIHsgUGFpbnRMYXllckZsYWc6OlBhaW50aW5nQ29tcG9zaXRpbmdCYWNrZ3JvdW5k
UGhhc2UsIFBhaW50TGF5ZXJGbGFnOjpQYWludGluZ0NvbXBvc2l0aW5nRm9yZWdyb3VuZFBoYXNl
IH07IH0KIAogICAgIGVudW0gY2xhc3MgU2VjdXJpdHlPcmlnaW5QYWludFBvbGljeSB7IEFueU9y
aWdpbiwgQWNjZXNzaWJsZU9yaWdpbk9ubHkgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCBlY2I2ZTMwMTkyNjBiZTk2YmI0ZGJm
YjdkYTQyNDc3NzU1OGRiNWRkLi45MjcxOWJiNGIwN2QwODQ1NGQ0MzcwNjBiNDUxNmU1MDRjZDcz
NWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmNwcApAQCAtMjk5OCw3ICsyOTk4LDcgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50
SW50b0xheWVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXAKICAgICBh
dXRvIHBhaW50RmxhZ3MgPSBwYWludEZsYWdzRm9yTGF5ZXIoKmdyYXBoaWNzTGF5ZXIpOwogCiAg
ICAgaWYgKGV2ZW50UmVnaW9uQ29udGV4dCkKLSAgICAgICAgcGFpbnRGbGFncy5hZGQoUmVuZGVy
TGF5ZXI6OlBhaW50TGF5ZXJDb2xsZWN0aW5nRXZlbnRSZWdpb24pOworICAgICAgICBwYWludEZs
YWdzLmFkZChSZW5kZXJMYXllcjo6UGFpbnRMYXllckZsYWc6OkNvbGxlY3RpbmdFdmVudFJlZ2lv
bik7CiAKICAgICBSZW5kZXJPYmplY3Q6OlNldExheW91dE5lZWRlZEZvcmJpZGRlblNjb3BlIGZv
cmJpZFNldE5lZWRzTGF5b3V0KHJlbmRlcmVyKCkpOwogCkBAIC0zMDE4LDcgKzMwMTgsNyBAQCB2
b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRJbnRvTGF5ZXIoY29uc3QgR3JhcGhpY3NMYXll
ciogZ3JhcGhpY3NMYXllciwgR3JhcAogICAgICAgICAgICAgbGF5ZXIucGFpbnRMYXllckNvbnRl
bnRzKGNvbnRleHQsIHBhaW50aW5nSW5mbywgcGFpbnRGbGFncyk7CiAKICAgICAgICAgICAgIGlm
IChsYXllci5jb250YWluc0RpcnR5T3ZlcmxheVNjcm9sbGJhcnMoKSAmJiAhZXZlbnRSZWdpb25D
b250ZXh0KQotICAgICAgICAgICAgICAgIGxheWVyLnBhaW50TGF5ZXJDb250ZW50cyhjb250ZXh0
LCBwYWludGluZ0luZm8sIHBhaW50RmxhZ3MgfCBSZW5kZXJMYXllcjo6UGFpbnRMYXllclBhaW50
aW5nT3ZlcmxheVNjcm9sbGJhcnMpOworICAgICAgICAgICAgICAgIGxheWVyLnBhaW50TGF5ZXJD
b250ZW50cyhjb250ZXh0LCBwYWludGluZ0luZm8sIHBhaW50RmxhZ3MgfCBSZW5kZXJMYXllcjo6
UGFpbnRMYXllckZsYWc6OlBhaW50aW5nT3ZlcmxheVNjcm9sbGJhcnMpOwogICAgICAgICB9IGVs
c2UKICAgICAgICAgICAgIGxheWVyLnBhaW50TGF5ZXJXaXRoRWZmZWN0cyhjb250ZXh0LCBwYWlu
dGluZ0luZm8sIHBhaW50RmxhZ3MpOwogCkBAIC0zMDM5LDEzICszMDM5LDEzIEBAIHZvaWQgUmVu
ZGVyTGF5ZXJCYWNraW5nOjpwYWludEludG9MYXllcihjb25zdCBHcmFwaGljc0xheWVyKiBncmFw
aGljc0xheWVyLCBHcmFwCiAKICAgICBpZiAoZ3JhcGhpY3NMYXllciA9PSBkZXN0aW5hdGlvbkZv
clNoYXJpbmdMYXllcnMpIHsKICAgICAgICAgT3B0aW9uU2V0PFJlbmRlckxheWVyOjpQYWludExh
eWVyRmxhZz4gc2hhcmluZ0xheWVyUGFpbnRGbGFncyA9IHsKLSAgICAgICAgICAgIFJlbmRlckxh
eWVyOjpQYWludExheWVyUGFpbnRpbmdDb21wb3NpdGluZ0JhY2tncm91bmRQaGFzZSwKLSAgICAg
ICAgICAgIFJlbmRlckxheWVyOjpQYWludExheWVyUGFpbnRpbmdDb21wb3NpdGluZ0ZvcmVncm91
bmRQaGFzZSB9OworICAgICAgICAgICAgUmVuZGVyTGF5ZXI6OlBhaW50TGF5ZXJGbGFnOjpQYWlu
dGluZ0NvbXBvc2l0aW5nQmFja2dyb3VuZFBoYXNlLAorICAgICAgICAgICAgUmVuZGVyTGF5ZXI6
OlBhaW50TGF5ZXJGbGFnOjpQYWludGluZ0NvbXBvc2l0aW5nRm9yZWdyb3VuZFBoYXNlIH07CiAK
ICAgICAgICAgaWYgKGdyYXBoaWNzTGF5ZXItPnBhaW50aW5nUGhhc2UoKS5jb250YWlucyhHcmFw
aGljc0xheWVyUGFpbnRpbmdQaGFzZTo6T3ZlcmZsb3dDb250ZW50cykpCi0gICAgICAgICAgICBz
aGFyaW5nTGF5ZXJQYWludEZsYWdzLmFkZChSZW5kZXJMYXllcjo6UGFpbnRMYXllclBhaW50aW5n
T3ZlcmZsb3dDb250ZW50cyk7CisgICAgICAgICAgICBzaGFyaW5nTGF5ZXJQYWludEZsYWdzLmFk
ZChSZW5kZXJMYXllcjo6UGFpbnRMYXllckZsYWc6OlBhaW50aW5nT3ZlcmZsb3dDb250ZW50cyk7
CiAgICAgICAgIGlmIChldmVudFJlZ2lvbkNvbnRleHQpCi0gICAgICAgICAgICBzaGFyaW5nTGF5
ZXJQYWludEZsYWdzLmFkZChSZW5kZXJMYXllcjo6UGFpbnRMYXllckNvbGxlY3RpbmdFdmVudFJl
Z2lvbik7CisgICAgICAgICAgICBzaGFyaW5nTGF5ZXJQYWludEZsYWdzLmFkZChSZW5kZXJMYXll
cjo6UGFpbnRMYXllckZsYWc6OkNvbGxlY3RpbmdFdmVudFJlZ2lvbik7CiAKICAgICAgICAgZm9y
IChhdXRvJiBsYXllcldlYWtQdHIgOiBtX2JhY2tpbmdTaGFyaW5nTGF5ZXJzKQogICAgICAgICAg
ICAgcGFpbnRPbmVMYXllcigqbGF5ZXJXZWFrUHRyLCBzaGFyaW5nTGF5ZXJQYWludEZsYWdzKTsK
QEAgLTMwNjYsMjQgKzMwNjYsMjQgQEAgT3B0aW9uU2V0PFJlbmRlckxheWVyOjpQYWludExheWVy
RmxhZz4gUmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludEZsYWdzRm9yTGF5ZXIoY28KIAogICAgIGF1
dG8gcGFpbnRpbmdQaGFzZSA9IGdyYXBoaWNzTGF5ZXIucGFpbnRpbmdQaGFzZSgpOwogICAgIGlm
IChwYWludGluZ1BoYXNlLmNvbnRhaW5zKEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlOjpCYWNr
Z3JvdW5kKSkKLSAgICAgICAgcGFpbnRGbGFncy5hZGQoUmVuZGVyTGF5ZXI6OlBhaW50TGF5ZXJQ
YWludGluZ0NvbXBvc2l0aW5nQmFja2dyb3VuZFBoYXNlKTsKKyAgICAgICAgcGFpbnRGbGFncy5h
ZGQoUmVuZGVyTGF5ZXI6OlBhaW50TGF5ZXJGbGFnOjpQYWludGluZ0NvbXBvc2l0aW5nQmFja2dy
b3VuZFBoYXNlKTsKICAgICBpZiAocGFpbnRpbmdQaGFzZS5jb250YWlucyhHcmFwaGljc0xheWVy
UGFpbnRpbmdQaGFzZTo6Rm9yZWdyb3VuZCkpCi0gICAgICAgIHBhaW50RmxhZ3MuYWRkKFJlbmRl
ckxheWVyOjpQYWludExheWVyUGFpbnRpbmdDb21wb3NpdGluZ0ZvcmVncm91bmRQaGFzZSk7Cisg
ICAgICAgIHBhaW50RmxhZ3MuYWRkKFJlbmRlckxheWVyOjpQYWludExheWVyRmxhZzo6UGFpbnRp
bmdDb21wb3NpdGluZ0ZvcmVncm91bmRQaGFzZSk7CiAgICAgaWYgKHBhaW50aW5nUGhhc2UuY29u
dGFpbnMoR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2U6Ok1hc2spKQotICAgICAgICBwYWludEZs
YWdzLmFkZChSZW5kZXJMYXllcjo6UGFpbnRMYXllclBhaW50aW5nQ29tcG9zaXRpbmdNYXNrUGhh
c2UpOworICAgICAgICBwYWludEZsYWdzLmFkZChSZW5kZXJMYXllcjo6UGFpbnRMYXllckZsYWc6
OlBhaW50aW5nQ29tcG9zaXRpbmdNYXNrUGhhc2UpOwogICAgIGlmIChwYWludGluZ1BoYXNlLmNv
bnRhaW5zKEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlOjpDbGlwUGF0aCkpCi0gICAgICAgIHBh
aW50RmxhZ3MuYWRkKFJlbmRlckxheWVyOjpQYWludExheWVyUGFpbnRpbmdDb21wb3NpdGluZ0Ns
aXBQYXRoUGhhc2UpOworICAgICAgICBwYWludEZsYWdzLmFkZChSZW5kZXJMYXllcjo6UGFpbnRM
YXllckZsYWc6OlBhaW50aW5nQ29tcG9zaXRpbmdDbGlwUGF0aFBoYXNlKTsKICAgICBpZiAocGFp
bnRpbmdQaGFzZS5jb250YWlucyhHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZTo6Q2hpbGRDbGlw
cGluZ01hc2spKQotICAgICAgICBwYWludEZsYWdzLmFkZChSZW5kZXJMYXllcjo6UGFpbnRMYXll
clBhaW50aW5nQ2hpbGRDbGlwcGluZ01hc2tQaGFzZSk7CisgICAgICAgIHBhaW50RmxhZ3MuYWRk
KFJlbmRlckxheWVyOjpQYWludExheWVyRmxhZzo6UGFpbnRpbmdDaGlsZENsaXBwaW5nTWFza1Bo
YXNlKTsKICAgICBpZiAocGFpbnRpbmdQaGFzZS5jb250YWlucyhHcmFwaGljc0xheWVyUGFpbnRp
bmdQaGFzZTo6T3ZlcmZsb3dDb250ZW50cykpCi0gICAgICAgIHBhaW50RmxhZ3MuYWRkKFJlbmRl
ckxheWVyOjpQYWludExheWVyUGFpbnRpbmdPdmVyZmxvd0NvbnRlbnRzKTsKKyAgICAgICAgcGFp
bnRGbGFncy5hZGQoUmVuZGVyTGF5ZXI6OlBhaW50TGF5ZXJGbGFnOjpQYWludGluZ092ZXJmbG93
Q29udGVudHMpOwogICAgIGlmIChwYWludGluZ1BoYXNlLmNvbnRhaW5zKEdyYXBoaWNzTGF5ZXJQ
YWludGluZ1BoYXNlOjpDb21wb3NpdGVkU2Nyb2xsKSkKLSAgICAgICAgcGFpbnRGbGFncy5hZGQo
UmVuZGVyTGF5ZXI6OlBhaW50TGF5ZXJQYWludGluZ0NvbXBvc2l0aW5nU2Nyb2xsaW5nUGhhc2Up
OworICAgICAgICBwYWludEZsYWdzLmFkZChSZW5kZXJMYXllcjo6UGFpbnRMYXllckZsYWc6OlBh
aW50aW5nQ29tcG9zaXRpbmdTY3JvbGxpbmdQaGFzZSk7CiAKICAgICBpZiAoJmdyYXBoaWNzTGF5
ZXIgPT0gbV9iYWNrZ3JvdW5kTGF5ZXIuZ2V0KCkgJiYgbV9iYWNrZ3JvdW5kTGF5ZXJQYWludHNG
aXhlZFJvb3RCYWNrZ3JvdW5kKQotICAgICAgICBwYWludEZsYWdzLmFkZCh7IFJlbmRlckxheWVy
OjpQYWludExheWVyUGFpbnRpbmdSb290QmFja2dyb3VuZE9ubHksIFJlbmRlckxheWVyOjpQYWlu
dExheWVyUGFpbnRpbmdDb21wb3NpdGluZ0ZvcmVncm91bmRQaGFzZSB9KTsgLy8gTmVlZCBQYWlu
dExheWVyUGFpbnRpbmdDb21wb3NpdGluZ0ZvcmVncm91bmRQaGFzZSB0byB3YWxrIGNoaWxkIGxh
eWVycy4KKyAgICAgICAgcGFpbnRGbGFncy5hZGQoeyBSZW5kZXJMYXllcjo6UGFpbnRMYXllckZs
YWc6OlBhaW50aW5nUm9vdEJhY2tncm91bmRPbmx5LCBSZW5kZXJMYXllcjo6UGFpbnRMYXllckZs
YWc6OlBhaW50aW5nQ29tcG9zaXRpbmdGb3JlZ3JvdW5kUGhhc2UgfSk7IC8vIE5lZWQgUGFpbnRM
YXllckZsYWc6OlBhaW50aW5nQ29tcG9zaXRpbmdGb3JlZ3JvdW5kUGhhc2UgdG8gd2FsayBjaGls
ZCBsYXllcnMuCiAgICAgZWxzZSBpZiAoY29tcG9zaXRvcigpLmZpeGVkUm9vdEJhY2tncm91bmRM
YXllcigpKQotICAgICAgICBwYWludEZsYWdzLmFkZChSZW5kZXJMYXllcjo6UGFpbnRMYXllclBh
aW50aW5nU2tpcFJvb3RCYWNrZ3JvdW5kKTsKKyAgICAgICAgcGFpbnRGbGFncy5hZGQoUmVuZGVy
TGF5ZXI6OlBhaW50TGF5ZXJGbGFnOjpQYWludGluZ1NraXBSb290QmFja2dyb3VuZCk7CiAKICAg
ICByZXR1cm4gcGFpbnRGbGFnczsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJSZXBsaWNhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJS
ZXBsaWNhLmNwcAppbmRleCA1MzExYTM1MTA1MGZjY2E3ODA3YTk4ZTIwMWRhYzE0YjBjODNhYzk3
Li41ZWRhYjJlN2U1NDIwNjMyZTA3NjgxODU5YzMwZjg1ZWQ4Y2E5ODIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxpY2EuY3BwCkBAIC03Niw3ICs3Niw3IEBAIHZvaWQg
UmVuZGVyUmVwbGljYTo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBv
aW50JiBwYWludE9mZnNldCkKICAgICAgICAgLy8gY29tcHV0aW5nIHVzaW5nIHRoZSB3cm9uZyBy
b290TGF5ZXIKICAgICAgICAgUmVuZGVyTGF5ZXIqIHJvb3RQYWludGluZ0xheWVyID0gbGF5ZXIo
KS0+dHJhbnNmb3JtKCkgPyBsYXllcigpLT5wYXJlbnQoKSA6IGxheWVyKCktPmVuY2xvc2luZ1Ry
YW5zZm9ybWVkQW5jZXN0b3IoKTsKICAgICAgICAgUmVuZGVyTGF5ZXI6OkxheWVyUGFpbnRpbmdJ
bmZvIHBhaW50aW5nSW5mbyhyb290UGFpbnRpbmdMYXllciwgcGFpbnRJbmZvLnJlY3QsIFBhaW50
QmVoYXZpb3I6Ok5vcm1hbCwgTGF5b3V0U2l6ZSgpLCAwKTsKLSAgICAgICAgT3B0aW9uU2V0PFJl
bmRlckxheWVyOjpQYWludExheWVyRmxhZz4gZmxhZ3MgeyBSZW5kZXJMYXllcjo6UGFpbnRMYXll
ckhhdmVUcmFuc3BhcmVuY3ksIFJlbmRlckxheWVyOjpQYWludExheWVyQXBwbGllZFRyYW5zZm9y
bSwgUmVuZGVyTGF5ZXI6OlBhaW50TGF5ZXJUZW1wb3JhcnlDbGlwUmVjdHMsIFJlbmRlckxheWVy
OjpQYWludExheWVyUGFpbnRpbmdSZWZsZWN0aW9uIH07CisgICAgICAgIE9wdGlvblNldDxSZW5k
ZXJMYXllcjo6UGFpbnRMYXllckZsYWc+IGZsYWdzIHsgUmVuZGVyTGF5ZXI6OlBhaW50TGF5ZXJG
bGFnOjpIYXZlVHJhbnNwYXJlbmN5LCBSZW5kZXJMYXllcjo6UGFpbnRMYXllckZsYWc6OkFwcGxp
ZWRUcmFuc2Zvcm0sIFJlbmRlckxheWVyOjpQYWludExheWVyRmxhZzo6VGVtcG9yYXJ5Q2xpcFJl
Y3RzLCBSZW5kZXJMYXllcjo6UGFpbnRMYXllckZsYWc6OlBhaW50aW5nUmVmbGVjdGlvbiB9Owog
ICAgICAgICBsYXllcigpLT5wYXJlbnQoKS0+cGFpbnRMYXllcihwYWludEluZm8uY29udGV4dCgp
LCBwYWludGluZ0luZm8sIGZsYWdzKTsKICAgICB9IGVsc2UgaWYgKHBhaW50SW5mby5waGFzZSA9
PSBQYWludFBoYXNlOjpNYXNrKQogICAgICAgICBwYWludE1hc2socGFpbnRJbmZvLCBhZGp1c3Rl
ZFBhaW50T2Zmc2V0KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>