<?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>133135</bug_id>
          
          <creation_ts>2014-05-20 14:01:00 -0700</creation_ts>
          <short_desc>Watchdog timer should be lazily allocated</short_desc>
          <delta_ts>2014-05-20 15:56:22 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1010627</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-05-20 14:01:00 -0700</bug_when>
    <thetext>We incur a noticeable amount of overhead on some benchmarks due to checking if the Watchdog ever fired. There is no reason to do this checking if we never activated the Watchdog, which can only be done through JSContextGroupSetExecutionTimeLimit or JSContextGroupClearExecutionTimeLimit. 

By allocating the Watchdog lazily on the VM we can avoid all of the associated overhead when we don&apos;t use these two API functions (which is true of most clients).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010628</commentid>
    <comment_count>1</comment_count>
      <attachid>231793</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-05-20 14:02:34 -0700</bug_when>
    <thetext>Created attachment 231793
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010631</commentid>
    <comment_count>2</comment_count>
      <attachid>231793</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-05-20 14:07:58 -0700</bug_when>
    <thetext>Comment on attachment 231793
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010645</commentid>
    <comment_count>3</comment_count>
      <attachid>231793</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-20 15:56:19 -0700</bug_when>
    <thetext>Comment on attachment 231793
Patch

Clearing flags on attachment: 231793

Committed r169139: &lt;http://trac.webkit.org/changeset/169139&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010646</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-20 15:56:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231793</attachid>
            <date>2014-05-20 14:02:34 -0700</date>
            <delta_ts>2014-05-20 15:56:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133135-20140520135742.patch</filename>
            <type>text/plain</type>
            <size>16799</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTY5MTMzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBA
CisyMDE0LTA1LTIwICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgV2F0Y2hkb2cgdGltZXIgc2hvdWxkIGJlIGxhemlseSBhbGxvY2F0ZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzEzNQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIGluY3VyIGEgbm90
aWNlYWJsZSBhbW91bnQgb2Ygb3ZlcmhlYWQgb24gc29tZSBiZW5jaG1hcmtzIGR1ZSB0byBjaGVj
a2luZyBpZiB0aGUgV2F0Y2hkb2cgZXZlciBmaXJlZC4gCisgICAgICAgIFRoZXJlIGlzIG5vIHJl
YXNvbiB0byBkbyB0aGlzIGNoZWNraW5nIGlmIHdlIG5ldmVyIGFjdGl2YXRlZCB0aGUgV2F0Y2hk
b2csIHdoaWNoIGNhbiBvbmx5IGJlIGRvbmUgdGhyb3VnaCAKKyAgICAgICAgSlNDb250ZXh0R3Jv
dXBTZXRFeGVjdXRpb25UaW1lTGltaXQgb3IgSlNDb250ZXh0R3JvdXBDbGVhckV4ZWN1dGlvblRp
bWVMaW1pdC4gCisKKyAgICAgICAgQnkgYWxsb2NhdGluZyB0aGUgV2F0Y2hkb2cgbGF6aWx5IG9u
IHRoZSBWTSB3ZSBjYW4gYXZvaWQgYWxsIG9mIHRoZSBhc3NvY2lhdGVkIG92ZXJoZWFkIHdoZW4g
d2UgZG9uJ3QgdXNlIAorICAgICAgICB0aGVzZSB0d28gQVBJIGZ1bmN0aW9ucyAod2hpY2ggaXMg
dHJ1ZSBvZiBtb3N0IGNsaWVudHMpLgorCisgICAgICAgICogQVBJL0pTQ29udGV4dFJlZi5jcHA6
CisgICAgICAgIChKU0NvbnRleHRHcm91cFNldEV4ZWN1dGlvblRpbWVMaW1pdCk6CisgICAgICAg
IChKU0NvbnRleHRHcm91cENsZWFyRXhlY3V0aW9uVGltZUxpbWl0KToKKyAgICAgICAgKiBkZmcv
REZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2Vy
OjpwYXJzZUJsb2NrKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAq
IGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3Bw
OgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6ZXhlY3V0ZSk6CisgICAgICAgIChKU0M6Oklu
dGVycHJldGVyOjpleGVjdXRlQ2FsbCk6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjpleGVj
dXRlQ29uc3RydWN0KToKKyAgICAgICAgKiBqaXQvSklUT3Bjb2Rlcy5jcHA6CisgICAgICAgIChK
U0M6OkpJVDo6ZW1pdF9vcF9sb29wX2hpbnQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93
X29wX2xvb3BfaGludCk6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAg
ICAqIGxsaW50L0xMSW50U2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpTQzo6TExJbnQ6OkxMSU5U
X1NMT1dfUEFUSF9ERUNMKToKKyAgICAgICAgKiBydW50aW1lL1ZNLmg6CisgICAgICAgICogcnVu
dGltZS9XYXRjaGRvZy5jcHA6CisgICAgICAgIChKU0M6OldhdGNoZG9nOjpTY29wZTo6U2NvcGUp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6U2NvcGU6On5TY29wZSk6IERlbGV0
ZWQuCisgICAgICAgICogcnVudGltZS9XYXRjaGRvZy5oOgorICAgICAgICAoSlNDOjpXYXRjaGRv
Zzo6U2NvcGU6OlNjb3BlKToKKyAgICAgICAgKEpTQzo6V2F0Y2hkb2c6OlNjb3BlOjp+U2NvcGUp
OgorCiAyMDE0LTA1LTE5ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgSlNBcnJheTo6c2hpZnRDb3VudFdpdGgqIGNvdWxkIGJlIG1vcmUgZWZmaWNp
ZW50CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJlZi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NvbnRleHRSZWYuY3BwCShy
ZXZpc2lvbiAxNjkxMjIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFJl
Zi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg5LDcgKzg5LDkgQEAgdm9pZCBKU0NvbnRleHRHcm91
cFNldEV4ZWN1dGlvblRpbWVMaW1pdAogewogICAgIFZNJiB2bSA9ICp0b0pTKGdyb3VwKTsKICAg
ICBKU0xvY2tIb2xkZXIgbG9ja2VyKCZ2bSk7Ci0gICAgV2F0Y2hkb2cmIHdhdGNoZG9nID0gdm0u
d2F0Y2hkb2c7CisgICAgaWYgKCF2bS53YXRjaGRvZykKKyAgICAgICAgdm0ud2F0Y2hkb2cgPSBz
dGQ6Om1ha2VfdW5pcXVlPFdhdGNoZG9nPigpOworICAgIFdhdGNoZG9nJiB3YXRjaGRvZyA9ICp2
bS53YXRjaGRvZzsKICAgICBpZiAoY2FsbGJhY2spIHsKICAgICAgICAgdm9pZCogY2FsbGJhY2tQ
dHIgPSByZWludGVycHJldF9jYXN0PHZvaWQqPihjYWxsYmFjayk7CiAgICAgICAgIHdhdGNoZG9n
LnNldFRpbWVMaW1pdCh2bSwgbGltaXQsIGludGVybmFsU2NyaXB0VGltZW91dENhbGxiYWNrLCBj
YWxsYmFja1B0ciwgY2FsbGJhY2tEYXRhKTsKQEAgLTEwMSw3ICsxMDMsOSBAQCB2b2lkIEpTQ29u
dGV4dEdyb3VwQ2xlYXJFeGVjdXRpb25UaW1lTGltCiB7CiAgICAgVk0mIHZtID0gKnRvSlMoZ3Jv
dXApOwogICAgIEpTTG9ja0hvbGRlciBsb2NrZXIoJnZtKTsKLSAgICBXYXRjaGRvZyYgd2F0Y2hk
b2cgPSB2bS53YXRjaGRvZzsKKyAgICBpZiAoIXZtLndhdGNoZG9nKQorICAgICAgICB2bS53YXRj
aGRvZyA9IHN0ZDo6bWFrZV91bmlxdWU8V2F0Y2hkb2c+KCk7CisgICAgV2F0Y2hkb2cmIHdhdGNo
ZG9nID0gKnZtLndhdGNoZG9nOwogICAgIHdhdGNoZG9nLnNldFRpbWVMaW1pdCh2bSwgc3RkOjpu
dW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpKTsKIH0KIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHJldmlzaW9uIDE2
OTEyMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMTkyLDcgKzMxOTIsNyBAQCBib29sIEJ5dGVDb2RlUGFyc2Vy
OjpwYXJzZUJsb2NrKHVuc2lnbmVkCiAKICAgICAgICAgICAgIGFkZFRvR3JhcGgoTG9vcEhpbnQp
OwogICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAobV92bS0+d2F0Y2hkb2cuaXNFbmFibGVk
KCkpCisgICAgICAgICAgICBpZiAobV92bS0+d2F0Y2hkb2cgJiYgbV92bS0+d2F0Y2hkb2ctPmlz
RW5hYmxlZCgpKQogICAgICAgICAgICAgICAgIGFkZFRvR3JhcGgoQ2hlY2tXYXRjaGRvZ1RpbWVy
KTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgTkVYVF9PUENPREUob3BfbG9vcF9oaW50KTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDMyXzY0LmNwcAkocmV2aXNpb24gMTY5MTIyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDU1MSwx
MSArNDU1MSwxMiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAg
ICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDaGVja1dhdGNoZG9nVGltZXI6CisgICAgICAgIEFT
U0VSVChtX2ppdC52bSgpLT53YXRjaGRvZyk7CiAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soCiAg
ICAgICAgICAgICBXYXRjaGRvZ1RpbWVyRmlyZWQsIEpTVmFsdWVSZWdzKCksIDAsCiAgICAgICAg
ICAgICBtX2ppdC5icmFuY2hUZXN0OCgKICAgICAgICAgICAgICAgICBKSVRDb21waWxlcjo6Tm9u
WmVybywKLSAgICAgICAgICAgICAgICBKSVRDb21waWxlcjo6QWJzb2x1dGVBZGRyZXNzKG1faml0
LnZtKCktPndhdGNoZG9nLnRpbWVyRGlkRmlyZUFkZHJlc3MoKSkpKTsKKyAgICAgICAgICAgICAg
ICBKSVRDb21waWxlcjo6QWJzb2x1dGVBZGRyZXNzKG1faml0LnZtKCktPndhdGNoZG9nLT50aW1l
ckRpZEZpcmVBZGRyZXNzKCkpKSk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDb3VudEV4
ZWN1dGlvbjoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQ2NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDY0LmNwcAkocmV2aXNpb24gMTY5MTIyKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDU3NSwx
MSArNDU3NSwxMiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAg
ICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDaGVja1dhdGNoZG9nVGltZXI6CisgICAgICAgIEFT
U0VSVChtX2ppdC52bSgpLT53YXRjaGRvZyk7CiAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soCiAg
ICAgICAgICAgICBXYXRjaGRvZ1RpbWVyRmlyZWQsIEpTVmFsdWVSZWdzKCksIDAsCiAgICAgICAg
ICAgICBtX2ppdC5icmFuY2hUZXN0OCgKICAgICAgICAgICAgICAgICBKSVRDb21waWxlcjo6Tm9u
WmVybywKLSAgICAgICAgICAgICAgICBKSVRDb21waWxlcjo6QWJzb2x1dGVBZGRyZXNzKG1faml0
LnZtKCktPndhdGNoZG9nLnRpbWVyRGlkRmlyZUFkZHJlc3MoKSkpKTsKKyAgICAgICAgICAgICAg
ICBKSVRDb21waWxlcjo6QWJzb2x1dGVBZGRyZXNzKG1faml0LnZtKCktPndhdGNoZG9nLT50aW1l
ckRpZEZpcmVBZGRyZXNzKCkpKSk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBQaGFudG9t
OgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJw
cmV0ZXIuY3BwCShyZXZpc2lvbiAxNjkxMjIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MTMsNyArOTEzLDcg
QEAgZmFpbGVkSlNPTlA6CiAKICAgICBQcm9ncmFtQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBwcm9n
cmFtLT5jb2RlQmxvY2soKTsKIAotICAgIGlmIChVTkxJS0VMWSh2bS53YXRjaGRvZy5kaWRGaXJl
KGNhbGxGcmFtZSkpKQorICAgIGlmIChVTkxJS0VMWSh2bS53YXRjaGRvZyAmJiB2bS53YXRjaGRv
Zy0+ZGlkRmlyZShjYWxsRnJhbWUpKSkKICAgICAgICAgcmV0dXJuIHRocm93VGVybWluYXRlZEV4
ZWN1dGlvbkV4Y2VwdGlvbihjYWxsRnJhbWUpOwogCiAgICAgQVNTRVJUKGNvZGVCbG9jay0+bnVt
UGFyYW1ldGVycygpID09IDEpOyAvLyAxIHBhcmFtZXRlciBmb3IgJ3RoaXMnLgpAQCAtOTI4LDcg
KzkyOCw3IEBAIGZhaWxlZEpTT05QOgogICAgIEpTVmFsdWUgcmVzdWx0OwogICAgIHsKICAgICAg
ICAgU2FtcGxpbmdUb29sOjpDYWxsUmVjb3JkIGNhbGxSZWNvcmQobV9zYW1wbGVyLmdldCgpKTsK
LSAgICAgICAgV2F0Y2hkb2c6OlNjb3BlIHdhdGNoZG9nU2NvcGUodm0ud2F0Y2hkb2cpOworICAg
ICAgICBXYXRjaGRvZzo6U2NvcGUgd2F0Y2hkb2dTY29wZSh2bS53YXRjaGRvZy5nZXQoKSk7CiAK
ICAgICAgICAgcmVzdWx0ID0gcHJvZ3JhbS0+Z2VuZXJhdGVkSklUQ29kZSgpLT5leGVjdXRlKCZ2
bSwgJnByb3RvQ2FsbEZyYW1lKTsKICAgICB9CkBAIC05NzUsNyArOTc1LDcgQEAgSlNWYWx1ZSBJ
bnRlcnByZXRlcjo6ZXhlY3V0ZUNhbGwoQ2FsbEZyYQogICAgIH0gZWxzZQogICAgICAgICBuZXdD
b2RlQmxvY2sgPSAwOwogCi0gICAgaWYgKFVOTElLRUxZKHZtLndhdGNoZG9nLmRpZEZpcmUoY2Fs
bEZyYW1lKSkpCisgICAgaWYgKFVOTElLRUxZKHZtLndhdGNoZG9nICYmIHZtLndhdGNoZG9nLT5k
aWRGaXJlKGNhbGxGcmFtZSkpKQogICAgICAgICByZXR1cm4gdGhyb3dUZXJtaW5hdGVkRXhlY3V0
aW9uRXhjZXB0aW9uKGNhbGxGcmFtZSk7CiAKICAgICBQcm90b0NhbGxGcmFtZSBwcm90b0NhbGxG
cmFtZTsKQEAgLTk4Nyw3ICs5ODcsNyBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlQ2Fs
bChDYWxsRnJhCiAgICAgSlNWYWx1ZSByZXN1bHQ7CiAgICAgewogICAgICAgICBTYW1wbGluZ1Rv
b2w6OkNhbGxSZWNvcmQgY2FsbFJlY29yZChtX3NhbXBsZXIuZ2V0KCksICFpc0pTQ2FsbCk7Ci0g
ICAgICAgIFdhdGNoZG9nOjpTY29wZSB3YXRjaGRvZ1Njb3BlKHZtLndhdGNoZG9nKTsKKyAgICAg
ICAgV2F0Y2hkb2c6OlNjb3BlIHdhdGNoZG9nU2NvcGUodm0ud2F0Y2hkb2cuZ2V0KCkpOwogCiAg
ICAgICAgIC8vIEV4ZWN1dGUgdGhlIGNvZGU6CiAgICAgICAgIGlmIChpc0pTQ2FsbCkKQEAgLTEw
NDMsNyArMTA0Myw3IEBAIEpTT2JqZWN0KiBJbnRlcnByZXRlcjo6ZXhlY3V0ZUNvbnN0cnVjdCgK
ICAgICB9IGVsc2UKICAgICAgICAgbmV3Q29kZUJsb2NrID0gMDsKIAotICAgIGlmIChVTkxJS0VM
WSh2bS53YXRjaGRvZy5kaWRGaXJlKGNhbGxGcmFtZSkpKQorICAgIGlmIChVTkxJS0VMWSh2bS53
YXRjaGRvZyAmJiB2bS53YXRjaGRvZy0+ZGlkRmlyZShjYWxsRnJhbWUpKSkKICAgICAgICAgcmV0
dXJuIHRocm93VGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbihjYWxsRnJhbWUpOwogCiAgICAg
UHJvdG9DYWxsRnJhbWUgcHJvdG9DYWxsRnJhbWU7CkBAIC0xMDU1LDcgKzEwNTUsNyBAQCBKU09i
amVjdCogSW50ZXJwcmV0ZXI6OmV4ZWN1dGVDb25zdHJ1Y3QoCiAgICAgSlNWYWx1ZSByZXN1bHQ7
CiAgICAgewogICAgICAgICBTYW1wbGluZ1Rvb2w6OkNhbGxSZWNvcmQgY2FsbFJlY29yZChtX3Nh
bXBsZXIuZ2V0KCksICFpc0pTQ29uc3RydWN0KTsKLSAgICAgICAgV2F0Y2hkb2c6OlNjb3BlIHdh
dGNoZG9nU2NvcGUodm0ud2F0Y2hkb2cpOworICAgICAgICBXYXRjaGRvZzo6U2NvcGUgd2F0Y2hk
b2dTY29wZSh2bS53YXRjaGRvZy5nZXQoKSk7CiAKICAgICAgICAgLy8gRXhlY3V0ZSB0aGUgY29k
ZS4KICAgICAgICAgaWYgKGlzSlNDb25zdHJ1Y3QpCkBAIC0xMTE4LDE0ICsxMTE4LDE0IEBAIEpT
VmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUoQ2FsbEZyYW1lQ2wKICAgICBpZiAoTGVnYWN5UHJv
ZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCiAgICAgICAgIHByb2ZpbGVy
LT53aWxsRXhlY3V0ZShjbG9zdXJlLm9sZENhbGxGcmFtZSwgY2xvc3VyZS5mdW5jdGlvbik7CiAK
LSAgICBpZiAoVU5MSUtFTFkodm0ud2F0Y2hkb2cuZGlkRmlyZShjbG9zdXJlLm9sZENhbGxGcmFt
ZSkpKQorICAgIGlmIChVTkxJS0VMWSh2bS53YXRjaGRvZyAmJiB2bS53YXRjaGRvZy0+ZGlkRmly
ZShjbG9zdXJlLm9sZENhbGxGcmFtZSkpKQogICAgICAgICByZXR1cm4gdGhyb3dUZXJtaW5hdGVk
RXhlY3V0aW9uRXhjZXB0aW9uKGNsb3N1cmUub2xkQ2FsbEZyYW1lKTsKIAogICAgIC8vIEV4ZWN1
dGUgdGhlIGNvZGU6CiAgICAgSlNWYWx1ZSByZXN1bHQ7CiAgICAgewogICAgICAgICBTYW1wbGlu
Z1Rvb2w6OkNhbGxSZWNvcmQgY2FsbFJlY29yZChtX3NhbXBsZXIuZ2V0KCkpOwotICAgICAgICBX
YXRjaGRvZzo6U2NvcGUgd2F0Y2hkb2dTY29wZSh2bS53YXRjaGRvZyk7CisgICAgICAgIFdhdGNo
ZG9nOjpTY29wZSB3YXRjaGRvZ1Njb3BlKHZtLndhdGNoZG9nLmdldCgpKTsKIAogICAgICAgICBy
ZXN1bHQgPSBjbG9zdXJlLmZ1bmN0aW9uRXhlY3V0YWJsZS0+Z2VuZXJhdGVkSklUQ29kZUZvckNh
bGwoKS0+ZXhlY3V0ZSgmdm0sIGNsb3N1cmUucHJvdG9DYWxsRnJhbWUpOwogICAgIH0KQEAgLTEx
OTQsNyArMTE5NCw3IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUoRXZhbEV4ZWN1dGEK
ICAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChVTkxJS0VMWSh2bS53YXRjaGRvZy5kaWRGaXJl
KGNhbGxGcmFtZSkpKQorICAgIGlmIChVTkxJS0VMWSh2bS53YXRjaGRvZyAmJiB2bS53YXRjaGRv
Zy0+ZGlkRmlyZShjYWxsRnJhbWUpKSkKICAgICAgICAgcmV0dXJuIHRocm93VGVybWluYXRlZEV4
ZWN1dGlvbkV4Y2VwdGlvbihjYWxsRnJhbWUpOwogCiAgICAgQVNTRVJUKGNvZGVCbG9jay0+bnVt
UGFyYW1ldGVycygpID09IDEpOyAvLyAxIHBhcmFtZXRlciBmb3IgJ3RoaXMnLgpAQCAtMTIwOSw3
ICsxMjA5LDcgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZShFdmFsRXhlY3V0YQogICAg
IEpTVmFsdWUgcmVzdWx0OwogICAgIHsKICAgICAgICAgU2FtcGxpbmdUb29sOjpDYWxsUmVjb3Jk
IGNhbGxSZWNvcmQobV9zYW1wbGVyLmdldCgpKTsKLSAgICAgICAgV2F0Y2hkb2c6OlNjb3BlIHdh
dGNoZG9nU2NvcGUodm0ud2F0Y2hkb2cpOworICAgICAgICBXYXRjaGRvZzo6U2NvcGUgd2F0Y2hk
b2dTY29wZSh2bS53YXRjaGRvZy5nZXQoKSk7CiAKICAgICAgICAgcmVzdWx0ID0gZXZhbC0+Z2Vu
ZXJhdGVkSklUQ29kZSgpLT5leGVjdXRlKCZ2bSwgJnByb3RvQ2FsbEZyYW1lKTsKICAgICB9Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAJKHJldmlzaW9uIDE2
OTEyMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEwOTEsOCArMTA5MSw4IEBAIHZvaWQgSklUOjplbWl0X29wX2xvb3BfaGlu
dChJbnN0cnVjdGlvbioKICAgICB9CiAKICAgICAvLyBFbWl0IHRoZSB3YXRjaGRvZyB0aW1lciBj
aGVjazoKLSAgICBpZiAobV92bS0+d2F0Y2hkb2cuaXNFbmFibGVkKCkpCi0gICAgICAgIGFkZFNs
b3dDYXNlKGJyYW5jaFRlc3Q4KE5vblplcm8sIEFic29sdXRlQWRkcmVzcyhtX3ZtLT53YXRjaGRv
Zy50aW1lckRpZEZpcmVBZGRyZXNzKCkpKSk7CisgICAgaWYgKG1fdm0tPndhdGNoZG9nICYmIG1f
dm0tPndhdGNoZG9nLT5pc0VuYWJsZWQoKSkKKyAgICAgICAgYWRkU2xvd0Nhc2UoYnJhbmNoVGVz
dDgoTm9uWmVybywgQWJzb2x1dGVBZGRyZXNzKG1fdm0tPndhdGNoZG9nLT50aW1lckRpZEZpcmVB
ZGRyZXNzKCkpKSk7CiB9CiAKIHZvaWQgSklUOjplbWl0U2xvd19vcF9sb29wX2hpbnQoSW5zdHJ1
Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQpAQCAtMTExNyw3
ICsxMTE3LDcgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX2xvb3BfaGludChJbnN0cnVjdAogI2Vu
ZGlmCiAKICAgICAvLyBFbWl0IHRoZSBzbG93IHBhdGggb2YgdGhlIHdhdGNoZG9nIHRpbWVyIGNo
ZWNrOgotICAgIGlmIChtX3ZtLT53YXRjaGRvZy5pc0VuYWJsZWQoKSkgeworICAgIGlmIChtX3Zt
LT53YXRjaGRvZyAmJiBtX3ZtLT53YXRjaGRvZy0+aXNFbmFibGVkKCkpIHsKICAgICAgICAgbGlu
a1Nsb3dDYXNlKGl0ZXIpOwogICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkhhbmRsZVdh
dGNoZG9nVGltZXIpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJh
dGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bl
cmF0aW9ucy5jcHAJKHJldmlzaW9uIDE2OTEyMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3BlcmF0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk4Myw3ICs5ODMsNyBAQCB2
b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSGFuZGxlV2F0Y2hkCiAgICAgVk0mIHZtID0gZXhl
Yy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CiAK
LSAgICBpZiAoVU5MSUtFTFkodm0ud2F0Y2hkb2cuZGlkRmlyZShleGVjKSkpCisgICAgaWYgKFVO
TElLRUxZKHZtLndhdGNoZG9nICYmIHZtLndhdGNoZG9nLT5kaWRGaXJlKGV4ZWMpKSkKICAgICAg
ICAgdm0udGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2Vw
dGlvbigmdm0pKTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50
U2xvd1BhdGhzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnRTbG93UGF0aHMuY3BwCShyZXZpc2lvbiAxNjkxMjIpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzU0LDcg
KzEzNTQsOCBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfdGhyb3dfc3RhCiBMTElO
VF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfaGFuZGxlX3dhdGNoZG9nX3RpbWVyKQogewogICAg
IExMSU5UX0JFR0lOX05PX1NFVF9QQygpOwotICAgIGlmIChVTkxJS0VMWSh2bS53YXRjaGRvZy5k
aWRGaXJlKGV4ZWMpKSkKKyAgICBBU1NFUlQodm0ud2F0Y2hkb2cpOworICAgIGlmIChVTkxJS0VM
WSh2bS53YXRjaGRvZy0+ZGlkRmlyZShleGVjKSkpCiAgICAgICAgIExMSU5UX1RIUk9XKGNyZWF0
ZVRlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24oJnZtKSk7CiAgICAgTExJTlRfUkVUVVJOX1RX
TygwLCBleGVjKTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAkocmV2aXNp
b24gMTY5MTIyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjMwLDcgKzIzMCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBWTVR5
cGUgdm1UeXBlOwogICAgICAgICBDbGllbnREYXRhKiBjbGllbnREYXRhOwogICAgICAgICBFeGVj
U3RhdGUqIHRvcENhbGxGcmFtZTsKLSAgICAgICAgV2F0Y2hkb2cgd2F0Y2hkb2c7CisgICAgICAg
IHN0ZDo6dW5pcXVlX3B0cjxXYXRjaGRvZz4gd2F0Y2hkb2c7CiAKICAgICAgICAgY29uc3QgT3du
UHRyPGNvbnN0IEhhc2hUYWJsZT4gYXJyYXlDb25zdHJ1Y3RvclRhYmxlOwogICAgICAgICBjb25z
dCBPd25QdHI8Y29uc3QgSGFzaFRhYmxlPiBhcnJheVByb3RvdHlwZVRhYmxlOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nLmNwcAkocmV2aXNpb24gMTY5MTIy
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xODUsMTUgKzE4NSw0IEBAIHZvaWQgV2F0Y2hkb2c6OnN0b3BDb3VudGRvd24o
KQogICAgIG1faXNTdG9wcGVkID0gdHJ1ZTsKIH0KIAotV2F0Y2hkb2c6OlNjb3BlOjpTY29wZShX
YXRjaGRvZyYgd2F0Y2hkb2cpCi0gICAgOiBtX3dhdGNoZG9nKHdhdGNoZG9nKQotewotICAgIG1f
d2F0Y2hkb2cuYXJtKCk7Ci19Ci0KLVdhdGNoZG9nOjpTY29wZTo6flNjb3BlKCkKLXsKLSAgICBt
X3dhdGNoZG9nLmRpc2FybSgpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuaAkocmV2aXNpb24gMTY5MTIyKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuaAkod29ya2luZyBjb3B5KQpA
QCAtMTA0LDExICsxMDQsMjMgQEAgcHJpdmF0ZToKIAogY2xhc3MgV2F0Y2hkb2c6OlNjb3BlIHsK
IHB1YmxpYzoKLSAgICBTY29wZShXYXRjaGRvZyYpOwotICAgIH5TY29wZSgpOworICAgIFNjb3Bl
KFdhdGNoZG9nKiB3YXRjaGRvZykKKyAgICAgICAgOiBtX3dhdGNoZG9nKHdhdGNoZG9nKQorICAg
IHsKKyAgICAgICAgaWYgKCF3YXRjaGRvZykKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
bV93YXRjaGRvZy0+YXJtKCk7CisgICAgfQorICAgIAorICAgIH5TY29wZSgpCisgICAgeworICAg
ICAgICBpZiAoIW1fd2F0Y2hkb2cpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fd2F0
Y2hkb2ctPmRpc2FybSgpOworICAgIH0KIAogcHJpdmF0ZToKLSAgICBXYXRjaGRvZyYgbV93YXRj
aGRvZzsKKyAgICBXYXRjaGRvZyogbV93YXRjaGRvZzsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpT
QwpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTY5MTMzKQorKysgU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTQtMDUtMjAgIE1hcmsg
SGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBXYXRjaGRvZyB0
aW1lciBzaG91bGQgYmUgbGF6aWx5IGFsbG9jYXRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzMTM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgIFdlIGluY3Vy
IGEgbm90aWNlYWJsZSBhbW91bnQgb2Ygb3ZlcmhlYWQgb24gc29tZSBiZW5jaG1hcmtzIGR1ZSB0
byBjaGVja2luZyBpZiB0aGUgV2F0Y2hkb2cgZXZlciBmaXJlZC4gCisgICAgICAgIFRoZXJlIGlz
IG5vIHJlYXNvbiB0byBkbyB0aGlzIGNoZWNraW5nIGlmIHdlIG5ldmVyIGFjdGl2YXRlZCB0aGUg
V2F0Y2hkb2csIHdoaWNoIGNhbiBvbmx5IGJlIGRvbmUgdGhyb3VnaCAKKyAgICAgICAgSlNDb250
ZXh0R3JvdXBTZXRFeGVjdXRpb25UaW1lTGltaXQgb3IgSlNDb250ZXh0R3JvdXBDbGVhckV4ZWN1
dGlvblRpbWVMaW1pdC4gCisKKyAgICAgICAgQnkgYWxsb2NhdGluZyB0aGUgV2F0Y2hkb2cgbGF6
aWx5IG9uIHRoZSBWTSB3ZSBjYW4gYXZvaWQgYWxsIG9mIHRoZSBhc3NvY2lhdGVkIG92ZXJoZWFk
IHdoZW4gd2UgZG9uJ3QgdXNlIAorICAgICAgICB0aGVzZSB0d28gQVBJIGZ1bmN0aW9ucyAod2hp
Y2ggaXMgdHJ1ZSBvZiBtb3N0IGNsaWVudHMpLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNF
dmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRXZlbnRMaXN0ZW5lcjo6aGFu
ZGxlRXZlbnQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0Q29udHJvbGxlcjo6c2NoZWR1bGVFeGVj
dXRpb25UZXJtaW5hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRDb250cm9s
bGVyOjppc0V4ZWN1dGlvblRlcm1pbmF0aW5nKToKKwogMjAxNC0wNS0yMCAgRXJpYyBDYXJsc29u
ICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjXSBkbyBub3QgZGVhY3Rp
dmF0ZSBhbiBhdWRpbyBzZXNzaW9uIHRoYXQgaGFzIHJ1bm5pbmcgSS9PCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAJKHJldmlzaW9uIDE2
OTEyMikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEzMyw3ICsxMzMsNyBAQCB2b2lkIEpTRXZlbnRMaXN0ZW5lcjo6
aGFuZGxlRXZlbnQoU2NyaXB0CiAKICAgICAgICAgaWYgKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQt
PmlzV29ya2VyR2xvYmFsU2NvcGUoKSkgewogICAgICAgICAgICAgYm9vbCB0ZXJtaW5hdG9yQ2F1
c2VkRXhjZXB0aW9uID0gKGV4ZWMtPmhhZEV4Y2VwdGlvbigpICYmIGlzVGVybWluYXRlZEV4ZWN1
dGlvbkV4Y2VwdGlvbihleGVjLT5leGNlcHRpb24oKSkpOwotICAgICAgICAgICAgaWYgKHRlcm1p
bmF0b3JDYXVzZWRFeGNlcHRpb24gfHwgdm0ud2F0Y2hkb2cuZGlkRmlyZSgpKQorICAgICAgICAg
ICAgaWYgKHRlcm1pbmF0b3JDYXVzZWRFeGNlcHRpb24gfHwgKHZtLndhdGNoZG9nICYmIHZtLndh
dGNoZG9nLT5kaWRGaXJlKCkpKQogICAgICAgICAgICAgICAgIHRvV29ya2VyR2xvYmFsU2NvcGUo
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCktPnNjcmlwdCgpLT5mb3JiaWRFeGVjdXRpb24oKTsKICAg
ICAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRD
b250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9X
b3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAkocmV2aXNpb24gMTY5MTIyKQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEzNCw3ICsxMzQsOSBAQCB2b2lkIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmV2YWx1
YXRlKGNvCiAgICAgSlNWYWx1ZSBldmFsdWF0aW9uRXhjZXB0aW9uOwogICAgIEpTQzo6ZXZhbHVh
dGUoZXhlYywgc291cmNlQ29kZS5qc1NvdXJjZUNvZGUoKSwgbV93b3JrZXJHbG9iYWxTY29wZVdy
YXBwZXItPmdsb2JhbFRoaXMoKSwgJmV2YWx1YXRpb25FeGNlcHRpb24pOwogCi0gICAgaWYgKChl
dmFsdWF0aW9uRXhjZXB0aW9uICYmIGlzVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbihldmFs
dWF0aW9uRXhjZXB0aW9uKSkgfHwgIG1fd29ya2VyR2xvYmFsU2NvcGVXcmFwcGVyLT52bSgpLndh
dGNoZG9nLmRpZEZpcmUoKSkgeworICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CisgICAgaWYgKChl
dmFsdWF0aW9uRXhjZXB0aW9uICYmIGlzVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbihldmFs
dWF0aW9uRXhjZXB0aW9uKSkgCisgICAgICAgIHx8ICh2bS53YXRjaGRvZyAmJiB2bS53YXRjaGRv
Zy0+ZGlkRmlyZSgpKSkgewogICAgICAgICBmb3JiaWRFeGVjdXRpb24oKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KQEAgLTE2MiwxNCArMTY0LDE3IEBAIHZvaWQgV29ya2VyU2NyaXB0Q29udHJv
bGxlcjo6c2NoZWR1bGVFeGUKICAgICAvLyB0ZXJtaW5hdGlvbiBpcyBzY2hlZHVsZWQsIGlzRXhl
Y3V0aW9uVGVybWluYXRpbmcgd2lsbAogICAgIC8vIGFjY3VyYXRlbHkgcmVmbGVjdCB0aGF0IHN0
YXRlIHdoZW4gY2FsbGVkIGZyb20gYW5vdGhlciB0aHJlYWQuCiAgICAgTXV0ZXhMb2NrZXIgbG9j
a2VyKG1fc2NoZWR1bGVkVGVybWluYXRpb25NdXRleCk7Ci0gICAgbV92bS0+d2F0Y2hkb2cuZmly
ZSgpOworICAgIGlmIChtX3ZtLT53YXRjaGRvZykKKyAgICAgICAgbV92bS0+d2F0Y2hkb2ctPmZp
cmUoKTsKIH0KIAogYm9vbCBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjppc0V4ZWN1dGlvblRlcm1p
bmF0aW5nKCkgY29uc3QKIHsKICAgICAvLyBTZWUgY29tbWVudHMgaW4gc2NoZWR1bGVFeGVjdXRp
b25UZXJtaW5hdGlvbiByZWdhcmRpbmcgbXV0ZXggdXNhZ2UuCiAgICAgTXV0ZXhMb2NrZXIgbG9j
a2VyKG1fc2NoZWR1bGVkVGVybWluYXRpb25NdXRleCk7Ci0gICAgcmV0dXJuIG1fdm0tPndhdGNo
ZG9nLmRpZEZpcmUoKTsKKyAgICBpZiAobV92bS0+d2F0Y2hkb2cpCisgICAgICAgIHJldHVybiBt
X3ZtLT53YXRjaGRvZy0+ZGlkRmlyZSgpOworICAgIHJldHVybiBmYWxzZTsKIH0KIAogdm9pZCBX
b3JrZXJTY3JpcHRDb250cm9sbGVyOjpmb3JiaWRFeGVjdXRpb24oKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>