<?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>126603</bug_id>
          
          <creation_ts>2014-01-07 15:01:00 -0800</creation_ts>
          <short_desc>Add message-generation test for non-legacy message receiver</short_desc>
          <delta_ts>2014-01-07 17:00:16 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>andersca</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>965182</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-01-07 15:01:00 -0800</bug_when>
    <thetext>Add message-generation test for non-legacy message receiver</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965183</commentid>
    <comment_count>1</comment_count>
      <attachid>220553</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-01-07 15:01:58 -0800</bug_when>
    <thetext>Created attachment 220553
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965259</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-01-07 17:00:16 -0800</bug_when>
    <thetext>https://trac.webkit.org/r161473</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220553</attachid>
            <date>2014-01-07 15:01:58 -0800</date>
            <delta_ts>2014-01-07 15:09:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126603-20140107150158.patch</filename>
            <type>text/plain</type>
            <size>36694</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxNDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMGY5Y2ExYmVkNzE5MWI1
MTFmMDJlN2JjNzA0YzZjNjAwNDkyNzVjNi4uYjJiNzgwMTM2NmFmZWQ4ZDk4YmYwOTdmMGQyYmNh
OGU0MjZkNDliZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI4IEBACiAyMDE0LTAxLTA3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIEFkZCBtZXNzYWdl
LWdlbmVyYXRpb24gdGVzdCBmb3Igbm9uLWxlZ2FjeSBtZXNzYWdlIHJlY2VpdmVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjY2MDMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEFkZCBleHBl
Y3RlZCBvdXRwdXQgZmlsZXMgZm9yIGEgbm9uLWxlZ2FjeSBtZXNzYWdlIHJlY2VpdmVyLCBhbmQg
YWRkCisgICAgICAgIHRlc3RpbmcgZm9yIHNhbWUuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dDIvTGVnYWN5TWVzc2FnZVJlY2VpdmVyLWV4cGVjdGVkLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL01lc3NhZ2VSZWNlaXZlci1leHBlY3RlZC5jcHAuCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXQyL0xlZ2FjeU1lc3NhZ2VzLWV4cGVjdGVkLmg6IEFkZGVk
LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0Mi9NZXNzYWdlUmVjZWl2ZXItZXhwZWN0ZWQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXQyL21lc3NhZ2VzX3VuaXR0ZXN0LnB5OgorICAgICAgICAoTWVzc2FnZXNUZXN0
LnNldFVwKToKKyAgICAgICAgKFBhcnNpbmdUZXN0LnRlc3RfcmVjZWl2ZXIpOgorICAgICAgICAo
SGVhZGVyVGVzdC50ZXN0X2hlYWRlcik6CisgICAgICAgIChSZWNlaXZlckltcGxlbWVudGF0aW9u
VGVzdC50ZXN0X3JlY2VpdmVyX2ltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdDIvdGVzdC1sZWdhY3ktbWVzc2FnZXMuaW46IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQy
L1NjcmlwdHMvd2Via2l0Mi90ZXN0LW1lc3NhZ2VzLmluLgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0Mi90ZXN0LW1lc3NhZ2VzLmluOgorCisyMDE0LTAxLTA3ICBTaW1vbiBGcmFzZXIgIDxzaW1v
bi5mcmFzZXJAYXBwbGUuY29tPgorCiAgICAgICAgIE1vdmUgZXhwZWN0ZWQgcmVzdWx0cyBvdXQg
b2YgbWVzc2FnZXNfdW5pdHRlc3QucHkgaW50byBzZXBhcmF0ZSBmaWxlcwogICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2NjAyCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9MZWdhY3lNZXNzYWdlUmVjZWl2ZXItZXhw
ZWN0ZWQuY3BwIGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL0xlZ2FjeU1lc3NhZ2VS
ZWNlaXZlci1leHBlY3RlZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWZiYzFlZjRjYjljNDNiYTcwM2I4YWMw
YTM3ZWQ0YmQ4ZWE1YTEwZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1Njcmlw
dHMvd2Via2l0Mi9MZWdhY3lNZXNzYWdlUmVjZWl2ZXItZXhwZWN0ZWQuY3BwCkBAIC0wLDAgKzEs
MjE4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IK
KyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIChFTkFCTEUo
V0VCS0lUMikgJiYgKE5FU1RFRF9NQVNURVJfQ09ORElUSU9OIHx8IE1BU1RFUl9PUiAmJiBNQVNU
RVJfQU5EKSkKKworI2luY2x1ZGUgIldlYlBhZ2UuaCIKKworI2luY2x1ZGUgIkFyZ3VtZW50Q29k
ZXJzLmgiCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2lmIEVOQUJMRShERVBSRUNBVEVEX0ZF
QVRVUkUpIHx8IEVOQUJMRShFWFBFUklNRU5UQUxfRkVBVFVSRSkKKyNpbmNsdWRlICJEdW1teVR5
cGUuaCIKKyNlbmRpZgorI2luY2x1ZGUgIkhhbmRsZU1lc3NhZ2UuaCIKKyNpZiBQTEFURk9STShN
QUMpCisjaW5jbHVkZSAiTWFjaFBvcnQuaCIKKyNlbmRpZgorI2luY2x1ZGUgIk1lc3NhZ2VEZWNv
ZGVyLmgiCisjaW5jbHVkZSAiUGx1Z2luLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgiCisjaWYgKEVOQUJMRShUT1VDSF9FVkVOVFMpICYmIChORVNURURfTUVTU0FHRV9DT05E
SVRJT04gJiYgU09NRV9PVEhFUl9NRVNTQUdFX0NPTkRJVElPTikpIHx8IChFTkFCTEUoVE9VQ0hf
RVZFTlRTKSAmJiAoTkVTVEVEX01FU1NBR0VfQ09ORElUSU9OIHx8IFNPTUVfT1RIRVJfTUVTU0FH
RV9DT05ESVRJT04pKQorI2luY2x1ZGUgIldlYkV2ZW50LmgiCisjZW5kaWYKKyNpbmNsdWRlICJX
ZWJQYWdlTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc1N0b3JlLmgiCisjaWYg
UExBVEZPUk0oTUFDKQorI2luY2x1ZGUgPFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5oPgorI2VuZGlm
CisjaW5jbHVkZSA8V2ViQ29yZS9QbHVnaW5EYXRhLmg+CisjaW5jbHVkZSA8dXRpbGl0eT4KKyNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIE1lc3NhZ2VzIHsKKworbmFtZXNw
YWNlIFdlYlBhZ2UgeworCitHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5
OjpEZWxheWVkUmVwbHkoUGFzc1JlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IGNvbm5lY3Rpb24sIHN0
ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyKQorICAgIDogbV9jb25u
ZWN0aW9uKGNvbm5lY3Rpb24pCisgICAgLCBtX2VuY29kZXIoc3RkOjptb3ZlKGVuY29kZXIpKQor
eworfQorCitHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5Ojp+RGVsYXll
ZFJlcGx5KCkKK3sKKyAgICBBU1NFUlQoIW1fY29ubmVjdGlvbik7Cit9CisKK2Jvb2wgR2V0UGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseTo6c2VuZChjb25zdCBJUEM6OkNvbm5l
Y3Rpb246OkhhbmRsZSYgY29ubmVjdGlvbkhhbmRsZSkKK3sKKyAgICBBU1NFUlQobV9lbmNvZGVy
KTsKKyAgICAqbV9lbmNvZGVyIDw8IGNvbm5lY3Rpb25IYW5kbGU7CisgICAgYm9vbCByZXN1bHQg
PSBtX2Nvbm5lY3Rpb24tPnNlbmRTeW5jUmVwbHkoc3RkOjptb3ZlKG1fZW5jb2RlcikpOworICAg
IG1fY29ubmVjdGlvbiA9IG51bGxwdHI7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworVGVzdE11
bHRpcGxlQXR0cmlidXRlczo6RGVsYXllZFJlcGx5OjpEZWxheWVkUmVwbHkoUGFzc1JlZlB0cjxJ
UEM6OkNvbm5lY3Rpb24+IGNvbm5lY3Rpb24sIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VF
bmNvZGVyPiBlbmNvZGVyKQorICAgIDogbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCisgICAgLCBt
X2VuY29kZXIoc3RkOjptb3ZlKGVuY29kZXIpKQoreworfQorCitUZXN0TXVsdGlwbGVBdHRyaWJ1
dGVzOjpEZWxheWVkUmVwbHk6On5EZWxheWVkUmVwbHkoKQoreworICAgIEFTU0VSVCghbV9jb25u
ZWN0aW9uKTsKK30KKworYm9vbCBUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpEZWxheWVkUmVwbHk6
OnNlbmQoKQoreworICAgIEFTU0VSVChtX2VuY29kZXIpOworICAgIGJvb2wgcmVzdWx0ID0gbV9j
b25uZWN0aW9uLT5zZW5kU3luY1JlcGx5KHN0ZDo6bW92ZShtX2VuY29kZXIpKTsKKyAgICBtX2Nv
bm5lY3Rpb24gPSBudWxscHRyOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYlBhZ2UKKworfSAvLyBuYW1lc3BhY2UgTWVzc2FnZXMKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK3ZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVdlYlBhZ2VNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCit7CisgICAgaWYgKGRlY29kZXIu
bWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6V2ViUGFnZTo6TG9hZFVSTDo6bmFtZSgpKSB7Cisg
ICAgICAgIElQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6TG9hZFVSTD4oZGVj
b2RlciwgdGhpcywgJldlYlBhZ2U6OmxvYWRVUkwpOworICAgICAgICByZXR1cm47CisgICAgfQor
I2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgaWYgKGRlY29kZXIubWVzc2FnZU5hbWUoKSA9
PSBNZXNzYWdlczo6V2ViUGFnZTo6TG9hZFNvbWV0aGluZzo6bmFtZSgpKSB7CisgICAgICAgIElQ
Qzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6TG9hZFNvbWV0aGluZz4oZGVjb2Rl
ciwgdGhpcywgJldlYlBhZ2U6OmxvYWRTb21ldGhpbmcpOworICAgICAgICByZXR1cm47CisgICAg
fQorI2VuZGlmCisjaWYgKEVOQUJMRShUT1VDSF9FVkVOVFMpICYmIChORVNURURfTUVTU0FHRV9D
T05ESVRJT04gfHwgU09NRV9PVEhFUl9NRVNTQUdFX0NPTkRJVElPTikpCisgICAgaWYgKGRlY29k
ZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6V2ViUGFnZTo6VG91Y2hFdmVudDo6bmFtZSgp
KSB7CisgICAgICAgIElQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6VG91Y2hF
dmVudD4oZGVjb2RlciwgdGhpcywgJldlYlBhZ2U6OnRvdWNoRXZlbnQpOworICAgICAgICByZXR1
cm47CisgICAgfQorI2VuZGlmCisjaWYgKEVOQUJMRShUT1VDSF9FVkVOVFMpICYmIChORVNURURf
TUVTU0FHRV9DT05ESVRJT04gJiYgU09NRV9PVEhFUl9NRVNTQUdFX0NPTkRJVElPTikpCisgICAg
aWYgKGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6V2ViUGFnZTo6QWRkRXZlbnQ6
Om5hbWUoKSkgeworICAgICAgICBJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6
OkFkZEV2ZW50PihkZWNvZGVyLCB0aGlzLCAmV2ViUGFnZTo6YWRkRXZlbnQpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorI2VuZGlmCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyAgICBpZiAo
ZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJQYWdlOjpMb2FkU29tZXRoaW5n
RWxzZTo6bmFtZSgpKSB7CisgICAgICAgIElQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2Vi
UGFnZTo6TG9hZFNvbWV0aGluZ0Vsc2U+KGRlY29kZXIsIHRoaXMsICZXZWJQYWdlOjpsb2FkU29t
ZXRoaW5nRWxzZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKKyAgICBpZiAoZGVj
b2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlUG9saWN5
RGVjaXNpb246Om5hbWUoKSkgeworICAgICAgICBJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6
OldlYlBhZ2U6OkRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbj4oZGVjb2RlciwgdGhpcywgJldlYlBh
Z2U6OmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbik7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgaWYgKGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6V2ViUGFnZTo6Q2xvc2U6
Om5hbWUoKSkgeworICAgICAgICBJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6
OkNsb3NlPihkZWNvZGVyLCB0aGlzLCAmV2ViUGFnZTo6Y2xvc2UpOworICAgICAgICByZXR1cm47
CisgICAgfQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OldlYlBh
Z2U6OlByZWZlcmVuY2VzRGlkQ2hhbmdlOjpuYW1lKCkpIHsKKyAgICAgICAgSVBDOjpoYW5kbGVN
ZXNzYWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpQcmVmZXJlbmNlc0RpZENoYW5nZT4oZGVjb2Rlciwg
dGhpcywgJldlYlBhZ2U6OnByZWZlcmVuY2VzRGlkQ2hhbmdlKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJQYWdl
OjpTZW5kRG91YmxlQW5kRmxvYXQ6Om5hbWUoKSkgeworICAgICAgICBJUEM6OmhhbmRsZU1lc3Nh
Z2U8TWVzc2FnZXM6OldlYlBhZ2U6OlNlbmREb3VibGVBbmRGbG9hdD4oZGVjb2RlciwgdGhpcywg
JldlYlBhZ2U6OnNlbmREb3VibGVBbmRGbG9hdCk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgaWYgKGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6V2ViUGFnZTo6U2VuZElu
dHM6Om5hbWUoKSkgeworICAgICAgICBJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBh
Z2U6OlNlbmRJbnRzPihkZWNvZGVyLCB0aGlzLCAmV2ViUGFnZTo6c2VuZEludHMpOworICAgICAg
ICByZXR1cm47CisgICAgfQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2Fn
ZXM6OldlYlBhZ2U6OlRlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzOjpuYW1lKCkpIHsKKyAgICAgICAg
SVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0UGFyYW1ldGVyQXR0cmli
dXRlcz4oZGVjb2RlciwgdGhpcywgJldlYlBhZ2U6OnRlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09
IE1lc3NhZ2VzOjpXZWJQYWdlOjpUZW1wbGF0ZVRlc3Q6Om5hbWUoKSkgeworICAgICAgICBJUEM6
OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OlRlbXBsYXRlVGVzdD4oZGVjb2Rlciwg
dGhpcywgJldlYlBhZ2U6OnRlbXBsYXRlVGVzdCk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisj
aWYgUExBVEZPUk0oTUFDKQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2Fn
ZXM6OldlYlBhZ2U6OkRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uOjpuYW1lKCkpIHsKKyAg
ICAgICAgSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRDcmVhdGVXZWJQ
cm9jZXNzQ29ubmVjdGlvbj4oZGVjb2RlciwgdGhpcywgJldlYlBhZ2U6OmRpZENyZWF0ZVdlYlBy
b2Nlc3NDb25uZWN0aW9uKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorI2lmIEVO
QUJMRShERVBSRUNBVEVEX0ZFQVRVUkUpCisgICAgaWYgKGRlY29kZXIubWVzc2FnZU5hbWUoKSA9
PSBNZXNzYWdlczo6V2ViUGFnZTo6RGVwcmVjYXRlZE9wZXJhdGlvbjo6bmFtZSgpKSB7CisgICAg
ICAgIElQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6RGVwcmVjYXRlZE9wZXJh
dGlvbj4oZGVjb2RlciwgdGhpcywgJldlYlBhZ2U6OmRlcHJlY2F0ZWRPcGVyYXRpb24pOworICAg
ICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisjaWYgRU5BQkxFKEVYUEVSSU1FTlRBTF9GRUFU
VVJFKQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OldlYlBhZ2U6
OkV4cGVyaW1lbnRhbE9wZXJhdGlvbjo6bmFtZSgpKSB7CisgICAgICAgIElQQzo6aGFuZGxlTWVz
c2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6RXhwZXJpbWVudGFsT3BlcmF0aW9uPihkZWNvZGVyLCB0
aGlzLCAmV2ViUGFnZTo6ZXhwZXJpbWVudGFsT3BlcmF0aW9uKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyNlbmRpZgorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFdlYlBh
Z2U6OmRpZFJlY2VpdmVTeW5jV2ViUGFnZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpN
ZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKK3sKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdl
TmFtZSgpID09IE1lc3NhZ2VzOjpXZWJQYWdlOjpDcmVhdGVQbHVnaW46Om5hbWUoKSkgeworICAg
ICAgICBJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkNyZWF0ZVBsdWdpbj4o
ZGVjb2RlciwgKnJlcGx5RW5jb2RlciwgdGhpcywgJldlYlBhZ2U6OmNyZWF0ZVBsdWdpbik7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBN
ZXNzYWdlczo6V2ViUGFnZTo6UnVuSmF2YVNjcmlwdEFsZXJ0OjpuYW1lKCkpIHsKKyAgICAgICAg
SVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpSdW5KYXZhU2NyaXB0QWxlcnQ+
KGRlY29kZXIsICpyZXBseUVuY29kZXIsIHRoaXMsICZXZWJQYWdlOjpydW5KYXZhU2NyaXB0QWxl
cnQpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VOYW1l
KCkgPT0gTWVzc2FnZXM6OldlYlBhZ2U6OkdldFBsdWdpbnM6Om5hbWUoKSkgeworICAgICAgICBJ
UEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkdldFBsdWdpbnM+KGRlY29kZXIs
ICpyZXBseUVuY29kZXIsIHRoaXMsICZXZWJQYWdlOjpnZXRQbHVnaW5zKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpX
ZWJQYWdlOjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6bmFtZSgpKSB7CisgICAgICAgIElQ
Qzo6aGFuZGxlTWVzc2FnZURlbGF5ZWQ8TWVzc2FnZXM6OldlYlBhZ2U6OkdldFBsdWdpblByb2Nl
c3NDb25uZWN0aW9uPihjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIsIHRoaXMsICZX
ZWJQYWdlOjpnZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbik7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgaWYgKGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6V2ViUGFnZTo6
VGVzdE11bHRpcGxlQXR0cmlidXRlczo6bmFtZSgpKSB7CisgICAgICAgIElQQzo6aGFuZGxlTWVz
c2FnZURlbGF5ZWQ8TWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RNdWx0aXBsZUF0dHJpYnV0ZXM+KGNv
bm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2RlciwgdGhpcywgJldlYlBhZ2U6OnRlc3RNdWx0
aXBsZUF0dHJpYnV0ZXMpOworICAgICAgICByZXR1cm47CisgICAgfQorI2lmIFBMQVRGT1JNKE1B
QykKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJQYWdlOjpJ
bnRlcnByZXRLZXlFdmVudDo6bmFtZSgpKSB7CisgICAgICAgIElQQzo6aGFuZGxlTWVzc2FnZTxN
ZXNzYWdlczo6V2ViUGFnZTo6SW50ZXJwcmV0S2V5RXZlbnQ+KGRlY29kZXIsICpyZXBseUVuY29k
ZXIsIHRoaXMsICZXZWJQYWdlOjppbnRlcnByZXRLZXlFdmVudCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisjZW5kaWYKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyAoRU5BQkxFKFdFQktJVDIpICYmIChORVNURURfTUFT
VEVSX0NPTkRJVElPTiB8fCBNQVNURVJfT1IgJiYgTUFTVEVSX0FORCkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvTGVnYWN5TWVzc2FnZXMtZXhwZWN0ZWQuaCBi
L1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9MZWdhY3lNZXNzYWdlcy1leHBlY3RlZC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjdiNzMxODMxNzA5ZTMyNmJlMGM4YTRhNTkzODc0OGY4ZGYwYmM5YTcKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvTGVnYWN5TWVz
c2FnZXMtZXhwZWN0ZWQuaApAQCAtMCwwICsxLDU2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
CisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IFdlYlBhZ2VNZXNzYWdlc19oCisjZGVmaW5lIFdlYlBhZ2VNZXNzYWdlc19oCisKKyNpZiAoRU5B
QkxFKFdFQktJVDIpICYmIChORVNURURfTUFTVEVSX0NPTkRJVElPTiB8fCBNQVNURVJfT1IgJiYg
TUFTVEVSX0FORCkpCisKKyNpbmNsdWRlICJBcmd1bWVudHMuaCIKKyNpbmNsdWRlICJDb25uZWN0
aW9uLmgiCisjaW5jbHVkZSAiTWVzc2FnZUVuY29kZXIuaCIKKyNpbmNsdWRlICJQbHVnaW4uaCIK
KyNpbmNsdWRlICJTdHJpbmdSZWZlcmVuY2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0tleWJvYXJk
RXZlbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsdWdpbkRhdGEuaD4KKyNpbmNsdWRlIDx1dGls
aXR5PgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVS
ZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgSVBDIHsKKyAgICBjbGFzcyBDb25uZWN0aW9uOwor
ICAgIGNsYXNzIER1bW15VHlwZTsKKyAgICBjbGFzcyBNYWNoUG9ydDsKK30KKworbmFtZXNwYWNl
IFdURiB7CisgICAgY2xhc3MgU3RyaW5nOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKyAgICBz
dHJ1Y3QgV2ViUHJlZmVyZW5jZXNTdG9yZTsKKyAgICBjbGFzcyBXZWJUb3VjaEV2ZW50OworfQor
CituYW1lc3BhY2UgTWVzc2FnZXMgeworbmFtZXNwYWNlIFdlYlBhZ2UgeworCitzdGF0aWMgaW5s
aW5lIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUoKQoreworICAgIHJl
dHVybiBJUEM6OlN0cmluZ1JlZmVyZW5jZSgiV2ViUGFnZSIpOworfQorCitjbGFzcyBMb2FkVVJM
IHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8U3RyaW5nPiBEZWNvZGVUeXBlOwor
CisgICAgc3RhdGljIElQQzo6U3RyaW5nUmVmZXJlbmNlIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJu
IG1lc3NhZ2VSZWNlaXZlck5hbWUoKTsgfQorICAgIHN0YXRpYyBJUEM6OlN0cmluZ1JlZmVyZW5j
ZSBuYW1lKCkgeyByZXR1cm4gSVBDOjpTdHJpbmdSZWZlcmVuY2UoIkxvYWRVUkwiKTsgfQorICAg
IHN0YXRpYyBjb25zdCBib29sIGlzU3luYyA9IGZhbHNlOworCisgICAgZXhwbGljaXQgTG9hZFVS
TChjb25zdCBTdHJpbmcmIHVybCkKKyAgICAgICAgOiBtX2FyZ3VtZW50cyh1cmwpCisgICAgewor
ICAgIH0KKworICAgIGNvbnN0IHN0ZDo6dHVwbGU8Y29uc3QgU3RyaW5nJj4gYXJndW1lbnRzKCkg
Y29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2FyZ3VtZW50czsKKyAgICB9CisKK3ByaXZh
dGU6CisgICAgc3RkOjp0dXBsZTxjb25zdCBTdHJpbmcmPiBtX2FyZ3VtZW50czsKK307CisKKyNp
ZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorY2xhc3MgTG9hZFNvbWV0aGluZyB7CitwdWJsaWM6Cisg
ICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFN0cmluZz4gRGVjb2RlVHlwZTsKKworICAgIHN0YXRpYyBJ
UEM6OlN0cmluZ1JlZmVyZW5jZSByZWNlaXZlck5hbWUoKSB7IHJldHVybiBtZXNzYWdlUmVjZWl2
ZXJOYW1lKCk7IH0KKyAgICBzdGF0aWMgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbmFtZSgpIHsgcmV0
dXJuIElQQzo6U3RyaW5nUmVmZXJlbmNlKCJMb2FkU29tZXRoaW5nIik7IH0KKyAgICBzdGF0aWMg
Y29uc3QgYm9vbCBpc1N5bmMgPSBmYWxzZTsKKworICAgIGV4cGxpY2l0IExvYWRTb21ldGhpbmco
Y29uc3QgU3RyaW5nJiB1cmwpCisgICAgICAgIDogbV9hcmd1bWVudHModXJsKQorICAgIHsKKyAg
ICB9CisKKyAgICBjb25zdCBzdGQ6OnR1cGxlPGNvbnN0IFN0cmluZyY+IGFyZ3VtZW50cygpIGNv
bnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9hcmd1bWVudHM7CisgICAgfQorCitwcml2YXRl
OgorICAgIHN0ZDo6dHVwbGU8Y29uc3QgU3RyaW5nJj4gbV9hcmd1bWVudHM7Cit9OworI2VuZGlm
CisKKyNpZiAoRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYgKE5FU1RFRF9NRVNTQUdFX0NPTkRJVElP
TiB8fCBTT01FX09USEVSX01FU1NBR0VfQ09ORElUSU9OKSkKK2NsYXNzIFRvdWNoRXZlbnQgewor
cHVibGljOgorICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXZWJLaXQ6OldlYlRvdWNoRXZlbnQ+IERl
Y29kZVR5cGU7CisKKyAgICBzdGF0aWMgSVBDOjpTdHJpbmdSZWZlcmVuY2UgcmVjZWl2ZXJOYW1l
KCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9CisgICAgc3RhdGljIElQQzo6U3Ry
aW5nUmVmZXJlbmNlIG5hbWUoKSB7IHJldHVybiBJUEM6OlN0cmluZ1JlZmVyZW5jZSgiVG91Y2hF
dmVudCIpOyB9CisgICAgc3RhdGljIGNvbnN0IGJvb2wgaXNTeW5jID0gZmFsc2U7CisKKyAgICBl
eHBsaWNpdCBUb3VjaEV2ZW50KGNvbnN0IFdlYktpdDo6V2ViVG91Y2hFdmVudCYgZXZlbnQpCisg
ICAgICAgIDogbV9hcmd1bWVudHMoZXZlbnQpCisgICAgeworICAgIH0KKworICAgIGNvbnN0IHN0
ZDo6dHVwbGU8Y29uc3QgV2ViS2l0OjpXZWJUb3VjaEV2ZW50Jj4gYXJndW1lbnRzKCkgY29uc3QK
KyAgICB7CisgICAgICAgIHJldHVybiBtX2FyZ3VtZW50czsKKyAgICB9CisKK3ByaXZhdGU6Cisg
ICAgc3RkOjp0dXBsZTxjb25zdCBXZWJLaXQ6OldlYlRvdWNoRXZlbnQmPiBtX2FyZ3VtZW50czsK
K307CisjZW5kaWYKKworI2lmIChFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAoTkVTVEVEX01FU1NB
R0VfQ09ORElUSU9OICYmIFNPTUVfT1RIRVJfTUVTU0FHRV9DT05ESVRJT04pKQorY2xhc3MgQWRk
RXZlbnQgeworcHVibGljOgorICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXZWJLaXQ6OldlYlRvdWNo
RXZlbnQ+IERlY29kZVR5cGU7CisKKyAgICBzdGF0aWMgSVBDOjpTdHJpbmdSZWZlcmVuY2UgcmVj
ZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9CisgICAgc3RhdGlj
IElQQzo6U3RyaW5nUmVmZXJlbmNlIG5hbWUoKSB7IHJldHVybiBJUEM6OlN0cmluZ1JlZmVyZW5j
ZSgiQWRkRXZlbnQiKTsgfQorICAgIHN0YXRpYyBjb25zdCBib29sIGlzU3luYyA9IGZhbHNlOwor
CisgICAgZXhwbGljaXQgQWRkRXZlbnQoY29uc3QgV2ViS2l0OjpXZWJUb3VjaEV2ZW50JiBldmVu
dCkKKyAgICAgICAgOiBtX2FyZ3VtZW50cyhldmVudCkKKyAgICB7CisgICAgfQorCisgICAgY29u
c3Qgc3RkOjp0dXBsZTxjb25zdCBXZWJLaXQ6OldlYlRvdWNoRXZlbnQmPiBhcmd1bWVudHMoKSBj
b25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fYXJndW1lbnRzOworICAgIH0KKworcHJpdmF0
ZToKKyAgICBzdGQ6OnR1cGxlPGNvbnN0IFdlYktpdDo6V2ViVG91Y2hFdmVudCY+IG1fYXJndW1l
bnRzOworfTsKKyNlbmRpZgorCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKK2NsYXNzIExvYWRT
b21ldGhpbmdFbHNlIHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8U3RyaW5nPiBE
ZWNvZGVUeXBlOworCisgICAgc3RhdGljIElQQzo6U3RyaW5nUmVmZXJlbmNlIHJlY2VpdmVyTmFt
ZSgpIHsgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck5hbWUoKTsgfQorICAgIHN0YXRpYyBJUEM6OlN0
cmluZ1JlZmVyZW5jZSBuYW1lKCkgeyByZXR1cm4gSVBDOjpTdHJpbmdSZWZlcmVuY2UoIkxvYWRT
b21ldGhpbmdFbHNlIik7IH0KKyAgICBzdGF0aWMgY29uc3QgYm9vbCBpc1N5bmMgPSBmYWxzZTsK
KworICAgIGV4cGxpY2l0IExvYWRTb21ldGhpbmdFbHNlKGNvbnN0IFN0cmluZyYgdXJsKQorICAg
ICAgICA6IG1fYXJndW1lbnRzKHVybCkKKyAgICB7CisgICAgfQorCisgICAgY29uc3Qgc3RkOjp0
dXBsZTxjb25zdCBTdHJpbmcmPiBhcmd1bWVudHMoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0
dXJuIG1fYXJndW1lbnRzOworICAgIH0KKworcHJpdmF0ZToKKyAgICBzdGQ6OnR1cGxlPGNvbnN0
IFN0cmluZyY+IG1fYXJndW1lbnRzOworfTsKKyNlbmRpZgorCitjbGFzcyBEaWRSZWNlaXZlUG9s
aWN5RGVjaXNpb24geworcHVibGljOgorICAgIHR5cGVkZWYgc3RkOjp0dXBsZTx1aW50NjRfdCwg
dWludDY0X3QsIHVpbnQzMl90PiBEZWNvZGVUeXBlOworCisgICAgc3RhdGljIElQQzo6U3RyaW5n
UmVmZXJlbmNlIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck5hbWUoKTsg
fQorICAgIHN0YXRpYyBJUEM6OlN0cmluZ1JlZmVyZW5jZSBuYW1lKCkgeyByZXR1cm4gSVBDOjpT
dHJpbmdSZWZlcmVuY2UoIkRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbiIpOyB9CisgICAgc3RhdGlj
IGNvbnN0IGJvb2wgaXNTeW5jID0gZmFsc2U7CisKKyAgICBEaWRSZWNlaXZlUG9saWN5RGVjaXNp
b24odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCwgdWludDMyX3QgcG9saWN5
QWN0aW9uKQorICAgICAgICA6IG1fYXJndW1lbnRzKGZyYW1lSUQsIGxpc3RlbmVySUQsIHBvbGlj
eUFjdGlvbikKKyAgICB7CisgICAgfQorCisgICAgY29uc3Qgc3RkOjp0dXBsZTx1aW50NjRfdCwg
dWludDY0X3QsIHVpbnQzMl90PiBhcmd1bWVudHMoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0
dXJuIG1fYXJndW1lbnRzOworICAgIH0KKworcHJpdmF0ZToKKyAgICBzdGQ6OnR1cGxlPHVpbnQ2
NF90LCB1aW50NjRfdCwgdWludDMyX3Q+IG1fYXJndW1lbnRzOworfTsKKworY2xhc3MgQ2xvc2Ug
eworcHVibGljOgorICAgIHR5cGVkZWYgc3RkOjp0dXBsZTw+IERlY29kZVR5cGU7CisKKyAgICBz
dGF0aWMgSVBDOjpTdHJpbmdSZWZlcmVuY2UgcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpOyB9CisgICAgc3RhdGljIElQQzo6U3RyaW5nUmVmZXJlbmNlIG5hbWUo
KSB7IHJldHVybiBJUEM6OlN0cmluZ1JlZmVyZW5jZSgiQ2xvc2UiKTsgfQorICAgIHN0YXRpYyBj
b25zdCBib29sIGlzU3luYyA9IGZhbHNlOworCisgICAgY29uc3Qgc3RkOjp0dXBsZTw+IGFyZ3Vt
ZW50cygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9hcmd1bWVudHM7CisgICAgfQor
Citwcml2YXRlOgorICAgIHN0ZDo6dHVwbGU8PiBtX2FyZ3VtZW50czsKK307CisKK2NsYXNzIFBy
ZWZlcmVuY2VzRGlkQ2hhbmdlIHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V2Vi
S2l0OjpXZWJQcmVmZXJlbmNlc1N0b3JlPiBEZWNvZGVUeXBlOworCisgICAgc3RhdGljIElQQzo6
U3RyaW5nUmVmZXJlbmNlIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck5h
bWUoKTsgfQorICAgIHN0YXRpYyBJUEM6OlN0cmluZ1JlZmVyZW5jZSBuYW1lKCkgeyByZXR1cm4g
SVBDOjpTdHJpbmdSZWZlcmVuY2UoIlByZWZlcmVuY2VzRGlkQ2hhbmdlIik7IH0KKyAgICBzdGF0
aWMgY29uc3QgYm9vbCBpc1N5bmMgPSBmYWxzZTsKKworICAgIGV4cGxpY2l0IFByZWZlcmVuY2Vz
RGlkQ2hhbmdlKGNvbnN0IFdlYktpdDo6V2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCisgICAg
ICAgIDogbV9hcmd1bWVudHMoc3RvcmUpCisgICAgeworICAgIH0KKworICAgIGNvbnN0IHN0ZDo6
dHVwbGU8Y29uc3QgV2ViS2l0OjpXZWJQcmVmZXJlbmNlc1N0b3JlJj4gYXJndW1lbnRzKCkgY29u
c3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2FyZ3VtZW50czsKKyAgICB9CisKK3ByaXZhdGU6
CisgICAgc3RkOjp0dXBsZTxjb25zdCBXZWJLaXQ6OldlYlByZWZlcmVuY2VzU3RvcmUmPiBtX2Fy
Z3VtZW50czsKK307CisKK2NsYXNzIFNlbmREb3VibGVBbmRGbG9hdCB7CitwdWJsaWM6CisgICAg
dHlwZWRlZiBzdGQ6OnR1cGxlPGRvdWJsZSwgZmxvYXQ+IERlY29kZVR5cGU7CisKKyAgICBzdGF0
aWMgSVBDOjpTdHJpbmdSZWZlcmVuY2UgcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJl
Y2VpdmVyTmFtZSgpOyB9CisgICAgc3RhdGljIElQQzo6U3RyaW5nUmVmZXJlbmNlIG5hbWUoKSB7
IHJldHVybiBJUEM6OlN0cmluZ1JlZmVyZW5jZSgiU2VuZERvdWJsZUFuZEZsb2F0Iik7IH0KKyAg
ICBzdGF0aWMgY29uc3QgYm9vbCBpc1N5bmMgPSBmYWxzZTsKKworICAgIFNlbmREb3VibGVBbmRG
bG9hdChkb3VibGUgZCwgZmxvYXQgZikKKyAgICAgICAgOiBtX2FyZ3VtZW50cyhkLCBmKQorICAg
IHsKKyAgICB9CisKKyAgICBjb25zdCBzdGQ6OnR1cGxlPGRvdWJsZSwgZmxvYXQ+IGFyZ3VtZW50
cygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9hcmd1bWVudHM7CisgICAgfQorCitw
cml2YXRlOgorICAgIHN0ZDo6dHVwbGU8ZG91YmxlLCBmbG9hdD4gbV9hcmd1bWVudHM7Cit9Owor
CitjbGFzcyBTZW5kSW50cyB7CitwdWJsaWM6CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFZlY3Rv
cjx1aW50NjRfdD4sIFZlY3RvcjxWZWN0b3I8dWludDY0X3Q+Pj4gRGVjb2RlVHlwZTsKKworICAg
IHN0YXRpYyBJUEM6OlN0cmluZ1JlZmVyZW5jZSByZWNlaXZlck5hbWUoKSB7IHJldHVybiBtZXNz
YWdlUmVjZWl2ZXJOYW1lKCk7IH0KKyAgICBzdGF0aWMgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbmFt
ZSgpIHsgcmV0dXJuIElQQzo6U3RyaW5nUmVmZXJlbmNlKCJTZW5kSW50cyIpOyB9CisgICAgc3Rh
dGljIGNvbnN0IGJvb2wgaXNTeW5jID0gZmFsc2U7CisKKyAgICBTZW5kSW50cyhjb25zdCBWZWN0
b3I8dWludDY0X3Q+JiBpbnRzLCBjb25zdCBWZWN0b3I8VmVjdG9yPHVpbnQ2NF90Pj4mIGludFZl
Y3RvcnMpCisgICAgICAgIDogbV9hcmd1bWVudHMoaW50cywgaW50VmVjdG9ycykKKyAgICB7Cisg
ICAgfQorCisgICAgY29uc3Qgc3RkOjp0dXBsZTxjb25zdCBWZWN0b3I8dWludDY0X3Q+JiwgY29u
c3QgVmVjdG9yPFZlY3Rvcjx1aW50NjRfdD4+Jj4gYXJndW1lbnRzKCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIHJldHVybiBtX2FyZ3VtZW50czsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgc3RkOjp0
dXBsZTxjb25zdCBWZWN0b3I8dWludDY0X3Q+JiwgY29uc3QgVmVjdG9yPFZlY3Rvcjx1aW50NjRf
dD4+Jj4gbV9hcmd1bWVudHM7Cit9OworCitjbGFzcyBDcmVhdGVQbHVnaW4geworcHVibGljOgor
ICAgIHR5cGVkZWYgc3RkOjp0dXBsZTx1aW50NjRfdCwgV2ViS2l0OjpQbHVnaW46OlBhcmFtZXRl
cnM+IERlY29kZVR5cGU7CisKKyAgICBzdGF0aWMgSVBDOjpTdHJpbmdSZWZlcmVuY2UgcmVjZWl2
ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9CisgICAgc3RhdGljIElQ
Qzo6U3RyaW5nUmVmZXJlbmNlIG5hbWUoKSB7IHJldHVybiBJUEM6OlN0cmluZ1JlZmVyZW5jZSgi
Q3JlYXRlUGx1Z2luIik7IH0KKyAgICBzdGF0aWMgY29uc3QgYm9vbCBpc1N5bmMgPSB0cnVlOwor
CisgICAgdHlwZWRlZiBJUEM6OkFyZ3VtZW50czE8Ym9vbCY+IFJlcGx5OworICAgIENyZWF0ZVBs
dWdpbih1aW50NjRfdCBwbHVnaW5JbnN0YW5jZUlELCBjb25zdCBXZWJLaXQ6OlBsdWdpbjo6UGFy
YW1ldGVycyYgcGFyYW1ldGVycykKKyAgICAgICAgOiBtX2FyZ3VtZW50cyhwbHVnaW5JbnN0YW5j
ZUlELCBwYXJhbWV0ZXJzKQorICAgIHsKKyAgICB9CisKKyAgICBjb25zdCBzdGQ6OnR1cGxlPHVp
bnQ2NF90LCBjb25zdCBXZWJLaXQ6OlBsdWdpbjo6UGFyYW1ldGVycyY+IGFyZ3VtZW50cygpIGNv
bnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9hcmd1bWVudHM7CisgICAgfQorCitwcml2YXRl
OgorICAgIHN0ZDo6dHVwbGU8dWludDY0X3QsIGNvbnN0IFdlYktpdDo6UGx1Z2luOjpQYXJhbWV0
ZXJzJj4gbV9hcmd1bWVudHM7Cit9OworCitjbGFzcyBSdW5KYXZhU2NyaXB0QWxlcnQgeworcHVi
bGljOgorICAgIHR5cGVkZWYgc3RkOjp0dXBsZTx1aW50NjRfdCwgU3RyaW5nPiBEZWNvZGVUeXBl
OworCisgICAgc3RhdGljIElQQzo6U3RyaW5nUmVmZXJlbmNlIHJlY2VpdmVyTmFtZSgpIHsgcmV0
dXJuIG1lc3NhZ2VSZWNlaXZlck5hbWUoKTsgfQorICAgIHN0YXRpYyBJUEM6OlN0cmluZ1JlZmVy
ZW5jZSBuYW1lKCkgeyByZXR1cm4gSVBDOjpTdHJpbmdSZWZlcmVuY2UoIlJ1bkphdmFTY3JpcHRB
bGVydCIpOyB9CisgICAgc3RhdGljIGNvbnN0IGJvb2wgaXNTeW5jID0gdHJ1ZTsKKworICAgIHR5
cGVkZWYgSVBDOjpBcmd1bWVudHMwIFJlcGx5OworICAgIFJ1bkphdmFTY3JpcHRBbGVydCh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCisgICAgICAgIDogbV9hcmd1bWVu
dHMoZnJhbWVJRCwgbWVzc2FnZSkKKyAgICB7CisgICAgfQorCisgICAgY29uc3Qgc3RkOjp0dXBs
ZTx1aW50NjRfdCwgY29uc3QgU3RyaW5nJj4gYXJndW1lbnRzKCkgY29uc3QKKyAgICB7CisgICAg
ICAgIHJldHVybiBtX2FyZ3VtZW50czsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgc3RkOjp0dXBs
ZTx1aW50NjRfdCwgY29uc3QgU3RyaW5nJj4gbV9hcmd1bWVudHM7Cit9OworCitjbGFzcyBHZXRQ
bHVnaW5zIHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8Ym9vbD4gRGVjb2RlVHlw
ZTsKKworICAgIHN0YXRpYyBJUEM6OlN0cmluZ1JlZmVyZW5jZSByZWNlaXZlck5hbWUoKSB7IHJl
dHVybiBtZXNzYWdlUmVjZWl2ZXJOYW1lKCk7IH0KKyAgICBzdGF0aWMgSVBDOjpTdHJpbmdSZWZl
cmVuY2UgbmFtZSgpIHsgcmV0dXJuIElQQzo6U3RyaW5nUmVmZXJlbmNlKCJHZXRQbHVnaW5zIik7
IH0KKyAgICBzdGF0aWMgY29uc3QgYm9vbCBpc1N5bmMgPSB0cnVlOworCisgICAgdHlwZWRlZiBJ
UEM6OkFyZ3VtZW50czE8VmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+Jj4gUmVwbHk7CisgICAg
ZXhwbGljaXQgR2V0UGx1Z2lucyhib29sIHJlZnJlc2gpCisgICAgICAgIDogbV9hcmd1bWVudHMo
cmVmcmVzaCkKKyAgICB7CisgICAgfQorCisgICAgY29uc3Qgc3RkOjp0dXBsZTxib29sPiBhcmd1
bWVudHMoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fYXJndW1lbnRzOworICAgIH0K
KworcHJpdmF0ZToKKyAgICBzdGQ6OnR1cGxlPGJvb2w+IG1fYXJndW1lbnRzOworfTsKKworY2xh
c3MgR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24geworcHVibGljOgorICAgIHR5cGVkZWYgc3Rk
Ojp0dXBsZTxTdHJpbmc+IERlY29kZVR5cGU7CisKKyAgICBzdGF0aWMgSVBDOjpTdHJpbmdSZWZl
cmVuY2UgcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9Cisg
ICAgc3RhdGljIElQQzo6U3RyaW5nUmVmZXJlbmNlIG5hbWUoKSB7IHJldHVybiBJUEM6OlN0cmlu
Z1JlZmVyZW5jZSgiR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24iKTsgfQorICAgIHN0YXRpYyBj
b25zdCBib29sIGlzU3luYyA9IHRydWU7CisKKyAgICBzdHJ1Y3QgRGVsYXllZFJlcGx5IDogcHVi
bGljIFRocmVhZFNhZmVSZWZDb3VudGVkPERlbGF5ZWRSZXBseT4geworICAgICAgICBEZWxheWVk
UmVwbHkoUGFzc1JlZlB0cjxJUEM6OkNvbm5lY3Rpb24+LCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpN
ZXNzYWdlRW5jb2Rlcj4pOworICAgICAgICB+RGVsYXllZFJlcGx5KCk7CisKKyAgICAgICAgYm9v
bCBzZW5kKGNvbnN0IElQQzo6Q29ubmVjdGlvbjo6SGFuZGxlJiBjb25uZWN0aW9uSGFuZGxlKTsK
KworICAgIHByaXZhdGU6CisgICAgICAgIFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVj
dGlvbjsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+IG1fZW5j
b2RlcjsKKyAgICB9OworCisgICAgdHlwZWRlZiBJUEM6OkFyZ3VtZW50czE8SVBDOjpDb25uZWN0
aW9uOjpIYW5kbGUmPiBSZXBseTsKKyAgICBleHBsaWNpdCBHZXRQbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbihjb25zdCBTdHJpbmcmIHBsdWdpblBhdGgpCisgICAgICAgIDogbV9hcmd1bWVudHMocGx1
Z2luUGF0aCkKKyAgICB7CisgICAgfQorCisgICAgY29uc3Qgc3RkOjp0dXBsZTxjb25zdCBTdHJp
bmcmPiBhcmd1bWVudHMoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fYXJndW1lbnRz
OworICAgIH0KKworcHJpdmF0ZToKKyAgICBzdGQ6OnR1cGxlPGNvbnN0IFN0cmluZyY+IG1fYXJn
dW1lbnRzOworfTsKKworY2xhc3MgVGVzdE11bHRpcGxlQXR0cmlidXRlcyB7CitwdWJsaWM6Cisg
ICAgdHlwZWRlZiBzdGQ6OnR1cGxlPD4gRGVjb2RlVHlwZTsKKworICAgIHN0YXRpYyBJUEM6OlN0
cmluZ1JlZmVyZW5jZSByZWNlaXZlck5hbWUoKSB7IHJldHVybiBtZXNzYWdlUmVjZWl2ZXJOYW1l
KCk7IH0KKyAgICBzdGF0aWMgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbmFtZSgpIHsgcmV0dXJuIElQ
Qzo6U3RyaW5nUmVmZXJlbmNlKCJUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzIik7IH0KKyAgICBzdGF0
aWMgY29uc3QgYm9vbCBpc1N5bmMgPSB0cnVlOworCisgICAgc3RydWN0IERlbGF5ZWRSZXBseSA6
IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxEZWxheWVkUmVwbHk+IHsKKyAgICAgICAgRGVs
YXllZFJlcGx5KFBhc3NSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiwgc3RkOjp1bmlxdWVfcHRyPElQ
Qzo6TWVzc2FnZUVuY29kZXI+KTsKKyAgICAgICAgfkRlbGF5ZWRSZXBseSgpOworCisgICAgICAg
IGJvb2wgc2VuZCgpOworCisgICAgcHJpdmF0ZToKKyAgICAgICAgUmVmUHRyPElQQzo6Q29ubmVj
dGlvbj4gbV9jb25uZWN0aW9uOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdl
RW5jb2Rlcj4gbV9lbmNvZGVyOworICAgIH07CisKKyAgICB0eXBlZGVmIElQQzo6QXJndW1lbnRz
MCBSZXBseTsKKyAgICBjb25zdCBzdGQ6OnR1cGxlPD4gYXJndW1lbnRzKCkgY29uc3QKKyAgICB7
CisgICAgICAgIHJldHVybiBtX2FyZ3VtZW50czsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgc3Rk
Ojp0dXBsZTw+IG1fYXJndW1lbnRzOworfTsKKworY2xhc3MgVGVzdFBhcmFtZXRlckF0dHJpYnV0
ZXMgeworcHVibGljOgorICAgIHR5cGVkZWYgc3RkOjp0dXBsZTx1aW50NjRfdCwgZG91YmxlLCBk
b3VibGU+IERlY29kZVR5cGU7CisKKyAgICBzdGF0aWMgSVBDOjpTdHJpbmdSZWZlcmVuY2UgcmVj
ZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9CisgICAgc3RhdGlj
IElQQzo6U3RyaW5nUmVmZXJlbmNlIG5hbWUoKSB7IHJldHVybiBJUEM6OlN0cmluZ1JlZmVyZW5j
ZSgiVGVzdFBhcmFtZXRlckF0dHJpYnV0ZXMiKTsgfQorICAgIHN0YXRpYyBjb25zdCBib29sIGlz
U3luYyA9IGZhbHNlOworCisgICAgVGVzdFBhcmFtZXRlckF0dHJpYnV0ZXModWludDY0X3QgZm9v
LCBkb3VibGUgYmFyLCBkb3VibGUgYmF6KQorICAgICAgICA6IG1fYXJndW1lbnRzKGZvbywgYmFy
LCBiYXopCisgICAgeworICAgIH0KKworICAgIGNvbnN0IHN0ZDo6dHVwbGU8dWludDY0X3QsIGRv
dWJsZSwgZG91YmxlPiBhcmd1bWVudHMoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1f
YXJndW1lbnRzOworICAgIH0KKworcHJpdmF0ZToKKyAgICBzdGQ6OnR1cGxlPHVpbnQ2NF90LCBk
b3VibGUsIGRvdWJsZT4gbV9hcmd1bWVudHM7Cit9OworCitjbGFzcyBUZW1wbGF0ZVRlc3Qgewor
cHVibGljOgorICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxIYXNoTWFwPFN0cmluZywgc3RkOjpwYWly
PFN0cmluZywgdWludDY0X3Q+Pj4gRGVjb2RlVHlwZTsKKworICAgIHN0YXRpYyBJUEM6OlN0cmlu
Z1JlZmVyZW5jZSByZWNlaXZlck5hbWUoKSB7IHJldHVybiBtZXNzYWdlUmVjZWl2ZXJOYW1lKCk7
IH0KKyAgICBzdGF0aWMgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbmFtZSgpIHsgcmV0dXJuIElQQzo6
U3RyaW5nUmVmZXJlbmNlKCJUZW1wbGF0ZVRlc3QiKTsgfQorICAgIHN0YXRpYyBjb25zdCBib29s
IGlzU3luYyA9IGZhbHNlOworCisgICAgZXhwbGljaXQgVGVtcGxhdGVUZXN0KGNvbnN0IEhhc2hN
YXA8U3RyaW5nLCBzdGQ6OnBhaXI8U3RyaW5nLCB1aW50NjRfdD4+JiBhKQorICAgICAgICA6IG1f
YXJndW1lbnRzKGEpCisgICAgeworICAgIH0KKworICAgIGNvbnN0IHN0ZDo6dHVwbGU8Y29uc3Qg
SGFzaE1hcDxTdHJpbmcsIHN0ZDo6cGFpcjxTdHJpbmcsIHVpbnQ2NF90Pj4mPiBhcmd1bWVudHMo
KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fYXJndW1lbnRzOworICAgIH0KKworcHJp
dmF0ZToKKyAgICBzdGQ6OnR1cGxlPGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnBhaXI8U3Ry
aW5nLCB1aW50NjRfdD4+Jj4gbV9hcmd1bWVudHM7Cit9OworCisjaWYgUExBVEZPUk0oTUFDKQor
Y2xhc3MgRGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24geworcHVibGljOgorICAgIHR5cGVk
ZWYgc3RkOjp0dXBsZTxJUEM6Ok1hY2hQb3J0PiBEZWNvZGVUeXBlOworCisgICAgc3RhdGljIElQ
Qzo6U3RyaW5nUmVmZXJlbmNlIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1lc3NhZ2VSZWNlaXZl
ck5hbWUoKTsgfQorICAgIHN0YXRpYyBJUEM6OlN0cmluZ1JlZmVyZW5jZSBuYW1lKCkgeyByZXR1
cm4gSVBDOjpTdHJpbmdSZWZlcmVuY2UoIkRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uIik7
IH0KKyAgICBzdGF0aWMgY29uc3QgYm9vbCBpc1N5bmMgPSBmYWxzZTsKKworICAgIGV4cGxpY2l0
IERpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKGNvbnN0IElQQzo6TWFjaFBvcnQmIGNvbm5l
Y3Rpb25JZGVudGlmaWVyKQorICAgICAgICA6IG1fYXJndW1lbnRzKGNvbm5lY3Rpb25JZGVudGlm
aWVyKQorICAgIHsKKyAgICB9CisKKyAgICBjb25zdCBzdGQ6OnR1cGxlPGNvbnN0IElQQzo6TWFj
aFBvcnQmPiBhcmd1bWVudHMoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fYXJndW1l
bnRzOworICAgIH0KKworcHJpdmF0ZToKKyAgICBzdGQ6OnR1cGxlPGNvbnN0IElQQzo6TWFjaFBv
cnQmPiBtX2FyZ3VtZW50czsKK307CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKE1BQykKK2NsYXNz
IEludGVycHJldEtleUV2ZW50IHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8dWlu
dDMyX3Q+IERlY29kZVR5cGU7CisKKyAgICBzdGF0aWMgSVBDOjpTdHJpbmdSZWZlcmVuY2UgcmVj
ZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9CisgICAgc3RhdGlj
IElQQzo6U3RyaW5nUmVmZXJlbmNlIG5hbWUoKSB7IHJldHVybiBJUEM6OlN0cmluZ1JlZmVyZW5j
ZSgiSW50ZXJwcmV0S2V5RXZlbnQiKTsgfQorICAgIHN0YXRpYyBjb25zdCBib29sIGlzU3luYyA9
IHRydWU7CisKKyAgICB0eXBlZGVmIElQQzo6QXJndW1lbnRzMTxWZWN0b3I8V2ViQ29yZTo6S2V5
cHJlc3NDb21tYW5kPiY+IFJlcGx5OworICAgIGV4cGxpY2l0IEludGVycHJldEtleUV2ZW50KHVp
bnQzMl90IHR5cGUpCisgICAgICAgIDogbV9hcmd1bWVudHModHlwZSkKKyAgICB7CisgICAgfQor
CisgICAgY29uc3Qgc3RkOjp0dXBsZTx1aW50MzJfdD4gYXJndW1lbnRzKCkgY29uc3QKKyAgICB7
CisgICAgICAgIHJldHVybiBtX2FyZ3VtZW50czsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgc3Rk
Ojp0dXBsZTx1aW50MzJfdD4gbV9hcmd1bWVudHM7Cit9OworI2VuZGlmCisKKyNpZiBFTkFCTEUo
REVQUkVDQVRFRF9GRUFUVVJFKQorY2xhc3MgRGVwcmVjYXRlZE9wZXJhdGlvbiB7CitwdWJsaWM6
CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPElQQzo6RHVtbXlUeXBlPiBEZWNvZGVUeXBlOworCisg
ICAgc3RhdGljIElQQzo6U3RyaW5nUmVmZXJlbmNlIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1l
c3NhZ2VSZWNlaXZlck5hbWUoKTsgfQorICAgIHN0YXRpYyBJUEM6OlN0cmluZ1JlZmVyZW5jZSBu
YW1lKCkgeyByZXR1cm4gSVBDOjpTdHJpbmdSZWZlcmVuY2UoIkRlcHJlY2F0ZWRPcGVyYXRpb24i
KTsgfQorICAgIHN0YXRpYyBjb25zdCBib29sIGlzU3luYyA9IGZhbHNlOworCisgICAgZXhwbGlj
aXQgRGVwcmVjYXRlZE9wZXJhdGlvbihjb25zdCBJUEM6OkR1bW15VHlwZSYgZHVtbXkpCisgICAg
ICAgIDogbV9hcmd1bWVudHMoZHVtbXkpCisgICAgeworICAgIH0KKworICAgIGNvbnN0IHN0ZDo6
dHVwbGU8Y29uc3QgSVBDOjpEdW1teVR5cGUmPiBhcmd1bWVudHMoKSBjb25zdAorICAgIHsKKyAg
ICAgICAgcmV0dXJuIG1fYXJndW1lbnRzOworICAgIH0KKworcHJpdmF0ZToKKyAgICBzdGQ6OnR1
cGxlPGNvbnN0IElQQzo6RHVtbXlUeXBlJj4gbV9hcmd1bWVudHM7Cit9OworI2VuZGlmCisKKyNp
ZiBFTkFCTEUoRVhQRVJJTUVOVEFMX0ZFQVRVUkUpCitjbGFzcyBFeHBlcmltZW50YWxPcGVyYXRp
b24geworcHVibGljOgorICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxJUEM6OkR1bW15VHlwZT4gRGVj
b2RlVHlwZTsKKworICAgIHN0YXRpYyBJUEM6OlN0cmluZ1JlZmVyZW5jZSByZWNlaXZlck5hbWUo
KSB7IHJldHVybiBtZXNzYWdlUmVjZWl2ZXJOYW1lKCk7IH0KKyAgICBzdGF0aWMgSVBDOjpTdHJp
bmdSZWZlcmVuY2UgbmFtZSgpIHsgcmV0dXJuIElQQzo6U3RyaW5nUmVmZXJlbmNlKCJFeHBlcmlt
ZW50YWxPcGVyYXRpb24iKTsgfQorICAgIHN0YXRpYyBjb25zdCBib29sIGlzU3luYyA9IGZhbHNl
OworCisgICAgZXhwbGljaXQgRXhwZXJpbWVudGFsT3BlcmF0aW9uKGNvbnN0IElQQzo6RHVtbXlU
eXBlJiBkdW1teSkKKyAgICAgICAgOiBtX2FyZ3VtZW50cyhkdW1teSkKKyAgICB7CisgICAgfQor
CisgICAgY29uc3Qgc3RkOjp0dXBsZTxjb25zdCBJUEM6OkR1bW15VHlwZSY+IGFyZ3VtZW50cygp
IGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9hcmd1bWVudHM7CisgICAgfQorCitwcml2
YXRlOgorICAgIHN0ZDo6dHVwbGU8Y29uc3QgSVBDOjpEdW1teVR5cGUmPiBtX2FyZ3VtZW50czsK
K307CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViUGFnZQorfSAvLyBuYW1lc3BhY2UgTWVz
c2FnZXMKKworI2VuZGlmIC8vIChFTkFCTEUoV0VCS0lUMikgJiYgKE5FU1RFRF9NQVNURVJfQ09O
RElUSU9OIHx8IE1BU1RFUl9PUiAmJiBNQVNURVJfQU5EKSkKKworI2VuZGlmIC8vIFdlYlBhZ2VN
ZXNzYWdlc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvTWVz
c2FnZVJlY2VpdmVyLWV4cGVjdGVkLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0
Mi9NZXNzYWdlUmVjZWl2ZXItZXhwZWN0ZWQuY3BwCmluZGV4IDlmYmMxZWY0Y2I5YzQzYmE3MDNi
OGFjMGEzN2VkNGJkOGVhNWExMGQuLmYyNmZhNzA5NTkwYzRmNjE4NzViMGZkODkzYjNiMDU5MTVj
OTNiMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9NZXNzYWdl
UmVjZWl2ZXItZXhwZWN0ZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0
Mi9NZXNzYWdlUmVjZWl2ZXItZXhwZWN0ZWQuY3BwCkBAIC0xMDMsNyArMTAzLDcgQEAgYm9vbCBU
ZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpEZWxheWVkUmVwbHk6OnNlbmQoKQogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAotdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlV2ViUGFnZU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKK3ZvaWQgV2ViUGFnZTo6
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0g
TWVzc2FnZXM6OldlYlBhZ2U6OkxvYWRVUkw6Om5hbWUoKSkgewogICAgICAgICBJUEM6OmhhbmRs
ZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkxvYWRVUkw+KGRlY29kZXIsIHRoaXMsICZXZWJQ
YWdlOjpsb2FkVVJMKTsKQEAgLTE3OSwxMCArMTc5LDExIEBAIHZvaWQgV2ViUGFnZTo6ZGlkUmVj
ZWl2ZVdlYlBhZ2VNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXIm
IGRlCiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYKKyAgICBVTlVTRURfUEFSQU0oY29u
bmVjdGlvbik7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6
ZGlkUmVjZWl2ZVN5bmNXZWJQYWdlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24s
IElQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3Nh
Z2VFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQordm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlU3luY01l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBk
ZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2Rl
cikKIHsKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJQYWdl
OjpDcmVhdGVQbHVnaW46Om5hbWUoKSkgewogICAgICAgICBJUEM6OmhhbmRsZU1lc3NhZ2U8TWVz
c2FnZXM6OldlYlBhZ2U6OkNyZWF0ZVBsdWdpbj4oZGVjb2RlciwgKnJlcGx5RW5jb2RlciwgdGhp
cywgJldlYlBhZ2U6OmNyZWF0ZVBsdWdpbik7CkBAIC0yMTAsNiArMjExLDcgQEAgdm9pZCBXZWJQ
YWdlOjpkaWRSZWNlaXZlU3luY1dlYlBhZ2VNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiogY29ubmVj
dGlvbiwgSVBDOjpNZXMKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgorICAgIFVOVVNF
RF9QQVJBTShjb25uZWN0aW9uKTsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzX3VuaXR0ZXN0
LnB5IGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzX3VuaXR0ZXN0LnB5
CmluZGV4IDUxODE1MmNkMTEwODVlODg5ZDY2NzQzY2Q0MDMyZWQ0NzYyZWFmYTAuLmMyYzJjZGI0
MzYzMGI2NGEwYWE0MGE2ZTI1MTE1MWRkNjY2MDU4M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlc191bml0dGVzdC5weQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXNfdW5pdHRlc3QucHkKQEAgLTMxLDE1ICszMSwy
NCBAQCBwcmludCBvcy5nZXRjd2QoKQogCiBzY3JpcHRfZGlyZWN0b3J5ID0gb3MucGF0aC5kaXJu
YW1lKG9zLnBhdGgucmVhbHBhdGgoX19maWxlX18pKQogCit3aXRoIG9wZW4ob3MucGF0aC5qb2lu
KHNjcmlwdF9kaXJlY3RvcnksICd0ZXN0LWxlZ2FjeS1tZXNzYWdlcy5pbicpKSBhcyBmaWxlOgor
ICAgIF9sZWdhY3lfbWVzc2FnZXNfZmlsZV9jb250ZW50cyA9IGZpbGUucmVhZCgpCisKIHdpdGgg
b3Blbihvcy5wYXRoLmpvaW4oc2NyaXB0X2RpcmVjdG9yeSwgJ3Rlc3QtbWVzc2FnZXMuaW4nKSkg
YXMgZmlsZToKICAgICBfbWVzc2FnZXNfZmlsZV9jb250ZW50cyA9IGZpbGUucmVhZCgpCiAKK3dp
dGggb3Blbihvcy5wYXRoLmpvaW4oc2NyaXB0X2RpcmVjdG9yeSwgJ0xlZ2FjeU1lc3NhZ2VzLWV4
cGVjdGVkLmgnKSkgYXMgZmlsZToKKyAgICBfZXhwZWN0ZWRfbGVnYWN5X3JlY2VpdmVyX2hlYWRl
ciA9IGZpbGUucmVhZCgpCisKIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oc2NyaXB0X2RpcmVjdG9y
eSwgJ01lc3NhZ2VzLWV4cGVjdGVkLmgnKSkgYXMgZmlsZToKLSAgICBfZXhwZWN0ZWRfaGVhZGVy
ID0gZmlsZS5yZWFkKCkKKyAgICBfZXhwZWN0ZWRfcmVjZWl2ZXJfaGVhZGVyID0gZmlsZS5yZWFk
KCkKIAogd2l0aCBvcGVuKG9zLnBhdGguam9pbihzY3JpcHRfZGlyZWN0b3J5LCAnTWVzc2FnZVJl
Y2VpdmVyLWV4cGVjdGVkLmNwcCcpKSBhcyBmaWxlOgogICAgIF9leHBlY3RlZF9yZWNlaXZlcl9p
bXBsZW1lbnRhdGlvbiA9IGZpbGUucmVhZCgpCiAKK3dpdGggb3Blbihvcy5wYXRoLmpvaW4oc2Ny
aXB0X2RpcmVjdG9yeSwgJ0xlZ2FjeU1lc3NhZ2VSZWNlaXZlci1leHBlY3RlZC5jcHAnKSkgYXMg
ZmlsZToKKyAgICBfZXhwZWN0ZWRfbGVnYWN5X3JlY2VpdmVyX2ltcGxlbWVudGF0aW9uID0gZmls
ZS5yZWFkKCkKKwogX2V4cGVjdGVkX3Jlc3VsdHMgPSB7CiAgICAgJ25hbWUnOiAnV2ViUGFnZScs
CiAgICAgJ2NvbmRpdGlvbnMnOiAoJyhFTkFCTEUoV0VCS0lUMikgJiYgKE5FU1RFRF9NQVNURVJf
Q09ORElUSU9OIHx8IE1BU1RFUl9PUiAmJiBNQVNURVJfQU5EKSknKSwKQEAgLTIxOCw2ICsyMjcs
NyBAQCBfZXhwZWN0ZWRfcmVzdWx0cyA9IHsKIGNsYXNzIE1lc3NhZ2VzVGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSk6CiAgICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgICBzZWxmLnJlY2VpdmVyID0g
cGFyc2VyLnBhcnNlKFN0cmluZ0lPKF9tZXNzYWdlc19maWxlX2NvbnRlbnRzKSkKKyAgICAgICAg
c2VsZi5sZWdhY3lfcmVjZWl2ZXIgPSBwYXJzZXIucGFyc2UoU3RyaW5nSU8oX2xlZ2FjeV9tZXNz
YWdlc19maWxlX2NvbnRlbnRzKSkKIAogCiBjbGFzcyBQYXJzaW5nVGVzdChNZXNzYWdlc1Rlc3Qp
OgpAQCAtMjUwLDYgKzI2MCwxMiBAQCBjbGFzcyBQYXJzaW5nVGVzdChNZXNzYWdlc1Rlc3QpOgog
ICAgICAgICBmb3IgaW5kZXgsIG1lc3NhZ2UgaW4gZW51bWVyYXRlKHNlbGYucmVjZWl2ZXIubWVz
c2FnZXMpOgogICAgICAgICAgICAgc2VsZi5jaGVja19tZXNzYWdlKG1lc3NhZ2UsIF9leHBlY3Rl
ZF9yZXN1bHRzWydtZXNzYWdlcyddW2luZGV4XSkKIAorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cyhzZWxmLmxlZ2FjeV9yZWNlaXZlci5uYW1lLCBfZXhwZWN0ZWRfcmVzdWx0c1snbmFtZSddKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLmxlZ2FjeV9yZWNlaXZlci5jb25kaXRpb24s
IF9leHBlY3RlZF9yZXN1bHRzWydjb25kaXRpb25zJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKGxlbihzZWxmLmxlZ2FjeV9yZWNlaXZlci5tZXNzYWdlcyksIGxlbihfZXhwZWN0ZWRfcmVz
dWx0c1snbWVzc2FnZXMnXSkpCisgICAgICAgIGZvciBpbmRleCwgbWVzc2FnZSBpbiBlbnVtZXJh
dGUoc2VsZi5sZWdhY3lfcmVjZWl2ZXIubWVzc2FnZXMpOgorICAgICAgICAgICAgc2VsZi5jaGVj
a19tZXNzYWdlKG1lc3NhZ2UsIF9leHBlY3RlZF9yZXN1bHRzWydtZXNzYWdlcyddW2luZGV4XSkK
KwogCiAKIGNsYXNzIEdlbmVyYXRlZEZpbGVDb250ZW50c1Rlc3QodW5pdHRlc3QuVGVzdENhc2Up
OgpAQCAtMjY1LDEyICsyODEsMTggQEAgY2xhc3MgR2VuZXJhdGVkRmlsZUNvbnRlbnRzVGVzdCh1
bml0dGVzdC5UZXN0Q2FzZSk6CiAKIGNsYXNzIEhlYWRlclRlc3QoR2VuZXJhdGVkRmlsZUNvbnRl
bnRzVGVzdCk6CiAgICAgZGVmIHRlc3RfaGVhZGVyKHNlbGYpOgorICAgICAgICBsZWdhY3lfZmls
ZV9jb250ZW50cyA9IG1lc3NhZ2VzLmdlbmVyYXRlX21lc3NhZ2VzX2hlYWRlcihTdHJpbmdJTyhf
bGVnYWN5X21lc3NhZ2VzX2ZpbGVfY29udGVudHMpKQorICAgICAgICBzZWxmLmFzc2VydEdlbmVy
YXRlZEZpbGVDb250ZW50c0VxdWFsKGxlZ2FjeV9maWxlX2NvbnRlbnRzLCBfZXhwZWN0ZWRfbGVn
YWN5X3JlY2VpdmVyX2hlYWRlcikKKwogICAgICAgICBmaWxlX2NvbnRlbnRzID0gbWVzc2FnZXMu
Z2VuZXJhdGVfbWVzc2FnZXNfaGVhZGVyKFN0cmluZ0lPKF9tZXNzYWdlc19maWxlX2NvbnRlbnRz
KSkKLSAgICAgICAgc2VsZi5hc3NlcnRHZW5lcmF0ZWRGaWxlQ29udGVudHNFcXVhbChmaWxlX2Nv
bnRlbnRzLCBfZXhwZWN0ZWRfaGVhZGVyKQorICAgICAgICBzZWxmLmFzc2VydEdlbmVyYXRlZEZp
bGVDb250ZW50c0VxdWFsKGZpbGVfY29udGVudHMsIF9leHBlY3RlZF9yZWNlaXZlcl9oZWFkZXIp
CiAKIAogY2xhc3MgUmVjZWl2ZXJJbXBsZW1lbnRhdGlvblRlc3QoR2VuZXJhdGVkRmlsZUNvbnRl
bnRzVGVzdCk6CiAgICAgZGVmIHRlc3RfcmVjZWl2ZXJfaW1wbGVtZW50YXRpb24oc2VsZik6Cisg
ICAgICAgIGxlZ2FjeV9maWxlX2NvbnRlbnRzID0gbWVzc2FnZXMuZ2VuZXJhdGVfbWVzc2FnZV9o
YW5kbGVyKFN0cmluZ0lPKF9sZWdhY3lfbWVzc2FnZXNfZmlsZV9jb250ZW50cykpCisgICAgICAg
IHNlbGYuYXNzZXJ0R2VuZXJhdGVkRmlsZUNvbnRlbnRzRXF1YWwobGVnYWN5X2ZpbGVfY29udGVu
dHMsIF9leHBlY3RlZF9sZWdhY3lfcmVjZWl2ZXJfaW1wbGVtZW50YXRpb24pCisKICAgICAgICAg
ZmlsZV9jb250ZW50cyA9IG1lc3NhZ2VzLmdlbmVyYXRlX21lc3NhZ2VfaGFuZGxlcihTdHJpbmdJ
TyhfbWVzc2FnZXNfZmlsZV9jb250ZW50cykpCiAgICAgICAgIHNlbGYuYXNzZXJ0R2VuZXJhdGVk
RmlsZUNvbnRlbnRzRXF1YWwoZmlsZV9jb250ZW50cywgX2V4cGVjdGVkX3JlY2VpdmVyX2ltcGxl
bWVudGF0aW9uKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIv
dGVzdC1sZWdhY3ktbWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIv
dGVzdC1sZWdhY3ktbWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTExNzBjNGFjNjk2MDdjNjNiOTg3
NTE2N2VhZGM2YmFkOGUxMzBkYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1Nj
cmlwdHMvd2Via2l0Mi90ZXN0LWxlZ2FjeS1tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDc1IEBACisj
IENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisj
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoV0VCS0lU
MikKKyNpZiBORVNURURfTUFTVEVSX0NPTkRJVElPTiB8fCBNQVNURVJfT1IgJiYgTUFTVEVSX0FO
RAorCittZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKKyAgICBMb2FkVVJMKFN0
cmluZyB1cmwpCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyAgICBMb2FkU29tZXRoaW5nKFN0
cmluZyB1cmwpCisjaWYgTkVTVEVEX01FU1NBR0VfQ09ORElUSU9OIHx8IFNPTUVfT1RIRVJfTUVT
U0FHRV9DT05ESVRJT04KKyAgICBUb3VjaEV2ZW50KFdlYktpdDo6V2ViVG91Y2hFdmVudCBldmVu
dCkKKyNlbmRpZgorI2lmIE5FU1RFRF9NRVNTQUdFX0NPTkRJVElPTiAmJiBTT01FX09USEVSX01F
U1NBR0VfQ09ORElUSU9OCisgICAgQWRkRXZlbnQoV2ViS2l0OjpXZWJUb3VjaEV2ZW50IGV2ZW50
KQorI2VuZGlmCisgICAgTG9hZFNvbWV0aGluZ0Vsc2UoU3RyaW5nIHVybCkKKyNlbmRpZgorICAg
IERpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbih1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBsaXN0
ZW5lcklELCB1aW50MzJfdCBwb2xpY3lBY3Rpb24pCisgICAgQ2xvc2UoKQorCisgICAgUHJlZmVy
ZW5jZXNEaWRDaGFuZ2UoV2ViS2l0OjpXZWJQcmVmZXJlbmNlc1N0b3JlIHN0b3JlKQorICAgIFNl
bmREb3VibGVBbmRGbG9hdChkb3VibGUgZCwgZmxvYXQgZikKKyAgICBTZW5kSW50cyhWZWN0b3I8
dWludDY0X3Q+IGludHMsIFZlY3RvcjxWZWN0b3I8dWludDY0X3Q+PiBpbnRWZWN0b3JzKQorCisg
ICAgQ3JlYXRlUGx1Z2luKHVpbnQ2NF90IHBsdWdpbkluc3RhbmNlSUQsIFdlYktpdDo6UGx1Z2lu
OjpQYXJhbWV0ZXJzIHBhcmFtZXRlcnMpIC0+IChib29sIHJlc3VsdCkKKyAgICBSdW5KYXZhU2Ny
aXB0QWxlcnQodWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG1lc3NhZ2UpIC0+ICgpCisgICAgR2V0
UGx1Z2lucyhib29sIHJlZnJlc2gpIC0+IChWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4gcGx1
Z2lucykKKyAgICBHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbihTdHJpbmcgcGx1Z2luUGF0aCkg
LT4gKElQQzo6Q29ubmVjdGlvbjo6SGFuZGxlIGNvbm5lY3Rpb25IYW5kbGUpIERlbGF5ZWQKKwor
ICAgIFRlc3RNdWx0aXBsZUF0dHJpYnV0ZXMoKSAtPiAoKSBXYW50c0Nvbm5lY3Rpb24gRGVsYXll
ZAorCisgICAgVGVzdFBhcmFtZXRlckF0dHJpYnV0ZXMoW0F0dHJpYnV0ZU9uZSBBdHRyaWJ1dGVU
d29dIHVpbnQ2NF90IGZvbywgZG91YmxlIGJhciwgW0F0dHJpYnV0ZVRocmVlXSBkb3VibGUgYmF6
KQorCisgICAgVGVtcGxhdGVUZXN0KEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnBhaXI8U3RyaW5nLCB1
aW50NjRfdD4+IGEpCisKKyNpZiBQTEFURk9STShNQUMpCisgICAgRGlkQ3JlYXRlV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24oSVBDOjpNYWNoUG9ydCBjb25uZWN0aW9uSWRlbnRpZmllcikKKyNlbmRpZgor
CisjaWYgUExBVEZPUk0oTUFDKQorICAgICMgS2V5Ym9hcmQgc3VwcG9ydAorICAgIEludGVycHJl
dEtleUV2ZW50KHVpbnQzMl90IHR5cGUpIC0+IChWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21t
YW5kPiBjb21tYW5kTmFtZSkKKyNlbmRpZgorCisjaWYgRU5BQkxFKERFUFJFQ0FURURfRkVBVFVS
RSkKKyAgICBEZXByZWNhdGVkT3BlcmF0aW9uKElQQzo6RHVtbXlUeXBlIGR1bW15KQorI2VuZGlm
CisKKyNpZiBFTkFCTEUoRVhQRVJJTUVOVEFMX0ZFQVRVUkUpCisgICAgRXhwZXJpbWVudGFsT3Bl
cmF0aW9uKElQQzo6RHVtbXlUeXBlIGR1bW15KQorI2VuZGlmCit9CisKKyNlbmRpZgorI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvdGVzdC1tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi90ZXN0LW1lc3NhZ2VzLmluCmlu
ZGV4IDExMTcwYzRhYzY5NjA3YzYzYjk4NzUxNjdlYWRjNmJhZDhlMTMwZGMuLmRkZDBkOTY1YmE2
ZGQ2NWVkMTFmMjcwMmFmM2Q2MDJjYjI4NTRkZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NjcmlwdHMvd2Via2l0Mi90ZXN0LW1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1Nj
cmlwdHMvd2Via2l0Mi90ZXN0LW1lc3NhZ2VzLmluCkBAIC0yMyw3ICsyMyw3IEBACiAjaWYgRU5B
QkxFKFdFQktJVDIpCiAjaWYgTkVTVEVEX01BU1RFUl9DT05ESVRJT04gfHwgTUFTVEVSX09SICYm
IE1BU1RFUl9BTkQKIAotbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CittZXNz
YWdlcyAtPiBXZWJQYWdlIHsKICAgICBMb2FkVVJMKFN0cmluZyB1cmwpCiAjaWYgRU5BQkxFKFRP
VUNIX0VWRU5UUykKICAgICBMb2FkU29tZXRoaW5nKFN0cmluZyB1cmwpCg==
</data>
<flag name="review"
          id="244288"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>