<?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>237495</bug_id>
          
          <creation_ts>2022-03-04 20:53:17 -0800</creation_ts>
          <short_desc>Replace IntRectExtent with RectEdges&lt;int&gt;</short_desc>
          <delta_ts>2022-03-05 22:52:21 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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>annulen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>sam</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>1848487</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-03-04 20:53:17 -0800</bug_when>
    <thetext>Replace IntRectExtent with RectEdges&lt;int&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848488</commentid>
    <comment_count>1</comment_count>
      <attachid>453895</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-03-04 20:56:13 -0800</bug_when>
    <thetext>Created attachment 453895
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848530</commentid>
    <comment_count>2</comment_count>
      <attachid>453895</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2022-03-05 08:51:21 -0800</bug_when>
    <thetext>Comment on attachment 453895
Patch

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

&gt; Source/WebCore/platform/RectEdges.h:104
&gt; +template&lt;typename T&gt;
&gt; +inline RectEdges&lt;T&gt;&amp; operator+=(RectEdges&lt;T&gt;&amp; a, const RectEdges&lt;T&gt;&amp; b)

I&apos;d encourage you to write both += and + (you can usually have one call the other).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848546</commentid>
    <comment_count>3</comment_count>
      <attachid>453915</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-03-05 11:23:19 -0800</bug_when>
    <thetext>Created attachment 453915
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848583</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-05 22:51:29 -0800</bug_when>
    <thetext>Committed r290872 (248103@main): &lt;https://commits.webkit.org/248103@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 453915.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848584</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-05 22:52:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/89868237&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453895</attachid>
            <date>2022-03-04 20:56:13 -0800</date>
            <delta_ts>2022-03-05 08:51:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237495-20220304205612.patch</filename>
            <type>text/plain</type>
            <size>19534</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwODEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjQ0NDQwZTI0YzEzMjUy
MmZiOTc2MTZiOTRkNDVmN2I3MTQ4OTIyMi4uYjc2MzI3MWE5ZWE0OGJkMTEzNjQwZmUzYzc4YjMx
MDU5MTEzMmZjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIyLTAzLTA0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlcGxhY2UgSW50
UmVjdEV4dGVudCB3aXRoIFJlY3RFZGdlczxpbnQ+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc0OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJbnRSZWN0RXh0ZW50IHdhcyBqdXN0IGxpa2UgUmVjdEVk
Z2VzPGludD4sIHNvIHJlbW92ZSBpdC4KKworICAgICAgICBBZGQgb3BlcmF0b3IrPSBmb3IgUmVj
dEVkZ2VzPD4sIGFuZCBoZWxwZXJzIHRvIGNvbnZlcnQgZnJvbSBSZWN0RWRnZXM8aW50PiB0byBS
ZWN0RWRnZXM8TGF5b3V0VW5pdD4uCisKKyAgICAgICAgQ29kZSB0aGF0IHByZXZpb3VzbHkgYWRk
ZWQgYSBJbnRSZWN0RXh0ZW50IHRvIGEgcmVjdCBub3cgdXNlcyAuZXhwYW5kKCkuCisKKyAgICAg
ICAgRm9yIHNvbWUgcmVhc29uIGluaXRpYWxpemluZyBhIFJlY3RFZGdlczxUPiB3aXRoIGFyZ3Vt
ZW50cyBzdGQ6Om1heDxUPiBmYWlscyB0bworICAgICAgICBjb21waWxlLCBzbyB1c2UgaW50ZXJt
ZWRpYXRlIHZhcmlhYmxlcyBpbiB0d28gcGxhY2VzLgorCisgICAgICAgICogSGVhZGVycy5jbWFr
ZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogcGxhdGZvcm0vTGVuZ3RoQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwp
OgorICAgICAgICAqIHBsYXRmb3JtL0xlbmd0aEJveC5oOgorICAgICAgICAoV2ViQ29yZTo6dG9M
YXlvdXRCb3hFeHRlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL1JlY3RFZGdlcy5oOgorICAgICAg
ICAoV2ViQ29yZTo6UmVjdEVkZ2VzOjppc1plcm8gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
b3BlcmF0b3IrPSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdEV4dGVudC5o
OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hh
ZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFRHJvcFNoYWRvdzo6b3V0c2V0cyBjb25zdCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJGdW5jdGlvbi5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9ucy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zOjpvdXRzZXRzIGNvbnN0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbnMuaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvQ1NTRmlsdGVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzZXRGaWx0ZXJCYWNr
ZW5kTmVlZHNSZXBhaW50aW5nSW5SZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OnRyYW5zcGFyZW5j
eUNsaXBCb3gpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZUNsaXBS
ZWN0cyBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyRmlsdGVycy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckZpbHRlcnM6OmJlZ2luRmlsdGVyRWZmZWN0
KToKKwogMjAyMi0wMy0wNCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
IAogICAgICAgICBPcHRpbWl6ZSB0aGUgcGFkZGluZyBpbiBTdHlsZVJhcmVJbmhlcml0ZWREYXRh
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNv
cmUvSGVhZGVycy5jbWFrZQppbmRleCAzY2I0YTQ5ZDk4NTE2YzljYmQ1MWRlZGNmYWMzNmFmMmRm
ZDVkMTUxLi40ZDM0MDcxNzQ4NDRiMTNmNzI0MzQ2MTFjOGU2YTIwYmEzZmRlOTA1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hl
YWRlcnMuY21ha2UKQEAgLTE1MTYsNyArMTUxNiw2IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJB
TUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9JbnRQb2ludC5oCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvSW50UG9pbnRIYXNoLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9JbnRS
ZWN0LmgKLSAgICBwbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0RXh0ZW50LmgKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9JbnRSZWN0SGFzaC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvSW50U2l6ZS5o
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvSW50U2l6ZUhhc2guaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDk2ODhkODViZWRjNzIz
N2M0ZGM4NjQ2ZDdiMGZjODFlMTg4YzJjODMuLjVhY2I0YjkzYzgyZjQzYjYyYjZmZGNmOTNmNDA5
NDgyMDgyZjhiZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTM0NzIsNyArMzQ3Miw2IEBACiAJCUExRjc2QjRGMUY0NEQyNDIw
MDE0QzMxOCAvKiBQYXltZW50RGV0YWlsc01vZGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUY3NkI0QzFGNDREMjQyMDAxNEMzMTggLyogUGF5
bWVudERldGFpbHNNb2RpZmllci5oICovOyB9OwogCQlBMUY3NkI1NTFGNDREMkM3MDAxNEMzMTgg
LyogUGF5bWVudFNoaXBwaW5nT3B0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBMUY3NkI1MjFGNDREMkM3MDAxNEMzMTggLyogUGF5bWVudFNoaXBw
aW5nT3B0aW9uLmggKi87IH07CiAJCUExRjc2QjVCMUY0NEQzQjIwMDE0QzMxOCAvKiBQYXltZW50
Q29tcGxldGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEExRjc2QjU4MUY0NEQzQjIwMDE0QzMxOCAvKiBQYXltZW50Q29tcGxldGUuaCAqLzsgfTsKLQkJ
QTJCOTIxNzMxNkM1Q0M0MjAwNDFEQ0Q5IC8qIEludFJlY3RFeHRlbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEyQjkyMTcyMTZDNUNDNDIwMDQxRENE
OSAvKiBJbnRSZWN0RXh0ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJQTMxQzRFNEYxNkUwMkFCNDAwMkY3OTU3IC8qIE9FU1RleHR1cmVIYWxm
RmxvYXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEz
MUM0RTRFMTZFMDJBQjQwMDJGNzk1NyAvKiBPRVNUZXh0dXJlSGFsZkZsb2F0LmggKi87IH07CiAJ
CUEzMUM0RTU0MTZFMDJCNDAwMDJGNzk1NyAvKiBKU09FU1RleHR1cmVIYWxmRmxvYXQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEzMUM0RTUzMTZFMDJC
NDAwMDJGNzk1NyAvKiBKU09FU1RleHR1cmVIYWxmRmxvYXQuaCAqLzsgfTsKIAkJQTNBRjlEODYy
MDMyNjg2MTAwNkNBRDA2IC8qIFVzZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTNBRjlEODIyMDMyNTMyNDAwNkNBRDA2IC8qIFVzZXJBZ2Vu
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0x
Mzc5Niw3ICsxMzc5NSw2IEBACiAJCUExRjc2QjVBMUY0NEQzQjIwMDE0QzMxOCAvKiBQYXltZW50
Q29tcGxldGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFBheW1lbnRDb21wbGV0ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUExRjc4RDBCMUMyNTQyMkMwMDI0NTQ0NiAvKiBSZXNvdXJjZVJlc3BvbnNl
Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZXNvdXJj
ZVJlc3BvbnNlQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEyMDhFMjIy
QTU2QTBDNzU3NUYyQTcyRSAvKiBSZW5kZXJNYXRoTUxNZW5jbG9zZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJNYXRoTUxNZW5jbG9zZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlBMkI5MjE3MjE2QzVDQzQyMDA0MURDRDkgLyogSW50UmVjdEV4dGVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnRSZWN0RXh0ZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEzMUFDNzBBMjQzNDA5ODQwMDdGMDBBMiAvKiBN
ZWRpYVN0cmF0ZWd5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1l
ZGlhU3RyYXRlZ3kuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMzFDNEU0QzE2
RTAyQUE2MDAyRjc5NTcgLyogT0VTVGV4dHVyZUhhbGZGbG9hdC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBPRVNUZXh0dXJlSGFsZkZsb2F0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTMxQzRFNEUxNkUwMkFCNDAwMkY3OTU3IC8qIE9FU1RleHR1
cmVIYWxmRmxvYXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gT0VTVGV4dHVy
ZUhhbGZGbG9hdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjkwNzcsNyArMjkw
NzUsNiBAQAogCQkJCUU0NjJBNEEwMTEzRTcxQkUwMDRBNDIyMCAvKiBJbnRQb2ludEhhc2guaCAq
LywKIAkJCQlCMjc1MzU0NTBCMDUzODE0MDAyQ0U2NEYgLyogSW50UmVjdC5jcHAgKi8sCiAJCQkJ
QjI3NTM1NDYwQjA1MzgxNDAwMkNFNjRGIC8qIEludFJlY3QuaCAqLywKLQkJCQlBMkI5MjE3MjE2
QzVDQzQyMDA0MURDRDkgLyogSW50UmVjdEV4dGVudC5oICovLAogCQkJCUUxMzRGNUFBMTJFRTM0
M0YwMDRFQzU4RCAvKiBJbnRSZWN0SGFzaC5oICovLAogCQkJCTJENDZGMDRGMTdCOTZGRDIwMDU2
NDdGMCAvKiBJbnRTaXplLmNwcCAqLywKIAkJCQlCMjc1MzU0NzBCMDUzODE0MDAyQ0U2NEYgLyog
SW50U2l6ZS5oICovLApAQCAtMzUxODgsNyArMzUxODUsNiBAQAogCQkJCUIyNzUzNTcyMEIwNTM4
MTQwMDJDRTY0RiAvKiBJbnRQb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ2MkE0QTExMTNF
NzFCRTAwNEE0MjIwIC8qIEludFBvaW50SGFzaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjI3NTM1
NzQwQjA1MzgxNDAwMkNFNjRGIC8qIEludFJlY3QuaCBpbiBIZWFkZXJzICovLAotCQkJCUEyQjky
MTczMTZDNUNDNDIwMDQxRENEOSAvKiBJbnRSZWN0RXh0ZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlFMTM0RjVBQjEyRUUzNDNGMDA0RUM1OEQgLyogSW50UmVjdEhhc2guaCBpbiBIZWFkZXJzICov
LAogCQkJCUIyNzUzNTc1MEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRTaXplLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCMjc1MzU3NjBCMDUzODE0MDAyQ0U2NEYgLyogSW50U2l6ZUhhc2guaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoQm94LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aEJveC5jcHAKaW5kZXggMWYzMjcyNTNm
ZmJiNTQxOTE5YmFmN2RhOTY1OTA4NWMyZTYxMTNjZS4uYWY2ZjE4OGE4MjA2M2ZhMzg3MzI4OWE2
ZDVmZWMxNDg0YmNkZDI3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVu
Z3RoQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGhCb3guY3BwCkBA
IC00Miw0ICs0MiwxMCBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBj
b25zdCBGbG9hdEJveEV4dGVudCYgYm94KQogICAgIHJldHVybiB0czsKIH0KIAorVGV4dFN0cmVh
bSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgSW50Qm94RXh0ZW50JiBib3gpCit7
CisgICAgdHMgPDwgInRvcDogIiA8PCBib3gudG9wKCkgPDwgIiByaWdodDogIiA8PCBib3gucmln
aHQoKSA8PCAiIGJvdHRvbTogIiA8PCBib3guYm90dG9tKCkgPDwgIiBsZWZ0OiAiIDw8IGJveC5s
ZWZ0KCk7CisgICAgcmV0dXJuIHRzOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGhCb3guaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0xlbmd0aEJveC5oCmluZGV4IGMwNDdhODk5ZWYzMzU4ZDFmM2RlNjJiOGJk
Yzg2MTQxMDMwM2ZiNDYuLmYzMjBkNGZmNTllMzk4YmUwYjIwNDFkNWFkZDNkMzVhMDU1OGI0ODIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aEJveC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aEJveC5oCkBAIC02NSw4ICs2NSwxNyBAQCBwdWJs
aWM6CiAKIHVzaW5nIExheW91dEJveEV4dGVudCA9IFJlY3RFZGdlczxMYXlvdXRVbml0PjsKIHVz
aW5nIEZsb2F0Qm94RXh0ZW50ID0gUmVjdEVkZ2VzPGZsb2F0PjsKK3VzaW5nIEludEJveEV4dGVu
dCA9IFJlY3RFZGdlczxpbnQ+OworCit1c2luZyBJbnRPdXRzZXRzID0gSW50Qm94RXh0ZW50Owor
CitpbmxpbmUgTGF5b3V0Qm94RXh0ZW50IHRvTGF5b3V0Qm94RXh0ZW50KGNvbnN0IEludEJveEV4
dGVudCYgZXh0ZW50KQoreworICAgIHJldHVybiB7IGV4dGVudC50b3AoKSwgZXh0ZW50LnJpZ2h0
KCksIGV4dGVudC5ib3R0b20oKSwgZXh0ZW50LmxlZnQoKSB9OworfQogCiBXVEY6OlRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgY29uc3QgTGVuZ3RoQm94Jik7CitXVEY6
OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgY29uc3QgSW50Qm94RXh0
ZW50Jik7CiBXRUJDT1JFX0VYUE9SVCBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpU
ZXh0U3RyZWFtJiwgY29uc3QgRmxvYXRCb3hFeHRlbnQmKTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUmVjdEVkZ2VzLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZWN0RWRnZXMuaAppbmRleCAwZTEyMzAxOTMzNjM1NGQ3
Y2VmMjdkMWZkZjdhNzMyMzYwNTE5ZmFhLi43ZmM4ZjBmODYzMzVlYTNiNjVlZGI4YjRhNTdjNDky
NzliODIwMDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZWN0RWRnZXMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZWN0RWRnZXMuaApAQCAtOTEsMTAgKzkx
LDI0IEBAIHB1YmxpYzoKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgUmVjdEVkZ2VzJiBvdGhl
cikgY29uc3QgeyByZXR1cm4gbV9zaWRlcyA9PSBvdGhlci5tX3NpZGVzOyB9CiAgICAgYm9vbCBv
cGVyYXRvciE9KGNvbnN0IFJlY3RFZGdlcyYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1fc2lkZXMg
IT0gb3RoZXIubV9zaWRlczsgfQogCisgICAgYm9vbCBpc1plcm8oKSBjb25zdAorICAgIHsKKyAg
ICAgICAgcmV0dXJuICF0b3AoKSAmJiAhcmlnaHQoKSAmJiAhYm90dG9tKCkgJiYgIWxlZnQoKTsK
KyAgICB9CisKIHByaXZhdGU6CiAgICAgc3RkOjphcnJheTxULCA0PiBtX3NpZGVzIHsgfTsKIH07
CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitpbmxpbmUgUmVjdEVkZ2VzPFQ+JiBvcGVyYXRvcis9
KFJlY3RFZGdlczxUPiYgYSwgY29uc3QgUmVjdEVkZ2VzPFQ+JiBiKQoreworICAgIGEuc2V0VG9w
KGEudG9wKCkgKyBiLnRvcCgpKTsKKyAgICBhLnNldFJpZ2h0KGEucmlnaHQoKSArIGIucmlnaHQo
KSk7CisgICAgYS5zZXRCb3R0b20oYS5ib3R0b20oKSArIGIuYm90dG9tKCkpOworICAgIGEuc2V0
TGVmdChhLmxlZnQoKSArIGIubGVmdCgpKTsKKyAgICByZXR1cm4gYTsKK30KIAogdGVtcGxhdGU8
dHlwZW5hbWUgVD4KIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0
IFJlY3RFZGdlczxUPiYgZWRnZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbnRSZWN0RXh0ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbnRSZWN0RXh0ZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQzYzgz
MmUwODhlMDQyNjI4ZjI3YmFlMjQ0OWI0MDhhMjAzYTYyNzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW50UmVjdEV4dGVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsOTcgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMyBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUKLSAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nCi0gKiAgICBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogICAgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKLSAqICAg
IGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscwot
ICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIg4oCcQVMgSVPigJ0gQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKLSAqIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKLSAq
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IKLSAqIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgotICogVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
Ci0gKiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1jbGFzcyBJbnRSZWN0RXh0ZW50IHsKLXB1YmxpYzoKLSAgICBJbnRSZWN0RXh0ZW50
KCkgPSBkZWZhdWx0OwotCi0gICAgSW50UmVjdEV4dGVudChpbnQgdG9wLCBpbnQgcmlnaHQsIGlu
dCBib3R0b20sIGludCBsZWZ0KQotICAgICAgICA6IG1fdG9wKHRvcCkKLSAgICAgICAgLCBtX3Jp
Z2h0KHJpZ2h0KQotICAgICAgICAsIG1fYm90dG9tKGJvdHRvbSkKLSAgICAgICAgLCBtX2xlZnQo
bGVmdCkKLSAgICB7Ci0gICAgfQotCi0gICAgaW50IHRvcCgpIGNvbnN0IHsgcmV0dXJuIG1fdG9w
OyB9Ci0gICAgdm9pZCBzZXRUb3AoaW50IHRvcCkgeyBtX3RvcCA9IHRvcDsgfQotCi0gICAgaW50
IHJpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9yaWdodDsgfQotICAgIHZvaWQgc2V0UmlnaHQoaW50
IHJpZ2h0KSB7IG1fcmlnaHQgPSByaWdodDsgfQotCi0gICAgaW50IGJvdHRvbSgpIGNvbnN0IHsg
cmV0dXJuIG1fYm90dG9tOyB9Ci0gICAgdm9pZCBzZXRCb3R0b20oaW50IGJvdHRvbSkgeyBtX2Jv
dHRvbSA9IGJvdHRvbTsgfQotCi0gICAgaW50IGxlZnQoKSBjb25zdCB7IHJldHVybiBtX2xlZnQ7
IH0KLSAgICB2b2lkIHNldExlZnQoaW50IGxlZnQpIHsgbV9sZWZ0ID0gbGVmdDsgfQotCi0gICAg
Ym9vbCBpc1plcm8oKSBjb25zdCB7IHJldHVybiAhbGVmdCgpICYmICFyaWdodCgpICYmICF0b3Ao
KSAmJiAhYm90dG9tKCk7IH0KLQotcHJpdmF0ZToKLSAgICBpbnQgbV90b3AgeyAwIH07Ci0gICAg
aW50IG1fcmlnaHQgeyAwIH07Ci0gICAgaW50IG1fYm90dG9tIHsgMCB9OwotICAgIGludCBtX2xl
ZnQgeyAwIH07Ci19OwotCi1pbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEludFJlY3RFeHRl
bnQmIGEsIGNvbnN0IEludFJlY3RFeHRlbnQmIGIpCi17Ci0gICAgcmV0dXJuIGEudG9wKCkgPT0g
Yi50b3AoKSAmJiBhLnJpZ2h0KCkgPT0gYi5yaWdodCgpICYmIGEuYm90dG9tKCkgPT0gYi5ib3R0
b20oKSAmJiBhLmxlZnQoKSA9PSBiLmxlZnQoKTsKLX0KLQotaW5saW5lIGJvb2wgb3BlcmF0b3Ih
PShjb25zdCBJbnRSZWN0RXh0ZW50JiBhLCBjb25zdCBJbnRSZWN0RXh0ZW50JiBiKQotewotICAg
IHJldHVybiAhKGEgPT0gYik7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFJlY3RUeXBlPgotaW5s
aW5lIFJlY3RUeXBlJiBvcGVyYXRvcis9KFJlY3RUeXBlJiByZWN0LCBjb25zdCBJbnRSZWN0RXh0
ZW50JiBleHRlbnQpCi17Ci0gICAgcmVjdC5tb3ZlKC1leHRlbnQubGVmdCgpLCAtZXh0ZW50LnRv
cCgpKTsKLSAgICByZWN0LmV4cGFuZChleHRlbnQubGVmdCgpICsgZXh0ZW50LnJpZ2h0KCksIGV4
dGVudC50b3AoKSArIGV4dGVudC5ib3R0b20oKSk7Ci0gICAgcmV0dXJuIHJlY3Q7Ci19Ci0KLWlu
bGluZSBJbnRSZWN0RXh0ZW50JiBvcGVyYXRvcis9KEludFJlY3RFeHRlbnQmIGEsIGNvbnN0IElu
dFJlY3RFeHRlbnQmIGIpCi17Ci0gICAgYS5zZXRUb3AoYS50b3AoKSArIGIudG9wKCkpOwotICAg
IGEuc2V0UmlnaHQoYS5yaWdodCgpICsgYi5yaWdodCgpKTsKLSAgICBhLnNldEJvdHRvbShhLmJv
dHRvbSgpICsgYi5ib3R0b20oKSk7Ci0gICAgYS5zZXRMZWZ0KGEubGVmdCgpICsgYi5sZWZ0KCkp
OwotICAgIHJldHVybiBhOwotfQotCi11c2luZyBJbnRPdXRzZXRzID0gSW50UmVjdEV4dGVudDsK
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cuY3BwCmluZGV4IGQzMjkzMzNk
NzkzNTg1Njc4MzY3ZDMzNDIwMmE2YjY2OWIxOTQ1MWYuLjE3MzM5MDg0ZTY5ZTBkYzBkZGFlNmYy
ZDc3MzRmMWVkMTNjNWFlYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5jcHAKQEAgLTY0LDEyICs2NCwxMyBA
QCBGbG9hdFJlY3QgRkVEcm9wU2hhZG93OjpjYWxjdWxhdGVJbWFnZVJlY3QoY29uc3QgRmlsdGVy
JiBmaWx0ZXIsIGNvbnN0IEZpbHRlckltYQogSW50T3V0c2V0cyBGRURyb3BTaGFkb3c6Om91dHNl
dHMoY29uc3QgRmlsdGVyJikgY29uc3QKIHsKICAgICBJbnRTaXplIG91dHNldFNpemUgPSBGRUdh
dXNzaWFuQmx1cjo6Y2FsY3VsYXRlT3V0c2V0U2l6ZSh7IG1fc3RkWCwgbV9zdGRZIH0pOwotICAg
IHJldHVybiB7Ci0gICAgICAgIHN0ZDo6bWF4PGludD4oMCwgb3V0c2V0U2l6ZS5oZWlnaHQoKSAt
IG1fZHkpLAotICAgICAgICBzdGQ6Om1heDxpbnQ+KDAsIG91dHNldFNpemUud2lkdGgoKSArIG1f
ZHgpLAotICAgICAgICBzdGQ6Om1heDxpbnQ+KDAsIG91dHNldFNpemUuaGVpZ2h0KCkgKyBtX2R5
KSwKLSAgICAgICAgc3RkOjptYXg8aW50PigwLCBvdXRzZXRTaXplLndpZHRoKCkgLSBtX2R4KQot
ICAgIH07CisKKyAgICBpbnQgdG9wID0gc3RkOjptYXg8aW50PigwLCBvdXRzZXRTaXplLmhlaWdo
dCgpIC0gbV9keSk7CisgICAgaW50IHJpZ2h0ID0gc3RkOjptYXg8aW50PigwLCBvdXRzZXRTaXpl
LndpZHRoKCkgKyBtX2R4KTsKKyAgICBpbnQgYm90dG9tID0gc3RkOjptYXg8aW50PigwLCBvdXRz
ZXRTaXplLmhlaWdodCgpICsgbV9keSk7CisgICAgaW50IGxlZnQgPSBzdGQ6Om1heDxpbnQ+KDAs
IG91dHNldFNpemUud2lkdGgoKSAtIG1fZHgpOworCisgICAgcmV0dXJuIHsgdG9wLCByaWdodCwg
Ym90dG9tLCBsZWZ0IH07CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVy
PiBGRURyb3BTaGFkb3c6OmNyZWF0ZVNvZnR3YXJlQXBwbGllcigpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckZ1bmN0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckZ1bmN0
aW9uLmgKaW5kZXggZThmNTI2ZDg0M2RhYTAwNzRkYjM5NGE1NzdkZGQxNjVhY2JlY2Y5My4uNjQ0
YjU4MzVkYmJlMDVlOGY1OWQ3NTg3YzUzMmFkNGY2NTAzZGNkNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJGdW5jdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRnVuY3Rpb24u
aApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgIkZpbHRlckltYWdlLmgiCiAjaW5jbHVkZSAi
RmlsdGVySW1hZ2VWZWN0b3IuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKLSNpbmNsdWRlICJJ
bnRSZWN0RXh0ZW50LmgiCisjaW5jbHVkZSAiTGVuZ3RoQm94LmgiCiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nLmg+CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0
aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRl
ck9wZXJhdGlvbnMuY3BwCmluZGV4IGVhYTBhMGM0YWZiZjNmNDMwNTBmZDA4Y2ZmZWUyNWZmNGFh
NTFhYzkuLmJjMDI5OTkyN2U5ZjFlYmFlY2VhNWNmOWNkNzU2ODU4ZjkxMzBkYTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0
aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
aWx0ZXJPcGVyYXRpb25zLmNwcApAQCAtODQsMTIgKzg0LDEzIEBAIEludE91dHNldHMgRmlsdGVy
T3BlcmF0aW9uczo6b3V0c2V0cygpIGNvbnN0CiAgICAgICAgICAgICBhdXRvJiBkcm9wU2hhZG93
T3BlcmF0aW9uID0gZG93bmNhc3Q8RHJvcFNoYWRvd0ZpbHRlck9wZXJhdGlvbj4oKm9wZXJhdGlv
bik7CiAgICAgICAgICAgICBmbG9hdCBzdGREZXZpYXRpb24gPSBkcm9wU2hhZG93T3BlcmF0aW9u
LnN0ZERldmlhdGlvbigpOwogICAgICAgICAgICAgSW50U2l6ZSBvdXRzZXRTaXplID0gRkVHYXVz
c2lhbkJsdXI6OmNhbGN1bGF0ZU91dHNldFNpemUoeyBzdGREZXZpYXRpb24sIHN0ZERldmlhdGlv
biB9KTsKLSAgICAgICAgICAgIEludE91dHNldHMgb3V0c2V0cyB7Ci0gICAgICAgICAgICAgICAg
c3RkOjptYXgoMCwgb3V0c2V0U2l6ZS5oZWlnaHQoKSAtIGRyb3BTaGFkb3dPcGVyYXRpb24ueSgp
KSwKLSAgICAgICAgICAgICAgICBzdGQ6Om1heCgwLCBvdXRzZXRTaXplLndpZHRoKCkgKyBkcm9w
U2hhZG93T3BlcmF0aW9uLngoKSksCi0gICAgICAgICAgICAgICAgc3RkOjptYXgoMCwgb3V0c2V0
U2l6ZS5oZWlnaHQoKSArIGRyb3BTaGFkb3dPcGVyYXRpb24ueSgpKSwKLSAgICAgICAgICAgICAg
ICBzdGQ6Om1heCgwLCBvdXRzZXRTaXplLndpZHRoKCkgLSBkcm9wU2hhZG93T3BlcmF0aW9uLngo
KSkKLSAgICAgICAgICAgIH07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCB0b3AgPSBz
dGQ6Om1heCgwLCBvdXRzZXRTaXplLmhlaWdodCgpIC0gZHJvcFNoYWRvd09wZXJhdGlvbi55KCkp
OworICAgICAgICAgICAgaW50IHJpZ2h0ID0gc3RkOjptYXgoMCwgb3V0c2V0U2l6ZS53aWR0aCgp
ICsgZHJvcFNoYWRvd09wZXJhdGlvbi54KCkpOworICAgICAgICAgICAgaW50IGJvdHRvbSA9IHN0
ZDo6bWF4KDAsIG91dHNldFNpemUuaGVpZ2h0KCkgKyBkcm9wU2hhZG93T3BlcmF0aW9uLnkoKSk7
CisgICAgICAgICAgICBpbnQgbGVmdCA9IHN0ZDo6bWF4KDAsIG91dHNldFNpemUud2lkdGgoKSAt
IGRyb3BTaGFkb3dPcGVyYXRpb24ueCgpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYXV0
byBvdXRzZXRzID0gSW50T3V0c2V0cyB7IHRvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdCB9OwogICAg
ICAgICAgICAgdG90YWxPdXRzZXRzICs9IG91dHNldHM7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GaWx0ZXJPcGVyYXRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbnMuaAppbmRleCAzYzc3MzAwNjg1Y2JjMjA0ZDBkNTBk
NDVjOTU2NmE4YTVlNzExY2Y5Li42MGQ4ZWVmMGNmMzVlZTUxZmMyMGQ5OThlNDM0YjEwZTFlMDA4
ZmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZpbHRlck9wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbnMuaApAQCAtMjYsNyArMjYsNyBAQAogI3ByYWdtYSBv
bmNlCiAKICNpbmNsdWRlICJGaWx0ZXJPcGVyYXRpb24uaCIKLSNpbmNsdWRlICJJbnRSZWN0RXh0
ZW50LmgiCisjaW5jbHVkZSAiTGVuZ3RoQm94LmgiCiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0NTU0ZpbHRlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5o
CmluZGV4IDc3NDZmZjVlMzJkOTBhM2I2MGNkMTAyZDVkZWU2M2FiMjI2OTM0YjMuLjRkYmFjNTNh
ZDAwODU4OGQzNTVjMjM5MDA2MDRhYzBlY2Y4YTY1ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
Q1NTRmlsdGVyLmgKQEAgLTI2LDcgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAi
RmlsdGVyLmgiCi0jaW5jbHVkZSAiSW50UmVjdEV4dGVudC5oIgorI2luY2x1ZGUgIkxlbmd0aEJv
eC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuY3BwCmluZGV4IDgzYWIyN2U5OGVmYzFkMWFlMTQ0Y2FlN2JiYTcxMThkNDg3NWQ0
M2MuLjNlMzY1MDVkYzU3ZmRkYjVjOGNiNTgyODkzZmY0MTE3NmRlODcwYmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMjA1Myw3ICsyMDUzLDcgQEAgdm9p
ZCBSZW5kZXJMYXllcjo6c2V0RmlsdGVyQmFja2VuZE5lZWRzUmVwYWludGluZ0luUmVjdChjb25z
dCBMYXlvdXRSZWN0JiByZWN0KQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgTGF5b3V0UmVj
dCByZWN0Rm9yUmVwYWludCA9IHJlY3Q7Ci0gICAgcmVjdEZvclJlcGFpbnQgKz0gZmlsdGVyT3V0
c2V0cygpOworICAgIHJlY3RGb3JSZXBhaW50LmV4cGFuZCh0b0xheW91dEJveEV4dGVudChmaWx0
ZXJPdXRzZXRzKCkpKTsKIAogICAgIG1fZmlsdGVycy0+ZXhwYW5kRGlydHlTb3VyY2VSZWN0KHJl
Y3RGb3JSZXBhaW50KTsKICAgICAKQEAgLTIyMTEsNyArMjIxMSw3IEBAIHN0YXRpYyBMYXlvdXRS
ZWN0IHRyYW5zcGFyZW5jeUNsaXBCb3goY29uc3QgUmVuZGVyTGF5ZXImIGxheWVyLCBjb25zdCBS
ZW5kZXJMYXllCiAgICAgICAgIC8vIHBhaW50cyB1bmZyYWdtZW50ZWQuCiAgICAgICAgIExheW91
dFJlY3QgY2xpcFJlY3QgPSBsYXllci5ib3VuZGluZ0JveCgmbGF5ZXIpOwogICAgICAgICBleHBh
bmRDbGlwUmVjdEZvckRlc2NlbmRhbnRzQW5kUmVmbGVjdGlvbihjbGlwUmVjdCwgbGF5ZXIsICZs
YXllciwgdHJhbnNwYXJlbmN5QmVoYXZpb3IsIHBhaW50QmVoYXZpb3IpOwotICAgICAgICBjbGlw
UmVjdCArPSBsYXllci5maWx0ZXJPdXRzZXRzKCk7CisgICAgICAgIGNsaXBSZWN0LmV4cGFuZCh0
b0xheW91dEJveEV4dGVudChsYXllci5maWx0ZXJPdXRzZXRzKCkpKTsKICAgICAgICAgTGF5b3V0
UmVjdCByZXN1bHQgPSB0cmFuc2Zvcm0ubWFwUmVjdChjbGlwUmVjdCk7CiAgICAgICAgIGlmICgh
cGFnaW5hdGlvbkxheWVyKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTIyMjcsNyAr
MjIyNyw3IEBAIHN0YXRpYyBMYXlvdXRSZWN0IHRyYW5zcGFyZW5jeUNsaXBCb3goY29uc3QgUmVu
ZGVyTGF5ZXImIGxheWVyLCBjb25zdCBSZW5kZXJMYXllCiAgICAgCiAgICAgTGF5b3V0UmVjdCBj
bGlwUmVjdCA9IGxheWVyLmJvdW5kaW5nQm94KHJvb3RMYXllciwgbGF5ZXIub2Zmc2V0RnJvbUFu
Y2VzdG9yKHJvb3RMYXllciksIHRyYW5zcGFyZW5jeUJlaGF2aW9yID09IEhpdFRlc3RpbmdUcmFu
c3BhcmVuY3lDbGlwQm94ID8gUmVuZGVyTGF5ZXI6OlVzZUZyYWdtZW50Qm94ZXNJbmNsdWRpbmdD
b21wb3NpdGluZyA6IFJlbmRlckxheWVyOjpVc2VGcmFnbWVudEJveGVzRXhjbHVkaW5nQ29tcG9z
aXRpbmcpOwogICAgIGV4cGFuZENsaXBSZWN0Rm9yRGVzY2VuZGFudHNBbmRSZWZsZWN0aW9uKGNs
aXBSZWN0LCBsYXllciwgcm9vdExheWVyLCB0cmFuc3BhcmVuY3lCZWhhdmlvciwgcGFpbnRCZWhh
dmlvcik7Ci0gICAgY2xpcFJlY3QgKz0gbGF5ZXIuZmlsdGVyT3V0c2V0cygpOworICAgIGNsaXBS
ZWN0LmV4cGFuZCh0b0xheW91dEJveEV4dGVudChsYXllci5maWx0ZXJPdXRzZXRzKCkpKTsKIAog
ICAgIHJldHVybiBjbGlwUmVjdDsKIH0KQEAgLTUxMDUsNyArNTEwNSw3IEBAIExheW91dFJlY3Qg
UmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZUxheWVyQm91bmRzKGNvbnN0IFJlbmRlckxheWVyKiBhbmNl
c3RvckxheWVyLCBjCiAgICAgICAgIGNvbXB1dGVMYXllcnNVbmlvbigqY2hpbGRMYXllcik7CiAK
ICAgICBpZiAoZmxhZ3MuY29udGFpbnMoSW5jbHVkZUZpbHRlck91dHNldHMpIHx8IChmbGFncy5j
b250YWlucyhJbmNsdWRlUGFpbnRlZEZpbHRlck91dHNldHMpICYmIHBhaW50c1dpdGhGaWx0ZXJz
KCkpKQotICAgICAgICB1bmlvbkJvdW5kcyArPSBmaWx0ZXJPdXRzZXRzKCk7CisgICAgICAgIHVu
aW9uQm91bmRzLmV4cGFuZCh0b0xheW91dEJveEV4dGVudChmaWx0ZXJPdXRzZXRzKCkpKTsKIAog
ICAgIGlmICgoZmxhZ3MgJiBJbmNsdWRlU2VsZlRyYW5zZm9ybSkgJiYgcGFpbnRzV2l0aFRyYW5z
Zm9ybShQYWludEJlaGF2aW9yOjpOb3JtYWwpKSB7CiAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0
cml4KiBhZmZpbmVUcmFucyA9IHRyYW5zZm9ybSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyRmlsdGVycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJGaWx0ZXJzLmNwcAppbmRleCA1NjdmOGJiMjA4ZDljYjY1ZTlkM2Jh
MWEzYjI2NzQyODBlNmQ3ZGJlLi4wZTgxZWJkMmIyNjFjYTAyNzM2YjQyMmQ3Y2NkZWY4Y2RkZmQ3
NGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJGaWx0
ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJGaWx0ZXJz
LmNwcApAQCAtMTYyLDcgKzE2Miw3IEBAIEdyYXBoaWNzQ29udGV4dCogUmVuZGVyTGF5ZXJGaWx0
ZXJzOjpiZWdpbkZpbHRlckVmZmVjdChSZW5kZXJFbGVtZW50JiByZW5kZXJlciwKICAgICAvLyBG
b3IgQ1NTRmlsdGVyLCBmaWx0ZXJSZWdpb24gPSB0YXJnZXRCb3VuZGluZ0JveCArIGZpbHRlci0+
b3V0c2V0cygpCiAgICAgYXV0byBmaWx0ZXJSZWdpb24gPSB0YXJnZXRCb3VuZGluZ0JveDsKICAg
ICBpZiAoZmlsdGVyLmhhc0ZpbHRlclRoYXRNb3Zlc1BpeGVscygpKQotICAgICAgICBmaWx0ZXJS
ZWdpb24gKz0gZmlsdGVyLm91dHNldHMoKTsKKyAgICAgICAgZmlsdGVyUmVnaW9uLmV4cGFuZCh0
b0xheW91dEJveEV4dGVudChmaWx0ZXIub3V0c2V0cygpKSk7CiAKICAgICBpZiAoZmlsdGVyUmVn
aW9uLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Cg==
</data>
<flag name="review"
          id="481392"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453915</attachid>
            <date>2022-03-05 11:23:19 -0800</date>
            <delta_ts>2022-03-05 22:51:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237495-20220305112318.patch</filename>
            <type>text/plain</type>
            <size>19688</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwODEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDhmZmZkY2NjZTlmY2Vk
NDg1ZWRmMDdmOWIyNTg1M2ZlZDA1ODljOS4uNDk1NWY2YjhhYjE4NWQ3NmQ1NjkwY2I1MjVjOTFk
NWJjZjI2NzM5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIyLTAzLTA1ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlcGxhY2UgSW50
UmVjdEV4dGVudCB3aXRoIFJlY3RFZGdlczxpbnQ+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc0OTUKKworICAgICAgICBSZXZpZXdlZCBieSBTYW0g
V2VpbmlnLgorCisgICAgICAgIEludFJlY3RFeHRlbnQgd2FzIGp1c3QgbGlrZSBSZWN0RWRnZXM8
aW50Piwgc28gcmVtb3ZlIGl0LgorCisgICAgICAgIEFkZCBvcGVyYXRvcis9IGZvciBSZWN0RWRn
ZXM8PiwgYW5kIGhlbHBlcnMgdG8gY29udmVydCBmcm9tIFJlY3RFZGdlczxpbnQ+IHRvIFJlY3RF
ZGdlczxMYXlvdXRVbml0Pi4KKworICAgICAgICBDb2RlIHRoYXQgcHJldmlvdXNseSBhZGRlZCBh
IEludFJlY3RFeHRlbnQgdG8gYSByZWN0IG5vdyB1c2VzIC5leHBhbmQoKS4KKworICAgICAgICBG
b3Igc29tZSByZWFzb24gaW5pdGlhbGl6aW5nIGEgUmVjdEVkZ2VzPFQ+IHdpdGggYXJndW1lbnRz
IHN0ZDo6bWF4PFQ+IGZhaWxzIHRvCisgICAgICAgIGNvbXBpbGUsIHNvIHVzZSBpbnRlcm1lZGlh
dGUgdmFyaWFibGVzIGluIHR3byBwbGFjZXMuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBw
bGF0Zm9ybS9MZW5ndGhCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6Cisg
ICAgICAgICogcGxhdGZvcm0vTGVuZ3RoQm94Lmg6CisgICAgICAgIChXZWJDb3JlOjp0b0xheW91
dEJveEV4dGVudCk6CisgICAgICAgICogcGxhdGZvcm0vUmVjdEVkZ2VzLmg6CisgICAgICAgIChX
ZWJDb3JlOjpSZWN0RWRnZXM6OmlzWmVybyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpvcGVy
YXRvcis9KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0RXh0ZW50Lmg6IFJl
bW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURyb3BTaGFkb3cu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVEcm9wU2hhZG93OjpvdXRzZXRzIGNvbnN0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckZ1bmN0aW9uLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb25zLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnM6Om91dHNldHMgY29uc3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9ucy5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9DU1NGaWx0ZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNldEZpbHRlckJhY2tlbmRO
ZWVkc1JlcGFpbnRpbmdJblJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6dHJhbnNwYXJlbmN5Q2xp
cEJveCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2FsY3VsYXRlQ2xpcFJlY3Rz
IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJGaWx0ZXJzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyRmlsdGVyczo6YmVnaW5GaWx0ZXJFZmZlY3QpOgor
CiAyMDIyLTAzLTAzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIEVsZW1lbnQgd2l0aCBwb3NpdGlvbjogc3RpY2t5IGFmdGVyIHN0aWNraW5nLCBzdGFy
dHMgdG8gbW92ZSBpbmNvcnJlY3RseSB3aGVuIHNjcm9sbGluZwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5k
ZXggM2NiNGE0OWQ5ODUxNmM5Y2JkNTFkZWRjZmFjMzZhZjJkZmQ1ZDE1MS4uNGQzNDA3MTc0ODQ0
YjEzZjcyNDM0NjExYzhlNmEyMGJhM2ZkZTkwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xNTE2
LDcgKzE1MTYsNiBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvSW50UG9pbnQuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ludFBv
aW50SGFzaC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5oCi0gICAgcGxhdGZvcm0v
Z3JhcGhpY3MvSW50UmVjdEV4dGVudC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdEhh
c2guaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ludFNpemUuaAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL0ludFNpemVIYXNoLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCA5Njg4ZDg1YmVkYzcyMzdjNGRjODY0NmQ3YjBmYzgxZTE4
OGMyYzgzLi41YWNiNGI5M2M4MmY0M2I2MmI2ZmRjZjkzZjQwOTQ4MjA4MmY4YmVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0z
NDcyLDcgKzM0NzIsNiBAQAogCQlBMUY3NkI0RjFGNDREMjQyMDAxNEMzMTggLyogUGF5bWVudERl
dGFpbHNNb2RpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTFGNzZCNEMxRjQ0RDI0MjAwMTRDMzE4IC8qIFBheW1lbnREZXRhaWxzTW9kaWZpZXIu
aCAqLzsgfTsKIAkJQTFGNzZCNTUxRjQ0RDJDNzAwMTRDMzE4IC8qIFBheW1lbnRTaGlwcGluZ09w
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFG
NzZCNTIxRjQ0RDJDNzAwMTRDMzE4IC8qIFBheW1lbnRTaGlwcGluZ09wdGlvbi5oICovOyB9Owog
CQlBMUY3NkI1QjFGNDREM0IyMDAxNEMzMTggLyogUGF5bWVudENvbXBsZXRlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUY3NkI1ODFGNDREM0IyMDAx
NEMzMTggLyogUGF5bWVudENvbXBsZXRlLmggKi87IH07Ci0JCUEyQjkyMTczMTZDNUNDNDIwMDQx
RENEOSAvKiBJbnRSZWN0RXh0ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBMkI5MjE3MjE2QzVDQzQyMDA0MURDRDkgLyogSW50UmVjdEV4dGVudC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUEzMUM0
RTRGMTZFMDJBQjQwMDJGNzk1NyAvKiBPRVNUZXh0dXJlSGFsZkZsb2F0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMzFDNEU0RTE2RTAyQUI0MDAyRjc5
NTcgLyogT0VTVGV4dHVyZUhhbGZGbG9hdC5oICovOyB9OwogCQlBMzFDNEU1NDE2RTAyQjQwMDAy
Rjc5NTcgLyogSlNPRVNUZXh0dXJlSGFsZkZsb2F0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMzFDNEU1MzE2RTAyQjQwMDAyRjc5NTcgLyogSlNPRVNU
ZXh0dXJlSGFsZkZsb2F0LmggKi87IH07CiAJCUEzQUY5RDg2MjAzMjY4NjEwMDZDQUQwNiAvKiBV
c2VyQWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEEzQUY5RDgyMjAzMjUzMjQwMDZDQUQwNiAvKiBVc2VyQWdlbnQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTM3OTYsNyArMTM3OTUsNiBAQAog
CQlBMUY3NkI1QTFGNDREM0IyMDAxNEMzMTggLyogUGF5bWVudENvbXBsZXRlLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQ
YXltZW50Q29tcGxldGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUY3OEQw
QjFDMjU0MjJDMDAyNDU0NDYgLyogUmVzb3VyY2VSZXNwb25zZUNvY29hLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVzb3VyY2VSZXNwb25zZUNvY29hLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMjA4RTIyMkE1NkEwQzc1NzVGMkE3MkUgLyog
UmVuZGVyTWF0aE1MTWVuY2xvc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVuZGVyTWF0aE1MTWVuY2xvc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTJC
OTIxNzIxNkM1Q0M0MjAwNDFEQ0Q5IC8qIEludFJlY3RFeHRlbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSW50UmVjdEV4dGVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBMzFBQzcwQTI0MzQwOTg0MDA3RjAwQTIgLyogTWVkaWFTdHJhdGVneS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVN0cmF0ZWd5LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTMxQzRFNEMxNkUwMkFBNjAwMkY3OTU3IC8qIE9F
U1RleHR1cmVIYWxmRmxvYXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gT0VTVGV4dHVyZUhhbGZGbG9hdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUEzMUM0RTRFMTZFMDJBQjQwMDJGNzk1NyAvKiBPRVNUZXh0dXJlSGFsZkZsb2F0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9FU1RleHR1cmVIYWxmRmxvYXQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI5MDc3LDcgKzI5MDc1LDYgQEAKIAkJCQlFNDYyQTRB
MDExM0U3MUJFMDA0QTQyMjAgLyogSW50UG9pbnRIYXNoLmggKi8sCiAJCQkJQjI3NTM1NDUwQjA1
MzgxNDAwMkNFNjRGIC8qIEludFJlY3QuY3BwICovLAogCQkJCUIyNzUzNTQ2MEIwNTM4MTQwMDJD
RTY0RiAvKiBJbnRSZWN0LmggKi8sCi0JCQkJQTJCOTIxNzIxNkM1Q0M0MjAwNDFEQ0Q5IC8qIElu
dFJlY3RFeHRlbnQuaCAqLywKIAkJCQlFMTM0RjVBQTEyRUUzNDNGMDA0RUM1OEQgLyogSW50UmVj
dEhhc2guaCAqLywKIAkJCQkyRDQ2RjA0RjE3Qjk2RkQyMDA1NjQ3RjAgLyogSW50U2l6ZS5jcHAg
Ki8sCiAJCQkJQjI3NTM1NDcwQjA1MzgxNDAwMkNFNjRGIC8qIEludFNpemUuaCAqLywKQEAgLTM1
MTg4LDcgKzM1MTg1LDYgQEAKIAkJCQlCMjc1MzU3MjBCMDUzODE0MDAyQ0U2NEYgLyogSW50UG9p
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0NjJBNEExMTEzRTcxQkUwMDRBNDIyMCAvKiBJbnRQ
b2ludEhhc2guaCBpbiBIZWFkZXJzICovLAogCQkJCUIyNzUzNTc0MEIwNTM4MTQwMDJDRTY0RiAv
KiBJbnRSZWN0LmggaW4gSGVhZGVycyAqLywKLQkJCQlBMkI5MjE3MzE2QzVDQzQyMDA0MURDRDkg
LyogSW50UmVjdEV4dGVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEzNEY1QUIxMkVFMzQzRjAw
NEVDNThEIC8qIEludFJlY3RIYXNoLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjc1MzU3NTBCMDUz
ODE0MDAyQ0U2NEYgLyogSW50U2l6ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjI3NTM1NzYwQjA1
MzgxNDAwMkNFNjRGIC8qIEludFNpemVIYXNoLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9MZW5ndGhCb3guY3BwCmluZGV4IDFmMzI3MjUzZmZiYjU0MTkxOWJhZjdkYTk2NTkw
ODVjMmU2MTEzY2UuLmFmNmYxODhhODIwNjNmYTM4NzMyODlhNmQ1ZmVjMTQ4NGJjZGQyNzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aEJveC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoQm94LmNwcApAQCAtNDIsNCArNDIsMTAgQEAgVGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgRmxvYXRCb3hFeHRlbnQm
IGJveCkKICAgICByZXR1cm4gdHM7CiB9CiAKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0
cmVhbSYgdHMsIGNvbnN0IEludEJveEV4dGVudCYgYm94KQoreworICAgIHRzIDw8ICJ0b3A6ICIg
PDwgYm94LnRvcCgpIDw8ICIgcmlnaHQ6ICIgPDwgYm94LnJpZ2h0KCkgPDwgIiBib3R0b206ICIg
PDwgYm94LmJvdHRvbSgpIDw8ICIgbGVmdDogIiA8PCBib3gubGVmdCgpOworICAgIHJldHVybiB0
czsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vTGVuZ3RoQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGhC
b3guaAppbmRleCBjMDQ3YTg5OWVmMzM1OGQxZjNkZTYyYjhiZGM4NjE0MTAzMDNmYjQ2Li5mMzIw
ZDRmZjU5ZTM5OGJlMGIyMDQxZDVhZGQzZDM1YTA1NThiNDgyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGhCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9MZW5ndGhCb3guaApAQCAtNjUsOCArNjUsMTcgQEAgcHVibGljOgogCiB1c2luZyBMYXlvdXRC
b3hFeHRlbnQgPSBSZWN0RWRnZXM8TGF5b3V0VW5pdD47CiB1c2luZyBGbG9hdEJveEV4dGVudCA9
IFJlY3RFZGdlczxmbG9hdD47Cit1c2luZyBJbnRCb3hFeHRlbnQgPSBSZWN0RWRnZXM8aW50PjsK
KwordXNpbmcgSW50T3V0c2V0cyA9IEludEJveEV4dGVudDsKKworaW5saW5lIExheW91dEJveEV4
dGVudCB0b0xheW91dEJveEV4dGVudChjb25zdCBJbnRCb3hFeHRlbnQmIGV4dGVudCkKK3sKKyAg
ICByZXR1cm4geyBleHRlbnQudG9wKCksIGV4dGVudC5yaWdodCgpLCBleHRlbnQuYm90dG9tKCks
IGV4dGVudC5sZWZ0KCkgfTsKK30KIAogV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6
VGV4dFN0cmVhbSYsIGNvbnN0IExlbmd0aEJveCYpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFdURjo6VGV4dFN0cmVhbSYsIGNvbnN0IEludEJveEV4dGVudCYpOwogV0VCQ09SRV9FWFBP
UlQgV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIGNvbnN0IEZs
b2F0Qm94RXh0ZW50Jik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1JlY3RFZGdlcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUmVjdEVkZ2VzLmgKaW5kZXggMGUxMjMwMTkzMzYzNTRkN2NlZjI3ZDFmZGY3YTczMjM2MDUx
OWZhYS4uNzZmNTIxOGFjN2NmNmQ3MDBjZTIyZTgwN2YzM2Y0YWNlZDRiYzViZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUmVjdEVkZ2VzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUmVjdEVkZ2VzLmgKQEAgLTkxLDEwICs5MSwzMiBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBvcGVyYXRvcj09KGNvbnN0IFJlY3RFZGdlcyYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1f
c2lkZXMgPT0gb3RoZXIubV9zaWRlczsgfQogICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBSZWN0
RWRnZXMmIG90aGVyKSBjb25zdCB7IHJldHVybiBtX3NpZGVzICE9IG90aGVyLm1fc2lkZXM7IH0K
IAorICAgIGJvb2wgaXNaZXJvKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiAhdG9wKCkg
JiYgIXJpZ2h0KCkgJiYgIWJvdHRvbSgpICYmICFsZWZ0KCk7CisgICAgfQorCiBwcml2YXRlOgog
ICAgIHN0ZDo6YXJyYXk8VCwgND4gbV9zaWRlcyB7IH07CiB9OwogCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPgorY29uc3RleHByIFJlY3RFZGdlczxUPiBvcGVyYXRvcisoY29uc3QgUmVjdEVkZ2VzPFQ+
JiBhLCBjb25zdCBSZWN0RWRnZXM8VD4mIGIpCit7CisgICAgcmV0dXJuIHsKKyAgICAgICAgYS50
b3AoKSArIGIudG9wKCksCisgICAgICAgIGEucmlnaHQoKSArIGIucmlnaHQoKSwKKyAgICAgICAg
YS5ib3R0b20oKSArIGIuYm90dG9tKCksCisgICAgICAgIGEubGVmdCgpICsgYi5sZWZ0KCkKKyAg
ICB9OworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgoraW5saW5lIFJlY3RFZGdlczxUPiYgb3Bl
cmF0b3IrPShSZWN0RWRnZXM8VD4mIGEsIGNvbnN0IFJlY3RFZGdlczxUPiYgYikKK3sKKyAgICBh
ID0gYSArIGI7CisgICAgcmV0dXJuIGE7Cit9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBSZWN0RWRnZXM8VD4mIGVk
Z2VzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVj
dEV4dGVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdEV4dGVu
dC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0M2M4MzJlMDg4ZTA0MjYyOGYyN2Jh
ZTI0NDliNDA4YTIwM2E2MjcwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3RFeHRlbnQu
aAorKysgL2Rldi9udWxsCkBAIC0xLDk3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTMgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCi0gKiAgICBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZwot
ICogICAgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCi0gKiAgICBkaXNjbGFpbWVyIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKLSAqICAgIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSIOKAnEFTIElT4oCdIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCi0gKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCi0gKiBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0g
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SCi0gKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKLSAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgotICogU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgSW50
UmVjdEV4dGVudCB7Ci1wdWJsaWM6Ci0gICAgSW50UmVjdEV4dGVudCgpID0gZGVmYXVsdDsKLQot
ICAgIEludFJlY3RFeHRlbnQoaW50IHRvcCwgaW50IHJpZ2h0LCBpbnQgYm90dG9tLCBpbnQgbGVm
dCkKLSAgICAgICAgOiBtX3RvcCh0b3ApCi0gICAgICAgICwgbV9yaWdodChyaWdodCkKLSAgICAg
ICAgLCBtX2JvdHRvbShib3R0b20pCi0gICAgICAgICwgbV9sZWZ0KGxlZnQpCi0gICAgewotICAg
IH0KLQotICAgIGludCB0b3AoKSBjb25zdCB7IHJldHVybiBtX3RvcDsgfQotICAgIHZvaWQgc2V0
VG9wKGludCB0b3ApIHsgbV90b3AgPSB0b3A7IH0KLQotICAgIGludCByaWdodCgpIGNvbnN0IHsg
cmV0dXJuIG1fcmlnaHQ7IH0KLSAgICB2b2lkIHNldFJpZ2h0KGludCByaWdodCkgeyBtX3JpZ2h0
ID0gcmlnaHQ7IH0KLQotICAgIGludCBib3R0b20oKSBjb25zdCB7IHJldHVybiBtX2JvdHRvbTsg
fQotICAgIHZvaWQgc2V0Qm90dG9tKGludCBib3R0b20pIHsgbV9ib3R0b20gPSBib3R0b207IH0K
LQotICAgIGludCBsZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9sZWZ0OyB9Ci0gICAgdm9pZCBzZXRM
ZWZ0KGludCBsZWZ0KSB7IG1fbGVmdCA9IGxlZnQ7IH0KLQotICAgIGJvb2wgaXNaZXJvKCkgY29u
c3QgeyByZXR1cm4gIWxlZnQoKSAmJiAhcmlnaHQoKSAmJiAhdG9wKCkgJiYgIWJvdHRvbSgpOyB9
Ci0KLXByaXZhdGU6Ci0gICAgaW50IG1fdG9wIHsgMCB9OwotICAgIGludCBtX3JpZ2h0IHsgMCB9
OwotICAgIGludCBtX2JvdHRvbSB7IDAgfTsKLSAgICBpbnQgbV9sZWZ0IHsgMCB9OwotfTsKLQot
aW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBJbnRSZWN0RXh0ZW50JiBhLCBjb25zdCBJbnRS
ZWN0RXh0ZW50JiBiKQotewotICAgIHJldHVybiBhLnRvcCgpID09IGIudG9wKCkgJiYgYS5yaWdo
dCgpID09IGIucmlnaHQoKSAmJiBhLmJvdHRvbSgpID09IGIuYm90dG9tKCkgJiYgYS5sZWZ0KCkg
PT0gYi5sZWZ0KCk7Ci19Ci0KLWlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgSW50UmVjdEV4
dGVudCYgYSwgY29uc3QgSW50UmVjdEV4dGVudCYgYikKLXsKLSAgICByZXR1cm4gIShhID09IGIp
OwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBSZWN0VHlwZT4KLWlubGluZSBSZWN0VHlwZSYgb3Bl
cmF0b3IrPShSZWN0VHlwZSYgcmVjdCwgY29uc3QgSW50UmVjdEV4dGVudCYgZXh0ZW50KQotewot
ICAgIHJlY3QubW92ZSgtZXh0ZW50LmxlZnQoKSwgLWV4dGVudC50b3AoKSk7Ci0gICAgcmVjdC5l
eHBhbmQoZXh0ZW50LmxlZnQoKSArIGV4dGVudC5yaWdodCgpLCBleHRlbnQudG9wKCkgKyBleHRl
bnQuYm90dG9tKCkpOwotICAgIHJldHVybiByZWN0OwotfQotCi1pbmxpbmUgSW50UmVjdEV4dGVu
dCYgb3BlcmF0b3IrPShJbnRSZWN0RXh0ZW50JiBhLCBjb25zdCBJbnRSZWN0RXh0ZW50JiBiKQot
ewotICAgIGEuc2V0VG9wKGEudG9wKCkgKyBiLnRvcCgpKTsKLSAgICBhLnNldFJpZ2h0KGEucmln
aHQoKSArIGIucmlnaHQoKSk7Ci0gICAgYS5zZXRCb3R0b20oYS5ib3R0b20oKSArIGIuYm90dG9t
KCkpOwotICAgIGEuc2V0TGVmdChhLmxlZnQoKSArIGIubGVmdCgpKTsKLSAgICByZXR1cm4gYTsK
LX0KLQotdXNpbmcgSW50T3V0c2V0cyA9IEludFJlY3RFeHRlbnQ7Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVEcm9wU2hhZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVEcm9wU2hhZG93LmNwcAppbmRleCBkMzI5MzMzZDc5MzU4NTY3ODM2N2QzMzQy
MDJhNmI2NjliMTk0NTFmLi4xNzMzOTA4NGU2OWUwZGMwZGRhZTZmMmQ3NzM0ZjFlZDEzYzVhZWJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
RHJvcFNoYWRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRURyb3BTaGFkb3cuY3BwCkBAIC02NCwxMiArNjQsMTMgQEAgRmxvYXRSZWN0IEZFRHJv
cFNoYWRvdzo6Y2FsY3VsYXRlSW1hZ2VSZWN0KGNvbnN0IEZpbHRlciYgZmlsdGVyLCBjb25zdCBG
aWx0ZXJJbWEKIEludE91dHNldHMgRkVEcm9wU2hhZG93OjpvdXRzZXRzKGNvbnN0IEZpbHRlciYp
IGNvbnN0CiB7CiAgICAgSW50U2l6ZSBvdXRzZXRTaXplID0gRkVHYXVzc2lhbkJsdXI6OmNhbGN1
bGF0ZU91dHNldFNpemUoeyBtX3N0ZFgsIG1fc3RkWSB9KTsKLSAgICByZXR1cm4gewotICAgICAg
ICBzdGQ6Om1heDxpbnQ+KDAsIG91dHNldFNpemUuaGVpZ2h0KCkgLSBtX2R5KSwKLSAgICAgICAg
c3RkOjptYXg8aW50PigwLCBvdXRzZXRTaXplLndpZHRoKCkgKyBtX2R4KSwKLSAgICAgICAgc3Rk
OjptYXg8aW50PigwLCBvdXRzZXRTaXplLmhlaWdodCgpICsgbV9keSksCi0gICAgICAgIHN0ZDo6
bWF4PGludD4oMCwgb3V0c2V0U2l6ZS53aWR0aCgpIC0gbV9keCkKLSAgICB9OworCisgICAgaW50
IHRvcCA9IHN0ZDo6bWF4PGludD4oMCwgb3V0c2V0U2l6ZS5oZWlnaHQoKSAtIG1fZHkpOworICAg
IGludCByaWdodCA9IHN0ZDo6bWF4PGludD4oMCwgb3V0c2V0U2l6ZS53aWR0aCgpICsgbV9keCk7
CisgICAgaW50IGJvdHRvbSA9IHN0ZDo6bWF4PGludD4oMCwgb3V0c2V0U2l6ZS5oZWlnaHQoKSAr
IG1fZHkpOworICAgIGludCBsZWZ0ID0gc3RkOjptYXg8aW50PigwLCBvdXRzZXRTaXplLndpZHRo
KCkgLSBtX2R4KTsKKworICAgIHJldHVybiB7IHRvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdCB9Owog
fQogCiBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gRkVEcm9wU2hhZG93Ojpj
cmVhdGVTb2Z0d2FyZUFwcGxpZXIoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJGdW5jdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJGdW5jdGlvbi5oCmluZGV4IGU4ZjUy
NmQ4NDNkYWEwMDc0ZGIzOTRhNTc3ZGRkMTY1YWNiZWNmOTMuLjY0NGI1ODM1ZGJiZTA1ZThmNTlk
NzU4N2M1MzJhZDRmNjUwM2RjZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckZ1bmN0aW9uLmgKQEAgLTI5LDcgKzI5LDcg
QEAKICNpbmNsdWRlICJGaWx0ZXJJbWFnZS5oIgogI2luY2x1ZGUgIkZpbHRlckltYWdlVmVjdG9y
LmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCi0jaW5jbHVkZSAiSW50UmVjdEV4dGVudC5oIgor
I2luY2x1ZGUgIkxlbmd0aEJveC5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbnMuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb25zLmNwcApp
bmRleCBlYWEwYTBjNGFmYmYzZjQzMDUwZmQwOGNmZmVlMjVmZjRhYTUxYWM5Li5iYzAyOTk5Mjdl
OWYxZWJhZWNlYTVjZjljZDc1Njg1OGY5MTMwZGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9ucy5j
cHAKQEAgLTg0LDEyICs4NCwxMyBAQCBJbnRPdXRzZXRzIEZpbHRlck9wZXJhdGlvbnM6Om91dHNl
dHMoKSBjb25zdAogICAgICAgICAgICAgYXV0byYgZHJvcFNoYWRvd09wZXJhdGlvbiA9IGRvd25j
YXN0PERyb3BTaGFkb3dGaWx0ZXJPcGVyYXRpb24+KCpvcGVyYXRpb24pOwogICAgICAgICAgICAg
ZmxvYXQgc3RkRGV2aWF0aW9uID0gZHJvcFNoYWRvd09wZXJhdGlvbi5zdGREZXZpYXRpb24oKTsK
ICAgICAgICAgICAgIEludFNpemUgb3V0c2V0U2l6ZSA9IEZFR2F1c3NpYW5CbHVyOjpjYWxjdWxh
dGVPdXRzZXRTaXplKHsgc3RkRGV2aWF0aW9uLCBzdGREZXZpYXRpb24gfSk7Ci0gICAgICAgICAg
ICBJbnRPdXRzZXRzIG91dHNldHMgewotICAgICAgICAgICAgICAgIHN0ZDo6bWF4KDAsIG91dHNl
dFNpemUuaGVpZ2h0KCkgLSBkcm9wU2hhZG93T3BlcmF0aW9uLnkoKSksCi0gICAgICAgICAgICAg
ICAgc3RkOjptYXgoMCwgb3V0c2V0U2l6ZS53aWR0aCgpICsgZHJvcFNoYWRvd09wZXJhdGlvbi54
KCkpLAotICAgICAgICAgICAgICAgIHN0ZDo6bWF4KDAsIG91dHNldFNpemUuaGVpZ2h0KCkgKyBk
cm9wU2hhZG93T3BlcmF0aW9uLnkoKSksCi0gICAgICAgICAgICAgICAgc3RkOjptYXgoMCwgb3V0
c2V0U2l6ZS53aWR0aCgpIC0gZHJvcFNoYWRvd09wZXJhdGlvbi54KCkpCi0gICAgICAgICAgICB9
OworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgdG9wID0gc3RkOjptYXgoMCwgb3V0c2V0
U2l6ZS5oZWlnaHQoKSAtIGRyb3BTaGFkb3dPcGVyYXRpb24ueSgpKTsKKyAgICAgICAgICAgIGlu
dCByaWdodCA9IHN0ZDo6bWF4KDAsIG91dHNldFNpemUud2lkdGgoKSArIGRyb3BTaGFkb3dPcGVy
YXRpb24ueCgpKTsKKyAgICAgICAgICAgIGludCBib3R0b20gPSBzdGQ6Om1heCgwLCBvdXRzZXRT
aXplLmhlaWdodCgpICsgZHJvcFNoYWRvd09wZXJhdGlvbi55KCkpOworICAgICAgICAgICAgaW50
IGxlZnQgPSBzdGQ6Om1heCgwLCBvdXRzZXRTaXplLndpZHRoKCkgLSBkcm9wU2hhZG93T3BlcmF0
aW9uLngoKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGF1dG8gb3V0c2V0cyA9IEludE91
dHNldHMgeyB0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnQgfTsKICAgICAgICAgICAgIHRvdGFsT3V0
c2V0cyArPSBvdXRzZXRzOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0
aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJP
cGVyYXRpb25zLmgKaW5kZXggM2M3NzMwMDY4NWNiYzIwNGQwZDUwZDQ1Yzk1NjZhOGE1ZTcxMWNm
OS4uNjBkOGVlZjBjZjM1ZWU1MWZjMjBkOTk4ZTQzNGIxMGUxZTAwOGZlZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb25z
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJP
cGVyYXRpb25zLmgKQEAgLTI2LDcgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAi
RmlsdGVyT3BlcmF0aW9uLmgiCi0jaW5jbHVkZSAiSW50UmVjdEV4dGVudC5oIgorI2luY2x1ZGUg
Ikxlbmd0aEJveC5oIgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIuaAppbmRleCA3NzQ2ZmY1ZTMy
ZDkwYTNiNjBjZDEwMmQ1ZGVlNjNhYjIyNjkzNGIzLi40ZGJhYzUzYWQwMDg1ODhkMzU1YzIzOTAw
NjA0YWMwZWNmOGE2NWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NT
RmlsdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5oCkBAIC0y
Niw3ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkZpbHRlci5oIgotI2luY2x1
ZGUgIkludFJlY3RFeHRlbnQuaCIKKyNpbmNsdWRlICJMZW5ndGhCb3guaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRl
eCA4M2FiMjdlOThlZmMxZDFhZTE0NGNhZTdiYmE3MTE4ZDQ4NzVkNDNjLi4zZTM2NTA1ZGM1N2Zk
ZGI1YzhjYjU4Mjg5M2ZmNDExNzZkZTg3MGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAKQEAgLTIwNTMsNyArMjA1Myw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNl
dEZpbHRlckJhY2tlbmROZWVkc1JlcGFpbnRpbmdJblJlY3QoY29uc3QgTGF5b3V0UmVjdCYgcmVj
dCkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIExheW91dFJlY3QgcmVjdEZvclJlcGFpbnQg
PSByZWN0OwotICAgIHJlY3RGb3JSZXBhaW50ICs9IGZpbHRlck91dHNldHMoKTsKKyAgICByZWN0
Rm9yUmVwYWludC5leHBhbmQodG9MYXlvdXRCb3hFeHRlbnQoZmlsdGVyT3V0c2V0cygpKSk7CiAK
ICAgICBtX2ZpbHRlcnMtPmV4cGFuZERpcnR5U291cmNlUmVjdChyZWN0Rm9yUmVwYWludCk7CiAg
ICAgCkBAIC0yMjExLDcgKzIyMTEsNyBAQCBzdGF0aWMgTGF5b3V0UmVjdCB0cmFuc3BhcmVuY3lD
bGlwQm94KGNvbnN0IFJlbmRlckxheWVyJiBsYXllciwgY29uc3QgUmVuZGVyTGF5ZQogICAgICAg
ICAvLyBwYWludHMgdW5mcmFnbWVudGVkLgogICAgICAgICBMYXlvdXRSZWN0IGNsaXBSZWN0ID0g
bGF5ZXIuYm91bmRpbmdCb3goJmxheWVyKTsKICAgICAgICAgZXhwYW5kQ2xpcFJlY3RGb3JEZXNj
ZW5kYW50c0FuZFJlZmxlY3Rpb24oY2xpcFJlY3QsIGxheWVyLCAmbGF5ZXIsIHRyYW5zcGFyZW5j
eUJlaGF2aW9yLCBwYWludEJlaGF2aW9yKTsKLSAgICAgICAgY2xpcFJlY3QgKz0gbGF5ZXIuZmls
dGVyT3V0c2V0cygpOworICAgICAgICBjbGlwUmVjdC5leHBhbmQodG9MYXlvdXRCb3hFeHRlbnQo
bGF5ZXIuZmlsdGVyT3V0c2V0cygpKSk7CiAgICAgICAgIExheW91dFJlY3QgcmVzdWx0ID0gdHJh
bnNmb3JtLm1hcFJlY3QoY2xpcFJlY3QpOwogICAgICAgICBpZiAoIXBhZ2luYXRpb25MYXllcikK
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CkBAIC0yMjI3LDcgKzIyMjcsNyBAQCBzdGF0aWMg
TGF5b3V0UmVjdCB0cmFuc3BhcmVuY3lDbGlwQm94KGNvbnN0IFJlbmRlckxheWVyJiBsYXllciwg
Y29uc3QgUmVuZGVyTGF5ZQogICAgIAogICAgIExheW91dFJlY3QgY2xpcFJlY3QgPSBsYXllci5i
b3VuZGluZ0JveChyb290TGF5ZXIsIGxheWVyLm9mZnNldEZyb21BbmNlc3Rvcihyb290TGF5ZXIp
LCB0cmFuc3BhcmVuY3lCZWhhdmlvciA9PSBIaXRUZXN0aW5nVHJhbnNwYXJlbmN5Q2xpcEJveCA/
IFJlbmRlckxheWVyOjpVc2VGcmFnbWVudEJveGVzSW5jbHVkaW5nQ29tcG9zaXRpbmcgOiBSZW5k
ZXJMYXllcjo6VXNlRnJhZ21lbnRCb3hlc0V4Y2x1ZGluZ0NvbXBvc2l0aW5nKTsKICAgICBleHBh
bmRDbGlwUmVjdEZvckRlc2NlbmRhbnRzQW5kUmVmbGVjdGlvbihjbGlwUmVjdCwgbGF5ZXIsIHJv
b3RMYXllciwgdHJhbnNwYXJlbmN5QmVoYXZpb3IsIHBhaW50QmVoYXZpb3IpOwotICAgIGNsaXBS
ZWN0ICs9IGxheWVyLmZpbHRlck91dHNldHMoKTsKKyAgICBjbGlwUmVjdC5leHBhbmQodG9MYXlv
dXRCb3hFeHRlbnQobGF5ZXIuZmlsdGVyT3V0c2V0cygpKSk7CiAKICAgICByZXR1cm4gY2xpcFJl
Y3Q7CiB9CkBAIC01MTA1LDcgKzUxMDUsNyBAQCBMYXlvdXRSZWN0IFJlbmRlckxheWVyOjpjYWxj
dWxhdGVMYXllckJvdW5kcyhjb25zdCBSZW5kZXJMYXllciogYW5jZXN0b3JMYXllciwgYwogICAg
ICAgICBjb21wdXRlTGF5ZXJzVW5pb24oKmNoaWxkTGF5ZXIpOwogCiAgICAgaWYgKGZsYWdzLmNv
bnRhaW5zKEluY2x1ZGVGaWx0ZXJPdXRzZXRzKSB8fCAoZmxhZ3MuY29udGFpbnMoSW5jbHVkZVBh
aW50ZWRGaWx0ZXJPdXRzZXRzKSAmJiBwYWludHNXaXRoRmlsdGVycygpKSkKLSAgICAgICAgdW5p
b25Cb3VuZHMgKz0gZmlsdGVyT3V0c2V0cygpOworICAgICAgICB1bmlvbkJvdW5kcy5leHBhbmQo
dG9MYXlvdXRCb3hFeHRlbnQoZmlsdGVyT3V0c2V0cygpKSk7CiAKICAgICBpZiAoKGZsYWdzICYg
SW5jbHVkZVNlbGZUcmFuc2Zvcm0pICYmIHBhaW50c1dpdGhUcmFuc2Zvcm0oUGFpbnRCZWhhdmlv
cjo6Tm9ybWFsKSkgewogICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCogYWZmaW5lVHJhbnMg
PSB0cmFuc2Zvcm0oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckZpbHRlcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
RmlsdGVycy5jcHAKaW5kZXggNTY3ZjhiYjIwOGQ5Y2I2NWU5ZDNiYTFhM2IyNjc0MjgwZTZkN2Ri
ZS4uMGU4MWViZDJiMjYxY2EwMjczNmI0MjJkN2NjZGVmOGNkZGZkNzRlMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyRmlsdGVycy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyRmlsdGVycy5jcHAKQEAgLTE2Miw3ICsx
NjIsNyBAQCBHcmFwaGljc0NvbnRleHQqIFJlbmRlckxheWVyRmlsdGVyczo6YmVnaW5GaWx0ZXJF
ZmZlY3QoUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIsCiAgICAgLy8gRm9yIENTU0ZpbHRlciwgZmls
dGVyUmVnaW9uID0gdGFyZ2V0Qm91bmRpbmdCb3ggKyBmaWx0ZXItPm91dHNldHMoKQogICAgIGF1
dG8gZmlsdGVyUmVnaW9uID0gdGFyZ2V0Qm91bmRpbmdCb3g7CiAgICAgaWYgKGZpbHRlci5oYXNG
aWx0ZXJUaGF0TW92ZXNQaXhlbHMoKSkKLSAgICAgICAgZmlsdGVyUmVnaW9uICs9IGZpbHRlci5v
dXRzZXRzKCk7CisgICAgICAgIGZpbHRlclJlZ2lvbi5leHBhbmQodG9MYXlvdXRCb3hFeHRlbnQo
ZmlsdGVyLm91dHNldHMoKSkpOwogCiAgICAgaWYgKGZpbHRlclJlZ2lvbi5pc0VtcHR5KCkpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>