<?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>200323</bug_id>
          
          <creation_ts>2019-07-31 16:19:40 -0700</creation_ts>
          <short_desc>Rename DOMJIT safe/unsafeFunction to functionWithTypeChecks and functionWithoutTypeChecks.</short_desc>
          <delta_ts>2019-08-01 10:15:34 -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>JavaScriptCore</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>
          
          <blocked>200292</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>cdumez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>justin_michaud</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1557440</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-07-31 16:19:40 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557447</commentid>
    <comment_count>1</comment_count>
      <attachid>375267</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-07-31 16:38:18 -0700</bug_when>
    <thetext>Created attachment 375267
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557448</commentid>
    <comment_count>2</comment_count>
      <attachid>375267</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-31 16:44:21 -0700</bug_when>
    <thetext>Comment on attachment 375267
proposed patch.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557502</commentid>
    <comment_count>3</comment_count>
      <attachid>375267</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-07-31 20:29:37 -0700</bug_when>
    <thetext>Comment on attachment 375267
proposed patch.

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

&gt; Source/JavaScriptCore/domjit/DOMJITSignature.h:40
&gt; +using FunctionWithoutTypeCheck = void (*)();

I think I would call this CFunctionPointer. This type can point to any C function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557633</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-08-01 10:07:44 -0700</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #3)
&gt; Comment on attachment 375267 [details]
&gt; proposed patch.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=375267&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/domjit/DOMJITSignature.h:40
&gt; &gt; +using FunctionWithoutTypeCheck = void (*)();
&gt; 
&gt; I think I would call this CFunctionPointer. This type can point to any C
&gt; function.

I&apos;m going to land this as is for now.  We&apos;ll probably change this again in https://bugs.webkit.org/show_bug.cgi?id=200292 after we find a better expression of the type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557634</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-08-01 10:14:42 -0700</bug_when>
    <thetext>Thanks for the reviews.  Landed in r248105: &lt;http://trac.webkit.org/r248105&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557635</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-01 10:15:34 -0700</bug_when>
    <thetext>&lt;rdar://problem/53820228&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375267</attachid>
            <date>2019-07-31 16:38:18 -0700</date>
            <delta_ts>2019-07-31 16:44:21 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-200323.patch</filename>
            <type>text/plain</type>
            <size>28228</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjQ4MDgwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBA
CisyMDE5LTA3LTMxICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZW5hbWUgRE9NSklUIHNhZmUvdW5zYWZlRnVuY3Rpb24gdG8gZnVuY3Rpb25XaXRoVHlwZUNoZWNr
cyBhbmQgZnVuY3Rpb25XaXRob3V0VHlwZUNoZWNrcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDMyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBET01KSVQgaGFzIGEgbm90aW9uIG9mIGEgc2Fm
ZUZ1bmN0aW9uIGFuZCBhbiB1bnNhZmVGdW5jdGlvbi4gIFRoZSBzYWZlRnVuY3Rpb24KKyAgICAg
ICAgaXMgZWZmZWN0aXZlbHkgdGhlIHNhbWUgYXMgdGhlIHVuc2FmZUZ1bmN0aW9uIHdpdGggYWRk
ZWQgdHlwZSBjaGVjay4gIFRoZSBERkcvRlRMCisgICAgICAgIHdpbGwgZW1pdCBjb2RlIHRvIGNh
bGwgdGhlIHVuc2FmZUZ1bmN0aW9uIGlmIGl0IGhhcyBhbHJlYWR5IGVtaXR0ZWQgdGhlIG5lZWRl
ZAorICAgICAgICB0eXBlIGNoZWNrIG9yIHByb3ZlbiB0aGF0IGl0IGlzbid0IG5lZWRlZC4gIE90
aGVyd2lzZSwgdGhlIERGRy9GVEwgd2lsbCBlbWl0CisgICAgICAgIGNvZGUgdG8gY2FsbCB0aGUg
c2FmZUZ1bmN0aW9uICh3aGljaCBkb2VzIGl0cyBvd24gdHlwZSBjaGVjaykgaW5zdGVhZC4KKwor
ICAgICAgICBUaGlzIHBhdGNoIHJlbmFtZXMgdGhlc2UgZnVuY3Rpb25zIHRvIGJldHRlciBkZXNj
cmliZSB0aGVpciBkaWZmZXJlbmNlLgorCisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNhbGxET00p
OgorICAgICAgICAqIGRvbWppdC9ET01KSVRTaWduYXR1cmUuaDoKKyAgICAgICAgKEpTQzo6RE9N
SklUOjpTaWduYXR1cmU6OlNpZ25hdHVyZSk6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9C
My5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVDYWxs
RE9NKToKKyAgICAgICAgKiB0b29scy9KU0RvbGxhclZNLmNwcDoKKyAgICAgICAgKEpTQzo6RE9N
SklURnVuY3Rpb25PYmplY3Q6OmZ1bmN0aW9uV2l0aFR5cGVDaGVjayk6CisgICAgICAgIChKU0M6
OkRPTUpJVEZ1bmN0aW9uT2JqZWN0OjpmdW5jdGlvbldpdGhvdXRUeXBlQ2hlY2spOgorICAgICAg
ICAoSlNDOjpET01KSVRGdW5jdGlvbk9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAo
SlNDOjpET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0OjpmdW5jdGlvbldpdGhUeXBlQ2hlY2spOgor
ICAgICAgICAoSlNDOjpET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0OjpmdW5jdGlvbldpdGhvdXRU
eXBlQ2hlY2spOgorICAgICAgICAoSlNDOjpET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0OjpmaW5p
c2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkRPTUpJVEZ1bmN0aW9uT2JqZWN0OjpzYWZlRnVu
Y3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpET01KSVRGdW5jdGlvbk9iamVjdDo6dW5z
YWZlRnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpET01KSVRDaGVja1N1YkNsYXNz
T2JqZWN0OjpzYWZlRnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpET01KSVRDaGVj
a1N1YkNsYXNzT2JqZWN0Ojp1bnNhZmVGdW5jdGlvbik6IERlbGV0ZWQuCisKIDIwMTktMDctMzAg
IFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBFbWl0
IHdyaXRlIGJhcnJpZXIgYWZ0ZXIgc3RvcmluZyBpbnN0ZWFkIG9mIGJlZm9yZSBzdG9yaW5nCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNw
cAkocmV2aXNpb24gMjQ4MDA0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk0MTQsMTcgKzk0MTQsMTggQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNhbGxET00oTm9kZQogICAgIEpTVmFsdWVSZWdzIHJl
c3VsdFJlZ3MgPSByZXN1bHQucmVncygpOwogCiAgICAgZmx1c2hSZWdpc3RlcnMoKTsKLSAgICBh
c3NlcnRJc1RhZ2dlZFdpdGgocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oc2lnbmF0dXJlLT51bnNh
ZmVGdW5jdGlvbiksIENGdW5jdGlvblB0clRhZyk7CisgICAgRE9NSklUOjpGdW5jdGlvbldpdGhv
dXRUeXBlQ2hlY2sgZnVuY3Rpb24gPSBzaWduYXR1cmUtPmZ1bmN0aW9uV2l0aG91dFR5cGVDaGVj
azsKKyAgICBhc3NlcnRJc1RhZ2dlZFdpdGgoZnVuY3Rpb24sIENGdW5jdGlvblB0clRhZyk7CiAg
ICAgdW5zaWduZWQgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgPSBzaWduYXR1cmUtPmFyZ3Vt
ZW50Q291bnQgKyAxOwogICAgIHN3aXRjaCAoYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpIHsK
ICAgICBjYXNlIDE6Ci0gICAgICAgIGNhbGxPcGVyYXRpb24ocmVpbnRlcnByZXRfY2FzdDxKX0pJ
VE9wZXJhdGlvbl9FUD4oc2lnbmF0dXJlLT51bnNhZmVGdW5jdGlvbiksIGV4dHJhY3RSZXN1bHQo
cmVzdWx0UmVncyksIHJlZ3NbMF0pOworICAgICAgICBjYWxsT3BlcmF0aW9uKHJlaW50ZXJwcmV0
X2Nhc3Q8Sl9KSVRPcGVyYXRpb25fRVA+KGZ1bmN0aW9uKSwgZXh0cmFjdFJlc3VsdChyZXN1bHRS
ZWdzKSwgcmVnc1swXSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgMjoKLSAgICAgICAgY2Fs
bE9wZXJhdGlvbihyZWludGVycHJldF9jYXN0PEpfSklUT3BlcmF0aW9uX0VQUD4oc2lnbmF0dXJl
LT51bnNhZmVGdW5jdGlvbiksIGV4dHJhY3RSZXN1bHQocmVzdWx0UmVncyksIHJlZ3NbMF0sIHJl
Z3NbMV0pOworICAgICAgICBjYWxsT3BlcmF0aW9uKHJlaW50ZXJwcmV0X2Nhc3Q8Sl9KSVRPcGVy
YXRpb25fRVBQPihmdW5jdGlvbiksIGV4dHJhY3RSZXN1bHQocmVzdWx0UmVncyksIHJlZ3NbMF0s
IHJlZ3NbMV0pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIDM6Ci0gICAgICAgIGNhbGxPcGVy
YXRpb24ocmVpbnRlcnByZXRfY2FzdDxKX0pJVE9wZXJhdGlvbl9FUFBQPihzaWduYXR1cmUtPnVu
c2FmZUZ1bmN0aW9uKSwgZXh0cmFjdFJlc3VsdChyZXN1bHRSZWdzKSwgcmVnc1swXSwgcmVnc1sx
XSwgcmVnc1syXSk7CisgICAgICAgIGNhbGxPcGVyYXRpb24ocmVpbnRlcnByZXRfY2FzdDxKX0pJ
VE9wZXJhdGlvbl9FUFBQPihmdW5jdGlvbiksIGV4dHJhY3RSZXN1bHQocmVzdWx0UmVncyksIHJl
Z3NbMF0sIHJlZ3NbMV0sIHJlZ3NbMl0pOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0Ogog
ICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RvbWppdC9ET01KSVRTaWduYXR1cmUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZG9taml0L0RPTUpJVFNpZ25hdHVyZS5oCShyZXZpc2lvbiAyNDgwMDQp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZG9taml0L0RPTUpJVFNpZ25hdHVyZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTM3LDExICszNywxMyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERPTUpJ
VCB7CiAjZGVmaW5lIEpTQ19ET01KSVRfU0lHTkFUVVJFX01BWF9BUkdVTUVOVFMgMgogI2RlZmlu
ZSBKU0NfRE9NSklUX1NJR05BVFVSRV9NQVhfQVJHVU1FTlRTX0lOQ0xVRElOR19USElTICgxICsg
SlNDX0RPTUpJVF9TSUdOQVRVUkVfTUFYX0FSR1VNRU5UUykKIAordXNpbmcgRnVuY3Rpb25XaXRo
b3V0VHlwZUNoZWNrID0gdm9pZCAoKikoKTsKKwogY2xhc3MgU2lnbmF0dXJlIHsKIHB1YmxpYzoK
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+Ci0gICAgY29uc3RleHByIFNpZ25h
dHVyZSh1aW50cHRyX3QgdW5zYWZlRnVuY3Rpb24sIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZv
LCBFZmZlY3QgZWZmZWN0LCBTcGVjdWxhdGVkVHlwZSByZXN1bHQsIEFyZ3VtZW50cy4uLiBhcmd1
bWVudHMpCi0gICAgICAgIDogdW5zYWZlRnVuY3Rpb24odW5zYWZlRnVuY3Rpb24pCisgICAgY29u
c3RleHByIFNpZ25hdHVyZShGdW5jdGlvbldpdGhvdXRUeXBlQ2hlY2sgZnVuY3Rpb25XaXRob3V0
VHlwZUNoZWNrLCBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbywgRWZmZWN0IGVmZmVjdCwgU3Bl
Y3VsYXRlZFR5cGUgcmVzdWx0LCBBcmd1bWVudHMuLi4gYXJndW1lbnRzKQorICAgICAgICA6IGZ1
bmN0aW9uV2l0aG91dFR5cGVDaGVjayhmdW5jdGlvbldpdGhvdXRUeXBlQ2hlY2spCiAgICAgICAg
ICwgY2xhc3NJbmZvKGNsYXNzSW5mbykKICAgICAgICAgLCByZXN1bHQocmVzdWx0KQogICAgICAg
ICAsIGFyZ3VtZW50cyB7c3RhdGljX2Nhc3Q8U3BlY3VsYXRlZFR5cGU+KGFyZ3VtZW50cykuLi59
CkBAIC01MCw3ICs1Miw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0gICAgdWludHB0cl90
IHVuc2FmZUZ1bmN0aW9uOworICAgIEZ1bmN0aW9uV2l0aG91dFR5cGVDaGVjayBmdW5jdGlvbldp
dGhvdXRUeXBlQ2hlY2s7CiAgICAgY29uc3QgQ2xhc3NJbmZvKiBjb25zdCBjbGFzc0luZm87CiAg
ICAgY29uc3QgU3BlY3VsYXRlZFR5cGUgcmVzdWx0OwogICAgIGNvbnN0IFNwZWN1bGF0ZWRUeXBl
IGFyZ3VtZW50c1tKU0NfRE9NSklUX1NJR05BVFVSRV9NQVhfQVJHVU1FTlRTXTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAJKHJldmlzaW9u
IDI0ODAwNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTI1ODEsMTYgKzEyNTgxLDE3IEBAIHByaXZhdGU6CiAKICAg
ICAgICAgdW5zaWduZWQgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgPSBzaWduYXR1cmUtPmFy
Z3VtZW50Q291bnQgKyAxOwogICAgICAgICBMVmFsdWUgcmVzdWx0OwotICAgICAgICBhc3NlcnRJ
c1RhZ2dlZFdpdGgocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oc2lnbmF0dXJlLT51bnNhZmVGdW5j
dGlvbiksIENGdW5jdGlvblB0clRhZyk7CisgICAgICAgIERPTUpJVDo6RnVuY3Rpb25XaXRob3V0
VHlwZUNoZWNrIGZ1bmN0aW9uID0gc2lnbmF0dXJlLT5mdW5jdGlvbldpdGhvdXRUeXBlQ2hlY2s7
CisgICAgICAgIGFzc2VydElzVGFnZ2VkV2l0aChmdW5jdGlvbiwgQ0Z1bmN0aW9uUHRyVGFnKTsK
ICAgICAgICAgc3dpdGNoIChhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcykgewogICAgICAgICBj
YXNlIDE6Ci0gICAgICAgICAgICByZXN1bHQgPSB2bUNhbGwoSW50NjQsIG1fb3V0Lm9wZXJhdGlv
bihyZWludGVycHJldF9jYXN0PEpfSklUT3BlcmF0aW9uX0VQPihzaWduYXR1cmUtPnVuc2FmZUZ1
bmN0aW9uKSksIG1fY2FsbEZyYW1lLCBvcGVyYW5kc1swXSk7CisgICAgICAgICAgICByZXN1bHQg
PSB2bUNhbGwoSW50NjQsIG1fb3V0Lm9wZXJhdGlvbihyZWludGVycHJldF9jYXN0PEpfSklUT3Bl
cmF0aW9uX0VQPihmdW5jdGlvbikpLCBtX2NhbGxGcmFtZSwgb3BlcmFuZHNbMF0pOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgMjoKLSAgICAgICAgICAgIHJlc3VsdCA9IHZtQ2Fs
bChJbnQ2NCwgbV9vdXQub3BlcmF0aW9uKHJlaW50ZXJwcmV0X2Nhc3Q8Sl9KSVRPcGVyYXRpb25f
RVBQPihzaWduYXR1cmUtPnVuc2FmZUZ1bmN0aW9uKSksIG1fY2FsbEZyYW1lLCBvcGVyYW5kc1sw
XSwgb3BlcmFuZHNbMV0pOworICAgICAgICAgICAgcmVzdWx0ID0gdm1DYWxsKEludDY0LCBtX291
dC5vcGVyYXRpb24ocmVpbnRlcnByZXRfY2FzdDxKX0pJVE9wZXJhdGlvbl9FUFA+KGZ1bmN0aW9u
KSksIG1fY2FsbEZyYW1lLCBvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0pOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgMzoKLSAgICAgICAgICAgIHJlc3VsdCA9IHZtQ2FsbChJbnQ2
NCwgbV9vdXQub3BlcmF0aW9uKHJlaW50ZXJwcmV0X2Nhc3Q8Sl9KSVRPcGVyYXRpb25fRVBQUD4o
c2lnbmF0dXJlLT51bnNhZmVGdW5jdGlvbikpLCBtX2NhbGxGcmFtZSwgb3BlcmFuZHNbMF0sIG9w
ZXJhbmRzWzFdLCBvcGVyYW5kc1syXSk7CisgICAgICAgICAgICByZXN1bHQgPSB2bUNhbGwoSW50
NjQsIG1fb3V0Lm9wZXJhdGlvbihyZWludGVycHJldF9jYXN0PEpfSklUT3BlcmF0aW9uX0VQUFA+
KGZ1bmN0aW9uKSksIG1fY2FsbEZyYW1lLCBvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0sIG9wZXJh
bmRzWzJdKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAg
ICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90b29scy9KU0RvbGxhclZNLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAJKHJldmlzaW9uIDI0ODAwNCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZNLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTc4
Nyw3ICs3ODcsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBvYmplY3Q7CiAgICAgfQogCi0g
ICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc2FmZUZ1bmN0aW9uKEV4ZWNT
dGF0ZSogZXhlYykKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvbldpdGhUeXBlQ2hlY2soRXhlY1N0YXRlKiBleGVjKQogICAgIHsKICAgICAgICAgVk0mIHZt
ID0gZXhlYy0+dm0oKTsKICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtNzk4LDcgKzc5OCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc051bWJlcih0aGlzT2JqZWN0LT52YWx1ZSgpKSk7CiAgICAgfQogCi0gICAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gdW5zYWZlRnVuY3Rpb24oRXhlY1N0YXRl
KiBleGVjLCBET01KSVROb2RlKiBub2RlKQorICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGZ1bmN0aW9uV2l0aG91dFR5cGVDaGVjayhFeGVjU3RhdGUqIGV4ZWMsIERPTUpJ
VE5vZGUqIG5vZGUpCiAgICAgewogICAgICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgICAg
ICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CkBAIC04MjYsMTIgKzgy
NiwxMiBAQCBwcml2YXRlOgogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBKU0dsb2JhbE9i
amVjdCopOwogfTsKIAotc3RhdGljIGNvbnN0IERPTUpJVDo6U2lnbmF0dXJlIERPTUpJVEZ1bmN0
aW9uT2JqZWN0U2lnbmF0dXJlKCh1aW50cHRyX3QpRE9NSklURnVuY3Rpb25PYmplY3Q6OnVuc2Fm
ZUZ1bmN0aW9uLCBET01KSVRGdW5jdGlvbk9iamVjdDo6aW5mbygpLCBET01KSVQ6OkVmZmVjdDo6
Zm9yUmVhZChET01KSVQ6OkhlYXBSYW5nZTo6dG9wKCkpLCBTcGVjSW50MzJPbmx5KTsKK3N0YXRp
YyBjb25zdCBET01KSVQ6OlNpZ25hdHVyZSBET01KSVRGdW5jdGlvbk9iamVjdFNpZ25hdHVyZSgo
RE9NSklUOjpGdW5jdGlvbldpdGhvdXRUeXBlQ2hlY2spRE9NSklURnVuY3Rpb25PYmplY3Q6OmZ1
bmN0aW9uV2l0aG91dFR5cGVDaGVjaywgRE9NSklURnVuY3Rpb25PYmplY3Q6OmluZm8oKSwgRE9N
SklUOjpFZmZlY3Q6OmZvclJlYWQoRE9NSklUOjpIZWFwUmFuZ2U6OnRvcCgpKSwgU3BlY0ludDMy
T25seSk7CiAKIHZvaWQgRE9NSklURnVuY3Rpb25PYmplY3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2
bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVh
dGlvbih2bSk7Ci0gICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdCwg
SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJmdW5jIiksIDAsIHNhZmVGdW5jdGlvbiwgTm9J
bnRyaW5zaWMsICZET01KSVRGdW5jdGlvbk9iamVjdFNpZ25hdHVyZSwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSkpOworICAgIHB1dERpcmVjdE5hdGl2
ZUZ1bmN0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAi
ZnVuYyIpLCAwLCBmdW5jdGlvbldpdGhUeXBlQ2hlY2ssIE5vSW50cmluc2ljLCAmRE9NSklURnVu
Y3Rpb25PYmplY3RTaWduYXR1cmUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJp
YnV0ZTo6UmVhZE9ubHkpKTsKIH0KIAogY2xhc3MgRE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdCA6
IHB1YmxpYyBET01KSVROb2RlIHsKQEAgLTg1OCw3ICs4NTgsNyBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBvYmplY3Q7CiAgICAgfQogCi0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgc2FmZUZ1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYykKKyAgICBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbldpdGhUeXBlQ2hlY2soRXhlY1N0YXRlKiBl
eGVjKQogICAgIHsKICAgICAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODY5LDcgKzg2OSw3IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcih0aGlzT2JqZWN0LT52
YWx1ZSgpKSk7CiAgICAgfQogCi0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gdW5zYWZlRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBET01KSVROb2RlKiBub2RlKQorICAg
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGZ1bmN0aW9uV2l0aG91dFR5cGVD
aGVjayhFeGVjU3RhdGUqIGV4ZWMsIERPTUpJVE5vZGUqIG5vZGUpCiAgICAgewogICAgICAgICBW
TSYgdm0gPSBleGVjLT52bSgpOwogICAgICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2Vy
KCZ2bSwgZXhlYyk7CkBAIC04ODAsMTIgKzg4MCwxMiBAQCBwcml2YXRlOgogICAgIHZvaWQgZmlu
aXNoQ3JlYXRpb24oVk0mLCBKU0dsb2JhbE9iamVjdCopOwogfTsKIAotc3RhdGljIGNvbnN0IERP
TUpJVDo6U2lnbmF0dXJlIERPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3RTaWduYXR1cmUoKHVpbnRw
dHJfdClET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0Ojp1bnNhZmVGdW5jdGlvbiwgRE9NSklUQ2hl
Y2tTdWJDbGFzc09iamVjdDo6aW5mbygpLCBET01KSVQ6OkVmZmVjdDo6Zm9yUmVhZChET01KSVQ6
OkhlYXBSYW5nZTo6dG9wKCkpLCBTcGVjSW50MzJPbmx5KTsKK3N0YXRpYyBjb25zdCBET01KSVQ6
OlNpZ25hdHVyZSBET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0U2lnbmF0dXJlKChET01KSVQ6OkZ1
bmN0aW9uV2l0aG91dFR5cGVDaGVjaylET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0OjpmdW5jdGlv
bldpdGhvdXRUeXBlQ2hlY2ssIERPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3Q6OmluZm8oKSwgRE9N
SklUOjpFZmZlY3Q6OmZvclJlYWQoRE9NSklUOjpIZWFwUmFuZ2U6OnRvcCgpKSwgU3BlY0ludDMy
T25seSk7CiAKIHZvaWQgRE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdDo6ZmluaXNoQ3JlYXRpb24o
Vk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewogICAgIEJhc2U6OmZpbmlz
aENyZWF0aW9uKHZtKTsKLSAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2bSwgZ2xvYmFsT2Jq
ZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImZ1bmMiKSwgMCwgc2FmZUZ1bmN0aW9u
LCBOb0ludHJpbnNpYywgJkRPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3RTaWduYXR1cmUsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpKTsKKyAgICBwdXRE
aXJlY3ROYXRpdmVGdW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKCZ2bSwgImZ1bmMiKSwgMCwgZnVuY3Rpb25XaXRoVHlwZUNoZWNrLCBOb0ludHJpbnNpYywg
JkRPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3RTaWduYXR1cmUsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpKTsKIH0KIAogY2xhc3MgRE9NSklUR2V0dGVy
QmFzZUpTT2JqZWN0IDogcHVibGljIERPTUpJVE5vZGUgewpJbmRleDogU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNp
b24gMjQ4MDgxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMTktMDctMzEgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29t
PgorCisgICAgICAgIFJlbmFtZSBET01KSVQgc2FmZS91bnNhZmVGdW5jdGlvbiB0byBmdW5jdGlv
bldpdGhUeXBlQ2hlY2tzIGFuZCBmdW5jdGlvbldpdGhvdXRUeXBlQ2hlY2tzLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwMzIzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAgVGhp
cyBpcyBqdXN0IGEgcmVmYWN0b3JpbmcgZXhlcmNpc2UuCisKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdldEFyZ3VtZW50VHlwZUZvckZ1
bmN0aW9uV2l0aG91dFR5cGVDaGVjayk6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9u
KToKKyAgICAgICAgKEdlbmVyYXRlT3BlcmF0aW9uRGVmaW5pdGlvbik6CisgICAgICAgIChUb05h
dGl2ZUZvckZ1bmN0aW9uV2l0aG91dFR5cGVDaGVjayk6CisgICAgICAgIChHZXRVbnNhZmVBcmd1
bWVudFR5cGUpOiBEZWxldGVkLgorICAgICAgICAoVW5zYWZlVG9OYXRpdmUpOiBEZWxldGVkLgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RET01KSVQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRBdHRyaWJ1dGVX
aXRob3V0VHlwZUNoZWNrKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERPTUpJVFByb3RvdHlw
ZUZ1bmN0aW9uSXRlbVdpdGhvdXRUeXBlQ2hlY2spOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
RE9NSklUUHJvdG90eXBlRnVuY3Rpb25IYXNBdHRyaWJ1dGVXaXRob3V0VHlwZUNoZWNrKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0RWxlbWVudEJ5
SWRXaXRob3V0VHlwZUNoZWNrKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERPTUpJVFByb3Rv
dHlwZUZ1bmN0aW9uR2V0RWxlbWVudHNCeU5hbWVXaXRob3V0VHlwZUNoZWNrKToKKyAgICAgICAg
KFdlYkNvcmU6OnVuc2FmZUpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0QXR0cmlidXRl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnVuc2FmZUpzVGVzdERPTUpJVFByb3RvdHlw
ZUZ1bmN0aW9uSXRlbSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjp1bnNhZmVKc1Rlc3RE
T01KSVRQcm90b3R5cGVGdW5jdGlvbkhhc0F0dHJpYnV0ZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjp1bnNhZmVKc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkdldEVsZW1lbnRCeUlk
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnVuc2FmZUpzVGVzdERPTUpJVFByb3RvdHlw
ZUZ1bmN0aW9uR2V0RWxlbWVudHNCeU5hbWUpOiBEZWxldGVkLgorCiAyMDE5LTA3LTMxICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvbnRlbnRDaGFuZ2VPYnNl
cnZlcl0gdHdpdGNoLnR2IHZpZGVvIGNvbnRyb2xzIGRvIG5vdCBhbHdheXMgcmVzcG9uZCB0byB0
YXBzIGluIGZ1bGxzY3JlZW4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiAyNDgwMDQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBjb3B5
KQpAQCAtMzgxOCw3ICszODE4LDcgQEAgc3ViIGFkZFVuc2NvcGFibGVQcm9wZXJ0aWVzCiAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZt
LnByb3BlcnR5TmFtZXMtPnVuc2NvcGFibGVzU3ltYm9sLCAmdW5zY29wYWJsZXMsIEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9u
bHkpO1xuIik7CiB9CiAKLXN1YiBHZXRVbnNhZmVBcmd1bWVudFR5cGUKK3N1YiBHZXRBcmd1bWVu
dFR5cGVGb3JGdW5jdGlvbldpdGhvdXRUeXBlQ2hlY2sKIHsKICAgICBteSAoJGludGVyZmFjZSwg
JHR5cGUpID0gQF87CiAKQEAgLTM5NDIsMTEgKzM5NDIsMTEgQEAgc3ViIEdlbmVyYXRlSW1wbGVt
ZW50YXRpb24KICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMICR7ZnVuY3Rpb25OYW1lfShKU0M6OkV4ZWNTdGF0ZSopO1xuIik7
CiAgICAgICAgICAgICBpZiAoJG9wZXJhdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57RE9NSklU
fSkgewogICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IkRPTUpJVElETFR5cGUuaCJ9ID0g
MTsKLSAgICAgICAgICAgICAgICBteSAkdW5zYWZlRnVuY3Rpb25OYW1lID0gInVuc2FmZSIgLiAk
Y29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkZnVuY3Rpb25OYW1lKTsKLSAgICAgICAgICAgICAg
ICBteSAkZnVuY3Rpb25TaWduYXR1cmUgPSAiSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OICR7dW5zYWZlRnVuY3Rpb25OYW1lfShKU0M6OkV4ZWNTdGF0ZSosICRjbGFzc05hbWUqIjsK
KyAgICAgICAgICAgICAgICBteSAkbmFtZU9mRnVuY3Rpb25XaXRob3V0VHlwZUNoZWNrID0gJGNv
ZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJGZ1bmN0aW9uTmFtZSkgLiAiV2l0aG91dFR5cGVDaGVj
ayI7CisgICAgICAgICAgICAgICAgbXkgJGZ1bmN0aW9uU2lnbmF0dXJlID0gIkpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiAke25hbWVPZkZ1bmN0aW9uV2l0aG91dFR5cGVDaGVja30o
SlNDOjpFeGVjU3RhdGUqLCAkY2xhc3NOYW1lKiI7CiAgICAgICAgICAgICAgICAgZm9yZWFjaCBt
eSAkYXJndW1lbnQgKEB7JG9wZXJhdGlvbi0+YXJndW1lbnRzfSkgewogICAgICAgICAgICAgICAg
ICAgICBteSAkdHlwZSA9ICRhcmd1bWVudC0+dHlwZTsKLSAgICAgICAgICAgICAgICAgICAgbXkg
JGFyZ3VtZW50VHlwZSA9IEdldFVuc2FmZUFyZ3VtZW50VHlwZSgkaW50ZXJmYWNlLCAkdHlwZSk7
CisgICAgICAgICAgICAgICAgICAgIG15ICRhcmd1bWVudFR5cGUgPSBHZXRBcmd1bWVudFR5cGVG
b3JGdW5jdGlvbldpdGhvdXRUeXBlQ2hlY2soJGludGVyZmFjZSwgJHR5cGUpOwogICAgICAgICAg
ICAgICAgICAgICAkZnVuY3Rpb25TaWduYXR1cmUgLj0gIiwgJHthcmd1bWVudFR5cGV9IjsKICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICRmdW5j
dGlvblNpZ25hdHVyZSAuICIpO1xuIik7CkBAIC00MDA1LDExICs0MDA1LDExIEBAIHN1YiBHZW5l
cmF0ZUltcGxlbWVudGF0aW9uCiAKICAgICAgICAgICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGlu
dGVyZmFjZS0+dHlwZS0+bmFtZTsKICAgICAgICAgICAgIG15ICRmdW5jdGlvbk5hbWUgPSBHZXRG
dW5jdGlvbk5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJG9wZXJhdGlvbik7Ci0gICAgICAg
ICAgICBteSAkdW5zYWZlRnVuY3Rpb25OYW1lID0gInVuc2FmZSIgLiAkY29kZUdlbmVyYXRvci0+
V0tfdWNmaXJzdCgkZnVuY3Rpb25OYW1lKTsKKyAgICAgICAgICAgIG15ICRuYW1lT2ZGdW5jdGlv
bldpdGhvdXRUeXBlQ2hlY2sgPSAkY29kZUdlbmVyYXRvci0+V0tfbGNmaXJzdCgkZnVuY3Rpb25O
YW1lKSAuICJXaXRob3V0VHlwZUNoZWNrIjsKICAgICAgICAgICAgIG15ICRkb21KSVRTaWduYXR1
cmVOYW1lID0gIkRPTUpJVFNpZ25hdHVyZUZvciIgLiAkaW50ZXJmYWNlLT50eXBlLT5uYW1lIC4g
JGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJG9wZXJhdGlvbi0+bmFtZSk7CiAgICAgICAgICAg
ICBteSAkY2xhc3NJbmZvID0gIkpTIiAuICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgLiAiOjppbmZv
KCkiOwogICAgICAgICAgICAgbXkgJHJlc3VsdFR5cGUgPSBHZXRSZXN1bHRUeXBlRmlsdGVyKCRp
bnRlcmZhY2UsICRvcGVyYXRpb24tPnR5cGUpOwotICAgICAgICAgICAgbXkgJGRvbUpJVFNpZ25h
dHVyZUhlYWRlciA9ICJzdGF0aWMgY29uc3QgSlNDOjpET01KSVQ6OlNpZ25hdHVyZSAke2RvbUpJ
VFNpZ25hdHVyZU5hbWV9KCh1aW50cHRyX3QpJHt1bnNhZmVGdW5jdGlvbk5hbWV9LCI7CisgICAg
ICAgICAgICBteSAkZG9tSklUU2lnbmF0dXJlSGVhZGVyID0gInN0YXRpYyBjb25zdCBKU0M6OkRP
TUpJVDo6U2lnbmF0dXJlICR7ZG9tSklUU2lnbmF0dXJlTmFtZX0oKEpTQzo6RE9NSklUOjpGdW5j
dGlvbldpdGhvdXRUeXBlQ2hlY2spJHtuYW1lT2ZGdW5jdGlvbldpdGhvdXRUeXBlQ2hlY2t9LCI7
CiAgICAgICAgICAgICBteSAkZG9tSklUU2lnbmF0dXJlRm9vdGVyID0gIiRjbGFzc0luZm8sIEpT
Qzo6RE9NSklUOjpFZmZlY3Q6OmZvclJlYWQoRE9NSklUOjpBYnN0cmFjdEhlYXBSZXBvc2l0b3J5
OjpET00pLCAke3Jlc3VsdFR5cGV9IjsKICAgICAgICAgICAgIGZvcmVhY2ggbXkgJGFyZ3VtZW50
IChAeyRvcGVyYXRpb24tPmFyZ3VtZW50c30pIHsKICAgICAgICAgICAgICAgICBteSAkdHlwZSA9
ICRhcmd1bWVudC0+dHlwZTsKQEAgLTUyOTAsMTEgKzUyOTAsMTEgQEAgc3ViIEdlbmVyYXRlT3Bl
cmF0aW9uRGVmaW5pdGlvbgogICAgICAgICB9CiAKICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMo
IjxKYXZhU2NyaXB0Q29yZS9GcmFtZVRyYWNlcnMuaD4iLCAkY29uZGl0aW9uYWwpOwotICAgICAg
ICBteSAkdW5zYWZlRnVuY3Rpb25OYW1lID0gInVuc2FmZSIgLiAkY29kZUdlbmVyYXRvci0+V0tf
dWNmaXJzdCgkZnVuY3Rpb25OYW1lKTsKLSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiSlND
OjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICR7dW5zYWZlRnVuY3Rpb25OYW1lfShKU0M6
OkV4ZWNTdGF0ZSogc3RhdGUsICRjbGFzc05hbWUqIGNhc3RlZFRoaXMiKTsKKyAgICAgICAgbXkg
JG5hbWVPZkZ1bmN0aW9uV2l0aG91dFR5cGVDaGVjayA9ICRjb2RlR2VuZXJhdG9yLT5XS19sY2Zp
cnN0KCRmdW5jdGlvbk5hbWUpIC4gIldpdGhvdXRUeXBlQ2hlY2siOworICAgICAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICJKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gJHtuYW1lT2ZG
dW5jdGlvbldpdGhvdXRUeXBlQ2hlY2t9KEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgJGNsYXNzTmFt
ZSogY2FzdGVkVGhpcyIpOwogICAgICAgICBmb3JlYWNoIG15ICRhcmd1bWVudCAoQHskb3BlcmF0
aW9uLT5hcmd1bWVudHN9KSB7CiAgICAgICAgICAgICBteSAkdHlwZSA9ICRhcmd1bWVudC0+dHlw
ZTsKLSAgICAgICAgICAgIG15ICRhcmd1bWVudFR5cGUgPSBHZXRVbnNhZmVBcmd1bWVudFR5cGUo
JGludGVyZmFjZSwgJHR5cGUpOworICAgICAgICAgICAgbXkgJGFyZ3VtZW50VHlwZSA9IEdldEFy
Z3VtZW50VHlwZUZvckZ1bmN0aW9uV2l0aG91dFR5cGVDaGVjaygkaW50ZXJmYWNlLCAkdHlwZSk7
CiAgICAgICAgICAgICBteSAkbmFtZSA9ICRhcmd1bWVudC0+bmFtZTsKICAgICAgICAgICAgIG15
ICRlbmNvZGVkTmFtZSA9ICJlbmNvZGVkIiAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRu
YW1lKTsKICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiwgJHthcmd1bWVudFR5cGV9
ICR7ZW5jb2RlZE5hbWV9Iik7CkBAIC01MzIwLDcgKzUzMjAsNyBAQCBzdWIgR2VuZXJhdGVPcGVy
YXRpb25EZWZpbml0aW9uCiAgICAgICAgICAgICBteSAkZW5jb2RlZE5hbWUgPSAiZW5jb2RlZCIg
LiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkbmFtZSk7CiAgICAgICAgICAgICBteSAkc2hv
dWxkUGFzc0J5UmVmZXJlbmNlID0gU2hvdWxkUGFzc0FyZ3VtZW50QnlSZWZlcmVuY2UoJGFyZ3Vt
ZW50KTsKIAotICAgICAgICAgICAgbXkgKCRuYXRpdmVWYWx1ZSwgJG1heVRocm93RXhjZXB0aW9u
KSA9IFVuc2FmZVRvTmF0aXZlKCRpbnRlcmZhY2UsICRhcmd1bWVudCwgJGVuY29kZWROYW1lLCAk
b3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDb25kaXRpb25hbH0pOworICAgICAgICAg
ICAgbXkgKCRuYXRpdmVWYWx1ZSwgJG1heVRocm93RXhjZXB0aW9uKSA9IFRvTmF0aXZlRm9yRnVu
Y3Rpb25XaXRob3V0VHlwZUNoZWNrKCRpbnRlcmZhY2UsICRhcmd1bWVudCwgJGVuY29kZWROYW1l
LCAkb3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDb25kaXRpb25hbH0pOwogICAgICAg
ICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGF1dG8gJG5hbWUgPSAke25hdGl2ZVZhbHVl
fTtcbiIpOwogICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFJFVFVSTl9JRl9F
WENFUFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7XG4iKSBpZiAkbWF5VGhyb3dF
eGNlcHRpb247CiAgICAgICAgICAgICAkdmFsdWUgPSAiV1RGTW92ZSgkbmFtZSkiOwpAQCAtNjYw
OSw3ICs2NjA5LDcgQEAgc3ViIEpTVmFsdWVUb05hdGl2ZQogICAgIHJldHVybiAiY29udmVydDwk
SURMVHlwZT4oIiAuIGpvaW4oIiwgIiwgQGNvbnZlcnNpb25Bcmd1bWVudHMpIC4gIikiOwogfQog
Ci1zdWIgVW5zYWZlVG9OYXRpdmUKK3N1YiBUb05hdGl2ZUZvckZ1bmN0aW9uV2l0aG91dFR5cGVD
aGVjawogewogICAgIG15ICgkaW50ZXJmYWNlLCAkY29udGV4dCwgJHZhbHVlLCAkY29uZGl0aW9u
YWwsICRzdGF0ZVBvaW50ZXIsICRzdGF0ZVJlZmVyZW5jZSwgJHRoaXNPYmplY3RSZWZlcmVuY2Up
ID0gQF87CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RET01KSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RET01KSVQuY3BwCShyZXZpc2lvbiAyNDgwMDQpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RE9NSklULmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTUsMTUgKzU1LDE1IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAvLyBG
dW5jdGlvbnMKIAogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdERPTUpJ
VFByb3RvdHlwZUZ1bmN0aW9uR2V0QXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKik7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gdW5zYWZlSnNUZXN0RE9NSklUUHJvdG90eXBlRnVu
Y3Rpb25HZXRBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU1Rlc3RET01KSVQqLCBET01KSVQ6
OklETEpTQXJndW1lbnRUeXBlPElETERPTVN0cmluZz4pOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0QXR0cmlidXRlV2l0
aG91dFR5cGVDaGVjayhKU0M6OkV4ZWNTdGF0ZSosIEpTVGVzdERPTUpJVCosIERPTUpJVDo6SURM
SlNBcmd1bWVudFR5cGU8SURMRE9NU3RyaW5nPik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25JdGVtKEpTQzo6RXhlY1N0YXRl
Kik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gdW5zYWZlSnNUZXN0RE9NSklU
UHJvdG90eXBlRnVuY3Rpb25JdGVtKEpTQzo6RXhlY1N0YXRlKiwgSlNUZXN0RE9NSklUKiwgRE9N
SklUOjpJRExKU0FyZ3VtZW50VHlwZTxJRExVbnNpZ25lZFNob3J0PiwgRE9NSklUOjpJRExKU0Fy
Z3VtZW50VHlwZTxJRExVbnNpZ25lZFNob3J0Pik7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25JdGVtV2l0aG91dFR5cGVDaGVj
ayhKU0M6OkV4ZWNTdGF0ZSosIEpTVGVzdERPTUpJVCosIERPTUpJVDo6SURMSlNBcmd1bWVudFR5
cGU8SURMVW5zaWduZWRTaG9ydD4sIERPTUpJVDo6SURMSlNBcmd1bWVudFR5cGU8SURMVW5zaWdu
ZWRTaG9ydD4pOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdERPTUpJ
VFByb3RvdHlwZUZ1bmN0aW9uSGFzQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKik7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gdW5zYWZlSnNUZXN0RE9NSklUUHJvdG90eXBlRnVu
Y3Rpb25IYXNBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU1Rlc3RET01KSVQqKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlv
bkhhc0F0dHJpYnV0ZVdpdGhvdXRUeXBlQ2hlY2soSlNDOjpFeGVjU3RhdGUqLCBKU1Rlc3RET01K
SVQqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RET01KSVRQcm90
b3R5cGVGdW5jdGlvbkdldEVsZW1lbnRCeUlkKEpTQzo6RXhlY1N0YXRlKik7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gdW5zYWZlSnNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rp
b25HZXRFbGVtZW50QnlJZChKU0M6OkV4ZWNTdGF0ZSosIEpTVGVzdERPTUpJVCosIERPTUpJVDo6
SURMSlNBcmd1bWVudFR5cGU8SURMUmVxdWlyZXNFeGlzdGluZ0F0b21TdHJpbmdBZGFwdG9yPElE
TERPTVN0cmluZz4+KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RE
T01KSVRQcm90b3R5cGVGdW5jdGlvbkdldEVsZW1lbnRCeUlkV2l0aG91dFR5cGVDaGVjayhKU0M6
OkV4ZWNTdGF0ZSosIEpTVGVzdERPTUpJVCosIERPTUpJVDo6SURMSlNBcmd1bWVudFR5cGU8SURM
UmVxdWlyZXNFeGlzdGluZ0F0b21TdHJpbmdBZGFwdG9yPElETERPTVN0cmluZz4+KTsKIEpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlv
bkdldEVsZW1lbnRzQnlOYW1lKEpTQzo6RXhlY1N0YXRlKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gdW5zYWZlSnNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVt
ZW50c0J5TmFtZShKU0M6OkV4ZWNTdGF0ZSosIEpTVGVzdERPTUpJVCosIERPTUpJVDo6SURMSlNB
cmd1bWVudFR5cGU8SURMQXRvbVN0cmluZ0FkYXB0b3I8SURMRE9NU3RyaW5nPj4pOworSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9u
R2V0RWxlbWVudHNCeU5hbWVXaXRob3V0VHlwZUNoZWNrKEpTQzo6RXhlY1N0YXRlKiwgSlNUZXN0
RE9NSklUKiwgRE9NSklUOjpJRExKU0FyZ3VtZW50VHlwZTxJRExBdG9tU3RyaW5nQWRhcHRvcjxJ
RExET01TdHJpbmc+Pik7CiAKIC8vIEF0dHJpYnV0ZXMKIApAQCAtMTA1LDE1ICsxMDUsMTUgQEAg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRCeXRlU3RyaQogSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RET01KSVRVc3ZTdHJpbmdOdWxsYWJsZUF0dHIoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdERPTUpJVE5vZGVOdWxsYWJsZUF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAKLXN0YXRpYyBjb25zdCBKU0M6OkRP
TUpJVDo6U2lnbmF0dXJlIERPTUpJVFNpZ25hdHVyZUZvclRlc3RET01KSVRHZXRBdHRyaWJ1dGUo
KHVpbnRwdHJfdCl1bnNhZmVKc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkdldEF0dHJpYnV0
ZSwgSlNUZXN0RE9NSklUOjppbmZvKCksIEpTQzo6RE9NSklUOjpFZmZlY3Q6OmZvclJlYWQoRE9N
SklUOjpBYnN0cmFjdEhlYXBSZXBvc2l0b3J5OjpET00pLCBET01KSVQ6OklETFJlc3VsdFR5cGVG
aWx0ZXI8SURMTnVsbGFibGU8SURMRE9NU3RyaW5nPj46OnZhbHVlLCBET01KSVQ6OklETEFyZ3Vt
ZW50VHlwZUZpbHRlcjxJRExET01TdHJpbmc+Ojp2YWx1ZSk7CitzdGF0aWMgY29uc3QgSlNDOjpE
T01KSVQ6OlNpZ25hdHVyZSBET01KSVRTaWduYXR1cmVGb3JUZXN0RE9NSklUR2V0QXR0cmlidXRl
KChKU0M6OkRPTUpJVDo6RnVuY3Rpb25XaXRob3V0VHlwZUNoZWNrKWpzVGVzdERPTUpJVFByb3Rv
dHlwZUZ1bmN0aW9uR2V0QXR0cmlidXRlV2l0aG91dFR5cGVDaGVjaywgSlNUZXN0RE9NSklUOjpp
bmZvKCksIEpTQzo6RE9NSklUOjpFZmZlY3Q6OmZvclJlYWQoRE9NSklUOjpBYnN0cmFjdEhlYXBS
ZXBvc2l0b3J5OjpET00pLCBET01KSVQ6OklETFJlc3VsdFR5cGVGaWx0ZXI8SURMTnVsbGFibGU8
SURMRE9NU3RyaW5nPj46OnZhbHVlLCBET01KSVQ6OklETEFyZ3VtZW50VHlwZUZpbHRlcjxJRExE
T01TdHJpbmc+Ojp2YWx1ZSk7CiAKLXN0YXRpYyBjb25zdCBKU0M6OkRPTUpJVDo6U2lnbmF0dXJl
IERPTUpJVFNpZ25hdHVyZUZvclRlc3RET01KSVRJdGVtKCh1aW50cHRyX3QpdW5zYWZlSnNUZXN0
RE9NSklUUHJvdG90eXBlRnVuY3Rpb25JdGVtLCBKU1Rlc3RET01KSVQ6OmluZm8oKSwgSlNDOjpE
T01KSVQ6OkVmZmVjdDo6Zm9yUmVhZChET01KSVQ6OkFic3RyYWN0SGVhcFJlcG9zaXRvcnk6OkRP
TSksIERPTUpJVDo6SURMUmVzdWx0VHlwZUZpbHRlcjxJRExET01TdHJpbmc+Ojp2YWx1ZSwgRE9N
SklUOjpJRExBcmd1bWVudFR5cGVGaWx0ZXI8SURMVW5zaWduZWRTaG9ydD46OnZhbHVlLCBET01K
SVQ6OklETEFyZ3VtZW50VHlwZUZpbHRlcjxJRExVbnNpZ25lZFNob3J0Pjo6dmFsdWUpOworc3Rh
dGljIGNvbnN0IEpTQzo6RE9NSklUOjpTaWduYXR1cmUgRE9NSklUU2lnbmF0dXJlRm9yVGVzdERP
TUpJVEl0ZW0oKEpTQzo6RE9NSklUOjpGdW5jdGlvbldpdGhvdXRUeXBlQ2hlY2spanNUZXN0RE9N
SklUUHJvdG90eXBlRnVuY3Rpb25JdGVtV2l0aG91dFR5cGVDaGVjaywgSlNUZXN0RE9NSklUOjpp
bmZvKCksIEpTQzo6RE9NSklUOjpFZmZlY3Q6OmZvclJlYWQoRE9NSklUOjpBYnN0cmFjdEhlYXBS
ZXBvc2l0b3J5OjpET00pLCBET01KSVQ6OklETFJlc3VsdFR5cGVGaWx0ZXI8SURMRE9NU3RyaW5n
Pjo6dmFsdWUsIERPTUpJVDo6SURMQXJndW1lbnRUeXBlRmlsdGVyPElETFVuc2lnbmVkU2hvcnQ+
Ojp2YWx1ZSwgRE9NSklUOjpJRExBcmd1bWVudFR5cGVGaWx0ZXI8SURMVW5zaWduZWRTaG9ydD46
OnZhbHVlKTsKIAotc3RhdGljIGNvbnN0IEpTQzo6RE9NSklUOjpTaWduYXR1cmUgRE9NSklUU2ln
bmF0dXJlRm9yVGVzdERPTUpJVEhhc0F0dHJpYnV0ZSgodWludHB0cl90KXVuc2FmZUpzVGVzdERP
TUpJVFByb3RvdHlwZUZ1bmN0aW9uSGFzQXR0cmlidXRlLCBKU1Rlc3RET01KSVQ6OmluZm8oKSwg
SlNDOjpET01KSVQ6OkVmZmVjdDo6Zm9yUmVhZChET01KSVQ6OkFic3RyYWN0SGVhcFJlcG9zaXRv
cnk6OkRPTSksIERPTUpJVDo6SURMUmVzdWx0VHlwZUZpbHRlcjxJRExCb29sZWFuPjo6dmFsdWUp
Oworc3RhdGljIGNvbnN0IEpTQzo6RE9NSklUOjpTaWduYXR1cmUgRE9NSklUU2lnbmF0dXJlRm9y
VGVzdERPTUpJVEhhc0F0dHJpYnV0ZSgoSlNDOjpET01KSVQ6OkZ1bmN0aW9uV2l0aG91dFR5cGVD
aGVjaylqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkhhc0F0dHJpYnV0ZVdpdGhvdXRUeXBl
Q2hlY2ssIEpTVGVzdERPTUpJVDo6aW5mbygpLCBKU0M6OkRPTUpJVDo6RWZmZWN0Ojpmb3JSZWFk
KERPTUpJVDo6QWJzdHJhY3RIZWFwUmVwb3NpdG9yeTo6RE9NKSwgRE9NSklUOjpJRExSZXN1bHRU
eXBlRmlsdGVyPElETEJvb2xlYW4+Ojp2YWx1ZSk7CiAKLXN0YXRpYyBjb25zdCBKU0M6OkRPTUpJ
VDo6U2lnbmF0dXJlIERPTUpJVFNpZ25hdHVyZUZvclRlc3RET01KSVRHZXRFbGVtZW50QnlJZCgo
dWludHB0cl90KXVuc2FmZUpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0RWxlbWVudEJ5
SWQsIEpTVGVzdERPTUpJVDo6aW5mbygpLCBKU0M6OkRPTUpJVDo6RWZmZWN0Ojpmb3JSZWFkKERP
TUpJVDo6QWJzdHJhY3RIZWFwUmVwb3NpdG9yeTo6RE9NKSwgRE9NSklUOjpJRExSZXN1bHRUeXBl
RmlsdGVyPElETEludGVyZmFjZTxFbGVtZW50Pj46OnZhbHVlLCBET01KSVQ6OklETEFyZ3VtZW50
VHlwZUZpbHRlcjxJRExSZXF1aXJlc0V4aXN0aW5nQXRvbVN0cmluZ0FkYXB0b3I8SURMRE9NU3Ry
aW5nPj46OnZhbHVlKTsKK3N0YXRpYyBjb25zdCBKU0M6OkRPTUpJVDo6U2lnbmF0dXJlIERPTUpJ
VFNpZ25hdHVyZUZvclRlc3RET01KSVRHZXRFbGVtZW50QnlJZCgoSlNDOjpET01KSVQ6OkZ1bmN0
aW9uV2l0aG91dFR5cGVDaGVjaylqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkdldEVsZW1l
bnRCeUlkV2l0aG91dFR5cGVDaGVjaywgSlNUZXN0RE9NSklUOjppbmZvKCksIEpTQzo6RE9NSklU
OjpFZmZlY3Q6OmZvclJlYWQoRE9NSklUOjpBYnN0cmFjdEhlYXBSZXBvc2l0b3J5OjpET00pLCBE
T01KSVQ6OklETFJlc3VsdFR5cGVGaWx0ZXI8SURMSW50ZXJmYWNlPEVsZW1lbnQ+Pjo6dmFsdWUs
IERPTUpJVDo6SURMQXJndW1lbnRUeXBlRmlsdGVyPElETFJlcXVpcmVzRXhpc3RpbmdBdG9tU3Ry
aW5nQWRhcHRvcjxJRExET01TdHJpbmc+Pjo6dmFsdWUpOwogCi1zdGF0aWMgY29uc3QgSlNDOjpE
T01KSVQ6OlNpZ25hdHVyZSBET01KSVRTaWduYXR1cmVGb3JUZXN0RE9NSklUR2V0RWxlbWVudHNC
eU5hbWUoKHVpbnRwdHJfdCl1bnNhZmVKc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkdldEVs
ZW1lbnRzQnlOYW1lLCBKU1Rlc3RET01KSVQ6OmluZm8oKSwgSlNDOjpET01KSVQ6OkVmZmVjdDo6
Zm9yUmVhZChET01KSVQ6OkFic3RyYWN0SGVhcFJlcG9zaXRvcnk6OkRPTSksIERPTUpJVDo6SURM
UmVzdWx0VHlwZUZpbHRlcjxJRExJbnRlcmZhY2U8Tm9kZUxpc3Q+Pjo6dmFsdWUsIERPTUpJVDo6
SURMQXJndW1lbnRUeXBlRmlsdGVyPElETEF0b21TdHJpbmdBZGFwdG9yPElETERPTVN0cmluZz4+
Ojp2YWx1ZSk7CitzdGF0aWMgY29uc3QgSlNDOjpET01KSVQ6OlNpZ25hdHVyZSBET01KSVRTaWdu
YXR1cmVGb3JUZXN0RE9NSklUR2V0RWxlbWVudHNCeU5hbWUoKEpTQzo6RE9NSklUOjpGdW5jdGlv
bldpdGhvdXRUeXBlQ2hlY2spanNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVtZW50
c0J5TmFtZVdpdGhvdXRUeXBlQ2hlY2ssIEpTVGVzdERPTUpJVDo6aW5mbygpLCBKU0M6OkRPTUpJ
VDo6RWZmZWN0Ojpmb3JSZWFkKERPTUpJVDo6QWJzdHJhY3RIZWFwUmVwb3NpdG9yeTo6RE9NKSwg
RE9NSklUOjpJRExSZXN1bHRUeXBlRmlsdGVyPElETEludGVyZmFjZTxOb2RlTGlzdD4+Ojp2YWx1
ZSwgRE9NSklUOjpJRExBcmd1bWVudFR5cGVGaWx0ZXI8SURMQXRvbVN0cmluZ0FkYXB0b3I8SURM
RE9NU3RyaW5nPj46OnZhbHVlKTsKIAogc3RhdGljIGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0ZXJT
ZXR0ZXIgRE9NSklUQXR0cmlidXRlRm9yVGVzdERPTUpJVEFueUF0dHIgewogICAgIGpzVGVzdERP
TUpJVEFueUF0dHIsCkBAIC0xMTMwLDcgKzExMzAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdERPTUpJCiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RET01KSVQ+
OjpjYWxsPGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0QXR0cmlidXRlQm9keT4oKnN0
YXRlLCAiZ2V0QXR0cmlidXRlIik7CiB9CiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiB1bnNhZmVKc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkdldEF0dHJpYnV0ZShKU0M6
OkV4ZWNTdGF0ZSogc3RhdGUsIEpTVGVzdERPTUpJVCogY2FzdGVkVGhpcywgRE9NSklUOjpJRExK
U0FyZ3VtZW50VHlwZTxJRExET01TdHJpbmc+IGVuY29kZWROYW1lKQorSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0QXR0cmli
dXRlV2l0aG91dFR5cGVDaGVjayhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTVGVzdERPTUpJVCog
Y2FzdGVkVGhpcywgRE9NSklUOjpJRExKU0FyZ3VtZW50VHlwZTxJRExET01TdHJpbmc+IGVuY29k
ZWROYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7CiAgICAgVk0mIHZtID0gc3RhdGUt
PnZtKCk7CkBAIC0xMTYyLDcgKzExNjIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdERPTUpJCiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RET01KSVQ+OjpjYWxs
PGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uSXRlbUJvZHk+KCpzdGF0ZSwgIml0ZW0iKTsK
IH0KIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIHVuc2FmZUpzVGVzdERPTUpJ
VFByb3RvdHlwZUZ1bmN0aW9uSXRlbShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTVGVzdERPTUpJ
VCogY2FzdGVkVGhpcywgRE9NSklUOjpJRExKU0FyZ3VtZW50VHlwZTxJRExVbnNpZ25lZFNob3J0
PiBlbmNvZGVkWCwgRE9NSklUOjpJRExKU0FyZ3VtZW50VHlwZTxJRExVbnNpZ25lZFNob3J0PiBl
bmNvZGVkWSkKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRQ
cm90b3R5cGVGdW5jdGlvbkl0ZW1XaXRob3V0VHlwZUNoZWNrKEpTQzo6RXhlY1N0YXRlKiBzdGF0
ZSwgSlNUZXN0RE9NSklUKiBjYXN0ZWRUaGlzLCBET01KSVQ6OklETEpTQXJndW1lbnRUeXBlPElE
TFVuc2lnbmVkU2hvcnQ+IGVuY29kZWRYLCBET01KSVQ6OklETEpTQXJndW1lbnRUeXBlPElETFVu
c2lnbmVkU2hvcnQ+IGVuY29kZWRZKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7CiAgICAg
Vk0mIHZtID0gc3RhdGUtPnZtKCk7CkBAIC0xMTkwLDcgKzExOTAsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdERPTUpJCiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3RET01KSVQ+OjpjYWxsPGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uSGFzQXR0cmlidXRl
Qm9keT4oKnN0YXRlLCAiaGFzQXR0cmlidXRlIik7CiB9CiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiB1bnNhZmVKc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkhhc0F0dHJp
YnV0ZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTVGVzdERPTUpJVCogY2FzdGVkVGhpcykKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5j
dGlvbkhhc0F0dHJpYnV0ZVdpdGhvdXRUeXBlQ2hlY2soSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBK
U1Rlc3RET01KSVQqIGNhc3RlZFRoaXMpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKICAg
ICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKQEAgLTEyMTgsNyArMTIxOCw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0RE9NSkkKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdERPTUpJVD46OmNhbGw8anNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVtZW50
QnlJZEJvZHk+KCpzdGF0ZSwgImdldEVsZW1lbnRCeUlkIik7CiB9CiAKLUpTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiB1bnNhZmVKc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkdl
dEVsZW1lbnRCeUlkKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNUZXN0RE9NSklUKiBjYXN0ZWRU
aGlzLCBET01KSVQ6OklETEpTQXJndW1lbnRUeXBlPElETFJlcXVpcmVzRXhpc3RpbmdBdG9tU3Ry
aW5nQWRhcHRvcjxJRExET01TdHJpbmc+PiBlbmNvZGVkRWxlbWVudElkKQorSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0RWxl
bWVudEJ5SWRXaXRob3V0VHlwZUNoZWNrKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNUZXN0RE9N
SklUKiBjYXN0ZWRUaGlzLCBET01KSVQ6OklETEpTQXJndW1lbnRUeXBlPElETFJlcXVpcmVzRXhp
c3RpbmdBdG9tU3RyaW5nQWRhcHRvcjxJRExET01TdHJpbmc+PiBlbmNvZGVkRWxlbWVudElkKQog
ewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CkBA
IC0xMjQ4LDcgKzEyNDgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdERP
TUpJCiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RET01KSVQ+OjpjYWxsPGpzVGVzdERP
TUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0RWxlbWVudHNCeU5hbWVCb2R5Pigqc3RhdGUsICJnZXRF
bGVtZW50c0J5TmFtZSIpOwogfQogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
dW5zYWZlSnNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVtZW50c0J5TmFtZShKU0M6
OkV4ZWNTdGF0ZSogc3RhdGUsIEpTVGVzdERPTUpJVCogY2FzdGVkVGhpcywgRE9NSklUOjpJRExK
U0FyZ3VtZW50VHlwZTxJRExBdG9tU3RyaW5nQWRhcHRvcjxJRExET01TdHJpbmc+PiBlbmNvZGVk
RWxlbWVudE5hbWUpCitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9N
SklUUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVtZW50c0J5TmFtZVdpdGhvdXRUeXBlQ2hlY2soSlND
OjpFeGVjU3RhdGUqIHN0YXRlLCBKU1Rlc3RET01KSVQqIGNhc3RlZFRoaXMsIERPTUpJVDo6SURM
SlNBcmd1bWVudFR5cGU8SURMQXRvbVN0cmluZ0FkYXB0b3I8SURMRE9NU3RyaW5nPj4gZW5jb2Rl
ZEVsZW1lbnROYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7CiAgICAgVk0mIHZtID0g
c3RhdGUtPnZtKCk7Cg==
</data>
<flag name="review"
          id="391059"
          type_id="1"
          status="+"
          setter="ysuzuki"
    />
          </attachment>
      

    </bug>

</bugzilla>