<?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>7080</bug_id>
          
          <creation_ts>2006-02-05 01:16:56 -0800</creation_ts>
          <short_desc>Provide some way to stop a JavaScript infinite loop</short_desc>
          <delta_ts>2020-08-03 03:29:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P1</priority>
          <bug_severity>Critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>6958</blocked>
    
    <blocked>3552</blocked>
    
    <blocked>6693</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Joost de Valk (AlthA)">joost</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>active.23.13</cc>
    
    <cc>bugzilla</cc>
    
    <cc>darin</cc>
    
    <cc>gavin.sharp</cc>
    
    <cc>jay</cc>
    
    <cc>krishnamurty.podipireddy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>31418</commentid>
    <comment_count>0</comment_count>
    <who name="Joost de Valk (AlthA)">joost</who>
    <bug_when>2006-02-05 01:16:56 -0800</bug_when>
    <thetext>At current, infinite javascript loops are really infinite, we need a way to detect and stop them.
This currently occurs in:

- bug 3552
- bug 6693
- bug 6958

This bug is here to track the development of a way to get out of this loop. All three bugs above have testcases, which could be used to test this behavior until their underlying bugs are fixed. All three of them have a root cause getting them into this infinite loop, so if these root causes are fixed they won&apos;t be useful for testing anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31579</commentid>
    <comment_count>1</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2006-02-06 09:13:54 -0800</bug_when>
    <thetext>In Radar as &lt;rdar://problem/3895579&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31758</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-02-07 13:30:36 -0800</bug_when>
    <thetext>*** Bug 6089 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42668</commentid>
    <comment_count>3</comment_count>
    <who name="Krishna">krishnamurty.podipireddy</who>
    <bug_when>2006-05-16 17:03:07 -0700</bug_when>
    <thetext>*** Bug 8949 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>45845</commentid>
    <comment_count>4</comment_count>
      <attachid>8863</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2006-06-15 16:28:38 -0700</bug_when>
    <thetext>Created attachment 8863
Hang detection

This implements the JSC part of a hang-detection implementation that works pretty much like the one in Mozilla.

Unfortunately, when turned on this causes a performance regression in ibench. The other approach I tried (using UNIX signals) proved to be complicated and error-prone and it too gave a performance regression (albeit a smaller one)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>45846</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-06-15 16:32:09 -0700</bug_when>
    <thetext>Off. It&apos;s going to be tricky to come up with a way to do this without slowing things down!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>45877</commentid>
    <comment_count>6</comment_count>
      <attachid>8863</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2006-06-15 19:43:53 -0700</bug_when>
    <thetext>Comment on attachment 8863
Hang detection

Clearing the review bit, since this was a perf. regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>45999</commentid>
    <comment_count>7</comment_count>
      <attachid>8872</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2006-06-16 16:08:28 -0700</bug_when>
    <thetext>Created attachment 8872
Much better patch

Here&apos;s a new patch that doesn&apos;t cause any measurable slowdown at all (Less than 0.2% on ibench)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46003</commentid>
    <comment_count>8</comment_count>
      <attachid>8872</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-06-16 16:31:06 -0700</bug_when>
    <thetext>Comment on attachment 8872
Much better patch

r=me

ggaren likes it too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46007</commentid>
    <comment_count>9</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-06-16 18:20:46 -0700</bug_when>
    <thetext>Committed as r14893.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46093</commentid>
    <comment_count>10</comment_count>
      <attachid>8886</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2006-06-17 08:28:11 -0700</bug_when>
    <thetext>Created attachment 8886
Add WebKit delegate</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46120</commentid>
    <comment_count>11</comment_count>
      <attachid>8886</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-06-17 17:16:44 -0700</bug_when>
    <thetext>Comment on attachment 8886
Add WebKit delegate

SCRIPT_TIMEOUT_TIME_MS should be a C++ const, not a macro.

The shouldInterruptScript functions could be const.

The WebDefaultUIDelegate is a pretty heavyweight way to make shouldInterruptJavaScript default to no. WebFrameBridge should just say return NO -- I don&apos;t think we need this method int the WebDefaultUIDelegate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46163</commentid>
    <comment_count>12</comment_count>
      <attachid>8902</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2006-06-18 09:42:32 -0700</bug_when>
    <thetext>Created attachment 8902
Address comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46169</commentid>
    <comment_count>13</comment_count>
      <attachid>8903</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2006-06-18 09:59:59 -0700</bug_when>
    <thetext>Created attachment 8903
Address Geoff&apos;s comments

I talked to Geoff on IRC and he had a couple of comments which this patch addresses.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46170</commentid>
    <comment_count>14</comment_count>
      <attachid>8903</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2006-06-18 10:02:16 -0700</bug_when>
    <thetext>Comment on attachment 8903
Address Geoff&apos;s comments

r=me

and the crowd goes wild</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8863</attachid>
            <date>2006-06-15 16:28:38 -0700</date>
            <delta_ts>2006-06-16 16:08:28 -0700</delta_ts>
            <desc>Hang detection</desc>
            <filename>hang-detection.txt</filename>
            <type>text/plain</type>
            <size>9252</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDE0ODg1
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTQgQEAKKzIwMDYtMDYt
MTYgIEFuZGVycyBDYXJsc3NvbiAgPGFjYXJsc3NvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cDovL2J1Z3ppbGxhLm9wZW5k
YXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD03MDgwCisgICAgICAgIFByb3ZpZGUgc29tZSB3YXkg
dG8gc3RvcCBhIEphdmFTY3JpcHQgaW5maW5pdGUgbG9vcAorICAgICAgICAKKyAgICAgICAgKiBr
anMvY29tcGxldGlvbi5oOgorICAgICAgICBBZGQgSW50ZXJydXB0ZWQgY29tcGxldGlvbiB0eXBl
LgorICAgICAgICAKKyAgICAgICAgKEtKUzo6KToKKyAgICAgICAgKiBranMvaW50ZXJwcmV0ZXIu
Y3BwOgorICAgICAgICAoS0pTOjpUaW1lb3V0Q2hlY2tlcjo6cmVzZXRUaW1lb3V0KToKKyAgICAg
ICAgKEtKUzo6VGltZW91dENoZWNrZXI6OmNoZWNrVGltZW91dCk6CisgICAgICAgIEFkZCBUaW1l
b3V0Q2hlY2tlciBjbGFzcyB3aGljaCBtYW5hZ2VzIHRoZSBwbGF0Zm9ybS1kZXBlbmRlbnQgcGFy
dHMgb2YKKyAgICAgICAga2VlcGluZyB0cmFjayBvZiB0aW1lLiBDdXJyZW50bHkgb25seSBpbXBs
ZW1lbnRlZCBmb3IgVU5JWC4KKyAgICAgICAgCisgICAgICAgIChLSlM6OkludGVycHJldGVyOjpJ
bnRlcnByZXRlcik6CisgICAgICAgIChLSlM6OkludGVycHJldGVyOjp+SW50ZXJwcmV0ZXIpOgor
ICAgICAgICBDcmVhdGUgYW5kIGRlc3Ryb3kgVGltZW91dENoZWNrZXIgb2JqZWN0LgorICAgICAg
ICAKKyAgICAgICAgKEtKUzo6SW50ZXJwcmV0ZXI6OmV2YWx1YXRlKToKKyAgICAgICAgcmVzZXQg
dGltZW91dC4KKyAgICAgICAgCisgICAgICAgIChLSlM6OkludGVycHJldGVyOjpyZXNldFRpbWVv
dXQpOgorICAgICAgICBDYWxsIFRpbWVvdXRDaGVja2VyLgorICAgICAgICAKKyAgICAgICAgKEtK
Uzo6SW50ZXJwcmV0ZXI6OmRvQ2hlY2tUaW1lb3V0KToKKyAgICAgICAgQ2FsbCBUaW1lb3V0Q2hl
Y2tlci4gSWYgd2UgdGltZWQgb3V0LCBjYWxsIEludGVycHJldGVyOjpzaG91bGRJbnRlcnJ1cHRT
Y3JpcHQuCisgICAgICAgIAorICAgICAgICAqIGtqcy9pbnRlcnByZXRlci5oOgorICAgICAgICAo
S0pTOjpJbnRlcnByZXRlcjo6c2V0VGltZW91dFRpbWUpOgorICAgICAgICBOZXcgZnVuY3Rpb24g
Zm9yIHNldHRpbmcgdGhlIHRpbWVvdXQgdGltZS4KKyAgICAgICAgCisgICAgICAgIChLSlM6Oklu
dGVycHJldGVyOjpzaG91bGRJbnRlcnJ1cHRTY3JpcHQpOgorICAgICAgICBOZXcgZnVuY3Rpb24g
d2hpY2ggcmV0dXJucyB3aGV0aGVyIGEgc2NyaXB0IHNob3VsZCBiZSBpbnRlcnJ1cHRlZC4KKyAg
ICAgICAgVGhpcyBmdW5jdGlvbiBpcyB2aXJ0dWFsIGFuZCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBz
dWJjbGFzc2VzIHRvIHBvcCB1cCBkaWFsb2dzIGZvciBleGFtcGxlLgorICAgICAgICAKKyAgICAg
ICAgKEtKUzo6SW50ZXJwcmV0ZXI6OmNoZWNrVGltZW91dCk6CisgICAgICAgIE5ldyBmdW5jdGlv
biB3aGljaCBnZXRzIGNhbGxlZCBieSBicmFuY2ggbm9kZXMuIEFmdGVyIGEgbnVtYmVyIG9mIGNh
bGxzLCBzdGFydCBtZWFzdXJpbmcgdGhlIHRpbWUuCisgICAgCisgICAgICAgICoga2pzL25vZGVz
LmNwcDoKKyAgICAgICAgKERvV2hpbGVOb2RlOjpleGVjdXRlKToKKyAgICAgICAgKFdoaWxlTm9k
ZTo6ZXhlY3V0ZSk6CisgICAgICAgIChGb3JOb2RlOjpleGVjdXRlKToKKyAgICAgICAgQ2FsbCBJ
bnRlcnByZXRlcjo6Y2hlY2tUaW1lb3V0IGFuZCByZXR1cm4gSW50ZXJydXB0ZWQgaWYgd2UgaGF2
ZSBhIHRpbWVvdXQuCisgICAgICAgIAorICAgICAgICAqIGtqcy90ZXN0a2pzLmNwcDoKKyAgICAg
ICAgKGRvSXQpOgorICAgICAgICBTZXQgYSBkZWZhdWx0IHRpbWVvdXQgdGltZSBpZiAtdCBpcyBw
YXNzZWQgdG8gdGVzdGtqcy4KKwogMjAwNi0wNi0xNSAgVGltb3RoeSBIYXRjaGVyICA8dGltb3Ro
eUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmYgYW5kIERhcmluLgpJbmRl
eDoga2pzL2NvbXBsZXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBranMvY29tcGxldGlvbi5oCShyZXZp
c2lvbiAxNDg4NSkKKysrIGtqcy9jb21wbGV0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcg
KzMzLDcgQEAgbmFtZXNwYWNlIEtKUyB7CiAgIC8qKgogICAgKiBDb21wbGV0aW9uIHR5cGVzLgog
ICAgKi8KLSAgZW51bSBDb21wbFR5cGUgeyBOb3JtYWwsIEJyZWFrLCBDb250aW51ZSwgUmV0dXJu
VmFsdWUsIFRocm93IH07CisgIGVudW0gQ29tcGxUeXBlIHsgTm9ybWFsLCBCcmVhaywgQ29udGlu
dWUsIFJldHVyblZhbHVlLCBUaHJvdywgSW50ZXJydXB0ZWQgfTsKIAogICAvKioKICAgICogQ29t
cGxldGlvbiBvYmplY3RzIGFyZSB1c2VkIHRvIGNvbnZleSB0aGUgcmV0dXJuIHN0YXR1cyBhbmQg
dmFsdWUKSW5kZXg6IGtqcy9pbnRlcnByZXRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2pzL2ludGVy
cHJldGVyLmNwcAkocmV2aXNpb24gMTQ4ODUpCisrKyBranMvaW50ZXJwcmV0ZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01MCwxMiArNTAsNTIgQEAKICNpbmNsdWRlICJydW50aW1lLmgiCiAjZW5k
aWYKIAorI2lmIEhBVkUoU1lTX1RJTUVfSCkKKyNpbmNsdWRlIDxzeXMvdGltZS5oPgorI2VuZGlm
CisKICNpbmNsdWRlIDxhc3NlcnQuaD4KICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVkZSA8c3Rk
aW8uaD4KIAogbmFtZXNwYWNlIEtKUyB7CiAKK2NsYXNzIFRpbWVvdXRDaGVja2VyIHsKK3B1Ymxp
YzoKKyAgICB2b2lkIHJlc2V0VGltZW91dCgpIAorICAgIHsKKyNpZiBIQVZFKFNZU19USU1FX0gp
CisgICAgICAgIG1fc3RhcnRUaW1lLnR2X3NlYyA9IDA7CisjZW5kaWYgICAgICAgIAorICAgIH0K
KyAgICAKKyAgICBib29sIGNoZWNrVGltZW91dChsb25nIHRpbWVvdXRUaW1lKSAKKyAgICB7Cisj
aWYgSEFWRShTWVNfVElNRV9IKQorICAgICAgaWYgKG1fc3RhcnRUaW1lLnR2X3NlYyA9PSAwKSB7
CisgICAgICAgICAgZ2V0dGltZW9mZGF5ICgmbV9zdGFydFRpbWUsIDApOworICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgIH0KKworICAgICAgc3RydWN0IHRpbWV2YWwgY3VycmVudFRpbWUs
IGVsYXBzZWRUaW1lOworICAgICAgZ2V0dGltZW9mZGF5ICgmY3VycmVudFRpbWUsIDApOworICAg
ICAgCisgICAgICB0aW1lcnN1YigmY3VycmVudFRpbWUsICZtX3N0YXJ0VGltZSwgJmVsYXBzZWRU
aW1lKTsgICAgCisgICAgICBsb25nIGVsYXBzZWQgPSBlbGFwc2VkVGltZS50dl9zZWMgKiAxMDAw
ICsgZWxhcHNlZFRpbWUudHZfdXNlYyAvIDEwMDA7CisgICAgICAKKyAgICAgIGlmIChlbGFwc2Vk
ID49IHRpbWVvdXRUaW1lKSB7CisgICAgICAgICAgcmVzZXRUaW1lb3V0KCk7CisgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICB9CisjZW5kaWYgICAgICAgIAorICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KK3ByaXZhdGU6CisjaWYgSEFWRShTWVNfVElNRV9IKQorICAgIHN0cnVjdCB0aW1l
dmFsIG1fc3RhcnRUaW1lOyAgICAKKyNlbmRpZgorfTsKKwogSW50ZXJwcmV0ZXIqIEludGVycHJl
dGVyOjpzX2hvb2sgPSAwOwogICAgIAogdHlwZWRlZiBIYXNoTWFwPEpTT2JqZWN0KiwgSW50ZXJw
cmV0ZXIqPiBJbnRlcnByZXRlck1hcDsKQEAgLTcwLDYgKzExMCw4IEBAIEludGVycHJldGVyOjpJ
bnRlcnByZXRlcihKU09iamVjdCogZ2xvYmEKICAgICAsIG1fZ2xvYmFsT2JqZWN0KGdsb2JhbE9i
amVjdCkKICAgICAsIG1fYXJndW1lbnRzUHJvcGVydHlOYW1lKCZhcmd1bWVudHNQcm9wZXJ0eU5h
bWUpCiAgICAgLCBtX3NwZWNpYWxQcm90b3R5cGVQcm9wZXJ0eU5hbWUoJnNwZWNpYWxQcm90b3R5
cGVQcm9wZXJ0eU5hbWUpCisgICAgLCBtX3RpbWVvdXRDaGVja2VyKG5ldyBUaW1lb3V0Q2hlY2tl
cikKKyAgICAsIG1fdGltZW91dFRpbWUoMCkKIHsKICAgICBpbml0KCk7CiB9CkBAIC03OSw2ICsx
MjEsOCBAQCBJbnRlcnByZXRlcjo6SW50ZXJwcmV0ZXIoKQogICAgICwgbV9nbG9iYWxPYmplY3Qo
bmV3IEpTT2JqZWN0KCkpCiAgICAgLCBtX2FyZ3VtZW50c1Byb3BlcnR5TmFtZSgmYXJndW1lbnRz
UHJvcGVydHlOYW1lKQogICAgICwgbV9zcGVjaWFsUHJvdG90eXBlUHJvcGVydHlOYW1lKCZzcGVj
aWFsUHJvdG90eXBlUHJvcGVydHlOYW1lKQorICAgICwgbV90aW1lb3V0Q2hlY2tlcihuZXcgVGlt
ZW91dENoZWNrZXIpCisgICAgLCBtX3RpbWVvdXRUaW1lKDApCiB7CiAgICAgaW5pdCgpOwogfQpA
QCAtMTExLDYgKzE1NSw4IEBAIEludGVycHJldGVyOjp+SW50ZXJwcmV0ZXIoKQogewogICAgIEpT
TG9jayBsb2NrOwogICAgIAorICAgIGRlbGV0ZSBtX3RpbWVvdXRDaGVja2VyOworICAgIAogICAg
IGlmIChtX2RlYnVnZ2VyKQogICAgICAgICBtX2RlYnVnZ2VyLT5kZXRhY2godGhpcyk7CiAKQEAg
LTI5OSw2ICszNDUsOCBAQCBDb21wbGV0aW9uIEludGVycHJldGVyOjpldmFsdWF0ZShjb25zdCBV
CiAgICAgCiAgICAgbV9yZWN1cnNpb24rKzsKICAgICAKKyAgICByZXNldFRpbWVvdXQoKTsKKyAg
ICAKICAgICBKU09iamVjdCogZ2xvYmFsT2JqID0gbV9nbG9iYWxPYmplY3Q7CiAgICAgSlNPYmpl
Y3QqIHRoaXNPYmogPSBnbG9iYWxPYmo7CiAgICAgCkBAIC02MjAsNiArNjY4LDIwIEBAIHZvaWQg
SW50ZXJwcmV0ZXI6OnJlc3RvcmVCdWlsdGlucyAoY29uc3QKICAgICBtX1VyaUVycm9yUHJvdG90
eXBlID0gYnVpbHRpbnMuX2ludGVybmFsLT5tX1VyaUVycm9yUHJvdG90eXBlOwogfQogCit2b2lk
IEludGVycHJldGVyOjpyZXNldFRpbWVvdXQoKQoreworICAgIG1fbnVtVGltZW91dENoZWNrcyA9
IDA7CisgICAgbV90aW1lb3V0Q2hlY2tlci0+cmVzZXRUaW1lb3V0KCk7Cit9CisKK2Jvb2wgSW50
ZXJwcmV0ZXI6OmRvQ2hlY2tUaW1lb3V0KCkKK3sgICAKKyAgICBpZiAobV90aW1lb3V0Q2hlY2tl
ci0+Y2hlY2tUaW1lb3V0KG1fdGltZW91dFRpbWUpKSAgICAgICAgICAgICAgCisgICAgICAgICAg
cmV0dXJuIHNob3VsZEludGVycnVwdFNjcmlwdCgpOworCisgICAgcmV0dXJuIGZhbHNlOworfQor
ICAgIAogU2F2ZWRCdWlsdGluczo6U2F2ZWRCdWlsdGlucygpIDogCiAgIF9pbnRlcm5hbCgwKQog
ewpJbmRleDoga2pzL2ludGVycHJldGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2pzL2ludGVycHJldGVy
LmgJKHJldmlzaW9uIDE0ODg1KQorKysga2pzL2ludGVycHJldGVyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTI0LDYgKzI0LDcgQEAKICNpZm5kZWYgX0tKU19JTlRFUlBSRVRFUl9IXwogI2RlZmluZSBf
S0pTX0lOVEVSUFJFVEVSX0hfCiAKKyNpbmNsdWRlICJBbHdheXNJbmxpbmUuaCIKICNpbmNsdWRl
ICJFeGVjU3RhdGUuaCIKICNpbmNsdWRlICJwcm90ZWN0LmgiCiAjaW5jbHVkZSAidmFsdWUuaCIK
QEAgLTM2LDcgKzM3LDggQEAgbmFtZXNwYWNlIEtKUyB7CiAgIGNsYXNzIFJ1bnRpbWVNZXRob2Q7
CiAgIGNsYXNzIFNhdmVkQnVpbHRpbnM7CiAgIGNsYXNzIFNjb3BlQ2hhaW47Ci0KKyAgY2xhc3Mg
VGltZW91dENoZWNrZXI7CisgIAogICBuYW1lc3BhY2UgQmluZGluZ3MgewogICAgIGNsYXNzIFJv
b3RPYmplY3Q7CiAgIH0KQEAgLTMyMiw2ICszMjQsMTUgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAg
Q29udGV4dCogY29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dDsgfQogICAgIAogICAg
IHN0YXRpYyBJbnRlcnByZXRlciogaW50ZXJwcmV0ZXJXaXRoR2xvYmFsT2JqZWN0KEpTT2JqZWN0
Kik7CisgICAgCisgICAgYm9vbCBjaGVja1RpbWVvdXQoKTsKKyAgICB2b2lkIHJlc2V0VGltZW91
dCgpOworICAgIAorICAgIHZvaWQgc2V0VGltZW91dFRpbWUobG9uZyB0aW1lb3V0VGltZSkgeyBt
X3RpbWVvdXRUaW1lID0gdGltZW91dFRpbWU7IH0KKyAgICAKK3Byb3RlY3RlZDoKKyAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkSW50ZXJydXB0U2NyaXB0KCkgeyByZXR1cm4gdHJ1ZTsgfQorICAgIAog
cHJpdmF0ZToKICAgICB2b2lkIGluaXQoKTsKICAgICAKQEAgLTM1NSw2ICszNjYsOCBAQCBwcml2
YXRlOgogICAgIENvbnRleHQqIG1fY29udGV4dDsKICAgICBDb21wYXRNb2RlIG1fY29tcGF0TW9k
ZTsKIAorICAgIHVuc2lnbmVkIG1fbnVtVGltZW91dENoZWNrczsKKyAgICAKICAgICBQcm90ZWN0
ZWRQdHI8SlNPYmplY3Q+IG1fT2JqZWN0OwogICAgIFByb3RlY3RlZFB0cjxKU09iamVjdD4gbV9G
dW5jdGlvbjsKICAgICBQcm90ZWN0ZWRQdHI8SlNPYmplY3Q+IG1fQXJyYXk7CkBAIC0zODgsOCAr
NDAxLDI2IEBAIHByaXZhdGU6CiAgICAgUHJvdGVjdGVkUHRyPEpTT2JqZWN0PiBtX1N5bnRheEVy
cm9yUHJvdG90eXBlOwogICAgIFByb3RlY3RlZFB0cjxKU09iamVjdD4gbV9UeXBlRXJyb3JQcm90
b3R5cGU7CiAgICAgUHJvdGVjdGVkUHRyPEpTT2JqZWN0PiBtX1VyaUVycm9yUHJvdG90eXBlOwor
ICAgIAorICAgIFRpbWVvdXRDaGVja2VyKiBtX3RpbWVvdXRDaGVja2VyOworICAgIGxvbmcgbV90
aW1lb3V0VGltZTsKKyAgICBib29sIGRvQ2hlY2tUaW1lb3V0KCk7CiAgIH07CiAKKyAgQUxXQVlT
X0lOTElORSBib29sIEludGVycHJldGVyOjpjaGVja1RpbWVvdXQoKQorICB7CisgICAgICBpZiAo
bV90aW1lb3V0VGltZSA9PSAwKQorICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgCisg
ICAgICBtX251bVRpbWVvdXRDaGVja3MrKzsKKyAgICAgIAorICAgICAgLy8gT25seSBkbyBhIGZ1
bGwgdGltZW91dCBjaGVjayBldmVyeSA0MDk2dGggdGltZSB3ZSBnZXQgaGVyZQorICAgICAgaWYg
KG1fbnVtVGltZW91dENoZWNrcyAmIDB4ZmZmKQorICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgIAorICAgICAgcmV0dXJuIGRvQ2hlY2tUaW1lb3V0KCk7CisgIH0KKyAgCiB9IC8vIG5hbWVz
cGFjZQogCiAjZW5kaWYgLy8gX0tKU19JTlRFUlBSRVRFUl9IXwpJbmRleDoga2pzL25vZGVzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBranMvbm9kZXMuY3BwCShyZXZpc2lvbiAxNDg4NSkKKysrIGtqcy9u
b2Rlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3MTIsMTEgKzE3MTIsMTYgQEAgQ29tcGxldGlv
biBEb1doaWxlTm9kZTo6ZXhlY3V0ZShFeGVjU3RhdAogICAgIGV4ZWMtPmNvbnRleHQoKS0+cHVz
aEl0ZXJhdGlvbigpOwogICAgIGMgPSBzdGF0ZW1lbnQtPmV4ZWN1dGUoZXhlYyk7CiAgICAgZXhl
Yy0+Y29udGV4dCgpLT5wb3BJdGVyYXRpb24oKTsKKyAgICAKKyAgICBpZiAoZXhlYy0+ZHluYW1p
Y0ludGVycHJldGVyKCktPmNoZWNrVGltZW91dCgpKQorICAgICAgICByZXR1cm4gQ29tcGxldGlv
bihJbnRlcnJ1cHRlZCk7CisKICAgICBpZiAoISgoYy5jb21wbFR5cGUoKSA9PSBDb250aW51ZSkg
JiYgbHMuY29udGFpbnMoYy50YXJnZXQoKSkpKSB7CiAgICAgICBpZiAoKGMuY29tcGxUeXBlKCkg
PT0gQnJlYWspICYmIGxzLmNvbnRhaW5zKGMudGFyZ2V0KCkpKQogICAgICAgICByZXR1cm4gQ29t
cGxldGlvbihOb3JtYWwsIDApOwogICAgICAgaWYgKGMuY29tcGxUeXBlKCkgIT0gTm9ybWFsKQog
ICAgICAgICByZXR1cm4gYzsKKyAgICAgIAogICAgIH0KICAgICBidiA9IGV4cHItPmV2YWx1YXRl
KGV4ZWMpOwogICAgIEtKU19DSEVDS0VYQ0VQVElPTgpAQCAtMTc1Niw2ICsxNzYxLDEwIEBAIENv
bXBsZXRpb24gV2hpbGVOb2RlOjpleGVjdXRlKEV4ZWNTdGF0ZSAKICAgICBleGVjLT5jb250ZXh0
KCktPnB1c2hJdGVyYXRpb24oKTsKICAgICBjID0gc3RhdGVtZW50LT5leGVjdXRlKGV4ZWMpOwog
ICAgIGV4ZWMtPmNvbnRleHQoKS0+cG9wSXRlcmF0aW9uKCk7CisKKyAgICBpZiAoZXhlYy0+ZHlu
YW1pY0ludGVycHJldGVyKCktPmNoZWNrVGltZW91dCgpKQorICAgICAgICByZXR1cm4gQ29tcGxl
dGlvbihJbnRlcnJ1cHRlZCk7CisgICAgCiAgICAgaWYgKGMuaXNWYWx1ZUNvbXBsZXRpb24oKSkK
ICAgICAgIHZhbHVlID0gYy52YWx1ZSgpOwogCkBAIC0xODA3LDYgKzE4MTYsMTAgQEAgQ29tcGxl
dGlvbiBGb3JOb2RlOjpleGVjdXRlKEV4ZWNTdGF0ZSAqZQogICAgICAgaWYgKGMuY29tcGxUeXBl
KCkgIT0gTm9ybWFsKQogICAgICAgcmV0dXJuIGM7CiAgICAgfQorICAgIAorICAgIGlmIChleGVj
LT5keW5hbWljSW50ZXJwcmV0ZXIoKS0+Y2hlY2tUaW1lb3V0KCkpCisgICAgICAgIHJldHVybiBD
b21wbGV0aW9uKEludGVycnVwdGVkKTsKKyAgICAKICAgICBpZiAoZXhwcjMpIHsKICAgICAgIHYg
PSBleHByMy0+ZXZhbHVhdGUoZXhlYyk7CiAgICAgICBLSlNfQ0hFQ0tFWENFUFRJT04KSW5kZXg6
IGtqcy90ZXN0a2pzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBranMvdGVzdGtqcy5jcHAJKHJldmlzaW9u
IDE0ODg1KQorKysga2pzL3Rlc3RranMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjcsMTAgKzIy
NywxNSBAQCBib29sIGRvSXQoaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAKICAgSW50ZXJwcmV0
ZXI6OnNldFNob3VsZFByaW50RXhjZXB0aW9ucyh0cnVlKTsKICAgCisgIAogICBmb3IgKGludCBp
ID0gMTsgaSA8IGFyZ2M7IGkrKykgewogICAgIGNvbnN0IGNoYXIqIGZpbGVOYW1lID0gYXJndltp
XTsKICAgICBpZiAoc3RyY21wKGZpbGVOYW1lLCAiLWYiKSA9PSAwKSAvLyBtb3ppbGxhIHRlc3Qg
ZHJpdmVyIHNjcmlwdCB1c2VzICItZiIgcHJlZml4IGZvciBmaWxlcwogICAgICAgY29udGludWU7
CisgICAgaWYgKHN0cmNtcChmaWxlTmFtZSwgIi10IikgPT0gMCkgeworICAgICAgaW50ZXJwLnNl
dFRpbWVvdXRUaW1lKDMwMDApOworICAgICAgY29udGludWU7CisgICAgfQogICAgIAogICAgIGNo
YXIqIHNjcmlwdCA9IGNyZWF0ZVN0cmluZ1dpdGhDb250ZW50c09mRmlsZShmaWxlTmFtZSk7CiAg
ICAgaWYgKCFzY3JpcHQpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8872</attachid>
            <date>2006-06-16 16:08:28 -0700</date>
            <delta_ts>2006-06-16 16:31:06 -0700</delta_ts>
            <desc>Much better patch</desc>
            <filename>hang-detection-final.txt</filename>
            <type>text/plain</type>
            <size>12841</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDE0ODkx
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjAgQEAKKzIwMDYtMDYt
MTcgIEFuZGVycyBDYXJsc3NvbiAgPGFjYXJsc3NvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cDovL2J1Z3ppbGxhLm9wZW5k
YXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD03MDgwCisgICAgICAgIFByb3ZpZGUgc29tZSB3YXkg
dG8gc3RvcCBhIEphdmFTY3JpcHQgaW5maW5pdGUgbG9vcAorICAgICAgICAKKyAgICAgICAgKiBr
anMvY29tcGxldGlvbi5oOgorICAgICAgICAoS0pTOjopOgorICAgICAgICBBZGQgSW50ZXJydXB0
ZWQgY29tcGxldGlvbiB0eXBlLgorICAgICAgICAKKyAgICAgICAgKiBranMvZnVuY3Rpb24uY3Bw
OgorICAgICAgICAoS0pTOjpGdW5jdGlvbkltcDo6Y2FsbEFzRnVuY3Rpb24pOgorICAgICAgICAo
S0pTOjpHbG9iYWxGdW5jSW1wOjpjYWxsQXNGdW5jdGlvbik6CisgICAgICAgIE9ubHkgc2V0IHRo
ZSBleGNlcHRpb24gb24gdGhlIG5ldyBFeGVjU3RhdGUgaWYgdGhlIGN1cnJlbnQgb25lIGhhcyBo
YWQgb25lLgorICAgICAgICAKKyAgICAgICAgKiBranMvaW50ZXJwcmV0ZXIuY3BwOgorICAgICAg
ICAoS0pTOjpUaW1lb3V0Q2hlY2tlcjo6c3RhcnRUaW1lb3V0Q2hlY2spOgorICAgICAgICAoS0pT
OjpUaW1lb3V0Q2hlY2tlcjo6c3RvcFRpbWVvdXRDaGVjayk6CisgICAgICAgIChLSlM6OlRpbWVv
dXRDaGVja2VyOjphbGFybUhhbmRsZXIpOgorICAgICAgICAoS0pTOjpUaW1lb3V0Q2hlY2tlcjo6
cGF1c2VUaW1lb3V0Q2hlY2spOgorICAgICAgICAoS0pTOjpUaW1lb3V0Q2hlY2tlcjo6cmVzdW1l
VGltZW91dENoZWNrKToKKyAgICAgICAgTmV3IFRpbWVvdXRDaGVja2VyIGNsYXNzIHdoaWNoIGhh
bmRsZXMgc2V0dGluZyBJbnRlcnByZXRlcjo6bV90aW1lZE91dCBmbGFnIGFmdGVyIGEgZ2l2ZW4K
KyAgICAgICAgcGVyaW9kIG9mIHRpbWUuIFRoaXMgY3VycmVudGx5IG9ubHkgd29ya3Mgb24gVW5p
eCBwbGF0Zm9ybXMgd2hlcmUgc2V0aXRpbWVyIGFuZCBzaWduYWxzIGFyZSB1c2VkLgorICAgICAg
ICAKKyAgICAgICAgKEtKUzo6SW50ZXJwcmV0ZXI6OkludGVycHJldGVyKToKKyAgICAgICAgSW5p
dGlhbGl6ZSBuZXcgbWVtYmVyIHZhcmlhYmxlcy4KKyAgICAgICAgCisgICAgICAgIChLSlM6Oklu
dGVycHJldGVyOjp+SW50ZXJwcmV0ZXIpOgorICAgICAgICBEZXN0cm95IHRoZSB0aW1lb3V0IGNo
ZWNrZXIuCisgICAgICAgIAorICAgICAgICAoS0pTOjpJbnRlcnByZXRlcjo6c3RhcnRUaW1lb3V0
Q2hlY2spOgorICAgICAgICAoS0pTOjpJbnRlcnByZXRlcjo6c3RvcFRpbWVvdXRDaGVjayk6Cisg
ICAgICAgIChLSlM6OkludGVycHJldGVyOjpwYXVzZVRpbWVvdXRDaGVjayk6CisgICAgICAgIChL
SlM6OkludGVycHJldGVyOjpyZXN1bWVUaW1lb3V0Q2hlY2spOgorICAgICAgICBDYWxsIHRoZSB0
aW1lb3V0IGNoZWNrZXIuCisgICAgICAgIAorICAgICAgICAoS0pTOjpJbnRlcnByZXRlcjo6aGFu
ZGxlVGltZW91dCk6CisgICAgICAgIENhbGxlZCBvbiB0aW1lb3V0LiBSZXNldHMgdGhlIG1fdGlt
ZWRPdXQgZmxhZyBhbmQgY2FsbHMgc2hvdWxkSW50ZXJydXB0U2NyaXB0LgorICAgICAgICAKKyAg
ICAgICAgKiBranMvaW50ZXJwcmV0ZXIuaDoKKyAgICAgICAgKEtKUzo6SW50ZXJwcmV0ZXI6OnNl
dFRpbWVvdXRUaW1lKToKKyAgICAgICAgTmV3IGZ1bmN0aW9uIGZvciBzZXR0aW5nIHRoZSB0aW1l
b3V0IHRpbWUuCisgICAgICAgIAorICAgICAgICAoS0pTOjpJbnRlcnByZXRlcjo6c2hvdWxkSW50
ZXJydXB0U2NyaXB0KToKKyAgICAgICAgTmV3IGZ1bmN0aW9uLiBUaGUgaWRlYSBpcyB0aGF0IHRo
aXMgc2hvdWxkIGJlIG92ZXJyaWRkZW4gYnkgc3ViY2xhc3NlcyBpbiBvcmRlciB0byBmb3IgZXhh
bXBsZQorICAgICAgICBwb3AgdXAgYSBkaWFsb2cgYXNraW5nIHRoZSB1c2VyIGlmIHRoZSBzY3Jp
cHQgc2hvdWxkIGJlIGludGVycnVwdGVkLgorICAgICAgICAKKyAgICAgICAgKEtKUzo6SW50ZXJw
cmV0ZXI6OmNoZWNrVGltZW91dCk6CisgICAgICAgIE5ldyBmdW5jdGlvbiB3aGljaCBjaGVja3Mg
dGhlIG1fdGltZWRPdXQgZmxhZyBhbmQgY2FsbHMgaGFuZGxlVGltZW91dCBpZiBpdCdzIHNldC4K
KyAgICAgICAgCisgICAgICAgICoga2pzL25vZGVzLmNwcDoKKyAgICAgICAgKERvV2hpbGVOb2Rl
OjpleGVjdXRlKToKKyAgICAgICAgKFdoaWxlTm9kZTo6ZXhlY3V0ZSk6CisgICAgICAgIChGb3JO
b2RlOjpleGVjdXRlKToKKyAgICAgICAgQ2FsbCBJbnRlcnByZXRlcjo6Y2hlY2tUaW1lb3V0IGFm
dGVyIGVhY2ggaXRlcmF0aW9uIG9mIHRoZSBsb29wLgorCiAyMDA2LTA2LTE1ICBUaW1vdGh5IEhh
dGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBHZW9mZiBh
bmQgRGFyaW4uCkluZGV4OiBranMvY29tcGxldGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtqcy9jb21w
bGV0aW9uLmgJKHJldmlzaW9uIDE0ODkxKQorKysga2pzL2NvbXBsZXRpb24uaAkod29ya2luZyBj
b3B5KQpAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgS0pTIHsKICAgLyoqCiAgICAqIENvbXBs
ZXRpb24gdHlwZXMuCiAgICAqLwotICBlbnVtIENvbXBsVHlwZSB7IE5vcm1hbCwgQnJlYWssIENv
bnRpbnVlLCBSZXR1cm5WYWx1ZSwgVGhyb3cgfTsKKyAgZW51bSBDb21wbFR5cGUgeyBOb3JtYWws
IEJyZWFrLCBDb250aW51ZSwgUmV0dXJuVmFsdWUsIFRocm93LCBJbnRlcnJ1cHRlZCB9OwogCiAg
IC8qKgogICAgKiBDb21wbGV0aW9uIG9iamVjdHMgYXJlIHVzZWQgdG8gY29udmV5IHRoZSByZXR1
cm4gc3RhdHVzIGFuZCB2YWx1ZQpJbmRleDoga2pzL2Z1bmN0aW9uLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBranMvZnVuY3Rpb24uY3BwCShyZXZpc2lvbiAxNDg5MSkKKysrIGtqcy9mdW5jdGlvbi5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTc0LDcgKzc0LDggQEAgSlNWYWx1ZSAqRnVuY3Rpb25JbXA6OmNh
bGxBc0Z1bmN0aW9uKEV4ZQogICBDb250ZXh0IGN0eChnbG9iYWxPYmosIGV4ZWMtPmR5bmFtaWNJ
bnRlcnByZXRlcigpLCB0aGlzT2JqLCBib2R5LmdldCgpLAogICAgICAgICAgICAgICAgICBjb2Rl
VHlwZSgpLCBleGVjLT5jb250ZXh0KCksIHRoaXMsICZhcmdzKTsKICAgRXhlY1N0YXRlIG5ld0V4
ZWMoZXhlYy0+ZHluYW1pY0ludGVycHJldGVyKCksICZjdHgpOwotICBuZXdFeGVjLnNldEV4Y2Vw
dGlvbihleGVjLT5leGNlcHRpb24oKSk7IC8vIGNvdWxkIGJlIG51bGwKKyAgaWYgKGV4ZWMtPmhh
ZEV4Y2VwdGlvbigpKQorICAgIG5ld0V4ZWMuc2V0RXhjZXB0aW9uKGV4ZWMtPmV4Y2VwdGlvbigp
KTsKIAogICAvLyBhc3NpZ24gdXNlciBzdXBwbGllZCBhcmd1bWVudHMgdG8gcGFyYW1ldGVycwog
ICBwcm9jZXNzUGFyYW1ldGVycygmbmV3RXhlYywgYXJncyk7CkBAIC04MDgsNyArODA5LDggQEAg
SlNWYWx1ZSAqR2xvYmFsRnVuY0ltcDo6Y2FsbEFzRnVuY3Rpb24oRQogICAgICAgICAgICAgICAg
ICAgICAgICBleGVjLT5jb250ZXh0KCkpOwogICAgICAgICAKICAgICAgICAgRXhlY1N0YXRlIG5l
d0V4ZWMoZXhlYy0+ZHluYW1pY0ludGVycHJldGVyKCksICZjdHgpOwotICAgICAgICBuZXdFeGVj
LnNldEV4Y2VwdGlvbihleGVjLT5leGNlcHRpb24oKSk7IC8vIGNvdWxkIGJlIG51bGwKKyAgICAg
ICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICAgICAgbmV3RXhlYy5zZXRFeGNl
cHRpb24oZXhlYy0+ZXhjZXB0aW9uKCkpOwogICAgICAgICAKICAgICAgICAgLy8gZXhlY3V0ZSB0
aGUgY29kZQogICAgICAgICBwcm9nTm9kZS0+cHJvY2Vzc1ZhckRlY2xzKCZuZXdFeGVjKTsKSW5k
ZXg6IGtqcy9pbnRlcnByZXRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2pzL2ludGVycHJldGVyLmNw
cAkocmV2aXNpb24gMTQ4OTEpCisrKyBranMvaW50ZXJwcmV0ZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC01MCwxMiArNTAsMTQ0IEBACiAjaW5jbHVkZSAicnVudGltZS5oIgogI2VuZGlmCiAKKyNp
ZiBIQVZFKFNZU19USU1FX0gpCisjaW5jbHVkZSA8c3lzL3RpbWUuaD4KKyNlbmRpZgorCiAjaW5j
bHVkZSA8YXNzZXJ0Lmg+CiAjaW5jbHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAK
IG5hbWVzcGFjZSBLSlMgewogCitjbGFzcyBUaW1lb3V0Q2hlY2tlciB7CitwdWJsaWM6CisgICAg
dm9pZCBzdGFydFRpbWVvdXRDaGVjayhJbnRlcnByZXRlciopOworICAgIHZvaWQgc3RvcFRpbWVv
dXRDaGVjayhJbnRlcnByZXRlciopOworICAgIHZvaWQgcGF1c2VUaW1lb3V0Q2hlY2soSW50ZXJw
cmV0ZXIqKTsKKyAgICB2b2lkIHJlc3VtZVRpbWVvdXRDaGVjayhJbnRlcnByZXRlciopOworCitw
cml2YXRlOgorI2lmIEhBVkUoU1lTX1RJTUVfSCkKKyAgICBzdGF0aWMgSW50ZXJwcmV0ZXIqIHNf
ZXhlY3V0aW5nSW50ZXJwcmV0ZXI7CisgICAgc3RhdGljIHZvaWQgYWxhcm1IYW5kbGVyKGludCk7
CisgICAgCisgICAgSW50ZXJwcmV0ZXIqIG1fb2xkSW50ZXJwcmV0ZXI7CisgICAgaXRpbWVydmFs
IG1fb2xkdHY7CisgICAgaXRpbWVydmFsIG1fcGF1c2V0djsgICAgCisgICAgdm9pZCAoKm1fb2xk
QWxhcm1IYW5kbGVyKShpbnQpOworI2VuZGlmCit9OworCisjaWYgSEFWRShTWVNfVElNRV9IKQor
SW50ZXJwcmV0ZXIqIFRpbWVvdXRDaGVja2VyOjpzX2V4ZWN1dGluZ0ludGVycHJldGVyID0gMDsK
KyNlbmRpZgorCit2b2lkIFRpbWVvdXRDaGVja2VyOjpzdGFydFRpbWVvdXRDaGVjayhJbnRlcnBy
ZXRlciAqaW50ZXJwcmV0ZXIpCit7ICAgIAorICAgIGlmICghaW50ZXJwcmV0ZXItPm1fdGltZW91
dFRpbWUpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBpbnRlcnByZXRlci0+bV9zdGFydFRp
bWVvdXRDaGVja0NvdW50Kys7CisgICAgCisjaWYgSEFWRShTWVNfVElNRV9IKQorICAgIGlmIChz
X2V4ZWN1dGluZ0ludGVycHJldGVyID09IGludGVycHJldGVyKQorICAgICAgICByZXR1cm47Cisg
ICAgCisgICAgLy8gQmxvY2sgc2lnbmFscworICAgIG1fb2xkQWxhcm1IYW5kbGVyID0gc2lnbmFs
KFNJR0FMUk0sIFNJR19JR04pOworCisgICAgbV9vbGRJbnRlcnByZXRlciA9IHNfZXhlY3V0aW5n
SW50ZXJwcmV0ZXI7CisgICAgc19leGVjdXRpbmdJbnRlcnByZXRlciA9IGludGVycHJldGVyOwor
ICAgIAorICAgIGl0aW1lcnZhbCB0diA9IHsKKyAgICAgIHsgaW50ZXJwcmV0ZXItPm1fdGltZW91
dFRpbWUgLyAxMDAwLCAoaW50ZXJwcmV0ZXItPm1fdGltZW91dFRpbWUgJSAxMDAwKSAqIDEwMDAg
fSwKKyAgICAgIHsgaW50ZXJwcmV0ZXItPm1fdGltZW91dFRpbWUgLyAxMDAwLCAoaW50ZXJwcmV0
ZXItPm1fdGltZW91dFRpbWUgJSAxMDAwKSAqIDEwMDAgfQorICAgIH07CisgICAgc2V0aXRpbWVy
KElUSU1FUl9SRUFMLCAmdHYsICZtX29sZHR2KTsKKyAgICAKKyAgICAvLyBVbmJsb2NrIHNpZ25h
bHMKKyAgICBzaWduYWwoU0lHQUxSTSwgYWxhcm1IYW5kbGVyKTsKKyNlbmRpZgorfQorCit2b2lk
IFRpbWVvdXRDaGVja2VyOjpzdG9wVGltZW91dENoZWNrKEludGVycHJldGVyKiBpbnRlcnByZXRl
cikKK3sKKyAgICBpZiAoIWludGVycHJldGVyLT5tX3RpbWVvdXRUaW1lKQorICAgICAgICByZXR1
cm47CisKKyAgICBBU1NFUlQoaW50ZXJwcmV0ZXItPm1fc3RhcnRUaW1lb3V0Q2hlY2tDb3VudCA+
IDApOworICAgIAorICAgIGludGVycHJldGVyLT5tX3N0YXJ0VGltZW91dENoZWNrQ291bnQtLTsK
KyAgICAKKyAgICBpZiAoaW50ZXJwcmV0ZXItPm1fc3RhcnRUaW1lb3V0Q2hlY2tDb3VudCAhPSAw
KQorICAgICAgICByZXR1cm47CisgICAgICAgIAorI2lmIEhBVkUoU1lTX1RJTUVfSCkKKyAgICBz
aWduYWwoU0lHQUxSTSwgU0lHX0lHTik7CisKKyAgICBzX2V4ZWN1dGluZ0ludGVycHJldGVyID0g
bV9vbGRJbnRlcnByZXRlcjsKKyAgICAgICAgCisgICAgc2V0aXRpbWVyKElUSU1FUl9SRUFMLCAm
bV9vbGR0diwgMEwpOworICAgIHNpZ25hbChTSUdBTFJNLCBtX29sZEFsYXJtSGFuZGxlcik7Cisj
ZW5kaWYgICAgCit9CisKKyNpZiBIQVZFKFNZU19USU1FX0gpCit2b2lkIFRpbWVvdXRDaGVja2Vy
OjphbGFybUhhbmRsZXIoaW50KSAKK3sKKyAgICBzX2V4ZWN1dGluZ0ludGVycHJldGVyLT5tX3Rp
bWVkT3V0ID0gdHJ1ZTsKK30KKyNlbmRpZgorCit2b2lkIFRpbWVvdXRDaGVja2VyOjpwYXVzZVRp
bWVvdXRDaGVjayhJbnRlcnByZXRlciogaW50ZXJwcmV0ZXIpCit7CisgICAgQVNTRVJUKGludGVy
cHJldGVyID09IHNfZXhlY3V0aW5nSW50ZXJwcmV0ZXIpOworCisjaWYgSEFWRShTWVNfVElNRV9I
KQorICAgIHZvaWQgKCpjdXJyZW50U2lnbmFsSGFuZGxlcikoaW50KTsKKyAgIAorICAgIC8vIEJs
b2NrIHNpZ25hbAorICAgIGN1cnJlbnRTaWduYWxIYW5kbGVyID0gc2lnbmFsKFNJR0FMUk0sIFNJ
R19JR04pOworICAgIAorICAgIGlmIChjdXJyZW50U2lnbmFsSGFuZGxlciAhPSBhbGFybUhhbmRs
ZXIpIHsKKyAgICAgICAgc2lnbmFsKFNJR0FMUk0sIGN1cnJlbnRTaWduYWxIYW5kbGVyKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHNldGl0aW1lcihJVElNRVJfUkVBTCwgJm1fcGF1
c2V0diwgMEwpOworI2VuZGlmCisKKyAgICBpbnRlcnByZXRlci0+bV9wYXVzZVRpbWVvdXRDaGVj
a0NvdW50Kys7Cit9CisKK3ZvaWQgVGltZW91dENoZWNrZXI6OnJlc3VtZVRpbWVvdXRDaGVjayhJ
bnRlcnByZXRlciogaW50ZXJwcmV0ZXIpCit7CisgICAgQVNTRVJUKGludGVycHJldGVyID09IHNf
ZXhlY3V0aW5nSW50ZXJwcmV0ZXIpOworCisgICAgaW50ZXJwcmV0ZXItPm1fcGF1c2VUaW1lb3V0
Q2hlY2tDb3VudC0tOworCisgICAgaWYgKGludGVycHJldGVyLT5tX3BhdXNlVGltZW91dENoZWNr
Q291bnQgIT0gMCkKKyAgICAgICAgcmV0dXJuOworCisjaWYgSEFWRShTWVNfVElNRV9IKQorICAg
IHZvaWQgKCpjdXJyZW50U2lnbmFsSGFuZGxlcikoaW50KTsKKyAgIAorICAgIC8vIENoZWNrIHNv
IHdlIGhhdmUgdGhlIHJpZ2h0IGhhbmRsZXIKKyAgICBjdXJyZW50U2lnbmFsSGFuZGxlciA9IHNp
Z25hbChTSUdBTFJNLCBTSUdfSUdOKTsKKyAgICAKKyAgICBpZiAoY3VycmVudFNpZ25hbEhhbmRs
ZXIgIT0gU0lHX0lHTikgeworICAgICAgICBzaWduYWwoU0lHQUxSTSwgY3VycmVudFNpZ25hbEhh
bmRsZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc2V0aXRpbWVyKElUSU1FUl9S
RUFMLCAwTCwgJm1fcGF1c2V0dik7ICAgIAorCisgICAgLy8gVW5ibG9jayBzaWduYWwKKyAgICBj
dXJyZW50U2lnbmFsSGFuZGxlciA9IHNpZ25hbChTSUdBTFJNLCBTSUdfSUdOKTsgICAgCisjZW5k
aWYKK30KKwogSW50ZXJwcmV0ZXIqIEludGVycHJldGVyOjpzX2hvb2sgPSAwOwogICAgIAogdHlw
ZWRlZiBIYXNoTWFwPEpTT2JqZWN0KiwgSW50ZXJwcmV0ZXIqPiBJbnRlcnByZXRlck1hcDsKQEAg
LTY2LDE5ICsxOTgsMjkgQEAgc3RhdGljIGlubGluZSBJbnRlcnByZXRlck1hcCAmaW50ZXJwcmV0
ZQogfQogICAgIAogSW50ZXJwcmV0ZXI6OkludGVycHJldGVyKEpTT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpCi0gICAgOiBtX2dsb2JhbEV4ZWModGhpcywgMCkKKyAgICA6IG1fdGltZW91dFRpbWUoMCkK
KyAgICAsIG1fZ2xvYmFsRXhlYyh0aGlzLCAwKQogICAgICwgbV9nbG9iYWxPYmplY3QoZ2xvYmFs
T2JqZWN0KQogICAgICwgbV9hcmd1bWVudHNQcm9wZXJ0eU5hbWUoJmFyZ3VtZW50c1Byb3BlcnR5
TmFtZSkKICAgICAsIG1fc3BlY2lhbFByb3RvdHlwZVByb3BlcnR5TmFtZSgmc3BlY2lhbFByb3Rv
dHlwZVByb3BlcnR5TmFtZSkKKyAgICAsIG1fdGltZW91dENoZWNrZXIoMCkKKyAgICAsIG1fdGlt
ZWRPdXQoZmFsc2UpCisgICAgLCBtX3N0YXJ0VGltZW91dENoZWNrQ291bnQoMCkKKyAgICAsIG1f
cGF1c2VUaW1lb3V0Q2hlY2tDb3VudCgwKQogewogICAgIGluaXQoKTsKIH0KIAogSW50ZXJwcmV0
ZXI6OkludGVycHJldGVyKCkKLSAgICA6IG1fZ2xvYmFsRXhlYyh0aGlzLCAwKQorICAgIDogbV90
aW1lb3V0VGltZSgwKQorICAgICwgbV9nbG9iYWxFeGVjKHRoaXMsIDApCiAgICAgLCBtX2dsb2Jh
bE9iamVjdChuZXcgSlNPYmplY3QoKSkKICAgICAsIG1fYXJndW1lbnRzUHJvcGVydHlOYW1lKCZh
cmd1bWVudHNQcm9wZXJ0eU5hbWUpCiAgICAgLCBtX3NwZWNpYWxQcm90b3R5cGVQcm9wZXJ0eU5h
bWUoJnNwZWNpYWxQcm90b3R5cGVQcm9wZXJ0eU5hbWUpCisgICAgLCBtX3RpbWVvdXRDaGVja2Vy
KDApCisgICAgLCBtX3RpbWVkT3V0KGZhbHNlKQorICAgICwgbV9zdGFydFRpbWVvdXRDaGVja0Nv
dW50KDApCisgICAgLCBtX3BhdXNlVGltZW91dENoZWNrQ291bnQoMCkKIHsKICAgICBpbml0KCk7
CiB9CkBAIC0xMTEsNiArMjUzLDExIEBAIEludGVycHJldGVyOjp+SW50ZXJwcmV0ZXIoKQogewog
ICAgIEpTTG9jayBsb2NrOwogICAgIAorICAgIEFTU0VSVCAobV9zdGFydFRpbWVvdXRDaGVja0Nv
dW50ID09IDApOworICAgIEFTU0VSVCAobV9wYXVzZVRpbWVvdXRDaGVja0NvdW50ID09IDApOwor
ICAgIAorICAgIGRlbGV0ZSBtX3RpbWVvdXRDaGVja2VyOworICAgIAogICAgIGlmIChtX2RlYnVn
Z2VyKQogICAgICAgICBtX2RlYnVnZ2VyLT5kZXRhY2godGhpcyk7CiAKQEAgLTYyMCw2ICs3Njcs
NDMgQEAgdm9pZCBJbnRlcnByZXRlcjo6cmVzdG9yZUJ1aWx0aW5zIChjb25zdAogICAgIG1fVXJp
RXJyb3JQcm90b3R5cGUgPSBidWlsdGlucy5faW50ZXJuYWwtPm1fVXJpRXJyb3JQcm90b3R5cGU7
CiB9CiAKK3ZvaWQgSW50ZXJwcmV0ZXI6OnN0YXJ0VGltZW91dENoZWNrKCkKK3sKKyAgICBpZiAo
IW1fdGltZW91dENoZWNrZXIpCisgICAgICAgIG1fdGltZW91dENoZWNrZXIgPSBuZXcgVGltZW91
dENoZWNrZXI7CisgICAgCisgICAgbV90aW1lb3V0Q2hlY2tlci0+c3RhcnRUaW1lb3V0Q2hlY2so
dGhpcyk7Cit9CisKK3ZvaWQgSW50ZXJwcmV0ZXI6OnN0b3BUaW1lb3V0Q2hlY2soKQoreworICAg
IEFTU0VSVChtX3RpbWVvdXRDaGVja2VyKTsKKyAgICAKKyAgICBtX3RpbWVvdXRDaGVja2VyLT5z
dG9wVGltZW91dENoZWNrKHRoaXMpOworfQorCit2b2lkIEludGVycHJldGVyOjpwYXVzZVRpbWVv
dXRDaGVjaygpCit7CisgICAgQVNTRVJUKG1fdGltZW91dENoZWNrZXIpOworICAgIAorICAgIG1f
dGltZW91dENoZWNrZXItPnBhdXNlVGltZW91dENoZWNrKHRoaXMpOworfQorCit2b2lkIEludGVy
cHJldGVyOjpyZXN1bWVUaW1lb3V0Q2hlY2soKQoreworICAgIEFTU0VSVChtX3RpbWVvdXRDaGVj
a2VyKTsKKworICAgIG1fdGltZW91dENoZWNrZXItPnJlc3VtZVRpbWVvdXRDaGVjayh0aGlzKTsK
K30KKworYm9vbCBJbnRlcnByZXRlcjo6aGFuZGxlVGltZW91dCgpCit7CisgICAgbV90aW1lZE91
dCA9IGZhbHNlOworICAgIAorICAgIHJldHVybiBzaG91bGRJbnRlcnJ1cHRTY3JpcHQoKTsKK30K
KworCiBTYXZlZEJ1aWx0aW5zOjpTYXZlZEJ1aWx0aW5zKCkgOiAKICAgX2ludGVybmFsKDApCiB7
CkluZGV4OiBranMvaW50ZXJwcmV0ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBranMvaW50ZXJwcmV0ZXIu
aAkocmV2aXNpb24gMTQ4OTEpCisrKyBranMvaW50ZXJwcmV0ZXIuaAkod29ya2luZyBjb3B5KQpA
QCAtMzYsNyArMzYsOCBAQCBuYW1lc3BhY2UgS0pTIHsKICAgY2xhc3MgUnVudGltZU1ldGhvZDsK
ICAgY2xhc3MgU2F2ZWRCdWlsdGluczsKICAgY2xhc3MgU2NvcGVDaGFpbjsKLQorICBjbGFzcyBU
aW1lb3V0Q2hlY2tlcjsKKyAgCiAgIG5hbWVzcGFjZSBCaW5kaW5ncyB7CiAgICAgY2xhc3MgUm9v
dE9iamVjdDsKICAgfQpAQCAtNDksNiArNTAsNyBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICovCiAg
IGNsYXNzIEludGVycHJldGVyIHsKICAgICAgIGZyaWVuZCBjbGFzcyBDb2xsZWN0b3I7CisgICAg
ICBmcmllbmQgY2xhc3MgVGltZW91dENoZWNrZXI7CiAgIHB1YmxpYzoKICAgICAvKioKICAgICAg
KiBDcmVhdGVzIGEgbmV3IGludGVycHJldGVyLiBUaGUgc3VwcGxpZWQgb2JqZWN0IHdpbGwgYmUg
dXNlZCBhcyB0aGUgZ2xvYmFsCkBAIC0zMjIsNyArMzI0LDIzIEBAIG5hbWVzcGFjZSBLSlMgewog
ICAgIENvbnRleHQqIGNvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQ7IH0KICAgICAK
ICAgICBzdGF0aWMgSW50ZXJwcmV0ZXIqIGludGVycHJldGVyV2l0aEdsb2JhbE9iamVjdChKU09i
amVjdCopOworICAgIAorICAgIHZvaWQgc2V0VGltZW91dFRpbWUodW5zaWduZWQgdGltZW91dFRp
bWUpIHsgbV90aW1lb3V0VGltZSA9IHRpbWVvdXRUaW1lOyB9CisKKyAgICB2b2lkIHN0YXJ0VGlt
ZW91dENoZWNrKCk7CisgICAgdm9pZCBzdG9wVGltZW91dENoZWNrKCk7CisKKyAgICB2b2lkIHBh
dXNlVGltZW91dENoZWNrKCk7CisgICAgdm9pZCByZXN1bWVUaW1lb3V0Q2hlY2soKTsKKyAgICAK
KyAgICBib29sIGNoZWNrVGltZW91dCgpOworICAgIAorcHJvdGVjdGVkOgorICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRJbnRlcnJ1cHRTY3JpcHQoKSB7IHJldHVybiB0cnVlOyB9CisgICAgbG9uZyBt
X3RpbWVvdXRUaW1lOworCiBwcml2YXRlOgorICAgIGJvb2wgaGFuZGxlVGltZW91dCgpOwogICAg
IHZvaWQgaW5pdCgpOwogICAgIAogICAgIC8qKgpAQCAtMzU1LDYgKzM3MywxMiBAQCBwcml2YXRl
OgogICAgIENvbnRleHQqIG1fY29udGV4dDsKICAgICBDb21wYXRNb2RlIG1fY29tcGF0TW9kZTsK
IAorICAgIFRpbWVvdXRDaGVja2VyKiBtX3RpbWVvdXRDaGVja2VyOworICAgIGJvb2wgbV90aW1l
ZE91dDsKKworICAgIHVuc2lnbmVkIG1fc3RhcnRUaW1lb3V0Q2hlY2tDb3VudDsKKyAgICB1bnNp
Z25lZCBtX3BhdXNlVGltZW91dENoZWNrQ291bnQ7CisKICAgICBQcm90ZWN0ZWRQdHI8SlNPYmpl
Y3Q+IG1fT2JqZWN0OwogICAgIFByb3RlY3RlZFB0cjxKU09iamVjdD4gbV9GdW5jdGlvbjsKICAg
ICBQcm90ZWN0ZWRQdHI8SlNPYmplY3Q+IG1fQXJyYXk7CkBAIC0zOTAsNiArNDE0LDE0IEBAIHBy
aXZhdGU6CiAgICAgUHJvdGVjdGVkUHRyPEpTT2JqZWN0PiBtX1VyaUVycm9yUHJvdG90eXBlOwog
ICB9OwogCisgIGlubGluZSBib29sIEludGVycHJldGVyOjpjaGVja1RpbWVvdXQoKQorICB7Cisg
ICAgaWYgKCFtX3RpbWVkT3V0KQorICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIGhh
bmRsZVRpbWVvdXQoKTsKKyAgfQorICAKIH0gLy8gbmFtZXNwYWNlCiAKICNlbmRpZiAvLyBfS0pT
X0lOVEVSUFJFVEVSX0hfCkluZGV4OiBranMvbm9kZXMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtqcy9u
b2Rlcy5jcHAJKHJldmlzaW9uIDE0ODkxKQorKysga2pzL25vZGVzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTcxMiw2ICsxNzEyLDEwIEBAIENvbXBsZXRpb24gRG9XaGlsZU5vZGU6OmV4ZWN1dGUo
RXhlY1N0YXQKICAgICBleGVjLT5jb250ZXh0KCktPnB1c2hJdGVyYXRpb24oKTsKICAgICBjID0g
c3RhdGVtZW50LT5leGVjdXRlKGV4ZWMpOwogICAgIGV4ZWMtPmNvbnRleHQoKS0+cG9wSXRlcmF0
aW9uKCk7CisgICAgCisgICAgaWYgKGV4ZWMtPmR5bmFtaWNJbnRlcnByZXRlcigpLT5jaGVja1Rp
bWVvdXQoKSkKKyAgICAgICAgcmV0dXJuIENvbXBsZXRpb24oSW50ZXJydXB0ZWQpOworCiAgICAg
aWYgKCEoKGMuY29tcGxUeXBlKCkgPT0gQ29udGludWUpICYmIGxzLmNvbnRhaW5zKGMudGFyZ2V0
KCkpKSkgewogICAgICAgaWYgKChjLmNvbXBsVHlwZSgpID09IEJyZWFrKSAmJiBscy5jb250YWlu
cyhjLnRhcmdldCgpKSkKICAgICAgICAgcmV0dXJuIENvbXBsZXRpb24oTm9ybWFsLCAwKTsKQEAg
LTE3NTYsNiArMTc2MCwxMCBAQCBDb21wbGV0aW9uIFdoaWxlTm9kZTo6ZXhlY3V0ZShFeGVjU3Rh
dGUgCiAgICAgZXhlYy0+Y29udGV4dCgpLT5wdXNoSXRlcmF0aW9uKCk7CiAgICAgYyA9IHN0YXRl
bWVudC0+ZXhlY3V0ZShleGVjKTsKICAgICBleGVjLT5jb250ZXh0KCktPnBvcEl0ZXJhdGlvbigp
OworCisgICAgaWYgKGV4ZWMtPmR5bmFtaWNJbnRlcnByZXRlcigpLT5jaGVja1RpbWVvdXQoKSkK
KyAgICAgICAgcmV0dXJuIENvbXBsZXRpb24oSW50ZXJydXB0ZWQpOworICAgIAogICAgIGlmIChj
LmlzVmFsdWVDb21wbGV0aW9uKCkpCiAgICAgICB2YWx1ZSA9IGMudmFsdWUoKTsKIApAQCAtMTgw
Nyw2ICsxODE1LDEwIEBAIENvbXBsZXRpb24gRm9yTm9kZTo6ZXhlY3V0ZShFeGVjU3RhdGUgKmUK
ICAgICAgIGlmIChjLmNvbXBsVHlwZSgpICE9IE5vcm1hbCkKICAgICAgIHJldHVybiBjOwogICAg
IH0KKyAgICAKKyAgICBpZiAoZXhlYy0+ZHluYW1pY0ludGVycHJldGVyKCktPmNoZWNrVGltZW91
dCgpKQorICAgICAgICByZXR1cm4gQ29tcGxldGlvbihJbnRlcnJ1cHRlZCk7CisgICAgCiAgICAg
aWYgKGV4cHIzKSB7CiAgICAgICB2ID0gZXhwcjMtPmV2YWx1YXRlKGV4ZWMpOwogICAgICAgS0pT
X0NIRUNLRVhDRVBUSU9OCg==
</data>
<flag name="review"
          id="2588"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8886</attachid>
            <date>2006-06-17 08:28:11 -0700</date>
            <delta_ts>2006-06-18 09:42:32 -0700</delta_ts>
            <desc>Add WebKit delegate</desc>
            <filename>hang-detection-webcore.txt</filename>
            <type>text/plain</type>
            <size>13683</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0ODk2KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMDYtMDYtMTcgIEFuZGVycyBD
YXJsc3NvbiAgPGFjYXJsc3NvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBranMvaW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAo
S0pTOjpUaW1lb3V0Q2hlY2tlcjo6cGF1c2VUaW1lb3V0Q2hlY2spOgorICAgICAgICBEbyBub3Ro
aW5nIGlmIHRoZSB0aW1lb3V0IGNoZWNrIGhhc24ndCBiZWVuIHN0YXJ0ZWQuCisgICAgICAgIAor
ICAgICAgICAoS0pTOjpUaW1lb3V0Q2hlY2tlcjo6cmVzdW1lVGltZW91dENoZWNrKToKKyAgICAg
ICAgRG8gbm90aGluZyBpZiB0aGUgdGltZW91dCBjaGVjayBoYXNuJ3QgYmVlbiBzdGFydGVkLgor
ICAgICAgICBVc2UgdGhlIHJpZ2h0IHNpZ25hbCBoYW5kbGVyIHdoZW4gdW5ibG9ja2luZy4KKyAg
ICAgICAgCisgICAgICAgIChLSlM6OkludGVycHJldGVyOjpoYW5kbGVUaW1lb3V0KToKKyAgICAg
ICAgcGF1c2UvcmVzdW1lIHRoZSB0aW1lb3V0IGNoZWNrIGFyb3VuZCB0aGUgY2FsbCB0bworICAg
ICAgICBzaG91bGRJbnRlcnJ1cHRTY3JpcHQoKS4KKyAgICAgICAgCiAyMDA2LTA2LTE3ICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBraWx6ZXIubmV0PgogCiAgICAgICAgIFJldmlld2VkIGJ5IGdn
YXJlbi4KSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9pbnRlcnByZXRlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gSmF2YVNjcmlwdENvcmUva2pzL2ludGVycHJldGVyLmNwcAkocmV2aXNpb24gMTQ4OTYp
CisrKyBKYXZhU2NyaXB0Q29yZS9ranMvaW50ZXJwcmV0ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNDIsNiArMTQyLDkgQEAgdm9pZCBUaW1lb3V0Q2hlY2tlcjo6YWxhcm1IYW5kbGVyKGludCkg
CiAKIHZvaWQgVGltZW91dENoZWNrZXI6OnBhdXNlVGltZW91dENoZWNrKEludGVycHJldGVyKiBp
bnRlcnByZXRlcikKIHsKKyAgICBpZiAoaW50ZXJwcmV0ZXItPm1fc3RhcnRUaW1lb3V0Q2hlY2tD
b3VudCA9PSAwKQorICAgICAgICByZXR1cm47CisKICAgICBBU1NFUlQoaW50ZXJwcmV0ZXIgPT0g
c19leGVjdXRpbmdJbnRlcnByZXRlcik7CiAKICNpZiBIQVZFKFNZU19USU1FX0gpCkBAIC0xNjMs
NiArMTY2LDkgQEAgdm9pZCBUaW1lb3V0Q2hlY2tlcjo6cGF1c2VUaW1lb3V0Q2hlY2soSQogCiB2
b2lkIFRpbWVvdXRDaGVja2VyOjpyZXN1bWVUaW1lb3V0Q2hlY2soSW50ZXJwcmV0ZXIqIGludGVy
cHJldGVyKQogeworICAgIGlmIChpbnRlcnByZXRlci0+bV9zdGFydFRpbWVvdXRDaGVja0NvdW50
ID09IDApCisgICAgICAgIHJldHVybjsKKwogICAgIEFTU0VSVChpbnRlcnByZXRlciA9PSBzX2V4
ZWN1dGluZ0ludGVycHJldGVyKTsKIAogICAgIGludGVycHJldGVyLT5tX3BhdXNlVGltZW91dENo
ZWNrQ291bnQtLTsKQEAgLTE4NCw3ICsxOTAsNyBAQCB2b2lkIFRpbWVvdXRDaGVja2VyOjpyZXN1
bWVUaW1lb3V0Q2hlY2soCiAgICAgc2V0aXRpbWVyKElUSU1FUl9SRUFMLCAwTCwgJm1fcGF1c2V0
dik7ICAgIAogCiAgICAgLy8gVW5ibG9jayBzaWduYWwKLSAgICBjdXJyZW50U2lnbmFsSGFuZGxl
ciA9IHNpZ25hbChTSUdBTFJNLCBTSUdfSUdOKTsgICAgCisgICAgY3VycmVudFNpZ25hbEhhbmRs
ZXIgPSBzaWduYWwoU0lHQUxSTSwgYWxhcm1IYW5kbGVyKTsgICAgCiAjZW5kaWYKIH0KIApAQCAt
Nzk5LDggKzgwNSwxMiBAQCB2b2lkIEludGVycHJldGVyOjpyZXN1bWVUaW1lb3V0Q2hlY2soKQog
Ym9vbCBJbnRlcnByZXRlcjo6aGFuZGxlVGltZW91dCgpCiB7CiAgICAgbV90aW1lZE91dCA9IGZh
bHNlOworCisgICAgcGF1c2VUaW1lb3V0Q2hlY2soKTsKKyAgICBib29sIHJldHZhbCA9IHNob3Vs
ZEludGVycnVwdFNjcmlwdCgpOworICAgIHJlc3VtZVRpbWVvdXRDaGVjaygpOwogICAgIAotICAg
IHJldHVybiBzaG91bGRJbnRlcnJ1cHRTY3JpcHQoKTsKKyAgICByZXR1cm4gcmV0dmFsOwogfQog
CiAKSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdl
TG9nCShyZXZpc2lvbiAxNDg5NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMzggQEAKKzIwMDYtMDYtMTcgIEFuZGVycyBDYXJsc3NvbiAgPGFjYXJsc3Nv
bkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9ranNfYmluZGluZy5jcHA6CisgICAgICAgIChLSlM6OlNjcmlw
dEludGVycHJldGVyOjpTY3JpcHRJbnRlcnByZXRlcik6CisgICAgICAgIFNldCB0aGUgZGVmYXVs
dCBzY3JpcHQgdGltZW91dC4KKyAgICAgICAgCisgICAgICAgIChLSlM6OlNjcmlwdEludGVycHJl
dGVyOjpzaG91bGRJbnRlcnJ1cHRTY3JpcHQpOgorICAgICAgICBOZXcgZnVuY3Rpb24gd2hpY2gg
YXNrcyB0aGUgZnJhbWUgaWYgdGhlIHNjcmlwdCBzaG91bGQgYmUgaW50ZXJydXB0ZWQuCisgICAg
ICAgIAorICAgICAgICAqIGJpbmRpbmdzL2pzL2tqc19iaW5kaW5nLmg6CisgICAgICAgICAgICAg
ICAgCisgICAgICAgICogYmluZGluZ3MvanMva2pzX2V2ZW50cy5jcHA6CisgICAgICAgIChLSlM6
OkpTQWJzdHJhY3RFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudCk6CisgICAgICAgICogYmluZGlu
Z3MvanMva2pzX3Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktKU1Byb3h5OjpldmFsdWF0
ZSk6CisgICAgICAgIEFkZCBjYWxscyB0byBzdGFydFRpbWVvdXRDaGVjay9zdG9wVGltZW91dENo
ZWNrCisgICAgICAgIAorICAgICAgICAqIGJpbmRpbmdzL2pzL2tqc193aW5kb3cuY3BwOgorICAg
ICAgICAoS0pTOjpXaW5kb3dGdW5jOjpjYWxsQXNGdW5jdGlvbik6CisgICAgICAgIEFkZCBjYWxs
cyB0byBwYXVzZVRpbWVvdXRDaGVjay91bnBhdXNlVGltZW91dENoZWNrIAorICAgICAgICAKKyAg
ICAgICAgKEtKUzo6U2NoZWR1bGVkQWN0aW9uOjpleGVjdXRlKToKKyAgICAgICAgQWRkIGNhbGxz
IHRvIHN0YXJ0VGltZW91dENoZWNrL3N0b3BUaW1lb3V0Q2hlY2sKKyAgICAgICAgCisgICAgICAg
ICogYnJpZGdlL21hYy9GcmFtZU1hYy5oOgorICAgICAgICAqIGJyaWRnZS9tYWMvRnJhbWVNYWMu
bW06CisgICAgICAgIChXZWJDb3JlOjpGcmFtZU1hYzo6c2hvdWxkSW50ZXJydXB0SmF2YVNjcmlw
dCk6CisgICAgICAgIE5ldyBmdW5jdGlvbiB3aGljaCBhc2tzIHRoZSBicmlkZ2UgaWYgdGhlIHNj
cmlwdCBzaG91bGQgYmUgaW50ZXJydXB0ZWQuCisgICAgICAgIAorICAgICAgICAqIGJyaWRnZS9t
YWMvV2ViQ29yZUZyYW1lQnJpZGdlLmg6CisgICAgICAgICogcGFnZS9GcmFtZS5oOgorICAgICAg
ICBBZGQgZnVuY3Rpb24gZGVjbGFyYXRpb25zLgorICAgICAgICAKIDIwMDYtMDYtMTYgIERhdmlk
IEtpbHplciAgPGRka2lsemVyQGtpbHplci5uZXQ+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgZGFy
aW4uCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19iaW5kaW5nLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19iaW5kaW5nLmNwcAkocmV2aXNpb24gMTQ4OTYp
CisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19iaW5kaW5nLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzcsNiArMzcsOSBAQAogI2luY2x1ZGUgPGtqcy9jb2xsZWN0b3IuaD4KICNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgogCisvLyBUaW1lIGluIG1pbGxpc2Vjb25kcyBiZWZvcmUgdGhlIHNjcmlw
dCB0aW1lb3V0IGhhbmRsZXIga2lja3MgaW4KKyNkZWZpbmUgU0NSSVBUX1RJTUVPVVRfVElNRV9N
UyAzMDAwCisKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIEV2ZW50
TmFtZXM7CiAKQEAgLTY4LDYgKzcxLDcgQEAgU2NyaXB0SW50ZXJwcmV0ZXI6OlNjcmlwdEludGVy
cHJldGVyKCBKUwogICA6IEludGVycHJldGVyKCBnbG9iYWwgKSwgbV9mcmFtZShmcmFtZSksCiAg
ICAgbV9ldnQoIDBMICksIG1faW5saW5lQ29kZShmYWxzZSksIG1fdGltZXJDYWxsYmFjayhmYWxz
ZSkKIHsKKyAgICBzZXRUaW1lb3V0VGltZShTQ1JJUFRfVElNRU9VVF9USU1FX01TKTsKIH0KIAog
U2NyaXB0SW50ZXJwcmV0ZXI6On5TY3JpcHRJbnRlcnByZXRlcigpCkBAIC0yNDYsNyArMjUwLDEx
IEBAIHZvaWQgKlNjcmlwdEludGVycHJldGVyOjpjcmVhdGVMYW5ndWFnZUkKICAgICByZXR1cm4g
cmVzdWx0OwogfQogCi0KK2Jvb2wgU2NyaXB0SW50ZXJwcmV0ZXI6OnNob3VsZEludGVycnVwdFNj
cmlwdCgpCit7CisgICAgcmV0dXJuIG1fZnJhbWUtPnNob3VsZEludGVycnVwdEphdmFTY3JpcHQo
KTsKK30KKyAgICAKIC8vLy8vLwogCiBKU1ZhbHVlICpqc1N0cmluZ09yTnVsbChjb25zdCBTdHJp
bmcgJnMpCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19iaW5kaW5nLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfYmluZGluZy5oCShyZXZpc2lvbiAxNDg5NikK
KysrIFdlYkNvcmUvYmluZGluZ3MvanMva2pzX2JpbmRpbmcuaAkod29ya2luZyBjb3B5KQpAQCAt
MTAxLDYgKzEwMSw4IEBAIG5hbWVzcGFjZSBLSlMgewogICAgIHZpcnR1YWwgdm9pZCAqY3JlYXRl
TGFuZ3VhZ2VJbnN0YW5jZUZvclZhbHVlIChFeGVjU3RhdGUgKmV4ZWMsIGludCBsYW5ndWFnZSwg
SlNPYmplY3QgKnZhbHVlLCBjb25zdCBCaW5kaW5nczo6Um9vdE9iamVjdCAqb3JpZ2luLCBjb25z
dCBCaW5kaW5nczo6Um9vdE9iamVjdCAqY3VycmVudCk7CiAgICAgdm9pZCAqY3JlYXRlT2JqY0lu
c3RhbmNlRm9yVmFsdWUgKEV4ZWNTdGF0ZSAqZXhlYywgSlNPYmplY3QgKnZhbHVlLCBjb25zdCBC
aW5kaW5nczo6Um9vdE9iamVjdCAqb3JpZ2luLCBjb25zdCBCaW5kaW5nczo6Um9vdE9iamVjdCAq
Y3VycmVudCk7CiAKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW50ZXJydXB0U2NyaXB0KCk7CisK
ICAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpGcmFtZSogbV9mcmFtZTsKIApJbmRleDogV2ViQ29y
ZS9iaW5kaW5ncy9qcy9ranNfZXZlbnRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRp
bmdzL2pzL2tqc19ldmVudHMuY3BwCShyZXZpc2lvbiAxNDg5NikKKysrIFdlYkNvcmUvYmluZGlu
Z3MvanMva2pzX2V2ZW50cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk0LDE2ICs5NCwxOSBAQCB2
b2lkIEpTQWJzdHJhY3RFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVuCiAgICAgICAgIGludGVycHJl
dGVyLT5zZXRDdXJyZW50RXZlbnQoZXZlbnQpOwogICAgICAgCiAgICAgICAgIEpTVmFsdWUqIHJl
dHZhbDsKLSAgICAgICAgaWYgKGhhbmRsZUV2ZW50RnVuYykKKyAgICAgICAgaWYgKGhhbmRsZUV2
ZW50RnVuYykgeworICAgICAgICAgICAgaW50ZXJwcmV0ZXItPnN0YXJ0VGltZW91dENoZWNrKCk7
CiAgICAgICAgICAgICByZXR2YWwgPSBoYW5kbGVFdmVudEZ1bmMtPmNhbGwoZXhlYywgbGlzdGVu
ZXIsIGFyZ3MpOwotICAgICAgICBlbHNlIHsKKyAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
IEpTT2JqZWN0KiB0aGlzT2JqOwogICAgICAgICAgICAgaWYgKGlzV2luZG93RXZlbnQpCiAgICAg
ICAgICAgICAgICAgdGhpc09iaiA9IHdpbmRvdzsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgICAgICB0aGlzT2JqID0gc3RhdGljX2Nhc3Q8SlNPYmplY3QqPih0b0pTKGV4ZWMsIGV2ZW50
LT5jdXJyZW50VGFyZ2V0KCkpKTsKKyAgICAgICAgICAgIGludGVycHJldGVyLT5zdGFydFRpbWVv
dXRDaGVjaygpOwogICAgICAgICAgICAgcmV0dmFsID0gbGlzdGVuZXItPmNhbGwoZXhlYywgdGhp
c09iaiwgYXJncyk7CiAgICAgICAgIH0KKyAgICAgICAgaW50ZXJwcmV0ZXItPnN0b3BUaW1lb3V0
Q2hlY2soKTsKIAogICAgICAgICB3aW5kb3ctPnNldEN1cnJlbnRFdmVudCgwKTsKICAgICAgICAg
aW50ZXJwcmV0ZXItPnNldEN1cnJlbnRFdmVudCgwKTsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mv
anMva2pzX3Byb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19w
cm94eS5jcHAJKHJldmlzaW9uIDE0ODk2KQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfcHJv
eHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSw4ICs2NSwxMSBAQCBKU1ZhbHVlKiBLSlNQcm94
eTo6ZXZhbHVhdGUoY29uc3QgU3RyaW5nCiAgIEpTTG9jayBsb2NrOwogCiAgIEpTVmFsdWUqIHRo
aXNOb2RlID0gbiA/IFdpbmRvdzo6cmV0cmlldmUobV9mcmFtZSkgOiB0b0pTKG1fc2NyaXB0LT5n
bG9iYWxFeGVjKCksIG4pOworICAKKyAgbV9zY3JpcHQtPnN0YXJ0VGltZW91dENoZWNrKCk7CiAg
IENvbXBsZXRpb24gY29tcCA9IG1fc2NyaXB0LT5ldmFsdWF0ZShmaWxlbmFtZSwgYmFzZUxpbmUs
IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgS0pTOjpVQ2hhcio+KHN0ci5jaGFyYWN0ZXJzKCkpLCBz
dHIubGVuZ3RoKCksIHRoaXNOb2RlKTsKLQorICBtX3NjcmlwdC0+c3RvcFRpbWVvdXRDaGVjaygp
OworICAKICAgaWYgKGNvbXAuY29tcGxUeXBlKCkgPT0gTm9ybWFsIHx8IGNvbXAuY29tcGxUeXBl
KCkgPT0gUmV0dXJuVmFsdWUpCiAgICAgcmV0dXJuIGNvbXAudmFsdWUoKTsKIApJbmRleDogV2Vi
Q29yZS9iaW5kaW5ncy9qcy9ranNfd2luZG93LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Jp
bmRpbmdzL2pzL2tqc193aW5kb3cuY3BwCShyZXZpc2lvbiAxNDg5NikKKysrIFdlYkNvcmUvYmlu
ZGluZ3MvanMva2pzX3dpbmRvdy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1MTYsNyArMTUxNiw5
IEBAIEpTVmFsdWUgKldpbmRvd0Z1bmM6OmNhbGxBc0Z1bmN0aW9uKEV4ZWMKICAgY2FzZSBXaW5k
b3c6OkFsZXJ0OgogICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+ZG9jdW1lbnQoKSkKICAgICAgIGZy
YW1lLT5kb2N1bWVudCgpLT51cGRhdGVSZW5kZXJpbmcoKTsKKyAgICBleGVjLT5keW5hbWljSW50
ZXJwcmV0ZXIoKS0+cGF1c2VUaW1lb3V0Q2hlY2soKTsKICAgICBmcmFtZS0+cnVuSmF2YVNjcmlw
dEFsZXJ0KHN0cik7CisgICAgZXhlYy0+ZHluYW1pY0ludGVycHJldGVyKCktPnJlc3VtZVRpbWVv
dXRDaGVjaygpOwogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICBjYXNlIFdpbmRvdzo6Q29u
ZmlybToKICAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPmRvY3VtZW50KCkpCkBAIC0xODAxLDcgKzE4
MDMsOSBAQCB2b2lkIFNjaGVkdWxlZEFjdGlvbjo6ZXhlY3V0ZShXaW5kb3cgKndpCiAgICAgICAg
ICAgICBFeGVjU3RhdGUgKmV4ZWMgPSBpbnRlcnByZXRlci0+Z2xvYmFsRXhlYygpOwogICAgICAg
ICAgICAgQVNTRVJUKHdpbmRvdyA9PSBpbnRlcnByZXRlci0+Z2xvYmFsT2JqZWN0KCkpOwogICAg
ICAgICAgICAgSlNMb2NrIGxvY2s7CisgICAgICAgICAgICBpbnRlcnByZXRlci0+c3RhcnRUaW1l
b3V0Q2hlY2soKTsKICAgICAgICAgICAgIHN0YXRpY19jYXN0PEpTT2JqZWN0ICo+KGZ1bmMpLT5j
YWxsKGV4ZWMsIHdpbmRvdywgbV9hcmdzKTsKKyAgICAgICAgICAgIGludGVycHJldGVyLT5zdG9w
VGltZW91dENoZWNrKCk7CiAgICAgICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpIHsK
ICAgICAgICAgICAgICAgICBKU09iamVjdCogZXhjZXB0aW9uID0gZXhlYy0+ZXhjZXB0aW9uKCkt
PnRvT2JqZWN0KGV4ZWMpOwogICAgICAgICAgICAgICAgIGV4ZWMtPmNsZWFyRXhjZXB0aW9uKCk7
CkluZGV4OiBXZWJDb3JlL2JyaWRnZS9tYWMvRnJhbWVNYWMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2JyaWRnZS9tYWMvRnJhbWVNYWMuaAkocmV2aXNpb24gMTQ4OTYpCisrKyBXZWJDb3JlL2Jy
aWRnZS9tYWMvRnJhbWVNYWMuaAkod29ya2luZyBjb3B5KQpAQCAtMTY2LDYgKzE2Niw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KGNvbnN0IFN0cmluZyYp
OwogICAgIHZpcnR1YWwgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShjb25zdCBTdHJpbmcmKTsK
ICAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCk7CisgICAgdmly
dHVhbCBib29sIHNob3VsZEludGVycnVwdEphdmFTY3JpcHQoKTsgICAgCiAgICAgdmlydHVhbCBi
b29sIGxvY2F0aW9uYmFyVmlzaWJsZSgpOwogICAgIHZpcnR1YWwgYm9vbCBtZW51YmFyVmlzaWJs
ZSgpOwogICAgIHZpcnR1YWwgYm9vbCBwZXJzb25hbGJhclZpc2libGUoKTsKSW5kZXg6IFdlYkNv
cmUvYnJpZGdlL21hYy9GcmFtZU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JyaWRnZS9t
YWMvRnJhbWVNYWMubW0JKHJldmlzaW9uIDE0ODk2KQorKysgV2ViQ29yZS9icmlkZ2UvbWFjL0Zy
YW1lTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMjU3LDYgKzEyNTcsMTUgQEAgYm9vbCBGcmFt
ZU1hYzo6cnVuSmF2YVNjcmlwdFByb21wdChjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAor
Ym9vbCBGcmFtZU1hYzo6c2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdCgpCit7CisgICAgQkVHSU5f
QkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIHJldHVybiBbX2JyaWRnZSBzaG91bGRJbnRlcnJ1
cHRKYXZhU2NyaXB0XTsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIAorICAg
IHJldHVybiBmYWxzZTsKK30KKwogYm9vbCBGcmFtZU1hYzo6bG9jYXRpb25iYXJWaXNpYmxlKCkK
IHsKICAgICByZXR1cm4gW19icmlkZ2UgYXJlVG9vbGJhcnNWaXNpYmxlXTsKSW5kZXg6IFdlYkNv
cmUvYnJpZGdlL21hYy9XZWJDb3JlRnJhbWVCcmlkZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2JyaWRnZS9tYWMvV2ViQ29yZUZyYW1lQnJpZGdlLmgJKHJldmlzaW9uIDE0ODk2KQorKysgV2Vi
Q29yZS9icmlkZ2UvbWFjL1dlYkNvcmVGcmFtZUJyaWRnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01
NTEsNiArNTUxLDcgQEAgdHlwZWRlZiBlbnVtIHsKIC0gKHZvaWQpcnVuSmF2YVNjcmlwdEFsZXJ0
UGFuZWxXaXRoTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlOwogLSAoQk9PTClydW5KYXZhU2Ny
aXB0Q29uZmlybVBhbmVsV2l0aE1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZTsKIC0gKEJPT0wp
cnVuSmF2YVNjcmlwdFRleHRJbnB1dFBhbmVsV2l0aFByb21wdDooTlNTdHJpbmcgKilwcm9tcHQg
ZGVmYXVsdFRleHQ6KE5TU3RyaW5nICopZGVmYXVsdFRleHQgcmV0dXJuaW5nVGV4dDooTlNTdHJp
bmcgKiopcmVzdWx0OworLSAoQk9PTClzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0OwogLSAoQk9P
TCljYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWw7CiAtIChCT09MKXJ1bkJlZm9yZVVubG9h
ZENvbmZpcm1QYW5lbFdpdGhNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2U7CiAtICh2b2lkKWFk
ZE1lc3NhZ2VUb0NvbnNvbGU6KE5TRGljdGlvbmFyeSAqKW1lc3NhZ2U7CkluZGV4OiBXZWJDb3Jl
L3BhZ2UvRnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRnJhbWUuaAkocmV2aXNp
b24gMTQ4OTYpCisrKyBXZWJDb3JlL3BhZ2UvRnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAtNTM0
LDYgKzUzNCw3IEBAIHB1YmxpYzoKICAgdmlydHVhbCB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpID0gMDsKICAgdmlydHVhbCBib29sIHJ1bkphdmFTY3JpcHRD
b25maXJtKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgPSAwOwogICB2aXJ0dWFsIGJvb2wgcnVuSmF2
YVNjcmlwdFByb21wdChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVs
dFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkgPSAwOyAgCisgIHZpcnR1YWwgYm9vbCBzaG91bGRJbnRl
cnJ1cHRKYXZhU2NyaXB0KCkgPSAwOwogICB2aXJ0dWFsIGJvb2wgbG9jYXRpb25iYXJWaXNpYmxl
KCkgPSAwOwogICB2aXJ0dWFsIGJvb2wgbWVudWJhclZpc2libGUoKSA9IDA7CiAgIHZpcnR1YWwg
Ym9vbCBwZXJzb25hbGJhclZpc2libGUoKSA9IDA7CkluZGV4OiBXZWJLaXQvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0ODk2KQorKysgV2ViS2l0
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDA2LTA2LTE3ICBB
bmRlcnMgQ2FybHNzb24gIDxhY2FybHNzb25AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZh
dWx0VUlEZWxlZ2F0ZS5tOgorICAgICAgICAoLVtXZWJEZWZhdWx0VUlEZWxlZ2F0ZSB3ZWJWaWV3
U2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdDpdKToKKyAgICAgICAgTmV3IGRlZmF1bHQgZGVsZWdh
dGUgbWV0aG9kIHdoaWNoIHJldHVybnMgTk8uCisgICAgICAgIAorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lQnJpZGdlLm06CisgICAgICAgICgtW1dlYkZyYW1lQnJpZGdlIHNob3Vs
ZEludGVycnVwdEphdmFTY3JpcHRdKToKKyAgICAgICAgQXNrIHRoZSBVSSBkZWxlZ2F0ZSBpZiB0
aGUgc2NyaXB0IHNob3VsZCBiZSBpbnRlcnJ1cHRlZC4KKyAgICAgICAgCisgICAgICAgICogV2Vi
Vmlldy9XZWJVSURlbGVnYXRlUHJpdmF0ZS5oOgorICAgICAgICBEZWNsYXJlIHdlYlZpZXdTaG91
bGRJbnRlcnJ1cHRKYXZhU2NyaXB0OiBkZWxlZ2F0ZSBtZXRob2QKKwogMjAwNi0wNi0xNiAgVGlt
b3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
VGltIE8uCkluZGV4OiBXZWJLaXQvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0VUlEZWxlZ2F0
ZS5tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRVSURl
bGVnYXRlLm0JKHJldmlzaW9uIDE0ODk2KQorKysgV2ViS2l0L0RlZmF1bHREZWxlZ2F0ZXMvV2Vi
RGVmYXVsdFVJRGVsZWdhdGUubQkod29ya2luZyBjb3B5KQpAQCAtMTg0LDYgKzE4NCwxMSBAQCBz
dGF0aWMgV2ViRGVmYXVsdFVJRGVsZWdhdGUgKnNoYXJlZERlbGVnCiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAorLSAoQk9PTCl3ZWJWaWV3U2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdDooV2ViVmll
dyAqKXd2Cit7CisgICAgcmV0dXJuIE5POworfQorCiAtICh2b2lkKXdlYlZpZXc6IChXZWJWaWV3
ICopd3YgcnVuT3BlblBhbmVsRm9yRmlsZUJ1dHRvbldpdGhSZXN1bHRMaXN0ZW5lcjooaWQ8V2Vi
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXI+KXJlc3VsdExpc3RlbmVyCiB7CiAgICAgLy8gRklYTUU6
IFdlIHdhbnQgYSBkZWZhdWx0IGhlcmUsIGJ1dCB0aGF0IHdvdWxkIGFkZCBsb2NhbGl6ZWQgc3Ry
aW5ncy4KSW5kZXg6IFdlYktpdC9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUJyaWRnZS5tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUJyaWRnZS5tCShyZXZpc2lv
biAxNDg5NikKKysrIFdlYktpdC9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUJyaWRnZS5tCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MDcsNiArNDA3LDE2IEBAIE5TU3RyaW5nICpXZWJQbHVnaW5Db250YWlu
ZXJLZXkgPSAgIEAiV2UKICAgICByZXR1cm4gW1tXZWJEZWZhdWx0VUlEZWxlZ2F0ZSBzaGFyZWRV
SURlbGVnYXRlXSB3ZWJWaWV3Ond2IHJ1bkphdmFTY3JpcHRDb25maXJtUGFuZWxXaXRoTWVzc2Fn
ZTptZXNzYWdlIGluaXRpYXRlZEJ5RnJhbWU6X2ZyYW1lXTsKIH0KIAorLSAoQk9PTClzaG91bGRJ
bnRlcnJ1cHRKYXZhU2NyaXB0Cit7CisgICAgV2ViVmlldyAqd3YgPSBbc2VsZiB3ZWJWaWV3XTsK
KyAgICBpZCB3ZCA9IFt3diBVSURlbGVnYXRlXTsKKyAgICAKKyAgICBpZiAoW3dkIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViVmlld1Nob3VsZEludGVycnVwdEphdmFTY3JpcHQ6KV0p
CisgICAgICAgIHJldHVybiBbd2Qgd2ViVmlld1Nob3VsZEludGVycnVwdEphdmFTY3JpcHQ6d3Zd
OworICAgIHJldHVybiBbW1dlYkRlZmF1bHRVSURlbGVnYXRlIHNoYXJlZFVJRGVsZWdhdGVdIHdl
YlZpZXdTaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0Ond2XTsKK30KKwogLSAoQk9PTCljYW5SdW5C
ZWZvcmVVbmxvYWRDb25maXJtUGFuZWwKIHsKICAgICBXZWJWaWV3ICp3diA9IFtzZWxmIHdlYlZp
ZXddOwpJbmRleDogV2ViS2l0L1dlYlZpZXcvV2ViVUlEZWxlZ2F0ZVByaXZhdGUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvV2ViVmlldy9XZWJVSURlbGVnYXRlUHJpdmF0ZS5oCShyZXZpc2lvbiAx
NDg5NikKKysrIFdlYktpdC9XZWJWaWV3L1dlYlVJRGVsZWdhdGVQcml2YXRlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEwNiw0ICsxMDYsNiBAQAogCiAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKilz
ZW5kZXIgZHJhZ0ltYWdlOihOU0ltYWdlICopYW5JbWFnZSBhdDooTlNQb2ludCl2aWV3TG9jYXRp
b24gb2Zmc2V0OihOU1NpemUpaW5pdGlhbE9mZnNldCBldmVudDooTlNFdmVudCAqKWV2ZW50IHBh
c3RlYm9hcmQ6KE5TUGFzdGVib2FyZCAqKXBib2FyZCBzb3VyY2U6KGlkKXNvdXJjZU9iaiBzbGlk
ZUJhY2s6KEJPT0wpc2xpZGVGbGFnIGZvclZpZXc6KE5TVmlldyAqKXZpZXc7CiAKKy0gKEJPT0wp
d2ViVmlld1Nob3VsZEludGVycnVwdEphdmFTY3JpcHQ6KFdlYlZpZXcgKilzZW5kZXI7CisKIEBl
bmQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8902</attachid>
            <date>2006-06-18 09:42:32 -0700</date>
            <delta_ts>2006-06-18 09:59:59 -0700</delta_ts>
            <desc>Address comments</desc>
            <filename>hang-detection-webcore-2.txt</filename>
            <type>text/plain</type>
            <size>13458</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0OTAzKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMDYtMDYtMTggIEFuZGVycyBD
YXJsc3NvbiAgPGFjYXJsc3NvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBranMvaW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAo
S0pTOjpUaW1lb3V0Q2hlY2tlcjo6cGF1c2VUaW1lb3V0Q2hlY2spOgorICAgICAgICBEbyBub3Ro
aW5nIGlmIHRoZSB0aW1lb3V0IGNoZWNrIGhhc24ndCBiZWVuIHN0YXJ0ZWQuCisgICAgICAgIAor
ICAgICAgICAoS0pTOjpUaW1lb3V0Q2hlY2tlcjo6cmVzdW1lVGltZW91dENoZWNrKToKKyAgICAg
ICAgRG8gbm90aGluZyBpZiB0aGUgdGltZW91dCBjaGVjayBoYXNuJ3QgYmVlbiBzdGFydGVkLgor
ICAgICAgICBVc2UgdGhlIHJpZ2h0IHNpZ25hbCBoYW5kbGVyIHdoZW4gdW5ibG9ja2luZy4KKyAg
ICAgICAgCisgICAgICAgIChLSlM6OkludGVycHJldGVyOjpoYW5kbGVUaW1lb3V0KToKKyAgICAg
ICAgcGF1c2UvcmVzdW1lIHRoZSB0aW1lb3V0IGNoZWNrIGFyb3VuZCB0aGUgY2FsbCB0bworICAg
ICAgICBzaG91bGRJbnRlcnJ1cHRTY3JpcHQoKS4KKyAgICAgICAgCiAyMDA2LTA2LTE2ICBCZW4g
R29vZGdlciA8YmVuZ0Bnb29nbGUuY29tPgogICAgICAgICAKICAgICAgICAgUmV2aWV3ZWQgYnkg
TWFjaWVqCkBAIC0xMSw3ICsyNyw2IEBACiAgICAgICAgIE1ha2Ugc3VyZSB0byBvbmx5IGFzc2Vy
dCBlcXVhbGl0eSB3aXRoIHNfZXhlY3V0aW5nSW50ZXJwcmV0ZXIgd2hlbiBpdCAKICAgICAgICAg
aXMgYmVpbmcgdXNlZCAoaS5lLiB3aGVuIEhBVkUoU1lTX1RJTUVfSCkgPT0gdHJ1ZSkKIAotCiAy
MDA2LTA2LTE3ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBraWx6ZXIubmV0PgogCiAgICAgICAg
IFJldmlld2VkIGJ5IGRhcmluLgpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL2ludGVycHJldGVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMvaW50ZXJwcmV0ZXIuY3BwCShy
ZXZpc2lvbiAxNDkwMykKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9pbnRlcnByZXRlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE0Miw3ICsxNDIsMTAgQEAgdm9pZCBUaW1lb3V0Q2hlY2tlcjo6YWxh
cm1IYW5kbGVyKGludCkgCiAKIHZvaWQgVGltZW91dENoZWNrZXI6OnBhdXNlVGltZW91dENoZWNr
KEludGVycHJldGVyKiBpbnRlcnByZXRlcikKIHsKLSNpZiBIQVZFKFNZU19USU1FX0gpCisgICAg
aWYgKGludGVycHJldGVyLT5tX3N0YXJ0VGltZW91dENoZWNrQ291bnQgPT0gMCkKKyAgICAgICAg
cmV0dXJuOworCisjaWYgSEFWRShTWVNfVElNRV9IKSAgICAKICAgICBBU1NFUlQoaW50ZXJwcmV0
ZXIgPT0gc19leGVjdXRpbmdJbnRlcnByZXRlcik7CiAKICAgICB2b2lkICgqY3VycmVudFNpZ25h
bEhhbmRsZXIpKGludCk7CkBAIC0xNjMsNiArMTY2LDkgQEAgdm9pZCBUaW1lb3V0Q2hlY2tlcjo6
cGF1c2VUaW1lb3V0Q2hlY2soSQogCiB2b2lkIFRpbWVvdXRDaGVja2VyOjpyZXN1bWVUaW1lb3V0
Q2hlY2soSW50ZXJwcmV0ZXIqIGludGVycHJldGVyKQogeworICAgIGlmIChpbnRlcnByZXRlci0+
bV9zdGFydFRpbWVvdXRDaGVja0NvdW50ID09IDApCisgICAgICAgIHJldHVybjsKKwogI2lmIEhB
VkUoU1lTX1RJTUVfSCkKICAgICBBU1NFUlQoaW50ZXJwcmV0ZXIgPT0gc19leGVjdXRpbmdJbnRl
cnByZXRlcik7CiAjZW5kaWYKQEAgLTE4Niw3ICsxOTIsNyBAQCB2b2lkIFRpbWVvdXRDaGVja2Vy
OjpyZXN1bWVUaW1lb3V0Q2hlY2soCiAgICAgc2V0aXRpbWVyKElUSU1FUl9SRUFMLCAwTCwgJm1f
cGF1c2V0dik7ICAgIAogCiAgICAgLy8gVW5ibG9jayBzaWduYWwKLSAgICBjdXJyZW50U2lnbmFs
SGFuZGxlciA9IHNpZ25hbChTSUdBTFJNLCBTSUdfSUdOKTsgICAgCisgICAgY3VycmVudFNpZ25h
bEhhbmRsZXIgPSBzaWduYWwoU0lHQUxSTSwgYWxhcm1IYW5kbGVyKTsgICAgCiAjZW5kaWYKIH0K
IApAQCAtODAxLDggKzgwNywxMiBAQCB2b2lkIEludGVycHJldGVyOjpyZXN1bWVUaW1lb3V0Q2hl
Y2soKQogYm9vbCBJbnRlcnByZXRlcjo6aGFuZGxlVGltZW91dCgpCiB7CiAgICAgbV90aW1lZE91
dCA9IGZhbHNlOworCisgICAgcGF1c2VUaW1lb3V0Q2hlY2soKTsKKyAgICBib29sIHJldHZhbCA9
IHNob3VsZEludGVycnVwdFNjcmlwdCgpOworICAgIHJlc3VtZVRpbWVvdXRDaGVjaygpOwogICAg
IAotICAgIHJldHVybiBzaG91bGRJbnRlcnJ1cHRTY3JpcHQoKTsKKyAgICByZXR1cm4gcmV0dmFs
OwogfQogCiAKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9pbnRlcnByZXRlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9pbnRlcnByZXRlci5oCShyZXZpc2lvbiAxNDkwMykK
KysrIEphdmFTY3JpcHRDb3JlL2tqcy9pbnRlcnByZXRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
MzYsNyArMzM2LDcgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgYm9vbCBjaGVja1RpbWVvdXQoKTsK
ICAgICAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW50ZXJydXB0U2NyaXB0
KCkgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJbnRlcnJ1cHRTY3Jp
cHQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgbG9uZyBtX3RpbWVvdXRUaW1lOwogCiBw
cml2YXRlOgpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE0OTAzKQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwzOCBAQAorMjAwNi0wNi0xNyAgQW5kZXJzIENhcmxzc29uICA8YWNh
cmxzc29uQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGJpbmRpbmdzL2pzL2tqc19iaW5kaW5nLmNwcDoKKyAgICAgICAgKEtKUzo6
U2NyaXB0SW50ZXJwcmV0ZXI6OlNjcmlwdEludGVycHJldGVyKToKKyAgICAgICAgU2V0IHRoZSBk
ZWZhdWx0IHNjcmlwdCB0aW1lb3V0LgorICAgICAgICAKKyAgICAgICAgKEtKUzo6U2NyaXB0SW50
ZXJwcmV0ZXI6OnNob3VsZEludGVycnVwdFNjcmlwdCk6CisgICAgICAgIE5ldyBmdW5jdGlvbiB3
aGljaCBhc2tzIHRoZSBmcmFtZSBpZiB0aGUgc2NyaXB0IHNob3VsZCBiZSBpbnRlcnJ1cHRlZC4K
KyAgICAgICAgCisgICAgICAgICogYmluZGluZ3MvanMva2pzX2JpbmRpbmcuaDoKKyAgICAgICAg
ICAgICAgICAKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9ranNfZXZlbnRzLmNwcDoKKyAgICAgICAg
KEtKUzo6SlNBYnN0cmFjdEV2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9ranNfcHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6S0pTUHJveHk6OmV2
YWx1YXRlKToKKyAgICAgICAgQWRkIGNhbGxzIHRvIHN0YXJ0VGltZW91dENoZWNrL3N0b3BUaW1l
b3V0Q2hlY2sKKyAgICAgICAgCisgICAgICAgICogYmluZGluZ3MvanMva2pzX3dpbmRvdy5jcHA6
CisgICAgICAgIChLSlM6OldpbmRvd0Z1bmM6OmNhbGxBc0Z1bmN0aW9uKToKKyAgICAgICAgQWRk
IGNhbGxzIHRvIHBhdXNlVGltZW91dENoZWNrL3VucGF1c2VUaW1lb3V0Q2hlY2sgCisgICAgICAg
IAorICAgICAgICAoS0pTOjpTY2hlZHVsZWRBY3Rpb246OmV4ZWN1dGUpOgorICAgICAgICBBZGQg
Y2FsbHMgdG8gc3RhcnRUaW1lb3V0Q2hlY2svc3RvcFRpbWVvdXRDaGVjaworICAgICAgICAKKyAg
ICAgICAgKiBicmlkZ2UvbWFjL0ZyYW1lTWFjLmg6CisgICAgICAgICogYnJpZGdlL21hYy9GcmFt
ZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTWFjOjpzaG91bGRJbnRlcnJ1cHRKYXZh
U2NyaXB0KToKKyAgICAgICAgTmV3IGZ1bmN0aW9uIHdoaWNoIGFza3MgdGhlIGJyaWRnZSBpZiB0
aGUgc2NyaXB0IHNob3VsZCBiZSBpbnRlcnJ1cHRlZC4KKyAgICAgICAgCisgICAgICAgICogYnJp
ZGdlL21hYy9XZWJDb3JlRnJhbWVCcmlkZ2UuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmg6Cisg
ICAgICAgIEFkZCBmdW5jdGlvbiBkZWNsYXJhdGlvbnMuCisgICAgICAgIAogMjAwNi0wNi0xNyAg
QWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQG55cG9wLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBnZ2FyZW4uCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19iaW5kaW5nLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19iaW5kaW5nLmNwcAkocmV2aXNpb24g
MTQ5MDMpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19iaW5kaW5nLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjgsNiArNjgsMTAgQEAgU2NyaXB0SW50ZXJwcmV0ZXI6OlNjcmlwdEludGVycHJl
dGVyKCBKUwogICA6IEludGVycHJldGVyKCBnbG9iYWwgKSwgbV9mcmFtZShmcmFtZSksCiAgICAg
bV9ldnQoIDBMICksIG1faW5saW5lQ29kZShmYWxzZSksIG1fdGltZXJDYWxsYmFjayhmYWxzZSkK
IHsKKyAgICAvLyBUaW1lIGluIG1pbGxpc2Vjb25kcyBiZWZvcmUgdGhlIHNjcmlwdCB0aW1lb3V0
IGhhbmRsZXIga2lja3MgaW4KKyAgICBjb25zdCB1bnNpZ25lZCBTQ1JJUFRfVElNRU9VVF9USU1F
X01TID0gMzAwMDsKKyAgICAgICAgCisgICAgc2V0VGltZW91dFRpbWUoU0NSSVBUX1RJTUVPVVRf
VElNRV9NUyk7CiB9CiAKIFNjcmlwdEludGVycHJldGVyOjp+U2NyaXB0SW50ZXJwcmV0ZXIoKQpA
QCAtMjQ2LDcgKzI1MCwxMSBAQCB2b2lkICpTY3JpcHRJbnRlcnByZXRlcjo6Y3JlYXRlTGFuZ3Vh
Z2VJCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotCitib29sIFNjcmlwdEludGVycHJldGVyOjpz
aG91bGRJbnRlcnJ1cHRTY3JpcHQoKSBjb25zdAoreworICAgIHJldHVybiBtX2ZyYW1lLT5zaG91
bGRJbnRlcnJ1cHRKYXZhU2NyaXB0KCk7Cit9CisgICAgCiAvLy8vLy8KIAogSlNWYWx1ZSAqanNT
dHJpbmdPck51bGwoY29uc3QgU3RyaW5nICZzKQpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9r
anNfYmluZGluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMva2pzX2JpbmRp
bmcuaAkocmV2aXNpb24gMTQ5MDMpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19iaW5kaW5n
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMSw2ICsxMDEsOCBAQCBuYW1lc3BhY2UgS0pTIHsKICAg
ICB2aXJ0dWFsIHZvaWQgKmNyZWF0ZUxhbmd1YWdlSW5zdGFuY2VGb3JWYWx1ZSAoRXhlY1N0YXRl
ICpleGVjLCBpbnQgbGFuZ3VhZ2UsIEpTT2JqZWN0ICp2YWx1ZSwgY29uc3QgQmluZGluZ3M6OlJv
b3RPYmplY3QgKm9yaWdpbiwgY29uc3QgQmluZGluZ3M6OlJvb3RPYmplY3QgKmN1cnJlbnQpOwog
ICAgIHZvaWQgKmNyZWF0ZU9iamNJbnN0YW5jZUZvclZhbHVlIChFeGVjU3RhdGUgKmV4ZWMsIEpT
T2JqZWN0ICp2YWx1ZSwgY29uc3QgQmluZGluZ3M6OlJvb3RPYmplY3QgKm9yaWdpbiwgY29uc3Qg
QmluZGluZ3M6OlJvb3RPYmplY3QgKmN1cnJlbnQpOwogCisgICAgdmlydHVhbCBib29sIHNob3Vs
ZEludGVycnVwdFNjcmlwdCgpIGNvbnN0OworCiAgIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6RnJh
bWUqIG1fZnJhbWU7CiAKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMva2pzX2V2ZW50cy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfZXZlbnRzLmNwcAkocmV2aXNp
b24gMTQ5MDMpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19ldmVudHMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC05NCwxNiArOTQsMTkgQEAgdm9pZCBKU0Fic3RyYWN0RXZlbnRMaXN0ZW5lcjo6
aGFuZGxlRXZlbgogICAgICAgICBpbnRlcnByZXRlci0+c2V0Q3VycmVudEV2ZW50KGV2ZW50KTsK
ICAgICAgIAogICAgICAgICBKU1ZhbHVlKiByZXR2YWw7Ci0gICAgICAgIGlmIChoYW5kbGVFdmVu
dEZ1bmMpCisgICAgICAgIGlmIChoYW5kbGVFdmVudEZ1bmMpIHsKKyAgICAgICAgICAgIGludGVy
cHJldGVyLT5zdGFydFRpbWVvdXRDaGVjaygpOwogICAgICAgICAgICAgcmV0dmFsID0gaGFuZGxl
RXZlbnRGdW5jLT5jYWxsKGV4ZWMsIGxpc3RlbmVyLCBhcmdzKTsKLSAgICAgICAgZWxzZSB7Cisg
ICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBKU09iamVjdCogdGhpc09iajsKICAgICAgICAg
ICAgIGlmIChpc1dpbmRvd0V2ZW50KQogICAgICAgICAgICAgICAgIHRoaXNPYmogPSB3aW5kb3c7
CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgdGhpc09iaiA9IHN0YXRpY19jYXN0
PEpTT2JqZWN0Kj4odG9KUyhleGVjLCBldmVudC0+Y3VycmVudFRhcmdldCgpKSk7CisgICAgICAg
ICAgICBpbnRlcnByZXRlci0+c3RhcnRUaW1lb3V0Q2hlY2soKTsKICAgICAgICAgICAgIHJldHZh
bCA9IGxpc3RlbmVyLT5jYWxsKGV4ZWMsIHRoaXNPYmosIGFyZ3MpOwogICAgICAgICB9CisgICAg
ICAgIGludGVycHJldGVyLT5zdG9wVGltZW91dENoZWNrKCk7CiAKICAgICAgICAgd2luZG93LT5z
ZXRDdXJyZW50RXZlbnQoMCk7CiAgICAgICAgIGludGVycHJldGVyLT5zZXRDdXJyZW50RXZlbnQo
MCk7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19wcm94eS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfcHJveHkuY3BwCShyZXZpc2lvbiAxNDkwMykKKysr
IFdlYkNvcmUvYmluZGluZ3MvanMva2pzX3Byb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjUs
OCArNjUsMTEgQEAgSlNWYWx1ZSogS0pTUHJveHk6OmV2YWx1YXRlKGNvbnN0IFN0cmluZwogICBK
U0xvY2sgbG9jazsKIAogICBKU1ZhbHVlKiB0aGlzTm9kZSA9IG4gPyBXaW5kb3c6OnJldHJpZXZl
KG1fZnJhbWUpIDogdG9KUyhtX3NjcmlwdC0+Z2xvYmFsRXhlYygpLCBuKTsKKyAgCisgIG1fc2Ny
aXB0LT5zdGFydFRpbWVvdXRDaGVjaygpOwogICBDb21wbGV0aW9uIGNvbXAgPSBtX3NjcmlwdC0+
ZXZhbHVhdGUoZmlsZW5hbWUsIGJhc2VMaW5lLCByZWludGVycHJldF9jYXN0PGNvbnN0IEtKUzo6
VUNoYXIqPihzdHIuY2hhcmFjdGVycygpKSwgc3RyLmxlbmd0aCgpLCB0aGlzTm9kZSk7Ci0KKyAg
bV9zY3JpcHQtPnN0b3BUaW1lb3V0Q2hlY2soKTsKKyAgCiAgIGlmIChjb21wLmNvbXBsVHlwZSgp
ID09IE5vcm1hbCB8fCBjb21wLmNvbXBsVHlwZSgpID09IFJldHVyblZhbHVlKQogICAgIHJldHVy
biBjb21wLnZhbHVlKCk7CiAKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMva2pzX3dpbmRvdy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfd2luZG93LmNwcAkocmV2
aXNpb24gMTQ5MDMpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc193aW5kb3cuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNTE2LDcgKzE1MTYsOSBAQCBKU1ZhbHVlICpXaW5kb3dGdW5jOjpjYWxs
QXNGdW5jdGlvbihFeGVjCiAgIGNhc2UgV2luZG93OjpBbGVydDoKICAgICBpZiAoZnJhbWUgJiYg
ZnJhbWUtPmRvY3VtZW50KCkpCiAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+dXBkYXRlUmVuZGVy
aW5nKCk7CisgICAgZXhlYy0+ZHluYW1pY0ludGVycHJldGVyKCktPnBhdXNlVGltZW91dENoZWNr
KCk7CiAgICAgZnJhbWUtPnJ1bkphdmFTY3JpcHRBbGVydChzdHIpOworICAgIGV4ZWMtPmR5bmFt
aWNJbnRlcnByZXRlcigpLT5yZXN1bWVUaW1lb3V0Q2hlY2soKTsKICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKICAgY2FzZSBXaW5kb3c6OkNvbmZpcm06CiAgICAgaWYgKGZyYW1lICYmIGZyYW1l
LT5kb2N1bWVudCgpKQpAQCAtMTgwMSw3ICsxODAzLDkgQEAgdm9pZCBTY2hlZHVsZWRBY3Rpb246
OmV4ZWN1dGUoV2luZG93ICp3aQogICAgICAgICAgICAgRXhlY1N0YXRlICpleGVjID0gaW50ZXJw
cmV0ZXItPmdsb2JhbEV4ZWMoKTsKICAgICAgICAgICAgIEFTU0VSVCh3aW5kb3cgPT0gaW50ZXJw
cmV0ZXItPmdsb2JhbE9iamVjdCgpKTsKICAgICAgICAgICAgIEpTTG9jayBsb2NrOworICAgICAg
ICAgICAgaW50ZXJwcmV0ZXItPnN0YXJ0VGltZW91dENoZWNrKCk7CiAgICAgICAgICAgICBzdGF0
aWNfY2FzdDxKU09iamVjdCAqPihmdW5jKS0+Y2FsbChleGVjLCB3aW5kb3csIG1fYXJncyk7Cisg
ICAgICAgICAgICBpbnRlcnByZXRlci0+c3RvcFRpbWVvdXRDaGVjaygpOwogICAgICAgICAgICAg
aWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSB7CiAgICAgICAgICAgICAgICAgSlNPYmplY3QqIGV4
Y2VwdGlvbiA9IGV4ZWMtPmV4Y2VwdGlvbigpLT50b09iamVjdChleGVjKTsKICAgICAgICAgICAg
ICAgICBleGVjLT5jbGVhckV4Y2VwdGlvbigpOwpJbmRleDogV2ViQ29yZS9icmlkZ2UvbWFjL0Zy
YW1lTWFjLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9icmlkZ2UvbWFjL0ZyYW1lTWFjLmgJKHJl
dmlzaW9uIDE0OTAzKQorKysgV2ViQ29yZS9icmlkZ2UvbWFjL0ZyYW1lTWFjLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTE2Niw2ICsxNjYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJ1bkph
dmFTY3JpcHRBbGVydChjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNj
cmlwdENvbmZpcm0oY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCBib29sIHJ1bkphdmFTY3Jp
cHRQcm9tcHQoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1
ZSwgU3RyaW5nJiByZXN1bHQpOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJbnRlcnJ1cHRKYXZh
U2NyaXB0KCk7ICAgIAogICAgIHZpcnR1YWwgYm9vbCBsb2NhdGlvbmJhclZpc2libGUoKTsKICAg
ICB2aXJ0dWFsIGJvb2wgbWVudWJhclZpc2libGUoKTsKICAgICB2aXJ0dWFsIGJvb2wgcGVyc29u
YWxiYXJWaXNpYmxlKCk7CkluZGV4OiBXZWJDb3JlL2JyaWRnZS9tYWMvRnJhbWVNYWMubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9icmlkZ2UvbWFjL0ZyYW1lTWFjLm1tCShyZXZpc2lvbiAxNDkw
MykKKysrIFdlYkNvcmUvYnJpZGdlL21hYy9GcmFtZU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAt
MTI1Nyw2ICsxMjU3LDE1IEBAIGJvb2wgRnJhbWVNYWM6OnJ1bkphdmFTY3JpcHRQcm9tcHQoY29u
c3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgRnJhbWVNYWM6OnNob3VsZEludGVycnVw
dEphdmFTY3JpcHQoKQoreworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBy
ZXR1cm4gW19icmlkZ2Ugc2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdF07CisgICAgRU5EX0JMT0NL
X09CSkNfRVhDRVBUSU9OUzsKKyAgICAKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIGJvb2wgRnJh
bWVNYWM6OmxvY2F0aW9uYmFyVmlzaWJsZSgpCiB7CiAgICAgcmV0dXJuIFtfYnJpZGdlIGFyZVRv
b2xiYXJzVmlzaWJsZV07CkluZGV4OiBXZWJDb3JlL2JyaWRnZS9tYWMvV2ViQ29yZUZyYW1lQnJp
ZGdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9icmlkZ2UvbWFjL1dlYkNvcmVGcmFtZUJyaWRn
ZS5oCShyZXZpc2lvbiAxNDkwMykKKysrIFdlYkNvcmUvYnJpZGdlL21hYy9XZWJDb3JlRnJhbWVC
cmlkZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtNTUxLDYgKzU1MSw3IEBAIHR5cGVkZWYgZW51bSB7
CiAtICh2b2lkKXJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6KE5TU3RyaW5nICop
bWVzc2FnZTsKIC0gKEJPT0wpcnVuSmF2YVNjcmlwdENvbmZpcm1QYW5lbFdpdGhNZXNzYWdlOihO
U1N0cmluZyAqKW1lc3NhZ2U7CiAtIChCT09MKXJ1bkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbFdp
dGhQcm9tcHQ6KE5TU3RyaW5nICopcHJvbXB0IGRlZmF1bHRUZXh0OihOU1N0cmluZyAqKWRlZmF1
bHRUZXh0IHJldHVybmluZ1RleHQ6KE5TU3RyaW5nICoqKXJlc3VsdDsKKy0gKEJPT0wpc2hvdWxk
SW50ZXJydXB0SmF2YVNjcmlwdDsKIC0gKEJPT0wpY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBh
bmVsOwogLSAoQk9PTClydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxXaXRoTWVzc2FnZTooTlNT
dHJpbmcgKiltZXNzYWdlOwogLSAodm9pZClhZGRNZXNzYWdlVG9Db25zb2xlOihOU0RpY3Rpb25h
cnkgKiltZXNzYWdlOwpJbmRleDogV2ViQ29yZS9wYWdlL0ZyYW1lLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wYWdlL0ZyYW1lLmgJKHJldmlzaW9uIDE0OTAzKQorKysgV2ViQ29yZS9wYWdlL0Zy
YW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTUzNCw2ICs1MzQsNyBAQCBwdWJsaWM6CiAgIHZpcnR1
YWwgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKSA9IDA7CiAg
IHZpcnR1YWwgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
ID0gMDsKICAgdmlydHVhbCBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQpID0gMDsg
IAorICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdCgpID0gMDsKICAgdmly
dHVhbCBib29sIGxvY2F0aW9uYmFyVmlzaWJsZSgpID0gMDsKICAgdmlydHVhbCBib29sIG1lbnVi
YXJWaXNpYmxlKCkgPSAwOwogICB2aXJ0dWFsIGJvb2wgcGVyc29uYWxiYXJWaXNpYmxlKCkgPSAw
OwpJbmRleDogV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNDkwMykKKysrIFdlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxNCBAQAorMjAwNi0wNi0xOCAgQW5kZXJzIENhcmxzc29uICA8YWNhcmxzc29uQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lQnJpZGdlLm06CisgICAgICAgICgtW1dlYkZyYW1l
QnJpZGdlIHNob3VsZEludGVycnVwdEphdmFTY3JpcHRdKToKKyAgICAgICAgQXNrIHRoZSBVSSBk
ZWxlZ2F0ZSBpZiB0aGUgc2NyaXB0IHNob3VsZCBiZSBpbnRlcnJ1cHRlZC4KKyAgICAgICAgCisg
ICAgICAgICogV2ViVmlldy9XZWJVSURlbGVnYXRlUHJpdmF0ZS5oOgorICAgICAgICBEZWNsYXJl
IHdlYlZpZXdTaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0OiBkZWxlZ2F0ZSBtZXRob2QKKwogMjAw
Ni0wNi0xNyAgTWl0eiBQZXR0ZWwgIDxvcGVuZGFyd2luLm9yZ0BtaXR6cGV0dGVsLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEYXJpbi4KSW5kZXg6IFdlYktpdC9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUJyaWRnZS5tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUJyaWRnZS5tCShyZXZpc2lvbiAxNDkwMykKKysrIFdlYktpdC9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUJyaWRnZS5tCSh3b3JraW5nIGNvcHkpCkBAIC00MDcsNiArNDA3LDE2IEBAIE5TU3Ry
aW5nICpXZWJQbHVnaW5Db250YWluZXJLZXkgPSAgIEAiV2UKICAgICByZXR1cm4gW1tXZWJEZWZh
dWx0VUlEZWxlZ2F0ZSBzaGFyZWRVSURlbGVnYXRlXSB3ZWJWaWV3Ond2IHJ1bkphdmFTY3JpcHRD
b25maXJtUGFuZWxXaXRoTWVzc2FnZTptZXNzYWdlIGluaXRpYXRlZEJ5RnJhbWU6X2ZyYW1lXTsK
IH0KIAorLSAoQk9PTClzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0Cit7CisgICAgV2ViVmlldyAq
d3YgPSBbc2VsZiB3ZWJWaWV3XTsKKyAgICBpZCB3ZCA9IFt3diBVSURlbGVnYXRlXTsKKyAgICAK
KyAgICBpZiAoW3dkIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViVmlld1Nob3VsZElu
dGVycnVwdEphdmFTY3JpcHQ6KV0pCisgICAgICAgIHJldHVybiBbd2Qgd2ViVmlld1Nob3VsZElu
dGVycnVwdEphdmFTY3JpcHQ6d3ZdOworICAgIHJldHVybiBOTzsKK30KKwogLSAoQk9PTCljYW5S
dW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwKIHsKICAgICBXZWJWaWV3ICp3diA9IFtzZWxmIHdl
YlZpZXddOwpJbmRleDogV2ViS2l0L1dlYlZpZXcvV2ViVUlEZWxlZ2F0ZVByaXZhdGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvV2ViVmlldy9XZWJVSURlbGVnYXRlUHJpdmF0ZS5oCShyZXZpc2lv
biAxNDkwMykKKysrIFdlYktpdC9XZWJWaWV3L1dlYlVJRGVsZWdhdGVQcml2YXRlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEwNiw0ICsxMDYsNiBAQAogCiAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcg
KilzZW5kZXIgZHJhZ0ltYWdlOihOU0ltYWdlICopYW5JbWFnZSBhdDooTlNQb2ludCl2aWV3TG9j
YXRpb24gb2Zmc2V0OihOU1NpemUpaW5pdGlhbE9mZnNldCBldmVudDooTlNFdmVudCAqKWV2ZW50
IHBhc3RlYm9hcmQ6KE5TUGFzdGVib2FyZCAqKXBib2FyZCBzb3VyY2U6KGlkKXNvdXJjZU9iaiBz
bGlkZUJhY2s6KEJPT0wpc2xpZGVGbGFnIGZvclZpZXc6KE5TVmlldyAqKXZpZXc7CiAKKy0gKEJP
T0wpd2ViVmlld1Nob3VsZEludGVycnVwdEphdmFTY3JpcHQ6KFdlYlZpZXcgKilzZW5kZXI7CisK
IEBlbmQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8903</attachid>
            <date>2006-06-18 09:59:59 -0700</date>
            <delta_ts>2006-06-18 10:02:16 -0700</delta_ts>
            <desc>Address Geoff&apos;s comments</desc>
            <filename>hang-detection-webcore-3.txt</filename>
            <type>text/plain</type>
            <size>14468</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0OTAzKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMDYtMDYtMTggIEFuZGVycyBD
YXJsc3NvbiAgPGFjYXJsc3NvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBranMvaW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAo
S0pTOjpUaW1lb3V0Q2hlY2tlcjo6cGF1c2VUaW1lb3V0Q2hlY2spOgorICAgICAgICBEbyBub3Ro
aW5nIGlmIHRoZSB0aW1lb3V0IGNoZWNrIGhhc24ndCBiZWVuIHN0YXJ0ZWQuCisgICAgICAgIAor
ICAgICAgICAoS0pTOjpUaW1lb3V0Q2hlY2tlcjo6cmVzdW1lVGltZW91dENoZWNrKToKKyAgICAg
ICAgRG8gbm90aGluZyBpZiB0aGUgdGltZW91dCBjaGVjayBoYXNuJ3QgYmVlbiBzdGFydGVkLgor
ICAgICAgICBVc2UgdGhlIHJpZ2h0IHNpZ25hbCBoYW5kbGVyIHdoZW4gdW5ibG9ja2luZy4KKyAg
ICAgICAgCisgICAgICAgIChLSlM6OkludGVycHJldGVyOjpoYW5kbGVUaW1lb3V0KToKKyAgICAg
ICAgcGF1c2UvcmVzdW1lIHRoZSB0aW1lb3V0IGNoZWNrIGFyb3VuZCB0aGUgY2FsbCB0bworICAg
ICAgICBzaG91bGRJbnRlcnJ1cHRTY3JpcHQoKS4KKyAgICAgICAgCiAyMDA2LTA2LTE2ICBCZW4g
R29vZGdlciA8YmVuZ0Bnb29nbGUuY29tPgogICAgICAgICAKICAgICAgICAgUmV2aWV3ZWQgYnkg
TWFjaWVqCkBAIC0xMSw3ICsyNyw2IEBACiAgICAgICAgIE1ha2Ugc3VyZSB0byBvbmx5IGFzc2Vy
dCBlcXVhbGl0eSB3aXRoIHNfZXhlY3V0aW5nSW50ZXJwcmV0ZXIgd2hlbiBpdCAKICAgICAgICAg
aXMgYmVpbmcgdXNlZCAoaS5lLiB3aGVuIEhBVkUoU1lTX1RJTUVfSCkgPT0gdHJ1ZSkKIAotCiAy
MDA2LTA2LTE3ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBraWx6ZXIubmV0PgogCiAgICAgICAg
IFJldmlld2VkIGJ5IGRhcmluLgpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL2ludGVycHJldGVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMvaW50ZXJwcmV0ZXIuY3BwCShy
ZXZpc2lvbiAxNDkwMykKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9pbnRlcnByZXRlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE0Miw3ICsxNDIsMTAgQEAgdm9pZCBUaW1lb3V0Q2hlY2tlcjo6YWxh
cm1IYW5kbGVyKGludCkgCiAKIHZvaWQgVGltZW91dENoZWNrZXI6OnBhdXNlVGltZW91dENoZWNr
KEludGVycHJldGVyKiBpbnRlcnByZXRlcikKIHsKLSNpZiBIQVZFKFNZU19USU1FX0gpCisgICAg
aWYgKGludGVycHJldGVyLT5tX3N0YXJ0VGltZW91dENoZWNrQ291bnQgPT0gMCkKKyAgICAgICAg
cmV0dXJuOworCisjaWYgSEFWRShTWVNfVElNRV9IKSAgICAKICAgICBBU1NFUlQoaW50ZXJwcmV0
ZXIgPT0gc19leGVjdXRpbmdJbnRlcnByZXRlcik7CiAKICAgICB2b2lkICgqY3VycmVudFNpZ25h
bEhhbmRsZXIpKGludCk7CkBAIC0xNjMsNiArMTY2LDkgQEAgdm9pZCBUaW1lb3V0Q2hlY2tlcjo6
cGF1c2VUaW1lb3V0Q2hlY2soSQogCiB2b2lkIFRpbWVvdXRDaGVja2VyOjpyZXN1bWVUaW1lb3V0
Q2hlY2soSW50ZXJwcmV0ZXIqIGludGVycHJldGVyKQogeworICAgIGlmIChpbnRlcnByZXRlci0+
bV9zdGFydFRpbWVvdXRDaGVja0NvdW50ID09IDApCisgICAgICAgIHJldHVybjsKKwogI2lmIEhB
VkUoU1lTX1RJTUVfSCkKICAgICBBU1NFUlQoaW50ZXJwcmV0ZXIgPT0gc19leGVjdXRpbmdJbnRl
cnByZXRlcik7CiAjZW5kaWYKQEAgLTE4Niw3ICsxOTIsNyBAQCB2b2lkIFRpbWVvdXRDaGVja2Vy
OjpyZXN1bWVUaW1lb3V0Q2hlY2soCiAgICAgc2V0aXRpbWVyKElUSU1FUl9SRUFMLCAwTCwgJm1f
cGF1c2V0dik7ICAgIAogCiAgICAgLy8gVW5ibG9jayBzaWduYWwKLSAgICBjdXJyZW50U2lnbmFs
SGFuZGxlciA9IHNpZ25hbChTSUdBTFJNLCBTSUdfSUdOKTsgICAgCisgICAgY3VycmVudFNpZ25h
bEhhbmRsZXIgPSBzaWduYWwoU0lHQUxSTSwgYWxhcm1IYW5kbGVyKTsgICAgCiAjZW5kaWYKIH0K
IApAQCAtODAxLDggKzgwNywxMiBAQCB2b2lkIEludGVycHJldGVyOjpyZXN1bWVUaW1lb3V0Q2hl
Y2soKQogYm9vbCBJbnRlcnByZXRlcjo6aGFuZGxlVGltZW91dCgpCiB7CiAgICAgbV90aW1lZE91
dCA9IGZhbHNlOworCisgICAgcGF1c2VUaW1lb3V0Q2hlY2soKTsKKyAgICBib29sIHJldHZhbCA9
IHNob3VsZEludGVycnVwdFNjcmlwdCgpOworICAgIHJlc3VtZVRpbWVvdXRDaGVjaygpOwogICAg
IAotICAgIHJldHVybiBzaG91bGRJbnRlcnJ1cHRTY3JpcHQoKTsKKyAgICByZXR1cm4gcmV0dmFs
OwogfQogCiAKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9pbnRlcnByZXRlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9pbnRlcnByZXRlci5oCShyZXZpc2lvbiAxNDkwMykK
KysrIEphdmFTY3JpcHRDb3JlL2tqcy9pbnRlcnByZXRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
MzYsNyArMzM2LDcgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgYm9vbCBjaGVja1RpbWVvdXQoKTsK
ICAgICAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW50ZXJydXB0U2NyaXB0
KCkgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJbnRlcnJ1cHRTY3Jp
cHQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgbG9uZyBtX3RpbWVvdXRUaW1lOwogCiBw
cml2YXRlOgpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE0OTAzKQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwzOCBAQAorMjAwNi0wNi0xNyAgQW5kZXJzIENhcmxzc29uICA8YWNh
cmxzc29uQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGJpbmRpbmdzL2pzL2tqc19iaW5kaW5nLmNwcDoKKyAgICAgICAgKEtKUzo6
U2NyaXB0SW50ZXJwcmV0ZXI6OlNjcmlwdEludGVycHJldGVyKToKKyAgICAgICAgU2V0IHRoZSBk
ZWZhdWx0IHNjcmlwdCB0aW1lb3V0LgorICAgICAgICAKKyAgICAgICAgKEtKUzo6U2NyaXB0SW50
ZXJwcmV0ZXI6OnNob3VsZEludGVycnVwdFNjcmlwdCk6CisgICAgICAgIE5ldyBmdW5jdGlvbiB3
aGljaCBhc2tzIHRoZSBmcmFtZSBpZiB0aGUgc2NyaXB0IHNob3VsZCBiZSBpbnRlcnJ1cHRlZC4K
KyAgICAgICAgCisgICAgICAgICogYmluZGluZ3MvanMva2pzX2JpbmRpbmcuaDoKKyAgICAgICAg
ICAgICAgICAKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9ranNfZXZlbnRzLmNwcDoKKyAgICAgICAg
KEtKUzo6SlNBYnN0cmFjdEV2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9ranNfcHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6S0pTUHJveHk6OmV2
YWx1YXRlKToKKyAgICAgICAgQWRkIGNhbGxzIHRvIHN0YXJ0VGltZW91dENoZWNrL3N0b3BUaW1l
b3V0Q2hlY2sKKyAgICAgICAgCisgICAgICAgICogYmluZGluZ3MvanMva2pzX3dpbmRvdy5jcHA6
CisgICAgICAgIChLSlM6OldpbmRvd0Z1bmM6OmNhbGxBc0Z1bmN0aW9uKToKKyAgICAgICAgQWRk
IGNhbGxzIHRvIHBhdXNlVGltZW91dENoZWNrL3VucGF1c2VUaW1lb3V0Q2hlY2sgCisgICAgICAg
IAorICAgICAgICAoS0pTOjpTY2hlZHVsZWRBY3Rpb246OmV4ZWN1dGUpOgorICAgICAgICBBZGQg
Y2FsbHMgdG8gc3RhcnRUaW1lb3V0Q2hlY2svc3RvcFRpbWVvdXRDaGVjaworICAgICAgICAKKyAg
ICAgICAgKiBicmlkZ2UvbWFjL0ZyYW1lTWFjLmg6CisgICAgICAgICogYnJpZGdlL21hYy9GcmFt
ZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTWFjOjpzaG91bGRJbnRlcnJ1cHRKYXZh
U2NyaXB0KToKKyAgICAgICAgTmV3IGZ1bmN0aW9uIHdoaWNoIGFza3MgdGhlIGJyaWRnZSBpZiB0
aGUgc2NyaXB0IHNob3VsZCBiZSBpbnRlcnJ1cHRlZC4KKyAgICAgICAgCisgICAgICAgICogYnJp
ZGdlL21hYy9XZWJDb3JlRnJhbWVCcmlkZ2UuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmg6Cisg
ICAgICAgIEFkZCBmdW5jdGlvbiBkZWNsYXJhdGlvbnMuCisgICAgICAgIAogMjAwNi0wNi0xNyAg
QWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQG55cG9wLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBnZ2FyZW4uCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19iaW5kaW5nLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19iaW5kaW5nLmNwcAkocmV2aXNpb24g
MTQ5MDMpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19iaW5kaW5nLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjgsNiArNjgsMTAgQEAgU2NyaXB0SW50ZXJwcmV0ZXI6OlNjcmlwdEludGVycHJl
dGVyKCBKUwogICA6IEludGVycHJldGVyKCBnbG9iYWwgKSwgbV9mcmFtZShmcmFtZSksCiAgICAg
bV9ldnQoIDBMICksIG1faW5saW5lQ29kZShmYWxzZSksIG1fdGltZXJDYWxsYmFjayhmYWxzZSkK
IHsKKyAgICAvLyBUaW1lIGluIG1pbGxpc2Vjb25kcyBiZWZvcmUgdGhlIHNjcmlwdCB0aW1lb3V0
IGhhbmRsZXIga2lja3MgaW4KKyAgICBjb25zdCB1bnNpZ25lZCBTY3JpcHRUaW1lb3V0VGltZU1T
ID0gNTAwMDsKKyAgICAgICAgCisgICAgc2V0VGltZW91dFRpbWUoU2NyaXB0VGltZW91dFRpbWVN
Uyk7CiB9CiAKIFNjcmlwdEludGVycHJldGVyOjp+U2NyaXB0SW50ZXJwcmV0ZXIoKQpAQCAtMjQ2
LDcgKzI1MCwxMSBAQCB2b2lkICpTY3JpcHRJbnRlcnByZXRlcjo6Y3JlYXRlTGFuZ3VhZ2VJCiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotCitib29sIFNjcmlwdEludGVycHJldGVyOjpzaG91bGRJ
bnRlcnJ1cHRTY3JpcHQoKSBjb25zdAoreworICAgIHJldHVybiBtX2ZyYW1lLT5zaG91bGRJbnRl
cnJ1cHRKYXZhU2NyaXB0KCk7Cit9CisgICAgCiAvLy8vLy8KIAogSlNWYWx1ZSAqanNTdHJpbmdP
ck51bGwoY29uc3QgU3RyaW5nICZzKQpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfYmlu
ZGluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMva2pzX2JpbmRpbmcuaAko
cmV2aXNpb24gMTQ5MDMpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19iaW5kaW5nLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEwMSw2ICsxMDEsOCBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICB2aXJ0
dWFsIHZvaWQgKmNyZWF0ZUxhbmd1YWdlSW5zdGFuY2VGb3JWYWx1ZSAoRXhlY1N0YXRlICpleGVj
LCBpbnQgbGFuZ3VhZ2UsIEpTT2JqZWN0ICp2YWx1ZSwgY29uc3QgQmluZGluZ3M6OlJvb3RPYmpl
Y3QgKm9yaWdpbiwgY29uc3QgQmluZGluZ3M6OlJvb3RPYmplY3QgKmN1cnJlbnQpOwogICAgIHZv
aWQgKmNyZWF0ZU9iamNJbnN0YW5jZUZvclZhbHVlIChFeGVjU3RhdGUgKmV4ZWMsIEpTT2JqZWN0
ICp2YWx1ZSwgY29uc3QgQmluZGluZ3M6OlJvb3RPYmplY3QgKm9yaWdpbiwgY29uc3QgQmluZGlu
Z3M6OlJvb3RPYmplY3QgKmN1cnJlbnQpOwogCisgICAgdmlydHVhbCBib29sIHNob3VsZEludGVy
cnVwdFNjcmlwdCgpIGNvbnN0OworCiAgIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6RnJhbWUqIG1f
ZnJhbWU7CiAKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMva2pzX2V2ZW50cy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfZXZlbnRzLmNwcAkocmV2aXNpb24gMTQ5
MDMpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19ldmVudHMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC05NCwxNiArOTQsMTkgQEAgdm9pZCBKU0Fic3RyYWN0RXZlbnRMaXN0ZW5lcjo6aGFuZGxl
RXZlbgogICAgICAgICBpbnRlcnByZXRlci0+c2V0Q3VycmVudEV2ZW50KGV2ZW50KTsKICAgICAg
IAogICAgICAgICBKU1ZhbHVlKiByZXR2YWw7Ci0gICAgICAgIGlmIChoYW5kbGVFdmVudEZ1bmMp
CisgICAgICAgIGlmIChoYW5kbGVFdmVudEZ1bmMpIHsKKyAgICAgICAgICAgIGludGVycHJldGVy
LT5zdGFydFRpbWVvdXRDaGVjaygpOwogICAgICAgICAgICAgcmV0dmFsID0gaGFuZGxlRXZlbnRG
dW5jLT5jYWxsKGV4ZWMsIGxpc3RlbmVyLCBhcmdzKTsKLSAgICAgICAgZWxzZSB7CisgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICBKU09iamVjdCogdGhpc09iajsKICAgICAgICAgICAgIGlm
IChpc1dpbmRvd0V2ZW50KQogICAgICAgICAgICAgICAgIHRoaXNPYmogPSB3aW5kb3c7CiAgICAg
ICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgdGhpc09iaiA9IHN0YXRpY19jYXN0PEpTT2Jq
ZWN0Kj4odG9KUyhleGVjLCBldmVudC0+Y3VycmVudFRhcmdldCgpKSk7CisgICAgICAgICAgICBp
bnRlcnByZXRlci0+c3RhcnRUaW1lb3V0Q2hlY2soKTsKICAgICAgICAgICAgIHJldHZhbCA9IGxp
c3RlbmVyLT5jYWxsKGV4ZWMsIHRoaXNPYmosIGFyZ3MpOwogICAgICAgICB9CisgICAgICAgIGlu
dGVycHJldGVyLT5zdG9wVGltZW91dENoZWNrKCk7CiAKICAgICAgICAgd2luZG93LT5zZXRDdXJy
ZW50RXZlbnQoMCk7CiAgICAgICAgIGludGVycHJldGVyLT5zZXRDdXJyZW50RXZlbnQoMCk7Cklu
ZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19wcm94eS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9iaW5kaW5ncy9qcy9ranNfcHJveHkuY3BwCShyZXZpc2lvbiAxNDkwMykKKysrIFdlYkNv
cmUvYmluZGluZ3MvanMva2pzX3Byb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjUsOCArNjUs
MTEgQEAgSlNWYWx1ZSogS0pTUHJveHk6OmV2YWx1YXRlKGNvbnN0IFN0cmluZwogICBKU0xvY2sg
bG9jazsKIAogICBKU1ZhbHVlKiB0aGlzTm9kZSA9IG4gPyBXaW5kb3c6OnJldHJpZXZlKG1fZnJh
bWUpIDogdG9KUyhtX3NjcmlwdC0+Z2xvYmFsRXhlYygpLCBuKTsKKyAgCisgIG1fc2NyaXB0LT5z
dGFydFRpbWVvdXRDaGVjaygpOwogICBDb21wbGV0aW9uIGNvbXAgPSBtX3NjcmlwdC0+ZXZhbHVh
dGUoZmlsZW5hbWUsIGJhc2VMaW5lLCByZWludGVycHJldF9jYXN0PGNvbnN0IEtKUzo6VUNoYXIq
PihzdHIuY2hhcmFjdGVycygpKSwgc3RyLmxlbmd0aCgpLCB0aGlzTm9kZSk7Ci0KKyAgbV9zY3Jp
cHQtPnN0b3BUaW1lb3V0Q2hlY2soKTsKKyAgCiAgIGlmIChjb21wLmNvbXBsVHlwZSgpID09IE5v
cm1hbCB8fCBjb21wLmNvbXBsVHlwZSgpID09IFJldHVyblZhbHVlKQogICAgIHJldHVybiBjb21w
LnZhbHVlKCk7CiAKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMva2pzX3dpbmRvdy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfd2luZG93LmNwcAkocmV2aXNpb24g
MTQ5MDMpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc193aW5kb3cuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xNTE2LDEyICsxNTE2LDE4IEBAIEpTVmFsdWUgKldpbmRvd0Z1bmM6OmNhbGxBc0Z1
bmN0aW9uKEV4ZWMKICAgY2FzZSBXaW5kb3c6OkFsZXJ0OgogICAgIGlmIChmcmFtZSAmJiBmcmFt
ZS0+ZG9jdW1lbnQoKSkKICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT51cGRhdGVSZW5kZXJpbmco
KTsKKyAgICBleGVjLT5keW5hbWljSW50ZXJwcmV0ZXIoKS0+cGF1c2VUaW1lb3V0Q2hlY2soKTsK
ICAgICBmcmFtZS0+cnVuSmF2YVNjcmlwdEFsZXJ0KHN0cik7CisgICAgZXhlYy0+ZHluYW1pY0lu
dGVycHJldGVyKCktPnJlc3VtZVRpbWVvdXRDaGVjaygpOwogICAgIHJldHVybiBqc1VuZGVmaW5l
ZCgpOwotICBjYXNlIFdpbmRvdzo6Q29uZmlybToKKyAgY2FzZSBXaW5kb3c6OkNvbmZpcm06IHsK
ICAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPmRvY3VtZW50KCkpCiAgICAgICBmcmFtZS0+ZG9jdW1l
bnQoKS0+dXBkYXRlUmVuZGVyaW5nKCk7Ci0gICAgcmV0dXJuIGpzQm9vbGVhbihmcmFtZS0+cnVu
SmF2YVNjcmlwdENvbmZpcm0oc3RyKSk7CisgICAgZXhlYy0+ZHluYW1pY0ludGVycHJldGVyKCkt
PnBhdXNlVGltZW91dENoZWNrKCk7CisgICAgYm9vbCByZXN1bHQgPSBmcmFtZS0+cnVuSmF2YVNj
cmlwdENvbmZpcm0oc3RyKTsKKyAgICBleGVjLT5keW5hbWljSW50ZXJwcmV0ZXIoKS0+cmVzdW1l
VGltZW91dENoZWNrKCk7CisgICAgcmV0dXJuIGpzQm9vbGVhbihyZXN1bHQpOworICB9CiAgIGNh
c2UgV2luZG93OjpQcm9tcHQ6CiAgIHsKICAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPmRvY3VtZW50
KCkpCkBAIC0xNzcyLDggKzE3NzgsMTIgQEAgSlNWYWx1ZSAqV2luZG93RnVuYzo6Y2FsbEFzRnVu
Y3Rpb24oRXhlYwogICAgICAgICAgICAgaWYgKERvY3VtZW50ICpkb2MgPSBmcmFtZS0+ZG9jdW1l
bnQoKSkKICAgICAgICAgICAgICAgICBkb2MtPnJlbW92ZVdpbmRvd0V2ZW50TGlzdGVuZXIoQXRv
bWljU3RyaW5nKGFyZ3NbMF0tPnRvU3RyaW5nKGV4ZWMpKSwgbGlzdGVuZXIsIGFyZ3NbMl0tPnRv
Qm9vbGVhbihleGVjKSk7CiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICBjYXNlIFdp
bmRvdzo6U2hvd01vZGFsRGlhbG9nOgotICAgIHJldHVybiBzaG93TW9kYWxEaWFsb2coZXhlYywg
d2luZG93LCBhcmdzKTsKKyAgY2FzZSBXaW5kb3c6OlNob3dNb2RhbERpYWxvZzogeworICAgIGV4
ZWMtPmR5bmFtaWNJbnRlcnByZXRlcigpLT5wYXVzZVRpbWVvdXRDaGVjaygpOworICAgIEpTVmFs
dWUqIHJlc3VsdCA9IHNob3dNb2RhbERpYWxvZyhleGVjLCB3aW5kb3csIGFyZ3MpOworICAgIGV4
ZWMtPmR5bmFtaWNJbnRlcnByZXRlcigpLT5yZXN1bWVUaW1lb3V0Q2hlY2soKTsgICAgICAKKyAg
ICByZXR1cm4gcmVzdWx0OworICB9CiAgIH0KICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CkBA
IC0xODAxLDcgKzE4MTEsOSBAQCB2b2lkIFNjaGVkdWxlZEFjdGlvbjo6ZXhlY3V0ZShXaW5kb3cg
KndpCiAgICAgICAgICAgICBFeGVjU3RhdGUgKmV4ZWMgPSBpbnRlcnByZXRlci0+Z2xvYmFsRXhl
YygpOwogICAgICAgICAgICAgQVNTRVJUKHdpbmRvdyA9PSBpbnRlcnByZXRlci0+Z2xvYmFsT2Jq
ZWN0KCkpOwogICAgICAgICAgICAgSlNMb2NrIGxvY2s7CisgICAgICAgICAgICBpbnRlcnByZXRl
ci0+c3RhcnRUaW1lb3V0Q2hlY2soKTsKICAgICAgICAgICAgIHN0YXRpY19jYXN0PEpTT2JqZWN0
ICo+KGZ1bmMpLT5jYWxsKGV4ZWMsIHdpbmRvdywgbV9hcmdzKTsKKyAgICAgICAgICAgIGludGVy
cHJldGVyLT5zdG9wVGltZW91dENoZWNrKCk7CiAgICAgICAgICAgICBpZiAoZXhlYy0+aGFkRXhj
ZXB0aW9uKCkpIHsKICAgICAgICAgICAgICAgICBKU09iamVjdCogZXhjZXB0aW9uID0gZXhlYy0+
ZXhjZXB0aW9uKCktPnRvT2JqZWN0KGV4ZWMpOwogICAgICAgICAgICAgICAgIGV4ZWMtPmNsZWFy
RXhjZXB0aW9uKCk7CkluZGV4OiBXZWJDb3JlL2JyaWRnZS9tYWMvRnJhbWVNYWMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JyaWRnZS9tYWMvRnJhbWVNYWMuaAkocmV2aXNpb24gMTQ5MDMpCisr
KyBXZWJDb3JlL2JyaWRnZS9tYWMvRnJhbWVNYWMuaAkod29ya2luZyBjb3B5KQpAQCAtMTY2LDYg
KzE2Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KGNv
bnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShjb25z
dCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3Vs
dCk7CisgICAgdmlydHVhbCBib29sIHNob3VsZEludGVycnVwdEphdmFTY3JpcHQoKTsgICAgCiAg
ICAgdmlydHVhbCBib29sIGxvY2F0aW9uYmFyVmlzaWJsZSgpOwogICAgIHZpcnR1YWwgYm9vbCBt
ZW51YmFyVmlzaWJsZSgpOwogICAgIHZpcnR1YWwgYm9vbCBwZXJzb25hbGJhclZpc2libGUoKTsK
SW5kZXg6IFdlYkNvcmUvYnJpZGdlL21hYy9GcmFtZU1hYy5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2JyaWRnZS9tYWMvRnJhbWVNYWMubW0JKHJldmlzaW9uIDE0OTAzKQorKysgV2ViQ29yZS9i
cmlkZ2UvbWFjL0ZyYW1lTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMjU3LDYgKzEyNTcsMTUg
QEAgYm9vbCBGcmFtZU1hYzo6cnVuSmF2YVNjcmlwdFByb21wdChjb25zdAogICAgIHJldHVybiBm
YWxzZTsKIH0KIAorYm9vbCBGcmFtZU1hYzo6c2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdCgpCit7
CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIHJldHVybiBbX2JyaWRnZSBz
aG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0XTsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05T
OworICAgIAorICAgIHJldHVybiBmYWxzZTsKK30KKwogYm9vbCBGcmFtZU1hYzo6bG9jYXRpb25i
YXJWaXNpYmxlKCkKIHsKICAgICByZXR1cm4gW19icmlkZ2UgYXJlVG9vbGJhcnNWaXNpYmxlXTsK
SW5kZXg6IFdlYkNvcmUvYnJpZGdlL21hYy9XZWJDb3JlRnJhbWVCcmlkZ2UuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2JyaWRnZS9tYWMvV2ViQ29yZUZyYW1lQnJpZGdlLmgJKHJldmlzaW9uIDE0
OTAzKQorKysgV2ViQ29yZS9icmlkZ2UvbWFjL1dlYkNvcmVGcmFtZUJyaWRnZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC01NTEsNiArNTUxLDcgQEAgdHlwZWRlZiBlbnVtIHsKIC0gKHZvaWQpcnVuSmF2
YVNjcmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlOwogLSAoQk9P
TClydW5KYXZhU2NyaXB0Q29uZmlybVBhbmVsV2l0aE1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2Fn
ZTsKIC0gKEJPT0wpcnVuSmF2YVNjcmlwdFRleHRJbnB1dFBhbmVsV2l0aFByb21wdDooTlNTdHJp
bmcgKilwcm9tcHQgZGVmYXVsdFRleHQ6KE5TU3RyaW5nICopZGVmYXVsdFRleHQgcmV0dXJuaW5n
VGV4dDooTlNTdHJpbmcgKiopcmVzdWx0OworLSAoQk9PTClzaG91bGRJbnRlcnJ1cHRKYXZhU2Ny
aXB0OwogLSAoQk9PTCljYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWw7CiAtIChCT09MKXJ1
bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbFdpdGhNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2U7
CiAtICh2b2lkKWFkZE1lc3NhZ2VUb0NvbnNvbGU6KE5TRGljdGlvbmFyeSAqKW1lc3NhZ2U7Cklu
ZGV4OiBXZWJDb3JlL3BhZ2UvRnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRnJh
bWUuaAkocmV2aXNpb24gMTQ5MDMpCisrKyBXZWJDb3JlL3BhZ2UvRnJhbWUuaAkod29ya2luZyBj
b3B5KQpAQCAtNTM0LDYgKzUzNCw3IEBAIHB1YmxpYzoKICAgdmlydHVhbCB2b2lkIHJ1bkphdmFT
Y3JpcHRBbGVydChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpID0gMDsKICAgdmlydHVhbCBib29sIHJ1
bkphdmFTY3JpcHRDb25maXJtKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgPSAwOwogICB2aXJ0dWFs
IGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0
cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkgPSAwOyAgCisgIHZpcnR1YWwgYm9v
bCBzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0KCkgPSAwOwogICB2aXJ0dWFsIGJvb2wgbG9jYXRp
b25iYXJWaXNpYmxlKCkgPSAwOwogICB2aXJ0dWFsIGJvb2wgbWVudWJhclZpc2libGUoKSA9IDA7
CiAgIHZpcnR1YWwgYm9vbCBwZXJzb25hbGJhclZpc2libGUoKSA9IDA7CkluZGV4OiBXZWJLaXQv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0OTAz
KQorKysgV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisy
MDA2LTA2LTE4ICBBbmRlcnMgQ2FybHNzb24gIDxhY2FybHNzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVCcmlkZ2UubToKKyAgICAgICAgKC1bV2ViRnJhbWVCcmlkZ2Ugc2hvdWxkSW50
ZXJydXB0SmF2YVNjcmlwdF0pOgorICAgICAgICBBc2sgdGhlIFVJIGRlbGVnYXRlIGlmIHRoZSBz
Y3JpcHQgc2hvdWxkIGJlIGludGVycnVwdGVkLgorICAgICAgICAKKyAgICAgICAgKiBXZWJWaWV3
L1dlYlVJRGVsZWdhdGVQcml2YXRlLmg6CisgICAgICAgIERlY2xhcmUgd2ViVmlld1Nob3VsZElu
dGVycnVwdEphdmFTY3JpcHQ6IGRlbGVnYXRlIG1ldGhvZAorCiAyMDA2LTA2LTE3ICBNaXR6IFBl
dHRlbCAgPG9wZW5kYXJ3aW4ub3JnQG1pdHpwZXR0ZWwuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERhcmluLgpJbmRleDogV2ViS2l0L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lQnJpZGdlLm0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lQnJpZGdlLm0JKHJl
dmlzaW9uIDE0OTAzKQorKysgV2ViS2l0L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lQnJpZGdlLm0J
KHdvcmtpbmcgY29weSkKQEAgLTQwNyw2ICs0MDcsMTYgQEAgTlNTdHJpbmcgKldlYlBsdWdpbkNv
bnRhaW5lcktleSA9ICAgQCJXZQogICAgIHJldHVybiBbW1dlYkRlZmF1bHRVSURlbGVnYXRlIHNo
YXJlZFVJRGVsZWdhdGVdIHdlYlZpZXc6d3YgcnVuSmF2YVNjcmlwdENvbmZpcm1QYW5lbFdpdGhN
ZXNzYWdlOm1lc3NhZ2UgaW5pdGlhdGVkQnlGcmFtZTpfZnJhbWVdOwogfQogCistIChCT09MKXNo
b3VsZEludGVycnVwdEphdmFTY3JpcHQKK3sKKyAgICBXZWJWaWV3ICp3diA9IFtzZWxmIHdlYlZp
ZXddOworICAgIGlkIHdkID0gW3d2IFVJRGVsZWdhdGVdOworICAgIAorICAgIGlmIChbd2QgcmVz
cG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3U2hvdWxkSW50ZXJydXB0SmF2YVNjcmlw
dDopXSkKKyAgICAgICAgcmV0dXJuIFt3ZCB3ZWJWaWV3U2hvdWxkSW50ZXJydXB0SmF2YVNjcmlw
dDp3dl07CisgICAgcmV0dXJuIE5POworfQorCiAtIChCT09MKWNhblJ1bkJlZm9yZVVubG9hZENv
bmZpcm1QYW5lbAogewogICAgIFdlYlZpZXcgKnd2ID0gW3NlbGYgd2ViVmlld107CkluZGV4OiBX
ZWJLaXQvV2ViVmlldy9XZWJVSURlbGVnYXRlUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC9XZWJWaWV3L1dlYlVJRGVsZWdhdGVQcml2YXRlLmgJKHJldmlzaW9uIDE0OTAzKQorKysgV2Vi
S2l0L1dlYlZpZXcvV2ViVUlEZWxlZ2F0ZVByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTA2
LDQgKzEwNiw2IEBACiAKIC0gKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXNlbmRlciBkcmFnSW1h
Z2U6KE5TSW1hZ2UgKilhbkltYWdlIGF0OihOU1BvaW50KXZpZXdMb2NhdGlvbiBvZmZzZXQ6KE5T
U2l6ZSlpbml0aWFsT2Zmc2V0IGV2ZW50OihOU0V2ZW50ICopZXZlbnQgcGFzdGVib2FyZDooTlNQ
YXN0ZWJvYXJkICopcGJvYXJkIHNvdXJjZTooaWQpc291cmNlT2JqIHNsaWRlQmFjazooQk9PTClz
bGlkZUZsYWcgZm9yVmlldzooTlNWaWV3ICopdmlldzsKIAorLSAoQk9PTCl3ZWJWaWV3U2hvdWxk
SW50ZXJydXB0SmF2YVNjcmlwdDooV2ViVmlldyAqKXNlbmRlcjsKKwogQGVuZAo=
</data>
<flag name="review"
          id="2609"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>