<?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>215883</bug_id>
          
          <creation_ts>2020-08-27 02:21:02 -0700</creation_ts>
          <short_desc>[Linux] Web Inspector: show per thread cpu usage</short_desc>
          <delta_ts>2020-09-01 01:55:13 -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>WebKitGTK</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>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aperez</cc>
    
    <cc>benjamin</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1683317</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-08-27 02:21:02 -0700</bug_when>
    <thetext>We only provide global cpu usage to the inspector, we don&apos;t exclude debugging threads (the resource usage and sampling profiler threads) and we don&apos;t classify the threads (Main, WebKit, others).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683318</commentid>
    <comment_count>1</comment_count>
      <attachid>407386</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-08-27 02:27:52 -0700</bug_when>
    <thetext>Created attachment 407386
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683333</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-08-27 03:37:29 -0700</bug_when>
    <thetext>This is failing in mac debug with the following error I don&apos;t understand:

ERROR: WebCore has a weak external symbol in it (/Volumes/Data/worker/macOS-Mojave-Debug-Build-EWS/build/WebKitBuild/Debug/WebCore.framework/Versions/A/WebCore)
ERROR: A weak external symbol is generated when a symbol is defined in multiple compilation units and is also marked as being exported from the library.
ERROR: A common cause of weak external symbols is when an inline function is listed in the linker export file.
ERROR: symbol __ZN3JSC16SamplingProfiler6threadEv</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1684100</commentid>
    <comment_count>3</comment_count>
      <attachid>407594</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-08-31 02:20:24 -0700</bug_when>
    <thetext>Created attachment 407594
Try to fix mac debug builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1684232</commentid>
    <comment_count>4</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-08-31 13:33:35 -0700</bug_when>
    <thetext>Shouldn&apos;t this be tagged [GTK][WPE]? Or maybe even [Linux]… the code
touched by this patch is not specific to the GTK port 🤔️</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1684405</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-09-01 01:55:13 -0700</bug_when>
    <thetext>Committed r266388: &lt;https://trac.webkit.org/changeset/266388&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407386</attachid>
            <date>2020-08-27 02:27:52 -0700</date>
            <delta_ts>2020-08-31 02:20:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-threads-cpu-usage.diff</filename>
            <type>text/plain</type>
            <size>15724</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDk4Njk5YTI2MWQ0MS4uYjc1YWQ1MmYzYjYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMC0wOC0yNyAgQ2Fy
bG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10g
V2ViIEluc3BlY3Rvcjogc2hvdyBwZXIgdGhyZWFkIGNwdSB1c2FnZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1ODgzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHBsYXRmb3JtIHNwZWNpZmlj
IGdldHRlciBtYWNoVGhyZWFkKCkgYW5kIGFkZCB0aHJlYWQoKSB0byByZXR1cm4gdGhlIFRocmVh
ZCBpbnN0ZWFkLiBUaGUgY2FsbGVyIGtub3dzIGhvdworICAgICAgICB0byBnZXQgdGhlIG1hY2hU
aHJlYWQgb3IgaWQgZnJvbSBhIFRocmVhZC4KKworICAgICAgICAqIHJ1bnRpbWUvU2FtcGxpbmdQ
cm9maWxlci5jcHA6CisgICAgICAgIChKU0M6OlNhbXBsaW5nUHJvZmlsZXI6OnJlcG9ydFRvcEJ5
dGVjb2Rlcyk6CisgICAgICAgIChKU0M6OlNhbXBsaW5nUHJvZmlsZXI6Om1hY2hUaHJlYWQpOiBE
ZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5oOgorICAgICAgICAo
SlNDOjpTYW1wbGluZ1Byb2ZpbGVyOjp0aHJlYWQpOgorCiAyMDIwLTA4LTI0ICBLZWl0aCBNaWxs
ZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIERGRyBzaG91bGQgYWx3YXlz
IHJ1biBDRkcgU2ltcGxpZmljYXRpb24gYWZ0ZXIgQ29uc3RhbnQgRm9sZGluZy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAKaW5kZXgg
NzE3NjUwMzk3MTc0Li41NDk2N2Y3MjA5MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCkBAIC0xMTQwLDE3ICsxMTQwLDYgQEAg
dm9pZCBTYW1wbGluZ1Byb2ZpbGVyOjpyZXBvcnRUb3BCeXRlY29kZXMoUHJpbnRTdHJlYW0mIG91
dCkKICAgICAgICAgfQogICAgIH0KIH0KLQotI2lmIE9TKERBUldJTikKLW1hY2hfcG9ydF90IFNh
bXBsaW5nUHJvZmlsZXI6Om1hY2hUaHJlYWQoKQotewotICAgIGlmICghbV90aHJlYWQpCi0gICAg
ICAgIHJldHVybiBNQUNIX1BPUlRfTlVMTDsKLQotICAgIHJldHVybiBtX3RocmVhZC0+bWFjaFRo
cmVhZCgpOwotfQotI2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlIEpTQwogCiBuYW1lc3BhY2UgV1RG
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJv
ZmlsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIu
aAppbmRleCAxOTc1MDg4Y2JjOWUuLjg3NWFiYWFjY2IwNSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuaApAQCAtMTkzLDkgKzE5Myw3IEBA
IHB1YmxpYzoKICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHJlcG9ydFRvcEJ5dGVjb2Rlcygp
OwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgcmVwb3J0VG9wQnl0ZWNvZGVzKFByaW50U3Ry
ZWFtJik7CiAKLSNpZiBPUyhEQVJXSU4pCi0gICAgSlNfRVhQT1JUX1BSSVZBVEUgbWFjaF9wb3J0
X3QgbWFjaFRocmVhZCgpOwotI2VuZGlmCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgVGhyZWFkKiB0
aHJlYWQoKSB7IHJldHVybiBtX3RocmVhZC5nZXQoKTsgfQogCiBwcml2YXRlOgogICAgIHZvaWQg
Y3JlYXRlVGhyZWFkSWZOZWNlc3NhcnkoY29uc3QgQWJzdHJhY3RMb2NrZXImKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggZGZl
ZTRkN2ZlODE4Li5mM2YxZTRkNzBiM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjAtMDgtMjcg
IENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtH
VEtdIFdlYiBJbnNwZWN0b3I6IHNob3cgcGVyIHRocmVhZCBjcHUgdXNhZ2UKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTg4MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBBUEkgdG8gZ2V0IHRoZSB0
aHJlYWQgSUQgaW4gTGludXggcGxhdGZvcm0uCisKKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nLmNw
cDoKKyAgICAgICAgKFdURjo6VGhyZWFkOjppbml0aWFsaXplSW5UaHJlYWQpOgorICAgICAgICAq
IHd0Zi9UaHJlYWRpbmcuaDoKKyAgICAgICAgKFdURjo6VGhyZWFkOjppZCBjb25zdCk6CisgICAg
ICAgICogd3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaDoKKyAgICAgICAgKiB3dGYvcG9zaXgvVGhy
ZWFkaW5nUE9TSVguY3BwOgorICAgICAgICAoV1RGOjpUaHJlYWQ6OmN1cnJlbnRJRCk6CisKIDIw
MjAtMDgtMjYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtHVEtdIEluY2x1ZGUgdGhlIHJ1biBsb29wIHNvdXJjZSBuYW1lIGluIGZyYW1lIHJl
bmRlcmluZyB0aW1lbGluZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nLmNw
cCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5jcHAKaW5kZXggMzMxY2IzZTNmMTBhLi41ZDdk
NmQzYjNkZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5jcHAKKysrIGIv
U291cmNlL1dURi93dGYvVGhyZWFkaW5nLmNwcApAQCAtMTQ2LDYgKzE0NiwxMCBAQCB2b2lkIFRo
cmVhZDo6aW5pdGlhbGl6ZUluVGhyZWFkKCkKICAgICAgICAgbV9jdXJyZW50QXRvbVN0cmluZ1Rh
YmxlID0gJnNoYXJlZFN0cmluZ1RhYmxlLmdldCgpOwogICAgIH0KICNlbmRpZgorCisjaWYgT1Mo
TElOVVgpCisgICAgbV9pZCA9IGN1cnJlbnRJRCgpOworI2VuZGlmCiB9CiAKIHZvaWQgVGhyZWFk
OjplbnRyeVBvaW50KE5ld1RocmVhZENvbnRleHQqIG5ld1RocmVhZENvbnRleHQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuaCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGlu
Zy5oCmluZGV4IDRiNTA5NWYzNjFiYS4uNzZmMDI4Y2ZhNzAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9UaHJlYWRpbmcuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuaApAQCAt
MTU3LDYgKzE1NywxMCBAQCBwdWJsaWM6CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHNpemVfdCBn
ZXRSZWdpc3RlcnMoUGxhdGZvcm1SZWdpc3RlcnMmKTsKIAogI2lmIFVTRShQVEhSRUFEUykKKyNp
ZiBPUyhMSU5VWCkKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFRocmVhZElkZW50aWZp
ZXIgY3VycmVudElEKCk7CisgICAgVGhyZWFkSWRlbnRpZmllciBpZCgpIGNvbnN0IHsgcmV0dXJu
IG1faWQ7IH0KKyNlbmRpZgogICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29sIHNpZ25hbChpbnQg
c2lnbmFsTnVtYmVyKTsKICNlbmRpZgogCkBAIC0zMjksNiArMzMzLDkgQEAgcHJvdGVjdGVkOgog
I2VsaWYgT1MoREFSV0lOKQogICAgIG1hY2hfcG9ydF90IG1fcGxhdGZvcm1UaHJlYWQgeyBNQUNI
X1BPUlRfTlVMTCB9OwogI2VsaWYgVVNFKFBUSFJFQURTKQorI2lmIE9TKExJTlVYKQorICAgIFRo
cmVhZElkZW50aWZpZXIgbV9pZCB7IDAgfTsKKyNlbmRpZgogICAgIFBsYXRmb3JtUmVnaXN0ZXJz
KiBtX3BsYXRmb3JtUmVnaXN0ZXJzIHsgbnVsbHB0ciB9OwogICAgIHVuc2lnbmVkIG1fc3VzcGVu
ZENvdW50IHsgMCB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRp
bmdQcmltaXRpdmVzLmggYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmgKaW5k
ZXggNmQ2OTlmODE2YTg3Li5mZDU1OWIyNDJkZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L1RocmVhZGluZ1ByaW1pdGl2ZXMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQcmlt
aXRpdmVzLmgKQEAgLTU3LDYgKzU3LDkgQEAgdXNpbmcgUGxhdGZvcm1UaHJlYWRIYW5kbGUgPSBw
dGhyZWFkX3Q7CiB1c2luZyBQbGF0Zm9ybU11dGV4ID0gcHRocmVhZF9tdXRleF90OwogdXNpbmcg
UGxhdGZvcm1Db25kaXRpb24gPSBwdGhyZWFkX2NvbmRfdDsKIHVzaW5nIFRocmVhZFNwZWNpZmlj
S2V5ID0gcHRocmVhZF9rZXlfdDsKKyNpZiBPUyhMSU5VWCkKK3VzaW5nIFRocmVhZElkZW50aWZp
ZXIgPSBwaWRfdDsKKyNlbmRpZgogI2VsaWYgT1MoV0lORE9XUykKIHVzaW5nIFRocmVhZElkZW50
aWZpZXIgPSB1aW50MzJfdDsKIHVzaW5nIFBsYXRmb3JtVGhyZWFkSGFuZGxlID0gSEFORExFOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvcG9zaXgvVGhyZWFkaW5nUE9TSVguY3BwIGIvU291
cmNlL1dURi93dGYvcG9zaXgvVGhyZWFkaW5nUE9TSVguY3BwCmluZGV4IGU2YmJiNWE5YmU1MS4u
MGY2ODMyN2U2ODQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9wb3NpeC9UaHJlYWRpbmdQ
T1NJWC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvcG9zaXgvVGhyZWFkaW5nUE9TSVguY3BwCkBA
IC02OCw2ICs2OCwxMCBAQAogI2luY2x1ZGUgPG1hY2gvdGhyZWFkX3N3aXRjaC5oPgogI2VuZGlm
CiAKKyNpZiBPUyhMSU5VWCkKKyNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgorI2VuZGlmCisKIG5h
bWVzcGFjZSBXVEYgewogCiBzdGF0aWMgTG9jayBnbG9iYWxTdXNwZW5kTG9jazsKQEAgLTE4Nyw2
ICsxOTEsMTMgQEAgdm9pZCBUaHJlYWQ6OmluaXRpYWxpemVQbGF0Zm9ybVRocmVhZGluZygpCiAj
ZW5kaWYKIH0KIAorI2lmIE9TKExJTlVYKQorVGhyZWFkSWRlbnRpZmllciBUaHJlYWQ6OmN1cnJl
bnRJRCgpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRocmVhZElkZW50aWZpZXI+KHN5c2Nh
bGwoU1lTX2dldHRpZCkpOworfQorI2VuZGlmCisKIHZvaWQgVGhyZWFkOjppbml0aWFsaXplQ3Vy
cmVudFRocmVhZEV2ZW5JZk5vbldURkNyZWF0ZWQoKQogewogI2lmICFPUyhEQVJXSU4pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggZjkyNTkzNmM1YjQ5Li5iNTgxNWRjZjE2MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMyBAQAorMjAyMC0wOC0yNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxp
YS5jb20+CisKKyAgICAgICAgW0dUS10gV2ViIEluc3BlY3Rvcjogc2hvdyBwZXIgdGhyZWFkIGNw
dSB1c2FnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE1ODgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
R2V0IHBlciB0aHJlYWQgQ1BVIHVzYWdlIGFuZCBpbmZvcm1hdGlvbiB0byBmaWxsIFJlc291cmNl
VXNhZ2VEYXRhIGluIExpbnV4LgorCisgICAgICAgICogcGFnZS9SZXNvdXJjZVVzYWdlVGhyZWFk
Lmg6CisgICAgICAgICogcGFnZS9jb2NvYS9SZXNvdXJjZVVzYWdlVGhyZWFkQ29jb2EubW06Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVVzYWdlVGhyZWFkOjpwbGF0Zm9ybVNhdmVTdGF0ZUJl
Zm9yZVN0YXJ0aW5nKTogVXBkYXRlIHRvIG5ldyBBUEkgaW4gU2FtcGxpbmdQcm9maWxlci4KKyAg
ICAgICAgKiBwYWdlL2xpbnV4L1Jlc291cmNlVXNhZ2VUaHJlYWRMaW51eC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZVVzYWdlVGhyZWFkOjpwbGF0Zm9ybVNhdmVTdGF0ZUJlZm9yZVN0
YXJ0aW5nKTogSW5pdGlhbGl6ZSBtX3NhbXBsaW5nUHJvZmlsZXJUaHJlYWRJRC4KKyAgICAgICAg
KFdlYkNvcmU6OnRocmVhZEluZm9NYXApOgorICAgICAgICAoV2ViQ29yZTo6dGhyZWFkQ1BVVXNh
Z2UpOgorICAgICAgICAoV2ViQ29yZTo6Y29sbGVjdENQVVVzYWdlKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlVXNhZ2VUaHJlYWQ6OnBsYXRmb3JtQ29sbGVjdENQVURhdGEpOgorICAgICAg
ICAoV2ViQ29yZTo6Y3B1VXNhZ2UpOiBEZWxldGVkLgorCiAyMDIwLTA4LTI2ICBDYXJsb3MgR2Fy
Y2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBJbmNsdWRl
IHRoZSBydW4gbG9vcCBzb3VyY2UgbmFtZSBpbiBmcmFtZSByZW5kZXJpbmcgdGltZWxpbmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzb3VyY2VVc2FnZVRocmVhZC5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9SZXNvdXJjZVVzYWdlVGhyZWFkLmgKaW5kZXggNGFjNmEzZjMxMzM3
Li40NzI5N2Q5OGFjYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzb3VyY2VV
c2FnZVRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzb3VyY2VVc2FnZVRocmVh
ZC5oCkBAIC04OCw4ICs4OCwxMiBAQCBwcml2YXRlOgogICAgIC8vIFRoZXkgc2hvdWxkIGVuc3Vy
ZSB0aGVpciB1c2Ugb2YgdGhlIFZNIGlzIHRocmVhZCBzYWZlLgogICAgIEpTQzo6Vk0qIG1fdm0g
eyBudWxscHRyIH07CiAKLSNpZiBFTkFCTEUoU0FNUExJTkdfUFJPRklMRVIpICYmIE9TKERBUldJ
TikKKyNpZiBFTkFCTEUoU0FNUExJTkdfUFJPRklMRVIpCisjaWYgT1MoREFSV0lOKQogICAgIG1h
Y2hfcG9ydF90IG1fc2FtcGxpbmdQcm9maWxlck1hY2hUaHJlYWQgeyBNQUNIX1BPUlRfTlVMTCB9
OworI2VsaWYgT1MoTElOVVgpCisgICAgcGlkX3QgbV9zYW1wbGluZ1Byb2ZpbGVyVGhyZWFkSUQg
eyAwIH07CisjZW5kaWYKICNlbmRpZgogCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9jb2NvYS9SZXNvdXJjZVVzYWdlVGhyZWFkQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2NvY29hL1Jlc291cmNlVXNhZ2VUaHJlYWRDb2NvYS5tbQppbmRleCBiZDBjMTdmNTA3ZmEu
LmE2NTBlNTU4ZDc2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9SZXNv
dXJjZVVzYWdlVGhyZWFkQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9S
ZXNvdXJjZVVzYWdlVGhyZWFkQ29jb2EubW0KQEAgLTEzNiw3ICsxMzYsMTIgQEAgc3RhdGljIFZl
Y3RvcjxUaHJlYWRJbmZvPiB0aHJlYWRJbmZvcygpCiB2b2lkIFJlc291cmNlVXNhZ2VUaHJlYWQ6
OnBsYXRmb3JtU2F2ZVN0YXRlQmVmb3JlU3RhcnRpbmcoKQogewogI2lmIEVOQUJMRShTQU1QTElO
R19QUk9GSUxFUikKLSAgICBtX3NhbXBsaW5nUHJvZmlsZXJNYWNoVGhyZWFkID0gbV92bS0+c2Ft
cGxpbmdQcm9maWxlcigpID8gbV92bS0+c2FtcGxpbmdQcm9maWxlcigpLT5tYWNoVGhyZWFkKCkg
OiBNQUNIX1BPUlRfTlVMTDsKKyAgICBtX3NhbXBsaW5nUHJvZmlsZXJNYWNoVGhyZWFkID0gTUFD
SF9QT1JUX05VTEw7CisKKyAgICBpZiAoYXV0byogcHJvZmlsZXIgPSBtX3ZtLT5zYW1wbGluZ1By
b2ZpbGVyKCkpIHsKKyAgICAgICAgaWYgKGF1dG8qIHRocmVhZCA9IHByb2ZpbGVyLT50aHJlYWQo
KSkKKyAgICAgICAgICAgIG1fc2FtcGxpbmdQcm9maWxlck1hY2hUaHJlYWQgPSB0aHJlYWQtPm1h
Y2hUaHJlYWQoKTsKKyAgICB9CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9saW51eC9SZXNvdXJjZVVzYWdlVGhyZWFkTGludXguY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9saW51eC9SZXNvdXJjZVVzYWdlVGhyZWFkTGludXguY3BwCmluZGV4IGM0NDYwYWZi
NjFhNy4uYTBkNDE4N2E3MjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2xpbnV4
L1Jlc291cmNlVXNhZ2VUaHJlYWRMaW51eC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9s
aW51eC9SZXNvdXJjZVVzYWdlVGhyZWFkTGludXguY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5MLgorICogQ29weXJpZ2h0IChDKSAyMDE3LCAy
MDIwIElnYWxpYSBTLkwuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMjksNyArMjksOSBAQAogCiAjaWYg
RU5BQkxFKFJFU09VUkNFX1VTQUdFKSAmJiBPUyhMSU5VWCkKIAorI2luY2x1ZGUgIldvcmtlclRo
cmVhZC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0dDQWN0aXZpdHlDYWxsYmFjay5oPgor
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NhbXBsaW5nUHJvZmlsZXIuaD4KICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9WTS5oPgogI2luY2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSA8ZmNudGwu
aD4KQEAgLTM4LDYgKzQwLDcgQEAKICNpbmNsdWRlIDxzeXMvc3RhdC5oPgogI2luY2x1ZGUgPHN5
cy90eXBlcy5oPgogI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcu
aD4KICNpbmNsdWRlIDx3dGYvbGludXgvQ3VycmVudFByb2Nlc3NNZW1vcnlTdGF0dXMuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtOTAsMTUgKzkzLDQxIEBAIHN0YXRpYyBmbG9hdCBjcHVQ
ZXJpb2QoKQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4ocGVyaW9kKSAvIGNwdUNvdW50
OwogfQogCi1zdGF0aWMgZmxvYXQgY3B1VXNhZ2UoKQordm9pZCBSZXNvdXJjZVVzYWdlVGhyZWFk
OjpwbGF0Zm9ybVNhdmVTdGF0ZUJlZm9yZVN0YXJ0aW5nKCkKIHsKLSAgICBmbG9hdCBwZXJpb2Qg
PSBjcHVQZXJpb2QoKTsKLSAgICBpZiAoIXBlcmlvZCkKLSAgICAgICAgcmV0dXJuIC0xOworI2lm
IEVOQUJMRShTQU1QTElOR19QUk9GSUxFUikKKyAgICBtX3NhbXBsaW5nUHJvZmlsZXJUaHJlYWRJ
RCA9IDA7CisKKyAgICBpZiAoYXV0byogcHJvZmlsZXIgPSBtX3ZtLT5zYW1wbGluZ1Byb2ZpbGVy
KCkpIHsKKyAgICAgICAgaWYgKGF1dG8qIHRocmVhZCA9IHByb2ZpbGVyLT50aHJlYWQoKSkKKyAg
ICAgICAgICAgIG1fc2FtcGxpbmdQcm9maWxlclRocmVhZElEID0gdGhyZWFkLT5pZCgpOworICAg
IH0KKyNlbmRpZgorfQogCi0gICAgaW50IGZkID0gb3BlbigiL3Byb2Mvc2VsZi9zdGF0IiwgT19S
RE9OTFkpOworc3RydWN0IFRocmVhZEluZm8geworICAgIE9wdGlvbmFsPFN0cmluZz4gbmFtZTsK
KyAgICBPcHRpb25hbDxmbG9hdD4gY3B1VXNhZ2U7CisgICAgdW5zaWduZWQgbG9uZyBsb25nIHBy
ZXZpb3VzVXRpbWUgeyAwIH07CisgICAgdW5zaWduZWQgbG9uZyBsb25nIHByZXZpb3VzU3RpbWUg
eyAwIH07Cit9OworCitzdGF0aWMgSGFzaE1hcDxwaWRfdCwgVGhyZWFkSW5mbz4mIHRocmVhZElu
Zm9NYXAoKQoreworICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxwaWRfdCwg
VGhyZWFkSW5mbz4+IG1hcDsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgZmxhZzsKKyAgICBz
dGQ6OmNhbGxfb25jZShmbGFnLCBbJl0geworICAgICAgICBtYXAuY29uc3RydWN0KCk7CisgICAg
fSk7CisgICAgcmV0dXJuIG1hcDsKK30KKworc3RhdGljIGJvb2wgdGhyZWFkQ1BVVXNhZ2UocGlk
X3QgaWQsIGZsb2F0IHBlcmlvZCwgVGhyZWFkSW5mbyYgaW5mbykKK3sKKyAgICBTdHJpbmcgcGF0
aCA9IG1ha2VTdHJpbmcoIi9wcm9jL3NlbGYvdGFzay8iLCBpZCwgIi9zdGF0Iik7CisgICAgaW50
IGZkID0gb3BlbihwYXRoLnV0ZjgoKS5kYXRhKCksIE9fUkRPTkxZKTsKICAgICBpZiAoZmQgPCAw
KQotICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHN0YXRp
YyBjb25zdCBzc2l6ZV90IG1heEJ1ZmZlckxlbmd0aCA9IEJVRlNJWiAtIDE7CiAgICAgY2hhciBi
dWZmZXJbQlVGU0laXTsKQEAgLTExMCw3ICsxMzksNyBAQCBzdGF0aWMgZmxvYXQgY3B1VXNhZ2Uo
KQogICAgICAgICBpZiAoYnl0ZXNSZWFkIDwgMCkgewogICAgICAgICAgICAgaWYgKGVycm5vICE9
IEVJTlRSKSB7CiAgICAgICAgICAgICAgICAgY2xvc2UoZmQpOwotICAgICAgICAgICAgICAgIHJl
dHVybiAtMTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQpAQCAtMTIzLDEwICsxNTIsMTggQEAgc3Rh
dGljIGZsb2F0IGNwdVVzYWdlKCkKICAgICBjbG9zZShmZCk7CiAgICAgYnVmZmVyW3RvdGFsQnl0
ZXNSZWFkXSA9ICdcMCc7CiAKLSAgICAvLyBTa2lwIHBpZCBhbmQgcHJvY2VzcyBuYW1lLgotICAg
IGNoYXIqIHBvc2l0aW9uID0gc3RycmNocihidWZmZXIsICcpJyk7CisgICAgLy8gU2tpcCB0aWQg
YW5kIG5hbWUuCisgICAgY2hhciogcG9zaXRpb24gPSBzdHJjaHIoYnVmZmVyLCAnKScpOwogICAg
IGlmICghcG9zaXRpb24pCi0gICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgaWYgKCFpbmZvLm5hbWUpIHsKKyAgICAgICAgY2hhciogbmFtZSA9IHN0cmNocihi
dWZmZXIsICcoJyk7CisgICAgICAgIGlmICghbmFtZSkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgbmFtZSsrOworICAgICAgICBpbmZvLm5hbWUgPSBTdHJpbmc6OmZyb21VVEY4
KG5hbWUsIHBvc2l0aW9uIC0gbmFtZSk7CisgICAgfQogCiAgICAgLy8gTW92ZSBhZnRlciBzdGF0
ZS4KICAgICBwb3NpdGlvbiArPSA0OwpAQCAtMTM5LDI5ICsxNzYsMTMwIEBAIHN0YXRpYyBmbG9h
dCBjcHVVc2FnZSgpCiAgICAgICAgIHBvc2l0aW9uKys7CiAgICAgfQogCi0gICAgc3RhdGljIHVu
c2lnbmVkIGxvbmcgbG9uZyBwcmV2aW91c1V0aW1lID0gMDsKLSAgICBzdGF0aWMgdW5zaWduZWQg
bG9uZyBsb25nIHByZXZpb3VzU3RpbWUgPSAwOwogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyB1dGlt
ZSA9IHN0cnRvdWxsKHBvc2l0aW9uLCAmcG9zaXRpb24sIDEwKTsKICAgICB1bnNpZ25lZCBsb25n
IGxvbmcgc3RpbWUgPSBzdHJ0b3VsbChwb3NpdGlvbiwgJnBvc2l0aW9uLCAxMCk7Ci0gICAgZmxv
YXQgdXNhZ2UgPSAodXRpbWUgKyBzdGltZSAtIChwcmV2aW91c1V0aW1lICsgcHJldmlvdXNTdGlt
ZSkpIC8gcGVyaW9kICogMTAwLjA7Ci0gICAgcHJldmlvdXNVdGltZSA9IHV0aW1lOwotICAgIHBy
ZXZpb3VzU3RpbWUgPSBzdGltZTsKKyAgICBmbG9hdCB1c2FnZSA9ICh1dGltZSArIHN0aW1lIC0g
KGluZm8ucHJldmlvdXNVdGltZSArIGluZm8ucHJldmlvdXNTdGltZSkpIC8gcGVyaW9kICogMTAw
LjA7CisgICAgaW5mby5wcmV2aW91c1V0aW1lID0gdXRpbWU7CisgICAgaW5mby5wcmV2aW91c1N0
aW1lID0gc3RpbWU7CiAKLSAgICByZXR1cm4gY2xhbXBUbzxmbG9hdD4odXNhZ2UsIDAsIDEwMCk7
CisgICAgaW5mby5jcHVVc2FnZSA9IGNsYW1wVG88ZmxvYXQ+KHVzYWdlLCAwLCAxMDApOworICAg
IHJldHVybiB0cnVlOwogfQogCi12b2lkIFJlc291cmNlVXNhZ2VUaHJlYWQ6OnBsYXRmb3JtU2F2
ZVN0YXRlQmVmb3JlU3RhcnRpbmcoKQorc3RhdGljIHZvaWQgY29sbGVjdENQVVVzYWdlKGZsb2F0
IHBlcmlvZCkKIHsKKyAgICBESVIqIGRpciA9IG9wZW5kaXIoIi9wcm9jL3NlbGYvdGFzayIpOwor
ICAgIGlmICghZGlyKSB7CisgICAgICAgIHRocmVhZEluZm9NYXAoKS5jbGVhcigpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgSGFzaFNldDxwaWRfdD4gcHJldmlvdXNUYXNrczsKKyAg
ICBmb3IgKGNvbnN0IGF1dG8mIGtleSA6IHRocmVhZEluZm9NYXAoKS5rZXlzKCkpCisgICAgICAg
IHByZXZpb3VzVGFza3MuYWRkKGtleSk7CisKKyAgICBzdHJ1Y3QgZGlyZW50KiBkcDsKKyAgICB3
aGlsZSAoKGRwID0gcmVhZGRpcihkaXIpKSkgeworICAgICAgICBTdHJpbmcgbmFtZSA9IFN0cmlu
Zzo6ZnJvbVVURjgoZHAtPmRfbmFtZSk7CisgICAgICAgIGlmIChuYW1lID09ICIuIiB8fCBuYW1l
ID09ICIuLiIpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBib29sIG9rOworICAg
ICAgICBwaWRfdCBpZCA9IG5hbWUudG9JbnRTdHJpY3QoJm9rKTsKKyAgICAgICAgaWYgKCFvaykK
KyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGF1dG8mIGluZm8gPSB0aHJlYWRJbmZv
TWFwKCkuYWRkKGlkLCBUaHJlYWRJbmZvKCkpLml0ZXJhdG9yLT52YWx1ZTsKKyAgICAgICAgaWYg
KCF0aHJlYWRDUFVVc2FnZShpZCwgcGVyaW9kLCBpbmZvKSkKKyAgICAgICAgICAgIHRocmVhZElu
Zm9NYXAoKS5yZW1vdmUoaWQpOworCisgICAgICAgIHByZXZpb3VzVGFza3MucmVtb3ZlKGlkKTsK
KyAgICB9CisgICAgY2xvc2VkaXIoZGlyKTsKKworICAgIHRocmVhZEluZm9NYXAoKS5yZW1vdmVJ
ZihbJl0oYXV0byYgZW50cnkpICB7CisgICAgICAgIHJldHVybiBwcmV2aW91c1Rhc2tzLmNvbnRh
aW5zKGVudHJ5LmtleSk7CisgICAgfSk7CiB9CiAKIHZvaWQgUmVzb3VyY2VVc2FnZVRocmVhZDo6
cGxhdGZvcm1Db2xsZWN0Q1BVRGF0YShKU0M6OlZNKiwgUmVzb3VyY2VVc2FnZURhdGEmIGRhdGEp
CiB7Ci0gICAgZGF0YS5jcHUgPSBjcHVVc2FnZSgpOworICAgIGZsb2F0IHBlcmlvZCA9IGNwdVBl
cmlvZCgpOworICAgIGlmICghcGVyaW9kKSB7CisgICAgICAgIGRhdGEuY3B1ID0gMDsKKyAgICAg
ICAgZGF0YS5jcHVFeGNsdWRpbmdEZWJ1Z2dlclRocmVhZHMgPSAwOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgY29sbGVjdENQVVVzYWdlKHBlcmlvZCk7CisKKyAgICBwaWRfdCByZXNv
dXJjZVVzYWdlVGhyZWFkSUQgPSBUaHJlYWQ6OmN1cnJlbnRJRCgpOworCisgICAgSGFzaFNldDxw
aWRfdD4ga25vd25XZWJLaXRUaHJlYWRzOworICAgIHsKKyAgICAgICAgYXV0byBsb2NrZXIgPSBo
b2xkTG9jayhUaHJlYWQ6OmFsbFRocmVhZHNNdXRleCgpKTsKKyAgICAgICAgZm9yIChhdXRvKiB0
aHJlYWQgOiBUaHJlYWQ6OmFsbFRocmVhZHMobG9ja2VyKSkgeworICAgICAgICAgICAgaWYgKGF1
dG8gaWQgPSB0aHJlYWQtPmlkKCkpCisgICAgICAgICAgICAgICAga25vd25XZWJLaXRUaHJlYWRz
LmFkZChpZCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBIYXNoTWFwPHBpZF90LCBTdHJpbmc+
IGtub3duV29ya2VyVGhyZWFkczsKKyAgICB7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhXb3Jr
ZXJUaHJlYWQ6OndvcmtlclRocmVhZHNNdXRleCgpKTsKKyAgICAgICAgZm9yIChhdXRvKiB0aHJl
YWQgOiBXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZHMobG9jaykpIHsKKyAgICAgICAgICAgIC8v
IElnbm9yZSB3b3JrZXIgdGhyZWFkcyB0aGF0IGhhdmUgbm90IGJlZW4gZnVsbHkgc3RhcnRlZCB5
ZXQuCisgICAgICAgICAgICBpZiAoIXRocmVhZC0+dGhyZWFkKCkpCisgICAgICAgICAgICAgICAg
Y29udGludWU7CiAKLSAgICAvLyBGSVhNRTogRXhjbHVkZSB0aGUgUmVzb3VyY2VVc2FnZSB0aHJl
YWQuCi0gICAgLy8gRklYTUU6IEV4Y2x1ZGUgdGhlIFNhbXBsaW5nUHJvZmlsZXIgdGhyZWFkLgot
ICAgIC8vIEZJWE1FOiBDbGFzc2lmeSB1c2FnZSBwZXIgdGhyZWFkLgotICAgIGRhdGEuY3B1RXhj
bHVkaW5nRGVidWdnZXJUaHJlYWRzID0gZGF0YS5jcHU7CisgICAgICAgICAgICBpZiAoYXV0byBp
ZCA9IHRocmVhZC0+dGhyZWFkKCktPmlkKCkpCisgICAgICAgICAgICAgICAga25vd25Xb3JrZXJU
aHJlYWRzLnNldChpZCwgdGhyZWFkLT5pZGVudGlmaWVyKCkuaXNvbGF0ZWRDb3B5KCkpOworICAg
ICAgICB9CisgICAgfQorCisgICAgYXV0byBpc0RlYnVnZ2VyVGhyZWFkID0gWyZdKHBpZF90IGlk
KSAtPiBib29sIHsKKyAgICAgICAgaWYgKGlkID09IHJlc291cmNlVXNhZ2VUaHJlYWRJRCkKKyAg
ICAgICAgICAgIHJldHVybiB0cnVlOworI2lmIEVOQUJMRShTQU1QTElOR19QUk9GSUxFUikKKyAg
ICAgICAgaWYgKGlkID09IG1fc2FtcGxpbmdQcm9maWxlclRocmVhZElEKQorICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisjZW5kaWYKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH07CisKKyAg
ICBhdXRvIGlzV2ViS2l0VGhyZWFkID0gWyZdKHBpZF90IGlkLCBjb25zdCBTdHJpbmcmIG5hbWUp
IC0+IGJvb2wgeworICAgICAgICBpZiAoa25vd25XZWJLaXRUaHJlYWRzLmNvbnRhaW5zKGlkKSkK
KyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgIC8vIFRoZSBibWFsbG9jIHNjYXZl
bmdlciB0aHJlYWQgaXMgYmVsb3cgV1RGLiBEZXRlY3QgaXQgYnkgaXRzIG5hbWUuCisgICAgICAg
IGlmIChuYW1lID09ICJCTVNjYXZlbmdlciIpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKwor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfTsKKworICAgIGZvciAoY29uc3QgYXV0byYgaXQg
OiB0aHJlYWRJbmZvTWFwKCkpIHsKKyAgICAgICAgaWYgKCFpdC52YWx1ZS5jcHVVc2FnZSkKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGZsb2F0IGNwdVVzYWdlID0gaXQudmFsdWUu
Y3B1VXNhZ2UudmFsdWUoKTsKKyAgICAgICAgcGlkX3QgaWQgPSBpdC5rZXk7CisgICAgICAgIGRh
dGEuY3B1ICs9IGNwdVVzYWdlOworICAgICAgICBpZiAoaXNEZWJ1Z2dlclRocmVhZChpZCkpCisg
ICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBkYXRhLmNwdUV4Y2x1ZGluZ0RlYnVnZ2Vy
VGhyZWFkcyArPSBjcHVVc2FnZTsKKworICAgICAgICBpZiAoZ2V0cGlkKCkgPT0gaWQpCisgICAg
ICAgICAgICBkYXRhLmNwdVRocmVhZHMuYXBwZW5kKFRocmVhZENQVUluZm8geyAiTWFpbiBUaHJl
YWQiX3MsIHsgfSwgY3B1VXNhZ2UsIFRocmVhZENQVUluZm86OlR5cGU6Ok1haW59KTsKKyAgICAg
ICAgZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgdGhyZWFkSWRlbnRpZmllciA9IGtub3duV29y
a2VyVGhyZWFkcy5nZXQoaWQpOworICAgICAgICAgICAgYm9vbCBpc1dvcmtlclRocmVhZCA9ICF0
aHJlYWRJZGVudGlmaWVyLmlzRW1wdHkoKTsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lID0gaXQu
dmFsdWUubmFtZS52YWx1ZU9yKGVtcHR5U3RyaW5nKCkpOworICAgICAgICAgICAgVGhyZWFkQ1BV
SW5mbzo6VHlwZSB0eXBlID0gKGlzV29ya2VyVGhyZWFkIHx8IGlzV2ViS2l0VGhyZWFkKGlkLCBu
YW1lKSkgPyBUaHJlYWRDUFVJbmZvOjpUeXBlOjpXZWJLaXQgOiBUaHJlYWRDUFVJbmZvOjpUeXBl
OjpVbmtub3duOworICAgICAgICAgICAgZGF0YS5jcHVUaHJlYWRzLmFwcGVuZChUaHJlYWRDUFVJ
bmZvIHsgbmFtZSwgdGhyZWFkSWRlbnRpZmllciwgY3B1VXNhZ2UsIHR5cGUgfSk7CisgICAgICAg
IH0KKyAgICB9CiB9CiAKIHZvaWQgUmVzb3VyY2VVc2FnZVRocmVhZDo6cGxhdGZvcm1Db2xsZWN0
TWVtb3J5RGF0YShKU0M6OlZNKiB2bSwgUmVzb3VyY2VVc2FnZURhdGEmIGRhdGEpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407594</attachid>
            <date>2020-08-31 02:20:24 -0700</date>
            <delta_ts>2020-08-31 13:32:19 -0700</delta_ts>
            <desc>Try to fix mac debug builds</desc>
            <filename>wkgtk-cpu-threads.diff</filename>
            <type>text/plain</type>
            <size>15746</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDRhZGZmMzk3ZWMxMS4uYzA1MmI5NDdmMzgzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMC0wOC0yNyAgQ2Fy
bG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10g
V2ViIEluc3BlY3Rvcjogc2hvdyBwZXIgdGhyZWFkIGNwdSB1c2FnZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1ODgzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHBsYXRmb3JtIHNwZWNpZmlj
IGdldHRlciBtYWNoVGhyZWFkKCkgYW5kIGFkZCB0aHJlYWQoKSB0byByZXR1cm4gdGhlIFRocmVh
ZCBpbnN0ZWFkLiBUaGUgY2FsbGVyIGtub3dzIGhvdworICAgICAgICB0byBnZXQgdGhlIG1hY2hU
aHJlYWQgb3IgaWQgZnJvbSBhIFRocmVhZC4KKworICAgICAgICAqIHJ1bnRpbWUvU2FtcGxpbmdQ
cm9maWxlci5jcHA6CisgICAgICAgIChKU0M6OlNhbXBsaW5nUHJvZmlsZXI6OnJlcG9ydFRvcEJ5
dGVjb2Rlcyk6CisgICAgICAgIChKU0M6OlNhbXBsaW5nUHJvZmlsZXI6Om1hY2hUaHJlYWQpOiBE
ZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5oOgorICAgICAgICAo
SlNDOjpTYW1wbGluZ1Byb2ZpbGVyOjp0aHJlYWQpOgorCiAyMDIwLTA4LTI2ICBBbGV4ZXkgU2h2
YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBVc2UganNUeXBlb2ZJc09i
amVjdCgpIGluIERGRyBBSSBhbmQgb3BlcmF0aW9uVHlwZU9mSXNPYmplY3QoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcAppbmRleCA3
MTc2NTAzOTcxNzQuLjAxN2NkZGQyMmMwNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAKQEAgLTExNDEsMTUgKzExNDEsMTAgQEAg
dm9pZCBTYW1wbGluZ1Byb2ZpbGVyOjpyZXBvcnRUb3BCeXRlY29kZXMoUHJpbnRTdHJlYW0mIG91
dCkKICAgICB9CiB9CiAKLSNpZiBPUyhEQVJXSU4pCi1tYWNoX3BvcnRfdCBTYW1wbGluZ1Byb2Zp
bGVyOjptYWNoVGhyZWFkKCkKK1RocmVhZCogU2FtcGxpbmdQcm9maWxlcjo6dGhyZWFkKCkgY29u
c3QKIHsKLSAgICBpZiAoIW1fdGhyZWFkKQotICAgICAgICByZXR1cm4gTUFDSF9QT1JUX05VTEw7
Ci0KLSAgICByZXR1cm4gbV90aHJlYWQtPm1hY2hUaHJlYWQoKTsKKyAgICByZXR1cm4gbV90aHJl
YWQuZ2V0KCk7CiB9Ci0jZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuaAppbmRleCAxOTc1MDg4
Y2JjOWUuLjVkMTk5NTdiZjBjNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU2FtcGxpbmdQcm9maWxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1NhbXBsaW5nUHJvZmlsZXIuaApAQCAtMTkzLDkgKzE5Myw3IEBAIHB1YmxpYzoKICAgICBK
U19FWFBPUlRfUFJJVkFURSB2b2lkIHJlcG9ydFRvcEJ5dGVjb2RlcygpOwogICAgIEpTX0VYUE9S
VF9QUklWQVRFIHZvaWQgcmVwb3J0VG9wQnl0ZWNvZGVzKFByaW50U3RyZWFtJik7CiAKLSNpZiBP
UyhEQVJXSU4pCi0gICAgSlNfRVhQT1JUX1BSSVZBVEUgbWFjaF9wb3J0X3QgbWFjaFRocmVhZCgp
OwotI2VuZGlmCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgVGhyZWFkKiB0aHJlYWQoKSBjb25zdDsK
IAogcHJpdmF0ZToKICAgICB2b2lkIGNyZWF0ZVRocmVhZElmTmVjZXNzYXJ5KGNvbnN0IEFic3Ry
YWN0TG9ja2VyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9X
VEYvQ2hhbmdlTG9nCmluZGV4IDdlNWNkMDRiYzc3NS4uZmMzN2FhY2YxMjFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIwIEBACisyMDIwLTA4LTI3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdh
bGlhLmNvbT4KKworICAgICAgICBbR1RLXSBXZWIgSW5zcGVjdG9yOiBzaG93IHBlciB0aHJlYWQg
Y3B1IHVzYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTU4ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgQVBJIHRvIGdldCB0aGUgdGhyZWFkIElEIGluIExpbnV4IHBsYXRmb3JtLgorCisgICAg
ICAgICogd3RmL1RocmVhZGluZy5jcHA6CisgICAgICAgIChXVEY6OlRocmVhZDo6aW5pdGlhbGl6
ZUluVGhyZWFkKToKKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nLmg6CisgICAgICAgIChXVEY6OlRo
cmVhZDo6aWQgY29uc3QpOgorICAgICAgICAqIHd0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmg6Cisg
ICAgICAgICogd3RmL3Bvc2l4L1RocmVhZGluZ1BPU0lYLmNwcDoKKyAgICAgICAgKFdURjo6VGhy
ZWFkOjpjdXJyZW50SUQpOgorCiAyMDIwLTA4LTI3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBJbmNsdWRlIHRoZSBydW4gbG9vcCBz
b3VyY2UgbmFtZSBpbiBmcmFtZSByZW5kZXJpbmcgdGltZWxpbmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL1RocmVhZGluZy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuY3BwCmlu
ZGV4IDMzMWNiM2UzZjEwYS4uNWQ3ZDZkM2IzZGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9UaHJlYWRpbmcuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5jcHAKQEAgLTE0
Niw2ICsxNDYsMTAgQEAgdm9pZCBUaHJlYWQ6OmluaXRpYWxpemVJblRocmVhZCgpCiAgICAgICAg
IG1fY3VycmVudEF0b21TdHJpbmdUYWJsZSA9ICZzaGFyZWRTdHJpbmdUYWJsZS5nZXQoKTsKICAg
ICB9CiAjZW5kaWYKKworI2lmIE9TKExJTlVYKQorICAgIG1faWQgPSBjdXJyZW50SUQoKTsKKyNl
bmRpZgogfQogCiB2b2lkIFRocmVhZDo6ZW50cnlQb2ludChOZXdUaHJlYWRDb250ZXh0KiBuZXdU
aHJlYWRDb250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nLmggYi9T
b3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuaAppbmRleCA0YjUwOTVmMzYxYmEuLjc2ZjAyOGNmYTcw
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvVGhyZWFkaW5nLmgKQEAgLTE1Nyw2ICsxNTcsMTAgQEAgcHVibGljOgogICAgIFdURl9F
WFBPUlRfUFJJVkFURSBzaXplX3QgZ2V0UmVnaXN0ZXJzKFBsYXRmb3JtUmVnaXN0ZXJzJik7CiAK
ICNpZiBVU0UoUFRIUkVBRFMpCisjaWYgT1MoTElOVVgpCisgICAgV1RGX0VYUE9SVF9QUklWQVRF
IHN0YXRpYyBUaHJlYWRJZGVudGlmaWVyIGN1cnJlbnRJRCgpOworICAgIFRocmVhZElkZW50aWZp
ZXIgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9CisjZW5kaWYKICAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgYm9vbCBzaWduYWwoaW50IHNpZ25hbE51bWJlcik7CiAjZW5kaWYKIApAQCAtMzI5LDYg
KzMzMyw5IEBAIHByb3RlY3RlZDoKICNlbGlmIE9TKERBUldJTikKICAgICBtYWNoX3BvcnRfdCBt
X3BsYXRmb3JtVGhyZWFkIHsgTUFDSF9QT1JUX05VTEwgfTsKICNlbGlmIFVTRShQVEhSRUFEUykK
KyNpZiBPUyhMSU5VWCkKKyAgICBUaHJlYWRJZGVudGlmaWVyIG1faWQgeyAwIH07CisjZW5kaWYK
ICAgICBQbGF0Zm9ybVJlZ2lzdGVycyogbV9wbGF0Zm9ybVJlZ2lzdGVycyB7IG51bGxwdHIgfTsK
ICAgICB1bnNpZ25lZCBtX3N1c3BlbmRDb3VudCB7IDAgfTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oIGIvU291cmNlL1dURi93dGYvVGhy
ZWFkaW5nUHJpbWl0aXZlcy5oCmluZGV4IDZkNjk5ZjgxNmE4Ny4uZmQ1NTliMjQyZGRmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmgKKysrIGIvU291cmNl
L1dURi93dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oCkBAIC01Nyw2ICs1Nyw5IEBAIHVzaW5nIFBs
YXRmb3JtVGhyZWFkSGFuZGxlID0gcHRocmVhZF90OwogdXNpbmcgUGxhdGZvcm1NdXRleCA9IHB0
aHJlYWRfbXV0ZXhfdDsKIHVzaW5nIFBsYXRmb3JtQ29uZGl0aW9uID0gcHRocmVhZF9jb25kX3Q7
CiB1c2luZyBUaHJlYWRTcGVjaWZpY0tleSA9IHB0aHJlYWRfa2V5X3Q7CisjaWYgT1MoTElOVVgp
Cit1c2luZyBUaHJlYWRJZGVudGlmaWVyID0gcGlkX3Q7CisjZW5kaWYKICNlbGlmIE9TKFdJTkRP
V1MpCiB1c2luZyBUaHJlYWRJZGVudGlmaWVyID0gdWludDMyX3Q7CiB1c2luZyBQbGF0Zm9ybVRo
cmVhZEhhbmRsZSA9IEhBTkRMRTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3Bvc2l4L1Ro
cmVhZGluZ1BPU0lYLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3Bvc2l4L1RocmVhZGluZ1BPU0lYLmNw
cAppbmRleCBlNmJiYjVhOWJlNTEuLjBmNjgzMjdlNjg0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvcG9zaXgvVGhyZWFkaW5nUE9TSVguY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3Bvc2l4
L1RocmVhZGluZ1BPU0lYLmNwcApAQCAtNjgsNiArNjgsMTAgQEAKICNpbmNsdWRlIDxtYWNoL3Ro
cmVhZF9zd2l0Y2guaD4KICNlbmRpZgogCisjaWYgT1MoTElOVVgpCisjaW5jbHVkZSA8c3lzL3N5
c2NhbGwuaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV1RGIHsKIAogc3RhdGljIExvY2sgZ2xvYmFs
U3VzcGVuZExvY2s7CkBAIC0xODcsNiArMTkxLDEzIEBAIHZvaWQgVGhyZWFkOjppbml0aWFsaXpl
UGxhdGZvcm1UaHJlYWRpbmcoKQogI2VuZGlmCiB9CiAKKyNpZiBPUyhMSU5VWCkKK1RocmVhZElk
ZW50aWZpZXIgVGhyZWFkOjpjdXJyZW50SUQoKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxU
aHJlYWRJZGVudGlmaWVyPihzeXNjYWxsKFNZU19nZXR0aWQpKTsKK30KKyNlbmRpZgorCiB2b2lk
IFRocmVhZDo6aW5pdGlhbGl6ZUN1cnJlbnRUaHJlYWRFdmVuSWZOb25XVEZDcmVhdGVkKCkKIHsK
ICNpZiAhT1MoREFSV0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGY5ZDc0OGU3MzJhNy4uNWE0Mzg0YTgxNmVk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjAtMDgtMjcgIENhcmxvcyBHYXJjaWEg
Q2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIFdlYiBJbnNwZWN0
b3I6IHNob3cgcGVyIHRocmVhZCBjcHUgdXNhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTg4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEdldCBwZXIgdGhyZWFkIENQVSB1c2FnZSBhbmQgaW5mb3Jt
YXRpb24gdG8gZmlsbCBSZXNvdXJjZVVzYWdlRGF0YSBpbiBMaW51eC4KKworICAgICAgICAqIHBh
Z2UvUmVzb3VyY2VVc2FnZVRocmVhZC5oOgorICAgICAgICAqIHBhZ2UvY29jb2EvUmVzb3VyY2VV
c2FnZVRocmVhZENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VVc2FnZVRocmVh
ZDo6cGxhdGZvcm1TYXZlU3RhdGVCZWZvcmVTdGFydGluZyk6IFVwZGF0ZSB0byBuZXcgQVBJIGlu
IFNhbXBsaW5nUHJvZmlsZXIuCisgICAgICAgICogcGFnZS9saW51eC9SZXNvdXJjZVVzYWdlVGhy
ZWFkTGludXguY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VVc2FnZVRocmVhZDo6cGxh
dGZvcm1TYXZlU3RhdGVCZWZvcmVTdGFydGluZyk6IEluaXRpYWxpemUgbV9zYW1wbGluZ1Byb2Zp
bGVyVGhyZWFkSUQuCisgICAgICAgIChXZWJDb3JlOjp0aHJlYWRJbmZvTWFwKToKKyAgICAgICAg
KFdlYkNvcmU6OnRocmVhZENQVVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbGxlY3RDUFVV
c2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVVzYWdlVGhyZWFkOjpwbGF0Zm9ybUNv
bGxlY3RDUFVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OmNwdVVzYWdlKTogRGVsZXRlZC4KKwog
MjAyMC0wOC0yNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgW0dUS10gSW5jbHVkZSB0aGUgcnVuIGxvb3Agc291cmNlIG5hbWUgaW4gZnJhbWUg
cmVuZGVyaW5nIHRpbWVsaW5lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc291
cmNlVXNhZ2VUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzb3VyY2VVc2FnZVRocmVh
ZC5oCmluZGV4IDRhYzZhM2YzMTMzNy4uNDcyOTdkOThhY2EzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1Jlc291cmNlVXNhZ2VUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1Jlc291cmNlVXNhZ2VUaHJlYWQuaApAQCAtODgsOCArODgsMTIgQEAgcHJpdmF0ZToKICAg
ICAvLyBUaGV5IHNob3VsZCBlbnN1cmUgdGhlaXIgdXNlIG9mIHRoZSBWTSBpcyB0aHJlYWQgc2Fm
ZS4KICAgICBKU0M6OlZNKiBtX3ZtIHsgbnVsbHB0ciB9OwogCi0jaWYgRU5BQkxFKFNBTVBMSU5H
X1BST0ZJTEVSKSAmJiBPUyhEQVJXSU4pCisjaWYgRU5BQkxFKFNBTVBMSU5HX1BST0ZJTEVSKQor
I2lmIE9TKERBUldJTikKICAgICBtYWNoX3BvcnRfdCBtX3NhbXBsaW5nUHJvZmlsZXJNYWNoVGhy
ZWFkIHsgTUFDSF9QT1JUX05VTEwgfTsKKyNlbGlmIE9TKExJTlVYKQorICAgIHBpZF90IG1fc2Ft
cGxpbmdQcm9maWxlclRocmVhZElEIHsgMCB9OworI2VuZGlmCiAjZW5kaWYKIAogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUmVzb3VyY2VVc2FnZVRocmVhZENvY29h
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9SZXNvdXJjZVVzYWdlVGhyZWFkQ29jb2Eu
bW0KaW5kZXggYmQwYzE3ZjUwN2ZhLi5hNjUwZTU1OGQ3NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvY29jb2EvUmVzb3VyY2VVc2FnZVRocmVhZENvY29hLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvY29jb2EvUmVzb3VyY2VVc2FnZVRocmVhZENvY29hLm1tCkBAIC0xMzYs
NyArMTM2LDEyIEBAIHN0YXRpYyBWZWN0b3I8VGhyZWFkSW5mbz4gdGhyZWFkSW5mb3MoKQogdm9p
ZCBSZXNvdXJjZVVzYWdlVGhyZWFkOjpwbGF0Zm9ybVNhdmVTdGF0ZUJlZm9yZVN0YXJ0aW5nKCkK
IHsKICNpZiBFTkFCTEUoU0FNUExJTkdfUFJPRklMRVIpCi0gICAgbV9zYW1wbGluZ1Byb2ZpbGVy
TWFjaFRocmVhZCA9IG1fdm0tPnNhbXBsaW5nUHJvZmlsZXIoKSA/IG1fdm0tPnNhbXBsaW5nUHJv
ZmlsZXIoKS0+bWFjaFRocmVhZCgpIDogTUFDSF9QT1JUX05VTEw7CisgICAgbV9zYW1wbGluZ1By
b2ZpbGVyTWFjaFRocmVhZCA9IE1BQ0hfUE9SVF9OVUxMOworCisgICAgaWYgKGF1dG8qIHByb2Zp
bGVyID0gbV92bS0+c2FtcGxpbmdQcm9maWxlcigpKSB7CisgICAgICAgIGlmIChhdXRvKiB0aHJl
YWQgPSBwcm9maWxlci0+dGhyZWFkKCkpCisgICAgICAgICAgICBtX3NhbXBsaW5nUHJvZmlsZXJN
YWNoVGhyZWFkID0gdGhyZWFkLT5tYWNoVGhyZWFkKCk7CisgICAgfQogI2VuZGlmCiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbGludXgvUmVzb3VyY2VVc2FnZVRocmVhZExp
bnV4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbGludXgvUmVzb3VyY2VVc2FnZVRocmVhZExp
bnV4LmNwcAppbmRleCBjNDQ2MGFmYjYxYTcuLmEwZDQxODdhNzI5ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9saW51eC9SZXNvdXJjZVVzYWdlVGhyZWFkTGludXguY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbGludXgvUmVzb3VyY2VVc2FnZVRocmVhZExpbnV4LmNwcApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4KKyAq
IENvcHlyaWdodCAoQykgMjAxNywgMjAyMCBJZ2FsaWEgUy5MLgogICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAg
LTI5LDcgKzI5LDkgQEAKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9VU0FHRSkgJiYgT1MoTElOVVgp
CiAKKyNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9H
Q0FjdGl2aXR5Q2FsbGJhY2suaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TYW1wbGluZ1By
b2ZpbGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVk0uaD4KICNpbmNsdWRlIDxlcnJu
by5oPgogI2luY2x1ZGUgPGZjbnRsLmg+CkBAIC0zOCw2ICs0MCw3IEBACiAjaW5jbHVkZSA8c3lz
L3N0YXQuaD4KICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4KKyNp
bmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL2xpbnV4L0N1cnJlbnRQcm9j
ZXNzTWVtb3J5U3RhdHVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTkwLDE1ICs5Myw0
MSBAQCBzdGF0aWMgZmxvYXQgY3B1UGVyaW9kKCkKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Zmxv
YXQ+KHBlcmlvZCkgLyBjcHVDb3VudDsKIH0KIAotc3RhdGljIGZsb2F0IGNwdVVzYWdlKCkKK3Zv
aWQgUmVzb3VyY2VVc2FnZVRocmVhZDo6cGxhdGZvcm1TYXZlU3RhdGVCZWZvcmVTdGFydGluZygp
CiB7Ci0gICAgZmxvYXQgcGVyaW9kID0gY3B1UGVyaW9kKCk7Ci0gICAgaWYgKCFwZXJpb2QpCi0g
ICAgICAgIHJldHVybiAtMTsKKyNpZiBFTkFCTEUoU0FNUExJTkdfUFJPRklMRVIpCisgICAgbV9z
YW1wbGluZ1Byb2ZpbGVyVGhyZWFkSUQgPSAwOworCisgICAgaWYgKGF1dG8qIHByb2ZpbGVyID0g
bV92bS0+c2FtcGxpbmdQcm9maWxlcigpKSB7CisgICAgICAgIGlmIChhdXRvKiB0aHJlYWQgPSBw
cm9maWxlci0+dGhyZWFkKCkpCisgICAgICAgICAgICBtX3NhbXBsaW5nUHJvZmlsZXJUaHJlYWRJ
RCA9IHRocmVhZC0+aWQoKTsKKyAgICB9CisjZW5kaWYKK30KIAotICAgIGludCBmZCA9IG9wZW4o
Ii9wcm9jL3NlbGYvc3RhdCIsIE9fUkRPTkxZKTsKK3N0cnVjdCBUaHJlYWRJbmZvIHsKKyAgICBP
cHRpb25hbDxTdHJpbmc+IG5hbWU7CisgICAgT3B0aW9uYWw8ZmxvYXQ+IGNwdVVzYWdlOworICAg
IHVuc2lnbmVkIGxvbmcgbG9uZyBwcmV2aW91c1V0aW1lIHsgMCB9OworICAgIHVuc2lnbmVkIGxv
bmcgbG9uZyBwcmV2aW91c1N0aW1lIHsgMCB9OworfTsKKworc3RhdGljIEhhc2hNYXA8cGlkX3Qs
IFRocmVhZEluZm8+JiB0aHJlYWRJbmZvTWFwKCkKK3sKKyAgICBzdGF0aWMgTGF6eU5ldmVyRGVz
dHJveWVkPEhhc2hNYXA8cGlkX3QsIFRocmVhZEluZm8+PiBtYXA7CisgICAgc3RhdGljIHN0ZDo6
b25jZV9mbGFnIGZsYWc7CisgICAgc3RkOjpjYWxsX29uY2UoZmxhZywgWyZdIHsKKyAgICAgICAg
bWFwLmNvbnN0cnVjdCgpOworICAgIH0pOworICAgIHJldHVybiBtYXA7Cit9CisKK3N0YXRpYyBi
b29sIHRocmVhZENQVVVzYWdlKHBpZF90IGlkLCBmbG9hdCBwZXJpb2QsIFRocmVhZEluZm8mIGlu
Zm8pCit7CisgICAgU3RyaW5nIHBhdGggPSBtYWtlU3RyaW5nKCIvcHJvYy9zZWxmL3Rhc2svIiwg
aWQsICIvc3RhdCIpOworICAgIGludCBmZCA9IG9wZW4ocGF0aC51dGY4KCkuZGF0YSgpLCBPX1JE
T05MWSk7CiAgICAgaWYgKGZkIDwgMCkKLSAgICAgICAgcmV0dXJuIC0xOworICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICBzdGF0aWMgY29uc3Qgc3NpemVfdCBtYXhCdWZmZXJMZW5ndGggPSBC
VUZTSVogLSAxOwogICAgIGNoYXIgYnVmZmVyW0JVRlNJWl07CkBAIC0xMTAsNyArMTM5LDcgQEAg
c3RhdGljIGZsb2F0IGNwdVVzYWdlKCkKICAgICAgICAgaWYgKGJ5dGVzUmVhZCA8IDApIHsKICAg
ICAgICAgICAgIGlmIChlcnJubyAhPSBFSU5UUikgewogICAgICAgICAgICAgICAgIGNsb3NlKGZk
KTsKLSAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KQEAg
LTEyMywxMCArMTUyLDE4IEBAIHN0YXRpYyBmbG9hdCBjcHVVc2FnZSgpCiAgICAgY2xvc2UoZmQp
OwogICAgIGJ1ZmZlclt0b3RhbEJ5dGVzUmVhZF0gPSAnXDAnOwogCi0gICAgLy8gU2tpcCBwaWQg
YW5kIHByb2Nlc3MgbmFtZS4KLSAgICBjaGFyKiBwb3NpdGlvbiA9IHN0cnJjaHIoYnVmZmVyLCAn
KScpOworICAgIC8vIFNraXAgdGlkIGFuZCBuYW1lLgorICAgIGNoYXIqIHBvc2l0aW9uID0gc3Ry
Y2hyKGJ1ZmZlciwgJyknKTsKICAgICBpZiAoIXBvc2l0aW9uKQotICAgICAgICByZXR1cm4gLTE7
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghaW5mby5uYW1lKSB7CisgICAgICAg
IGNoYXIqIG5hbWUgPSBzdHJjaHIoYnVmZmVyLCAnKCcpOworICAgICAgICBpZiAoIW5hbWUpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIG5hbWUrKzsKKyAgICAgICAgaW5mby5u
YW1lID0gU3RyaW5nOjpmcm9tVVRGOChuYW1lLCBwb3NpdGlvbiAtIG5hbWUpOworICAgIH0KIAog
ICAgIC8vIE1vdmUgYWZ0ZXIgc3RhdGUuCiAgICAgcG9zaXRpb24gKz0gNDsKQEAgLTEzOSwyOSAr
MTc2LDEzMCBAQCBzdGF0aWMgZmxvYXQgY3B1VXNhZ2UoKQogICAgICAgICBwb3NpdGlvbisrOwog
ICAgIH0KIAotICAgIHN0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcgcHJldmlvdXNVdGltZSA9IDA7
Ci0gICAgc3RhdGljIHVuc2lnbmVkIGxvbmcgbG9uZyBwcmV2aW91c1N0aW1lID0gMDsKICAgICB1
bnNpZ25lZCBsb25nIGxvbmcgdXRpbWUgPSBzdHJ0b3VsbChwb3NpdGlvbiwgJnBvc2l0aW9uLCAx
MCk7CiAgICAgdW5zaWduZWQgbG9uZyBsb25nIHN0aW1lID0gc3RydG91bGwocG9zaXRpb24sICZw
b3NpdGlvbiwgMTApOwotICAgIGZsb2F0IHVzYWdlID0gKHV0aW1lICsgc3RpbWUgLSAocHJldmlv
dXNVdGltZSArIHByZXZpb3VzU3RpbWUpKSAvIHBlcmlvZCAqIDEwMC4wOwotICAgIHByZXZpb3Vz
VXRpbWUgPSB1dGltZTsKLSAgICBwcmV2aW91c1N0aW1lID0gc3RpbWU7CisgICAgZmxvYXQgdXNh
Z2UgPSAodXRpbWUgKyBzdGltZSAtIChpbmZvLnByZXZpb3VzVXRpbWUgKyBpbmZvLnByZXZpb3Vz
U3RpbWUpKSAvIHBlcmlvZCAqIDEwMC4wOworICAgIGluZm8ucHJldmlvdXNVdGltZSA9IHV0aW1l
OworICAgIGluZm8ucHJldmlvdXNTdGltZSA9IHN0aW1lOwogCi0gICAgcmV0dXJuIGNsYW1wVG88
ZmxvYXQ+KHVzYWdlLCAwLCAxMDApOworICAgIGluZm8uY3B1VXNhZ2UgPSBjbGFtcFRvPGZsb2F0
Pih1c2FnZSwgMCwgMTAwKTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBSZXNvdXJjZVVz
YWdlVGhyZWFkOjpwbGF0Zm9ybVNhdmVTdGF0ZUJlZm9yZVN0YXJ0aW5nKCkKK3N0YXRpYyB2b2lk
IGNvbGxlY3RDUFVVc2FnZShmbG9hdCBwZXJpb2QpCiB7CisgICAgRElSKiBkaXIgPSBvcGVuZGly
KCIvcHJvYy9zZWxmL3Rhc2siKTsKKyAgICBpZiAoIWRpcikgeworICAgICAgICB0aHJlYWRJbmZv
TWFwKCkuY2xlYXIoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEhhc2hTZXQ8cGlk
X3Q+IHByZXZpb3VzVGFza3M7CisgICAgZm9yIChjb25zdCBhdXRvJiBrZXkgOiB0aHJlYWRJbmZv
TWFwKCkua2V5cygpKQorICAgICAgICBwcmV2aW91c1Rhc2tzLmFkZChrZXkpOworCisgICAgc3Ry
dWN0IGRpcmVudCogZHA7CisgICAgd2hpbGUgKChkcCA9IHJlYWRkaXIoZGlyKSkpIHsKKyAgICAg
ICAgU3RyaW5nIG5hbWUgPSBTdHJpbmc6OmZyb21VVEY4KGRwLT5kX25hbWUpOworICAgICAgICBp
ZiAobmFtZSA9PSAiLiIgfHwgbmFtZSA9PSAiLi4iKQorICAgICAgICAgICAgY29udGludWU7CisK
KyAgICAgICAgYm9vbCBvazsKKyAgICAgICAgcGlkX3QgaWQgPSBuYW1lLnRvSW50U3RyaWN0KCZv
ayk7CisgICAgICAgIGlmICghb2spCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBh
dXRvJiBpbmZvID0gdGhyZWFkSW5mb01hcCgpLmFkZChpZCwgVGhyZWFkSW5mbygpKS5pdGVyYXRv
ci0+dmFsdWU7CisgICAgICAgIGlmICghdGhyZWFkQ1BVVXNhZ2UoaWQsIHBlcmlvZCwgaW5mbykp
CisgICAgICAgICAgICB0aHJlYWRJbmZvTWFwKCkucmVtb3ZlKGlkKTsKKworICAgICAgICBwcmV2
aW91c1Rhc2tzLnJlbW92ZShpZCk7CisgICAgfQorICAgIGNsb3NlZGlyKGRpcik7CisKKyAgICB0
aHJlYWRJbmZvTWFwKCkucmVtb3ZlSWYoWyZdKGF1dG8mIGVudHJ5KSAgeworICAgICAgICByZXR1
cm4gcHJldmlvdXNUYXNrcy5jb250YWlucyhlbnRyeS5rZXkpOworICAgIH0pOwogfQogCiB2b2lk
IFJlc291cmNlVXNhZ2VUaHJlYWQ6OnBsYXRmb3JtQ29sbGVjdENQVURhdGEoSlNDOjpWTSosIFJl
c291cmNlVXNhZ2VEYXRhJiBkYXRhKQogewotICAgIGRhdGEuY3B1ID0gY3B1VXNhZ2UoKTsKKyAg
ICBmbG9hdCBwZXJpb2QgPSBjcHVQZXJpb2QoKTsKKyAgICBpZiAoIXBlcmlvZCkgeworICAgICAg
ICBkYXRhLmNwdSA9IDA7CisgICAgICAgIGRhdGEuY3B1RXhjbHVkaW5nRGVidWdnZXJUaHJlYWRz
ID0gMDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbGxlY3RDUFVVc2FnZShwZXJp
b2QpOworCisgICAgcGlkX3QgcmVzb3VyY2VVc2FnZVRocmVhZElEID0gVGhyZWFkOjpjdXJyZW50
SUQoKTsKKworICAgIEhhc2hTZXQ8cGlkX3Q+IGtub3duV2ViS2l0VGhyZWFkczsKKyAgICB7Cisg
ICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soVGhyZWFkOjphbGxUaHJlYWRzTXV0ZXgoKSk7
CisgICAgICAgIGZvciAoYXV0byogdGhyZWFkIDogVGhyZWFkOjphbGxUaHJlYWRzKGxvY2tlcikp
IHsKKyAgICAgICAgICAgIGlmIChhdXRvIGlkID0gdGhyZWFkLT5pZCgpKQorICAgICAgICAgICAg
ICAgIGtub3duV2ViS2l0VGhyZWFkcy5hZGQoaWQpOworICAgICAgICB9CisgICAgfQorCisgICAg
SGFzaE1hcDxwaWRfdCwgU3RyaW5nPiBrbm93bldvcmtlclRocmVhZHM7CisgICAgeworICAgICAg
ICBMb2NrSG9sZGVyIGxvY2soV29ya2VyVGhyZWFkOjp3b3JrZXJUaHJlYWRzTXV0ZXgoKSk7Cisg
ICAgICAgIGZvciAoYXV0byogdGhyZWFkIDogV29ya2VyVGhyZWFkOjp3b3JrZXJUaHJlYWRzKGxv
Y2spKSB7CisgICAgICAgICAgICAvLyBJZ25vcmUgd29ya2VyIHRocmVhZHMgdGhhdCBoYXZlIG5v
dCBiZWVuIGZ1bGx5IHN0YXJ0ZWQgeWV0LgorICAgICAgICAgICAgaWYgKCF0aHJlYWQtPnRocmVh
ZCgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgLy8gRklYTUU6IEV4Y2x1ZGUg
dGhlIFJlc291cmNlVXNhZ2UgdGhyZWFkLgotICAgIC8vIEZJWE1FOiBFeGNsdWRlIHRoZSBTYW1w
bGluZ1Byb2ZpbGVyIHRocmVhZC4KLSAgICAvLyBGSVhNRTogQ2xhc3NpZnkgdXNhZ2UgcGVyIHRo
cmVhZC4KLSAgICBkYXRhLmNwdUV4Y2x1ZGluZ0RlYnVnZ2VyVGhyZWFkcyA9IGRhdGEuY3B1Owor
ICAgICAgICAgICAgaWYgKGF1dG8gaWQgPSB0aHJlYWQtPnRocmVhZCgpLT5pZCgpKQorICAgICAg
ICAgICAgICAgIGtub3duV29ya2VyVGhyZWFkcy5zZXQoaWQsIHRocmVhZC0+aWRlbnRpZmllcigp
Lmlzb2xhdGVkQ29weSgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGF1dG8gaXNEZWJ1Z2dl
clRocmVhZCA9IFsmXShwaWRfdCBpZCkgLT4gYm9vbCB7CisgICAgICAgIGlmIChpZCA9PSByZXNv
dXJjZVVzYWdlVGhyZWFkSUQpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyNpZiBFTkFCTEUo
U0FNUExJTkdfUFJPRklMRVIpCisgICAgICAgIGlmIChpZCA9PSBtX3NhbXBsaW5nUHJvZmlsZXJU
aHJlYWRJRCkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworI2VuZGlmCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9OworCisgICAgYXV0byBpc1dlYktpdFRocmVhZCA9IFsmXShwaWRfdCBp
ZCwgY29uc3QgU3RyaW5nJiBuYW1lKSAtPiBib29sIHsKKyAgICAgICAgaWYgKGtub3duV2ViS2l0
VGhyZWFkcy5jb250YWlucyhpZCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAg
ICAvLyBUaGUgYm1hbGxvYyBzY2F2ZW5nZXIgdGhyZWFkIGlzIGJlbG93IFdURi4gRGV0ZWN0IGl0
IGJ5IGl0cyBuYW1lLgorICAgICAgICBpZiAobmFtZSA9PSAiQk1TY2F2ZW5nZXIiKQorICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH07CisKKyAg
ICBmb3IgKGNvbnN0IGF1dG8mIGl0IDogdGhyZWFkSW5mb01hcCgpKSB7CisgICAgICAgIGlmICgh
aXQudmFsdWUuY3B1VXNhZ2UpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBmbG9h
dCBjcHVVc2FnZSA9IGl0LnZhbHVlLmNwdVVzYWdlLnZhbHVlKCk7CisgICAgICAgIHBpZF90IGlk
ID0gaXQua2V5OworICAgICAgICBkYXRhLmNwdSArPSBjcHVVc2FnZTsKKyAgICAgICAgaWYgKGlz
RGVidWdnZXJUaHJlYWQoaWQpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgZGF0
YS5jcHVFeGNsdWRpbmdEZWJ1Z2dlclRocmVhZHMgKz0gY3B1VXNhZ2U7CisKKyAgICAgICAgaWYg
KGdldHBpZCgpID09IGlkKQorICAgICAgICAgICAgZGF0YS5jcHVUaHJlYWRzLmFwcGVuZChUaHJl
YWRDUFVJbmZvIHsgIk1haW4gVGhyZWFkIl9zLCB7IH0sIGNwdVVzYWdlLCBUaHJlYWRDUFVJbmZv
OjpUeXBlOjpNYWlufSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIHRocmVh
ZElkZW50aWZpZXIgPSBrbm93bldvcmtlclRocmVhZHMuZ2V0KGlkKTsKKyAgICAgICAgICAgIGJv
b2wgaXNXb3JrZXJUaHJlYWQgPSAhdGhyZWFkSWRlbnRpZmllci5pc0VtcHR5KCk7CisgICAgICAg
ICAgICBTdHJpbmcgbmFtZSA9IGl0LnZhbHVlLm5hbWUudmFsdWVPcihlbXB0eVN0cmluZygpKTsK
KyAgICAgICAgICAgIFRocmVhZENQVUluZm86OlR5cGUgdHlwZSA9IChpc1dvcmtlclRocmVhZCB8
fCBpc1dlYktpdFRocmVhZChpZCwgbmFtZSkpID8gVGhyZWFkQ1BVSW5mbzo6VHlwZTo6V2ViS2l0
IDogVGhyZWFkQ1BVSW5mbzo6VHlwZTo6VW5rbm93bjsKKyAgICAgICAgICAgIGRhdGEuY3B1VGhy
ZWFkcy5hcHBlbmQoVGhyZWFkQ1BVSW5mbyB7IG5hbWUsIHRocmVhZElkZW50aWZpZXIsIGNwdVVz
YWdlLCB0eXBlIH0pOworICAgICAgICB9CisgICAgfQogfQogCiB2b2lkIFJlc291cmNlVXNhZ2VU
aHJlYWQ6OnBsYXRmb3JtQ29sbGVjdE1lbW9yeURhdGEoSlNDOjpWTSogdm0sIFJlc291cmNlVXNh
Z2VEYXRhJiBkYXRhKQo=
</data>
<flag name="review"
          id="422955"
          type_id="1"
          status="+"
          setter="aperez"
    />
          </attachment>
      

    </bug>

</bugzilla>