<?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>226455</bug_id>
          
          <creation_ts>2021-05-30 23:57:38 -0700</creation_ts>
          <short_desc>Fix thread safety issues in PannerNode</short_desc>
          <delta_ts>2021-05-31 17:04:17 -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>Web Audio</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1765332</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-30 23:57:38 -0700</bug_when>
    <thetext>Adopt thread safety annotations in PannerNode and fix bugs found by clang.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765337</commentid>
    <comment_count>1</comment_count>
      <attachid>430179</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-31 00:10:26 -0700</bug_when>
    <thetext>Created attachment 430179
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765460</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-31 17:03:10 -0700</bug_when>
    <thetext>Committed r278284 (238321@main): &lt;https://commits.webkit.org/238321@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 430179.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765462</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-31 17:04:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/78695282&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430179</attachid>
            <date>2021-05-31 00:10:26 -0700</date>
            <delta_ts>2021-05-31 17:03:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226455-20210531001025.patch</filename>
            <type>text/plain</type>
            <size>22868</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MjY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjM4MDg2YjFhNzRlZmM0
NzFiZDQyMDI3NTc4M2NhYzExMDQxMmY5MS4uMmE1MjdlODAxYmZiM2Q0YWM4MTcxNjljYjM1MzA1
MDNjOGQxODMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIxLTA1LTMwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IHRocmVhZCBzYWZldHkg
aXNzdWVzIGluIFBhbm5lck5vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNjQ1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkb3B0IHRocmVhZCBzYWZldHkgYW5ub3RhdGlvbnMgaW4gUGFubmVyTm9k
ZSBhbmQgZml4IGJ1Z3MgZm91bmQgYnkgY2xhbmcuCisgICAgICAgIEluIHBhcnRpY3VsYXIsIHRo
ZSBmb2xsb3dpbmcgaXNzdWVzIHdlcmUgZml4ZWQ6CisgICAgICAgIC0gdGFpbFRpbWUoKSAvIGxh
dGVuY3lUaW1lKCkgd2VyZSBhY2Nlc3NpbmcgbV9wYW5uZXIgb24gdGhlIGF1ZGlvIHRocmVhZCB3
aXRob3V0IGxvY2tpbmcKKyAgICAgICAgICBldmVuIHRob3VnaCBtX3Bhbm5lciBnZXRzIG1vZGlm
aWVkIG9uIHRoZSBtYWluIHRocmVhZC4KKyAgICAgICAgLSBwcm9jZXNzKCkgd2FzIGFjY2Vzc2lu
ZyBwYW5uaW5nTW9kZWwgYW5kIG1fcGFubmVyIGJlZm9yZSBsb2NraW5nLCBvbiB0aGUgYXVkaW8g
dGhyZWFkLAorICAgICAgICAgIGV2ZW4gdGhvdWdoIHRob3NlIGdldCBtb2RpZmllZCBvbiB0aGUg
bWFpbiB0aHJlYWQuCisgICAgICAgIC0gcHJvY2Vzc09ubHlBdWRpb1BhcmFtcygpIHdhcyBmYWls
aW5nIHRvIGdyYWIgdGhlIHByb2Nlc3MgbG9jay4KKyAgICAgICAgLSByZXF1aXJlc1RhaWxQcm9j
ZXNzaW5nKCkgbWF5IGdldCBjYWxsZWQgb24gdGhlIGF1ZGlvIHRocmVhZCBhbmQgd2FzIGZhaWxp
bmcgdG8gZ3JhYgorICAgICAgICAgIHRoZSBwcm9jZXNzTG9jayBiZWZvcmUgYWNjZXNzaW5nIG1f
cGFubmVyLCB3aGljaCBnZXRzIG1vZGlmaWVkIG9uIHRoZSBtYWluIHRocmVhZC4KKworICAgICAg
ICAqIE1vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
YW5uZXJOb2RlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFubmVyTm9kZTo6UGFubmVy
Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpQYW5uZXJOb2RlOjpwcm9jZXNzKToKKyAgICAgICAg
KFdlYkNvcmU6OlBhbm5lck5vZGU6OnByb2Nlc3NPbmx5QXVkaW9QYXJhbXMpOgorICAgICAgICAo
V2ViQ29yZTo6UGFubmVyTm9kZTo6c2V0UGFubmluZ01vZGVsRm9yQmluZGluZ3MpOgorICAgICAg
ICAoV2ViQ29yZTo6UGFubmVyTm9kZTo6c2V0RGlzdGFuY2VNb2RlbEZvckJpbmRpbmdzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBhbm5lck5vZGU6OnNldFJlZkRpc3RhbmNlRm9yQmluZGluZ3MpOgor
ICAgICAgICAoV2ViQ29yZTo6UGFubmVyTm9kZTo6c2V0TWF4RGlzdGFuY2VGb3JCaW5kaW5ncyk6
CisgICAgICAgIChXZWJDb3JlOjpQYW5uZXJOb2RlOjpzZXRSb2xsb2ZmRmFjdG9yRm9yQmluZGlu
Z3MpOgorICAgICAgICAoV2ViQ29yZTo6UGFubmVyTm9kZTo6c2V0Q29uZU91dGVyR2FpbkZvckJp
bmRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlBhbm5lck5vZGU6OnNldENvbmVPdXRlckFuZ2xl
Rm9yQmluZGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6UGFubmVyTm9kZTo6c2V0Q29uZUlubmVy
QW5nbGVGb3JCaW5kaW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpQYW5uZXJOb2RlOjpyZXF1aXJl
c1RhaWxQcm9jZXNzaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBhbm5lck5vZGU6OnRh
aWxUaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBhbm5lck5vZGU6OmxhdGVuY3lUaW1l
IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuaDoKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuaWRsOgorICAgICAgICAqIHBsYXRmb3Jt
L2F1ZGlvL0Rpc3RhbmNlLmg6CisKIDIwMjEtMDUtMzAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBGaXggdGhyZWFkIHNhZmV0eSBpc3N1ZXMgaW4gT3NjaWxsYXRv
ck5vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVy
Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuY3Bw
CmluZGV4IDNjYjk3YmFmOTdmYTM0YzZjOTA2YjE2ODEwYWRmYTFiYzJlYTIxODcuLjA0YTI4Yjlj
N2NiMTUzMDQ4MTYzYWI5NThkMzBhNzc0ZmE1NjlmMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmNwcApAQCAtNTgsMTkgKzU4LDE5IEBAIEV4Y2Vw
dGlvbk9yPFJlZjxQYW5uZXJOb2RlPj4gUGFubmVyTm9kZTo6Y3JlYXRlKEJhc2VBdWRpb0NvbnRl
eHQmIGNvbnRleHQsIGNvbnN0CiAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAg
ICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAKLSAgICByZXN1bHQgPSBwYW5u
ZXItPnNldE1heERpc3RhbmNlKG9wdGlvbnMubWF4RGlzdGFuY2UpOworICAgIHJlc3VsdCA9IHBh
bm5lci0+c2V0TWF4RGlzdGFuY2VGb3JCaW5kaW5ncyhvcHRpb25zLm1heERpc3RhbmNlKTsKICAg
ICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVh
c2VFeGNlcHRpb24oKTsKIAotICAgIHJlc3VsdCA9IHBhbm5lci0+c2V0UmVmRGlzdGFuY2Uob3B0
aW9ucy5yZWZEaXN0YW5jZSk7CisgICAgcmVzdWx0ID0gcGFubmVyLT5zZXRSZWZEaXN0YW5jZUZv
ckJpbmRpbmdzKG9wdGlvbnMucmVmRGlzdGFuY2UpOwogICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0
aW9uKCkpCiAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogCi0gICAg
cmVzdWx0ID0gcGFubmVyLT5zZXRSb2xsb2ZmRmFjdG9yKG9wdGlvbnMucm9sbG9mZkZhY3Rvcik7
CisgICAgcmVzdWx0ID0gcGFubmVyLT5zZXRSb2xsb2ZmRmFjdG9yRm9yQmluZGluZ3Mob3B0aW9u
cy5yb2xsb2ZmRmFjdG9yKTsKICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAg
ICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKIAotICAgIHJlc3VsdCA9IHBhbm5l
ci0+c2V0Q29uZU91dGVyR2FpbihvcHRpb25zLmNvbmVPdXRlckdhaW4pOworICAgIHJlc3VsdCA9
IHBhbm5lci0+c2V0Q29uZU91dGVyR2FpbkZvckJpbmRpbmdzKG9wdGlvbnMuY29uZU91dGVyR2Fp
bik7CiAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIHJlc3Vs
dC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAKQEAgLTc5LDE5ICs3OSwyMCBAQCBFeGNlcHRpb25PcjxS
ZWY8UGFubmVyTm9kZT4+IFBhbm5lck5vZGU6OmNyZWF0ZShCYXNlQXVkaW9Db250ZXh0JiBjb250
ZXh0LCBjb25zdAogCiBQYW5uZXJOb2RlOjpQYW5uZXJOb2RlKEJhc2VBdWRpb0NvbnRleHQmIGNv
bnRleHQsIGNvbnN0IFBhbm5lck9wdGlvbnMmIG9wdGlvbnMpCiAgICAgOiBBdWRpb05vZGUoY29u
dGV4dCwgTm9kZVR5cGVQYW5uZXIpCisgICAgLy8gTG9hZCB0aGUgSFJURiBkYXRhYmFzZSBhc3lu
Y2hyb25vdXNseSBzbyB3ZSBkb24ndCBibG9jayB0aGUgSmF2YXNjcmlwdCB0aHJlYWQgd2hpbGUg
Y3JlYXRpbmcgdGhlIEhSVEYgZGF0YWJhc2UuCisgICAgLCBtX2hydGZEYXRhYmFzZUxvYWRlcihI
UlRGRGF0YWJhc2VMb2FkZXI6OmNyZWF0ZUFuZExvYWRBc3luY2hyb25vdXNseUlmTmVjZXNzYXJ5
KGNvbnRleHQuc2FtcGxlUmF0ZSgpKSkKICAgICAsIG1fcGFubmluZ01vZGVsKG9wdGlvbnMucGFu
bmluZ01vZGVsKQorICAgICwgbV9wYW5uZXIoUGFubmVyOjpjcmVhdGUobV9wYW5uaW5nTW9kZWws
IHNhbXBsZVJhdGUoKSwgbV9ocnRmRGF0YWJhc2VMb2FkZXIucHRyKCkpKQogICAgICwgbV9wb3Np
dGlvblgoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJwb3NpdGlvblgiX3MsIG9wdGlvbnMu
cG9zaXRpb25YLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKICAg
ICAsIG1fcG9zaXRpb25ZKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAicG9zaXRpb25ZIl9z
LCBvcHRpb25zLnBvc2l0aW9uWSwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpB
UmF0ZSkpCiAgICAgLCBtX3Bvc2l0aW9uWihBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgInBv
c2l0aW9uWiJfcywgb3B0aW9ucy5wb3NpdGlvblosIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0
aW9uUmF0ZTo6QVJhdGUpKQogICAgICwgbV9vcmllbnRhdGlvblgoQXVkaW9QYXJhbTo6Y3JlYXRl
KGNvbnRleHQsICJvcmllbnRhdGlvblgiX3MsIG9wdGlvbnMub3JpZW50YXRpb25YLCAtRkxUX01B
WCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKICAgICAsIG1fb3JpZW50YXRpb25Z
KEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAib3JpZW50YXRpb25ZIl9zLCBvcHRpb25zLm9y
aWVudGF0aW9uWSwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCiAg
ICAgLCBtX29yaWVudGF0aW9uWihBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgIm9yaWVudGF0
aW9uWiJfcywgb3B0aW9ucy5vcmllbnRhdGlvblosIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0
aW9uUmF0ZTo6QVJhdGUpKQotICAgIC8vIExvYWQgdGhlIEhSVEYgZGF0YWJhc2UgYXN5bmNocm9u
b3VzbHkgc28gd2UgZG9uJ3QgYmxvY2sgdGhlIEphdmFzY3JpcHQgdGhyZWFkIHdoaWxlIGNyZWF0
aW5nIHRoZSBIUlRGIGRhdGFiYXNlLgotICAgICwgbV9ocnRmRGF0YWJhc2VMb2FkZXIoSFJURkRh
dGFiYXNlTG9hZGVyOjpjcmVhdGVBbmRMb2FkQXN5bmNocm9ub3VzbHlJZk5lY2Vzc2FyeShjb250
ZXh0LnNhbXBsZVJhdGUoKSkpCiB7Ci0gICAgc2V0RGlzdGFuY2VNb2RlbChvcHRpb25zLmRpc3Rh
bmNlTW9kZWwpOwotICAgIHNldENvbmVJbm5lckFuZ2xlKG9wdGlvbnMuY29uZUlubmVyQW5nbGUp
OwotICAgIHNldENvbmVPdXRlckFuZ2xlKG9wdGlvbnMuY29uZU91dGVyQW5nbGUpOworICAgIHNl
dERpc3RhbmNlTW9kZWxGb3JCaW5kaW5ncyhvcHRpb25zLmRpc3RhbmNlTW9kZWwpOworICAgIHNl
dENvbmVJbm5lckFuZ2xlRm9yQmluZGluZ3Mob3B0aW9ucy5jb25lSW5uZXJBbmdsZSk7CisgICAg
c2V0Q29uZU91dGVyQW5nbGVGb3JCaW5kaW5ncyhvcHRpb25zLmNvbmVPdXRlckFuZ2xlKTsKIAog
ICAgIGFkZElucHV0KCk7CiAgICAgYWRkT3V0cHV0KDIpOwpAQCAtMTA4LDcgKzEwOSw3IEBAIHZv
aWQgUGFubmVyTm9kZTo6cHJvY2VzcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogewogICAgIEF1
ZGlvQnVzKiBkZXN0aW5hdGlvbiA9IG91dHB1dCgwKS0+YnVzKCk7CiAKLSAgICBpZiAoIWlzSW5p
dGlhbGl6ZWQoKSB8fCAhaW5wdXQoMCktPmlzQ29ubmVjdGVkKCkgfHwgIW1fcGFubmVyLmdldCgp
KSB7CisgICAgaWYgKCFpc0luaXRpYWxpemVkKCkgfHwgIWlucHV0KDApLT5pc0Nvbm5lY3RlZCgp
KSB7CiAgICAgICAgIGRlc3RpbmF0aW9uLT56ZXJvKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CkBAIC0xMTksMTYgKzEyMCw2IEBAIHZvaWQgUGFubmVyTm9kZTo6cHJvY2VzcyhzaXplX3QgZnJh
bWVzVG9Qcm9jZXNzKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gSFJURkRhdGFi
YXNlIHNob3VsZCBiZSBsb2FkZWQgYmVmb3JlIHByb2NlZWRpbmcgZm9yIG9mZmxpbmUgYXVkaW8g
Y29udGV4dCB3aGVuIHBhbm5pbmdNb2RlbCgpIGlzICJIUlRGIi4KLSAgICBpZiAocGFubmluZ01v
ZGVsKCkgPT0gUGFubmluZ01vZGVsVHlwZTo6SFJURiAmJiAhbV9ocnRmRGF0YWJhc2VMb2FkZXIt
PmlzTG9hZGVkKCkpIHsKLSAgICAgICAgaWYgKGNvbnRleHQoKS5pc09mZmxpbmVDb250ZXh0KCkp
Ci0gICAgICAgICAgICBtX2hydGZEYXRhYmFzZUxvYWRlci0+d2FpdEZvckxvYWRlclRocmVhZENv
bXBsZXRpb24oKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBkZXN0aW5hdGlvbi0+emVy
bygpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQotCiAgICAgLy8gVGhl
IGF1ZGlvIHRocmVhZCBjYW4ndCBibG9jayBvbiB0aGlzIGxvY2ssIHNvIHdlIHVzZSB0cnlMb2Nr
KCkgaW5zdGVhZC4KICAgICBpZiAoIW1fcHJvY2Vzc0xvY2sudHJ5TG9jaygpKSB7CiAgICAgICAg
IC8vIFRvbyBiYWQgLSB0cnlMb2NrKCkgZmFpbGVkLiBXZSBtdXN0IGJlIGluIHRoZSBtaWRkbGUg
b2YgY2hhbmdpbmcgdGhlIHBhbm5lci4KQEAgLTEzNyw2ICsxMjgsMjEgQEAgdm9pZCBQYW5uZXJO
b2RlOjpwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiAgICAgfQogICAgIExvY2tlciBs
b2NrZXIgeyBBZG9wdExvY2ssIG1fcHJvY2Vzc0xvY2sgfTsKIAorICAgIGlmICghbV9wYW5uZXIp
IHsKKyAgICAgICAgZGVzdGluYXRpb24tPnplcm8oKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIC8vIEhSVEZEYXRhYmFzZSBzaG91bGQgYmUgbG9hZGVkIGJlZm9yZSBwcm9jZWVkaW5n
IGZvciBvZmZsaW5lIGF1ZGlvIGNvbnRleHQgd2hlbiBtX3Bhbm5pbmdNb2RlbCBpcyAiSFJURiIu
CisgICAgaWYgKG1fcGFubmluZ01vZGVsID09IFBhbm5pbmdNb2RlbFR5cGU6OkhSVEYgJiYgIW1f
aHJ0ZkRhdGFiYXNlTG9hZGVyLT5pc0xvYWRlZCgpKSB7CisgICAgICAgIGlmIChjb250ZXh0KCku
aXNPZmZsaW5lQ29udGV4dCgpKQorICAgICAgICAgICAgbV9ocnRmRGF0YWJhc2VMb2FkZXItPndh
aXRGb3JMb2FkZXJUaHJlYWRDb21wbGV0aW9uKCk7CisgICAgICAgIGVsc2UgeworICAgICAgICAg
ICAgZGVzdGluYXRpb24tPnplcm8oKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
ICAgIH0KKwogICAgIGlmICgoaGFzU2FtcGxlQWNjdXJhdGVWYWx1ZXMoKSB8fCBsaXN0ZW5lcigp
Lmhhc1NhbXBsZUFjY3VyYXRlVmFsdWVzKCkpICYmIChzaG91bGRVc2VBUmF0ZSgpIHx8IGxpc3Rl
bmVyKCkuc2hvdWxkVXNlQVJhdGUoKSkpIHsKICAgICAgICAgcHJvY2Vzc1NhbXBsZUFjY3VyYXRl
VmFsdWVzKGRlc3RpbmF0aW9uLCBzb3VyY2UsIGZyYW1lc1RvUHJvY2Vzcyk7CiAgICAgICAgIHJl
dHVybjsKQEAgLTE1Nyw2ICsxNjMsMTEgQEAgdm9pZCBQYW5uZXJOb2RlOjpwcm9jZXNzKHNpemVf
dCBmcmFtZXNUb1Byb2Nlc3MpCiAKIHZvaWQgUGFubmVyTm9kZTo6cHJvY2Vzc09ubHlBdWRpb1Bh
cmFtcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogeworICAgIEFTU0VSVChjb250ZXh0KCkuaXNB
dWRpb1RocmVhZCgpKTsKKyAgICBpZiAoIW1fcHJvY2Vzc0xvY2sudHJ5TG9jaygpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrLCBtX3Byb2Nlc3NMb2Nr
IH07CiAgICAgZmxvYXQgdmFsdWVzW0F1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZV07
CiAgICAgQVNTRVJUKGZyYW1lc1RvUHJvY2VzcyA8PSBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVh
bnR1bVNpemUpOwogCkBAIC0yNDUsMzkgKzI1NiwxOSBAQCBib29sIFBhbm5lck5vZGU6OnNob3Vs
ZFVzZUFSYXRlKCkgY29uc3QKICAgICAgICAgfHwgbV9vcmllbnRhdGlvblotPmF1dG9tYXRpb25S
YXRlKCkgPT0gQXV0b21hdGlvblJhdGU6OkFSYXRlOwogfQogCi12b2lkIFBhbm5lck5vZGU6Omlu
aXRpYWxpemUoKQotewotICAgIGlmIChpc0luaXRpYWxpemVkKCkpCi0gICAgICAgIHJldHVybjsK
LQotICAgIG1fcGFubmVyID0gUGFubmVyOjpjcmVhdGUobV9wYW5uaW5nTW9kZWwsIHNhbXBsZVJh
dGUoKSwgbV9ocnRmRGF0YWJhc2VMb2FkZXIuZ2V0KCkpOwotCi0gICAgQXVkaW9Ob2RlOjppbml0
aWFsaXplKCk7Ci19Ci0KLXZvaWQgUGFubmVyTm9kZTo6dW5pbml0aWFsaXplKCkKLXsKLSAgICBp
ZiAoIWlzSW5pdGlhbGl6ZWQoKSkKLSAgICAgICAgcmV0dXJuOwotICAgICAgICAKLSAgICBtX3Bh
bm5lciA9IG51bGxwdHI7Ci0gICAgQXVkaW9Ob2RlOjp1bmluaXRpYWxpemUoKTsKLX0KLQogQXVk
aW9MaXN0ZW5lciYgUGFubmVyTm9kZTo6bGlzdGVuZXIoKQogewogICAgIHJldHVybiBjb250ZXh0
KCkubGlzdGVuZXIoKTsKIH0KIAotdm9pZCBQYW5uZXJOb2RlOjpzZXRQYW5uaW5nTW9kZWwoUGFu
bmluZ01vZGVsVHlwZSBtb2RlbCkKK3ZvaWQgUGFubmVyTm9kZTo6c2V0UGFubmluZ01vZGVsRm9y
QmluZGluZ3MoUGFubmluZ01vZGVsVHlwZSBtb2RlbCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwogCi0gICAgaWYgKCFtX3Bhbm5lci5nZXQoKSB8fCBtb2RlbCAhPSBtX3Bhbm5pbmdN
b2RlbCkgewotICAgICAgICAvLyBUaGlzIHN5bmNocm9uaXplcyB3aXRoIHByb2Nlc3MoKS4KLSAg
ICAgICAgTG9ja2VyIGxvY2tlciB7IG1fcHJvY2Vzc0xvY2sgfTsKLQotICAgICAgICBtX3Bhbm5l
ciA9IFBhbm5lcjo6Y3JlYXRlKG1vZGVsLCBzYW1wbGVSYXRlKCksIG1faHJ0ZkRhdGFiYXNlTG9h
ZGVyLmdldCgpKTsKKyAgICAvLyBUaGlzIHN5bmNocm9uaXplcyB3aXRoIHByb2Nlc3MoKS4KKyAg
ICBMb2NrZXIgbG9ja2VyIHsgbV9wcm9jZXNzTG9jayB9OworICAgIGlmICghbV9wYW5uZXIgfHwg
bW9kZWwgIT0gbV9wYW5uaW5nTW9kZWwpIHsKKyAgICAgICAgbV9wYW5uZXIgPSBQYW5uZXI6OmNy
ZWF0ZShtb2RlbCwgc2FtcGxlUmF0ZSgpLCBtX2hydGZEYXRhYmFzZUxvYWRlci5wdHIoKSk7CiAg
ICAgICAgIG1fcGFubmluZ01vZGVsID0gbW9kZWw7CiAgICAgfQogfQpAQCAtMzM2LDEyICszMjcs
MTMgQEAgRXhjZXB0aW9uT3I8dm9pZD4gUGFubmVyTm9kZTo6c2V0T3JpZW50YXRpb24oZmxvYXQg
eCwgZmxvYXQgeSwgZmxvYXQgeikKICAgICByZXR1cm4geyB9OwogfQogCi1EaXN0YW5jZU1vZGVs
VHlwZSBQYW5uZXJOb2RlOjpkaXN0YW5jZU1vZGVsKCkgY29uc3QKK0Rpc3RhbmNlTW9kZWxUeXBl
IFBhbm5lck5vZGU6OmRpc3RhbmNlTW9kZWxGb3JCaW5kaW5ncygpIGNvbnN0IFdURl9JR05PUkVT
X1RIUkVBRF9TQUZFVFlfQU5BTFlTSVMKIHsKLSAgICByZXR1cm4gY29uc3RfY2FzdDxQYW5uZXJO
b2RlKj4odGhpcyktPm1fZGlzdGFuY2VFZmZlY3QubW9kZWwoKTsKKyAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOworICAgIHJldHVybiBtX2Rpc3RhbmNlRWZmZWN0Lm1vZGVsKCk7CiB9CiAKLXZv
aWQgUGFubmVyTm9kZTo6c2V0RGlzdGFuY2VNb2RlbChEaXN0YW5jZU1vZGVsVHlwZSBtb2RlbCkK
K3ZvaWQgUGFubmVyTm9kZTo6c2V0RGlzdGFuY2VNb2RlbEZvckJpbmRpbmdzKERpc3RhbmNlTW9k
ZWxUeXBlIG1vZGVsKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKQEAgLTM1MSw3
ICszNDMsNyBAQCB2b2lkIFBhbm5lck5vZGU6OnNldERpc3RhbmNlTW9kZWwoRGlzdGFuY2VNb2Rl
bFR5cGUgbW9kZWwpCiAgICAgbV9kaXN0YW5jZUVmZmVjdC5zZXRNb2RlbChtb2RlbCwgdHJ1ZSk7
CiB9CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IFBhbm5lck5vZGU6OnNldFJlZkRpc3RhbmNlKGRvdWJs
ZSByZWZEaXN0YW5jZSkKK0V4Y2VwdGlvbk9yPHZvaWQ+IFBhbm5lck5vZGU6OnNldFJlZkRpc3Rh
bmNlRm9yQmluZGluZ3MoZG91YmxlIHJlZkRpc3RhbmNlKQogewogICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CiAKQEAgLTM2NSw3ICszNTcsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBQYW5uZXJO
b2RlOjpzZXRSZWZEaXN0YW5jZShkb3VibGUgcmVmRGlzdGFuY2UpCiAgICAgcmV0dXJuIHsgfTsK
IH0KIAotRXhjZXB0aW9uT3I8dm9pZD4gUGFubmVyTm9kZTo6c2V0TWF4RGlzdGFuY2UoZG91Ymxl
IG1heERpc3RhbmNlKQorRXhjZXB0aW9uT3I8dm9pZD4gUGFubmVyTm9kZTo6c2V0TWF4RGlzdGFu
Y2VGb3JCaW5kaW5ncyhkb3VibGUgbWF4RGlzdGFuY2UpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKIApAQCAtMzc5LDcgKzM3MSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFBhbm5lck5v
ZGU6OnNldE1heERpc3RhbmNlKGRvdWJsZSBtYXhEaXN0YW5jZSkKICAgICByZXR1cm4geyB9Owog
fQogCi1FeGNlcHRpb25Pcjx2b2lkPiBQYW5uZXJOb2RlOjpzZXRSb2xsb2ZmRmFjdG9yKGRvdWJs
ZSByb2xsb2ZmRmFjdG9yKQorRXhjZXB0aW9uT3I8dm9pZD4gUGFubmVyTm9kZTo6c2V0Um9sbG9m
ZkZhY3RvckZvckJpbmRpbmdzKGRvdWJsZSByb2xsb2ZmRmFjdG9yKQogewogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CiAKQEAgLTM5Myw3ICszODUsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBQ
YW5uZXJOb2RlOjpzZXRSb2xsb2ZmRmFjdG9yKGRvdWJsZSByb2xsb2ZmRmFjdG9yKQogICAgIHJl
dHVybiB7IH07CiB9CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IFBhbm5lck5vZGU6OnNldENvbmVPdXRl
ckdhaW4oZG91YmxlIGdhaW4pCitFeGNlcHRpb25Pcjx2b2lkPiBQYW5uZXJOb2RlOjpzZXRDb25l
T3V0ZXJHYWluRm9yQmluZGluZ3MoZG91YmxlIGdhaW4pCiB7CiAgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKIApAQCAtNDA3LDcgKzM5OSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFBhbm5lck5v
ZGU6OnNldENvbmVPdXRlckdhaW4oZG91YmxlIGdhaW4pCiAgICAgcmV0dXJuIHsgfTsKIH0KIAot
dm9pZCBQYW5uZXJOb2RlOjpzZXRDb25lT3V0ZXJBbmdsZShkb3VibGUgYW5nbGUpCit2b2lkIFBh
bm5lck5vZGU6OnNldENvbmVPdXRlckFuZ2xlRm9yQmluZGluZ3MoZG91YmxlIGFuZ2xlKQogewog
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKQEAgLTQxNyw3ICs0MDksNyBAQCB2b2lkIFBh
bm5lck5vZGU6OnNldENvbmVPdXRlckFuZ2xlKGRvdWJsZSBhbmdsZSkKICAgICBtX2NvbmVFZmZl
Y3Quc2V0T3V0ZXJBbmdsZShhbmdsZSk7CiB9CiAKLXZvaWQgUGFubmVyTm9kZTo6c2V0Q29uZUlu
bmVyQW5nbGUoZG91YmxlIGFuZ2xlKQordm9pZCBQYW5uZXJOb2RlOjpzZXRDb25lSW5uZXJBbmds
ZUZvckJpbmRpbmdzKGRvdWJsZSBhbmdsZSkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OwogCkBAIC01MTUsNiArNTA3LDkgQEAgdm9pZCBQYW5uZXJOb2RlOjphemltdXRoRWxldmF0aW9u
KGRvdWJsZSogb3V0QXppbXV0aCwgZG91YmxlKiBvdXRFbGV2YXRpb24pCiAKIGJvb2wgUGFubmVy
Tm9kZTo6cmVxdWlyZXNUYWlsUHJvY2Vzc2luZygpIGNvbnN0CiB7CisgICAgaWYgKCFtX3Byb2Nl
c3NMb2NrLnRyeUxvY2soKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgTG9ja2VyIGxvY2tl
ciB7IEFkb3B0TG9jaywgbV9wcm9jZXNzTG9jayB9OwogICAgIC8vIElmIHRoZXJlJ3Mgbm8gaW50
ZXJuYWwgcGFubmVyIG1ldGhvZCBzZXQgdXAgeWV0LCBhc3N1bWUgd2UgcmVxdWlyZSB0YWlsCiAg
ICAgLy8gcHJvY2Vzc2luZyBpbiBjYXNlIHRoZSBIUlRGIHBhbm5lciBpcyBzZXQgbGF0ZXIsIHdo
aWNoIGRvZXMgcmVxdWlyZSB0YWlsCiAgICAgLy8gcHJvY2Vzc2luZy4KQEAgLTUzOSw2ICs1MzQs
MjIgQEAgZmxvYXQgUGFubmVyTm9kZTo6ZGlzdGFuY2VDb25lR2FpbigpCiAgICAgcmV0dXJuIGNh
bGN1bGF0ZURpc3RhbmNlQ29uZUdhaW4ocG9zaXRpb24oKSwgb3JpZW50YXRpb24oKSwgbGlzdGVu
ZXIoKS5wb3NpdGlvbigpKTsKIH0KIAorZG91YmxlIFBhbm5lck5vZGU6OnRhaWxUaW1lKCkgY29u
c3QKK3sKKyAgICBpZiAoIW1fcHJvY2Vzc0xvY2sudHJ5TG9jaygpKQorICAgICAgICByZXR1cm4g
c3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpOworICAgIExvY2tlciBsb2Nr
ZXIgeyBBZG9wdExvY2ssIG1fcHJvY2Vzc0xvY2sgfTsKKyAgICByZXR1cm4gbV9wYW5uZXIgPyBt
X3Bhbm5lci0+dGFpbFRpbWUoKSA6IDA7Cit9CisKK2RvdWJsZSBQYW5uZXJOb2RlOjpsYXRlbmN5
VGltZSgpIGNvbnN0Cit7CisgICAgaWYgKCFtX3Byb2Nlc3NMb2NrLnRyeUxvY2soKSkKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKTsKKyAgICBM
b2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrLCBtX3Byb2Nlc3NMb2NrIH07CisgICAgcmV0dXJuIG1f
cGFubmVyID8gbV9wYW5uZXItPmxhdGVuY3lUaW1lKCkgOiAwOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuaAppbmRleCBjMWY2ZTQ2ZjA2YWQ1ZmNkZDI2
ZDg1OTk1ZDJjNGM1MmJmYTQ3MjQ5Li5kZDM5NGVmMmEwZDcxY2QxNmYzNjM1YzViY2Y3NDg1OTkx
NGIyMzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5l
ck5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUu
aApAQCAtNjEsOTMgKzYxLDg5IEBAIHB1YmxpYzoKICAgICAvLyBBdWRpb05vZGUKICAgICB2b2lk
IHByb2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJvY2Vzcykgb3ZlcnJpZGU7CiAgICAgdm9pZCBwcm9j
ZXNzT25seUF1ZGlvUGFyYW1zKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIGZpbmFsOwotICAgIHZv
aWQgaW5pdGlhbGl6ZSgpIG92ZXJyaWRlOwotICAgIHZvaWQgdW5pbml0aWFsaXplKCkgb3ZlcnJp
ZGU7CiAKICAgICAvLyBMaXN0ZW5lcgogICAgIEF1ZGlvTGlzdGVuZXImIGxpc3RlbmVyKCk7CiAK
ICAgICAvLyBQYW5uaW5nIG1vZGVsCi0gICAgUGFubmluZ01vZGVsVHlwZSBwYW5uaW5nTW9kZWwo
KSBjb25zdCB7IHJldHVybiBtX3Bhbm5pbmdNb2RlbDsgfQotICAgIHZvaWQgc2V0UGFubmluZ01v
ZGVsKFBhbm5pbmdNb2RlbFR5cGUpOworICAgIFBhbm5pbmdNb2RlbFR5cGUgcGFubmluZ01vZGVs
Rm9yQmluZGluZ3MoKSBjb25zdCBXVEZfSUdOT1JFU19USFJFQURfU0FGRVRZX0FOQUxZU0lTIHsg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsgcmV0dXJuIG1fcGFubmluZ01vZGVsOyB9CisgICAgdm9p
ZCBzZXRQYW5uaW5nTW9kZWxGb3JCaW5kaW5ncyhQYW5uaW5nTW9kZWxUeXBlKTsKIAogICAgIC8v
IFBvc2l0aW9uCi0gICAgRmxvYXRQb2ludDNEIHBvc2l0aW9uKCkgY29uc3Q7CiAgICAgRXhjZXB0
aW9uT3I8dm9pZD4gc2V0UG9zaXRpb24oZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7Ci0gICAg
QXVkaW9QYXJhbSYgcG9zaXRpb25YKCkgeyByZXR1cm4gbV9wb3NpdGlvblguZ2V0KCk7IH0KLSAg
ICBBdWRpb1BhcmFtJiBwb3NpdGlvblkoKSB7IHJldHVybiBtX3Bvc2l0aW9uWS5nZXQoKTsgfQot
ICAgIEF1ZGlvUGFyYW0mIHBvc2l0aW9uWigpIHsgcmV0dXJuIG1fcG9zaXRpb25aLmdldCgpOyB9
CisgICAgQXVkaW9QYXJhbSYgcG9zaXRpb25YKCkgV1RGX0lHTk9SRVNfVEhSRUFEX1NBRkVUWV9B
TkFMWVNJUyB7IEFTU0VSVChpc01haW5UaHJlYWQoKSk7IHJldHVybiBtX3Bvc2l0aW9uWC5nZXQo
KTsgfQorICAgIEF1ZGlvUGFyYW0mIHBvc2l0aW9uWSgpIFdURl9JR05PUkVTX1RIUkVBRF9TQUZF
VFlfQU5BTFlTSVMgeyBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOyByZXR1cm4gbV9wb3NpdGlvblku
Z2V0KCk7IH0KKyAgICBBdWRpb1BhcmFtJiBwb3NpdGlvblooKSBXVEZfSUdOT1JFU19USFJFQURf
U0FGRVRZX0FOQUxZU0lTIHsgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsgcmV0dXJuIG1fcG9zaXRp
b25aLmdldCgpOyB9CiAKICAgICAvLyBPcmllbnRhdGlvbgotICAgIEZsb2F0UG9pbnQzRCBvcmll
bnRhdGlvbigpIGNvbnN0OwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldE9yaWVudGF0aW9uKGZs
b2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOwotICAgIEF1ZGlvUGFyYW0mIG9yaWVudGF0aW9uWCgp
IHsgcmV0dXJuIG1fb3JpZW50YXRpb25YLmdldCgpOyB9Ci0gICAgQXVkaW9QYXJhbSYgb3JpZW50
YXRpb25ZKCkgeyByZXR1cm4gbV9vcmllbnRhdGlvblkuZ2V0KCk7IH0KLSAgICBBdWRpb1BhcmFt
JiBvcmllbnRhdGlvblooKSB7IHJldHVybiBtX29yaWVudGF0aW9uWi5nZXQoKTsgfQorICAgIEF1
ZGlvUGFyYW0mIG9yaWVudGF0aW9uWCgpIFdURl9JR05PUkVTX1RIUkVBRF9TQUZFVFlfQU5BTFlT
SVMgeyBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOyByZXR1cm4gbV9vcmllbnRhdGlvblguZ2V0KCk7
IH0KKyAgICBBdWRpb1BhcmFtJiBvcmllbnRhdGlvblkoKSBXVEZfSUdOT1JFU19USFJFQURfU0FG
RVRZX0FOQUxZU0lTIHsgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsgcmV0dXJuIG1fb3JpZW50YXRp
b25ZLmdldCgpOyB9CisgICAgQXVkaW9QYXJhbSYgb3JpZW50YXRpb25aKCkgV1RGX0lHTk9SRVNf
VEhSRUFEX1NBRkVUWV9BTkFMWVNJUyB7IEFTU0VSVChpc01haW5UaHJlYWQoKSk7IHJldHVybiBt
X29yaWVudGF0aW9uWi5nZXQoKTsgfQogCiAgICAgLy8gRGlzdGFuY2UgcGFyYW1ldGVycwotICAg
IERpc3RhbmNlTW9kZWxUeXBlIGRpc3RhbmNlTW9kZWwoKSBjb25zdDsKLSAgICB2b2lkIHNldERp
c3RhbmNlTW9kZWwoRGlzdGFuY2VNb2RlbFR5cGUpOworICAgIERpc3RhbmNlTW9kZWxUeXBlIGRp
c3RhbmNlTW9kZWxGb3JCaW5kaW5ncygpIGNvbnN0OworICAgIHZvaWQgc2V0RGlzdGFuY2VNb2Rl
bEZvckJpbmRpbmdzKERpc3RhbmNlTW9kZWxUeXBlKTsKIAotICAgIGRvdWJsZSByZWZEaXN0YW5j
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzdGFuY2VFZmZlY3QucmVmRGlzdGFuY2UoKTsgfQotICAg
IEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFJlZkRpc3RhbmNlKGRvdWJsZSk7CisgICAgZG91YmxlIHJl
ZkRpc3RhbmNlRm9yQmluZGluZ3MoKSBjb25zdCBXVEZfSUdOT1JFU19USFJFQURfU0FGRVRZX0FO
QUxZU0lTIHsgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsgcmV0dXJuIG1fZGlzdGFuY2VFZmZlY3Qu
cmVmRGlzdGFuY2UoKTsgfQorICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFJlZkRpc3RhbmNlRm9y
QmluZGluZ3MoZG91YmxlKTsKIAotICAgIGRvdWJsZSBtYXhEaXN0YW5jZSgpIGNvbnN0IHsgcmV0
dXJuIG1fZGlzdGFuY2VFZmZlY3QubWF4RGlzdGFuY2UoKTsgfQotICAgIEV4Y2VwdGlvbk9yPHZv
aWQ+IHNldE1heERpc3RhbmNlKGRvdWJsZSk7CisgICAgZG91YmxlIG1heERpc3RhbmNlRm9yQmlu
ZGluZ3MoKSBjb25zdCBXVEZfSUdOT1JFU19USFJFQURfU0FGRVRZX0FOQUxZU0lTIHsgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsgcmV0dXJuIG1fZGlzdGFuY2VFZmZlY3QubWF4RGlzdGFuY2UoKTsg
fQorICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldE1heERpc3RhbmNlRm9yQmluZGluZ3MoZG91Ymxl
KTsKIAotICAgIGRvdWJsZSByb2xsb2ZmRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9kaXN0YW5j
ZUVmZmVjdC5yb2xsb2ZmRmFjdG9yKCk7IH0KLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRSb2xs
b2ZmRmFjdG9yKGRvdWJsZSk7CisgICAgZG91YmxlIHJvbGxvZmZGYWN0b3JGb3JCaW5kaW5ncygp
IGNvbnN0IFdURl9JR05PUkVTX1RIUkVBRF9TQUZFVFlfQU5BTFlTSVMgeyBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOyByZXR1cm4gbV9kaXN0YW5jZUVmZmVjdC5yb2xsb2ZmRmFjdG9yKCk7IH0KKyAg
ICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRSb2xsb2ZmRmFjdG9yRm9yQmluZGluZ3MoZG91YmxlKTsK
IAogICAgIC8vIFNvdW5kIGNvbmVzIC0gYW5nbGVzIGluIGRlZ3JlZXMKLSAgICBkb3VibGUgY29u
ZUlubmVyQW5nbGUoKSBjb25zdCB7IHJldHVybiBtX2NvbmVFZmZlY3QuaW5uZXJBbmdsZSgpOyB9
Ci0gICAgdm9pZCBzZXRDb25lSW5uZXJBbmdsZShkb3VibGUpOworICAgIGRvdWJsZSBjb25lSW5u
ZXJBbmdsZUZvckJpbmRpbmdzKCkgY29uc3QgV1RGX0lHTk9SRVNfVEhSRUFEX1NBRkVUWV9BTkFM
WVNJUyB7IEFTU0VSVChpc01haW5UaHJlYWQoKSk7IHJldHVybiBtX2NvbmVFZmZlY3QuaW5uZXJB
bmdsZSgpOyB9CisgICAgdm9pZCBzZXRDb25lSW5uZXJBbmdsZUZvckJpbmRpbmdzKGRvdWJsZSk7
CiAKLSAgICBkb3VibGUgY29uZU91dGVyQW5nbGUoKSBjb25zdCB7IHJldHVybiBtX2NvbmVFZmZl
Y3Qub3V0ZXJBbmdsZSgpOyB9Ci0gICAgdm9pZCBzZXRDb25lT3V0ZXJBbmdsZShkb3VibGUpOwor
ICAgIGRvdWJsZSBjb25lT3V0ZXJBbmdsZUZvckJpbmRpbmdzKCkgY29uc3QgV1RGX0lHTk9SRVNf
VEhSRUFEX1NBRkVUWV9BTkFMWVNJUyB7IEFTU0VSVChpc01haW5UaHJlYWQoKSk7IHJldHVybiBt
X2NvbmVFZmZlY3Qub3V0ZXJBbmdsZSgpOyB9CisgICAgdm9pZCBzZXRDb25lT3V0ZXJBbmdsZUZv
ckJpbmRpbmdzKGRvdWJsZSk7CiAKLSAgICBkb3VibGUgY29uZU91dGVyR2FpbigpIGNvbnN0IHsg
cmV0dXJuIG1fY29uZUVmZmVjdC5vdXRlckdhaW4oKTsgfQotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNldENvbmVPdXRlckdhaW4oZG91YmxlKTsKKyAgICBkb3VibGUgY29uZU91dGVyR2FpbkZvckJp
bmRpbmdzKCkgY29uc3QgV1RGX0lHTk9SRVNfVEhSRUFEX1NBRkVUWV9BTkFMWVNJUyB7IEFTU0VS
VChpc01haW5UaHJlYWQoKSk7IHJldHVybiBtX2NvbmVFZmZlY3Qub3V0ZXJHYWluKCk7IH0KKyAg
ICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRDb25lT3V0ZXJHYWluRm9yQmluZGluZ3MoZG91YmxlKTsK
ICAgICAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRDaGFubmVsQ291bnQodW5zaWduZWQpIGZp
bmFsOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldENoYW5uZWxDb3VudE1vZGUoQ2hhbm5lbENv
dW50TW9kZSkgZmluYWw7CiAKLSAgICB2b2lkIGF6aW11dGhFbGV2YXRpb24oZG91YmxlKiBvdXRB
emltdXRoLCBkb3VibGUqIG91dEVsZXZhdGlvbik7Ci0KLSAgICBkb3VibGUgdGFpbFRpbWUoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBtX3Bhbm5lciA/IG1fcGFubmVyLT50YWlsVGltZSgpIDog
MDsgfQotICAgIGRvdWJsZSBsYXRlbmN5VGltZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
cGFubmVyID8gbV9wYW5uZXItPmxhdGVuY3lUaW1lKCkgOiAwOyB9CisgICAgZG91YmxlIHRhaWxU
aW1lKCkgY29uc3QgZmluYWw7CisgICAgZG91YmxlIGxhdGVuY3lUaW1lKCkgY29uc3QgZmluYWw7
CiAKIHByaXZhdGU6CiAgICAgUGFubmVyTm9kZShCYXNlQXVkaW9Db250ZXh0JiwgY29uc3QgUGFu
bmVyT3B0aW9ucyYpOwogCi0gICAgdm9pZCBjYWxjdWxhdGVBemltdXRoRWxldmF0aW9uKGRvdWJs
ZSogb3V0QXppbXV0aCwgZG91YmxlKiBvdXRFbGV2YXRpb24sIGNvbnN0IEZsb2F0UG9pbnQzRCYg
cG9zaXRpb24sIGNvbnN0IEZsb2F0UG9pbnQzRCYgbGlzdGVuZXJQb3NpdGlvbiwgY29uc3QgRmxv
YXRQb2ludDNEJiBsaXN0ZW5lckZvcndhcmQsIGNvbnN0IEZsb2F0UG9pbnQzRCYgbGlzdGVuZXJV
cCk7Ci0gICAgZmxvYXQgY2FsY3VsYXRlRGlzdGFuY2VDb25lR2Fpbihjb25zdCBGbG9hdFBvaW50
M0QmIHBvc2l0aW9uLCBjb25zdCBGbG9hdFBvaW50M0QmIG9yaWVudGF0aW9uLCBjb25zdCBGbG9h
dFBvaW50M0QmIGxpc3RlbmVyUG9zaXRpb24pOworICAgIHZvaWQgY2FsY3VsYXRlQXppbXV0aEVs
ZXZhdGlvbihkb3VibGUqIG91dEF6aW11dGgsIGRvdWJsZSogb3V0RWxldmF0aW9uLCBjb25zdCBG
bG9hdFBvaW50M0QmIHBvc2l0aW9uLCBjb25zdCBGbG9hdFBvaW50M0QmIGxpc3RlbmVyUG9zaXRp
b24sIGNvbnN0IEZsb2F0UG9pbnQzRCYgbGlzdGVuZXJGb3J3YXJkLCBjb25zdCBGbG9hdFBvaW50
M0QmIGxpc3RlbmVyVXApIFdURl9SRVFVSVJFU19MT0NLKG1fcHJvY2Vzc0xvY2spOworICAgIGZs
b2F0IGNhbGN1bGF0ZURpc3RhbmNlQ29uZUdhaW4oY29uc3QgRmxvYXRQb2ludDNEJiBwb3NpdGlv
biwgY29uc3QgRmxvYXRQb2ludDNEJiBvcmllbnRhdGlvbiwgY29uc3QgRmxvYXRQb2ludDNEJiBs
aXN0ZW5lclBvc2l0aW9uKSBXVEZfUkVRVUlSRVNfTE9DSyhtX3Byb2Nlc3NMb2NrKTsKIAogICAg
IC8vIFJldHVybnMgdGhlIGNvbWJpbmVkIGRpc3RhbmNlIGFuZCBjb25lIGdhaW4gYXR0ZW51YXRp
b24uCi0gICAgZmxvYXQgZGlzdGFuY2VDb25lR2FpbigpOworICAgIGZsb2F0IGRpc3RhbmNlQ29u
ZUdhaW4oKSBXVEZfUkVRVUlSRVNfTE9DSyhtX3Byb2Nlc3NMb2NrKTsKIAogICAgIGJvb2wgcmVx
dWlyZXNUYWlsUHJvY2Vzc2luZygpIGNvbnN0IGZpbmFsOwogCi0gICAgdm9pZCBwcm9jZXNzU2Ft
cGxlQWNjdXJhdGVWYWx1ZXMoQXVkaW9CdXMqIGRlc3RpbmF0aW9uLCBjb25zdCBBdWRpb0J1cyog
c291cmNlLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKTsKLSAgICBib29sIGhhc1NhbXBsZUFjY3Vy
YXRlVmFsdWVzKCkgY29uc3Q7Ci0gICAgYm9vbCBzaG91bGRVc2VBUmF0ZSgpIGNvbnN0OworICAg
IHZvaWQgYXppbXV0aEVsZXZhdGlvbihkb3VibGUqIG91dEF6aW11dGgsIGRvdWJsZSogb3V0RWxl
dmF0aW9uKSBXVEZfUkVRVUlSRVNfTE9DSyhtX3Byb2Nlc3NMb2NrKTsKKyAgICB2b2lkIHByb2Nl
c3NTYW1wbGVBY2N1cmF0ZVZhbHVlcyhBdWRpb0J1cyogZGVzdGluYXRpb24sIGNvbnN0IEF1ZGlv
QnVzKiBzb3VyY2UsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIFdURl9SRVFVSVJFU19MT0NLKG1f
cHJvY2Vzc0xvY2spOworICAgIGJvb2wgaGFzU2FtcGxlQWNjdXJhdGVWYWx1ZXMoKSBjb25zdCBX
VEZfUkVRVUlSRVNfTE9DSyhtX3Byb2Nlc3NMb2NrKTsKKyAgICBib29sIHNob3VsZFVzZUFSYXRl
KCkgY29uc3QgV1RGX1JFUVVJUkVTX0xPQ0sobV9wcm9jZXNzTG9jayk7CisKKyAgICBGbG9hdFBv
aW50M0QgcG9zaXRpb24oKSBjb25zdCBXVEZfUkVRVUlSRVNfTE9DSyhtX3Byb2Nlc3NMb2NrKTsK
KyAgICBGbG9hdFBvaW50M0Qgb3JpZW50YXRpb24oKSBjb25zdCBXVEZfUkVRVUlSRVNfTE9DSyht
X3Byb2Nlc3NMb2NrKTsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxQYW5uZXI+IG1fcGFubmVyOwot
ICAgIFBhbm5pbmdNb2RlbFR5cGUgbV9wYW5uaW5nTW9kZWw7CisgICAgUmVmPEhSVEZEYXRhYmFz
ZUxvYWRlcj4gbV9ocnRmRGF0YWJhc2VMb2FkZXI7CisgICAgUGFubmluZ01vZGVsVHlwZSBtX3Bh
bm5pbmdNb2RlbCBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fcHJvY2Vzc0xvY2spOworICAgIHN0ZDo6
dW5pcXVlX3B0cjxQYW5uZXI+IG1fcGFubmVyIFdURl9HVUFSREVEX0JZX0xPQ0sobV9wcm9jZXNz
TG9jayk7CiAKICAgICAvLyBHYWluCi0gICAgRGlzdGFuY2VFZmZlY3QgbV9kaXN0YW5jZUVmZmVj
dDsKLSAgICBDb25lRWZmZWN0IG1fY29uZUVmZmVjdDsKKyAgICBEaXN0YW5jZUVmZmVjdCBtX2Rp
c3RhbmNlRWZmZWN0IFdURl9HVUFSREVEX0JZX0xPQ0sobV9wcm9jZXNzTG9jayk7CisgICAgQ29u
ZUVmZmVjdCBtX2NvbmVFZmZlY3QgV1RGX0dVQVJERURfQllfTE9DSyhtX3Byb2Nlc3NMb2NrKTsK
ICAgICAKLSAgICBSZWY8QXVkaW9QYXJhbT4gbV9wb3NpdGlvblg7Ci0gICAgUmVmPEF1ZGlvUGFy
YW0+IG1fcG9zaXRpb25ZOwotICAgIFJlZjxBdWRpb1BhcmFtPiBtX3Bvc2l0aW9uWjsKKyAgICBS
ZWY8QXVkaW9QYXJhbT4gbV9wb3NpdGlvblggV1RGX0dVQVJERURfQllfTE9DSyhtX3Byb2Nlc3NM
b2NrKTsKKyAgICBSZWY8QXVkaW9QYXJhbT4gbV9wb3NpdGlvblkgV1RGX0dVQVJERURfQllfTE9D
SyhtX3Byb2Nlc3NMb2NrKTsKKyAgICBSZWY8QXVkaW9QYXJhbT4gbV9wb3NpdGlvblogV1RGX0dV
QVJERURfQllfTE9DSyhtX3Byb2Nlc3NMb2NrKTsKICAgICAKLSAgICBSZWY8QXVkaW9QYXJhbT4g
bV9vcmllbnRhdGlvblg7Ci0gICAgUmVmPEF1ZGlvUGFyYW0+IG1fb3JpZW50YXRpb25ZOwotICAg
IFJlZjxBdWRpb1BhcmFtPiBtX29yaWVudGF0aW9uWjsKLQotICAgIC8vIEhSVEYgRGF0YWJhc2Ug
bG9hZGVyCi0gICAgUmVmUHRyPEhSVEZEYXRhYmFzZUxvYWRlcj4gbV9ocnRmRGF0YWJhc2VMb2Fk
ZXI7CisgICAgUmVmPEF1ZGlvUGFyYW0+IG1fb3JpZW50YXRpb25YIFdURl9HVUFSREVEX0JZX0xP
Q0sobV9wcm9jZXNzTG9jayk7CisgICAgUmVmPEF1ZGlvUGFyYW0+IG1fb3JpZW50YXRpb25ZIFdU
Rl9HVUFSREVEX0JZX0xPQ0sobV9wcm9jZXNzTG9jayk7CisgICAgUmVmPEF1ZGlvUGFyYW0+IG1f
b3JpZW50YXRpb25aIFdURl9HVUFSREVEX0JZX0xPQ0sobV9wcm9jZXNzTG9jayk7CiAKICAgICAv
LyBTeW5jaHJvbml6ZSBwcm9jZXNzKCkgd2l0aCBzZXR0aW5nIG9mIHRoZSBwYW5uaW5nIG1vZGVs
LCBzb3VyY2UncyBsb2NhdGlvbgogICAgIC8vIGluZm9ybWF0aW9uLCBsaXN0ZW5lciwgZGlzdGFu
Y2UgcGFyYW1ldGVycyBhbmQgc291bmQgY29uZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9QYW5uZXJOb2RlLmlkbAppbmRleCA1MzhlZjA3MTI2YjYwNmRiOWY5Mjk0NGYz
OGIyYzA1NmU5ZWRmYzM0Li5lN2NiYTQ1ZDc1ZWVlZjM1NzQ1NzlhYjNlNmFmOWYwZGI2NjU1YWM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5pZGwK
QEAgLTMxLDIzICszMSwyMyBAQAogICAgIGNvbnN0cnVjdG9yIChCYXNlQXVkaW9Db250ZXh0IGNv
bnRleHQsIG9wdGlvbmFsIFBhbm5lck9wdGlvbnMgb3B0aW9ucyk7CiAKICAgICAvLyBEZWZhdWx0
IG1vZGVsIGZvciBzdGVyZW8gaXMgZXF1YWxwb3dlcgotICAgIGF0dHJpYnV0ZSBQYW5uaW5nTW9k
ZWxUeXBlIHBhbm5pbmdNb2RlbDsKKyAgICBbSW1wbGVtZW50ZWRBcz1wYW5uaW5nTW9kZWxGb3JC
aW5kaW5nc10gYXR0cmlidXRlIFBhbm5pbmdNb2RlbFR5cGUgcGFubmluZ01vZGVsOwogCiAgICAg
Ly8gVXNlcyBhIDNEIGNhcnRlc2lhbiBjb29yZGluYXRlIHN5c3RlbSAKICAgICB1bmRlZmluZWQg
c2V0UG9zaXRpb24oZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CiAgICAgdW5kZWZpbmVkIHNl
dE9yaWVudGF0aW9uKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOwogICAgIAogICAgIC8vIERl
ZmF1bHQgZGlzdGFuY2UgbW9kZWwgaXMgaW52ZXJzZQotICAgIGF0dHJpYnV0ZSBEaXN0YW5jZU1v
ZGVsVHlwZSBkaXN0YW5jZU1vZGVsOworICAgIFtJbXBsZW1lbnRlZEFzPWRpc3RhbmNlTW9kZWxG
b3JCaW5kaW5nc10gYXR0cmlidXRlIERpc3RhbmNlTW9kZWxUeXBlIGRpc3RhbmNlTW9kZWw7CiAK
LSAgICBhdHRyaWJ1dGUgZG91YmxlIHJlZkRpc3RhbmNlOwotICAgIGF0dHJpYnV0ZSBkb3VibGUg
bWF4RGlzdGFuY2U7Ci0gICAgYXR0cmlidXRlIGRvdWJsZSByb2xsb2ZmRmFjdG9yOworICAgIFtJ
bXBsZW1lbnRlZEFzPXJlZkRpc3RhbmNlRm9yQmluZGluZ3NdIGF0dHJpYnV0ZSBkb3VibGUgcmVm
RGlzdGFuY2U7CisgICAgW0ltcGxlbWVudGVkQXM9bWF4RGlzdGFuY2VGb3JCaW5kaW5nc10gYXR0
cmlidXRlIGRvdWJsZSBtYXhEaXN0YW5jZTsKKyAgICBbSW1wbGVtZW50ZWRBcz1yb2xsb2ZmRmFj
dG9yRm9yQmluZGluZ3NdIGF0dHJpYnV0ZSBkb3VibGUgcm9sbG9mZkZhY3RvcjsKIAogICAgIC8v
IERpcmVjdGlvbmFsIHNvdW5kIGNvbmUKLSAgICBhdHRyaWJ1dGUgZG91YmxlIGNvbmVJbm5lckFu
Z2xlOwotICAgIGF0dHJpYnV0ZSBkb3VibGUgY29uZU91dGVyQW5nbGU7Ci0gICAgYXR0cmlidXRl
IGRvdWJsZSBjb25lT3V0ZXJHYWluOworICAgIFtJbXBsZW1lbnRlZEFzPWNvbmVJbm5lckFuZ2xl
Rm9yQmluZGluZ3NdIGF0dHJpYnV0ZSBkb3VibGUgY29uZUlubmVyQW5nbGU7CisgICAgW0ltcGxl
bWVudGVkQXM9Y29uZU91dGVyQW5nbGVGb3JCaW5kaW5nc10gYXR0cmlidXRlIGRvdWJsZSBjb25l
T3V0ZXJBbmdsZTsKKyAgICBbSW1wbGVtZW50ZWRBcz1jb25lT3V0ZXJHYWluRm9yQmluZGluZ3Nd
IGF0dHJpYnV0ZSBkb3VibGUgY29uZU91dGVyR2FpbjsKICAgICAKICAgICAvLyBQb3NpdGlvbiBv
ZiBhdWRpbyBzb3VyY2UgaW4gM0QgQ2FydGVzaWFuIHN5c3RlbQogICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBBdWRpb1BhcmFtIHBvc2l0aW9uWDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0Rpc3RhbmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9E
aXN0YW5jZS5oCmluZGV4IDk5ODJiZmY5NTU5ZjRjMjM2OTJlNTg0ZWIzMDYyOTM5NzU4MDU0MTEu
LmEzN2JiMGE2ODY4ZmMxNDNlOTdjYzM2N2ZmODM0MjdlOGY2YTE4ODMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0Rpc3RhbmNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vRGlzdGFuY2UuaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAg
ICAgLy8gUmV0dXJucyBzY2FsYXIgZ2FpbiBmb3IgdGhlIGdpdmVuIGRpc3RhbmNlIHRoZSBjdXJy
ZW50IGRpc3RhbmNlIG1vZGVsIGlzIHVzZWQKICAgICBkb3VibGUgZ2Fpbihkb3VibGUgZGlzdGFu
Y2UpOwogCi0gICAgRGlzdGFuY2VNb2RlbFR5cGUgbW9kZWwoKSB7IHJldHVybiBtX21vZGVsOyB9
CisgICAgRGlzdGFuY2VNb2RlbFR5cGUgbW9kZWwoKSBjb25zdCB7IHJldHVybiBtX21vZGVsOyB9
CiAKICAgICB2b2lkIHNldE1vZGVsKERpc3RhbmNlTW9kZWxUeXBlIG1vZGVsLCBib29sIGNsYW1w
ZWQpCiAgICAgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>